tempest.games 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,29 +1,31 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var HO=Object.create;var{getPrototypeOf:_O,defineProperty:oW,getOwnPropertyNames:DO}=Object;var EO=Object.prototype.hasOwnProperty;var Q6=(T,S,$)=>{$=T!=null?HO(_O(T)):{};let f=S||!T||!T.__esModule?oW($,"default",{value:T,enumerable:!0}):$;for(let M of DO(T))if(!EO.call(f,M))oW(f,M,{get:()=>T[M],enumerable:!0});return f};var U6=(T,S)=>()=>(S||T((S={exports:{}}).exports,S),S.exports);var QO=(T,S)=>{for(var $ in S)oW(T,$,{get:S[$],enumerable:!0,configurable:!0,set:(f)=>S[$]=()=>f})};function jf(T=Math.random){return T().toString(36).slice(2)}class CM 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 N6(T){return Object.entries(T)}var EA=(T,S,$=WT.STORE)=>{return iS($,{key:`${T.key}:JSON`,get:({get:f})=>S.toJson(f(T)),set:({set:f},M)=>{f(T,S.fromJson(M))}})};function I(T){while(T.child!==null)T=T.child;return T}function QA(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 gW extends fT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function W$(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 ${uS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let J=new fT,W=Object.assign((A)=>{let X=e(A),w={key:S.key,subKey:X},y=`${S.key}(${X})`,k=I(T),z=S.default,G={key:y,default:z instanceof Function?z(A):z};if(S.effects)G.effects=S.effects(A);let U=ES(k,G,w);return J.next({type:"state_creation",token:U}),U},f,{subject:J,install:(A)=>W$(A,S),internalRoles:$});return T.families.set(S.key,W),T.defaults.set(S.key,S.default),f}function UA(T,S){if("mutable"in S)return xM(T,S);return W$(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 ${uS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let J=new fT,W=Object.assign((A)=>{let X=e(A),w={key:S.key,subKey:X},y=`${S.key}(${X})`,k=I(T),z=jM(k,{key:y,get:S.get(A)},w);return J.next({type:"state_creation",token:z}),z},f,{internalRoles:$,subject:J,install:(A)=>R$(A,S),default:(A)=>{return S.get(A)({get:(...w)=>XT(T,...w),find:(w,y)=>OT(T,w,y),seek:(w,y)=>CT(T,w,y),json:(w)=>vT(T,w)})}});return T.families.set(S.key,W),f}function IM(T,S){if("set"in S)return bM(T,S);return R$(T,S)}var UO={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function If(T,S){let $=e(S),f=`${T.key}(${$})`,M=UO[T.type],J={key:f,type:M};if(M==="molecule")Object.assign(J,{key:S,family:T});else Object.assign(J,{family:{key:T.key,subKey:$}});return Object.assign(J,{counterfeit:!0}),J}function wS(T){let S={key:T.key,type:T.type};if("family"in T)S.family=T.family;return S}var f7=Symbol("provenance");function tW(T,S,$){let f=e($);try{let M=[],J;if(S==="root")M.push(T.molecules.get('"root"')),J="all";else if(typeof S==="string"&&S.startsWith(VO)){J="any";let w=e(S),y=T.molecules.get(w);if(!y)throw new Error(`Molecule ${w} not found in store "${T.config.name}"`);M.push(y)}else if($.startsWith("T$--")){J="all";for(let y of S){let k=e(y),z=T.molecules.get(k);if(!z)throw new Error(`Molecule ${k} not found in store "${T.config.name}"`);M.push(z)}}else{J="any";let y=e(S),k=T.molecules.get(y);if(!k)throw new Error(`Molecule ${y} not found in store "${T.config.name}"`);M.push(k)}let F=new bf(M,$);F._dependsOn=J,T.molecules.set(f,F);for(let w of M)w.below.set(F.stringKey,F);let W={type:"molecule_creation",subType:"modern",key:F.key,provenance:S},A=I(T);if(wT(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 ZM(T,S){let $=e(S),f=T.molecules.get($);if(!f)throw new Error(`Molecule ${$} not found in store "${T.config.name}"`);for(let X of f.joins.values())X.relations.delete(f.key),X.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:X})=>X);let J=[];for(let X of f.tokens.values()){let w=X.family;J.push([w.key,T.valueMap.get(X.key)])}for(let X of f.tokens.values())RS(T,X);for(let X of f.below.values())if(X.dependsOn==="all")ZM(T,X.key);else if(X.above.delete(f.stringKey),X.above.size===0)ZM(T,X.key);f.below.clear();let F={type:"molecule_disposal",subType:"modern",key:f.key,values:J,provenance:M},W=I(T);if(wT(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(F);else W.on.moleculeDisposal.next(F);W.molecules.delete(f.stringKey);for(let X of f.above.values())X.below.delete(f.stringKey)}var VO="T$";function Zf(T){return VA(WT.STORE,T)}function Tf(T){return UA(WT.STORE,T)}function pW(...T){if(T.length===2)return XT(WT.STORE,...T);return XT(WT.STORE,...T)}var iW=(T)=>(S,$,f,M,...J)=>{console[T](`${S} ${$} "${f}" ${M}`,...J)},BO={error:iW("error"),info:iW("info"),warn:iW("warn")};class uW{logLevel;filter;logger;constructor(T,S,$=BO){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 dJ(T){return IM(WT.STORE,T)}function qM(T){return lW(T,WT.STORE)}class LS{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 J of $){f??=J,M??=J;let F=this.relations.get(J);if(F){if(F.size===1)this.relations.delete(J);else F.delete(T);this.contents.delete(this.makeContentKey(f,M))}}this.relations.set(T,new Set(S));for(let J of S){let F=this.relations.get(J);if(F)F.add(T);else F=new Set().add(T),this.relations.set(J,F)}}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 J=this.isAType?.(f)?f:void 0,F=J===void 0?f:void 0;for(let W of M)J??=W,F??=W,this.addRelation(J,F)}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 J of M){let F=this.makeContentKey(T,J),W=S[J];this.setContent(F,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 PT(T){return"epoch"in T.transactionMeta}function wT(T){return"phase"in T.transactionMeta}var LA=(T)=>{let S=I(T);if(!wT(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 LO=(T)=>T[0].toUpperCase()+T.slice(1);function uS(T){return T.type.split("_").map(LO).join(" ")}class QS extends Error{constructor(...T){let S=T[0],$=T.length===2?T[1]:T[2];if(T.length===2)super(`${uS(S)} ${e(S.key)} not found in store "${$.config.name}".`);else{let f=T[1];super(`${uS(S)} "${S.key}" member ${e(f)} not found in store "${$.config.name}".`)}}}function n$(T,S,$){return(...f)=>{let M=TT(T,$);if(M)return M.run(f,S);throw new QS(T,$)}}var rJ=(T)=>(S)=>T instanceof Function?T(S):T;var v$=(T,S)=>{if(S.valueMap.has(T.key))return S.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),NA(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 CA=(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}"${!wT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},xA=(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)},jA=(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 IA=(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 dW=(T,S)=>{let $=I(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(jA($,M))continue;bA(M,$),qf($,M)}}};function NO(T,S){if(qA(S.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var ZA=(T,S,$)=>{let{key:f}=T,M=I($);if(!wT(M)||M.transactionMeta.phase!=="building"){$.logger.error("\uD83D\uDC1E","atom",f,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!NO(f,S))return;let F={type:"atom_update",key:f,...S};if(T.family)F.family=T.family;M.transactionMeta.update.updates.push(F),$.logger.info("\uD83D\uDCC1","atom",f,"stowed (",S.oldValue,"->",S.newValue,")")};var mA=(T,S,$)=>{let f=v$(T,$),M=f;if(T.type==="mutable_atom"&&wT($)){let{parent:F}=$;M=mM(T,F,$)}if(M=rJ(S)(M),$.logger.info("\uD83D\uDCDD","atom",T.key,"set to",M),M=hS(T.key,M,T.subject,$),hA(T.key,$))nA(T.key,$);qf($,T.key),dW(T,$);let J={oldValue:f,newValue:M};if(PT($))IA(T,J,$);else if($.parent){if($.on.transactionApplying.state===null)ZA(T,J,$);else if(T.key.startsWith("*")){let F=T.key.slice(1),W=$.atoms.get(F),A=$.valueMap.get(F);if(W.type==="mutable_atom"&&wT($)){let{parent:w}=$;A=mM(W,w,$)}if(A.do(J.newValue)===null)dW(W,$)}}};var aJ=(T,S,$)=>{switch(T.type){case"atom":case"mutable_atom":mA(T,S,$);break;case"selector":T.set(S);break}};function eJ(T,S){if(S.family){let $=T.families.get(S.family.key);if($)return $}}function ZT(T,...S){let $,f,M,J;if(S.length===2){if($=S[0],J=S[1],f=eJ(T,$)??null,f)M=$.family?iT($.family.subKey):null,$=OT(T,f,M)}else f=S[0],M=S[1],J=S[2],$=OT(T,f,M);if("counterfeit"in $){let A=T.disposalTraces.buffer.find((X)=>X?.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 F=CA(T,$);if(F){let A=T.on.operationClose.subscribe(`waiting to set "${$.key}" at T-${F}`,()=>{A(),T.logger.info("\uD83D\uDFE2",$.type,$.key,`resuming deferred setState from T-${F}`),ZT(T,$,J)});return}let W=TT($,T);aJ(W,J,T),xA(T)}function sJ(T,S,$){let{key:f,newValue:M,oldValue:J}=S,F=T==="newValue"?M:J,W={key:f,type:"atom"};if(S.family)Object.assign(W,{family:S.family});ZT($,W,F)}function vA(T,S){let $=new fT,f={type:"molecule_family",key:S.key,dependsOn:S.dependsOn??"all"},M={...f,subject:$,new:S.new};return T.moleculeFamilies.set(S.key,M),f}function lS(T,S,$){let f=G$($,S,T.key);T.tokens.set(f.key,f);let M=wT($)&&$.transactionMeta.phase==="building",J=$.moleculeInProgress===T.key;if(!M&&!J)T.subject.next({type:"state_creation",token:f});return f}function TF(T){return{store:T}}function XT(T,...S){let $,f,M;if(S.length===1){if($=S[0],$.type!=="molecule"){if(f=eJ(T,$)??null,f)M=$.family?iT($.family.subKey):null,$=OT(T,f,M)}}else{f=S[0],M=S[1];let J;if(f.type==="molecule_family")J=CT(T,f,M)??If(f,M);else J=OT(T,f,M);$=J}if("counterfeit"in $&&"family"in $){f=$.type==="molecule"?TT($.family,T):T.families.get($.family.key);let J=$.type==="molecule"?$.key:$.family.subKey,F=T.disposalTraces.buffer.find((W)=>W?.key===$.key);switch(T.logger.error("\u274C",$.type,$.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,F?`This state was previously disposed:
5
- ${F.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(J);return T.defaults.set(f.key,W),W}case"molecule_family":throw new QS(f,J,T)}}switch($.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return v$(TT($,T),T);case"molecule":return TT($,T).instance}}class bf{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=e(S),$)this.family=$,this._dependsOn=$.dependsOn;if(T)for(let f of T)this.above.set(f.stringKey,f)}}function PA(T){return T[0].toUpperCase()+T.slice(1)}function z$(T,S,$,f,...M){let J=QA(T),F=I(T),W=e(f);F.moleculeInProgress=W;let A=Array.isArray(S)?S:[S],X=A.map((E)=>{if(E instanceof bf)return E;let B=e(E.key),L=T.molecules.get(B);if(!L)throw new Error(`Molecule ${B} not found in store "${T.config.name}"`);return L}),w=new bf(X,f,$);F.molecules.set(W,w);for(let E of X)E.below.set(w.stringKey,w);let y={get:(...E)=>XT(I(J),...E),set:(...E)=>{ZT(I(J),...E)},seek:(E,B)=>CT(I(J),E,B),json:(E)=>vT(I(J),E),run:(E,B=jf())=>n$(E,B,I(T)),make:(E,B,L,...Z)=>z$(I(J),E,B,L,...Z),dispose:(E)=>{RS(I(J),E)},env:()=>TF(I(J)),bond:(E,B)=>{if(E.type==="join"){let{as:L}=B,Z=hM(E,J);Z.molecules.set(W,w),w.joins.set(E.key,Z);let j=k.subject.subscribe(`join:${E.key}-${W}`,(R)=>{if(R.type==="molecule_disposal"){if(e(R.token.key)===W)j(),Z.molecules.delete(W)}});if(L===null)return;let D=E.a===L?E.b:E.a,H=cA(E,f),Q=H[`${D}KeysOf${PA(L)}`],b=H[`${D}EntriesOf${PA(L)}`],n={relatedKeys:Q};if(b)n=Object.assign(n,{relatedEntries:b});return n}return lS(w,TT(E,J),I(J))},claim:(E,B)=>{let{exclusive:L}=B,Z=I(T).molecules.get(e(E.key));if(Z)if(L){for(let j of Z.above.values())j.below.delete(Z.stringKey);Z.above.clear(),Z.above.set(w.stringKey,w),w.below.set(Z.stringKey,Z)}else Z.above.set(w.stringKey,w),w.below.set(Z.stringKey,Z)},spawn:(E,B,...L)=>z$(I(T),[w],TT(E,T),B,...L)},k=TT($,T),z=k.new;w.instance=new z(y,f,...M);let G={type:"molecule",key:f,family:$},U={type:"molecule_creation",subType:"classic",token:G,family:$,context:A,params:M};if(PT(F))k.subject.next(U);else if(wT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push(U);return F.moleculeInProgress=null,G}function rW(T,S,$){switch(S){case"newValue":{oA(T,$);break}case"oldValue":{RS($,T.token);break}}}function aW(T,S,$){switch(S){case"newValue":{RS($,T.token);break}case"oldValue":{oA(T,$),$.valueMap.set(T.token.key,T.value);break}}}function oA(T,S){let{family:$}=T.token;if($){let f=S.families.get($.key);if(f)OT(S,f,iT($.subKey))}}function eW(T,S,$){switch(S){case"newValue":switch(T.subType){case"classic":z$($,T.context,T.family,T.token.key,...T.params);break;case"modern":tW($,T.provenance,T.key);break}break;case"oldValue":switch(T.subType){case"classic":RS($,T.token);break;case"modern":ZM($,T.key);break}break}}function sW(T,S,$){switch(S){case"newValue":switch(T.subType){case"classic":RS($,T.token);break;case"modern":ZM($,T.key);break}break;case"oldValue":switch(T.subType){case"classic":{let f=z$($,T.context,T.family,T.token.key);for(let[M,J]of T.values){let F=`${M}(${e(f.key)})`,W=TT(f,$),A=W.tokens.has(F),X=$.families.get(M);if(X&&!A)lS(W,X,$);$.valueMap.set(F,J)}}break;case"modern":{tW($,T.provenance,T.key);for(let[f,M]of T.values){let J=$.families.get(f);if(J){OT($,J,T.key);let F=`${f}(${e(T.key)})`;$.valueMap.set(F,M)}}}}break}}function SF(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":sJ(T,M,$);break;case"state_creation":rW(M,T,$);break;case"state_disposal":aW(M,T,$);break;case"molecule_creation":eW(M,T,$);break;case"molecule_disposal":sW(M,T,$);break;case"transaction_update":SF(T,M,$);break}}function gA(T,S,$){if(PT($)&&T)$.transactionMeta.epoch.set(T,S)}function tA(T,S,$){if(!PT($))return;let M=$.transactionMeta.actionContinuities.getRelatedKey(T);if(M!==void 0)$.transactionMeta.epoch.set(M,S)}var pA=(T,S)=>{let $=I(S),{parent:f}=$;if(f===null||!wT($)||$.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),SF("newValue",$.transactionMeta.update,f),PT(f))tA($.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(wT(f))f.transactionMeta.update.updates.push($.transactionMeta.update);f.on.transactionApplying.next(null)};function iA(T,S,$){if(!PT($))return;let{epoch:M,actionContinuities:J}=$.transactionMeta;if(J.set(T,S),!M.has(T))M.set(T,-1)}class nS 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 uA=(T,S,$,f)=>{let M=I($),J={parent:M,child:null,on:M.on,loggers:M.loggers,logger:M.logger,config:M.config,atoms:new nS(M.atoms),atomsThatAreDefault:new Set(M.atomsThatAreDefault),families:new nS(M.families),operation:{open:!1},readonlySelectors:new nS(M.readonlySelectors),timelines:new nS(M.timelines),timelineTopics:new LS(M.timelineTopics.toJSON()),trackers:new Map,transactions:new nS(M.transactions),selectorAtoms:new LS(M.selectorAtoms.toJSON()),selectorGraph:new LS(M.selectorGraph.toJSON(),{makeContentKey:(...X)=>X.sort().join(":")}),selectors:new nS(M.selectors),valueMap:new nS(M.valueMap),defaults:M.defaults,disposalTraces:$.disposalTraces.copy(),molecules:new nS(M.molecules),moleculeFamilies:new nS(M.moleculeFamilies),moleculeInProgress:M.moleculeInProgress,miscResources:new nS(M.miscResources)},F=lA(T,$),W={phase:"building",update:{type:"transaction_update",key:T,id:f,epoch:F===void 0?Number.NaN:F+1,updates:[],params:S,output:void 0},toolkit:{get:(...X)=>XT(A,...X),set:(...X)=>{ZT(A,...X)},run:(X,w=jf())=>n$(X,w,A),find:(X,w)=>OT(A,X,w),seek:(X,w)=>CT(A,X,w),json:(X)=>vT(A,X),make:(X,w,y,...k)=>z$(A,X,w,y,...k),dispose:(...X)=>{RS(A,...X)},env:()=>TF(A)}},A=Object.assign(J,{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:(J,F)=>{let W=uA(T.key,J,S,F);try{let A=I(S),{toolkit:X}=W.transactionMeta,w=T.do(X,...J);return pA(w,A),w}catch(A){throw LA(f),S.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",A),A}},install:(J)=>lW(T,J),subject:new fT},f=I(S);f.transactions.set($.key,$);let M=wS($);return S.on.transactionCreation.next(M),M}function lA(T,S){let $=PT(S),f=$?S.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return $&&f!==void 0?S.transactionMeta.epoch.get(f):void 0}class $F{_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 $F([...this._buffer]);return T._index=this._index,T}}class dA{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new LS({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new LS({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 LS({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new LS({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new $F(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 gW(null),operationClose:new fT,moleculeCreationStart:new fT,moleculeCreationDone:new fT,moleculeDisposal:new fT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new uW("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},PT(S))this.transactionMeta={epoch:new Map(S?.transactionMeta.epoch),actionContinuities:new LS(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=vT(S,f),J=H$(f);$.add(M.key),$.add(J.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 dA({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(e(T.key));break;case"molecule_family":$=f.moleculeFamilies.get(T.key);break}if($)return $;f=f.child}throw new QS(T,S)}function fF(T,S){let $;$=TT(T,S);let{family:f}=T;for(let F of $.joins.values())F.relations.delete($.key),F.molecules.delete($.stringKey);let M=[];for(let F of $.above.values())M.push(wS(F));let J=[];for(let F of $.tokens.values()){let W=F.family;J.push([W.key,S.valueMap.get(F.key)])}if(f){let F=TT(f,S),W={type:"molecule_disposal",subType:"classic",token:T,family:f,context:M,values:J};if(T.family)W.family=T.family;for(let X of $.tokens.values())RS(S,X);for(let X of $.below.values())if(X.dependsOn==="all")fF(X,S);else if(X.above.delete($.stringKey),X.above.size===0)fF(X,S);if($.below.clear(),wT(S)&&S.transactionMeta.phase==="building")S.transactionMeta.update.updates.push(W);else F.subject.next(W);S.molecules.delete($.stringKey)}for(let F of $.above.values())F.below.delete($.stringKey)}function G$(T,S,$){let f=T.families.get(S.key);if(f===void 0)throw new QS(S,T);let M=f($),J=I(T);if(M.family&&J.moleculeInProgress===null){if(PT(J))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(wT(J)&&J.on.transactionApplying.state===null)J.transactionMeta.update.updates.push({type:"state_creation",token:M})}return M}function CT(T,S,$){let f=e($),M=`${S.key}(${f})`,J=I(T),F;switch(S.type){case"atom_family":case"mutable_atom_family":F=J.atoms.get(M);break;case"selector_family":F=J.selectors.get(M);break;case"readonly_selector_family":F=J.readonlySelectors.get(M);break;case"molecule_family":F=J.molecules.get(e($))}if(F)return wS(F);return F}function OT(T,S,$){let f=CT(T,S,$);if(f)return f;let M=T.molecules.get(e($));if(M)return lS(M,S,T);if(T.config.lifespan==="immortal"){let J=If(S,$);return T.logger.error("\u274C",J.type,J.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),J}return f=G$(T,S,$),f}function RS(T,...S){let $,f;if(S.length===1)$=S[0],f=$.key;else{let J=S[0],F=S[1];$=J.type==="molecule_family"?CT(T,J,F)??If(J,F):OT(T,J,F)}try{TT($,T)}catch(J){let F=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}".`,F?`
3
+ var m2=Object.create;var{getPrototypeOf:c2,defineProperty:zW,getOwnPropertyNames:g2}=Object;var n2=Object.prototype.hasOwnProperty;var p2=(T,$,J)=>{J=T!=null?m2(c2(T)):{};let S=$||!T||!T.__esModule?zW(J,"default",{value:T,enumerable:!0}):J;for(let F of g2(T))if(!n2.call(S,F))zW(S,F,{get:()=>T[F],enumerable:!0});return S};var xS=(T,$)=>()=>($||T(($={exports:{}}).exports,$),$.exports);var i2=(T,$)=>{for(var J in $)zW(T,J,{get:$[J],enumerable:!0,configurable:!0,set:(S)=>$[J]=()=>S})};var kw=xS((Hw)=>{Object.defineProperty(Hw,"__esModule",{value:!0});class qS extends Error{}class RG extends qS{constructor(T){super(`Invalid DateTime: ${T.toMessage()}`)}}class YG extends qS{constructor(T){super(`Invalid Interval: ${T.toMessage()}`)}}class _G extends qS{constructor(T){super(`Invalid Duration: ${T.toMessage()}`)}}class fF extends qS{}class A8 extends qS{constructor(T){super(`Invalid unit ${T}`)}}class y$ extends qS{}class AS extends qS{constructor(){super("Zone is an abstract class")}}var m="numeric",LJ="short",s$="long",$W={year:m,month:m,day:m},yG={year:m,month:LJ,day:m},P_={year:m,month:LJ,day:m,weekday:LJ},HG={year:m,month:s$,day:m},kG={year:m,month:s$,day:m,weekday:s$},QG={hour:m,minute:m},EG={hour:m,minute:m,second:m},zG={hour:m,minute:m,second:m,timeZoneName:LJ},OG={hour:m,minute:m,second:m,timeZoneName:s$},UG={hour:m,minute:m,hourCycle:"h23"},DG={hour:m,minute:m,second:m,hourCycle:"h23"},VG={hour:m,minute:m,second:m,hourCycle:"h23",timeZoneName:LJ},BG={hour:m,minute:m,second:m,hourCycle:"h23",timeZoneName:s$},LG={year:m,month:m,day:m,hour:m,minute:m},NG={year:m,month:m,day:m,hour:m,minute:m,second:m},CG={year:m,month:LJ,day:m,hour:m,minute:m},jG={year:m,month:LJ,day:m,hour:m,minute:m,second:m},v_={year:m,month:LJ,day:m,weekday:LJ,hour:m,minute:m},qG={year:m,month:s$,day:m,hour:m,minute:m,timeZoneName:LJ},xG={year:m,month:s$,day:m,hour:m,minute:m,second:m,timeZoneName:LJ},IG={year:m,month:s$,day:m,weekday:s$,hour:m,minute:m,timeZoneName:s$},ZG={year:m,month:s$,day:m,weekday:s$,hour:m,minute:m,second:m,timeZoneName:s$};class wF{get type(){throw new AS}get name(){throw new AS}get ianaName(){return this.name}get isUniversal(){throw new AS}offsetName(T,$){throw new AS}formatOffset(T,$){throw new AS}offset(T){throw new AS}equals(T){throw new AS}get isValid(){throw new AS}}var lK=null;class tM extends wF{static get instance(){if(lK===null)lK=new tM;return lK}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(T,{format:$,locale:J}){return lG(T,$,J)}formatOffset(T,$){return dM(this.offset(T),$)}offset(T){return-new Date(T).getTimezoneOffset()}equals(T){return T.type==="system"}get isValid(){return!0}}var aA={};function m_(T){if(!aA[T])aA[T]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:T,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"});return aA[T]}var c_={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function g_(T,$){let J=T.format($).replace(/\u200E/g,""),S=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(J),[,F,M,A,W,X,K,f]=S;return[A,F,M,W,X,K,f]}function n_(T,$){let J=T.formatToParts($),S=[];for(let F=0;F<J.length;F++){let{type:M,value:A}=J[F],W=c_[M];if(M==="era")S[W]=A;else if(!MT(W))S[W]=parseInt(A,10)}return S}var lA={};class vJ extends wF{static create(T){if(!lA[T])lA[T]=new vJ(T);return lA[T]}static resetCache(){lA={},aA={}}static isValidSpecifier(T){return this.isValidZone(T)}static isValidZone(T){if(!T)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:T}).format(),!0}catch($){return!1}}constructor(T){super();this.zoneName=T,this.valid=vJ.isValidZone(T)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(T,{format:$,locale:J}){return lG(T,$,J,this.name)}formatOffset(T,$){return dM(this.offset(T),$)}offset(T){let $=new Date(T);if(isNaN($))return NaN;let J=m_(this.name),[S,F,M,A,W,X,K]=J.formatToParts?n_(J,$):g_(J,$);if(A==="BC")S=-Math.abs(S)+1;let G=AW({year:S,month:F,day:M,hour:W===24?0:W,minute:X,second:K,millisecond:0}),w=+$,y=w%1000;return w-=y>=0?y:1000+y,(G-w)/60000}equals(T){return T.type==="iana"&&T.name===this.name}get isValid(){return this.valid}}var hf={};function p_(T,$={}){let J=JSON.stringify([T,$]),S=hf[J];if(!S)S=new Intl.ListFormat(T,$),hf[J]=S;return S}var T8={};function $8(T,$={}){let J=JSON.stringify([T,$]),S=T8[J];if(!S)S=new Intl.DateTimeFormat(T,$),T8[J]=S;return S}var J8={};function i_(T,$={}){let J=JSON.stringify([T,$]),S=J8[J];if(!S)S=new Intl.NumberFormat(T,$),J8[J]=S;return S}var S8={};function o_(T,$={}){let{base:J,...S}=$,F=JSON.stringify([T,S]),M=S8[F];if(!M)M=new Intl.RelativeTimeFormat(T,$),S8[F]=M;return M}var lM=null;function l_(){if(lM)return lM;else return lM=new Intl.DateTimeFormat().resolvedOptions().locale,lM}var Pf={};function u_(T){let $=Pf[T];if(!$){let J=new Intl.Locale(T);$="getWeekInfo"in J?J.getWeekInfo():J.weekInfo,Pf[T]=$}return $}function d_(T){let $=T.indexOf("-x-");if($!==-1)T=T.substring(0,$);let J=T.indexOf("-u-");if(J===-1)return[T];else{let S,F;try{S=$8(T).resolvedOptions(),F=T}catch(W){let X=T.substring(0,J);S=$8(X).resolvedOptions(),F=X}let{numberingSystem:M,calendar:A}=S;return[F,M,A]}}function r_(T,$,J){if(J||$){if(!T.includes("-u-"))T+="-u";if(J)T+=`-ca-${J}`;if($)T+=`-nu-${$}`;return T}else return T}function t_(T){let $=[];for(let J=1;J<=12;J++){let S=FT.utc(2009,J,1);$.push(T(S))}return $}function a_(T){let $=[];for(let J=1;J<=7;J++){let S=FT.utc(2016,11,13+J);$.push(T(S))}return $}function uA(T,$,J,S){let F=T.listingMode();if(F==="error")return null;else if(F==="en")return J($);else return S($)}function s_(T){if(T.numberingSystem&&T.numberingSystem!=="latn")return!1;else return T.numberingSystem==="latn"||!T.locale||T.locale.startsWith("en")||new Intl.DateTimeFormat(T.intl).resolvedOptions().numberingSystem==="latn"}class bG{constructor(T,$,J){this.padTo=J.padTo||0,this.floor=J.floor||!1;let{padTo:S,floor:F,...M}=J;if(!$||Object.keys(M).length>0){let A={useGrouping:!1,...J};if(J.padTo>0)A.minimumIntegerDigits=J.padTo;this.inf=i_(T,A)}}format(T){if(this.inf){let $=this.floor?Math.floor(T):T;return this.inf.format($)}else{let $=this.floor?Math.floor(T):w8(T,3);return sT($,this.padTo)}}}class hG{constructor(T,$,J){this.opts=J,this.originalZone=void 0;let S=void 0;if(this.opts.timeZone)this.dt=T;else if(T.zone.type==="fixed"){let M=-1*(T.offset/60),A=M>=0?`Etc/GMT+${M}`:`Etc/GMT${M}`;if(T.offset!==0&&vJ.create(A).valid)S=A,this.dt=T;else S="UTC",this.dt=T.offset===0?T:T.setZone("UTC").plus({minutes:T.offset}),this.originalZone=T.zone}else if(T.zone.type==="system")this.dt=T;else if(T.zone.type==="iana")this.dt=T,S=T.zone.name;else S="UTC",this.dt=T.setZone("UTC").plus({minutes:T.offset}),this.originalZone=T.zone;let F={...this.opts};F.timeZone=F.timeZone||S,this.dtf=$8($,F)}format(){if(this.originalZone)return this.formatToParts().map(({value:T})=>T).join("");return this.dtf.format(this.dt.toJSDate())}formatToParts(){let T=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone)return T.map(($)=>{if($.type==="timeZoneName"){let J=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...$,value:J}}else return $});return T}resolvedOptions(){return this.dtf.resolvedOptions()}}class PG{constructor(T,$,J){if(this.opts={style:"long",...J},!$&&iG())this.rtf=o_(T,J)}format(T,$){if(this.rtf)return this.rtf.format(T,$);else return Ey($,T,this.opts.numeric,this.opts.style!=="long")}formatToParts(T,$){if(this.rtf)return this.rtf.formatToParts(T,$);else return[]}}var e_={firstDay:1,minimalDays:4,weekend:[6,7]};class DT{static fromOpts(T){return DT.create(T.locale,T.numberingSystem,T.outputCalendar,T.weekSettings,T.defaultToEN)}static create(T,$,J,S,F=!1){let M=T||mT.defaultLocale,A=M||(F?"en-US":l_()),W=$||mT.defaultNumberingSystem,X=J||mT.defaultOutputCalendar,K=F8(S)||mT.defaultWeekSettings;return new DT(A,W,X,K,M)}static resetCache(){lM=null,T8={},J8={},S8={}}static fromObject({locale:T,numberingSystem:$,outputCalendar:J,weekSettings:S}={}){return DT.create(T,$,J,S)}constructor(T,$,J,S,F){let[M,A,W]=d_(T);this.locale=M,this.numberingSystem=$||A||null,this.outputCalendar=J||W||null,this.weekSettings=S,this.intl=r_(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=F,this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null)this.fastNumbersCached=s_(this);return this.fastNumbersCached}listingMode(){let T=this.isEnglish(),$=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return T&&$?"en":"intl"}clone(T){if(!T||Object.getOwnPropertyNames(T).length===0)return this;else return DT.create(T.locale||this.specifiedLocale,T.numberingSystem||this.numberingSystem,T.outputCalendar||this.outputCalendar,F8(T.weekSettings)||this.weekSettings,T.defaultToEN||!1)}redefaultToEN(T={}){return this.clone({...T,defaultToEN:!0})}redefaultToSystem(T={}){return this.clone({...T,defaultToEN:!1})}months(T,$=!1){return uA(this,T,rG,()=>{let J=$?{month:T,day:"numeric"}:{month:T},S=$?"format":"standalone";if(!this.monthsCache[S][T])this.monthsCache[S][T]=t_((F)=>this.extract(F,J,"month"));return this.monthsCache[S][T]})}weekdays(T,$=!1){return uA(this,T,sG,()=>{let J=$?{weekday:T,year:"numeric",month:"long",day:"numeric"}:{weekday:T},S=$?"format":"standalone";if(!this.weekdaysCache[S][T])this.weekdaysCache[S][T]=a_((F)=>this.extract(F,J,"weekday"));return this.weekdaysCache[S][T]})}meridiems(){return uA(this,void 0,()=>eG,()=>{if(!this.meridiemCache){let T={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[FT.utc(2016,11,13,9),FT.utc(2016,11,13,19)].map(($)=>this.extract($,T,"dayperiod"))}return this.meridiemCache})}eras(T){return uA(this,T,Tw,()=>{let $={era:T};if(!this.eraCache[T])this.eraCache[T]=[FT.utc(-40,1,1),FT.utc(2017,1,1)].map((J)=>this.extract(J,$,"era"));return this.eraCache[T]})}extract(T,$,J){let S=this.dtFormatter(T,$),F=S.formatToParts(),M=F.find((A)=>A.type.toLowerCase()===J);return M?M.value:null}numberFormatter(T={}){return new bG(this.intl,T.forceSimple||this.fastNumbers,T)}dtFormatter(T,$={}){return new hG(T,this.intl,$)}relFormatter(T={}){return new PG(this.intl,this.isEnglish(),T)}listFormatter(T={}){return p_(this.intl,T)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!oG())return e_;else return u_(this.locale)}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(T){return this.locale===T.locale&&this.numberingSystem===T.numberingSystem&&this.outputCalendar===T.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}var uK=null;class L$ extends wF{static get utcInstance(){if(uK===null)uK=new L$(0);return uK}static instance(T){return T===0?L$.utcInstance:new L$(T)}static parseSpecifier(T){if(T){let $=T.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new L$(WW($[1],$[2]))}return null}constructor(T){super();this.fixed=T}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${dM(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${dM(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(T,$){return dM(this.fixed,$)}get isUniversal(){return!0}offset(){return this.fixed}equals(T){return T.type==="fixed"&&T.fixed===this.fixed}get isValid(){return!0}}class W8 extends wF{constructor(T){super();this.zoneName=T}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function CS(T,$){if(MT(T)||T===null)return $;else if(T instanceof wF)return T;else if(My(T)){let J=T.toLowerCase();if(J==="default")return $;else if(J==="local"||J==="system")return tM.instance;else if(J==="utc"||J==="gmt")return L$.utcInstance;else return L$.parseSpecifier(J)||vJ.create(T)}else if(jS(T))return L$.instance(T);else if(typeof T==="object"&&"offset"in T&&typeof T.offset==="function")return T;else return new W8(T)}var X8={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},vf={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Ty=X8.hanidec.replace(/[\[|\]]/g,"").split("");function $y(T){let $=parseInt(T,10);if(isNaN($)){$="";for(let J=0;J<T.length;J++){let S=T.charCodeAt(J);if(T[J].search(X8.hanidec)!==-1)$+=Ty.indexOf(T[J]);else for(let F in vf){let[M,A]=vf[F];if(S>=M&&S<=A)$+=S-M}}return parseInt($,10)}else return $}var w0={};function Jy(){w0={}}function VJ({numberingSystem:T},$=""){let J=T||"latn";if(!w0[J])w0[J]={};if(!w0[J][$])w0[J][$]=new RegExp(`${X8[J]}${$}`);return w0[J][$]}var mf=()=>Date.now(),cf="system",gf=null,nf=null,pf=null,of=60,lf,uf=null;class mT{static get now(){return mf}static set now(T){mf=T}static set defaultZone(T){cf=T}static get defaultZone(){return CS(cf,tM.instance)}static get defaultLocale(){return gf}static set defaultLocale(T){gf=T}static get defaultNumberingSystem(){return nf}static set defaultNumberingSystem(T){nf=T}static get defaultOutputCalendar(){return pf}static set defaultOutputCalendar(T){pf=T}static get defaultWeekSettings(){return uf}static set defaultWeekSettings(T){uf=F8(T)}static get twoDigitCutoffYear(){return of}static set twoDigitCutoffYear(T){of=T%100}static get throwOnInvalid(){return lf}static set throwOnInvalid(T){lf=T}static resetCaches(){DT.resetCache(),vJ.resetCache(),FT.resetCache(),Jy()}}class WJ{constructor(T,$){this.reason=T,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var vG=[0,31,59,90,120,151,181,212,243,273,304,334],mG=[0,31,60,91,121,152,182,213,244,274,305,335];function XJ(T,$){return new WJ("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${T}, which is invalid`)}function K8(T,$,J){let S=new Date(Date.UTC(T,$-1,J));if(T<100&&T>=0)S.setUTCFullYear(S.getUTCFullYear()-1900);let F=S.getUTCDay();return F===0?7:F}function cG(T,$,J){return J+(aM(T)?mG:vG)[$-1]}function gG(T,$){let J=aM(T)?mG:vG,S=J.findIndex((M)=>M<$),F=$-J[S];return{month:S+1,day:F}}function f8(T,$){return(T-$+7)%7+1}function JW(T,$=4,J=1){let{year:S,month:F,day:M}=T,A=cG(S,F,M),W=f8(K8(S,F,M),J),X=Math.floor((A-W+14-$)/7),K;if(X<1)K=S-1,X=rM(K,$,J);else if(X>rM(S,$,J))K=S+1,X=1;else K=S;return{weekYear:K,weekNumber:X,weekday:W,...XW(T)}}function df(T,$=4,J=1){let{weekYear:S,weekNumber:F,weekday:M}=T,A=f8(K8(S,1,$),J),W=Y0(S),X=F*7+M-A-7+$,K;if(X<1)K=S-1,X+=Y0(K);else if(X>W)K=S+1,X-=Y0(S);else K=S;let{month:f,day:G}=gG(K,X);return{year:K,month:f,day:G,...XW(T)}}function dK(T){let{year:$,month:J,day:S}=T,F=cG($,J,S);return{year:$,ordinal:F,...XW(T)}}function rf(T){let{year:$,ordinal:J}=T,{month:S,day:F}=gG($,J);return{year:$,month:S,day:F,...XW(T)}}function tf(T,$){if(!MT(T.localWeekday)||!MT(T.localWeekNumber)||!MT(T.localWeekYear)){if(!MT(T.weekday)||!MT(T.weekNumber)||!MT(T.weekYear))throw new fF("Cannot mix locale-based week fields with ISO-based week fields");if(!MT(T.localWeekday))T.weekday=T.localWeekday;if(!MT(T.localWeekNumber))T.weekNumber=T.localWeekNumber;if(!MT(T.localWeekYear))T.weekYear=T.localWeekYear;return delete T.localWeekday,delete T.localWeekNumber,delete T.localWeekYear,{minDaysInFirstWeek:$.getMinDaysInFirstWeek(),startOfWeek:$.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function Sy(T,$=4,J=1){let S=MW(T.weekYear),F=KJ(T.weekNumber,1,rM(T.weekYear,$,J)),M=KJ(T.weekday,1,7);if(!S)return XJ("weekYear",T.weekYear);else if(!F)return XJ("week",T.weekNumber);else if(!M)return XJ("weekday",T.weekday);else return!1}function Fy(T){let $=MW(T.year),J=KJ(T.ordinal,1,Y0(T.year));if(!$)return XJ("year",T.year);else if(!J)return XJ("ordinal",T.ordinal);else return!1}function nG(T){let $=MW(T.year),J=KJ(T.month,1,12),S=KJ(T.day,1,SW(T.year,T.month));if(!$)return XJ("year",T.year);else if(!J)return XJ("month",T.month);else if(!S)return XJ("day",T.day);else return!1}function pG(T){let{hour:$,minute:J,second:S,millisecond:F}=T,M=KJ($,0,23)||$===24&&J===0&&S===0&&F===0,A=KJ(J,0,59),W=KJ(S,0,59),X=KJ(F,0,999);if(!M)return XJ("hour",$);else if(!A)return XJ("minute",J);else if(!W)return XJ("second",S);else if(!X)return XJ("millisecond",F);else return!1}function MT(T){return typeof T==="undefined"}function jS(T){return typeof T==="number"}function MW(T){return typeof T==="number"&&T%1===0}function My(T){return typeof T==="string"}function Ay(T){return Object.prototype.toString.call(T)==="[object Date]"}function iG(){try{return typeof Intl!=="undefined"&&!!Intl.RelativeTimeFormat}catch(T){return!1}}function oG(){try{return typeof Intl!=="undefined"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(T){return!1}}function Wy(T){return Array.isArray(T)?T:[T]}function af(T,$,J){if(T.length===0)return;return T.reduce((S,F)=>{let M=[$(F),F];if(!S)return M;else if(J(S[0],M[0])===S[0])return S;else return M},null)[1]}function Xy(T,$){return $.reduce((J,S)=>{return J[S]=T[S],J},{})}function y0(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function F8(T){if(T==null)return null;else if(typeof T!=="object")throw new y$("Week settings must be an object");else{if(!KJ(T.firstDay,1,7)||!KJ(T.minimalDays,1,7)||!Array.isArray(T.weekend)||T.weekend.some(($)=>!KJ($,1,7)))throw new y$("Invalid week settings");return{firstDay:T.firstDay,minimalDays:T.minimalDays,weekend:Array.from(T.weekend)}}}function KJ(T,$,J){return MW(T)&&T>=$&&T<=J}function Ky(T,$){return T-$*Math.floor(T/$)}function sT(T,$=2){let J=T<0,S;if(J)S="-"+(""+-T).padStart($,"0");else S=(""+T).padStart($,"0");return S}function NS(T){if(MT(T)||T===null||T==="")return;else return parseInt(T,10)}function XF(T){if(MT(T)||T===null||T==="")return;else return parseFloat(T)}function G8(T){if(MT(T)||T===null||T==="")return;else{let $=parseFloat("0."+T)*1000;return Math.floor($)}}function w8(T,$,J=!1){let S=10**$;return(J?Math.trunc:Math.round)(T*S)/S}function aM(T){return T%4===0&&(T%100!==0||T%400===0)}function Y0(T){return aM(T)?366:365}function SW(T,$){let J=Ky($-1,12)+1,S=T+($-J)/12;if(J===2)return aM(S)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][J-1]}function AW(T){let $=Date.UTC(T.year,T.month-1,T.day,T.hour,T.minute,T.second,T.millisecond);if(T.year<100&&T.year>=0)$=new Date($),$.setUTCFullYear(T.year,T.month-1,T.day);return+$}function sf(T,$,J){return-f8(K8(T,1,$),J)+$-1}function rM(T,$=4,J=1){let S=sf(T,$,J),F=sf(T+1,$,J);return(Y0(T)-S+F)/7}function M8(T){if(T>99)return T;else return T>mT.twoDigitCutoffYear?1900+T:2000+T}function lG(T,$,J,S=null){let F=new Date(T),M={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(S)M.timeZone=S;let A={timeZoneName:$,...M},W=new Intl.DateTimeFormat(J,A).formatToParts(F).find((X)=>X.type.toLowerCase()==="timezonename");return W?W.value:null}function WW(T,$){let J=parseInt(T,10);if(Number.isNaN(J))J=0;let S=parseInt($,10)||0,F=J<0||Object.is(J,-0)?-S:S;return J*60+F}function uG(T){let $=Number(T);if(typeof T==="boolean"||T===""||Number.isNaN($))throw new y$(`Invalid unit value ${T}`);return $}function FW(T,$){let J={};for(let S in T)if(y0(T,S)){let F=T[S];if(F===void 0||F===null)continue;J[$(S)]=uG(F)}return J}function dM(T,$){let J=Math.trunc(Math.abs(T/60)),S=Math.trunc(Math.abs(T%60)),F=T>=0?"+":"-";switch($){case"short":return`${F}${sT(J,2)}:${sT(S,2)}`;case"narrow":return`${F}${J}${S>0?`:${S}`:""}`;case"techie":return`${F}${sT(J,2)}${sT(S,2)}`;default:throw new RangeError(`Value format ${$} is out of range for property format`)}}function XW(T){return Xy(T,["hour","minute","second","millisecond"])}var fy=["January","February","March","April","May","June","July","August","September","October","November","December"],dG=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Gy=["J","F","M","A","M","J","J","A","S","O","N","D"];function rG(T){switch(T){case"narrow":return[...Gy];case"short":return[...dG];case"long":return[...fy];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var tG=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],aG=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],wy=["M","T","W","T","F","S","S"];function sG(T){switch(T){case"narrow":return[...wy];case"short":return[...aG];case"long":return[...tG];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var eG=["AM","PM"],Ry=["Before Christ","Anno Domini"],Yy=["BC","AD"],_y=["B","A"];function Tw(T){switch(T){case"narrow":return[..._y];case"short":return[...Yy];case"long":return[...Ry];default:return null}}function yy(T){return eG[T.hour<12?0:1]}function Hy(T,$){return sG($)[T.weekday-1]}function ky(T,$){return rG($)[T.month-1]}function Qy(T,$){return Tw($)[T.year<0?0:1]}function Ey(T,$,J="always",S=!1){let F={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},M=["hours","minutes","seconds"].indexOf(T)===-1;if(J==="auto"&&M){let G=T==="days";switch($){case 1:return G?"tomorrow":`next ${F[T][0]}`;case-1:return G?"yesterday":`last ${F[T][0]}`;case 0:return G?"today":`this ${F[T][0]}`}}let A=Object.is($,-0)||$<0,W=Math.abs($),X=W===1,K=F[T],f=S?X?K[1]:K[2]||K[1]:X?F[T][0]:T;return A?`${W} ${f} ago`:`in ${W} ${f}`}function ef(T,$){let J="";for(let S of T)if(S.literal)J+=S.val;else J+=$(S.val);return J}var zy={D:$W,DD:yG,DDD:HG,DDDD:kG,t:QG,tt:EG,ttt:zG,tttt:OG,T:UG,TT:DG,TTT:VG,TTTT:BG,f:LG,ff:CG,fff:qG,ffff:IG,F:NG,FF:jG,FFF:xG,FFFF:ZG};class B${static create(T,$={}){return new B$(T,$)}static parseFormat(T){let $=null,J="",S=!1,F=[];for(let M=0;M<T.length;M++){let A=T.charAt(M);if(A==="'"){if(J.length>0)F.push({literal:S||/^\s+$/.test(J),val:J});$=null,J="",S=!S}else if(S)J+=A;else if(A===$)J+=A;else{if(J.length>0)F.push({literal:/^\s+$/.test(J),val:J});J=A,$=A}}if(J.length>0)F.push({literal:S||/^\s+$/.test(J),val:J});return F}static macroTokenToFormatOpts(T){return zy[T]}constructor(T,$){this.opts=$,this.loc=T,this.systemLoc=null}formatWithSystemDefault(T,$){if(this.systemLoc===null)this.systemLoc=this.loc.redefaultToSystem();return this.systemLoc.dtFormatter(T,{...this.opts,...$}).format()}dtFormatter(T,$={}){return this.loc.dtFormatter(T,{...this.opts,...$})}formatDateTime(T,$){return this.dtFormatter(T,$).format()}formatDateTimeParts(T,$){return this.dtFormatter(T,$).formatToParts()}formatInterval(T,$){return this.dtFormatter(T.start,$).dtf.formatRange(T.start.toJSDate(),T.end.toJSDate())}resolvedOptions(T,$){return this.dtFormatter(T,$).resolvedOptions()}num(T,$=0){if(this.opts.forceSimple)return sT(T,$);let J={...this.opts};if($>0)J.padTo=$;return this.loc.numberFormatter(J).format(T)}formatDateTimeFromString(T,$){let J=this.loc.listingMode()==="en",S=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",F=(w,y)=>this.loc.extract(T,w,y),M=(w)=>{if(T.isOffsetFixed&&T.offset===0&&w.allowZ)return"Z";return T.isValid?T.zone.formatOffset(T.ts,w.format):""},A=()=>J?yy(T):F({hour:"numeric",hourCycle:"h12"},"dayperiod"),W=(w,y)=>J?ky(T,w):F(y?{month:w}:{month:w,day:"numeric"},"month"),X=(w,y)=>J?Hy(T,w):F(y?{weekday:w}:{weekday:w,month:"long",day:"numeric"},"weekday"),K=(w)=>{let y=B$.macroTokenToFormatOpts(w);if(y)return this.formatWithSystemDefault(T,y);else return w},f=(w)=>J?Qy(T,w):F({era:w},"era"),G=(w)=>{switch(w){case"S":return this.num(T.millisecond);case"u":case"SSS":return this.num(T.millisecond,3);case"s":return this.num(T.second);case"ss":return this.num(T.second,2);case"uu":return this.num(Math.floor(T.millisecond/10),2);case"uuu":return this.num(Math.floor(T.millisecond/100));case"m":return this.num(T.minute);case"mm":return this.num(T.minute,2);case"h":return this.num(T.hour%12===0?12:T.hour%12);case"hh":return this.num(T.hour%12===0?12:T.hour%12,2);case"H":return this.num(T.hour);case"HH":return this.num(T.hour,2);case"Z":return M({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return M({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return M({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return T.zone.offsetName(T.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return T.zone.offsetName(T.ts,{format:"long",locale:this.loc.locale});case"z":return T.zoneName;case"a":return A();case"d":return S?F({day:"numeric"},"day"):this.num(T.day);case"dd":return S?F({day:"2-digit"},"day"):this.num(T.day,2);case"c":return this.num(T.weekday);case"ccc":return X("short",!0);case"cccc":return X("long",!0);case"ccccc":return X("narrow",!0);case"E":return this.num(T.weekday);case"EEE":return X("short",!1);case"EEEE":return X("long",!1);case"EEEEE":return X("narrow",!1);case"L":return S?F({month:"numeric",day:"numeric"},"month"):this.num(T.month);case"LL":return S?F({month:"2-digit",day:"numeric"},"month"):this.num(T.month,2);case"LLL":return W("short",!0);case"LLLL":return W("long",!0);case"LLLLL":return W("narrow",!0);case"M":return S?F({month:"numeric"},"month"):this.num(T.month);case"MM":return S?F({month:"2-digit"},"month"):this.num(T.month,2);case"MMM":return W("short",!1);case"MMMM":return W("long",!1);case"MMMMM":return W("narrow",!1);case"y":return S?F({year:"numeric"},"year"):this.num(T.year);case"yy":return S?F({year:"2-digit"},"year"):this.num(T.year.toString().slice(-2),2);case"yyyy":return S?F({year:"numeric"},"year"):this.num(T.year,4);case"yyyyyy":return S?F({year:"numeric"},"year"):this.num(T.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(T.weekYear.toString().slice(-2),2);case"kkkk":return this.num(T.weekYear,4);case"W":return this.num(T.weekNumber);case"WW":return this.num(T.weekNumber,2);case"n":return this.num(T.localWeekNumber);case"nn":return this.num(T.localWeekNumber,2);case"ii":return this.num(T.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(T.localWeekYear,4);case"o":return this.num(T.ordinal);case"ooo":return this.num(T.ordinal,3);case"q":return this.num(T.quarter);case"qq":return this.num(T.quarter,2);case"X":return this.num(Math.floor(T.ts/1000));case"x":return this.num(T.ts);default:return K(w)}};return ef(B$.parseFormat($),G)}formatDurationFromString(T,$){let J=(W)=>{switch(W[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},S=(W)=>(X)=>{let K=J(X);if(K)return this.num(W.get(K),X.length);else return X},F=B$.parseFormat($),M=F.reduce((W,{literal:X,val:K})=>X?W:W.concat(K),[]),A=T.shiftTo(...M.map(J).filter((W)=>W));return ef(F,S(A))}}var $w=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function H0(...T){let $=T.reduce((J,S)=>J+S.source,"");return RegExp(`^${$}$`)}function k0(...T){return($)=>T.reduce(([J,S,F],M)=>{let[A,W,X]=M($,F);return[{...J,...A},W||S,X]},[{},null,1]).slice(0,2)}function Q0(T,...$){if(T==null)return[null,null];for(let[J,S]of $){let F=J.exec(T);if(F)return S(F)}return[null,null]}function Jw(...T){return($,J)=>{let S={},F;for(F=0;F<T.length;F++)S[T[F]]=NS($[J+F]);return[S,null,J+F]}}var Sw=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Oy=`(?:${Sw.source}?(?:\\[(${$w.source})\\])?)?`,R8=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Fw=RegExp(`${R8.source}${Oy}`),Y8=RegExp(`(?:T${Fw.source})?`),Uy=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Dy=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Vy=/(\d{4})-?(\d{3})/,By=Jw("weekYear","weekNumber","weekDay"),Ly=Jw("year","ordinal"),Ny=/(\d{4})-(\d\d)-(\d\d)/,Mw=RegExp(`${R8.source} ?(?:${Sw.source}|(${$w.source}))?`),Cy=RegExp(`(?: ${Mw.source})?`);function _0(T,$,J){let S=T[$];return MT(S)?J:NS(S)}function jy(T,$){return[{year:_0(T,$),month:_0(T,$+1,1),day:_0(T,$+2,1)},null,$+3]}function E0(T,$){return[{hours:_0(T,$,0),minutes:_0(T,$+1,0),seconds:_0(T,$+2,0),milliseconds:G8(T[$+3])},null,$+4]}function sM(T,$){let J=!T[$]&&!T[$+1],S=WW(T[$+1],T[$+2]),F=J?null:L$.instance(S);return[{},F,$+3]}function eM(T,$){let J=T[$]?vJ.create(T[$]):null;return[{},J,$+1]}var qy=RegExp(`^T?${R8.source}$`),xy=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Iy(T){let[$,J,S,F,M,A,W,X,K]=T,f=$[0]==="-",G=X&&X[0]==="-",w=(y,H=!1)=>y!==void 0&&(H||y&&f)?-y:y;return[{years:w(XF(J)),months:w(XF(S)),weeks:w(XF(F)),days:w(XF(M)),hours:w(XF(A)),minutes:w(XF(W)),seconds:w(XF(X),X==="-0"),milliseconds:w(G8(K),G)}]}var Zy={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function _8(T,$,J,S,F,M,A){let W={year:$.length===2?M8(NS($)):NS($),month:dG.indexOf(J)+1,day:NS(S),hour:NS(F),minute:NS(M)};if(A)W.second=NS(A);if(T)W.weekday=T.length>3?tG.indexOf(T)+1:aG.indexOf(T)+1;return W}var by=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function hy(T){let[,$,J,S,F,M,A,W,X,K,f,G]=T,w=_8($,F,S,J,M,A,W),y;if(X)y=Zy[X];else if(K)y=0;else y=WW(f,G);return[w,new L$(y)]}function Py(T){return T.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var vy=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,my=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,cy=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function TG(T){let[,$,J,S,F,M,A,W]=T;return[_8($,F,S,J,M,A,W),L$.utcInstance]}function gy(T){let[,$,J,S,F,M,A,W]=T;return[_8($,W,J,S,F,M,A),L$.utcInstance]}var ny=H0(Uy,Y8),py=H0(Dy,Y8),iy=H0(Vy,Y8),oy=H0(Fw),Aw=k0(jy,E0,sM,eM),ly=k0(By,E0,sM,eM),uy=k0(Ly,E0,sM,eM),dy=k0(E0,sM,eM);function ry(T){return Q0(T,[ny,Aw],[py,ly],[iy,uy],[oy,dy])}function ty(T){return Q0(Py(T),[by,hy])}function ay(T){return Q0(T,[vy,TG],[my,TG],[cy,gy])}function sy(T){return Q0(T,[xy,Iy])}var ey=k0(E0);function TH(T){return Q0(T,[qy,ey])}var $H=H0(Ny,Cy),JH=H0(Mw),SH=k0(E0,sM,eM);function FH(T){return Q0(T,[$H,Aw],[JH,SH])}var $G="Invalid Duration",Ww={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:604800000},days:{hours:24,minutes:1440,seconds:86400,milliseconds:86400000},hours:{minutes:60,seconds:3600,milliseconds:3600000},minutes:{seconds:60,milliseconds:60000},seconds:{milliseconds:1000}},MH={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536000,milliseconds:31536000000},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:7862400000},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592000,milliseconds:2592000000},...Ww},AJ=365.2425,K0=30.436875,AH={years:{quarters:4,months:12,weeks:AJ/7,days:AJ,hours:AJ*24,minutes:AJ*24*60,seconds:AJ*24*60*60,milliseconds:AJ*24*60*60*1000},quarters:{months:3,weeks:AJ/28,days:AJ/4,hours:AJ*24/4,minutes:AJ*24*60/4,seconds:AJ*24*60*60/4,milliseconds:AJ*24*60*60*1000/4},months:{weeks:K0/7,days:K0,hours:K0*24,minutes:K0*24*60,seconds:K0*24*60*60,milliseconds:K0*24*60*60*1000},...Ww},GF=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],WH=GF.slice(0).reverse();function LS(T,$,J=!1){let S={values:J?$.values:{...T.values,...$.values||{}},loc:T.loc.clone($.loc),conversionAccuracy:$.conversionAccuracy||T.conversionAccuracy,matrix:$.matrix||T.matrix};return new QT(S)}function Xw(T,$){var J;let S=(J=$.milliseconds)!=null?J:0;for(let F of WH.slice(1))if($[F])S+=$[F]*T[F].milliseconds;return S}function JG(T,$){let J=Xw(T,$)<0?-1:1;GF.reduceRight((S,F)=>{if(!MT($[F])){if(S){let M=$[S]*J,A=T[F][S],W=Math.floor(M/A);$[F]+=W*J,$[S]-=W*A*J}return F}else return S},null),GF.reduce((S,F)=>{if(!MT($[F])){if(S){let M=$[S]%1;$[S]-=M,$[F]+=M*T[S][F]}return F}else return S},null)}function XH(T){let $={};for(let[J,S]of Object.entries(T))if(S!==0)$[J]=S;return $}class QT{constructor(T){let $=T.conversionAccuracy==="longterm"||!1,J=$?AH:MH;if(T.matrix)J=T.matrix;this.values=T.values,this.loc=T.loc||DT.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=T.invalid||null,this.matrix=J,this.isLuxonDuration=!0}static fromMillis(T,$){return QT.fromObject({milliseconds:T},$)}static fromObject(T,$={}){if(T==null||typeof T!=="object")throw new y$(`Duration.fromObject: argument expected to be an object, got ${T===null?"null":typeof T}`);return new QT({values:FW(T,QT.normalizeUnit),loc:DT.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(T){if(jS(T))return QT.fromMillis(T);else if(QT.isDuration(T))return T;else if(typeof T==="object")return QT.fromObject(T);else throw new y$(`Unknown duration argument ${T} of type ${typeof T}`)}static fromISO(T,$){let[J]=sy(T);if(J)return QT.fromObject(J,$);else return QT.invalid("unparsable",`the input "${T}" can't be parsed as ISO 8601`)}static fromISOTime(T,$){let[J]=TH(T);if(J)return QT.fromObject(J,$);else return QT.invalid("unparsable",`the input "${T}" can't be parsed as ISO 8601`)}static invalid(T,$=null){if(!T)throw new y$("need to specify a reason the Duration is invalid");let J=T instanceof WJ?T:new WJ(T,$);if(mT.throwOnInvalid)throw new _G(J);else return new QT({invalid:J})}static normalizeUnit(T){let $={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[T?T.toLowerCase():T];if(!$)throw new A8(T);return $}static isDuration(T){return T&&T.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(T,$={}){let J={...$,floor:$.round!==!1&&$.floor!==!1};return this.isValid?B$.create(this.loc,J).formatDurationFromString(this,T):$G}toHuman(T={}){if(!this.isValid)return $G;let $=GF.map((J)=>{let S=this.values[J];if(MT(S))return null;return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...T,unit:J.slice(0,-1)}).format(S)}).filter((J)=>J);return this.loc.listFormatter({type:"conjunction",style:T.listStyle||"narrow",...T}).format($)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let T="P";if(this.years!==0)T+=this.years+"Y";if(this.months!==0||this.quarters!==0)T+=this.months+this.quarters*3+"M";if(this.weeks!==0)T+=this.weeks+"W";if(this.days!==0)T+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)T+="T";if(this.hours!==0)T+=this.hours+"H";if(this.minutes!==0)T+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)T+=w8(this.seconds+this.milliseconds/1000,3)+"S";if(T==="P")T+="T0S";return T}toISOTime(T={}){if(!this.isValid)return null;let $=this.toMillis();if($<0||$>=86400000)return null;return T={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...T,includeOffset:!1},FT.fromMillis($,{zone:"UTC"}).toISOTime(T)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Duration { values: ${JSON.stringify(this.values)} }`;else return`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){if(!this.isValid)return NaN;return Xw(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(T){if(!this.isValid)return this;let $=QT.fromDurationLike(T),J={};for(let S of GF)if(y0($.values,S)||y0(this.values,S))J[S]=$.get(S)+this.get(S);return LS(this,{values:J},!0)}minus(T){if(!this.isValid)return this;let $=QT.fromDurationLike(T);return this.plus($.negate())}mapUnits(T){if(!this.isValid)return this;let $={};for(let J of Object.keys(this.values))$[J]=uG(T(this.values[J],J));return LS(this,{values:$},!0)}get(T){return this[QT.normalizeUnit(T)]}set(T){if(!this.isValid)return this;let $={...this.values,...FW(T,QT.normalizeUnit)};return LS(this,{values:$})}reconfigure({locale:T,numberingSystem:$,conversionAccuracy:J,matrix:S}={}){let M={loc:this.loc.clone({locale:T,numberingSystem:$}),matrix:S,conversionAccuracy:J};return LS(this,M)}as(T){return this.isValid?this.shiftTo(T).get(T):NaN}normalize(){if(!this.isValid)return this;let T=this.toObject();return JG(this.matrix,T),LS(this,{values:T},!0)}rescale(){if(!this.isValid)return this;let T=XH(this.normalize().shiftToAll().toObject());return LS(this,{values:T},!0)}shiftTo(...T){if(!this.isValid)return this;if(T.length===0)return this;T=T.map((M)=>QT.normalizeUnit(M));let $={},J={},S=this.toObject(),F;for(let M of GF)if(T.indexOf(M)>=0){F=M;let A=0;for(let X in J)A+=this.matrix[X][M]*J[X],J[X]=0;if(jS(S[M]))A+=S[M];let W=Math.trunc(A);$[M]=W,J[M]=(A*1000-W*1000)/1000}else if(jS(S[M]))J[M]=S[M];for(let M in J)if(J[M]!==0)$[F]+=M===F?J[M]:J[M]/this.matrix[F][M];return JG(this.matrix,$),LS(this,{values:$},!0)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;let T={};for(let $ of Object.keys(this.values))T[$]=this.values[$]===0?0:-this.values[$];return LS(this,{values:T},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(T){if(!this.isValid||!T.isValid)return!1;if(!this.loc.equals(T.loc))return!1;function $(J,S){if(J===void 0||J===0)return S===void 0||S===0;return J===S}for(let J of GF)if(!$(this.values[J],T.values[J]))return!1;return!0}}var f0="Invalid Interval";function KH(T,$){if(!T||!T.isValid)return iT.invalid("missing or invalid start");else if(!$||!$.isValid)return iT.invalid("missing or invalid end");else if($<T)return iT.invalid("end before start",`The end of an interval must be after its start, but you had start=${T.toISO()} and end=${$.toISO()}`);else return null}class iT{constructor(T){this.s=T.start,this.e=T.end,this.invalid=T.invalid||null,this.isLuxonInterval=!0}static invalid(T,$=null){if(!T)throw new y$("need to specify a reason the Interval is invalid");let J=T instanceof WJ?T:new WJ(T,$);if(mT.throwOnInvalid)throw new YG(J);else return new iT({invalid:J})}static fromDateTimes(T,$){let J=oM(T),S=oM($),F=KH(J,S);if(F==null)return new iT({start:J,end:S});else return F}static after(T,$){let J=QT.fromDurationLike($),S=oM(T);return iT.fromDateTimes(S,S.plus(J))}static before(T,$){let J=QT.fromDurationLike($),S=oM(T);return iT.fromDateTimes(S.minus(J),S)}static fromISO(T,$){let[J,S]=(T||"").split("/",2);if(J&&S){let F,M;try{F=FT.fromISO(J,$),M=F.isValid}catch(X){M=!1}let A,W;try{A=FT.fromISO(S,$),W=A.isValid}catch(X){W=!1}if(M&&W)return iT.fromDateTimes(F,A);if(M){let X=QT.fromISO(S,$);if(X.isValid)return iT.after(F,X)}else if(W){let X=QT.fromISO(J,$);if(X.isValid)return iT.before(A,X)}}return iT.invalid("unparsable",`the input "${T}" can't be parsed as ISO 8601`)}static isInterval(T){return T&&T.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(T="milliseconds"){return this.isValid?this.toDuration(...[T]).get(T):NaN}count(T="milliseconds",$){if(!this.isValid)return NaN;let J=this.start.startOf(T,$),S;if($!=null&&$.useLocaleWeeks)S=this.end.reconfigure({locale:J.locale});else S=this.end;return S=S.startOf(T,$),Math.floor(S.diff(J,T).get(T))+(S.valueOf()!==this.end.valueOf())}hasSame(T){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,T):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(T){if(!this.isValid)return!1;return this.s>T}isBefore(T){if(!this.isValid)return!1;return this.e<=T}contains(T){if(!this.isValid)return!1;return this.s<=T&&this.e>T}set({start:T,end:$}={}){if(!this.isValid)return this;return iT.fromDateTimes(T||this.s,$||this.e)}splitAt(...T){if(!this.isValid)return[];let $=T.map(oM).filter((M)=>this.contains(M)).sort((M,A)=>M.toMillis()-A.toMillis()),J=[],{s:S}=this,F=0;while(S<this.e){let M=$[F]||this.e,A=+M>+this.e?this.e:M;J.push(iT.fromDateTimes(S,A)),S=A,F+=1}return J}splitBy(T){let $=QT.fromDurationLike(T);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:J}=this,S=1,F,M=[];while(J<this.e){let A=this.start.plus($.mapUnits((W)=>W*S));F=+A>+this.e?this.e:A,M.push(iT.fromDateTimes(J,F)),J=F,S+=1}return M}divideEqually(T){if(!this.isValid)return[];return this.splitBy(this.length()/T).slice(0,T)}overlaps(T){return this.e>T.s&&this.s<T.e}abutsStart(T){if(!this.isValid)return!1;return+this.e===+T.s}abutsEnd(T){if(!this.isValid)return!1;return+T.e===+this.s}engulfs(T){if(!this.isValid)return!1;return this.s<=T.s&&this.e>=T.e}equals(T){if(!this.isValid||!T.isValid)return!1;return this.s.equals(T.s)&&this.e.equals(T.e)}intersection(T){if(!this.isValid)return this;let $=this.s>T.s?this.s:T.s,J=this.e<T.e?this.e:T.e;if($>=J)return null;else return iT.fromDateTimes($,J)}union(T){if(!this.isValid)return this;let $=this.s<T.s?this.s:T.s,J=this.e>T.e?this.e:T.e;return iT.fromDateTimes($,J)}static merge(T){let[$,J]=T.sort((S,F)=>S.s-F.s).reduce(([S,F],M)=>{if(!F)return[S,M];else if(F.overlaps(M)||F.abutsStart(M))return[S,F.union(M)];else return[S.concat([F]),M]},[[],null]);if(J)$.push(J);return $}static xor(T){let $=null,J=0,S=[],F=T.map((W)=>[{time:W.s,type:"s"},{time:W.e,type:"e"}]),M=Array.prototype.concat(...F),A=M.sort((W,X)=>W.time-X.time);for(let W of A)if(J+=W.type==="s"?1:-1,J===1)$=W.time;else{if($&&+$!==+W.time)S.push(iT.fromDateTimes($,W.time));$=null}return iT.merge(S)}difference(...T){return iT.xor([this].concat(T)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return f0;return`[${this.s.toISO()} \u2013 ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(T=$W,$={}){return this.isValid?B$.create(this.s.loc.clone($),T).formatInterval(this):f0}toISO(T){if(!this.isValid)return f0;return`${this.s.toISO(T)}/${this.e.toISO(T)}`}toISODate(){if(!this.isValid)return f0;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(T){if(!this.isValid)return f0;return`${this.s.toISOTime(T)}/${this.e.toISOTime(T)}`}toFormat(T,{separator:$=" \u2013 "}={}){if(!this.isValid)return f0;return`${this.s.toFormat(T)}${$}${this.e.toFormat(T)}`}toDuration(T,$){if(!this.isValid)return QT.invalid(this.invalidReason);return this.e.diff(this.s,T,$)}mapEndpoints(T){return iT.fromDateTimes(T(this.s),T(this.e))}}class R0{static hasDST(T=mT.defaultZone){let $=FT.now().setZone(T).set({month:12});return!T.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(T){return vJ.isValidZone(T)}static normalizeZone(T){return CS(T,mT.defaultZone)}static getStartOfWeek({locale:T=null,locObj:$=null}={}){return($||DT.create(T)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:T=null,locObj:$=null}={}){return($||DT.create(T)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:T=null,locObj:$=null}={}){return($||DT.create(T)).getWeekendDays().slice()}static months(T="long",{locale:$=null,numberingSystem:J=null,locObj:S=null,outputCalendar:F="gregory"}={}){return(S||DT.create($,J,F)).months(T)}static monthsFormat(T="long",{locale:$=null,numberingSystem:J=null,locObj:S=null,outputCalendar:F="gregory"}={}){return(S||DT.create($,J,F)).months(T,!0)}static weekdays(T="long",{locale:$=null,numberingSystem:J=null,locObj:S=null}={}){return(S||DT.create($,J,null)).weekdays(T)}static weekdaysFormat(T="long",{locale:$=null,numberingSystem:J=null,locObj:S=null}={}){return(S||DT.create($,J,null)).weekdays(T,!0)}static meridiems({locale:T=null}={}){return DT.create(T).meridiems()}static eras(T="short",{locale:$=null}={}){return DT.create($,null,"gregory").eras(T)}static features(){return{relative:iG(),localeWeek:oG()}}}function SG(T,$){let J=(F)=>F.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),S=J($)-J(T);return Math.floor(QT.fromMillis(S).as("days"))}function fH(T,$,J){let S=[["years",(X,K)=>K.year-X.year],["quarters",(X,K)=>K.quarter-X.quarter+(K.year-X.year)*4],["months",(X,K)=>K.month-X.month+(K.year-X.year)*12],["weeks",(X,K)=>{let f=SG(X,K);return(f-f%7)/7}],["days",SG]],F={},M=T,A,W;for(let[X,K]of S)if(J.indexOf(X)>=0)if(A=X,F[X]=K(T,$),W=M.plus(F),W>$){if(F[X]--,T=M.plus(F),T>$)W=T,F[X]--,T=M.plus(F)}else T=W;return[T,F,W,A]}function GH(T,$,J,S){let[F,M,A,W]=fH(T,$,J),X=$-F,K=J.filter((G)=>["hours","minutes","seconds","milliseconds"].indexOf(G)>=0);if(K.length===0){if(A<$)A=F.plus({[W]:1});if(A!==F)M[W]=(M[W]||0)+X/(A-F)}let f=QT.fromObject(M,S);if(K.length>0)return QT.fromMillis(X,S).shiftTo(...K).plus(f);else return f}var wH="missing Intl.DateTimeFormat.formatToParts support";function UT(T,$=(J)=>J){return{regex:T,deser:([J])=>$($y(J))}}var RH=String.fromCharCode(160),Kw=`[ ${RH}]`,fw=new RegExp(Kw,"g");function YH(T){return T.replace(/\./g,"\\.?").replace(fw,Kw)}function FG(T){return T.replace(/\./g,"").replace(fw," ").toLowerCase()}function BJ(T,$){if(T===null)return null;else return{regex:RegExp(T.map(YH).join("|")),deser:([J])=>T.findIndex((S)=>FG(J)===FG(S))+$}}function MG(T,$){return{regex:T,deser:([,J,S])=>WW(J,S),groups:$}}function dA(T){return{regex:T,deser:([$])=>$}}function _H(T){return T.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function yH(T,$){let J=VJ($),S=VJ($,"{2}"),F=VJ($,"{3}"),M=VJ($,"{4}"),A=VJ($,"{6}"),W=VJ($,"{1,2}"),X=VJ($,"{1,3}"),K=VJ($,"{1,6}"),f=VJ($,"{1,9}"),G=VJ($,"{2,4}"),w=VJ($,"{4,6}"),y=(E)=>({regex:RegExp(_H(E.val)),deser:([B])=>B,literal:!0}),O=((E)=>{if(T.literal)return y(E);switch(E.val){case"G":return BJ($.eras("short"),0);case"GG":return BJ($.eras("long"),0);case"y":return UT(K);case"yy":return UT(G,M8);case"yyyy":return UT(M);case"yyyyy":return UT(w);case"yyyyyy":return UT(A);case"M":return UT(W);case"MM":return UT(S);case"MMM":return BJ($.months("short",!0),1);case"MMMM":return BJ($.months("long",!0),1);case"L":return UT(W);case"LL":return UT(S);case"LLL":return BJ($.months("short",!1),1);case"LLLL":return BJ($.months("long",!1),1);case"d":return UT(W);case"dd":return UT(S);case"o":return UT(X);case"ooo":return UT(F);case"HH":return UT(S);case"H":return UT(W);case"hh":return UT(S);case"h":return UT(W);case"mm":return UT(S);case"m":return UT(W);case"q":return UT(W);case"qq":return UT(S);case"s":return UT(W);case"ss":return UT(S);case"S":return UT(X);case"SSS":return UT(F);case"u":return dA(f);case"uu":return dA(W);case"uuu":return UT(J);case"a":return BJ($.meridiems(),0);case"kkkk":return UT(M);case"kk":return UT(G,M8);case"W":return UT(W);case"WW":return UT(S);case"E":case"c":return UT(J);case"EEE":return BJ($.weekdays("short",!1),1);case"EEEE":return BJ($.weekdays("long",!1),1);case"ccc":return BJ($.weekdays("short",!0),1);case"cccc":return BJ($.weekdays("long",!0),1);case"Z":case"ZZ":return MG(new RegExp(`([+-]${W.source})(?::(${S.source}))?`),2);case"ZZZ":return MG(new RegExp(`([+-]${W.source})(${S.source})?`),2);case"z":return dA(/[a-z_+-/]{1,256}?/i);case" ":return dA(/[^\S\n\r]/);default:return y(E)}})(T)||{invalidReason:wH};return O.token=T,O}var HH={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function kH(T,$,J){let{type:S,value:F}=T;if(S==="literal"){let X=/^\s+$/.test(F);return{literal:!X,val:X?" ":F}}let M=$[S],A=S;if(S==="hour")if($.hour12!=null)A=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")A="hour12";else A="hour24";else A=J.hour12?"hour12":"hour24";let W=HH[A];if(typeof W==="object")W=W[M];if(W)return{literal:!1,val:W};return}function QH(T){return[`^${T.map((J)=>J.regex).reduce((J,S)=>`${J}(${S.source})`,"")}$`,T]}function EH(T,$,J){let S=T.match($);if(S){let F={},M=1;for(let A in J)if(y0(J,A)){let W=J[A],X=W.groups?W.groups+1:1;if(!W.literal&&W.token)F[W.token.val[0]]=W.deser(S.slice(M,M+X));M+=X}return[S,F]}else return[S,{}]}function zH(T){let $=(M)=>{switch(M){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},J=null,S;if(!MT(T.z))J=vJ.create(T.z);if(!MT(T.Z)){if(!J)J=new L$(T.Z);S=T.Z}if(!MT(T.q))T.M=(T.q-1)*3+1;if(!MT(T.h)){if(T.h<12&&T.a===1)T.h+=12;else if(T.h===12&&T.a===0)T.h=0}if(T.G===0&&T.y)T.y=-T.y;if(!MT(T.u))T.S=G8(T.u);return[Object.keys(T).reduce((M,A)=>{let W=$(A);if(W)M[W]=T[A];return M},{}),J,S]}var rK=null;function OH(){if(!rK)rK=FT.fromMillis(1555555555555);return rK}function UH(T,$){if(T.literal)return T;let J=B$.macroTokenToFormatOpts(T.val),S=Rw(J,$);if(S==null||S.includes(void 0))return T;return S}function Gw(T,$){return Array.prototype.concat(...T.map((J)=>UH(J,$)))}class y8{constructor(T,$){if(this.locale=T,this.format=$,this.tokens=Gw(B$.parseFormat($),T),this.units=this.tokens.map((J)=>yH(J,T)),this.disqualifyingUnit=this.units.find((J)=>J.invalidReason),!this.disqualifyingUnit){let[J,S]=QH(this.units);this.regex=RegExp(J,"i"),this.handlers=S}}explainFromTokens(T){if(!this.isValid)return{input:T,tokens:this.tokens,invalidReason:this.invalidReason};else{let[$,J]=EH(T,this.regex,this.handlers),[S,F,M]=J?zH(J):[null,null,void 0];if(y0(J,"a")&&y0(J,"H"))throw new fF("Can't include meridiem when specifying 24-hour format");return{input:T,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:J,result:S,zone:F,specificOffset:M}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function ww(T,$,J){return new y8(T,J).explainFromTokens($)}function DH(T,$,J){let{result:S,zone:F,specificOffset:M,invalidReason:A}=ww(T,$,J);return[S,F,M,A]}function Rw(T,$){if(!T)return null;let S=B$.create($,T).dtFormatter(OH()),F=S.formatToParts(),M=S.resolvedOptions();return F.map((A)=>kH(A,T,M))}var tK="Invalid DateTime",AG=8640000000000000;function uM(T){return new WJ("unsupported zone",`the zone "${T.name}" is not supported`)}function aK(T){if(T.weekData===null)T.weekData=JW(T.c);return T.weekData}function sK(T){if(T.localWeekData===null)T.localWeekData=JW(T.c,T.loc.getMinDaysInFirstWeek(),T.loc.getStartOfWeek());return T.localWeekData}function KF(T,$){let J={ts:T.ts,zone:T.zone,c:T.c,o:T.o,loc:T.loc,invalid:T.invalid};return new FT({...J,...$,old:J})}function Yw(T,$,J){let S=T-$*60*1000,F=J.offset(S);if($===F)return[S,$];S-=(F-$)*60*1000;let M=J.offset(S);if(F===M)return[S,F];return[T-Math.min(F,M)*60*1000,Math.max(F,M)]}function rA(T,$){T+=$*60*1000;let J=new Date(T);return{year:J.getUTCFullYear(),month:J.getUTCMonth()+1,day:J.getUTCDate(),hour:J.getUTCHours(),minute:J.getUTCMinutes(),second:J.getUTCSeconds(),millisecond:J.getUTCMilliseconds()}}function sA(T,$,J){return Yw(AW(T),$,J)}function WG(T,$){let J=T.o,S=T.c.year+Math.trunc($.years),F=T.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,M={...T.c,year:S,month:F,day:Math.min(T.c.day,SW(S,F))+Math.trunc($.days)+Math.trunc($.weeks)*7},A=QT.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),W=AW(M),[X,K]=Yw(W,J,T.zone);if(A!==0)X+=A,K=T.zone.offset(X);return{ts:X,o:K}}function G0(T,$,J,S,F,M){let{setZone:A,zone:W}=J;if(T&&Object.keys(T).length!==0||$){let X=$||W,K=FT.fromObject(T,{...J,zone:X,specificOffset:M});return A?K:K.setZone(W)}else return FT.invalid(new WJ("unparsable",`the input "${F}" can't be parsed as ${S}`))}function tA(T,$,J=!0){return T.isValid?B$.create(DT.create("en-US"),{allowZ:J,forceSimple:!0}).formatDateTimeFromString(T,$):null}function eK(T,$){let J=T.c.year>9999||T.c.year<0,S="";if(J&&T.c.year>=0)S+="+";if(S+=sT(T.c.year,J?6:4),$)S+="-",S+=sT(T.c.month),S+="-",S+=sT(T.c.day);else S+=sT(T.c.month),S+=sT(T.c.day);return S}function XG(T,$,J,S,F,M){let A=sT(T.c.hour);if($){if(A+=":",A+=sT(T.c.minute),T.c.millisecond!==0||T.c.second!==0||!J)A+=":"}else A+=sT(T.c.minute);if(T.c.millisecond!==0||T.c.second!==0||!J){if(A+=sT(T.c.second),T.c.millisecond!==0||!S)A+=".",A+=sT(T.c.millisecond,3)}if(F)if(T.isOffsetFixed&&T.offset===0&&!M)A+="Z";else if(T.o<0)A+="-",A+=sT(Math.trunc(-T.o/60)),A+=":",A+=sT(Math.trunc(-T.o%60));else A+="+",A+=sT(Math.trunc(T.o/60)),A+=":",A+=sT(Math.trunc(T.o%60));if(M)A+="["+T.zone.ianaName+"]";return A}var _w={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},VH={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},BH={ordinal:1,hour:0,minute:0,second:0,millisecond:0},yw=["year","month","day","hour","minute","second","millisecond"],LH=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],NH=["year","ordinal","hour","minute","second","millisecond"];function CH(T){let $={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[T.toLowerCase()];if(!$)throw new A8(T);return $}function KG(T){switch(T.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return CH(T)}}function jH(T){if(!TW[T]){if(eA===void 0)eA=mT.now();TW[T]=T.offset(eA)}return TW[T]}function fG(T,$){let J=CS($.zone,mT.defaultZone);if(!J.isValid)return FT.invalid(uM(J));let S=DT.fromObject($),F,M;if(!MT(T.year)){for(let X of yw)if(MT(T[X]))T[X]=_w[X];let A=nG(T)||pG(T);if(A)return FT.invalid(A);let W=jH(J);[F,M]=sA(T,W,J)}else F=mT.now();return new FT({ts:F,zone:J,loc:S,o:M})}function GG(T,$,J){let S=MT(J.round)?!0:J.round,F=(A,W)=>{return A=w8(A,S||J.calendary?0:2,!0),$.loc.clone(J).relFormatter(J).format(A,W)},M=(A)=>{if(J.calendary)if(!$.hasSame(T,A))return $.startOf(A).diff(T.startOf(A),A).get(A);else return 0;else return $.diff(T,A).get(A)};if(J.unit)return F(M(J.unit),J.unit);for(let A of J.units){let W=M(A);if(Math.abs(W)>=1)return F(W,A)}return F(T>$?-0:0,J.units[J.units.length-1])}function wG(T){let $={},J;if(T.length>0&&typeof T[T.length-1]==="object")$=T[T.length-1],J=Array.from(T).slice(0,T.length-1);else J=Array.from(T);return[$,J]}var eA,TW={};class FT{constructor(T){let $=T.zone||mT.defaultZone,J=T.invalid||(Number.isNaN(T.ts)?new WJ("invalid input"):null)||(!$.isValid?uM($):null);this.ts=MT(T.ts)?mT.now():T.ts;let S=null,F=null;if(!J)if(T.old&&T.old.ts===this.ts&&T.old.zone.equals($))[S,F]=[T.old.c,T.old.o];else{let A=jS(T.o)&&!T.old?T.o:$.offset(this.ts);S=rA(this.ts,A),J=Number.isNaN(S.year)?new WJ("invalid input"):null,S=J?null:S,F=J?null:A}this._zone=$,this.loc=T.loc||DT.create(),this.invalid=J,this.weekData=null,this.localWeekData=null,this.c=S,this.o=F,this.isLuxonDateTime=!0}static now(){return new FT({})}static local(){let[T,$]=wG(arguments),[J,S,F,M,A,W,X]=$;return fG({year:J,month:S,day:F,hour:M,minute:A,second:W,millisecond:X},T)}static utc(){let[T,$]=wG(arguments),[J,S,F,M,A,W,X]=$;return T.zone=L$.utcInstance,fG({year:J,month:S,day:F,hour:M,minute:A,second:W,millisecond:X},T)}static fromJSDate(T,$={}){let J=Ay(T)?T.valueOf():NaN;if(Number.isNaN(J))return FT.invalid("invalid input");let S=CS($.zone,mT.defaultZone);if(!S.isValid)return FT.invalid(uM(S));return new FT({ts:J,zone:S,loc:DT.fromObject($)})}static fromMillis(T,$={}){if(!jS(T))throw new y$(`fromMillis requires a numerical input, but received a ${typeof T} with value ${T}`);else if(T<-AG||T>AG)return FT.invalid("Timestamp out of range");else return new FT({ts:T,zone:CS($.zone,mT.defaultZone),loc:DT.fromObject($)})}static fromSeconds(T,$={}){if(!jS(T))throw new y$("fromSeconds requires a numerical input");else return new FT({ts:T*1000,zone:CS($.zone,mT.defaultZone),loc:DT.fromObject($)})}static fromObject(T,$={}){T=T||{};let J=CS($.zone,mT.defaultZone);if(!J.isValid)return FT.invalid(uM(J));let S=DT.fromObject($),F=FW(T,KG),{minDaysInFirstWeek:M,startOfWeek:A}=tf(F,S),W=mT.now(),X=!MT($.specificOffset)?$.specificOffset:J.offset(W),K=!MT(F.ordinal),f=!MT(F.year),G=!MT(F.month)||!MT(F.day),w=f||G,y=F.weekYear||F.weekNumber;if((w||K)&&y)throw new fF("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(G&&K)throw new fF("Can't mix ordinal dates with month/day");let H=y||F.weekday&&!w,O,E,B=rA(W,X);if(H)O=LH,E=VH,B=JW(B,M,A);else if(K)O=NH,E=BH,B=dK(B);else O=yw,E=_w;let L=!1;for(let h of O){let k=F[h];if(!MT(k))L=!0;else if(L)F[h]=E[h];else F[h]=B[h]}let N=H?Sy(F,M,A):K?Fy(F):nG(F),I=N||pG(F);if(I)return FT.invalid(I);let U=H?df(F,M,A):K?rf(F):F,[Q,D]=sA(U,X,J),Z=new FT({ts:Q,zone:J,o:D,loc:S});if(F.weekday&&w&&T.weekday!==Z.weekday)return FT.invalid("mismatched weekday",`you can't specify both a weekday of ${F.weekday} and a date of ${Z.toISO()}`);if(!Z.isValid)return FT.invalid(Z.invalid);return Z}static fromISO(T,$={}){let[J,S]=ry(T);return G0(J,S,$,"ISO 8601",T)}static fromRFC2822(T,$={}){let[J,S]=ty(T);return G0(J,S,$,"RFC 2822",T)}static fromHTTP(T,$={}){let[J,S]=ay(T);return G0(J,S,$,"HTTP",$)}static fromFormat(T,$,J={}){if(MT(T)||MT($))throw new y$("fromFormat requires an input string and a format");let{locale:S=null,numberingSystem:F=null}=J,M=DT.fromOpts({locale:S,numberingSystem:F,defaultToEN:!0}),[A,W,X,K]=DH(M,T,$);if(K)return FT.invalid(K);else return G0(A,W,J,`format ${$}`,T,X)}static fromString(T,$,J={}){return FT.fromFormat(T,$,J)}static fromSQL(T,$={}){let[J,S]=FH(T);return G0(J,S,$,"SQL",T)}static invalid(T,$=null){if(!T)throw new y$("need to specify a reason the DateTime is invalid");let J=T instanceof WJ?T:new WJ(T,$);if(mT.throwOnInvalid)throw new RG(J);else return new FT({invalid:J})}static isDateTime(T){return T&&T.isLuxonDateTime||!1}static parseFormatForOpts(T,$={}){let J=Rw(T,DT.fromObject($));return!J?null:J.map((S)=>S?S.val:null).join("")}static expandFormat(T,$={}){return Gw(B$.parseFormat(T),DT.fromObject($)).map((S)=>S.val).join("")}static resetCache(){eA=void 0,TW={}}get(T){return this[T]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?aK(this).weekYear:NaN}get weekNumber(){return this.isValid?aK(this).weekNumber:NaN}get weekday(){return this.isValid?aK(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?sK(this).weekday:NaN}get localWeekNumber(){return this.isValid?sK(this).weekNumber:NaN}get localWeekYear(){return this.isValid?sK(this).weekYear:NaN}get ordinal(){return this.isValid?dK(this.c).ordinal:NaN}get monthShort(){return this.isValid?R0.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?R0.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?R0.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?R0.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"short",locale:this.locale});else return null}get offsetNameLong(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"long",locale:this.locale});else return null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed)return!1;else return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let T=86400000,$=60000,J=AW(this.c),S=this.zone.offset(J-T),F=this.zone.offset(J+T),M=this.zone.offset(J-S*$),A=this.zone.offset(J-F*$);if(M===A)return[this];let W=J-M*$,X=J-A*$,K=rA(W,M),f=rA(X,A);if(K.hour===f.hour&&K.minute===f.minute&&K.second===f.second&&K.millisecond===f.millisecond)return[KF(this,{ts:W}),KF(this,{ts:X})];return[this]}get isInLeapYear(){return aM(this.year)}get daysInMonth(){return SW(this.year,this.month)}get daysInYear(){return this.isValid?Y0(this.year):NaN}get weeksInWeekYear(){return this.isValid?rM(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?rM(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(T={}){let{locale:$,numberingSystem:J,calendar:S}=B$.create(this.loc.clone(T),T).resolvedOptions(this);return{locale:$,numberingSystem:J,outputCalendar:S}}toUTC(T=0,$={}){return this.setZone(L$.instance(T),$)}toLocal(){return this.setZone(mT.defaultZone)}setZone(T,{keepLocalTime:$=!1,keepCalendarTime:J=!1}={}){if(T=CS(T,mT.defaultZone),T.equals(this.zone))return this;else if(!T.isValid)return FT.invalid(uM(T));else{let S=this.ts;if($||J){let F=T.offset(this.ts),M=this.toObject();[S]=sA(M,F,T)}return KF(this,{ts:S,zone:T})}}reconfigure({locale:T,numberingSystem:$,outputCalendar:J}={}){let S=this.loc.clone({locale:T,numberingSystem:$,outputCalendar:J});return KF(this,{loc:S})}setLocale(T){return this.reconfigure({locale:T})}set(T){if(!this.isValid)return this;let $=FW(T,KG),{minDaysInFirstWeek:J,startOfWeek:S}=tf($,this.loc),F=!MT($.weekYear)||!MT($.weekNumber)||!MT($.weekday),M=!MT($.ordinal),A=!MT($.year),W=!MT($.month)||!MT($.day),X=A||W,K=$.weekYear||$.weekNumber;if((X||M)&&K)throw new fF("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(W&&M)throw new fF("Can't mix ordinal dates with month/day");let f;if(F)f=df({...JW(this.c,J,S),...$},J,S);else if(!MT($.ordinal))f=rf({...dK(this.c),...$});else if(f={...this.toObject(),...$},MT($.day))f.day=Math.min(SW(f.year,f.month),f.day);let[G,w]=sA(f,this.o,this.zone);return KF(this,{ts:G,o:w})}plus(T){if(!this.isValid)return this;let $=QT.fromDurationLike(T);return KF(this,WG(this,$))}minus(T){if(!this.isValid)return this;let $=QT.fromDurationLike(T).negate();return KF(this,WG(this,$))}startOf(T,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let J={},S=QT.normalizeUnit(T);switch(S){case"years":J.month=1;case"quarters":case"months":J.day=1;case"weeks":case"days":J.hour=0;case"hours":J.minute=0;case"minutes":J.second=0;case"seconds":J.millisecond=0;break}if(S==="weeks")if($){let F=this.loc.getStartOfWeek(),{weekday:M}=this;if(M<F)J.weekNumber=this.weekNumber-1;J.weekday=F}else J.weekday=1;if(S==="quarters"){let F=Math.ceil(this.month/3);J.month=(F-1)*3+1}return this.set(J)}endOf(T,$){return this.isValid?this.plus({[T]:1}).startOf(T,$).minus(1):this}toFormat(T,$={}){return this.isValid?B$.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,T):tK}toLocaleString(T=$W,$={}){return this.isValid?B$.create(this.loc.clone($),T).formatDateTime(this):tK}toLocaleParts(T={}){return this.isValid?B$.create(this.loc.clone(T),T).formatDateTimeParts(this):[]}toISO({format:T="extended",suppressSeconds:$=!1,suppressMilliseconds:J=!1,includeOffset:S=!0,extendedZone:F=!1}={}){if(!this.isValid)return null;let M=T==="extended",A=eK(this,M);return A+="T",A+=XG(this,M,$,J,S,F),A}toISODate({format:T="extended"}={}){if(!this.isValid)return null;return eK(this,T==="extended")}toISOWeekDate(){return tA(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:T=!1,suppressSeconds:$=!1,includeOffset:J=!0,includePrefix:S=!1,extendedZone:F=!1,format:M="extended"}={}){if(!this.isValid)return null;return(S?"T":"")+XG(this,M==="extended",$,T,J,F)}toRFC2822(){return tA(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return tA(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return eK(this,!0)}toSQLTime({includeOffset:T=!0,includeZone:$=!1,includeOffsetSpace:J=!0}={}){let S="HH:mm:ss.SSS";if($||T){if(J)S+=" ";if($)S+="z";else if(T)S+="ZZ"}return tA(this,S,!0)}toSQL(T={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(T)}`}toString(){return this.isValid?this.toISO():tK}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(T={}){if(!this.isValid)return{};let $={...this.c};if(T.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(T,$="milliseconds",J={}){if(!this.isValid||!T.isValid)return QT.invalid("created by diffing an invalid DateTime");let S={locale:this.locale,numberingSystem:this.numberingSystem,...J},F=Wy($).map(QT.normalizeUnit),M=T.valueOf()>this.valueOf(),A=M?this:T,W=M?T:this,X=GH(A,W,F,S);return M?X.negate():X}diffNow(T="milliseconds",$={}){return this.diff(FT.now(),T,$)}until(T){return this.isValid?iT.fromDateTimes(this,T):this}hasSame(T,$,J){if(!this.isValid)return!1;let S=T.valueOf(),F=this.setZone(T.zone,{keepLocalTime:!0});return F.startOf($,J)<=S&&S<=F.endOf($,J)}equals(T){return this.isValid&&T.isValid&&this.valueOf()===T.valueOf()&&this.zone.equals(T.zone)&&this.loc.equals(T.loc)}toRelative(T={}){if(!this.isValid)return null;let $=T.base||FT.fromObject({},{zone:this.zone}),J=T.padding?this<$?-T.padding:T.padding:0,S=["years","months","days","hours","minutes","seconds"],F=T.unit;if(Array.isArray(T.unit))S=T.unit,F=void 0;return GG($,this.plus(J),{...T,numeric:"always",units:S,unit:F})}toRelativeCalendar(T={}){if(!this.isValid)return null;return GG(T.base||FT.fromObject({},{zone:this.zone}),this,{...T,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...T){if(!T.every(FT.isDateTime))throw new y$("min requires all arguments be DateTimes");return af(T,($)=>$.valueOf(),Math.min)}static max(...T){if(!T.every(FT.isDateTime))throw new y$("max requires all arguments be DateTimes");return af(T,($)=>$.valueOf(),Math.max)}static fromFormatExplain(T,$,J={}){let{locale:S=null,numberingSystem:F=null}=J,M=DT.fromOpts({locale:S,numberingSystem:F,defaultToEN:!0});return ww(M,T,$)}static fromStringExplain(T,$,J={}){return FT.fromFormatExplain(T,$,J)}static buildFormatParser(T,$={}){let{locale:J=null,numberingSystem:S=null}=$,F=DT.fromOpts({locale:J,numberingSystem:S,defaultToEN:!0});return new y8(F,T)}static fromFormatParser(T,$,J={}){if(MT(T)||MT($))throw new y$("fromFormatParser requires an input string and a format parser");let{locale:S=null,numberingSystem:F=null}=J,M=DT.fromOpts({locale:S,numberingSystem:F,defaultToEN:!0});if(!M.equals($.locale))throw new y$(`fromFormatParser called with a locale of ${M}, but the format parser was created for ${$.locale}`);let{result:A,zone:W,specificOffset:X,invalidReason:K}=$.explainFromTokens(T);if(K)return FT.invalid(K);else return G0(A,W,J,`format ${$.format}`,T,X)}static get DATE_SHORT(){return $W}static get DATE_MED(){return yG}static get DATE_MED_WITH_WEEKDAY(){return P_}static get DATE_FULL(){return HG}static get DATE_HUGE(){return kG}static get TIME_SIMPLE(){return QG}static get TIME_WITH_SECONDS(){return EG}static get TIME_WITH_SHORT_OFFSET(){return zG}static get TIME_WITH_LONG_OFFSET(){return OG}static get TIME_24_SIMPLE(){return UG}static get TIME_24_WITH_SECONDS(){return DG}static get TIME_24_WITH_SHORT_OFFSET(){return VG}static get TIME_24_WITH_LONG_OFFSET(){return BG}static get DATETIME_SHORT(){return LG}static get DATETIME_SHORT_WITH_SECONDS(){return NG}static get DATETIME_MED(){return CG}static get DATETIME_MED_WITH_SECONDS(){return jG}static get DATETIME_MED_WITH_WEEKDAY(){return v_}static get DATETIME_FULL(){return qG}static get DATETIME_FULL_WITH_SECONDS(){return xG}static get DATETIME_HUGE(){return IG}static get DATETIME_HUGE_WITH_SECONDS(){return ZG}}function oM(T){if(FT.isDateTime(T))return T;else if(T&&T.valueOf&&jS(T.valueOf()))return FT.fromJSDate(T);else if(T&&typeof T==="object")return FT.fromObject(T);else throw new y$(`Unknown datetime argument: ${T}, of type ${typeof T}`)}var qH="3.5.0";Hw.DateTime=FT;Hw.Duration=QT;Hw.FixedOffsetZone=L$;Hw.IANAZone=vJ;Hw.Info=R0;Hw.Interval=iT;Hw.InvalidZone=W8;Hw.Settings=mT;Hw.SystemZone=tM;Hw.VERSION=qH;Hw.Zone=wF});var Uw=xS((Qw)=>{Object.defineProperty(Qw,"__esModule",{value:!0});Qw.RE_RANGE=Qw.RE_WILDCARDS=Qw.PRESETS=Qw.TIME_UNITS_LEN=Qw.TIME_UNITS=Qw.TIME_UNITS_MAP=Qw.ALIASES=Qw.PARSE_DEFAULTS=Qw.MONTH_CONSTRAINTS=Qw.CONSTRAINTS=void 0;Qw.CONSTRAINTS=Object.freeze({second:[0,59],minute:[0,59],hour:[0,23],dayOfMonth:[1,31],month:[1,12],dayOfWeek:[0,7]});Qw.MONTH_CONSTRAINTS=Object.freeze({1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31});Qw.PARSE_DEFAULTS=Object.freeze({second:"0",minute:"*",hour:"*",dayOfMonth:"*",month:"*",dayOfWeek:"*"});Qw.ALIASES=Object.freeze({jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6});Qw.TIME_UNITS_MAP=Object.freeze({SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY_OF_MONTH:"dayOfMonth",MONTH:"month",DAY_OF_WEEK:"dayOfWeek"});Qw.TIME_UNITS=Object.freeze(Object.values(Qw.TIME_UNITS_MAP));Qw.TIME_UNITS_LEN=Qw.TIME_UNITS.length;Qw.PRESETS=Object.freeze({"@yearly":"0 0 0 1 1 *","@monthly":"0 0 0 1 * *","@weekly":"0 0 0 * * 0","@daily":"0 0 0 * * *","@hourly":"0 0 * * * *","@minutely":"0 * * * * *","@secondly":"* * * * * *","@weekdays":"0 0 0 * * 1-5","@weekends":"0 0 0 * * 0,6"});Qw.RE_WILDCARDS=/\*/g;Qw.RE_RANGE=/^(\d+)(?:-(\d+))?(?:\/(\d+))?$/g});var k8=xS((Vw)=>{Object.defineProperty(Vw,"__esModule",{value:!0});Vw.ExclusiveParametersError=Vw.CronError=void 0;class H8 extends Error{}Vw.CronError=H8;class Dw extends H8{constructor(T,$){super(`You can't specify both ${T} and ${$}`)}}Vw.ExclusiveParametersError=Dw});var Cw=xS((Lw)=>{Object.defineProperty(Lw,"__esModule",{value:!0});Lw.getRecordKeys=void 0;var aH=(T)=>{return Object.keys(T)};Lw.getRecordKeys=aH});var KW=xS((xw)=>{Object.defineProperty(xw,"__esModule",{value:!0});xw.CronTime=void 0;var mJ=kw(),K$=Uw(),N$=k8(),jw=Cw();class qw{constructor(T,$,J){if(this.realDate=!1,this.second={},this.minute={},this.hour={},this.dayOfMonth={},this.month={},this.dayOfWeek={},$!=null&&J!=null)throw new N$.ExclusiveParametersError("timeZone","utcOffset");if($){if(!mJ.DateTime.fromObject({},{zone:$}).isValid)throw new N$.CronError("Invalid timezone.");this.timeZone=$}if(J!=null)this.utcOffset=J;if(T instanceof Date||T instanceof mJ.DateTime)this.source=T instanceof Date?mJ.DateTime.fromJSDate(T):T,this.realDate=!0;else this.source=T,this._parse(this.source),this._verifyParse()}_getWeekDay(T){return T.weekday===7?0:T.weekday}_verifyParse(){let T=jw.getRecordKeys(this.month),$=jw.getRecordKeys(this.dayOfMonth),J=!1,S=null;for(let F of T){let M=K$.MONTH_CONSTRAINTS[F];for(let A of $)if(A<=M)J=!0;if(!J)S=F,console.warn(`Month '${F}' is limited to '${M}' days.`)}if(!J&&S!==null){let F=K$.MONTH_CONSTRAINTS[S];for(let M of $)if(M>F){delete this.dayOfMonth[M];let A=M%F;this.dayOfMonth[A]=!0}}}sendAt(T){let $=this.realDate&&this.source instanceof mJ.DateTime?this.source:mJ.DateTime.local();if(this.timeZone)$=$.setZone(this.timeZone);if(this.utcOffset!==void 0){let J=this.utcOffset<0?"-":"+",S=Math.trunc(this.utcOffset/60),F=String(Math.abs(S)).padStart(2,"0"),M=Math.abs(this.utcOffset-S*60),A=String(M).padStart(2,"0"),W=`UTC${J}${F}:${A}`;if($=$.setZone(W),!$.isValid)throw new N$.CronError("ERROR: You specified an invalid UTC offset.")}if(this.realDate){if(mJ.DateTime.local()>$)throw new N$.CronError("WARNING: Date in past. Will never be fired.");return $}if(T===void 0||isNaN(T)||T<0)return this.getNextDateFrom($);else{let J=[];for(;T>0;T--)$=this.getNextDateFrom($),J.push($);return J}}getTimeout(){return Math.max(-1,this.sendAt().toMillis()-mJ.DateTime.local().toMillis())}toString(){return this.toJSON().join(" ")}toJSON(){return K$.TIME_UNITS.map((T)=>{return this._wcOrAll(T)})}getNextDateFrom(T,$){var J;if(T instanceof Date)T=mJ.DateTime.fromJSDate(T);let S=T,F=T.toMillis();if($)S=S.setZone($);if(!this.realDate){if(S.millisecond>0)S=S.set({millisecond:0,second:S.second+1})}if(!S.isValid)throw new N$.CronError("ERROR: You specified an invalid date.");let M=mJ.DateTime.now().plus({years:8});while(!0){let A=S.toMillis()-T.toMillis();if(S>M)throw new N$.CronError(`Something went wrong. No execution date was found in the next 8 years.
4
+ \t\t\t\t\t\t\tPlease provide the following string if you would like to help debug:
5
+ \t\t\t\t\t\t\tTime Zone: ${(J=$===null||$===void 0?void 0:$.toString())!==null&&J!==void 0?J:'""'} - Cron String: ${this.source.toString()} - UTC offset: ${S.offset} - current Date: ${mJ.DateTime.local().toString()}`);if(!(S.month in this.month)&&Object.keys(this.month).length!==12){if(S=S.plus({months:1}),S=S.set({day:1,hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,S)){let[W,X]=this._findPreviousDSTJump(S);if(S=X,W)break}continue}if(!(S.day in this.dayOfMonth)&&Object.keys(this.dayOfMonth).length!==31&&!((this._getWeekDay(S)in this.dayOfWeek)&&Object.keys(this.dayOfWeek).length!==7)){if(S=S.plus({days:1}),S=S.set({hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,S)){let[W,X]=this._findPreviousDSTJump(S);if(S=X,W)break}continue}if(!(this._getWeekDay(S)in this.dayOfWeek)&&Object.keys(this.dayOfWeek).length!==7&&!((S.day in this.dayOfMonth)&&Object.keys(this.dayOfMonth).length!==31)){if(S=S.plus({days:1}),S=S.set({hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,S)){let[W,X]=this._findPreviousDSTJump(S);if(S=X,W)break}continue}if(!(S.hour in this.hour)&&Object.keys(this.hour).length!==24){let W=S.hour===23&&A>86400000?0:S.hour+1,X=S.minute;if(S=S.set({hour:W}),S=S.set({minute:0,second:0}),this._forwardDSTJump(W,X,S)){let[K,f]=this._findPreviousDSTJump(S);if(S=f,K)break}continue}if(!(S.minute in this.minute)&&Object.keys(this.minute).length!==60){let W=S.minute===59&&A>3600000?0:S.minute+1,X=S.hour+(W===60?1:0);if(S=S.set({minute:W}),S=S.set({second:0}),this._forwardDSTJump(X,W,S)){let[K,f]=this._findPreviousDSTJump(S);if(S=f,K)break}continue}if(!(S.second in this.second)&&Object.keys(this.second).length!==60){let W=S.second===59&&A>60000?0:S.second+1,X=S.minute+(W===60?1:0),K=S.hour+(X===60?1:0);if(S=S.set({second:W}),this._forwardDSTJump(K,X,S)){let[f,G]=this._findPreviousDSTJump(S);if(S=G,f)break}continue}if(S.toMillis()===F){let W=S.second+1,X=S.minute+(W===60?1:0),K=S.hour+(X===60?1:0);if(S=S.set({second:W}),this._forwardDSTJump(K,X,S)){let[f,G]=this._findPreviousDSTJump(S);if(S=G,f)break}continue}break}return S}_findPreviousDSTJump(T){var $;let J,S,F,M,A=T,W=1440,X=0;do{if(++X>W)throw new N$.CronError(`ERROR: This DST checking related function assumes the input DateTime (${($=T.toISO())!==null&&$!==void 0?$:T.toMillis()}) is within 24 hours of a DST jump.`);if(J=A.minute-1,S=A.hour,J<0)J+=60,S=(S+24-1)%24;A=A.minus({minute:1}),F=A.minute,M=A.hour}while(J===F&&S===M);let K=A.plus({minute:1}).set({second:0,millisecond:0}),f=K.minus({second:1});if(T.month in this.month&&T.day in this.dayOfMonth&&this._getWeekDay(T)in this.dayOfWeek)return[this._checkTimeInSkippedRange(f,K),K];return[!1,K]}_checkTimeInSkippedRange(T,$){let J=(T.minute+1)%60,S=(T.hour+(J===0?1:0))%24,F=$.hour-S+1,M=J===0&&$.minute===0;if(F===2&&M)return S in this.hour;else if(F===1)return S in this.hour&&this._checkTimeInSkippedRangeSingleHour(J,$.minute);else return this._checkTimeInSkippedRangeMultiHour(S,J,$.hour,$.minute)}_checkTimeInSkippedRangeSingleHour(T,$){for(let J=T;J<$;++J)if(J in this.minute)return!0;return $ in this.minute&&0 in this.second}_checkTimeInSkippedRangeMultiHour(T,$,J,S){if(T>=J)throw new N$.CronError(`ERROR: This DST checking related function assumes the forward jump starting hour (${T}) is less than the end hour (${J})`);let F=Array.from({length:60-$},(X,K)=>$+K),M=Array.from({length:S},(X,K)=>K),A=Array.from({length:60},(X,K)=>K),W=(X)=>{if(X===T)return F;else if(X===J)return M;else return A};for(let X=T;X<=J;++X){if(!(X in this.hour))continue;let K=W(X);for(let f of K)if(f in this.minute)return!0}return J in this.hour&&S in this.minute&&0 in this.second}_forwardDSTJump(T,$,J){let{hour:S,minute:F}=J,M=T%24<S,A=$%60<F;return M||A}_wcOrAll(T){if(this._hasAll(T))return"*";let $=[];for(let J in this[T])$.push(J);return $.join(",")}_hasAll(T){let $=K$.CONSTRAINTS[T],J=$[0],S=T===K$.TIME_UNITS_MAP.DAY_OF_WEEK?$[1]-1:$[1];for(let F=J,M=S;F<M;F++)if(!(F in this[T]))return!1;return!0}_parse(T){var $;if(T=T.toLowerCase(),Object.keys(K$.PRESETS).includes(T))T=K$.PRESETS[T];T=T.replace(/[a-z]{1,3}/gi,(F)=>{if(Object.keys(K$.ALIASES).includes(F))return K$.ALIASES[F].toString();throw new N$.CronError(`Unknown alias: ${F}`)});let J=T.trim().split(/\s+/);if(J.length<K$.TIME_UNITS_LEN-1)throw new N$.CronError("Too few fields");if(J.length>K$.TIME_UNITS_LEN)throw new N$.CronError("Too many fields");let S=J.length;for(let F of K$.TIME_UNITS){let M=K$.TIME_UNITS.indexOf(F),A=($=J[M-(K$.TIME_UNITS_LEN-S)])!==null&&$!==void 0?$:K$.PARSE_DEFAULTS[F];this._parseField(A,F)}}_parseField(T,$){let J=this[$],S,F=K$.CONSTRAINTS[$],M=F[0],A=F[1];T.split(",").forEach((K)=>{let f=K.indexOf("*");if(f!==-1&&f!==0)throw new N$.CronError(`Field (${K}) has an invalid wildcard expression`)}),T=T.replace(K$.RE_WILDCARDS,`${M}-${A}`);let X=T.split(",");for(let K of X){let f=[...K.matchAll(K$.RE_RANGE)][0];if((f===null||f===void 0?void 0:f[1])!==void 0){let[,G,w,y]=f,H=parseInt(G,10),O=w!==void 0?parseInt(w,10):void 0,E=y!==void 0,B=parseInt(y!==null&&y!==void 0?y:"1",10);if(B===0)throw new N$.CronError(`Field (${$}) has a step of zero`);if(O!==void 0&&H>O)throw new N$.CronError(`Field (${$}) has an invalid range`);if(H<M||O!==void 0&&O>A||O===void 0&&H>A)throw new N$.CronError(`Field value (${T}) is out of range`);if(H=Math.min(Math.max(M,~~Math.abs(H)),A),O!==void 0)O=Math.min(A,~~Math.abs(O));else O=E?A:H;S=H;do J[S]=!0,S+=B;while(S<=O);if($==="dayOfWeek"){if(!J[0]&&!!J[7])J[0]=J[7];delete J[7]}}else throw new N$.CronError(`Field (${$}) cannot be parsed`)}}}xw.CronTime=qw});var bw=xS((z0)=>{var fW=z0&&z0.__awaiter||function(T,$,J,S){function F(M){return M instanceof J?M:new J(function(A){A(M)})}return new(J||(J=Promise))(function(M,A){function W(f){try{K(S.next(f))}catch(G){A(G)}}function X(f){try{K(S.throw(f))}catch(G){A(G)}}function K(f){f.done?M(f.value):F(f.value).then(W,X)}K((S=S.apply(T,$||[])).next())})};Object.defineProperty(z0,"__esModule",{value:!0});z0.CronJob=void 0;var Zw=import.meta.require("child_process"),Q8=k8(),GW=KW();class T1{get isCallbackRunning(){return this._isCallbackRunning}constructor(T,$,J,S,F,M,A,W,X,K){if(this.running=!1,this.unrefTimeout=!1,this.lastExecution=null,this.runOnce=!1,this.waitForCompletion=!1,this._isCallbackRunning=!1,this._callbacks=[],this.context=M!==null&&M!==void 0?M:this,this.waitForCompletion=Boolean(K),F!=null&&W!=null)throw new Q8.ExclusiveParametersError("timeZone","utcOffset");if(F!=null)this.cronTime=new GW.CronTime(T,F,null);else if(W!=null)this.cronTime=new GW.CronTime(T,null,W);else this.cronTime=new GW.CronTime(T,F,W);if(X!=null)this.unrefTimeout=X;if(J!=null)this.onComplete=this._fnWrap(J);if(this.cronTime.realDate)this.runOnce=!0;if(this.addCallback(this._fnWrap($)),A)this.lastExecution=new Date,this.fireOnTick();if(S)this.start()}static from(T){if(T.timeZone!=null&&T.utcOffset!=null)throw new Q8.ExclusiveParametersError("timeZone","utcOffset");if(T.timeZone!=null)return new T1(T.cronTime,T.onTick,T.onComplete,T.start,T.timeZone,T.context,T.runOnInit,T.utcOffset,T.unrefTimeout,T.waitForCompletion);else if(T.utcOffset!=null)return new T1(T.cronTime,T.onTick,T.onComplete,T.start,null,T.context,T.runOnInit,T.utcOffset,T.unrefTimeout,T.waitForCompletion);else return new T1(T.cronTime,T.onTick,T.onComplete,T.start,T.timeZone,T.context,T.runOnInit,T.utcOffset,T.unrefTimeout,T.waitForCompletion)}_fnWrap(T){var $,J;switch(typeof T){case"function":return T;case"string":{let[S,...F]=T.split(" ");return Zw.spawn.bind(void 0,S!==null&&S!==void 0?S:T,F,{})}case"object":return Zw.spawn.bind(void 0,T.command,($=T.args)!==null&&$!==void 0?$:[],(J=T.options)!==null&&J!==void 0?J:{})}}addCallback(T){if(typeof T==="function")this._callbacks.push(T)}setTime(T){if(!(T instanceof GW.CronTime))throw new Q8.CronError("time must be an instance of CronTime.");let $=this.running;if(this.stop(),this.cronTime=T,T.realDate)this.runOnce=!0;if($)this.start()}nextDate(){return this.cronTime.sendAt()}fireOnTick(){return fW(this,void 0,void 0,function*(){if(this.waitForCompletion&&this._isCallbackRunning)return;this._isCallbackRunning=!0;try{for(let T of this._callbacks){let $=T.call(this.context,this.onComplete);if(this.waitForCompletion)yield $}}catch(T){console.error("[Cron] error in callback",T)}finally{this._isCallbackRunning=!1}})}nextDates(T){return this.cronTime.sendAt(T!==null&&T!==void 0?T:0)}start(){if(this.running)return;let T=2147483647,$=this.cronTime.getTimeout(),J=0,S,F=(A)=>{if(S=Date.now(),this._timeout=setTimeout(M,A),this.unrefTimeout&&typeof this._timeout.unref==="function")this._timeout.unref()},M=()=>{let A=S+$-Date.now();if(A>0){let W=this.cronTime.getTimeout();if(W>A)W=A;J+=W}if(J){if(J>T)J-=T,$=T;else $=J,J=0;F($)}else{if(this.lastExecution=new Date,this.running=!1,!this.runOnce)this.start();this.fireOnTick()}};if($>=0){if(this.running=!0,$>T)J=$-T,$=T;F($)}else this.stop()}lastDate(){return this.lastExecution}_executeOnComplete(){return fW(this,void 0,void 0,function*(){if(typeof this.onComplete!=="function")return;try{yield this.onComplete.call(this.context)}catch(T){console.error("[Cron] error in onComplete callback:",T)}})}_waitForJobCompletion(){return fW(this,void 0,void 0,function*(){while(this._isCallbackRunning)yield new Promise((T)=>setTimeout(T,100))})}stop(){if(this._timeout)clearTimeout(this._timeout);if(this.running=!1,!this.waitForCompletion){this._executeOnComplete();return}Promise.resolve().then(()=>fW(this,void 0,void 0,function*(){yield this._waitForJobCompletion(),yield this._executeOnComplete()}))}}z0.CronJob=T1});var vw=xS((wW)=>{Object.defineProperty(wW,"__esModule",{value:!0});wW.timeout=wW.sendAt=wW.CronTime=wW.CronJob=void 0;var hw=KW(),sH=bw();Object.defineProperty(wW,"CronJob",{enumerable:!0,get:function(){return sH.CronJob}});var eH=KW();Object.defineProperty(wW,"CronTime",{enumerable:!0,get:function(){return eH.CronTime}});var Tk=(T)=>new hw.CronTime(T).sendAt();wW.sendAt=Tk;var $k=(T)=>new hw.CronTime(T).getTimeout();wW.timeout=$k});function _F(T=Math.random){return T().toString(36).slice(2)}class h$ extends Promise{fate;resolve;reject;done=!1;constructor(T){let $,J;super((S,F)=>{$=S,J=F});this.resolve=$,this.reject=J,this.use(T instanceof Promise?T:new Promise(T))}pass(T,$){if(T===this.fate)this.resolve($),this.done=!0}fail(T,$){if(T===this.fate)this.reject($),this.done=!0}use(T){if(T instanceof Promise){let $=T;this.fate=$,$.then((J)=>{this.pass($,J)},(J)=>{this.fail($,J)})}else this.resolve(T),this.fate=void 0}}function V0(T){return Object.fromEntries(T)}function yF(T){return Object.entries(T)}var I8=(T,$,J=GT.STORE)=>{return wJ(J,{key:`${T.key}:JSON`,get:({get:S})=>$.toJson(S(T)),set:({set:S},F)=>{S(T,$.fromJson(F))}})};function x(T){while(T.child!==null)T=T.child;return T}function Z8(T){while(T.parent!==null)T=T.parent;return T}class AT{Subscriber;subscribers=new Map;subscribe(T,$){return this.subscribers.set(T,$),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let $=this.subscribers.values();for(let J of $)J(T)}}class OW extends AT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function jJ(T,$,J){let S={key:$.key,type:"atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","atom_family",$.key,`Overwriting an existing ${RJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let M=new AT,W=Object.assign((X)=>{let K=e(X),f={key:$.key,subKey:K},G=`${$.key}(${K})`,w=x(T),y=$.default,H={key:G,default:y instanceof Function?y(X):y};if($.effects)H.effects=$.effects(X);let O=P$(w,H,f);return M.next({type:"state_creation",token:O}),O},S,{subject:M,install:(X)=>jJ(X,$),internalRoles:J});return T.families.set($.key,W),T.defaults.set($.key,$.default),S}function b8(T,$){if("mutable"in $)return B0(T,$);return jJ(T,$)}function gJ(T,$,J){let S={key:$.key,type:"readonly_selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","readonly_selector_family",$.key,`Overwriting an existing ${RJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let M=new AT,W=Object.assign((X)=>{let K=e(X),f={key:$.key,subKey:K},G=`${$.key}(${K})`,w=x(T),y=L0(w,{key:G,get:$.get(X)},f);return M.next({type:"state_creation",token:y}),y},S,{internalRoles:J,subject:M,install:(X)=>gJ(X,$),default:(X)=>{return $.get(X)({get:(...f)=>RT(T,...f),find:(f,G)=>HT(T,f,G),seek:(f,G)=>bT(T,f,G),json:(f)=>uT(T,f)})}});return T.families.set($.key,W),S}function N0(T,$){if("set"in $)return C0(T,$);return gJ(T,$)}var o2={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function HF(T,$){let J=e($),S=`${T.key}(${J})`,F=o2[T.type],M={key:S,type:F};if(F==="molecule")Object.assign(M,{key:$,family:T});else Object.assign(M,{family:{key:T.key,subKey:J}});return Object.assign(M,{counterfeit:!0}),M}function z$(T){let $={key:T.key,type:T.type};if("family"in T)$.family=T.family;return $}var rk=Symbol("provenance");function UW(T,$,J){let S=e(J);try{let F=[],M;if($==="root")F.push(T.molecules.get('"root"')),M="all";else if(typeof $==="string"&&$.startsWith(l2)){M="any";let f=e($),G=T.molecules.get(f);if(!G)throw new Error(`Molecule ${f} not found in store "${T.config.name}"`);F.push(G)}else if(J.startsWith("T$--")){M="all";for(let G of $){let w=e(G),y=T.molecules.get(w);if(!y)throw new Error(`Molecule ${w} not found in store "${T.config.name}"`);F.push(y)}}else{M="any";let G=e($),w=T.molecules.get(G);if(!w)throw new Error(`Molecule ${G} not found in store "${T.config.name}"`);F.push(w)}let A=new kF(F,J);A._dependsOn=M,T.molecules.set(S,A);for(let f of F)f.below.set(A.stringKey,A);let W={type:"molecule_creation",subType:"modern",key:A.key,provenance:$},X=x(T);if(YT(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push(W);else X.on.moleculeCreationStart.next(W)}catch(F){if(F instanceof Error)T.logger.error("\u274C","molecule",S,"allocation failed:",F.message)}return J}function j0(T,$){let J=e($),S=T.molecules.get(J);if(!S)throw new Error(`Molecule ${J} not found in store "${T.config.name}"`);for(let K of S.joins.values())K.relations.delete(S.key),K.molecules.delete(S.stringKey);let F;if(S.above.size===1)F=S.above.values().next().value.key;else F=[...S.above.values()].map(({key:K})=>K);let M=[];for(let K of S.tokens.values()){let f=K.family;M.push([f.key,T.valueMap.get(K.key)])}for(let K of S.tokens.values())j$(T,K);for(let K of S.below.values())if(K.dependsOn==="all")j0(T,K.key);else if(K.above.delete(S.stringKey),K.above.size===0)j0(T,K.key);S.below.clear();let A={type:"molecule_disposal",subType:"modern",key:S.key,values:M,provenance:F},W=x(T);if(YT(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(A);else W.on.moleculeDisposal.next(A);W.molecules.delete(S.stringKey);for(let K of S.above.values())K.below.delete(S.stringKey)}var l2="T$";function QF(T){return h8(GT.STORE,T)}function IS(T){return b8(GT.STORE,T)}function DW(...T){if(T.length===2)return RT(GT.STORE,...T);return RT(GT.STORE,...T)}var VW=(T)=>($,J,S,F,...M)=>{console[T](`${$} ${J} "${S}" ${F}`,...M)},u2={error:VW("error"),info:VW("info"),warn:VW("warn")};class BW{logLevel;filter;logger;constructor(T,$,J=u2){this.logLevel=T;this.filter=$;this.logger=J}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}function S1(T){return N0(GT.STORE,T)}function q0(T){return LW(T,GT.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 J=this.relations.get(T),S=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(S)S.add(T);else S=new Set([T]),this.relations.set($,S)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let S=this.relations.get($);if(S){if(S.delete(T),S.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let S=new Set().add(T);this.relations.set(J,S)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),S=this.isAType?.(T)?T:void 0,F=S===void 0?T:void 0;if(J)for(let M of J){S??=M,F??=M;let A=this.relations.get(M);if(A){if(A.size===1)this.relations.delete(M);else A.delete(T);this.contents.delete(this.makeContentKey(S,F))}}this.relations.set(T,new Set($));for(let M of $){let A=this.relations.get(M);if(A)A.add(T);else A=new Set().add(T),this.relations.set(M,A)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,S])=>[J,new Set(S)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(S,F)=>J.has(S,F),this.addRelation=(S,F)=>{J.addRelation(S,F)},this.deleteRelation=(S,F)=>{J.deleteRelation(S,F)},this.replaceRelationsSafely=(S,F)=>{J.replaceRelationsSafely(S,F)},this.replaceRelationsUnsafely=(S,F)=>{J.replaceRelationsUnsafely(S,F)},this.getRelatedKeys=(S)=>J.getRelatedKeys(S),J.getContent)this.getContentInternal=(S)=>{return J.getContent(S)},this.setContent=(S,F)=>{J.setContent(S,F)},this.deleteContent=(S)=>{J.deleteContent(S)};for(let[S,F]of T.relations??[]){let M=this.isAType?.(S)?S:void 0,A=M===void 0?S:void 0;for(let W of F)M??=W,A??=W,this.addRelation(M,A)}for(let[S,F]of T.contents??[])this.setContent(S,F)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(T,...$){let J=typeof $[0]==="string"?$[0]:T[this.b],S=$[1]??typeof $[0]==="string"?void 0:$[0];switch(T=typeof T==="string"?T:T[this.a],this.cardinality){case"1:1":{let F=this.getRelatedKey(T);if(F&&F!==J)this.delete(T,F)}case"1:n":{let F=this.getRelatedKey(J);if(F&&F!==T)this.delete(F,J)}}if(S){let F=this.makeContentKey(T,J);this.setContent(F,S)}return this.addRelation(T,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let S=this.getRelatedKeys($);if(S)for(let F of S)this.delete(F,$)}if(typeof J==="string"&&$===void 0){let S=this.getRelatedKeys(J);if(S)for(let F of S)this.delete(J,F)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let S=this.makeContentKey(J,$);this.deleteContent(S)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((S)=>`"${S}"`).join(", ")}). Only one related key was expected.`);let J;for(let S of $){J=S;break}return J}}replaceRelations(T,$,J){let S=!Array.isArray($),F=S?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,F);else this.replaceRelationsSafely(T,F);if(S)for(let M of F){let A=this.makeContentKey(T,M),W=$[M];this.setContent(A,W)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let S=this.getRelatedKeys($);if(S)return[...S].map((F)=>{return[F,this.getContent($,F)]})}if($===void 0&&J!==void 0){let S=this.getRelatedKeys(J);if(S)return[...S].map((F)=>{return[F,this.getContent(F,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}function dT(T){return"epoch"in T.transactionMeta}function YT(T){return"phase"in T.transactionMeta}var v8=(T)=>{let $=x(T);if(!YT($)){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 d2=(T)=>T[0].toUpperCase()+T.slice(1);function RJ(T){return T.type.split("_").map(d2).join(" ")}class v$ extends Error{constructor(...T){let $=T[0],J=T.length===2?T[1]:T[2];if(T.length===2)super(`${RJ($)} ${e($.key)} not found in store "${J.config.name}".`);else{let S=T[1];super(`${RJ($)} "${$.key}" member ${e(S)} not found in store "${J.config.name}".`)}}}function fS(T,$,J){return(...S)=>{let F=$T(T,J);if(F)return F.run(S,$);throw new v$(T,J)}}var F1=(T)=>($)=>T instanceof Function?T($):T;var GS=(T,$)=>{if($.valueMap.has(T.key))return $.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),m8(T,$);if(T.type==="selector"||T.type==="readonly_selector")return $.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();let J=T.default instanceof Function?T.default():T.default;return $.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",J),T.default instanceof Function?T.default():T.default};var c8=(T,$)=>{if(T.operation.open){let J=performance.now();return T.logger.info("\u2757",$.type,$.key,`deferring setState at T-${J} until setState for "${T.operation.token.key}" is done`),J}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},T.logger.info("\u2B55",$.type,$.key,`operation start in store "${T.config.name}"${!YT(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},g8=(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)},n8=(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($)},EF=(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 p8=(T,$,J)=>{switch(T.type){case"mutable_atom":J.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",$.newValue,") subscribers:",T.subject.subscribers);break;default:J.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",$.oldValue,"->",$.newValue,") subscribers:",T.subject.subscribers)}T.subject.next($)};var NW=(T,$)=>{let J=x($),S=J.selectorAtoms.getRelatedKeys(T.key);if(J.logger.info("\uD83E\uDDF9",T.type,T.key,S?`evicting ${S.size} states downstream:`:"no downstream states",S??"to evict"),S){if(J.operation.open)J.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...J.operation.done].join(", ")} ] already done`);for(let F of S){if(n8(J,F))continue;i8(F,J),EF(J,F)}}};function r2(T,$){if(l8($.newValue))return!1;if(T.includes("\uD83D\uDD0D"))return!1;return!0}var o8=(T,$,J)=>{let{key:S}=T,F=x(J);if(!YT(F)||F.transactionMeta.phase!=="building"){J.logger.error("\uD83D\uDC1E","atom",S,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!r2(S,$))return;let A={type:"atom_update",key:S,...$};if(T.family)A.family=T.family;F.transactionMeta.update.updates.push(A),J.logger.info("\uD83D\uDCC1","atom",S,"stowed (",$.oldValue,"->",$.newValue,")")};var u8=(T,$,J)=>{let S=GS(T,J),F=S;if(T.type==="mutable_atom"&&YT(J)){let{parent:A}=J;F=x0(T,A,J)}if(F=F1($)(F),J.logger.info("\uD83D\uDCDD","atom",T.key,"set to",F),F=e$(T.key,F,T.subject,J),d8(T.key,J))r8(T.key,J);EF(J,T.key),NW(T,J);let M={oldValue:S,newValue:F};if(dT(J))p8(T,M,J);else if(J.parent){if(J.on.transactionApplying.state===null)o8(T,M,J);else if(T.key.startsWith("*")){let A=T.key.slice(1),W=J.atoms.get(A),X=J.valueMap.get(A);if(W.type==="mutable_atom"&&YT(J)){let{parent:f}=J;X=x0(W,f,J)}if(X.do(M.newValue)===null)NW(W,J)}}};var M1=(T,$,J)=>{switch(T.type){case"atom":case"mutable_atom":u8(T,$,J);break;case"selector":T.set($);break}};function A1(T,$){if($.family){let J=T.families.get($.family.key);if(J)return J}}function gT(T,...$){let J,S,F,M;if($.length===2){if(J=$[0],M=$[1],S=A1(T,J)??null,S)F=J.family?$$(J.family.subKey):null,J=HT(T,S,F)}else S=$[0],F=$[1],M=$[2],J=HT(T,S,F);if("counterfeit"in J){let X=T.disposalTraces.buffer.find((K)=>K?.key===J.key);T.logger.error("\u274C",J.type,J.key,`could not be set because it was not found in the store "${T.config.name}".`,X?`This state was previously disposed:
6
+ ${X.trace}`:"No previous disposal trace was found.");return}let A=c8(T,J);if(A){let X=T.on.operationClose.subscribe(`waiting to set "${J.key}" at T-${A}`,()=>{X(),T.logger.info("\uD83D\uDFE2",J.type,J.key,`resuming deferred setState from T-${A}`),gT(T,J,M)});return}let W=$T(J,T);M1(W,M,T),g8(T)}function W1(T,$,J){let{key:S,newValue:F,oldValue:M}=$,A=T==="newValue"?F:M,W={key:S,type:"atom"};if($.family)Object.assign(W,{family:$.family});gT(J,W,A)}function t8(T,$){let J=new AT,S={type:"molecule_family",key:$.key,dependsOn:$.dependsOn??"all"},F={...S,subject:J,new:$.new};return T.moleculeFamilies.set($.key,F),S}function YJ(T,$,J){let S=nJ(J,$,T.key);T.tokens.set(S.key,S);let F=YT(J)&&J.transactionMeta.phase==="building",M=J.moleculeInProgress===T.key;if(!F&&!M)T.subject.next({type:"state_creation",token:S});return S}function X1(T){return{store:T}}function RT(T,...$){let J,S,F;if($.length===1){if(J=$[0],J.type!=="molecule"){if(S=A1(T,J)??null,S)F=J.family?$$(J.family.subKey):null,J=HT(T,S,F)}}else{S=$[0],F=$[1];let M;if(S.type==="molecule_family")M=bT(T,S,F)??HF(S,F);else M=HT(T,S,F);J=M}if("counterfeit"in J&&"family"in J){S=J.type==="molecule"?$T(J.family,T):T.families.get(J.family.key);let M=J.type==="molecule"?J.key:J.family.subKey,A=T.disposalTraces.buffer.find((W)=>W?.key===J.key);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,A?`This state was previously disposed:
7
+ ${A.trace}`:"No previous disposal trace was found."),S.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(S.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(S.key))return T.defaults.get(J.family.key);let W=$T(S,T).default(M);return T.defaults.set(S.key,W),W}case"molecule_family":throw new v$(S,M,T)}}switch(J.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return GS($T(J,T),T);case"molecule":return $T(J,T).instance}}class kF{key;type="molecule";stringKey;family;_dependsOn;get dependsOn(){if(this.family)return this.family.dependsOn;return this._dependsOn}subject=new AT;tokens=new Map;above=new Map;below=new Map;joins=new Map;instance;constructor(T,$,J){this.key=$;if(this.stringKey=e($),J)this.family=J,this._dependsOn=J.dependsOn;if(T)for(let S of T)this.above.set(S.stringKey,S)}}function a8(T){return T[0].toUpperCase()+T.slice(1)}function pJ(T,$,J,S,...F){let M=Z8(T),A=x(T),W=e(S);A.moleculeInProgress=W;let X=Array.isArray($)?$:[$],K=X.map((E)=>{if(E instanceof kF)return E;let B=e(E.key),L=T.molecules.get(B);if(!L)throw new Error(`Molecule ${B} not found in store "${T.config.name}"`);return L}),f=new kF(K,S,J);A.molecules.set(W,f);for(let E of K)E.below.set(f.stringKey,f);let G={get:(...E)=>RT(x(M),...E),set:(...E)=>{gT(x(M),...E)},seek:(E,B)=>bT(x(M),E,B),json:(E)=>uT(x(M),E),run:(E,B=_F())=>fS(E,B,x(T)),make:(E,B,L,...N)=>pJ(x(M),E,B,L,...N),dispose:(E)=>{j$(x(M),E)},env:()=>X1(x(M)),bond:(E,B)=>{if(E.type==="join"){let{as:L}=B,N=I0(E,M);N.molecules.set(W,f),f.joins.set(E.key,N);let I=w.subject.subscribe(`join:${E.key}-${W}`,(k)=>{if(k.type==="molecule_disposal"){if(e(k.token.key)===W)I(),N.molecules.delete(W)}});if(L===null)return;let U=E.a===L?E.b:E.a,Q=s8(E,S),D=Q[`${U}KeysOf${a8(L)}`],Z=Q[`${U}EntriesOf${a8(L)}`],h={relatedKeys:D};if(Z)h=Object.assign(h,{relatedEntries:Z});return h}return YJ(f,$T(E,M),x(M))},claim:(E,B)=>{let{exclusive:L}=B,N=x(T).molecules.get(e(E.key));if(N)if(L){for(let I of N.above.values())I.below.delete(N.stringKey);N.above.clear(),N.above.set(f.stringKey,f),f.below.set(N.stringKey,N)}else N.above.set(f.stringKey,f),f.below.set(N.stringKey,N)},spawn:(E,B,...L)=>pJ(x(T),[f],$T(E,T),B,...L)},w=$T(J,T),y=w.new;f.instance=new y(G,S,...F);let H={type:"molecule",key:S,family:J},O={type:"molecule_creation",subType:"classic",token:H,family:J,context:X,params:F};if(dT(A))w.subject.next(O);else if(YT(A)&&A.on.transactionApplying.state===null)A.transactionMeta.update.updates.push(O);return A.moleculeInProgress=null,H}function CW(T,$,J){switch($){case"newValue":{e8(T,J);break}case"oldValue":{j$(J,T.token);break}}}function jW(T,$,J){switch($){case"newValue":{j$(J,T.token);break}case"oldValue":{e8(T,J),J.valueMap.set(T.token.key,T.value);break}}}function e8(T,$){let{family:J}=T.token;if(J){let S=$.families.get(J.key);if(S)HT($,S,$$(J.subKey))}}function qW(T,$,J){switch($){case"newValue":switch(T.subType){case"classic":pJ(J,T.context,T.family,T.token.key,...T.params);break;case"modern":UW(J,T.provenance,T.key);break}break;case"oldValue":switch(T.subType){case"classic":j$(J,T.token);break;case"modern":j0(J,T.key);break}break}}function xW(T,$,J){switch($){case"newValue":switch(T.subType){case"classic":j$(J,T.token);break;case"modern":j0(J,T.key);break}break;case"oldValue":switch(T.subType){case"classic":{let S=pJ(J,T.context,T.family,T.token.key);for(let[F,M]of T.values){let A=`${F}(${e(S.key)})`,W=$T(S,J),X=W.tokens.has(A),K=J.families.get(F);if(K&&!X)YJ(W,K,J);J.valueMap.set(A,M)}}break;case"modern":{UW(J,T.provenance,T.key);for(let[S,F]of T.values){let M=J.families.get(S);if(M){HT(J,M,T.key);let A=`${S}(${e(T.key)})`;J.valueMap.set(A,F)}}}}break}}function K1(T,$,J){let S=T==="newValue"?$.updates:[...$.updates].reverse();for(let F of S)switch(F.type){case"atom_update":case"selector_update":W1(T,F,J);break;case"state_creation":CW(F,T,J);break;case"state_disposal":jW(F,T,J);break;case"molecule_creation":qW(F,T,J);break;case"molecule_disposal":xW(F,T,J);break;case"transaction_update":K1(T,F,J);break}}function T4(T,$,J){if(dT(J)&&T)J.transactionMeta.epoch.set(T,$)}function $4(T,$,J){if(!dT(J))return;let F=J.transactionMeta.actionContinuities.getRelatedKey(T);if(F!==void 0)J.transactionMeta.epoch.set(F,$)}var J4=(T,$)=>{let J=x($),{parent:S}=J;if(S===null||!YT(J)||J.transactionMeta?.phase!=="building"){$.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}J.transactionMeta.phase="applying",J.transactionMeta.update.output=T,S.child=null,S.on.transactionApplying.next(J.transactionMeta);let{updates:F}=J.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",J.transactionMeta.update.key,`Applying transaction with ${F.length} updates:`,F),K1("newValue",J.transactionMeta.update,S),dT(S))$4(J.transactionMeta.update.key,J.transactionMeta.update.epoch,S),$T({key:J.transactionMeta.update.key,type:"transaction"},$)?.subject.next(J.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",J.transactionMeta.update.key,"Finished applying transaction.");else if(YT(S))S.transactionMeta.update.updates.push(J.transactionMeta.update);S.on.transactionApplying.next(null)};function S4(T,$,J){if(!dT(J))return;let{epoch:F,actionContinuities:M}=J.transactionMeta;if(M.set(T,$),!F.has(T))F.set(T,-1)}class TJ 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 F4=(T,$,J,S)=>{let F=x(J),M={parent:F,child:null,on:F.on,loggers:F.loggers,logger:F.logger,config:F.config,atoms:new TJ(F.atoms),atomsThatAreDefault:new Set(F.atomsThatAreDefault),families:new TJ(F.families),operation:{open:!1},readonlySelectors:new TJ(F.readonlySelectors),timelines:new TJ(F.timelines),timelineTopics:new n$(F.timelineTopics.toJSON()),trackers:new Map,transactions:new TJ(F.transactions),selectorAtoms:new n$(F.selectorAtoms.toJSON()),selectorGraph:new n$(F.selectorGraph.toJSON(),{makeContentKey:(...K)=>K.sort().join(":")}),selectors:new TJ(F.selectors),valueMap:new TJ(F.valueMap),defaults:F.defaults,disposalTraces:J.disposalTraces.copy(),molecules:new TJ(F.molecules),moleculeFamilies:new TJ(F.moleculeFamilies),moleculeInProgress:F.moleculeInProgress,miscResources:new TJ(F.miscResources)},A=M4(T,J),W={phase:"building",update:{type:"transaction_update",key:T,id:S,epoch:A===void 0?Number.NaN:A+1,updates:[],params:$,output:void 0},toolkit:{get:(...K)=>RT(X,...K),set:(...K)=>{gT(X,...K)},run:(K,f=_F())=>fS(K,f,X),find:(K,f)=>HT(X,K,f),seek:(K,f)=>bT(X,K,f),json:(K)=>uT(X,K),make:(K,f,G,...w)=>pJ(X,K,f,G,...w),dispose:(...K)=>{j$(X,...K)},env:()=>X1(X)}},X=Object.assign(M,{transactionMeta:W});return F.child=X,J.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",$),X};function LW(T,$){let J={key:T.key,type:"transaction",run:(M,A)=>{let W=F4(T.key,M,$,A);try{let X=x($),{toolkit:K}=W.transactionMeta,f=T.do(K,...M);return J4(f,X),f}catch(X){throw v8(S),$.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",X),X}},install:(M)=>LW(T,M),subject:new AT},S=x($);S.transactions.set(J.key,J);let F=z$(J);return $.on.transactionCreation.next(F),F}function M4(T,$){let J=dT($),S=J?$.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return J&&S!==void 0?$.transactionMeta.epoch.get(S):void 0}class f1{_buffer;_index=0;constructor(T){let $;if(typeof T==="number")$=T;else $=T.length;this._buffer=Array.from({length:$})}get buffer(){return this._buffer}get index(){return this._index}add(T){this._buffer[this._index]=T,this._index=(this._index+1)%this._buffer.length}copy(){let T=new f1([...this._buffer]);return T._index=this._index,T}}class A4{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 f1(100);molecules=new Map;moleculeFamilies=new Map;moleculeInProgress=null;miscResources=new Map;on={atomCreation:new AT,atomDisposal:new AT,selectorCreation:new AT,selectorDisposal:new AT,timelineCreation:new AT,transactionCreation:new AT,transactionApplying:new OW(null),operationClose:new AT,moleculeCreationStart:new AT,moleculeCreationDone:new AT,moleculeDisposal:new AT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new BW("warn",(T,$,J)=>!J.includes("\uD83D\uDD0D"))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},dT($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new n$($?.transactionMeta.actionContinuities.toJSON())};for(let[,S]of $.families){if(S.internalRoles?.includes("mutable")||S.internalRoles?.includes("join"))continue;S.install(this)}let J=new Set;for(let[,S]of $.atoms){if(J.has(S.key))continue;if(S.install(this),S.type==="mutable_atom"){let F=uT($,S),M=iJ(S);J.add(F.key),J.add(M.key)}}for(let[,S]of $.readonlySelectors)S.install(this);for(let[,S]of $.selectors){if(J.has(S.key))continue;S.install(this)}for(let[,S]of $.transactions)S.install(this);for(let[,S]of $.timelines)S.install(this)}}}var GT={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new A4({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function $T(T,$){let J,S=$;while(S!==null){switch(T.type){case"atom":case"mutable_atom":J=S.atoms.get(T.key);break;case"selector":J=S.selectors.get(T.key);break;case"readonly_selector":J=S.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=S.families.get(T.key);break;case"timeline":J=S.timelines.get(T.key);break;case"transaction":J=S.transactions.get(T.key);break;case"molecule":J=S.molecules.get(e(T.key));break;case"molecule_family":J=S.moleculeFamilies.get(T.key);break}if(J)return J;S=S.child}throw new v$(T,$)}function G1(T,$){let J;J=$T(T,$);let{family:S}=T;for(let A of J.joins.values())A.relations.delete(J.key),A.molecules.delete(J.stringKey);let F=[];for(let A of J.above.values())F.push(z$(A));let M=[];for(let A of J.tokens.values()){let W=A.family;M.push([W.key,$.valueMap.get(A.key)])}if(S){let A=$T(S,$),W={type:"molecule_disposal",subType:"classic",token:T,family:S,context:F,values:M};if(T.family)W.family=T.family;for(let K of J.tokens.values())j$($,K);for(let K of J.below.values())if(K.dependsOn==="all")G1(K,$);else if(K.above.delete(J.stringKey),K.above.size===0)G1(K,$);if(J.below.clear(),YT($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push(W);else A.subject.next(W);$.molecules.delete(J.stringKey)}for(let A of J.above.values())A.below.delete(J.stringKey)}function nJ(T,$,J){let S=T.families.get($.key);if(S===void 0)throw new v$($,T);let F=S(J),M=x(T);if(F.family&&M.moleculeInProgress===null){if(dT(M))switch(F.type){case"atom":case"mutable_atom":T.on.atomCreation.next(F);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(F);break}else if(YT(M)&&M.on.transactionApplying.state===null)M.transactionMeta.update.updates.push({type:"state_creation",token:F})}return F}function bT(T,$,J){let S=e(J),F=`${$.key}(${S})`,M=x(T),A;switch($.type){case"atom_family":case"mutable_atom_family":A=M.atoms.get(F);break;case"selector_family":A=M.selectors.get(F);break;case"readonly_selector_family":A=M.readonlySelectors.get(F);break;case"molecule_family":A=M.molecules.get(e(J))}if(A)return z$(A);return A}function HT(T,$,J){let S=bT(T,$,J);if(S)return S;let F=T.molecules.get(e(J));if(F)return YJ(F,$,T);if(T.config.lifespan==="immortal"){let M=HF($,J);return T.logger.error("\u274C",M.type,M.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),M}return S=nJ(T,$,J),S}function j$(T,...$){let J,S;if($.length===1)J=$[0],S=J.key;else{let M=$[0],A=$[1];J=M.type==="molecule_family"?bT(T,M,A)??HF(M,A):HT(T,M,A)}try{$T(J,T)}catch(M){let A=T.disposalTraces.buffer.find((W)=>W?.key===J.key);T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`,A?`
6
8
  This state was most recently disposed
7
- ${F.trace}`:"No previous disposal trace was found.");return}switch($.type){case"atom":case"mutable_atom":T0($,T);break;case"selector":case"readonly_selector":rA($,T);break;case"molecule":fF($,T);break}let{stack:M}=new Error;if(M){let J=M?.split(`
9
+ ${A.trace}`:"No previous disposal trace was found.");return}switch(J.type){case"atom":case"mutable_atom":IW(J,T);break;case"selector":case"readonly_selector":W4(J,T);break;case"molecule":G1(J,T);break}let{stack:F}=new Error;if(F){let M=F?.split(`
8
10
  `)?.slice(3)?.join(`
9
- `);T.disposalTraces.add({key:$.key,trace:J})}}var MF=(T,S)=>I(S).atoms.has(T),CO=(T,S)=>I(S).selectors.has(T),xO=(T,S)=>I(S).readonlySelectors.has(T),aA=(T,S)=>MF(T,S)||CO(T,S)||xO(T,S);var JF=(T,S)=>{return I(S).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([f,{source:M}])=>M!==T).map(([f,{source:M}])=>M).filter((f)=>aA(f,S))};var S0=(T,S,$)=>{let f=[],M=JF(T,$);while(M.length>0){let J=M.shift();if(S.has(J))continue;if(S.add(J),!MF(J,$))M.push(...JF(J,$));else if(!f.includes(J))f.push(J)}return f},eA=(T,S)=>{let $=T.key,f=JF($,S),M=new Set;return f.flatMap((J)=>MF(J,S)?J:S0(J,M,S))};var sA=(T,S,$,f)=>{let M=I(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 J=S0(S.key,$,f);f.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${J.map((F)=>`"${F}"`).join(", ")} ]`);for(let F of J)M.selectorAtoms=M.selectorAtoms.set({selectorKey:T,atomKey:F})}$.add(S.key)};var FF=(T,S,$)=>({get:(...f)=>{let M=I($),J;if(f.length===2){let[A,X]=f;switch(A.type){case"molecule_family":return XT($,A,X);default:if($.config.lifespan==="ephemeral")J=OT($,A,X);else{let w=CT($,A,X);if(w)J=w;else throw new QS(A,X,$)}}}else[J]=f;if(J.type==="molecule")return XT($,J);let F=TT(J,$),W=v$(F,$);return $.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${J.key}" =`,W,")"),M.selectorGraph.set({upstreamSelectorKey:J.key,downstreamSelectorKey:T},{source:J.key}),sA(T,J,S,$),W},set:(...f)=>{let M,J;if(f.length===2)M=f[0],J=f[1];else{let A=f[0],X=f[1];J=f[2];let w=$.config.lifespan==="ephemeral"?OT($,A,X):CT($,A,X);if(!w)throw new QS(A,X,$);M=w}let F=I($),W=TT(M,F);aJ(W,J,F)},find:(f,M)=>OT($,f,M),seek:(f,M)=>CT($,f,M),json:(f)=>vT($,f)});var jM=(T,S,$)=>{let f=I(T),M=new fT,J=new Set,{get:F,find:W,seek:A,json:X}=FF(S.key,J,f),w=()=>{let G=S.get({get:F,find:W,seek:A,json:X});return hS(S.key,G,M,I(T)),J.clear(),G},y={...S,subject:M,install:(G)=>jM(G,S,$),get:w,type:"readonly_selector",...$&&{family:$}};f.readonlySelectors.set(S.key,y);let k=w();T.logger.info("\u2728",y.type,y.key,"=",k);let z={key:S.key,type:"readonly_selector"};if($)z.family=$;return z};var nM=(T,S,$)=>{let f=I(T),M=new fT,J=new Set,F=FF(S.key,J,f),{find:W,get:A,seek:X,json:w}=F,y={find:W,get:A,seek:X,json:w},k=(B=S.get,L=I(T))=>{let Z=B(y);return hS(S.key,Z,M,L),J.clear(),Z},G={...S,subject:M,install:(B)=>nM(B,S,$),get:k,set:(B)=>{let L=I(T),Z=k(S.get,L),j=rJ(B)(Z);if(T.logger.info("\uD83D\uDCDD","selector",S.key,"set (",Z,"->",j,")"),hS(S.key,j,M,L),qf(L,S.key),PT(L))M.next({newValue:j,oldValue:Z});S.set(F,j)},type:"selector",...$&&{family:$}};f.selectors.set(S.key,G);let U=k();T.logger.info("\u2728",G.type,G.key,"=",U);let E={key:S.key,type:"selector"};if($)E.family=$;return E};function iS(T,S){if("set"in S){let M=nM(T,S,void 0);return T.on.selectorCreation.next(M),M}let f=jM(T,S,void 0);return T.on.selectorCreation.next(f),f}function rA(T,S){let $=I(S),{key:f}=T,M=TT(T,$);if(!M.family)S.logger.error("\u274C","selector",f,"Standalone selectors cannot be disposed.");else{let J=$.molecules.get(M.family.subKey);if(J)J.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"),wT($)&&$.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 ${uS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let J=new fT,W=Object.assign((A)=>{let X=e(A),w={key:S.key,subKey:X},y=`${S.key}(${X})`,k=I(T),z=nM(k,{key:y,get:S.get(A),set:S.set(A)},w);return J.next({type:"state_creation",token:z}),z},f,{internalRoles:$,subject:J,install:(A)=>bM(A,S),default:(A)=>{return S.get(A)({get:(...w)=>XT(T,...w),find:(w,y)=>OT(T,w,y),seek:(w,y)=>CT(T,w,y),json:(w)=>vT(T,w)})}});return T.families.set(S.key,W),f}function T2(T,S,$=WT.STORE){let f=bM($,{key:`${T.key}:JSON`,get:(J)=>({seek:F,get:W})=>{let A=F(T,J);if(A)return S.toJson(W(A));let X=e(J),w=$.molecules.get(X);if(w){let k=lS(w,T,$);return S.toJson(W(k))}if($.config.lifespan==="immortal")throw new Error(`No molecule found for key "${X}"`);let y=G$($,T,J);return S.toJson(W(y))},set:(J)=>({seek:F,set:W},A)=>{let X=F(T,J);if(X)W(X,S.fromJson(A));else{let w=e(J),y=$.molecules.get(w);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 "${w}"`);W(G$($,T,J),S.fromJson(A))}}}},["mutable","json"]);return TT(T,$).subject.subscribe(`store=${$.config.name}::json-selector-family`,(J)=>{if(J.token.family)CT($,f,iT(J.token.family.subKey))}),f}var iT=(T)=>JSON.parse(T),e=(T)=>JSON.stringify(T),$z=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var S2=(T,S)=>{let $=I(S);if($.operation.open)return $.operation.prev.get(T.key);return $.valueMap.get(T.key)};var M0=(T,S)=>{let $=I(S);return eA(T,S).map((M)=>{let J=$.atoms.get(M);if(J===void 0)throw new Error(`Atom "${M}", a dependency of selector "${T.key}", not found in store "${S.config.name}".`);return J.subject.subscribe(`${T.type}:${T.key}`,(F)=>{S.logger.info("\uD83D\uDCE2",T.type,T.key,"root",M,"went",F.oldValue,"->",F.newValue);let W=S2(T,$),A=v$(T,$);S.logger.info("\u2728",T.type,T.key,"went",W,"->",A),T.subject.next({newValue:A,oldValue:W})})})};function yS(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 J=TT(T,f);f.logger.info("\uD83D\uDC40",J.type,J.key,`Adding subscription "${$}"`);let F=J.type==="selector"||J.type==="readonly_selector",W=null,A=M;if(F)W=M0(J,f),A=(y)=>{if(W)W.length=0,W.push(...M0(J,f));M(y)};let X=J.subject.subscribe($,A);return()=>{if(f.logger.info("\uD83D\uDE48",J.type,J.key,`Removing subscription "${$}"`),X(),W)for(let y of W)y()}}var $0=(T,S,$,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${$}"`);let J=M.subject.subscribe($,S);return()=>{f.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${$}" from timeline`),J()}};var f0=(T,S,$,f)=>{let M=TT(T,f);f.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${$}"`);let J=M.subject.subscribe($,S);return()=>{f.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${$}"`),J()}};class P${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=ES(S,{key:$,default:null},f);if(S.parent?.valueMap.has($)){let J=S.parent.valueMap.get($);S.valueMap.set($,J)}return M}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,S,$){let f=`tracker:${$.config.name}:${wT($)?$.transactionMeta.update.key:"main"}:${T.key}`,M=XT($,T);this.unsubscribeFromInnerValue=M.subscribe(f,(J)=>{ZT($,S,J)}),this.unsubscribeFromState=yS(T,(J)=>{if(J.newValue!==J.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=J.newValue.subscribe(f,(F)=>{ZT($,S,F)})},f,$)}updateCore(T,S,$){let f=`tracker:${$.config.name}:${wT($)?$.transactionMeta.update.key:"main"}:${T.key}`;yS(S,({newValue:M,oldValue:J})=>{let F=$.timelineTopics.getRelatedKey(S.key);if(F){if($.timelines.get(F)?.timeTraveling){let X=$0({key:F,type:"timeline"},(w)=>{X(),ZT($,T,(y)=>{if(w==="redo"&&M)y.do(M);else if(w==="undo"&&J)y.undo(J);return y})},f,$);return}}let W=$.on.operationClose.subscribe(f,()=>{W();let A=XT($,T),X=M===null?-1:A.getUpdateNumber(M),w=X-A.cacheUpdateNumber;if(M&&w===1)ZT($,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 ${X}`)})},f,$)}mutableState;latestUpdateState;dispose;constructor(T,S){this.mutableState=T;let $=I(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 vM(T,S,$){T.logger.info("\uD83D\uDD28","atom",S.key,`creating in store "${T.config.name}"`);let f=I(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."),wS(M);let J=new fT,F={...S,type:"mutable_atom",install:(X)=>{return X.logger.info("\uD83D\uDEE0\uFE0F","atom",S.key,`installing in store "${X.config.name}"`),vM(X,S,$)},subject:J};if($)F.family=$;let W=S.default();f.atoms.set(F.key,F),WF(S.key,T),hS(S.key,W,J,f);let A=wS(F);if(S.effects){let X=0,w=[];for(let y of S.effects){let k=y({setSelf:(z)=>{ZT(T,A,z)},onSet:(z)=>yS(A,z,`effect[${X}]`,T)});if(k)w.push(k);++X}F.cleanup=()=>{for(let y of w)y()}}if(new P$(A,T),!$)EA(A,S,T);return A}class J0{Update;latestUpdateAtoms;mutableAtoms;constructor(T,S){let $=W$(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=iT(f.token.family.subKey);CT(S,this.latestUpdateAtoms,M),new P$(f.token,S)}}),this.latestUpdateAtoms.subject.subscribe(`store=${S.config.name}::tracker-atom-family`,(f)=>{if(f.token.family){let M=iT(f.token.family.subKey),J=CT(S,this.mutableAtoms,M);if(J)new P$(J,S)}})}}function xM(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 ${uS(M)} "${M.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let J=new fT,W=Object.assign((A)=>{let X=e(A),w={key:S.key,subKey:X},y=`${S.key}(${X})`,k=I(T),z={key:y,default:()=>S.default(A),toJson:S.toJson,fromJson:S.fromJson,mutable:!0};if(S.effects)z.effects=S.effects(A);let G=vM(k,z,w);return J.next({type:"state_creation",token:G}),G},f,{subject:J,install:(A)=>xM(A,S),toJson:S.toJson,fromJson:S.fromJson,internalRoles:$});return T.families.set(S.key,W),T2(W,S,T),new J0(W,T),f}var F0=(T,S)=>{let $=I(S),f=`${T.key}:JSON`;return $.families.get(f)};var vT=(T,S)=>{if(S.family){let f=I(T),J={key:`${S.family.key}:JSON`,type:"selector_family"},F=TT(J,f),W=JSON.parse(S.family.subKey);return OT(T,F,W)}return{type:"selector",key:`${S.key}:JSON`}};var H$=(T)=>{let $={type:"atom",key:`*${T.key}`};if(T.family)$.family={key:`*${T.family.key}`,subKey:T.family.subKey};return $};function qA(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function mM(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 J=T.toJson(f),F=T.fromJson(J);return $.valueMap.set(T.key,F),new P$(T,S),F}return M}function hS(T,S,$,f){let M=f.valueMap.get(T);if(M instanceof CM)M.use(S);if(S instanceof Promise){let J=new CM(S);return f.valueMap.set(T,J),J.then((F)=>{hS(T,F,$,f),$.next({newValue:F,oldValue:J})}).catch((F)=>{f.logger.error("\uD83D\uDCA5","state",T,"rejected:",F)}),J}return f.valueMap.set(T,S),S}var NA=(T,S)=>{let $=S.valueMap.get(T.key);if(T.type==="mutable_atom"&&wT(S)){let{parent:f}=S;$=mM(T,f,S)}return $},bA=(T,S)=>{let $=S.valueMap.get(T);if($ instanceof CM){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 hA=(T,S)=>{return I(S).atomsThatAreDefault.has(T)},WF=(T,S)=>{let $=I(S);$.atomsThatAreDefault=new Set($.atomsThatAreDefault).add(T)},nA=(T,S)=>{let $=I(S);$.atomsThatAreDefault=new Set(I(S).atomsThatAreDefault),$.atomsThatAreDefault.delete(T)};function ES(T,S,$){T.logger.info("\uD83D\uDD28","atom",S.key,`creating in store "${T.config.name}"`);let f=I(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."),wS(M);let J=new fT,F={...S,type:"atom",install:(X)=>{return X.logger.info("\uD83D\uDEE0\uFE0F","atom",S.key,`installing in store "${X.config.name}"`),ES(X,S,$)},subject:J};if($)F.family=$;let W=S.default;if(S.default instanceof Function)W=S.default();f.atoms.set(F.key,F),WF(S.key,T),hS(S.key,W,J,f);let A=wS(F);if(S.effects){let X=0,w=[];for(let y of S.effects){let k=y({setSelf:(z)=>{ZT(T,A,z)},onSet:(z)=>yS(A,z,`effect[${X}]`,T)});if(k)w.push(k);++X}F.cleanup=()=>{for(let y of w)y()}}return A}function VA(T,S){if("mutable"in S){let M=vM(T,S,void 0);return T.on.atomCreation.next(M),M}let f=ES(T,S,void 0);return T.on.atomCreation.next(f),f}function T0(T,S){let $=I(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 J=S.valueMap.get(M.key);TT({key:M.family.key,type:"atom_family"},S).subject.next({type:"state_disposal",token:T,value:J});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=H$(T);T0(A,S),S.trackers.delete(f)}if(S.logger.info("\uD83D\uDD25","atom",f,"deleted"),wT($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push({type:"state_disposal",token:T});else S.on.atomDisposal.next(T)}}class uT extends Set{mode="record";subject=new fT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,S=0){super(T);if(T instanceof uT)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 uT(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:${e(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:${e(T)}`);return S}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new uT(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 J=T.substring(S+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=$,null}return this.cacheUpdateNumber+1}if(Math.abs(f)<this.cacheLimit){let J=this.cacheIdx+f;if(this.cache[J]===T)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let X=this.cache[this.cacheIdx];if(this.cacheIdx--,!X)return"OUT_OF_RANGE";this.undo(X),W=this.cacheIdx===J-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 J of M)this.add(J);break}case"tx":{let M=f.split(";");for(let J=M.length-1;J>=0;J--)this.undoStep(M[J])}}}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 IT(T){return T[0].toUpperCase()+T.slice(1)}class A0{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 A0(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=(D,H)=>{let Q=this.toolkit.seek(D,H);if(Q)return Q;let b=this.store.molecules.get(e(H));if(b){let n=TT(D,$);return lS(b,n,$)}if($.config.lifespan==="immortal")throw new QS(D,H,$);return G$($,D,H)},this.toolkit={get:(...D)=>XT($,...D),set:(...D)=>{ZT($,...D)},find:this.retrieve,seek:(...D)=>CT($,...D),json:(D)=>vT($,D),dispose:(...D)=>{RS($,...D)}};let f=T.between[0],M=T.between[1],J=xM($,{key:`${T.key}/relatedKeys`,default:()=>new uT,mutable:!0,fromJson:(D)=>uT.fromJSON(D),toJson:(D)=>D.toJSON()},["join","relations"]);this.core={findRelatedKeysState:J};let F=({get:D},H)=>D(this.retrieve(J,H)),W=(D,H,Q)=>{let{set:b}=D,n=this.retrieve(J,H),R=this.retrieve(J,Q);b(n,(o)=>o.add(Q)),b(R,(o)=>o.add(H))},A=(D,H,Q)=>{let{set:b}=D,n=this.retrieve(J,H),R=this.retrieve(J,Q),o,P;b(n,(i)=>{if(i.delete(Q),i.size===0)o=`"${H}"`;return i}),b(R,(i)=>{if(i.delete(H),i.size===0)P=`"${Q}"`;return i})},X=(D,H,Q)=>{let{get:b,set:n}=D,R=this.retrieve(J,H),o=b(R);for(let P of o){if(Q.includes(P))continue;let YT=this.retrieve(J,P);n(YT,(HT)=>{return HT.delete(H),HT})}n(R,(P)=>{return P.transaction((i)=>{i.clear();for(let YT of Q){let HT=F(D,YT),DS=HT.has(H);if(this.relations.cardinality==="1:n"){let Y$=[];for(let N of HT){if(N===H)continue;let d=F(D,N);if(d.delete(YT),d.size===0)Y$.push(N)}if(!DS&&HT.size>0)HT.clear();for(let N of Y$){let d=[YT,N].sort(),RT=`"${d[0]}:${d[1]}"`;this.molecules.delete(RT)}}if(!DS)HT.add(H);i.add(YT)}return!0}),P})},w=(D,H,Q)=>{let{set:b}=D,n=this.retrieve(J,H);b(n,(R)=>{return R.transaction((o)=>{for(let P of Q)o.add(P);return!0}),R});for(let R of Q){let o=this.retrieve(J,R);b(o,(P)=>{return P.add(H),P})}return!0},y=(D,H,Q)=>{let b=F(D,H);return Q?b.has(Q):b.size>0},k={getRelatedKeys:(D)=>F(this.toolkit,D),addRelation:(D,H)=>{W(this.toolkit,D,H)},deleteRelation:(D,H)=>{A(this.toolkit,D,H)},replaceRelationsSafely:(D,H)=>{X(this.toolkit,D,H)},replaceRelationsUnsafely:(D,H)=>{w(this.toolkit,D,H)},has:(D,H)=>y(this.toolkit,D,H)},z,G,U;if(S){G=W$($,{key:`${T.key}/content`,default:S},["join","content"]),U=vA($,{key:`${T.key}/content-molecules`,new:class n{key;constructor(R,o){this.key=o}}});let D=({get:n},R)=>n(this.retrieve(G,R)),H=({set:n},R,o)=>{n(this.retrieve(G,R),o)},Q=(n,R)=>{let o=$.molecules.get(`"${R}"`);if(o)this.toolkit.dispose(o),this.molecules.delete(`"${R}"`)};z=Object.assign(k,{getContent:(n)=>{return D(this.toolkit,n)},setContent:(n,R)=>{H(this.toolkit,n,R)},deleteContent:(n)=>{Q(this.toolkit,n)}})}else z=k;let E=new LS(T,{externalStore:z,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...D)=>{let H=D.sort(),Q=`${H[0]}:${H[1]}`,[b,n]=H.map((R)=>this.molecules.get(e(R)));if($.config.lifespan==="immortal"&&b&&n){let R=I($),o=z$(R,[b,n],U,Q);this.molecules.set(`"${Q}"`,TT(o,R))}return Q}}),B=()=>R$($,{key:`${T.key}/singleRelatedKey`,get:(D)=>({get:H})=>{let Q=this.retrieve(J,D),b=H(Q);for(let n of b)return n;return null}},["join","keys"]),L=()=>{return R$($,{key:`${T.key}/multipleRelatedKeys`,get:(D)=>({get:H})=>{let Q=F0(J,$),b=this.retrieve(Q,D);return H(b).members}},["join","keys"])},Z=()=>R$($,{key:`${T.key}/singleRelatedEntry`,get:(D)=>({get:H})=>{let Q=this.retrieve(J,D),b=H(Q);for(let n of b){let R=E.isAType?.(D)?D:void 0,o=R===void 0?D:void 0;R??=n,o??=n;let P=E.makeContentKey(R,o),i=this.retrieve(G,P),YT=H(i);return[n,YT]}return null}},["join","entries"]),j=()=>R$($,{key:`${T.key}/multipleRelatedEntries`,get:(D)=>({get:H})=>{let Q=F0(J,$),b=this.retrieve(Q,D);return H(b).members.map((R)=>{let o=E.isAType?.(D)?D:void 0,P=o===void 0?D:void 0;o??=R,P??=R;let i=E.makeContentKey(o,P),YT=this.retrieve(G,i),HT=H(YT);return[R,HT]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let D=B(),H=`${f}KeyOf${IT(M)}`,Q=`${M}KeyOf${IT(f)}`,b={[H]:D,[Q]:D},n;if(S){let R=Z(),o=`${f}EntryOf${IT(M)}`,P=`${M}EntryOf${IT(f)}`,i={[o]:R,[P]:R};n=Object.assign(b,i)}else n=b;this.relations=E,this.states=n;break}case"1:n":{let D=B(),H=L(),Q=`${f}KeyOf${IT(M)}`,b=`${M}KeysOf${IT(f)}`,n={[Q]:D,[b]:H},R;if(S){let o=Z(),P=j(),i=`${f}EntryOf${IT(M)}`,YT=`${M}EntriesOf${IT(f)}`,HT={[i]:o,[YT]:P};R=Object.assign(n,HT)}else R=n;this.relations=E,this.states=R;break}default:{let D=L(),H=`${f}KeysOf${IT(M)}`,Q=`${M}KeysOf${IT(f)}`,b={[H]:D,[Q]:D},n;if(S){let R=j(),o=`${f}EntriesOf${IT(M)}`,P=`${M}EntriesOf${IT(f)}`,i={[o]:R,[P]:R};n=Object.assign(b,i)}else n=b;this.relations=E,this.states=n}}}}function AF(T,S,$=WT.STORE){return W0($).set(T.key,new A0(T,S,$)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function W0(T){if("joins"in T&&T.joins instanceof Map)return T.joins;let S=new Map;return T.joins=S,S}function hM(T,S){let $=W0(S),f=$.get(T.key);if(f===void 0){if(f=W0(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 XF(T,S,$){let f=hM(T,$),M;switch(T.cardinality){case"1:1":{let J=`${T.a}KeyOf${IT(T.b)}`,F=`${T.b}KeyOf${IT(T.a)}`;M={get[J](){let A=f.states[J];return f.retrieve(A,S)},get[F](){let A=f.states[F];return f.retrieve(A,S)}};let W=`${T.a}EntryOf${IT(T.b)}`;if(W in f.states){let A=`${T.b}EntryOf${IT(T.a)}`;Object.assign(M,{get[W](){let X=f.states[W];return f.retrieve(X,S)},get[A](){let X=f.states[A];return f.retrieve(X,S)}})}break}case"1:n":{let J=`${T.a}KeyOf${IT(T.b)}`,F=`${T.b}KeysOf${IT(T.a)}`;M={get[J](){let A=f.states[J];return f.retrieve(A,S)},get[F](){let A=f.states[F];return f.retrieve(A,S)}};let W=`${T.a}EntryOf${IT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${IT(T.a)}`;Object.assign(M,{get[W](){let X=f.states[W];return f.retrieve(X,S)},get[A](){let X=f.states[A];return f.retrieve(X,S)}})}break}case"n:n":{let J=`${T.a}KeysOf${IT(T.b)}`,F=`${T.b}KeysOf${IT(T.a)}`;M={get[J](){let A=f.states[J];return f.retrieve(A,S)},get[F](){let A=f.states[F];return f.retrieve(A,S)}};let W=`${T.a}EntriesOf${IT(T.b)}`;if(W in f.states){let A=`${T.b}EntriesOf${IT(T.a)}`;Object.assign(M,{get[W](){let X=f.states[W];return f.retrieve(X,S)},get[A](){let X=f.states[A];return f.retrieve(X,S)}})}}}return M}function cA(T,S){return XF(T,S,WT.STORE)}function wF(T,S,$){let f=hM(T,$),M=I($);if(wT(M)){let{toolkit:J}=M.transactionMeta;f.transact(J,({relations:F})=>{S(F)})}else S(f.relations)}function jO(T,S){return hM(T,S).core.findRelatedKeysState}function $2(T){return jO(T,WT.STORE)}class f2 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 yF{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new f2;static create(T,S){let $=new yF(T),{type:f,globals:M,actions:J,perspectives:F}=S($),W={type:f,key:T,globals:M,actions:J,perspectives:F};return yF.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 sH(T){let{key:S,config:$}=T,f=yF.create(S,$),{actions:M}=f;for(let J of M)iA(S,J.key,WT.STORE);return gA(S,-1,WT.STORE),f}var M_=Zf({key:"usersInRoomIndex",mutable:!0,default:()=>new uT,toJson:(T)=>T.toJSON(),fromJson:(T)=>uT.fromJSON(T)}),X0=Zf({key:"roomIndex",default:()=>new uT,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>uT.fromJSON(T)}),IO={enteredAtEpoch:0},PM=AF({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},IO),J_=dJ({key:"usersInMyRoomView",get:(T)=>({find:S})=>{let $=$2(PM);return[S($,T)]}});import{spawn as bO}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 w0 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 J=JSON.stringify([f,...M])+"\x03",F=(W)=>{if(W.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",F)};return this.process.stdin.once("error",F),this.process.stdin.write(J),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 J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let F=iT(this.incompleteData);this.handleEvent(...F);while(this.unprocessedEvents.length>0){let W=this.unprocessedEvents.shift();if(W){if(this.unprocessedEvents.length===0)this.incompleteData=W;F=iT(W),this.handleEvent(...F)}}this.incompleteData=""}catch(F){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(F)}}),this.process.stderr.on("data",(f)=>{let M=f.toString();this.unprocessedLogs.push(...M.split("\x03"));let J=this.unprocessedLogs.shift();this.incompleteLog+=J??"";try{let F=iT(this.incompleteLog);this.handleLog(F);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)F=iT(this.incompleteLog),this.handleLog(F)}catch(F){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(F),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class M2 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 y0 extends mf{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(e(T.map((S)=>S instanceof uT?`{ ${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=iT(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 J=iT(M);this.handleEvent(...J)}}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 M2(`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!"]]}),J2=dJ({key:"room",get:(T)=>async({get:S,find:$})=>{let f=$(k0,T),M=S(f),[J,F]=M,W=await new Promise((A)=>{let X=bO(J,F,{env:process.env}),w=(y)=>{if(y.toString()==="ALIVE")X.stdout.off("data",w),A(X)};X.stdout.on("data",w)});return new w0(W,T)}});var b_=qM({key:"createRoom",do:({get:T,set:S,find:$},f,M,J)=>{let F=J?[M,J]:[M],W=$(k0,f);S(W,F),S(X0,(w)=>w.add(f));let A=$(J2,f);return T(A)}}),Z_=qM({key:"joinRoom",do:(T,S,$,f)=>{let M={enteredAtEpoch:f};return wF(PM,(J)=>{J.set({room:S,user:$},M)},T.env().store),M}}),q_=qM({key:"leaveRoom",do:(T,S,$)=>{wF(PM,(f)=>{f.delete({room:S,user:$})},T.env().store)}}),m_=qM({key:"destroyRoom",do:(T,S)=>{wF(PM,($)=>{$.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 v_=Tf({key:"redactor",default:{occlude:(T)=>T}}),hf=Tf({key:"unacknowledgedUpdates",default:()=>[]});var F2=Tf({key:"sockets",default:null}),t_=Zf({key:"socketsIndex",mutable:!0,default:()=>new uT,toJson:(T)=>T.toJSON(),fromJson:(T)=>uT.fromJSON(T)}),p_=Zf({key:"usersIndex",mutable:!0,default:()=>new uT,toJson:(T)=>T.toJSON(),fromJson:(T)=>uT.fromJSON(T)}),K0=AF({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function W2(T,S,$,f){let M=S.key;return function J(){let F=[];for(let A of S.globals){let X=A.type==="mutable_atom"?vT(T,A):A,w=XT(T,X);F.push(X,w)}for(let A of S.perspectives){let{viewAtoms:X,resourceAtoms:w}=A,y=OT(T,X,$),k=XT(T,y);T.logger.info("\uD83D\uDC41","atom",w.key,`${$} can see`,{viewAtoms:X,resourceAtoms:w,userView:k});for(let z of k){let G=z.type==="mutable_atom"?vT(T,z):z,U=XT(T,G);F.push(G,U)}}let W=PT(T)?T.transactionMeta.epoch.get(M)??null:null;f?.emit(`continuity-init:${M}`,W,F)}}function A2(T,S,$){let f=S.key;return function M(J){T.logger.info("\uD83D\uDECE\uFE0F","continuity",f,"received",J);let{key:F,id:W}=J,A=`tx-run:${F}:${W}`,X=`${A}:start`,w=`${A}:end`;performance.mark(X);try{n$({type:"transaction",key:F},W,T)(...J.params)}catch(k){if(k instanceof Error)T.logger.error("\u274C","continuity",f,`failed to run transaction ${F} from ${$} with update ${W}`,k.message)}performance.mark(w);let y=performance.measure(A,X,w);T?.logger.info("\uD83D\uDE80","transaction",F,W,$,y.duration)}}function X2(T,S,$,f){let M=S.key;return function J(F){if(T.logger.info("\uD83D\uDC4D","continuity",M,`${$} acknowledged epoch ${F}`),f[0]?.epoch===F)ZT(T,hf,$,(A)=>{return A.shift(),T.logger.info("\uD83D\uDC4D","continuity",M,`${$} unacknowledged update queue now has`,A.length,"items"),A})}}function w2(T,S,$,f){let M=S.key,J=[];for(let F of S.actions){let W=f0(F,(A)=>{try{let X=S.globals.map((k)=>{if(k.type==="atom")return k.key;return H$(k).key}).concat(S.perspectives.flatMap((k)=>{let{viewAtoms:z}=k,G=OT(T,z,$);return XT(T,G).map((E)=>{return E.type==="mutable_atom"?"*"+E.key:E.key})})),w=O0(X,A.updates),y={...A,updates:w};ZT(T,hf,$,(k)=>{if(y)k.push(y),k.sort((z,G)=>z.epoch-G.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(X){if(X instanceof Error)T.logger.error("\u274C","continuity",M,`${$} failed to send update from transaction ${F.key} to ${$}`,X.message)}},`sync-continuity:${M}:${$}`,T);J.push(W)}return J}function y2(T,S,$,f){let M=S.key,J=[];for(let F of S.perspectives){let{viewAtoms:W}=F,A=OT(T,W,$),X=yS(A,({oldValue:w,newValue:y})=>{let k=w.map((E)=>E.key),z=y.map((E)=>E.key),G=w.filter((E)=>!z.includes(E.key)),U=y.filter((E)=>!k.includes(E.key)).flatMap((E)=>{let B=E.type==="mutable_atom"?vT(T,E):E,L=XT(T,B);return[B,L]});if(T.logger.info("\uD83D\uDC41","atom",F.resourceAtoms.key,`${$} has a new perspective`,{oldKeys:k,newKeys:z,revealed:U,concealed:G}),U.length>0)f?.emit(`reveal:${M}`,U);if(G.length>0)f?.emit(`conceal:${M}`,G)},`sync-continuity:${M}:${$}:perspective:${F.resourceAtoms.key}`,T);J.push(X)}return J}function DD({socket:T,store:S=WT.STORE}){return function $(f){let M=T,J=f.key,F=XF(K0,`socket::${M.id}`,S).userKeyOfSocket,W=XT(S,F);if(!W)return S.logger.error("\u274C","continuity",J,`Tried to create a synchronizer for a socket (${M.id}) that is not connected to a user.`),()=>{};let A=XF(K0,W,S).socketKeyOfUser,X=yS(A,({newValue:B})=>{if(S.logger.info("\uD83D\uDC4B","continuity",J,`seeing ${W} on new socket ${B}`),B===null){S.logger.warn("\u274C","continuity",J,`User (${W}) is not connected to a socket, waiting for them to reappear.`);return}let L=OT(S,F2,B);M=XT(S,L);for(let j of w)M?.emit(`tx-new:${J}`,j)},`sync-continuity:${J}:${W}`,S),w=XT(S,hf,W),y=[],k=y2(S,f,W,M),z=w2(S,f,W,M);y.push(...k,...z);let G=W2(S,f,W,T);M.off(`get:${J}`,G),M.on(`get:${J}`,G);let U=A2(S,f,W);M.off(`tx-run:${J}`,U),M.on(`tx-run:${J}`,U);let E=X2(S,f,W,w);return M?.on(`ack:${J}`,E),()=>{for(let B of y)B();M?.off(`ack:${J}`,E),M?.off(`get:${J}`,G),M?.off(`tx-run:${J}`,U)}}}var O2=Symbol("Let zodToJsonSchema decide on which parser to use"),k2={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"},K2=(T)=>typeof T==="string"?{...k2,name:T}:{...k2,...T};var Y2=(T)=>{let S=K2(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 Y0(T,S,$,f){if(!f?.errorMessages)return;if($)T.errorMessage={...T.errorMessage,[S]:$}}function yT(T,S,$,f,M){T[S]=$,Y0(T,S,f,M)}var KT;(function(T){T.assertEqual=(M)=>M;function S(M){}T.assertIs=S;function $(M){throw new Error}T.assertNever=$,T.arrayToEnum=(M)=>{let J={};for(let F of M)J[F]=F;return J},T.getValidEnumValues=(M)=>{let J=T.objectKeys(M).filter((W)=>typeof M[M[W]]!=="number"),F={};for(let W of J)F[W]=M[W];return T.objectValues(F)},T.objectValues=(M)=>{return T.objectKeys(M).map(function(J){return M[J]})},T.objectKeys=typeof Object.keys==="function"?(M)=>Object.keys(M):(M)=>{let J=[];for(let F in M)if(Object.prototype.hasOwnProperty.call(M,F))J.push(F);return J},T.find=(M,J)=>{for(let F of M)if(J(F))return F;return},T.isInteger=typeof Number.isInteger==="function"?(M)=>Number.isInteger(M):(M)=>typeof M==="number"&&isFinite(M)&&Math.floor(M)===M;function f(M,J=" | "){return M.map((F)=>typeof F==="string"?`'${F}'`:F).join(J)}T.joinValues=f,T.jsonStringifyReplacer=(M,J)=>{if(typeof J==="bigint")return J.toString();return J}})(KT||(KT={}));var G0;(function(T){T.mergeShapes=(S,$)=>{return{...S,...$}}})(G0||(G0={}));var g=KT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),D$=(T)=>{switch(typeof T){case"undefined":return g.undefined;case"string":return g.string;case"number":return isNaN(T)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":if(Array.isArray(T))return g.array;if(T===null)return g.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return g.promise;if(typeof Map!=="undefined"&&T instanceof Map)return g.map;if(typeof Set!=="undefined"&&T instanceof Set)return g.set;if(typeof Date!=="undefined"&&T instanceof Date)return g.date;return g.object;default:return g.unknown}},C=KT.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"]),ZO=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class NS 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 J of M.issues)if(J.code==="invalid_union")J.unionErrors.map(f);else if(J.code==="invalid_return_type")f(J.returnTypeError);else if(J.code==="invalid_arguments")f(J.argumentsError);else if(J.path.length===0)$._errors.push(S(J));else{let F=$,W=0;while(W<J.path.length){let A=J.path[W];if(W!==J.path.length-1)F[A]=F[A]||{_errors:[]};else F[A]=F[A]||{_errors:[]},F[A]._errors.push(S(J));F=F[A],W++}}};return f(this),$}static assert(T){if(!(T instanceof NS))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,KT.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()}}NS.create=(T)=>{return new NS(T)};var cf=(T,S)=>{let $;switch(T.code){case C.invalid_type:if(T.received===g.undefined)$="Required";else $=`Expected ${T.expected}, received ${T.received}`;break;case C.invalid_literal:$=`Invalid literal value, expected ${JSON.stringify(T.expected,KT.jsonStringifyReplacer)}`;break;case C.unrecognized_keys:$=`Unrecognized key(s) in object: ${KT.joinValues(T.keys,", ")}`;break;case C.invalid_union:$="Invalid input";break;case C.invalid_union_discriminator:$=`Invalid discriminator value. Expected ${KT.joinValues(T.options)}`;break;case C.invalid_enum_value:$=`Invalid enum value. Expected ${KT.joinValues(T.options)}, received '${T.received}'`;break;case C.invalid_arguments:$="Invalid function arguments";break;case C.invalid_return_type:$="Invalid function return type";break;case C.invalid_date:$="Invalid date";break;case C.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 KT.assertNever(T.validation);else if(T.validation!=="regex")$=`Invalid ${T.validation}`;else $="Invalid";break;case C.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 C.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 C.custom:$="Invalid input";break;case C.invalid_intersection_types:$="Intersection results could not be merged";break;case C.not_multiple_of:$=`Number must be a multiple of ${T.multipleOf}`;break;case C.not_finite:$="Number must be finite";break;default:$=S.defaultError,KT.assertNever(T)}return{message:$}},z2=cf;function qO(T){z2=T}function kF(){return z2}var OF=(T)=>{let{data:S,path:$,errorMaps:f,issueData:M}=T,J=[...$,...M.path||[]],F={...M,path:J};if(M.message!==void 0)return{...M,path:J,message:M.message};let W="",A=f.filter((X)=>!!X).slice().reverse();for(let X of A)W=X(F,{data:S,defaultError:W}).message;return{...M,path:J,message:W}},mO=[];function h(T,S){let $=kF(),f=OF({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,J=await f.value;$.push({key:M,value:J})}return kS.mergeObjectSync(T,$)}static mergeObjectSync(T,S){let $={};for(let f of S){let{key:M,value:J}=f;if(M.status==="aborted")return ST;if(J.status==="aborted")return ST;if(M.status==="dirty")T.dirty();if(J.status==="dirty")T.dirty();if(M.value!=="__proto__"&&(typeof J.value!=="undefined"||f.alwaysSet))$[M.value]=J.value}return{status:T.value,value:$}}}var ST=Object.freeze({status:"aborted"}),vf=(T)=>({status:"dirty",value:T}),GS=(T)=>({status:"valid",value:T}),z0=(T)=>T.status==="aborted",H0=(T)=>T.status==="dirty",Sf=(T)=>T.status==="valid",gM=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function KF(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 H2(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 p;(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})(p||(p={}));var cM,oM;class aS{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 R2=(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 NS(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:(F,W)=>{var A,X;let{message:w}=T;if(F.code==="invalid_enum_value")return{message:w!==null&&w!==void 0?w:W.defaultError};if(typeof W.data==="undefined")return{message:(A=w!==null&&w!==void 0?w:f)!==null&&A!==void 0?A:W.defaultError};if(F.code!=="invalid_type")return{message:W.defaultError};return{message:(X=w!==null&&w!==void 0?w:$)!==null&&X!==void 0?X:W.defaultError}},description:M}}class JT{get description(){return this._def.description}_getType(T){return D$(T.data)}_getOrReturnCtx(T,S){return S||{common:T.parent.common,data:T.data,parsedType:D$(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:D$(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let S=this._parse(T);if(gM(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:D$(T)},M=this._parseSync({data:T,path:f.path,parent:f});return R2(f,M)}"~validate"(T){var S,$;let f={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:D$(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:D$(T)},f=this._parse({data:T,path:$.path,parent:$}),M=await(gM(f)?f:Promise.resolve(f));return R2($,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 J=T(f),F=()=>M.addIssue({code:C.custom,...$(f)});if(typeof Promise!=="undefined"&&J instanceof Promise)return J.then((W)=>{if(!W)return F(),!1;else return!0});if(!J)return F(),!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 vS({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(S)=>this["~validate"](S)}}optional(){return CS.create(this,this._def)}nullable(){return E$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rS.create(this)}promise(){return Jf.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 vS({...MT(this._def),schema:this,typeName:x.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:x.ZodDefault})}brand(){return new RF({typeName:x.ZodBranded,type:this,...MT(this._def)})}catch(T){let S=typeof T==="function"?T:()=>T;return new ef({...MT(this._def),innerType:this,catchValue:S,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return dM.create(this,T)}readonly(){return sf.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var hO=/^c[^\s-]{8,}$/i,nO=/^[0-9a-z]+$/,vO=/^[0-9A-HJKMNP-TV-Z]{26}$/i,PO=/^[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,cO=/^[a-z0-9_-]{21}$/i,oO=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,gO=/^[-+]?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)?)??$/,tO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,pO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",R0,iO=/^(?:(?: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])$/,uO=/^(?:(?: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])$/,lO=/^(([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]))$/,dO=/^(([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])$/,rO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,aO=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,_2="((\\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])))",eO=new RegExp(`^${_2}$`);function D2(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 sO(T){return new RegExp(`^${D2(T)}$`)}function E2(T){let S=`${_2}T${D2(T)}`,$=[];if($.push(T.local?"Z?":"Z"),T.offset)$.push("([+-]\\d{2}:?\\d{2})");return S=`${S}(${$.join("|")})`,new RegExp(`^${S}$`)}function T4(T,S){if((S==="v4"||!S)&&iO.test(T))return!0;if((S==="v6"||!S)&&lO.test(T))return!0;return!1}function S4(T,S){if(!oO.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 $4(T,S){if((S==="v4"||!S)&&uO.test(T))return!0;if((S==="v6"||!S)&&dO.test(T))return!0;return!1}class dS extends JT{_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:C.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:C.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:C.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!1,message:M.message}),$.dirty()}else if(M.kind==="length"){let J=T.data.length>M.value,F=T.data.length<M.value;if(J||F){if(f=this._getOrReturnCtx(T,f),J)h(f,{code:C.too_big,maximum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});else if(F)h(f,{code:C.too_small,minimum:M.value,type:"string",inclusive:!0,exact:!0,message:M.message});$.dirty()}}else if(M.kind==="email"){if(!tO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"email",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="emoji"){if(!R0)R0=new RegExp(pO,"u");if(!R0.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"emoji",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="uuid"){if(!PO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"uuid",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="nanoid"){if(!cO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"nanoid",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cuid"){if(!hO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cuid2"){if(!nO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"cuid2",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="ulid"){if(!vO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"ulid",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="url")try{new URL(T.data)}catch(J){f=this._getOrReturnCtx(T,f),h(f,{validation:"url",code:C.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:C.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:C.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:C.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:C.invalid_string,validation:{endsWith:M.value},message:M.message}),$.dirty()}else if(M.kind==="datetime"){if(!E2(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:C.invalid_string,validation:"datetime",message:M.message}),$.dirty()}else if(M.kind==="date"){if(!eO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:C.invalid_string,validation:"date",message:M.message}),$.dirty()}else if(M.kind==="time"){if(!sO(M).test(T.data))f=this._getOrReturnCtx(T,f),h(f,{code:C.invalid_string,validation:"time",message:M.message}),$.dirty()}else if(M.kind==="duration"){if(!gO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"duration",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="ip"){if(!T4(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"ip",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="jwt"){if(!S4(T.data,M.alg))f=this._getOrReturnCtx(T,f),h(f,{validation:"jwt",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="cidr"){if(!$4(T.data,M.version))f=this._getOrReturnCtx(T,f),h(f,{validation:"cidr",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="base64"){if(!rO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64",code:C.invalid_string,message:M.message}),$.dirty()}else if(M.kind==="base64url"){if(!aO.test(T.data))f=this._getOrReturnCtx(T,f),h(f,{validation:"base64url",code:C.invalid_string,message:M.message}),$.dirty()}else KT.assertNever(M);return{status:$.value,value:T.data}}_regex(T,S,$){return this.refinement((f)=>T.test(f),{validation:S,code:C.invalid_string,...p.errToObj($)})}_addCheck(T){return new dS({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...p.errToObj(T)})}url(T){return this._addCheck({kind:"url",...p.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...p.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...p.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...p.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...p.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...p.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...p.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...p.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...p.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...p.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...p.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...p.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,...p.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,...p.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...p.errToObj(T)})}regex(T,S){return this._addCheck({kind:"regex",regex:T,...p.errToObj(S)})}includes(T,S){return this._addCheck({kind:"includes",value:T,position:S===null||S===void 0?void 0:S.position,...p.errToObj(S===null||S===void 0?void 0:S.message)})}startsWith(T,S){return this._addCheck({kind:"startsWith",value:T,...p.errToObj(S)})}endsWith(T,S){return this._addCheck({kind:"endsWith",value:T,...p.errToObj(S)})}min(T,S){return this._addCheck({kind:"min",value:T,...p.errToObj(S)})}max(T,S){return this._addCheck({kind:"max",value:T,...p.errToObj(S)})}length(T,S){return this._addCheck({kind:"length",value:T,...p.errToObj(S)})}nonempty(T){return this.min(1,p.errToObj(T))}trim(){return new dS({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new dS({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new dS({...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}}dS.create=(T)=>{var S;return new dS({checks:[],typeName:x.ZodString,coerce:(S=T===null||T===void 0?void 0:T.coerce)!==null&&S!==void 0?S:!1,...MT(T)})};function f4(T,S){let $=(T.toString().split(".")[1]||"").length,f=(S.toString().split(".")[1]||"").length,M=$>f?$:f,J=parseInt(T.toFixed(M).replace(".","")),F=parseInt(S.toFixed(M).replace(".",""));return J%F/Math.pow(10,M)}class o$ extends JT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==g.number){let M=this._getOrReturnCtx(T);return h(M,{code:C.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(!KT.isInteger(T.data))$=this._getOrReturnCtx(T,$),h($,{code:C.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:C.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:C.too_big,maximum:M.value,type:"number",inclusive:M.inclusive,exact:!1,message:M.message}),f.dirty()}else if(M.kind==="multipleOf"){if(f4(T.data,M.value)!==0)$=this._getOrReturnCtx(T,$),h($,{code:C.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:C.not_finite,message:M.message}),f.dirty()}else KT.assertNever(M);return{status:f.value,value:T.data}}gte(T,S){return this.setLimit("min",T,!0,p.toString(S))}gt(T,S){return this.setLimit("min",T,!1,p.toString(S))}lte(T,S){return this.setLimit("max",T,!0,p.toString(S))}lt(T,S){return this.setLimit("max",T,!1,p.toString(S))}setLimit(T,S,$,f){return new o$({...this._def,checks:[...this._def.checks,{kind:T,value:S,inclusive:$,message:p.toString(f)}]})}_addCheck(T){return new o$({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:p.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(T)})}multipleOf(T,S){return this._addCheck({kind:"multipleOf",value:T,message:p.toString(S)})}finite(T){return this._addCheck({kind:"finite",message:p.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.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"&&KT.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:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class g$ extends JT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(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:C.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:C.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:C.not_multiple_of,multipleOf:M.value,message:M.message}),f.dirty()}else KT.assertNever(M);return{status:f.value,value:T.data}}_getInvalidInput(T){let S=this._getOrReturnCtx(T);return h(S,{code:C.invalid_type,expected:g.bigint,received:S.parsedType}),ST}gte(T,S){return this.setLimit("min",T,!0,p.toString(S))}gt(T,S){return this.setLimit("min",T,!1,p.toString(S))}lte(T,S){return this.setLimit("max",T,!0,p.toString(S))}lt(T,S){return this.setLimit("max",T,!1,p.toString(S))}setLimit(T,S,$,f){return new g$({...this._def,checks:[...this._def.checks,{kind:T,value:S,inclusive:$,message:p.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:p.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(T)})}multipleOf(T,S){return this._addCheck({kind:"multipleOf",value:T,message:p.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:x.ZodBigInt,coerce:(S=T===null||T===void 0?void 0:T.coerce)!==null&&S!==void 0?S:!1,...MT(T)})};class of extends JT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==g.boolean){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.boolean,received:$.parsedType}),ST}return GS(T.data)}}of.create=(T)=>{return new of({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...MT(T)})};class $f extends JT{_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:C.invalid_type,expected:g.date,received:M.parsedType}),ST}if(isNaN(T.data.getTime())){let M=this._getOrReturnCtx(T);return h(M,{code:C.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:C.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:C.too_big,message:M.message,inclusive:!0,exact:!1,maximum:M.value,type:"date"}),$.dirty()}else KT.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:p.toString(S)})}max(T,S){return this._addCheck({kind:"max",value:T.getTime(),message:p.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:x.ZodDate,...MT(T)})};class tM extends JT{_parse(T){if(this._getType(T)!==g.symbol){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.symbol,received:$.parsedType}),ST}return GS(T.data)}}tM.create=(T)=>{return new tM({typeName:x.ZodSymbol,...MT(T)})};class gf extends JT{_parse(T){if(this._getType(T)!==g.undefined){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.undefined,received:$.parsedType}),ST}return GS(T.data)}}gf.create=(T)=>{return new gf({typeName:x.ZodUndefined,...MT(T)})};class tf extends JT{_parse(T){if(this._getType(T)!==g.null){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.null,received:$.parsedType}),ST}return GS(T.data)}}tf.create=(T)=>{return new tf({typeName:x.ZodNull,...MT(T)})};class ff extends JT{constructor(){super(...arguments);this._any=!0}_parse(T){return GS(T.data)}}ff.create=(T)=>{return new ff({typeName:x.ZodAny,...MT(T)})};class c$ extends JT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return GS(T.data)}}c$.create=(T)=>{return new c$({typeName:x.ZodUnknown,...MT(T)})};class A$ extends JT{_parse(T){let S=this._getOrReturnCtx(T);return h(S,{code:C.invalid_type,expected:g.never,received:S.parsedType}),ST}}A$.create=(T)=>{return new A$({typeName:x.ZodNever,...MT(T)})};class pM extends JT{_parse(T){if(this._getType(T)!==g.undefined){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.void,received:$.parsedType}),ST}return GS(T.data)}}pM.create=(T)=>{return new pM({typeName:x.ZodVoid,...MT(T)})};class rS extends JT{_parse(T){let{ctx:S,status:$}=this._processInputParams(T),f=this._def;if(S.parsedType!==g.array)return h(S,{code:C.invalid_type,expected:g.array,received:S.parsedType}),ST;if(f.exactLength!==null){let J=S.data.length>f.exactLength.value,F=S.data.length<f.exactLength.value;if(J||F)h(S,{code:J?C.too_big:C.too_small,minimum:F?f.exactLength.value:void 0,maximum:J?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:C.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:C.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((J,F)=>{return f.type._parseAsync(new aS(S,J,S.path,F))})).then((J)=>{return kS.mergeArray($,J)});let M=[...S.data].map((J,F)=>{return f.type._parseSync(new aS(S,J,S.path,F))});return kS.mergeArray($,M)}get element(){return this._def.type}min(T,S){return new rS({...this._def,minLength:{value:T,message:p.toString(S)}})}max(T,S){return new rS({...this._def,maxLength:{value:T,message:p.toString(S)}})}length(T,S){return new rS({...this._def,exactLength:{value:T,message:p.toString(S)}})}nonempty(T){return this.min(1,T)}}rS.create=(T,S)=>{return new rS({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...MT(S)})};function nf(T){if(T instanceof qT){let S={};for(let $ in T.shape){let f=T.shape[$];S[$]=CS.create(nf(f))}return new qT({...T._def,shape:()=>S})}else if(T instanceof rS)return new rS({...T._def,type:nf(T.element)});else if(T instanceof CS)return CS.create(nf(T.unwrap()));else if(T instanceof E$)return E$.create(nf(T.unwrap()));else if(T instanceof X$)return X$.create(T.items.map((S)=>nf(S)));else return T}class qT extends JT{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),S=KT.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:C.invalid_type,expected:g.object,received:A.parsedType}),ST}let{status:$,ctx:f}=this._processInputParams(T),{shape:M,keys:J}=this._getCached(),F=[];if(!(this._def.catchall instanceof A$&&this._def.unknownKeys==="strip")){for(let A in f.data)if(!J.includes(A))F.push(A)}let W=[];for(let A of J){let X=M[A],w=f.data[A];W.push({key:{status:"valid",value:A},value:X._parse(new aS(f,w,f.path,A)),alwaysSet:A in f.data})}if(this._def.catchall instanceof A$){let A=this._def.unknownKeys;if(A==="passthrough")for(let X of F)W.push({key:{status:"valid",value:X},value:{status:"valid",value:f.data[X]}});else if(A==="strict"){if(F.length>0)h(f,{code:C.unrecognized_keys,keys:F}),$.dirty()}else if(A==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let A=this._def.catchall;for(let X of F){let w=f.data[X];W.push({key:{status:"valid",value:X},value:A._parse(new aS(f,w,f.path,X)),alwaysSet:X in f.data})}}if(f.common.async)return Promise.resolve().then(async()=>{let A=[];for(let X of W){let w=await X.key,y=await X.value;A.push({key:w,value:y,alwaysSet:X.alwaysSet})}return A}).then((A)=>{return kS.mergeObjectSync($,A)});else return kS.mergeObjectSync($,W)}get shape(){return this._def.shape()}strict(T){return p.errToObj,new qT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:(S,$)=>{var f,M,J,F;let W=(J=(M=(f=this._def).errorMap)===null||M===void 0?void 0:M.call(f,S,$).message)!==null&&J!==void 0?J:$.defaultError;if(S.code==="unrecognized_keys")return{message:(F=p.errToObj(T).message)!==null&&F!==void 0?F: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:x.ZodObject})}setKey(T,S){return this.augment({[T]:S})}catchall(T){return new qT({...this._def,catchall:T})}pick(T){let S={};return KT.objectKeys(T).forEach(($)=>{if(T[$]&&this.shape[$])S[$]=this.shape[$]}),new qT({...this._def,shape:()=>S})}omit(T){let S={};return KT.objectKeys(this.shape).forEach(($)=>{if(!T[$])S[$]=this.shape[$]}),new qT({...this._def,shape:()=>S})}deepPartial(){return nf(this)}partial(T){let S={};return KT.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 KT.objectKeys(this.shape).forEach(($)=>{if(T&&!T[$])S[$]=this.shape[$];else{let M=this.shape[$];while(M instanceof CS)M=M._def.innerType;S[$]=M}}),new qT({...this._def,shape:()=>S})}keyof(){return Q2(KT.objectKeys(this.shape))}}qT.create=(T,S)=>{return new qT({shape:()=>T,unknownKeys:"strip",catchall:A$.create(),typeName:x.ZodObject,...MT(S)})};qT.strictCreate=(T,S)=>{return new qT({shape:()=>T,unknownKeys:"strict",catchall:A$.create(),typeName:x.ZodObject,...MT(S)})};qT.lazycreate=(T,S)=>{return new qT({shape:T,unknownKeys:"strip",catchall:A$.create(),typeName:x.ZodObject,...MT(S)})};class pf extends JT{_parse(T){let{ctx:S}=this._processInputParams(T),$=this._def.options;function f(M){for(let F of M)if(F.result.status==="valid")return F.result;for(let F of M)if(F.result.status==="dirty")return S.common.issues.push(...F.ctx.common.issues),F.result;let J=M.map((F)=>new NS(F.ctx.common.issues));return h(S,{code:C.invalid_union,unionErrors:J}),ST}if(S.common.async)return Promise.all($.map(async(M)=>{let J={...S,common:{...S.common,issues:[]},parent:null};return{result:await M._parseAsync({data:S.data,path:S.path,parent:J}),ctx:J}})).then(f);else{let M=void 0,J=[];for(let W of $){let A={...S,common:{...S.common,issues:[]},parent:null},X=W._parseSync({data:S.data,path:S.path,parent:A});if(X.status==="valid")return X;else if(X.status==="dirty"&&!M)M={result:X,ctx:A};if(A.common.issues.length)J.push(A.common.issues)}if(M)return S.common.issues.push(...M.ctx.common.issues),M.result;let F=J.map((W)=>new NS(W));return h(S,{code:C.invalid_union,unionErrors:F}),ST}}get options(){return this._def.options}}pf.create=(T,S)=>{return new pf({options:T,typeName:x.ZodUnion,...MT(S)})};var _$=(T)=>{if(T instanceof lf)return _$(T.schema);else if(T instanceof vS)return _$(T.innerType());else if(T instanceof df)return[T.value];else if(T instanceof t$)return T.options;else if(T instanceof rf)return KT.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 CS)return[void 0,..._$(T.unwrap())];else if(T instanceof E$)return[null,..._$(T.unwrap())];else if(T instanceof RF)return _$(T.unwrap());else if(T instanceof sf)return _$(T.unwrap());else if(T instanceof ef)return _$(T._def.innerType);else return[]};class YF extends JT{_parse(T){let{ctx:S}=this._processInputParams(T);if(S.parsedType!==g.object)return h(S,{code:C.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:C.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 J=_$(M.shape[T]);if(!J.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let F of J){if(f.has(F))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(F)}`);f.set(F,M)}}return new YF({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:S,optionsMap:f,...MT($)})}}function _0(T,S){let $=D$(T),f=D$(S);if(T===S)return{valid:!0,data:T};else if($===g.object&&f===g.object){let M=KT.objectKeys(S),J=KT.objectKeys(T).filter((W)=>M.indexOf(W)!==-1),F={...T,...S};for(let W of J){let A=_0(T[W],S[W]);if(!A.valid)return{valid:!1};F[W]=A.data}return{valid:!0,data:F}}else if($===g.array&&f===g.array){if(T.length!==S.length)return{valid:!1};let M=[];for(let J=0;J<T.length;J++){let F=T[J],W=S[J],A=_0(F,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 JT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T),f=(M,J)=>{if(z0(M)||z0(J))return ST;let F=_0(M.value,J.value);if(!F.valid)return h($,{code:C.invalid_intersection_types}),ST;if(H0(M)||H0(J))S.dirty();return{status:S.value,value:F.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,J])=>f(M,J));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:x.ZodIntersection,...MT($)})};class X$ extends JT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.array)return h($,{code:C.invalid_type,expected:g.array,received:$.parsedType}),ST;if($.data.length<this._def.items.length)return h($,{code:C.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:C.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),S.dirty();let M=[...$.data].map((J,F)=>{let W=this._def.items[F]||this._def.rest;if(!W)return null;return W._parse(new aS($,J,$.path,F))}).filter((J)=>!!J);if($.common.async)return Promise.all(M).then((J)=>{return kS.mergeArray(S,J)});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:x.ZodTuple,rest:null,...MT(S)})};class iM extends JT{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:C.invalid_type,expected:g.object,received:$.parsedType}),ST;let f=[],M=this._def.keyType,J=this._def.valueType;for(let F in $.data)f.push({key:M._parse(new aS($,F,$.path,F)),value:J._parse(new aS($,$.data[F],$.path,F)),alwaysSet:F 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 JT)return new iM({keyType:T,valueType:S,typeName:x.ZodRecord,...MT($)});return new iM({keyType:dS.create(),valueType:T,typeName:x.ZodRecord,...MT(S)})}}class uM extends JT{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:C.invalid_type,expected:g.map,received:$.parsedType}),ST;let f=this._def.keyType,M=this._def.valueType,J=[...$.data.entries()].map(([F,W],A)=>{return{key:f._parse(new aS($,F,$.path,[A,"key"])),value:M._parse(new aS($,W,$.path,[A,"value"]))}});if($.common.async){let F=new Map;return Promise.resolve().then(async()=>{for(let W of J){let A=await W.key,X=await W.value;if(A.status==="aborted"||X.status==="aborted")return ST;if(A.status==="dirty"||X.status==="dirty")S.dirty();F.set(A.value,X.value)}return{status:S.value,value:F}})}else{let F=new Map;for(let W of J){let{key:A,value:X}=W;if(A.status==="aborted"||X.status==="aborted")return ST;if(A.status==="dirty"||X.status==="dirty")S.dirty();F.set(A.value,X.value)}return{status:S.value,value:F}}}}uM.create=(T,S,$)=>{return new uM({valueType:S,keyType:T,typeName:x.ZodMap,...MT($)})};class Mf extends JT{_parse(T){let{status:S,ctx:$}=this._processInputParams(T);if($.parsedType!==g.set)return h($,{code:C.invalid_type,expected:g.set,received:$.parsedType}),ST;let f=this._def;if(f.minSize!==null){if($.data.size<f.minSize.value)h($,{code:C.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:C.too_big,maximum:f.maxSize.value,type:"set",inclusive:!0,exact:!1,message:f.maxSize.message}),S.dirty()}let M=this._def.valueType;function J(W){let A=new Set;for(let X of W){if(X.status==="aborted")return ST;if(X.status==="dirty")S.dirty();A.add(X.value)}return{status:S.value,value:A}}let F=[...$.data.values()].map((W,A)=>M._parse(new aS($,W,$.path,A)));if($.common.async)return Promise.all(F).then((W)=>J(W));else return J(F)}min(T,S){return new Mf({...this._def,minSize:{value:T,message:p.toString(S)}})}max(T,S){return new Mf({...this._def,maxSize:{value:T,message:p.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:x.ZodSet,...MT(S)})};class Pf extends JT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:S}=this._processInputParams(T);if(S.parsedType!==g.function)return h(S,{code:C.invalid_type,expected:g.function,received:S.parsedType}),ST;function $(F,W){return OF({data:F,path:S.path,errorMaps:[S.common.contextualErrorMap,S.schemaErrorMap,kF(),cf].filter((A)=>!!A),issueData:{code:C.invalid_arguments,argumentsError:W}})}function f(F,W){return OF({data:F,path:S.path,errorMaps:[S.common.contextualErrorMap,S.schemaErrorMap,kF(),cf].filter((A)=>!!A),issueData:{code:C.invalid_return_type,returnTypeError:W}})}let M={errorMap:S.common.contextualErrorMap},J=S.data;if(this._def.returns instanceof Jf){let F=this;return GS(async function(...W){let A=new NS([]),X=await F._def.args.parseAsync(W,M).catch((k)=>{throw A.addIssue($(W,k)),A}),w=await Reflect.apply(J,this,X);return await F._def.returns._def.type.parseAsync(w,M).catch((k)=>{throw A.addIssue(f(w,k)),A})})}else{let F=this;return GS(function(...W){let A=F._def.args.safeParse(W,M);if(!A.success)throw new NS([$(W,A.error)]);let X=Reflect.apply(J,this,A.data),w=F._def.returns.safeParse(X,M);if(!w.success)throw new NS([f(X,w.error)]);return w.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new Pf({...this._def,args:X$.create(T).rest(c$.create())})}returns(T){return new Pf({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,S,$){return new Pf({args:T?T:X$.create([]).rest(c$.create()),returns:S||c$.create(),typeName:x.ZodFunction,...MT($)})}}class lf extends JT{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})}}lf.create=(T,S)=>{return new lf({getter:T,typeName:x.ZodLazy,...MT(S)})};class df extends JT{_parse(T){if(T.data!==this._def.value){let S=this._getOrReturnCtx(T);return h(S,{received:S.data,code:C.invalid_literal,expected:this._def.value}),ST}return{status:"valid",value:T.data}}get value(){return this._def.value}}df.create=(T,S)=>{return new df({value:T,typeName:x.ZodLiteral,...MT(S)})};function Q2(T,S){return new t$({values:T,typeName:x.ZodEnum,...MT(S)})}class t$ extends JT{constructor(){super(...arguments);cM.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let S=this._getOrReturnCtx(T),$=this._def.values;return h(S,{expected:KT.joinValues($),received:S.parsedType,code:C.invalid_type}),ST}if(!KF(this,cM,"f"))H2(this,cM,new Set(this._def.values),"f");if(!KF(this,cM,"f").has(T.data)){let S=this._getOrReturnCtx(T),$=this._def.values;return h(S,{received:S.data,code:C.invalid_enum_value,options:$}),ST}return GS(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})}}cM=new WeakMap;t$.create=Q2;class rf extends JT{constructor(){super(...arguments);oM.set(this,void 0)}_parse(T){let S=KT.getValidEnumValues(this._def.values),$=this._getOrReturnCtx(T);if($.parsedType!==g.string&&$.parsedType!==g.number){let f=KT.objectValues(S);return h($,{expected:KT.joinValues(f),received:$.parsedType,code:C.invalid_type}),ST}if(!KF(this,oM,"f"))H2(this,oM,new Set(KT.getValidEnumValues(this._def.values)),"f");if(!KF(this,oM,"f").has(T.data)){let f=KT.objectValues(S);return h($,{received:$.data,code:C.invalid_enum_value,options:f}),ST}return GS(T.data)}get enum(){return this._def.values}}oM=new WeakMap;rf.create=(T,S)=>{return new rf({values:T,typeName:x.ZodNativeEnum,...MT(S)})};class Jf extends JT{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:C.invalid_type,expected:g.promise,received:S.parsedType}),ST;let $=S.parsedType===g.promise?S.data:Promise.resolve(S.data);return GS($.then((f)=>{return this._def.type.parseAsync(f,{path:S.path,errorMap:S.common.contextualErrorMap})}))}}Jf.create=(T,S)=>{return new Jf({type:T,typeName:x.ZodPromise,...MT(S)})};class vS extends JT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:S,ctx:$}=this._processInputParams(T),f=this._def.effect||null,M={addIssue:(J)=>{if(h($,J),J.fatal)S.abort();else S.dirty()},get path(){return $.path}};if(M.addIssue=M.addIssue.bind(M),f.type==="preprocess"){let J=f.transform($.data,M);if($.common.async)return Promise.resolve(J).then(async(F)=>{if(S.value==="aborted")return ST;let W=await this._def.schema._parseAsync({data:F,path:$.path,parent:$});if(W.status==="aborted")return ST;if(W.status==="dirty")return vf(W.value);if(S.value==="dirty")return vf(W.value);return W});else{if(S.value==="aborted")return ST;let F=this._def.schema._parseSync({data:J,path:$.path,parent:$});if(F.status==="aborted")return ST;if(F.status==="dirty")return vf(F.value);if(S.value==="dirty")return vf(F.value);return F}}if(f.type==="refinement"){let J=(F)=>{let W=f.refinement(F,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 F};if($.common.async===!1){let F=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(F.status==="aborted")return ST;if(F.status==="dirty")S.dirty();return J(F.value),{status:S.value,value:F.value}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((F)=>{if(F.status==="aborted")return ST;if(F.status==="dirty")S.dirty();return J(F.value).then(()=>{return{status:S.value,value:F.value}})})}if(f.type==="transform")if($.common.async===!1){let J=this._def.schema._parseSync({data:$.data,path:$.path,parent:$});if(!Sf(J))return J;let F=f.transform(J.value,M);if(F instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:S.value,value:F}}else return this._def.schema._parseAsync({data:$.data,path:$.path,parent:$}).then((J)=>{if(!Sf(J))return J;return Promise.resolve(f.transform(J.value,M)).then((F)=>({status:S.value,value:F}))});KT.assertNever(f)}}vS.create=(T,S,$)=>{return new vS({schema:T,typeName:x.ZodEffects,effect:S,...MT($)})};vS.createWithPreprocess=(T,S,$)=>{return new vS({schema:S,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...MT($)})};class CS extends JT{_parse(T){if(this._getType(T)===g.undefined)return GS(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}CS.create=(T,S)=>{return new CS({innerType:T,typeName:x.ZodOptional,...MT(S)})};class E$ extends JT{_parse(T){if(this._getType(T)===g.null)return GS(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}E$.create=(T,S)=>{return new E$({innerType:T,typeName:x.ZodNullable,...MT(S)})};class af extends JT{_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:x.ZodDefault,defaultValue:typeof S.default==="function"?S.default:()=>S.default,...MT(S)})};class ef extends JT{_parse(T){let{ctx:S}=this._processInputParams(T),$={...S,common:{...S.common,issues:[]}},f=this._def.innerType._parse({data:$.data,path:$.path,parent:{...$}});if(gM(f))return f.then((M)=>{return{status:"valid",value:M.status==="valid"?M.value:this._def.catchValue({get error(){return new NS($.common.issues)},input:$.data})}});else return{status:"valid",value:f.status==="valid"?f.value:this._def.catchValue({get error(){return new NS($.common.issues)},input:$.data})}}removeCatch(){return this._def.innerType}}ef.create=(T,S)=>{return new ef({innerType:T,typeName:x.ZodCatch,catchValue:typeof S.catch==="function"?S.catch:()=>S.catch,...MT(S)})};class lM extends JT{_parse(T){if(this._getType(T)!==g.nan){let $=this._getOrReturnCtx(T);return h($,{code:C.invalid_type,expected:g.nan,received:$.parsedType}),ST}return{status:"valid",value:T.data}}}lM.create=(T)=>{return new lM({typeName:x.ZodNaN,...MT(T)})};var M4=Symbol("zod_brand");class RF extends JT{_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 dM extends JT{_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(),vf(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 dM({in:T,out:S,typeName:x.ZodPipeline})}}class sf extends JT{_parse(T){let S=this._def.innerType._parse(T),$=(f)=>{if(Sf(f))f.value=Object.freeze(f.value);return f};return gM(S)?S.then((f)=>$(f)):$(S)}unwrap(){return this._def.innerType}}sf.create=(T,S)=>{return new sf({innerType:T,typeName:x.ZodReadonly,...MT(S)})};function U2(T,S={},$){if(T)return ff.create().superRefine((f,M)=>{var J,F;if(!T(f)){let W=typeof S==="function"?S(f):typeof S==="string"?{message:S}:S,A=(F=(J=W.fatal)!==null&&J!==void 0?J:$)!==null&&F!==void 0?F:!0,X=typeof W==="string"?{message:W}:W;M.addIssue({code:"custom",...X,fatal:A})}});return ff.create()}var J4={object:qT.lazycreate},x;(function(T){T.ZodString="ZodString",T.ZodNumber="ZodNumber",T.ZodNaN="ZodNaN",T.ZodBigInt="ZodBigInt",T.ZodBoolean="ZodBoolean",T.ZodDate="ZodDate",T.ZodSymbol="ZodSymbol",T.ZodUndefined="ZodUndefined",T.ZodNull="ZodNull",T.ZodAny="ZodAny",T.ZodUnknown="ZodUnknown",T.ZodNever="ZodNever",T.ZodVoid="ZodVoid",T.ZodArray="ZodArray",T.ZodObject="ZodObject",T.ZodUnion="ZodUnion",T.ZodDiscriminatedUnion="ZodDiscriminatedUnion",T.ZodIntersection="ZodIntersection",T.ZodTuple="ZodTuple",T.ZodRecord="ZodRecord",T.ZodMap="ZodMap",T.ZodSet="ZodSet",T.ZodFunction="ZodFunction",T.ZodLazy="ZodLazy",T.ZodLiteral="ZodLiteral",T.ZodEnum="ZodEnum",T.ZodEffects="ZodEffects",T.ZodNativeEnum="ZodNativeEnum",T.ZodOptional="ZodOptional",T.ZodNullable="ZodNullable",T.ZodDefault="ZodDefault",T.ZodCatch="ZodCatch",T.ZodPromise="ZodPromise",T.ZodBranded="ZodBranded",T.ZodPipeline="ZodPipeline",T.ZodReadonly="ZodReadonly"})(x||(x={}));var F4=(T,S={message:`Input not instance of ${T.name}`})=>U2(($)=>$ instanceof T,S),V2=dS.create,B2=o$.create,W4=lM.create,A4=g$.create,L2=of.create,X4=$f.create,w4=tM.create,y4=gf.create,k4=tf.create,O4=ff.create,K4=c$.create,Y4=A$.create,R4=pM.create,G4=rS.create,rM=qT.create,z4=qT.strictCreate,H4=pf.create,_4=YF.create,D4=uf.create,E4=X$.create,Q4=iM.create,U4=uM.create,V4=Mf.create,B4=Pf.create,L4=lf.create,N4=df.create,C4=t$.create,x4=rf.create,j4=Jf.create,G2=vS.create,I4=CS.create,b4=E$.create,Z4=vS.createWithPreprocess,q4=dM.create,m4=()=>V2().optional(),h4=()=>B2().optional(),n4=()=>L2().optional(),v4={string:(T)=>dS.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})},P4=ST,zT=Object.freeze({__proto__:null,defaultErrorMap:cf,setErrorMap:qO,getErrorMap:kF,makeIssue:OF,EMPTY_PATH:mO,addIssueToContext:h,ParseStatus:kS,INVALID:ST,DIRTY:vf,OK:GS,isAborted:z0,isDirty:H0,isValid:Sf,isAsync:gM,get util(){return KT},get objectUtil(){return G0},ZodParsedType:g,getParsedType:D$,ZodType:JT,datetimeRegex:E2,ZodString:dS,ZodNumber:o$,ZodBigInt:g$,ZodBoolean:of,ZodDate:$f,ZodSymbol:tM,ZodUndefined:gf,ZodNull:tf,ZodAny:ff,ZodUnknown:c$,ZodNever:A$,ZodVoid:pM,ZodArray:rS,ZodObject:qT,ZodUnion:pf,ZodDiscriminatedUnion:YF,ZodIntersection:uf,ZodTuple:X$,ZodRecord:iM,ZodMap:uM,ZodSet:Mf,ZodFunction:Pf,ZodLazy:lf,ZodLiteral:df,ZodEnum:t$,ZodNativeEnum:rf,ZodPromise:Jf,ZodEffects:vS,ZodTransformer:vS,ZodOptional:CS,ZodNullable:E$,ZodDefault:af,ZodCatch:ef,ZodNaN:lM,BRAND:M4,ZodBranded:RF,ZodPipeline:dM,ZodReadonly:sf,custom:U2,Schema:JT,ZodSchema:JT,late:J4,get ZodFirstPartyTypeKind(){return x},coerce:v4,any:O4,array:G4,bigint:A4,boolean:L2,date:X4,discriminatedUnion:_4,effect:G2,enum:C4,function:B4,instanceof:F4,intersection:D4,lazy:L4,literal:N4,map:U4,nan:W4,nativeEnum:x4,never:Y4,null:k4,nullable:b4,number:B2,object:rM,oboolean:n4,onumber:h4,optional:I4,ostring:m4,pipeline:q4,preprocess:Z4,promise:j4,record:Q4,set:V4,strictObject:z4,string:V2,symbol:w4,transformer:G2,tuple:E4,undefined:y4,union:H4,unknown:K4,void:R4,NEVER:P4,ZodIssueCode:C,quotelessJson:ZO,ZodError:NS});function N2(){return{}}function C2(T,S){let $={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)$.items=s(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 x2(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 j2(){return{type:"boolean"}}function GF(T,S){return s(T.type._def,S)}var I2=(T,S)=>{return s(T.innerType._def,S)};function D0(T,S,$){let f=$??S.dateStrategy;if(Array.isArray(f))return{anyOf:f.map((M,J)=>D0(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 c4(T,S)}}var c4=(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 b2(T,S){return{...s(T.innerType._def,S),default:T.defaultValue()}}function Z2(T,S){return S.effectStrategy==="input"?s(T.schema._def,S):{}}function q2(T){return{type:"string",enum:Array.from(T.values)}}var o4=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function m2(T,S){let $=[s(T.left._def,{...S,currentPath:[...S.currentPath,"allOf","0"]}),s(T.right._def,{...S,currentPath:[...S.currentPath,"allOf","1"]})].filter((J)=>!!J),f=S.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,M=[];return $.forEach((J)=>{if(o4(J)){if(M.push(...J.allOf),J.unevaluatedProperties===void 0)f=void 0}else{let F=J;if("additionalProperties"in J&&J.additionalProperties===!1){let{additionalProperties:W,...A}=J;F=A}else f=void 0;M.push(F)}}),M.length?{allOf:M,...f}:void 0}function h2(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 E0=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(E0===void 0)E0=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return E0},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 zF(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":sS($,"email",f.message,S);break;case"format:idn-email":sS($,"idn-email",f.message,S);break;case"pattern:zod":zS($,eS.email,f.message,S);break}break;case"url":sS($,"uri",f.message,S);break;case"uuid":sS($,"uuid",f.message,S);break;case"regex":zS($,f.regex,f.message,S);break;case"cuid":zS($,eS.cuid,f.message,S);break;case"cuid2":zS($,eS.cuid2,f.message,S);break;case"startsWith":zS($,RegExp(`^${Q0(f.value,S)}`),f.message,S);break;case"endsWith":zS($,RegExp(`${Q0(f.value,S)}$`),f.message,S);break;case"datetime":sS($,"date-time",f.message,S);break;case"date":sS($,"date",f.message,S);break;case"time":sS($,"time",f.message,S);break;case"duration":sS($,"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":{zS($,RegExp(Q0(f.value,S)),f.message,S);break}case"ip":{if(f.version!=="v6")sS($,"ipv4",f.message,S);if(f.version!=="v4")sS($,"ipv6",f.message,S);break}case"base64url":zS($,eS.base64url,f.message,S);break;case"jwt":zS($,eS.jwt,f.message,S);break;case"cidr":{if(f.version!=="v6")zS($,eS.ipv4Cidr,f.message,S);if(f.version!=="v4")zS($,eS.ipv6Cidr,f.message,S);break}case"emoji":zS($,eS.emoji(),f.message,S);break;case"ulid":{zS($,eS.ulid,f.message,S);break}case"base64":{switch(S.base64Strategy){case"format:binary":{sS($,"binary",f.message,S);break}case"contentEncoding:base64":{yT($,"contentEncoding","base64",f.message,S);break}case"pattern:zod":{zS($,eS.base64,f.message,S);break}}break}case"nanoid":zS($,eS.nanoid,f.message,S);case"toLowerCase":case"toUpperCase":case"trim":break;default:((M)=>{})(f)}return $}function Q0(T,S){return S.patternStrategy==="escape"?t4(T):T}var g4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function t4(T){let S="";for(let $=0;$<T.length;$++){if(!g4.has(T[$]))S+="\\";S+=T[$]}return S}function sS(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 zS(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:n2(S,f),...$&&f.errorMessages&&{errorMessage:{pattern:$}}})}else yT(T,"pattern",n2(S,f),$,f)}function n2(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="",J=!1,F=!1,W=!1;for(let A=0;A<f.length;A++){if(J){M+=f[A],J=!1;continue}if($.i){if(F){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
10
- ]))`;continue}else if(f[A]==="$"){M+=`($|(?=[\r
11
- ]))`;continue}}if($.s&&f[A]==="."){M+=F?`${f[A]}\r
12
- `:`[${f[A]}\r
13
- ]`;continue}if(M+=f[A],f[A]==="\\")J=!0;else if(F&&f[A]==="]")F=!1;else if(!F&&f[A]==="[")F=!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 HF(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===x.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((f,M)=>({...f,[M]:s(T.valueType._def,{...S,currentPath:[...S.currentPath,"properties",M]})??{}}),{}),additionalProperties:!1};let $={type:"object",additionalProperties:s(T.valueType._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??{}};if(S.target==="openApi3")return $;if(T.keyType?._def.typeName===x.ZodString&&T.keyType._def.checks?.length){let{type:f,...M}=zF(T.keyType._def,S);return{...$,propertyNames:M}}else if(T.keyType?._def.typeName===x.ZodEnum)return{...$,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===x.ZodBranded&&T.keyType._def.type._def.typeName===x.ZodString&&T.keyType._def.type._def.checks?.length){let{type:f,...M}=GF(T.keyType._def,S);return{...$,propertyNames:M}}return $}function v2(T,S){if(S.mapStrategy==="record")return HF(T,S);let $=s(T.keyType._def,{...S,currentPath:[...S.currentPath,"items","items","0"]})||{},f=s(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 P2(T){let S=T.values,f=Object.keys(T.values).filter((J)=>{return typeof S[S[J]]!=="number"}).map((J)=>S[J]),M=Array.from(new Set(f.map((J)=>typeof J)));return{type:M.length===1?M[0]==="string"?"string":"number":["string","number"],enum:f}}function c2(){return{not:{}}}function o2(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var aM={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function t2(T,S){if(S.target==="openApi3")return g2(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,J)=>{let F=aM[J._def.typeName];return F&&!M.includes(F)?[...M,F]:M},[]);return{type:f.length>1?f:f[0]}}else if($.every((f)=>f._def.typeName==="ZodLiteral"&&!f.description)){let f=$.reduce((M,J)=>{let F=typeof J._def.value;switch(F){case"string":case"number":case"boolean":return[...M,F];case"bigint":return[...M,"integer"];case"object":if(J._def.value===null)return[...M,"null"];case"symbol":case"undefined":case"function":default:return M}},[]);if(f.length===$.length){let M=f.filter((J,F,W)=>W.indexOf(J)===F);return{type:M.length>1?M:M[0],enum:$.reduce((J,F)=>{return J.includes(F._def.value)?J:[...J,F._def.value]},[])}}}else if($.every((f)=>f._def.typeName==="ZodEnum"))return{type:"string",enum:$.reduce((f,M)=>[...f,...M._def.values.filter((J)=>!f.includes(J))],[])};return g2(T,S)}var g2=(T,S)=>{let $=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((f,M)=>s(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 p2(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=s(T.innerType._def,{...S,currentPath:[...S.currentPath]});if(f&&"$ref"in f)return{allOf:[f],nullable:!0};return f&&{...f,nullable:!0}}let $=s(T.innerType._def,{...S,currentPath:[...S.currentPath,"anyOf","0"]});return $&&{anyOf:[$,{type:"null"}]}}function i2(T,S){let $={type:"number"};if(!T.checks)return $;for(let f of T.checks)switch(f.kind){case"int":$.type="integer",Y0($,"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 p4(T,S){if(S.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":s(T.catchall._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":s(T.catchall._def,{...S,currentPath:[...S.currentPath,"additionalProperties"]})??!0}function u2(T,S){let $=S.target==="openAi",f={type:"object",...Object.entries(T.shape()).reduce((M,[J,F])=>{if(F===void 0||F._def===void 0)return M;let W=F.isOptional();if(W&&$){if(F instanceof CS)F=F._def.innerType;if(!F.isNullable())F=F.nullable();W=!1}let A=s(F._def,{...S,currentPath:[...S.currentPath,"properties",J],propertyPath:[...S.currentPath,"properties",J]});if(A===void 0)return M;return{properties:{...M.properties,[J]:A},required:W?M.required:[...M.required,J]}},{properties:{},required:[]}),additionalProperties:p4(T,S)};if(!f.required.length)delete f.required;return f}var l2=(T,S)=>{if(S.currentPath.toString()===S.propertyPath?.toString())return s(T.innerType._def,S);let $=s(T.innerType._def,{...S,currentPath:[...S.currentPath,"anyOf","1"]});return $?{anyOf:[{not:{}},$]}:{}};var d2=(T,S)=>{if(S.pipeStrategy==="input")return s(T.in._def,S);else if(S.pipeStrategy==="output")return s(T.out._def,S);let $=s(T.in._def,{...S,currentPath:[...S.currentPath,"allOf","0"]}),f=s(T.out._def,{...S,currentPath:[...S.currentPath,"allOf",$?"1":"0"]});return{allOf:[$,f].filter((M)=>M!==void 0)}};function r2(T,S){return s(T.type._def,S)}function a2(T,S){let f={type:"array",uniqueItems:!0,items:s(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 e2(T,S){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map(($,f)=>s($._def,{...S,currentPath:[...S.currentPath,"items",`${f}`]})).reduce(($,f)=>f===void 0?$:[...$,f],[]),additionalItems:s(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)=>s($._def,{...S,currentPath:[...S.currentPath,"items",`${f}`]})).reduce(($,f)=>f===void 0?$:[...$,f],[])}}function s2(){return{not:{}}}function TX(){return{}}var SX=(T,S)=>{return s(T.innerType._def,S)};function s(T,S,$=!1){let f=S.seen.get(T);if(S.override){let F=S.override?.(T,S,f,$);if(F!==O2)return F}if(f&&!$){let F=i4(f,S);if(F!==void 0)return F}let M={def:T,path:S.currentPath,jsonSchema:void 0};S.seen.set(T,M);let J=l4(T,T.typeName,S);if(J)d4(T,S,J);return M.jsonSchema=J,J}var i4=(T,S)=>{switch(S.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:u4(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}}},u4=(T,S)=>{let $=0;for(;$<T.length&&$<S.length;$++)if(T[$]!==S[$])break;return[(T.length-$).toString(),...S.slice($)].join("/")},l4=(T,S,$)=>{switch(S){case x.ZodString:return zF(T,$);case x.ZodNumber:return i2(T,$);case x.ZodObject:return u2(T,$);case x.ZodBigInt:return x2(T,$);case x.ZodBoolean:return j2();case x.ZodDate:return D0(T,$);case x.ZodUndefined:return s2();case x.ZodNull:return o2($);case x.ZodArray:return C2(T,$);case x.ZodUnion:case x.ZodDiscriminatedUnion:return t2(T,$);case x.ZodIntersection:return m2(T,$);case x.ZodTuple:return e2(T,$);case x.ZodRecord:return HF(T,$);case x.ZodLiteral:return h2(T,$);case x.ZodEnum:return q2(T);case x.ZodNativeEnum:return P2(T);case x.ZodNullable:return p2(T,$);case x.ZodOptional:return l2(T,$);case x.ZodMap:return v2(T,$);case x.ZodSet:return a2(T,$);case x.ZodLazy:return s(T.getter()._def,$);case x.ZodPromise:return r2(T,$);case x.ZodNaN:case x.ZodNever:return c2();case x.ZodEffects:return Z2(T,$);case x.ZodAny:return N2();case x.ZodUnknown:return TX();case x.ZodDefault:return b2(T,$);case x.ZodBranded:return GF(T,$);case x.ZodReadonly:return SX(T,$);case x.ZodCatch:return I2(T,$);case x.ZodPipeline:return d2(T,$);case x.ZodFunction:case x.ZodVoid:case x.ZodSymbol:return;default:return((f)=>{return})(S)}},d4=(T,S,$)=>{if(T.description){if($.description=T.description,S.markdownDescription)$.markdownDescription=T.description}return $};var $X=(T,S)=>{let $=Y2(S),f=typeof S==="object"&&S.definitions?Object.entries(S.definitions).reduce((A,[X,w])=>({...A,[X]:s(w._def,{...$,currentPath:[...$.basePath,$.definitionPath,X]},!0)??{}}),{}):void 0,M=typeof S==="string"?S:S?.nameStrategy==="title"?void 0:S?.name,J=s(T._def,M===void 0?$:{...$,currentPath:[...$.basePath,$.definitionPath,M]},!1)??{},F=typeof S==="object"&&S.name!==void 0&&S.nameStrategy==="title"?S.name:void 0;if(F!==void 0)J.title=F;let W=M===void 0?f?{...J,[$.definitionPath]:f}:J:{$ref:[...$.$refStrategy==="relative"?[]:$.basePath,$.definitionPath,M].join("/"),[$.definitionPath]:{...f,[M]:J}};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 fX=$X;function MX(T,S){return function $({schema:f,fallback:M}){let J=fX(f);return async function F(W,A=3){let X,w=[];while(w.length<A){X=await T(W,J,M,w);let y=f.safeParse(X);if(y.success)return y.data;S?.warn(`safegen failed to generate well-formed data.
11
+ `);T.disposalTraces.add({key:J.key,trace:M})}}var w1=(T,$)=>x($).atoms.has(T),t2=(T,$)=>x($).selectors.has(T),a2=(T,$)=>x($).readonlySelectors.has(T),X4=(T,$)=>w1(T,$)||t2(T,$)||a2(T,$);var R1=(T,$)=>{return x($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([S,{source:F}])=>F!==T).map(([S,{source:F}])=>F).filter((S)=>X4(S,$))};var ZW=(T,$,J)=>{let S=[],F=R1(T,J);while(F.length>0){let M=F.shift();if($.has(M))continue;if($.add(M),!w1(M,J))F.push(...R1(M,J));else if(!S.includes(M))S.push(M)}return S},K4=(T,$)=>{let J=T.key,S=R1(J,$),F=new Set;return S.flatMap((M)=>w1(M,$)?M:ZW(M,F,$))};var f4=(T,$,J,S)=>{let F=x(S);if($.type==="atom"||$.type==="mutable_atom")F.selectorAtoms.set({selectorKey:T,atomKey:$.key}),S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let M=ZW($.key,J,S);S.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${M.map((A)=>`"${A}"`).join(", ")} ]`);for(let A of M)F.selectorAtoms=F.selectorAtoms.set({selectorKey:T,atomKey:A})}J.add($.key)};var Y1=(T,$,J)=>({get:(...S)=>{let F=x(J),M;if(S.length===2){let[X,K]=S;switch(X.type){case"molecule_family":return RT(J,X,K);default:if(J.config.lifespan==="ephemeral")M=HT(J,X,K);else{let f=bT(J,X,K);if(f)M=f;else throw new v$(X,K,J)}}}else[M]=S;if(M.type==="molecule")return RT(J,M);let A=$T(M,J),W=GS(A,J);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${M.key}" =`,W,")"),F.selectorGraph.set({upstreamSelectorKey:M.key,downstreamSelectorKey:T},{source:M.key}),f4(T,M,$,J),W},set:(...S)=>{let F,M;if(S.length===2)F=S[0],M=S[1];else{let X=S[0],K=S[1];M=S[2];let f=J.config.lifespan==="ephemeral"?HT(J,X,K):bT(J,X,K);if(!f)throw new v$(X,K,J);F=f}let A=x(J),W=$T(F,A);M1(W,M,A)},find:(S,F)=>HT(J,S,F),seek:(S,F)=>bT(J,S,F),json:(S)=>uT(J,S)});var L0=(T,$,J)=>{let S=x(T),F=new AT,M=new Set,{get:A,find:W,seek:X,json:K}=Y1($.key,M,S),f=()=>{let H=$.get({get:A,find:W,seek:X,json:K});return e$($.key,H,F,x(T)),M.clear(),H},G={...$,subject:F,install:(H)=>L0(H,$,J),get:f,type:"readonly_selector",...J&&{family:J}};S.readonlySelectors.set($.key,G);let w=f();T.logger.info("\u2728",G.type,G.key,"=",w);let y={key:$.key,type:"readonly_selector"};if(J)y.family=J;return y};var Z0=(T,$,J)=>{let S=x(T),F=new AT,M=new Set,A=Y1($.key,M,S),{find:W,get:X,seek:K,json:f}=A,G={find:W,get:X,seek:K,json:f},w=(B=$.get,L=x(T))=>{let N=B(G);return e$($.key,N,F,L),M.clear(),N},H={...$,subject:F,install:(B)=>Z0(B,$,J),get:w,set:(B)=>{let L=x(T),N=w($.get,L),I=F1(B)(N);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",N,"->",I,")"),e$($.key,I,F,L),EF(L,$.key),dT(L))F.next({newValue:I,oldValue:N});$.set(A,I)},type:"selector",...J&&{family:J}};S.selectors.set($.key,H);let O=w();T.logger.info("\u2728",H.type,H.key,"=",O);let E={key:$.key,type:"selector"};if(J)E.family=J;return E};function wJ(T,$){if("set"in $){let F=Z0(T,$,void 0);return T.on.selectorCreation.next(F),F}let S=L0(T,$,void 0);return T.on.selectorCreation.next(S),S}function W4(T,$){let J=x($),{key:S}=T,F=$T(T,J);if(!F.family)$.logger.error("\u274C","selector",S,"Standalone selectors cannot be disposed.");else{let M=J.molecules.get(F.family.subKey);if(M)M.tokens.delete(S);switch(T.type){case"selector":J.selectors.delete(S),$T({key:F.family.key,type:"selector_family"},$).subject.next({type:"state_disposal",token:T});break;case"readonly_selector":J.readonlySelectors.delete(S),$T({key:F.family.key,type:"readonly_selector_family"},$).subject.next({type:"state_disposal",token:T});break}if(J.valueMap.delete(S),J.selectorAtoms.delete(S),J.selectorGraph.delete(S),$.logger.info("\uD83D\uDD25",T.type,S,"deleted"),YT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",token:T});else $.on.selectorDisposal.next(T)}}function C0(T,$,J){let S={key:$.key,type:"selector_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${RJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let M=new AT,W=Object.assign((X)=>{let K=e(X),f={key:$.key,subKey:K},G=`${$.key}(${K})`,w=x(T),y=Z0(w,{key:G,get:$.get(X),set:$.set(X)},f);return M.next({type:"state_creation",token:y}),y},S,{internalRoles:J,subject:M,install:(X)=>C0(X,$),default:(X)=>{return $.get(X)({get:(...f)=>RT(T,...f),find:(f,G)=>HT(T,f,G),seek:(f,G)=>bT(T,f,G),json:(f)=>uT(T,f)})}});return T.families.set($.key,W),S}function G4(T,$,J=GT.STORE){let S=C0(J,{key:`${T.key}:JSON`,get:(M)=>({seek:A,get:W})=>{let X=A(T,M);if(X)return $.toJson(W(X));let K=e(M),f=J.molecules.get(K);if(f){let w=YJ(f,T,J);return $.toJson(W(w))}if(J.config.lifespan==="immortal")throw new Error(`No molecule found for key "${K}"`);let G=nJ(J,T,M);return $.toJson(W(G))},set:(M)=>({seek:A,set:W},X)=>{let K=A(T,M);if(K)W(K,$.fromJson(X));else{let f=e(M),G=J.molecules.get(f);if(G){let w=YJ(G,T,J);W(w,$.fromJson(X))}else{if(J.config.lifespan==="immortal")throw new Error(`No molecule found for key "${f}"`);W(nJ(J,T,M),$.fromJson(X))}}}},["mutable","json"]);return $T(T,J).subject.subscribe(`store=${J.config.name}::json-selector-family`,(M)=>{if(M.token.family)bT(J,S,$$(M.token.family.subKey))}),S}var $$=(T)=>JSON.parse(T),e=(T)=>JSON.stringify(T),dU=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var w4=(T,$)=>{let J=x($);if(J.operation.open)return J.operation.prev.get(T.key);return J.valueMap.get(T.key)};var PW=(T,$)=>{let J=x($);return K4(T,$).map((F)=>{let M=J.atoms.get(F);if(M===void 0)throw new Error(`Atom "${F}", a dependency of selector "${T.key}", not found in store "${$.config.name}".`);return M.subject.subscribe(`${T.type}:${T.key}`,(A)=>{$.logger.info("\uD83D\uDCE2",T.type,T.key,"root",F,"went",A.oldValue,"->",A.newValue);let W=w4(T,J),X=GS(T,J);$.logger.info("\u2728",T.type,T.key,"went",W,"->",X),T.subject.next({newValue:X,oldValue:W})})})};function O$(T,$,J,S){function F(G){if(S.operation.open){let w=S.on.operationClose.subscribe(`state subscription ${J}`,()=>{w(),$(G)})}else $(G)}let M=$T(T,S);S.logger.info("\uD83D\uDC40",M.type,M.key,`Adding subscription "${J}"`);let A=M.type==="selector"||M.type==="readonly_selector",W=null,X=F;if(A)W=PW(M,S),X=(G)=>{if(W)W.length=0,W.push(...PW(M,S));F(G)};let K=M.subject.subscribe(J,X);return()=>{if(S.logger.info("\uD83D\uDE48",M.type,M.key,`Removing subscription "${J}"`),K(),W)for(let G of W)G()}}var bW=(T,$,J,S)=>{let F=$T(T,S);S.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${J}"`);let M=F.subject.subscribe(J,$);return()=>{S.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${J}" from timeline`),M()}};var hW=(T,$,J,S)=>{let F=$T(T,S);S.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${J}"`);let M=F.subject.subscribe(J,$);return()=>{S.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${J}"`),M()}};class wS{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let S=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,F=P$($,{key:J,default:null},S);if($.parent?.valueMap.has(J)){let M=$.parent.valueMap.get(J);$.valueMap.set(J,M)}return F}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let S=`tracker:${J.config.name}:${YT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,F=RT(J,T);this.unsubscribeFromInnerValue=F.subscribe(S,(M)=>{gT(J,$,M)}),this.unsubscribeFromState=O$(T,(M)=>{if(M.newValue!==M.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=M.newValue.subscribe(S,(A)=>{gT(J,$,A)})},S,J)}updateCore(T,$,J){let S=`tracker:${J.config.name}:${YT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;O$($,({newValue:F,oldValue:M})=>{let A=J.timelineTopics.getRelatedKey($.key);if(A){if(J.timelines.get(A)?.timeTraveling){let K=bW({key:A,type:"timeline"},(f)=>{K(),gT(J,T,(G)=>{if(f==="redo"&&F)G.do(F);else if(f==="undo"&&M)G.undo(M);return G})},S,J);return}}let W=J.on.operationClose.subscribe(S,()=>{W();let X=RT(J,T),K=F===null?-1:X.getUpdateNumber(F),f=K-X.cacheUpdateNumber;if(F&&f===1)gT(J,T,(G)=>(G.do(F),G));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${X.cacheUpdateNumber+1}, but got ${K}`)})},S,J)}mutableState;latestUpdateState;dispose;constructor(T,$){this.mutableState=T;let J=x($);this.latestUpdateState=this.initializeState(T,J),this.observeCore(T,this.latestUpdateState,J),this.updateCore(T,this.latestUpdateState,J),J.trackers.set(T.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),J.trackers.delete(T.key)}}}function b0(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=x(T),F=S.atoms.get($.key);if(F&&F.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),z$(F);let M=new AT,A={...$,type:"mutable_atom",install:(K)=>{return K.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${K.config.name}"`),b0(K,$,J)},subject:M};if(J)A.family=J;let W=$.default();S.atoms.set(A.key,A),_1($.key,T),e$($.key,W,M,S);let X=z$(A);if($.effects){let K=0,f=[];for(let G of $.effects){let w=G({setSelf:(y)=>{gT(T,X,y)},onSet:(y)=>O$(X,y,`effect[${K}]`,T)});if(w)f.push(w);++K}A.cleanup=()=>{for(let G of f)G()}}if(new wS(X,T),!J)I8(X,$,T);return X}class vW{Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=jJ($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=$T(J,$),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(S)=>{if(S.token.family){let F=$$(S.token.family.subKey);bT($,this.latestUpdateAtoms,F),new wS(S.token,$)}}),this.latestUpdateAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(S)=>{if(S.token.family){let F=$$(S.token.family.subKey),M=bT($,this.mutableAtoms,F);if(M)new wS(M,$)}})}}function B0(T,$,J){let S={key:$.key,type:"mutable_atom_family"},F=T.families.get($.key);if(F)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${RJ(F)} "${F.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let M=new AT,W=Object.assign((X)=>{let K=e(X),f={key:$.key,subKey:K},G=`${$.key}(${K})`,w=x(T),y={key:G,default:()=>$.default(X),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)y.effects=$.effects(X);let H=b0(w,y,f);return M.next({type:"state_creation",token:H}),H},S,{subject:M,install:(X)=>B0(X,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,W),G4(W,$,T),new vW(W,T),S}var mW=(T,$)=>{let J=x($),S=`${T.key}:JSON`;return J.families.get(S)};var uT=(T,$)=>{if($.family){let S=x(T),M={key:`${$.family.key}:JSON`,type:"selector_family"},A=$T(M,S),W=JSON.parse($.family.subKey);return HT(T,A,W)}return{type:"selector",key:`${$.key}:JSON`}};var iJ=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function l8(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function x0(T,$,J){let S=$.valueMap.get(T.key),F=J.valueMap.get(T.key);if(S===F){if(S===void 0)return typeof T.default==="function"?T.default():T.default;$.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let M=T.toJson(S),A=T.fromJson(M);return J.valueMap.set(T.key,A),new wS(T,$),A}return F}function e$(T,$,J,S){let F=S.valueMap.get(T);if(F instanceof h$)F.use($);if($ instanceof Promise){let M=new h$($);return S.valueMap.set(T,M),M.then((A)=>{e$(T,A,J,S),J.next({newValue:A,oldValue:M})}).catch((A)=>{S.logger.error("\uD83D\uDCA5","state",T,"rejected:",A)}),M}return S.valueMap.set(T,$),$}var m8=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&YT($)){let{parent:S}=$;J=x0(T,S,$)}return J},i8=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof h$){let S=J,F=$.selectors.get(T)??$.readonlySelectors.get(T);if(F)S.use(F.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var d8=(T,$)=>{return x($).atomsThatAreDefault.has(T)},_1=(T,$)=>{let J=x($);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add(T)},r8=(T,$)=>{let J=x($);J.atomsThatAreDefault=new Set(x($).atomsThatAreDefault),J.atomsThatAreDefault.delete(T)};function P$(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let S=x(T),F=S.atoms.get($.key);if(F&&F.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),z$(F);let M=new AT,A={...$,type:"atom",install:(K)=>{return K.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${K.config.name}"`),P$(K,$,J)},subject:M};if(J)A.family=J;let W=$.default;if($.default instanceof Function)W=$.default();S.atoms.set(A.key,A),_1($.key,T),e$($.key,W,M,S);let X=z$(A);if($.effects){let K=0,f=[];for(let G of $.effects){let w=G({setSelf:(y)=>{gT(T,X,y)},onSet:(y)=>O$(X,y,`effect[${K}]`,T)});if(w)f.push(w);++K}A.cleanup=()=>{for(let G of f)G()}}return X}function h8(T,$){if("mutable"in $){let F=b0(T,$,void 0);return T.on.atomCreation.next(F),F}let S=P$(T,$,void 0);return T.on.atomCreation.next(S),S}function IW(T,$){let J=x($),{key:S}=T,F=$T(T,J);if(!F.family)$.logger.error("\u274C","atom",S,"Standalone atoms cannot be disposed.");else{F.cleanup?.();let M=$.valueMap.get(F.key);$T({key:F.family.key,type:"atom_family"},$).subject.next({type:"state_disposal",token:T,value:M});let W=J.molecules.get(F.family.subKey);if(W)W.tokens.delete(S);if(J.atoms.delete(S),J.valueMap.delete(S),J.selectorAtoms.delete(S),J.atomsThatAreDefault.delete(S),$.timelineTopics.delete(S),T.type==="mutable_atom"){let X=iJ(T);IW(X,$),$.trackers.delete(S)}if($.logger.info("\uD83D\uDD25","atom",S,"deleted"),YT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",token:T});else $.on.atomDisposal.next(T)}}class J$ extends Set{mode="record";subject=new AT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof J$)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(J)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=J})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new J$(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:${e(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:${e(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new J$(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let S of this.transactionUpdates)this.doStep(S);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.error("Failed to apply transaction to SetRTX:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.add(JSON.parse(S));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(S));break;case"tx":for(let F of S.split(";"))this.doStep(F)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),S=J-this.cacheUpdateNumber;if(S>0){if(S===1){this.mode="playback";let M=T.substring($+1);return this.doStep(M),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(S)<this.cacheLimit){let M=this.cacheIdx+S;if(this.cache[M]===T)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let K=this.cache[this.cacheIdx];if(this.cacheIdx--,!K)return"OUT_OF_RANGE";this.undo(K),W=this.cacheIdx===M-1}let X=T.substring($+1);return this.doStep(X),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),S=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(S));break;case"del":this.add(JSON.parse(S));break;case"clear":{let F=JSON.parse(S);for(let M of F)this.add(M);break}case"tx":{let F=S.split(";");for(let M=F.length-1;M>=0;M--)this.undoStep(F[M])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let S=T.substring($+1);return this.undoStep(S),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function vT(T){return T[0].toUpperCase()+T.slice(1)}class gW{options;defaultContent;toolkit;retrieve;molecules=new Map;relations;states;core;transact(T,$){let J=this.toolkit;this.toolkit=T,$(this),this.toolkit=J}store;alternates;[Symbol.dispose](){this.alternates.delete(this.store.config.name)}in(T){let $=T.config.name,J=this.alternates.get($);if(J)return J;let S=new gW(this.options,this.defaultContent,T);return this.alternates.set($,S),S.alternates=this.alternates,S}constructor(T,$,J=GT.STORE){this.store=J,this.options=T,this.defaultContent=$,this.alternates=new Map,this.alternates.set(J.config.name,this),this.store.miscResources.set(`join:${T.key}`,this),this.retrieve=(U,Q)=>{let D=this.toolkit.seek(U,Q);if(D)return D;let Z=this.store.molecules.get(e(Q));if(Z){let h=$T(U,J);return YJ(Z,h,J)}if(J.config.lifespan==="immortal")throw new v$(U,Q,J);return nJ(J,U,Q)},this.toolkit={get:(...U)=>RT(J,...U),set:(...U)=>{gT(J,...U)},find:this.retrieve,seek:(...U)=>bT(J,...U),json:(U)=>uT(J,U),dispose:(...U)=>{j$(J,...U)}};let S=T.between[0],F=T.between[1],M=B0(J,{key:`${T.key}/relatedKeys`,default:()=>new J$,mutable:!0,fromJson:(U)=>J$.fromJSON(U),toJson:(U)=>U.toJSON()},["join","relations"]);this.core={findRelatedKeysState:M};let A=({get:U},Q)=>U(this.retrieve(M,Q)),W=(U,Q,D)=>{let{set:Z}=U,h=this.retrieve(M,Q),k=this.retrieve(M,D);Z(h,(p)=>p.add(D)),Z(k,(p)=>p.add(Q))},X=(U,Q,D)=>{let{set:Z}=U,h=this.retrieve(M,Q),k=this.retrieve(M,D),p,g;Z(h,(u)=>{if(u.delete(D),u.size===0)p=`"${Q}"`;return u}),Z(k,(u)=>{if(u.delete(Q),u.size===0)g=`"${D}"`;return u})},K=(U,Q,D)=>{let{get:Z,set:h}=U,k=this.retrieve(M,Q),p=Z(k);for(let g of p){if(D.includes(g))continue;let ET=this.retrieve(M,g);h(ET,(VT)=>{return VT.delete(Q),VT})}h(k,(g)=>{return g.transaction((u)=>{u.clear();for(let ET of D){let VT=A(U,ET),b$=VT.has(Q);if(this.relations.cardinality==="1:n"){let cJ=[];for(let C of VT){if(C===Q)continue;let t=A(U,C);if(t.delete(ET),t.size===0)cJ.push(C)}if(!b$&&VT.size>0)VT.clear();for(let C of cJ){let t=[ET,C].sort(),zT=`"${t[0]}:${t[1]}"`;this.molecules.delete(zT)}}if(!b$)VT.add(Q);u.add(ET)}return!0}),g})},f=(U,Q,D)=>{let{set:Z}=U,h=this.retrieve(M,Q);Z(h,(k)=>{return k.transaction((p)=>{for(let g of D)p.add(g);return!0}),k});for(let k of D){let p=this.retrieve(M,k);Z(p,(g)=>{return g.add(Q),g})}return!0},G=(U,Q,D)=>{let Z=A(U,Q);return D?Z.has(D):Z.size>0},w={getRelatedKeys:(U)=>A(this.toolkit,U),addRelation:(U,Q)=>{W(this.toolkit,U,Q)},deleteRelation:(U,Q)=>{X(this.toolkit,U,Q)},replaceRelationsSafely:(U,Q)=>{K(this.toolkit,U,Q)},replaceRelationsUnsafely:(U,Q)=>{f(this.toolkit,U,Q)},has:(U,Q)=>G(this.toolkit,U,Q)},y,H,O;if($){H=jJ(J,{key:`${T.key}/content`,default:$},["join","content"]),O=t8(J,{key:`${T.key}/content-molecules`,new:class h{key;constructor(k,p){this.key=p}}});let U=({get:h},k)=>h(this.retrieve(H,k)),Q=({set:h},k,p)=>{h(this.retrieve(H,k),p)},D=(h,k)=>{let p=J.molecules.get(`"${k}"`);if(p)this.toolkit.dispose(p),this.molecules.delete(`"${k}"`)};y=Object.assign(w,{getContent:(h)=>{return U(this.toolkit,h)},setContent:(h,k)=>{Q(this.toolkit,h,k)},deleteContent:(h)=>{D(this.toolkit,h)}})}else y=w;let E=new n$(T,{externalStore:y,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...U)=>{let Q=U.sort(),D=`${Q[0]}:${Q[1]}`,[Z,h]=Q.map((k)=>this.molecules.get(e(k)));if(J.config.lifespan==="immortal"&&Z&&h){let k=x(J),p=pJ(k,[Z,h],O,D);this.molecules.set(`"${D}"`,$T(p,k))}return D}}),B=()=>gJ(J,{key:`${T.key}/singleRelatedKey`,get:(U)=>({get:Q})=>{let D=this.retrieve(M,U),Z=Q(D);for(let h of Z)return h;return null}},["join","keys"]),L=()=>{return gJ(J,{key:`${T.key}/multipleRelatedKeys`,get:(U)=>({get:Q})=>{let D=mW(M,J),Z=this.retrieve(D,U);return Q(Z).members}},["join","keys"])},N=()=>gJ(J,{key:`${T.key}/singleRelatedEntry`,get:(U)=>({get:Q})=>{let D=this.retrieve(M,U),Z=Q(D);for(let h of Z){let k=E.isAType?.(U)?U:void 0,p=k===void 0?U:void 0;k??=h,p??=h;let g=E.makeContentKey(k,p),u=this.retrieve(H,g),ET=Q(u);return[h,ET]}return null}},["join","entries"]),I=()=>gJ(J,{key:`${T.key}/multipleRelatedEntries`,get:(U)=>({get:Q})=>{let D=mW(M,J),Z=this.retrieve(D,U);return Q(Z).members.map((k)=>{let p=E.isAType?.(U)?U:void 0,g=p===void 0?U:void 0;p??=k,g??=k;let u=E.makeContentKey(p,g),ET=this.retrieve(H,u),VT=Q(ET);return[k,VT]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let U=B(),Q=`${S}KeyOf${vT(F)}`,D=`${F}KeyOf${vT(S)}`,Z={[Q]:U,[D]:U},h;if($){let k=N(),p=`${S}EntryOf${vT(F)}`,g=`${F}EntryOf${vT(S)}`,u={[p]:k,[g]:k};h=Object.assign(Z,u)}else h=Z;this.relations=E,this.states=h;break}case"1:n":{let U=B(),Q=L(),D=`${S}KeyOf${vT(F)}`,Z=`${F}KeysOf${vT(S)}`,h={[D]:U,[Z]:Q},k;if($){let p=N(),g=I(),u=`${S}EntryOf${vT(F)}`,ET=`${F}EntriesOf${vT(S)}`,VT={[u]:p,[ET]:g};k=Object.assign(h,VT)}else k=h;this.relations=E,this.states=k;break}default:{let U=L(),Q=`${S}KeysOf${vT(F)}`,D=`${F}KeysOf${vT(S)}`,Z={[Q]:U,[D]:U},h;if($){let k=I(),p=`${S}EntriesOf${vT(F)}`,g=`${F}EntriesOf${vT(S)}`,u={[p]:k,[g]:k};h=Object.assign(Z,u)}else h=Z;this.relations=E,this.states=h}}}}function y1(T,$,J=GT.STORE){return cW(J).set(T.key,new gW(T,$,J)),{key:T.key,type:"join",a:T.between[0],b:T.between[1],cardinality:T.cardinality}}function cW(T){if("joins"in T&&T.joins instanceof Map)return T.joins;let $=new Map;return T.joins=$,$}function I0(T,$){let J=cW($),S=J.get(T.key);if(S===void 0){if(S=cW(GT.STORE).get(T.key)?.in($),S===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);J.set(T.key,S)}return S}function H1(T,$,J){let S=I0(T,J),F;switch(T.cardinality){case"1:1":{let M=`${T.a}KeyOf${vT(T.b)}`,A=`${T.b}KeyOf${vT(T.a)}`;F={get[M](){let X=S.states[M];return S.retrieve(X,$)},get[A](){let X=S.states[A];return S.retrieve(X,$)}};let W=`${T.a}EntryOf${vT(T.b)}`;if(W in S.states){let X=`${T.b}EntryOf${vT(T.a)}`;Object.assign(F,{get[W](){let K=S.states[W];return S.retrieve(K,$)},get[X](){let K=S.states[X];return S.retrieve(K,$)}})}break}case"1:n":{let M=`${T.a}KeyOf${vT(T.b)}`,A=`${T.b}KeysOf${vT(T.a)}`;F={get[M](){let X=S.states[M];return S.retrieve(X,$)},get[A](){let X=S.states[A];return S.retrieve(X,$)}};let W=`${T.a}EntryOf${vT(T.b)}`;if(W in S.states){let X=`${T.b}EntriesOf${vT(T.a)}`;Object.assign(F,{get[W](){let K=S.states[W];return S.retrieve(K,$)},get[X](){let K=S.states[X];return S.retrieve(K,$)}})}break}case"n:n":{let M=`${T.a}KeysOf${vT(T.b)}`,A=`${T.b}KeysOf${vT(T.a)}`;F={get[M](){let X=S.states[M];return S.retrieve(X,$)},get[A](){let X=S.states[A];return S.retrieve(X,$)}};let W=`${T.a}EntriesOf${vT(T.b)}`;if(W in S.states){let X=`${T.b}EntriesOf${vT(T.a)}`;Object.assign(F,{get[W](){let K=S.states[W];return S.retrieve(K,$)},get[X](){let K=S.states[X];return S.retrieve(K,$)}})}}}return F}function s8(T,$){return H1(T,$,GT.STORE)}function k1(T,$,J){let S=I0(T,J),F=x(J);if(YT(F)){let{toolkit:M}=F.transactionMeta;S.transact(M,({relations:A})=>{$(A)})}else $(S.relations)}function s2(T,$){return I0(T,$).core.findRelatedKeysState}function R4(T){return s2(T,GT.STORE)}class Y4 extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class Q1{key;type="continuity";globals=[];actions=[];perspectives=[];constructor(T){this.key=T}static existing=new Y4;static create(T,$){let J=new Q1(T),{type:S,globals:F,actions:M,perspectives:A}=$(J),W={type:S,key:T,globals:F,actions:M,perspectives:A};return Q1.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[J,S]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:S})}break}return this}}function oB(T){let{key:$,config:J}=T,S=Q1.create($,J),{actions:F}=S;for(let M of F)S4($,M.key,GT.STORE);return T4($,-1,GT.STORE),S}var tB=QF({key:"usersInRoomIndex",mutable:!0,default:()=>new J$,toJson:(T)=>T.toJSON(),fromJson:(T)=>J$.fromJSON(T)}),nW=QF({key:"roomIndex",default:()=>new J$,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>J$.fromJSON(T)}),e2={enteredAtEpoch:0},h0=y1({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},e2),aB=S1({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=R4(h0);return[$(J,T)]}});import{spawn as TR}from"child_process";class zF{emit;listeners;globalListeners;handleEvent(T,...$){for(let S of this.globalListeners)S(T,...$);let J=this.listeners.get(T);if(J)for(let S of J)S(...$)}id="no_id_retrieved";constructor(T){this.emit=T;this.listeners=new Map,this.globalListeners=new Set}on(T,$){let J=this.listeners.get(T);if(J)J.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let J=this.listeners.get(T);if(J)if($)J.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class P0 extends zF{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break}}}constructor(T,$,J){super((S,...F)=>{let M=JSON.stringify([S,...F])+"\x03",A=(W)=>{if(W.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",A)};return this.process.stdin.once("error",A),this.process.stdin.write(M),this});if(this.process=T,this.key=$,this.logger=J??{info:(...S)=>{console.info(this.id,this.key,...S)},warn:(...S)=>{console.warn(this.id,this.key,...S)},error:(...S)=>{console.error(this.id,this.key,...S)}},this.process.stdout.on("data",(S)=>{let F=S.toString();if(F==="ALIVE")return;this.unprocessedEvents.push(...F.split("\x03"));let M=this.unprocessedEvents.shift();this.incompleteData+=M??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let A=$$(this.incompleteData);this.handleEvent(...A);while(this.unprocessedEvents.length>0){let W=this.unprocessedEvents.shift();if(W){if(this.unprocessedEvents.length===0)this.incompleteData=W;A=$$(W),this.handleEvent(...A)}}this.incompleteData=""}catch(A){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(A)}}),this.process.stderr.on("data",(S)=>{let F=S.toString();this.unprocessedLogs.push(...F.split("\x03"));let M=this.unprocessedLogs.shift();this.incompleteLog+=M??"";try{let A=$$(this.incompleteLog);this.handleLog(A);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)A=$$(this.incompleteLog),this.handleLog(A)}catch(A){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(A),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class _4 extends zF{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new AT,this.out=new AT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class pW extends zF{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(e(T.map(($)=>$ instanceof J$?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let S=$$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",S),this.handleEvent(...S);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;let M=$$(F);this.handleEvent(...M)}}this.incompleteData=""}catch(S){if(S instanceof Error)this.logger.error("\u2757",S.message,S.cause,S.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new _4(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let S=J($);if(S)$.disposalFunctions.push(S)}this.on(`user:${T}`,(...J)=>{$.in.next(J)}),$.out.subscribe("socket",(J)=>{this.emit(...J)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var iW=IS({key:"roomArguments",default:["echo",["Hello World!"]]}),y4=S1({key:"room",get:(T)=>async({get:$,find:J})=>{let S=J(iW,T),F=$(S),[M,A]=F,W=await new Promise((X)=>{let K=TR(M,A,{env:process.env}),f=(G)=>{if(G.toString()==="ALIVE")K.stdout.off("data",f),X(K)};K.stdout.on("data",f)});return new P0(W,T)}});var VL=q0({key:"createRoom",do:({get:T,set:$,find:J},S,F,M)=>{let A=M?[F,M]:[F],W=J(iW,S);$(W,A),$(nW,(f)=>f.add(S));let X=J(y4,S);return T(X)}}),BL=q0({key:"joinRoom",do:(T,$,J,S)=>{let F={enteredAtEpoch:S};return k1(h0,(M)=>{M.set({room:$,user:J},F)},T.env().store),F}}),LL=q0({key:"leaveRoom",do:(T,$,J)=>{k1(h0,(S)=>{S.delete({room:$,user:J})},T.env().store)}}),NL=q0({key:"destroyRoom",do:(T,$)=>{k1(h0,(J)=>{J.delete({room:$})},T.env().store),T.set(nW,(J)=>(J.delete($),J))}});function oW(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let S=oW(T,J.updates);return{...J,updates:S}}default:return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":return T.includes(J.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var qL=IS({key:"redactor",default:{occlude:(T)=>T}}),OF=IS({key:"unacknowledgedUpdates",default:()=>[]});var H4=IS({key:"sockets",default:null}),hL=QF({key:"socketsIndex",mutable:!0,default:()=>new J$,toJson:(T)=>T.toJSON(),fromJson:(T)=>J$.fromJSON(T)}),PL=QF({key:"usersIndex",mutable:!0,default:()=>new J$,toJson:(T)=>T.toJSON(),fromJson:(T)=>J$.fromJSON(T)}),lW=y1({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function k4(T,$,J,S){let F=$.key;return function M(){let A=[];for(let X of $.globals){let K=X.type==="mutable_atom"?uT(T,X):X,f=RT(T,K);A.push(K,f)}for(let X of $.perspectives){let{viewAtoms:K,resourceAtoms:f}=X,G=HT(T,K,J),w=RT(T,G);T.logger.info("\uD83D\uDC41","atom",f.key,`${J} can see`,{viewAtoms:K,resourceAtoms:f,userView:w});for(let y of w){let H=y.type==="mutable_atom"?uT(T,y):y,O=RT(T,H);A.push(H,O)}}let W=dT(T)?T.transactionMeta.epoch.get(F)??null:null;S?.emit(`continuity-init:${F}`,W,A)}}function Q4(T,$,J){let S=$.key;return function F(M){T.logger.info("\uD83D\uDECE\uFE0F","continuity",S,"received",M);let{key:A,id:W}=M,X=`tx-run:${A}:${W}`,K=`${X}:start`,f=`${X}:end`;performance.mark(K);try{fS({type:"transaction",key:A},W,T)(...M.params)}catch(w){if(w instanceof Error)T.logger.error("\u274C","continuity",S,`failed to run transaction ${A} from ${J} with update ${W}`,w.message)}performance.mark(f);let G=performance.measure(X,K,f);T?.logger.info("\uD83D\uDE80","transaction",A,W,J,G.duration)}}function E4(T,$,J,S){let F=$.key;return function M(A){if(T.logger.info("\uD83D\uDC4D","continuity",F,`${J} acknowledged epoch ${A}`),S[0]?.epoch===A)gT(T,OF,J,(X)=>{return X.shift(),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,X.length,"items"),X})}}function z4(T,$,J,S){let F=$.key,M=[];for(let A of $.actions){let W=hW(A,(X)=>{try{let K=$.globals.map((w)=>{if(w.type==="atom")return w.key;return iJ(w).key}).concat($.perspectives.flatMap((w)=>{let{viewAtoms:y}=w,H=HT(T,y,J);return RT(T,H).map((E)=>{return E.type==="mutable_atom"?"*"+E.key:E.key})})),f=oW(K,X.updates),G={...X,updates:f};gT(T,OF,J,(w)=>{if(G)w.push(G),w.sort((y,H)=>y.epoch-H.epoch),T.logger.info("\uD83D\uDC4D","continuity",F,`${J} unacknowledged update queue now has`,w.length,"items");return w}),S?.emit(`tx-new:${F}`,G)}catch(K){if(K instanceof Error)T.logger.error("\u274C","continuity",F,`${J} failed to send update from transaction ${A.key} to ${J}`,K.message)}},`sync-continuity:${F}:${J}`,T);M.push(W)}return M}function O4(T,$,J,S){let F=$.key,M=[];for(let A of $.perspectives){let{viewAtoms:W}=A,X=HT(T,W,J),K=O$(X,({oldValue:f,newValue:G})=>{let w=f.map((E)=>E.key),y=G.map((E)=>E.key),H=f.filter((E)=>!y.includes(E.key)),O=G.filter((E)=>!w.includes(E.key)).flatMap((E)=>{let B=E.type==="mutable_atom"?uT(T,E):E,L=RT(T,B);return[B,L]});if(T.logger.info("\uD83D\uDC41","atom",A.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:w,newKeys:y,revealed:O,concealed:H}),O.length>0)S?.emit(`reveal:${F}`,O);if(H.length>0)S?.emit(`conceal:${F}`,H)},`sync-continuity:${F}:${J}:perspective:${A.resourceAtoms.key}`,T);M.push(K)}return M}function RN({socket:T,store:$=GT.STORE}){return function J(S){let F=T,M=S.key,A=H1(lW,`socket::${F.id}`,$).userKeyOfSocket,W=RT($,A);if(!W)return $.logger.error("\u274C","continuity",M,`Tried to create a synchronizer for a socket (${F.id}) that is not connected to a user.`),()=>{};let X=H1(lW,W,$).socketKeyOfUser,K=O$(X,({newValue:B})=>{if($.logger.info("\uD83D\uDC4B","continuity",M,`seeing ${W} on new socket ${B}`),B===null){$.logger.warn("\u274C","continuity",M,`User (${W}) is not connected to a socket, waiting for them to reappear.`);return}let L=HT($,H4,B);F=RT($,L);for(let I of f)F?.emit(`tx-new:${M}`,I)},`sync-continuity:${M}:${W}`,$),f=RT($,OF,W),G=[],w=O4($,S,W,F),y=z4($,S,W,F);G.push(...w,...y);let H=k4($,S,W,T);F.off(`get:${M}`,H),F.on(`get:${M}`,H);let O=Q4($,S,W);F.off(`tx-run:${M}`,O),F.on(`tx-run:${M}`,O);let E=E4($,S,W,f);return F?.on(`ack:${M}`,E),()=>{for(let B of G)B();F?.off(`ack:${M}`,E),F?.off(`get:${M}`,H),F?.off(`tx-run:${M}`,O)}}}var D4=Symbol("Let zodToJsonSchema decide on which parser to use"),U4={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"},V4=(T)=>typeof T==="string"?{...U4,name:T}:{...U4,...T};var B4=(T)=>{let $=V4(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([S,F])=>[F._def,{def:F._def,path:[...$.basePath,$.definitionPath,S],jsonSchema:void 0}]))}};function uW(T,$,J,S){if(!S?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function _T(T,$,J,S,F){T[$]=J,uW(T,$,S,F)}var kT;(function(T){T.assertEqual=(F)=>F;function $(F){}T.assertIs=$;function J(F){throw new Error}T.assertNever=J,T.arrayToEnum=(F)=>{let M={};for(let A of F)M[A]=A;return M},T.getValidEnumValues=(F)=>{let M=T.objectKeys(F).filter((W)=>typeof F[F[W]]!=="number"),A={};for(let W of M)A[W]=F[W];return T.objectValues(A)},T.objectValues=(F)=>{return T.objectKeys(F).map(function(M){return F[M]})},T.objectKeys=typeof Object.keys==="function"?(F)=>Object.keys(F):(F)=>{let M=[];for(let A in F)if(Object.prototype.hasOwnProperty.call(F,A))M.push(A);return M},T.find=(F,M)=>{for(let A of F)if(M(A))return A;return},T.isInteger=typeof Number.isInteger==="function"?(F)=>Number.isInteger(F):(F)=>typeof F==="number"&&isFinite(F)&&Math.floor(F)===F;function S(F,M=" | "){return F.map((A)=>typeof A==="string"?`'${A}'`:A).join(M)}T.joinValues=S,T.jsonStringifyReplacer=(F,M)=>{if(typeof M==="bigint")return M.toString();return M}})(kT||(kT={}));var rW;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(rW||(rW={}));var i=kT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),lJ=(T)=>{switch(typeof T){case"undefined":return i.undefined;case"string":return i.string;case"number":return isNaN(T)?i.nan:i.number;case"boolean":return i.boolean;case"function":return i.function;case"bigint":return i.bigint;case"symbol":return i.symbol;case"object":if(Array.isArray(T))return i.array;if(T===null)return i.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return i.promise;if(typeof Map!=="undefined"&&T instanceof Map)return i.map;if(typeof Set!=="undefined"&&T instanceof Set)return i.set;if(typeof Date!=="undefined"&&T instanceof Date)return i.date;return i.object;default:return i.unknown}},j=kT.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"]),$R=(T)=>{return JSON.stringify(T,null,2).replace(/"([^"]+)":/g,"$1:")};class p$ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(F){return F.message},J={_errors:[]},S=(F)=>{for(let M of F.issues)if(M.code==="invalid_union")M.unionErrors.map(S);else if(M.code==="invalid_return_type")S(M.returnTypeError);else if(M.code==="invalid_arguments")S(M.argumentsError);else if(M.path.length===0)J._errors.push($(M));else{let A=J,W=0;while(W<M.path.length){let X=M.path[W];if(W!==M.path.length-1)A[X]=A[X]||{_errors:[]};else A[X]=A[X]||{_errors:[]},A[X]._errors.push($(M));A=A[X],W++}}};return S(this),J}static assert(T){if(!(T instanceof p$))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,kT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let S of this.issues)if(S.path.length>0)$[S.path[0]]=$[S.path[0]]||[],$[S.path[0]].push(T(S));else J.push(T(S));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}p$.create=(T)=>{return new p$(T)};var BF=(T,$)=>{let J;switch(T.code){case j.invalid_type:if(T.received===i.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case j.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,kT.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:J=`Unrecognized key(s) in object: ${kT.joinValues(T.keys,", ")}`;break;case j.invalid_union:J="Invalid input";break;case j.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${kT.joinValues(T.options)}`;break;case j.invalid_enum_value:J=`Invalid enum value. Expected ${kT.joinValues(T.options)}, received '${T.received}'`;break;case j.invalid_arguments:J="Invalid function arguments";break;case j.invalid_return_type:J="Invalid function return type";break;case j.invalid_date:J="Invalid date";break;case j.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(J=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)J=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)J=`Invalid input: must end with "${T.validation.endsWith}"`;else kT.assertNever(T.validation);else if(T.validation!=="regex")J=`Invalid ${T.validation}`;else J="Invalid";break;case j.too_small:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else J="Invalid input";break;case j.too_big:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")J=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else J="Invalid input";break;case j.custom:J="Invalid input";break;case j.invalid_intersection_types:J="Intersection results could not be merged";break;case j.not_multiple_of:J=`Number must be a multiple of ${T.multipleOf}`;break;case j.not_finite:J="Number must be finite";break;default:J=$.defaultError,kT.assertNever(T)}return{message:J}},C4=BF;function JR(T){C4=T}function E1(){return C4}var z1=(T)=>{let{data:$,path:J,errorMaps:S,issueData:F}=T,M=[...J,...F.path||[]],A={...F,path:M};if(F.message!==void 0)return{...F,path:M,message:F.message};let W="",X=S.filter((K)=>!!K).slice().reverse();for(let K of X)W=K(A,{data:$,defaultError:W}).message;return{...F,path:M,message:W}},SR=[];function v(T,$){let J=E1(),S=z1({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===BF?void 0:BF].filter((F)=>!!F)});T.common.issues.push(S)}class U${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let S of $){if(S.status==="aborted")return JT;if(S.status==="dirty")T.dirty();J.push(S.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let S of $){let F=await S.key,M=await S.value;J.push({key:F,value:M})}return U$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let S of $){let{key:F,value:M}=S;if(F.status==="aborted")return JT;if(M.status==="aborted")return JT;if(F.status==="dirty")T.dirty();if(M.status==="dirty")T.dirty();if(F.value!=="__proto__"&&(typeof M.value!=="undefined"||S.alwaysSet))J[F.value]=M.value}return{status:T.value,value:J}}}var JT=Object.freeze({status:"aborted"}),DF=(T)=>({status:"dirty",value:T}),q$=(T)=>({status:"valid",value:T}),tW=(T)=>T.status==="aborted",aW=(T)=>T.status==="dirty",ZS=(T)=>T.status==="valid",c0=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function O1(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)}function j4(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J}var l;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(l||(l={}));var v0,m0;class HJ{constructor(T,$,J,S){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=S}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var L4=(T,$)=>{if(ZS($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new p$(T.common.issues);return this._error=J,this._error}}}};function WT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:S,description:F}=T;if($&&(J||S))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:F};return{errorMap:(A,W)=>{var X,K;let{message:f}=T;if(A.code==="invalid_enum_value")return{message:f!==null&&f!==void 0?f:W.defaultError};if(typeof W.data==="undefined")return{message:(X=f!==null&&f!==void 0?f:S)!==null&&X!==void 0?X:W.defaultError};if(A.code!=="invalid_type")return{message:W.defaultError};return{message:(K=f!==null&&f!==void 0?f:J)!==null&&K!==void 0?K:W.defaultError}},description:F}}class XT{get description(){return this._def.description}_getType(T){return lJ(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:lJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new U$,ctx:{common:T.parent.common,data:T.data,parsedType:lJ(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(c0($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let J=this.safeParse(T,$);if(J.success)return J.data;throw J.error}safeParse(T,$){var J;let S={common:{issues:[],async:(J=$===null||$===void 0?void 0:$.async)!==null&&J!==void 0?J:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:lJ(T)},F=this._parseSync({data:T,path:S.path,parent:S});return L4(S,F)}"~validate"(T){var $,J;let S={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:lJ(T)};if(!this["~standard"].async)try{let F=this._parseSync({data:T,path:[],parent:S});return ZS(F)?{value:F.value}:{issues:S.common.issues}}catch(F){if((J=($=F===null||F===void 0?void 0:F.message)===null||$===void 0?void 0:$.toLowerCase())===null||J===void 0?void 0:J.includes("encountered"))this["~standard"].async=!0;S.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:S}).then((F)=>ZS(F)?{value:F.value}:{issues:S.common.issues})}async parseAsync(T,$){let J=await this.safeParseAsync(T,$);if(J.success)return J.data;throw J.error}async safeParseAsync(T,$){let J={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:lJ(T)},S=this._parse({data:T,path:J.path,parent:J}),F=await(c0(S)?S:Promise.resolve(S));return L4(J,F)}refine(T,$){let J=(S)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(S);else return $};return this._refinement((S,F)=>{let M=T(S),A=()=>F.addIssue({code:j.custom,...J(S)});if(typeof Promise!=="undefined"&&M instanceof Promise)return M.then((W)=>{if(!W)return A(),!1;else return!0});if(!M)return A(),!1;else return!0})}refinement(T,$){return this._refinement((J,S)=>{if(!T(J))return S.addIssue(typeof $==="function"?$(J,S):$),!1;else return!0})}_refinement(T){return new $J({schema:this,typeName:q.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 uJ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return yJ.create(this)}promise(){return vS.create(this,this._def)}or(T){return jF.create([this,T],this._def)}and(T){return qF.create(this,T,this._def)}transform(T){return new $J({...WT(this._def),schema:this,typeName:q.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new bF({...WT(this._def),innerType:this,defaultValue:$,typeName:q.ZodDefault})}brand(){return new D1({typeName:q.ZodBranded,type:this,...WT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new hF({...WT(this._def),innerType:this,catchValue:$,typeName:q.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return l0.create(this,T)}readonly(){return PF.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var FR=/^c[^\s-]{8,}$/i,MR=/^[0-9a-z]+$/,AR=/^[0-9A-HJKMNP-TV-Z]{26}$/i,WR=/^[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,XR=/^[a-z0-9_-]{21}$/i,KR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fR=/^[-+]?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)?)??$/,GR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,wR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",dW,RR=/^(?:(?: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])$/,YR=/^(?:(?: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])$/,_R=/^(([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]))$/,yR=/^(([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])$/,HR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kR=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,q4="((\\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])))",QR=new RegExp(`^${q4}$`);function x4(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 ER(T){return new RegExp(`^${x4(T)}$`)}function I4(T){let $=`${q4}T${x4(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function zR(T,$){if(($==="v4"||!$)&&RR.test(T))return!0;if(($==="v6"||!$)&&_R.test(T))return!0;return!1}function OR(T,$){if(!KR.test(T))return!1;try{let[J]=T.split("."),S=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),F=JSON.parse(atob(S));if(typeof F!=="object"||F===null)return!1;if(!F.typ||!F.alg)return!1;if($&&F.alg!==$)return!1;return!0}catch(J){return!1}}function UR(T,$){if(($==="v4"||!$)&&YR.test(T))return!0;if(($==="v6"||!$)&&yR.test(T))return!0;return!1}class _J extends XT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==i.string){let F=this._getOrReturnCtx(T);return v(F,{code:j.invalid_type,expected:i.string,received:F.parsedType}),JT}let J=new U$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.length<F.value)S=this._getOrReturnCtx(T,S),v(S,{code:j.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="max"){if(T.data.length>F.value)S=this._getOrReturnCtx(T,S),v(S,{code:j.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!1,message:F.message}),J.dirty()}else if(F.kind==="length"){let M=T.data.length>F.value,A=T.data.length<F.value;if(M||A){if(S=this._getOrReturnCtx(T,S),M)v(S,{code:j.too_big,maximum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});else if(A)v(S,{code:j.too_small,minimum:F.value,type:"string",inclusive:!0,exact:!0,message:F.message});J.dirty()}}else if(F.kind==="email"){if(!GR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"email",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="emoji"){if(!dW)dW=new RegExp(wR,"u");if(!dW.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"emoji",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="uuid"){if(!WR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"uuid",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="nanoid"){if(!XR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"nanoid",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid"){if(!FR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"cuid",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cuid2"){if(!MR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"cuid2",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ulid"){if(!AR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"ulid",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="url")try{new URL(T.data)}catch(M){S=this._getOrReturnCtx(T,S),v(S,{validation:"url",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="regex"){if(F.regex.lastIndex=0,!F.regex.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"regex",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="trim")T.data=T.data.trim();else if(F.kind==="includes"){if(!T.data.includes(F.value,F.position))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:{includes:F.value,position:F.position},message:F.message}),J.dirty()}else if(F.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(F.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(F.kind==="startsWith"){if(!T.data.startsWith(F.value))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:{startsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="endsWith"){if(!T.data.endsWith(F.value))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:{endsWith:F.value},message:F.message}),J.dirty()}else if(F.kind==="datetime"){if(!I4(F).test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:"datetime",message:F.message}),J.dirty()}else if(F.kind==="date"){if(!QR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:"date",message:F.message}),J.dirty()}else if(F.kind==="time"){if(!ER(F).test(T.data))S=this._getOrReturnCtx(T,S),v(S,{code:j.invalid_string,validation:"time",message:F.message}),J.dirty()}else if(F.kind==="duration"){if(!fR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"duration",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="ip"){if(!zR(T.data,F.version))S=this._getOrReturnCtx(T,S),v(S,{validation:"ip",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="jwt"){if(!OR(T.data,F.alg))S=this._getOrReturnCtx(T,S),v(S,{validation:"jwt",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="cidr"){if(!UR(T.data,F.version))S=this._getOrReturnCtx(T,S),v(S,{validation:"cidr",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64"){if(!HR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"base64",code:j.invalid_string,message:F.message}),J.dirty()}else if(F.kind==="base64url"){if(!kR.test(T.data))S=this._getOrReturnCtx(T,S),v(S,{validation:"base64url",code:j.invalid_string,message:F.message}),J.dirty()}else kT.assertNever(F);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((S)=>T.test(S),{validation:$,code:j.invalid_string,...l.errToObj(J)})}_addCheck(T){return new _J({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...l.errToObj(T)})}url(T){return this._addCheck({kind:"url",...l.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...l.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...l.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...l.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...l.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...l.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...l.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...l.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...l.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...l.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...l.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...l.errToObj(T)})}datetime(T){var $,J;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(J=T===null||T===void 0?void 0:T.local)!==null&&J!==void 0?J:!1,...l.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,...l.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...l.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...l.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...l.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...l.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...l.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...l.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...l.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...l.errToObj($)})}nonempty(T){return this.min(1,l.errToObj(T))}trim(){return new _J({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new _J({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new _J({...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}}_J.create=(T)=>{var $;return new _J({checks:[],typeName:q.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...WT(T)})};function DR(T,$){let J=(T.toString().split(".")[1]||"").length,S=($.toString().split(".")[1]||"").length,F=J>S?J:S,M=parseInt(T.toFixed(F).replace(".","")),A=parseInt($.toFixed(F).replace(".",""));return M%A/Math.pow(10,F)}class YS extends XT{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)!==i.number){let F=this._getOrReturnCtx(T);return v(F,{code:j.invalid_type,expected:i.number,received:F.parsedType}),JT}let J=void 0,S=new U$;for(let F of this._def.checks)if(F.kind==="int"){if(!kT.isInteger(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:j.invalid_type,expected:"integer",received:"float",message:F.message}),S.dirty()}else if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:j.too_small,minimum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:j.too_big,maximum:F.value,type:"number",inclusive:F.inclusive,exact:!1,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(DR(T.data,F.value)!==0)J=this._getOrReturnCtx(T,J),v(J,{code:j.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else if(F.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),v(J,{code:j.not_finite,message:F.message}),S.dirty()}else kT.assertNever(F);return{status:S.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,l.toString($))}gt(T,$){return this.setLimit("min",T,!1,l.toString($))}lte(T,$){return this.setLimit("max",T,!0,l.toString($))}lt(T,$){return this.setLimit("max",T,!1,l.toString($))}setLimit(T,$,J,S){return new YS({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:l.toString(S)}]})}_addCheck(T){return new YS({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:l.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:l.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:l.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:l.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:l.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:l.toString($)})}finite(T){return this._addCheck({kind:"finite",message:l.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:l.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:l.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"&&kT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if($===null||J.value>$)$=J.value}else if(J.kind==="max"){if(T===null||J.value<T)T=J.value}return Number.isFinite($)&&Number.isFinite(T)}}YS.create=(T)=>{return new YS({checks:[],typeName:q.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...WT(T)})};class _S extends XT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(F){return this._getInvalidInput(T)}if(this._getType(T)!==i.bigint)return this._getInvalidInput(T);let J=void 0,S=new U$;for(let F of this._def.checks)if(F.kind==="min"){if(F.inclusive?T.data<F.value:T.data<=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:j.too_small,type:"bigint",minimum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="max"){if(F.inclusive?T.data>F.value:T.data>=F.value)J=this._getOrReturnCtx(T,J),v(J,{code:j.too_big,type:"bigint",maximum:F.value,inclusive:F.inclusive,message:F.message}),S.dirty()}else if(F.kind==="multipleOf"){if(T.data%F.value!==BigInt(0))J=this._getOrReturnCtx(T,J),v(J,{code:j.not_multiple_of,multipleOf:F.value,message:F.message}),S.dirty()}else kT.assertNever(F);return{status:S.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return v($,{code:j.invalid_type,expected:i.bigint,received:$.parsedType}),JT}gte(T,$){return this.setLimit("min",T,!0,l.toString($))}gt(T,$){return this.setLimit("min",T,!1,l.toString($))}lte(T,$){return this.setLimit("max",T,!0,l.toString($))}lt(T,$){return this.setLimit("max",T,!1,l.toString($))}setLimit(T,$,J,S){return new _S({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:l.toString(S)}]})}_addCheck(T){return new _S({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:l.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:l.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:l.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:l.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:l.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}}_S.create=(T)=>{var $;return new _S({checks:[],typeName:q.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...WT(T)})};class LF extends XT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==i.boolean){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.boolean,received:J.parsedType}),JT}return q$(T.data)}}LF.create=(T)=>{return new LF({typeName:q.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...WT(T)})};class bS extends XT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==i.date){let F=this._getOrReturnCtx(T);return v(F,{code:j.invalid_type,expected:i.date,received:F.parsedType}),JT}if(isNaN(T.data.getTime())){let F=this._getOrReturnCtx(T);return v(F,{code:j.invalid_date}),JT}let J=new U$,S=void 0;for(let F of this._def.checks)if(F.kind==="min"){if(T.data.getTime()<F.value)S=this._getOrReturnCtx(T,S),v(S,{code:j.too_small,message:F.message,inclusive:!0,exact:!1,minimum:F.value,type:"date"}),J.dirty()}else if(F.kind==="max"){if(T.data.getTime()>F.value)S=this._getOrReturnCtx(T,S),v(S,{code:j.too_big,message:F.message,inclusive:!0,exact:!1,maximum:F.value,type:"date"}),J.dirty()}else kT.assertNever(F);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new bS({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:l.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:l.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}}bS.create=(T)=>{return new bS({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:q.ZodDate,...WT(T)})};class g0 extends XT{_parse(T){if(this._getType(T)!==i.symbol){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.symbol,received:J.parsedType}),JT}return q$(T.data)}}g0.create=(T)=>{return new g0({typeName:q.ZodSymbol,...WT(T)})};class NF extends XT{_parse(T){if(this._getType(T)!==i.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.undefined,received:J.parsedType}),JT}return q$(T.data)}}NF.create=(T)=>{return new NF({typeName:q.ZodUndefined,...WT(T)})};class CF extends XT{_parse(T){if(this._getType(T)!==i.null){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.null,received:J.parsedType}),JT}return q$(T.data)}}CF.create=(T)=>{return new CF({typeName:q.ZodNull,...WT(T)})};class hS extends XT{constructor(){super(...arguments);this._any=!0}_parse(T){return q$(T.data)}}hS.create=(T)=>{return new hS({typeName:q.ZodAny,...WT(T)})};class RS extends XT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return q$(T.data)}}RS.create=(T)=>{return new RS({typeName:q.ZodUnknown,...WT(T)})};class qJ extends XT{_parse(T){let $=this._getOrReturnCtx(T);return v($,{code:j.invalid_type,expected:i.never,received:$.parsedType}),JT}}qJ.create=(T)=>{return new qJ({typeName:q.ZodNever,...WT(T)})};class n0 extends XT{_parse(T){if(this._getType(T)!==i.undefined){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.void,received:J.parsedType}),JT}return q$(T.data)}}n0.create=(T)=>{return new n0({typeName:q.ZodVoid,...WT(T)})};class yJ extends XT{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),S=this._def;if($.parsedType!==i.array)return v($,{code:j.invalid_type,expected:i.array,received:$.parsedType}),JT;if(S.exactLength!==null){let M=$.data.length>S.exactLength.value,A=$.data.length<S.exactLength.value;if(M||A)v($,{code:M?j.too_big:j.too_small,minimum:A?S.exactLength.value:void 0,maximum:M?S.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:S.exactLength.message}),J.dirty()}if(S.minLength!==null){if($.data.length<S.minLength.value)v($,{code:j.too_small,minimum:S.minLength.value,type:"array",inclusive:!0,exact:!1,message:S.minLength.message}),J.dirty()}if(S.maxLength!==null){if($.data.length>S.maxLength.value)v($,{code:j.too_big,maximum:S.maxLength.value,type:"array",inclusive:!0,exact:!1,message:S.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((M,A)=>{return S.type._parseAsync(new HJ($,M,$.path,A))})).then((M)=>{return U$.mergeArray(J,M)});let F=[...$.data].map((M,A)=>{return S.type._parseSync(new HJ($,M,$.path,A))});return U$.mergeArray(J,F)}get element(){return this._def.type}min(T,$){return new yJ({...this._def,minLength:{value:T,message:l.toString($)}})}max(T,$){return new yJ({...this._def,maxLength:{value:T,message:l.toString($)}})}length(T,$){return new yJ({...this._def,exactLength:{value:T,message:l.toString($)}})}nonempty(T){return this.min(1,T)}}yJ.create=(T,$)=>{return new yJ({type:T,minLength:null,maxLength:null,exactLength:null,typeName:q.ZodArray,...WT($)})};function UF(T){if(T instanceof nT){let $={};for(let J in T.shape){let S=T.shape[J];$[J]=i$.create(UF(S))}return new nT({...T._def,shape:()=>$})}else if(T instanceof yJ)return new yJ({...T._def,type:UF(T.element)});else if(T instanceof i$)return i$.create(UF(T.unwrap()));else if(T instanceof uJ)return uJ.create(UF(T.unwrap()));else if(T instanceof xJ)return xJ.create(T.items.map(($)=>UF($)));else return T}class nT extends XT{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(),$=kT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==i.object){let X=this._getOrReturnCtx(T);return v(X,{code:j.invalid_type,expected:i.object,received:X.parsedType}),JT}let{status:J,ctx:S}=this._processInputParams(T),{shape:F,keys:M}=this._getCached(),A=[];if(!(this._def.catchall instanceof qJ&&this._def.unknownKeys==="strip")){for(let X in S.data)if(!M.includes(X))A.push(X)}let W=[];for(let X of M){let K=F[X],f=S.data[X];W.push({key:{status:"valid",value:X},value:K._parse(new HJ(S,f,S.path,X)),alwaysSet:X in S.data})}if(this._def.catchall instanceof qJ){let X=this._def.unknownKeys;if(X==="passthrough")for(let K of A)W.push({key:{status:"valid",value:K},value:{status:"valid",value:S.data[K]}});else if(X==="strict"){if(A.length>0)v(S,{code:j.unrecognized_keys,keys:A}),J.dirty()}else if(X==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let K of A){let f=S.data[K];W.push({key:{status:"valid",value:K},value:X._parse(new HJ(S,f,S.path,K)),alwaysSet:K in S.data})}}if(S.common.async)return Promise.resolve().then(async()=>{let X=[];for(let K of W){let f=await K.key,G=await K.value;X.push({key:f,value:G,alwaysSet:K.alwaysSet})}return X}).then((X)=>{return U$.mergeObjectSync(J,X)});else return U$.mergeObjectSync(J,W)}get shape(){return this._def.shape()}strict(T){return l.errToObj,new nT({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var S,F,M,A;let W=(M=(F=(S=this._def).errorMap)===null||F===void 0?void 0:F.call(S,$,J).message)!==null&&M!==void 0?M:J.defaultError;if($.code==="unrecognized_keys")return{message:(A=l.errToObj(T).message)!==null&&A!==void 0?A:W};return{message:W}}}:{}})}strip(){return new nT({...this._def,unknownKeys:"strip"})}passthrough(){return new nT({...this._def,unknownKeys:"passthrough"})}extend(T){return new nT({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new nT({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:q.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new nT({...this._def,catchall:T})}pick(T){let $={};return kT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new nT({...this._def,shape:()=>$})}omit(T){let $={};return kT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new nT({...this._def,shape:()=>$})}deepPartial(){return UF(this)}partial(T){let $={};return kT.objectKeys(this.shape).forEach((J)=>{let S=this.shape[J];if(T&&!T[J])$[J]=S;else $[J]=S.optional()}),new nT({...this._def,shape:()=>$})}required(T){let $={};return kT.objectKeys(this.shape).forEach((J)=>{if(T&&!T[J])$[J]=this.shape[J];else{let F=this.shape[J];while(F instanceof i$)F=F._def.innerType;$[J]=F}}),new nT({...this._def,shape:()=>$})}keyof(){return Z4(kT.objectKeys(this.shape))}}nT.create=(T,$)=>{return new nT({shape:()=>T,unknownKeys:"strip",catchall:qJ.create(),typeName:q.ZodObject,...WT($)})};nT.strictCreate=(T,$)=>{return new nT({shape:()=>T,unknownKeys:"strict",catchall:qJ.create(),typeName:q.ZodObject,...WT($)})};nT.lazycreate=(T,$)=>{return new nT({shape:T,unknownKeys:"strip",catchall:qJ.create(),typeName:q.ZodObject,...WT($)})};class jF extends XT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function S(F){for(let A of F)if(A.result.status==="valid")return A.result;for(let A of F)if(A.result.status==="dirty")return $.common.issues.push(...A.ctx.common.issues),A.result;let M=F.map((A)=>new p$(A.ctx.common.issues));return v($,{code:j.invalid_union,unionErrors:M}),JT}if($.common.async)return Promise.all(J.map(async(F)=>{let M={...$,common:{...$.common,issues:[]},parent:null};return{result:await F._parseAsync({data:$.data,path:$.path,parent:M}),ctx:M}})).then(S);else{let F=void 0,M=[];for(let W of J){let X={...$,common:{...$.common,issues:[]},parent:null},K=W._parseSync({data:$.data,path:$.path,parent:X});if(K.status==="valid")return K;else if(K.status==="dirty"&&!F)F={result:K,ctx:X};if(X.common.issues.length)M.push(X.common.issues)}if(F)return $.common.issues.push(...F.ctx.common.issues),F.result;let A=M.map((W)=>new p$(W));return v($,{code:j.invalid_union,unionErrors:A}),JT}}get options(){return this._def.options}}jF.create=(T,$)=>{return new jF({options:T,typeName:q.ZodUnion,...WT($)})};var oJ=(T)=>{if(T instanceof xF)return oJ(T.schema);else if(T instanceof $J)return oJ(T.innerType());else if(T instanceof IF)return[T.value];else if(T instanceof yS)return T.options;else if(T instanceof ZF)return kT.objectValues(T.enum);else if(T instanceof bF)return oJ(T._def.innerType);else if(T instanceof NF)return[void 0];else if(T instanceof CF)return[null];else if(T instanceof i$)return[void 0,...oJ(T.unwrap())];else if(T instanceof uJ)return[null,...oJ(T.unwrap())];else if(T instanceof D1)return oJ(T.unwrap());else if(T instanceof PF)return oJ(T.unwrap());else if(T instanceof hF)return oJ(T._def.innerType);else return[]};class U1 extends XT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==i.object)return v($,{code:j.invalid_type,expected:i.object,received:$.parsedType}),JT;let J=this.discriminator,S=$.data[J],F=this.optionsMap.get(S);if(!F)return v($,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),JT;if($.common.async)return F._parseAsync({data:$.data,path:$.path,parent:$});else return F._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,J){let S=new Map;for(let F of $){let M=oJ(F.shape[T]);if(!M.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let A of M){if(S.has(A))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(A)}`);S.set(A,F)}}return new U1({typeName:q.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:S,...WT(J)})}}function sW(T,$){let J=lJ(T),S=lJ($);if(T===$)return{valid:!0,data:T};else if(J===i.object&&S===i.object){let F=kT.objectKeys($),M=kT.objectKeys(T).filter((W)=>F.indexOf(W)!==-1),A={...T,...$};for(let W of M){let X=sW(T[W],$[W]);if(!X.valid)return{valid:!1};A[W]=X.data}return{valid:!0,data:A}}else if(J===i.array&&S===i.array){if(T.length!==$.length)return{valid:!1};let F=[];for(let M=0;M<T.length;M++){let A=T[M],W=$[M],X=sW(A,W);if(!X.valid)return{valid:!1};F.push(X.data)}return{valid:!0,data:F}}else if(J===i.date&&S===i.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class qF extends XT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),S=(F,M)=>{if(tW(F)||tW(M))return JT;let A=sW(F.value,M.value);if(!A.valid)return v(J,{code:j.invalid_intersection_types}),JT;if(aW(F)||aW(M))$.dirty();return{status:$.value,value:A.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([F,M])=>S(F,M));else return S(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}qF.create=(T,$,J)=>{return new qF({left:T,right:$,typeName:q.ZodIntersection,...WT(J)})};class xJ extends XT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==i.array)return v(J,{code:j.invalid_type,expected:i.array,received:J.parsedType}),JT;if(J.data.length<this._def.items.length)return v(J,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),JT;if(!this._def.rest&&J.data.length>this._def.items.length)v(J,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let F=[...J.data].map((M,A)=>{let W=this._def.items[A]||this._def.rest;if(!W)return null;return W._parse(new HJ(J,M,J.path,A))}).filter((M)=>!!M);if(J.common.async)return Promise.all(F).then((M)=>{return U$.mergeArray($,M)});else return U$.mergeArray($,F)}get items(){return this._def.items}rest(T){return new xJ({...this._def,rest:T})}}xJ.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xJ({items:T,typeName:q.ZodTuple,rest:null,...WT($)})};class p0 extends XT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==i.object)return v(J,{code:j.invalid_type,expected:i.object,received:J.parsedType}),JT;let S=[],F=this._def.keyType,M=this._def.valueType;for(let A in J.data)S.push({key:F._parse(new HJ(J,A,J.path,A)),value:M._parse(new HJ(J,J.data[A],J.path,A)),alwaysSet:A in J.data});if(J.common.async)return U$.mergeObjectAsync($,S);else return U$.mergeObjectSync($,S)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof XT)return new p0({keyType:T,valueType:$,typeName:q.ZodRecord,...WT(J)});return new p0({keyType:_J.create(),valueType:T,typeName:q.ZodRecord,...WT($)})}}class i0 extends XT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==i.map)return v(J,{code:j.invalid_type,expected:i.map,received:J.parsedType}),JT;let S=this._def.keyType,F=this._def.valueType,M=[...J.data.entries()].map(([A,W],X)=>{return{key:S._parse(new HJ(J,A,J.path,[X,"key"])),value:F._parse(new HJ(J,W,J.path,[X,"value"]))}});if(J.common.async){let A=new Map;return Promise.resolve().then(async()=>{for(let W of M){let X=await W.key,K=await W.value;if(X.status==="aborted"||K.status==="aborted")return JT;if(X.status==="dirty"||K.status==="dirty")$.dirty();A.set(X.value,K.value)}return{status:$.value,value:A}})}else{let A=new Map;for(let W of M){let{key:X,value:K}=W;if(X.status==="aborted"||K.status==="aborted")return JT;if(X.status==="dirty"||K.status==="dirty")$.dirty();A.set(X.value,K.value)}return{status:$.value,value:A}}}}i0.create=(T,$,J)=>{return new i0({valueType:$,keyType:T,typeName:q.ZodMap,...WT(J)})};class PS extends XT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==i.set)return v(J,{code:j.invalid_type,expected:i.set,received:J.parsedType}),JT;let S=this._def;if(S.minSize!==null){if(J.data.size<S.minSize.value)v(J,{code:j.too_small,minimum:S.minSize.value,type:"set",inclusive:!0,exact:!1,message:S.minSize.message}),$.dirty()}if(S.maxSize!==null){if(J.data.size>S.maxSize.value)v(J,{code:j.too_big,maximum:S.maxSize.value,type:"set",inclusive:!0,exact:!1,message:S.maxSize.message}),$.dirty()}let F=this._def.valueType;function M(W){let X=new Set;for(let K of W){if(K.status==="aborted")return JT;if(K.status==="dirty")$.dirty();X.add(K.value)}return{status:$.value,value:X}}let A=[...J.data.values()].map((W,X)=>F._parse(new HJ(J,W,J.path,X)));if(J.common.async)return Promise.all(A).then((W)=>M(W));else return M(A)}min(T,$){return new PS({...this._def,minSize:{value:T,message:l.toString($)}})}max(T,$){return new PS({...this._def,maxSize:{value:T,message:l.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}PS.create=(T,$)=>{return new PS({valueType:T,minSize:null,maxSize:null,typeName:q.ZodSet,...WT($)})};class VF extends XT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==i.function)return v($,{code:j.invalid_type,expected:i.function,received:$.parsedType}),JT;function J(A,W){return z1({data:A,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,E1(),BF].filter((X)=>!!X),issueData:{code:j.invalid_arguments,argumentsError:W}})}function S(A,W){return z1({data:A,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,E1(),BF].filter((X)=>!!X),issueData:{code:j.invalid_return_type,returnTypeError:W}})}let F={errorMap:$.common.contextualErrorMap},M=$.data;if(this._def.returns instanceof vS){let A=this;return q$(async function(...W){let X=new p$([]),K=await A._def.args.parseAsync(W,F).catch((w)=>{throw X.addIssue(J(W,w)),X}),f=await Reflect.apply(M,this,K);return await A._def.returns._def.type.parseAsync(f,F).catch((w)=>{throw X.addIssue(S(f,w)),X})})}else{let A=this;return q$(function(...W){let X=A._def.args.safeParse(W,F);if(!X.success)throw new p$([J(W,X.error)]);let K=Reflect.apply(M,this,X.data),f=A._def.returns.safeParse(K,F);if(!f.success)throw new p$([S(K,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new VF({...this._def,args:xJ.create(T).rest(RS.create())})}returns(T){return new VF({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new VF({args:T?T:xJ.create([]).rest(RS.create()),returns:$||RS.create(),typeName:q.ZodFunction,...WT(J)})}}class xF extends XT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}xF.create=(T,$)=>{return new xF({getter:T,typeName:q.ZodLazy,...WT($)})};class IF extends XT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return v($,{received:$.data,code:j.invalid_literal,expected:this._def.value}),JT}return{status:"valid",value:T.data}}get value(){return this._def.value}}IF.create=(T,$)=>{return new IF({value:T,typeName:q.ZodLiteral,...WT($)})};function Z4(T,$){return new yS({values:T,typeName:q.ZodEnum,...WT($)})}class yS extends XT{constructor(){super(...arguments);v0.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{expected:kT.joinValues(J),received:$.parsedType,code:j.invalid_type}),JT}if(!O1(this,v0,"f"))j4(this,v0,new Set(this._def.values),"f");if(!O1(this,v0,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return v($,{received:$.data,code:j.invalid_enum_value,options:J}),JT}return q$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return yS.create(T,{...this._def,...$})}exclude(T,$=this._def){return yS.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}v0=new WeakMap;yS.create=Z4;class ZF extends XT{constructor(){super(...arguments);m0.set(this,void 0)}_parse(T){let $=kT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==i.string&&J.parsedType!==i.number){let S=kT.objectValues($);return v(J,{expected:kT.joinValues(S),received:J.parsedType,code:j.invalid_type}),JT}if(!O1(this,m0,"f"))j4(this,m0,new Set(kT.getValidEnumValues(this._def.values)),"f");if(!O1(this,m0,"f").has(T.data)){let S=kT.objectValues($);return v(J,{received:J.data,code:j.invalid_enum_value,options:S}),JT}return q$(T.data)}get enum(){return this._def.values}}m0=new WeakMap;ZF.create=(T,$)=>{return new ZF({values:T,typeName:q.ZodNativeEnum,...WT($)})};class vS extends XT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==i.promise&&$.common.async===!1)return v($,{code:j.invalid_type,expected:i.promise,received:$.parsedType}),JT;let J=$.parsedType===i.promise?$.data:Promise.resolve($.data);return q$(J.then((S)=>{return this._def.type.parseAsync(S,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}vS.create=(T,$)=>{return new vS({type:T,typeName:q.ZodPromise,...WT($)})};class $J extends XT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===q.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:J}=this._processInputParams(T),S=this._def.effect||null,F={addIssue:(M)=>{if(v(J,M),M.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(F.addIssue=F.addIssue.bind(F),S.type==="preprocess"){let M=S.transform(J.data,F);if(J.common.async)return Promise.resolve(M).then(async(A)=>{if($.value==="aborted")return JT;let W=await this._def.schema._parseAsync({data:A,path:J.path,parent:J});if(W.status==="aborted")return JT;if(W.status==="dirty")return DF(W.value);if($.value==="dirty")return DF(W.value);return W});else{if($.value==="aborted")return JT;let A=this._def.schema._parseSync({data:M,path:J.path,parent:J});if(A.status==="aborted")return JT;if(A.status==="dirty")return DF(A.value);if($.value==="dirty")return DF(A.value);return A}}if(S.type==="refinement"){let M=(A)=>{let W=S.refinement(A,F);if(J.common.async)return Promise.resolve(W);if(W instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return A};if(J.common.async===!1){let A=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(A.status==="aborted")return JT;if(A.status==="dirty")$.dirty();return M(A.value),{status:$.value,value:A.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((A)=>{if(A.status==="aborted")return JT;if(A.status==="dirty")$.dirty();return M(A.value).then(()=>{return{status:$.value,value:A.value}})})}if(S.type==="transform")if(J.common.async===!1){let M=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!ZS(M))return M;let A=S.transform(M.value,F);if(A instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:A}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((M)=>{if(!ZS(M))return M;return Promise.resolve(S.transform(M.value,F)).then((A)=>({status:$.value,value:A}))});kT.assertNever(S)}}$J.create=(T,$,J)=>{return new $J({schema:T,typeName:q.ZodEffects,effect:$,...WT(J)})};$J.createWithPreprocess=(T,$,J)=>{return new $J({schema:$,effect:{type:"preprocess",transform:T},typeName:q.ZodEffects,...WT(J)})};class i$ extends XT{_parse(T){if(this._getType(T)===i.undefined)return q$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}i$.create=(T,$)=>{return new i$({innerType:T,typeName:q.ZodOptional,...WT($)})};class uJ extends XT{_parse(T){if(this._getType(T)===i.null)return q$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}uJ.create=(T,$)=>{return new uJ({innerType:T,typeName:q.ZodNullable,...WT($)})};class bF extends XT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===i.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}bF.create=(T,$)=>{return new bF({innerType:T,typeName:q.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...WT($)})};class hF extends XT{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},S=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(c0(S))return S.then((F)=>{return{status:"valid",value:F.status==="valid"?F.value:this._def.catchValue({get error(){return new p$(J.common.issues)},input:J.data})}});else return{status:"valid",value:S.status==="valid"?S.value:this._def.catchValue({get error(){return new p$(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}hF.create=(T,$)=>{return new hF({innerType:T,typeName:q.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...WT($)})};class o0 extends XT{_parse(T){if(this._getType(T)!==i.nan){let J=this._getOrReturnCtx(T);return v(J,{code:j.invalid_type,expected:i.nan,received:J.parsedType}),JT}return{status:"valid",value:T.data}}}o0.create=(T)=>{return new o0({typeName:q.ZodNaN,...WT(T)})};var VR=Symbol("zod_brand");class D1 extends XT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;return this._def.type._parse({data:J,path:$.path,parent:$})}unwrap(){return this._def.type}}class l0 extends XT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let F=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(F.status==="aborted")return JT;if(F.status==="dirty")return $.dirty(),DF(F.value);else return this._def.out._parseAsync({data:F.value,path:J.path,parent:J})})();else{let S=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(S.status==="aborted")return JT;if(S.status==="dirty")return $.dirty(),{status:"dirty",value:S.value};else return this._def.out._parseSync({data:S.value,path:J.path,parent:J})}}static create(T,$){return new l0({in:T,out:$,typeName:q.ZodPipeline})}}class PF extends XT{_parse(T){let $=this._def.innerType._parse(T),J=(S)=>{if(ZS(S))S.value=Object.freeze(S.value);return S};return c0($)?$.then((S)=>J(S)):J($)}unwrap(){return this._def.innerType}}PF.create=(T,$)=>{return new PF({innerType:T,typeName:q.ZodReadonly,...WT($)})};function b4(T,$={},J){if(T)return hS.create().superRefine((S,F)=>{var M,A;if(!T(S)){let W=typeof $==="function"?$(S):typeof $==="string"?{message:$}:$,X=(A=(M=W.fatal)!==null&&M!==void 0?M:J)!==null&&A!==void 0?A:!0,K=typeof W==="string"?{message:W}:W;F.addIssue({code:"custom",...K,fatal:X})}});return hS.create()}var BR={object:nT.lazycreate},q;(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"})(q||(q={}));var LR=(T,$={message:`Input not instance of ${T.name}`})=>b4((J)=>J instanceof T,$),h4=_J.create,P4=YS.create,NR=o0.create,CR=_S.create,v4=LF.create,jR=bS.create,qR=g0.create,xR=NF.create,IR=CF.create,ZR=hS.create,bR=RS.create,hR=qJ.create,PR=n0.create,vR=yJ.create,u0=nT.create,mR=nT.strictCreate,cR=jF.create,gR=U1.create,nR=qF.create,pR=xJ.create,iR=p0.create,oR=i0.create,lR=PS.create,uR=VF.create,dR=xF.create,rR=IF.create,tR=yS.create,aR=ZF.create,sR=vS.create,N4=$J.create,eR=i$.create,TY=uJ.create,$Y=$J.createWithPreprocess,JY=l0.create,SY=()=>h4().optional(),FY=()=>P4().optional(),MY=()=>v4().optional(),AY={string:(T)=>_J.create({...T,coerce:!0}),number:(T)=>YS.create({...T,coerce:!0}),boolean:(T)=>LF.create({...T,coerce:!0}),bigint:(T)=>_S.create({...T,coerce:!0}),date:(T)=>bS.create({...T,coerce:!0})},WY=JT,KT=Object.freeze({__proto__:null,defaultErrorMap:BF,setErrorMap:JR,getErrorMap:E1,makeIssue:z1,EMPTY_PATH:SR,addIssueToContext:v,ParseStatus:U$,INVALID:JT,DIRTY:DF,OK:q$,isAborted:tW,isDirty:aW,isValid:ZS,isAsync:c0,get util(){return kT},get objectUtil(){return rW},ZodParsedType:i,getParsedType:lJ,ZodType:XT,datetimeRegex:I4,ZodString:_J,ZodNumber:YS,ZodBigInt:_S,ZodBoolean:LF,ZodDate:bS,ZodSymbol:g0,ZodUndefined:NF,ZodNull:CF,ZodAny:hS,ZodUnknown:RS,ZodNever:qJ,ZodVoid:n0,ZodArray:yJ,ZodObject:nT,ZodUnion:jF,ZodDiscriminatedUnion:U1,ZodIntersection:qF,ZodTuple:xJ,ZodRecord:p0,ZodMap:i0,ZodSet:PS,ZodFunction:VF,ZodLazy:xF,ZodLiteral:IF,ZodEnum:yS,ZodNativeEnum:ZF,ZodPromise:vS,ZodEffects:$J,ZodTransformer:$J,ZodOptional:i$,ZodNullable:uJ,ZodDefault:bF,ZodCatch:hF,ZodNaN:o0,BRAND:VR,ZodBranded:D1,ZodPipeline:l0,ZodReadonly:PF,custom:b4,Schema:XT,ZodSchema:XT,late:BR,get ZodFirstPartyTypeKind(){return q},coerce:AY,any:ZR,array:vR,bigint:CR,boolean:v4,date:jR,discriminatedUnion:gR,effect:N4,enum:tR,function:uR,instanceof:LR,intersection:nR,lazy:dR,literal:rR,map:oR,nan:NR,nativeEnum:aR,never:hR,null:IR,nullable:TY,number:P4,object:u0,oboolean:MY,onumber:FY,optional:eR,ostring:SY,pipeline:JY,preprocess:$Y,promise:sR,record:iR,set:lR,strictObject:mR,string:h4,symbol:qR,transformer:N4,tuple:pR,undefined:xR,union:cR,unknown:bR,void:PR,NEVER:WY,ZodIssueCode:j,quotelessJson:$R,ZodError:p$});function m4(){return{}}function c4(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==q.ZodAny)J.items=TT(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)_T(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)_T(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)_T(J,"minItems",T.exactLength.value,T.exactLength.message,$),_T(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function g4(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"min":if($.target==="jsonSchema7")if(S.inclusive)_T(J,"minimum",S.value,S.message,$);else _T(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;_T(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)_T(J,"maximum",S.value,S.message,$);else _T(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;_T(J,"maximum",S.value,S.message,$)}break;case"multipleOf":_T(J,"multipleOf",S.value,S.message,$);break}return J}function n4(){return{type:"boolean"}}function V1(T,$){return TT(T.type._def,$)}var p4=(T,$)=>{return TT(T.innerType._def,$)};function eW(T,$,J){let S=J??$.dateStrategy;if(Array.isArray(S))return{anyOf:S.map((F,M)=>eW(T,$,F))};switch(S){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return XY(T,$)}}var XY=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let S of T.checks)switch(S.kind){case"min":_T(J,"minimum",S.value,S.message,$);break;case"max":_T(J,"maximum",S.value,S.message,$);break}return J};function i4(T,$){return{...TT(T.innerType._def,$),default:T.defaultValue()}}function o4(T,$){return $.effectStrategy==="input"?TT(T.schema._def,$):{}}function l4(T){return{type:"string",enum:Array.from(T.values)}}var KY=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function u4(T,$){let J=[TT(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),TT(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((M)=>!!M),S=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,F=[];return J.forEach((M)=>{if(KY(M)){if(F.push(...M.allOf),M.unevaluatedProperties===void 0)S=void 0}else{let A=M;if("additionalProperties"in M&&M.additionalProperties===!1){let{additionalProperties:W,...X}=M;A=X}else S=void 0;F.push(A)}}),F.length?{allOf:F,...S}:void 0}function d4(T,$){let J=typeof T.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:J==="bigint"?"integer":J,enum:[T.value]};return{type:J==="bigint"?"integer":J,const:T.value}}var TX=void 0,kJ={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(TX===void 0)TX=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return TX},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function B1(T,$){let J={type:"string"};if(T.checks)for(let S of T.checks)switch(S.kind){case"min":_T(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$);break;case"max":_T(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"email":switch($.emailStrategy){case"format:email":QJ(J,"email",S.message,$);break;case"format:idn-email":QJ(J,"idn-email",S.message,$);break;case"pattern:zod":x$(J,kJ.email,S.message,$);break}break;case"url":QJ(J,"uri",S.message,$);break;case"uuid":QJ(J,"uuid",S.message,$);break;case"regex":x$(J,S.regex,S.message,$);break;case"cuid":x$(J,kJ.cuid,S.message,$);break;case"cuid2":x$(J,kJ.cuid2,S.message,$);break;case"startsWith":x$(J,RegExp(`^${$X(S.value,$)}`),S.message,$);break;case"endsWith":x$(J,RegExp(`${$X(S.value,$)}$`),S.message,$);break;case"datetime":QJ(J,"date-time",S.message,$);break;case"date":QJ(J,"date",S.message,$);break;case"time":QJ(J,"time",S.message,$);break;case"duration":QJ(J,"duration",S.message,$);break;case"length":_T(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,S.value):S.value,S.message,$),_T(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,S.value):S.value,S.message,$);break;case"includes":{x$(J,RegExp($X(S.value,$)),S.message,$);break}case"ip":{if(S.version!=="v6")QJ(J,"ipv4",S.message,$);if(S.version!=="v4")QJ(J,"ipv6",S.message,$);break}case"base64url":x$(J,kJ.base64url,S.message,$);break;case"jwt":x$(J,kJ.jwt,S.message,$);break;case"cidr":{if(S.version!=="v6")x$(J,kJ.ipv4Cidr,S.message,$);if(S.version!=="v4")x$(J,kJ.ipv6Cidr,S.message,$);break}case"emoji":x$(J,kJ.emoji(),S.message,$);break;case"ulid":{x$(J,kJ.ulid,S.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{QJ(J,"binary",S.message,$);break}case"contentEncoding:base64":{_T(J,"contentEncoding","base64",S.message,$);break}case"pattern:zod":{x$(J,kJ.base64,S.message,$);break}}break}case"nanoid":x$(J,kJ.nanoid,S.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((F)=>{})(S)}return J}function $X(T,$){return $.patternStrategy==="escape"?GY(T):T}var fY=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function GY(T){let $="";for(let J=0;J<T.length;J++){if(!fY.has(T[J]))$+="\\";$+=T[J]}return $}function QJ(T,$,J,S){if(T.format||T.anyOf?.some((F)=>F.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&S.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...J&&S.errorMessages&&{errorMessage:{format:J}}})}else _T(T,"format",$,J,S)}function x$(T,$,J,S){if(T.pattern||T.allOf?.some((F)=>F.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&S.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:r4($,S),...J&&S.errorMessages&&{errorMessage:{pattern:J}}})}else _T(T,"pattern",r4($,S),J,S)}function r4(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},S=J.i?T.source.toLowerCase():T.source,F="",M=!1,A=!1,W=!1;for(let X=0;X<S.length;X++){if(M){F+=S[X],M=!1;continue}if(J.i){if(A){if(S[X].match(/[a-z]/)){if(W)F+=S[X],F+=`${S[X-2]}-${S[X]}`.toUpperCase(),W=!1;else if(S[X+1]==="-"&&S[X+2]?.match(/[a-z]/))F+=S[X],W=!0;else F+=`${S[X]}${S[X].toUpperCase()}`;continue}}else if(S[X].match(/[a-z]/)){F+=`[${S[X]}${S[X].toUpperCase()}]`;continue}}if(J.m){if(S[X]==="^"){F+=`(^|(?<=[\r
12
+ ]))`;continue}else if(S[X]==="$"){F+=`($|(?=[\r
13
+ ]))`;continue}}if(J.s&&S[X]==="."){F+=A?`${S[X]}\r
14
+ `:`[${S[X]}\r
15
+ ]`;continue}if(F+=S[X],S[X]==="\\")M=!0;else if(A&&S[X]==="]")A=!1;else if(!A&&S[X]==="[")A=!0}try{new RegExp(F)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),T.source}return F}function L1(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===q.ZodEnum)return{type:"object",required:T.keyType._def.values,properties:T.keyType._def.values.reduce((S,F)=>({...S,[F]:TT(T.valueType._def,{...$,currentPath:[...$.currentPath,"properties",F]})??{}}),{}),additionalProperties:!1};let J={type:"object",additionalProperties:TT(T.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??{}};if($.target==="openApi3")return J;if(T.keyType?._def.typeName===q.ZodString&&T.keyType._def.checks?.length){let{type:S,...F}=B1(T.keyType._def,$);return{...J,propertyNames:F}}else if(T.keyType?._def.typeName===q.ZodEnum)return{...J,propertyNames:{enum:T.keyType._def.values}};else if(T.keyType?._def.typeName===q.ZodBranded&&T.keyType._def.type._def.typeName===q.ZodString&&T.keyType._def.type._def.checks?.length){let{type:S,...F}=V1(T.keyType._def,$);return{...J,propertyNames:F}}return J}function t4(T,$){if($.mapStrategy==="record")return L1(T,$);let J=TT(T.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},S=TT(T.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[J,S],minItems:2,maxItems:2}}}function a4(T){let $=T.values,S=Object.keys(T.values).filter((M)=>{return typeof $[$[M]]!=="number"}).map((M)=>$[M]),F=Array.from(new Set(S.map((M)=>typeof M)));return{type:F.length===1?F[0]==="string"?"string":"number":["string","number"],enum:S}}function s4(){return{not:{}}}function e4(T){return T.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var d0={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function $6(T,$){if($.target==="openApi3")return T6(T,$);let J=T.options instanceof Map?Array.from(T.options.values()):T.options;if(J.every((S)=>(S._def.typeName in d0)&&(!S._def.checks||!S._def.checks.length))){let S=J.reduce((F,M)=>{let A=d0[M._def.typeName];return A&&!F.includes(A)?[...F,A]:F},[]);return{type:S.length>1?S:S[0]}}else if(J.every((S)=>S._def.typeName==="ZodLiteral"&&!S.description)){let S=J.reduce((F,M)=>{let A=typeof M._def.value;switch(A){case"string":case"number":case"boolean":return[...F,A];case"bigint":return[...F,"integer"];case"object":if(M._def.value===null)return[...F,"null"];case"symbol":case"undefined":case"function":default:return F}},[]);if(S.length===J.length){let F=S.filter((M,A,W)=>W.indexOf(M)===A);return{type:F.length>1?F:F[0],enum:J.reduce((M,A)=>{return M.includes(A._def.value)?M:[...M,A._def.value]},[])}}}else if(J.every((S)=>S._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((S,F)=>[...S,...F._def.values.filter((M)=>!S.includes(M))],[])};return T6(T,$)}var T6=(T,$)=>{let J=(T.options instanceof Map?Array.from(T.options.values()):T.options).map((S,F)=>TT(S._def,{...$,currentPath:[...$.currentPath,"anyOf",`${F}`]})).filter((S)=>!!S&&(!$.strictUnions||typeof S==="object"&&Object.keys(S).length>0));return J.length?{anyOf:J}:void 0};function J6(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:d0[T.innerType._def.typeName],nullable:!0};return{type:[d0[T.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let S=TT(T.innerType._def,{...$,currentPath:[...$.currentPath]});if(S&&"$ref"in S)return{allOf:[S],nullable:!0};return S&&{...S,nullable:!0}}let J=TT(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function S6(T,$){let J={type:"number"};if(!T.checks)return J;for(let S of T.checks)switch(S.kind){case"int":J.type="integer",uW(J,"type",S.message,$);break;case"min":if($.target==="jsonSchema7")if(S.inclusive)_T(J,"minimum",S.value,S.message,$);else _T(J,"exclusiveMinimum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMinimum=!0;_T(J,"minimum",S.value,S.message,$)}break;case"max":if($.target==="jsonSchema7")if(S.inclusive)_T(J,"maximum",S.value,S.message,$);else _T(J,"exclusiveMaximum",S.value,S.message,$);else{if(!S.inclusive)J.exclusiveMaximum=!0;_T(J,"maximum",S.value,S.message,$)}break;case"multipleOf":_T(J,"multipleOf",S.value,S.message,$);break}return J}function wY(T,$){if($.removeAdditionalStrategy==="strict")return T.catchall._def.typeName==="ZodNever"?T.unknownKeys!=="strict":TT(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0;else return T.catchall._def.typeName==="ZodNever"?T.unknownKeys==="passthrough":TT(T.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??!0}function F6(T,$){let J=$.target==="openAi",S={type:"object",...Object.entries(T.shape()).reduce((F,[M,A])=>{if(A===void 0||A._def===void 0)return F;let W=A.isOptional();if(W&&J){if(A instanceof i$)A=A._def.innerType;if(!A.isNullable())A=A.nullable();W=!1}let X=TT(A._def,{...$,currentPath:[...$.currentPath,"properties",M],propertyPath:[...$.currentPath,"properties",M]});if(X===void 0)return F;return{properties:{...F.properties,[M]:X},required:W?F.required:[...F.required,M]}},{properties:{},required:[]}),additionalProperties:wY(T,$)};if(!S.required.length)delete S.required;return S}var M6=(T,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return TT(T.innerType._def,$);let J=TT(T.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return J?{anyOf:[{not:{}},J]}:{}};var A6=(T,$)=>{if($.pipeStrategy==="input")return TT(T.in._def,$);else if($.pipeStrategy==="output")return TT(T.out._def,$);let J=TT(T.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),S=TT(T.out._def,{...$,currentPath:[...$.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,S].filter((F)=>F!==void 0)}};function W6(T,$){return TT(T.type._def,$)}function X6(T,$){let S={type:"array",uniqueItems:!0,items:TT(T.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(T.minSize)_T(S,"minItems",T.minSize.value,T.minSize.message,$);if(T.maxSize)_T(S,"maxItems",T.maxSize.value,T.maxSize.message,$);return S}function K6(T,$){if(T.rest)return{type:"array",minItems:T.items.length,items:T.items.map((J,S)=>TT(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[]),additionalItems:TT(T.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:T.items.length,maxItems:T.items.length,items:T.items.map((J,S)=>TT(J._def,{...$,currentPath:[...$.currentPath,"items",`${S}`]})).reduce((J,S)=>S===void 0?J:[...J,S],[])}}function f6(){return{not:{}}}function G6(){return{}}var w6=(T,$)=>{return TT(T.innerType._def,$)};function TT(T,$,J=!1){let S=$.seen.get(T);if($.override){let A=$.override?.(T,$,S,J);if(A!==D4)return A}if(S&&!J){let A=RY(S,$);if(A!==void 0)return A}let F={def:T,path:$.currentPath,jsonSchema:void 0};$.seen.set(T,F);let M=_Y(T,T.typeName,$);if(M)yY(T,$,M);return F.jsonSchema=M,M}var RY=(T,$)=>{switch($.$refStrategy){case"root":return{$ref:T.path.join("/")};case"relative":return{$ref:YY($.currentPath,T.path)};case"none":case"seen":{if(T.path.length<$.currentPath.length&&T.path.every((J,S)=>$.currentPath[S]===J))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},YY=(T,$)=>{let J=0;for(;J<T.length&&J<$.length;J++)if(T[J]!==$[J])break;return[(T.length-J).toString(),...$.slice(J)].join("/")},_Y=(T,$,J)=>{switch($){case q.ZodString:return B1(T,J);case q.ZodNumber:return S6(T,J);case q.ZodObject:return F6(T,J);case q.ZodBigInt:return g4(T,J);case q.ZodBoolean:return n4();case q.ZodDate:return eW(T,J);case q.ZodUndefined:return f6();case q.ZodNull:return e4(J);case q.ZodArray:return c4(T,J);case q.ZodUnion:case q.ZodDiscriminatedUnion:return $6(T,J);case q.ZodIntersection:return u4(T,J);case q.ZodTuple:return K6(T,J);case q.ZodRecord:return L1(T,J);case q.ZodLiteral:return d4(T,J);case q.ZodEnum:return l4(T);case q.ZodNativeEnum:return a4(T);case q.ZodNullable:return J6(T,J);case q.ZodOptional:return M6(T,J);case q.ZodMap:return t4(T,J);case q.ZodSet:return X6(T,J);case q.ZodLazy:return TT(T.getter()._def,J);case q.ZodPromise:return W6(T,J);case q.ZodNaN:case q.ZodNever:return s4();case q.ZodEffects:return o4(T,J);case q.ZodAny:return m4();case q.ZodUnknown:return G6();case q.ZodDefault:return i4(T,J);case q.ZodBranded:return V1(T,J);case q.ZodReadonly:return w6(T,J);case q.ZodCatch:return p4(T,J);case q.ZodPipeline:return A6(T,J);case q.ZodFunction:case q.ZodVoid:case q.ZodSymbol:return;default:return((S)=>{return})($)}},yY=(T,$,J)=>{if(T.description){if(J.description=T.description,$.markdownDescription)J.markdownDescription=T.description}return J};var R6=(T,$)=>{let J=B4($),S=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((X,[K,f])=>({...X,[K]:TT(f._def,{...J,currentPath:[...J.basePath,J.definitionPath,K]},!0)??{}}),{}):void 0,F=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,M=TT(T._def,F===void 0?J:{...J,currentPath:[...J.basePath,J.definitionPath,F]},!1)??{},A=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(A!==void 0)M.title=A;let W=F===void 0?S?{...M,[J.definitionPath]:S}:M:{$ref:[...J.$refStrategy==="relative"?[]:J.basePath,J.definitionPath,F].join("/"),[J.definitionPath]:{...S,[F]:M}};if(J.target==="jsonSchema7")W.$schema="http://json-schema.org/draft-07/schema#";else if(J.target==="jsonSchema2019-09"||J.target==="openAi")W.$schema="https://json-schema.org/draft/2019-09/schema#";if(J.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 Y6=R6;function _6(T,$){return function J({schema:S,fallback:F}){let M=Y6(S);return async function A(W,X=3){let K,f=[];while(f.length<X){K=await T(W,M,F,f);let G=S.safeParse(K);if(G.success)return G.data;$?.warn(`safegen failed to generate well-formed data.
14
16
  `,`Here's what was returned last time:
15
- `,JSON.stringify(X,null,"\t"),`
17
+ `,JSON.stringify(K,null,"\t"),`
16
18
  `,`Here's the error message from zod:
17
- `,y.error.toString()),w.push({response:X,error:y.error})}return S?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),M}}}function JX(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
18
- `)}var _F="RFC3986",DF={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},FX="RFC1738";var r4=Array.isArray,w$=(()=>{let T=[];for(let S=0;S<256;++S)T.push("%"+((S<16?"0":"")+S.toString(16)).toUpperCase());return T})();var U0=1024,WX=(T,S,$,f,M)=>{if(T.length===0)return T;let J=T;if(typeof T==="symbol")J=Symbol.prototype.toString.call(T);else if(typeof T!=="string")J=String(T);if($==="iso-8859-1")return escape(J).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let F="";for(let W=0;W<J.length;W+=U0){let A=J.length>=U0?J.slice(W,W+U0):J,X=[];for(let w=0;w<A.length;++w){let y=A.charCodeAt(w);if(y===45||y===46||y===95||y===126||y>=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122||M===FX&&(y===40||y===41)){X[X.length]=A.charAt(w);continue}if(y<128){X[X.length]=w$[y];continue}if(y<2048){X[X.length]=w$[192|y>>6]+w$[128|y&63];continue}if(y<55296||y>=57344){X[X.length]=w$[224|y>>12]+w$[128|y>>6&63]+w$[128|y&63];continue}w+=1,y=65536+((y&1023)<<10|A.charCodeAt(w)&1023),X[X.length]=w$[240|y>>18]+w$[128|y>>12&63]+w$[128|y>>6&63]+w$[128|y&63]}F+=X.join("")}return F};function AX(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function V0(T,S){if(r4(T)){let $=[];for(let f=0;f<T.length;f+=1)$.push(S(T[f]));return $}return S(T)}var a4=Object.prototype.hasOwnProperty,XX={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,S){return String(T)+"["+S+"]"},repeat(T){return String(T)}},y$=Array.isArray,e4=Array.prototype.push,wX=function(T,S){e4.apply(T,y$(S)?S:[S])},s4=Date.prototype.toISOString,lT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:WX,encodeValuesOnly:!1,format:_F,formatter:DF[_F],indices:!1,serializeDate(T){return s4.call(T)},skipNulls:!1,strictNullHandling:!1};function TK(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var B0={};function yX(T,S,$,f,M,J,F,W,A,X,w,y,k,z,G,U,E,B){let L=T,Z=B,j=0,D=!1;while((Z=Z.get(B0))!==void 0&&!D){let R=Z.get(T);if(j+=1,typeof R!=="undefined")if(R===j)throw new RangeError("Cyclic object value");else D=!0;if(typeof Z.get(B0)==="undefined")j=0}if(typeof X==="function")L=X(S,L);else if(L instanceof Date)L=k?.(L);else if($==="comma"&&y$(L))L=V0(L,function(R){if(R instanceof Date)return k?.(R);return R});if(L===null){if(J)return A&&!U?A(S,lT.encoder,E,"key",z):S;L=""}if(TK(L)||AX(L)){if(A){let R=U?S:A(S,lT.encoder,E,"key",z);return[G?.(R)+"="+G?.(A(L,lT.encoder,E,"value",z))]}return[G?.(S)+"="+G?.(String(L))]}let H=[];if(typeof L==="undefined")return H;let Q;if($==="comma"&&y$(L)){if(U&&A)L=V0(L,A);Q=[{value:L.length>0?L.join(",")||null:void 0}]}else if(y$(X))Q=X;else{let R=Object.keys(L);Q=w?R.sort(w):R}let b=W?String(S).replace(/\./g,"%2E"):String(S),n=f&&y$(L)&&L.length===1?b+"[]":b;if(M&&y$(L)&&L.length===0)return n+"[]";for(let R=0;R<Q.length;++R){let o=Q[R],P=typeof o==="object"&&typeof o.value!=="undefined"?o.value:L[o];if(F&&P===null)continue;let i=y&&W?o.replace(/\./g,"%2E"):o,YT=y$(L)?typeof $==="function"?$(n,i):n:n+(y?"."+i:"["+i+"]");B.set(T,j);let HT=new WeakMap;HT.set(B0,B),wX(H,yX(P,YT,$,f,M,J,F,W,$==="comma"&&U&&y$(L)?null:A,X,w,y,k,z,G,U,E,HT))}return H}function SK(T=lT){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||lT.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 $=_F;if(typeof T.format!=="undefined"){if(!a4.call(DF,T.format))throw new TypeError("Unknown format option provided.");$=T.format}let f=DF[$],M=lT.filter;if(typeof T.filter==="function"||y$(T.filter))M=T.filter;let J;if(T.arrayFormat&&T.arrayFormat in XX)J=T.arrayFormat;else if("indices"in T)J=T.indices?"indices":"repeat";else J=lT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let F=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:lT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:lT.addQueryPrefix,allowDots:F,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:lT.allowEmptyArrays,arrayFormat:J,charset:S,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:lT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?lT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:lT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:lT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:lT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:lT.encodeValuesOnly,filter:M,format:$,formatter:f,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:lT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:lT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:lT.strictNullHandling}}function L0(T,S={}){let $=T,f=SK(S),M,J;if(typeof f.filter==="function")J=f.filter,$=J("",$);else if(y$(f.filter))J=f.filter,M=J;let F=[];if(typeof $!=="object"||$===null)return"";let W=XX[f.arrayFormat],A=W==="comma"&&f.commaRoundTrip;if(!M)M=Object.keys($);if(f.sort)M.sort(f.sort);let X=new WeakMap;for(let k=0;k<M.length;++k){let z=M[k];if(f.skipNulls&&$[z]===null)continue;wX(F,yX($[z],z,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,X))}let w=F.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 w.length>0?y+w:""}var Ff="4.77.0";var kX=!1,Wf=void 0,N0=void 0,fK=void 0,MK=void 0,JK=void 0,C0=void 0,FK=void 0,EF=void 0,x0=void 0,j0=void 0,I0=void 0,QF=void 0,b0=void 0;function OX(T,S={auto:!1}){if(kX)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}'\``);kX=S.auto,Wf=T.kind,N0=T.fetch,fK=T.Request,MK=T.Response,JK=T.Headers,C0=T.FormData,FK=T.Blob,EF=T.File,x0=T.ReadableStream,j0=T.getMultipartRequestOptions,I0=T.getDefaultAgent,QF=T.fileFromPath,b0=T.isFsReadStream}class Z0{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function KX({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,J;try{$=fetch,f=Request,M=Response,J=Headers}catch(F){throw new Error(`this environment is missing the following Web Fetch API type: ${F.message}. ${S}`)}return{kind:"web",fetch:$,Request:f,Response:M,Headers:J,FormData:typeof FormData!=="undefined"?FormData:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${S}`)}},Blob:typeof Blob!=="undefined"?Blob:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${S}`)}},File:typeof File!=="undefined"?File:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${S}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class F{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${S}`)}},getMultipartRequestOptions:async(F,W)=>({...W,body:new Z0(F)}),getDefaultAgent:(F)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(F)=>!1}}import{ReadStream as AK}from"fs";function YX(){let T=KX();function S($){return $ instanceof AK}return{...T,isFsReadStream:S}}if(!Wf)OX(YX(),{auto:!0});class $T extends Error{}class oT extends $T{constructor(T,S,$,f){super(`${oT.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:IF(S)});let M=S?.error;if(T===400)return new UF(T,M,$,f);if(T===401)return new VF(T,M,$,f);if(T===403)return new BF(T,M,$,f);if(T===404)return new LF(T,M,$,f);if(T===409)return new NF(T,M,$,f);if(T===422)return new CF(T,M,$,f);if(T===429)return new xF(T,M,$,f);if(T>=500)return new jF(T,M,$,f);return new oT(T,M,$,f)}}class SS extends oT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class Af extends oT{constructor({message:T,cause:S}){super(void 0,void 0,T||"Connection error.",void 0);if(S)this.cause=S}}class Xf extends Af{constructor({message:T}={}){super({message:T??"Request timed out."})}}class UF extends oT{}class VF extends oT{}class BF extends oT{}class LF extends oT{}class NF extends oT{}class CF extends oT{}class xF extends oT{}class jF extends oT{}class eM extends $T{constructor(){super("Could not parse response content as the length limit was reached")}}class sM 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"]);p$.NEWLINE_REGEXP=/\r\n|[\n\r]/g;class xS{constructor(T,S){this.iterator=T,this.controller=S}static fromSSEResponse(T,S){let $=!1;async function*f(){if($)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");$=!0;let M=!1;try{for await(let J of wK(T,S)){if(M)continue;if(J.data.startsWith("[DONE]")){M=!0;continue}if(J.event===null){let F;try{F=JSON.parse(J.data)}catch(W){throw console.error("Could not parse message into JSON:",J.data),console.error("From chunk:",J.raw),W}if(F&&F.error)throw new oT(void 0,F.error,void 0,void 0);yield F}else{let F;try{F=JSON.parse(J.data)}catch(W){throw console.error("Could not parse message into JSON:",J.data),console.error("From chunk:",J.raw),W}if(J.event=="error")throw new oT(void 0,F.error,F.message,void 0);yield{event:J.event,data:F}}}M=!0}catch(J){if(J instanceof Error&&J.name==="AbortError")return;throw J}finally{if(!M)S.abort()}}return new xS(f,S)}static fromReadableStream(T,S){let $=!1;async function*f(){let J=new p$,F=GX(T);for await(let W of F)for(let A of J.decode(W))yield A;for(let W of J.flush())yield W}async function*M(){if($)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");$=!0;let J=!1;try{for await(let F of f()){if(J)continue;if(F)yield JSON.parse(F)}J=!0}catch(F){if(F instanceof Error&&F.name==="AbortError")return;throw F}finally{if(!J)S.abort()}}return new xS(M,S)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],S=[],$=this.iterator(),f=(M)=>{return{next:()=>{if(M.length===0){let J=$.next();T.push(J),S.push(J)}return M.shift()}}};return[new xS(()=>f(T),this.controller),new xS(()=>f(S),this.controller)]}toReadableStream(){let T=this,S,$=new TextEncoder;return new x0({async start(){S=T[Symbol.asyncIterator]()},async pull(f){try{let{value:M,done:J}=await S.next();if(J)return f.close();let F=$.encode(JSON.stringify(M)+`
20
- `);f.enqueue(F)}catch(M){f.error(M)}},async cancel(){await S.return?.()}})}}async function*wK(T,S){if(!T.body)throw S.abort(),new $T("Attempted to iterate over a response with no body");let $=new RX,f=new p$,M=GX(T.body);for await(let J of yK(M))for(let F of f.decode(J)){let W=$.decode(F);if(W)yield W}for(let J of f.flush()){let F=$.decode(J);if(F)yield F}}async function*yK(T){let S=new Uint8Array;for await(let $ of T){if($==null)continue;let f=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?new TextEncoder().encode($):$,M=new Uint8Array(S.length+f.length);M.set(S),M.set(f,S.length),S=M;let J;while((J=kK(S))!==-1)yield S.slice(0,J),S=S.slice(J)}if(S.length>0)yield S}function kK(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 RX{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]=OK(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 OK(T,S){let $=T.indexOf(S);if($!==-1)return[T.substring(0,$),S,T.substring($+S.length)];return[T,"",""]}function GX(T){if(T[Symbol.asyncIterator])return T;let S=T.getReader();return{async next(){try{let $=await S.read();if($?.done)S.releaseLock();return $}catch($){throw S.releaseLock(),$}},async return(){let $=S.cancel();return S.releaseLock(),await $,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}var zX=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",HX=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&TJ(T),TJ=(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",KK=(T)=>{return HX(T)||zX(T)||b0(T)};async function h0(T,S,$){if(T=await T,HX(T))return T;if(zX(T)){let M=await T.blob();S||(S=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let J=TJ(M)?[await M.arrayBuffer()]:[M];return new EF(J,S,$)}let f=await YK(T);if(S||(S=GK(T)??"unknown_file"),!$?.type){let M=f[0]?.type;if(typeof M==="string")$={...$,type:M}}return new EF(f,S,$)}async function YK(T){let S=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)S.push(T);else if(TJ(T))S.push(await T.arrayBuffer());else if(zK(T))for await(let $ of T)S.push($);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${RK(T)}`);return S}function RK(T){return`[${Object.getOwnPropertyNames(T).map(($)=>`"${$}"`).join(", ")}]`}function GK(T){return q0(T.name)||q0(T.filename)||q0(T.path)?.split(/[\\/]/).pop()}var q0=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},zK=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",n0=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var PS=async(T)=>{let S=await _X(T.body);return j0(S,T)},_X=async(T)=>{let S=new C0;return await Promise.all(Object.entries(T||{}).map(([$,f])=>m0(S,$,f))),S};var m0=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(KK($)){let f=await h0($);T.append(S,f)}else if(Array.isArray($))await Promise.all($.map((f)=>m0(T,S+"[]",f)));else if(typeof $==="object")await Promise.all(Object.entries($).map(([f,M])=>m0(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 _K=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,$),$},DK=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)},bF;async function BX(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 xS.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 J=await S.json();return TM("response",S.status,S.url,S.headers,J),LX(J,S)}let M=await S.text();return TM("response",S.status,S.url,S.headers,M),M}function LX(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 ZF extends Promise{constructor(T,S=BX){super(($)=>{$(null)});this.responsePromise=T,this.parseResponse=S}_thenUnwrap(T){return new ZF(this.responsePromise,async(S)=>LX(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 P0{constructor({baseURL:T,maxRetries:S=2,timeout:$=600000,httpAgent:f,fetch:M}){this.baseURL=T,this.maxRetries=v0("maxRetries",S),this.timeout=v0("timeout",$),this.httpAgent=f,this.fetch=M??N0}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...BK(),...this.authHeaders(T)}}validateHeaders(T,S){}defaultIdempotencyKey(){return`stainless-node-retry-${xK()}`}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&&TJ(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:J={}}=T,F=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(F),A=this.buildURL(f,M);if("timeout"in T)v0("timeout",T.timeout);let X=T.timeout??this.timeout,w=T.httpAgent??this.httpAgent??I0(A),y=X+1000;if(typeof w?.options?.timeout==="number"&&y>(w.options.timeout??0))w.options.timeout=y;if(this.idempotencyHeader&&$!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();J[this.idempotencyHeader]=T.idempotencyKey}let k=this.buildHeaders({options:T,headers:J,contentLength:W,retryCount:S});return{req:{method:$,...F&&{body:F},headers:k,...w&&{agent:w},signal:T.signal??null},url:A,timeout:X}}buildHeaders({options:T,headers:S,contentLength:$,retryCount:f}){let M={};if($)M["content-length"]=$;let J=this.defaultHeaders(T);if(UX(M,J),UX(M,S),n0(T.body)&&Wf!=="node")delete M["content-type"];if(VX(J,"x-stainless-retry-count")===void 0&&VX(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 oT.generate(T,S,$,f)}request(T,S=null){return new ZF(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:J,timeout:F}=this.buildRequest($,{retryCount:f-S});if(await this.prepareRequest(M,{url:J,options:$}),TM("request",J,$,M.headers),$.signal?.aborted)throw new SS;let W=new AbortController,A=await this.fetchWithTimeout(J,M,F,W).catch(IF);if(A instanceof Error){if($.signal?.aborted)throw new SS;if(S)return this.retryRequest($,S);if(A.name==="AbortError")throw new Xf;throw new Af({cause:A})}let X=EK(A.headers);if(!A.ok){if(S&&this.shouldRetry(A)){let U=`retrying, ${S} attempts remaining`;return TM(`response (error; ${U})`,A.status,J,X),this.retryRequest($,S,X)}let w=await A.text().catch((U)=>IF(U).message),y=LK(w),k=y?void 0:w;throw TM(`response (error; ${S?"(error; no more retries left)":"(error; not retryable)"})`,A.status,J,X,k),this.makeStatusError(A.status,y,k,X)}return{response:A,options:$,controller:W}}requestAPIList(T,S){let $=this.makeRequest(S,null);return new NX(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(!CX(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,...J}=S||{};if(M)M.addEventListener("abort",()=>f.abort());let F=setTimeout(()=>f.abort(),$);return this.fetch.call(void 0,T,{signal:f.signal,...J}).finally(()=>{clearTimeout(F)})}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 F=parseFloat(M);if(!Number.isNaN(F))f=F}let J=$?.["retry-after"];if(J&&!f){let F=parseFloat(J);if(!Number.isNaN(F))f=F*1000;else f=Date.parse(J)-Date.now()}if(!(f&&0<=f&&f<60000)){let F=T.maxRetries??this.maxRetries;f=this.calculateDefaultRetryTimeoutMillis(S,F)}return await Q$(f),this.makeRequest(T,S-1)}calculateDefaultRetryTimeoutMillis(T,S){let M=S-T,J=Math.min(0.5*Math.pow(2,M),8),F=1-Math.random()*0.25;return J*F*1000}getUserAgent(){return`${this.constructor.name}/JS ${Ff}`}}class qF{constructor(T,S,$,f){bF.set(this,void 0),_K(this,bF,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 DK(this,bF,"f").requestAPIList(this.constructor,S)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(bF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let S of T.getPaginatedItems())yield S}}class NX extends ZF{constructor(T,S,$){super(S,async(f)=>new $(T,f.response,await BX(f),f.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let S of T)yield S}}var EK=(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&&!CX(T)&&Object.keys(T).every((S)=>xX(QK,S))},UK=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ff,"X-Stainless-OS":EX(Deno.build.os),"X-Stainless-Arch":DX(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":Ff,"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":Ff,"X-Stainless-OS":EX(process.platform),"X-Stainless-Arch":DX(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=VK();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ff,"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":Ff,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function VK(){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,J=f[2]||0,F=f[3]||0;return{browser:S,version:`${M}.${J}.${F}`}}}return null}var DX=(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"},EX=(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"},QX,BK=()=>{return QX??(QX=UK())},LK=(T)=>{try{return JSON.parse(T)}catch(S){return}},NK=/^[a-z][a-z0-9+.-]*:/i,CK=(T)=>{return NK.test(T)},Q$=(T)=>new Promise((S)=>setTimeout(S,T)),v0=(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},IF=(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 SJ=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function CX(T){if(!T)return!0;for(let S in T)return!1;return!0}function xX(T,S){return Object.prototype.hasOwnProperty.call(T,S)}function UX(T,S){for(let $ in S){if(!xX(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}}function TM(T,...S){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true")console.log(`OpenAI:DEBUG:${T}`,...S)}var xK=()=>{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)})},jX=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},jK=(T)=>{return typeof T?.get==="function"};var VX=(T,S)=>{let $=S.toLowerCase();if(jK(T)){let f=S[0]?.toUpperCase()+S.substring(1).replace(/([^\w])(\w)/g,(M,J,F)=>J+F.toUpperCase());for(let M of[S,$,S.toUpperCase(),f]){let J=T.get(M);if(J)return J}}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 $J(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class c0 extends qF{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 nT extends qF{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 u{constructor(T){this._client=T}}class fJ extends u{create(T,S){return this._client.post("/chat/completions",{body:T,...S,stream:T.stream??!1})}}class yf extends u{constructor(){super(...arguments);this.completions=new fJ(this._client)}}yf.Completions=fJ;class MJ extends u{create(T,S){return this._client.post("/audio/speech",{body:T,...S,__binaryResponse:!0})}}class JJ extends u{create(T,S){return this._client.post("/audio/transcriptions",PS({body:T,...S}))}}class FJ extends u{create(T,S){return this._client.post("/audio/translations",PS({body:T,...S}))}}class U$ extends u{constructor(){super(...arguments);this.transcriptions=new JJ(this._client),this.translations=new FJ(this._client),this.speech=new MJ(this._client)}}U$.Transcriptions=JJ;U$.Translations=FJ;U$.Speech=MJ;class kf extends u{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 nT{}kf.BatchesPage=SM;class $M extends u{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",WJ,{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 WJ extends nT{}$M.AssistantsPage=WJ;function o0(T){return typeof T.parse==="function"}var i$=(T)=>{return T?.role==="assistant"},g0=(T)=>{return T?.role==="function"},t0=(T)=>{return T?.role==="tool"};var T$=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)},p0,mF,hF,AJ,XJ,nF,wJ,V$,yJ,vF,PF,fM,IX;class kJ{constructor(){p0.add(this),this.controller=new AbortController,mF.set(this,void 0),hF.set(this,()=>{}),AJ.set(this,()=>{}),XJ.set(this,void 0),nF.set(this,()=>{}),wJ.set(this,()=>{}),V$.set(this,{}),yJ.set(this,!1),vF.set(this,!1),PF.set(this,!1),fM.set(this,!1),T$(this,mF,new Promise((T,S)=>{T$(this,hF,T,"f"),T$(this,AJ,S,"f")}),"f"),T$(this,XJ,new Promise((T,S)=>{T$(this,nF,T,"f"),T$(this,wJ,S,"f")}),"f"),mT(this,mF,"f").catch(()=>{}),mT(this,XJ,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},mT(this,p0,"m",IX).bind(this))},0)}_connected(){if(this.ended)return;mT(this,hF,"f").call(this),this._emit("connect")}get ended(){return mT(this,yJ,"f")}get errored(){return mT(this,vF,"f")}get aborted(){return mT(this,PF,"f")}abort(){this.controller.abort()}on(T,S){return(mT(this,V$,"f")[T]||(mT(this,V$,"f")[T]=[])).push({listener:S}),this}off(T,S){let $=mT(this,V$,"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,V$,"f")[T]||(mT(this,V$,"f")[T]=[])).push({listener:S,once:!0}),this}emitted(T){return new Promise((S,$)=>{if(T$(this,fM,!0,"f"),T!=="error")this.once("error",$);this.once(T,S)})}async done(){T$(this,fM,!0,"f"),await mT(this,XJ,"f")}_emit(T,...S){if(mT(this,yJ,"f"))return;if(T==="end")T$(this,yJ,!0,"f"),mT(this,nF,"f").call(this);let $=mT(this,V$,"f")[T];if($)mT(this,V$,"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,AJ,"f").call(this,f),mT(this,wJ,"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,AJ,"f").call(this,f),mT(this,wJ,"f").call(this,f),this._emit("end")}}_emitFinal(){}}mF=new WeakMap,hF=new WeakMap,AJ=new WeakMap,XJ=new WeakMap,nF=new WeakMap,wJ=new WeakMap,V$=new WeakMap,yJ=new WeakMap,vF=new WeakMap,PF=new WeakMap,fM=new WeakMap,p0=new WeakSet,IX=function T(S){if(T$(this,vF,!0,"f"),S instanceof Error&&S.name==="AbortError")S=new SS;if(S instanceof SS)return T$(this,PF,!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 i0(T){return T?.$brand==="auto-parseable-response-format"}function Of(T){return T?.$brand==="auto-parseable-tool"}function bX(T,S){if(!S||!u0(S))return{...T,choices:T.choices.map(($)=>({...$,message:{...$.message,parsed:null,tool_calls:$.message.tool_calls??[]}}))};return OJ(T,S)}function OJ(T,S){let $=T.choices.map((f)=>{if(f.finish_reason==="length")throw new eM;if(f.finish_reason==="content_filter")throw new sM;return{...f,message:{...f.message,tool_calls:f.message.tool_calls?.map((M)=>nK(S,M))??[],parsed:f.message.content&&!f.message.refusal?hK(S,f.message.content):null}}});return{...T,choices:$}}function hK(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 nK(T,S){let $=T.tools?.find((f)=>f.function?.name===S.function.name);return{...S,function:{...S.function,parsed_arguments:Of($)?$.$parseRaw(S.function.arguments):$?.function.strict?JSON.parse(S.function.arguments):null}}}function ZX(T,S){if(!T)return!1;let $=T.tools?.find((f)=>f.function?.name===S.function.name);return Of($)||$?.function.strict||!1}function u0(T){if(i0(T.response_format))return!0;return T.tools?.some((S)=>Of(S)||S.type==="function"&&S.function.strict===!0)??!1}function qX(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 US=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,l0,cF,d0,r0,a0,hX,e0,mX=10;class KJ extends kJ{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),(g0(T)||t0(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(),US(this,OS,"m",l0).call(this)}async finalMessage(){return await this.done(),US(this,OS,"m",cF).call(this)}async finalFunctionCall(){return await this.done(),US(this,OS,"m",d0).call(this)}async finalFunctionCallResult(){return await this.done(),US(this,OS,"m",r0).call(this)}async totalUsage(){return await this.done(),US(this,OS,"m",a0).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let S=US(this,OS,"m",cF).call(this);if(S)this._emit("finalMessage",S);let $=US(this,OS,"m",l0).call(this);if($)this._emit("finalContent",$);let f=US(this,OS,"m",d0).call(this);if(f)this._emit("finalFunctionCall",f);let M=US(this,OS,"m",r0).call(this);if(M!=null)this._emit("finalFunctionCallResult",M);if(this._chatCompletions.some((J)=>J.usage))this._emit("totalUsage",US(this,OS,"m",a0).call(this))}async _createChatCompletion(T,S,$){let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}US(this,OS,"m",hX).call(this,S);let M=await T.chat.completions.create({...S,stream:!1},{...$,signal:this.controller.signal});return this._connected(),this._addChatCompletion(OJ(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:J,...F}=S,W=typeof M!=="string"&&M?.name,{maxChatCompletions:A=mX}=$||{},X={};for(let y of S.functions)X[y.name||y.function.name]=y;let w=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 z=(await this._createChatCompletion(T,{...F,function_call:M,functions:w,messages:[...this.messages]},$)).choices[0]?.message;if(!z)throw new $T("missing message in ChatCompletion response");if(!z.function_call)return;let{name:G,arguments:U}=z.function_call,E=X[G];if(!E){let j=`Invalid function_call: ${JSON.stringify(G)}. Available options are: ${w.map((D)=>JSON.stringify(D.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:G,content:j});continue}else if(W&&W!==G){let j=`Invalid function_call: ${JSON.stringify(G)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"function",name:G,content:j});continue}let B;try{B=o0(E)?await E.parse(U):U}catch(j){this._addMessage({role:"function",name:G,content:j instanceof Error?j.message:String(j)});continue}let L=await E.function(B,this),Z=US(this,OS,"m",e0).call(this,L);if(this._addMessage({role:"function",name:G,content:Z}),W)return}}async _runTools(T,S,$){let{tool_choice:M="auto",stream:J,...F}=S,W=typeof M!=="string"&&M?.function?.name,{maxChatCompletions:A=mX}=$||{},X=S.tools.map((k)=>{if(Of(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}),w={};for(let k of X)if(k.type==="function")w[k.function.name||k.function.function.name]=k.function;let y="tools"in S?X.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 G=(await this._createChatCompletion(T,{...F,tool_choice:M,tools:y,messages:[...this.messages]},$)).choices[0]?.message;if(!G)throw new $T("missing message in ChatCompletion response");if(!G.tool_calls?.length)return;for(let U of G.tool_calls){if(U.type!=="function")continue;let E=U.id,{name:B,arguments:L}=U.function,Z=w[B];if(!Z){let Q=`Invalid tool_call: ${JSON.stringify(B)}. Available options are: ${Object.keys(w).map((b)=>JSON.stringify(b)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:Q});continue}else if(W&&W!==B){let Q=`Invalid tool_call: ${JSON.stringify(B)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:Q});continue}let j;try{j=o0(Z)?await Z.parse(L):L}catch(Q){let b=Q instanceof Error?Q.message:String(Q);this._addMessage({role:"tool",tool_call_id:E,content:b});continue}let D=await Z.function(j,this),H=US(this,OS,"m",e0).call(this,D);if(this._addMessage({role:"tool",tool_call_id:E,content:H}),W)return}}return}}OS=new WeakSet,l0=function T(){return US(this,OS,"m",cF).call(this).content??null},cF=function T(){let S=this.messages.length;while(S-- >0){let $=this.messages[S];if(i$($)){let{function_call:f,...M}=$,J={...M,content:$.content??null,refusal:$.refusal??null};if(f)J.function_call=f;return J}}throw new $T("stream ended without producing a ChatCompletionMessage with role=assistant")},d0=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},r0=function T(){for(let S=this.messages.length-1;S>=0;S--){let $=this.messages[S];if(g0($)&&$.content!=null)return $.content;if(t0($)&&$.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},a0=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},hX=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.")},e0=function T(S){return typeof S==="string"?S:S===void 0?"undefined":JSON.stringify(S)};class MM extends KJ{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 sT={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 nX extends Error{}class vX extends Error{}function vK(T,S=sT.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return PK(T.trim(),S)}var PK=(T,S)=>{let $=T.length,f=0,M=(k)=>{throw new nX(`${k} at position ${f}`)},J=(k)=>{throw new vX(`${k} at position ${f}`)},F=()=>{if(y(),f>=$)M("Unexpected end of input");if(T[f]==='"')return W();if(T[f]==="{")return A();if(T[f]==="[")return X();if(T.substring(f,f+4)==="null"||sT.NULL&S&&$-f<4&&"null".startsWith(T.substring(f)))return f+=4,null;if(T.substring(f,f+4)==="true"||sT.BOOL&S&&$-f<4&&"true".startsWith(T.substring(f)))return f+=4,!0;if(T.substring(f,f+5)==="false"||sT.BOOL&S&&$-f<5&&"false".startsWith(T.substring(f)))return f+=5,!1;if(T.substring(f,f+8)==="Infinity"||sT.INFINITY&S&&$-f<8&&"Infinity".startsWith(T.substring(f)))return f+=8,1/0;if(T.substring(f,f+9)==="-Infinity"||sT.MINUS_INFINITY&S&&1<$-f&&$-f<9&&"-Infinity".startsWith(T.substring(f)))return f+=9,-1/0;if(T.substring(f,f+3)==="NaN"||sT.NAN&S&&$-f<3&&"NaN".startsWith(T.substring(f)))return f+=3,NaN;return w()},W=()=>{let k=f,z=!1;f++;while(f<$&&(T[f]!=='"'||z&&T[f-1]==="\\"))z=T[f]==="\\"?!z:!1,f++;if(T.charAt(f)=='"')try{return JSON.parse(T.substring(k,++f-Number(z)))}catch(G){J(String(G))}else if(sT.STR&S)try{return JSON.parse(T.substring(k,f-Number(z))+'"')}catch(G){return JSON.parse(T.substring(k,T.lastIndexOf("\\"))+'"')}M("Unterminated string literal")},A=()=>{f++,y();let k={};try{while(T[f]!=="}"){if(y(),f>=$&&sT.OBJ&S)return k;let z=W();y(),f++;try{let G=F();Object.defineProperty(k,z,{value:G,writable:!0,enumerable:!0,configurable:!0})}catch(G){if(sT.OBJ&S)return k;else throw G}if(y(),T[f]===",")f++}}catch(z){if(sT.OBJ&S)return k;else M("Expected '}' at end of object")}return f++,k},X=()=>{f++;let k=[];try{while(T[f]!=="]")if(k.push(F()),y(),T[f]===",")f++}catch(z){if(sT.ARR&S)return k;M("Expected ']' at end of array")}return f++,k},w=()=>{if(f===0){if(T==="-"&&sT.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T)}catch(z){if(sT.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(G){}J(String(z))}}let k=f;if(T[f]==="-")f++;while(T[f]&&!",]}".includes(T[f]))f++;if(f==$&&!(sT.NUM&S))M("Unterminated number literal");try{return JSON.parse(T.substring(k,f))}catch(z){if(T.substring(k,f)==="-"&&sT.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T.substring(k,T.lastIndexOf("e")))}catch(G){J(String(G))}}},y=()=>{while(f<$&&`
22
- \r\t`.includes(T[f]))f++};return F()},s0=(T)=>vK(T,sT.ALL^sT.NUM);var JM=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,$),$},_T=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)},dT,B$,FM,u$,T1,oF,S1,$1,f1,gF,M1,PX;class Kf extends KJ{constructor(T){super();dT.add(this),B$.set(this,void 0),FM.set(this,void 0),u$.set(this,void 0),JM(this,B$,T,"f"),JM(this,FM,[],"f")}get currentChatCompletionSnapshot(){return _T(this,u$,"f")}static fromReadableStream(T){let S=new Kf(null);return S._run(()=>S._fromReadableStream(T)),S}static createChatCompletion(T,S,$){let f=new Kf(S);return f._run(()=>f._runChatCompletion(T,{...S,stream:!0},{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"stream"}})),f}async _createChatCompletion(T,S,$){super._createChatCompletion;let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}_T(this,dT,"m",T1).call(this);let M=await T.chat.completions.create({...S,stream:!0},{...$,signal:this.controller.signal});this._connected();for await(let J of M)_T(this,dT,"m",S1).call(this,J);if(M.controller.signal?.aborted)throw new SS;return this._addChatCompletion(_T(this,dT,"m",gF).call(this))}async _fromReadableStream(T,S){let $=S?.signal;if($){if($.aborted)this.controller.abort();$.addEventListener("abort",()=>this.controller.abort())}_T(this,dT,"m",T1).call(this),this._connected();let f=xS.fromReadableStream(T,this.controller),M;for await(let J of f){if(M&&M!==J.id)this._addChatCompletion(_T(this,dT,"m",gF).call(this));_T(this,dT,"m",S1).call(this,J),M=J.id}if(f.controller.signal?.aborted)throw new SS;return this._addChatCompletion(_T(this,dT,"m",gF).call(this))}[(B$=new WeakMap,FM=new WeakMap,u$=new WeakMap,dT=new WeakSet,T1=function T(){if(this.ended)return;JM(this,u$,void 0,"f")},oF=function T(S){let $=_T(this,FM,"f")[S.index];if($)return $;return $={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},_T(this,FM,"f")[S.index]=$,$},S1=function T(S){if(this.ended)return;let $=_T(this,dT,"m",PX).call(this,S);this._emit("chunk",S,$);for(let f of S.choices){let M=$.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 J=_T(this,dT,"m",oF).call(this,M);if(M.finish_reason){if(_T(this,dT,"m",f1).call(this,M),J.current_tool_call_index!=null)_T(this,dT,"m",$1).call(this,M,J.current_tool_call_index)}for(let F of f.delta.tool_calls??[]){if(J.current_tool_call_index!==F.index){if(_T(this,dT,"m",f1).call(this,M),J.current_tool_call_index!=null)_T(this,dT,"m",$1).call(this,M,J.current_tool_call_index)}J.current_tool_call_index=F.index}for(let F of f.delta.tool_calls??[]){let W=M.message.tool_calls?.[F.index];if(!W?.type)continue;if(W?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:W.function?.name,index:F.index,arguments:W.function.arguments,parsed_arguments:W.function.parsed_arguments,arguments_delta:F.function?.arguments??""});else oX(W?.type)}}},$1=function T(S,$){if(_T(this,dT,"m",oF).call(this,S).done_tool_calls.has($))return;let M=S.message.tool_calls?.[$];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 J=_T(this,B$,"f")?.tools?.find((F)=>F.type==="function"&&F.function.name===M.function.name);this._emit("tool_calls.function.arguments.done",{name:M.function.name,index:$,arguments:M.function.arguments,parsed_arguments:Of(J)?J.$parseRaw(M.function.arguments):J?.function.strict?JSON.parse(M.function.arguments):null})}else oX(M.type)},f1=function T(S){let $=_T(this,dT,"m",oF).call(this,S);if(S.message.content&&!$.content_done){$.content_done=!0;let f=_T(this,dT,"m",M1).call(this);this._emit("content.done",{content:S.message.content,parsed:f?f.$parseRaw(S.message.content):null})}if(S.message.refusal&&!$.refusal_done)$.refusal_done=!0,this._emit("refusal.done",{refusal:S.message.refusal});if(S.logprobs?.content&&!$.logprobs_content_done)$.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:S.logprobs.content});if(S.logprobs?.refusal&&!$.logprobs_refusal_done)$.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:S.logprobs.refusal})},gF=function T(){if(this.ended)throw new $T("stream has ended, this shouldn't happen");let S=_T(this,u$,"f");if(!S)throw new $T("request ended without sending any chunks");return JM(this,u$,void 0,"f"),JM(this,FM,[],"f"),cK(S,_T(this,B$,"f"))},M1=function T(){let S=_T(this,B$,"f")?.response_format;if(i0(S))return S;return null},PX=function T(S){var $,f,M,J;let F=_T(this,u$,"f"),{choices:W,...A}=S;if(!F)F=JM(this,u$,{...A,choices:[]},"f");else Object.assign(F,A);for(let{delta:X,finish_reason:w,index:y,logprobs:k=null,...z}of S.choices){let G=F.choices[y];if(!G)G=F.choices[y]={finish_reason:w,index:y,message:{},logprobs:k,...z};if(k)if(!G.logprobs)G.logprobs=Object.assign({},k);else{let{content:D,refusal:H,...Q}=k;if(cX(Q),Object.assign(G.logprobs,Q),D)($=G.logprobs).content??($.content=[]),G.logprobs.content.push(...D);if(H)(f=G.logprobs).refusal??(f.refusal=[]),G.logprobs.refusal.push(...H)}if(w){if(G.finish_reason=w,_T(this,B$,"f")&&u0(_T(this,B$,"f"))){if(w==="length")throw new eM;if(w==="content_filter")throw new sM}}if(Object.assign(G,z),!X)continue;let{content:U,refusal:E,function_call:B,role:L,tool_calls:Z,...j}=X;if(cX(j),Object.assign(G.message,j),E)G.message.refusal=(G.message.refusal||"")+E;if(L)G.message.role=L;if(B)if(!G.message.function_call)G.message.function_call=B;else{if(B.name)G.message.function_call.name=B.name;if(B.arguments)(M=G.message.function_call).arguments??(M.arguments=""),G.message.function_call.arguments+=B.arguments}if(U){if(G.message.content=(G.message.content||"")+U,!G.message.refusal&&_T(this,dT,"m",M1).call(this))G.message.parsed=s0(G.message.content)}if(Z){if(!G.message.tool_calls)G.message.tool_calls=[];for(let{index:D,id:H,type:Q,function:b,...n}of Z){let R=(J=G.message.tool_calls)[D]??(J[D]={});if(Object.assign(R,n),H)R.id=H;if(Q)R.type=Q;if(b)R.function??(R.function={name:b.name??"",arguments:""});if(b?.name)R.function.name=b.name;if(b?.arguments){if(R.function.arguments+=b.arguments,ZX(_T(this,B$,"f"),R))R.function.parsed_arguments=s0(R.function.arguments)}}}}return F},Symbol.asyncIterator)](){let T=[],S=[],$=!1;return this.on("chunk",(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,J)=>S.push({resolve:M,reject:J})).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 xS(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function cK(T,S){let{id:$,choices:f,created:M,model:J,system_fingerprint:F,...W}=T,A={...W,id:$,choices:f.map(({message:X,finish_reason:w,index:y,logprobs:k,...z})=>{if(!w)throw new $T(`missing finish_reason for choice ${y}`);let{content:G=null,function_call:U,tool_calls:E,...B}=X,L=X.role;if(!L)throw new $T(`missing role for choice ${y}`);if(U){let{arguments:Z,name:j}=U;if(Z==null)throw new $T(`missing function_call.arguments for choice ${y}`);if(!j)throw new $T(`missing function_call.name for choice ${y}`);return{...z,message:{content:G,function_call:{arguments:Z,name:j},role:L,refusal:X.refusal??null},finish_reason:w,index:y,logprobs:k}}if(E)return{...z,index:y,finish_reason:w,logprobs:k,message:{...B,role:L,content:G,refusal:X.refusal??null,tool_calls:E.map((Z,j)=>{let{function:D,type:H,id:Q,...b}=Z,{arguments:n,name:R,...o}=D||{};if(Q==null)throw new $T(`missing choices[${y}].tool_calls[${j}].id
23
- ${tF(T)}`);if(H==null)throw new $T(`missing choices[${y}].tool_calls[${j}].type
24
- ${tF(T)}`);if(R==null)throw new $T(`missing choices[${y}].tool_calls[${j}].function.name
25
- ${tF(T)}`);if(n==null)throw new $T(`missing choices[${y}].tool_calls[${j}].function.arguments
26
- ${tF(T)}`);return{...b,id:Q,type:H,function:{...o,name:R,arguments:n}}})}};return{...z,message:{...B,content:G,role:L,refusal:X.refusal??null},finish_reason:w,index:y,logprobs:k}}),created:M,model:J,object:"chat.completion",...F?{system_fingerprint:F}:{}};return bX(A,S)}function tF(T){return JSON.stringify(T)}function cX(T){return}function oX(T){}class Yf extends Kf{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 pF extends u{parse(T,S){return qX(T.tools),this._client.chat.completions.create(T,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap(($)=>OJ($,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 Kf.createChatCompletion(this._client,T,S)}}class YJ extends u{constructor(){super(...arguments);this.completions=new pF(this._client)}}(function(T){T.Completions=pF})(YJ||(YJ={}));var l=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)},jS=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,$),$},$S,J1,k$,iF,S$,Gf,WM,Rf,dF,IS,uF,lF,zJ,RJ,GJ,gX,tX,pX,iX,uX,lX,dX;class bS extends kJ{constructor(){super(...arguments);$S.add(this),J1.set(this,[]),k$.set(this,{}),iF.set(this,{}),S$.set(this,void 0),Gf.set(this,void 0),WM.set(this,void 0),Rf.set(this,void 0),dF.set(this,void 0),IS.set(this,void 0),uF.set(this,void 0),lF.set(this,void 0),zJ.set(this,void 0)}[(J1=new WeakMap,k$=new WeakMap,iF=new WeakMap,S$=new WeakMap,Gf=new WeakMap,WM=new WeakMap,Rf=new WeakMap,dF=new WeakMap,IS=new WeakMap,uF=new WeakMap,lF=new WeakMap,zJ=new WeakMap,$S=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,J)=>S.push({resolve:M,reject:J})).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=xS.fromReadableStream(T,this.controller);for await(let M of f)l(this,$S,"m",RJ).call(this,M);if(f.controller.signal?.aborted)throw new SS;return this._addRun(l(this,$S,"m",GJ).call(this))}toReadableStream(){return new xS(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,S,$,f,M){let J=new bS;return J._run(()=>J._runToolAssistantStream(T,S,$,f,{...M,headers:{...M?.headers,"X-Stainless-Helper-Method":"stream"}})),J}async _createToolAssistantStream(T,S,$,f,M){let J=M?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let F={...f,stream:!0},W=await T.submitToolOutputs(S,$,F,{...M,signal:this.controller.signal});this._connected();for await(let A of W)l(this,$S,"m",RJ).call(this,A);if(W.controller.signal?.aborted)throw new SS;return this._addRun(l(this,$S,"m",GJ).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 l(this,uF,"f")}currentRun(){return l(this,lF,"f")}currentMessageSnapshot(){return l(this,S$,"f")}currentRunStepSnapshot(){return l(this,zJ,"f")}async finalRunSteps(){return await this.done(),Object.values(l(this,k$,"f"))}async finalMessages(){return await this.done(),Object.values(l(this,iF,"f"))}async finalRun(){if(await this.done(),!l(this,Gf,"f"))throw Error("Final run was not received.");return l(this,Gf,"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},J=await T.createAndRun(M,{...$,signal:this.controller.signal});this._connected();for await(let F of J)l(this,$S,"m",RJ).call(this,F);if(J.controller.signal?.aborted)throw new SS;return this._addRun(l(this,$S,"m",GJ).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 J={...$,stream:!0},F=await T.create(S,J,{...f,signal:this.controller.signal});this._connected();for await(let W of F)l(this,$S,"m",RJ).call(this,W);if(F.controller.signal?.aborted)throw new SS;return this._addRun(l(this,$S,"m",GJ).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($J(M)&&$J(f))M=this.accumulateDelta(M,f);else if(Array.isArray(M)&&Array.isArray(f)){if(M.every((J)=>typeof J==="string"||typeof J==="number")){M.push(...f);continue}for(let J of f){if(!$J(J))throw new Error(`Expected array delta entry to be an object but got: ${J}`);let F=J.index;if(F==null)throw console.error(J),new Error("Expected array delta entry to have an `index` property");if(typeof F!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${F}`);let W=M[F];if(W==null)M.push(J);else M[F]=this.accumulateDelta(W,J)}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)}}RJ=function T(S){if(this.ended)return;switch(jS(this,uF,S,"f"),l(this,$S,"m",pX).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":l(this,$S,"m",dX).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":l(this,$S,"m",tX).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":l(this,$S,"m",gX).call(this,S);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},GJ=function T(){if(this.ended)throw new $T("stream has ended, this shouldn't happen");if(!l(this,Gf,"f"))throw Error("Final run has not been received");return l(this,Gf,"f")},gX=function T(S){let[$,f]=l(this,$S,"m",uX).call(this,S,l(this,S$,"f"));jS(this,S$,$,"f"),l(this,iF,"f")[$.id]=$;for(let M of f){let J=$.content[M.index];if(J?.type=="text")this._emit("textCreated",J.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 J=M.text,F=$.content[M.index];if(F&&F.type=="text")this._emit("textDelta",J,F.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(M.index!=l(this,WM,"f")){if(l(this,Rf,"f"))switch(l(this,Rf,"f").type){case"text":this._emit("textDone",l(this,Rf,"f").text,l(this,S$,"f"));break;case"image_file":this._emit("imageFileDone",l(this,Rf,"f").image_file,l(this,S$,"f"));break}jS(this,WM,M.index,"f")}jS(this,Rf,$.content[M.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(l(this,WM,"f")!==void 0){let M=S.data.content[l(this,WM,"f")];if(M)switch(M.type){case"image_file":this._emit("imageFileDone",M.image_file,l(this,S$,"f"));break;case"text":this._emit("textDone",M.text,l(this,S$,"f"));break}}if(l(this,S$,"f"))this._emit("messageDone",S.data);jS(this,S$,void 0,"f")}},tX=function T(S){let $=l(this,$S,"m",iX).call(this,S);switch(jS(this,zJ,$,"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 J of f.step_details.tool_calls)if(J.index==l(this,dF,"f"))this._emit("toolCallDelta",J,$.step_details.tool_calls[J.index]);else{if(l(this,IS,"f"))this._emit("toolCallDone",l(this,IS,"f"));if(jS(this,dF,J.index,"f"),jS(this,IS,$.step_details.tool_calls[J.index],"f"),l(this,IS,"f"))this._emit("toolCallCreated",l(this,IS,"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(jS(this,zJ,void 0,"f"),S.data.step_details.type=="tool_calls"){if(l(this,IS,"f"))this._emit("toolCallDone",l(this,IS,"f")),jS(this,IS,void 0,"f")}this._emit("runStepDone",S.data,$);break;case"thread.run.step.in_progress":break}},pX=function T(S){l(this,J1,"f").push(S),this._emit("event",S)},iX=function T(S){switch(S.event){case"thread.run.step.created":return l(this,k$,"f")[S.data.id]=S.data,S.data;case"thread.run.step.delta":let $=l(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);l(this,k$,"f")[S.data.id]=M}return l(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":l(this,k$,"f")[S.data.id]=S.data;break}if(l(this,k$,"f")[S.data.id])return l(this,k$,"f")[S.data.id];throw new Error("No snapshot available")},uX=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 J of M.delta.content)if(J.index in $.content){let F=$.content[J.index];$.content[J.index]=l(this,$S,"m",lX).call(this,J,F)}else $.content[J.index]=J,f.push(J);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")},lX=function T(S,$){return bS.accumulateDelta($,S)},dX=function T(S){switch(jS(this,lF,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(jS(this,Gf,S.data,"f"),l(this,IS,"f"))this._emit("toolCallDone",l(this,IS,"f")),jS(this,IS,void 0,"f");break;case"thread.run.cancelling":break}};class AM extends u{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`,HJ,{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 HJ extends nT{}AM.MessagesPage=HJ;class XM extends u{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`,_J,{query:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}}class _J extends nT{}XM.RunStepsPage=_J;class l$ extends u{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`,DJ,{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:J}=await this.retrieve(T,S,{...$,headers:{...$?.headers,...f}}).withResponse();switch(M.status){case"queued":case"in_progress":case"cancelling":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=J.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await Q$(F);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 DJ extends nT{}l$.RunsPage=DJ;l$.Steps=XM;l$.RunStepsPage=_J;class L$ extends u{constructor(){super(...arguments);this.runs=new l$(this._client),this.messages=new AM(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)}}L$.Runs=l$;L$.RunsPage=DJ;L$.Messages=AM;L$.MessagesPage=HJ;var rX=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 wM extends u{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(),J=M.data;switch(J.status){case"in_progress":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=M.response.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await Q$(F);break;case"failed":case"completed":return J}}}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 nT{}wM.VectorStoreFilesPage=zf;class EJ extends u{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:J}=await this.retrieve(T,S,{...$,headers:f}).withResponse();switch(M.status){case"in_progress":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=J.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await Q$(F);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,J=Math.min(M,S.length),F=this._client,W=S.values(),A=[...$];async function X(y){for(let k of y){let z=await F.files.create({file:k,purpose:"assistants"},f);A.push(z.id)}}let w=Array(J).fill(W).map(X);return await rX(w),await this.createAndPoll(T,{file_ids:A})}}class N$ extends u{constructor(){super(...arguments);this.files=new wM(this._client),this.fileBatches=new EJ(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",QJ,{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 QJ extends nT{}N$.VectorStoresPage=QJ;N$.Files=wM;N$.VectorStoreFilesPage=zf;N$.FileBatches=EJ;class $$ extends u{constructor(){super(...arguments);this.vectorStores=new N$(this._client),this.chat=new YJ(this._client),this.assistants=new $M(this._client),this.threads=new L$(this._client)}}$$.VectorStores=N$;$$.VectorStoresPage=QJ;$$.Assistants=$M;$$.AssistantsPage=WJ;$$.Threads=L$;class yM extends u{create(T,S){return this._client.post("/completions",{body:T,...S,stream:T.stream??!1})}}class kM extends u{create(T,S){return this._client.post("/embeddings",{body:T,...S})}}class Hf extends u{create(T,S){return this._client.post("/files",PS({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,__binaryResponse:!0})}retrieveContent(T,S){return this._client.get(`/files/${T}/content`,{...S,headers:{Accept:"application/json",...S?.headers}})}async waitForProcessing(T,{pollInterval:S=5000,maxWait:$=1800000}={}){let f=new Set(["processed","error","deleted"]),M=Date.now(),J=await this.retrieve(T);while(!J.status||!f.has(J.status))if(await Q$(S),J=await this.retrieve(T),Date.now()-M>$)throw new Xf({message:`Giving up on waiting for file ${T} to finish processing after ${$} milliseconds.`});return J}}class OM extends nT{}Hf.FileObjectsPage=OM;class KM extends u{list(T,S={},$){if(BT(S))return this.list(T,{},S);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,UJ,{query:S,...$})}}class UJ extends nT{}KM.FineTuningJobCheckpointsPage=UJ;class C$ extends u{constructor(){super(...arguments);this.checkpoints=new KM(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",VJ,{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`,BJ,{query:S,...$})}}class VJ extends nT{}class BJ extends nT{}C$.FineTuningJobsPage=VJ;C$.FineTuningJobEventsPage=BJ;C$.Checkpoints=KM;C$.FineTuningJobCheckpointsPage=UJ;class x$ extends u{constructor(){super(...arguments);this.jobs=new C$(this._client)}}x$.Jobs=C$;x$.FineTuningJobsPage=VJ;x$.FineTuningJobEventsPage=BJ;class YM extends u{createVariation(T,S){return this._client.post("/images/variations",PS({body:T,...S}))}edit(T,S){return this._client.post("/images/edits",PS({body:T,...S}))}generate(T,S){return this._client.post("/images/generations",{body:T,...S})}}class _f extends u{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 c0{}_f.ModelsPage=RM;class GM extends u{create(T,S){return this._client.post("/moderations",{body:T,...S})}}class LJ extends u{create(T,S,$){return this._client.post(`/uploads/${T}/parts`,PS({body:S,...$}))}}class Df extends u{constructor(){super(...arguments);this.parts=new LJ(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,...$})}}Df.Parts=LJ;var aX;class kT extends P0{constructor({baseURL:T=SJ("OPENAI_BASE_URL"),apiKey:S=SJ("OPENAI_API_KEY"),organization:$=SJ("OPENAI_ORG_ID")??null,project:f=SJ("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 J={apiKey:S,organization:$,project:f,...M,baseURL:T||"https://api.openai.com/v1"};if(!J.dangerouslyAllowBrowser&&jX())throw new $T(`It looks like you're running in a browser-like environment.
19
+ `,G.error.toString()),f.push({response:K,error:G.error})}return $?.error(`safegen was unable to generate well-formed data after ${X} failed attempts.`),F}}}function y6(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
20
+ `)}var N1="RFC3986",C1={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},H6="RFC1738";var HY=Array.isArray,IJ=(()=>{let T=[];for(let $=0;$<256;++$)T.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return T})();var JX=1024,k6=(T,$,J,S,F)=>{if(T.length===0)return T;let M=T;if(typeof T==="symbol")M=Symbol.prototype.toString.call(T);else if(typeof T!=="string")M=String(T);if(J==="iso-8859-1")return escape(M).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let A="";for(let W=0;W<M.length;W+=JX){let X=M.length>=JX?M.slice(W,W+JX):M,K=[];for(let f=0;f<X.length;++f){let G=X.charCodeAt(f);if(G===45||G===46||G===95||G===126||G>=48&&G<=57||G>=65&&G<=90||G>=97&&G<=122||F===H6&&(G===40||G===41)){K[K.length]=X.charAt(f);continue}if(G<128){K[K.length]=IJ[G];continue}if(G<2048){K[K.length]=IJ[192|G>>6]+IJ[128|G&63];continue}if(G<55296||G>=57344){K[K.length]=IJ[224|G>>12]+IJ[128|G>>6&63]+IJ[128|G&63];continue}f+=1,G=65536+((G&1023)<<10|X.charCodeAt(f)&1023),K[K.length]=IJ[240|G>>18]+IJ[128|G>>12&63]+IJ[128|G>>6&63]+IJ[128|G&63]}A+=K.join("")}return A};function Q6(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function SX(T,$){if(HY(T)){let J=[];for(let S=0;S<T.length;S+=1)J.push($(T[S]));return J}return $(T)}var kY=Object.prototype.hasOwnProperty,E6={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,$){return String(T)+"["+$+"]"},repeat(T){return String(T)}},ZJ=Array.isArray,QY=Array.prototype.push,z6=function(T,$){QY.apply(T,ZJ($)?$:[$])},EY=Date.prototype.toISOString,S$={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:k6,encodeValuesOnly:!1,format:N1,formatter:C1[N1],indices:!1,serializeDate(T){return EY.call(T)},skipNulls:!1,strictNullHandling:!1};function zY(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var FX={};function O6(T,$,J,S,F,M,A,W,X,K,f,G,w,y,H,O,E,B){let L=T,N=B,I=0,U=!1;while((N=N.get(FX))!==void 0&&!U){let k=N.get(T);if(I+=1,typeof k!=="undefined")if(k===I)throw new RangeError("Cyclic object value");else U=!0;if(typeof N.get(FX)==="undefined")I=0}if(typeof K==="function")L=K($,L);else if(L instanceof Date)L=w?.(L);else if(J==="comma"&&ZJ(L))L=SX(L,function(k){if(k instanceof Date)return w?.(k);return k});if(L===null){if(M)return X&&!O?X($,S$.encoder,E,"key",y):$;L=""}if(zY(L)||Q6(L)){if(X){let k=O?$:X($,S$.encoder,E,"key",y);return[H?.(k)+"="+H?.(X(L,S$.encoder,E,"value",y))]}return[H?.($)+"="+H?.(String(L))]}let Q=[];if(typeof L==="undefined")return Q;let D;if(J==="comma"&&ZJ(L)){if(O&&X)L=SX(L,X);D=[{value:L.length>0?L.join(",")||null:void 0}]}else if(ZJ(K))D=K;else{let k=Object.keys(L);D=f?k.sort(f):k}let Z=W?String($).replace(/\./g,"%2E"):String($),h=S&&ZJ(L)&&L.length===1?Z+"[]":Z;if(F&&ZJ(L)&&L.length===0)return h+"[]";for(let k=0;k<D.length;++k){let p=D[k],g=typeof p==="object"&&typeof p.value!=="undefined"?p.value:L[p];if(A&&g===null)continue;let u=G&&W?p.replace(/\./g,"%2E"):p,ET=ZJ(L)?typeof J==="function"?J(h,u):h:h+(G?"."+u:"["+u+"]");B.set(T,I);let VT=new WeakMap;VT.set(FX,B),z6(Q,O6(g,ET,J,S,F,M,A,W,J==="comma"&&O&&ZJ(L)?null:X,K,f,G,w,y,H,O,E,VT))}return Q}function OY(T=S$){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||S$.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let J=N1;if(typeof T.format!=="undefined"){if(!kY.call(C1,T.format))throw new TypeError("Unknown format option provided.");J=T.format}let S=C1[J],F=S$.filter;if(typeof T.filter==="function"||ZJ(T.filter))F=T.filter;let M;if(T.arrayFormat&&T.arrayFormat in E6)M=T.arrayFormat;else if("indices"in T)M=T.indices?"indices":"repeat";else M=S$.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let A=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:S$.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:S$.addQueryPrefix,allowDots:A,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:S$.allowEmptyArrays,arrayFormat:M,charset:$,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:S$.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?S$.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:S$.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:S$.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:S$.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:S$.encodeValuesOnly,filter:F,format:J,formatter:S,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:S$.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:S$.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:S$.strictNullHandling}}function MX(T,$={}){let J=T,S=OY($),F,M;if(typeof S.filter==="function")M=S.filter,J=M("",J);else if(ZJ(S.filter))M=S.filter,F=M;let A=[];if(typeof J!=="object"||J===null)return"";let W=E6[S.arrayFormat],X=W==="comma"&&S.commaRoundTrip;if(!F)F=Object.keys(J);if(S.sort)F.sort(S.sort);let K=new WeakMap;for(let w=0;w<F.length;++w){let y=F[w];if(S.skipNulls&&J[y]===null)continue;z6(A,O6(J[y],y,W,X,S.allowEmptyArrays,S.strictNullHandling,S.skipNulls,S.encodeDotInKeys,S.encode?S.encoder:null,S.filter,S.sort,S.allowDots,S.serializeDate,S.format,S.formatter,S.encodeValuesOnly,S.charset,K))}let f=A.join(S.delimiter),G=S.addQueryPrefix===!0?"?":"";if(S.charsetSentinel)if(S.charset==="iso-8859-1")G+="utf8=%26%2310003%3B&";else G+="utf8=%E2%9C%93&";return f.length>0?G+f:""}var mS="4.77.3";var U6=!1,cS=void 0,AX=void 0,DY=void 0,VY=void 0,BY=void 0,WX=void 0,LY=void 0,j1=void 0,XX=void 0,KX=void 0,fX=void 0,q1=void 0,GX=void 0;function D6(T,$={auto:!1}){if(U6)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(cS)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${cS}'\``);U6=$.auto,cS=T.kind,AX=T.fetch,DY=T.Request,VY=T.Response,BY=T.Headers,WX=T.FormData,LY=T.Blob,j1=T.File,XX=T.ReadableStream,KX=T.getMultipartRequestOptions,fX=T.getDefaultAgent,q1=T.fileFromPath,GX=T.isFsReadStream}class wX{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function V6({manuallyImported:T}={}){let $=T?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",J,S,F,M;try{J=fetch,S=Request,F=Response,M=Headers}catch(A){throw new Error(`this environment is missing the following Web Fetch API type: ${A.message}. ${$}`)}return{kind:"web",fetch:J,Request:S,Response:F,Headers:M,FormData:typeof FormData!=="undefined"?FormData:class A{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class A{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class A{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class A{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(A,W)=>({...W,body:new wX(A)}),getDefaultAgent:(A)=>{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:(A)=>!1}}import{ReadStream as CY}from"fs";function B6(){let T=V6();function $(J){return J instanceof CY}return{...T,isFsReadStream:$}}if(!cS)D6(B6(),{auto:!0});class ST extends Error{}class tT extends ST{constructor(T,$,J,S){super(`${tT.makeMessage(T,$,J)}`);this.status=T,this.headers=S,this.request_id=S?.["x-request-id"],this.error=$;let F=$;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(T,$,J){let S=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):J;if(T&&S)return`${T} ${S}`;if(T)return`${T} status code (no body)`;if(S)return S;return"(no status code or body)"}static generate(T,$,J,S){if(!T||!S)return new gS({message:J,cause:c1($)});let F=$?.error;if(T===400)return new x1(T,F,J,S);if(T===401)return new I1(T,F,J,S);if(T===403)return new Z1(T,F,J,S);if(T===404)return new b1(T,F,J,S);if(T===409)return new h1(T,F,J,S);if(T===422)return new P1(T,F,J,S);if(T===429)return new v1(T,F,J,S);if(T>=500)return new m1(T,F,J,S);return new tT(T,F,J,S)}}class G$ extends tT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0)}}class gS extends tT{constructor({message:T,cause:$}){super(void 0,void 0,T||"Connection error.",void 0);if($)this.cause=$}}class nS extends gS{constructor({message:T}={}){super({message:T??"Request timed out."})}}class x1 extends tT{}class I1 extends tT{}class Z1 extends tT{}class b1 extends tT{}class h1 extends tT{}class P1 extends tT{}class v1 extends tT{}class m1 extends tT{}class r0 extends ST{constructor(){super("Could not parse response content as the length limit was reached")}}class t0 extends ST{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class HS{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 J=HS.NEWLINE_CHARS.has($[$.length-1]||""),S=$.split(HS.NEWLINE_REGEXP);if(J)S.pop();if(S.length===1&&!J)return this.buffer.push(S[0]),[];if(this.buffer.length>0)S=[this.buffer.join("")+S[0],...S.slice(1)],this.buffer=[];if(!J)this.buffer=[S.pop()||""];return S}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new 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}}HS.NEWLINE_CHARS=new Set([`
21
+ `,"\r"]);HS.NEWLINE_REGEXP=/\r\n|[\n\r]/g;class o${constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let J=!1;async function*S(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let F=!1;try{for await(let M of qY(T,$)){if(F)continue;if(M.data.startsWith("[DONE]")){F=!0;continue}if(M.event===null){let A;try{A=JSON.parse(M.data)}catch(W){throw console.error("Could not parse message into JSON:",M.data),console.error("From chunk:",M.raw),W}if(A&&A.error)throw new tT(void 0,A.error,void 0,void 0);yield A}else{let A;try{A=JSON.parse(M.data)}catch(W){throw console.error("Could not parse message into JSON:",M.data),console.error("From chunk:",M.raw),W}if(M.event=="error")throw new tT(void 0,A.error,A.message,void 0);yield{event:M.event,data:A}}}F=!0}catch(M){if(M instanceof Error&&M.name==="AbortError")return;throw M}finally{if(!F)$.abort()}}return new o$(S,$)}static fromReadableStream(T,$){let J=!1;async function*S(){let M=new HS,A=N6(T);for await(let W of A)for(let X of M.decode(W))yield X;for(let W of M.flush())yield W}async function*F(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let M=!1;try{for await(let A of S()){if(M)continue;if(A)yield JSON.parse(A)}M=!0}catch(A){if(A instanceof Error&&A.name==="AbortError")return;throw A}finally{if(!M)$.abort()}}return new o$(F,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),S=(F)=>{return{next:()=>{if(F.length===0){let M=J.next();T.push(M),$.push(M)}return F.shift()}}};return[new o$(()=>S(T),this.controller),new o$(()=>S($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new XX({async start(){$=T[Symbol.asyncIterator]()},async pull(S){try{let{value:F,done:M}=await $.next();if(M)return S.close();let A=J.encode(JSON.stringify(F)+`
22
+ `);S.enqueue(A)}catch(F){S.error(F)}},async cancel(){await $.return?.()}})}}async function*qY(T,$){if(!T.body)throw $.abort(),new ST("Attempted to iterate over a response with no body");let J=new L6,S=new HS,F=N6(T.body);for await(let M of xY(F))for(let A of S.decode(M)){let W=J.decode(A);if(W)yield W}for(let M of S.flush()){let A=J.decode(M);if(A)yield A}}async function*xY(T){let $=new Uint8Array;for await(let J of T){if(J==null)continue;let S=J instanceof ArrayBuffer?new Uint8Array(J):typeof J==="string"?new TextEncoder().encode(J):J,F=new Uint8Array($.length+S.length);F.set($),F.set(S,$.length),$=F;let M;while((M=IY($))!==-1)yield $.slice(0,M),$=$.slice(M)}if($.length>0)yield $}function IY(T){for(let S=0;S<T.length-2;S++){if(T[S]===10&&T[S+1]===10)return S+2;if(T[S]===13&&T[S+1]===13)return S+2;if(T[S]===13&&T[S+1]===10&&S+3<T.length&&T[S+2]===13&&T[S+3]===10)return S+4}return-1}class L6{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(T){if(T.endsWith("\r"))T=T.substring(0,T.length-1);if(!T){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
23
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,S]=ZY(T,":");if(S.startsWith(" "))S=S.substring(1);if($==="event")this.event=S;else if($==="data")this.data.push(S);return null}}function ZY(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}function N6(T){if(T[Symbol.asyncIterator])return T;let $=T.getReader();return{async next(){try{let J=await $.read();if(J?.done)$.releaseLock();return J}catch(J){throw $.releaseLock(),J}},async return(){let J=$.cancel();return $.releaseLock(),await J,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}var C6=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",j6=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&a0(T),a0=(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",bY=(T)=>{return j6(T)||C6(T)||GX(T)};async function _X(T,$,J){if(T=await T,j6(T))return T;if(C6(T)){let F=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let M=a0(F)?[await F.arrayBuffer()]:[F];return new j1(M,$,J)}let S=await hY(T);if($||($=vY(T)??"unknown_file"),!J?.type){let F=S[0]?.type;if(typeof F==="string")J={...J,type:F}}return new j1(S,$,J)}async function hY(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(a0(T))$.push(await T.arrayBuffer());else if(mY(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${PY(T)}`);return $}function PY(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function vY(T){return RX(T.name)||RX(T.filename)||RX(T.path)?.split(/[\\/]/).pop()}var RX=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},mY=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",yX=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var JJ=async(T)=>{let $=await q6(T.body);return KX($,T)},q6=async(T)=>{let $=new WX;return await Promise.all(Object.entries(T||{}).map(([J,S])=>YX($,J,S))),$};var YX=async(T,$,J)=>{if(J===void 0)return;if(J==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")T.append($,String(J));else if(bY(J)){let S=await _X(J);T.append($,S)}else if(Array.isArray(J))await Promise.all(J.map((S)=>YX(T,$+"[]",S)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([S,F])=>YX(T,`${$}[${S}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var gY=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},nY=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},g1;async function P6(T){let{response:$}=T;if(T.options.stream){if(vF("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return o$.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let J=$.headers.get("content-type");if(J?.includes("application/json")||J?.includes("application/vnd.api+json")){let M=await $.json();return vF("response",$.status,$.url,$.headers,M),v6(M,$)}let F=await $.text();return vF("response",$.status,$.url,$.headers,F),F}function v6(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class n1 extends Promise{constructor(T,$=P6){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new n1(this.responsePromise,async($)=>v6(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 kX{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:S,fetch:F}){this.baseURL=T,this.maxRetries=HX("maxRetries",$),this.timeout=HX("timeout",J),this.httpAgent=S,this.fetch=F??AX}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...uY(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${aY()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,J){return this.request(Promise.resolve(J).then(async(S)=>{let F=S&&a0(S?.body)?new DataView(await S.body.arrayBuffer()):S?.body instanceof DataView?S.body:S?.body instanceof ArrayBuffer?new DataView(S.body):S&&ArrayBuffer.isView(S?.body)?new DataView(S.body.buffer):S?.body;return{method:T,path:$,...S,body:F}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){let{method:J,path:S,query:F,headers:M={}}=T,A=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:yX(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,W=this.calculateContentLength(A),X=this.buildURL(S,F);if("timeout"in T)HX("timeout",T.timeout);let K=T.timeout??this.timeout,f=T.httpAgent??this.httpAgent??fX(X),G=K+1000;if(typeof f?.options?.timeout==="number"&&G>(f.options.timeout??0))f.options.timeout=G;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();M[this.idempotencyHeader]=T.idempotencyKey}let w=this.buildHeaders({options:T,headers:M,contentLength:W,retryCount:$});return{req:{method:J,...A&&{body:A},headers:w,...f&&{agent:f},signal:T.signal??null},url:X,timeout:K}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:S}){let F={};if(J)F["content-length"]=J;let M=this.defaultHeaders(T);if(b6(F,M),b6(F,$),yX(T.body)&&cS!=="node")delete F["content-type"];if(h6(M,"x-stainless-retry-count")===void 0&&h6($,"x-stainless-retry-count")===void 0)F["x-stainless-retry-count"]=String(S);return this.validateHeaders(F,$),F}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,S){return tT.generate(T,$,J,S)}request(T,$=null){return new n1(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,S=J.maxRetries??this.maxRetries;if($==null)$=S;await this.prepareOptions(J);let{req:F,url:M,timeout:A}=this.buildRequest(J,{retryCount:S-$});if(await this.prepareRequest(F,{url:M,options:J}),vF("request",M,J,F.headers),J.signal?.aborted)throw new G$;let W=new AbortController,X=await this.fetchWithTimeout(M,F,A,W).catch(c1);if(X instanceof Error){if(J.signal?.aborted)throw new G$;if($)return this.retryRequest(J,$);if(X.name==="AbortError")throw new nS;throw new gS({cause:X})}let K=pY(X.headers);if(!X.ok){if($&&this.shouldRetry(X)){let O=`retrying, ${$} attempts remaining`;return vF(`response (error; ${O})`,X.status,M,K),this.retryRequest(J,$,K)}let f=await X.text().catch((O)=>c1(O).message),G=dY(f),w=G?void 0:f;throw vF(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,X.status,M,K,w),this.makeStatusError(X.status,G,w,K)}return{response:X,options:J,controller:W}}requestAPIList(T,$){let J=this.makeRequest($,null);return new m6(this,J,T)}buildURL(T,$){let J=tY(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),S=this.defaultQuery();if(!c6(S))$={...S,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new ST(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,S){let{signal:F,...M}=$||{};if(F)F.addEventListener("abort",()=>S.abort());let A=setTimeout(()=>S.abort(),J),W={signal:S.signal,...M};if(W.method)W.method=W.method.toUpperCase();return this.fetch.call(void 0,T,W).finally(()=>{clearTimeout(A)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let S,F=J?.["retry-after-ms"];if(F){let A=parseFloat(F);if(!Number.isNaN(A))S=A}let M=J?.["retry-after"];if(M&&!S){let A=parseFloat(M);if(!Number.isNaN(A))S=A*1000;else S=Date.parse(M)-Date.now()}if(!(S&&0<=S&&S<60000)){let A=T.maxRetries??this.maxRetries;S=this.calculateDefaultRetryTimeoutMillis($,A)}return await dJ(S),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let F=$-T,M=Math.min(0.5*Math.pow(2,F),8),A=1-Math.random()*0.25;return M*A*1000}getUserAgent(){return`${this.constructor.name}/JS ${mS}`}}class p1{constructor(T,$,J,S){g1.set(this,void 0),gY(this,g1,T,"f"),this.options=S,this.response=$,this.body=J}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new 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 J=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[S,F]of J)T.url.searchParams.set(S,F);$.query=void 0,$.path=T.url.toString()}return await nY(this,g1,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(g1=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class m6 extends n1{constructor(T,$,J){super($,async(S)=>new J(T,S.response,await P6(S),S.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var pY=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let S=J.toString();return $[S.toLowerCase()]||$[S]}})},iY={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},xT=(T)=>{return typeof T==="object"&&T!==null&&!c6(T)&&Object.keys(T).every(($)=>g6(iY,$))},oY=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":mS,"X-Stainless-OS":I6(Deno.build.os),"X-Stainless-Arch":x6(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":mS,"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":mS,"X-Stainless-OS":I6(process.platform),"X-Stainless-Arch":x6(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=lY();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":mS,"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":mS,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function lY(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let S=J.exec(navigator.userAgent);if(S){let F=S[1]||0,M=S[2]||0,A=S[3]||0;return{browser:$,version:`${F}.${M}.${A}`}}}return null}var x6=(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"},I6=(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"},Z6,uY=()=>{return Z6??(Z6=oY())},dY=(T)=>{try{return JSON.parse(T)}catch($){return}},rY=/^[a-z][a-z0-9+.-]*:/i,tY=(T)=>{return rY.test(T)},dJ=(T)=>new Promise(($)=>setTimeout($,T)),HX=(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 $},c1=(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 s0=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function c6(T){if(!T)return!0;for(let $ in T)return!1;return!0}function g6(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function b6(T,$){for(let J in $){if(!g6($,J))continue;let S=J.toLowerCase();if(!S)continue;let F=$[J];if(F===null)delete T[S];else if(F!==void 0)T[S]=F}}function vF(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true")console.log(`OpenAI:DEBUG:${T}`,...$)}var aY=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},n6=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},sY=(T)=>{return typeof T?.get==="function"};var h6=(T,$)=>{let J=$.toLowerCase();if(sY(T)){let S=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(F,M,A)=>M+A.toUpperCase());for(let F of[$,J,$.toUpperCase(),S]){let M=T.get(F);if(M)return M}}for(let[S,F]of Object.entries(T))if(S.toLowerCase()===J){if(Array.isArray(F)){if(F.length<=1)return F[0];return console.warn(`Received ${F.length} entries for the ${$} header, using the first entry.`),F[0]}return F}return};function e0(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class QX extends p1{constructor(T,$,J,S){super(T,$,J,S);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class lT extends p1{constructor(T,$,J,S){super(T,$,J,S);this.data=J.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 d{constructor(T){this._client=T}}class TM extends d{create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}}class iS extends d{constructor(){super(...arguments);this.completions=new TM(this._client)}}iS.Completions=TM;class $M extends d{create(T,$){return this._client.post("/audio/speech",{body:T,...$,__binaryResponse:!0})}}class JM extends d{create(T,$){return this._client.post("/audio/transcriptions",JJ({body:T,...$}))}}class SM extends d{create(T,$){return this._client.post("/audio/translations",JJ({body:T,...$}))}}class rJ extends d{constructor(){super(...arguments);this.transcriptions=new JM(this._client),this.translations=new SM(this._client),this.speech=new $M(this._client)}}rJ.Transcriptions=JM;rJ.Translations=SM;rJ.Speech=$M;class oS extends d{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(xT(T))return this.list({},T);return this._client.getAPIList("/batches",mF,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class mF extends lT{}oS.BatchesPage=mF;class cF extends d{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/assistants/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(xT(T))return this.list({},T);return this._client.getAPIList("/assistants",FM,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class FM extends lT{}cF.AssistantsPage=FM;function EX(T){return typeof T.parse==="function"}var kS=(T)=>{return T?.role==="assistant"},zX=(T)=>{return T?.role==="function"},OX=(T)=>{return T?.role==="tool"};var EJ=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},pT=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},UX,i1,o1,MM,AM,l1,WM,tJ,XM,u1,d1,gF,p6;class KM{constructor(){UX.add(this),this.controller=new AbortController,i1.set(this,void 0),o1.set(this,()=>{}),MM.set(this,()=>{}),AM.set(this,void 0),l1.set(this,()=>{}),WM.set(this,()=>{}),tJ.set(this,{}),XM.set(this,!1),u1.set(this,!1),d1.set(this,!1),gF.set(this,!1),EJ(this,i1,new Promise((T,$)=>{EJ(this,o1,T,"f"),EJ(this,MM,$,"f")}),"f"),EJ(this,AM,new Promise((T,$)=>{EJ(this,l1,T,"f"),EJ(this,WM,$,"f")}),"f"),pT(this,i1,"f").catch(()=>{}),pT(this,AM,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},pT(this,UX,"m",p6).bind(this))},0)}_connected(){if(this.ended)return;pT(this,o1,"f").call(this),this._emit("connect")}get ended(){return pT(this,XM,"f")}get errored(){return pT(this,u1,"f")}get aborted(){return pT(this,d1,"f")}abort(){this.controller.abort()}on(T,$){return(pT(this,tJ,"f")[T]||(pT(this,tJ,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=pT(this,tJ,"f")[T];if(!J)return this;let S=J.findIndex((F)=>F.listener===$);if(S>=0)J.splice(S,1);return this}once(T,$){return(pT(this,tJ,"f")[T]||(pT(this,tJ,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(EJ(this,gF,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){EJ(this,gF,!0,"f"),await pT(this,AM,"f")}_emit(T,...$){if(pT(this,XM,"f"))return;if(T==="end")EJ(this,XM,!0,"f"),pT(this,l1,"f").call(this);let J=pT(this,tJ,"f")[T];if(J)pT(this,tJ,"f")[T]=J.filter((S)=>!S.once),J.forEach(({listener:S})=>S(...$));if(T==="abort"){let S=$[0];if(!pT(this,gF,"f")&&!J?.length)Promise.reject(S);pT(this,MM,"f").call(this,S),pT(this,WM,"f").call(this,S),this._emit("end");return}if(T==="error"){let S=$[0];if(!pT(this,gF,"f")&&!J?.length)Promise.reject(S);pT(this,MM,"f").call(this,S),pT(this,WM,"f").call(this,S),this._emit("end")}}_emitFinal(){}}i1=new WeakMap,o1=new WeakMap,MM=new WeakMap,AM=new WeakMap,l1=new WeakMap,WM=new WeakMap,tJ=new WeakMap,XM=new WeakMap,u1=new WeakMap,d1=new WeakMap,gF=new WeakMap,UX=new WeakSet,p6=function T($){if(EJ(this,u1,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new G$;if($ instanceof G$)return EJ(this,d1,!0,"f"),this._emit("abort",$);if($ instanceof ST)return this._emit("error",$);if($ instanceof Error){let J=new ST($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new ST(String($)))};function DX(T){return T?.$brand==="auto-parseable-response-format"}function lS(T){return T?.$brand==="auto-parseable-tool"}function i6(T,$){if(!$||!VX($))return{...T,choices:T.choices.map((J)=>({...J,message:{...J.message,parsed:null,tool_calls:J.message.tool_calls??[]}}))};return fM(T,$)}function fM(T,$){let J=T.choices.map((S)=>{if(S.finish_reason==="length")throw new r0;if(S.finish_reason==="content_filter")throw new t0;return{...S,message:{...S.message,tool_calls:S.message.tool_calls?.map((F)=>M3($,F))??[],parsed:S.message.content&&!S.message.refusal?F3($,S.message.content):null}}});return{...T,choices:J}}function F3(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 M3(T,$){let J=T.tools?.find((S)=>S.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:lS(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function o6(T,$){if(!T)return!1;let J=T.tools?.find((S)=>S.function?.name===$.function.name);return lS(J)||J?.function.strict||!1}function VX(T){if(DX(T.response_format))return!0;return T.tools?.some(($)=>lS($)||$.type==="function"&&$.function.strict===!0)??!1}function l6(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 m$=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},D$,BX,r1,LX,NX,CX,d6,jX,u6=10;class GM extends KM{constructor(){super(...arguments);D$.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),(zX(T)||OX(T))&&T.content)this._emit("functionCallResult",T.content);else if(kS(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(kS(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new ST("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),m$(this,D$,"m",BX).call(this)}async finalMessage(){return await this.done(),m$(this,D$,"m",r1).call(this)}async finalFunctionCall(){return await this.done(),m$(this,D$,"m",LX).call(this)}async finalFunctionCallResult(){return await this.done(),m$(this,D$,"m",NX).call(this)}async totalUsage(){return await this.done(),m$(this,D$,"m",CX).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=m$(this,D$,"m",r1).call(this);if($)this._emit("finalMessage",$);let J=m$(this,D$,"m",BX).call(this);if(J)this._emit("finalContent",J);let S=m$(this,D$,"m",LX).call(this);if(S)this._emit("finalFunctionCall",S);let F=m$(this,D$,"m",NX).call(this);if(F!=null)this._emit("finalFunctionCallResult",F);if(this._chatCompletions.some((M)=>M.usage))this._emit("totalUsage",m$(this,D$,"m",CX).call(this))}async _createChatCompletion(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}m$(this,D$,"m",d6).call(this,$);let F=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion(fM(F,$))}async _runChatCompletion(T,$,J){for(let S of $.messages)this._addMessage(S,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:F="auto",stream:M,...A}=$,W=typeof F!=="string"&&F?.name,{maxChatCompletions:X=u6}=J||{},K={};for(let G of $.functions)K[G.name||G.function.name]=G;let f=$.functions.map((G)=>({name:G.name||G.function.name,parameters:G.parameters,description:G.description}));for(let G of $.messages)this._addMessage(G,!1);for(let G=0;G<X;++G){let y=(await this._createChatCompletion(T,{...A,function_call:F,functions:f,messages:[...this.messages]},J)).choices[0]?.message;if(!y)throw new ST("missing message in ChatCompletion response");if(!y.function_call)return;let{name:H,arguments:O}=y.function_call,E=K[H];if(!E){let I=`Invalid function_call: ${JSON.stringify(H)}. Available options are: ${f.map((U)=>JSON.stringify(U.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:H,content:I});continue}else if(W&&W!==H){let I=`Invalid function_call: ${JSON.stringify(H)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"function",name:H,content:I});continue}let B;try{B=EX(E)?await E.parse(O):O}catch(I){this._addMessage({role:"function",name:H,content:I instanceof Error?I.message:String(I)});continue}let L=await E.function(B,this),N=m$(this,D$,"m",jX).call(this,L);if(this._addMessage({role:"function",name:H,content:N}),W)return}}async _runTools(T,$,J){let{tool_choice:F="auto",stream:M,...A}=$,W=typeof F!=="string"&&F?.function?.name,{maxChatCompletions:X=u6}=J||{},K=$.tools.map((w)=>{if(lS(w)){if(!w.$callback)throw new ST("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:w.$callback,name:w.function.name,description:w.function.description||"",parameters:w.function.parameters,parse:w.$parseRaw,strict:!0}}}return w}),f={};for(let w of K)if(w.type==="function")f[w.function.name||w.function.function.name]=w.function;let G="tools"in $?K.map((w)=>w.type==="function"?{type:"function",function:{name:w.function.name||w.function.function.name,parameters:w.function.parameters,description:w.function.description,strict:w.function.strict}}:w):void 0;for(let w of $.messages)this._addMessage(w,!1);for(let w=0;w<X;++w){let H=(await this._createChatCompletion(T,{...A,tool_choice:F,tools:G,messages:[...this.messages]},J)).choices[0]?.message;if(!H)throw new ST("missing message in ChatCompletion response");if(!H.tool_calls?.length)return;for(let O of H.tool_calls){if(O.type!=="function")continue;let E=O.id,{name:B,arguments:L}=O.function,N=f[B];if(!N){let D=`Invalid tool_call: ${JSON.stringify(B)}. Available options are: ${Object.keys(f).map((Z)=>JSON.stringify(Z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:D});continue}else if(W&&W!==B){let D=`Invalid tool_call: ${JSON.stringify(B)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:D});continue}let I;try{I=EX(N)?await N.parse(L):L}catch(D){let Z=D instanceof Error?D.message:String(D);this._addMessage({role:"tool",tool_call_id:E,content:Z});continue}let U=await N.function(I,this),Q=m$(this,D$,"m",jX).call(this,U);if(this._addMessage({role:"tool",tool_call_id:E,content:Q}),W)return}}return}}D$=new WeakSet,BX=function T(){return m$(this,D$,"m",r1).call(this).content??null},r1=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(kS(J)){let{function_call:S,...F}=J,M={...F,content:J.content??null,refusal:J.refusal??null};if(S)M.function_call=S;return M}}throw new ST("stream ended without producing a ChatCompletionMessage with role=assistant")},LX=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(kS(J)&&J?.function_call)return J.function_call;if(kS(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},NX=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(zX(J)&&J.content!=null)return J.content;if(OX(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((S)=>S.role==="assistant"&&S.tool_calls?.some((F)=>F.type==="function"&&F.id===J.tool_call_id)))return J.content}return},CX=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:J}of this._chatCompletions)if(J)$.completion_tokens+=J.completion_tokens,$.prompt_tokens+=J.prompt_tokens,$.total_tokens+=J.total_tokens;return $},d6=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.")},jX=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class nF extends GM{static runFunctions(T,$,J){let S=new nF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new nF,F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}_addMessage(T,$=!0){if(super._addMessage(T,$),kS(T)&&T.content)this._emit("content",T.content)}}var X$={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 r6 extends Error{}class t6 extends Error{}function A3(T,$=X$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return W3(T.trim(),$)}var W3=(T,$)=>{let J=T.length,S=0,F=(w)=>{throw new r6(`${w} at position ${S}`)},M=(w)=>{throw new t6(`${w} at position ${S}`)},A=()=>{if(G(),S>=J)F("Unexpected end of input");if(T[S]==='"')return W();if(T[S]==="{")return X();if(T[S]==="[")return K();if(T.substring(S,S+4)==="null"||X$.NULL&$&&J-S<4&&"null".startsWith(T.substring(S)))return S+=4,null;if(T.substring(S,S+4)==="true"||X$.BOOL&$&&J-S<4&&"true".startsWith(T.substring(S)))return S+=4,!0;if(T.substring(S,S+5)==="false"||X$.BOOL&$&&J-S<5&&"false".startsWith(T.substring(S)))return S+=5,!1;if(T.substring(S,S+8)==="Infinity"||X$.INFINITY&$&&J-S<8&&"Infinity".startsWith(T.substring(S)))return S+=8,1/0;if(T.substring(S,S+9)==="-Infinity"||X$.MINUS_INFINITY&$&&1<J-S&&J-S<9&&"-Infinity".startsWith(T.substring(S)))return S+=9,-1/0;if(T.substring(S,S+3)==="NaN"||X$.NAN&$&&J-S<3&&"NaN".startsWith(T.substring(S)))return S+=3,NaN;return f()},W=()=>{let w=S,y=!1;S++;while(S<J&&(T[S]!=='"'||y&&T[S-1]==="\\"))y=T[S]==="\\"?!y:!1,S++;if(T.charAt(S)=='"')try{return JSON.parse(T.substring(w,++S-Number(y)))}catch(H){M(String(H))}else if(X$.STR&$)try{return JSON.parse(T.substring(w,S-Number(y))+'"')}catch(H){return JSON.parse(T.substring(w,T.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},X=()=>{S++,G();let w={};try{while(T[S]!=="}"){if(G(),S>=J&&X$.OBJ&$)return w;let y=W();G(),S++;try{let H=A();Object.defineProperty(w,y,{value:H,writable:!0,enumerable:!0,configurable:!0})}catch(H){if(X$.OBJ&$)return w;else throw H}if(G(),T[S]===",")S++}}catch(y){if(X$.OBJ&$)return w;else F("Expected '}' at end of object")}return S++,w},K=()=>{S++;let w=[];try{while(T[S]!=="]")if(w.push(A()),G(),T[S]===",")S++}catch(y){if(X$.ARR&$)return w;F("Expected ']' at end of array")}return S++,w},f=()=>{if(S===0){if(T==="-"&&X$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T)}catch(y){if(X$.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(H){}M(String(y))}}let w=S;if(T[S]==="-")S++;while(T[S]&&!",]}".includes(T[S]))S++;if(S==J&&!(X$.NUM&$))F("Unterminated number literal");try{return JSON.parse(T.substring(w,S))}catch(y){if(T.substring(w,S)==="-"&&X$.NUM&$)F("Not sure what '-' is");try{return JSON.parse(T.substring(w,T.lastIndexOf("e")))}catch(H){M(String(H))}}},G=()=>{while(S<J&&`
24
+ \r\t`.includes(T[S]))S++};return A()},qX=(T)=>A3(T,X$.ALL^X$.NUM);var pF=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},BT=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},F$,aJ,iF,QS,xX,t1,IX,ZX,bX,a1,hX,a6;class uS extends GM{constructor(T){super();F$.add(this),aJ.set(this,void 0),iF.set(this,void 0),QS.set(this,void 0),pF(this,aJ,T,"f"),pF(this,iF,[],"f")}get currentChatCompletionSnapshot(){return BT(this,QS,"f")}static fromReadableStream(T){let $=new uS(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let S=new uS($);return S._run(()=>S._runChatCompletion(T,{...$,stream:!0},{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),S}async _createChatCompletion(T,$,J){super._createChatCompletion;let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}BT(this,F$,"m",xX).call(this);let F=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let M of F)BT(this,F$,"m",IX).call(this,M);if(F.controller.signal?.aborted)throw new G$;return this._addChatCompletion(BT(this,F$,"m",a1).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}BT(this,F$,"m",xX).call(this),this._connected();let S=o$.fromReadableStream(T,this.controller),F;for await(let M of S){if(F&&F!==M.id)this._addChatCompletion(BT(this,F$,"m",a1).call(this));BT(this,F$,"m",IX).call(this,M),F=M.id}if(S.controller.signal?.aborted)throw new G$;return this._addChatCompletion(BT(this,F$,"m",a1).call(this))}[(aJ=new WeakMap,iF=new WeakMap,QS=new WeakMap,F$=new WeakSet,xX=function T(){if(this.ended)return;pF(this,QS,void 0,"f")},t1=function T($){let J=BT(this,iF,"f")[$.index];if(J)return J;return J={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},BT(this,iF,"f")[$.index]=J,J},IX=function T($){if(this.ended)return;let J=BT(this,F$,"m",a6).call(this,$);this._emit("chunk",$,J);for(let S of $.choices){let F=J.choices[S.index];if(S.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",S.delta.content,F.message.content),this._emit("content.delta",{delta:S.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(S.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:S.delta.refusal,snapshot:F.message.refusal});if(S.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:S.logprobs?.content,snapshot:F.logprobs?.content??[]});if(S.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:S.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let M=BT(this,F$,"m",t1).call(this,F);if(F.finish_reason){if(BT(this,F$,"m",bX).call(this,F),M.current_tool_call_index!=null)BT(this,F$,"m",ZX).call(this,F,M.current_tool_call_index)}for(let A of S.delta.tool_calls??[]){if(M.current_tool_call_index!==A.index){if(BT(this,F$,"m",bX).call(this,F),M.current_tool_call_index!=null)BT(this,F$,"m",ZX).call(this,F,M.current_tool_call_index)}M.current_tool_call_index=A.index}for(let A of S.delta.tool_calls??[]){let W=F.message.tool_calls?.[A.index];if(!W?.type)continue;if(W?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:W.function?.name,index:A.index,arguments:W.function.arguments,parsed_arguments:W.function.parsed_arguments,arguments_delta:A.function?.arguments??""});else e6(W?.type)}}},ZX=function T($,J){if(BT(this,F$,"m",t1).call(this,$).done_tool_calls.has(J))return;let F=$.message.tool_calls?.[J];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let M=BT(this,aJ,"f")?.tools?.find((A)=>A.type==="function"&&A.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:J,arguments:F.function.arguments,parsed_arguments:lS(M)?M.$parseRaw(F.function.arguments):M?.function.strict?JSON.parse(F.function.arguments):null})}else e6(F.type)},bX=function T($){let J=BT(this,F$,"m",t1).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let S=BT(this,F$,"m",hX).call(this);this._emit("content.done",{content:$.message.content,parsed:S?S.$parseRaw($.message.content):null})}if($.message.refusal&&!J.refusal_done)J.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!J.logprobs_content_done)J.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!J.logprobs_refusal_done)J.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},a1=function T(){if(this.ended)throw new ST("stream has ended, this shouldn't happen");let $=BT(this,QS,"f");if(!$)throw new ST("request ended without sending any chunks");return pF(this,QS,void 0,"f"),pF(this,iF,[],"f"),X3($,BT(this,aJ,"f"))},hX=function T(){let $=BT(this,aJ,"f")?.response_format;if(DX($))return $;return null},a6=function T($){var J,S,F,M;let A=BT(this,QS,"f"),{choices:W,...X}=$;if(!A)A=pF(this,QS,{...X,choices:[]},"f");else Object.assign(A,X);for(let{delta:K,finish_reason:f,index:G,logprobs:w=null,...y}of $.choices){let H=A.choices[G];if(!H)H=A.choices[G]={finish_reason:f,index:G,message:{},logprobs:w,...y};if(w)if(!H.logprobs)H.logprobs=Object.assign({},w);else{let{content:U,refusal:Q,...D}=w;if(s6(D),Object.assign(H.logprobs,D),U)(J=H.logprobs).content??(J.content=[]),H.logprobs.content.push(...U);if(Q)(S=H.logprobs).refusal??(S.refusal=[]),H.logprobs.refusal.push(...Q)}if(f){if(H.finish_reason=f,BT(this,aJ,"f")&&VX(BT(this,aJ,"f"))){if(f==="length")throw new r0;if(f==="content_filter")throw new t0}}if(Object.assign(H,y),!K)continue;let{content:O,refusal:E,function_call:B,role:L,tool_calls:N,...I}=K;if(s6(I),Object.assign(H.message,I),E)H.message.refusal=(H.message.refusal||"")+E;if(L)H.message.role=L;if(B)if(!H.message.function_call)H.message.function_call=B;else{if(B.name)H.message.function_call.name=B.name;if(B.arguments)(F=H.message.function_call).arguments??(F.arguments=""),H.message.function_call.arguments+=B.arguments}if(O){if(H.message.content=(H.message.content||"")+O,!H.message.refusal&&BT(this,F$,"m",hX).call(this))H.message.parsed=qX(H.message.content)}if(N){if(!H.message.tool_calls)H.message.tool_calls=[];for(let{index:U,id:Q,type:D,function:Z,...h}of N){let k=(M=H.message.tool_calls)[U]??(M[U]={});if(Object.assign(k,h),Q)k.id=Q;if(D)k.type=D;if(Z)k.function??(k.function={name:Z.name??"",arguments:""});if(Z?.name)k.function.name=Z.name;if(Z?.arguments){if(k.function.arguments+=Z.arguments,o6(BT(this,aJ,"f"),k))k.function.parsed_arguments=qX(k.function.arguments)}}}}return A},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(S)=>{let F=$.shift();if(F)F.resolve(S);else T.push(S)}),this.on("end",()=>{J=!0;for(let S of $)S.resolve(void 0);$.length=0}),this.on("abort",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),this.on("error",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,M)=>$.push({resolve:F,reject:M})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new o$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function X3(T,$){let{id:J,choices:S,created:F,model:M,system_fingerprint:A,...W}=T,X={...W,id:J,choices:S.map(({message:K,finish_reason:f,index:G,logprobs:w,...y})=>{if(!f)throw new ST(`missing finish_reason for choice ${G}`);let{content:H=null,function_call:O,tool_calls:E,...B}=K,L=K.role;if(!L)throw new ST(`missing role for choice ${G}`);if(O){let{arguments:N,name:I}=O;if(N==null)throw new ST(`missing function_call.arguments for choice ${G}`);if(!I)throw new ST(`missing function_call.name for choice ${G}`);return{...y,message:{content:H,function_call:{arguments:N,name:I},role:L,refusal:K.refusal??null},finish_reason:f,index:G,logprobs:w}}if(E)return{...y,index:G,finish_reason:f,logprobs:w,message:{...B,role:L,content:H,refusal:K.refusal??null,tool_calls:E.map((N,I)=>{let{function:U,type:Q,id:D,...Z}=N,{arguments:h,name:k,...p}=U||{};if(D==null)throw new ST(`missing choices[${G}].tool_calls[${I}].id
25
+ ${s1(T)}`);if(Q==null)throw new ST(`missing choices[${G}].tool_calls[${I}].type
26
+ ${s1(T)}`);if(k==null)throw new ST(`missing choices[${G}].tool_calls[${I}].function.name
27
+ ${s1(T)}`);if(h==null)throw new ST(`missing choices[${G}].tool_calls[${I}].function.arguments
28
+ ${s1(T)}`);return{...Z,id:D,type:Q,function:{...p,name:k,arguments:h}}})}};return{...y,message:{...B,content:H,role:L,refusal:K.refusal??null},finish_reason:f,index:G,logprobs:w}}),created:F,model:M,object:"chat.completion",...A?{system_fingerprint:A}:{}};return i6(X,$)}function s1(T){return JSON.stringify(T)}function s6(T){return}function e6(T){}class dS extends uS{static fromReadableStream(T){let $=new dS(null);return $._run(()=>$._fromReadableStream(T)),$}static runFunctions(T,$,J){let S=new dS(null),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return S._run(()=>S._runFunctions(T,$,F)),S}static runTools(T,$,J){let S=new dS($),F={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return S._run(()=>S._runTools(T,$,F)),S}}class e1 extends d{parse(T,$){return l6(T.tools),this._client.chat.completions.create(T,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((J)=>fM(J,T))}runFunctions(T,$){if(T.stream)return dS.runFunctions(this._client,T,$);return nF.runFunctions(this._client,T,$)}runTools(T,$){if(T.stream)return dS.runTools(this._client,T,$);return nF.runTools(this._client,T,$)}stream(T,$){return uS.createChatCompletion(this._client,T,$)}}class wM extends d{constructor(){super(...arguments);this.completions=new e1(this._client)}}(function(T){T.Completions=e1})(wM||(wM={}));var r=function(T,$,J,S){if(J==="a"&&!S)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!S:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?S:J==="a"?S.call(T):S?S.value:$.get(T)},l$=function(T,$,J,S,F){if(S==="m")throw new TypeError("Private method is not writable");if(S==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!F:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return S==="a"?F.call(T,J):F?F.value=J:$.set(T,J),J},w$,PX,bJ,TA,zJ,tS,oF,rS,SA,u$,$A,JA,_M,RM,YM,T7,$7,J7,S7,F7,M7,A7;class d$ extends KM{constructor(){super(...arguments);w$.add(this),PX.set(this,[]),bJ.set(this,{}),TA.set(this,{}),zJ.set(this,void 0),tS.set(this,void 0),oF.set(this,void 0),rS.set(this,void 0),SA.set(this,void 0),u$.set(this,void 0),$A.set(this,void 0),JA.set(this,void 0),_M.set(this,void 0)}[(PX=new WeakMap,bJ=new WeakMap,TA=new WeakMap,zJ=new WeakMap,tS=new WeakMap,oF=new WeakMap,rS=new WeakMap,SA=new WeakMap,u$=new WeakMap,$A=new WeakMap,JA=new WeakMap,_M=new WeakMap,w$=new WeakSet,Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("event",(S)=>{let F=$.shift();if(F)F.resolve(S);else T.push(S)}),this.on("end",()=>{J=!0;for(let S of $)S.resolve(void 0);$.length=0}),this.on("abort",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),this.on("error",(S)=>{J=!0;for(let F of $)F.reject(S);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((F,M)=>$.push({resolve:F,reject:M})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let $=new d$;return $._run(()=>$._fromReadableStream(T)),$}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}this._connected();let S=o$.fromReadableStream(T,this.controller);for await(let F of S)r(this,w$,"m",RM).call(this,F);if(S.controller.signal?.aborted)throw new G$;return this._addRun(r(this,w$,"m",YM).call(this))}toReadableStream(){return new o$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,$,J,S,F){let M=new d$;return M._run(()=>M._runToolAssistantStream(T,$,J,S,{...F,headers:{...F?.headers,"X-Stainless-Helper-Method":"stream"}})),M}async _createToolAssistantStream(T,$,J,S,F){let M=F?.signal;if(M){if(M.aborted)this.controller.abort();M.addEventListener("abort",()=>this.controller.abort())}let A={...S,stream:!0},W=await T.submitToolOutputs($,J,A,{...F,signal:this.controller.signal});this._connected();for await(let X of W)r(this,w$,"m",RM).call(this,X);if(W.controller.signal?.aborted)throw new G$;return this._addRun(r(this,w$,"m",YM).call(this))}static createThreadAssistantStream(T,$,J){let S=new d$;return S._run(()=>S._threadAssistantStream(T,$,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),S}static createAssistantStream(T,$,J,S){let F=new d$;return F._run(()=>F._runAssistantStream(T,$,J,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return r(this,$A,"f")}currentRun(){return r(this,JA,"f")}currentMessageSnapshot(){return r(this,zJ,"f")}currentRunStepSnapshot(){return r(this,_M,"f")}async finalRunSteps(){return await this.done(),Object.values(r(this,bJ,"f"))}async finalMessages(){return await this.done(),Object.values(r(this,TA,"f"))}async finalRun(){if(await this.done(),!r(this,tS,"f"))throw Error("Final run was not received.");return r(this,tS,"f")}async _createThreadAssistantStream(T,$,J){let S=J?.signal;if(S){if(S.aborted)this.controller.abort();S.addEventListener("abort",()=>this.controller.abort())}let F={...$,stream:!0},M=await T.createAndRun(F,{...J,signal:this.controller.signal});this._connected();for await(let A of M)r(this,w$,"m",RM).call(this,A);if(M.controller.signal?.aborted)throw new G$;return this._addRun(r(this,w$,"m",YM).call(this))}async _createAssistantStream(T,$,J,S){let F=S?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let M={...J,stream:!0},A=await T.create($,M,{...S,signal:this.controller.signal});this._connected();for await(let W of A)r(this,w$,"m",RM).call(this,W);if(A.controller.signal?.aborted)throw new G$;return this._addRun(r(this,w$,"m",YM).call(this))}static accumulateDelta(T,$){for(let[J,S]of Object.entries($)){if(!T.hasOwnProperty(J)){T[J]=S;continue}let F=T[J];if(F===null||F===void 0){T[J]=S;continue}if(J==="index"||J==="type"){T[J]=S;continue}if(typeof F==="string"&&typeof S==="string")F+=S;else if(typeof F==="number"&&typeof S==="number")F+=S;else if(e0(F)&&e0(S))F=this.accumulateDelta(F,S);else if(Array.isArray(F)&&Array.isArray(S)){if(F.every((M)=>typeof M==="string"||typeof M==="number")){F.push(...S);continue}for(let M of S){if(!e0(M))throw new Error(`Expected array delta entry to be an object but got: ${M}`);let A=M.index;if(A==null)throw console.error(M),new Error("Expected array delta entry to have an `index` property");if(typeof A!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${A}`);let W=F[A];if(W==null)F.push(M);else F[A]=this.accumulateDelta(W,M)}continue}else throw Error(`Unhandled record type: ${J}, deltaValue: ${S}, accValue: ${F}`);T[J]=F}return T}_addRun(T){return T}async _threadAssistantStream(T,$,J){return await this._createThreadAssistantStream($,T,J)}async _runAssistantStream(T,$,J,S){return await this._createAssistantStream($,T,J,S)}async _runToolAssistantStream(T,$,J,S,F){return await this._createToolAssistantStream(J,T,$,S,F)}}RM=function T($){if(this.ended)return;switch(l$(this,$A,$,"f"),r(this,w$,"m",J7).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":r(this,w$,"m",A7).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":r(this,w$,"m",$7).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":r(this,w$,"m",T7).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},YM=function T(){if(this.ended)throw new ST("stream has ended, this shouldn't happen");if(!r(this,tS,"f"))throw Error("Final run has not been received");return r(this,tS,"f")},T7=function T($){let[J,S]=r(this,w$,"m",F7).call(this,$,r(this,zJ,"f"));l$(this,zJ,J,"f"),r(this,TA,"f")[J.id]=J;for(let F of S){let M=J.content[F.index];if(M?.type=="text")this._emit("textCreated",M.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,J),$.data.delta.content)for(let F of $.data.delta.content){if(F.type=="text"&&F.text){let M=F.text,A=J.content[F.index];if(A&&A.type=="text")this._emit("textDelta",M,A.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=r(this,oF,"f")){if(r(this,rS,"f"))switch(r(this,rS,"f").type){case"text":this._emit("textDone",r(this,rS,"f").text,r(this,zJ,"f"));break;case"image_file":this._emit("imageFileDone",r(this,rS,"f").image_file,r(this,zJ,"f"));break}l$(this,oF,F.index,"f")}l$(this,rS,J.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(r(this,oF,"f")!==void 0){let F=$.data.content[r(this,oF,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,r(this,zJ,"f"));break;case"text":this._emit("textDone",F.text,r(this,zJ,"f"));break}}if(r(this,zJ,"f"))this._emit("messageDone",$.data);l$(this,zJ,void 0,"f")}},$7=function T($){let J=r(this,w$,"m",S7).call(this,$);switch(l$(this,_M,J,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let S=$.data.delta;if(S.step_details&&S.step_details.type=="tool_calls"&&S.step_details.tool_calls&&J.step_details.type=="tool_calls")for(let M of S.step_details.tool_calls)if(M.index==r(this,SA,"f"))this._emit("toolCallDelta",M,J.step_details.tool_calls[M.index]);else{if(r(this,u$,"f"))this._emit("toolCallDone",r(this,u$,"f"));if(l$(this,SA,M.index,"f"),l$(this,u$,J.step_details.tool_calls[M.index],"f"),r(this,u$,"f"))this._emit("toolCallCreated",r(this,u$,"f"))}this._emit("runStepDelta",$.data.delta,J);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(l$(this,_M,void 0,"f"),$.data.step_details.type=="tool_calls"){if(r(this,u$,"f"))this._emit("toolCallDone",r(this,u$,"f")),l$(this,u$,void 0,"f")}this._emit("runStepDone",$.data,J);break;case"thread.run.step.in_progress":break}},J7=function T($){r(this,PX,"f").push($),this._emit("event",$)},S7=function T($){switch($.event){case"thread.run.step.created":return r(this,bJ,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let J=r(this,bJ,"f")[$.data.id];if(!J)throw Error("Received a RunStepDelta before creation of a snapshot");let S=$.data;if(S.delta){let F=d$.accumulateDelta(J,S.delta);r(this,bJ,"f")[$.data.id]=F}return r(this,bJ,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":r(this,bJ,"f")[$.data.id]=$.data;break}if(r(this,bJ,"f")[$.data.id])return r(this,bJ,"f")[$.data.id];throw new Error("No snapshot available")},F7=function T($,J){let S=[];switch($.event){case"thread.message.created":return[$.data,S];case"thread.message.delta":if(!J)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=$.data;if(F.delta.content)for(let M of F.delta.content)if(M.index in J.content){let A=J.content[M.index];J.content[M.index]=r(this,w$,"m",M7).call(this,M,A)}else J.content[M.index]=M,S.push(M);return[J,S];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(J)return[J,S];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},M7=function T($,J){return d$.accumulateDelta(J,$)},A7=function T($){switch(l$(this,JA,$.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(l$(this,tS,$.data,"f"),r(this,u$,"f"))this._emit("toolCallDone",r(this,u$,"f")),l$(this,u$,void 0,"f");break;case"thread.run.cancelling":break}};class lF extends d{create(T,$,J){return this._client.post(`/threads/${T}/messages`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/messages/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(xT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/messages`,yM,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/threads/${T}/messages/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}}class yM extends lT{}lF.MessagesPage=yM;class uF extends d{retrieve(T,$,J,S={},F){if(xT(S))return this.retrieve(T,$,J,{},S);return this._client.get(`/threads/${T}/runs/${$}/steps/${J}`,{query:S,...F,headers:{"OpenAI-Beta":"assistants=v2",...F?.headers}})}list(T,$,J={},S){if(xT(J))return this.list(T,$,{},J);return this._client.getAPIList(`/threads/${T}/runs/${$}/steps`,HM,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class HM extends lT{}uF.RunStepsPage=HM;class ES extends d{constructor(){super(...arguments);this.steps=new uF(this._client)}create(T,$,J){let{include:S,...F}=$;return this._client.post(`/threads/${T}/runs`,{query:{include:S},body:F,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers},stream:$.stream??!1})}retrieve(T,$,J){return this._client.get(`/threads/${T}/runs/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}update(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}list(T,$={},J){if(xT($))return this.list(T,{},$);return this._client.getAPIList(`/threads/${T}/runs`,kM,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/threads/${T}/runs/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}createAndStream(T,$,J){return d$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:M}=await this.retrieve(T,$,{...J,headers:{...J?.headers,...S}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let A=5000;if(J?.pollIntervalMs)A=J.pollIntervalMs;else{let W=M.headers.get("openai-poll-after-ms");if(W){let X=parseInt(W);if(!isNaN(X))A=X}}await dJ(A);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(T,$,J){return d$.createAssistantStream(T,this._client.beta.threads.runs,$,J)}submitToolOutputs(T,$,J,S){return this._client.post(`/threads/${T}/runs/${$}/submit_tool_outputs`,{body:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:J.stream??!1})}async submitToolOutputsAndPoll(T,$,J,S){let F=await this.submitToolOutputs(T,$,J,S);return await this.poll(T,F.id,S)}submitToolOutputsStream(T,$,J,S){return d$.createToolAssistantStream(T,$,this._client.beta.threads.runs,J,S)}}class kM extends lT{}ES.RunsPage=kM;ES.Steps=uF;ES.RunStepsPage=HM;class sJ extends d{constructor(){super(...arguments);this.runs=new ES(this._client),this.messages=new lF(this._client)}create(T={},$){if(xT(T))return this.create({},T);return this._client.post("/threads",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/threads/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$){return this._client.delete(`/threads/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(T,$){return this._client.post("/threads/runs",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:T.stream??!1})}async createAndRunPoll(T,$){let J=await this.createAndRun(T,$);return await this.runs.poll(J.thread_id,J.id,$)}createAndRunStream(T,$){return d$.createThreadAssistantStream(T,this._client.beta.threads,$)}}sJ.Runs=ES;sJ.RunsPage=kM;sJ.Messages=lF;sJ.MessagesPage=yM;var W7=async(T)=>{let $=await Promise.allSettled(T),J=$.filter((F)=>F.status==="rejected");if(J.length){for(let F of J)console.error(F.reason);throw new Error(`${J.length} promise(s) failed - see the above errors`)}let S=[];for(let F of $)if(F.status==="fulfilled")S.push(F.value);return S};class dF extends d{create(T,$,J){return this._client.post(`/vector_stores/${T}/files`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T,$={},J){if(xT($))return this.list(T,{},$);return this._client.getAPIList(`/vector_stores/${T}/files`,aS,{query:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}del(T,$,J){return this._client.delete(`/vector_stores/${T}/files/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$,J);return await this.poll(T,S.id,J)}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let F=await this.retrieve(T,$,{...J,headers:S}).withResponse(),M=F.data;switch(M.status){case"in_progress":let A=5000;if(J?.pollIntervalMs)A=J.pollIntervalMs;else{let W=F.response.headers.get("openai-poll-after-ms");if(W){let X=parseInt(W);if(!isNaN(X))A=X}}await dJ(A);break;case"failed":case"completed":return M}}}async upload(T,$,J){let S=await this._client.files.create({file:$,purpose:"assistants"},J);return this.create(T,{file_id:S.id},J)}async uploadAndPoll(T,$,J){let S=await this.upload(T,$,J);return await this.poll(T,S.id,J)}}class aS extends lT{}dF.VectorStoreFilesPage=aS;class QM extends d{create(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}retrieve(T,$,J){return this._client.get(`/vector_stores/${T}/file_batches/${$}`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}cancel(T,$,J){return this._client.post(`/vector_stores/${T}/file_batches/${$}/cancel`,{...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}async createAndPoll(T,$,J){let S=await this.create(T,$);return await this.poll(T,S.id,J)}listFiles(T,$,J={},S){if(xT(J))return this.listFiles(T,$,{},J);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${$}/files`,aS,{query:J,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}async poll(T,$,J){let S={...J?.headers,"X-Stainless-Poll-Helper":"true"};if(J?.pollIntervalMs)S["X-Stainless-Custom-Poll-Interval"]=J.pollIntervalMs.toString();while(!0){let{data:F,response:M}=await this.retrieve(T,$,{...J,headers:S}).withResponse();switch(F.status){case"in_progress":let A=5000;if(J?.pollIntervalMs)A=J.pollIntervalMs;else{let W=M.headers.get("openai-poll-after-ms");if(W){let X=parseInt(W);if(!isNaN(X))A=X}}await dJ(A);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(T,{files:$,fileIds:J=[]},S){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=S?.maxConcurrency??5,M=Math.min(F,$.length),A=this._client,W=$.values(),X=[...J];async function K(G){for(let w of G){let y=await A.files.create({file:w,purpose:"assistants"},S);X.push(y.id)}}let f=Array(M).fill(W).map(K);return await W7(f),await this.createAndPoll(T,{file_ids:X})}}class eJ extends d{constructor(){super(...arguments);this.files=new dF(this._client),this.fileBatches=new QM(this._client)}create(T,$){return this._client.post("/vector_stores",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/vector_stores/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(xT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",EM,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/vector_stores/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class EM extends lT{}eJ.VectorStoresPage=EM;eJ.Files=dF;eJ.VectorStoreFilesPage=aS;eJ.FileBatches=QM;class OJ extends d{constructor(){super(...arguments);this.vectorStores=new eJ(this._client),this.chat=new wM(this._client),this.assistants=new cF(this._client),this.threads=new sJ(this._client)}}OJ.VectorStores=eJ;OJ.VectorStoresPage=EM;OJ.Assistants=cF;OJ.AssistantsPage=FM;OJ.Threads=sJ;class rF extends d{create(T,$){return this._client.post("/completions",{body:T,...$,stream:T.stream??!1})}}class tF extends d{create(T,$){return this._client.post("/embeddings",{body:T,...$})}}class sS extends d{create(T,$){return this._client.post("/files",JJ({body:T,...$}))}retrieve(T,$){return this._client.get(`/files/${T}`,$)}list(T={},$){if(xT(T))return this.list({},T);return this._client.getAPIList("/files",aF,{query:T,...$})}del(T,$){return this._client.delete(`/files/${T}`,$)}content(T,$){return this._client.get(`/files/${T}/content`,{...$,__binaryResponse:!0})}retrieveContent(T,$){return this._client.get(`/files/${T}/content`,{...$,headers:{Accept:"application/json",...$?.headers}})}async waitForProcessing(T,{pollInterval:$=5000,maxWait:J=1800000}={}){let S=new Set(["processed","error","deleted"]),F=Date.now(),M=await this.retrieve(T);while(!M.status||!S.has(M.status))if(await dJ($),M=await this.retrieve(T),Date.now()-F>J)throw new nS({message:`Giving up on waiting for file ${T} to finish processing after ${J} milliseconds.`});return M}}class aF extends lT{}sS.FileObjectsPage=aF;class sF extends d{list(T,$={},J){if(xT($))return this.list(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,zM,{query:$,...J})}}class zM extends lT{}sF.FineTuningJobCheckpointsPage=zM;class TS extends d{constructor(){super(...arguments);this.checkpoints=new sF(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(xT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",OM,{query:T,...$})}cancel(T,$){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,$)}listEvents(T,$={},J){if(xT($))return this.listEvents(T,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,UM,{query:$,...J})}}class OM extends lT{}class UM extends lT{}TS.FineTuningJobsPage=OM;TS.FineTuningJobEventsPage=UM;TS.Checkpoints=sF;TS.FineTuningJobCheckpointsPage=zM;class $S extends d{constructor(){super(...arguments);this.jobs=new TS(this._client)}}$S.Jobs=TS;$S.FineTuningJobsPage=OM;$S.FineTuningJobEventsPage=UM;class eF extends d{createVariation(T,$){return this._client.post("/images/variations",JJ({body:T,...$}))}edit(T,$){return this._client.post("/images/edits",JJ({body:T,...$}))}generate(T,$){return this._client.post("/images/generations",{body:T,...$})}}class eS extends d{retrieve(T,$){return this._client.get(`/models/${T}`,$)}list(T){return this._client.getAPIList("/models",T0,T)}del(T,$){return this._client.delete(`/models/${T}`,$)}}class T0 extends QX{}eS.ModelsPage=T0;class $0 extends d{create(T,$){return this._client.post("/moderations",{body:T,...$})}}class DM extends d{create(T,$,J){return this._client.post(`/uploads/${T}/parts`,JJ({body:$,...J}))}}class TF extends d{constructor(){super(...arguments);this.parts=new DM(this._client)}create(T,$){return this._client.post("/uploads",{body:T,...$})}cancel(T,$){return this._client.post(`/uploads/${T}/cancel`,$)}complete(T,$,J){return this._client.post(`/uploads/${T}/complete`,{body:$,...J})}}TF.Parts=DM;var X7;class yT extends kX{constructor({baseURL:T=s0("OPENAI_BASE_URL"),apiKey:$=s0("OPENAI_API_KEY"),organization:J=s0("OPENAI_ORG_ID")??null,project:S=s0("OPENAI_PROJECT_ID")??null,...F}={}){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 M={apiKey:$,organization:J,project:S,...F,baseURL:T||"https://api.openai.com/v1"};if(!M.dangerouslyAllowBrowser&&n6())throw new ST(`It looks like you're running in a browser-like environment.
27
29
 
28
30
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
29
31
  If you understand the risks and have appropriate mitigations in place,
@@ -32,25 +34,25 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
32
34
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
33
35
 
34
36
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
35
- `);super({baseURL:J.baseURL,timeout:J.timeout??600000,httpAgent:J.httpAgent,maxRetries:J.maxRetries,fetch:J.fetch});this.completions=new yM(this),this.chat=new yf(this),this.embeddings=new kM(this),this.files=new Hf(this),this.images=new YM(this),this.audio=new U$(this),this.moderations=new GM(this),this.models=new _f(this),this.fineTuning=new x$(this),this.beta=new $$(this),this.batches=new kf(this),this.uploads=new Df(this),this._options=J,this.apiKey=S,this.organization=$,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 L0(T,{arrayFormat:"brackets"})}}aX=kT;kT.OpenAI=aX;kT.DEFAULT_TIMEOUT=600000;kT.OpenAIError=$T;kT.APIError=oT;kT.APIConnectionError=Af;kT.APIConnectionTimeoutError=Xf;kT.APIUserAbortError=SS;kT.NotFoundError=LF;kT.ConflictError=NF;kT.RateLimitError=xF;kT.BadRequestError=UF;kT.AuthenticationError=VF;kT.InternalServerError=jF;kT.PermissionDeniedError=BF;kT.UnprocessableEntityError=CF;kT.toFile=h0;kT.fileFromPath=QF;kT.Completions=yM;kT.Chat=yf;kT.Embeddings=kM;kT.Files=Hf;kT.FileObjectsPage=OM;kT.Images=YM;kT.Audio=U$;kT.Moderations=GM;kT.Models=_f;kT.ModelsPage=RM;kT.FineTuning=x$;kT.Beta=$$;kT.Batches=kf;kT.BatchesPage=SM;kT.Uploads=Df;var eX=kT;import{createHash as SY}from"crypto";import*as rT from"fs";import*as j$ from"path";var $Y=/[^a-zA-Z0-9\-._]/g;function fY(T){let S=T.replace($Y,"-");if(S.length<=64)return S;let $=SY("sha256").update(T).digest("hex");return S.slice(-64)+"+"+$}class F1{mode;baseDir;filenameCache=new Map;filesTouched=new Map;constructor(T="off",S=j$.join(process.cwd(),".varmint")){this.mode=T,this.baseDir=S}read(T,S,$){let f=j$.join(this.baseDir,`${T}/${S}.input.json`);if(!rT.existsSync(f))throw new Error(`Squirrel: input file for key "${T}" does not exist`);let M=rT.readFileSync(f,"utf-8"),J=JSON.stringify($,null,"\t");if(J!==M)throw new Error(`Squirrel: the content of the cached input file ${f} does not match the input provided.
37
+ `);super({baseURL:M.baseURL,timeout:M.timeout??600000,httpAgent:M.httpAgent,maxRetries:M.maxRetries,fetch:M.fetch});this.completions=new rF(this),this.chat=new iS(this),this.embeddings=new tF(this),this.files=new sS(this),this.images=new eF(this),this.audio=new rJ(this),this.moderations=new $0(this),this.models=new eS(this),this.fineTuning=new $S(this),this.beta=new OJ(this),this.batches=new oS(this),this.uploads=new TF(this),this._options=M,this.apiKey=$,this.organization=J,this.project=S}defaultQuery(){return this._options.defaultQuery}defaultHeaders(T){return{...super.defaultHeaders(T),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(T){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(T){return MX(T,{arrayFormat:"brackets"})}}X7=yT;yT.OpenAI=X7;yT.DEFAULT_TIMEOUT=600000;yT.OpenAIError=ST;yT.APIError=tT;yT.APIConnectionError=gS;yT.APIConnectionTimeoutError=nS;yT.APIUserAbortError=G$;yT.NotFoundError=b1;yT.ConflictError=h1;yT.RateLimitError=v1;yT.BadRequestError=x1;yT.AuthenticationError=I1;yT.InternalServerError=m1;yT.PermissionDeniedError=Z1;yT.UnprocessableEntityError=P1;yT.toFile=_X;yT.fileFromPath=q1;yT.Completions=rF;yT.Chat=iS;yT.Embeddings=tF;yT.Files=sS;yT.FileObjectsPage=aF;yT.Images=eF;yT.Audio=rJ;yT.Moderations=$0;yT.Models=eS;yT.ModelsPage=T0;yT.FineTuning=$S;yT.Beta=OJ;yT.Batches=oS;yT.BatchesPage=mF;yT.Uploads=TF;var K7=yT;import{createHash as O3}from"crypto";import*as M$ from"fs";import*as JS from"path";var U3=/[^a-zA-Z0-9\-._]/g;function D3(T){let $=T.replace(U3,"-");if($.length<=64)return $;let J=O3("sha256").update(T).digest("hex");return $.slice(-64)+"+"+J}class vX{mode;baseDir;filenameCache=new Map;filesTouched=new Map;constructor(T="off",$=JS.join(process.cwd(),".varmint")){this.mode=T,this.baseDir=$}read(T,$,J){let S=JS.join(this.baseDir,`${T}/${$}.input.json`);if(!M$.existsSync(S))throw new Error(`Squirrel: input file for key "${T}" does not exist`);let F=M$.readFileSync(S,"utf-8"),M=JSON.stringify(J,null,"\t");if(M!==F)throw new Error(`Squirrel: the content of the cached input file ${S} does not match the input provided.
36
38
 
37
39
  Provided:
38
- ${J}
40
+ ${M}
39
41
 
40
42
  Cached:
41
- ${M}`);let F=j$.join(this.baseDir,`${T}/${S}.output.json`);return JSON.parse(rT.readFileSync(F,"utf-8"))}async write(T,S,$,f){let M=j$.join(this.baseDir,T),J=j$.join(M,`${S}.input.json`),F=j$.join(M,`${S}.output.json`),W=JSON.stringify($,null,"\t");if(!rT.existsSync(this.baseDir))rT.mkdirSync(this.baseDir,{recursive:!0});if(!rT.existsSync(M))rT.mkdirSync(M);if(rT.writeFileSync(J,W),rT.existsSync(F))rT.unlinkSync(F);let A=await f(...$);return rT.writeFileSync(F,JSON.stringify(A,null,"\t")),A}add(T,S){return{flush:()=>{this.flush(T)},for:($)=>{if(this.mode!=="off"&&!this.filesTouched.has(T))this.filesTouched.set(T,new Set);return{get:async(...f)=>{let M=$;if(this.mode!=="off"){let J=this.filenameCache.get($);if(!J)J=fY($),this.filenameCache.set($,M),M=J;this.filesTouched.get(T)?.add(M)}switch(this.mode){case"off":return S(...f);case"read":return this.read(T,M,f);case"write":return this.write(T,M,f,S);case"read-write":try{return this.read(T,M,f)}catch(J){if(J instanceof Error)return this.write(T,M,f,S);throw J}}}}}}}flush(...T){for(let[S,$]of this.filesTouched.entries())if(T.length===0||T.includes(S)){let f=j$.join(this.baseDir,S),M=rT.readdirSync(f);for(let J of M){let F=J.replace(".input.json","").replace(".output.json","");if(!$.has(F))console.log(`\uD83D\uDCA5 Flushing ${F}`),rT.unlinkSync(j$.join(f,J))}}}}function MY(T,...S){let[$,f,M,J]=S,F=[{role:"user",content:JX(f)},{role:"user",content:$}],W=J.at(-1);if(W)F.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(`
42
- `)});return{model:T,messages:F}}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 JY(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),J=M.choices[0].message?.content,{usage:F}=M;if(J&&F){let W=F.prompt_tokens,A=F.prompt_tokens_details?.cached_tokens??0,X=W-A,w=F.completion_tokens,y=W*W1[$.model].promptPricePerToken+X*W1[$.model].promptPricePerTokenCached+w*W1[$.model].completionPricePerToken;return{data:JSON.parse(J),usage:F,usdPrice:y}}if(!J&&!F)throw new Error("No content or usage found in completion");if(!J)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var sX=new Map,T8=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:S,usdMinimum:$,apiKey:f,cachingMode:M,cacheKey:J="openai-safegen",logger:F}){this.usdBudget=S,this.usdMinimum=$,this.squirrel=new F1(M);let W=sX.get(f);if(M!=="read"){if(!W)W=new eX({apiKey:f,dangerouslyAllowBrowser:!1}),sX.set(f,W);this.client=W}this.getUnknownJsonFromOpenAi=JY(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(J,this.getUnknownJsonFromOpenAi),this.from=MX(async(...A)=>{if(this.usdBudget<this.usdMinimum)return F?.warn("SafeGen budget exhausted"),A[1];let X=MY(T,...A),w=A[0],y=A[3],{data:k,usage:z,usdPrice:G}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${w.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${y.length}`).get(X);return this.lastUsage=z,this.usdBudget-=G,k})}from};import{exec as R6}from"child_process";import{existsSync as G6}from"fs";import{readFile as z6,writeFile as H6}from"fs/promises";import{resolve as _6}from"path";var A1=(T)=>{let S=ES(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 J=wS(M);if(M.family){let F=$.get(M.family.key);if(!F||!("familyMembers"in F))F={key:M.family.key,familyMembers:new Map},$.set(M.family.key,F);F.familyMembers.set(M.family.subKey,J)}else $.set(f,J)}return $},effects:[({setSelf:$})=>{T.on.atomCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.atomDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return iS(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:$})=>$(S)})};var X1=(T)=>{let S=ES(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let $=new Map;for(let f of[T.readonlySelectors,T.selectors])for(let[M,J]of f)if(!M.includes("\uD83D\uDD0D")){let F=wS(J);if(J.family){let W=$.get(J.family.key);if(!W||!("familyMembers"in W))W={key:J.family.key,familyMembers:new Map},$.set(J.family.key,W);W.familyMembers.set(J.family.subKey,F)}else $.set(M,F)}return $},effects:[({setSelf:$})=>{T.on.selectorCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.selectorDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return iS(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:$})=>$(S)})};class rF{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 w1=new rF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function y1(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var k1=new rF({object:y1,array:(T)=>Array.isArray(T)}),FY=new rF({...w1.supported,...k1.supported}),zM=(T)=>{if(T===void 0)return"undefined";let S=FY.refine(T);if(S)return S.type;return Object.getPrototypeOf(T).constructor.name};class S8{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=WT.STORE){this.store=T;this.atomIndex=A1(this.store),this.selectorIndex=X1(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=S8.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let S=pW(this.atomIndex),$=pW(this.selectorIndex),f=[...S.values()].filter((W)=>("familyMembers"in W)),M=[...$.values()].filter((W)=>("familyMembers"in W)),J=performance.now(),F=[];if(T.atomFamilies)for(let W of f){let A=W.familyMembers.values();for(let X of A){let y=this.statesCreatedAt.get(X.key)??this.auditorCreatedAt,k=J-y;F.push([X,k])}}if(T.selectorFamilies)for(let W of M){let A=W.familyMembers.values();for(let X of A){let y=this.statesCreatedAt.get(X.key)??this.auditorCreatedAt,k=J-y;F.push([X,k])}}return F}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var O1=(T,S)=>{let $=(f,M)=>{let F=((A,X)=>{let w=S(A,X);if(w)return w;return null})(f,M);if(F?.jobComplete??F?.pathComplete)return F;let W=Array.isArray(M)?M.map((A,X)=>[X,A]):y1(M)?Object.entries(M):[];for(let[A,X]of W){let w=$([...f,A],X);if(w?.jobComplete)return w}return{}};$([],T)};function WY(T,S){return{summary:`${T<S?"+":"-"}${Math.abs(T-S)} (${T} \u2192 ${S})`}}function AY(T,S){return{summary:`${T.length<S.length?"+":"-"}${Math.abs(T.length-S.length)} ("${T}" \u2192 "${S}")`}}function XY(T,S){return{summary:`${T} \u2192 ${S}`}}function $8(T,S,$){let f="",M=[],J=[],F=[];return O1(T,(W,A)=>{let X;for(X of W){let w=S[X];if(w===void 0)J.push([X,JSON.stringify(A)]);else{let y=$(A,w);if(y.summary!=="No Change")F.push([X,y])}}}),O1(S,(W,A)=>{let X;for(X of W)if(T[X]===void 0)M.push([X,JSON.stringify(A)])}),f=`\uFF5E${F.length} \uFF0B${M.length} \uFF0D${J.length}`,{summary:f,added:M,removed:J,changed:F}}function wY(T,S,$){return $8(T,S,$)}class f8{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=zM(T),J=zM(S);if(M===J)return{summary:`${M} \u2192 ${J}`};return{summary:`Type change: ${M} \u2192 ${J}`}}}var nN=new f8(w1,k1,{number:WY,string:AY,boolean:XY,null:()=>({summary:"No Change"}),object:$8,array:wY});var K=Symbol.for("drizzle:entityKind"),iN=Symbol.for("drizzle:hasOwnEntityKind");function V(T,S){if(!T||typeof T!=="object")return!1;if(T instanceof S)return!0;if(!Object.prototype.hasOwnProperty.call(S,K))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(K in $&&$[K]===S[K])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[K]="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 K1{static[K]="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 f$=Symbol.for("drizzle:Name");class Y1{static[K]="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 M8(T,this)}}class M8{constructor(T,S){this.table=T,this.reference=S.reference,this.onUpdate=S._onUpdate,this.onDelete=S._onDelete}static[K]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:S,foreignColumns:$}=this.reference(),f=S.map((F)=>F.name),M=$.map((F)=>F.name),J=[this.table[f$],...f,$[0].table[f$],...M];return T??`${J.join("_")}_fk`}}function aF(T,...S){return T(...S)}function J8(T,S){return`${T[f$]}_${S.join("_")}_unique`}function F8(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 W8(T,S=0){let $=[],f=S,M=!1;while(f<T.length){let J=T[f];if(J===","){if(M||f===S)$.push("");M=!0,f++;continue}if(M=!1,J==="\\"){f+=2;continue}if(J==='"'){let[A,X]=F8(T,f+1,!0);$.push(A),f=X;continue}if(J==="}")return[$,f+1];if(J==="{"){let[A,X]=W8(T,f+1);$.push(A),f=X;continue}let[F,W]=F8(T,f,!1);$.push(F),f=W}return[$,f]}function A8(T){let[S]=W8(T,1);return S}function R1(T){return`{${T.map((S)=>{if(Array.isArray(S))return R1(S);if(typeof S==="string")return`"${S.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${S}`}).join(",")}}`}class t extends K1{foreignKeyConfigs=[];static[K]="PgColumnBuilder";array(T){return new w8(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 aF((M,J)=>{let F=new Y1(()=>{let W=M();return{columns:[T],foreignColumns:[W]}});if(J.onUpdate)F.onUpdate(J.onUpdate);if(J.onDelete)F.onDelete(J.onDelete);return F.build(S)},$,f)})}buildExtraConfigColumn(T){return new X8(T,this.config)}}class q extends ET{constructor(T,S){if(!S.uniqueName)S.uniqueName=J8(T,[S.name]);super(T,S);this.table=T}static[K]="PgColumn"}class X8 extends q{static[K]="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 NJ{static[K]="IndexedColumn";constructor(T,S,$,f){this.name=T,this.keyAsName=S,this.type=$,this.indexConfig=f}name;keyAsName;type;indexConfig}class w8 extends t{static[K]="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 G1(T,this.config,S)}}class G1 extends q{constructor(T,S,$,f){super(T,S);this.baseColumn=$,this.range=f,this.size=S.size}size;static[K]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=A8(T);return T.map((S)=>this.baseColumn.mapFromDriverValue(S))}mapToDriverValue(T,S=!1){let $=T.map((f)=>f===null?null:V(this.baseColumn,G1)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if(S)return $;return R1($)}}var z1=Symbol.for("drizzle:isPgEnum");function y8(T){return!!T&&typeof T==="function"&&z1 in T&&T[z1]===!0}class k8 extends t{static[K]="PgEnumColumnBuilder";constructor(T,S){super(T,"string","PgEnumColumn");this.config.enum=S}build(T){return new O8(T,this.config)}}class O8 extends q{static[K]="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 eF(T,S){return yY(T,S,void 0)}function yY(T,S,$){let f=Object.assign((M)=>new k8(M??"",f),{enumName:T,enumValues:S,schema:$,[z1]:!0});return f}class aT{static[K]="Subquery";constructor(T,S,$,f=!1){this._={brand:"Subquery",sql:T,selectedFields:S,alias:$,isWith:f}}}class CJ extends aT{static[K]="WithSubquery"}var K8="0.38.3";var H1,_1,QT={startActiveSpan(T,S){if(!H1)return S();if(!_1)_1=H1.trace.getTracer("drizzle-orm",K8);return aF(($,f)=>f.startActiveSpan(T,(M)=>{try{return S(M)}catch(J){throw M.setStatus({code:$.SpanStatusCode.ERROR,message:J instanceof Error?J.message:"Unknown error"}),J}finally{M.end()}}),H1,_1)}};var xT=Symbol.for("drizzle:ViewBaseConfig");var sF=Symbol.for("drizzle:Schema"),TW=Symbol.for("drizzle:Columns"),Y8=Symbol.for("drizzle:ExtraConfigColumns"),D1=Symbol.for("drizzle:OriginalName"),E1=Symbol.for("drizzle:BaseName"),SW=Symbol.for("drizzle:IsAlias"),R8=Symbol.for("drizzle:ExtraConfigBuilder"),kY=Symbol.for("drizzle:IsDrizzleTable");class v{static[K]="Table";static Symbol={Name:f$,Schema:sF,OriginalName:D1,Columns:TW,ExtraConfigColumns:Y8,BaseName:E1,IsAlias:SW,ExtraConfigBuilder:R8};[f$];[D1];[sF];[TW];[Y8];[E1];[SW]=!1;[kY]=!0;[R8]=void 0;constructor(T,S,$){this[f$]=this[D1]=T,this[sF]=S,this[E1]=$}}function cS(T){return T[f$]}function Ef(T){return`${T[sF]??"public"}.${T[f$]}`}function Q1(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function OY(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[K]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[K]="SQL";decoder=z8;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:J,prepareTyping:F,inlineParams:W,paramStartIndex:A}=$;return OY(T.map((X)=>{if(V(X,eT))return{sql:X.value.join(""),params:[]};if(V(X,$W))return{sql:M(X.value),params:[]};if(X===void 0)return{sql:"",params:[]};if(Array.isArray(X)){let w=[new eT("(")];for(let[y,k]of X.entries())if(w.push(k),y<X.length-1)w.push(new eT(", "));return w.push(new eT(")")),this.buildQueryFromSourceParams(w,$)}if(V(X,c))return this.buildQueryFromSourceParams(X.queryChunks,{...$,inlineParams:W||X.shouldInlineParams});if(V(X,v)){let w=X[v.Symbol.Schema],y=X[v.Symbol.Name];return{sql:w===void 0?M(y):M(w)+"."+M(y),params:[]}}if(V(X,ET)){let w=f.getColumnCasing(X);if(S.invokeSource==="indexes")return{sql:M(w),params:[]};let y=X.table[v.Symbol.Schema];return{sql:X.table[SW]||y===void 0?M(X.table[v.Symbol.Name])+"."+M(w):M(y)+"."+M(X.table[v.Symbol.Name])+"."+M(w),params:[]}}if(V(X,VS)){let w=X[xT].schema,y=X[xT].name;return{sql:w===void 0?M(y):M(w)+"."+M(y),params:[]}}if(V(X,ZS)){if(V(X.value,d$))return{sql:J(A.value++,X),params:[X],typings:["none"]};let w=X.value===null?null:X.encoder.mapToDriverValue(X.value);if(V(w,c))return this.buildQueryFromSourceParams([w],$);if(W)return{sql:this.mapInlineParam(w,$),params:[]};let y=["none"];if(F)y=[F(X.encoder)];return{sql:J(A.value++,w),params:[w],typings:y}}if(V(X,d$))return{sql:J(A.value++,X),params:[X],typings:["none"]};if(V(X,c.Aliased)&&X.fieldAlias!==void 0)return{sql:M(X.fieldAlias),params:[]};if(V(X,aT)){if(X._.isWith)return{sql:M(X._.alias),params:[]};return this.buildQueryFromSourceParams([new eT("("),X._.sql,new eT(") "),new $W(X._.alias)],$)}if(y8(X)){if(X.schema)return{sql:M(X.schema)+"."+M(X.enumName),params:[]};return{sql:M(X.enumName),params:[]}}if(Q1(X)){if(X.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([X.getSQL()],$);return this.buildQueryFromSourceParams([new eT("("),X.getSQL(),new eT(")")],$)}if(W)return{sql:this.mapInlineParam(X,$),params:[]};return{sql:J(A.value++,X),params:[X],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 $W{constructor(T){this.value=T}static[K]="Name";brand;getSQL(){return new c([this])}}function G8(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var z8={mapFromDriverValue:(T)=>T},H8={mapToDriverValue:(T)=>T},ZC={...z8,...H8};class ZS{constructor(T,S=H8){this.value=T,this.encoder=S}static[K]="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,X){let w=[];for(let[y,k]of A.entries()){if(y>0&&X!==void 0)w.push(X);w.push(k)}return new c(w)}T.join=M;function J(A){return new $W(A)}T.identifier=J;function F(A){return new d$(A)}T.placeholder=F;function W(A,X){return new ZS(A,X)}T.param=W})(Y||(Y={}));((T)=>{class S{constructor($,f){this.sql=$,this.fieldAlias=f}static[K]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new S(this.sql,this.fieldAlias)}}T.Aliased=S})(c||(c={}));class d${constructor(T){this.name=T}static[K]="Placeholder";getSQL(){return new c([this])}}function U1(T,S){return T.map(($)=>{if(V($,d$)){if(!($.name in S))throw new Error(`No value for placeholder "${$.name}" was provided`);return S[$.name]}if(V($,ZS)&&V($.value,d$)){if(!($.value.name in S))throw new Error(`No value for placeholder "${$.value.name}" was provided`);return $.encoder.mapToDriverValue(S[$.value.name])}return $})}var KY=Symbol.for("drizzle:IsDrizzleView");class VS{static[K]="View";[xT];[KY]=!0;constructor({name:T,schema:S,selectedFields:$,query:f}){this[xT]={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])};v.prototype.getSQL=function(){return new c([this])};aT.prototype.getSQL=function(){return new c([this])};class HM{constructor(T){this.table=T}static[K]="ColumnAliasProxyHandler";get(T,S){if(S==="table")return this.table;return T[S]}}class xJ{constructor(T,S){this.alias=T,this.replaceOriginalName=S}static[K]="TableAliasProxyHandler";get(T,S){if(S===v.Symbol.IsAlias)return!0;if(S===v.Symbol.Name)return this.alias;if(this.replaceOriginalName&&S===v.Symbol.OriginalName)return this.alias;if(S===xT)return{...T[xT],name:this.alias,isAlias:!0};if(S===v.Symbol.Columns){let f=T[v.Symbol.Columns];if(!f)return f;let M={};return Object.keys(f).map((J)=>{M[J]=new Proxy(f[J],new HM(new Proxy(T,this)))}),M}let $=T[S];if(V($,ET))return new Proxy($,new HM(new Proxy(T,this)));return $}}function fW(T,S){return new Proxy(T,new xJ(S,!1))}function O$(T,S){return new Proxy(T,new HM(new Proxy(T.table,new xJ(S,!1))))}function V1(T,S){return new c.Aliased(jJ(T.sql,S),T.fieldAlias)}function jJ(T,S){return Y.join(T.queryChunks.map(($)=>{if(V($,ET))return O$($,S);if(V($,c))return jJ($,S);if(V($,c.Aliased))return V1($,S);return $}))}class MW extends Error{static[K]="DrizzleError";constructor({message:T,cause:S}){super(T);this.name="DrizzleError",this.cause=S}}class B1 extends MW{static[K]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function BS(T,S){if(G8(S)&&!Q1(T)&&!V(T,ZS)&&!V(T,d$)&&!V(T,ET)&&!V(T,v)&&!V(T,VS))return new ZS(T,S);return T}var JW=(T,S)=>{return Y`${T} = ${BS(S,T)}`},_8=(T,S)=>{return Y`${T} <> ${BS(S,T)}`};function IJ(...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 D8(...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 E8(T){return Y`not ${T}`}var FW=(T,S)=>{return Y`${T} > ${BS(S,T)}`},Q8=(T,S)=>{return Y`${T} >= ${BS(S,T)}`},U8=(T,S)=>{return Y`${T} < ${BS(S,T)}`},V8=(T,S)=>{return Y`${T} <= ${BS(S,T)}`};function B8(T,S){if(Array.isArray(S)){if(S.length===0)return Y`false`;return Y`${T} in ${S.map(($)=>BS($,T))}`}return Y`${T} in ${BS(S,T)}`}function L8(T,S){if(Array.isArray(S)){if(S.length===0)return Y`true`;return Y`${T} not in ${S.map(($)=>BS($,T))}`}return Y`${T} not in ${BS(S,T)}`}function N8(T){return Y`${T} is null`}function C8(T){return Y`${T} is not null`}function x8(T){return Y`exists ${T}`}function j8(T){return Y`not exists ${T}`}function I8(T,S,$){return Y`${T} between ${BS(S,T)} and ${BS($,T)}`}function b8(T,S,$){return Y`${T} not between ${BS(S,T)} and ${BS($,T)}`}function Z8(T,S){return Y`${T} like ${S}`}function q8(T,S){return Y`${T} not like ${S}`}function m8(T,S){return Y`${T} ilike ${S}`}function h8(T,S){return Y`${T} not ilike ${S}`}function n8(T){return Y`${T} asc`}function v8(T){return Y`${T} desc`}class P8{static[K]="ConsoleLogWriter";write(T){console.log(T)}}class L1{static[K]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new P8}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 N1{static[K]="NoopLogger";logQuery(){}}class HS{static[K]="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 c8(T,S,$){let f={},M=T.reduce((J,{path:F,field:W},A)=>{let X;if(V(W,ET))X=W;else if(V(W,c))X=W.decoder;else X=W.sql.decoder;let w=J;for(let[y,k]of F.entries())if(y<F.length-1){if(!(k in w))w[k]={};w=w[k]}else{let z=S[A],G=w[k]=z===null?null:X.mapFromDriverValue(z);if($&&V(W,ET)&&F.length===2){let U=F[0];if(!(U in f))f[U]=G===null?cS(W.table):!1;else if(typeof f[U]==="string"&&f[U]!==cS(W.table))f[U]=!1}}return J},{});if($&&Object.keys(f).length>0){for(let[J,F]of Object.entries(f))if(typeof F==="string"&&!$[F])M[J]=null}return M}function oS(T,S){return Object.entries(T).reduce(($,[f,M])=>{if(typeof f!=="string")return $;let J=S?[...S,f]:[f];if(V(M,ET)||V(M,c)||V(M,c.Aliased))$.push({path:J,field:M});else if(V(M,v))$.push(...oS(M[v.Symbol.Columns],J));else $.push(...oS(M,J));return $},[])}function bJ(T,S){let $=Object.keys(T),f=Object.keys(S);if($.length!==f.length)return!1;for(let[M,J]of $.entries())if(J!==f[M])return!1;return!0}function WW(T,S){let $=Object.entries(S).filter(([,f])=>f!==void 0).map(([f,M])=>{if(V(M,c)||V(M,ET))return[f,M];else return[f,new ZS(M,T[v.Symbol.Columns][f])]});if($.length===0)throw new Error("No values to set");return Object.fromEntries($)}function o8(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 g8(T){return T[v.Symbol.Columns]}function I$(T){return V(T,aT)?T._.alias:V(T,VS)?T[xT].name:V(T,c)?void 0:T[v.Symbol.IsAlias]?T[v.Symbol.Name]:T[v.Symbol.BaseName]}function AT(T,S){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:S}}function t8(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[K]="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 p8 extends r${static[K]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new i8(T,this.config)}}class i8 extends q{static[K]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class u8 extends r${static[K]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new l8(T,this.config)}}class l8 extends q{static[K]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function d8(T,S){let{name:$,config:f}=AT(T,S);if(f.mode==="number")return new p8($);return new u8($)}class r8 extends t{static[K]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new a8(T,this.config)}}class a8 extends q{static[K]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class e8 extends t{static[K]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new s8(T,this.config)}}class s8 extends q{static[K]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function Tw(T,S){let{name:$,config:f}=AT(T,S);if(f.mode==="number")return new r8($);return new e8($)}class Sw extends t{static[K]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new $w(T,this.config)}}class $w extends q{static[K]="PgBoolean";getSQLType(){return"boolean"}}function ZJ(T){return new Sw(T??"")}class fw extends t{static[K]="PgCharBuilder";constructor(T,S){super(T,"string","PgChar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new Mw(T,this.config)}}class Mw extends q{static[K]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function Jw(T,S={}){let{name:$,config:f}=AT(T,S);return new fw($,f)}class Fw extends t{static[K]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new Ww(T,this.config)}}class Ww extends q{static[K]="PgCidr";getSQLType(){return"cidr"}}function Aw(T){return new Fw(T??"")}class Xw extends t{static[K]="PgCustomColumnBuilder";constructor(T,S,$){super(T,"custom","PgCustomColumn");this.config.fieldConfig=S,this.config.customTypeParams=$}build(T){return new ww(T,this.config)}}class ww extends q{static[K]="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 yw(T){return(S,$)=>{let{name:f,config:M}=AT(S,$);return new Xw(f,M,T)}}class b$ extends t{static[K]="PgDateColumnBaseBuilder";defaultNow(){return this.default(Y`now()`)}}class kw extends b${static[K]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new AW(T,this.config)}}class AW extends q{static[K]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class Ow extends b${static[K]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new XW(T,this.config)}}class XW extends q{static[K]="PgDateString";getSQLType(){return"date"}}function Kw(T,S){let{name:$,config:f}=AT(T,S);if(f?.mode==="date")return new kw($);return new Ow($)}class Yw extends t{static[K]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new Rw(T,this.config)}}class Rw extends q{static[K]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function Gw(T){return new Yw(T??"")}class zw extends t{static[K]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new Hw(T,this.config)}}class Hw extends q{static[K]="PgInet";getSQLType(){return"inet"}}function _w(T){return new zw(T??"")}class Dw extends r${static[K]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new Ew(T,this.config)}}class Ew extends q{static[K]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function wW(T){return new Dw(T??"")}class Qw extends t{static[K]="PgIntervalBuilder";constructor(T,S){super(T,"string","PgInterval");this.config.intervalConfig=S}build(T){return new Uw(T,this.config)}}class Uw extends q{static[K]="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 Vw(T,S={}){let{name:$,config:f}=AT(T,S);return new Qw($,f)}class Bw extends t{static[K]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new yW(T,this.config)}}class yW extends q{static[K]="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 Lw(T){return new Bw(T??"")}class Nw extends t{static[K]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new kW(T,this.config)}}class kW extends q{static[K]="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 Cw(T){return new Nw(T??"")}class xw extends t{static[K]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new jw(T,this.config)}}class jw extends q{static[K]="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 Iw extends t{static[K]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new bw(T,this.config)}}class bw extends q{static[K]="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 Zw(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new xw($);return new Iw($)}class qw extends t{static[K]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new mw(T,this.config)}}class mw extends q{static[K]="PgMacaddr";getSQLType(){return"macaddr"}}function hw(T){return new qw(T??"")}class nw extends t{static[K]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new vw(T,this.config)}}class vw extends q{static[K]="PgMacaddr8";getSQLType(){return"macaddr8"}}function Pw(T){return new nw(T??"")}class cw extends t{static[K]="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 q{static[K]="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 ow(T,S){let{name:$,config:f}=AT(T,S);return new cw($,f?.precision,f?.scale)}class gw extends t{static[K]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new tw(T,this.config)}}class tw extends q{static[K]="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 pw extends t{static[K]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new iw(T,this.config)}}class iw extends q{static[K]="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 uw(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new gw($);return new pw($)}function YY(T){let S=[];for(let $=0;$<T.length;$+=2)S.push(Number.parseInt(T.slice($,$+2),16));return new Uint8Array(S)}function lw(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 C1(T){let S=YY(T),$=0,f=S[$];$+=1;let M=new DataView(S.buffer),J=M.getUint32($,f===1);$+=4;let F;if(J&536870912)F=M.getUint32($,f===1),$+=4;if((J&65535)===1){let W=lw(S,$);$+=8;let A=lw(S,$);return $+=8,[W,A]}throw new Error("Unsupported geometry type")}class dw extends t{static[K]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new rw(T,this.config)}}class rw extends q{static[K]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return C1(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class aw extends t{static[K]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new ew(T,this.config)}}class ew extends q{static[K]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let S=C1(T);return{x:S[0],y:S[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function sw(T,S){let{name:$,config:f}=AT(T,S);if(!f?.mode||f.mode==="tuple")return new dw($);return new aw($)}class Ty extends t{static[K]="PgRealBuilder";constructor(T,S){super(T,"number","PgReal");this.config.length=S}build(T){return new Sy(T,this.config)}}class Sy extends q{static[K]="PgReal";constructor(T,S){super(T,S)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function $y(T){return new Ty(T??"")}class fy extends t{static[K]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new My(T,this.config)}}class My extends q{static[K]="PgSerial";getSQLType(){return"serial"}}function Jy(T){return new fy(T??"")}class Fy extends r${static[K]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new Wy(T,this.config)}}class Wy extends q{static[K]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function Ay(T){return new Fy(T??"")}class Xy extends t{static[K]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new wy(T,this.config)}}class wy extends q{static[K]="PgSmallSerial";getSQLType(){return"smallserial"}}function yy(T){return new Xy(T??"")}class ky extends t{static[K]="PgTextBuilder";constructor(T,S){super(T,"string","PgText");this.config.enumValues=S.enum}build(T){return new Oy(T,this.config)}}class Oy extends q{static[K]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function Ky(T,S={}){let{name:$,config:f}=AT(T,S);return new ky($,f)}class Yy extends b${constructor(T,S,$){super(T,"string","PgTime");this.withTimezone=S,this.precision=$,this.config.withTimezone=S,this.config.precision=$}static[K]="PgTimeBuilder";build(T){return new KW(T,this.config)}}class KW extends q{static[K]="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 Ry(T,S={}){let{name:$,config:f}=AT(T,S);return new Yy($,f.withTimezone??!1,f.precision)}class Gy extends b${static[K]="PgTimestampBuilder";constructor(T,S,$){super(T,"date","PgTimestamp");this.config.withTimezone=S,this.config.precision=$}build(T){return new YW(T,this.config)}}class YW extends q{static[K]="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 zy extends b${static[K]="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 q{static[K]="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 M$(T,S={}){let{name:$,config:f}=AT(T,S);if(f?.mode==="string")return new zy($,f.withTimezone??!1,f.precision);return new Gy($,f?.withTimezone??!1,f?.precision)}class Hy extends t{static[K]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(Y`gen_random_uuid()`)}build(T){return new GW(T,this.config)}}class GW extends q{static[K]="PgUUID";getSQLType(){return"uuid"}}function qS(T){return new Hy(T??"")}class _y extends t{static[K]="PgVarcharBuilder";constructor(T,S){super(T,"string","PgVarchar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new Dy(T,this.config)}}class Dy extends q{static[K]="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 _y($,f)}class Ey extends t{static[K]="PgBinaryVectorBuilder";constructor(T,S){super(T,"string","PgBinaryVector");this.config.dimensions=S.dimensions}build(T){return new Qy(T,this.config)}}class Qy extends q{static[K]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function Uy(T,S){let{name:$,config:f}=AT(T,S);return new Ey($,f)}class Vy extends t{static[K]="PgHalfVectorBuilder";constructor(T,S){super(T,"array","PgHalfVector");this.config.dimensions=S.dimensions}build(T){return new By(T,this.config)}}class By extends q{static[K]="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 Ly(T,S){let{name:$,config:f}=AT(T,S);return new Vy($,f)}class Ny extends t{static[K]="PgSparseVectorBuilder";constructor(T,S){super(T,"string","PgSparseVector");this.config.dimensions=S.dimensions}build(T){return new Cy(T,this.config)}}class Cy extends q{static[K]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function xy(T,S){let{name:$,config:f}=AT(T,S);return new Ny($,f)}class jy extends t{static[K]="PgVectorBuilder";constructor(T,S){super(T,"array","PgVector");this.config.dimensions=S.dimensions}build(T){return new Iy(T,this.config)}}class Iy extends q{static[K]="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 by(T,S){let{name:$,config:f}=AT(T,S);return new jy($,f)}function Zy(){return{bigint:d8,bigserial:Tw,boolean:ZJ,char:Jw,cidr:Aw,customType:yw,date:Kw,doublePrecision:Gw,inet:_w,integer:wW,interval:Vw,json:Lw,jsonb:Cw,line:Zw,macaddr:hw,macaddr8:Pw,numeric:ow,point:uw,geometry:sw,real:$y,serial:Jy,smallint:Ay,smallserial:yy,text:Ky,time:Ry,timestamp:M$,uuid:qS,varchar:fS,bit:Uy,halfvec:Ly,sparsevec:xy,vector:by}}var x1=Symbol.for("drizzle:PgInlineForeignKeys"),qy=Symbol.for("drizzle:EnableRLS");class MS extends v{static[K]="PgTable";static Symbol=Object.assign({},v.Symbol,{InlineForeignKeys:x1,EnableRLS:qy});[x1]=[];[qy]=!1;[v.Symbol.ExtraConfigBuilder]=void 0}function RY(T,S,$,f,M=T){let J=new MS(T,f,M),F=typeof S==="function"?S(Zy()):S,W=Object.fromEntries(Object.entries(F).map(([w,y])=>{let k=y;k.setName(w);let z=k.build(J);return J[x1].push(...k.buildForeignKeys(z,J)),[w,z]})),A=Object.fromEntries(Object.entries(F).map(([w,y])=>{let k=y;k.setName(w);let z=k.buildExtraConfigColumn(J);return[w,z]})),X=Object.assign(J,W);if(X[v.Symbol.Columns]=W,X[v.Symbol.ExtraConfigColumns]=A,$)X[MS.Symbol.ExtraConfigBuilder]=$;return Object.assign(X,{enableRLS:()=>{return X[MS.Symbol.EnableRLS]=!0,X}})}var a$=(T,S,$)=>{return RY(T,S,$,void 0)};function my(...T){if(T[0].columns)return new qJ(T[0].columns,T[0].name);return new qJ(T)}class qJ{static[K]="PgPrimaryKeyBuilder";columns;name;constructor(T,S){this.columns=T,this.name=S}build(T){return new hy(T,this.columns,this.name)}}class hy{constructor(T,S,$){this.table=T,this.columns=S,this.name=$}static[K]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[MS.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class j1{constructor(T,S,$){this.sourceTable=T,this.referencedTable=S,this.relationName=$,this.referencedTableName=S[v.Symbol.Name]}static[K]="Relation";referencedTableName;fieldName}class ny{constructor(T,S){this.table=T,this.config=S}static[K]="Relations"}class e$ extends j1{constructor(T,S,$,f){super(T,S,$?.relationName);this.config=$,this.isNullable=f}static[K]="One";withFieldName(T){let S=new e$(this.sourceTable,this.referencedTable,this.config,this.isNullable);return S.fieldName=T,S}}class mJ extends j1{constructor(T,S,$){super(T,S,$?.relationName);this.config=$}static[K]="Many";withFieldName(T){let S=new mJ(this.sourceTable,this.referencedTable,this.config);return S.fieldName=T,S}}function vy(){return{and:IJ,between:I8,eq:JW,exists:x8,gt:FW,gte:Q8,ilike:m8,inArray:B8,isNull:N8,isNotNull:C8,like:Z8,lt:U8,lte:V8,ne:_8,not:E8,notBetween:b8,notExists:j8,notLike:q8,notIlike:h8,notInArray:L8,or:D8,sql:Y}}function Py(){return{sql:Y,asc:n8,desc:v8}}function cy(T,S){if(Object.keys(T).length===1&&"default"in T&&!V(T.default,v))T=T.default;let $={},f={},M={};for(let[J,F]of Object.entries(T))if(V(F,v)){let W=Ef(F),A=f[W];$[W]=J,M[J]={tsName:J,dbName:F[v.Symbol.Name],schema:F[v.Symbol.Schema],columns:F[v.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let w of Object.values(F[v.Symbol.Columns]))if(w.primary)M[J].primaryKey.push(w);let X=F[v.Symbol.ExtraConfigBuilder]?.(F[v.Symbol.ExtraConfigColumns]);if(X){for(let w of Object.values(X))if(V(w,qJ))M[J].primaryKey.push(...w.columns)}}else if(V(F,ny)){let W=Ef(F.table),A=$[W],X=F.config(S(F.table)),w;for(let[y,k]of Object.entries(X))if(A){let z=M[A];if(z.relations[y]=k,w)z.primaryKey.push(...w)}else{if(!(W in f))f[W]={relations:{},primaryKey:w};f[W].relations[y]=k}}return{tables:M,tableNamesMap:$}}function GY(T){return function S($,f){return new e$(T,$,f,f?.fields.reduce((M,J)=>M&&J.notNull,!0)??!1)}}function zY(T){return function S($,f){return new mJ(T,$,f)}}function oy(T,S,$){if(V($,e$)&&$.config)return{fields:$.config.fields,references:$.config.references};let f=S[Ef($.referencedTable)];if(!f)throw new Error(`Table "${$.referencedTable[v.Symbol.Name]}" not found in schema`);let M=T[f];if(!M)throw new Error(`Table "${f}" not found in schema`);let J=$.sourceTable,F=S[Ef(J)];if(!F)throw new Error(`Table "${J[v.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[v.Symbol.Name]}". Please specify relation name`);if(W[0]&&V(W[0],e$)&&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 "${F}.${$.fieldName}"`)}function gy(T){return{one:GY(T),many:zY(T)}}function zW(T,S,$,f,M=(J)=>J){let J={};for(let[F,W]of f.entries())if(W.isJson){let A=S.relations[W.tsKey],X=$[F],w=typeof X==="string"?JSON.parse(X):X;J[W.tsKey]=V(A,e$)?w&&zW(T,T[W.relationTableTsKey],w,W.selection,M):w.map((y)=>zW(T,T[W.relationTableTsKey],y,W.selection,M))}else{let A=M($[F]),X=W.field,w;if(V(X,ET))w=X;else if(V(X,c))w=X.decoder;else w=X.sql.decoder;J[W.tsKey]=A===null?null:w.mapFromDriverValue(A)}return J}import O6 from"path";import oY from"os";import gY from"fs";var HW=new Map,I1=new Map,b1=Symbol("OriginError"),_M={};class gS extends Promise{constructor(T,S,$,f,M={}){let J,F;super((W,A)=>{J=W,F=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,J(W)),this.reject=(W)=>(this.active=!1,F(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[b1]=this.handler.debug?new Error:this.tagged&&HY(this.strings)}get origin(){return(this.handler.debug?this[b1].stack:this.tagged&&I1.has(this.strings)?I1.get(this.strings):I1.set(this.strings,this[b1].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,J)=>{this.cursorFn=(F)=>{return M({value:F,done:!1}),new Promise((W)=>$=W)},this.resolve=()=>(this.active=!1,M({done:!0})),this.reject=(F)=>(this.active=!1,J(F))});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 HY(T){if(HW.has(T))return HW.get(T);let S=Error.stackTraceLimit;return Error.stackTraceLimit=4,HW.set(T,new Error),Error.stackTraceLimit=S,HW.get(T)}class DM extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var gT={connection:ty,postgres:py,generic:iy,notSupported:uy};function ty(T,S,$){let{host:f,port:M}=$||S,J=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(J,ty),J}function py(T){let S=new DM(T);return Error.captureStackTrace(S,py),S}function iy(T,S){let $=Object.assign(new Error(T+": "+S),{code:T});return Error.captureStackTrace($,iy),$}function uy(T){let S=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(S,uy),S}var _Y={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 EW{then(){Z1()}catch(){Z1()}finally(){Z1()}}class PJ extends EW{constructor(T){super();this.value=VW(T)}}class K$ extends EW{constructor(T,S,$){super();this.value=T,this.type=S,this.array=$}}class QW extends EW{constructor(T,S){super();this.first=T,this.rest=S}build(T,S,$,f){let M=DY.map(([J,F])=>({fn:F,i:T.search(J)})).sort((J,F)=>J.i-F.i).pop();return M.i===-1?v1(this.first,f):M.fn(this.first,this.rest,S,$,f)}}function UW(T,S,$,f){let M=T instanceof K$?T.value:T;if(M===void 0){if(T instanceof K$?T.value=f.transform.undefined:M=T=f.transform.undefined,M===void 0)throw gT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+$.push(T instanceof K$?(S.push(T.value),T.array?T.array[T.type||DW(T.value)]||T.type||ay(T.value):T.type):(S.push(T),DW(T)))}var dy=sy(_Y);function h1(T,S,$,f,M,J){for(let F=1;F<T.strings.length;F++)S+=n1(S,$,f,M,J)+T.strings[F],$=T.args[F];return S}function n1(T,S,$,f,M){return S instanceof QW?S.build(T,$,f,M):S instanceof gS?m1(S,$,f,M):S instanceof PJ?S.value:S&&S[0]instanceof gS?S.reduce((J,F)=>J+" "+m1(F,$,f,M),""):UW(S,$,f,M)}function m1(T,S,$,f){return T.fragment=!0,h1(T,T.strings[0],T.args[0],S,$,f)}function ry(T,S,$,f,M){return T.map((J)=>"("+f.map((F)=>n1("values",J[F],S,$,M)).join(",")+")").join(",")}function ly(T,S,$,f,M){let J=Array.isArray(T[0]),F=S.length?S.flat():Object.keys(J?T[0]:T);return ry(J?T:[T],$,f,F,M)}function _W(T,S,$,f,M){if(typeof T==="string"&&(T=[T].concat(S)),Array.isArray(T))return v1(T,M);let J;return(S.length?S.flat():Object.keys(T)).map((W)=>{return J=T[W],(J instanceof gS?m1(J,$,f,M):J instanceof PJ?J.value:UW(J,$,f,M))+" as "+VW(M.transform.column.to?M.transform.column.to(W):W)}).join(",")}var DY=Object.entries({values:ly,in:(...T)=>{let S=ly(...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((J)=>VW(M.transform.column.to?M.transform.column.to(J):J)+"="+n1("values",T[J],$,f,M))},insert(T,S,$,f,M){let J=S.length?S.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+v1(J,M)+")values"+ry(Array.isArray(T)?T:[T],$,f,J,M)}}).map(([T,S])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),S]);function Z1(){throw gT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:EY,parsers:QY}=dy;function ay(T){if(Array.isArray(T))return ay(T[0]);return typeof T==="string"?1009:0}var ey=function(T){let S=sy(T||{});return{serializers:Object.assign({},EY,S.serializers),parsers:Object.assign({},QY,S.parsers)}};function sy(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 v1(T,{transform:{column:S}}){return T.map(($)=>VW(S.to?S.to($):$)).join(",")}var VW=function T(S){return'"'+S.replace(/"/g,'""').replace(/\./g,'"."')+'"'},DW=function T(S){return S instanceof K$?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},UY=/\\/g,VY=/"/g;function BY(T){return T.replace(UY,"\\\\").replace(VY,"\\\"")}var Tk=function T(S,$,f,M){if(Array.isArray(S)===!1)return S;if(!S.length)return"{}";let J=S[0],F=M===1020?";":",";if(Array.isArray(J)&&!J.type)return"{"+S.map((W)=>T(W,$,f,M)).join(F)+"}";return"{"+S.map((W)=>{if(W===void 0){if(W=f.transform.undefined,W===void 0)throw gT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+BY($?$(W.type?W.value:W):""+W)+'"'}).join(F)+"}"},q1={i:0,char:null,str:"",quoted:!1,last:0},Sk=function T(S,$,f){return q1.i=q1.last=0,$k(q1,S,$,f)};function $k(T,S,$,f){let M=[],J=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($k(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===J&&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,"-"),hJ=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),nJ=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),vJ=(T)=>T.replace(/-/g,"_");function P1(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,[J,F])=>Object.assign(M,{[T(J)]:S(F,f)}),{}):$}}Qf.column={from:Qf};Qf.value={from:P1(Qf)};hJ.column={to:hJ};var c1={...Qf};c1.column.to=hJ;Uf.column={from:Uf};Uf.value={from:P1(Uf)};nJ.column={to:nJ};var o1={...Uf};o1.column.to=nJ;Vf.column={from:Vf};Vf.value={from:P1(Vf)};vJ.column={to:vJ};var g1={...Vf};g1.column.to=vJ;import fk from"net";import xY from"tls";import cJ from"crypto";import t1 from"stream";import{performance as Mk}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 mS=LY;function LY(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 KS=Buffer.allocUnsafe(256),NY="BCcDdEFfHPpQSX".split("").reduce((T,S)=>{let $=S.charCodeAt(0);return T[S]=()=>{return KS[0]=$,DT.i=5,DT},T},{}),DT=Object.assign(CY,NY,{N:String.fromCharCode(0),i:0,inc(T){return DT.i+=T,DT},str(T){let S=Buffer.byteLength(T);return BW(S),DT.i+=KS.write(T,DT.i,S,"utf8"),DT},i16(T){return BW(2),KS.writeUInt16BE(T,DT.i),DT.i+=2,DT},i32(T,S){if(S||S===0)return KS.writeUInt32BE(T,S),DT;return BW(4),KS.writeUInt32BE(T,DT.i),DT.i+=4,DT},z(T){return BW(T),KS.fill(0,DT.i,DT.i+T),DT.i+=T,DT},raw(T){return KS=Buffer.concat([KS.subarray(0,DT.i),T]),DT.i=KS.length,DT},end(T=1){KS.writeUInt32BE(DT.i-T,T);let S=KS.subarray(0,DT.i);return DT.i=0,KS=Buffer.allocUnsafe(256),S}}),r=DT;function BW(T){if(KS.length-DT.i<T){let S=KS,$=S.length;KS=Buffer.allocUnsafe($+($>>1)+T),S.copy(KS)}}function CY(){return DT.i=0,DT}var u1=Wk,jY=1,s$=r().S().end(),Jk=r().H().end(),IY=r().i32(8).i32(80877103).end(8),bY=Buffer.concat([r().E().str(r.N).i32(0).end(),s$]),ZY=r().D().str("S").str(r.N).end(),EM=()=>{},qY=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),mY={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 Wk(T,S={},{onopen:$=EM,onend:f=EM,onclose:M=EM}={}){let{ssl:J,max:F,user:W,host:A,port:X,database:w,parsers:y,transform:k,onnotice:z,onnotify:G,onparameter:U,max_pipeline:E,keep_alive:B,backoff:L,target_session_attrs:Z}=T,j=mS(),D=jY++,H={pid:null,secret:null},Q=i1(PW,T.idle_timeout),b=i1(PW,T.max_lifetime),n=i1(Ik,T.connect_timeout),R=null,o,P=new Bf,i=Buffer.alloc(0),YT=T.fetch_types,HT={},DS={},Y$=Math.random().toString(36).slice(2),N=1,d=0,RT=0,jT=0,tT=0,FT=0,UT=0,cT=0,bT=null,LT=null,FS=!1,VT=null,tS=null,WS=null,m$=null,pT=null,NT=null,pS=null,J$=null,m=null,BM=null,AS={queue:S.closed,idleTimer:Q,connect(O){WS=O||!0,GA()},terminate:NM,execute:LM,cancel:Nk,end:PW,count:0,id:D};return S.closed&&S.closed.push(AS),AS;async function Lk(){let O;try{O=T.socket?await Promise.resolve(T.socket(T)):new fk.Socket}catch(_){xf(_);return}return O.on("error",xf),O.on("close",zA),O.on("drain",YA),O}async function Nk({pid:O,secret:_},a,GT){try{o=r().i32(16).i32(80877102).i32(O).i32(_).end(16),await RA(),R.once("error",GT),R.once("close",a)}catch(hT){GT(hT)}}function LM(O){if(FS)return lJ(O,gT.connection("CONNECTION_DESTROYED",T));if(O.cancelled)return;try{return O.state=H,m?j.push(O):(m=O,m.active=!0),jk(O),TS(Ck(O))&&!O.describeFirst&&!O.cursorFn&&j.length<E&&(!O.options.onexecute||O.options.onexecute(AS))}catch(_){return j.length===0&&TS(s$),F$(_),!0}}function Ck(O){if(O.parameters.length>=65534)throw gT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return O.options.simple?r().Q().str(O.statement.string+r.N).end():O.describeFirst?Buffer.concat([kA(O),Jk]):O.prepare?O.prepared?uJ(O):Buffer.concat([kA(O),uJ(O)]):xk(O)}function kA(O){return Buffer.concat([_A(O.statement.string,O.parameters,O.statement.types,O.statement.name),RO("S",O.statement.name)])}function uJ(O){return Buffer.concat([YO(O.parameters,O.statement.types,O.statement.name,O.cursorName),O.cursorFn?DA("",O.cursorRows):bY])}function xk(O){return Buffer.concat([_A(O.statement.string,O.parameters,O.statement.types),ZY,uJ(O)])}function jk(O){let _=[],a=[],GT=h1(O,O.strings[0],O.args[0],_,a,T);!O.tagged&&O.args.forEach((hT)=>UW(hT,_,a,T)),O.prepare=T.prepare&&("prepare"in O.options?O.options.prepare:!0),O.string=GT,O.signature=O.prepare&&a+GT,O.onlyDescribe&&delete DS[O.signature],O.parameters=O.parameters||_,O.prepared=O.prepare&&O.signature in DS,O.describeFirst=O.onlyDescribe||_.length&&!O.prepared,O.statement=O.prepared?DS[O.signature]:{string:GT,types:a,name:O.prepare?Y$+N++:""},typeof T.debug==="function"&&T.debug(D,GT,_,a)}function TS(O,_){if(NT=NT?Buffer.concat([NT,O]):Buffer.from(O),_||NT.length>=1024)return OA(_);return LT===null&&(LT=setImmediate(OA)),!0}function OA(O){let _=R.write(NT,O);return LT!==null&&clearImmediate(LT),NT=LT=null,_}function Ik(){F$(gT.connection("CONNECT_TIMEOUT",T,R)),R.destroy()}async function KA(){if(TS(IY),!await new Promise((_)=>R.once("data",(a)=>_(a[0]===83)))&&J==="prefer")return Cf();R.removeAllListeners(),R=xY.connect({socket:R,servername:fk.isIP(R.host)?void 0:R.host,...J==="require"||J==="allow"||J==="prefer"?{rejectUnauthorized:!1}:J==="verify-full"?{}:typeof J==="object"?J:{}}),R.on("secureConnect",Cf),R.on("error",xf),R.on("close",zA),R.on("drain",YA)}function YA(){!m&&$(AS)}function vW(O){if(VT){if(VT.push(O),RT-=O.length,RT>=0)return}i=VT?Buffer.concat(VT,FT-RT):i.length===0?O:Buffer.concat([i,O],i.length+O.length);while(i.length>4){if(FT=i.readUInt32BE(1),FT>=i.length){RT=FT-i.length,VT=[i];break}try{bk(i.subarray(0,FT+1))}catch(_){m&&(m.cursorFn||m.describeFirst)&&TS(s$),F$(_)}i=i.subarray(FT+1),RT=0,VT=null}}async function RA(){if(FS=!1,HT={},R||(R=await Lk()),!R)return;if(n.start(),T.socket)return J?KA():Cf();if(R.on("connect",J?KA:Cf),T.path)return R.connect(T.path);R.ssl=J,R.connect(X[jT],A[jT]),R.host=A[jT],R.port=X[jT],jT=(jT+1)%X.length}function GA(){setTimeout(RA,d?d+UT-Mk.now():0)}function Cf(){try{DS={},YT=T.fetch_types,Y$=Math.random().toString(36).slice(2),N=1,b.start(),R.on("data",vW),B&&R.setKeepAlive&&R.setKeepAlive(!0,1000*B);let O=zO();TS(O)}catch(O){xf(O)}}function xf(O){if(AS.queue===S.connecting&&T.host[tT+1])return;F$(O);while(j.length)lJ(j.shift(),O)}function F$(O){pT&&(pT.destroy(O),pT=null),m&&lJ(m,O),WS&&(lJ(WS,O),WS=null)}function lJ(O,_){"query"in _||"parameters"in _||Object.defineProperties(_,{stack:{value:_.stack+O.origin.replace(/.*\n/,`
43
- `),enumerable:T.debug},query:{value:O.string,enumerable:T.debug},parameters:{value:O.parameters,enumerable:T.debug},args:{value:O.args,enumerable:T.debug},types:{value:O.statement&&O.statement.types,enumerable:T.debug}}),O.reject(_)}function PW(){return m$||(!AS.reserved&&f(AS),!AS.reserved&&!WS&&!m&&j.length===0?(NM(),new Promise((O)=>R&&R.readyState!=="closed"?R.once("close",O):O())):m$=new Promise((O)=>pS=O))}function NM(){if(FS=!0,pT||m||WS||j.length)xf(gT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(LT),R)R.removeListener("data",vW),R.removeListener("connect",Cf),R.readyState==="open"&&R.end(r().X().end());pS&&(pS(),m$=pS=null)}async function zA(O){if(i=Buffer.alloc(0),RT=0,VT=null,clearImmediate(LT),R.removeListener("data",vW),R.removeListener("connect",Cf),Q.cancel(),b.cancel(),n.cancel(),R.removeAllListeners(),R=null,WS)return GA();!O&&(m||j.length)&&xf(gT.connection("CONNECTION_CLOSED",T,R)),d=Mk.now(),O&&T.shared.retries++,UT=(typeof L==="function"?L(T.shared.retries):L)*1000,M(AS,gT.connection("CONNECTION_CLOSED",T,R))}function bk(O,_=O[0]){(_===68?Zk:_===100?WO:_===65?SO:_===83?qk:_===90?mk:_===67?hk:_===50?HA:_===49?nk:_===116?vk:_===84?Pk:_===82?ck:_===110?uk:_===75?lk:_===69?sk:_===115?$O:_===51?fO:_===71?MO:_===78?XO:_===72?JO:_===99?AO:_===73?wO:_===86?yO:_===118?kO:_===87?FO:OO)(O)}function Zk(O){let _=7,a,GT,hT,XS=m.isRaw?new Array(m.statement.columns.length):{};for(let YS=0;YS<m.statement.columns.length;YS++)GT=m.statement.columns[YS],a=O.readInt32BE(_),_+=4,hT=a===-1?null:m.isRaw===!0?O.subarray(_,_+=a):GT.parser===void 0?O.toString("utf8",_,_+=a):GT.parser.array===!0?GT.parser(O.toString("utf8",_+1,_+=a)):GT.parser(O.toString("utf8",_,_+=a)),m.isRaw?XS[YS]=m.isRaw===!0?hT:k.value.from?k.value.from(hT,GT):hT:XS[GT.name]=k.value.from?k.value.from(hT,GT):hT;m.forEachFn?m.forEachFn(k.row.from?k.row.from(XS):XS,P):P[cT++]=k.row.from?k.row.from(XS):XS}function qk(O){let[_,a]=O.toString("utf8",5,O.length-1).split(r.N);if(HT[_]=a,T.parameters[_]!==a)T.parameters[_]=a,U&&U(_,a)}function mk(O){if(m&&m.options.simple&&m.resolve(tS||P),m=tS=null,P=new Bf,n.cancel(),WS){if(Z){if(!HT.in_hot_standby||!HT.default_transaction_read_only)return ek();else if(ak(Z,HT))return NM()}if(YT)return WS===!0&&(WS=null),dk();WS!==!0&&LM(WS),T.shared.retries=tT=0,WS=null;return}while(j.length&&(m=j.shift())&&(m.active=!0,m.cancelled))Wk(T).cancel(m.state,m.cancelled.resolve,m.cancelled.reject);if(m)return;AS.reserved?!AS.reserved.release&&O[5]===73?m$?NM():(AS.reserved=null,$(AS)):AS.reserved():m$?NM():$(AS)}function hk(O){cT=0;for(let _=O.length-1;_>0;_--){if(O[_]===32&&O[_+1]<58&&P.count===null)P.count=+O.toString("utf8",_+1,O.length-1);if(O[_-1]>=65){P.command=O.toString("utf8",5,_),P.state=H;break}}if(BM&&(BM(),BM=null),P.command==="BEGIN"&&F!==1&&!AS.reserved)return F$(gT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(m.options.simple)return HA();if(m.cursorFn)P.count&&m.cursorFn(P),TS(s$);m.resolve(P)}function nk(){m.parsing=!1}function HA(){!P.statement&&(P.statement=m.statement),P.columns=m.statement.columns}function vk(O){let _=O.readUInt16BE(5);for(let a=0;a<_;++a)!m.statement.types[a]&&(m.statement.types[a]=O.readUInt32BE(7+a*4));m.prepare&&(DS[m.signature]=m.statement),m.describeFirst&&!m.onlyDescribe&&(TS(uJ(m)),m.describeFirst=!1)}function Pk(O){if(P.command)tS=tS||[P],tS.push(P=new Bf),P.count=null,m.statement.columns=null;let _=O.readUInt16BE(5),a=7,GT;m.statement.columns=Array(_);for(let hT=0;hT<_;++hT){GT=a;while(O[a++]!==0);let XS=O.readUInt32BE(a),YS=O.readUInt16BE(a+4),h$=O.readUInt32BE(a+6);m.statement.columns[hT]={name:k.column.from?k.column.from(O.toString("utf8",GT,a-1)):O.toString("utf8",GT,a-1),parser:y[h$],table:XS,number:YS,type:h$},a+=18}if(P.statement=m.statement,m.onlyDescribe)return m.resolve(m.statement),TS(s$)}async function ck(O,_=O.readUInt32BE(5)){(_===3?ok:_===5?gk:_===10?tk:_===11?pk:_===12?ik:_!==0?KO:EM)(O,_)}async function ok(){let O=await cW();TS(r().p().str(O).z(1).end())}async function gk(O){let _="md5"+await Fk(Buffer.concat([Buffer.from(await Fk(await cW()+W)),O.subarray(9)]));TS(r().p().str(_).z(1).end())}async function tk(){J$=(await cJ.randomBytes(18)).toString("base64"),r().p().str("SCRAM-SHA-256"+r.N);let O=r.i;TS(r.inc(4).str("n,,n=*,r="+J$).i32(r.i-O-4,O).end())}async function pk(O){let _=O.toString("utf8",9).split(",").reduce((YS,h$)=>(YS[h$[0]]=h$.slice(2),YS),{}),a=await cJ.pbkdf2Sync(await cW(),Buffer.from(_.s,"base64"),parseInt(_.i),32,"sha256"),GT=await LW(a,"Client Key"),hT="n=*,r="+J$+",r="+_.r+",s="+_.s+",i="+_.i+",c=biws,r="+_.r;bT=(await LW(await LW(a,"Server Key"),hT)).toString("base64");let XS="c=biws,r="+_.r+",p="+nY(GT,Buffer.from(await LW(await hY(GT),hT))).toString("base64");TS(r().p().str(XS).end())}function ik(O){if(O.toString("utf8",9).split(r.N,1)[0].slice(2)===bT)return;F$(gT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),R.destroy()}function cW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function uk(){if(P.statement=m.statement,P.statement.columns=[],m.onlyDescribe)return m.resolve(m.statement),TS(s$)}function lk(O){H.pid=O.readUInt32BE(5),H.secret=O.readUInt32BE(9)}async function dk(){YT=!1,(await new gS([`
43
+ ${F}`);let A=JS.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(M$.readFileSync(A,"utf-8"))}async write(T,$,J,S){let F=JS.join(this.baseDir,T),M=JS.join(F,`${$}.input.json`),A=JS.join(F,`${$}.output.json`),W=JSON.stringify(J,null,"\t");if(!M$.existsSync(this.baseDir))M$.mkdirSync(this.baseDir,{recursive:!0});if(!M$.existsSync(F))M$.mkdirSync(F);if(M$.writeFileSync(M,W),M$.existsSync(A))M$.unlinkSync(A);let X=await S(...J);return M$.writeFileSync(A,JSON.stringify(X,null,"\t")),X}add(T,$){return{flush:()=>{this.flush(T)},for:(J)=>{if(this.mode!=="off"&&!this.filesTouched.has(T))this.filesTouched.set(T,new Set);return{get:async(...S)=>{let F=J;if(this.mode!=="off"){let M=this.filenameCache.get(J);if(!M)M=D3(J),this.filenameCache.set(J,F),F=M;this.filesTouched.get(T)?.add(F)}switch(this.mode){case"off":return $(...S);case"read":return this.read(T,F,S);case"write":return this.write(T,F,S,$);case"read-write":try{return this.read(T,F,S)}catch(M){if(M instanceof Error)return this.write(T,F,S,$);throw M}}}}}}}flush(...T){for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let S=JS.join(this.baseDir,$),F=M$.readdirSync(S);for(let M of F){let A=M.replace(".input.json","").replace(".output.json","");if(!J.has(A))console.log(`\uD83D\uDCA5 Flushing ${A}`),M$.unlinkSync(JS.join(S,M))}}}}function V3(T,...$){let[J,S,F,M]=$,A=[{role:"user",content:y6(S)},{role:"user",content:J}],W=M.at(-1);if(W)A.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(`
44
+ `)});return{model:T,messages:A}}var mX={"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 B3(T){return async function $(J,S){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let F=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},S),M=F.choices[0].message?.content,{usage:A}=F;if(M&&A){let W=A.prompt_tokens,X=A.prompt_tokens_details?.cached_tokens??0,K=W-X,f=A.completion_tokens,G=W*mX[J.model].promptPricePerToken+K*mX[J.model].promptPricePerTokenCached+f*mX[J.model].completionPricePerToken;return{data:JSON.parse(M),usage:A,usdPrice:G}}if(!M&&!A)throw new Error("No content or usage found in completion");if(!M)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var f7=new Map,G7=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:S,cachingMode:F,cacheKey:M="openai-safegen",logger:A}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new vX(F);let W=f7.get(S);if(F!=="read"){if(!W)W=new K7({apiKey:S,dangerouslyAllowBrowser:!1}),f7.set(S,W);this.client=W}this.getUnknownJsonFromOpenAi=B3(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(M,this.getUnknownJsonFromOpenAi),this.from=_6(async(...X)=>{if(this.usdBudget<this.usdMinimum)return A?.warn("SafeGen budget exhausted"),X[1];let K=V3(T,...X),f=X[0],G=X[3],{data:w,usage:y,usdPrice:H}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${f.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${G.length}`).get(K);return this.lastUsage=y,this.usdBudget-=H,w})}from};import{exec as _k}from"child_process";var cX=(T)=>{let $=P$(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[S,F]of T.atoms)if(!S.includes("\uD83D\uDD0D")){let M=z$(F);if(F.family){let A=J.get(F.family.key);if(!A||!("familyMembers"in A))A={key:F.family.key,familyMembers:new Map},J.set(F.family.key,A);A.familyMembers.set(F.family.subKey,M)}else J.set(S,M)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:M,subKey:A}=S.family,W=F.get(M);if(W===void 0||!("familyMembers"in W))W={key:M,familyMembers:new Map},F.set(M,W);W.familyMembers.set(A,S)}else F.set(S.key,S);return F})}),T.on.atomDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:M,subKey:A}=S.family,W=F.get(M);if(W&&"familyMembers"in W){if(W.familyMembers.delete(A),W.familyMembers.size===0)F.delete(M)}}else F.delete(S.key);return F})})}]},void 0);return wJ(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var gX=(T)=>{let $=P$(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let S of[T.readonlySelectors,T.selectors])for(let[F,M]of S)if(!F.includes("\uD83D\uDD0D")){let A=z$(M);if(M.family){let W=J.get(M.family.key);if(!W||!("familyMembers"in W))W={key:M.family.key,familyMembers:new Map},J.set(M.family.key,W);W.familyMembers.set(M.family.subKey,A)}else J.set(F,A)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(S)=>{if(S.key.includes("\uD83D\uDD0D"))return;J((F)=>{if(S.family){let{key:M,subKey:A}=S.family,W=F.get(M);if(W===void 0||!("familyMembers"in W))W={key:M,familyMembers:new Map},F.set(M,W);W.familyMembers.set(A,S)}else F.set(S.key,S);return F})}),T.on.selectorDisposal.subscribe("introspection",(S)=>{J((F)=>{if(S.family){let{key:M,subKey:A}=S.family,W=F.get(M);if(W&&"familyMembers"in W){if(W.familyMembers.delete(A),W.familyMembers.size===0)F.delete(M)}}else F.delete(S.key);return F})})}]},void 0);return wJ(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class FA{supported;constructor(T){this.supported=T}refine(T){for(let[$,J]of Object.entries(this.supported))try{if(J(T)===!0&&J!==Boolean)return{type:$,data:T}}catch(S){try{if(T instanceof J)return{type:$,data:T}}catch(F){}}return null}}var nX=new FA({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function pX(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var iX=new FA({object:pX,array:(T)=>Array.isArray(T)}),L3=new FA({...nX.supported,...iX.supported}),zS=(T)=>{if(T===void 0)return"undefined";let $=L3.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class w7{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=GT.STORE){this.store=T;this.atomIndex=cX(this.store),this.selectorIndex=gX(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=w7.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=DW(this.atomIndex),J=DW(this.selectorIndex),S=[...$.values()].filter((W)=>("familyMembers"in W)),F=[...J.values()].filter((W)=>("familyMembers"in W)),M=performance.now(),A=[];if(T.atomFamilies)for(let W of S){let X=W.familyMembers.values();for(let K of X){let G=this.statesCreatedAt.get(K.key)??this.auditorCreatedAt,w=M-G;A.push([K,w])}}if(T.selectorFamilies)for(let W of F){let X=W.familyMembers.values();for(let K of X){let G=this.statesCreatedAt.get(K.key)??this.auditorCreatedAt,w=M-G;A.push([K,w])}}return A}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var oX=(T,$)=>{let J=(S,F)=>{let A=((X,K)=>{let f=$(X,K);if(f)return f;return null})(S,F);if(A?.jobComplete??A?.pathComplete)return A;let W=Array.isArray(F)?F.map((X,K)=>[K,X]):pX(F)?Object.entries(F):[];for(let[X,K]of W){let f=J([...S,X],K);if(f?.jobComplete)return f}return{}};J([],T)};function N3(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function C3(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function j3(T,$){return{summary:`${T} \u2192 ${$}`}}function R7(T,$,J){let S="",F=[],M=[],A=[];return oX(T,(W,X)=>{let K;for(K of W){let f=$[K];if(f===void 0)M.push([K,JSON.stringify(X)]);else{let G=J(X,f);if(G.summary!=="No Change")A.push([K,G])}}}),oX($,(W,X)=>{let K;for(K of W)if(T[K]===void 0)F.push([K,JSON.stringify(X)])}),S=`\uFF5E${A.length} \uFF0B${F.length} \uFF0D${M.length}`,{summary:S,added:F,removed:M,changed:A}}function q3(T,$,J){return R7(T,$,J)}class Y7{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let S of Object.keys(T.supported)){let F=J[S];this.leafDiffers[S]=F}for(let S of Object.keys($.supported)){let F=J[S];this.treeDiffers[S]=F}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),S=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&S!==null){if(J.type===S.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,S.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,S.data,(W,X)=>this.diff(W,X))}}let F=zS(T),M=zS($);if(F===M)return{summary:`${F} \u2192 ${M}`};return{summary:`Type change: ${F} \u2192 ${M}`}}}var jb=new Y7(nX,iX,{number:N3,string:C3,boolean:j3,null:()=>({summary:"No Change"}),object:R7,array:q3});var Y=Symbol.for("drizzle:entityKind"),vb=Symbol.for("drizzle:hasOwnEntityKind");function V(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,Y))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(Y in J&&J[Y]===$[Y])return!0;J=Object.getPrototypeOf(J)}return!1}class NT{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[Y]="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 lX{static[Y]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var UJ=Symbol.for("drizzle:Name");class uX{static[Y]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:S,foreignColumns:F}=T();return{name:J,columns:S,foreignTable:F[0].table,foreignColumns:F}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new _7(T,this)}}class _7{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[Y]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),S=$.map((A)=>A.name),F=J.map((A)=>A.name),M=[this.table[UJ],...S,J[0].table[UJ],...F];return T??`${M.join("_")}_fk`}}function MA(T,...$){return T(...$)}function y7(T,$){return`${T[UJ]}_${$.join("_")}_unique`}function H7(T,$,J){for(let S=$;S<T.length;S++){let F=T[S];if(F==="\\"){S++;continue}if(F==='"')return[T.slice($,S).replace(/\\/g,""),S+1];if(J)continue;if(F===","||F==="}")return[T.slice($,S).replace(/\\/g,""),S]}return[T.slice($).replace(/\\/g,""),T.length]}function k7(T,$=0){let J=[],S=$,F=!1;while(S<T.length){let M=T[S];if(M===","){if(F||S===$)J.push("");F=!0,S++;continue}if(F=!1,M==="\\"){S+=2;continue}if(M==='"'){let[X,K]=H7(T,S+1,!0);J.push(X),S=K;continue}if(M==="}")return[J,S+1];if(M==="{"){let[X,K]=k7(T,S+1);J.push(X),S=K;continue}let[A,W]=H7(T,S,!1);J.push(A),S=W}return[J,S]}function Q7(T){let[$]=k7(T,1);return $}function dX(T){return`{${T.map(($)=>{if(Array.isArray($))return dX($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class o extends lX{foreignKeyConfigs=[];static[Y]="PgColumnBuilder";array(T){return new z7(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:S})=>{return MA((F,M)=>{let A=new uX(()=>{let W=F();return{columns:[T],foreignColumns:[W]}});if(M.onUpdate)A.onUpdate(M.onUpdate);if(M.onDelete)A.onDelete(M.onDelete);return A.build($)},J,S)})}buildExtraConfigColumn(T){return new E7(T,this.config)}}class b extends NT{constructor(T,$){if(!$.uniqueName)$.uniqueName=y7(T,[$.name]);super(T,$);this.table=T}static[Y]="PgColumn"}class E7 extends b{static[Y]="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 VM{static[Y]="IndexedColumn";constructor(T,$,J,S){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=S}name;keyAsName;type;indexConfig}class z7 extends o{static[Y]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new rX(T,this.config,$)}}class rX extends b{constructor(T,$,J,S){super(T,$);this.baseColumn=J,this.range=S,this.size=$.size}size;static[Y]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=Q7(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((S)=>S===null?null:V(this.baseColumn,rX)?this.baseColumn.mapToDriverValue(S,!0):this.baseColumn.mapToDriverValue(S));if($)return J;return dX(J)}}var tX=Symbol.for("drizzle:isPgEnum");function O7(T){return!!T&&typeof T==="function"&&tX in T&&T[tX]===!0}class U7 extends o{static[Y]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new D7(T,this.config)}}class D7 extends b{static[Y]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function AA(T,$){return x3(T,$,void 0)}function x3(T,$,J){let S=Object.assign((F)=>new U7(F??"",S),{enumName:T,enumValues:$,schema:J,[tX]:!0});return S}class A${static[Y]="Subquery";constructor(T,$,J,S=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:S}}}class BM extends A${static[Y]="WithSubquery"}var V7="0.38.3";var aX,sX,CT={startActiveSpan(T,$){if(!aX)return $();if(!sX)sX=aX.trace.getTracer("drizzle-orm",V7);return MA((J,S)=>S.startActiveSpan(T,(F)=>{try{return $(F)}catch(M){throw F.setStatus({code:J.SpanStatusCode.ERROR,message:M instanceof Error?M.message:"Unknown error"}),M}finally{F.end()}}),aX,sX)}};var hT=Symbol.for("drizzle:ViewBaseConfig");var WA=Symbol.for("drizzle:Schema"),XA=Symbol.for("drizzle:Columns"),B7=Symbol.for("drizzle:ExtraConfigColumns"),eX=Symbol.for("drizzle:OriginalName"),TK=Symbol.for("drizzle:BaseName"),KA=Symbol.for("drizzle:IsAlias"),L7=Symbol.for("drizzle:ExtraConfigBuilder"),I3=Symbol.for("drizzle:IsDrizzleTable");class c{static[Y]="Table";static Symbol={Name:UJ,Schema:WA,OriginalName:eX,Columns:XA,ExtraConfigColumns:B7,BaseName:TK,IsAlias:KA,ExtraConfigBuilder:L7};[UJ];[eX];[WA];[XA];[B7];[TK];[KA]=!1;[I3]=!0;[L7]=void 0;constructor(T,$,J){this[UJ]=this[eX]=T,this[WA]=$,this[TK]=J}}function SJ(T){return T[UJ]}function $F(T){return`${T[WA]??"public"}.${T[UJ]}`}function $K(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function Z3(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class W${static[Y]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new n([this])}}class n{constructor(T){this.queryChunks=T}static[Y]="SQL";decoder=C7;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return CT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:S,escapeName:F,escapeParam:M,prepareTyping:A,inlineParams:W,paramStartIndex:X}=J;return Z3(T.map((K)=>{if(V(K,W$))return{sql:K.value.join(""),params:[]};if(V(K,fA))return{sql:F(K.value),params:[]};if(K===void 0)return{sql:"",params:[]};if(Array.isArray(K)){let f=[new W$("(")];for(let[G,w]of K.entries())if(f.push(w),G<K.length-1)f.push(new W$(", "));return f.push(new W$(")")),this.buildQueryFromSourceParams(f,J)}if(V(K,n))return this.buildQueryFromSourceParams(K.queryChunks,{...J,inlineParams:W||K.shouldInlineParams});if(V(K,c)){let f=K[c.Symbol.Schema],G=K[c.Symbol.Name];return{sql:f===void 0?F(G):F(f)+"."+F(G),params:[]}}if(V(K,NT)){let f=S.getColumnCasing(K);if($.invokeSource==="indexes")return{sql:F(f),params:[]};let G=K.table[c.Symbol.Schema];return{sql:K.table[KA]||G===void 0?F(K.table[c.Symbol.Name])+"."+F(f):F(G)+"."+F(K.table[c.Symbol.Name])+"."+F(f),params:[]}}if(V(K,c$)){let f=K[hT].schema,G=K[hT].name;return{sql:f===void 0?F(G):F(f)+"."+F(G),params:[]}}if(V(K,r$)){if(V(K.value,OS))return{sql:M(X.value++,K),params:[K],typings:["none"]};let f=K.value===null?null:K.encoder.mapToDriverValue(K.value);if(V(f,n))return this.buildQueryFromSourceParams([f],J);if(W)return{sql:this.mapInlineParam(f,J),params:[]};let G=["none"];if(A)G=[A(K.encoder)];return{sql:M(X.value++,f),params:[f],typings:G}}if(V(K,OS))return{sql:M(X.value++,K),params:[K],typings:["none"]};if(V(K,n.Aliased)&&K.fieldAlias!==void 0)return{sql:F(K.fieldAlias),params:[]};if(V(K,A$)){if(K._.isWith)return{sql:F(K._.alias),params:[]};return this.buildQueryFromSourceParams([new W$("("),K._.sql,new W$(") "),new fA(K._.alias)],J)}if(O7(K)){if(K.schema)return{sql:F(K.schema)+"."+F(K.enumName),params:[]};return{sql:F(K.enumName),params:[]}}if($K(K)){if(K.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([K.getSQL()],J);return this.buildQueryFromSourceParams([new W$("("),K.getSQL(),new W$(")")],J)}if(W)return{sql:this.mapInlineParam(K,J),params:[]};return{sql:M(X.value++,K),params:[K],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new n.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 fA{constructor(T){this.value=T}static[Y]="Name";brand;getSQL(){return new n([this])}}function N7(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var C7={mapFromDriverValue:(T)=>T},j7={mapToDriverValue:(T)=>T},Bh={...C7,...j7};class r${constructor(T,$=j7){this.value=T,this.encoder=$}static[Y]="Param";brand;getSQL(){return new n([this])}}function _(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new W$(T[0]));for(let[S,F]of $.entries())J.push(F,new W$(T[S+1]));return new n(J)}((T)=>{function $(){return new n([])}T.empty=$;function J(X){return new n(X)}T.fromList=J;function S(X){return new n([new W$(X)])}T.raw=S;function F(X,K){let f=[];for(let[G,w]of X.entries()){if(G>0&&K!==void 0)f.push(K);f.push(w)}return new n(f)}T.join=F;function M(X){return new fA(X)}T.identifier=M;function A(X){return new OS(X)}T.placeholder=A;function W(X,K){return new r$(X,K)}T.param=W})(_||(_={}));((T)=>{class ${constructor(J,S){this.sql=J,this.fieldAlias=S}static[Y]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(n||(n={}));class OS{constructor(T){this.name=T}static[Y]="Placeholder";getSQL(){return new n([this])}}function JK(T,$){return T.map((J)=>{if(V(J,OS)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(V(J,r$)&&V(J.value,OS)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var b3=Symbol.for("drizzle:IsDrizzleView");class c${static[Y]="View";[hT];[b3]=!0;constructor({name:T,schema:$,selectedFields:J,query:S}){this[hT]={name:T,originalName:T,schema:$,selectedFields:J,query:S,isExisting:!S,isAlias:!1}}getSQL(){return new n([this])}}NT.prototype.getSQL=function(){return new n([this])};c.prototype.getSQL=function(){return new n([this])};A$.prototype.getSQL=function(){return new n([this])};class J0{constructor(T){this.table=T}static[Y]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class LM{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[Y]="TableAliasProxyHandler";get(T,$){if($===c.Symbol.IsAlias)return!0;if($===c.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===c.Symbol.OriginalName)return this.alias;if($===hT)return{...T[hT],name:this.alias,isAlias:!0};if($===c.Symbol.Columns){let S=T[c.Symbol.Columns];if(!S)return S;let F={};return Object.keys(S).map((M)=>{F[M]=new Proxy(S[M],new J0(new Proxy(T,this)))}),F}let J=T[$];if(V(J,NT))return new Proxy(J,new J0(new Proxy(T,this)));return J}}function GA(T,$){return new Proxy(T,new LM($,!1))}function hJ(T,$){return new Proxy(T,new J0(new Proxy(T.table,new LM($,!1))))}function SK(T,$){return new n.Aliased(NM(T.sql,$),T.fieldAlias)}function NM(T,$){return _.join(T.queryChunks.map((J)=>{if(V(J,NT))return hJ(J,$);if(V(J,n))return NM(J,$);if(V(J,n.Aliased))return SK(J,$);return J}))}class wA extends Error{static[Y]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class FK extends wA{static[Y]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function g$(T,$){if(N7($)&&!$K(T)&&!V(T,r$)&&!V(T,OS)&&!V(T,NT)&&!V(T,c)&&!V(T,c$))return new r$(T,$);return T}var RA=(T,$)=>{return _`${T} = ${g$($,T)}`},q7=(T,$)=>{return _`${T} <> ${g$($,T)}`};function CM(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new n($);return new n([new W$("("),_.join($,new W$(" and ")),new W$(")")])}function x7(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new n($);return new n([new W$("("),_.join($,new W$(" or ")),new W$(")")])}function I7(T){return _`not ${T}`}var YA=(T,$)=>{return _`${T} > ${g$($,T)}`},Z7=(T,$)=>{return _`${T} >= ${g$($,T)}`},b7=(T,$)=>{return _`${T} < ${g$($,T)}`},h7=(T,$)=>{return _`${T} <= ${g$($,T)}`};function P7(T,$){if(Array.isArray($)){if($.length===0)return _`false`;return _`${T} in ${$.map((J)=>g$(J,T))}`}return _`${T} in ${g$($,T)}`}function v7(T,$){if(Array.isArray($)){if($.length===0)return _`true`;return _`${T} not in ${$.map((J)=>g$(J,T))}`}return _`${T} not in ${g$($,T)}`}function m7(T){return _`${T} is null`}function c7(T){return _`${T} is not null`}function g7(T){return _`exists ${T}`}function n7(T){return _`not exists ${T}`}function p7(T,$,J){return _`${T} between ${g$($,T)} and ${g$(J,T)}`}function i7(T,$,J){return _`${T} not between ${g$($,T)} and ${g$(J,T)}`}function o7(T,$){return _`${T} like ${$}`}function l7(T,$){return _`${T} not like ${$}`}function u7(T,$){return _`${T} ilike ${$}`}function d7(T,$){return _`${T} not ilike ${$}`}function r7(T){return _`${T} asc`}function t7(T){return _`${T} desc`}class a7{static[Y]="ConsoleLogWriter";write(T){console.log(T)}}class MK{static[Y]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new a7}logQuery(T,$){let J=$.map((F)=>{try{return JSON.stringify(F)}catch{return String(F)}}),S=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${S}`)}}class AK{static[Y]="NoopLogger";logQuery(){}}class I${static[Y]="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 s7(T,$,J){let S={},F=T.reduce((M,{path:A,field:W},X)=>{let K;if(V(W,NT))K=W;else if(V(W,n))K=W.decoder;else K=W.sql.decoder;let f=M;for(let[G,w]of A.entries())if(G<A.length-1){if(!(w in f))f[w]={};f=f[w]}else{let y=$[X],H=f[w]=y===null?null:K.mapFromDriverValue(y);if(J&&V(W,NT)&&A.length===2){let O=A[0];if(!(O in S))S[O]=H===null?SJ(W.table):!1;else if(typeof S[O]==="string"&&S[O]!==SJ(W.table))S[O]=!1}}return M},{});if(J&&Object.keys(S).length>0){for(let[M,A]of Object.entries(S))if(typeof A==="string"&&!J[A])F[M]=null}return F}function FJ(T,$){return Object.entries(T).reduce((J,[S,F])=>{if(typeof S!=="string")return J;let M=$?[...$,S]:[S];if(V(F,NT)||V(F,n)||V(F,n.Aliased))J.push({path:M,field:F});else if(V(F,c))J.push(...FJ(F[c.Symbol.Columns],M));else J.push(...FJ(F,M));return J},[])}function jM(T,$){let J=Object.keys(T),S=Object.keys($);if(J.length!==S.length)return!1;for(let[F,M]of J.entries())if(M!==S[F])return!1;return!0}function _A(T,$){let J=Object.entries($).filter(([,S])=>S!==void 0).map(([S,F])=>{if(V(F,n)||V(F,NT))return[S,F];else return[S,new r$(F,T[c.Symbol.Columns][S])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function e7(T,$){for(let J of $)for(let S of Object.getOwnPropertyNames(J.prototype)){if(S==="constructor")continue;Object.defineProperty(T.prototype,S,Object.getOwnPropertyDescriptor(J.prototype,S)||Object.create(null))}}function T5(T){return T[c.Symbol.Columns]}function SS(T){return V(T,A$)?T._.alias:V(T,c$)?T[hT].name:V(T,n)?void 0:T[c.Symbol.IsAlias]?T[c.Symbol.Name]:T[c.Symbol.BaseName]}function wT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function $5(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 US extends o{static[Y]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class J5 extends US{static[Y]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new S5(T,this.config)}}class S5 extends b{static[Y]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class F5 extends US{static[Y]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new M5(T,this.config)}}class M5 extends b{static[Y]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function A5(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new J5(J);return new F5(J)}class W5 extends o{static[Y]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new X5(T,this.config)}}class X5 extends b{static[Y]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class K5 extends o{static[Y]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new f5(T,this.config)}}class f5 extends b{static[Y]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function G5(T,$){let{name:J,config:S}=wT(T,$);if(S.mode==="number")return new W5(J);return new K5(J)}class w5 extends o{static[Y]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new R5(T,this.config)}}class R5 extends b{static[Y]="PgBoolean";getSQLType(){return"boolean"}}function qM(T){return new w5(T??"")}class Y5 extends o{static[Y]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new _5(T,this.config)}}class _5 extends b{static[Y]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function y5(T,$={}){let{name:J,config:S}=wT(T,$);return new Y5(J,S)}class H5 extends o{static[Y]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new k5(T,this.config)}}class k5 extends b{static[Y]="PgCidr";getSQLType(){return"cidr"}}function Q5(T){return new H5(T??"")}class E5 extends o{static[Y]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new z5(T,this.config)}}class z5 extends b{static[Y]="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 O5(T){return($,J)=>{let{name:S,config:F}=wT($,J);return new E5(S,F,T)}}class FS extends o{static[Y]="PgDateColumnBaseBuilder";defaultNow(){return this.default(_`now()`)}}class U5 extends FS{static[Y]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new yA(T,this.config)}}class yA extends b{static[Y]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class D5 extends FS{static[Y]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new HA(T,this.config)}}class HA extends b{static[Y]="PgDateString";getSQLType(){return"date"}}function V5(T,$){let{name:J,config:S}=wT(T,$);if(S?.mode==="date")return new U5(J);return new D5(J)}class B5 extends o{static[Y]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new L5(T,this.config)}}class L5 extends b{static[Y]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function N5(T){return new B5(T??"")}class C5 extends o{static[Y]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new j5(T,this.config)}}class j5 extends b{static[Y]="PgInet";getSQLType(){return"inet"}}function q5(T){return new C5(T??"")}class x5 extends US{static[Y]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new I5(T,this.config)}}class I5 extends b{static[Y]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function kA(T){return new x5(T??"")}class Z5 extends o{static[Y]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new b5(T,this.config)}}class b5 extends b{static[Y]="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 h5(T,$={}){let{name:J,config:S}=wT(T,$);return new Z5(J,S)}class P5 extends o{static[Y]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new QA(T,this.config)}}class QA extends b{static[Y]="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 v5(T){return new P5(T??"")}class m5 extends o{static[Y]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new EA(T,this.config)}}class EA extends b{static[Y]="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 c5(T){return new m5(T??"")}class g5 extends o{static[Y]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new n5(T,this.config)}}class n5 extends b{static[Y]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(S)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class p5 extends o{static[Y]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new i5(T,this.config)}}class i5 extends b{static[Y]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,S]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(S)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function o5(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new g5(J);return new p5(J)}class l5 extends o{static[Y]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new u5(T,this.config)}}class u5 extends b{static[Y]="PgMacaddr";getSQLType(){return"macaddr"}}function d5(T){return new l5(T??"")}class r5 extends o{static[Y]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new t5(T,this.config)}}class t5 extends b{static[Y]="PgMacaddr8";getSQLType(){return"macaddr8"}}function a5(T){return new r5(T??"")}class s5 extends o{static[Y]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new zA(T,this.config)}}class zA extends b{static[Y]="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 e5(T,$){let{name:J,config:S}=wT(T,$);return new s5(J,S?.precision,S?.scale)}class T9 extends o{static[Y]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new $9(T,this.config)}}class $9 extends b{static[Y]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class J9 extends o{static[Y]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new S9(T,this.config)}}class S9 extends b{static[Y]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function F9(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new T9(J);return new J9(J)}function h3(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function M9(T,$){let J=new ArrayBuffer(8),S=new DataView(J);for(let F=0;F<8;F++)S.setUint8(F,T[$+F]);return S.getFloat64(0,!0)}function WK(T){let $=h3(T),J=0,S=$[J];J+=1;let F=new DataView($.buffer),M=F.getUint32(J,S===1);J+=4;let A;if(M&536870912)A=F.getUint32(J,S===1),J+=4;if((M&65535)===1){let W=M9($,J);J+=8;let X=M9($,J);return J+=8,[W,X]}throw new Error("Unsupported geometry type")}class A9 extends o{static[Y]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new W9(T,this.config)}}class W9 extends b{static[Y]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return WK(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class X9 extends o{static[Y]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new K9(T,this.config)}}class K9 extends b{static[Y]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=WK(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function f9(T,$){let{name:J,config:S}=wT(T,$);if(!S?.mode||S.mode==="tuple")return new A9(J);return new X9(J)}class G9 extends o{static[Y]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new w9(T,this.config)}}class w9 extends b{static[Y]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function R9(T){return new G9(T??"")}class Y9 extends o{static[Y]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new _9(T,this.config)}}class _9 extends b{static[Y]="PgSerial";getSQLType(){return"serial"}}function y9(T){return new Y9(T??"")}class H9 extends US{static[Y]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new k9(T,this.config)}}class k9 extends b{static[Y]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function Q9(T){return new H9(T??"")}class E9 extends o{static[Y]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new z9(T,this.config)}}class z9 extends b{static[Y]="PgSmallSerial";getSQLType(){return"smallserial"}}function O9(T){return new E9(T??"")}class U9 extends o{static[Y]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new D9(T,this.config)}}class D9 extends b{static[Y]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function V9(T,$={}){let{name:J,config:S}=wT(T,$);return new U9(J,S)}class B9 extends FS{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[Y]="PgTimeBuilder";build(T){return new OA(T,this.config)}}class OA extends b{static[Y]="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 L9(T,$={}){let{name:J,config:S}=wT(T,$);return new B9(J,S.withTimezone??!1,S.precision)}class N9 extends FS{static[Y]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new UA(T,this.config)}}class UA extends b{static[Y]="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 C9 extends FS{static[Y]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new DA(T,this.config)}}class DA extends b{static[Y]="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 DJ(T,$={}){let{name:J,config:S}=wT(T,$);if(S?.mode==="string")return new C9(J,S.withTimezone??!1,S.precision);return new N9(J,S?.withTimezone??!1,S?.precision)}class j9 extends o{static[Y]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(_`gen_random_uuid()`)}build(T){return new VA(T,this.config)}}class VA extends b{static[Y]="PgUUID";getSQLType(){return"uuid"}}function t$(T){return new j9(T??"")}class q9 extends o{static[Y]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new x9(T,this.config)}}class x9 extends b{static[Y]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function R$(T,$={}){let{name:J,config:S}=wT(T,$);return new q9(J,S)}class I9 extends o{static[Y]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new Z9(T,this.config)}}class Z9 extends b{static[Y]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function b9(T,$){let{name:J,config:S}=wT(T,$);return new I9(J,S)}class h9 extends o{static[Y]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new P9(T,this.config)}}class P9 extends b{static[Y]="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 v9(T,$){let{name:J,config:S}=wT(T,$);return new h9(J,S)}class m9 extends o{static[Y]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new c9(T,this.config)}}class c9 extends b{static[Y]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function g9(T,$){let{name:J,config:S}=wT(T,$);return new m9(J,S)}class n9 extends o{static[Y]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new p9(T,this.config)}}class p9 extends b{static[Y]="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 i9(T,$){let{name:J,config:S}=wT(T,$);return new n9(J,S)}function o9(){return{bigint:A5,bigserial:G5,boolean:qM,char:y5,cidr:Q5,customType:O5,date:V5,doublePrecision:N5,inet:q5,integer:kA,interval:h5,json:v5,jsonb:c5,line:o5,macaddr:d5,macaddr8:a5,numeric:e5,point:F9,geometry:f9,real:R9,serial:y9,smallint:Q9,smallserial:O9,text:V9,time:L9,timestamp:DJ,uuid:t$,varchar:R$,bit:b9,halfvec:v9,sparsevec:g9,vector:i9}}var XK=Symbol.for("drizzle:PgInlineForeignKeys"),l9=Symbol.for("drizzle:EnableRLS");class Y$ extends c{static[Y]="PgTable";static Symbol=Object.assign({},c.Symbol,{InlineForeignKeys:XK,EnableRLS:l9});[XK]=[];[l9]=!1;[c.Symbol.ExtraConfigBuilder]=void 0}function P3(T,$,J,S,F=T){let M=new Y$(T,S,F),A=typeof $==="function"?$(o9()):$,W=Object.fromEntries(Object.entries(A).map(([f,G])=>{let w=G;w.setName(f);let y=w.build(M);return M[XK].push(...w.buildForeignKeys(y,M)),[f,y]})),X=Object.fromEntries(Object.entries(A).map(([f,G])=>{let w=G;w.setName(f);let y=w.buildExtraConfigColumn(M);return[f,y]})),K=Object.assign(M,W);if(K[c.Symbol.Columns]=W,K[c.Symbol.ExtraConfigColumns]=X,J)K[Y$.Symbol.ExtraConfigBuilder]=J;return Object.assign(K,{enableRLS:()=>{return K[Y$.Symbol.EnableRLS]=!0,K}})}var DS=(T,$,J)=>{return P3(T,$,J,void 0)};function u9(...T){if(T[0].columns)return new xM(T[0].columns,T[0].name);return new xM(T)}class xM{static[Y]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new d9(T,this.columns,this.name)}}class d9{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[Y]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Y$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class KK{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[c.Symbol.Name]}static[Y]="Relation";referencedTableName;fieldName}class r9{constructor(T,$){this.table=T,this.config=$}static[Y]="Relations"}class VS extends KK{constructor(T,$,J,S){super(T,$,J?.relationName);this.config=J,this.isNullable=S}static[Y]="One";withFieldName(T){let $=new VS(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class IM extends KK{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[Y]="Many";withFieldName(T){let $=new IM(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function t9(){return{and:CM,between:p7,eq:RA,exists:g7,gt:YA,gte:Z7,ilike:u7,inArray:P7,isNull:m7,isNotNull:c7,like:o7,lt:b7,lte:h7,ne:q7,not:I7,notBetween:i7,notExists:n7,notLike:l7,notIlike:d7,notInArray:v7,or:x7,sql:_}}function a9(){return{sql:_,asc:r7,desc:t7}}function s9(T,$){if(Object.keys(T).length===1&&"default"in T&&!V(T.default,c))T=T.default;let J={},S={},F={};for(let[M,A]of Object.entries(T))if(V(A,c)){let W=$F(A),X=S[W];J[W]=M,F[M]={tsName:M,dbName:A[c.Symbol.Name],schema:A[c.Symbol.Schema],columns:A[c.Symbol.Columns],relations:X?.relations??{},primaryKey:X?.primaryKey??[]};for(let f of Object.values(A[c.Symbol.Columns]))if(f.primary)F[M].primaryKey.push(f);let K=A[c.Symbol.ExtraConfigBuilder]?.(A[c.Symbol.ExtraConfigColumns]);if(K){for(let f of Object.values(K))if(V(f,xM))F[M].primaryKey.push(...f.columns)}}else if(V(A,r9)){let W=$F(A.table),X=J[W],K=A.config($(A.table)),f;for(let[G,w]of Object.entries(K))if(X){let y=F[X];if(y.relations[G]=w,f)y.primaryKey.push(...f)}else{if(!(W in S))S[W]={relations:{},primaryKey:f};S[W].relations[G]=w}}return{tables:F,tableNamesMap:J}}function v3(T){return function $(J,S){return new VS(T,J,S,S?.fields.reduce((F,M)=>F&&M.notNull,!0)??!1)}}function m3(T){return function $(J,S){return new IM(T,J,S)}}function e9(T,$,J){if(V(J,VS)&&J.config)return{fields:J.config.fields,references:J.config.references};let S=$[$F(J.referencedTable)];if(!S)throw new Error(`Table "${J.referencedTable[c.Symbol.Name]}" not found in schema`);let F=T[S];if(!F)throw new Error(`Table "${S}" not found in schema`);let M=J.sourceTable,A=$[$F(M)];if(!A)throw new Error(`Table "${M[c.Symbol.Name]}" not found in schema`);let W=[];for(let X of Object.values(F.relations))if(J.relationName&&J!==X&&X.relationName===J.relationName||!J.relationName&&X.referencedTable===J.sourceTable)W.push(X);if(W.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${S}"`):new Error(`There are multiple relations between "${S}" and "${J.sourceTable[c.Symbol.Name]}". Please specify relation name`);if(W[0]&&V(W[0],VS)&&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 "${A}.${J.fieldName}"`)}function Tf(T){return{one:v3(T),many:m3(T)}}function BA(T,$,J,S,F=(M)=>M){let M={};for(let[A,W]of S.entries())if(W.isJson){let X=$.relations[W.tsKey],K=J[A],f=typeof K==="string"?JSON.parse(K):K;M[W.tsKey]=V(X,VS)?f&&BA(T,T[W.relationTableTsKey],f,W.selection,F):f.map((G)=>BA(T,T[W.relationTableTsKey],G,W.selection,F))}else{let X=F(J[A]),K=W.field,f;if(V(K,NT))f=K;else if(V(K,n))f=K.decoder;else f=K.sql.decoder;M[W.tsKey]=X===null?null:f.mapFromDriverValue(X)}return M}import Z_ from"path";import K_ from"os";import f_ from"fs";var LA=new Map,fK=new Map,GK=Symbol("OriginError"),S0={};class MJ extends Promise{constructor(T,$,J,S,F={}){let M,A;super((W,X)=>{M=W,A=X});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=S,this.options=F,this.state=null,this.statement=null,this.resolve=(W)=>(this.active=!1,M(W)),this.reject=(W)=>(this.active=!1,A(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[GK]=this.handler.debug?new Error:this.tagged&&c3(this.strings)}get origin(){return(this.handler.debug?this[GK].stack:this.tagged&&fK.has(this.strings)?fK.get(this.strings):fK.set(this.strings,this[GK].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let J;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};J&&J();let S=new Promise((F,M)=>{this.cursorFn=(A)=>{return F({value:A,done:!1}),new Promise((W)=>J=W)},this.resolve=()=>(this.active=!1,F({done:!0})),this.reject=(A)=>(this.active=!1,M(A))});return this.execute(),S},return(){return J&&J(S0),{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 c3(T){if(LA.has(T))return LA.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,LA.set(T,new Error),Error.stackTraceLimit=$,LA.get(T)}class F0 extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var aT={connection:$f,postgres:Jf,generic:Sf,notSupported:Ff};function $f(T,$,J){let{host:S,port:F}=J||$,M=Object.assign(new Error("write "+T+" "+($.path||S+":"+F)),{code:T,errno:T,address:$.path||S},$.path?{}:{port:F});return Error.captureStackTrace(M,$f),M}function Jf(T){let $=new F0(T);return Error.captureStackTrace($,Jf),$}function Sf(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,Sf),J}function Ff(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,Ff),$}var g3={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 jA{then(){wK()}catch(){wK()}finally(){wK()}}class PM extends jA{constructor(T){super();this.value=IA(T)}}class PJ extends jA{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class qA extends jA{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,S){let F=n3.map(([M,A])=>({fn:A,i:T.search(M)})).sort((M,A)=>M.i-A.i).pop();return F.i===-1?HK(this.first,S):F.fn(this.first,this.rest,$,J,S)}}function xA(T,$,J,S){let F=T instanceof PJ?T.value:T;if(F===void 0){if(T instanceof PJ?T.value=S.transform.undefined:F=T=S.transform.undefined,F===void 0)throw aT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof PJ?($.push(T.value),T.array?T.array[T.type||CA(T.value)]||T.type||Xf(T.value):T.type):($.push(T),CA(T)))}var Af=ff(g3);function _K(T,$,J,S,F,M){for(let A=1;A<T.strings.length;A++)$+=yK($,J,S,F,M)+T.strings[A],J=T.args[A];return $}function yK(T,$,J,S,F){return $ instanceof qA?$.build(T,J,S,F):$ instanceof MJ?YK($,J,S,F):$ instanceof PM?$.value:$&&$[0]instanceof MJ?$.reduce((M,A)=>M+" "+YK(A,J,S,F),""):xA($,J,S,F)}function YK(T,$,J,S){return T.fragment=!0,_K(T,T.strings[0],T.args[0],$,J,S)}function Wf(T,$,J,S,F){return T.map((M)=>"("+S.map((A)=>yK("values",M[A],$,J,F)).join(",")+")").join(",")}function Mf(T,$,J,S,F){let M=Array.isArray(T[0]),A=$.length?$.flat():Object.keys(M?T[0]:T);return Wf(M?T:[T],J,S,A,F)}function NA(T,$,J,S,F){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return HK(T,F);let M;return($.length?$.flat():Object.keys(T)).map((W)=>{return M=T[W],(M instanceof MJ?YK(M,J,S,F):M instanceof PM?M.value:xA(M,J,S,F))+" as "+IA(F.transform.column.to?F.transform.column.to(W):W)}).join(",")}var n3=Object.entries({values:Mf,in:(...T)=>{let $=Mf(...T);return $==="()"?"(null)":$},select:NA,as:NA,returning:NA,"\\(":NA,update(T,$,J,S,F){return($.length?$.flat():Object.keys(T)).map((M)=>IA(F.transform.column.to?F.transform.column.to(M):M)+"="+yK("values",T[M],J,S,F))},insert(T,$,J,S,F){let M=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+HK(M,F)+")values"+Wf(Array.isArray(T)?T:[T],J,S,M,F)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function wK(){throw aT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:p3,parsers:i3}=Af;function Xf(T){if(Array.isArray(T))return Xf(T[0]);return typeof T==="string"?1009:0}var Kf=function(T){let $=ff(T||{});return{serializers:Object.assign({},p3,$.serializers),parsers:Object.assign({},i3,$.parsers)}};function ff(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((S)=>$.parsers[S]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((S)=>$.serializers[S]=T[J].serialize);return $},{parsers:{},serializers:{}})}function HK(T,{transform:{column:$}}){return T.map((J)=>IA($.to?$.to(J):J)).join(",")}var IA=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},CA=function T($){return $ instanceof PJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},o3=/\\/g,l3=/"/g;function u3(T){return T.replace(o3,"\\\\").replace(l3,"\\\"")}var Gf=function T($,J,S,F){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let M=$[0],A=F===1020?";":",";if(Array.isArray(M)&&!M.type)return"{"+$.map((W)=>T(W,J,S,F)).join(A)+"}";return"{"+$.map((W)=>{if(W===void 0){if(W=S.transform.undefined,W===void 0)throw aT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+u3(J?J(W.type?W.value:W):""+W)+'"'}).join(A)+"}"},RK={i:0,char:null,str:"",quoted:!1,last:0},wf=function T($,J,S){return RK.i=RK.last=0,Rf(RK,$,J,S)};function Rf(T,$,J,S){let F=[],M=S===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')F.push(J?J(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,F.push(Rf(T,$,J,S));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===M&&T.p!=="}"&&T.p!=='"')F.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&F.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),F}var JF=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},SF=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},FF=(T)=>T.replace(/_/g,"-"),ZM=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),bM=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),hM=(T)=>T.replace(/-/g,"_");function kK(T){return function $(J,S){return typeof J==="object"&&J!==null&&(S.type===114||S.type===3802)?Array.isArray(J)?J.map((F)=>$(F,S)):Object.entries(J).reduce((F,[M,A])=>Object.assign(F,{[T(M)]:$(A,S)}),{}):J}}JF.column={from:JF};JF.value={from:kK(JF)};ZM.column={to:ZM};var QK={...JF};QK.column.to=ZM;SF.column={from:SF};SF.value={from:kK(SF)};bM.column={to:bM};var EK={...SF};EK.column.to=bM;FF.column={from:FF};FF.value={from:kK(FF)};hM.column={to:hM};var zK={...FF};zK.column.to=hM;import Yf from"net";import a3 from"tls";import vM from"crypto";import OK from"stream";import{performance as _f}from"perf_hooks";class MF 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 a$=d3;function d3(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(S)=>{let F=$.indexOf(S);return F===-1?null:($.splice(F,1),S)},push:(S)=>($.push(S),S),shift:()=>{let S=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return S}}}var V$=Buffer.allocUnsafe(256),r3="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return V$[0]=J,LT.i=5,LT},T},{}),LT=Object.assign(t3,r3,{N:String.fromCharCode(0),i:0,inc(T){return LT.i+=T,LT},str(T){let $=Buffer.byteLength(T);return ZA($),LT.i+=V$.write(T,LT.i,$,"utf8"),LT},i16(T){return ZA(2),V$.writeUInt16BE(T,LT.i),LT.i+=2,LT},i32(T,$){if($||$===0)return V$.writeUInt32BE(T,$),LT;return ZA(4),V$.writeUInt32BE(T,LT.i),LT.i+=4,LT},z(T){return ZA(T),V$.fill(0,LT.i,LT.i+T),LT.i+=T,LT},raw(T){return V$=Buffer.concat([V$.subarray(0,LT.i),T]),LT.i=V$.length,LT},end(T=1){V$.writeUInt32BE(LT.i-T,T);let $=V$.subarray(0,LT.i);return LT.i=0,V$=Buffer.allocUnsafe(256),$}}),a=LT;function ZA(T){if(V$.length-LT.i<T){let $=V$,J=$.length;V$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(V$)}}function t3(){return LT.i=0,LT}var VK=kf,s3=1,BS=a().S().end(),yf=a().H().end(),e3=a().i32(8).i32(80877103).end(8),T_=Buffer.concat([a().E().str(a.N).i32(0).end(),BS]),$_=a().D().str("S").str(a.N).end(),M0=()=>{},J_=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),S_={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 kf(T,$={},{onopen:J=M0,onend:S=M0,onclose:F=M0}={}){let{ssl:M,max:A,user:W,host:X,port:K,database:f,parsers:G,transform:w,onnotice:y,onnotify:H,onparameter:O,max_pipeline:E,keep_alive:B,backoff:L,target_session_attrs:N}=T,I=a$(),U=s3++,Q={pid:null,secret:null},D=DK(QW,T.idle_timeout),Z=DK(QW,T.max_lifetime),h=DK(sw,T.connect_timeout),k=null,p,g=new MF,u=Buffer.alloc(0),ET=T.fetch_types,VT={},b$={},cJ=Math.random().toString(36).slice(2),C=1,t=0,zT=0,PT=0,eT=0,fT=0,jT=0,rT=0,cT=null,IT=null,H$=!1,qT=null,fJ=null,k$=null,XS=null,T$=null,ZT=null,GJ=null,NJ=null,P=null,O0=null,Q$={queue:$.closed,idleTimer:D,connect(R){k$=R||!0,N8()},terminate:D0,execute:U0,cancel:dw,end:QW,count:0,id:U};return $.closed&&$.closed.push(Q$),Q$;async function uw(){let R;try{R=T.socket?await Promise.resolve(T.socket(T)):new Yf.Socket}catch(z){YF(z);return}return R.on("error",YF),R.on("close",C8),R.on("drain",B8),R}async function dw({pid:R,secret:z},s,OT){try{p=a().i32(16).i32(80877102).i32(R).i32(z).end(16),await L8(),k.once("error",OT),k.once("close",s)}catch(oT){OT(oT)}}function U0(R){if(H$)return J1(R,aT.connection("CONNECTION_DESTROYED",T));if(R.cancelled)return;try{return R.state=Q,P?I.push(R):(P=R,P.active=!0),aw(R),f$(rw(R))&&!R.describeFirst&&!R.cursorFn&&I.length<E&&(!R.options.onexecute||R.options.onexecute(Q$))}catch(z){return I.length===0&&f$(BS),CJ(z),!0}}function rw(R){if(R.parameters.length>=65534)throw aT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return R.options.simple?a().Q().str(R.statement.string+a.N).end():R.describeFirst?Buffer.concat([U8(R),yf]):R.prepare?R.prepared?$1(R):Buffer.concat([U8(R),$1(R)]):tw(R)}function U8(R){return Buffer.concat([q8(R.statement.string,R.parameters,R.statement.types,R.statement.name),h2("S",R.statement.name)])}function $1(R){return Buffer.concat([b2(R.parameters,R.statement.types,R.statement.name,R.cursorName),R.cursorFn?x8("",R.cursorRows):T_])}function tw(R){return Buffer.concat([q8(R.statement.string,R.parameters,R.statement.types),$_,$1(R)])}function aw(R){let z=[],s=[],OT=_K(R,R.strings[0],R.args[0],z,s,T);!R.tagged&&R.args.forEach((oT)=>xA(oT,z,s,T)),R.prepare=T.prepare&&("prepare"in R.options?R.options.prepare:!0),R.string=OT,R.signature=R.prepare&&s+OT,R.onlyDescribe&&delete b$[R.signature],R.parameters=R.parameters||z,R.prepared=R.prepare&&R.signature in b$,R.describeFirst=R.onlyDescribe||z.length&&!R.prepared,R.statement=R.prepared?b$[R.signature]:{string:OT,types:s,name:R.prepare?cJ+C++:""},typeof T.debug==="function"&&T.debug(U,OT,z,s)}function f$(R,z){if(ZT=ZT?Buffer.concat([ZT,R]):Buffer.from(R),z||ZT.length>=1024)return D8(z);return IT===null&&(IT=setImmediate(D8)),!0}function D8(R){let z=k.write(ZT,R);return IT!==null&&clearImmediate(IT),ZT=IT=null,z}function sw(){CJ(aT.connection("CONNECT_TIMEOUT",T,k)),k.destroy()}async function V8(){if(f$(e3),!await new Promise((z)=>k.once("data",(s)=>z(s[0]===83)))&&M==="prefer")return RF();k.removeAllListeners(),k=a3.connect({socket:k,servername:Yf.isIP(k.host)?void 0:k.host,...M==="require"||M==="allow"||M==="prefer"?{rejectUnauthorized:!1}:M==="verify-full"?{}:typeof M==="object"?M:{}}),k.on("secureConnect",RF),k.on("error",YF),k.on("close",C8),k.on("drain",B8)}function B8(){!P&&J(Q$)}function kW(R){if(qT){if(qT.push(R),zT-=R.length,zT>=0)return}u=qT?Buffer.concat(qT,fT-zT):u.length===0?R:Buffer.concat([u,R],u.length+R.length);while(u.length>4){if(fT=u.readUInt32BE(1),fT>=u.length){zT=fT-u.length,qT=[u];break}try{ew(u.subarray(0,fT+1))}catch(z){P&&(P.cursorFn||P.describeFirst)&&f$(BS),CJ(z)}u=u.subarray(fT+1),zT=0,qT=null}}async function L8(){if(H$=!1,VT={},k||(k=await uw()),!k)return;if(h.start(),T.socket)return M?V8():RF();if(k.on("connect",M?V8:RF),T.path)return k.connect(T.path);k.ssl=M,k.connect(K[PT],X[PT]),k.host=X[PT],k.port=K[PT],PT=(PT+1)%K.length}function N8(){setTimeout(L8,t?t+jT-_f.now():0)}function RF(){try{b$={},ET=T.fetch_types,cJ=Math.random().toString(36).slice(2),C=1,Z.start(),k.on("data",kW),B&&k.setKeepAlive&&k.setKeepAlive(!0,1000*B);let R=v2();f$(R)}catch(R){YF(R)}}function YF(R){if(Q$.queue===$.connecting&&T.host[eT+1])return;CJ(R);while(I.length)J1(I.shift(),R)}function CJ(R){T$&&(T$.destroy(R),T$=null),P&&J1(P,R),k$&&(J1(k$,R),k$=null)}function J1(R,z){"query"in z||"parameters"in z||Object.defineProperties(z,{stack:{value:z.stack+R.origin.replace(/.*\n/,`
45
+ `),enumerable:T.debug},query:{value:R.string,enumerable:T.debug},parameters:{value:R.parameters,enumerable:T.debug},args:{value:R.args,enumerable:T.debug},types:{value:R.statement&&R.statement.types,enumerable:T.debug}}),R.reject(z)}function QW(){return XS||(!Q$.reserved&&S(Q$),!Q$.reserved&&!k$&&!P&&I.length===0?(D0(),new Promise((R)=>k&&k.readyState!=="closed"?k.once("close",R):R())):XS=new Promise((R)=>GJ=R))}function D0(){if(H$=!0,T$||P||k$||I.length)YF(aT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(IT),k)k.removeListener("data",kW),k.removeListener("connect",RF),k.readyState==="open"&&k.end(a().X().end());GJ&&(GJ(),XS=GJ=null)}async function C8(R){if(u=Buffer.alloc(0),zT=0,qT=null,clearImmediate(IT),k.removeListener("data",kW),k.removeListener("connect",RF),D.cancel(),Z.cancel(),h.cancel(),k.removeAllListeners(),k=null,k$)return N8();!R&&(P||I.length)&&YF(aT.connection("CONNECTION_CLOSED",T,k)),t=_f.now(),R&&T.shared.retries++,jT=(typeof L==="function"?L(T.shared.retries):L)*1000,F(Q$,aT.connection("CONNECTION_CLOSED",T,k))}function ew(R,z=R[0]){(z===68?T2:z===100?L2:z===65?z2:z===83?$2:z===90?J2:z===67?S2:z===50?j8:z===49?F2:z===116?M2:z===84?A2:z===82?W2:z===110?R2:z===75?Y2:z===69?Q2:z===115?O2:z===51?U2:z===71?D2:z===78?C2:z===72?V2:z===99?N2:z===73?j2:z===86?q2:z===118?x2:z===87?B2:I2)(R)}function T2(R){let z=7,s,OT,oT,E$=P.isRaw?new Array(P.statement.columns.length):{};for(let C$=0;C$<P.statement.columns.length;C$++)OT=P.statement.columns[C$],s=R.readInt32BE(z),z+=4,oT=s===-1?null:P.isRaw===!0?R.subarray(z,z+=s):OT.parser===void 0?R.toString("utf8",z,z+=s):OT.parser.array===!0?OT.parser(R.toString("utf8",z+1,z+=s)):OT.parser(R.toString("utf8",z,z+=s)),P.isRaw?E$[C$]=P.isRaw===!0?oT:w.value.from?w.value.from(oT,OT):oT:E$[OT.name]=w.value.from?w.value.from(oT,OT):oT;P.forEachFn?P.forEachFn(w.row.from?w.row.from(E$):E$,g):g[rT++]=w.row.from?w.row.from(E$):E$}function $2(R){let[z,s]=R.toString("utf8",5,R.length-1).split(a.N);if(VT[z]=s,T.parameters[z]!==s)T.parameters[z]=s,O&&O(z,s)}function J2(R){if(P&&P.options.simple&&P.resolve(fJ||g),P=fJ=null,g=new MF,h.cancel(),k$){if(N){if(!VT.in_hot_standby||!VT.default_transaction_read_only)return k2();else if(H2(N,VT))return D0()}if(ET)return k$===!0&&(k$=null),_2();k$!==!0&&U0(k$),T.shared.retries=eT=0,k$=null;return}while(I.length&&(P=I.shift())&&(P.active=!0,P.cancelled))kf(T).cancel(P.state,P.cancelled.resolve,P.cancelled.reject);if(P)return;Q$.reserved?!Q$.reserved.release&&R[5]===73?XS?D0():(Q$.reserved=null,J(Q$)):Q$.reserved():XS?D0():J(Q$)}function S2(R){rT=0;for(let z=R.length-1;z>0;z--){if(R[z]===32&&R[z+1]<58&&g.count===null)g.count=+R.toString("utf8",z+1,R.length-1);if(R[z-1]>=65){g.command=R.toString("utf8",5,z),g.state=Q;break}}if(O0&&(O0(),O0=null),g.command==="BEGIN"&&A!==1&&!Q$.reserved)return CJ(aT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(P.options.simple)return j8();if(P.cursorFn)g.count&&P.cursorFn(g),f$(BS);P.resolve(g)}function F2(){P.parsing=!1}function j8(){!g.statement&&(g.statement=P.statement),g.columns=P.statement.columns}function M2(R){let z=R.readUInt16BE(5);for(let s=0;s<z;++s)!P.statement.types[s]&&(P.statement.types[s]=R.readUInt32BE(7+s*4));P.prepare&&(b$[P.signature]=P.statement),P.describeFirst&&!P.onlyDescribe&&(f$($1(P)),P.describeFirst=!1)}function A2(R){if(g.command)fJ=fJ||[g],fJ.push(g=new MF),g.count=null,P.statement.columns=null;let z=R.readUInt16BE(5),s=7,OT;P.statement.columns=Array(z);for(let oT=0;oT<z;++oT){OT=s;while(R[s++]!==0);let E$=R.readUInt32BE(s),C$=R.readUInt16BE(s+4),KS=R.readUInt32BE(s+6);P.statement.columns[oT]={name:w.column.from?w.column.from(R.toString("utf8",OT,s-1)):R.toString("utf8",OT,s-1),parser:G[KS],table:E$,number:C$,type:KS},s+=18}if(g.statement=P.statement,P.onlyDescribe)return P.resolve(P.statement),f$(BS)}async function W2(R,z=R.readUInt32BE(5)){(z===3?X2:z===5?K2:z===10?f2:z===11?G2:z===12?w2:z!==0?Z2:M0)(R,z)}async function X2(){let R=await EW();f$(a().p().str(R).z(1).end())}async function K2(R){let z="md5"+await Hf(Buffer.concat([Buffer.from(await Hf(await EW()+W)),R.subarray(9)]));f$(a().p().str(z).z(1).end())}async function f2(){NJ=(await vM.randomBytes(18)).toString("base64"),a().p().str("SCRAM-SHA-256"+a.N);let R=a.i;f$(a.inc(4).str("n,,n=*,r="+NJ).i32(a.i-R-4,R).end())}async function G2(R){let z=R.toString("utf8",9).split(",").reduce((C$,KS)=>(C$[KS[0]]=KS.slice(2),C$),{}),s=await vM.pbkdf2Sync(await EW(),Buffer.from(z.s,"base64"),parseInt(z.i),32,"sha256"),OT=await bA(s,"Client Key"),oT="n=*,r="+NJ+",r="+z.r+",s="+z.s+",i="+z.i+",c=biws,r="+z.r;cT=(await bA(await bA(s,"Server Key"),oT)).toString("base64");let E$="c=biws,r="+z.r+",p="+M_(OT,Buffer.from(await bA(await F_(OT),oT))).toString("base64");f$(a().p().str(E$).end())}function w2(R){if(R.toString("utf8",9).split(a.N,1)[0].slice(2)===cT)return;CJ(aT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),k.destroy()}function EW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function R2(){if(g.statement=P.statement,g.statement.columns=[],P.onlyDescribe)return P.resolve(P.statement),f$(BS)}function Y2(R){Q.pid=R.readUInt32BE(5),Q.secret=R.readUInt32BE(9)}async function _2(){ET=!1,(await new MJ([`
44
46
  select b.oid, b.typarray
45
47
  from pg_catalog.pg_type a
46
48
  left join pg_catalog.pg_type b on b.oid = a.typelem
47
49
  where a.typcategory = 'A'
48
50
  group by b.oid, b.typarray
49
51
  order by b.oid
50
- `],[],LM)).forEach(({oid:_,typarray:a})=>rk(_,a))}function rk(O,_){if(!!T.parsers[_]&&!!T.serializers[_])return;let a=T.parsers[O];T.shared.typeArrayMap[O]=_,T.parsers[_]=(GT)=>Sk(GT,a,_),T.parsers[_].array=!0,T.serializers[_]=(GT)=>Tk(GT,T.serializers[O],T,_)}function ak(O,_){return O==="read-write"&&_.default_transaction_read_only==="on"||O==="read-only"&&_.default_transaction_read_only==="off"||O==="primary"&&_.in_hot_standby==="on"||O==="standby"&&_.in_hot_standby==="off"||O==="prefer-standby"&&_.in_hot_standby==="off"&&T.host[tT]}function ek(){let O=new gS([`
52
+ `],[],U0)).forEach(({oid:z,typarray:s})=>y2(z,s))}function y2(R,z){if(!!T.parsers[z]&&!!T.serializers[z])return;let s=T.parsers[R];T.shared.typeArrayMap[R]=z,T.parsers[z]=(OT)=>wf(OT,s,z),T.parsers[z].array=!0,T.serializers[z]=(OT)=>Gf(OT,T.serializers[R],T,z)}function H2(R,z){return R==="read-write"&&z.default_transaction_read_only==="on"||R==="read-only"&&z.default_transaction_read_only==="off"||R==="primary"&&z.in_hot_standby==="on"||R==="standby"&&z.in_hot_standby==="off"||R==="prefer-standby"&&z.in_hot_standby==="off"&&T.host[eT]}function k2(){let R=new MJ([`
51
53
  show transaction_read_only;
52
54
  select pg_catalog.pg_is_in_recovery()
53
- `],[],LM,null,{simple:!0});O.resolve=([[_],[a]])=>{HT.default_transaction_read_only=_.transaction_read_only,HT.in_hot_standby=a.pg_is_in_recovery?"on":"off"},O.execute()}function sk(O){m&&(m.cursorFn||m.describeFirst)&&TS(s$);let _=gT.postgres(p1(O));m&&m.retried?F$(m.retried):m&&m.prepared&&qY.has(_.routine)?TO(m,_):F$(_)}function TO(O,_){delete DS[O.signature],O.retried=_,LM(O)}function SO(O){if(!G)return;let _=9;while(O[_++]!==0);G(O.toString("utf8",9,_-1),O.toString("utf8",_,O.length-1))}async function $O(){try{let O=await Promise.resolve(m.cursorFn(P));cT=0,O===_M?TS(GO(m.portal)):(P=new Bf,TS(DA("",m.cursorRows)))}catch(O){TS(s$),m.reject(O)}}function fO(){P.count&&m.cursorFn(P),m.resolve(P)}function MO(){pT=new t1.Writable({autoDestroy:!0,write(O,_,a){R.write(r().d().raw(O).end(),a)},destroy(O,_){_(O),R.write(r().f().str(O+r.N).end()),pT=null},final(O){R.write(r().c().end()),BM=O}}),m.resolve(pT)}function JO(){pT=new t1.Readable({read(){R.resume()}}),m.resolve(pT)}function FO(){pT=new t1.Duplex({autoDestroy:!0,read(){R.resume()},write(O,_,a){R.write(r().d().raw(O).end(),a)},destroy(O,_){_(O),R.write(r().f().str(O+r.N).end()),pT=null},final(O){R.write(r().c().end()),BM=O}}),m.resolve(pT)}function WO(O){pT&&(pT.push(O.subarray(5))||R.pause())}function AO(){pT&&pT.push(null),pT=null}function XO(O){z?z(p1(O)):console.log(p1(O))}function wO(){}function yO(){F$(gT.notSupported("FunctionCallResponse"))}function kO(){F$(gT.notSupported("NegotiateProtocolVersion"))}function OO(O){console.error("Postgres.js : Unknown Message:",O[0])}function KO(O,_){console.error("Postgres.js : Unknown Auth:",_)}function YO(O,_,a="",GT=""){let hT,XS;return r().B().str(GT+r.N).str(a+r.N).i16(0).i16(O.length),O.forEach((YS,h$)=>{if(YS===null)return r.i32(4294967295);XS=_[h$],O[h$]=YS=XS in T.serializers?T.serializers[XS](YS):""+YS,hT=r.i,r.inc(4).str(YS).i32(r.i-hT-4,hT)}),r.i16(0),r.end()}function _A(O,_,a,GT=""){return r().P().str(GT+r.N).str(O+r.N).i16(_.length),_.forEach((hT,XS)=>r.i32(a[XS]||0)),r.end()}function RO(O,_=""){return r().D().str(O).str(_+r.N).end()}function DA(O="",_=0){return Buffer.concat([r().E().str(O+r.N).i32(_).end(),Jk])}function GO(O=""){return Buffer.concat([r().C().str("P").str(O+r.N).end(),r().S().end()])}function zO(){return o||r().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:W,database:w,client_encoding:"UTF8"},T.connection)).filter(([,O])=>O).map(([O,_])=>O+r.N+_).join(r.N)).z(2).end(0)}}function p1(T){let S={},$=5;for(let f=5;f<T.length-1;f++)if(T[f]===0)S[mY[T[$]]]=T.toString("utf8",$+1,f),$=f+1;return S}function Fk(T){return cJ.createHash("md5").update(T).digest("hex")}function LW(T,S){return cJ.createHmac("sha256",T).update(S).digest()}function hY(T){return cJ.createHash("sha256").update(T).digest()}function nY(T,S){let $=Math.max(T.length,S.length),f=Buffer.allocUnsafe($);for(let M=0;M<$;M++)f[M]=T[M]^S[M];return f}function i1(T,S){if(S=typeof S==="function"?S():S,!S)return{cancel:EM,start:EM};let $;return{cancel(){$&&(clearTimeout($),$=null)},start(){$&&clearTimeout($),$=setTimeout(f,S*1000,arguments)}};function f(M){T.apply(null,M),$=null}}var Ak=()=>{};function l1(T,S){let $=new Map,f="postgresjs_"+Math.random().toString(36).slice(2),M={},J,F,W=!1,A=y.sql=T({...S,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...S.connection,replication:"database"},onclose:async function(){if(W)return;F=null,M.pid=M.secret=void 0,k(await z(A,f,S.publications)),$.forEach((U)=>U.forEach(({onsubscribe:E})=>E()))},no_subscribe:!0}),X=A.end,w=A.close;return A.end=async()=>{return W=!0,F&&await new Promise((U)=>(F.once("close",U),F.end())),X()},A.close=async()=>{return F&&await new Promise((U)=>(F.once("close",U),F.end())),w()},y;async function y(U,E,B=Ak,L=Ak){if(U=cY(U),!J)J=z(A,f,S.publications);let Z={fn:E,onsubscribe:B},j=$.has(U)?$.get(U).add(Z):$.set(U,new Set([Z])).get(U),D=()=>{j.delete(Z),j.size===0&&$.delete(U)};return J.then((H)=>{return k(H),B(),F&&F.on("error",L),{unsubscribe:D,state:M,sql:A}})}function k(U){F=U.stream,M.pid=U.state.pid,M.secret=U.state.secret}async function z(U,E,B){if(!B)throw new Error("Missing publication names");let L=await U.unsafe(`CREATE_REPLICATION_SLOT ${E} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[Z]=L,j=await U.unsafe(`START_REPLICATION SLOT ${E} LOGICAL ${Z.consistent_point} (proto_version '1', publication_names '${B}')`).writable(),D={lsn:Buffer.concat(Z.consistent_point.split("/").map((R)=>Buffer.from(("00000000"+R).slice(-8),"hex")))};return j.on("data",Q),j.on("error",H),j.on("close",U.close),{stream:j,state:L.state};function H(R){console.error("Unexpected error during logical streaming - reconnecting",R)}function Q(R){if(R[0]===119)PY(R.subarray(25),D,U.options.parsers,b,S.transform);else if(R[0]===107&&R[17])D.lsn=R.subarray(1,9),n()}function b(R,o){let P=o.relation.schema+"."+o.relation.table;G("*",R,o),G("*:"+P,R,o),o.relation.keys.length&&G("*:"+P+"="+o.relation.keys.map((i)=>R[i.name]),R,o),G(o.command,R,o),G(o.command+":"+P,R,o),o.relation.keys.length&&G(o.command+":"+P+"="+o.relation.keys.map((i)=>R[i.name]),R,o)}function n(){let R=Buffer.alloc(34);R[0]=114,R.fill(D.lsn,1),R.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),j.write(R)}}function G(U,E,B){$.has(U)&&$.get(U).forEach(({fn:L})=>L(E,B,U))}}function vY(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function PY(T,S,$,f,M){let J=(F,[W,A])=>(F[W.charCodeAt(0)]=A,F);Object.entries({R:(F)=>{let W=1,A=S[F.readUInt32BE(W)]={schema:F.toString("utf8",W+=4,W=F.indexOf(0,W))||"pg_catalog",table:F.toString("utf8",W+1,W=F.indexOf(0,W+1)),columns:Array(F.readUInt16BE(W+=2)),keys:[]};W+=2;let X=0,w;while(W<F.length)w=A.columns[X++]={key:F[W++],name:M.column.from?M.column.from(F.toString("utf8",W,W=F.indexOf(0,W))):F.toString("utf8",W,W=F.indexOf(0,W)),type:F.readUInt32BE(W+=1),parser:$[F.readUInt32BE(W)],atttypmod:F.readUInt32BE(W+=4)},w.key&&A.keys.push(w),W+=4},Y:()=>{},O:()=>{},B:(F)=>{S.date=vY(F.readBigInt64BE(9)),S.lsn=F.subarray(1,9)},I:(F)=>{let W=1,A=S[F.readUInt32BE(W)],{row:X}=NW(F,A.columns,W+=7,M);f(X,{command:"insert",relation:A})},D:(F)=>{let W=1,A=S[F.readUInt32BE(W)];W+=4;let X=F[W]===75;f(X||F[W]===79?NW(F,A.columns,W+=3,M).row:null,{command:"delete",relation:A,key:X})},U:(F)=>{let W=1,A=S[F.readUInt32BE(W)];W+=4;let X=F[W]===75,w=X||F[W]===79?NW(F,A.columns,W+=3,M):null;w&&(W=w.i);let{row:y}=NW(F,A.columns,W+3,M);f(y,{command:"update",relation:A,key:X,old:w&&w.row})},T:()=>{},C:()=>{}}).reduce(J,{})[T[0]](T)}function NW(T,S,$,f){let M,J,F,W=f.raw?new Array(S.length):{};for(let A=0;A<S.length;A++)M=T[$++],J=S[A],F=M===110?null:M===117?void 0:J.parser===void 0?T.toString("utf8",$+4,$+=4+T.readUInt32BE($)):J.parser.array===!0?J.parser(T.toString("utf8",$+5,$+=4+T.readUInt32BE($))):J.parser(T.toString("utf8",$+4,$+=4+T.readUInt32BE($))),f.raw?W[A]=f.raw===!0?F:f.value.from?f.value.from(F,J):F:W[J.name]=f.value.from?f.value.from(F,J):F;return{i:$,row:f.row.from?f.row.from(W):W}}function cY(T){let S=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!S)throw new Error("Malformed subscribe pattern: "+T);let[,$,f,M]=S;return($||"*")+(f?":"+(f.indexOf(".")===-1?"public."+f:f):"")+(M?"="+M:"")}import Xk from"stream";function d1(T,S,$=393216){return new Promise(async(f,M)=>{await T.begin(async(J)=>{let F;!S&&([{oid:S}]=await J`select lo_creat(-1) as oid`);let[{fd:W}]=await J`select lo_open(${S}, ${$}) as fd`,A={writable:w,readable:X,close:()=>J`select lo_close(${W})`.then(F),tell:()=>J`select lo_tell64(${W})`,read:(y)=>J`select loread(${W}, ${y}) as data`,write:(y)=>J`select lowrite(${W}, ${y})`,truncate:(y)=>J`select lo_truncate64(${W}, ${y})`,seek:(y,k=0)=>J`select lo_lseek64(${W}, ${y}, ${k})`,size:()=>J`
55
+ `],[],U0,null,{simple:!0});R.resolve=([[z],[s]])=>{VT.default_transaction_read_only=z.transaction_read_only,VT.in_hot_standby=s.pg_is_in_recovery?"on":"off"},R.execute()}function Q2(R){P&&(P.cursorFn||P.describeFirst)&&f$(BS);let z=aT.postgres(UK(R));P&&P.retried?CJ(P.retried):P&&P.prepared&&J_.has(z.routine)?E2(P,z):CJ(z)}function E2(R,z){delete b$[R.signature],R.retried=z,U0(R)}function z2(R){if(!H)return;let z=9;while(R[z++]!==0);H(R.toString("utf8",9,z-1),R.toString("utf8",z,R.length-1))}async function O2(){try{let R=await Promise.resolve(P.cursorFn(g));rT=0,R===S0?f$(P2(P.portal)):(g=new MF,f$(x8("",P.cursorRows)))}catch(R){f$(BS),P.reject(R)}}function U2(){g.count&&P.cursorFn(g),P.resolve(g)}function D2(){T$=new OK.Writable({autoDestroy:!0,write(R,z,s){k.write(a().d().raw(R).end(),s)},destroy(R,z){z(R),k.write(a().f().str(R+a.N).end()),T$=null},final(R){k.write(a().c().end()),O0=R}}),P.resolve(T$)}function V2(){T$=new OK.Readable({read(){k.resume()}}),P.resolve(T$)}function B2(){T$=new OK.Duplex({autoDestroy:!0,read(){k.resume()},write(R,z,s){k.write(a().d().raw(R).end(),s)},destroy(R,z){z(R),k.write(a().f().str(R+a.N).end()),T$=null},final(R){k.write(a().c().end()),O0=R}}),P.resolve(T$)}function L2(R){T$&&(T$.push(R.subarray(5))||k.pause())}function N2(){T$&&T$.push(null),T$=null}function C2(R){y?y(UK(R)):console.log(UK(R))}function j2(){}function q2(){CJ(aT.notSupported("FunctionCallResponse"))}function x2(){CJ(aT.notSupported("NegotiateProtocolVersion"))}function I2(R){console.error("Postgres.js : Unknown Message:",R[0])}function Z2(R,z){console.error("Postgres.js : Unknown Auth:",z)}function b2(R,z,s="",OT=""){let oT,E$;return a().B().str(OT+a.N).str(s+a.N).i16(0).i16(R.length),R.forEach((C$,KS)=>{if(C$===null)return a.i32(4294967295);E$=z[KS],R[KS]=C$=E$ in T.serializers?T.serializers[E$](C$):""+C$,oT=a.i,a.inc(4).str(C$).i32(a.i-oT-4,oT)}),a.i16(0),a.end()}function q8(R,z,s,OT=""){return a().P().str(OT+a.N).str(R+a.N).i16(z.length),z.forEach((oT,E$)=>a.i32(s[E$]||0)),a.end()}function h2(R,z=""){return a().D().str(R).str(z+a.N).end()}function x8(R="",z=0){return Buffer.concat([a().E().str(R+a.N).i32(z).end(),yf])}function P2(R=""){return Buffer.concat([a().C().str("P").str(R+a.N).end(),a().S().end()])}function v2(){return p||a().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:W,database:f,client_encoding:"UTF8"},T.connection)).filter(([,R])=>R).map(([R,z])=>R+a.N+z).join(a.N)).z(2).end(0)}}function UK(T){let $={},J=5;for(let S=5;S<T.length-1;S++)if(T[S]===0)$[S_[T[J]]]=T.toString("utf8",J+1,S),J=S+1;return $}function Hf(T){return vM.createHash("md5").update(T).digest("hex")}function bA(T,$){return vM.createHmac("sha256",T).update($).digest()}function F_(T){return vM.createHash("sha256").update(T).digest()}function M_(T,$){let J=Math.max(T.length,$.length),S=Buffer.allocUnsafe(J);for(let F=0;F<J;F++)S[F]=T[F]^$[F];return S}function DK(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:M0,start:M0};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(S,$*1000,arguments)}};function S(F){T.apply(null,F),J=null}}var Qf=()=>{};function BK(T,$){let J=new Map,S="postgresjs_"+Math.random().toString(36).slice(2),F={},M,A,W=!1,X=G.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;A=null,F.pid=F.secret=void 0,w(await y(X,S,$.publications)),J.forEach((O)=>O.forEach(({onsubscribe:E})=>E()))},no_subscribe:!0}),K=X.end,f=X.close;return X.end=async()=>{return W=!0,A&&await new Promise((O)=>(A.once("close",O),A.end())),K()},X.close=async()=>{return A&&await new Promise((O)=>(A.once("close",O),A.end())),f()},G;async function G(O,E,B=Qf,L=Qf){if(O=X_(O),!M)M=y(X,S,$.publications);let N={fn:E,onsubscribe:B},I=J.has(O)?J.get(O).add(N):J.set(O,new Set([N])).get(O),U=()=>{I.delete(N),I.size===0&&J.delete(O)};return M.then((Q)=>{return w(Q),B(),A&&A.on("error",L),{unsubscribe:U,state:F,sql:X}})}function w(O){A=O.stream,F.pid=O.state.pid,F.secret=O.state.secret}async function y(O,E,B){if(!B)throw new Error("Missing publication names");let L=await O.unsafe(`CREATE_REPLICATION_SLOT ${E} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[N]=L,I=await O.unsafe(`START_REPLICATION SLOT ${E} LOGICAL ${N.consistent_point} (proto_version '1', publication_names '${B}')`).writable(),U={lsn:Buffer.concat(N.consistent_point.split("/").map((k)=>Buffer.from(("00000000"+k).slice(-8),"hex")))};return I.on("data",D),I.on("error",Q),I.on("close",O.close),{stream:I,state:L.state};function Q(k){console.error("Unexpected error during logical streaming - reconnecting",k)}function D(k){if(k[0]===119)W_(k.subarray(25),U,O.options.parsers,Z,$.transform);else if(k[0]===107&&k[17])U.lsn=k.subarray(1,9),h()}function Z(k,p){let g=p.relation.schema+"."+p.relation.table;H("*",k,p),H("*:"+g,k,p),p.relation.keys.length&&H("*:"+g+"="+p.relation.keys.map((u)=>k[u.name]),k,p),H(p.command,k,p),H(p.command+":"+g,k,p),p.relation.keys.length&&H(p.command+":"+g+"="+p.relation.keys.map((u)=>k[u.name]),k,p)}function h(){let k=Buffer.alloc(34);k[0]=114,k.fill(U.lsn,1),k.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),I.write(k)}}function H(O,E,B){J.has(O)&&J.get(O).forEach(({fn:L})=>L(E,B,O))}}function A_(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function W_(T,$,J,S,F){let M=(A,[W,X])=>(A[W.charCodeAt(0)]=X,A);Object.entries({R:(A)=>{let W=1,X=$[A.readUInt32BE(W)]={schema:A.toString("utf8",W+=4,W=A.indexOf(0,W))||"pg_catalog",table:A.toString("utf8",W+1,W=A.indexOf(0,W+1)),columns:Array(A.readUInt16BE(W+=2)),keys:[]};W+=2;let K=0,f;while(W<A.length)f=X.columns[K++]={key:A[W++],name:F.column.from?F.column.from(A.toString("utf8",W,W=A.indexOf(0,W))):A.toString("utf8",W,W=A.indexOf(0,W)),type:A.readUInt32BE(W+=1),parser:J[A.readUInt32BE(W)],atttypmod:A.readUInt32BE(W+=4)},f.key&&X.keys.push(f),W+=4},Y:()=>{},O:()=>{},B:(A)=>{$.date=A_(A.readBigInt64BE(9)),$.lsn=A.subarray(1,9)},I:(A)=>{let W=1,X=$[A.readUInt32BE(W)],{row:K}=hA(A,X.columns,W+=7,F);S(K,{command:"insert",relation:X})},D:(A)=>{let W=1,X=$[A.readUInt32BE(W)];W+=4;let K=A[W]===75;S(K||A[W]===79?hA(A,X.columns,W+=3,F).row:null,{command:"delete",relation:X,key:K})},U:(A)=>{let W=1,X=$[A.readUInt32BE(W)];W+=4;let K=A[W]===75,f=K||A[W]===79?hA(A,X.columns,W+=3,F):null;f&&(W=f.i);let{row:G}=hA(A,X.columns,W+3,F);S(G,{command:"update",relation:X,key:K,old:f&&f.row})},T:()=>{},C:()=>{}}).reduce(M,{})[T[0]](T)}function hA(T,$,J,S){let F,M,A,W=S.raw?new Array($.length):{};for(let X=0;X<$.length;X++)F=T[J++],M=$[X],A=F===110?null:F===117?void 0:M.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):M.parser.array===!0?M.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):M.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),S.raw?W[X]=S.raw===!0?A:S.value.from?S.value.from(A,M):A:W[M.name]=S.value.from?S.value.from(A,M):A;return{i:J,row:S.row.from?S.row.from(W):W}}function X_(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,S,F]=$;return(J||"*")+(S?":"+(S.indexOf(".")===-1?"public."+S:S):"")+(F?"="+F:"")}import Ef from"stream";function LK(T,$,J=393216){return new Promise(async(S,F)=>{await T.begin(async(M)=>{let A;!$&&([{oid:$}]=await M`select lo_creat(-1) as oid`);let[{fd:W}]=await M`select lo_open(${$}, ${J}) as fd`,X={writable:f,readable:K,close:()=>M`select lo_close(${W})`.then(A),tell:()=>M`select lo_tell64(${W})`,read:(G)=>M`select loread(${W}, ${G}) as data`,write:(G)=>M`select lowrite(${W}, ${G})`,truncate:(G)=>M`select lo_truncate64(${W}, ${G})`,seek:(G,w=0)=>M`select lo_lseek64(${W}, ${G}, ${w})`,size:()=>M`
54
56
  select
55
57
  lo_lseek64(${W}, location, 0) as position,
56
58
  seek.size
@@ -60,18 +62,23 @@ ${M}`);let F=j$.join(this.baseDir,`${T}/${S}.output.json`);return JSON.parse(rT.
60
62
  tell.location
61
63
  from (select lo_tell64($1) as location) tell
62
64
  ) seek
63
- `};return f(A),new Promise(async(y)=>F=y);async function X({highWaterMark:y=16384,start:k=0,end:z=1/0}={}){let G=z-k;return k&&await A.seek(k),new Xk.Readable({highWaterMark:y,async read(U){let E=U>G?U-G:U;G-=U;let[{data:B}]=await A.read(E);if(this.push(B),B.length<U)this.push(null)}})}async function w({highWaterMark:y=16384,start:k=0}={}){return k&&await A.seek(k),new Xk.Writable({highWaterMark:y,write(z,G,U){A.write(z).then(()=>U(),U)}})}}).catch(M)})}Object.assign(CW,{PostgresError:DM,toPascal:Uf,pascal:o1,toCamel:Qf,camel:c1,toKebab:Vf,kebab:g1,fromPascal:nJ,fromCamel:hJ,fromKebab:vJ,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var QM=CW;function CW(T,S){let $=tY(T,S),f=$.no_subscribe||l1(CW,{...$}),M=!1,J=mS(),F=mS(),W=mS(),A=mS(),X=mS(),w=mS(),y=mS(),k=mS(),z={connecting:F,reserved:W,closed:A,ended:X,open:w,busy:y,full:k},G=[...Array($.max)].map(()=>u1($,z,{onopen:DS,onend:HT,onclose:Y$})),U=E(b);return Object.assign(U,{get parameters(){return $.parameters},largeObject:d1.bind(null,U),subscribe:f,CLOSE:_M,END:_M,PostgresError:DM,options:$,reserve:Z,listen:B,begin:j,close:P,end:o}),U;function E(N){return N.debug=$.debug,Object.entries($.types).reduce((FT,[UT,cT])=>{return FT[UT]=(bT)=>new K$(bT,cT.to),FT},d),Object.assign(RT,{types:d,typed:d,unsafe:jT,notify:L,array:Q,json:H,file:tT}),RT;function d(FT,UT){return new K$(FT,UT)}function RT(FT,...UT){return FT&&Array.isArray(FT.raw)?new gS(FT,UT,N,R):typeof FT==="string"&&!UT.length?new PJ($.transform.column.to?$.transform.column.to(FT):FT):new QW(FT,UT)}function jT(FT,UT=[],cT={}){return arguments.length===2&&!Array.isArray(UT)&&(cT=UT,UT=[]),new gS([FT],UT,N,R,{prepare:!1,...cT,simple:"simple"in cT?cT.simple:UT.length===0})}function tT(FT,UT=[],cT={}){return arguments.length===2&&!Array.isArray(UT)&&(cT=UT,UT=[]),new gS([],UT,(LT)=>{gY.readFile(FT,"utf8",(FS,VT)=>{if(FS)return LT.reject(FS);LT.strings=[VT],N(LT)})},R,{...cT,simple:"simple"in cT?cT.simple:UT.length===0})}}async function B(N,d,RT){let jT={fn:d,onlisten:RT},tT=B.sql||(B.sql=CW({...$,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(B.channels).forEach(([LT,{listeners:FS}])=>{delete B.channels[LT],Promise.all(FS.map((VT)=>B(LT,VT.fn,VT.onlisten).catch(()=>{})))})},onnotify(LT,FS){LT in B.channels&&B.channels[LT].listeners.forEach((VT)=>VT.fn(FS))}})),FT=B.channels||(B.channels={});if(N in FT){FT[N].listeners.push(jT);let LT=await FT[N].result;return jT.onlisten&&jT.onlisten(),{state:LT.state,unlisten:bT}}FT[N]={result:tT`listen ${tT.unsafe('"'+N.replace(/"/g,'""')+'"')}`,listeners:[jT]};let cT=await FT[N].result;return jT.onlisten&&jT.onlisten(),{state:cT.state,unlisten:bT};async function bT(){if(N in FT===!1)return;if(FT[N].listeners=FT[N].listeners.filter((LT)=>LT!==jT),FT[N].listeners.length)return;return delete FT[N],tT`unlisten ${tT.unsafe('"'+N.replace(/"/g,'""')+'"')}`}}async function L(N,d){return await U`select pg_notify(${N}, ${""+d})`}async function Z(){let N=mS(),d=w.length?w.shift():await new Promise((tT)=>{J.push({reserve:tT}),A.length&&YT(A.shift())});D(d,W),d.reserved=()=>N.length?d.execute(N.shift()):D(d,W),d.reserved.release=!0;let RT=E(jT);return RT.release=()=>{d.reserved=null,DS(d)},RT;function jT(tT){d.queue===k?N.push(tT):d.execute(tT)||D(d,k)}}async function j(N,d){!d&&(d=N,N="");let RT=mS(),jT=0,tT,FT=null;try{return await U.unsafe("begin "+N.replace(/[^a-z ]/ig,""),[],{onexecute:cT}).execute(),await Promise.race([UT(tT,d),new Promise((bT,LT)=>tT.onclose=LT)])}catch(bT){throw bT}async function UT(bT,LT,FS){let VT=E(pT);VT.savepoint=m$,VT.prepare=(NT)=>FT=NT.replace(/[^a-z0-9$-_. ]/gi);let tS,WS;FS&&await VT`savepoint ${VT(FS)}`;try{if(WS=await new Promise((NT,pS)=>{let J$=LT(VT);Promise.resolve(Array.isArray(J$)?Promise.all(J$):J$).then(NT,pS)}),tS)throw tS}catch(NT){throw await(FS?VT`rollback to ${VT(FS)}`:VT`rollback`),NT instanceof DM&&NT.code==="25P02"&&tS||NT}if(!FS)FT?await VT`prepare transaction '${VT.unsafe(FT)}'`:await VT`commit`;return WS;function m$(NT,pS){if(NT&&Array.isArray(NT.raw))return m$((J$)=>J$.apply(J$,arguments));return arguments.length===1&&(pS=NT,NT=null),UT(bT,pS,"s"+jT+++(NT?"_"+NT:""))}function pT(NT){NT.catch((pS)=>tS||(tS=pS)),bT.queue===k?RT.push(NT):bT.execute(NT)||D(bT,k)}}function cT(bT){tT=bT,D(bT,W),bT.reserved=()=>RT.length?bT.execute(RT.shift()):D(bT,W)}}function D(N,d){return N.queue.remove(N),d.push(N),N.queue=d,d===w?N.idleTimer.start():N.idleTimer.cancel(),N}function H(N){return new K$(N,3802)}function Q(N,d){if(!Array.isArray(N))return Q(Array.from(arguments));return new K$(N,d||(N.length?DW(N)||25:0),$.shared.typeArrayMap)}function b(N){if(M)return N.reject(gT.connection("CONNECTION_ENDED",$,$));if(w.length)return n(w.shift(),N);if(A.length)return YT(A.shift(),N);y.length?n(y.shift(),N):J.push(N)}function n(N,d){return N.execute(d)?D(N,y):D(N,k)}function R(N){return new Promise((d,RT)=>{N.state?N.active?u1($).cancel(N.state,d,RT):N.cancelled={resolve:d,reject:RT}:(J.remove(N),N.cancelled=!0,N.reject(gT.generic("57014","canceling statement due to user request")),d())})}async function o({timeout:N=null}={}){if(M)return M;await 1;let d;return M=Promise.race([new Promise((RT)=>N!==null&&(d=setTimeout(i,N*1000,RT))),Promise.all(G.map((RT)=>RT.end()).concat(B.sql?B.sql.end({timeout:0}):[],f.sql?f.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(d))}async function P(){await Promise.all(G.map((N)=>N.end()))}async function i(N){await Promise.all(G.map((d)=>d.terminate()));while(J.length)J.shift().reject(gT.connection("CONNECTION_DESTROYED",$));N()}function YT(N,d){return D(N,F),N.connect(d),N}function HT(N){D(N,X)}function DS(N){if(J.length===0)return D(N,w);let d=Math.ceil(J.length/(F.length+1)),RT=!0;while(RT&&J.length&&d-- >0){let jT=J.shift();if(jT.reserve)return jT.reserve(N);RT=N.execute(jT)}RT?D(N,y):D(N,k)}function Y$(N,d){D(N,A),N.reserved=null,N.onclose&&(N.onclose(d),N.onclose=null),$.onclose&&$.onclose(N.id),J.length&&YT(N,J.shift())}}function tY(T,S){if(T&&T.shared)return T;let $=process.env,f=(!T||typeof T==="string"?S:T)||{},{url:M,multihost:J}=dY(T),F=[...M.searchParams].reduce((k,[z,G])=>(k[z]=G,k),{}),W=f.hostname||f.host||J||M.hostname||$.PGHOST||"localhost",A=f.port||M.port||$.PGPORT||5432,X=f.user||f.username||M.username||$.PGUSERNAME||$.PGUSER||rY();f.no_prepare&&(f.prepare=!1),F.sslmode&&(F.ssl=F.sslmode,delete F.sslmode),"timeout"in f&&(console.log("The timeout option is deprecated, use idle_timeout instead"),f.idle_timeout=f.timeout),F.sslrootcert==="system"&&(F.ssl="verify-full");let w=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],y={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:uY,max_pipeline:100,backoff:iY,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||X,user:X,pass:f.pass||f.password||M.password||$.PGPASSWORD||"",...Object.entries(y).reduce((k,[z,G])=>{let U=z in f?f[z]:(z in F)?F[z]==="disable"||F[z]==="false"?!1:F[z]:$["PG"+z.toUpperCase()]||G;return k[z]=typeof U==="string"&&w.includes(z)?+U:U,k},{}),connection:{application_name:"postgres.js",...f.connection,...Object.entries(F).reduce((k,[z,G])=>((z in y)||(k[z]=G),k),{})},types:f.types||{},target_session_attrs:pY(f,M,$),onnotice:f.onnotice,onnotify:f.onnotify,onclose:f.onclose,onparameter:f.onparameter,socket:f.socket,transform:lY(f.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...ey(f.types)}}function pY(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 iY(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function uY(){return 60*(30+Math.random()*30)}function lY(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 dY(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 rY(){try{return oY.userInfo().username}catch(T){return process.env.USERNAME||"runner"}}class xW extends HS{constructor(T,S,$,f){super();this.session=S,this.dialect=$,this.config={table:T,withList:f}}static[K]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[v.Symbol.Columns]){return this.config.returning=oS(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)})};$dynamic(){return this}}function aY(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(($)=>$.toLowerCase()).join("_")}function eY(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce(($,f,M)=>{let J=M===0?f.toLowerCase():`${f[0].toUpperCase()}${f.slice(1)}`;return $+J},"")}function sY(T){return T}class r1{static[K]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?aY:T==="camelCase"?eY:sY}getColumnCasing(T){if(!T.keyAsName)return T.name;let S=T.table[v.Symbol.Schema]??"public",$=T.table[v.Symbol.OriginalName],f=`${S}.${$}.${T.name}`;if(!this.cache[f])this.cacheTable(T.table);return this.cache[f]}cacheTable(T){let S=T[v.Symbol.Schema]??"public",$=T[v.Symbol.OriginalName],f=`${S}.${$}`;if(!this.cachedTables[f]){for(let M of Object.values(T[v.Symbol.Columns])){let J=`${f}.${M.name}`;this.cache[J]=this.convert(M.name)}this.cachedTables[f]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class oJ extends VS{static[K]="PgViewBase"}class Lf{static[K]="PgDialect";casing;constructor(T){this.casing=new r1(T?.casing)}async migrate(T,S,$){let f=typeof $==="string"?"__drizzle_migrations":$.migrationsTable??"__drizzle_migrations",M=typeof $==="string"?"drizzle":$.migrationsSchema??"drizzle",J=Y`
64
- CREATE TABLE IF NOT EXISTS ${Y.identifier(M)}.${Y.identifier(f)} (
65
+ `};return S(X),new Promise(async(G)=>A=G);async function K({highWaterMark:G=16384,start:w=0,end:y=1/0}={}){let H=y-w;return w&&await X.seek(w),new Ef.Readable({highWaterMark:G,async read(O){let E=O>H?O-H:O;H-=O;let[{data:B}]=await X.read(E);if(this.push(B),B.length<O)this.push(null)}})}async function f({highWaterMark:G=16384,start:w=0}={}){return w&&await X.seek(w),new Ef.Writable({highWaterMark:G,write(y,H,O){X.write(y).then(()=>O(),O)}})}}).catch(F)})}Object.assign(PA,{PostgresError:F0,toPascal:SF,pascal:EK,toCamel:JF,camel:QK,toKebab:FF,kebab:zK,fromPascal:bM,fromCamel:ZM,fromKebab:hM,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var A0=PA;function PA(T,$){let J=G_(T,$),S=J.no_subscribe||BK(PA,{...J}),F=!1,M=a$(),A=a$(),W=a$(),X=a$(),K=a$(),f=a$(),G=a$(),w=a$(),y={connecting:A,reserved:W,closed:X,ended:K,open:f,busy:G,full:w},H=[...Array(J.max)].map(()=>VK(J,y,{onopen:b$,onend:VT,onclose:cJ})),O=E(Z);return Object.assign(O,{get parameters(){return J.parameters},largeObject:LK.bind(null,O),subscribe:S,CLOSE:S0,END:S0,PostgresError:F0,options:J,reserve:N,listen:B,begin:I,close:g,end:p}),O;function E(C){return C.debug=J.debug,Object.entries(J.types).reduce((fT,[jT,rT])=>{return fT[jT]=(cT)=>new PJ(cT,rT.to),fT},t),Object.assign(zT,{types:t,typed:t,unsafe:PT,notify:L,array:D,json:Q,file:eT}),zT;function t(fT,jT){return new PJ(fT,jT)}function zT(fT,...jT){return fT&&Array.isArray(fT.raw)?new MJ(fT,jT,C,k):typeof fT==="string"&&!jT.length?new PM(J.transform.column.to?J.transform.column.to(fT):fT):new qA(fT,jT)}function PT(fT,jT=[],rT={}){return arguments.length===2&&!Array.isArray(jT)&&(rT=jT,jT=[]),new MJ([fT],jT,C,k,{prepare:!1,...rT,simple:"simple"in rT?rT.simple:jT.length===0})}function eT(fT,jT=[],rT={}){return arguments.length===2&&!Array.isArray(jT)&&(rT=jT,jT=[]),new MJ([],jT,(IT)=>{f_.readFile(fT,"utf8",(H$,qT)=>{if(H$)return IT.reject(H$);IT.strings=[qT],C(IT)})},k,{...rT,simple:"simple"in rT?rT.simple:jT.length===0})}}async function B(C,t,zT){let PT={fn:t,onlisten:zT},eT=B.sql||(B.sql=PA({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(B.channels).forEach(([IT,{listeners:H$}])=>{delete B.channels[IT],Promise.all(H$.map((qT)=>B(IT,qT.fn,qT.onlisten).catch(()=>{})))})},onnotify(IT,H$){IT in B.channels&&B.channels[IT].listeners.forEach((qT)=>qT.fn(H$))}})),fT=B.channels||(B.channels={});if(C in fT){fT[C].listeners.push(PT);let IT=await fT[C].result;return PT.onlisten&&PT.onlisten(),{state:IT.state,unlisten:cT}}fT[C]={result:eT`listen ${eT.unsafe('"'+C.replace(/"/g,'""')+'"')}`,listeners:[PT]};let rT=await fT[C].result;return PT.onlisten&&PT.onlisten(),{state:rT.state,unlisten:cT};async function cT(){if(C in fT===!1)return;if(fT[C].listeners=fT[C].listeners.filter((IT)=>IT!==PT),fT[C].listeners.length)return;return delete fT[C],eT`unlisten ${eT.unsafe('"'+C.replace(/"/g,'""')+'"')}`}}async function L(C,t){return await O`select pg_notify(${C}, ${""+t})`}async function N(){let C=a$(),t=f.length?f.shift():await new Promise((eT)=>{M.push({reserve:eT}),X.length&&ET(X.shift())});U(t,W),t.reserved=()=>C.length?t.execute(C.shift()):U(t,W),t.reserved.release=!0;let zT=E(PT);return zT.release=()=>{t.reserved=null,b$(t)},zT;function PT(eT){t.queue===w?C.push(eT):t.execute(eT)||U(t,w)}}async function I(C,t){!t&&(t=C,C="");let zT=a$(),PT=0,eT,fT=null;try{return await O.unsafe("begin "+C.replace(/[^a-z ]/ig,""),[],{onexecute:rT}).execute(),await Promise.race([jT(eT,t),new Promise((cT,IT)=>eT.onclose=IT)])}catch(cT){throw cT}async function jT(cT,IT,H$){let qT=E(T$);qT.savepoint=XS,qT.prepare=(ZT)=>fT=ZT.replace(/[^a-z0-9$-_. ]/gi);let fJ,k$;H$&&await qT`savepoint ${qT(H$)}`;try{if(k$=await new Promise((ZT,GJ)=>{let NJ=IT(qT);Promise.resolve(Array.isArray(NJ)?Promise.all(NJ):NJ).then(ZT,GJ)}),fJ)throw fJ}catch(ZT){throw await(H$?qT`rollback to ${qT(H$)}`:qT`rollback`),ZT instanceof F0&&ZT.code==="25P02"&&fJ||ZT}if(!H$)fT?await qT`prepare transaction '${qT.unsafe(fT)}'`:await qT`commit`;return k$;function XS(ZT,GJ){if(ZT&&Array.isArray(ZT.raw))return XS((NJ)=>NJ.apply(NJ,arguments));return arguments.length===1&&(GJ=ZT,ZT=null),jT(cT,GJ,"s"+PT+++(ZT?"_"+ZT:""))}function T$(ZT){ZT.catch((GJ)=>fJ||(fJ=GJ)),cT.queue===w?zT.push(ZT):cT.execute(ZT)||U(cT,w)}}function rT(cT){eT=cT,U(cT,W),cT.reserved=()=>zT.length?cT.execute(zT.shift()):U(cT,W)}}function U(C,t){return C.queue.remove(C),t.push(C),C.queue=t,t===f?C.idleTimer.start():C.idleTimer.cancel(),C}function Q(C){return new PJ(C,3802)}function D(C,t){if(!Array.isArray(C))return D(Array.from(arguments));return new PJ(C,t||(C.length?CA(C)||25:0),J.shared.typeArrayMap)}function Z(C){if(F)return C.reject(aT.connection("CONNECTION_ENDED",J,J));if(f.length)return h(f.shift(),C);if(X.length)return ET(X.shift(),C);G.length?h(G.shift(),C):M.push(C)}function h(C,t){return C.execute(t)?U(C,G):U(C,w)}function k(C){return new Promise((t,zT)=>{C.state?C.active?VK(J).cancel(C.state,t,zT):C.cancelled={resolve:t,reject:zT}:(M.remove(C),C.cancelled=!0,C.reject(aT.generic("57014","canceling statement due to user request")),t())})}async function p({timeout:C=null}={}){if(F)return F;await 1;let t;return F=Promise.race([new Promise((zT)=>C!==null&&(t=setTimeout(u,C*1000,zT))),Promise.all(H.map((zT)=>zT.end()).concat(B.sql?B.sql.end({timeout:0}):[],S.sql?S.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(t))}async function g(){await Promise.all(H.map((C)=>C.end()))}async function u(C){await Promise.all(H.map((t)=>t.terminate()));while(M.length)M.shift().reject(aT.connection("CONNECTION_DESTROYED",J));C()}function ET(C,t){return U(C,A),C.connect(t),C}function VT(C){U(C,K)}function b$(C){if(M.length===0)return U(C,f);let t=Math.ceil(M.length/(A.length+1)),zT=!0;while(zT&&M.length&&t-- >0){let PT=M.shift();if(PT.reserve)return PT.reserve(C);zT=C.execute(PT)}zT?U(C,G):U(C,w)}function cJ(C,t){U(C,X),C.reserved=null,C.onclose&&(C.onclose(t),C.onclose=null),J.onclose&&J.onclose(C.id),M.length&&ET(C,M.shift())}}function G_(T,$){if(T&&T.shared)return T;let J=process.env,S=(!T||typeof T==="string"?$:T)||{},{url:F,multihost:M}=y_(T),A=[...F.searchParams].reduce((w,[y,H])=>(w[y]=H,w),{}),W=S.hostname||S.host||M||F.hostname||J.PGHOST||"localhost",X=S.port||F.port||J.PGPORT||5432,K=S.user||S.username||F.username||J.PGUSERNAME||J.PGUSER||H_();S.no_prepare&&(S.prepare=!1),A.sslmode&&(A.ssl=A.sslmode,delete A.sslmode),"timeout"in S&&(console.log("The timeout option is deprecated, use idle_timeout instead"),S.idle_timeout=S.timeout),A.sslrootcert==="system"&&(A.ssl="verify-full");let f=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],G={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:Y_,max_pipeline:100,backoff:R_,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((w)=>w.split(":")[0]),port:Array.isArray(X)?X:W.split(",").map((w)=>parseInt(w.split(":")[1]||X)),path:S.path||W.indexOf("/")>-1&&W+"/.s.PGSQL."+X,database:S.database||S.db||(F.pathname||"").slice(1)||J.PGDATABASE||K,user:K,pass:S.pass||S.password||F.password||J.PGPASSWORD||"",...Object.entries(G).reduce((w,[y,H])=>{let O=y in S?S[y]:(y in A)?A[y]==="disable"||A[y]==="false"?!1:A[y]:J["PG"+y.toUpperCase()]||H;return w[y]=typeof O==="string"&&f.includes(y)?+O:O,w},{}),connection:{application_name:"postgres.js",...S.connection,...Object.entries(A).reduce((w,[y,H])=>((y in G)||(w[y]=H),w),{})},types:S.types||{},target_session_attrs:w_(S,F,J),onnotice:S.onnotice,onnotify:S.onnotify,onclose:S.onclose,onparameter:S.onparameter,socket:S.socket,transform:__(S.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...Kf(S.types)}}function w_(T,$,J){let S=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!S||["read-write","read-only","primary","standby","prefer-standby"].includes(S))return S;throw new Error("target_session_attrs "+S+" is not supported")}function R_(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function Y_(){return 60*(30+Math.random()*30)}function __(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 y_(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let J=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(J.username),password:decodeURIComponent(J.password),host:J.host,hostname:J.hostname,port:J.port,pathname:J.pathname,searchParams:J.searchParams},multihost:$.indexOf(",")>-1&&$}}function H_(){try{return K_.userInfo().username}catch(T){return process.env.USERNAME||"runner"}}class vA extends I${constructor(T,$,J,S){super();this.session=$,this.dialect=J,this.config={table:T,withList:S}}static[Y]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[c.Symbol.Columns]){return this.config.returning=FJ(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return CT.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 CT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};$dynamic(){return this}}function k_(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function Q_(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,S,F)=>{let M=F===0?S.toLowerCase():`${S[0].toUpperCase()}${S.slice(1)}`;return J+M},"")}function E_(T){return T}class NK{static[Y]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?k_:T==="camelCase"?Q_:E_}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[c.Symbol.Schema]??"public",J=T.table[c.Symbol.OriginalName],S=`${$}.${J}.${T.name}`;if(!this.cache[S])this.cacheTable(T.table);return this.cache[S]}cacheTable(T){let $=T[c.Symbol.Schema]??"public",J=T[c.Symbol.OriginalName],S=`${$}.${J}`;if(!this.cachedTables[S]){for(let F of Object.values(T[c.Symbol.Columns])){let M=`${S}.${F.name}`;this.cache[M]=this.convert(F.name)}this.cachedTables[S]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class mM extends c${static[Y]="PgViewBase"}class AF{static[Y]="PgDialect";casing;constructor(T){this.casing=new NK(T?.casing)}async migrate(T,$,J){let S=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",F=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",M=_`
66
+ CREATE TABLE IF NOT EXISTS ${_.identifier(F)}.${_.identifier(S)} (
65
67
  id SERIAL PRIMARY KEY,
66
68
  hash text NOT NULL,
67
69
  created_at bigint
68
70
  )
69
- `;await S.execute(Y`CREATE SCHEMA IF NOT EXISTS ${Y.identifier(M)}`),await S.execute(J);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 X of T)if(!W||Number(W.created_at)<X.folderMillis){for(let w of X.sql)await A.execute(Y.raw(w));await A.execute(Y`insert into ${Y.identifier(M)}.${Y.identifier(f)} ("hash", "created_at") values(${X.hash}, ${X.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),J=$?Y` returning ${this.buildSelection($,{isSingleTable:!0})}`:void 0,F=S?Y` where ${S}`:void 0;return Y`${M}delete from ${T}${F}${J}`}buildUpdateSet(T,S){let $=T[v.Symbol.Columns],f=Object.keys($).filter((J)=>S[J]!==void 0||$[J]?.onUpdateFn!==void 0),M=f.length;return Y.join(f.flatMap((J,F)=>{let W=$[J],A=S[J]??Y.param(W.onUpdateFn(),W),X=Y`${Y.identifier(this.casing.getColumnCasing(W))} = ${A}`;if(F<M-1)return[X,Y.raw(", ")];return[X]}))}buildUpdateQuery({table:T,set:S,where:$,returning:f,withList:M,from:J,joins:F}){let W=this.buildWithCTE(M),A=T[MS.Symbol.Name],X=T[MS.Symbol.Schema],w=T[MS.Symbol.OriginalName],y=A===w?void 0:A,k=Y`${X?Y`${Y.identifier(X)}.`:void 0}${Y.identifier(w)}${y&&Y` ${Y.identifier(y)}`}`,z=this.buildUpdateSet(T,S),G=J&&Y.join([Y.raw(" from "),this.buildFromTable(J)]),U=this.buildJoins(F),E=f?Y` returning ${this.buildSelection(f,{isSingleTable:!J})}`:void 0,B=$?Y` where ${$}`:void 0;return Y`${W}update ${k} set ${z}${G}${U}${B}${E}`}buildSelection(T,{isSingleTable:S=!1}={}){let $=T.length,f=T.flatMap(({field:M},J)=>{let F=[];if(V(M,c.Aliased)&&M.isSelectionField)F.push(Y.identifier(M.fieldAlias));else if(V(M,c.Aliased)||V(M,c)){let W=V(M,c.Aliased)?M.sql:M;if(S)F.push(new c(W.queryChunks.map((A)=>{if(V(A,q))return Y.identifier(this.casing.getColumnCasing(A));return A})));else F.push(W);if(V(M,c.Aliased))F.push(Y` as ${Y.identifier(M.fieldAlias)}`)}else if(V(M,ET))if(S)F.push(Y.identifier(this.casing.getColumnCasing(M)));else F.push(M);if(J<$-1)F.push(Y`, `);return F});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,J=f.lateral?Y` lateral`:void 0;if(V(M,MS)){let F=M[MS.Symbol.Name],W=M[MS.Symbol.Schema],A=M[MS.Symbol.OriginalName],X=F===A?void 0:f.alias;S.push(Y`${Y.raw(f.joinType)} join${J} ${W?Y`${Y.identifier(W)}.`:void 0}${Y.identifier(A)}${X&&Y` ${Y.identifier(X)}`} on ${f.on}`)}else if(V(M,VS)){let F=M[xT].name,W=M[xT].schema,A=M[xT].originalName,X=F===A?void 0:f.alias;S.push(Y`${Y.raw(f.joinType)} join${J} ${W?Y`${Y.identifier(W)}.`:void 0}${Y.identifier(A)}${X&&Y` ${Y.identifier(X)}`} on ${f.on}`)}else S.push(Y`${Y.raw(f.joinType)} join${J} ${M} on ${f.on}`);if($<T.length-1)S.push(Y` `)}return Y.join(S)}buildFromTable(T){if(V(T,v)&&T[v.Symbol.OriginalName]!==T[v.Symbol.Name]){let S=Y`${Y.identifier(T[v.Symbol.OriginalName])}`;if(T[v.Symbol.Schema])S=Y`${Y.identifier(T[v.Symbol.Schema])}.${S}`;return Y`${S} ${Y.identifier(T[v.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:S,fieldsFlat:$,where:f,having:M,table:J,joins:F,orderBy:W,groupBy:A,limit:X,offset:w,lockingClause:y,distinct:k,setOperators:z}){let G=$??oS(S);for(let i of G)if(V(i.field,ET)&&cS(i.field.table)!==(V(J,aT)?J._.alias:V(J,oJ)?J[xT].name:V(J,c)?void 0:cS(J))&&!((YT)=>F?.some(({alias:HT})=>HT===(YT[v.Symbol.IsAlias]?cS(YT):YT[v.Symbol.BaseName])))(i.field.table)){let YT=cS(i.field.table);throw new Error(`Your "${i.path.join("->")}" field references a column "${YT}"."${i.field.name}", but the table "${YT}" is not part of the query! Did you forget to join it?`)}let U=!F||F.length===0,E=this.buildWithCTE(T),B;if(k)B=k===!0?Y` distinct`:Y` distinct on (${Y.join(k.on,Y`, `)})`;let L=this.buildSelection(G,{isSingleTable:U}),Z=this.buildFromTable(J),j=this.buildJoins(F),D=f?Y` where ${f}`:void 0,H=M?Y` having ${M}`:void 0,Q;if(W&&W.length>0)Q=Y` order by ${Y.join(W,Y`, `)}`;let b;if(A&&A.length>0)b=Y` group by ${Y.join(A,Y`, `)}`;let n=typeof X==="object"||typeof X==="number"&&X>=0?Y` limit ${X}`:void 0,R=w?Y` offset ${w}`:void 0,o=Y.empty();if(y){let i=Y` for ${Y.raw(y.strength)}`;if(y.config.of)i.append(Y` of ${Y.join(Array.isArray(y.config.of)?y.config.of:[y.config.of],Y`, `)}`);if(y.config.noWait)i.append(Y` no wait`);else if(y.config.skipLocked)i.append(Y` skip locked`);o.append(i)}let P=Y`${E}select${B} ${L} from ${Z}${j}${D}${b}${H}${Q}${n}${R}${o}`;if(z.length>0)return this.buildSetOperations(P,z);return P}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:J,offset:F}}){let W=Y`(${T.getSQL()}) `,A=Y`(${f.getSQL()})`,X;if(J&&J.length>0){let z=[];for(let G of J)if(V(G,q))z.push(Y.identifier(G.name));else if(V(G,c)){for(let U=0;U<G.queryChunks.length;U++){let E=G.queryChunks[U];if(V(E,q))G.queryChunks[U]=Y.identifier(E.name)}z.push(Y`${G}`)}else z.push(Y`${G}`);X=Y` order by ${Y.join(z,Y`, `)} `}let w=typeof M==="object"||typeof M==="number"&&M>=0?Y` limit ${M}`:void 0,y=Y.raw(`${S} ${$?"all ":""}`),k=F?Y` offset ${F}`:void 0;return Y`${W}${y}${A}${X}${w}${k}`}buildInsertQuery({table:T,values:S,onConflict:$,returning:f,withList:M,select:J,overridingSystemValue_:F}){let W=[],A=T[v.Symbol.Columns],X=Object.entries(A).filter(([E,B])=>!B.shouldDisableInsert()),w=X.map(([,E])=>Y.identifier(this.casing.getColumnCasing(E)));if(J){let E=S;if(V(E,c))W.push(E);else W.push(E.getSQL())}else{let E=S;W.push(Y.raw("values "));for(let[B,L]of E.entries()){let Z=[];for(let[j,D]of X){let H=L[j];if(H===void 0||V(H,ZS)&&H.value===void 0)if(D.defaultFn!==void 0){let Q=D.defaultFn(),b=V(Q,c)?Q:Y.param(Q,D);Z.push(b)}else if(!D.default&&D.onUpdateFn!==void 0){let Q=D.onUpdateFn(),b=V(Q,c)?Q:Y.param(Q,D);Z.push(b)}else Z.push(Y`default`);else Z.push(H)}if(W.push(Z),B<E.length-1)W.push(Y`, `)}}let y=this.buildWithCTE(M),k=Y.join(W),z=f?Y` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,G=$?Y` on conflict ${$}`:void 0,U=F===!0?Y`overriding system value `:void 0;return Y`${y}insert into ${T} ${w} ${U}${k}${G}${z}`}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(V(T,kW)||V(T,yW))return"json";else if(V(T,OW))return"decimal";else if(V(T,KW))return"time";else if(V(T,YW)||V(T,RW))return"timestamp";else if(V(T,AW)||V(T,XW))return"date";else if(V(T,GW))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:J,tableAlias:F,nestedQueryRelation:W,joinOn:A}){let X=[],w,y,k=[],z,G=[];if(J===!0)X=Object.entries(M.columns).map(([B,L])=>({dbKey:L.name,tsKey:B,field:O$(L,F),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let E=Object.fromEntries(Object.entries(M.columns).map(([H,Q])=>[H,O$(Q,F)]));if(J.where){let H=typeof J.where==="function"?J.where(E,vy()):J.where;z=H&&jJ(H,F)}let B=[],L=[];if(J.columns){let H=!1;for(let[Q,b]of Object.entries(J.columns)){if(b===void 0)continue;if(Q in M.columns){if(!H&&b===!0)H=!0;L.push(Q)}}if(L.length>0)L=H?L.filter((Q)=>J.columns?.[Q]===!0):Object.keys(M.columns).filter((Q)=>!L.includes(Q))}else L=Object.keys(M.columns);for(let H of L){let Q=M.columns[H];B.push({tsKey:H,value:Q})}let Z=[];if(J.with)Z=Object.entries(J.with).filter((H)=>!!H[1]).map(([H,Q])=>({tsKey:H,queryConfig:Q,relation:M.relations[H]}));let j;if(J.extras){j=typeof J.extras==="function"?J.extras(E,{sql:Y}):J.extras;for(let[H,Q]of Object.entries(j))B.push({tsKey:H,value:V1(Q,F)})}for(let{tsKey:H,value:Q}of B)X.push({dbKey:V(Q,c.Aliased)?Q.fieldAlias:M.columns[H].name,tsKey:H,field:V(Q,ET)?O$(Q,F):Q,relationTableTsKey:void 0,isJson:!1,selection:[]});let D=typeof J.orderBy==="function"?J.orderBy(E,Py()):J.orderBy??[];if(!Array.isArray(D))D=[D];k=D.map((H)=>{if(V(H,ET))return O$(H,F);return jJ(H,F)}),w=J.limit,y=J.offset;for(let{tsKey:H,queryConfig:Q,relation:b}of Z){let n=oy(S,$,b),R=Ef(b.referencedTable),o=$[R],P=`${F}_${H}`,i=IJ(...n.fields.map((DS,Y$)=>JW(O$(n.references[Y$],P),O$(DS,F)))),YT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:T[o],tableConfig:S[o],queryConfig:V(b,e$)?Q===!0?{limit:1}:{...Q,limit:1}:Q,tableAlias:P,joinOn:i,nestedQueryRelation:b}),HT=Y`${Y.identifier(P)}.${Y.identifier("data")}`.as(H);G.push({on:Y`true`,table:new aT(YT.sql,{},P),alias:P,joinType:"left",lateral:!0}),X.push({dbKey:H,tsKey:H,field:HT,relationTableTsKey:o,isJson:!0,selection:YT.selection})}}if(X.length===0)throw new MW({message:`No fields selected for table "${M.tsName}" ("${F}")`});let U;if(z=IJ(A,z),W){let E=Y`json_build_array(${Y.join(X.map(({field:Z,tsKey:j,isJson:D})=>D?Y`${Y.identifier(`${F}_${j}`)}.${Y.identifier("data")}`:V(Z,c.Aliased)?Z.sql:Z),Y`, `)})`;if(V(W,mJ))E=Y`coalesce(json_agg(${E}${k.length>0?Y` order by ${Y.join(k,Y`, `)}`:void 0}), '[]'::json)`;let B=[{dbKey:"data",tsKey:"data",field:E.as("data"),isJson:!0,relationTableTsKey:M.tsName,selection:X}];if(w!==void 0||y!==void 0||k.length>0)U=this.buildSelectQuery({table:fW(f,F),fields:{},fieldsFlat:[{path:[],field:Y.raw("*")}],where:z,limit:w,offset:y,orderBy:k,setOperators:[]}),z=void 0,w=void 0,y=void 0,k=[];else U=fW(f,F);U=this.buildSelectQuery({table:V(U,MS)?U:new aT(U,{},F),fields:{},fieldsFlat:B.map(({field:Z})=>({path:[],field:V(Z,ET)?O$(Z,F):Z})),joins:G,where:z,limit:w,offset:y,orderBy:k,setOperators:[]})}else U=this.buildSelectQuery({table:fW(f,F),fields:{},fieldsFlat:X.map(({field:E})=>({path:[],field:V(E,ET)?O$(E,F):E})),joins:G,where:z,limit:w,offset:y,orderBy:k,setOperators:[]});return{tableTsKey:M.tsName,sql:U,selection:X}}}class JS{static[K]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,S){if(S==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if(S===xT)return{...T[xT],selectedFields:new Proxy(T[xT].selectedFields,this)};if(typeof S==="symbol")return T[S];let f=(V(T,aT)?T._.selectedFields:V(T,VS)?T[xT].selectedFields:T)[S];if(V(f,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let M=f.clone();return M.isSelectionField=!0,M}if(V(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(V(f,ET)){if(this.config.alias)return new Proxy(f,new HM(new Proxy(f.table,new xJ(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new JS(this.config))}}class a1{static[K]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _S{static[K]="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,$;if(this.fields)$=this.fields;else if(V(T,aT))$=Object.fromEntries(Object.keys(T._.selectedFields).map((f)=>[f,T[f]]));else if(V(T,oJ))$=T[xT].selectedFields;else if(V(T,c))$={};else $=g8(T);return new e1({table:T,fields:$,isPartialSelect:S,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class wk extends a1{static[K]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:S,isPartialSelect:$,session:f,dialect:M,withList:J,distinct:F}){super();this.config={withList:J,table:T,fields:{...S},distinct:F,setOperators:[]},this.isPartialSelect=$,this.session=f,this.dialect=M,this._={selectedFields:S},this.tableName=I$(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return(S,$)=>{let f=this.tableName,M=I$(S);if(typeof M==="string"&&this.config.joins?.some((J)=>J.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"&&!V(S,c)){let J=V(S,aT)?S._.selectedFields:V(S,VS)?S[xT].selectedFields:S[v.Symbol.Columns];this.config.fields[M]=J}}if(typeof $==="function")$=$(new Proxy(this.config.fields,new JS({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(([J])=>[J,!1])),this.joinsNotNullableMap[M]=!0;break}case"inner":{this.joinsNotNullableMap[M]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!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"?$(T6()):$;if(!bJ(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 JS({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new JS({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 JS({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 JS({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 aT(this.getSQL(),this.config.fields,T),new JS({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new JS({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class e1 extends wk{static[K]="PgSelect";_prepare(T){let{session:S,config:$,dialect:f,joinsNotNullableMap:M,authToken:J}=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 F=oS($.fields),W=S.prepareQuery(f.sqlToQuery(this.getSQL()),F,T,!0);return W.joinsNotNullableMap=M,W.setToken(J)})}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)})}}o8(e1,[HS]);function UM(T,S){return($,f,...M)=>{let J=[f,...M].map((F)=>({type:T,isAll:S,rightSelect:F}));for(let F of J)if(!bJ($.getSelectedFields(),F.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return $.addSetOperators(J)}}var T6=()=>({union:S6,unionAll:$6,intersect:f6,intersectAll:M6,except:J6,exceptAll:F6}),S6=UM("union",!1),$6=UM("union",!0),f6=UM("intersect",!1),M6=UM("intersect",!0),J6=UM("except",!1),F6=UM("except",!0);class gJ{static[K]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=V(T,Lf)?T:void 0,this.dialectConfig=V(T,Lf)?void 0:T}$with(T){let S=this;return{as($){if(typeof $==="function")$=$(S);return new Proxy(new CJ($.getSQL(),$.getSelectedFields(),T,!0),new JS({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...T){let S=this;function $(J){return new _S({fields:J??void 0,session:void 0,dialect:S.getDialect(),withList:T})}function f(J){return new _S({fields:J??void 0,session:void 0,dialect:S.getDialect(),distinct:!0})}function M(J,F){return new _S({fields:F??void 0,session:void 0,dialect:S.getDialect(),distinct:{on:J}})}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 jW{constructor(T,S,$,f,M){this.table=T,this.session=S,this.dialect=$,this.withList=f,this.overridingSystemValue_=M}static[K]="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[v.Symbol.Columns];for(let J of Object.keys($)){let F=$[J];f[J]=V(F,c)?F:new ZS(F,M[J])}return f});return new s1(this.table,S,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let S=typeof T==="function"?T(new gJ):T;if(!V(S,c)&&!bJ(this.table[TW],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 s1(this.table,S,this.session,this.dialect,this.withList,!0)}}class s1 extends HS{constructor(T,S,$,f,M,J,F){super();this.session=$,this.dialect=f,this.config={table:T,values:S,withList:M,select:J,overridingSystemValue_:F}}static[K]="PgInsert";config;returning(T=this.config.table[v.Symbol.Columns]){return this.config.returning=oS(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,WW(this.config.table,T.set)),J="";return J=Array.isArray(T.target)?T.target.map((F)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(F))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=Y`(${Y.raw(J)})${$} 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)})};$dynamic(){return this}}class TA extends HS{constructor(T,S,$){super();this.session=S,this.dialect=$,this.config={view:T}}static[K]="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 IW{constructor(T,S,$,f){this.table=T,this.session=S,this.dialect=$,this.withList=f}static[K]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new yk(this.table,WW(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class yk extends HS{constructor(T,S,$,f,M){super();this.session=$,this.dialect=f,this.config={set:S,table:T,withList:M,joins:[]},this.tableName=I$(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[K]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let S=I$(T);if(typeof S==="string")this.joinsNotNullableMap[S]=!0;return this.config.from=T,this}getTableLikeFields(T){if(V(T,MS))return T[v.Symbol.Columns];else if(V(T,aT))return T._.selectedFields;return T[xT].selectedFields}createJoin(T){return(S,$)=>{let f=I$(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&&!V(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;$=$(new Proxy(this.config.table[v.Symbol.Columns],new JS({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),M&&new Proxy(M,new JS({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[v.Symbol.Columns]),this.config.from){let S=I$(this.config.from);if(typeof S==="string"&&this.config.from&&!V(this.config.from,c)){let $=this.getTableLikeFields(this.config.from);T[S]=$}for(let $ of this.config.joins){let f=I$($.table);if(typeof f==="string"&&!V($.table,c)){let M=this.getTableLikeFields($.table);T[f]=M}}}}return this.config.returning=oS(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)};$dynamic(){return this}}class tJ extends c{constructor(T){super(tJ.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=tJ.buildCount(T.source,T.filters)}sql;token;static[K]="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 $A{constructor(T,S,$,f,M,J,F){this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F}static[K]="PgRelationalQueryBuilder";findMany(T){return new SA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new SA(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class SA extends HS{constructor(T,S,$,f,M,J,F,W,A){super();this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F,this.config=W,this.mode=A}static[K]="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 J=f.map((F)=>zW(this.schema,this.tableConfig,F,S.selection,M));if(this.mode==="first")return J[0];return J})})}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 HS{constructor(T,S,$,f){super();this.execute=T,this.sql=S,this.query=$,this.mapBatchResult=f}static[K]="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 pJ{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 $A($.fullSchema,this._.schema,this._.tableNamesMap,$.fullSchema[f],M,T,S)}static[K]="PgDatabase";query;$with(T){let S=this;return{as($){if(typeof $==="function")$=$(new gJ(S.dialect));return new Proxy(new CJ($.getSQL(),$.getSelectedFields(),T,!0),new JS({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}$count(T,S){return new tJ({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,X){return new _S({fields:X??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:{on:A}})}function J(A){return new IW(A,S.session,S.dialect,T)}function F(A){return new jW(A,S.session,S.dialect,T)}function W(A){return new xW(A,S.session,S.dialect,T)}return{select:$,selectDistinct:f,selectDistinctOn:M,update:J,insert:F,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 IW(T,this.session,this.dialect)}insert(T){return new jW(T,this.session,this.dialect)}delete(T){return new xW(T,this.session,this.dialect)}refreshMaterializedView(T){return new TA(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 kk{constructor(T,S){this.unique=T,this.name=S}static[K]="PgIndexBuilderOn";on(...T){return new bW(T.map((S)=>{if(V(S,c))return S;S=S;let $=new NJ(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(V(S,c))return S;S=S;let $=new NJ(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(V($,c))return $;$=$;let f=new NJ($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),f}),this.unique,!0,this.name,T)}}class bW{static[K]="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 Ok(this.config,T)}}class Ok{static[K]="PgIndex";config;constructor(T,S){this.config={...T,table:S}}}function MA(T){return new kk(!0,T)}class JA{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,S){return T}setToken(T){return this.authToken=T,this}static[K]="PgPreparedQuery";joinsNotNullableMap}class FA{constructor(T){this.dialect=T}static[K]="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 pJ{constructor(T,S,$,f=0){super(T,S,$);this.schema=$,this.nestedIndex=f}static[K]="PgTransaction";rollback(){throw new B1}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 Kk extends JA{constructor(T,S,$,f,M,J,F){super({sql:S,params:$});this.client=T,this.queryString=S,this.params=$,this.logger=f,this.fields=M,this._isResponseInArrayMode=J,this.customResultMapper=F}static[K]="PostgresJsPreparedQuery";async execute(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=U1(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:J,joinsNotNullableMap:F,customResultMapper:W}=this;if(!f&&!W)return QT.startActiveSpan("drizzle.driver.execute",()=>{return J.unsafe(M,$)});let A=await QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":M,"drizzle.query.params":JSON.stringify($)}),J.unsafe(M,$).values()});return QT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(A):A.map((X)=>c8(f,X,F))})})}all(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=U1(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 iJ extends FA{constructor(T,S,$,f={}){super(S);this.client=T,this.schema=$,this.options=f,this.logger=f.logger??new N1}static[K]="PostgresJsSession";logger;prepareQuery(T,S,$,f,M){return new Kk(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 iJ($,this.dialect,this.schema,this.options),M=new AA(this.dialect,f,this.schema);if(S)await M.setTransaction(S);return T(M)})}}class AA extends WA{constructor(T,S,$,f=0){super(T,S,$,f);this.session=S}static[K]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((S)=>{let $=new iJ(S,this.dialect,this.schema,this.session.options),f=new AA(this.dialect,$,this.schema);return T(f)})}}class Yk extends pJ{static[K]="PostgresJsDatabase"}function VM(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 L1;else if(S.logger!==!1)M=S.logger;let J;if(S.schema){let A=cy(S.schema,gy);J={fullSchema:S.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let F=new iJ(T,f,J,{logger:M}),W=new Yk(f,F,J);return W.$client=T,W}function ZW(...T){if(typeof T[0]==="string"){let S=QM(T[0]);return VM(S,T[1])}if(t8(T[0])){let{connection:S,client:$,...f}=T[0];if($)return VM($,f);if(typeof S==="object"&&S.url!==void 0){let{url:J,...F}=S,W=QM(J,F);return VM(W,f)}let M=QM(S);return VM(M,f)}return VM(T[0],T[1])}((T)=>{function S($){return VM({options:{parsers:{},serializers:{}}},$)}T.mock=S})(ZW||(ZW={}));function Rk(T){let S=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[H,Q]of Object.entries(S))if(Q==="")delete S[H]}if(!!T.skipValidation)return S;let M=typeof T.client==="object"?T.client:{},J=typeof T.server==="object"?T.server:{},F=typeof T.shared==="object"?T.shared:{},W=rM(M),A=rM(J),X=rM(F),w=T.isServer??(typeof window==="undefined"||("Deno"in window)),y=W.merge(X),k=A.merge(X).merge(W),z=w?k.safeParse(S):y.safeParse(S),G=T.onValidationError??((H)=>{throw console.error("\u274C Invalid environment variables:",H.flatten().fieldErrors),new Error("Invalid environment variables")}),U=T.onInvalidAccess??((H)=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(z.success===!1)return G(z.error);let E=(H)=>{if(!T.clientPrefix)return!0;return!H.startsWith(T.clientPrefix)&&!(H in X.shape)},B=(H)=>{return w||!E(H)},L=(H)=>{return H==="__esModule"||H==="$$typeof"},Z=(T.extends??[]).reduce((H,Q)=>{return Object.assign(H,Q)},{}),j=Object.assign(z.data,Z);return new Proxy(j,{get(H,Q){if(typeof Q!=="string")return;if(L(Q))return;if(!B(Q))return U(Q);return Reflect.get(H,Q)}})}var W6="__vite_start_time"in globalThis,A6=typeof window!=="undefined",Um="vitest"in globalThis,Z$=Rk({isServer:!W6&&!A6,server:{CI:zT.string().transform((T)=>!0).optional(),POSTGRES_USER:zT.string(),POSTGRES_PASSWORD:zT.string(),POSTGRES_DATABASE:zT.string(),POSTGRES_HOST:zT.string(),POSTGRES_PORT:zT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:zT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:zT.union([zT.literal("true"),zT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:zT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:zT.string().transform((T)=>JSON.parse(T)).pipe(zT.array(zT.string())),OPENAI_API_KEY:zT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:zT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:zT.union([zT.literal("true"),zT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var wA={};QO(wA,{users:()=>Nf,userChanges:()=>w6,untrackedUserColumnNames:()=>X6,twoFactorMethod:()=>Dk,trackedUserColumnName:()=>_k,trackableUserColumnNames:()=>Hk,role:()=>zk,players:()=>XA,passwordResetAttempts:()=>k6,loginHistory:()=>y6,games:()=>qW,banishedIps:()=>mW});function Gk(T){return Y`lower(${T})`}var zk=eF("role",["admin","user"]),Nf=a$("users",{id:qS().primaryKey().defaultRandom(),username:fS({length:16}).notNull(),email:fS({length:254}).notNull(),hash:fS({length:64}).notNull(),salt:fS({length:36}).notNull(),createdAt:M$({withTimezone:!0}).notNull().defaultNow(),createdIp:fS({length:45}).notNull(),isActive:ZJ().notNull().default(!1),verifiedAt:M$({withTimezone:!0}),userRole:zk().default("user")},(T)=>[MA("usernameUniqueIndex").on(Gk(T.username)),MA("emailUniqueIndex").on(Gk(T.email))]),X6=["id","createdAt","createdIp","isActive","salt","verifiedAt"],Hk=["username","email","hash","userRole"],_k=eF("trackedUserColumnName",Hk),w6=a$("userChanges",{id:qS().primaryKey().defaultRandom(),userId:qS().notNull().references(()=>Nf.id),changedAt:M$({withTimezone:!0}).notNull().defaultNow(),changedIp:fS({length:45}).notNull(),changedColumn:_k().notNull(),oldValue:fS({length:255}),newValue:fS({length:255})}),qW=a$("games",{id:qS().primaryKey().defaultRandom()}),XA=a$("players",{userId:qS().notNull().references(()=>Nf.id),gameId:qS().notNull().references(()=>qW.id),score:wW().notNull()},(T)=>[my({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),y6=a$("loginHistory",{id:qS().primaryKey().defaultRandom(),userId:qS().references(()=>Nf.id),loginTime:M$({withTimezone:!0}).notNull().defaultNow(),ipAddress:fS({length:45}).notNull(),userAgent:fS({length:1024}),successful:ZJ().notNull().default(!1)}),Dk=eF("twoFactorMethod",["email","phone"]),k6=a$("passwordResetAttempts",{id:qS().primaryKey().defaultRandom(),userId:qS().notNull().references(()=>Nf.id),requestedIp:fS({length:45}).notNull(),requestedAt:M$({withTimezone:!0}).notNull().defaultNow(),succeededIp:fS({length:45}),succeededAt:M$({withTimezone:!0}),verificationMethod:Dk().notNull()}),mW=a$("banishedIps",{ip:fS({length:45}).primaryKey(),reason:fS({length:2048}).notNull(),banishedAt:M$({withTimezone:!0}).notNull().defaultNow(),banishedUntil:M$({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class yA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(O6.resolve(__dirname,"notify_update.sql"));let T=[cS(Nf),cS(qW),cS(XA)];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],J=`${f}("${M}")`;if(this.observers.has(J))this.observers.get(J).next(J)})}constructor(T=!1,S={host:Z$.POSTGRES_HOST,port:Z$.POSTGRES_PORT,user:Z$.POSTGRES_USER,password:Z$.POSTGRES_PASSWORD,database:Z$.POSTGRES_DATABASE}){this.options=S,this.sql=QM(S),this.drizzle=ZW(this.sql,{schema:wA,logger:T})}observe(T,S){if(!this.observers.has(T))this.observers.set(T,new fT);this.observers.get(T).subscribe("SINGLETON",S)}}import*as hW from"fs";import*as Ek from"readline";function K6(T){let $=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(f,M,J,F,W)=>{let X={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[J];return`${F}-${X}-${M}T${W}`});return new Date($)}async function Qk(T,S="/var/log/nginx/access.log",$=new Date){let f=new Map;if(!hW.existsSync(S))return T.error(`Log file not found: ${S}`),f;let M=hW.createReadStream(S),J=Ek.createInterface({input:M,crlfDelay:Number.POSITIVE_INFINITY}),F=new Date($.getTime()-3600000);return J.on("line",(W)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,X=W.match(A);if(X?.groups){let w=X.groups.ip,y=X.groups.dateTime,k=K6(y);if(!Number.isNaN(k.getTime())){if(k>=F&&k<=$){let z=f.get(w);if(!z)z=[],f.set(w,z);z.push(W)}}else T.error(`Failed to parse date: ${y}`)}}),new Promise((W,A)=>{J.on("error",(X)=>{A(X)}),J.on("close",()=>{W(f)})})}var Y6=["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(`
70
- `);function Uk(T){return Y6+T.join(`
71
+ `;await $.execute(_`CREATE SCHEMA IF NOT EXISTS ${_.identifier(F)}`),await $.execute(M);let W=(await $.all(_`select id, hash, created_at from ${_.identifier(F)}.${_.identifier(S)} order by created_at desc limit 1`))[0];await $.transaction(async(X)=>{for await(let K of T)if(!W||Number(W.created_at)<K.folderMillis){for(let f of K.sql)await X.execute(_.raw(f));await X.execute(_`insert into ${_.identifier(F)}.${_.identifier(S)} ("hash", "created_at") values(${K.hash}, ${K.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[_`with `];for(let[J,S]of T.entries())if($.push(_`${_.identifier(S._.alias)} as (${S._.sql})`),J<T.length-1)$.push(_`, `);return $.push(_` `),_.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:S}){let F=this.buildWithCTE(S),M=J?_` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,A=$?_` where ${$}`:void 0;return _`${F}delete from ${T}${A}${M}`}buildUpdateSet(T,$){let J=T[c.Symbol.Columns],S=Object.keys(J).filter((M)=>$[M]!==void 0||J[M]?.onUpdateFn!==void 0),F=S.length;return _.join(S.flatMap((M,A)=>{let W=J[M],X=$[M]??_.param(W.onUpdateFn(),W),K=_`${_.identifier(this.casing.getColumnCasing(W))} = ${X}`;if(A<F-1)return[K,_.raw(", ")];return[K]}))}buildUpdateQuery({table:T,set:$,where:J,returning:S,withList:F,from:M,joins:A}){let W=this.buildWithCTE(F),X=T[Y$.Symbol.Name],K=T[Y$.Symbol.Schema],f=T[Y$.Symbol.OriginalName],G=X===f?void 0:X,w=_`${K?_`${_.identifier(K)}.`:void 0}${_.identifier(f)}${G&&_` ${_.identifier(G)}`}`,y=this.buildUpdateSet(T,$),H=M&&_.join([_.raw(" from "),this.buildFromTable(M)]),O=this.buildJoins(A),E=S?_` returning ${this.buildSelection(S,{isSingleTable:!M})}`:void 0,B=J?_` where ${J}`:void 0;return _`${W}update ${w} set ${y}${H}${O}${B}${E}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,S=T.flatMap(({field:F},M)=>{let A=[];if(V(F,n.Aliased)&&F.isSelectionField)A.push(_.identifier(F.fieldAlias));else if(V(F,n.Aliased)||V(F,n)){let W=V(F,n.Aliased)?F.sql:F;if($)A.push(new n(W.queryChunks.map((X)=>{if(V(X,b))return _.identifier(this.casing.getColumnCasing(X));return X})));else A.push(W);if(V(F,n.Aliased))A.push(_` as ${_.identifier(F.fieldAlias)}`)}else if(V(F,NT))if($)A.push(_.identifier(this.casing.getColumnCasing(F)));else A.push(F);if(M<J-1)A.push(_`, `);return A});return _.join(S)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,S]of T.entries()){if(J===0)$.push(_` `);let F=S.table,M=S.lateral?_` lateral`:void 0;if(V(F,Y$)){let A=F[Y$.Symbol.Name],W=F[Y$.Symbol.Schema],X=F[Y$.Symbol.OriginalName],K=A===X?void 0:S.alias;$.push(_`${_.raw(S.joinType)} join${M} ${W?_`${_.identifier(W)}.`:void 0}${_.identifier(X)}${K&&_` ${_.identifier(K)}`} on ${S.on}`)}else if(V(F,c$)){let A=F[hT].name,W=F[hT].schema,X=F[hT].originalName,K=A===X?void 0:S.alias;$.push(_`${_.raw(S.joinType)} join${M} ${W?_`${_.identifier(W)}.`:void 0}${_.identifier(X)}${K&&_` ${_.identifier(K)}`} on ${S.on}`)}else $.push(_`${_.raw(S.joinType)} join${M} ${F} on ${S.on}`);if(J<T.length-1)$.push(_` `)}return _.join($)}buildFromTable(T){if(V(T,c)&&T[c.Symbol.OriginalName]!==T[c.Symbol.Name]){let $=_`${_.identifier(T[c.Symbol.OriginalName])}`;if(T[c.Symbol.Schema])$=_`${_.identifier(T[c.Symbol.Schema])}.${$}`;return _`${$} ${_.identifier(T[c.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:S,having:F,table:M,joins:A,orderBy:W,groupBy:X,limit:K,offset:f,lockingClause:G,distinct:w,setOperators:y}){let H=J??FJ($);for(let u of H)if(V(u.field,NT)&&SJ(u.field.table)!==(V(M,A$)?M._.alias:V(M,mM)?M[hT].name:V(M,n)?void 0:SJ(M))&&!((ET)=>A?.some(({alias:VT})=>VT===(ET[c.Symbol.IsAlias]?SJ(ET):ET[c.Symbol.BaseName])))(u.field.table)){let ET=SJ(u.field.table);throw new Error(`Your "${u.path.join("->")}" field references a column "${ET}"."${u.field.name}", but the table "${ET}" is not part of the query! Did you forget to join it?`)}let O=!A||A.length===0,E=this.buildWithCTE(T),B;if(w)B=w===!0?_` distinct`:_` distinct on (${_.join(w.on,_`, `)})`;let L=this.buildSelection(H,{isSingleTable:O}),N=this.buildFromTable(M),I=this.buildJoins(A),U=S?_` where ${S}`:void 0,Q=F?_` having ${F}`:void 0,D;if(W&&W.length>0)D=_` order by ${_.join(W,_`, `)}`;let Z;if(X&&X.length>0)Z=_` group by ${_.join(X,_`, `)}`;let h=typeof K==="object"||typeof K==="number"&&K>=0?_` limit ${K}`:void 0,k=f?_` offset ${f}`:void 0,p=_.empty();if(G){let u=_` for ${_.raw(G.strength)}`;if(G.config.of)u.append(_` of ${_.join(Array.isArray(G.config.of)?G.config.of:[G.config.of],_`, `)}`);if(G.config.noWait)u.append(_` no wait`);else if(G.config.skipLocked)u.append(_` skip locked`);p.append(u)}let g=_`${E}select${B} ${L} from ${N}${I}${U}${Z}${Q}${D}${h}${k}${p}`;if(y.length>0)return this.buildSetOperations(g,y);return g}buildSetOperations(T,$){let[J,...S]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(S.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),S)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:S,limit:F,orderBy:M,offset:A}}){let W=_`(${T.getSQL()}) `,X=_`(${S.getSQL()})`,K;if(M&&M.length>0){let y=[];for(let H of M)if(V(H,b))y.push(_.identifier(H.name));else if(V(H,n)){for(let O=0;O<H.queryChunks.length;O++){let E=H.queryChunks[O];if(V(E,b))H.queryChunks[O]=_.identifier(E.name)}y.push(_`${H}`)}else y.push(_`${H}`);K=_` order by ${_.join(y,_`, `)} `}let f=typeof F==="object"||typeof F==="number"&&F>=0?_` limit ${F}`:void 0,G=_.raw(`${$} ${J?"all ":""}`),w=A?_` offset ${A}`:void 0;return _`${W}${G}${X}${K}${f}${w}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:S,withList:F,select:M,overridingSystemValue_:A}){let W=[],X=T[c.Symbol.Columns],K=Object.entries(X).filter(([E,B])=>!B.shouldDisableInsert()),f=K.map(([,E])=>_.identifier(this.casing.getColumnCasing(E)));if(M){let E=$;if(V(E,n))W.push(E);else W.push(E.getSQL())}else{let E=$;W.push(_.raw("values "));for(let[B,L]of E.entries()){let N=[];for(let[I,U]of K){let Q=L[I];if(Q===void 0||V(Q,r$)&&Q.value===void 0)if(U.defaultFn!==void 0){let D=U.defaultFn(),Z=V(D,n)?D:_.param(D,U);N.push(Z)}else if(!U.default&&U.onUpdateFn!==void 0){let D=U.onUpdateFn(),Z=V(D,n)?D:_.param(D,U);N.push(Z)}else N.push(_`default`);else N.push(Q)}if(W.push(N),B<E.length-1)W.push(_`, `)}}let G=this.buildWithCTE(F),w=_.join(W),y=S?_` returning ${this.buildSelection(S,{isSingleTable:!0})}`:void 0,H=J?_` on conflict ${J}`:void 0,O=A===!0?_`overriding system value `:void 0;return _`${G}insert into ${T} ${f} ${O}${w}${H}${y}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let S=$?_` concurrently`:void 0,F=J?_` with no data`:void 0;return _`refresh materialized view${S} ${T}${F}`}prepareTyping(T){if(V(T,EA)||V(T,QA))return"json";else if(V(T,zA))return"decimal";else if(V(T,OA))return"time";else if(V(T,UA)||V(T,DA))return"timestamp";else if(V(T,yA)||V(T,HA))return"date";else if(V(T,VA))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:S,tableConfig:F,queryConfig:M,tableAlias:A,nestedQueryRelation:W,joinOn:X}){let K=[],f,G,w=[],y,H=[];if(M===!0)K=Object.entries(F.columns).map(([B,L])=>({dbKey:L.name,tsKey:B,field:hJ(L,A),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let E=Object.fromEntries(Object.entries(F.columns).map(([Q,D])=>[Q,hJ(D,A)]));if(M.where){let Q=typeof M.where==="function"?M.where(E,t9()):M.where;y=Q&&NM(Q,A)}let B=[],L=[];if(M.columns){let Q=!1;for(let[D,Z]of Object.entries(M.columns)){if(Z===void 0)continue;if(D in F.columns){if(!Q&&Z===!0)Q=!0;L.push(D)}}if(L.length>0)L=Q?L.filter((D)=>M.columns?.[D]===!0):Object.keys(F.columns).filter((D)=>!L.includes(D))}else L=Object.keys(F.columns);for(let Q of L){let D=F.columns[Q];B.push({tsKey:Q,value:D})}let N=[];if(M.with)N=Object.entries(M.with).filter((Q)=>!!Q[1]).map(([Q,D])=>({tsKey:Q,queryConfig:D,relation:F.relations[Q]}));let I;if(M.extras){I=typeof M.extras==="function"?M.extras(E,{sql:_}):M.extras;for(let[Q,D]of Object.entries(I))B.push({tsKey:Q,value:SK(D,A)})}for(let{tsKey:Q,value:D}of B)K.push({dbKey:V(D,n.Aliased)?D.fieldAlias:F.columns[Q].name,tsKey:Q,field:V(D,NT)?hJ(D,A):D,relationTableTsKey:void 0,isJson:!1,selection:[]});let U=typeof M.orderBy==="function"?M.orderBy(E,a9()):M.orderBy??[];if(!Array.isArray(U))U=[U];w=U.map((Q)=>{if(V(Q,NT))return hJ(Q,A);return NM(Q,A)}),f=M.limit,G=M.offset;for(let{tsKey:Q,queryConfig:D,relation:Z}of N){let h=e9($,J,Z),k=$F(Z.referencedTable),p=J[k],g=`${A}_${Q}`,u=CM(...h.fields.map((b$,cJ)=>RA(hJ(h.references[cJ],g),hJ(b$,A)))),ET=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[p],tableConfig:$[p],queryConfig:V(Z,VS)?D===!0?{limit:1}:{...D,limit:1}:D,tableAlias:g,joinOn:u,nestedQueryRelation:Z}),VT=_`${_.identifier(g)}.${_.identifier("data")}`.as(Q);H.push({on:_`true`,table:new A$(ET.sql,{},g),alias:g,joinType:"left",lateral:!0}),K.push({dbKey:Q,tsKey:Q,field:VT,relationTableTsKey:p,isJson:!0,selection:ET.selection})}}if(K.length===0)throw new wA({message:`No fields selected for table "${F.tsName}" ("${A}")`});let O;if(y=CM(X,y),W){let E=_`json_build_array(${_.join(K.map(({field:N,tsKey:I,isJson:U})=>U?_`${_.identifier(`${A}_${I}`)}.${_.identifier("data")}`:V(N,n.Aliased)?N.sql:N),_`, `)})`;if(V(W,IM))E=_`coalesce(json_agg(${E}${w.length>0?_` order by ${_.join(w,_`, `)}`:void 0}), '[]'::json)`;let B=[{dbKey:"data",tsKey:"data",field:E.as("data"),isJson:!0,relationTableTsKey:F.tsName,selection:K}];if(f!==void 0||G!==void 0||w.length>0)O=this.buildSelectQuery({table:GA(S,A),fields:{},fieldsFlat:[{path:[],field:_.raw("*")}],where:y,limit:f,offset:G,orderBy:w,setOperators:[]}),y=void 0,f=void 0,G=void 0,w=[];else O=GA(S,A);O=this.buildSelectQuery({table:V(O,Y$)?O:new A$(O,{},A),fields:{},fieldsFlat:B.map(({field:N})=>({path:[],field:V(N,NT)?hJ(N,A):N})),joins:H,where:y,limit:f,offset:G,orderBy:w,setOperators:[]})}else O=this.buildSelectQuery({table:GA(S,A),fields:{},fieldsFlat:K.map(({field:E})=>({path:[],field:V(E,NT)?hJ(E,A):E})),joins:H,where:y,limit:f,offset:G,orderBy:w,setOperators:[]});return{tableTsKey:F.tsName,sql:O,selection:K}}}class _${static[Y]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===hT)return{...T[hT],selectedFields:new Proxy(T[hT].selectedFields,this)};if(typeof $==="symbol")return T[$];let S=(V(T,A$)?T._.selectedFields:V(T,c$)?T[hT].selectedFields:T)[$];if(V(S,n.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!S.isSelectionField)return S.sql;let F=S.clone();return F.isSelectionField=!0,F}if(V(S,n)){if(this.config.sqlBehavior==="sql")return S;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(V(S,NT)){if(this.config.alias)return new Proxy(S,new J0(new Proxy(S.table,new LM(this.config.alias,this.config.replaceOriginalName??!1))));return S}if(typeof S!=="object"||S===null)return S;return new Proxy(S,new _$(this.config))}}class CK{static[Y]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class Z${static[Y]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J;if(this.fields)J=this.fields;else if(V(T,A$))J=Object.fromEntries(Object.keys(T._.selectedFields).map((S)=>[S,T[S]]));else if(V(T,mM))J=T[hT].selectedFields;else if(V(T,n))J={};else J=T5(T);return new jK({table:T,fields:J,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class zf extends CK{static[Y]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:S,dialect:F,withList:M,distinct:A}){super();this.config={withList:M,table:T,fields:{...$},distinct:A,setOperators:[]},this.isPartialSelect=J,this.session=S,this.dialect=F,this._={selectedFields:$},this.tableName=SS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let S=this.tableName,F=SS($);if(typeof F==="string"&&this.config.joins?.some((M)=>M.alias===F))throw new Error(`Alias "${F}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof S==="string")this.config.fields={[S]:this.config.fields};if(typeof F==="string"&&!V($,n)){let M=V($,A$)?$._.selectedFields:V($,c$)?$[hT].selectedFields:$[c.Symbol.Columns];this.config.fields[F]=M}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new _$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:F}),typeof F==="string")switch(T){case"left":{this.joinsNotNullableMap[F]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([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");createSetOperator(T,$){return(J)=>{let S=typeof J==="function"?J(z_()):J;if(!jM(this.getSelectedFields(),S.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:S}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new _$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new _$({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 _$({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 _$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new A$(this.getSQL(),this.config.fields,T),new _$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new _$({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class jK extends zf{static[Y]="PgSelect";_prepare(T){let{session:$,config:J,dialect:S,joinsNotNullableMap:F,authToken:M}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return CT.startActiveSpan("drizzle.prepareQuery",()=>{let A=FJ(J.fields),W=$.prepareQuery(S.sqlToQuery(this.getSQL()),A,T,!0);return W.joinsNotNullableMap=F,W.setToken(M)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return CT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}e7(jK,[I$]);function W0(T,$){return(J,S,...F)=>{let M=[S,...F].map((A)=>({type:T,isAll:$,rightSelect:A}));for(let A of M)if(!jM(J.getSelectedFields(),A.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(M)}}var z_=()=>({union:O_,unionAll:U_,intersect:D_,intersectAll:V_,except:B_,exceptAll:L_}),O_=W0("union",!1),U_=W0("union",!0),D_=W0("intersect",!1),V_=W0("intersect",!0),B_=W0("except",!1),L_=W0("except",!0);class cM{static[Y]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=V(T,AF)?T:void 0,this.dialectConfig=V(T,AF)?void 0:T}$with(T){let $=this;return{as(J){if(typeof J==="function")J=J($);return new Proxy(new BM(J.getSQL(),J.getSelectedFields(),T,!0),new _$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...T){let $=this;function J(M){return new Z$({fields:M??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function S(M){return new Z$({fields:M??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function F(M,A){return new Z$({fields:A??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:M}})}return{select:J,selectDistinct:S,selectDistinctOn:F}}select(T){return new Z$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new Z$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new Z$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new AF(this.dialectConfig);return this.dialect}}class mA{constructor(T,$,J,S,F){this.table=T,this.session=$,this.dialect=J,this.withList=S,this.overridingSystemValue_=F}static[Y]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let S={},F=this.table[c.Symbol.Columns];for(let M of Object.keys(J)){let A=J[M];S[M]=V(A,n)?A:new r$(A,F[M])}return S});return new qK(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new cM):T;if(!V($,n)&&!jM(this.table[XA],$._.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 qK(this.table,$,this.session,this.dialect,this.withList,!0)}}class qK extends I${constructor(T,$,J,S,F,M,A){super();this.session=J,this.dialect=S,this.config={table:T,values:$,withList:F,select:M,overridingSystemValue_:A}}static[Y]="PgInsert";config;returning(T=this.config.table[c.Symbol.Columns]){return this.config.returning=FJ(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=_`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((S)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(S))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let J=T.where?_` where ${T.where}`:void 0;this.config.onConflict=_`(${_.raw($)})${J} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?_` where ${T.where}`:void 0,J=T.targetWhere?_` where ${T.targetWhere}`:void 0,S=T.setWhere?_` where ${T.setWhere}`:void 0,F=this.dialect.buildUpdateSet(this.config.table,_A(this.config.table,T.set)),M="";return M=Array.isArray(T.target)?T.target.map((A)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(A))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=_`(${_.raw(M)})${J} do update set ${F}${$}${S}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return CT.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 CT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};$dynamic(){return this}}class xK extends I${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[Y]="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 CT.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 CT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class cA{constructor(T,$,J,S){this.table=T,this.session=$,this.dialect=J,this.withList=S}static[Y]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new Of(this.table,_A(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class Of extends I${constructor(T,$,J,S,F){super();this.session=J,this.dialect=S,this.config={set:$,table:T,withList:F,joins:[]},this.tableName=SS(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[Y]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=SS(T);if(typeof $==="string")this.joinsNotNullableMap[$]=!0;return this.config.from=T,this}getTableLikeFields(T){if(V(T,Y$))return T[c.Symbol.Columns];else if(V(T,A$))return T._.selectedFields;return T[hT].selectedFields}createJoin(T){return($,J)=>{let S=SS($);if(typeof S==="string"&&this.config.joins.some((F)=>F.alias===S))throw new Error(`Alias "${S}" is already used in this query`);if(typeof J==="function"){let F=this.config.from&&!V(this.config.from,n)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[c.Symbol.Columns],new _$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),F&&new Proxy(F,new _$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:S}),typeof S==="string")switch(T){case"left":{this.joinsNotNullableMap[S]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!0;break}case"inner":{this.joinsNotNullableMap[S]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[S]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[c.Symbol.Columns]),this.config.from){let $=SS(this.config.from);if(typeof $==="string"&&this.config.from&&!V(this.config.from,n)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let S=SS(J.table);if(typeof S==="string"&&!V(J.table,n)){let F=this.getTableLikeFields(J.table);T[S]=F}}}}return this.config.returning=FJ(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)};$dynamic(){return this}}class gM extends n{constructor(T){super(gM.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=gM.buildCount(T.source,T.filters)}sql;token;static[Y]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return _`(select count(*) from ${T}${_.raw(" where ").if($)}${$})`}static buildCount(T,$){return _`select count(*) as count from ${T}${_.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 ZK{constructor(T,$,J,S,F,M,A){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=M,this.session=A}static[Y]="PgRelationalQueryBuilder";findMany(T){return new IK(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new IK(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class IK extends I${constructor(T,$,J,S,F,M,A,W,X){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=S,this.tableConfig=F,this.dialect=M,this.session=A,this.config=W,this.mode=X}static[Y]="PgRelationalQuery";_prepare(T){return CT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(S,F)=>{let M=S.map((A)=>BA(this.schema,this.tableConfig,A,$.selection,F));if(this.mode==="first")return M[0];return M})})}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 CT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class bK extends I${constructor(T,$,J,S){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=S}static[Y]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class nM{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[S,F]of Object.entries(this._.schema))this.query[S]=new ZK(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[S],F,T,$)}static[Y]="PgDatabase";query;$with(T){let $=this;return{as(J){if(typeof J==="function")J=J(new cM($.dialect));return new Proxy(new BM(J.getSQL(),J.getSelectedFields(),T,!0),new _$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}$count(T,$){return new gM({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(X){return new Z$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T})}function S(X){return new Z$({fields:X??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function F(X,K){return new Z$({fields:K??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:X}})}function M(X){return new cA(X,$.session,$.dialect,T)}function A(X){return new mA(X,$.session,$.dialect,T)}function W(X){return new vA(X,$.session,$.dialect,T)}return{select:J,selectDistinct:S,selectDistinctOn:F,update:M,insert:A,delete:W}}select(T){return new Z$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new Z$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new Z$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new cA(T,this.session,this.dialect)}insert(T){return new mA(T,this.session,this.dialect)}delete(T){return new vA(T,this.session,this.dialect)}refreshMaterializedView(T){return new xK(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?_.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),S=this.session.prepareQuery(J,void 0,void 0,!1);return new bK(()=>S.execute(void 0,this.authToken),$,J,(F)=>S.mapResult(F,!0))}transaction(T,$){return this.session.transaction(T,$)}}class Uf{constructor(T,$){this.unique=T,this.name=$}static[Y]="PgIndexBuilderOn";on(...T){return new gA(T.map(($)=>{if(V($,n))return $;$=$;let J=new VM($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new gA(T.map(($)=>{if(V($,n))return $;$=$;let J=new VM($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new gA($.map((J)=>{if(V(J,n))return J;J=J;let S=new VM(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),S}),this.unique,!0,this.name,T)}}class gA{static[Y]="PgIndexBuilder";config;constructor(T,$,J,S,F="btree"){this.config={name:S,columns:T,unique:$,only:J,method:F}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new Df(this.config,T)}}class Df{static[Y]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function hK(T){return new Uf(!0,T)}class PK{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[Y]="PgPreparedQuery";joinsNotNullableMap}class vK{constructor(T){this.dialect=T}static[Y]="PgSession";execute(T,$){return CT.startActiveSpan("drizzle.operation",()=>{return CT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class mK extends nM{constructor(T,$,J,S=0){super(T,$,J);this.schema=J,this.nestedIndex=S}static[Y]="PgTransaction";rollback(){throw new FK}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 _.raw($.join(" "))}setTransaction(T){return this.session.execute(_`set transaction ${this.getTransactionConfigSQL(T)}`)}}class Vf extends PK{constructor(T,$,J,S,F,M,A){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=S,this.fields=F,this._isResponseInArrayMode=M,this.customResultMapper=A}static[Y]="PostgresJsPreparedQuery";async execute(T={}){return CT.startActiveSpan("drizzle.execute",async($)=>{let J=JK(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:S,queryString:F,client:M,joinsNotNullableMap:A,customResultMapper:W}=this;if(!S&&!W)return CT.startActiveSpan("drizzle.driver.execute",()=>{return M.unsafe(F,J)});let X=await CT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":F,"drizzle.query.params":JSON.stringify(J)}),M.unsafe(F,J).values()});return CT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(X):X.map((K)=>s7(S,K,A))})})}all(T={}){return CT.startActiveSpan("drizzle.execute",async($)=>{let J=JK(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),CT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.client.unsafe(this.queryString,J)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class pM extends vK{constructor(T,$,J,S={}){super($);this.client=T,this.schema=J,this.options=S,this.logger=S.logger??new AK}static[Y]="PostgresJsSession";logger;prepareQuery(T,$,J,S,F){return new Vf(this.client,T.sql,T.params,this.logger,$,S,F)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let S=new pM(J,this.dialect,this.schema,this.options),F=new cK(this.dialect,S,this.schema);if($)await F.setTransaction($);return T(F)})}}class cK extends mK{constructor(T,$,J,S=0){super(T,$,J,S);this.session=$}static[Y]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new pM($,this.dialect,this.schema,this.session.options),S=new cK(this.dialect,J,this.schema);return T(S)})}}class Bf extends nM{static[Y]="PostgresJsDatabase"}function X0(T,$={}){let J=(X)=>X;for(let X of["1184","1082","1083","1114"])T.options.parsers[X]=J,T.options.serializers[X]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let S=new AF({casing:$.casing}),F;if($.logger===!0)F=new MK;else if($.logger!==!1)F=$.logger;let M;if($.schema){let X=s9($.schema,Tf);M={fullSchema:$.schema,schema:X.tables,tableNamesMap:X.tableNamesMap}}let A=new pM(T,S,M,{logger:F}),W=new Bf(S,A,M);return W.$client=T,W}function nA(...T){if(typeof T[0]==="string"){let $=A0(T[0]);return X0($,T[1])}if($5(T[0])){let{connection:$,client:J,...S}=T[0];if(J)return X0(J,S);if(typeof $==="object"&&$.url!==void 0){let{url:M,...A}=$,W=A0(M,A);return X0(W,S)}let F=A0($);return X0(F,S)}return X0(T[0],T[1])}((T)=>{function $(J){return X0({options:{parsers:{},serializers:{}}},J)}T.mock=$})(nA||(nA={}));function pA(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[Q,D]of Object.entries($))if(D==="")delete $[Q]}if(!!T.skipValidation)return $;let F=typeof T.client==="object"?T.client:{},M=typeof T.server==="object"?T.server:{},A=typeof T.shared==="object"?T.shared:{},W=u0(F),X=u0(M),K=u0(A),f=T.isServer??(typeof window==="undefined"||("Deno"in window)),G=W.merge(K),w=X.merge(K).merge(W),y=f?w.safeParse($):G.safeParse($),H=T.onValidationError??((Q)=>{throw console.error("\u274C Invalid environment variables:",Q.flatten().fieldErrors),new Error("Invalid environment variables")}),O=T.onInvalidAccess??((Q)=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(y.success===!1)return H(y.error);let E=(Q)=>{if(!T.clientPrefix)return!0;return!Q.startsWith(T.clientPrefix)&&!(Q in K.shape)},B=(Q)=>{return f||!E(Q)},L=(Q)=>{return Q==="__esModule"||Q==="$$typeof"},N=(T.extends??[]).reduce((Q,D)=>{return Object.assign(Q,D)},{}),I=Object.assign(y.data,N);return new Proxy(I,{get(Q,D){if(typeof D!=="string")return;if(L(D))return;if(!B(D))return O(D);return Reflect.get(Q,D)}})}var N_="__vite_start_time"in globalThis,C_=typeof window!=="undefined",Hp="vitest"in globalThis,MS=pA({isServer:!N_&&!C_,server:{CI:KT.string().transform((T)=>!0).optional(),POSTGRES_USER:KT.string(),POSTGRES_PASSWORD:KT.string(),POSTGRES_DATABASE:KT.string(),POSTGRES_HOST:KT.string(),POSTGRES_PORT:KT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:KT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:KT.union([KT.literal("true"),KT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:KT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:KT.string().transform((T)=>JSON.parse(T)).pipe(KT.array(KT.string())),OPENAI_API_KEY:KT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:KT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:KT.union([KT.literal("true"),KT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var nK={};i2(nK,{users:()=>WF,userChanges:()=>q_,untrackedUserColumnNames:()=>j_,twoFactorMethod:()=>qf,trackedUserColumnName:()=>jf,trackableUserColumnNames:()=>Cf,role:()=>Nf,players:()=>gK,passwordResetAttempts:()=>I_,loginHistory:()=>x_,games:()=>iA,banishedIps:()=>oA});function Lf(T){return _`lower(${T})`}var Nf=AA("role",["admin","user"]),WF=DS("users",{id:t$().primaryKey().defaultRandom(),username:R$({length:16}).notNull(),email:R$({length:254}).notNull(),hash:R$({length:64}).notNull(),salt:R$({length:36}).notNull(),createdAt:DJ({withTimezone:!0}).notNull().defaultNow(),createdIp:R$({length:45}).notNull(),isActive:qM().notNull().default(!1),verifiedAt:DJ({withTimezone:!0}),userRole:Nf().default("user")},(T)=>[hK("usernameUniqueIndex").on(Lf(T.username)),hK("emailUniqueIndex").on(Lf(T.email))]),j_=["id","createdAt","createdIp","isActive","salt","verifiedAt"],Cf=["username","email","hash","userRole"],jf=AA("trackedUserColumnName",Cf),q_=DS("userChanges",{id:t$().primaryKey().defaultRandom(),userId:t$().notNull().references(()=>WF.id),changedAt:DJ({withTimezone:!0}).notNull().defaultNow(),changedIp:R$({length:45}).notNull(),changedColumn:jf().notNull(),oldValue:R$({length:255}),newValue:R$({length:255})}),iA=DS("games",{id:t$().primaryKey().defaultRandom()}),gK=DS("players",{userId:t$().notNull().references(()=>WF.id),gameId:t$().notNull().references(()=>iA.id),score:kA().notNull()},(T)=>[u9({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),x_=DS("loginHistory",{id:t$().primaryKey().defaultRandom(),userId:t$().references(()=>WF.id),loginTime:DJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:R$({length:45}).notNull(),userAgent:R$({length:1024}),successful:qM().notNull().default(!1)}),qf=AA("twoFactorMethod",["email","phone"]),I_=DS("passwordResetAttempts",{id:t$().primaryKey().defaultRandom(),userId:t$().notNull().references(()=>WF.id),requestedIp:R$({length:45}).notNull(),requestedAt:DJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:R$({length:45}),succeededAt:DJ({withTimezone:!0}),verificationMethod:qf().notNull()}),oA=DS("banishedIps",{ip:R$({length:45}).primaryKey(),reason:R$({length:2048}).notNull(),banishedAt:DJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:DJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class pK{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(Z_.resolve(__dirname,"notify_update.sql"));let T=[SJ(WF),SJ(iA),SJ(gK)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),S=J[0],F=J[1],M=`${S}("${F}")`;if(this.observers.has(M))this.observers.get(M).next(M)})}constructor(T=!1,$={host:MS.POSTGRES_HOST,port:MS.POSTGRES_PORT,user:MS.POSTGRES_USER,password:MS.POSTGRES_PASSWORD,database:MS.POSTGRES_DATABASE}){this.options=$,this.sql=A0($),this.drizzle=nA(this.sql,{schema:nK,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new AT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as wk}from"path";import{existsSync as iK,mkdirSync as xf,readdirSync as If,readFileSync as b_,rmSync as Zf,statSync as bf,writeFileSync as h_}from"fs";import{resolve as oK}from"path";class iM{rootDir;constructor(T){if(this.rootDir=T.path,!iK(this.rootDir))xf(this.rootDir,{recursive:!0})}getItem(T){let $=oK(this.rootDir,T);if(iK($))return b_($,"utf-8");return null}setItem(T,$){let J=oK(this.rootDir,T);h_(J,$)}removeItem(T){let $=oK(this.rootDir,T);if(iK($))Zf($)}key(T){return If(this.rootDir).sort((S,F)=>{let M=bf(S);return bf(F).ctimeMs-M.ctimeMs})[T]??null}clear(){Zf(this.rootDir,{recursive:!0}),xf(this.rootDir,{recursive:!0})}get length(){return If(this.rootDir).length}}import{execSync as E8,spawn as Sk}from"child_process";import{createServer as Fk}from"http";import{homedir as Mk}from"os";import{resolve as cw}from"path";import{inspect as Ak}from"util";var gw=p2(vw(),1);var mw=pA({server:{FLIGHTDECK_SECRET:KT.string().optional()},clientPrefix:"NEVER",client:{},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});function Wk(T){return/^\d+\.\d+\.\d+$/.test(T)||!Number.isNaN(Number.parseFloat(T))}class Xk{options;safety=0;storage;webhookServer;services;serviceIdx;defaultServicesReadyToUpdate;servicesReadyToUpdate;autoRespawnDeadServices;logger;serviceLoggers;updateAvailabilityChecker=null;servicesLive;servicesDead;live=new h$(()=>{});dead=new h$(()=>{});restartTimes=[];constructor(T){this.options=T;let{FLIGHTDECK_SECRET:$}=mw,{flightdeckRootDir:J=cw(Mk(),".flightdeck")}=T,S=T.port??8080,F=`http://localhost:${S}`,M=yF(T.services);if(this.services=V0(M.map(([A])=>[A,null])),this.serviceIdx=V0(M.map(([A],W)=>[A,W])),this.defaultServicesReadyToUpdate=V0(M.map(([A,{waitFor:W}])=>[A,!W])),this.servicesReadyToUpdate={...this.defaultServicesReadyToUpdate},this.autoRespawnDeadServices=!0,this.logger=new z8(this.options.packageName,process.pid,void 0,{jsonLogging:this.options.jsonLogging??!1}),this.serviceLoggers=V0(M.map(([A])=>[A,new z8(this.options.packageName,process.pid,A,{jsonLogging:this.options.jsonLogging??!1})])),this.servicesLive=M.map(()=>new h$(()=>{})),this.servicesDead=M.map(()=>new h$(()=>{})),this.live.use(Promise.all(this.servicesLive)),this.dead.use(Promise.all(this.servicesDead)),this.storage=new iM({path:cw(J,"storage",T.packageName)}),$===void 0)this.logger.warn("No FLIGHTDECK_SECRET environment variable found. FlightDeck will not run an update server.");else Fk((A,W)=>{let X=[];A.on("data",(K)=>{X.push(K instanceof Buffer?K:Buffer.from(K))}).on("end",()=>{let K=A.headers.authorization;try{if(typeof A.url==="undefined")throw 400;let f=`Bearer ${$}`;if(K!==`Bearer ${$}`)throw this.logger.info(`Unauthorized: needed \`${f}\`, got \`${K}\``),401;let G=new URL(A.url,F);this.logger.info(A.method,G.pathname);let w=Buffer.concat(X).toString();if(!Wk(w))throw 400;W.writeHead(200),W.end(),this.storage.setItem("updatePhase","notified"),this.storage.setItem("updateAwaitedVersion",w);let{checkAvailability:y}=T.scripts;if(y){this.updateAvailabilityChecker?.stop(),this.seekUpdate(w);let H=this.storage.getItem("updatePhase");if(this.logger.info('> storage("updatePhase") >',H),H==="notified")this.updateAvailabilityChecker=new gw.CronJob("30 * * * * *",()=>{this.seekUpdate(w)}),this.updateAvailabilityChecker.start()}else this.downloadPackage()}catch(f){if(this.logger.error(f,A.url),typeof f==="number")W.writeHead(f),W.end()}finally{X=[]}})}).listen(S,()=>{this.logger.info(`Server started on port ${S}`)});this.startAllServices().then(()=>{this.logger.info("All services started.")}).catch((A)=>{if(A instanceof Error)this.logger.error("Failed to start all services:",A.message)})}seekUpdate(T){this.logger.info("Checking for updates...");let{checkAvailability:$}=this.options.scripts;if(!$){this.logger.info("No checkAvailability script found.");return}try{let J=E8(`${$} ${T}`);this.logger.info("Check stdout:",J.toString()),this.updateAvailabilityChecker?.stop(),this.storage.setItem("updatePhase","confirmed"),this.downloadPackage(),this.announceUpdate()}catch(J){if(J instanceof Error)this.logger.error("Check failed:",J.message);else{let S=zS(J);this.logger.error("Check threw",S,J)}}}announceUpdate(){for(let T of yF(this.services)){let[$,J]=T;if(J){if(this.options.services[$].waitFor)J.emit("updatesReady")}else this.startService($)}}tryUpdate(){if(yF(this.servicesReadyToUpdate).every(([,T])=>T))this.logger.info("All services are ready to update."),this.stopAllServices().then(()=>{this.logger.info("All services stopped; starting up fresh..."),this.startAllServices().then(()=>{this.logger.info("All services started; we're back online.")}).catch((T)=>{if(T instanceof Error)this.logger.error("Failed to start all services:",T.message)})}).catch((T)=>{if(T instanceof Error)this.logger.error("Failed to stop all services:",T.message)})}startAllServices(){this.logger.info("Starting all services..."),this.autoRespawnDeadServices=!0;let T=this.storage.getItem("setupPhase");switch(this.logger.info('> storage("setupPhase") >',T),T){case null:return this.logger.info("Starting from scratch."),this.downloadPackage(),this.installPackage(),this.startAllServices();case"downloaded":return this.logger.info("Found package downloaded but not installed."),this.installPackage(),this.startAllServices();case"installed":{for(let[$]of yF(this.services))this.startService($);return this.live}}}startService(T){if(this.logger.info(`Starting service ${this.options.packageName}::${T}, try ${this.safety}/2...`),this.safety>=2)throw new Error("Out of tries...");this.safety++;let[$,...J]=this.options.services[T].run.split(" "),S=Sk($,J,{cwd:this.options.flightdeckRootDir,env:import.meta.env}),F=this.serviceLoggers[T],M=this.services[T]=new P0(S,`${this.options.packageName}::${T}`,F);F.processCode=M.process.pid??-1,this.services[T].onAny((...A)=>{F.info("\uD83D\uDCAC",...A)}),this.services[T].on("readyToUpdate",()=>{this.logger.info(`Service "${T}" is ready to update.`),this.servicesReadyToUpdate[T]=!0,this.tryUpdate()}),this.services[T].on("alive",()=>{if(this.servicesLive[this.serviceIdx[T]].use(Promise.resolve()),this.servicesDead[this.serviceIdx[T]]=new h$(()=>{}),this.dead.done)this.dead=new h$(()=>{});this.dead.use(Promise.all(this.servicesDead))}),this.services[T].process.once("close",(A)=>{if(this.logger.info(`Auto-respawn saw "${T}" exit with code ${A}`),this.services[T]=null,!this.autoRespawnDeadServices){this.logger.info(`Auto-respawn is off; "${T}" rests.`);return}let W=this.storage.getItem("updatePhase");if(this.logger.info('> storage("updatePhase") >',W),W==="confirmed")this.serviceLoggers[T].info("Updating before startup..."),this.restartTimes=[],this.installPackage(),this.startService(T);else{let K=Date.now(),f=K-300000;if(this.restartTimes=this.restartTimes.filter((G)=>G>f),this.restartTimes.push(K),this.restartTimes.length<5)this.serviceLoggers[T].info("Crashed. Restarting..."),this.startService(T);else this.serviceLoggers[T].info("Crashed 5 times in 5 minutes. Not restarting.")}}),this.safety=0}downloadPackage(){this.logger.info("Downloading...");try{let T=E8(this.options.scripts.download);this.logger.info("Download stdout:",T.toString()),this.storage.setItem("setupPhase","downloaded"),this.logger.info("Downloaded!")}catch(T){if(T instanceof Error)this.logger.error(`Failed to get the latest release: ${T.message}`);return}}installPackage(){this.logger.info("Installing...");try{let T=E8(this.options.scripts.install);this.logger.info("Install stdout:",T.toString()),this.storage.setItem("setupPhase","installed"),this.logger.info("Installed!")}catch(T){if(T instanceof Error)this.logger.error(`Failed to get the latest release: ${T.message}`);return}}stopAllServices(){this.logger.info("Stopping all services... auto-respawn disabled."),this.autoRespawnDeadServices=!1;for(let[T]of yF(this.services))this.stopService(T);return this.dead}stopService(T){let $=this.services[T];if($){if(this.logger.info(`Stopping service "${T}"...`),this.servicesDead[this.serviceIdx[T]].use(new Promise((J)=>{$.emit("timeToStop"),$.process.once("close",(S)=>{this.logger.info(`Stopped service "${T}"; exited with code ${S}`),this.services[T]=null,J()})})),this.dead.use(Promise.all(this.servicesDead)),this.servicesLive[this.serviceIdx[T]]=new h$(()=>{}),this.live.done)this.live=new h$(()=>{});this.live.use(Promise.all(this.servicesLive))}else this.serviceLoggers[T].error("Tried to stop service, but it wasn't running.")}}var RW="info",YW="warn",_W="ERR!",Ji=KT.object({level:KT.union([KT.literal(RW),KT.literal(YW),KT.literal(_W)]),timestamp:KT.number(),package:KT.string(),service:KT.string().optional(),process:KT.number(),body:KT.string()}),Kk="line-format",fk="value",Si={title:"FlightDeck Log",description:"Format for events logged by the FlightDeck process manager.","file-type":"json","timestamp-field":"timestamp","timestamp-divisor":1000,"module-field":"package","opid-field":"service","level-field":"level",level:{info:RW,warning:YW,error:_W},[Kk]:[{field:"level"},{prefix:" ",field:"__timestamp__","timestamp-format":"%Y-%m-%dT%H:%M:%S.%L%Z"},{prefix:" ",field:"process","min-width":5},{prefix:":",field:"package"},{prefix:":",field:"service","default-value":""},{prefix:": ",field:"body"}],[fk]:{timestamp:{kind:"integer"},level:{kind:"string"},package:{kind:"string"},service:{kind:"string"},process:{kind:"integer"},body:{kind:"string"}}};class z8{packageName;serviceName;jsonLogging;processCode;constructor(T,$,J,S){if(this.packageName=T,J)this.serviceName=J;this.processCode=$,this.jsonLogging=S?.jsonLogging??!1}log(T,...$){if(this.jsonLogging){let J=$.map((F)=>typeof F==="string"?F:Ak(F,!1,null,!0)).join(" ");if(J.includes(`
72
+ `))J=`
73
+ ${J.split(`
74
+ `).join(`
75
+ `)}`;let S={timestamp:Date.now(),level:T,process:this.processCode,package:this.packageName,body:J};if(this.serviceName)S.service=this.serviceName;process.stdout.write(JSON.stringify(S)+`
76
+ `)}else{let J=this.serviceName?`${this.packageName}:${this.serviceName}`:this.packageName;switch(T){case RW:console.log(`${J}:`,...$);break;case YW:console.warn(`${J}:`,...$);break;case _W:console.error(`${J}:`,...$);break}}}info(...T){this.log(RW,...T)}warn(...T){this.log(YW,...T)}error(...T){this.log(_W,...T)}}var O8=new iM({path:wk(process.cwd(),"storage")});import*as yW from"fs";import*as nw from"readline";function Rk(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(S,F,M,A,W)=>{let K={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[M];return`${A}-${K}-${F}T${W}`});return new Date(J)}async function pw(T,$="/var/log/nginx/access.log",J=new Date){let S=new Map;if(!yW.existsSync($))return T.error(`Log file not found: ${$}`),S;let F=yW.createReadStream($),M=nw.createInterface({input:F,crlfDelay:Number.POSITIVE_INFINITY}),A=new Date(J.getTime()-3600000);return M.on("line",(W)=>{let X=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,K=W.match(X);if(K?.groups){let f=K.groups.ip,G=K.groups.dateTime,w=Rk(G);if(!Number.isNaN(w.getTime())){if(w>=A&&w<=J){let y=S.get(f);if(!y)y=[],S.set(f,y);y.push(W)}}else T.error(`Failed to parse date: ${G}`)}}),new Promise((W,X)=>{M.on("error",(K)=>{X(K)}),M.on("close",()=>{W(S)})})}var Yk=["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(`
77
+ `);function iw(T){return Yk+T.join(`
71
78
 
72
- `)}var Vk={schema:zT.union([zT.object({shouldBanIp:zT.literal(!1)}),zT.object({shouldBanIp:zT.literal(!0),veryConciseReason:zT.string()})]),fallback:{shouldBanIp:!1}};var D6=[".env","php"];async function Bk({generator:T,logFilePath:S,logger:$,now:f}){let M=T.usdBudget,J=new yA({logQuery(j,D){$.info("\uD83D\uDCDD query",j,D)}}),F=await Qk($,S,f),W=[],A=T.from(Vk),X=0,w=0;for(let[j,D]of F){$.info(`\uD83D\uDD0D ruling on ${j}. logs:`),$.info(D.map((Q)=>`\t${Q}`).join(`
73
- `));let H=!1;for(let Q of D6)if(D.some((b)=>b.includes(Q))){W.push({ip:j,reason:`Always ban ${Q}`}),$.info(`\t\uD83E\uDDD1\u200D\u2696\uFE0F banning ${j}--always ban ${Q}
74
- `),H=!0;break}if(H)continue;if(T.usdBudget>T.usdMinimum){let Q=Uk(D),b=await A(Q);if(b.shouldBanIp)W.push({ip:j,reason:b.veryConciseReason}),$.info(`\t\uD83E\uDDD1\u200D\u2696\uFE0F banning ${j}--${b.veryConciseReason}
75
- `);else w++,$.info(`\t\uD83D\uDD4A\uFE0F not banning ${j}
76
- `);X++}else{$.warn("\uD83D\uDCB0 insufficient funds to process all logs"),$.warn(`\uD83D\uDCB0 got through ${X}/${F.size} ips
77
- `);break}}let y=W.length;if(W.length>0)await J.drizzle.insert(mW).values(W).onConflictDoNothing();let k=[],z=zT.object({lastDay:zT.string()}),G=_6(import.meta.dirname,"tribunal.cache.json");if(G6(G)){let j=await z6(G,"utf-8");try{let D=JSON.parse(j),{lastDay:H}=z.parse(D);if(H){let Q=new Date(H);k.push(...await J.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:FW(mW.banishedAt,Q)}))}}catch(D){$.error(D)}}try{await Promise.all(k.map((j)=>new Promise((D,H)=>R6(`iptables -D INPUT -s ${j.ip} -j DROP`).on("exit",(Q)=>{if(Q===0)$.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${j.ip}`),D();else H(new Error(`iptables exited with code ${Q}`))}))))}catch(j){if(j instanceof Error)$.error(j.message);else{let D=zM(j);$.error("iptables exited with error",D)}}await H6(G,JSON.stringify({lastDay:f}),"utf-8"),$.info(`\u2728 banned ${y} ips, didn't ban ${w} ips`);let E=M-T.usdBudget,B=E.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=M.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),Z=Math.round(E/M*100);$.info(`\uD83D\uDCB8 spent ${B}, ${Z}% of ${L} budget`)}var q$=new y0;Object.assign(console,q$.logger,{log:q$.logger.info});process.on("SIGINT",()=>{q$.logger.info("\u2757 received SIGINT; exiting gracefully"),nW()});process.on("SIGTERM",()=>{q$.logger.info("\u2757 received SIGTERM; exiting gracefully"),nW()});process.on("exit",()=>{q$.logger.info("\u2757 received exit; exiting gracefully"),nW()});q$.logger.info("\uD83D\uDEEB tribunal worker ready");var E6=new T8({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:Z$.OPENAI_API_KEY,cachingMode:"off",logger:q$.logger});if(Z$.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 Bk({generator:E6,logFilePath:"/var/log/nginx/access.log",logger:q$.logger});nW();function nW(){q$.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
79
+ `)}var ow={schema:KT.union([KT.object({shouldBanIp:KT.literal(!1)}),KT.object({shouldBanIp:KT.literal(!0),veryConciseReason:KT.string()})]),fallback:{shouldBanIp:!1}};var yk=[".env","php"];async function lw({generator:T,logFilePath:$,logger:J,now:S=new Date}){let F=T.usdBudget,M=new pK({logQuery(N,I){J.info("\uD83D\uDCDD query",N,I)}}),A=await pw(J,$,S),W=[],X=T.from(ow),K=0,f=0;for(let[N,I]of A){J.info(`\uD83D\uDD0D ruling on ${N}. logs:`),J.info(I.map((Q)=>`\t${Q}`).join(`
80
+ `));let U=!1;for(let Q of yk)if(I.some((D)=>D.includes(Q))){W.push({ip:N,reason:`Always ban ${Q}`}),J.info(`\t\uD83E\uDDD1\u200D\u2696\uFE0F banning ${N}--always ban ${Q}
81
+ `),U=!0;break}if(U)continue;if(T.usdBudget>T.usdMinimum){let Q=iw(I),D=await X(Q);if(D.shouldBanIp)W.push({ip:N,reason:D.veryConciseReason}),J.info(`\t\uD83E\uDDD1\u200D\u2696\uFE0F banning ${N}--${D.veryConciseReason}
82
+ `);else f++,J.info(`\t\uD83D\uDD4A\uFE0F not banning ${N}
83
+ `);K++}else{J.warn("\uD83D\uDCB0 insufficient funds to process all logs"),J.warn(`\uD83D\uDCB0 got through ${K}/${A.size} ips
84
+ `);break}}let G=W.length;if(W.length>0)await M.drizzle.insert(oA).values(W).onConflictDoNothing();let w=[],y=O8.getItem("lastTribunalProcessedDate"),H=new Date(y??"1970-01-01");try{w.push(...await M.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:YA(oA.banishedAt,H)}))}catch(N){J.error(N)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(w.map((N)=>new Promise((I,U)=>_k(`iptables -D INPUT -s ${N.ip} -j DROP`).on("exit",(Q)=>{if(Q===0)J.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${N.ip}`),I();else U(new Error(`iptables exited with code ${Q}`))}))));else J.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(N){if(N instanceof Error)J.error(N.message);else{let I=zS(N);J.error("iptables exited with error",I)}}O8.setItem("lastTribunalProcessedDate",S.toISOString()),J.info(`\u2728 banned ${G} ips, didn't ban ${f} ips`);let O=F-T.usdBudget,E=O.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),B=F.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=Math.round(O/F*100);J.info(`\uD83D\uDCB8 spent ${E}, ${L}% of ${B} budget`)}var WS=new pW;Object.assign(console,WS.logger,{log:WS.logger.info});process.on("SIGINT",()=>{WS.logger.info("\u2757 received SIGINT; exiting gracefully"),HW()});process.on("SIGTERM",()=>{WS.logger.info("\u2757 received SIGTERM; exiting gracefully"),HW()});process.on("exit",()=>{WS.logger.info("\u2757 received exit; exiting gracefully"),HW()});WS.logger.info("\uD83D\uDEEB tribunal worker ready");var Hk=new G7({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:MS.OPENAI_API_KEY,cachingMode:"off",logger:WS.logger});if(MS.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 lw({generator:Hk,logFilePath:"/var/log/nginx/access.log",logger:WS.logger});HW();function HW(){WS.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}