tempest.games 0.1.41 → 0.1.43

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.
@@ -13,7 +13,7 @@ ${_.trace}`:`No previous disposal trace for ${J} was found.`);return}let X=T.mol
13
13
  ${Q.trace}`:`No previous disposal trace for ${X} was found.`),J}let G=_T($),H=F.molecules.get(G);if(!H){let Q=T.disposalTraces.buffer.find((_)=>_?.key===G);return T.logger.error("\u274C","molecule",J,"claim failed:",`Could not allocate to ${G} in store "${T.config.name}".`,Q?`
14
14
  ${G} was most recently disposed
15
15
  ${Q.trace}`:`No previous disposal trace for ${G} was found.`),J}let M=T.moleculeGraph.getRelationEntries({downstreamMoleculeKey:Y.stringKey}).filter(([,{source:Q}])=>Q!==X).map(([Q])=>R$(Q));if(W)F.moleculeGraph.delete(X);F.moleculeGraph.set({upstreamMoleculeKey:H.stringKey,downstreamMoleculeKey:Y.stringKey},{source:H.stringKey});let z={type:"molecule_transfer",key:Y.key,from:M,to:[H.key]};if(yT(F)&&F.transactionMeta.phase==="building")F.transactionMeta.update.updates.push(z);return J}function Y6(T,$,J){switch($){case"newValue":{Z7(T,J);break}case"oldValue":{Q0(J,T.token);break}}}function G6(T,$,J){switch($){case"newValue":{Q0(J,T.token);break}case"oldValue":{if(Z7(T,J),T.subType==="atom")J.valueMap.set(T.token.key,T.value);break}}}function Z7(T,$){let{family:J}=T.token;if(J){let W=$.families.get(J.key);if(W)JT($,W,R$(J.subKey))}}function k7(T,$,J){switch($){case"newValue":M0(J,T.provenance,T.key);break;case"oldValue":z0(J,T.key);break}}function q7(T,$,J){switch($){case"newValue":z0(J,T.key);break;case"oldValue":{let W=T.provenance.map(R$);M0(J,W,T.key);for(let[X,F]of T.values){let Y=J.families.get(X);if(Y){JT(J,Y,T.key);let G=`${X}(${_T(T.key)})`;J.valueMap.set(G,F)}}}break}}function y7(T,$,J){switch($){case"newValue":{let W=T.to.length===1?T.to[0]:T.to;s0(J,W,T.key,"exclusive")}break;case"oldValue":{let W=T.from.length===1?T.from[0]:T.from;s0(J,W,T.key,"exclusive")}break}}function y8(T,$,J){let W=T==="newValue"?$.updates:[...$.updates].reverse();for(let X of W)switch(X.type){case"atom_update":case"selector_update":q8(T,X,J);break;case"state_creation":Y6(X,T,J);break;case"state_disposal":G6(X,T,J);break;case"molecule_creation":k7(X,T,J);break;case"molecule_disposal":q7(X,T,J);break;case"molecule_transfer":y7(X,T,J);break;case"transaction_update":y8(T,X,J);break}}function H6(T,$){return T.transactionMeta.actionContinuities.getRelatedKey($)}function eU(T,$){return T.transactionMeta.epoch.get($)}function I7(T,$){if(!N$(T))return;let W=H6(T,$);if(W===void 0)return;return eU(T,W)}function j7(T,$,J){if(N$(T)&&$)T.transactionMeta.epoch.set($,J)}function x7(T,$,J){if(!N$(T))return;let X=H6(T,$);if(X!==void 0)T.transactionMeta.epoch.set(X,J)}var b7=(T,$)=>{let J=g($),{parent:W}=J;if(W===null||!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,W.child=null,W.on.transactionApplying.next(J.transactionMeta);let{updates:X}=J.transactionMeta.update;if($.logger.info("\uD83D\uDEC4","transaction",J.transactionMeta.update.key,`Applying transaction with ${X.length} updates:`,X),y8("newValue",J.transactionMeta.update,W),N$(W))x7(W,J.transactionMeta.update.key,J.transactionMeta.update.epoch),BT($,{key:J.transactionMeta.update.key,type:"transaction"})?.subject.next(J.transactionMeta.update),$.logger.info("\uD83D\uDEEC","transaction",J.transactionMeta.update.key,"Finished applying transaction.");else if(yT(W))W.transactionMeta.update.updates.push(J.transactionMeta.update);W.on.transactionApplying.next(null)};function P7(T,$,J){if(!N$(T))return;let{epoch:X,actionContinuities:F}=T.transactionMeta;if(F.set($,J),!X.has($))X.set($,-1)}function v7(T){return{store:T}}function kT(T,...$){let J,W,X;if($.length===1)J=$[0];else W=$[0],X=$[1],J=JT(T,W,X);if("counterfeit"in J&&"family"in J){W=T.families.get(J.family.key);let F=J.family.subKey,Y=T.disposalTraces.buffer.find((G)=>G?.key===F);switch(T.logger.error("\u274C",J.type,J.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,Y?`This state was previously disposed:
16
- ${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(J.family.key);let G=BT(T,W).default(F);return T.defaults.set(W.key,G),G}}}return v1(T,BT(T,J))}class w${a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let J=this.relations.get(T),W=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(W)W.add(T);else W=new Set([T]),this.relations.set($,W)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let W=this.relations.get($);if(W){if(W.delete(T),W.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let W=new Set().add(T);this.relations.set(J,W)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),W=this.isAType?.(T)?T:void 0,X=W===void 0?T:void 0;if(J)for(let F of J){W??=F,X??=F;let Y=this.relations.get(F);if(Y){if(Y.size===1)this.relations.delete(F);else Y.delete(T);this.contents.delete(this.makeContentKey(W,X))}}this.relations.set(T,new Set($));for(let F of $){let Y=this.relations.get(F);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set(F,Y)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,W])=>[J,new Set(W)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(W,X)=>J.has(W,X),this.addRelation=(W,X)=>{J.addRelation(W,X)},this.deleteRelation=(W,X)=>{J.deleteRelation(W,X)},this.replaceRelationsSafely=(W,X)=>{J.replaceRelationsSafely(W,X)},this.replaceRelationsUnsafely=(W,X)=>{J.replaceRelationsUnsafely(W,X)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,X)=>{J.setContent(W,X)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,X]of T.relations??[]){let F=this.isAType?.(W)?W:void 0,Y=F===void 0?W:void 0;for(let G of X)F??=G,Y??=G,this.addRelation(F,Y)}for(let[W,X]of T.contents??[])this.setContent(W,X)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,J,W;switch(T.length){case 1:{let X=T[0];$=X[this.a],J=X[this.b],W=void 0;break}case 2:{let X=T[0];if(typeof X==="string")[$,J]=T;else $=X[this.a],J=X[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let X=this.getRelatedKey($);if(X&&X!==J)this.delete($,X)}case"1:n":{let X=this.getRelatedKey(J);if(X&&X!==$)this.delete(X,J)}break;case"n:n":}if(W){let X=this.makeContentKey($,J);this.setContent(X,W)}return this.addRelation($,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let W=this.getRelatedKeys($);if(W)for(let X of W)this.delete(X,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let X of W)this.delete(J,X)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let W=this.makeContentKey(J,$);this.deleteContent(W)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let J;for(let W of $){J=W;break}return J}}replaceRelations(T,$,J){let W=!Array.isArray($),X=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,X);else this.replaceRelationsSafely(T,X);if(W)for(let F of X){let Y=this.makeContentKey(T,F),G=$[F];this.setContent(Y,G)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let W=this.getRelatedKeys($);if(W)return[...W].map((X)=>{return[X,this.getContent($,X)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((X)=>{return[X,this.getContent(X,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class _J extends Map{deleted=new Set;source;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var h7=(T,$,J,W)=>{let X=g(T),F={parent:X,child:null,on:X.on,loggers:X.loggers,logger:X.logger,config:X.config,atoms:new _J(X.atoms),atomsThatAreDefault:new Set(X.atomsThatAreDefault),families:new _J(X.families),joins:new _J(X.joins),operation:{open:!1},readonlySelectors:new _J(X.readonlySelectors),timelines:new _J(X.timelines),timelineTopics:new w$(X.timelineTopics.toJSON()),trackers:new Map,transactions:new _J(X.transactions),selectorAtoms:new w$(X.selectorAtoms.toJSON()),selectorGraph:new w$(X.selectorGraph.toJSON(),{makeContentKey:(...M)=>M.sort().join(":")}),selectors:new _J(X.selectors),valueMap:new _J(X.valueMap),defaults:X.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new _J(X.molecules),moleculeGraph:new w$(X.moleculeGraph.toJSON(),{makeContentKey:X.moleculeGraph.makeContentKey}),moleculeData:new w$(X.moleculeData.toJSON(),{makeContentKey:X.moleculeData.makeContentKey}),moleculeJoins:new w$(X.moleculeJoins.toJSON(),{makeContentKey:X.moleculeJoins.makeContentKey}),miscResources:new _J(X.miscResources)},Y=I7(T,$),G={phase:"building",update:{type:"transaction_update",key:$,id:W,epoch:Y===void 0?Number.NaN:Y+1,updates:[],params:J,output:void 0},toolkit:{get:(...M)=>kT(H,...M),set:(...M)=>{W$(H,...M)},run:(M,z=R8())=>e0(H,M,z),find:(...M)=>JT(T,...M),json:(M)=>Q$(H,M),dispose:(...M)=>{Q0(H,...M)},env:()=>v7(H)}},H=Object.assign(F,{transactionMeta:G});return X.child=H,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),H};function M6(T,$){let J={key:$.key,type:"transaction",run:(F,Y)=>{let G=h7(T,$.key,F,Y);try{let H=g(T),{toolkit:M}=G.transactionMeta,z=$.do(M,...F);return b7(z,H),z}catch(H){throw U7(W),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",H),H}},install:(F)=>M6(F,$),subject:new wT},W=g(T);W.transactions.set(J.key,J);let X=n$(J);return T.on.transactionCreation.next(X),X}function KX(T){return M6(ST.STORE,T)}class m7{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new w$({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new w$({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new w$({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new w$({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new B8(100);molecules=new Map;moleculeJoins=new w$({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new w$({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new w$({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new wT,atomDisposal:new wT,selectorCreation:new wT,selectorDisposal:new wT,timelineCreation:new wT,transactionCreation:new wT,transactionApplying:new T6(null),operationClose:new wT,moleculeCreation:new wT,moleculeDisposal:new wT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new W6("warn",(T,$,J)=>!h1(J))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},N$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new w$($?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of $.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let J=new Set;for(let[,W]of $.atoms){if(J.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let X=Q$($,W),F=Y1(W);J.add(X.key),J.add(F.key)}}for(let[,W]of $.readonlySelectors)W.install(this);for(let[,W]of $.selectors){if(J.has(W.key))continue;W.install(this)}for(let[,W]of $.transactions)W.install(this);for(let[,W]of $.timelines)W.install(this)}}}var ST={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new m7({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function BT(T,$){let J,W=T;while(W!==null){switch($.type){case"atom":case"mutable_atom":J=W.atoms.get($.key);break;case"selector":J=W.selectors.get($.key);break;case"readonly_selector":J=W.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=W.families.get($.key);break;case"timeline":J=W.timelines.get($.key);break;case"transaction":J=W.transactions.get($.key);break}if(J)return J;W=W.child}throw new A0($,T)}function g7(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new A0($,T);let X=W(J),F=g(T);if(X.family){if(N$(F))switch(X.type){case"atom":case"mutable_atom":T.on.atomCreation.next(X);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(X);break}else if(yT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push({type:"state_creation",token:X})}return X}function p7(T,$,J){let W=_T(J),X=`${$.key}(${W})`,F=g(T),Y;switch($.type){case"atom_family":case"mutable_atom_family":Y=F.atoms.get(X);break;case"selector_family":Y=F.selectors.get(X);break;case"readonly_selector_family":Y=F.readonlySelectors.get(X);break}if(Y)return n$(Y);return Y}function JT(T,$,J){let W=p7(T,$,J);if(W)return W;let X=_T(J),F=T.molecules.get(X);if(!F&&T.config.lifespan==="immortal"){let Y=G7($,J);return T.logger.error("\u274C",Y.type,Y.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),Y}if(W=g7(T,$,J),F)g(T).moleculeData.set(X,$.key);return W}function Q0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],X=$[1];J=JT(T,W,X)}try{BT(T,J)}catch(W){T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(J.type){case"atom":case"mutable_atom":z6(T,J);break;case"selector":case"readonly_selector":u7(T,J);break}}var I8=(T,$)=>g(T).atoms.has($),T_=(T,$)=>g(T).selectors.has($),$_=(T,$)=>g(T).readonlySelectors.has($),c7=(T,$)=>I8(T,$)||T_(T,$)||$_(T,$);var j8=(T,$)=>{return g($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:X}])=>X!==T).map(([W,{source:X}])=>X).filter((W)=>c7($,W))};var A6=(T,$,J)=>{let W=[],X=j8(T,J);while(X.length>0){let F=X.shift();if($.has(F))continue;if($.add(F),!I8(J,F))X.push(...j8(F,J));else if(!W.includes(F))W.push(F)}return W},o7=(T,$)=>{let J=T.key,W=j8(J,$),X=new Set;return W.flatMap((F)=>I8($,F)?F:A6(F,X,$))};var d7=(T,$,J,W)=>{let X=g(W);if($.type==="atom"||$.type==="mutable_atom")X.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let F=A6($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${F.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of F)X.selectorAtoms=X.selectorAtoms.set({selectorKey:T,atomKey:Y})}J.add($.key)};var x8=(T,$,J)=>({get:(...W)=>{let X=g(J),F;if(W.length===2){let[H,M]=W;F=JT(J,H,M)}else[F]=W;let Y=BT(J,F),G=v1(J,Y);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${F.key}" =`,G,")"),X.selectorGraph.set({upstreamSelectorKey:F.key,downstreamSelectorKey:T},{source:F.key}),d7(T,F,$,J),G},set:(...W)=>{let X,F;if(W.length===2)X=W[0],F=W[1];else{let H=W[0],M=W[1];F=W[2],X=JT(J,H,M)}let Y=g(J),G=BT(Y,X);k8(Y,G,F)},find:(...W)=>JT(J,...W),json:(W)=>Q$(J,W)});var OX=(T,$,J)=>{let W=g(T),X=new wT,F=new Set,{get:Y,find:G,json:H}=x8($.key,F,W),M=()=>{let _=$.get({get:Y,find:G,json:H});return UJ(g(T),$.key,_,X),F.clear(),_},z={...$,subject:X,install:(_)=>OX(_,$,J),get:M,type:"readonly_selector",...J&&{family:J}};W.readonlySelectors.set($.key,z);let A=M();T.logger.info("\u2728",z.type,z.key,"=",A);let Q={key:$.key,type:"readonly_selector"};if(J)Q.family=J;return Q};var VX=(T,$,J)=>{let W=g(T),X=new wT,F=new Set,Y=x8($.key,F,W),{find:G,get:H,json:M}=Y,z={find:G,get:H,json:M},A=(Z=$.get,k=g(T))=>{let N=Z(z);return UJ(k,$.key,N,X),F.clear(),N},_={...$,subject:X,install:(Z)=>VX(Z,$,J),get:A,set:(Z)=>{let k=g(T),N=A($.get,k),y=Z8(Z)(N);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",N,"->",y,")"),UJ(k,$.key,y,X),TW(k,$.key),N$(k))X.next({newValue:y,oldValue:N});$.set(Y,y)},type:"selector",...J&&{family:J}};W.selectors.set($.key,_);let D=A();T.logger.info("\u2728",_.type,_.key,"=",D);let K={key:$.key,type:"selector"};if(J)K.family=J;return K};function W1(T,$){if("set"in $){let X=VX(T,$,void 0);return T.on.selectorCreation.next(X),X}let W=OX(T,$,void 0);return T.on.selectorCreation.next(W),W}function u7(T,$){let J=g(T),{key:W}=$,X=BT(J,$);if(!X.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(X.family.subKey))J.moleculeData.delete(X.family.subKey,X.family.key);let Y;switch($.type){case"selector":J.selectors.delete(W),Y={key:X.family.key,type:"selector_family"},BT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),Y={key:X.family.key,type:"readonly_selector_family"},BT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(W),J.selectorAtoms.delete(W),J.selectorGraph.delete(W),T.logger.info("\uD83D\uDD25",$.type,W,"deleted"),yT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function UX(T,$,J){let W={key:$.key,type:"selector_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new wT,G=Object.assign((H)=>{let M=_T(H),z={key:$.key,subKey:M},A=`${$.key}(${M})`,Q=g(T),_=VX(Q,{key:A,get:$.get(H),set:$.set(H)},z);return F.next({type:"state_creation",token:_}),_},W,{internalRoles:J,subject:F,install:(H)=>UX(H,$),default:(H)=>{return $.get(H)({get:(...z)=>kT(T,...z),find:(...z)=>JT(T,...z),json:(z)=>Q$(T,z)})}});return T.families.set($.key,G),W}function l7(T,$,J){return UX(T,{key:`${$.key}:JSON`,get:(X)=>({get:F})=>{let Y=F($,X);return J.toJson(Y)},set:(X)=>({set:F},Y)=>{F($,X,J.fromJson(Y))}},["mutable","json"])}var R$=(T)=>JSON.parse(T),_T=(T)=>JSON.stringify(T),UZ=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var n7=(T,$)=>{let J=g(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var O6=(T,$)=>{let J=g(T);return o7($,T).map((X)=>{let F=J.atoms.get(X);if(F===void 0)throw new Error(`Atom "${X}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return F.subject.subscribe(`${$.type}:${$.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",X,"went",Y.oldValue,"->",Y.newValue);let G=n7(J,$),H=v1(J,$);T.logger.info("\u2728",$.type,$.key,"went",G,"->",H),$.subject.next({newValue:H,oldValue:G})})})};function x$(T,$,J,W){function X(A){if(T.operation.open){let Q=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{Q(),W(A)})}else W(A)}let F=BT(T,$);T.logger.info("\uD83D\uDC40",F.type,F.key,`Adding subscription "${J}"`);let Y=F.type==="selector"||F.type==="readonly_selector",G=null,H=X;if(Y)G=O6(T,F),H=(A)=>{if(G)G.length=0,G.push(...O6(T,F));X(A)};let M=F.subject.subscribe(J,H);return()=>{if(T.logger.info("\uD83D\uDE48",F.type,F.key,`Removing subscription "${J}"`),M(),G)for(let A of G)A()}}var Q6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),F()}};var w6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),F()}};class w0{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,X=XJ($,{key:J,default:null},W);if($.parent?.valueMap.has(J)){let F=$.parent.valueMap.get(J);$.valueMap.set(J,F)}return X}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let W=`tracker:${J.config.name}:${yT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,X=kT(J,T);this.unsubscribeFromInnerValue=X.subscribe(W,(F)=>{W$(J,$,F)}),this.unsubscribeFromState=x$(J,T,W,(F)=>{if(F.newValue!==F.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=F.newValue.subscribe(W,(Y)=>{W$(J,$,Y)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${yT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;x$(J,$,W,({newValue:X,oldValue:F})=>{let Y=J.timelineTopics.getRelatedKey($.key);if(Y){if(J.timelines.get(Y)?.timeTraveling){let M=Q6(J,{key:Y,type:"timeline"},W,(z)=>{M(),W$(J,T,(A)=>{if(z==="redo"&&X)A.do(X);else if(z==="undo"&&F)A.undo(F);return A})});return}}let G=J.on.operationClose.subscribe(W,()=>{G();let H=kT(J,T),M=X===null?-1:H.getUpdateNumber(X),z=M-H.cacheUpdateNumber;if(X&&z===1)W$(J,T,(A)=>(A.do(X),A));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${H.cacheUpdateNumber+1}, but got ${M}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=g($);this.latestUpdateState=this.initializeState(T,J),this.observeCore(T,this.latestUpdateState,J),this.updateCore(T,this.latestUpdateState,J),J.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),J.trackers.delete(T.key)}}}function EX(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new wT,Y={...$,type:"mutable_atom",install:(M)=>{return M.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${M.config.name}"`),EX(M,$,J)},subject:F};if(J)Y.family=J;let G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let M=0,z=[];for(let A of $.effects){let Q=A({setSelf:(_)=>{W$(T,H,_)},onSet:(_)=>x$(T,H,`effect[${M}]`,_)});if(Q)z.push(Q);++M}Y.cleanup=()=>{for(let A of z)A()}}if(new w0(H,T),!J)F7(H,$,T);return H}class U6{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=X1($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=BT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:X,token:F}=W;if(F.family){let Y=R$(F.family.subKey);switch(X){case"state_creation":this.trackers.set(Y,new w0(F,$));break;case"state_disposal":{let G=this.trackers.get(Y);if(G)G[Symbol.dispose](),this.trackers.delete(Y)}break}}})}}function wX(T,$,J){let W={key:$.key,type:"mutable_atom_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new wT,G=Object.assign((H)=>{let M=_T(H),z={key:$.key,subKey:M},A=`${$.key}(${M})`,Q=g(T),_={key:A,default:()=>$.default(H),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)_.effects=$.effects(H);let D=EX(Q,_,z);return F.next({type:"state_creation",token:D}),D},W,{subject:F,install:(H)=>wX(H,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,G),l7(T,G,$),new U6(G,T),W}var _6=(T,$)=>{let J=g($),W=`${T.key}:JSON`;return J.families.get(W)};var Q$=(T,$)=>{if($.family){let W=g(T),F={key:`${$.family.key}:JSON`,type:"selector_family"},Y=BT(W,F),G=JSON.parse($.family.subKey);return JT(T,Y,G)}return{type:"selector",key:`${$.key}:JSON`}};var Y1=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function L7(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function SX(T,$,J){let W=J.valueMap.get($.key),X=T.valueMap.get($.key);if(W!==X)return X;if(W===void 0)return $.default();J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let F=$.toJson(W),Y=$.fromJson(F);return T.valueMap.set($.key,Y),new w0($,J),Y}function UJ(T,$,J,W){let X=T.valueMap.get($);if(X instanceof QX)X.use(J);if(J instanceof Promise){let F=new QX(J);return T.valueMap.set($,F),F.then((Y)=>{UJ(T,$,Y,W),W.next({newValue:Y,oldValue:F})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",Y)}),F}return T.valueMap.set($,J),J}var _7=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&yT($)){let{parent:W}=$;J=SX($,T,W)}return J},E7=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof QX){let W=J,X=$.selectors.get(T)??$.readonlySelectors.get(T);if(X)W.use(X.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var B7=(T,$)=>{return g(T).atomsThatAreDefault.has($)},b8=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},f7=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(g(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function XJ(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new wT,Y={...$,type:"atom",install:(M)=>{return M.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${M.config.name}"`),XJ(M,$,J)},subject:F};if(J)Y.family=J;let G=$.default;if($.default instanceof Function)G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let M=0,z=[];for(let A of $.effects){let Q=A({setSelf:(_)=>{W$(T,H,_)},onSet:(_)=>x$(T,H,`effect[${M}]`,_)});if(Q)z.push(Q);++M}Y.cleanup=()=>{for(let A of z)A()}}return H}function H7(T,$){if("mutable"in $){let X=EX(T,$,void 0);return T.on.atomCreation.next(X),X}let W=XJ(T,$,void 0);return T.on.atomCreation.next(W),W}function z6(T,$){let J=g(T),{key:W,family:X}=$,F=BT(J,$);if(!X)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{F.cleanup?.();let Y=T.valueMap.get(F.key),G=BT(T,{key:X.key,type:"atom_family"}),H={type:"state_disposal",subType:"atom",token:$,value:Y};G.subject.next(H);let M=yT(J);if(J.atoms.delete(W),J.valueMap.delete(W),J.selectorAtoms.delete(W),J.atomsThatAreDefault.delete(W),T.timelineTopics.delete(W),$.type==="mutable_atom"){let z=Y1($);z6(T,z),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),M&&J.transactionMeta.phase==="building"){let z=J.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([_])=>_===F.family?.key)))J.transactionMeta.update.updates.push(H)}else T.on.atomDisposal.next($)}}class O$ extends Set{mode="record";subject=new wT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof O$)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(J)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=J})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new O$(T.members,T.cacheLimit);return $.cache=T.cache,$.cacheIdx=T.cacheIdx,$.cacheUpdateNumber=T.cacheUpdateNumber,$}add(T){let $=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${_T(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:${_T(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new O$(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let W of this.transactionUpdates)this.doStep(W);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let X of W.split(";"))this.doStep(X)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),W=J-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let F=T.substring($+1);return this.doStep(F),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let F=this.cacheIdx+W;if(this.cache[F]===T)return null;this.mode="playback";let G=!1;while(!G){this.cacheIdx%=this.cacheLimit;let M=this.cache[this.cacheIdx];if(this.cacheIdx--,!M)return"OUT_OF_RANGE";this.undo(M),G=this.cacheIdx===F-1}let H=T.substring($+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let X=JSON.parse(W);for(let F of X)this.add(F);break}case"tx":{let X=W.split(";");for(let F=X.length-1;F>=0;F--)this.undoStep(X[F])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring($+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class _X{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(T,$){let J=this.toolkit;this.toolkit=T,$(this),this.toolkit=J}store;realm;[Symbol.dispose](){}constructor(T,$,J=ST.STORE){this.store=J,this.realm=new X6(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...V)=>kT(J,...V),set:(...V)=>{W$(J,...V)},find:(...V)=>JT(J,...V),json:(V)=>Q$(J,V)};let W=T.between[0],X=T.between[1],F=wX(J,{key:`${T.key}/relatedKeys`,default:()=>new O$,mutable:!0,fromJson:(V)=>O$.fromJSON(V),toJson:(V)=>V.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:F};let Y=({get:V},f)=>V(F,f),G=({set:V},f,C)=>{if(!this.store.molecules.has(_T(f)))this.realm.allocate(T.key,f);V(F,f,(B)=>B.add(C)),V(F,C,(B)=>B.add(f))},H=({set:V},f,C)=>{V(F,f,(B)=>{return B.delete(C),B}),V(F,C,(B)=>{return B.delete(f),B})},M=(V,f,C)=>{let{find:B,get:m,set:$T}=V,E=B(F,f),XT=m(E);for(let n of XT){if(C.includes(n))continue;$T(F,n,(qT)=>{return qT.delete(f),qT})}$T(E,(n)=>{return n.transaction((HT)=>{HT.clear();for(let qT of C){let eT=Y(V,qT),l$=eT.has(f);if(this.relations.cardinality==="1:n"){let J1=[];for(let I of eT){if(I===f)continue;let a=Y(V,I);if(a.delete(qT),a.size===0)J1.push(I)}if(!l$&&eT.size>0)eT.clear();for(let I of J1){let a=[qT,I].sort(),CT=`"${a[0]}:${a[1]}"`;this.molecules.delete(CT)}}if(!l$)eT.add(f);HT.add(qT)}return!0}),n})},z=(V,f,C)=>{let{set:B}=V;B(F,f,(m)=>{return m.transaction(($T)=>{for(let E of C)$T.add(E);return!0}),m});for(let m of C)B(F,m,($T)=>{return $T.add(f),$T});return!0},A=(V,f,C)=>{let B=Y(V,f);return C?B.has(C):B.size>0},Q={getRelatedKeys:(V)=>Y(this.toolkit,V),addRelation:(V,f)=>{this.store.moleculeJoins.set(V,T.key),this.store.moleculeJoins.set(f,T.key),G(this.toolkit,V,f)},deleteRelation:(V,f)=>{H(this.toolkit,V,f)},replaceRelationsSafely:(V,f)=>{M(this.toolkit,V,f)},replaceRelationsUnsafely:(V,f)=>{z(this.toolkit,V,f)},has:(V,f)=>A(this.toolkit,V,f)},_,D;if($){D=X1(J,{key:`${T.key}/content`,default:$},["join","content"]);let V=({get:B},m)=>B(D,m),f=({set:B},m,$T)=>{B(D,m,$T)};_=Object.assign(Q,{getContent:(B)=>{return V(this.toolkit,B)},setContent:(B,m)=>{f(this.toolkit,B,m)},deleteContent:(B)=>{this.realm.deallocate(B)}})}else _=Q;let K=new w$(T,{externalStore:_,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...V)=>{let[f,C]=V,B=V.sort(),m=`${B[0]}:${B[1]}`,$T=J.molecules.get(_T(f)),E=J.molecules.get(_T(C));if(!$T)this.realm.allocate(T.key,f);if(!E)this.realm.allocate(T.key,C);return this.realm.allocate(f,m,"all"),this.realm.claim(C,m),this.store.moleculeJoins.set(m,T.key),m}}),Z=()=>F1(J,{key:`${T.key}/singleRelatedKey`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C)return B;return null}},["join","keys"]),k=()=>{return F1(J,{key:`${T.key}/multipleRelatedKeys`,get:(V)=>({get:f})=>{let C=_6(F,J);return f(C,V).members}},["join","keys"])},N=()=>F1(J,{key:`${T.key}/singleRelatedEntry`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C){let m=K.isAType?.(V)?V:void 0,$T=m===void 0?V:void 0;m??=B,$T??=B;let E=K.makeContentKey(m,$T),XT=f(D,E);return[B,XT]}return null}},["join","entries"]),y=()=>F1(J,{key:`${T.key}/multipleRelatedEntries`,get:(V)=>({get:f})=>{let C=_6(F,J);return f(C,V).members.map((m)=>{let $T=K.isAType?.(V)?V:void 0,E=$T===void 0?V:void 0;$T??=m,E??=m;let XT=K.makeContentKey($T,E),n=f(D,XT);return[m,n]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let V=Z(),f=`${W}KeyOf${jT(X)}`,C=`${X}KeyOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=N(),E=`${W}EntryOf${jT(X)}`,XT=`${X}EntryOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m;break}case"1:n":{let V=Z(),f=k(),C=`${W}KeyOf${jT(X)}`,B=`${X}KeysOf${jT(W)}`,m={[C]:V,[B]:f},$T;if($){let E=N(),XT=y(),n=`${W}EntryOf${jT(X)}`,HT=`${X}EntriesOf${jT(W)}`,qT={[n]:E,[HT]:XT};$T=Object.assign(m,qT)}else $T=m;this.relations=K,this.states=$T;break}case"n:n":{let V=k(),f=`${W}KeysOf${jT(X)}`,C=`${X}KeysOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=y(),E=`${W}EntriesOf${jT(X)}`,XT=`${X}EntriesOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m}}}}function $W(T,$){let J=$.joins.get(T.key);if(J===void 0){let X=ST.STORE.joins.get(T.key);if(X===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);J=new _X(X.options,X.defaultContent,$),$.joins.set(T.key,J)}return J}function DX(T,$,J){let W=$W(T,J),X=g(J);if(yT(X)){let{toolkit:F}=X.transactionMeta;W.transact(F,({relations:Y})=>{$(Y)})}else $(W.relations)}function N8(T,$,J){let W=$W(T,J),X;switch(T.cardinality){case"1:1":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeyOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntryOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}break}case"1:n":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}break}case"n:n":{let F=`${T.a}KeysOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntriesOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}}}return X}function A7(T,$){return $W(T,$).core.relatedKeysAtoms}function h1(T){return T.startsWith("\uD83D\uDD0D ")}class i7 extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class P8{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new i7;static create(T,$){let J=new P8(T),{type:W,globals:X,actions:F,perspectives:Y}=$(J),G={type:W,key:T,globals:X,actions:F,perspectives:Y};return P8.existing.set(T,G),G}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":case"mutable_atom_family":{let[J,W]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:W})}break}return this}}function yy(T){let{key:$,config:J}=T,W=P8.create($,J),{actions:X}=W;for(let F of X)P7(ST.STORE,$,F.key);return j7(ST.STORE,$,-1),W}var by=a0({key:"usersInRoomIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),D6=a0({key:"roomIndex",default:()=>new O$,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),J_={enteredAtEpoch:0},RX=f8({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},J_),Py=C8({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=z7(RX);return[$(J,T)]}});import{spawn as W_}from"child_process";class JW{listeners;globalListeners;handleEvent(T,...$){for(let W of this.globalListeners)W(T,...$);let J=this.listeners.get(T);if(J)for(let W of J)W(...$)}id="no_id_retrieved";emit;constructor(T){this.emit=T,this.listeners=new Map,this.globalListeners=new Set}on(T,$){let J=this.listeners.get(T);if(J)J.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let J=this.listeners.get(T);if(J)if($)J.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class S6 extends JW{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break;default:return}}}constructor(T,$,J){super((W,...X)=>{let F=JSON.stringify([W,...X])+"\x03",Y=(G)=>{if(G.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",Y)};return this.process.stdin.once("error",Y),this.process.stdin.write(F),this});if(this.process=T,this.key=$,this.logger=J??{info:(...W)=>{console.info(this.id,this.key,...W)},warn:(...W)=>{console.warn(this.id,this.key,...W)},error:(...W)=>{console.error(this.id,this.key,...W)}},this.process.stdout.on("data",(W)=>{let X=W.toString();if(X==="ALIVE")return;this.unprocessedEvents.push(...X.split("\x03"));let F=this.unprocessedEvents.shift();this.incompleteData+=F??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let Y=R$(this.incompleteData);this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;Y=R$(G),this.handleEvent(...Y)}}this.incompleteData=""}catch(Y){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(Y)}}),this.process.stderr.on("data",(W)=>{let X=W.toString();this.unprocessedLogs.push(...X.split("\x03"));let F=this.unprocessedLogs.shift();this.incompleteLog+=F??"";try{let Y=R$(this.incompleteLog);this.handleLog(Y);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)Y=R$(this.incompleteLog),this.handleLog(Y)}catch(Y){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(Y),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class t7 extends JW{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new wT,this.out=new wT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class K6 extends JW{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(_T(T.map(($)=>$ instanceof O$?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let W=R$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let X=this.unprocessedEvents.shift();if(X){if(this.unprocessedEvents.length===0)this.incompleteData=X;let F=R$(X);this.handleEvent(...F)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new t7(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let W=J($);if(W)$.disposalFunctions.push(W)}this.on(`user:${T}`,(...J)=>{$.in.next(J)}),$.out.subscribe("socket",(J)=>{this.emit(...J)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var V6=H0({key:"roomArguments",default:["echo",["Hello World!"]]}),r7=C8({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(V6,T),X=$(W),[F,Y]=X,G=await new Promise((H)=>{let M=W_(F,Y,{env:process.env}),z=(A)=>{if(A.toString()==="ALIVE")M.stdout.off("data",z),H(M)};M.stdout.on("data",z)});return new S6(G,T)}});var MI=KX({key:"createRoom",do:({get:T,set:$,find:J},W,X,F)=>{let Y=F?[X,F]:[X],G=J(V6,W);$(G,Y),$(D6,(z)=>z.add(W));let H=J(r7,W);return T(H)}}),zI=KX({key:"joinRoom",do:(T,$,J,W)=>{let X={enteredAtEpoch:W};return DX(RX,(F)=>{F.set({room:$,user:J},X)},T.env().store),X}}),AI=KX({key:"leaveRoom",do:(T,$,J)=>{DX(RX,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),QI=KX({key:"destroyRoom",do:(T,$)=>{DX(RX,(J)=>{J.delete({room:$})},T.env().store),T.set(D6,(J)=>(J.delete($),J))}});function E6(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let W=E6(T,J.updates);return{...J,updates:W}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":case"state_disposal":return T.includes(J.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var UI=H0({key:"redactor",default:{occlude:(T)=>T}}),WW=H0({key:"unacknowledgedUpdates",default:()=>[]});var a7=H0({key:"sockets",default:null}),KI=a0({key:"socketsIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),VI=a0({key:"usersIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),R6=f8({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function s7(T,$,J,W){let X=$.key;return function F(){let Y=[];for(let H of $.globals){let M=H.type==="mutable_atom"?Q$(T,H):H,z=kT(T,M);Y.push(M,z)}for(let H of $.perspectives){let{viewAtoms:M,resourceAtoms:z}=H,A=JT(T,M,J),Q=kT(T,A);T.logger.info("\uD83D\uDC41","atom",z.key,`${J} can see`,{viewAtoms:M,resourceAtoms:z,userView:Q});for(let _ of Q){let D=_.type==="mutable_atom"?Q$(T,_):_,K=kT(T,D);Y.push(D,K)}}let G=N$(T)?T.transactionMeta.epoch.get(X)??null:null;W?.emit(`continuity-init:${X}`,G,Y)}}function e7(T,$,J){let W=$.key;return function X(F){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",F);let{key:Y,id:G}=F,H=`tx-run:${Y}:${G}`,M=`${H}:start`,z=`${H}:end`;performance.mark(M);try{e0(T,{type:"transaction",key:Y},G)(...F.params)}catch(Q){if(Q instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${Y} from ${J} with update ${G}`,Q.message)}performance.mark(z);let A=performance.measure(H,M,z);T?.logger.info("\uD83D\uDE80","transaction",Y,G,J,A.duration)}}function TG(T,$,J,W){let X=$.key;return function F(Y){if(T.logger.info("\uD83D\uDC4D","continuity",X,`${J} acknowledged epoch ${Y}`),W[0]?.epoch===Y)W$(T,WW,J,(H)=>{return H.shift(),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,H.length,"items"),H})}}function $G(T,$,J,W){let X=$.key,F=[];for(let Y of $.actions){let G=w6(T,Y,`sync-continuity:${X}:${J}`,(H)=>{try{let M=$.globals.map((Q)=>{if(Q.type==="atom")return Q.key;return Y1(Q).key}).concat($.perspectives.flatMap((Q)=>{let{viewAtoms:_}=Q,D=JT(T,_,J);return kT(T,D).map((Z)=>{return Z.type==="mutable_atom"?"*"+Z.key:Z.key})})),z=E6(M,H.updates),A={...H,updates:z};W$(T,WW,J,(Q)=>{if(A)Q.push(A),Q.sort((_,D)=>_.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,Q.length,"items");return Q}),W?.emit(`tx-new:${X}`,A)}catch(M){if(M instanceof Error)T.logger.error("\u274C","continuity",X,`${J} failed to send update from transaction ${Y.key} to ${J}`,M.message)}});F.push(G)}return F}function JG(T,$,J,W){let X=$.key,F=[];for(let Y of $.perspectives){let{viewAtoms:G}=Y,H=JT(T,G,J),M=x$(T,H,`sync-continuity:${X}:${J}:perspective:${Y.resourceAtoms.key}`,({oldValue:z,newValue:A})=>{let Q=z.map((Z)=>Z.key),_=A.map((Z)=>Z.key),D=z.filter((Z)=>!_.includes(Z.key)),K=A.filter((Z)=>!Q.includes(Z.key)).flatMap((Z)=>{let k=Z.type==="mutable_atom"?Q$(T,Z):Z,N=kT(T,k);return[k,N]});if(T.logger.info("\uD83D\uDC41","atom",Y.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:Q,newKeys:_,revealed:K,concealed:D}),K.length>0)W?.emit(`reveal:${X}`,K);if(D.length>0)W?.emit(`conceal:${X}`,D)});F.push(M)}return F}function tI({socket:T,store:$=ST.STORE}){return function J(W){let X=T,F=W.key,Y=N8(R6,`socket::${X.id}`,$).userKeyOfSocket,G=kT($,Y);if(!G)return $.logger.error("\u274C","continuity",F,`Tried to create a synchronizer for a socket (${X.id}) that is not connected to a user.`),()=>{};let H=N8(R6,G,$).socketKeyOfUser,M=x$($,H,`sync-continuity:${F}:${G}`,({newValue:k})=>{if($.logger.info("\uD83D\uDC4B","continuity",F,`seeing ${G} on new socket ${k}`),k===null){$.logger.warn("\u274C","continuity",F,`User (${G}) is not connected to a socket, waiting for them to reappear.`);return}let N=JT($,a7,k);X=kT($,N);for(let V of z)X?.emit(`tx-new:${F}`,V)}),z=kT($,WW,G),A=[],Q=JG($,W,G,X),_=$G($,W,G,X);A.push(...Q,..._);let D=s7($,W,G,T);X.off(`get:${F}`,D),X.on(`get:${F}`,D);let K=e7($,W,G);X.off(`tx-run:${F}`,K),X.on(`tx-run:${F}`,K);let Z=TG($,W,G,z);return X?.on(`ack:${F}`,Z),()=>{for(let k of A)k();X?.off(`ack:${F}`,Z),X?.off(`get:${F}`,D),X?.off(`tx-run:${F}`,K)}}}var XG=Symbol("Let zodToJsonSchema decide on which parser to use");var WG={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},FG=(T)=>typeof T==="string"?{...WG,name:T}:{...WG,...T};var YG=(T)=>{let $=FG(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,X])=>[X._def,{def:X._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function L6(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function ET(T,$,J,W,X){T[$]=J,L6(T,$,W,X)}var RT;(function(T){T.assertEqual=(X)=>X;function $(X){}T.assertIs=$;function J(X){throw new Error}T.assertNever=J,T.arrayToEnum=(X)=>{let F={};for(let Y of X)F[Y]=Y;return F},T.getValidEnumValues=(X)=>{let F=T.objectKeys(X).filter((G)=>typeof X[X[G]]!=="number"),Y={};for(let G of F)Y[G]=X[G];return T.objectValues(Y)},T.objectValues=(X)=>{return T.objectKeys(X).map(function(F){return X[F]})},T.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let F=[];for(let Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))F.push(Y);return F},T.find=(X,F)=>{for(let Y of X)if(F(Y))return Y;return},T.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&isFinite(X)&&Math.floor(X)===X;function W(X,F=" | "){return X.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(F)}T.joinValues=W,T.jsonStringifyReplacer=(X,F)=>{if(typeof F==="bigint")return F.toString();return F}})(RT||(RT={}));var GG;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(GG||(GG={}));var o=RT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),m1=(T)=>{switch(typeof T){case"undefined":return o.undefined;case"string":return o.string;case"number":return isNaN(T)?o.nan:o.number;case"boolean":return o.boolean;case"function":return o.function;case"bigint":return o.bigint;case"symbol":return o.symbol;case"object":if(Array.isArray(T))return o.array;if(T===null)return o.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return o.promise;if(typeof Map!=="undefined"&&T instanceof Map)return o.map;if(typeof Set!=="undefined"&&T instanceof Set)return o.set;if(typeof Date!=="undefined"&&T instanceof Date)return o.date;return o.object;default:return o.unknown}},j=RT.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class DJ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(X){return X.message},J={_errors:[]},W=(X)=>{for(let F of X.issues)if(F.code==="invalid_union")F.unionErrors.map(W);else if(F.code==="invalid_return_type")W(F.returnTypeError);else if(F.code==="invalid_arguments")W(F.argumentsError);else if(F.path.length===0)J._errors.push($(F));else{let Y=J,G=0;while(G<F.path.length){let H=F.path[G];if(G!==F.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(F));Y=Y[H],G++}}};return W(this),J}static assert(T){if(!(T instanceof DJ))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,RT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let W of this.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(T(W));else J.push(T(W));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}DJ.create=(T)=>{return new DJ(T)};var CX=(T,$)=>{let J;switch(T.code){case j.invalid_type:if(T.received===o.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case j.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,RT.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:J=`Unrecognized key(s) in object: ${RT.joinValues(T.keys,", ")}`;break;case j.invalid_union:J="Invalid input";break;case j.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${RT.joinValues(T.options)}`;break;case j.invalid_enum_value:J=`Invalid enum value. Expected ${RT.joinValues(T.options)}, received '${T.received}'`;break;case j.invalid_arguments:J="Invalid function arguments";break;case j.invalid_return_type:J="Invalid function return type";break;case j.invalid_date:J="Invalid date";break;case j.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(J=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)J=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)J=`Invalid input: must end with "${T.validation.endsWith}"`;else RT.assertNever(T.validation);else if(T.validation!=="regex")J=`Invalid ${T.validation}`;else J="Invalid";break;case j.too_small:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else J="Invalid input";break;case j.too_big:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")J=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else J="Invalid input";break;case j.custom:J="Invalid input";break;case j.invalid_intersection_types:J="Intersection results could not be merged";break;case j.not_multiple_of:J=`Number must be a multiple of ${T.multipleOf}`;break;case j.not_finite:J="Number must be finite";break;default:J=$.defaultError,RT.assertNever(T)}return{message:J}},X_=CX;function f6(){return X_}var N6=(T)=>{let{data:$,path:J,errorMaps:W,issueData:X}=T,F=[...J,...X.path||[]],Y={...X,path:F};if(X.message!==void 0)return{...X,path:F,message:X.message};let G="",H=W.filter((M)=>!!M).slice().reverse();for(let M of H)G=M(Y,{data:$,defaultError:G}).message;return{...X,path:F,message:G}};function p(T,$){let J=f6(),W=N6({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===CX?void 0:CX].filter((X)=>!!X)});T.common.issues.push(W)}class g${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let W of $){if(W.status==="aborted")return FT;if(W.status==="dirty")T.dirty();J.push(W.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let W of $){let X=await W.key,F=await W.value;J.push({key:X,value:F})}return g$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:X,value:F}=W;if(X.status==="aborted")return FT;if(F.status==="aborted")return FT;if(X.status==="dirty")T.dirty();if(F.status==="dirty")T.dirty();if(X.value!=="__proto__"&&(typeof F.value!=="undefined"||W.alwaysSet))J[X.value]=F.value}return{status:T.value,value:J}}}var FT=Object.freeze({status:"aborted"}),LX=(T)=>({status:"dirty",value:T}),i$=(T)=>({status:"valid",value:T}),HG=(T)=>T.status==="aborted",MG=(T)=>T.status==="dirty",FW=(T)=>T.status==="valid",v8=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function h8(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)}function AG(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J}var i;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(i||(i={}));var BX,fX;class kJ{constructor(T,$,J,W){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=W}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var zG=(T,$)=>{if(FW($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new DJ(T.common.issues);return this._error=J,this._error}}}};function zT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:W,description:X}=T;if($&&(J||W))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:X};return{errorMap:(Y,G)=>{var H,M;let{message:z}=T;if(Y.code==="invalid_enum_value")return{message:z!==null&&z!==void 0?z:G.defaultError};if(typeof G.data==="undefined")return{message:(H=z!==null&&z!==void 0?z:W)!==null&&H!==void 0?H:G.defaultError};if(Y.code!=="invalid_type")return{message:G.defaultError};return{message:(M=z!==null&&z!==void 0?z:J)!==null&&M!==void 0?M:G.defaultError}},description:X}}class DT{get description(){return this._def.description}_getType(T){return m1(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new g$,ctx:{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(v8($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let J=this.safeParse(T,$);if(J.success)return J.data;throw J.error}safeParse(T,$){var J;let W={common:{issues:[],async:(J=$===null||$===void 0?void 0:$.async)!==null&&J!==void 0?J:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)},X=this._parseSync({data:T,path:W.path,parent:W});return zG(W,X)}"~validate"(T){var $,J;let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)};if(!this["~standard"].async)try{let X=this._parseSync({data:T,path:[],parent:W});return FW(X)?{value:X.value}:{issues:W.common.issues}}catch(X){if((J=($=X===null||X===void 0?void 0:X.message)===null||$===void 0?void 0:$.toLowerCase())===null||J===void 0?void 0:J.includes("encountered"))this["~standard"].async=!0;W.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:W}).then((X)=>FW(X)?{value:X.value}:{issues:W.common.issues})}async parseAsync(T,$){let J=await this.safeParseAsync(T,$);if(J.success)return J.data;throw J.error}async safeParseAsync(T,$){let J={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)},W=this._parse({data:T,path:J.path,parent:J}),X=await(v8(W)?W:Promise.resolve(W));return zG(J,X)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,X)=>{let F=T(W),Y=()=>X.addIssue({code:j.custom,...J(W)});if(typeof Promise!=="undefined"&&F instanceof Promise)return F.then((G)=>{if(!G)return Y(),!1;else return!0});if(!F)return Y(),!1;else return!0})}refinement(T,$){return this._refinement((J,W)=>{if(!T(J))return W.addIssue(typeof $==="function"?$(J,W):$),!1;else return!0})}_refinement(T){return new dJ({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return SJ.create(this,this._def)}nullable(){return g1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return oJ.create(this)}promise(){return MW.create(this,this._def)}or(T){return yX.create([this,T],this._def)}and(T){return IX.create(this,T,this._def)}transform(T){return new dJ({...zT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new PX({...zT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new k6({typeName:x.ZodBranded,type:this,...zT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new vX({...zT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return l8.create(this,T)}readonly(){return hX.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var F_=/^c[^\s-]{8,}$/i,Y_=/^[0-9a-z]+$/,G_=/^[0-9A-HJKMNP-TV-Z]{26}$/i,H_=/^[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,M_=/^[a-z0-9_-]{21}$/i,z_=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,A_=/^[-+]?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)?)??$/,Q_=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,w_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",B6,O_=/^(?:(?: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])$/,U_=/^(?:(?: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])$/,__=/^(([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]))$/,D_=/^(([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])$/,S_=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,K_=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,QG="((\\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])))",V_=new RegExp(`^${QG}$`);function wG(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 E_(T){return new RegExp(`^${wG(T)}$`)}function R_(T){let $=`${QG}T${wG(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function L_(T,$){if(($==="v4"||!$)&&O_.test(T))return!0;if(($==="v6"||!$)&&__.test(T))return!0;return!1}function B_(T,$){if(!z_.test(T))return!1;try{let[J]=T.split("."),W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),X=JSON.parse(atob(W));if(typeof X!=="object"||X===null)return!1;if(!X.typ||!X.alg)return!1;if($&&X.alg!==$)return!1;return!0}catch(J){return!1}}function f_(T,$){if(($==="v4"||!$)&&U_.test(T))return!0;if(($==="v6"||!$)&&D_.test(T))return!0;return!1}class H1 extends DT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==o.string){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.string,received:X.parsedType}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.length<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="max"){if(T.data.length>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="length"){let F=T.data.length>X.value,Y=T.data.length<X.value;if(F||Y){if(W=this._getOrReturnCtx(T,W),F)p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if(Y)p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});J.dirty()}}else if(X.kind==="email"){if(!Q_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"email",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="emoji"){if(!B6)B6=new RegExp(w_,"u");if(!B6.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"emoji",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="uuid"){if(!H_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"uuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="nanoid"){if(!M_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"nanoid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid"){if(!F_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid2"){if(!Y_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid2",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ulid"){if(!G_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"ulid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="url")try{new URL(T.data)}catch(F){W=this._getOrReturnCtx(T,W),p(W,{validation:"url",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"regex",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="trim")T.data=T.data.trim();else if(X.kind==="includes"){if(!T.data.includes(X.value,X.position))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),J.dirty()}else if(X.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(X.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(X.kind==="startsWith"){if(!T.data.startsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{startsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="endsWith"){if(!T.data.endsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{endsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="datetime"){if(!R_(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"datetime",message:X.message}),J.dirty()}else if(X.kind==="date"){if(!V_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"date",message:X.message}),J.dirty()}else if(X.kind==="time"){if(!E_(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"time",message:X.message}),J.dirty()}else if(X.kind==="duration"){if(!A_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"duration",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ip"){if(!L_(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"ip",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="jwt"){if(!B_(T.data,X.alg))W=this._getOrReturnCtx(T,W),p(W,{validation:"jwt",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cidr"){if(!f_(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"cidr",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64"){if(!S_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64url"){if(!K_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64url",code:j.invalid_string,message:X.message}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((W)=>T.test(W),{validation:$,code:j.invalid_string,...i.errToObj(J)})}_addCheck(T){return new H1({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...i.errToObj(T)})}url(T){return this._addCheck({kind:"url",...i.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...i.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...i.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...i.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...i.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...i.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...i.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...i.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...i.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...i.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...i.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...i.errToObj(T)})}datetime(T){var $,J;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(J=T===null||T===void 0?void 0:T.local)!==null&&J!==void 0?J:!1,...i.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...i.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...i.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...i.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...i.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...i.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...i.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...i.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...i.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...i.errToObj($)})}nonempty(T){return this.min(1,i.errToObj(T))}trim(){return new H1({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new H1({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new H1({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}H1.create=(T)=>{var $;return new H1({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};function N_(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,X=J>W?J:W,F=parseInt(T.toFixed(X).replace(".","")),Y=parseInt($.toFixed(X).replace(".",""));return F%Y/Math.pow(10,X)}class YW extends DT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==o.number){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.number,received:X.parsedType}),FT}let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="int"){if(!RT.isInteger(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.invalid_type,expected:"integer",received:"float",message:X.message}),W.dirty()}else if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(N_(T.data,X.value)!==0)J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else if(X.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_finite,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new YW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new YW({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:i.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}finite(T){return this._addCheck({kind:"finite",message:i.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&RT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if($===null||J.value>$)$=J.value}else if(J.kind==="max"){if(T===null||J.value<T)T=J.value}return Number.isFinite($)&&Number.isFinite(T)}}YW.create=(T)=>{return new YW({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class GW extends DT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(X){return this._getInvalidInput(T)}if(this._getType(T)!==o.bigint)return this._getInvalidInput(T);let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(T.data%X.value!==BigInt(0))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.bigint,received:$.parsedType}),FT}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new GW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new GW({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}GW.create=(T)=>{var $;return new GW({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};class m8 extends DT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==o.boolean){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.boolean,received:J.parsedType}),FT}return i$(T.data)}}m8.create=(T)=>{return new m8({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class ZX extends DT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==o.date){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.date,received:X.parsedType}),FT}if(isNaN(T.data.getTime())){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_date}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.getTime()<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),J.dirty()}else if(X.kind==="max"){if(T.data.getTime()>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new ZX({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:i.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:i.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}ZX.create=(T)=>{return new ZX({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...zT(T)})};class g8 extends DT{_parse(T){if(this._getType(T)!==o.symbol){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.symbol,received:J.parsedType}),FT}return i$(T.data)}}g8.create=(T)=>{return new g8({typeName:x.ZodSymbol,...zT(T)})};class kX extends DT{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.undefined,received:J.parsedType}),FT}return i$(T.data)}}kX.create=(T)=>{return new kX({typeName:x.ZodUndefined,...zT(T)})};class qX extends DT{_parse(T){if(this._getType(T)!==o.null){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.null,received:J.parsedType}),FT}return i$(T.data)}}qX.create=(T)=>{return new qX({typeName:x.ZodNull,...zT(T)})};class p8 extends DT{constructor(){super(...arguments);this._any=!0}_parse(T){return i$(T.data)}}p8.create=(T)=>{return new p8({typeName:x.ZodAny,...zT(T)})};class O0 extends DT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return i$(T.data)}}O0.create=(T)=>{return new O0({typeName:x.ZodUnknown,...zT(T)})};class M1 extends DT{_parse(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.never,received:$.parsedType}),FT}}M1.create=(T)=>{return new M1({typeName:x.ZodNever,...zT(T)})};class u8 extends DT{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.void,received:J.parsedType}),FT}return i$(T.data)}}u8.create=(T)=>{return new u8({typeName:x.ZodVoid,...zT(T)})};class oJ extends DT{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),W=this._def;if($.parsedType!==o.array)return p($,{code:j.invalid_type,expected:o.array,received:$.parsedType}),FT;if(W.exactLength!==null){let F=$.data.length>W.exactLength.value,Y=$.data.length<W.exactLength.value;if(F||Y)p($,{code:F?j.too_big:j.too_small,minimum:Y?W.exactLength.value:void 0,maximum:F?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),J.dirty()}if(W.minLength!==null){if($.data.length<W.minLength.value)p($,{code:j.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),J.dirty()}if(W.maxLength!==null){if($.data.length>W.maxLength.value)p($,{code:j.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((F,Y)=>{return W.type._parseAsync(new kJ($,F,$.path,Y))})).then((F)=>{return g$.mergeArray(J,F)});let X=[...$.data].map((F,Y)=>{return W.type._parseSync(new kJ($,F,$.path,Y))});return g$.mergeArray(J,X)}get element(){return this._def.type}min(T,$){return new oJ({...this._def,minLength:{value:T,message:i.toString($)}})}max(T,$){return new oJ({...this._def,maxLength:{value:T,message:i.toString($)}})}length(T,$){return new oJ({...this._def,exactLength:{value:T,message:i.toString($)}})}nonempty(T){return this.min(1,T)}}oJ.create=(T,$)=>{return new oJ({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...zT($)})};function XW(T){if(T instanceof $$){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=SJ.create(XW(W))}return new $$({...T._def,shape:()=>$})}else if(T instanceof oJ)return new oJ({...T._def,type:XW(T.element)});else if(T instanceof SJ)return SJ.create(XW(T.unwrap()));else if(T instanceof g1)return g1.create(XW(T.unwrap()));else if(T instanceof z1)return z1.create(T.items.map(($)=>XW($)));else return T}class $$ extends DT{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),$=RT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==o.object){let H=this._getOrReturnCtx(T);return p(H,{code:j.invalid_type,expected:o.object,received:H.parsedType}),FT}let{status:J,ctx:W}=this._processInputParams(T),{shape:X,keys:F}=this._getCached(),Y=[];if(!(this._def.catchall instanceof M1&&this._def.unknownKeys==="strip")){for(let H in W.data)if(!F.includes(H))Y.push(H)}let G=[];for(let H of F){let M=X[H],z=W.data[H];G.push({key:{status:"valid",value:H},value:M._parse(new kJ(W,z,W.path,H)),alwaysSet:H in W.data})}if(this._def.catchall instanceof M1){let H=this._def.unknownKeys;if(H==="passthrough")for(let M of Y)G.push({key:{status:"valid",value:M},value:{status:"valid",value:W.data[M]}});else if(H==="strict"){if(Y.length>0)p(W,{code:j.unrecognized_keys,keys:Y}),J.dirty()}else if(H==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let M of Y){let z=W.data[M];G.push({key:{status:"valid",value:M},value:H._parse(new kJ(W,z,W.path,M)),alwaysSet:M in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let H=[];for(let M of G){let z=await M.key,A=await M.value;H.push({key:z,value:A,alwaysSet:M.alwaysSet})}return H}).then((H)=>{return g$.mergeObjectSync(J,H)});else return g$.mergeObjectSync(J,G)}get shape(){return this._def.shape()}strict(T){return i.errToObj,new $$({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,X,F,Y;let G=(F=(X=(W=this._def).errorMap)===null||X===void 0?void 0:X.call(W,$,J).message)!==null&&F!==void 0?F:J.defaultError;if($.code==="unrecognized_keys")return{message:(Y=i.errToObj(T).message)!==null&&Y!==void 0?Y:G};return{message:G}}}:{}})}strip(){return new $$({...this._def,unknownKeys:"strip"})}passthrough(){return new $$({...this._def,unknownKeys:"passthrough"})}extend(T){return new $$({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new $$({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:x.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new $$({...this._def,catchall:T})}pick(T){let $={};return RT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}omit(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}deepPartial(){return XW(this)}partial(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{let W=this.shape[J];if(T&&!T[J])$[J]=W;else $[J]=W.optional()}),new $$({...this._def,shape:()=>$})}required(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(T&&!T[J])$[J]=this.shape[J];else{let X=this.shape[J];while(X instanceof SJ)X=X._def.innerType;$[J]=X}}),new $$({...this._def,shape:()=>$})}keyof(){return OG(RT.objectKeys(this.shape))}}$$.create=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strip",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};$$.strictCreate=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strict",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};$$.lazycreate=(T,$)=>{return new $$({shape:T,unknownKeys:"strip",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};class yX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(X){for(let Y of X)if(Y.result.status==="valid")return Y.result;for(let Y of X)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let F=X.map((Y)=>new DJ(Y.ctx.common.issues));return p($,{code:j.invalid_union,unionErrors:F}),FT}if($.common.async)return Promise.all(J.map(async(X)=>{let F={...$,common:{...$.common,issues:[]},parent:null};return{result:await X._parseAsync({data:$.data,path:$.path,parent:F}),ctx:F}})).then(W);else{let X=void 0,F=[];for(let G of J){let H={...$,common:{...$.common,issues:[]},parent:null},M=G._parseSync({data:$.data,path:$.path,parent:H});if(M.status==="valid")return M;else if(M.status==="dirty"&&!X)X={result:M,ctx:H};if(H.common.issues.length)F.push(H.common.issues)}if(X)return $.common.issues.push(...X.ctx.common.issues),X.result;let Y=F.map((G)=>new DJ(G));return p($,{code:j.invalid_union,unionErrors:Y}),FT}}get options(){return this._def.options}}yX.create=(T,$)=>{return new yX({options:T,typeName:x.ZodUnion,...zT($)})};var G1=(T)=>{if(T instanceof jX)return G1(T.schema);else if(T instanceof dJ)return G1(T.innerType());else if(T instanceof xX)return[T.value];else if(T instanceof U0)return T.options;else if(T instanceof bX)return RT.objectValues(T.enum);else if(T instanceof PX)return G1(T._def.innerType);else if(T instanceof kX)return[void 0];else if(T instanceof qX)return[null];else if(T instanceof SJ)return[void 0,...G1(T.unwrap())];else if(T instanceof g1)return[null,...G1(T.unwrap())];else if(T instanceof k6)return G1(T.unwrap());else if(T instanceof hX)return G1(T.unwrap());else if(T instanceof vX)return G1(T._def.innerType);else return[]};class Z6 extends DT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.object)return p($,{code:j.invalid_type,expected:o.object,received:$.parsedType}),FT;let J=this.discriminator,W=$.data[J],X=this.optionsMap.get(W);if(!X)return p($,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),FT;if($.common.async)return X._parseAsync({data:$.data,path:$.path,parent:$});else return X._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,J){let W=new Map;for(let X of $){let F=G1(X.shape[T]);if(!F.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let Y of F){if(W.has(Y))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(Y)}`);W.set(Y,X)}}return new Z6({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...zT(J)})}}function C6(T,$){let J=m1(T),W=m1($);if(T===$)return{valid:!0,data:T};else if(J===o.object&&W===o.object){let X=RT.objectKeys($),F=RT.objectKeys(T).filter((G)=>X.indexOf(G)!==-1),Y={...T,...$};for(let G of F){let H=C6(T[G],$[G]);if(!H.valid)return{valid:!1};Y[G]=H.data}return{valid:!0,data:Y}}else if(J===o.array&&W===o.array){if(T.length!==$.length)return{valid:!1};let X=[];for(let F=0;F<T.length;F++){let Y=T[F],G=$[F],H=C6(Y,G);if(!H.valid)return{valid:!1};X.push(H.data)}return{valid:!0,data:X}}else if(J===o.date&&W===o.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class IX extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(X,F)=>{if(HG(X)||HG(F))return FT;let Y=C6(X.value,F.value);if(!Y.valid)return p(J,{code:j.invalid_intersection_types}),FT;if(MG(X)||MG(F))$.dirty();return{status:$.value,value:Y.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([X,F])=>W(X,F));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}IX.create=(T,$,J)=>{return new IX({left:T,right:$,typeName:x.ZodIntersection,...zT(J)})};class z1 extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.array)return p(J,{code:j.invalid_type,expected:o.array,received:J.parsedType}),FT;if(J.data.length<this._def.items.length)return p(J,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),FT;if(!this._def.rest&&J.data.length>this._def.items.length)p(J,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let X=[...J.data].map((F,Y)=>{let G=this._def.items[Y]||this._def.rest;if(!G)return null;return G._parse(new kJ(J,F,J.path,Y))}).filter((F)=>!!F);if(J.common.async)return Promise.all(X).then((F)=>{return g$.mergeArray($,F)});else return g$.mergeArray($,X)}get items(){return this._def.items}rest(T){return new z1({...this._def,rest:T})}}z1.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new z1({items:T,typeName:x.ZodTuple,rest:null,...zT($)})};class c8 extends DT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.object)return p(J,{code:j.invalid_type,expected:o.object,received:J.parsedType}),FT;let W=[],X=this._def.keyType,F=this._def.valueType;for(let Y in J.data)W.push({key:X._parse(new kJ(J,Y,J.path,Y)),value:F._parse(new kJ(J,J.data[Y],J.path,Y)),alwaysSet:Y in J.data});if(J.common.async)return g$.mergeObjectAsync($,W);else return g$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof DT)return new c8({keyType:T,valueType:$,typeName:x.ZodRecord,...zT(J)});return new c8({keyType:H1.create(),valueType:T,typeName:x.ZodRecord,...zT($)})}}class o8 extends DT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.map)return p(J,{code:j.invalid_type,expected:o.map,received:J.parsedType}),FT;let W=this._def.keyType,X=this._def.valueType,F=[...J.data.entries()].map(([Y,G],H)=>{return{key:W._parse(new kJ(J,Y,J.path,[H,"key"])),value:X._parse(new kJ(J,G,J.path,[H,"value"]))}});if(J.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let G of F){let H=await G.key,M=await G.value;if(H.status==="aborted"||M.status==="aborted")return FT;if(H.status==="dirty"||M.status==="dirty")$.dirty();Y.set(H.value,M.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let G of F){let{key:H,value:M}=G;if(H.status==="aborted"||M.status==="aborted")return FT;if(H.status==="dirty"||M.status==="dirty")$.dirty();Y.set(H.value,M.value)}return{status:$.value,value:Y}}}}o8.create=(T,$,J)=>{return new o8({valueType:$,keyType:T,typeName:x.ZodMap,...zT(J)})};class HW extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.set)return p(J,{code:j.invalid_type,expected:o.set,received:J.parsedType}),FT;let W=this._def;if(W.minSize!==null){if(J.data.size<W.minSize.value)p(J,{code:j.too_small,minimum:W.minSize.value,type:"set",inclusive:!0,exact:!1,message:W.minSize.message}),$.dirty()}if(W.maxSize!==null){if(J.data.size>W.maxSize.value)p(J,{code:j.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),$.dirty()}let X=this._def.valueType;function F(G){let H=new Set;for(let M of G){if(M.status==="aborted")return FT;if(M.status==="dirty")$.dirty();H.add(M.value)}return{status:$.value,value:H}}let Y=[...J.data.values()].map((G,H)=>X._parse(new kJ(J,G,J.path,H)));if(J.common.async)return Promise.all(Y).then((G)=>F(G));else return F(Y)}min(T,$){return new HW({...this._def,minSize:{value:T,message:i.toString($)}})}max(T,$){return new HW({...this._def,maxSize:{value:T,message:i.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}HW.create=(T,$)=>{return new HW({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...zT($)})};class NX extends DT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.function)return p($,{code:j.invalid_type,expected:o.function,received:$.parsedType}),FT;function J(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_arguments,argumentsError:G}})}function W(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_return_type,returnTypeError:G}})}let X={errorMap:$.common.contextualErrorMap},F=$.data;if(this._def.returns instanceof MW){let Y=this;return i$(async function(...G){let H=new DJ([]),M=await Y._def.args.parseAsync(G,X).catch((Q)=>{throw H.addIssue(J(G,Q)),H}),z=await Reflect.apply(F,this,M);return await Y._def.returns._def.type.parseAsync(z,X).catch((Q)=>{throw H.addIssue(W(z,Q)),H})})}else{let Y=this;return i$(function(...G){let H=Y._def.args.safeParse(G,X);if(!H.success)throw new DJ([J(G,H.error)]);let M=Reflect.apply(F,this,H.data),z=Y._def.returns.safeParse(M,X);if(!z.success)throw new DJ([W(M,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new NX({...this._def,args:z1.create(T).rest(O0.create())})}returns(T){return new NX({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new NX({args:T?T:z1.create([]).rest(O0.create()),returns:$||O0.create(),typeName:x.ZodFunction,...zT(J)})}}class jX extends DT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}jX.create=(T,$)=>{return new jX({getter:T,typeName:x.ZodLazy,...zT($)})};class xX extends DT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return p($,{received:$.data,code:j.invalid_literal,expected:this._def.value}),FT}return{status:"valid",value:T.data}}get value(){return this._def.value}}xX.create=(T,$)=>{return new xX({value:T,typeName:x.ZodLiteral,...zT($)})};function OG(T,$){return new U0({values:T,typeName:x.ZodEnum,...zT($)})}class U0 extends DT{constructor(){super(...arguments);BX.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{expected:RT.joinValues(J),received:$.parsedType,code:j.invalid_type}),FT}if(!h8(this,BX,"f"))AG(this,BX,new Set(this._def.values),"f");if(!h8(this,BX,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{received:$.data,code:j.invalid_enum_value,options:J}),FT}return i$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return U0.create(T,{...this._def,...$})}exclude(T,$=this._def){return U0.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}BX=new WeakMap;U0.create=OG;class bX extends DT{constructor(){super(...arguments);fX.set(this,void 0)}_parse(T){let $=RT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==o.string&&J.parsedType!==o.number){let W=RT.objectValues($);return p(J,{expected:RT.joinValues(W),received:J.parsedType,code:j.invalid_type}),FT}if(!h8(this,fX,"f"))AG(this,fX,new Set(RT.getValidEnumValues(this._def.values)),"f");if(!h8(this,fX,"f").has(T.data)){let W=RT.objectValues($);return p(J,{received:J.data,code:j.invalid_enum_value,options:W}),FT}return i$(T.data)}get enum(){return this._def.values}}fX=new WeakMap;bX.create=(T,$)=>{return new bX({values:T,typeName:x.ZodNativeEnum,...zT($)})};class MW extends DT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.promise&&$.common.async===!1)return p($,{code:j.invalid_type,expected:o.promise,received:$.parsedType}),FT;let J=$.parsedType===o.promise?$.data:Promise.resolve($.data);return i$(J.then((W)=>{return this._def.type.parseAsync(W,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}MW.create=(T,$)=>{return new MW({type:T,typeName:x.ZodPromise,...zT($)})};class dJ extends DT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=this._def.effect||null,X={addIssue:(F)=>{if(p(J,F),F.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(X.addIssue=X.addIssue.bind(X),W.type==="preprocess"){let F=W.transform(J.data,X);if(J.common.async)return Promise.resolve(F).then(async(Y)=>{if($.value==="aborted")return FT;let G=await this._def.schema._parseAsync({data:Y,path:J.path,parent:J});if(G.status==="aborted")return FT;if(G.status==="dirty")return LX(G.value);if($.value==="dirty")return LX(G.value);return G});else{if($.value==="aborted")return FT;let Y=this._def.schema._parseSync({data:F,path:J.path,parent:J});if(Y.status==="aborted")return FT;if(Y.status==="dirty")return LX(Y.value);if($.value==="dirty")return LX(Y.value);return Y}}if(W.type==="refinement"){let F=(Y)=>{let G=W.refinement(Y,X);if(J.common.async)return Promise.resolve(G);if(G instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(J.common.async===!1){let Y=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(Y.status==="aborted")return FT;if(Y.status==="dirty")$.dirty();return F(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((Y)=>{if(Y.status==="aborted")return FT;if(Y.status==="dirty")$.dirty();return F(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(W.type==="transform")if(J.common.async===!1){let F=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!FW(F))return F;let Y=W.transform(F.value,X);if(Y instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((F)=>{if(!FW(F))return F;return Promise.resolve(W.transform(F.value,X)).then((Y)=>({status:$.value,value:Y}))});RT.assertNever(W)}}dJ.create=(T,$,J)=>{return new dJ({schema:T,typeName:x.ZodEffects,effect:$,...zT(J)})};dJ.createWithPreprocess=(T,$,J)=>{return new dJ({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...zT(J)})};class SJ extends DT{_parse(T){if(this._getType(T)===o.undefined)return i$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}SJ.create=(T,$)=>{return new SJ({innerType:T,typeName:x.ZodOptional,...zT($)})};class g1 extends DT{_parse(T){if(this._getType(T)===o.null)return i$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}g1.create=(T,$)=>{return new g1({innerType:T,typeName:x.ZodNullable,...zT($)})};class PX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===o.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}PX.create=(T,$)=>{return new PX({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...zT($)})};class vX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},W=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(v8(W))return W.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new DJ(J.common.issues)},input:J.data})}});else return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new DJ(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}vX.create=(T,$)=>{return new vX({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...zT($)})};class d8 extends DT{_parse(T){if(this._getType(T)!==o.nan){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.nan,received:J.parsedType}),FT}return{status:"valid",value:T.data}}}d8.create=(T)=>{return new d8({typeName:x.ZodNaN,...zT(T)})};var fj=Symbol("zod_brand");class k6 extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;return this._def.type._parse({data:J,path:$.path,parent:$})}unwrap(){return this._def.type}}class l8 extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(X.status==="aborted")return FT;if(X.status==="dirty")return $.dirty(),LX(X.value);else return this._def.out._parseAsync({data:X.value,path:J.path,parent:J})})();else{let W=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return FT;if(W.status==="dirty")return $.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:J.path,parent:J})}}static create(T,$){return new l8({in:T,out:$,typeName:x.ZodPipeline})}}class hX extends DT{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(FW(W))W.value=Object.freeze(W.value);return W};return v8($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}hX.create=(T,$)=>{return new hX({innerType:T,typeName:x.ZodReadonly,...zT($)})};var Nj={object:$$.lazycreate},x;(function(T){T.ZodString="ZodString",T.ZodNumber="ZodNumber",T.ZodNaN="ZodNaN",T.ZodBigInt="ZodBigInt",T.ZodBoolean="ZodBoolean",T.ZodDate="ZodDate",T.ZodSymbol="ZodSymbol",T.ZodUndefined="ZodUndefined",T.ZodNull="ZodNull",T.ZodAny="ZodAny",T.ZodUnknown="ZodUnknown",T.ZodNever="ZodNever",T.ZodVoid="ZodVoid",T.ZodArray="ZodArray",T.ZodObject="ZodObject",T.ZodUnion="ZodUnion",T.ZodDiscriminatedUnion="ZodDiscriminatedUnion",T.ZodIntersection="ZodIntersection",T.ZodTuple="ZodTuple",T.ZodRecord="ZodRecord",T.ZodMap="ZodMap",T.ZodSet="ZodSet",T.ZodFunction="ZodFunction",T.ZodLazy="ZodLazy",T.ZodLiteral="ZodLiteral",T.ZodEnum="ZodEnum",T.ZodEffects="ZodEffects",T.ZodNativeEnum="ZodNativeEnum",T.ZodOptional="ZodOptional",T.ZodNullable="ZodNullable",T.ZodDefault="ZodDefault",T.ZodCatch="ZodCatch",T.ZodPromise="ZodPromise",T.ZodBranded="ZodBranded",T.ZodPipeline="ZodPipeline",T.ZodReadonly="ZodReadonly"})(x||(x={}));var Cj=H1.create,Zj=YW.create,kj=d8.create,qj=GW.create,yj=m8.create,Ij=ZX.create,jj=g8.create,xj=kX.create,bj=qX.create,Pj=p8.create,vj=O0.create,hj=M1.create,mj=u8.create,gj=oJ.create,pj=$$.create,uj=$$.strictCreate,cj=yX.create,oj=Z6.create,dj=IX.create,lj=z1.create,nj=c8.create,ij=o8.create,tj=HW.create,rj=NX.create,aj=jX.create,sj=xX.create,ej=U0.create,Tx=bX.create,$x=MW.create,Jx=dJ.create,Wx=SJ.create,Xx=g1.create,Fx=dJ.createWithPreprocess,Yx=l8.create;function UG(){return{}}function _G(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=WT(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)ET(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)ET(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)ET(J,"minItems",T.exactLength.value,T.exactLength.message,$),ET(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function DG(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"min":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"minimum",W.value,W.message,$);else ET(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;ET(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"maximum",W.value,W.message,$);else ET(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;ET(J,"maximum",W.value,W.message,$)}break;case"multipleOf":ET(J,"multipleOf",W.value,W.message,$);break}return J}function SG(){return{type:"boolean"}}function n8(T,$){return WT(T.type._def,$)}var KG=(T,$)=>{return WT(T.innerType._def,$)};function q6(T,$,J){let W=J??$.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((X,F)=>q6(T,$,X))};switch(W){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return C_(T,$)}}var C_=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let W of T.checks)switch(W.kind){case"min":ET(J,"minimum",W.value,W.message,$);break;case"max":ET(J,"maximum",W.value,W.message,$);break}return J};function VG(T,$){return{...WT(T.innerType._def,$),default:T.defaultValue()}}function EG(T,$){return $.effectStrategy==="input"?WT(T.schema._def,$):{}}function RG(T){return{type:"string",enum:Array.from(T.values)}}var Z_=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function LG(T,$){let J=[WT(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),WT(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((F)=>!!F),W=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,X=[];return J.forEach((F)=>{if(Z_(F)){if(X.push(...F.allOf),F.unevaluatedProperties===void 0)W=void 0}else{let Y=F;if("additionalProperties"in F&&F.additionalProperties===!1){let{additionalProperties:G,...H}=F;Y=H}else W=void 0;X.push(Y)}}),X.length?{allOf:X,...W}:void 0}function BG(T,$){let J=typeof T.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:J==="bigint"?"integer":J,enum:[T.value]};return{type:J==="bigint"?"integer":J,const:T.value}}var y6=void 0,qJ={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(y6===void 0)y6=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return y6},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function i8(T,$){let J={type:"string"};if(T.checks)for(let W of T.checks)switch(W.kind){case"min":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$);break;case"max":ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"email":switch($.emailStrategy){case"format:email":yJ(J,"email",W.message,$);break;case"format:idn-email":yJ(J,"idn-email",W.message,$);break;case"pattern:zod":p$(J,qJ.email,W.message,$);break}break;case"url":yJ(J,"uri",W.message,$);break;case"uuid":yJ(J,"uuid",W.message,$);break;case"regex":p$(J,W.regex,W.message,$);break;case"cuid":p$(J,qJ.cuid,W.message,$);break;case"cuid2":p$(J,qJ.cuid2,W.message,$);break;case"startsWith":p$(J,RegExp(`^${I6(W.value,$)}`),W.message,$);break;case"endsWith":p$(J,RegExp(`${I6(W.value,$)}$`),W.message,$);break;case"datetime":yJ(J,"date-time",W.message,$);break;case"date":yJ(J,"date",W.message,$);break;case"time":yJ(J,"time",W.message,$);break;case"duration":yJ(J,"duration",W.message,$);break;case"length":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$),ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"includes":{p$(J,RegExp(I6(W.value,$)),W.message,$);break}case"ip":{if(W.version!=="v6")yJ(J,"ipv4",W.message,$);if(W.version!=="v4")yJ(J,"ipv6",W.message,$);break}case"base64url":p$(J,qJ.base64url,W.message,$);break;case"jwt":p$(J,qJ.jwt,W.message,$);break;case"cidr":{if(W.version!=="v6")p$(J,qJ.ipv4Cidr,W.message,$);if(W.version!=="v4")p$(J,qJ.ipv6Cidr,W.message,$);break}case"emoji":p$(J,qJ.emoji(),W.message,$);break;case"ulid":{p$(J,qJ.ulid,W.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{yJ(J,"binary",W.message,$);break}case"contentEncoding:base64":{ET(J,"contentEncoding","base64",W.message,$);break}case"pattern:zod":{p$(J,qJ.base64,W.message,$);break}}break}case"nanoid":p$(J,qJ.nanoid,W.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((X)=>{})(W)}return J}function I6(T,$){return $.patternStrategy==="escape"?q_(T):T}var k_=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function q_(T){let $="";for(let J=0;J<T.length;J++){if(!k_.has(T[J]))$+="\\";$+=T[J]}return $}function yJ(T,$,J,W){if(T.format||T.anyOf?.some((X)=>X.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&W.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...J&&W.errorMessages&&{errorMessage:{format:J}}})}else ET(T,"format",$,J,W)}function p$(T,$,J,W){if(T.pattern||T.allOf?.some((X)=>X.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&W.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:fG($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else ET(T,"pattern",fG($,W),J,W)}function fG(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},W=J.i?T.source.toLowerCase():T.source,X="",F=!1,Y=!1,G=!1;for(let H=0;H<W.length;H++){if(F){X+=W[H],F=!1;continue}if(J.i){if(Y){if(W[H].match(/[a-z]/)){if(G)X+=W[H],X+=`${W[H-2]}-${W[H]}`.toUpperCase(),G=!1;else if(W[H+1]==="-"&&W[H+2]?.match(/[a-z]/))X+=W[H],G=!0;else X+=`${W[H]}${W[H].toUpperCase()}`;continue}}else if(W[H].match(/[a-z]/)){X+=`[${W[H]}${W[H].toUpperCase()}]`;continue}}if(J.m){if(W[H]==="^"){X+=`(^|(?<=[\r
16
+ ${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(J.family.key);let G=BT(T,W).default(F);return T.defaults.set(W.key,G),G}}}return v1(T,BT(T,J))}class w${a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,$)=>`${T}:${$}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,$){let J=this.relations.get(T),W=this.relations.get($);if(J)J.add($);else J=new Set([$]),this.relations.set(T,J);if(W)W.add(T);else W=new Set([T]),this.relations.set($,W)}deleteRelation(T,$){let J=this.relations.get(T);if(J){if(J.delete($),J.size===0)this.relations.delete(T);let W=this.relations.get($);if(W){if(W.delete(T),W.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(T,$){this.relations.set(T,new Set($));for(let J of $){let W=new Set().add(T);this.relations.set(J,W)}}replaceRelationsSafely(T,$){let J=this.relations.get(T),W=this.isAType?.(T)?T:void 0,X=W===void 0?T:void 0;if(J)for(let F of J){W??=F,X??=F;let Y=this.relations.get(F);if(Y){if(Y.size===1)this.relations.delete(F);else Y.delete(T);this.contents.delete(this.makeContentKey(W,X))}}this.relations.set(T,new Set($));for(let F of $){let Y=this.relations.get(F);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set(F,Y)}}getContentInternal(T){return this.contents.get(T)}setContent(T,$){this.contents.set(T,$)}deleteContent(T){this.contents.delete(T)}constructor(T,$){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!$?.externalStore)this.relations=new Map(T.relations?.map(([J,W])=>[J,new Set(W)])),this.contents=new Map(T.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let J=$.externalStore;if(this.has=(W,X)=>J.has(W,X),this.addRelation=(W,X)=>{J.addRelation(W,X)},this.deleteRelation=(W,X)=>{J.deleteRelation(W,X)},this.replaceRelationsSafely=(W,X)=>{J.replaceRelationsSafely(W,X)},this.replaceRelationsUnsafely=(W,X)=>{J.replaceRelationsUnsafely(W,X)},this.getRelatedKeys=(W)=>J.getRelatedKeys(W),J.getContent)this.getContentInternal=(W)=>{return J.getContent(W)},this.setContent=(W,X)=>{J.setContent(W,X)},this.deleteContent=(W)=>{J.deleteContent(W)};for(let[W,X]of T.relations??[]){let F=this.isAType?.(W)?W:void 0,Y=F===void 0?W:void 0;for(let G of X)F??=G,Y??=G,this.addRelation(F,Y)}for(let[W,X]of T.contents??[])this.setContent(W,X)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,$])=>[T,[...$]]),contents:[...this.contents.entries()]}}set(...T){let $,J,W;switch(T.length){case 1:{let X=T[0];$=X[this.a],J=X[this.b],W=void 0;break}case 2:{let X=T[0];if(typeof X==="string")[$,J]=T;else $=X[this.a],J=X[this.b],W=T[1];break}default:{$=T[0],J=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let X=this.getRelatedKey($);if(X&&X!==J)this.delete($,X)}case"1:n":{let X=this.getRelatedKey(J);if(X&&X!==$)this.delete(X,J)}break;case"n:n":}if(W){let X=this.makeContentKey($,J);this.setContent(X,W)}return this.addRelation($,J),this}delete(T,$){$=typeof $==="string"?$:T[this.b];let J=typeof T==="string"?T:T[this.a];if(J===void 0&&typeof $==="string"){let W=this.getRelatedKeys($);if(W)for(let X of W)this.delete(X,$)}if(typeof J==="string"&&$===void 0){let W=this.getRelatedKeys(J);if(W)for(let X of W)this.delete(J,X)}if(typeof J==="string"&&typeof $==="string"){this.deleteRelation(J,$);let W=this.makeContentKey(J,$);this.deleteContent(W)}return this}getRelatedKey(T){let $=this.getRelatedKeys(T);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${T}": (${[...$].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let J;for(let W of $){J=W;break}return J}}replaceRelations(T,$,J){let W=!Array.isArray($),X=W?Object.keys($):$;if(J?.reckless)this.replaceRelationsUnsafely(T,X);else this.replaceRelationsSafely(T,X);if(W)for(let F of X){let Y=this.makeContentKey(T,F),G=$[F];this.setContent(Y,G)}return this}getContent(T,$){let J=this.makeContentKey(T,$);return this.getContentInternal(J)}getRelationEntries(T){let $=T[this.a],J=T[this.b];if($!==void 0&&J===void 0){let W=this.getRelatedKeys($);if(W)return[...W].map((X)=>{return[X,this.getContent($,X)]})}if($===void 0&&J!==void 0){let W=this.getRelatedKeys(J);if(W)return[...W].map((X)=>{return[X,this.getContent(X,J)]})}return[]}has(T,$){if($)return this.getRelatedKeys(T)?.has($)??!1;return this.relations.has(T)}}class _J extends Map{deleted=new Set;source;constructor(T){super();this.source=T}get(T){if(super.has(T))return super.get(T);if(!this.deleted.has(T)&&this.source.has(T))return this.source.get(T);return}set(T,$){return this.deleted.delete(T),super.set(T,$)}hasOwn(T){return super.has(T)}has(T){return!this.deleted.has(T)&&(super.has(T)||this.source.has(T))}delete(T){return this.deleted.add(T),super.delete(T)}}var h7=(T,$,J,W)=>{let X=g(T),F={parent:X,child:null,on:X.on,loggers:X.loggers,logger:X.logger,config:X.config,atoms:new _J(X.atoms),atomsThatAreDefault:new Set(X.atomsThatAreDefault),families:new _J(X.families),joins:new _J(X.joins),operation:{open:!1},readonlySelectors:new _J(X.readonlySelectors),timelines:new _J(X.timelines),timelineTopics:new w$(X.timelineTopics.toJSON()),trackers:new Map,transactions:new _J(X.transactions),selectorAtoms:new w$(X.selectorAtoms.toJSON()),selectorGraph:new w$(X.selectorGraph.toJSON(),{makeContentKey:(...M)=>M.sort().join(":")}),selectors:new _J(X.selectors),valueMap:new _J(X.valueMap),defaults:X.defaults,disposalTraces:T.disposalTraces.copy(),molecules:new _J(X.molecules),moleculeGraph:new w$(X.moleculeGraph.toJSON(),{makeContentKey:X.moleculeGraph.makeContentKey}),moleculeData:new w$(X.moleculeData.toJSON(),{makeContentKey:X.moleculeData.makeContentKey}),moleculeJoins:new w$(X.moleculeJoins.toJSON(),{makeContentKey:X.moleculeJoins.makeContentKey}),miscResources:new _J(X.miscResources)},Y=I7(T,$),G={phase:"building",update:{type:"transaction_update",key:$,id:W,epoch:Y===void 0?Number.NaN:Y+1,updates:[],params:J,output:void 0},toolkit:{get:(...M)=>kT(H,...M),set:(...M)=>{W$(H,...M)},run:(M,z=R8())=>e0(H,M,z),find:(...M)=>JT(T,...M),json:(M)=>Q$(H,M),dispose:(...M)=>{Q0(H,...M)},env:()=>v7(H)}},H=Object.assign(F,{transactionMeta:G});return X.child=H,T.logger.info("\uD83D\uDEEB","transaction",$,"Building transaction with params:",J),H};function M6(T,$){let J={key:$.key,type:"transaction",run:(F,Y)=>{let G=h7(T,$.key,F,Y);try{let H=g(T),{toolkit:M}=G.transactionMeta,z=$.do(M,...F);return b7(z,H),z}catch(H){throw U7(W),T.logger.warn("\uD83D\uDCA5","transaction",$.key,"caught:",H),H}},install:(F)=>M6(F,$),subject:new wT},W=g(T);W.transactions.set(J.key,J);let X=n$(J);return T.on.transactionCreation.next(X),X}function KX(T){return M6(ST.STORE,T)}class m7{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new w$({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new w$({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new w$({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new w$({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new B8(100);molecules=new Map;moleculeJoins=new w$({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new w$({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new w$({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new wT,atomDisposal:new wT,selectorCreation:new wT,selectorDisposal:new wT,timelineCreation:new wT,transactionCreation:new wT,transactionApplying:new T6(null),operationClose:new wT,moleculeCreation:new wT,moleculeDisposal:new wT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new W6("warn",(T,$,J)=>!h1(J))];logger={error:(...T)=>{for(let $ of this.loggers)$.error(...T)},info:(...T)=>{for(let $ of this.loggers)$.info(...T)},warn:(...T)=>{for(let $ of this.loggers)$.warn(...T)}};constructor(T,$=null){if(this.config={...$?.config,...T},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},N$($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new w$($?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of $.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let J=new Set;for(let[,W]of $.atoms){if(J.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let X=Q$($,W),F=Y1(W);J.add(X.key),J.add(F.key)}}for(let[,W]of $.readonlySelectors)W.install(this);for(let[,W]of $.selectors){if(J.has(W.key))continue;W.install(this)}for(let[,W]of $.transactions)W.install(this);for(let[,W]of $.timelines)W.install(this)}}}var ST={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new m7({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function BT(T,$){let J,W=T;while(W!==null){switch($.type){case"atom":case"mutable_atom":J=W.atoms.get($.key);break;case"selector":J=W.selectors.get($.key);break;case"readonly_selector":J=W.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":J=W.families.get($.key);break;case"timeline":J=W.timelines.get($.key);break;case"transaction":J=W.transactions.get($.key);break}if(J)return J;W=W.child}throw new A0($,T)}function g7(T,$,J){let W=T.families.get($.key);if(W===void 0)throw new A0($,T);let X=W(J),F=g(T);if(X.family){if(N$(F))switch(X.type){case"atom":case"mutable_atom":T.on.atomCreation.next(X);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(X);break}else if(yT(F)&&F.on.transactionApplying.state===null)F.transactionMeta.update.updates.push({type:"state_creation",token:X})}return X}function p7(T,$,J){let W=_T(J),X=`${$.key}(${W})`,F=g(T),Y;switch($.type){case"atom_family":case"mutable_atom_family":Y=F.atoms.get(X);break;case"selector_family":Y=F.selectors.get(X);break;case"readonly_selector_family":Y=F.readonlySelectors.get(X);break}if(Y)return n$(Y);return Y}function JT(T,$,J){let W=p7(T,$,J);if(W)return W;let X=_T(J),F=T.molecules.get(X);if(!F&&T.config.lifespan==="immortal"){let Y=G7($,J);return T.logger.error("\u274C",Y.type,Y.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),Y}if(W=g7(T,$,J),F)g(T).moleculeData.set(X,$.key);return W}function Q0(T,...$){let J;if($.length===1)J=$[0];else{let W=$[0],X=$[1];J=JT(T,W,X)}try{BT(T,J)}catch(W){T.logger.error("\u274C",J.type,J.key,`could not be disposed because it was not found in the store "${T.config.name}".`);return}switch(J.type){case"atom":case"mutable_atom":z6(T,J);break;case"selector":case"readonly_selector":u7(T,J);break}}var I8=(T,$)=>g(T).atoms.has($),T_=(T,$)=>g(T).selectors.has($),$_=(T,$)=>g(T).readonlySelectors.has($),c7=(T,$)=>I8(T,$)||T_(T,$)||$_(T,$);var j8=(T,$)=>{return g($).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:X}])=>X!==T).map(([W,{source:X}])=>X).filter((W)=>c7($,W))};var A6=(T,$,J)=>{let W=[],X=j8(T,J);while(X.length>0){let F=X.shift();if($.has(F))continue;if($.add(F),!I8(J,F))X.push(...j8(F,J));else if(!W.includes(F))W.push(F)}return W},o7=(T,$)=>{let J=T.key,W=j8(J,$),X=new Set;return W.flatMap((F)=>I8($,F)?F:A6(F,X,$))};var d7=(T,$,J,W)=>{let X=g(W);if($.type==="atom"||$.type==="mutable_atom")X.selectorAtoms.set({selectorKey:T,atomKey:$.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${$.key}"`);else{let F=A6($.key,J,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${F.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of F)X.selectorAtoms=X.selectorAtoms.set({selectorKey:T,atomKey:Y})}J.add($.key)};var x8=(T,$,J)=>({get:(...W)=>{let X=g(J),F;if(W.length===2){let[H,M]=W;F=JT(J,H,M)}else[F]=W;let Y=BT(J,F),G=v1(J,Y);return J.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${F.key}" =`,G,")"),X.selectorGraph.set({upstreamSelectorKey:F.key,downstreamSelectorKey:T},{source:F.key}),d7(T,F,$,J),G},set:(...W)=>{let X,F;if(W.length===2)X=W[0],F=W[1];else{let H=W[0],M=W[1];F=W[2],X=JT(J,H,M)}let Y=g(J),G=BT(Y,X);k8(Y,G,F)},find:(...W)=>JT(J,...W),json:(W)=>Q$(J,W)});var OX=(T,$,J)=>{let W=g(T),X=new wT,F=new Set,{get:Y,find:G,json:H}=x8($.key,F,W),M=()=>{let _=$.get({get:Y,find:G,json:H});return UJ(g(T),$.key,_,X),F.clear(),_},z={...$,subject:X,install:(_)=>OX(_,$,J),get:M,type:"readonly_selector",...J&&{family:J}};W.readonlySelectors.set($.key,z);let A=M();T.logger.info("\u2728",z.type,z.key,"=",A);let Q={key:$.key,type:"readonly_selector"};if(J)Q.family=J;return Q};var VX=(T,$,J)=>{let W=g(T),X=new wT,F=new Set,Y=x8($.key,F,W),{find:G,get:H,json:M}=Y,z={find:G,get:H,json:M},A=(Z=$.get,k=g(T))=>{let N=Z(z);return UJ(k,$.key,N,X),F.clear(),N},_={...$,subject:X,install:(Z)=>VX(Z,$,J),get:A,set:(Z)=>{let k=g(T),N=A($.get,k),y=Z8(Z)(N);if(T.logger.info("\uD83D\uDCDD","selector",$.key,"set (",N,"->",y,")"),UJ(k,$.key,y,X),TW(k,$.key),N$(k))X.next({newValue:y,oldValue:N});$.set(Y,y)},type:"selector",...J&&{family:J}};W.selectors.set($.key,_);let D=A();T.logger.info("\u2728",_.type,_.key,"=",D);let K={key:$.key,type:"selector"};if(J)K.family=J;return K};function W1(T,$){if("set"in $){let X=VX(T,$,void 0);return T.on.selectorCreation.next(X),X}let W=OX(T,$,void 0);return T.on.selectorCreation.next(W),W}function u7(T,$){let J=g(T),{key:W}=$,X=BT(J,$);if(!X.family)T.logger.error("\u274C","selector",W,"Standalone selectors cannot be disposed.");else{if(J.molecules.get(X.family.subKey))J.moleculeData.delete(X.family.subKey,X.family.key);let Y;switch($.type){case"selector":J.selectors.delete(W),Y={key:X.family.key,type:"selector_family"},BT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break;case"readonly_selector":J.readonlySelectors.delete(W),Y={key:X.family.key,type:"readonly_selector_family"},BT(T,Y).subject.next({type:"state_disposal",subType:"selector",token:$});break}if(J.valueMap.delete(W),J.selectorAtoms.delete(W),J.selectorGraph.delete(W),T.logger.info("\uD83D\uDD25",$.type,W,"deleted"),yT(J)&&J.transactionMeta.phase==="building")J.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:$});else T.on.selectorDisposal.next($)}}function UX(T,$,J){let W={key:$.key,type:"selector_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new wT,G=Object.assign((H)=>{let M=_T(H),z={key:$.key,subKey:M},A=`${$.key}(${M})`,Q=g(T),_=VX(Q,{key:A,get:$.get(H),set:$.set(H)},z);return F.next({type:"state_creation",token:_}),_},W,{internalRoles:J,subject:F,install:(H)=>UX(H,$),default:(H)=>{return $.get(H)({get:(...z)=>kT(T,...z),find:(...z)=>JT(T,...z),json:(z)=>Q$(T,z)})}});return T.families.set($.key,G),W}function l7(T,$,J){return UX(T,{key:`${$.key}:JSON`,get:(X)=>({get:F})=>{let Y=F($,X);return J.toJson(Y)},set:(X)=>({set:F},Y)=>{F($,X,J.fromJson(Y))}},["mutable","json"])}var R$=(T)=>JSON.parse(T),_T=(T)=>JSON.stringify(T),UZ=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var n7=(T,$)=>{let J=g(T);if(J.operation.open)return J.operation.prev.get($.key);return J.valueMap.get($.key)};var O6=(T,$)=>{let J=g(T);return o7($,T).map((X)=>{let F=J.atoms.get(X);if(F===void 0)throw new Error(`Atom "${X}", a dependency of selector "${$.key}", not found in store "${T.config.name}".`);return F.subject.subscribe(`${$.type}:${$.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",$.type,$.key,"root",X,"went",Y.oldValue,"->",Y.newValue);let G=n7(J,$),H=v1(J,$);T.logger.info("\u2728",$.type,$.key,"went",G,"->",H),$.subject.next({newValue:H,oldValue:G})})})};function j$(T,$,J,W){function X(A){if(T.operation.open){let Q=T.on.operationClose.subscribe(`state subscription ${J}`,()=>{Q(),W(A)})}else W(A)}let F=BT(T,$);T.logger.info("\uD83D\uDC40",F.type,F.key,`Adding subscription "${J}"`);let Y=F.type==="selector"||F.type==="readonly_selector",G=null,H=X;if(Y)G=O6(T,F),H=(A)=>{if(G)G.length=0,G.push(...O6(T,F));X(A)};let M=F.subject.subscribe(J,H);return()=>{if(T.logger.info("\uD83D\uDE48",F.type,F.key,`Removing subscription "${J}"`),M(),G)for(let A of G)A()}}var Q6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${J}" from timeline`),F()}};var w6=(T,$,J,W)=>{let X=BT(T,$);T.logger.info("\uD83D\uDC40","transaction",$.key,`Adding subscription "${J}"`);let F=X.subject.subscribe(J,W);return()=>{T.logger.info("\uD83D\uDE48","transaction",$.key,`Removing subscription "${J}"`),F()}};class w0{Update;initializeState(T,$){let J=`*${T.key}`;$.atoms.delete(J),$.valueMap.delete(J);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,X=XJ($,{key:J,default:null},W);if($.parent?.valueMap.has(J)){let F=$.parent.valueMap.get(J);$.valueMap.set(J,F)}return X}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,$,J){let W=`tracker:${J.config.name}:${yT(J)?J.transactionMeta.update.key:"main"}:${T.key}`,X=kT(J,T);this.unsubscribeFromInnerValue=X.subscribe(W,(F)=>{W$(J,$,F)}),this.unsubscribeFromState=j$(J,T,W,(F)=>{if(F.newValue!==F.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=F.newValue.subscribe(W,(Y)=>{W$(J,$,Y)})})}updateCore(T,$,J){let W=`tracker:${J.config.name}:${yT(J)?J.transactionMeta.update.key:"main"}:${T.key}`;j$(J,$,W,({newValue:X,oldValue:F})=>{let Y=J.timelineTopics.getRelatedKey($.key);if(Y){if(J.timelines.get(Y)?.timeTraveling){let M=Q6(J,{key:Y,type:"timeline"},W,(z)=>{M(),W$(J,T,(A)=>{if(z==="redo"&&X)A.do(X);else if(z==="undo"&&F)A.undo(F);return A})});return}}let G=J.on.operationClose.subscribe(W,()=>{G();let H=kT(J,T),M=X===null?-1:H.getUpdateNumber(X),z=M-H.cacheUpdateNumber;if(X&&z===1)W$(J,T,(A)=>(A.do(X),A));else J.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${H.cacheUpdateNumber+1}, but got ${M}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,$){this.mutableState=T;let J=g($);this.latestUpdateState=this.initializeState(T,J),this.observeCore(T,this.latestUpdateState,J),this.updateCore(T,this.latestUpdateState,J),J.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),J.trackers.delete(T.key)}}}function EX(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="mutable_atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new wT,Y={...$,type:"mutable_atom",install:(M)=>{return M.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${M.config.name}"`),EX(M,$,J)},subject:F};if(J)Y.family=J;let G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let M=0,z=[];for(let A of $.effects){let Q=A({setSelf:(_)=>{W$(T,H,_)},onSet:(_)=>j$(T,H,`effect[${M}]`,_)});if(Q)z.push(Q);++M}Y.cleanup=()=>{for(let A of z)A()}}if(new w0(H,T),!J)F7(H,$,T);return H}class U6{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(T,$){let J=X1($,{key:`*${T.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=BT($,J),this.mutableAtoms=T,this.mutableAtoms.subject.subscribe(`store=${$.config.name}::tracker-atom-family`,(W)=>{let{type:X,token:F}=W;if(F.family){let Y=R$(F.family.subKey);switch(X){case"state_creation":this.trackers.set(Y,new w0(F,$));break;case"state_disposal":{let G=this.trackers.get(Y);if(G)G[Symbol.dispose](),this.trackers.delete(Y)}break}}})}}function wX(T,$,J){let W={key:$.key,type:"mutable_atom_family"},X=T.families.get($.key);if(X)T.logger.error("\u2757","mutable_atom_family",$.key,`Overwriting an existing ${cJ(X)} "${X.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let F=new wT,G=Object.assign((H)=>{let M=_T(H),z={key:$.key,subKey:M},A=`${$.key}(${M})`,Q=g(T),_={key:A,default:()=>$.default(H),toJson:$.toJson,fromJson:$.fromJson,mutable:!0};if($.effects)_.effects=$.effects(H);let D=EX(Q,_,z);return F.next({type:"state_creation",token:D}),D},W,{subject:F,install:(H)=>wX(H,$),toJson:$.toJson,fromJson:$.fromJson,internalRoles:J});return T.families.set($.key,G),l7(T,G,$),new U6(G,T),W}var _6=(T,$)=>{let J=g($),W=`${T.key}:JSON`;return J.families.get(W)};var Q$=(T,$)=>{if($.family){let W=g(T),F={key:`${$.family.key}:JSON`,type:"selector_family"},Y=BT(W,F),G=JSON.parse($.family.subKey);return JT(T,Y,G)}return{type:"selector",key:`${$.key}:JSON`}};var Y1=(T)=>{let J={type:"atom",key:`*${T.key}`};if(T.family)J.family={key:`*${T.family.key}`,subKey:T.family.subKey};return J};function L7(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function SX(T,$,J){let W=J.valueMap.get($.key),X=T.valueMap.get($.key);if(W!==X)return X;if(W===void 0)return $.default();J.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let F=$.toJson(W),Y=$.fromJson(F);return T.valueMap.set($.key,Y),new w0($,J),Y}function UJ(T,$,J,W){let X=T.valueMap.get($);if(X instanceof QX)X.use(J);if(J instanceof Promise){let F=new QX(J);return T.valueMap.set($,F),F.then((Y)=>{UJ(T,$,Y,W),W.next({newValue:Y,oldValue:F})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",$,"rejected:",Y)}),F}return T.valueMap.set($,J),J}var _7=(T,$)=>{let J=$.valueMap.get(T.key);if(T.type==="mutable_atom"&&yT($)){let{parent:W}=$;J=SX($,T,W)}return J},E7=(T,$)=>{let J=$.valueMap.get(T);if(J instanceof QX){let W=J,X=$.selectors.get(T)??$.readonlySelectors.get(T);if(X)W.use(X.get());return}if($.operation.open)$.operation.prev.set(T,J);$.valueMap.delete(T),$.logger.info("\uD83D\uDDD1","state",T,"evicted")};var B7=(T,$)=>{return g(T).atomsThatAreDefault.has($)},b8=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(J.atomsThatAreDefault).add($)},f7=(T,$)=>{let J=g(T);J.atomsThatAreDefault=new Set(g(T).atomsThatAreDefault),J.atomsThatAreDefault.delete($)};function XJ(T,$,J){T.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${T.config.name}"`);let W=g(T),X=W.atoms.get($.key);if(X&&X.type==="atom")return T.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),n$(X);let F=new wT,Y={...$,type:"atom",install:(M)=>{return M.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${M.config.name}"`),XJ(M,$,J)},subject:F};if(J)Y.family=J;let G=$.default;if($.default instanceof Function)G=$.default();W.atoms.set(Y.key,Y),b8(T,$.key),UJ(W,$.key,G,F);let H=n$(Y);if($.effects){let M=0,z=[];for(let A of $.effects){let Q=A({setSelf:(_)=>{W$(T,H,_)},onSet:(_)=>j$(T,H,`effect[${M}]`,_)});if(Q)z.push(Q);++M}Y.cleanup=()=>{for(let A of z)A()}}return H}function H7(T,$){if("mutable"in $){let X=EX(T,$,void 0);return T.on.atomCreation.next(X),X}let W=XJ(T,$,void 0);return T.on.atomCreation.next(W),W}function z6(T,$){let J=g(T),{key:W,family:X}=$,F=BT(J,$);if(!X)T.logger.error("\u274C","atom",W,"Standalone atoms cannot be disposed.");else{F.cleanup?.();let Y=T.valueMap.get(F.key),G=BT(T,{key:X.key,type:"atom_family"}),H={type:"state_disposal",subType:"atom",token:$,value:Y};G.subject.next(H);let M=yT(J);if(J.atoms.delete(W),J.valueMap.delete(W),J.selectorAtoms.delete(W),J.atomsThatAreDefault.delete(W),T.timelineTopics.delete(W),$.type==="mutable_atom"){let z=Y1($);z6(T,z),T.trackers.delete(W)}if(T.logger.info("\uD83D\uDD25","atom",W,"deleted"),M&&J.transactionMeta.phase==="building"){let z=J.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([_])=>_===F.family?.key)))J.transactionMeta.update.updates.push(H)}else T.on.atomDisposal.next($)}}class O$ extends Set{mode="record";subject=new wT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,$=0){super(T);if(T instanceof O$)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(J)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=J})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let $=new O$(T.members,T.cacheLimit);return $.cache=T.cache,$.cacheIdx=T.cacheIdx,$.cacheUpdateNumber=T.cacheUpdateNumber,$}add(T){let $=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${_T(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:${_T(T)}`);return $}parent;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new O$(this);let $=this.child._subscribe("transaction",(J)=>{this.transactionUpdates?.push(J)});try{if(T(this.child)){for(let W of this.transactionUpdates)this.doStep(W);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(J){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",J),J}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,$){return this.subject.subscribe(T,$)}subscribe(T,$){return this.subject.subscribe(T,(J)=>{$(`${this.cacheUpdateNumber}=${J}`)})}emit(T){this.subject.next(T)}doStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let X of W.split(";"))this.doStep(X)}}getUpdateNumber(T){let $=T.indexOf("=");return Number(T.substring(0,$))}do(T){let $=T.indexOf("="),J=Number(T.substring(0,$)),W=J-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let F=T.substring($+1);return this.doStep(F),this.mode="record",this.cacheUpdateNumber=J,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let F=this.cacheIdx+W;if(this.cache[F]===T)return null;this.mode="playback";let G=!1;while(!G){this.cacheIdx%=this.cacheLimit;let M=this.cache[this.cacheIdx];if(this.cacheIdx--,!M)return"OUT_OF_RANGE";this.undo(M),G=this.cacheIdx===F-1}let H=T.substring($+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=J,null}return"OUT_OF_RANGE"}undoStep(T){let $=T.indexOf(":"),J=T.substring(0,$),W=T.substring($+1);switch(J){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let X=JSON.parse(W);for(let F of X)this.add(F);break}case"tx":{let X=W.split(";");for(let F=X.length-1;F>=0;F--)this.undoStep(X[F])}}}undo(T){let $=T.indexOf("=");if(Number(T.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring($+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class _X{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(T,$){let J=this.toolkit;this.toolkit=T,$(this),this.toolkit=J}store;realm;[Symbol.dispose](){}constructor(T,$,J=ST.STORE){this.store=J,this.realm=new X6(J),this.options=T,this.defaultContent=$,this.store.miscResources.set(`join:${T.key}`,this),this.realm.allocate("root",T.key),this.toolkit={get:(...V)=>kT(J,...V),set:(...V)=>{W$(J,...V)},find:(...V)=>JT(J,...V),json:(V)=>Q$(J,V)};let W=T.between[0],X=T.between[1],F=wX(J,{key:`${T.key}/relatedKeys`,default:()=>new O$,mutable:!0,fromJson:(V)=>O$.fromJSON(V),toJson:(V)=>V.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:F};let Y=({get:V},f)=>V(F,f),G=({set:V},f,C)=>{if(!this.store.molecules.has(_T(f)))this.realm.allocate(T.key,f);V(F,f,(B)=>B.add(C)),V(F,C,(B)=>B.add(f))},H=({set:V},f,C)=>{V(F,f,(B)=>{return B.delete(C),B}),V(F,C,(B)=>{return B.delete(f),B})},M=(V,f,C)=>{let{find:B,get:m,set:$T}=V,E=B(F,f),XT=m(E);for(let n of XT){if(C.includes(n))continue;$T(F,n,(qT)=>{return qT.delete(f),qT})}$T(E,(n)=>{return n.transaction((HT)=>{HT.clear();for(let qT of C){let eT=Y(V,qT),l$=eT.has(f);if(this.relations.cardinality==="1:n"){let J1=[];for(let I of eT){if(I===f)continue;let a=Y(V,I);if(a.delete(qT),a.size===0)J1.push(I)}if(!l$&&eT.size>0)eT.clear();for(let I of J1){let a=[qT,I].sort(),CT=`"${a[0]}:${a[1]}"`;this.molecules.delete(CT)}}if(!l$)eT.add(f);HT.add(qT)}return!0}),n})},z=(V,f,C)=>{let{set:B}=V;B(F,f,(m)=>{return m.transaction(($T)=>{for(let E of C)$T.add(E);return!0}),m});for(let m of C)B(F,m,($T)=>{return $T.add(f),$T});return!0},A=(V,f,C)=>{let B=Y(V,f);return C?B.has(C):B.size>0},Q={getRelatedKeys:(V)=>Y(this.toolkit,V),addRelation:(V,f)=>{this.store.moleculeJoins.set(V,T.key),this.store.moleculeJoins.set(f,T.key),G(this.toolkit,V,f)},deleteRelation:(V,f)=>{H(this.toolkit,V,f)},replaceRelationsSafely:(V,f)=>{M(this.toolkit,V,f)},replaceRelationsUnsafely:(V,f)=>{z(this.toolkit,V,f)},has:(V,f)=>A(this.toolkit,V,f)},_,D;if($){D=X1(J,{key:`${T.key}/content`,default:$},["join","content"]);let V=({get:B},m)=>B(D,m),f=({set:B},m,$T)=>{B(D,m,$T)};_=Object.assign(Q,{getContent:(B)=>{return V(this.toolkit,B)},setContent:(B,m)=>{f(this.toolkit,B,m)},deleteContent:(B)=>{this.realm.deallocate(B)}})}else _=Q;let K=new w$(T,{externalStore:_,isAType:T.isAType,isBType:T.isBType,makeContentKey:(...V)=>{let[f,C]=V,B=V.sort(),m=`${B[0]}:${B[1]}`,$T=J.molecules.get(_T(f)),E=J.molecules.get(_T(C));if(!$T)this.realm.allocate(T.key,f);if(!E)this.realm.allocate(T.key,C);return this.realm.allocate(f,m,"all"),this.realm.claim(C,m),this.store.moleculeJoins.set(m,T.key),m}}),Z=()=>F1(J,{key:`${T.key}/singleRelatedKey`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C)return B;return null}},["join","keys"]),k=()=>{return F1(J,{key:`${T.key}/multipleRelatedKeys`,get:(V)=>({get:f})=>{let C=_6(F,J);return f(C,V).members}},["join","keys"])},N=()=>F1(J,{key:`${T.key}/singleRelatedEntry`,get:(V)=>({get:f})=>{let C=f(F,V);for(let B of C){let m=K.isAType?.(V)?V:void 0,$T=m===void 0?V:void 0;m??=B,$T??=B;let E=K.makeContentKey(m,$T),XT=f(D,E);return[B,XT]}return null}},["join","entries"]),y=()=>F1(J,{key:`${T.key}/multipleRelatedEntries`,get:(V)=>({get:f})=>{let C=_6(F,J);return f(C,V).members.map((m)=>{let $T=K.isAType?.(V)?V:void 0,E=$T===void 0?V:void 0;$T??=m,E??=m;let XT=K.makeContentKey($T,E),n=f(D,XT);return[m,n]})}},["join","entries"]);switch(T.cardinality){case"1:1":{let V=Z(),f=`${W}KeyOf${jT(X)}`,C=`${X}KeyOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=N(),E=`${W}EntryOf${jT(X)}`,XT=`${X}EntryOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m;break}case"1:n":{let V=Z(),f=k(),C=`${W}KeyOf${jT(X)}`,B=`${X}KeysOf${jT(W)}`,m={[C]:V,[B]:f},$T;if($){let E=N(),XT=y(),n=`${W}EntryOf${jT(X)}`,HT=`${X}EntriesOf${jT(W)}`,qT={[n]:E,[HT]:XT};$T=Object.assign(m,qT)}else $T=m;this.relations=K,this.states=$T;break}case"n:n":{let V=k(),f=`${W}KeysOf${jT(X)}`,C=`${X}KeysOf${jT(W)}`,B={[f]:V,[C]:V},m;if($){let $T=y(),E=`${W}EntriesOf${jT(X)}`,XT=`${X}EntriesOf${jT(W)}`,n={[E]:$T,[XT]:$T};m=Object.assign(B,n)}else m=B;this.relations=K,this.states=m}}}}function $W(T,$){let J=$.joins.get(T.key);if(J===void 0){let X=ST.STORE.joins.get(T.key);if(X===void 0)throw new Error(`Join "${T.key}" not found in store "${$.config.name}"`);J=new _X(X.options,X.defaultContent,$),$.joins.set(T.key,J)}return J}function DX(T,$,J){let W=$W(T,J),X=g(J);if(yT(X)){let{toolkit:F}=X.transactionMeta;W.transact(F,({relations:Y})=>{$(Y)})}else $(W.relations)}function N8(T,$,J){let W=$W(T,J),X;switch(T.cardinality){case"1:1":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeyOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntryOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}break}case"1:n":{let F=`${T.a}KeyOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntryOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}break}case"n:n":{let F=`${T.a}KeysOf${jT(T.b)}`,Y=`${T.b}KeysOf${jT(T.a)}`;X={get[F](){let H=W.states[F];return JT(J,H,$)},get[Y](){let H=W.states[Y];return JT(J,H,$)}};let G=`${T.a}EntriesOf${jT(T.b)}`;if(G in W.states){let H=`${T.b}EntriesOf${jT(T.a)}`;Object.assign(X,{get[G](){let M=W.states[G];return JT(J,M,$)},get[H](){let M=W.states[H];return JT(J,M,$)}})}}}return X}function A7(T,$){return $W(T,$).core.relatedKeysAtoms}function h1(T){return T.startsWith("\uD83D\uDD0D ")}class i7 extends Map{set(T,$){if(this.has(T))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:T,value:$}),this;return super.set(T,$)}clear(){throw new Error("Cannot clear an InvariantMap")}}class P8{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(T){this.key=T}static existing=new i7;static create(T,$){let J=new P8(T),{type:W,globals:X,actions:F,perspectives:Y}=$(J),G={type:W,key:T,globals:X,actions:F,perspectives:Y};return P8.existing.set(T,G),G}add(...T){switch(T[0].type){case"atom":case"mutable_atom":this.globals.push(...T);break;case"transaction":this.actions.push(...T);break;case"atom_family":case"mutable_atom_family":{let[J,W]=T;this.perspectives.push({type:"realtime_perspective",resourceAtoms:J,viewAtoms:W})}break}return this}}function yy(T){let{key:$,config:J}=T,W=P8.create($,J),{actions:X}=W;for(let F of X)P7(ST.STORE,$,F.key);return j7(ST.STORE,$,-1),W}var by=a0({key:"usersInRoomIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),D6=a0({key:"roomIndex",default:()=>new O$,mutable:!0,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),J_={enteredAtEpoch:0},RX=f8({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(T)=>typeof T==="string",isBType:(T)=>typeof T==="string"},J_),Py=C8({key:"usersInMyRoomView",get:(T)=>({find:$})=>{let J=z7(RX);return[$(J,T)]}});import{spawn as W_}from"child_process";class JW{listeners;globalListeners;handleEvent(T,...$){for(let W of this.globalListeners)W(T,...$);let J=this.listeners.get(T);if(J)for(let W of J)W(...$)}id="no_id_retrieved";emit;constructor(T){this.emit=T,this.listeners=new Map,this.globalListeners=new Set}on(T,$){let J=this.listeners.get(T);if(J)J.add($);else this.listeners.set(T,new Set([$]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,$){let J=this.listeners.get(T);if(J)if($)J.delete($);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class S6 extends JW{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(T){if(Array.isArray(T)){let[$,...J]=T;switch($){case"i":this.logger.info(...J);break;case"w":this.logger.warn(...J);break;case"e":this.logger.error(...J);break;default:return}}}constructor(T,$,J){super((W,...X)=>{let F=JSON.stringify([W,...X])+"\x03",Y=(G)=>{if(G.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",Y)};return this.process.stdin.once("error",Y),this.process.stdin.write(F),this});if(this.process=T,this.key=$,this.logger=J??{info:(...W)=>{console.info(this.id,this.key,...W)},warn:(...W)=>{console.warn(this.id,this.key,...W)},error:(...W)=>{console.error(this.id,this.key,...W)}},this.process.stdout.on("data",(W)=>{let X=W.toString();if(X==="ALIVE")return;this.unprocessedEvents.push(...X.split("\x03"));let F=this.unprocessedEvents.shift();this.incompleteData+=F??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let Y=R$(this.incompleteData);this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;Y=R$(G),this.handleEvent(...Y)}}this.incompleteData=""}catch(Y){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(Y)}}),this.process.stderr.on("data",(W)=>{let X=W.toString();this.unprocessedLogs.push(...X.split("\x03"));let F=this.unprocessedLogs.shift();this.incompleteLog+=F??"";try{let Y=R$(this.incompleteLog);this.handleLog(Y);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)Y=R$(this.incompleteLog),this.handleLog(Y)}catch(Y){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(Y),console.error("\u274C\u274C\u274C\uFE0F")}}),T.pid)this.id=T.pid.toString()}}class t7 extends JW{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...$)=>{return this.out.next($),this});this.id=T,this.in=new wT,this.out=new wT,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let T of this.disposalFunctions)T()}}class K6 extends JW{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(_T(T.map(($)=>$ instanceof O$?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...$)=>{let J=JSON.stringify([T,...$]);return this.process.stdout.write(J+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let $=T.toString();this.unprocessedEvents.push(...$.split("\x03"));let J=this.unprocessedEvents.shift();this.incompleteData+=J??"";try{let W=R$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let X=this.unprocessedEvents.shift();if(X){if(this.unprocessedEvents.length===0)this.incompleteData=X;let F=R$(X);this.handleEvent(...F)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let $=new t7(`user:${T}`);this.relays.set(T,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let J of this.relayServices){let W=J($);if(W)$.disposalFunctions.push(W)}this.on(`user:${T}`,(...J)=>{$.in.next(J)}),$.out.subscribe("socket",(J)=>{this.emit(...J)})}),this.on("user-leaves",(T)=>{let $=this.relays.get(T);if(this.off(`relay:${T}`),$)$.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var V6=H0({key:"roomArguments",default:["echo",["Hello World!"]]}),r7=C8({key:"room",get:(T)=>async({get:$,find:J})=>{let W=J(V6,T),X=$(W),[F,Y]=X,G=await new Promise((H)=>{let M=W_(F,Y,{env:process.env}),z=(A)=>{if(A.toString()==="ALIVE")M.stdout.off("data",z),H(M)};M.stdout.on("data",z)});return new S6(G,T)}});var MI=KX({key:"createRoom",do:({get:T,set:$,find:J},W,X,F)=>{let Y=F?[X,F]:[X],G=J(V6,W);$(G,Y),$(D6,(z)=>z.add(W));let H=J(r7,W);return T(H)}}),zI=KX({key:"joinRoom",do:(T,$,J,W)=>{let X={enteredAtEpoch:W};return DX(RX,(F)=>{F.set({room:$,user:J},X)},T.env().store),X}}),AI=KX({key:"leaveRoom",do:(T,$,J)=>{DX(RX,(W)=>{W.delete({room:$,user:J})},T.env().store)}}),QI=KX({key:"destroyRoom",do:(T,$)=>{DX(RX,(J)=>{J.delete({room:$})},T.env().store),T.set(D6,(J)=>(J.delete($),J))}});function E6(T,$){return $.map((J)=>{switch(J.type){case"transaction_update":{let W=E6(T,J.updates);return{...J,updates:W}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return J}}).filter((J)=>{switch(J.type){case"atom_update":case"selector_update":return T.includes(J.key);case"state_creation":case"state_disposal":return T.includes(J.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var UI=H0({key:"redactor",default:{occlude:(T)=>T}}),WW=H0({key:"unacknowledgedUpdates",default:()=>[]});var a7=H0({key:"sockets",default:null}),KI=a0({key:"socketsIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),VI=a0({key:"usersIndex",mutable:!0,default:()=>new O$,toJson:(T)=>T.toJSON(),fromJson:(T)=>O$.fromJSON(T)}),R6=f8({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(T)=>T.startsWith("user::"),isBType:(T)=>T.startsWith("socket::")});function s7(T,$,J,W){let X=$.key;return function F(){let Y=[];for(let H of $.globals){let M=H.type==="mutable_atom"?Q$(T,H):H,z=kT(T,M);Y.push(M,z)}for(let H of $.perspectives){let{viewAtoms:M,resourceAtoms:z}=H,A=JT(T,M,J),Q=kT(T,A);T.logger.info("\uD83D\uDC41","atom",z.key,`${J} can see`,{viewAtoms:M,resourceAtoms:z,userView:Q});for(let _ of Q){let D=_.type==="mutable_atom"?Q$(T,_):_,K=kT(T,D);Y.push(D,K)}}let G=N$(T)?T.transactionMeta.epoch.get(X)??null:null;W?.emit(`continuity-init:${X}`,G,Y)}}function e7(T,$,J){let W=$.key;return function X(F){T.logger.info("\uD83D\uDECE\uFE0F","continuity",W,"received",F);let{key:Y,id:G}=F,H=`tx-run:${Y}:${G}`,M=`${H}:start`,z=`${H}:end`;performance.mark(M);try{e0(T,{type:"transaction",key:Y},G)(...F.params)}catch(Q){if(Q instanceof Error)T.logger.error("\u274C","continuity",W,`failed to run transaction ${Y} from ${J} with update ${G}`,Q.message)}performance.mark(z);let A=performance.measure(H,M,z);T?.logger.info("\uD83D\uDE80","transaction",Y,G,J,A.duration)}}function TG(T,$,J,W){let X=$.key;return function F(Y){if(T.logger.info("\uD83D\uDC4D","continuity",X,`${J} acknowledged epoch ${Y}`),W[0]?.epoch===Y)W$(T,WW,J,(H)=>{return H.shift(),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,H.length,"items"),H})}}function $G(T,$,J,W){let X=$.key,F=[];for(let Y of $.actions){let G=w6(T,Y,`sync-continuity:${X}:${J}`,(H)=>{try{let M=$.globals.map((Q)=>{if(Q.type==="atom")return Q.key;return Y1(Q).key}).concat($.perspectives.flatMap((Q)=>{let{viewAtoms:_}=Q,D=JT(T,_,J);return kT(T,D).map((Z)=>{return Z.type==="mutable_atom"?"*"+Z.key:Z.key})})),z=E6(M,H.updates),A={...H,updates:z};W$(T,WW,J,(Q)=>{if(A)Q.push(A),Q.sort((_,D)=>_.epoch-D.epoch),T.logger.info("\uD83D\uDC4D","continuity",X,`${J} unacknowledged update queue now has`,Q.length,"items");return Q}),W?.emit(`tx-new:${X}`,A)}catch(M){if(M instanceof Error)T.logger.error("\u274C","continuity",X,`${J} failed to send update from transaction ${Y.key} to ${J}`,M.message)}});F.push(G)}return F}function JG(T,$,J,W){let X=$.key,F=[];for(let Y of $.perspectives){let{viewAtoms:G}=Y,H=JT(T,G,J),M=j$(T,H,`sync-continuity:${X}:${J}:perspective:${Y.resourceAtoms.key}`,({oldValue:z,newValue:A})=>{let Q=z.map((Z)=>Z.key),_=A.map((Z)=>Z.key),D=z.filter((Z)=>!_.includes(Z.key)),K=A.filter((Z)=>!Q.includes(Z.key)).flatMap((Z)=>{let k=Z.type==="mutable_atom"?Q$(T,Z):Z,N=kT(T,k);return[k,N]});if(T.logger.info("\uD83D\uDC41","atom",Y.resourceAtoms.key,`${J} has a new perspective`,{oldKeys:Q,newKeys:_,revealed:K,concealed:D}),K.length>0)W?.emit(`reveal:${X}`,K);if(D.length>0)W?.emit(`conceal:${X}`,D)});F.push(M)}return F}function tI({socket:T,store:$=ST.STORE}){return function J(W){let X=T,F=W.key,Y=N8(R6,`socket::${X.id}`,$).userKeyOfSocket,G=kT($,Y);if(!G)return $.logger.error("\u274C","continuity",F,`Tried to create a synchronizer for a socket (${X.id}) that is not connected to a user.`),()=>{};let H=N8(R6,G,$).socketKeyOfUser,M=j$($,H,`sync-continuity:${F}:${G}`,({newValue:k})=>{if($.logger.info("\uD83D\uDC4B","continuity",F,`seeing ${G} on new socket ${k}`),k===null){$.logger.warn("\u274C","continuity",F,`User (${G}) is not connected to a socket, waiting for them to reappear.`);return}let N=JT($,a7,k);X=kT($,N);for(let V of z)X?.emit(`tx-new:${F}`,V)}),z=kT($,WW,G),A=[],Q=JG($,W,G,X),_=$G($,W,G,X);A.push(...Q,..._);let D=s7($,W,G,T);X.off(`get:${F}`,D),X.on(`get:${F}`,D);let K=e7($,W,G);X.off(`tx-run:${F}`,K),X.on(`tx-run:${F}`,K);let Z=TG($,W,G,z);return X?.on(`ack:${F}`,Z),()=>{for(let k of A)k();X?.off(`ack:${F}`,Z),X?.off(`get:${F}`,D),X?.off(`tx-run:${F}`,K)}}}var XG=Symbol("Let zodToJsonSchema decide on which parser to use");var WG={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},FG=(T)=>typeof T==="string"?{...WG,name:T}:{...WG,...T};var YG=(T)=>{let $=FG(T),J=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([W,X])=>[X._def,{def:X._def,path:[...$.basePath,$.definitionPath,W],jsonSchema:void 0}]))}};function L6(T,$,J,W){if(!W?.errorMessages)return;if(J)T.errorMessage={...T.errorMessage,[$]:J}}function ET(T,$,J,W,X){T[$]=J,L6(T,$,W,X)}var RT;(function(T){T.assertEqual=(X)=>X;function $(X){}T.assertIs=$;function J(X){throw new Error}T.assertNever=J,T.arrayToEnum=(X)=>{let F={};for(let Y of X)F[Y]=Y;return F},T.getValidEnumValues=(X)=>{let F=T.objectKeys(X).filter((G)=>typeof X[X[G]]!=="number"),Y={};for(let G of F)Y[G]=X[G];return T.objectValues(Y)},T.objectValues=(X)=>{return T.objectKeys(X).map(function(F){return X[F]})},T.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let F=[];for(let Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))F.push(Y);return F},T.find=(X,F)=>{for(let Y of X)if(F(Y))return Y;return},T.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&isFinite(X)&&Math.floor(X)===X;function W(X,F=" | "){return X.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(F)}T.joinValues=W,T.jsonStringifyReplacer=(X,F)=>{if(typeof F==="bigint")return F.toString();return F}})(RT||(RT={}));var GG;(function(T){T.mergeShapes=($,J)=>{return{...$,...J}}})(GG||(GG={}));var o=RT.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),m1=(T)=>{switch(typeof T){case"undefined":return o.undefined;case"string":return o.string;case"number":return isNaN(T)?o.nan:o.number;case"boolean":return o.boolean;case"function":return o.function;case"bigint":return o.bigint;case"symbol":return o.symbol;case"object":if(Array.isArray(T))return o.array;if(T===null)return o.null;if(T.then&&typeof T.then==="function"&&T.catch&&typeof T.catch==="function")return o.promise;if(typeof Map!=="undefined"&&T instanceof Map)return o.map;if(typeof Set!=="undefined"&&T instanceof Set)return o.set;if(typeof Date!=="undefined"&&T instanceof Date)return o.date;return o.object;default:return o.unknown}},j=RT.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class DJ extends Error{get errors(){return this.issues}constructor(T){super();this.issues=[],this.addIssue=(J)=>{this.issues=[...this.issues,J]},this.addIssues=(J=[])=>{this.issues=[...this.issues,...J]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=T}format(T){let $=T||function(X){return X.message},J={_errors:[]},W=(X)=>{for(let F of X.issues)if(F.code==="invalid_union")F.unionErrors.map(W);else if(F.code==="invalid_return_type")W(F.returnTypeError);else if(F.code==="invalid_arguments")W(F.argumentsError);else if(F.path.length===0)J._errors.push($(F));else{let Y=J,G=0;while(G<F.path.length){let H=F.path[G];if(G!==F.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(F));Y=Y[H],G++}}};return W(this),J}static assert(T){if(!(T instanceof DJ))throw new Error(`Not a ZodError: ${T}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,RT.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(T=($)=>$.message){let $={},J=[];for(let W of this.issues)if(W.path.length>0)$[W.path[0]]=$[W.path[0]]||[],$[W.path[0]].push(T(W));else J.push(T(W));return{formErrors:J,fieldErrors:$}}get formErrors(){return this.flatten()}}DJ.create=(T)=>{return new DJ(T)};var CX=(T,$)=>{let J;switch(T.code){case j.invalid_type:if(T.received===o.undefined)J="Required";else J=`Expected ${T.expected}, received ${T.received}`;break;case j.invalid_literal:J=`Invalid literal value, expected ${JSON.stringify(T.expected,RT.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:J=`Unrecognized key(s) in object: ${RT.joinValues(T.keys,", ")}`;break;case j.invalid_union:J="Invalid input";break;case j.invalid_union_discriminator:J=`Invalid discriminator value. Expected ${RT.joinValues(T.options)}`;break;case j.invalid_enum_value:J=`Invalid enum value. Expected ${RT.joinValues(T.options)}, received '${T.received}'`;break;case j.invalid_arguments:J="Invalid function arguments";break;case j.invalid_return_type:J="Invalid function return type";break;case j.invalid_date:J="Invalid date";break;case j.invalid_string:if(typeof T.validation==="object")if("includes"in T.validation){if(J=`Invalid input: must include "${T.validation.includes}"`,typeof T.validation.position==="number")J=`${J} at one or more positions greater than or equal to ${T.validation.position}`}else if("startsWith"in T.validation)J=`Invalid input: must start with "${T.validation.startsWith}"`;else if("endsWith"in T.validation)J=`Invalid input: must end with "${T.validation.endsWith}"`;else RT.assertNever(T.validation);else if(T.validation!=="regex")J=`Invalid ${T.validation}`;else J="Invalid";break;case j.too_small:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at least":"more than"} ${T.minimum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at least":"over"} ${T.minimum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${T.minimum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly equal to ":T.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(T.minimum))}`;else J="Invalid input";break;case j.too_big:if(T.type==="array")J=`Array must contain ${T.exact?"exactly":T.inclusive?"at most":"less than"} ${T.maximum} element(s)`;else if(T.type==="string")J=`String must contain ${T.exact?"exactly":T.inclusive?"at most":"under"} ${T.maximum} character(s)`;else if(T.type==="number")J=`Number must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="bigint")J=`BigInt must be ${T.exact?"exactly":T.inclusive?"less than or equal to":"less than"} ${T.maximum}`;else if(T.type==="date")J=`Date must be ${T.exact?"exactly":T.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(T.maximum))}`;else J="Invalid input";break;case j.custom:J="Invalid input";break;case j.invalid_intersection_types:J="Intersection results could not be merged";break;case j.not_multiple_of:J=`Number must be a multiple of ${T.multipleOf}`;break;case j.not_finite:J="Number must be finite";break;default:J=$.defaultError,RT.assertNever(T)}return{message:J}},X_=CX;function f6(){return X_}var N6=(T)=>{let{data:$,path:J,errorMaps:W,issueData:X}=T,F=[...J,...X.path||[]],Y={...X,path:F};if(X.message!==void 0)return{...X,path:F,message:X.message};let G="",H=W.filter((M)=>!!M).slice().reverse();for(let M of H)G=M(Y,{data:$,defaultError:G}).message;return{...X,path:F,message:G}};function p(T,$){let J=f6(),W=N6({issueData:$,data:T.data,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,J,J===CX?void 0:CX].filter((X)=>!!X)});T.common.issues.push(W)}class g${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(T,$){let J=[];for(let W of $){if(W.status==="aborted")return FT;if(W.status==="dirty")T.dirty();J.push(W.value)}return{status:T.value,value:J}}static async mergeObjectAsync(T,$){let J=[];for(let W of $){let X=await W.key,F=await W.value;J.push({key:X,value:F})}return g$.mergeObjectSync(T,J)}static mergeObjectSync(T,$){let J={};for(let W of $){let{key:X,value:F}=W;if(X.status==="aborted")return FT;if(F.status==="aborted")return FT;if(X.status==="dirty")T.dirty();if(F.status==="dirty")T.dirty();if(X.value!=="__proto__"&&(typeof F.value!=="undefined"||W.alwaysSet))J[X.value]=F.value}return{status:T.value,value:J}}}var FT=Object.freeze({status:"aborted"}),LX=(T)=>({status:"dirty",value:T}),i$=(T)=>({status:"valid",value:T}),HG=(T)=>T.status==="aborted",MG=(T)=>T.status==="dirty",FW=(T)=>T.status==="valid",v8=(T)=>typeof Promise!=="undefined"&&T instanceof Promise;function h8(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)}function AG(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J}var i;(function(T){T.errToObj=($)=>typeof $==="string"?{message:$}:$||{},T.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(i||(i={}));var BX,fX;class kJ{constructor(T,$,J,W){this._cachedPath=[],this.parent=T,this.data=$,this._path=J,this._key=W}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var zG=(T,$)=>{if(FW($))return{success:!0,data:$.value};else{if(!T.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let J=new DJ(T.common.issues);return this._error=J,this._error}}}};function zT(T){if(!T)return{};let{errorMap:$,invalid_type_error:J,required_error:W,description:X}=T;if($&&(J||W))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:X};return{errorMap:(Y,G)=>{var H,M;let{message:z}=T;if(Y.code==="invalid_enum_value")return{message:z!==null&&z!==void 0?z:G.defaultError};if(typeof G.data==="undefined")return{message:(H=z!==null&&z!==void 0?z:W)!==null&&H!==void 0?H:G.defaultError};if(Y.code!=="invalid_type")return{message:G.defaultError};return{message:(M=z!==null&&z!==void 0?z:J)!==null&&M!==void 0?M:G.defaultError}},description:X}}class DT{get description(){return this._def.description}_getType(T){return m1(T.data)}_getOrReturnCtx(T,$){return $||{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}_processInputParams(T){return{status:new g$,ctx:{common:T.parent.common,data:T.data,parsedType:m1(T.data),schemaErrorMap:this._def.errorMap,path:T.path,parent:T.parent}}}_parseSync(T){let $=this._parse(T);if(v8($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(T){let $=this._parse(T);return Promise.resolve($)}parse(T,$){let J=this.safeParse(T,$);if(J.success)return J.data;throw J.error}safeParse(T,$){var J;let W={common:{issues:[],async:(J=$===null||$===void 0?void 0:$.async)!==null&&J!==void 0?J:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)},X=this._parseSync({data:T,path:W.path,parent:W});return zG(W,X)}"~validate"(T){var $,J;let W={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)};if(!this["~standard"].async)try{let X=this._parseSync({data:T,path:[],parent:W});return FW(X)?{value:X.value}:{issues:W.common.issues}}catch(X){if((J=($=X===null||X===void 0?void 0:X.message)===null||$===void 0?void 0:$.toLowerCase())===null||J===void 0?void 0:J.includes("encountered"))this["~standard"].async=!0;W.common={issues:[],async:!0}}return this._parseAsync({data:T,path:[],parent:W}).then((X)=>FW(X)?{value:X.value}:{issues:W.common.issues})}async parseAsync(T,$){let J=await this.safeParseAsync(T,$);if(J.success)return J.data;throw J.error}async safeParseAsync(T,$){let J={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:T,parsedType:m1(T)},W=this._parse({data:T,path:J.path,parent:J}),X=await(v8(W)?W:Promise.resolve(W));return zG(J,X)}refine(T,$){let J=(W)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(W);else return $};return this._refinement((W,X)=>{let F=T(W),Y=()=>X.addIssue({code:j.custom,...J(W)});if(typeof Promise!=="undefined"&&F instanceof Promise)return F.then((G)=>{if(!G)return Y(),!1;else return!0});if(!F)return Y(),!1;else return!0})}refinement(T,$){return this._refinement((J,W)=>{if(!T(J))return W.addIssue(typeof $==="function"?$(J,W):$),!1;else return!0})}_refinement(T){return new dJ({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:T}})}superRefine(T){return this._refinement(T)}constructor(T){this.spa=this.safeParseAsync,this._def=T,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return SJ.create(this,this._def)}nullable(){return g1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return oJ.create(this)}promise(){return MW.create(this,this._def)}or(T){return yX.create([this,T],this._def)}and(T){return IX.create(this,T,this._def)}transform(T){return new dJ({...zT(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:T}})}default(T){let $=typeof T==="function"?T:()=>T;return new PX({...zT(this._def),innerType:this,defaultValue:$,typeName:x.ZodDefault})}brand(){return new k6({typeName:x.ZodBranded,type:this,...zT(this._def)})}catch(T){let $=typeof T==="function"?T:()=>T;return new vX({...zT(this._def),innerType:this,catchValue:$,typeName:x.ZodCatch})}describe(T){return new this.constructor({...this._def,description:T})}pipe(T){return l8.create(this,T)}readonly(){return hX.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var F_=/^c[^\s-]{8,}$/i,Y_=/^[0-9a-z]+$/,G_=/^[0-9A-HJKMNP-TV-Z]{26}$/i,H_=/^[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,M_=/^[a-z0-9_-]{21}$/i,z_=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,A_=/^[-+]?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)?)??$/,Q_=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,w_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",B6,O_=/^(?:(?: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])$/,U_=/^(?:(?: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])$/,__=/^(([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]))$/,D_=/^(([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])$/,S_=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,K_=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,QG="((\\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])))",V_=new RegExp(`^${QG}$`);function wG(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 E_(T){return new RegExp(`^${wG(T)}$`)}function R_(T){let $=`${QG}T${wG(T)}`,J=[];if(J.push(T.local?"Z?":"Z"),T.offset)J.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${J.join("|")})`,new RegExp(`^${$}$`)}function L_(T,$){if(($==="v4"||!$)&&O_.test(T))return!0;if(($==="v6"||!$)&&__.test(T))return!0;return!1}function B_(T,$){if(!z_.test(T))return!1;try{let[J]=T.split("."),W=J.replace(/-/g,"+").replace(/_/g,"/").padEnd(J.length+(4-J.length%4)%4,"="),X=JSON.parse(atob(W));if(typeof X!=="object"||X===null)return!1;if(!X.typ||!X.alg)return!1;if($&&X.alg!==$)return!1;return!0}catch(J){return!1}}function f_(T,$){if(($==="v4"||!$)&&U_.test(T))return!0;if(($==="v6"||!$)&&D_.test(T))return!0;return!1}class H1 extends DT{_parse(T){if(this._def.coerce)T.data=String(T.data);if(this._getType(T)!==o.string){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.string,received:X.parsedType}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.length<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="max"){if(T.data.length>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),J.dirty()}else if(X.kind==="length"){let F=T.data.length>X.value,Y=T.data.length<X.value;if(F||Y){if(W=this._getOrReturnCtx(T,W),F)p(W,{code:j.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if(Y)p(W,{code:j.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});J.dirty()}}else if(X.kind==="email"){if(!Q_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"email",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="emoji"){if(!B6)B6=new RegExp(w_,"u");if(!B6.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"emoji",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="uuid"){if(!H_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"uuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="nanoid"){if(!M_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"nanoid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid"){if(!F_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cuid2"){if(!Y_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"cuid2",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ulid"){if(!G_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"ulid",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="url")try{new URL(T.data)}catch(F){W=this._getOrReturnCtx(T,W),p(W,{validation:"url",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"regex",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="trim")T.data=T.data.trim();else if(X.kind==="includes"){if(!T.data.includes(X.value,X.position))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),J.dirty()}else if(X.kind==="toLowerCase")T.data=T.data.toLowerCase();else if(X.kind==="toUpperCase")T.data=T.data.toUpperCase();else if(X.kind==="startsWith"){if(!T.data.startsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{startsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="endsWith"){if(!T.data.endsWith(X.value))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:{endsWith:X.value},message:X.message}),J.dirty()}else if(X.kind==="datetime"){if(!R_(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"datetime",message:X.message}),J.dirty()}else if(X.kind==="date"){if(!V_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"date",message:X.message}),J.dirty()}else if(X.kind==="time"){if(!E_(X).test(T.data))W=this._getOrReturnCtx(T,W),p(W,{code:j.invalid_string,validation:"time",message:X.message}),J.dirty()}else if(X.kind==="duration"){if(!A_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"duration",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="ip"){if(!L_(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"ip",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="jwt"){if(!B_(T.data,X.alg))W=this._getOrReturnCtx(T,W),p(W,{validation:"jwt",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="cidr"){if(!f_(T.data,X.version))W=this._getOrReturnCtx(T,W),p(W,{validation:"cidr",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64"){if(!S_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64",code:j.invalid_string,message:X.message}),J.dirty()}else if(X.kind==="base64url"){if(!K_.test(T.data))W=this._getOrReturnCtx(T,W),p(W,{validation:"base64url",code:j.invalid_string,message:X.message}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:T.data}}_regex(T,$,J){return this.refinement((W)=>T.test(W),{validation:$,code:j.invalid_string,...i.errToObj(J)})}_addCheck(T){return new H1({...this._def,checks:[...this._def.checks,T]})}email(T){return this._addCheck({kind:"email",...i.errToObj(T)})}url(T){return this._addCheck({kind:"url",...i.errToObj(T)})}emoji(T){return this._addCheck({kind:"emoji",...i.errToObj(T)})}uuid(T){return this._addCheck({kind:"uuid",...i.errToObj(T)})}nanoid(T){return this._addCheck({kind:"nanoid",...i.errToObj(T)})}cuid(T){return this._addCheck({kind:"cuid",...i.errToObj(T)})}cuid2(T){return this._addCheck({kind:"cuid2",...i.errToObj(T)})}ulid(T){return this._addCheck({kind:"ulid",...i.errToObj(T)})}base64(T){return this._addCheck({kind:"base64",...i.errToObj(T)})}base64url(T){return this._addCheck({kind:"base64url",...i.errToObj(T)})}jwt(T){return this._addCheck({kind:"jwt",...i.errToObj(T)})}ip(T){return this._addCheck({kind:"ip",...i.errToObj(T)})}cidr(T){return this._addCheck({kind:"cidr",...i.errToObj(T)})}datetime(T){var $,J;if(typeof T==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:T});return this._addCheck({kind:"datetime",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,offset:($=T===null||T===void 0?void 0:T.offset)!==null&&$!==void 0?$:!1,local:(J=T===null||T===void 0?void 0:T.local)!==null&&J!==void 0?J:!1,...i.errToObj(T===null||T===void 0?void 0:T.message)})}date(T){return this._addCheck({kind:"date",message:T})}time(T){if(typeof T==="string")return this._addCheck({kind:"time",precision:null,message:T});return this._addCheck({kind:"time",precision:typeof(T===null||T===void 0?void 0:T.precision)==="undefined"?null:T===null||T===void 0?void 0:T.precision,...i.errToObj(T===null||T===void 0?void 0:T.message)})}duration(T){return this._addCheck({kind:"duration",...i.errToObj(T)})}regex(T,$){return this._addCheck({kind:"regex",regex:T,...i.errToObj($)})}includes(T,$){return this._addCheck({kind:"includes",value:T,position:$===null||$===void 0?void 0:$.position,...i.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(T,$){return this._addCheck({kind:"startsWith",value:T,...i.errToObj($)})}endsWith(T,$){return this._addCheck({kind:"endsWith",value:T,...i.errToObj($)})}min(T,$){return this._addCheck({kind:"min",value:T,...i.errToObj($)})}max(T,$){return this._addCheck({kind:"max",value:T,...i.errToObj($)})}length(T,$){return this._addCheck({kind:"length",value:T,...i.errToObj($)})}nonempty(T){return this.min(1,i.errToObj(T))}trim(){return new H1({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new H1({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new H1({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((T)=>T.kind==="datetime")}get isDate(){return!!this._def.checks.find((T)=>T.kind==="date")}get isTime(){return!!this._def.checks.find((T)=>T.kind==="time")}get isDuration(){return!!this._def.checks.find((T)=>T.kind==="duration")}get isEmail(){return!!this._def.checks.find((T)=>T.kind==="email")}get isURL(){return!!this._def.checks.find((T)=>T.kind==="url")}get isEmoji(){return!!this._def.checks.find((T)=>T.kind==="emoji")}get isUUID(){return!!this._def.checks.find((T)=>T.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((T)=>T.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((T)=>T.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((T)=>T.kind==="cuid2")}get isULID(){return!!this._def.checks.find((T)=>T.kind==="ulid")}get isIP(){return!!this._def.checks.find((T)=>T.kind==="ip")}get isCIDR(){return!!this._def.checks.find((T)=>T.kind==="cidr")}get isBase64(){return!!this._def.checks.find((T)=>T.kind==="base64")}get isBase64url(){return!!this._def.checks.find((T)=>T.kind==="base64url")}get minLength(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxLength(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}H1.create=(T)=>{var $;return new H1({checks:[],typeName:x.ZodString,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};function N_(T,$){let J=(T.toString().split(".")[1]||"").length,W=($.toString().split(".")[1]||"").length,X=J>W?J:W,F=parseInt(T.toFixed(X).replace(".","")),Y=parseInt($.toFixed(X).replace(".",""));return F%Y/Math.pow(10,X)}class YW extends DT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(T){if(this._def.coerce)T.data=Number(T.data);if(this._getType(T)!==o.number){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.number,received:X.parsedType}),FT}let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="int"){if(!RT.isInteger(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.invalid_type,expected:"integer",received:"float",message:X.message}),W.dirty()}else if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(N_(T.data,X.value)!==0)J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else if(X.kind==="finite"){if(!Number.isFinite(T.data))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_finite,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new YW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new YW({...this._def,checks:[...this._def.checks,T]})}int(T){return this._addCheck({kind:"int",message:i.toString(T)})}positive(T){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}finite(T){return this._addCheck({kind:"finite",message:i.toString(T)})}safe(T){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(T)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(T)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}get isInt(){return!!this._def.checks.find((T)=>T.kind==="int"||T.kind==="multipleOf"&&RT.isInteger(T.value))}get isFinite(){let T=null,$=null;for(let J of this._def.checks)if(J.kind==="finite"||J.kind==="int"||J.kind==="multipleOf")return!0;else if(J.kind==="min"){if($===null||J.value>$)$=J.value}else if(J.kind==="max"){if(T===null||J.value<T)T=J.value}return Number.isFinite($)&&Number.isFinite(T)}}YW.create=(T)=>{return new YW({checks:[],typeName:x.ZodNumber,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class GW extends DT{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(T){if(this._def.coerce)try{T.data=BigInt(T.data)}catch(X){return this._getInvalidInput(T)}if(this._getType(T)!==o.bigint)return this._getInvalidInput(T);let J=void 0,W=new g$;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?T.data<X.value:T.data<=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="max"){if(X.inclusive?T.data>X.value:T.data>=X.value)J=this._getOrReturnCtx(T,J),p(J,{code:j.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),W.dirty()}else if(X.kind==="multipleOf"){if(T.data%X.value!==BigInt(0))J=this._getOrReturnCtx(T,J),p(J,{code:j.not_multiple_of,multipleOf:X.value,message:X.message}),W.dirty()}else RT.assertNever(X);return{status:W.value,value:T.data}}_getInvalidInput(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.bigint,received:$.parsedType}),FT}gte(T,$){return this.setLimit("min",T,!0,i.toString($))}gt(T,$){return this.setLimit("min",T,!1,i.toString($))}lte(T,$){return this.setLimit("max",T,!0,i.toString($))}lt(T,$){return this.setLimit("max",T,!1,i.toString($))}setLimit(T,$,J,W){return new GW({...this._def,checks:[...this._def.checks,{kind:T,value:$,inclusive:J,message:i.toString(W)}]})}_addCheck(T){return new GW({...this._def,checks:[...this._def.checks,T]})}positive(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(T)})}negative(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(T)})}nonpositive(T){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(T)})}nonnegative(T){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(T)})}multipleOf(T,$){return this._addCheck({kind:"multipleOf",value:T,message:i.toString($)})}get minValue(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T}get maxValue(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T}}GW.create=(T)=>{var $;return new GW({checks:[],typeName:x.ZodBigInt,coerce:($=T===null||T===void 0?void 0:T.coerce)!==null&&$!==void 0?$:!1,...zT(T)})};class m8 extends DT{_parse(T){if(this._def.coerce)T.data=Boolean(T.data);if(this._getType(T)!==o.boolean){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.boolean,received:J.parsedType}),FT}return i$(T.data)}}m8.create=(T)=>{return new m8({typeName:x.ZodBoolean,coerce:(T===null||T===void 0?void 0:T.coerce)||!1,...zT(T)})};class ZX extends DT{_parse(T){if(this._def.coerce)T.data=new Date(T.data);if(this._getType(T)!==o.date){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_type,expected:o.date,received:X.parsedType}),FT}if(isNaN(T.data.getTime())){let X=this._getOrReturnCtx(T);return p(X,{code:j.invalid_date}),FT}let J=new g$,W=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(T.data.getTime()<X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),J.dirty()}else if(X.kind==="max"){if(T.data.getTime()>X.value)W=this._getOrReturnCtx(T,W),p(W,{code:j.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),J.dirty()}else RT.assertNever(X);return{status:J.value,value:new Date(T.data.getTime())}}_addCheck(T){return new ZX({...this._def,checks:[...this._def.checks,T]})}min(T,$){return this._addCheck({kind:"min",value:T.getTime(),message:i.toString($)})}max(T,$){return this._addCheck({kind:"max",value:T.getTime(),message:i.toString($)})}get minDate(){let T=null;for(let $ of this._def.checks)if($.kind==="min"){if(T===null||$.value>T)T=$.value}return T!=null?new Date(T):null}get maxDate(){let T=null;for(let $ of this._def.checks)if($.kind==="max"){if(T===null||$.value<T)T=$.value}return T!=null?new Date(T):null}}ZX.create=(T)=>{return new ZX({checks:[],coerce:(T===null||T===void 0?void 0:T.coerce)||!1,typeName:x.ZodDate,...zT(T)})};class g8 extends DT{_parse(T){if(this._getType(T)!==o.symbol){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.symbol,received:J.parsedType}),FT}return i$(T.data)}}g8.create=(T)=>{return new g8({typeName:x.ZodSymbol,...zT(T)})};class kX extends DT{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.undefined,received:J.parsedType}),FT}return i$(T.data)}}kX.create=(T)=>{return new kX({typeName:x.ZodUndefined,...zT(T)})};class qX extends DT{_parse(T){if(this._getType(T)!==o.null){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.null,received:J.parsedType}),FT}return i$(T.data)}}qX.create=(T)=>{return new qX({typeName:x.ZodNull,...zT(T)})};class p8 extends DT{constructor(){super(...arguments);this._any=!0}_parse(T){return i$(T.data)}}p8.create=(T)=>{return new p8({typeName:x.ZodAny,...zT(T)})};class O0 extends DT{constructor(){super(...arguments);this._unknown=!0}_parse(T){return i$(T.data)}}O0.create=(T)=>{return new O0({typeName:x.ZodUnknown,...zT(T)})};class M1 extends DT{_parse(T){let $=this._getOrReturnCtx(T);return p($,{code:j.invalid_type,expected:o.never,received:$.parsedType}),FT}}M1.create=(T)=>{return new M1({typeName:x.ZodNever,...zT(T)})};class u8 extends DT{_parse(T){if(this._getType(T)!==o.undefined){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.void,received:J.parsedType}),FT}return i$(T.data)}}u8.create=(T)=>{return new u8({typeName:x.ZodVoid,...zT(T)})};class oJ extends DT{_parse(T){let{ctx:$,status:J}=this._processInputParams(T),W=this._def;if($.parsedType!==o.array)return p($,{code:j.invalid_type,expected:o.array,received:$.parsedType}),FT;if(W.exactLength!==null){let F=$.data.length>W.exactLength.value,Y=$.data.length<W.exactLength.value;if(F||Y)p($,{code:F?j.too_big:j.too_small,minimum:Y?W.exactLength.value:void 0,maximum:F?W.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:W.exactLength.message}),J.dirty()}if(W.minLength!==null){if($.data.length<W.minLength.value)p($,{code:j.too_small,minimum:W.minLength.value,type:"array",inclusive:!0,exact:!1,message:W.minLength.message}),J.dirty()}if(W.maxLength!==null){if($.data.length>W.maxLength.value)p($,{code:j.too_big,maximum:W.maxLength.value,type:"array",inclusive:!0,exact:!1,message:W.maxLength.message}),J.dirty()}if($.common.async)return Promise.all([...$.data].map((F,Y)=>{return W.type._parseAsync(new kJ($,F,$.path,Y))})).then((F)=>{return g$.mergeArray(J,F)});let X=[...$.data].map((F,Y)=>{return W.type._parseSync(new kJ($,F,$.path,Y))});return g$.mergeArray(J,X)}get element(){return this._def.type}min(T,$){return new oJ({...this._def,minLength:{value:T,message:i.toString($)}})}max(T,$){return new oJ({...this._def,maxLength:{value:T,message:i.toString($)}})}length(T,$){return new oJ({...this._def,exactLength:{value:T,message:i.toString($)}})}nonempty(T){return this.min(1,T)}}oJ.create=(T,$)=>{return new oJ({type:T,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...zT($)})};function XW(T){if(T instanceof $$){let $={};for(let J in T.shape){let W=T.shape[J];$[J]=SJ.create(XW(W))}return new $$({...T._def,shape:()=>$})}else if(T instanceof oJ)return new oJ({...T._def,type:XW(T.element)});else if(T instanceof SJ)return SJ.create(XW(T.unwrap()));else if(T instanceof g1)return g1.create(XW(T.unwrap()));else if(T instanceof z1)return z1.create(T.items.map(($)=>XW($)));else return T}class $$ extends DT{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let T=this._def.shape(),$=RT.objectKeys(T);return this._cached={shape:T,keys:$}}_parse(T){if(this._getType(T)!==o.object){let H=this._getOrReturnCtx(T);return p(H,{code:j.invalid_type,expected:o.object,received:H.parsedType}),FT}let{status:J,ctx:W}=this._processInputParams(T),{shape:X,keys:F}=this._getCached(),Y=[];if(!(this._def.catchall instanceof M1&&this._def.unknownKeys==="strip")){for(let H in W.data)if(!F.includes(H))Y.push(H)}let G=[];for(let H of F){let M=X[H],z=W.data[H];G.push({key:{status:"valid",value:H},value:M._parse(new kJ(W,z,W.path,H)),alwaysSet:H in W.data})}if(this._def.catchall instanceof M1){let H=this._def.unknownKeys;if(H==="passthrough")for(let M of Y)G.push({key:{status:"valid",value:M},value:{status:"valid",value:W.data[M]}});else if(H==="strict"){if(Y.length>0)p(W,{code:j.unrecognized_keys,keys:Y}),J.dirty()}else if(H==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let M of Y){let z=W.data[M];G.push({key:{status:"valid",value:M},value:H._parse(new kJ(W,z,W.path,M)),alwaysSet:M in W.data})}}if(W.common.async)return Promise.resolve().then(async()=>{let H=[];for(let M of G){let z=await M.key,A=await M.value;H.push({key:z,value:A,alwaysSet:M.alwaysSet})}return H}).then((H)=>{return g$.mergeObjectSync(J,H)});else return g$.mergeObjectSync(J,G)}get shape(){return this._def.shape()}strict(T){return i.errToObj,new $$({...this._def,unknownKeys:"strict",...T!==void 0?{errorMap:($,J)=>{var W,X,F,Y;let G=(F=(X=(W=this._def).errorMap)===null||X===void 0?void 0:X.call(W,$,J).message)!==null&&F!==void 0?F:J.defaultError;if($.code==="unrecognized_keys")return{message:(Y=i.errToObj(T).message)!==null&&Y!==void 0?Y:G};return{message:G}}}:{}})}strip(){return new $$({...this._def,unknownKeys:"strip"})}passthrough(){return new $$({...this._def,unknownKeys:"passthrough"})}extend(T){return new $$({...this._def,shape:()=>({...this._def.shape(),...T})})}merge(T){return new $$({unknownKeys:T._def.unknownKeys,catchall:T._def.catchall,shape:()=>({...this._def.shape(),...T._def.shape()}),typeName:x.ZodObject})}setKey(T,$){return this.augment({[T]:$})}catchall(T){return new $$({...this._def,catchall:T})}pick(T){let $={};return RT.objectKeys(T).forEach((J)=>{if(T[J]&&this.shape[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}omit(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(!T[J])$[J]=this.shape[J]}),new $$({...this._def,shape:()=>$})}deepPartial(){return XW(this)}partial(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{let W=this.shape[J];if(T&&!T[J])$[J]=W;else $[J]=W.optional()}),new $$({...this._def,shape:()=>$})}required(T){let $={};return RT.objectKeys(this.shape).forEach((J)=>{if(T&&!T[J])$[J]=this.shape[J];else{let X=this.shape[J];while(X instanceof SJ)X=X._def.innerType;$[J]=X}}),new $$({...this._def,shape:()=>$})}keyof(){return OG(RT.objectKeys(this.shape))}}$$.create=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strip",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};$$.strictCreate=(T,$)=>{return new $$({shape:()=>T,unknownKeys:"strict",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};$$.lazycreate=(T,$)=>{return new $$({shape:T,unknownKeys:"strip",catchall:M1.create(),typeName:x.ZodObject,...zT($)})};class yX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=this._def.options;function W(X){for(let Y of X)if(Y.result.status==="valid")return Y.result;for(let Y of X)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let F=X.map((Y)=>new DJ(Y.ctx.common.issues));return p($,{code:j.invalid_union,unionErrors:F}),FT}if($.common.async)return Promise.all(J.map(async(X)=>{let F={...$,common:{...$.common,issues:[]},parent:null};return{result:await X._parseAsync({data:$.data,path:$.path,parent:F}),ctx:F}})).then(W);else{let X=void 0,F=[];for(let G of J){let H={...$,common:{...$.common,issues:[]},parent:null},M=G._parseSync({data:$.data,path:$.path,parent:H});if(M.status==="valid")return M;else if(M.status==="dirty"&&!X)X={result:M,ctx:H};if(H.common.issues.length)F.push(H.common.issues)}if(X)return $.common.issues.push(...X.ctx.common.issues),X.result;let Y=F.map((G)=>new DJ(G));return p($,{code:j.invalid_union,unionErrors:Y}),FT}}get options(){return this._def.options}}yX.create=(T,$)=>{return new yX({options:T,typeName:x.ZodUnion,...zT($)})};var G1=(T)=>{if(T instanceof jX)return G1(T.schema);else if(T instanceof dJ)return G1(T.innerType());else if(T instanceof xX)return[T.value];else if(T instanceof U0)return T.options;else if(T instanceof bX)return RT.objectValues(T.enum);else if(T instanceof PX)return G1(T._def.innerType);else if(T instanceof kX)return[void 0];else if(T instanceof qX)return[null];else if(T instanceof SJ)return[void 0,...G1(T.unwrap())];else if(T instanceof g1)return[null,...G1(T.unwrap())];else if(T instanceof k6)return G1(T.unwrap());else if(T instanceof hX)return G1(T.unwrap());else if(T instanceof vX)return G1(T._def.innerType);else return[]};class Z6 extends DT{_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.object)return p($,{code:j.invalid_type,expected:o.object,received:$.parsedType}),FT;let J=this.discriminator,W=$.data[J],X=this.optionsMap.get(W);if(!X)return p($,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[J]}),FT;if($.common.async)return X._parseAsync({data:$.data,path:$.path,parent:$});else return X._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(T,$,J){let W=new Map;for(let X of $){let F=G1(X.shape[T]);if(!F.length)throw new Error(`A discriminator value for key \`${T}\` could not be extracted from all schema options`);for(let Y of F){if(W.has(Y))throw new Error(`Discriminator property ${String(T)} has duplicate value ${String(Y)}`);W.set(Y,X)}}return new Z6({typeName:x.ZodDiscriminatedUnion,discriminator:T,options:$,optionsMap:W,...zT(J)})}}function C6(T,$){let J=m1(T),W=m1($);if(T===$)return{valid:!0,data:T};else if(J===o.object&&W===o.object){let X=RT.objectKeys($),F=RT.objectKeys(T).filter((G)=>X.indexOf(G)!==-1),Y={...T,...$};for(let G of F){let H=C6(T[G],$[G]);if(!H.valid)return{valid:!1};Y[G]=H.data}return{valid:!0,data:Y}}else if(J===o.array&&W===o.array){if(T.length!==$.length)return{valid:!1};let X=[];for(let F=0;F<T.length;F++){let Y=T[F],G=$[F],H=C6(Y,G);if(!H.valid)return{valid:!1};X.push(H.data)}return{valid:!0,data:X}}else if(J===o.date&&W===o.date&&+T===+$)return{valid:!0,data:T};else return{valid:!1}}class IX extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=(X,F)=>{if(HG(X)||HG(F))return FT;let Y=C6(X.value,F.value);if(!Y.valid)return p(J,{code:j.invalid_intersection_types}),FT;if(MG(X)||MG(F))$.dirty();return{status:$.value,value:Y.data}};if(J.common.async)return Promise.all([this._def.left._parseAsync({data:J.data,path:J.path,parent:J}),this._def.right._parseAsync({data:J.data,path:J.path,parent:J})]).then(([X,F])=>W(X,F));else return W(this._def.left._parseSync({data:J.data,path:J.path,parent:J}),this._def.right._parseSync({data:J.data,path:J.path,parent:J}))}}IX.create=(T,$,J)=>{return new IX({left:T,right:$,typeName:x.ZodIntersection,...zT(J)})};class z1 extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.array)return p(J,{code:j.invalid_type,expected:o.array,received:J.parsedType}),FT;if(J.data.length<this._def.items.length)return p(J,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),FT;if(!this._def.rest&&J.data.length>this._def.items.length)p(J,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let X=[...J.data].map((F,Y)=>{let G=this._def.items[Y]||this._def.rest;if(!G)return null;return G._parse(new kJ(J,F,J.path,Y))}).filter((F)=>!!F);if(J.common.async)return Promise.all(X).then((F)=>{return g$.mergeArray($,F)});else return g$.mergeArray($,X)}get items(){return this._def.items}rest(T){return new z1({...this._def,rest:T})}}z1.create=(T,$)=>{if(!Array.isArray(T))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new z1({items:T,typeName:x.ZodTuple,rest:null,...zT($)})};class c8 extends DT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.object)return p(J,{code:j.invalid_type,expected:o.object,received:J.parsedType}),FT;let W=[],X=this._def.keyType,F=this._def.valueType;for(let Y in J.data)W.push({key:X._parse(new kJ(J,Y,J.path,Y)),value:F._parse(new kJ(J,J.data[Y],J.path,Y)),alwaysSet:Y in J.data});if(J.common.async)return g$.mergeObjectAsync($,W);else return g$.mergeObjectSync($,W)}get element(){return this._def.valueType}static create(T,$,J){if($ instanceof DT)return new c8({keyType:T,valueType:$,typeName:x.ZodRecord,...zT(J)});return new c8({keyType:H1.create(),valueType:T,typeName:x.ZodRecord,...zT($)})}}class o8 extends DT{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.map)return p(J,{code:j.invalid_type,expected:o.map,received:J.parsedType}),FT;let W=this._def.keyType,X=this._def.valueType,F=[...J.data.entries()].map(([Y,G],H)=>{return{key:W._parse(new kJ(J,Y,J.path,[H,"key"])),value:X._parse(new kJ(J,G,J.path,[H,"value"]))}});if(J.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let G of F){let H=await G.key,M=await G.value;if(H.status==="aborted"||M.status==="aborted")return FT;if(H.status==="dirty"||M.status==="dirty")$.dirty();Y.set(H.value,M.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let G of F){let{key:H,value:M}=G;if(H.status==="aborted"||M.status==="aborted")return FT;if(H.status==="dirty"||M.status==="dirty")$.dirty();Y.set(H.value,M.value)}return{status:$.value,value:Y}}}}o8.create=(T,$,J)=>{return new o8({valueType:$,keyType:T,typeName:x.ZodMap,...zT(J)})};class HW extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.parsedType!==o.set)return p(J,{code:j.invalid_type,expected:o.set,received:J.parsedType}),FT;let W=this._def;if(W.minSize!==null){if(J.data.size<W.minSize.value)p(J,{code:j.too_small,minimum:W.minSize.value,type:"set",inclusive:!0,exact:!1,message:W.minSize.message}),$.dirty()}if(W.maxSize!==null){if(J.data.size>W.maxSize.value)p(J,{code:j.too_big,maximum:W.maxSize.value,type:"set",inclusive:!0,exact:!1,message:W.maxSize.message}),$.dirty()}let X=this._def.valueType;function F(G){let H=new Set;for(let M of G){if(M.status==="aborted")return FT;if(M.status==="dirty")$.dirty();H.add(M.value)}return{status:$.value,value:H}}let Y=[...J.data.values()].map((G,H)=>X._parse(new kJ(J,G,J.path,H)));if(J.common.async)return Promise.all(Y).then((G)=>F(G));else return F(Y)}min(T,$){return new HW({...this._def,minSize:{value:T,message:i.toString($)}})}max(T,$){return new HW({...this._def,maxSize:{value:T,message:i.toString($)}})}size(T,$){return this.min(T,$).max(T,$)}nonempty(T){return this.min(1,T)}}HW.create=(T,$)=>{return new HW({valueType:T,minSize:null,maxSize:null,typeName:x.ZodSet,...zT($)})};class NX extends DT{constructor(){super(...arguments);this.validate=this.implement}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.function)return p($,{code:j.invalid_type,expected:o.function,received:$.parsedType}),FT;function J(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_arguments,argumentsError:G}})}function W(Y,G){return N6({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f6(),CX].filter((H)=>!!H),issueData:{code:j.invalid_return_type,returnTypeError:G}})}let X={errorMap:$.common.contextualErrorMap},F=$.data;if(this._def.returns instanceof MW){let Y=this;return i$(async function(...G){let H=new DJ([]),M=await Y._def.args.parseAsync(G,X).catch((Q)=>{throw H.addIssue(J(G,Q)),H}),z=await Reflect.apply(F,this,M);return await Y._def.returns._def.type.parseAsync(z,X).catch((Q)=>{throw H.addIssue(W(z,Q)),H})})}else{let Y=this;return i$(function(...G){let H=Y._def.args.safeParse(G,X);if(!H.success)throw new DJ([J(G,H.error)]);let M=Reflect.apply(F,this,H.data),z=Y._def.returns.safeParse(M,X);if(!z.success)throw new DJ([W(M,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...T){return new NX({...this._def,args:z1.create(T).rest(O0.create())})}returns(T){return new NX({...this._def,returns:T})}implement(T){return this.parse(T)}strictImplement(T){return this.parse(T)}static create(T,$,J){return new NX({args:T?T:z1.create([]).rest(O0.create()),returns:$||O0.create(),typeName:x.ZodFunction,...zT(J)})}}class jX extends DT{get schema(){return this._def.getter()}_parse(T){let{ctx:$}=this._processInputParams(T);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}jX.create=(T,$)=>{return new jX({getter:T,typeName:x.ZodLazy,...zT($)})};class xX extends DT{_parse(T){if(T.data!==this._def.value){let $=this._getOrReturnCtx(T);return p($,{received:$.data,code:j.invalid_literal,expected:this._def.value}),FT}return{status:"valid",value:T.data}}get value(){return this._def.value}}xX.create=(T,$)=>{return new xX({value:T,typeName:x.ZodLiteral,...zT($)})};function OG(T,$){return new U0({values:T,typeName:x.ZodEnum,...zT($)})}class U0 extends DT{constructor(){super(...arguments);BX.set(this,void 0)}_parse(T){if(typeof T.data!=="string"){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{expected:RT.joinValues(J),received:$.parsedType,code:j.invalid_type}),FT}if(!h8(this,BX,"f"))AG(this,BX,new Set(this._def.values),"f");if(!h8(this,BX,"f").has(T.data)){let $=this._getOrReturnCtx(T),J=this._def.values;return p($,{received:$.data,code:j.invalid_enum_value,options:J}),FT}return i$(T.data)}get options(){return this._def.values}get enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Values(){let T={};for(let $ of this._def.values)T[$]=$;return T}get Enum(){let T={};for(let $ of this._def.values)T[$]=$;return T}extract(T,$=this._def){return U0.create(T,{...this._def,...$})}exclude(T,$=this._def){return U0.create(this.options.filter((J)=>!T.includes(J)),{...this._def,...$})}}BX=new WeakMap;U0.create=OG;class bX extends DT{constructor(){super(...arguments);fX.set(this,void 0)}_parse(T){let $=RT.getValidEnumValues(this._def.values),J=this._getOrReturnCtx(T);if(J.parsedType!==o.string&&J.parsedType!==o.number){let W=RT.objectValues($);return p(J,{expected:RT.joinValues(W),received:J.parsedType,code:j.invalid_type}),FT}if(!h8(this,fX,"f"))AG(this,fX,new Set(RT.getValidEnumValues(this._def.values)),"f");if(!h8(this,fX,"f").has(T.data)){let W=RT.objectValues($);return p(J,{received:J.data,code:j.invalid_enum_value,options:W}),FT}return i$(T.data)}get enum(){return this._def.values}}fX=new WeakMap;bX.create=(T,$)=>{return new bX({values:T,typeName:x.ZodNativeEnum,...zT($)})};class MW extends DT{unwrap(){return this._def.type}_parse(T){let{ctx:$}=this._processInputParams(T);if($.parsedType!==o.promise&&$.common.async===!1)return p($,{code:j.invalid_type,expected:o.promise,received:$.parsedType}),FT;let J=$.parsedType===o.promise?$.data:Promise.resolve($.data);return i$(J.then((W)=>{return this._def.type.parseAsync(W,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}MW.create=(T,$)=>{return new MW({type:T,typeName:x.ZodPromise,...zT($)})};class dJ extends DT{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(T){let{status:$,ctx:J}=this._processInputParams(T),W=this._def.effect||null,X={addIssue:(F)=>{if(p(J,F),F.fatal)$.abort();else $.dirty()},get path(){return J.path}};if(X.addIssue=X.addIssue.bind(X),W.type==="preprocess"){let F=W.transform(J.data,X);if(J.common.async)return Promise.resolve(F).then(async(Y)=>{if($.value==="aborted")return FT;let G=await this._def.schema._parseAsync({data:Y,path:J.path,parent:J});if(G.status==="aborted")return FT;if(G.status==="dirty")return LX(G.value);if($.value==="dirty")return LX(G.value);return G});else{if($.value==="aborted")return FT;let Y=this._def.schema._parseSync({data:F,path:J.path,parent:J});if(Y.status==="aborted")return FT;if(Y.status==="dirty")return LX(Y.value);if($.value==="dirty")return LX(Y.value);return Y}}if(W.type==="refinement"){let F=(Y)=>{let G=W.refinement(Y,X);if(J.common.async)return Promise.resolve(G);if(G instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(J.common.async===!1){let Y=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(Y.status==="aborted")return FT;if(Y.status==="dirty")$.dirty();return F(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((Y)=>{if(Y.status==="aborted")return FT;if(Y.status==="dirty")$.dirty();return F(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(W.type==="transform")if(J.common.async===!1){let F=this._def.schema._parseSync({data:J.data,path:J.path,parent:J});if(!FW(F))return F;let Y=W.transform(F.value,X);if(Y instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:J.data,path:J.path,parent:J}).then((F)=>{if(!FW(F))return F;return Promise.resolve(W.transform(F.value,X)).then((Y)=>({status:$.value,value:Y}))});RT.assertNever(W)}}dJ.create=(T,$,J)=>{return new dJ({schema:T,typeName:x.ZodEffects,effect:$,...zT(J)})};dJ.createWithPreprocess=(T,$,J)=>{return new dJ({schema:$,effect:{type:"preprocess",transform:T},typeName:x.ZodEffects,...zT(J)})};class SJ extends DT{_parse(T){if(this._getType(T)===o.undefined)return i$(void 0);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}SJ.create=(T,$)=>{return new SJ({innerType:T,typeName:x.ZodOptional,...zT($)})};class g1 extends DT{_parse(T){if(this._getType(T)===o.null)return i$(null);return this._def.innerType._parse(T)}unwrap(){return this._def.innerType}}g1.create=(T,$)=>{return new g1({innerType:T,typeName:x.ZodNullable,...zT($)})};class PX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;if($.parsedType===o.undefined)J=this._def.defaultValue();return this._def.innerType._parse({data:J,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}PX.create=(T,$)=>{return new PX({innerType:T,typeName:x.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...zT($)})};class vX extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J={...$,common:{...$.common,issues:[]}},W=this._def.innerType._parse({data:J.data,path:J.path,parent:{...J}});if(v8(W))return W.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new DJ(J.common.issues)},input:J.data})}});else return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new DJ(J.common.issues)},input:J.data})}}removeCatch(){return this._def.innerType}}vX.create=(T,$)=>{return new vX({innerType:T,typeName:x.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...zT($)})};class d8 extends DT{_parse(T){if(this._getType(T)!==o.nan){let J=this._getOrReturnCtx(T);return p(J,{code:j.invalid_type,expected:o.nan,received:J.parsedType}),FT}return{status:"valid",value:T.data}}}d8.create=(T)=>{return new d8({typeName:x.ZodNaN,...zT(T)})};var fj=Symbol("zod_brand");class k6 extends DT{_parse(T){let{ctx:$}=this._processInputParams(T),J=$.data;return this._def.type._parse({data:J,path:$.path,parent:$})}unwrap(){return this._def.type}}class l8 extends DT{_parse(T){let{status:$,ctx:J}=this._processInputParams(T);if(J.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:J.data,path:J.path,parent:J});if(X.status==="aborted")return FT;if(X.status==="dirty")return $.dirty(),LX(X.value);else return this._def.out._parseAsync({data:X.value,path:J.path,parent:J})})();else{let W=this._def.in._parseSync({data:J.data,path:J.path,parent:J});if(W.status==="aborted")return FT;if(W.status==="dirty")return $.dirty(),{status:"dirty",value:W.value};else return this._def.out._parseSync({data:W.value,path:J.path,parent:J})}}static create(T,$){return new l8({in:T,out:$,typeName:x.ZodPipeline})}}class hX extends DT{_parse(T){let $=this._def.innerType._parse(T),J=(W)=>{if(FW(W))W.value=Object.freeze(W.value);return W};return v8($)?$.then((W)=>J(W)):J($)}unwrap(){return this._def.innerType}}hX.create=(T,$)=>{return new hX({innerType:T,typeName:x.ZodReadonly,...zT($)})};var Nj={object:$$.lazycreate},x;(function(T){T.ZodString="ZodString",T.ZodNumber="ZodNumber",T.ZodNaN="ZodNaN",T.ZodBigInt="ZodBigInt",T.ZodBoolean="ZodBoolean",T.ZodDate="ZodDate",T.ZodSymbol="ZodSymbol",T.ZodUndefined="ZodUndefined",T.ZodNull="ZodNull",T.ZodAny="ZodAny",T.ZodUnknown="ZodUnknown",T.ZodNever="ZodNever",T.ZodVoid="ZodVoid",T.ZodArray="ZodArray",T.ZodObject="ZodObject",T.ZodUnion="ZodUnion",T.ZodDiscriminatedUnion="ZodDiscriminatedUnion",T.ZodIntersection="ZodIntersection",T.ZodTuple="ZodTuple",T.ZodRecord="ZodRecord",T.ZodMap="ZodMap",T.ZodSet="ZodSet",T.ZodFunction="ZodFunction",T.ZodLazy="ZodLazy",T.ZodLiteral="ZodLiteral",T.ZodEnum="ZodEnum",T.ZodEffects="ZodEffects",T.ZodNativeEnum="ZodNativeEnum",T.ZodOptional="ZodOptional",T.ZodNullable="ZodNullable",T.ZodDefault="ZodDefault",T.ZodCatch="ZodCatch",T.ZodPromise="ZodPromise",T.ZodBranded="ZodBranded",T.ZodPipeline="ZodPipeline",T.ZodReadonly="ZodReadonly"})(x||(x={}));var Cj=H1.create,Zj=YW.create,kj=d8.create,qj=GW.create,yj=m8.create,Ij=ZX.create,jj=g8.create,xj=kX.create,bj=qX.create,Pj=p8.create,vj=O0.create,hj=M1.create,mj=u8.create,gj=oJ.create,pj=$$.create,uj=$$.strictCreate,cj=yX.create,oj=Z6.create,dj=IX.create,lj=z1.create,nj=c8.create,ij=o8.create,tj=HW.create,rj=NX.create,aj=jX.create,sj=xX.create,ej=U0.create,Tx=bX.create,$x=MW.create,Jx=dJ.create,Wx=SJ.create,Xx=g1.create,Fx=dJ.createWithPreprocess,Yx=l8.create;function UG(){return{}}function _G(T,$){let J={type:"array"};if(T.type?._def&&T.type?._def?.typeName!==x.ZodAny)J.items=WT(T.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(T.minLength)ET(J,"minItems",T.minLength.value,T.minLength.message,$);if(T.maxLength)ET(J,"maxItems",T.maxLength.value,T.maxLength.message,$);if(T.exactLength)ET(J,"minItems",T.exactLength.value,T.exactLength.message,$),ET(J,"maxItems",T.exactLength.value,T.exactLength.message,$);return J}function DG(T,$){let J={type:"integer",format:"int64"};if(!T.checks)return J;for(let W of T.checks)switch(W.kind){case"min":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"minimum",W.value,W.message,$);else ET(J,"exclusiveMinimum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMinimum=!0;ET(J,"minimum",W.value,W.message,$)}break;case"max":if($.target==="jsonSchema7")if(W.inclusive)ET(J,"maximum",W.value,W.message,$);else ET(J,"exclusiveMaximum",W.value,W.message,$);else{if(!W.inclusive)J.exclusiveMaximum=!0;ET(J,"maximum",W.value,W.message,$)}break;case"multipleOf":ET(J,"multipleOf",W.value,W.message,$);break}return J}function SG(){return{type:"boolean"}}function n8(T,$){return WT(T.type._def,$)}var KG=(T,$)=>{return WT(T.innerType._def,$)};function q6(T,$,J){let W=J??$.dateStrategy;if(Array.isArray(W))return{anyOf:W.map((X,F)=>q6(T,$,X))};switch(W){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return C_(T,$)}}var C_=(T,$)=>{let J={type:"integer",format:"unix-time"};if($.target==="openApi3")return J;for(let W of T.checks)switch(W.kind){case"min":ET(J,"minimum",W.value,W.message,$);break;case"max":ET(J,"maximum",W.value,W.message,$);break}return J};function VG(T,$){return{...WT(T.innerType._def,$),default:T.defaultValue()}}function EG(T,$){return $.effectStrategy==="input"?WT(T.schema._def,$):{}}function RG(T){return{type:"string",enum:Array.from(T.values)}}var Z_=(T)=>{if("type"in T&&T.type==="string")return!1;return"allOf"in T};function LG(T,$){let J=[WT(T.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),WT(T.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((F)=>!!F),W=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,X=[];return J.forEach((F)=>{if(Z_(F)){if(X.push(...F.allOf),F.unevaluatedProperties===void 0)W=void 0}else{let Y=F;if("additionalProperties"in F&&F.additionalProperties===!1){let{additionalProperties:G,...H}=F;Y=H}else W=void 0;X.push(Y)}}),X.length?{allOf:X,...W}:void 0}function BG(T,$){let J=typeof T.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(T.value)?"array":"object"};if($.target==="openApi3")return{type:J==="bigint"?"integer":J,enum:[T.value]};return{type:J==="bigint"?"integer":J,const:T.value}}var y6=void 0,qJ={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(y6===void 0)y6=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return y6},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function i8(T,$){let J={type:"string"};if(T.checks)for(let W of T.checks)switch(W.kind){case"min":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$);break;case"max":ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"email":switch($.emailStrategy){case"format:email":yJ(J,"email",W.message,$);break;case"format:idn-email":yJ(J,"idn-email",W.message,$);break;case"pattern:zod":p$(J,qJ.email,W.message,$);break}break;case"url":yJ(J,"uri",W.message,$);break;case"uuid":yJ(J,"uuid",W.message,$);break;case"regex":p$(J,W.regex,W.message,$);break;case"cuid":p$(J,qJ.cuid,W.message,$);break;case"cuid2":p$(J,qJ.cuid2,W.message,$);break;case"startsWith":p$(J,RegExp(`^${I6(W.value,$)}`),W.message,$);break;case"endsWith":p$(J,RegExp(`${I6(W.value,$)}$`),W.message,$);break;case"datetime":yJ(J,"date-time",W.message,$);break;case"date":yJ(J,"date",W.message,$);break;case"time":yJ(J,"time",W.message,$);break;case"duration":yJ(J,"duration",W.message,$);break;case"length":ET(J,"minLength",typeof J.minLength==="number"?Math.max(J.minLength,W.value):W.value,W.message,$),ET(J,"maxLength",typeof J.maxLength==="number"?Math.min(J.maxLength,W.value):W.value,W.message,$);break;case"includes":{p$(J,RegExp(I6(W.value,$)),W.message,$);break}case"ip":{if(W.version!=="v6")yJ(J,"ipv4",W.message,$);if(W.version!=="v4")yJ(J,"ipv6",W.message,$);break}case"base64url":p$(J,qJ.base64url,W.message,$);break;case"jwt":p$(J,qJ.jwt,W.message,$);break;case"cidr":{if(W.version!=="v6")p$(J,qJ.ipv4Cidr,W.message,$);if(W.version!=="v4")p$(J,qJ.ipv6Cidr,W.message,$);break}case"emoji":p$(J,qJ.emoji(),W.message,$);break;case"ulid":{p$(J,qJ.ulid,W.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{yJ(J,"binary",W.message,$);break}case"contentEncoding:base64":{ET(J,"contentEncoding","base64",W.message,$);break}case"pattern:zod":{p$(J,qJ.base64,W.message,$);break}}break}case"nanoid":p$(J,qJ.nanoid,W.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((X)=>{})(W)}return J}function I6(T,$){return $.patternStrategy==="escape"?q_(T):T}var k_=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function q_(T){let $="";for(let J=0;J<T.length;J++){if(!k_.has(T[J]))$+="\\";$+=T[J]}return $}function yJ(T,$,J,W){if(T.format||T.anyOf?.some((X)=>X.format)){if(!T.anyOf)T.anyOf=[];if(T.format){if(T.anyOf.push({format:T.format,...T.errorMessage&&W.errorMessages&&{errorMessage:{format:T.errorMessage.format}}}),delete T.format,T.errorMessage){if(delete T.errorMessage.format,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.anyOf.push({format:$,...J&&W.errorMessages&&{errorMessage:{format:J}}})}else ET(T,"format",$,J,W)}function p$(T,$,J,W){if(T.pattern||T.allOf?.some((X)=>X.pattern)){if(!T.allOf)T.allOf=[];if(T.pattern){if(T.allOf.push({pattern:T.pattern,...T.errorMessage&&W.errorMessages&&{errorMessage:{pattern:T.errorMessage.pattern}}}),delete T.pattern,T.errorMessage){if(delete T.errorMessage.pattern,Object.keys(T.errorMessage).length===0)delete T.errorMessage}}T.allOf.push({pattern:fG($,W),...J&&W.errorMessages&&{errorMessage:{pattern:J}}})}else ET(T,"pattern",fG($,W),J,W)}function fG(T,$){if(!$.applyRegexFlags||!T.flags)return T.source;let J={i:T.flags.includes("i"),m:T.flags.includes("m"),s:T.flags.includes("s")},W=J.i?T.source.toLowerCase():T.source,X="",F=!1,Y=!1,G=!1;for(let H=0;H<W.length;H++){if(F){X+=W[H],F=!1;continue}if(J.i){if(Y){if(W[H].match(/[a-z]/)){if(G)X+=W[H],X+=`${W[H-2]}-${W[H]}`.toUpperCase(),G=!1;else if(W[H+1]==="-"&&W[H+2]?.match(/[a-z]/))X+=W[H],G=!0;else X+=`${W[H]}${W[H].toUpperCase()}`;continue}}else if(W[H].match(/[a-z]/)){X+=`[${W[H]}${W[H].toUpperCase()}]`;continue}}if(J.m){if(W[H]==="^"){X+=`(^|(?<=[\r
17
17
  ]))`;continue}else if(W[H]==="$"){X+=`($|(?=[\r
18
18
  ]))`;continue}}if(J.s&&W[H]==="."){X+=Y?`${W[H]}\r
19
19
  `:`[${W[H]}\r
@@ -26,7 +26,7 @@ ${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":c
26
26
  `)}}FJ=new WeakMap;zW.NEWLINE_CHARS=new Set([`
27
27
  `,"\r"]);zW.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function r_(T,$){for(let X=$??0;X<T.length;X++){if(T[X]===10)return{preceding:X,index:X+1,carriage:!1};if(T[X]===13)return{preceding:X,index:X+1,carriage:!0}}return null}function X3(T){for(let W=0;W<T.length-1;W++){if(T[W]===10&&T[W+1]===10)return W+2;if(T[W]===13&&T[W+1]===13)return W+2;if(T[W]===13&&T[W+1]===10&&W+3<T.length&&T[W+2]===13&&T[W+3]===10)return W+4}return-1}function d6(T){if(T[Symbol.asyncIterator])return T;let $=T.getReader();return{async next(){try{let J=await $.read();if(J?.done)$.releaseLock();return J}catch(J){throw $.releaseLock(),J}},async return(){let J=$.cancel();return $.releaseLock(),await J,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class YJ{constructor(T,$){this.iterator=T,this.controller=$}static fromSSEResponse(T,$){let J=!1;async function*W(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let X=!1;try{for await(let F of a_(T,$)){if(X)continue;if(F.data.startsWith("[DONE]")){X=!0;continue}if(F.event===null||F.event.startsWith("response.")||F.event.startsWith("transcript.")){let Y;try{Y=JSON.parse(F.data)}catch(G){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),G}if(Y&&Y.error)throw new Y$(void 0,Y.error,void 0,l6(T.headers));yield Y}else{let Y;try{Y=JSON.parse(F.data)}catch(G){throw console.error("Could not parse message into JSON:",F.data),console.error("From chunk:",F.raw),G}if(F.event=="error")throw new Y$(void 0,Y.error,Y.message,void 0);yield{event:F.event,data:Y}}}X=!0}catch(F){if(F instanceof Error&&F.name==="AbortError")return;throw F}finally{if(!X)$.abort()}}return new YJ(W,$)}static fromReadableStream(T,$){let J=!1;async function*W(){let F=new zW,Y=d6(T);for await(let G of Y)for(let H of F.decode(G))yield H;for(let G of F.flush())yield G}async function*X(){if(J)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let F=!1;try{for await(let Y of W()){if(F)continue;if(Y)yield JSON.parse(Y)}F=!0}catch(Y){if(Y instanceof Error&&Y.name==="AbortError")return;throw Y}finally{if(!F)$.abort()}}return new YJ(X,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],$=[],J=this.iterator(),W=(X)=>{return{next:()=>{if(X.length===0){let F=J.next();T.push(F),$.push(F)}return X.shift()}}};return[new YJ(()=>W(T),this.controller),new YJ(()=>W($),this.controller)]}toReadableStream(){let T=this,$,J=new TextEncoder;return new m6({async start(){$=T[Symbol.asyncIterator]()},async pull(W){try{let{value:X,done:F}=await $.next();if(F)return W.close();let Y=J.encode(JSON.stringify(X)+`
28
28
  `);W.enqueue(Y)}catch(X){W.error(X)}},async cancel(){await $.return?.()}})}}async function*a_(T,$){if(!T.body)throw $.abort(),new t("Attempted to iterate over a response with no body");let J=new F3,W=new zW,X=d6(T.body);for await(let F of s_(X))for(let Y of W.decode(F)){let G=J.decode(Y);if(G)yield G}for(let F of W.flush()){let Y=J.decode(F);if(Y)yield Y}}async function*s_(T){let $=new Uint8Array;for await(let J of T){if(J==null)continue;let W=J instanceof ArrayBuffer?new Uint8Array(J):typeof J==="string"?new TextEncoder().encode(J):J,X=new Uint8Array($.length+W.length);X.set($),X.set(W,$.length),$=X;let F;while((F=X3($))!==-1)yield $.slice(0,F),$=$.slice(F)}if($.length>0)yield $}class F3{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(T){if(T.endsWith("\r"))T=T.substring(0,T.length-1);if(!T){if(!this.event&&!this.data.length)return null;let X={event:this.event,data:this.data.join(`
29
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],X}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,W]=e_(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function e_(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var Y3=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",G3=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&uX(T),uX=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",TD=(T)=>{return G3(T)||Y3(T)||u6(T)};async function t6(T,$,J){if(T=await T,G3(T))return T;if(Y3(T)){let X=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let F=uX(X)?[await X.arrayBuffer()]:[X];return new s8(F,$,J)}let W=await $D(T);if($||($=WD(T)??"unknown_file"),!J?.type){let X=W[0]?.type;if(typeof X==="string")J={...J,type:X}}return new s8(W,$,J)}async function $D(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(uX(T))$.push(await T.arrayBuffer());else if(XD(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${JD(T)}`);return $}function JD(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function WD(T){return n6(T.name)||n6(T.filename)||n6(T.path)?.split(/[\\/]/).pop()}var n6=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},XD=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",r6=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var KJ=async(T)=>{let $=await H3(T.body);return g6($,T)},H3=async(T)=>{let $=new h6;return await Promise.all(Object.entries(T||{}).map(([J,W])=>i6($,J,W))),$};var i6=async(T,$,J)=>{if(J===void 0)return;if(J==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")T.append($,String(J));else if(TD(J)){let W=await t6(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>i6(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,X])=>i6(T,`${$}[${W}]`,X)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var YD=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},GD=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},zF;o6();async function O3(T){let{response:$}=T;if(T.options.stream){if(A1("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return YJ.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let W=$.headers.get("content-type")?.split(";")[0]?.trim();if(W?.includes("application/json")||W?.endsWith("+json")){let Y=await $.json();return A1("response",$.status,$.url,$.headers,Y),U3(Y,$)}let F=await $.text();return A1("response",$.status,$.url,$.headers,F),F}function U3(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class QF extends Promise{constructor(T,$=O3){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new QF(this.responsePromise,async($)=>U3(T(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,$){return this.parse().then(T,$)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class s6{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:W,fetch:X}){this.baseURL=T,this.maxRetries=a6("maxRetries",$),this.timeout=a6("timeout",J),this.httpAgent=W,this.fetch=X??v6}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...AD(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${UD()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,J){return this.request(Promise.resolve(J).then(async(W)=>{let X=W&&uX(W?.body)?new DataView(await W.body.arrayBuffer()):W?.body instanceof DataView?W.body:W?.body instanceof ArrayBuffer?new DataView(W.body):W&&ArrayBuffer.isView(W?.body)?new DataView(W.body.buffer):W?.body;return{method:T,path:$,...W,body:X}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:J,path:W,query:X,headers:F={}}=T,Y=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:r6(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,G=this.calculateContentLength(Y),H=this.buildURL(W,X);if("timeout"in T)a6("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let M=T.httpAgent??this.httpAgent??p6(H),z=T.timeout+1000;if(typeof M?.options?.timeout==="number"&&z>(M.options.timeout??0))M.options.timeout=z;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=T.idempotencyKey}let A=this.buildHeaders({options:T,headers:F,contentLength:G,retryCount:$});return{req:{method:J,...Y&&{body:Y},headers:A,...M&&{agent:M},signal:T.signal??null},url:H,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let X={};if(J)X["content-length"]=J;let F=this.defaultHeaders(T);if(Q3(X,F),Q3(X,$),r6(T.body)&&D0!=="node")delete X["content-type"];if(AF(F,"x-stainless-retry-count")===void 0&&AF($,"x-stainless-retry-count")===void 0)X["x-stainless-retry-count"]=String(W);if(AF(F,"x-stainless-timeout")===void 0&&AF($,"x-stainless-timeout")===void 0&&T.timeout)X["x-stainless-timeout"]=String(Math.trunc(T.timeout/1000));return this.validateHeaders(X,$),X}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,W){return Y$.generate(T,$,J,W)}request(T,$=null){return new QF(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:X,url:F,timeout:Y}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(X,{url:F,options:J}),A1("request",F,J,X.headers),J.signal?.aborted)throw new _$;let G=new AbortController,H=await this.fetchWithTimeout(F,X,Y,G).catch(HF);if(H instanceof Error){if(J.signal?.aborted)throw new _$;if($)return this.retryRequest(J,$);if(H.name==="AbortError")throw new K0;throw new S0({cause:H})}let M=l6(H.headers);if(!H.ok){if($&&this.shouldRetry(H)){let K=`retrying, ${$} attempts remaining`;return A1(`response (error; ${K})`,H.status,F,M),this.retryRequest(J,$,M)}let z=await H.text().catch((K)=>HF(K).message),A=QD(z),Q=A?void 0:z;throw A1(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,H.status,F,M,Q),this.makeStatusError(H.status,A,Q,M)}return{response:H,options:J,controller:G}}requestAPIList(T,$){let J=this.makeRequest($,null);return new _3(this,J,T)}buildURL(T,$){let J=OD(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!D3(W))$={...W,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new t(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,W){let{signal:X,...F}=$||{};if(X)X.addEventListener("abort",()=>W.abort());let Y=setTimeout(()=>W.abort(),J),G={signal:W.signal,...F};if(G.method)G.method=G.method.toUpperCase();return this.fetch.call(void 0,T,G).finally(()=>{clearTimeout(Y)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let W,X=J?.["retry-after-ms"];if(X){let Y=parseFloat(X);if(!Number.isNaN(Y))W=Y}let F=J?.["retry-after"];if(F&&!W){let Y=parseFloat(F);if(!Number.isNaN(Y))W=Y*1000;else W=Date.parse(F)-Date.now()}if(!(W&&0<=W&&W<60000)){let Y=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,Y)}return await Q1(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let X=$-T,F=Math.min(0.5*Math.pow(2,X),8),Y=1-Math.random()*0.25;return F*Y*1000}getUserAgent(){return`${this.constructor.name}/JS ${_0}`}}class wF{constructor(T,$,J,W){zF.set(this,void 0),YD(this,zF,T,"f"),this.options=W,this.response=$,this.body=J}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let J=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[W,X]of J)T.url.searchParams.set(W,X);$.query=void 0,$.path=T.url.toString()}return await GD(this,zF,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(zF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class _3 extends QF{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await O3(W),W.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var l6=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let W=J.toString();return $[W.toLowerCase()]||$[W]}})},HD={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},AT=(T)=>{return typeof T==="object"&&T!==null&&!D3(T)&&Object.keys(T).every(($)=>S3(HD,$))},MD=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_0,"X-Stainless-OS":z3(Deno.build.os),"X-Stainless-Arch":M3(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":_0,"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":_0,"X-Stainless-OS":z3(process.platform),"X-Stainless-Arch":M3(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=zD();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_0,"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":_0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function zD(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let W=J.exec(navigator.userAgent);if(W){let X=W[1]||0,F=W[2]||0,Y=W[3]||0;return{browser:$,version:`${X}.${F}.${Y}`}}}return null}var M3=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},z3=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},A3,AD=()=>{return A3??(A3=MD())},QD=(T)=>{try{return JSON.parse(T)}catch($){return}},wD=/^[a-z][a-z0-9+.-]*:/i,OD=(T)=>{return wD.test(T)},Q1=(T)=>new Promise(($)=>setTimeout($,T)),a6=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new t(`${T} must be an integer`);if($<0)throw new t(`${T} must be a positive integer`);return $},HF=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var cX=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function D3(T){if(!T)return!0;for(let $ in T)return!1;return!0}function S3(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function Q3(T,$){for(let J in $){if(!S3($,J))continue;let W=J.toLowerCase();if(!W)continue;let X=$[J];if(X===null)delete T[W];else if(X!==void 0)T[W]=X}}var w3=new Set(["authorization","api-key"]);function A1(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((W)=>{if(!W)return W;if(W.headers){let F={...W,headers:{...W.headers}};for(let Y in W.headers)if(w3.has(Y.toLowerCase()))F.headers[Y]="REDACTED";return F}let X=null;for(let F in W)if(w3.has(F.toLowerCase()))X??(X={...W}),X[F]="REDACTED";return X??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var UD=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},K3=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},_D=(T)=>{return typeof T?.get==="function"};var AF=(T,$)=>{let J=$.toLowerCase();if(_D(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(X,F,Y)=>F+Y.toUpperCase());for(let X of[$,J,$.toUpperCase(),W]){let F=T.get(X);if(F)return F}}for(let[W,X]of Object.entries(T))if(W.toLowerCase()===J){if(Array.isArray(X)){if(X.length<=1)return X[0];return console.warn(`Received ${X.length} entries for the ${$} header, using the first entry.`),X[0]}return X}return};var V3=(T)=>{if(typeof Buffer!=="undefined"){let $=Buffer.from(T,"base64");return Array.from(new Float32Array($.buffer,$.byteOffset,$.length/Float32Array.BYTES_PER_ELEMENT))}else{let $=atob(T),J=$.length,W=new Uint8Array(J);for(let X=0;X<J;X++)W[X]=$.charCodeAt(X);return Array.from(new Float32Array(W.buffer))}};function oX(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class w1 extends wF{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class LT extends wF{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.has_more=J.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class P{constructor(T){this._client=T}}class dX extends P{list(T,$={},J){if(AT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,e6,{query:$,...J})}}class E0 extends P{constructor(){super(...arguments);this.messages=new dX(this._client)}create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}retrieve(T,$){return this._client.get(`/chat/completions/${T}`,$)}update(T,$,J){return this._client.post(`/chat/completions/${T}`,{body:$,...J})}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",R0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class R0 extends LT{}class e6 extends LT{}E0.ChatCompletionsPage=R0;E0.Messages=dX;class u1 extends P{constructor(){super(...arguments);this.completions=new E0(this._client)}}u1.Completions=E0;u1.ChatCompletionsPage=R0;class lX extends P{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class nX extends P{create(T,$){return this._client.post("/audio/transcriptions",KJ({body:T,...$,stream:T.stream??!1,__metadata:{model:T.model}}))}}class iX extends P{create(T,$){return this._client.post("/audio/translations",KJ({body:T,...$,__metadata:{model:T.model}}))}}class O1 extends P{constructor(){super(...arguments);this.transcriptions=new nX(this._client),this.translations=new iX(this._client),this.speech=new lX(this._client)}}O1.Transcriptions=nX;O1.Translations=iX;O1.Speech=lX;class L0 extends P{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/batches",AW,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class AW extends LT{}L0.BatchesPage=AW;class QW extends P{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/assistants/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/assistants",tX,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class tX extends LT{}QW.AssistantsPage=tX;function TY(T){return typeof T.parse==="function"}var c1=(T)=>{return T?.role==="assistant"},$Y=(T)=>{return T?.role==="function"},JY=(T)=>{return T?.role==="tool"};var IJ=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},aT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},WY,OF,UF,rX,aX,_F,sX,U1,eX,DF,SF,wW,E3;class B0{constructor(){WY.add(this),this.controller=new AbortController,OF.set(this,void 0),UF.set(this,()=>{}),rX.set(this,()=>{}),aX.set(this,void 0),_F.set(this,()=>{}),sX.set(this,()=>{}),U1.set(this,{}),eX.set(this,!1),DF.set(this,!1),SF.set(this,!1),wW.set(this,!1),IJ(this,OF,new Promise((T,$)=>{IJ(this,UF,T,"f"),IJ(this,rX,$,"f")}),"f"),IJ(this,aX,new Promise((T,$)=>{IJ(this,_F,T,"f"),IJ(this,sX,$,"f")}),"f"),aT(this,OF,"f").catch(()=>{}),aT(this,aX,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},aT(this,WY,"m",E3).bind(this))},0)}_connected(){if(this.ended)return;aT(this,UF,"f").call(this),this._emit("connect")}get ended(){return aT(this,eX,"f")}get errored(){return aT(this,DF,"f")}get aborted(){return aT(this,SF,"f")}abort(){this.controller.abort()}on(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=aT(this,U1,"f")[T];if(!J)return this;let W=J.findIndex((X)=>X.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(IJ(this,wW,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){IJ(this,wW,!0,"f"),await aT(this,aX,"f")}_emit(T,...$){if(aT(this,eX,"f"))return;if(T==="end")IJ(this,eX,!0,"f"),aT(this,_F,"f").call(this);let J=aT(this,U1,"f")[T];if(J)aT(this,U1,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!aT(this,wW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end");return}if(T==="error"){let W=$[0];if(!aT(this,wW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end")}}_emitFinal(){}}OF=new WeakMap,UF=new WeakMap,rX=new WeakMap,aX=new WeakMap,_F=new WeakMap,sX=new WeakMap,U1=new WeakMap,eX=new WeakMap,DF=new WeakMap,SF=new WeakMap,wW=new WeakMap,WY=new WeakSet,E3=function T($){if(IJ(this,DF,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new _$;if($ instanceof _$)return IJ(this,SF,!0,"f"),this._emit("abort",$);if($ instanceof t)return this._emit("error",$);if($ instanceof Error){let J=new t($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new t(String($)))};function T2(T){return T?.$brand==="auto-parseable-response-format"}function f0(T){return T?.$brand==="auto-parseable-tool"}function R3(T,$){if(!$||!XY($))return{...T,choices:T.choices.map((J)=>({...J,message:{...J.message,parsed:null,...J.message.tool_calls?{tool_calls:J.message.tool_calls}:void 0}}))};return $2(T,$)}function $2(T,$){let J=T.choices.map((W)=>{if(W.finish_reason==="length")throw new gX;if(W.finish_reason==="content_filter")throw new pX;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((X)=>BD($,X))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?LD($,W.message.content):null}}});return{...T,choices:J}}function LD(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 BD(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:f0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function L3(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return f0(J)||J?.function.strict||!1}function XY(T){if(T2(T.response_format))return!0;return T.tools?.some(($)=>f0($)||$.type==="function"&&$.function.strict===!0)??!1}function B3(T){for(let $ of T??[]){if($.type!=="function")throw new t(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new t(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var t$=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},b$,FY,KF,YY,GY,HY,N3,MY,f3=10;class J2 extends B0{constructor(){super(...arguments);b$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let $=T.choices[0]?.message;if($)this._addMessage($);return T}_addMessage(T,$=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),$){if(this._emit("message",T),($Y(T)||JY(T))&&T.content)this._emit("functionCallResult",T.content);else if(c1(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(c1(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new t("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),t$(this,b$,"m",FY).call(this)}async finalMessage(){return await this.done(),t$(this,b$,"m",KF).call(this)}async finalFunctionCall(){return await this.done(),t$(this,b$,"m",YY).call(this)}async finalFunctionCallResult(){return await this.done(),t$(this,b$,"m",GY).call(this)}async totalUsage(){return await this.done(),t$(this,b$,"m",HY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=t$(this,b$,"m",KF).call(this);if($)this._emit("finalMessage",$);let J=t$(this,b$,"m",FY).call(this);if(J)this._emit("finalContent",J);let W=t$(this,b$,"m",YY).call(this);if(W)this._emit("finalFunctionCall",W);let X=t$(this,b$,"m",GY).call(this);if(X!=null)this._emit("finalFunctionCallResult",X);if(this._chatCompletions.some((F)=>F.usage))this._emit("totalUsage",t$(this,b$,"m",HY).call(this))}async _createChatCompletion(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}t$(this,b$,"m",N3).call(this,$);let X=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion($2(X,$))}async _runChatCompletion(T,$,J){for(let W of $.messages)this._addMessage(W,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.name,{maxChatCompletions:H=f3}=J||{},M={};for(let A of $.functions)M[A.name||A.function.name]=A;let z=$.functions.map((A)=>({name:A.name||A.function.name,parameters:A.parameters,description:A.description}));for(let A of $.messages)this._addMessage(A,!1);for(let A=0;A<H;++A){let _=(await this._createChatCompletion(T,{...Y,function_call:X,functions:z,messages:[...this.messages]},J)).choices[0]?.message;if(!_)throw new t("missing message in ChatCompletion response");if(!_.function_call)return;let{name:D,arguments:K}=_.function_call,Z=M[D];if(!Z){let V=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${z.map((f)=>JSON.stringify(f.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:V});continue}else if(G&&G!==D){let V=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"function",name:D,content:V});continue}let k;try{k=TY(Z)?await Z.parse(K):K}catch(V){this._addMessage({role:"function",name:D,content:V instanceof Error?V.message:String(V)});continue}let N=await Z.function(k,this),y=t$(this,b$,"m",MY).call(this,N);if(this._addMessage({role:"function",name:D,content:y}),G)return}}async _runTools(T,$,J){let{tool_choice:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.function?.name,{maxChatCompletions:H=f3}=J||{},M=$.tools.map((Q)=>{if(f0(Q)){if(!Q.$callback)throw new t("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:Q.$callback,name:Q.function.name,description:Q.function.description||"",parameters:Q.function.parameters,parse:Q.$parseRaw,strict:!0}}}return Q}),z={};for(let Q of M)if(Q.type==="function")z[Q.function.name||Q.function.function.name]=Q.function;let A="tools"in $?M.map((Q)=>Q.type==="function"?{type:"function",function:{name:Q.function.name||Q.function.function.name,parameters:Q.function.parameters,description:Q.function.description,strict:Q.function.strict}}:Q):void 0;for(let Q of $.messages)this._addMessage(Q,!1);for(let Q=0;Q<H;++Q){let D=(await this._createChatCompletion(T,{...Y,tool_choice:X,tools:A,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new t("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let K of D.tool_calls){if(K.type!=="function")continue;let Z=K.id,{name:k,arguments:N}=K.function,y=z[k];if(!y){let B=`Invalid tool_call: ${JSON.stringify(k)}. Available options are: ${Object.keys(z).map((m)=>JSON.stringify(m)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}else if(G&&G!==k){let B=`Invalid tool_call: ${JSON.stringify(k)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}let V;try{V=TY(y)?await y.parse(N):N}catch(B){let m=B instanceof Error?B.message:String(B);this._addMessage({role:"tool",tool_call_id:Z,content:m});continue}let f=await y.function(V,this),C=t$(this,b$,"m",MY).call(this,f);if(this._addMessage({role:"tool",tool_call_id:Z,content:C}),G)return}}return}}b$=new WeakSet,FY=function T(){return t$(this,b$,"m",KF).call(this).content??null},KF=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(c1(J)){let{function_call:W,...X}=J,F={...X,content:J.content??null,refusal:J.refusal??null};if(W)F.function_call=W;return F}}throw new t("stream ended without producing a ChatCompletionMessage with role=assistant")},YY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(c1(J)&&J?.function_call)return J.function_call;if(c1(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},GY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if($Y(J)&&J.content!=null)return J.content;if(JY(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((W)=>W.role==="assistant"&&W.tool_calls?.some((X)=>X.type==="function"&&X.id===J.tool_call_id)))return J.content}return},HY=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:J}of this._chatCompletions)if(J)$.completion_tokens+=J.completion_tokens,$.prompt_tokens+=J.prompt_tokens,$.total_tokens+=J.total_tokens;return $},N3=function T($){if($.n!=null&&$.n>1)throw new t("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},MY=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class OW extends J2{static runFunctions(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,X)),W}static runTools(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,X)),W}_addMessage(T,$=!0){if(super._addMessage(T,$),c1(T)&&T.content)this._emit("content",T.content)}}var L$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class C3 extends Error{}class Z3 extends Error{}function fD(T,$=L$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return ND(T.trim(),$)}var ND=(T,$)=>{let J=T.length,W=0,X=(Q)=>{throw new C3(`${Q} at position ${W}`)},F=(Q)=>{throw new Z3(`${Q} at position ${W}`)},Y=()=>{if(A(),W>=J)X("Unexpected end of input");if(T[W]==='"')return G();if(T[W]==="{")return H();if(T[W]==="[")return M();if(T.substring(W,W+4)==="null"||L$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||L$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||L$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||L$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||L$.MINUS_INFINITY&$&&1<J-W&&J-W<9&&"-Infinity".startsWith(T.substring(W)))return W+=9,-1/0;if(T.substring(W,W+3)==="NaN"||L$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return z()},G=()=>{let Q=W,_=!1;W++;while(W<J&&(T[W]!=='"'||_&&T[W-1]==="\\"))_=T[W]==="\\"?!_:!1,W++;if(T.charAt(W)=='"')try{return JSON.parse(T.substring(Q,++W-Number(_)))}catch(D){F(String(D))}else if(L$.STR&$)try{return JSON.parse(T.substring(Q,W-Number(_))+'"')}catch(D){return JSON.parse(T.substring(Q,T.lastIndexOf("\\"))+'"')}X("Unterminated string literal")},H=()=>{W++,A();let Q={};try{while(T[W]!=="}"){if(A(),W>=J&&L$.OBJ&$)return Q;let _=G();A(),W++;try{let D=Y();Object.defineProperty(Q,_,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(L$.OBJ&$)return Q;else throw D}if(A(),T[W]===",")W++}}catch(_){if(L$.OBJ&$)return Q;else X("Expected '}' at end of object")}return W++,Q},M=()=>{W++;let Q=[];try{while(T[W]!=="]")if(Q.push(Y()),A(),T[W]===",")W++}catch(_){if(L$.ARR&$)return Q;X("Expected ']' at end of array")}return W++,Q},z=()=>{if(W===0){if(T==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T)}catch(_){if(L$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(D){}F(String(_))}}let Q=W;if(T[W]==="-")W++;while(T[W]&&!",]}".includes(T[W]))W++;if(W==J&&!(L$.NUM&$))X("Unterminated number literal");try{return JSON.parse(T.substring(Q,W))}catch(_){if(T.substring(Q,W)==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T.substring(Q,T.lastIndexOf("e")))}catch(D){F(String(D))}}},A=()=>{while(W<J&&`
29
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],X}if(this.chunks.push(T),T.startsWith(":"))return null;let[$,J,W]=e_(T,":");if(W.startsWith(" "))W=W.substring(1);if($==="event")this.event=W;else if($==="data")this.data.push(W);return null}}function e_(T,$){let J=T.indexOf($);if(J!==-1)return[T.substring(0,J),$,T.substring(J+$.length)];return[T,"",""]}var Y3=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",G3=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&uX(T),uX=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",TD=(T)=>{return G3(T)||Y3(T)||u6(T)};async function t6(T,$,J){if(T=await T,G3(T))return T;if(Y3(T)){let X=await T.blob();$||($=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let F=uX(X)?[await X.arrayBuffer()]:[X];return new s8(F,$,J)}let W=await $D(T);if($||($=WD(T)??"unknown_file"),!J?.type){let X=W[0]?.type;if(typeof X==="string")J={...J,type:X}}return new s8(W,$,J)}async function $D(T){let $=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)$.push(T);else if(uX(T))$.push(await T.arrayBuffer());else if(XD(T))for await(let J of T)$.push(J);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${JD(T)}`);return $}function JD(T){return`[${Object.getOwnPropertyNames(T).map((J)=>`"${J}"`).join(", ")}]`}function WD(T){return n6(T.name)||n6(T.filename)||n6(T.path)?.split(/[\\/]/).pop()}var n6=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},XD=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",r6=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var KJ=async(T)=>{let $=await H3(T.body);return g6($,T)},H3=async(T)=>{let $=new h6;return await Promise.all(Object.entries(T||{}).map(([J,W])=>i6($,J,W))),$};var i6=async(T,$,J)=>{if(J===void 0)return;if(J==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")T.append($,String(J));else if(TD(J)){let W=await t6(J);T.append($,W)}else if(Array.isArray(J))await Promise.all(J.map((W)=>i6(T,$+"[]",W)));else if(typeof J==="object")await Promise.all(Object.entries(J).map(([W,X])=>i6(T,`${$}[${W}]`,X)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${J} instead`)};var YD=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},GD=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},zF;o6();async function O3(T){let{response:$}=T;if(T.options.stream){if(A1("response",$.status,$.url,$.headers,$.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse($,T.controller);return YJ.fromSSEResponse($,T.controller)}if($.status===204)return null;if(T.options.__binaryResponse)return $;let W=$.headers.get("content-type")?.split(";")[0]?.trim();if(W?.includes("application/json")||W?.endsWith("+json")){let Y=await $.json();return A1("response",$.status,$.url,$.headers,Y),U3(Y,$)}let F=await $.text();return A1("response",$.status,$.url,$.headers,F),F}function U3(T,$){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class QF extends Promise{constructor(T,$=O3){super((J)=>{J(null)});this.responsePromise=T,this.parseResponse=$}_thenUnwrap(T){return new QF(this.responsePromise,async($)=>U3(T(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,$){return this.parse().then(T,$)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class s6{constructor({baseURL:T,maxRetries:$=2,timeout:J=600000,httpAgent:W,fetch:X}){this.baseURL=T,this.maxRetries=a6("maxRetries",$),this.timeout=a6("timeout",J),this.httpAgent=W,this.fetch=X??v6}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...AD(),...this.authHeaders(T)}}validateHeaders(T,$){}defaultIdempotencyKey(){return`stainless-node-retry-${UD()}`}get(T,$){return this.methodRequest("get",T,$)}post(T,$){return this.methodRequest("post",T,$)}patch(T,$){return this.methodRequest("patch",T,$)}put(T,$){return this.methodRequest("put",T,$)}delete(T,$){return this.methodRequest("delete",T,$)}methodRequest(T,$,J){return this.request(Promise.resolve(J).then(async(W)=>{let X=W&&uX(W?.body)?new DataView(await W.body.arrayBuffer()):W?.body instanceof DataView?W.body:W?.body instanceof ArrayBuffer?new DataView(W.body):W&&ArrayBuffer.isView(W?.body)?new DataView(W.body.buffer):W?.body;return{method:T,path:$,...W,body:X}}))}getAPIList(T,$,J){return this.requestAPIList($,{method:"get",path:T,...J})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:$=0}={}){T={...T};let{method:J,path:W,query:X,headers:F={}}=T,Y=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:r6(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,G=this.calculateContentLength(Y),H=this.buildURL(W,X);if("timeout"in T)a6("timeout",T.timeout);T.timeout=T.timeout??this.timeout;let M=T.httpAgent??this.httpAgent??p6(H),z=T.timeout+1000;if(typeof M?.options?.timeout==="number"&&z>(M.options.timeout??0))M.options.timeout=z;if(this.idempotencyHeader&&J!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=T.idempotencyKey}let A=this.buildHeaders({options:T,headers:F,contentLength:G,retryCount:$});return{req:{method:J,...Y&&{body:Y},headers:A,...M&&{agent:M},signal:T.signal??null},url:H,timeout:T.timeout}}buildHeaders({options:T,headers:$,contentLength:J,retryCount:W}){let X={};if(J)X["content-length"]=J;let F=this.defaultHeaders(T);if(Q3(X,F),Q3(X,$),r6(T.body)&&D0!=="node")delete X["content-type"];if(AF(F,"x-stainless-retry-count")===void 0&&AF($,"x-stainless-retry-count")===void 0)X["x-stainless-retry-count"]=String(W);if(AF(F,"x-stainless-timeout")===void 0&&AF($,"x-stainless-timeout")===void 0&&T.timeout)X["x-stainless-timeout"]=String(Math.trunc(T.timeout/1000));return this.validateHeaders(X,$),X}async prepareOptions(T){}async prepareRequest(T,{url:$,options:J}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map(($)=>[...$])):{...T}}makeStatusError(T,$,J,W){return Y$.generate(T,$,J,W)}request(T,$=null){return new QF(this.makeRequest(T,$))}async makeRequest(T,$){let J=await T,W=J.maxRetries??this.maxRetries;if($==null)$=W;await this.prepareOptions(J);let{req:X,url:F,timeout:Y}=this.buildRequest(J,{retryCount:W-$});if(await this.prepareRequest(X,{url:F,options:J}),A1("request",F,J,X.headers),J.signal?.aborted)throw new _$;let G=new AbortController,H=await this.fetchWithTimeout(F,X,Y,G).catch(HF);if(H instanceof Error){if(J.signal?.aborted)throw new _$;if($)return this.retryRequest(J,$);if(H.name==="AbortError")throw new K0;throw new S0({cause:H})}let M=l6(H.headers);if(!H.ok){if($&&this.shouldRetry(H)){let K=`retrying, ${$} attempts remaining`;return A1(`response (error; ${K})`,H.status,F,M),this.retryRequest(J,$,M)}let z=await H.text().catch((K)=>HF(K).message),A=QD(z),Q=A?void 0:z;throw A1(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,H.status,F,M,Q),this.makeStatusError(H.status,A,Q,M)}return{response:H,options:J,controller:G}}requestAPIList(T,$){let J=this.makeRequest($,null);return new _3(this,J,T)}buildURL(T,$){let J=OD(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),W=this.defaultQuery();if(!D3(W))$={...W,...$};if(typeof $==="object"&&$&&!Array.isArray($))J.search=this.stringifyQuery($);return J.toString()}stringifyQuery(T){return Object.entries(T).filter(([$,J])=>typeof J!=="undefined").map(([$,J])=>{if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(J)}`;if(J===null)return`${encodeURIComponent($)}=`;throw new t(`Cannot stringify type ${typeof J}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(T,$,J,W){let{signal:X,...F}=$||{};if(X)X.addEventListener("abort",()=>W.abort());let Y=setTimeout(()=>W.abort(),J),G={signal:W.signal,...F};if(G.method)G.method=G.method.toUpperCase();return this.fetch.call(void 0,T,G).finally(()=>{clearTimeout(Y)})}shouldRetry(T){let $=T.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,$,J){let W,X=J?.["retry-after-ms"];if(X){let Y=parseFloat(X);if(!Number.isNaN(Y))W=Y}let F=J?.["retry-after"];if(F&&!W){let Y=parseFloat(F);if(!Number.isNaN(Y))W=Y*1000;else W=Date.parse(F)-Date.now()}if(!(W&&0<=W&&W<60000)){let Y=T.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis($,Y)}return await Q1(W),this.makeRequest(T,$-1)}calculateDefaultRetryTimeoutMillis(T,$){let X=$-T,F=Math.min(0.5*Math.pow(2,X),8),Y=1-Math.random()*0.25;return F*Y*1000}getUserAgent(){return`${this.constructor.name}/JS ${_0}`}}class wF{constructor(T,$,J,W){zF.set(this,void 0),YD(this,zF,T,"f"),this.options=W,this.response=$,this.body=J}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in T&&typeof $.query==="object")$.query={...$.query,...T.params};else if("url"in T){let J=[...Object.entries($.query||{}),...T.url.searchParams.entries()];for(let[W,X]of J)T.url.searchParams.set(W,X);$.query=void 0,$.path=T.url.toString()}return await GD(this,zF,"f").requestAPIList(this.constructor,$)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(zF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let $ of T.getPaginatedItems())yield $}}class _3 extends QF{constructor(T,$,J){super($,async(W)=>new J(T,W.response,await O3(W),W.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let $ of T)yield $}}var l6=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get($,J){let W=J.toString();return $[W.toLowerCase()]||$[W]}})},HD={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},AT=(T)=>{return typeof T==="object"&&T!==null&&!D3(T)&&Object.keys(T).every(($)=>S3(HD,$))},MD=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_0,"X-Stainless-OS":z3(Deno.build.os),"X-Stainless-Arch":M3(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":_0,"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":_0,"X-Stainless-OS":z3(process.platform),"X-Stainless-Arch":M3(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=zD();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_0,"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":_0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function zD(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:J}of T){let W=J.exec(navigator.userAgent);if(W){let X=W[1]||0,F=W[2]||0,Y=W[3]||0;return{browser:$,version:`${X}.${F}.${Y}`}}}return null}var M3=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},z3=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},A3,AD=()=>{return A3??(A3=MD())},QD=(T)=>{try{return JSON.parse(T)}catch($){return}},wD=/^[a-z][a-z0-9+.-]*:/i,OD=(T)=>{return wD.test(T)},Q1=(T)=>new Promise(($)=>setTimeout($,T)),a6=(T,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new t(`${T} must be an integer`);if($<0)throw new t(`${T} must be a positive integer`);return $},HF=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var cX=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function D3(T){if(!T)return!0;for(let $ in T)return!1;return!0}function S3(T,$){return Object.prototype.hasOwnProperty.call(T,$)}function Q3(T,$){for(let J in $){if(!S3($,J))continue;let W=J.toLowerCase();if(!W)continue;let X=$[J];if(X===null)delete T[W];else if(X!==void 0)T[W]=X}}var w3=new Set(["authorization","api-key"]);function A1(T,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let J=$.map((W)=>{if(!W)return W;if(W.headers){let F={...W,headers:{...W.headers}};for(let Y in W.headers)if(w3.has(Y.toLowerCase()))F.headers[Y]="REDACTED";return F}let X=null;for(let F in W)if(w3.has(F.toLowerCase()))X??(X={...W}),X[F]="REDACTED";return X??W});console.log(`OpenAI:DEBUG:${T}`,...J)}}var UD=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let $=Math.random()*16|0;return(T==="x"?$:$&3|8).toString(16)})},K3=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},_D=(T)=>{return typeof T?.get==="function"};var AF=(T,$)=>{let J=$.toLowerCase();if(_D(T)){let W=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(X,F,Y)=>F+Y.toUpperCase());for(let X of[$,J,$.toUpperCase(),W]){let F=T.get(X);if(F)return F}}for(let[W,X]of Object.entries(T))if(W.toLowerCase()===J){if(Array.isArray(X)){if(X.length<=1)return X[0];return console.warn(`Received ${X.length} entries for the ${$} header, using the first entry.`),X[0]}return X}return};var V3=(T)=>{if(typeof Buffer!=="undefined"){let $=Buffer.from(T,"base64");return Array.from(new Float32Array($.buffer,$.byteOffset,$.length/Float32Array.BYTES_PER_ELEMENT))}else{let $=atob(T),J=$.length,W=new Uint8Array(J);for(let X=0;X<J;X++)W[X]=$.charCodeAt(X);return Array.from(new Float32Array(W.buffer))}};function oX(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class w1 extends wF{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.object=J.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class LT extends wF{constructor(T,$,J,W){super(T,$,J,W);this.data=J.data||[],this.has_more=J.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let $=Object.fromEntries(T.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let $=T[T.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class P{constructor(T){this._client=T}}class dX extends P{list(T,$={},J){if(AT($))return this.list(T,{},$);return this._client.getAPIList(`/chat/completions/${T}/messages`,e6,{query:$,...J})}}class E0 extends P{constructor(){super(...arguments);this.messages=new dX(this._client)}create(T,$){return this._client.post("/chat/completions",{body:T,...$,stream:T.stream??!1})}retrieve(T,$){return this._client.get(`/chat/completions/${T}`,$)}update(T,$,J){return this._client.post(`/chat/completions/${T}`,{body:$,...J})}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/chat/completions",R0,{query:T,...$})}del(T,$){return this._client.delete(`/chat/completions/${T}`,$)}}class R0 extends LT{}class e6 extends LT{}E0.ChatCompletionsPage=R0;E0.Messages=dX;class u1 extends P{constructor(){super(...arguments);this.completions=new E0(this._client)}}u1.Completions=E0;u1.ChatCompletionsPage=R0;class lX extends P{create(T,$){return this._client.post("/audio/speech",{body:T,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class nX extends P{create(T,$){return this._client.post("/audio/transcriptions",KJ({body:T,...$,stream:T.stream??!1,__metadata:{model:T.model}}))}}class iX extends P{create(T,$){return this._client.post("/audio/translations",KJ({body:T,...$,__metadata:{model:T.model}}))}}class O1 extends P{constructor(){super(...arguments);this.transcriptions=new nX(this._client),this.translations=new iX(this._client),this.speech=new lX(this._client)}}O1.Transcriptions=nX;O1.Translations=iX;O1.Speech=lX;class L0 extends P{create(T,$){return this._client.post("/batches",{body:T,...$})}retrieve(T,$){return this._client.get(`/batches/${T}`,$)}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/batches",AW,{query:T,...$})}cancel(T,$){return this._client.post(`/batches/${T}/cancel`,$)}}class AW extends LT{}L0.BatchesPage=AW;class QW extends P{create(T,$){return this._client.post("/assistants",{body:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,$){return this._client.get(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,$,J){return this._client.post(`/assistants/${T}`,{body:$,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(T={},$){if(AT(T))return this.list({},T);return this._client.getAPIList("/assistants",tX,{query:T,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,$){return this._client.delete(`/assistants/${T}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class tX extends LT{}QW.AssistantsPage=tX;function TY(T){return typeof T.parse==="function"}var c1=(T)=>{return T?.role==="assistant"},$Y=(T)=>{return T?.role==="function"},JY=(T)=>{return T?.role==="tool"};var IJ=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},aT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},WY,OF,UF,rX,aX,_F,sX,U1,eX,DF,SF,wW,E3;class B0{constructor(){WY.add(this),this.controller=new AbortController,OF.set(this,void 0),UF.set(this,()=>{}),rX.set(this,()=>{}),aX.set(this,void 0),_F.set(this,()=>{}),sX.set(this,()=>{}),U1.set(this,{}),eX.set(this,!1),DF.set(this,!1),SF.set(this,!1),wW.set(this,!1),IJ(this,OF,new Promise((T,$)=>{IJ(this,UF,T,"f"),IJ(this,rX,$,"f")}),"f"),IJ(this,aX,new Promise((T,$)=>{IJ(this,_F,T,"f"),IJ(this,sX,$,"f")}),"f"),aT(this,OF,"f").catch(()=>{}),aT(this,aX,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},aT(this,WY,"m",E3).bind(this))},0)}_connected(){if(this.ended)return;aT(this,UF,"f").call(this),this._emit("connect")}get ended(){return aT(this,eX,"f")}get errored(){return aT(this,DF,"f")}get aborted(){return aT(this,SF,"f")}abort(){this.controller.abort()}on(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$}),this}off(T,$){let J=aT(this,U1,"f")[T];if(!J)return this;let W=J.findIndex((X)=>X.listener===$);if(W>=0)J.splice(W,1);return this}once(T,$){return(aT(this,U1,"f")[T]||(aT(this,U1,"f")[T]=[])).push({listener:$,once:!0}),this}emitted(T){return new Promise(($,J)=>{if(IJ(this,wW,!0,"f"),T!=="error")this.once("error",J);this.once(T,$)})}async done(){IJ(this,wW,!0,"f"),await aT(this,aX,"f")}_emit(T,...$){if(aT(this,eX,"f"))return;if(T==="end")IJ(this,eX,!0,"f"),aT(this,_F,"f").call(this);let J=aT(this,U1,"f")[T];if(J)aT(this,U1,"f")[T]=J.filter((W)=>!W.once),J.forEach(({listener:W})=>W(...$));if(T==="abort"){let W=$[0];if(!aT(this,wW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end");return}if(T==="error"){let W=$[0];if(!aT(this,wW,"f")&&!J?.length)Promise.reject(W);aT(this,rX,"f").call(this,W),aT(this,sX,"f").call(this,W),this._emit("end")}}_emitFinal(){}}OF=new WeakMap,UF=new WeakMap,rX=new WeakMap,aX=new WeakMap,_F=new WeakMap,sX=new WeakMap,U1=new WeakMap,eX=new WeakMap,DF=new WeakMap,SF=new WeakMap,wW=new WeakMap,WY=new WeakSet,E3=function T($){if(IJ(this,DF,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new _$;if($ instanceof _$)return IJ(this,SF,!0,"f"),this._emit("abort",$);if($ instanceof t)return this._emit("error",$);if($ instanceof Error){let J=new t($.message);return J.cause=$,this._emit("error",J)}return this._emit("error",new t(String($)))};function T2(T){return T?.$brand==="auto-parseable-response-format"}function f0(T){return T?.$brand==="auto-parseable-tool"}function R3(T,$){if(!$||!XY($))return{...T,choices:T.choices.map((J)=>({...J,message:{...J.message,parsed:null,...J.message.tool_calls?{tool_calls:J.message.tool_calls}:void 0}}))};return $2(T,$)}function $2(T,$){let J=T.choices.map((W)=>{if(W.finish_reason==="length")throw new gX;if(W.finish_reason==="content_filter")throw new pX;return{...W,message:{...W.message,...W.message.tool_calls?{tool_calls:W.message.tool_calls?.map((X)=>BD($,X))??void 0}:void 0,parsed:W.message.content&&!W.message.refusal?LD($,W.message.content):null}}});return{...T,choices:J}}function LD(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 BD(T,$){let J=T.tools?.find((W)=>W.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:f0(J)?J.$parseRaw($.function.arguments):J?.function.strict?JSON.parse($.function.arguments):null}}}function L3(T,$){if(!T)return!1;let J=T.tools?.find((W)=>W.function?.name===$.function.name);return f0(J)||J?.function.strict||!1}function XY(T){if(T2(T.response_format))return!0;return T.tools?.some(($)=>f0($)||$.type==="function"&&$.function.strict===!0)??!1}function B3(T){for(let $ of T??[]){if($.type!=="function")throw new t(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new t(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var t$=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},x$,FY,KF,YY,GY,HY,N3,MY,f3=10;class J2 extends B0{constructor(){super(...arguments);x$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let $=T.choices[0]?.message;if($)this._addMessage($);return T}_addMessage(T,$=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),$){if(this._emit("message",T),($Y(T)||JY(T))&&T.content)this._emit("functionCallResult",T.content);else if(c1(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(c1(T)&&T.tool_calls){for(let J of T.tool_calls)if(J.type==="function")this._emit("functionCall",J.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new t("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),t$(this,x$,"m",FY).call(this)}async finalMessage(){return await this.done(),t$(this,x$,"m",KF).call(this)}async finalFunctionCall(){return await this.done(),t$(this,x$,"m",YY).call(this)}async finalFunctionCallResult(){return await this.done(),t$(this,x$,"m",GY).call(this)}async totalUsage(){return await this.done(),t$(this,x$,"m",HY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let $=t$(this,x$,"m",KF).call(this);if($)this._emit("finalMessage",$);let J=t$(this,x$,"m",FY).call(this);if(J)this._emit("finalContent",J);let W=t$(this,x$,"m",YY).call(this);if(W)this._emit("finalFunctionCall",W);let X=t$(this,x$,"m",GY).call(this);if(X!=null)this._emit("finalFunctionCallResult",X);if(this._chatCompletions.some((F)=>F.usage))this._emit("totalUsage",t$(this,x$,"m",HY).call(this))}async _createChatCompletion(T,$,J){let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}t$(this,x$,"m",N3).call(this,$);let X=await T.chat.completions.create({...$,stream:!1},{...J,signal:this.controller.signal});return this._connected(),this._addChatCompletion($2(X,$))}async _runChatCompletion(T,$,J){for(let W of $.messages)this._addMessage(W,!1);return await this._createChatCompletion(T,$,J)}async _runFunctions(T,$,J){let{function_call:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.name,{maxChatCompletions:H=f3}=J||{},M={};for(let A of $.functions)M[A.name||A.function.name]=A;let z=$.functions.map((A)=>({name:A.name||A.function.name,parameters:A.parameters,description:A.description}));for(let A of $.messages)this._addMessage(A,!1);for(let A=0;A<H;++A){let _=(await this._createChatCompletion(T,{...Y,function_call:X,functions:z,messages:[...this.messages]},J)).choices[0]?.message;if(!_)throw new t("missing message in ChatCompletion response");if(!_.function_call)return;let{name:D,arguments:K}=_.function_call,Z=M[D];if(!Z){let V=`Invalid function_call: ${JSON.stringify(D)}. Available options are: ${z.map((f)=>JSON.stringify(f.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:D,content:V});continue}else if(G&&G!==D){let V=`Invalid function_call: ${JSON.stringify(D)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"function",name:D,content:V});continue}let k;try{k=TY(Z)?await Z.parse(K):K}catch(V){this._addMessage({role:"function",name:D,content:V instanceof Error?V.message:String(V)});continue}let N=await Z.function(k,this),y=t$(this,x$,"m",MY).call(this,N);if(this._addMessage({role:"function",name:D,content:y}),G)return}}async _runTools(T,$,J){let{tool_choice:X="auto",stream:F,...Y}=$,G=typeof X!=="string"&&X?.function?.name,{maxChatCompletions:H=f3}=J||{},M=$.tools.map((Q)=>{if(f0(Q)){if(!Q.$callback)throw new t("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:Q.$callback,name:Q.function.name,description:Q.function.description||"",parameters:Q.function.parameters,parse:Q.$parseRaw,strict:!0}}}return Q}),z={};for(let Q of M)if(Q.type==="function")z[Q.function.name||Q.function.function.name]=Q.function;let A="tools"in $?M.map((Q)=>Q.type==="function"?{type:"function",function:{name:Q.function.name||Q.function.function.name,parameters:Q.function.parameters,description:Q.function.description,strict:Q.function.strict}}:Q):void 0;for(let Q of $.messages)this._addMessage(Q,!1);for(let Q=0;Q<H;++Q){let D=(await this._createChatCompletion(T,{...Y,tool_choice:X,tools:A,messages:[...this.messages]},J)).choices[0]?.message;if(!D)throw new t("missing message in ChatCompletion response");if(!D.tool_calls?.length)return;for(let K of D.tool_calls){if(K.type!=="function")continue;let Z=K.id,{name:k,arguments:N}=K.function,y=z[k];if(!y){let B=`Invalid tool_call: ${JSON.stringify(k)}. Available options are: ${Object.keys(z).map((m)=>JSON.stringify(m)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}else if(G&&G!==k){let B=`Invalid tool_call: ${JSON.stringify(k)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:Z,content:B});continue}let V;try{V=TY(y)?await y.parse(N):N}catch(B){let m=B instanceof Error?B.message:String(B);this._addMessage({role:"tool",tool_call_id:Z,content:m});continue}let f=await y.function(V,this),C=t$(this,x$,"m",MY).call(this,f);if(this._addMessage({role:"tool",tool_call_id:Z,content:C}),G)return}}return}}x$=new WeakSet,FY=function T(){return t$(this,x$,"m",KF).call(this).content??null},KF=function T(){let $=this.messages.length;while($-- >0){let J=this.messages[$];if(c1(J)){let{function_call:W,...X}=J,F={...X,content:J.content??null,refusal:J.refusal??null};if(W)F.function_call=W;return F}}throw new t("stream ended without producing a ChatCompletionMessage with role=assistant")},YY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if(c1(J)&&J?.function_call)return J.function_call;if(c1(J)&&J?.tool_calls?.length)return J.tool_calls.at(-1)?.function}return},GY=function T(){for(let $=this.messages.length-1;$>=0;$--){let J=this.messages[$];if($Y(J)&&J.content!=null)return J.content;if(JY(J)&&J.content!=null&&typeof J.content==="string"&&this.messages.some((W)=>W.role==="assistant"&&W.tool_calls?.some((X)=>X.type==="function"&&X.id===J.tool_call_id)))return J.content}return},HY=function T(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:J}of this._chatCompletions)if(J)$.completion_tokens+=J.completion_tokens,$.prompt_tokens+=J.prompt_tokens,$.total_tokens+=J.total_tokens;return $},N3=function T($){if($.n!=null&&$.n>1)throw new t("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},MY=function T($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class OW extends J2{static runFunctions(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return W._run(()=>W._runFunctions(T,$,X)),W}static runTools(T,$,J){let W=new OW,X={...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"runTools"}};return W._run(()=>W._runTools(T,$,X)),W}_addMessage(T,$=!0){if(super._addMessage(T,$),c1(T)&&T.content)this._emit("content",T.content)}}var L$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class C3 extends Error{}class Z3 extends Error{}function fD(T,$=L$.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return ND(T.trim(),$)}var ND=(T,$)=>{let J=T.length,W=0,X=(Q)=>{throw new C3(`${Q} at position ${W}`)},F=(Q)=>{throw new Z3(`${Q} at position ${W}`)},Y=()=>{if(A(),W>=J)X("Unexpected end of input");if(T[W]==='"')return G();if(T[W]==="{")return H();if(T[W]==="[")return M();if(T.substring(W,W+4)==="null"||L$.NULL&$&&J-W<4&&"null".startsWith(T.substring(W)))return W+=4,null;if(T.substring(W,W+4)==="true"||L$.BOOL&$&&J-W<4&&"true".startsWith(T.substring(W)))return W+=4,!0;if(T.substring(W,W+5)==="false"||L$.BOOL&$&&J-W<5&&"false".startsWith(T.substring(W)))return W+=5,!1;if(T.substring(W,W+8)==="Infinity"||L$.INFINITY&$&&J-W<8&&"Infinity".startsWith(T.substring(W)))return W+=8,1/0;if(T.substring(W,W+9)==="-Infinity"||L$.MINUS_INFINITY&$&&1<J-W&&J-W<9&&"-Infinity".startsWith(T.substring(W)))return W+=9,-1/0;if(T.substring(W,W+3)==="NaN"||L$.NAN&$&&J-W<3&&"NaN".startsWith(T.substring(W)))return W+=3,NaN;return z()},G=()=>{let Q=W,_=!1;W++;while(W<J&&(T[W]!=='"'||_&&T[W-1]==="\\"))_=T[W]==="\\"?!_:!1,W++;if(T.charAt(W)=='"')try{return JSON.parse(T.substring(Q,++W-Number(_)))}catch(D){F(String(D))}else if(L$.STR&$)try{return JSON.parse(T.substring(Q,W-Number(_))+'"')}catch(D){return JSON.parse(T.substring(Q,T.lastIndexOf("\\"))+'"')}X("Unterminated string literal")},H=()=>{W++,A();let Q={};try{while(T[W]!=="}"){if(A(),W>=J&&L$.OBJ&$)return Q;let _=G();A(),W++;try{let D=Y();Object.defineProperty(Q,_,{value:D,writable:!0,enumerable:!0,configurable:!0})}catch(D){if(L$.OBJ&$)return Q;else throw D}if(A(),T[W]===",")W++}}catch(_){if(L$.OBJ&$)return Q;else X("Expected '}' at end of object")}return W++,Q},M=()=>{W++;let Q=[];try{while(T[W]!=="]")if(Q.push(Y()),A(),T[W]===",")W++}catch(_){if(L$.ARR&$)return Q;X("Expected ']' at end of array")}return W++,Q},z=()=>{if(W===0){if(T==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T)}catch(_){if(L$.NUM&$)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(D){}F(String(_))}}let Q=W;if(T[W]==="-")W++;while(T[W]&&!",]}".includes(T[W]))W++;if(W==J&&!(L$.NUM&$))X("Unterminated number literal");try{return JSON.parse(T.substring(Q,W))}catch(_){if(T.substring(Q,W)==="-"&&L$.NUM&$)X("Not sure what '-' is");try{return JSON.parse(T.substring(Q,T.lastIndexOf("e")))}catch(D){F(String(D))}}},A=()=>{while(W<J&&`
30
30
  \r `.includes(T[W]))W++};return Y()},zY=(T)=>fD(T,L$.ALL^L$.NUM);var UW=function(T,$,J,W,X){if(W==="m")throw new TypeError("Private method is not writable");if(W==="a"&&!X)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?T!==$||!X:!$.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return W==="a"?X.call(T,J):X?X.value=J:$.set(T,J),J},xT=function(T,$,J,W){if(J==="a"&&!W)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?T!==$||!W:!$.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?W:J==="a"?W.call(T):W?W.value:$.get(T)},D$,_1,_W,o1,AY,VF,QY,wY,OY,EF,UY,k3;class N0 extends J2{constructor(T){super();D$.add(this),_1.set(this,void 0),_W.set(this,void 0),o1.set(this,void 0),UW(this,_1,T,"f"),UW(this,_W,[],"f")}get currentChatCompletionSnapshot(){return xT(this,o1,"f")}static fromReadableStream(T){let $=new N0(null);return $._run(()=>$._fromReadableStream(T)),$}static createChatCompletion(T,$,J){let W=new N0($);return W._run(()=>W._runChatCompletion(T,{...$,stream:!0},{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createChatCompletion(T,$,J){super._createChatCompletion;let W=J?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}xT(this,D$,"m",AY).call(this);let X=await T.chat.completions.create({...$,stream:!0},{...J,signal:this.controller.signal});this._connected();for await(let F of X)xT(this,D$,"m",QY).call(this,F);if(X.controller.signal?.aborted)throw new _$;return this._addChatCompletion(xT(this,D$,"m",EF).call(this))}async _fromReadableStream(T,$){let J=$?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}xT(this,D$,"m",AY).call(this),this._connected();let W=YJ.fromReadableStream(T,this.controller),X;for await(let F of W){if(X&&X!==F.id)this._addChatCompletion(xT(this,D$,"m",EF).call(this));xT(this,D$,"m",QY).call(this,F),X=F.id}if(W.controller.signal?.aborted)throw new _$;return this._addChatCompletion(xT(this,D$,"m",EF).call(this))}[(_1=new WeakMap,_W=new WeakMap,o1=new WeakMap,D$=new WeakSet,AY=function T(){if(this.ended)return;UW(this,o1,void 0,"f")},VF=function T($){let J=xT(this,_W,"f")[$.index];if(J)return J;return J={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},xT(this,_W,"f")[$.index]=J,J},QY=function T($){if(this.ended)return;let J=xT(this,D$,"m",k3).call(this,$);this._emit("chunk",$,J);for(let W of $.choices){let X=J.choices[W.index];if(W.delta.content!=null&&X.message?.role==="assistant"&&X.message?.content)this._emit("content",W.delta.content,X.message.content),this._emit("content.delta",{delta:W.delta.content,snapshot:X.message.content,parsed:X.message.parsed});if(W.delta.refusal!=null&&X.message?.role==="assistant"&&X.message?.refusal)this._emit("refusal.delta",{delta:W.delta.refusal,snapshot:X.message.refusal});if(W.logprobs?.content!=null&&X.message?.role==="assistant")this._emit("logprobs.content.delta",{content:W.logprobs?.content,snapshot:X.logprobs?.content??[]});if(W.logprobs?.refusal!=null&&X.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:W.logprobs?.refusal,snapshot:X.logprobs?.refusal??[]});let F=xT(this,D$,"m",VF).call(this,X);if(X.finish_reason){if(xT(this,D$,"m",OY).call(this,X),F.current_tool_call_index!=null)xT(this,D$,"m",wY).call(this,X,F.current_tool_call_index)}for(let Y of W.delta.tool_calls??[]){if(F.current_tool_call_index!==Y.index){if(xT(this,D$,"m",OY).call(this,X),F.current_tool_call_index!=null)xT(this,D$,"m",wY).call(this,X,F.current_tool_call_index)}F.current_tool_call_index=Y.index}for(let Y of W.delta.tool_calls??[]){let G=X.message.tool_calls?.[Y.index];if(!G?.type)continue;if(G?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:G.function?.name,index:Y.index,arguments:G.function.arguments,parsed_arguments:G.function.parsed_arguments,arguments_delta:Y.function?.arguments??""});else y3(G?.type)}}},wY=function T($,J){if(xT(this,D$,"m",VF).call(this,$).done_tool_calls.has(J))return;let X=$.message.tool_calls?.[J];if(!X)throw new Error("no tool call snapshot");if(!X.type)throw new Error("tool call snapshot missing `type`");if(X.type==="function"){let F=xT(this,_1,"f")?.tools?.find((Y)=>Y.type==="function"&&Y.function.name===X.function.name);this._emit("tool_calls.function.arguments.done",{name:X.function.name,index:J,arguments:X.function.arguments,parsed_arguments:f0(F)?F.$parseRaw(X.function.arguments):F?.function.strict?JSON.parse(X.function.arguments):null})}else y3(X.type)},OY=function T($){let J=xT(this,D$,"m",VF).call(this,$);if($.message.content&&!J.content_done){J.content_done=!0;let W=xT(this,D$,"m",UY).call(this);this._emit("content.done",{content:$.message.content,parsed:W?W.$parseRaw($.message.content):null})}if($.message.refusal&&!J.refusal_done)J.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!J.logprobs_content_done)J.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!J.logprobs_refusal_done)J.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},EF=function T(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let $=xT(this,o1,"f");if(!$)throw new t("request ended without sending any chunks");return UW(this,o1,void 0,"f"),UW(this,_W,[],"f"),CD($,xT(this,_1,"f"))},UY=function T(){let $=xT(this,_1,"f")?.response_format;if(T2($))return $;return null},k3=function T($){var J,W,X,F;let Y=xT(this,o1,"f"),{choices:G,...H}=$;if(!Y)Y=UW(this,o1,{...H,choices:[]},"f");else Object.assign(Y,H);for(let{delta:M,finish_reason:z,index:A,logprobs:Q=null,..._}of $.choices){let D=Y.choices[A];if(!D)D=Y.choices[A]={finish_reason:z,index:A,message:{},logprobs:Q,..._};if(Q)if(!D.logprobs)D.logprobs=Object.assign({},Q);else{let{content:f,refusal:C,...B}=Q;if(q3(B),Object.assign(D.logprobs,B),f)(J=D.logprobs).content??(J.content=[]),D.logprobs.content.push(...f);if(C)(W=D.logprobs).refusal??(W.refusal=[]),D.logprobs.refusal.push(...C)}if(z){if(D.finish_reason=z,xT(this,_1,"f")&&XY(xT(this,_1,"f"))){if(z==="length")throw new gX;if(z==="content_filter")throw new pX}}if(Object.assign(D,_),!M)continue;let{content:K,refusal:Z,function_call:k,role:N,tool_calls:y,...V}=M;if(q3(V),Object.assign(D.message,V),Z)D.message.refusal=(D.message.refusal||"")+Z;if(N)D.message.role=N;if(k)if(!D.message.function_call)D.message.function_call=k;else{if(k.name)D.message.function_call.name=k.name;if(k.arguments)(X=D.message.function_call).arguments??(X.arguments=""),D.message.function_call.arguments+=k.arguments}if(K){if(D.message.content=(D.message.content||"")+K,!D.message.refusal&&xT(this,D$,"m",UY).call(this))D.message.parsed=zY(D.message.content)}if(y){if(!D.message.tool_calls)D.message.tool_calls=[];for(let{index:f,id:C,type:B,function:m,...$T}of y){let E=(F=D.message.tool_calls)[f]??(F[f]={});if(Object.assign(E,$T),C)E.id=C;if(B)E.type=B;if(m)E.function??(E.function={name:m.name??"",arguments:""});if(m?.name)E.function.name=m.name;if(m?.arguments){if(E.function.arguments+=m.arguments,L3(xT(this,_1,"f"),E))E.function.parsed_arguments=zY(E.function.arguments)}}}}return Y},Symbol.asyncIterator)](){let T=[],$=[],J=!1;return this.on("chunk",(W)=>{let X=$.shift();if(X)X.resolve(W);else T.push(W)}),this.on("end",()=>{J=!0;for(let W of $)W.resolve(void 0);$.length=0}),this.on("abort",(W)=>{J=!0;for(let X of $)X.reject(W);$.length=0}),this.on("error",(W)=>{J=!0;for(let X of $)X.reject(W);$.length=0}),{next:async()=>{if(!T.length){if(J)return{value:void 0,done:!0};return new Promise((X,F)=>$.push({resolve:X,reject:F})).then((X)=>X?{value:X,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new YJ(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function CD(T,$){let{id:J,choices:W,created:X,model:F,system_fingerprint:Y,...G}=T,H={...G,id:J,choices:W.map(({message:M,finish_reason:z,index:A,logprobs:Q,..._})=>{if(!z)throw new t(`missing finish_reason for choice ${A}`);let{content:D=null,function_call:K,tool_calls:Z,...k}=M,N=M.role;if(!N)throw new t(`missing role for choice ${A}`);if(K){let{arguments:y,name:V}=K;if(y==null)throw new t(`missing function_call.arguments for choice ${A}`);if(!V)throw new t(`missing function_call.name for choice ${A}`);return{..._,message:{content:D,function_call:{arguments:y,name:V},role:N,refusal:M.refusal??null},finish_reason:z,index:A,logprobs:Q}}if(Z)return{..._,index:A,finish_reason:z,logprobs:Q,message:{...k,role:N,content:D,refusal:M.refusal??null,tool_calls:Z.map((y,V)=>{let{function:f,type:C,id:B,...m}=y,{arguments:$T,name:E,...XT}=f||{};if(B==null)throw new t(`missing choices[${A}].tool_calls[${V}].id
31
31
  ${RF(T)}`);if(C==null)throw new t(`missing choices[${A}].tool_calls[${V}].type
32
32
  ${RF(T)}`);if(E==null)throw new t(`missing choices[${A}].tool_calls[${V}].function.name
@@ -64,8 +64,8 @@ ${G}
64
64
 
65
65
  Cached:
66
66
  ${Y}`)}let H=xJ.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(nT.readFileSync(H,"utf-8"))}async write(T,$,J,W){let X=xJ.join(this.baseDir,T),F=xJ.join(X,`${$}.input.json`),Y=xJ.join(X,`${$}.output.json`),G=JSON.stringify(J,null,"\t");if(!nT.existsSync(this.baseDir))nT.mkdirSync(this.baseDir,{recursive:!0});if(!nT.existsSync(X))nT.mkdirSync(X);if(nT.writeFileSync(F,G),nT.existsSync(Y))nT.unlinkSync(Y);let H=await W(...J),M=JSON.stringify(H,null,"\t");return nT.writeFileSync(Y,M),H}add(T,$){let J=`${this.rootName}${G$}${bW(T)}`;return{flush:()=>{this.flush(T)},for:(W)=>{if(this.mode!=="off"){if(this.filesTouched.set(T,new Set),PT.storage.initialized&&!PT.storage.getItem(`list${G$}${J}`))PT.storage.setItem(`list${G$}${J}`,"true")}return{get:async(...X)=>{let F=W;if(this.mode!=="off"){let Y=this.filenameCache.get(W);if(!Y)Y=bW(W),this.filenameCache.set(W,Y);F=Y,this.filesTouched.get(T)?.add(F);let G=`${J}${G$}${F}`,H=`file${G$}${G}`;if(PT.storage.initialized&&!PT.storage.getItem(H))PT.storage.setItem(H,"true")}switch(this.mode){case"off":return $(...X);case"read":return this.read(T,F,X);case"write":return this.write(T,F,X,$);case"read-write":try{return this.read(T,F,X)}catch(Y){if(Y instanceof Error)return this.write(T,F,X,$);throw Y}}}}}}}flush(...T){console.log(this.filesTouched);for(let[$,J]of this.filesTouched.entries())if(T.length===0||T.includes($)){let W=xJ.join(this.baseDir,$),X=nT.readdirSync(W);for(let F of X){let Y=F.replace(".input.json","").replace(".output.json","");if(!J.has(Y))console.info(`\uD83E\uDDF9 Flushing ${Y}`),nT.unlinkSync(xJ.join(W,F))}}}};function AS(T,...$){let[J,W,X,F]=$,Y=[{role:"user",content:nG(W)},{role:"user",content:J}],G=F.at(-1);if(G)Y.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(G.response,null,2),"Here's the error message:",JSON.stringify(G.error.issues,null,2)].join(`
67
- `)});return{model:T,messages:Y}}var BY={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function QS(T){return async function $(J,W){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let X=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},W),F=X.choices[0].message?.content,{usage:Y}=X;if(F&&Y){let G=Y.prompt_tokens,H=Y.prompt_tokens_details?.cached_tokens??0,M=G-H,z=Y.completion_tokens,A=G*BY[J.model].promptPricePerToken+M*BY[J.model].promptPricePerTokenCached+z*BY[J.model].completionPricePerToken;return{data:JSON.parse(F),usage:Y,usdPrice:A}}if(!F&&!Y)throw new Error("No content or usage found in completion");if(!F)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var GH=new Map,HH=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:X,cacheKey:F="openai-safegen",logger:Y}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new YH(X);let G=GH.get(W);if(X!=="read"){if(!G)G=new l3({apiKey:W,dangerouslyAllowBrowser:!1}),GH.set(W,G);this.client=G}this.getUnknownJsonFromOpenAi=QS(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(F,this.getUnknownJsonFromOpenAi),this.from=lG(async(...H)=>{if(this.usdBudget<this.usdMinimum)return Y?.warn("SafeGen budget exhausted"),H[1];let M=AS(T,...H),z=H[0],A=H[3],{data:Q,usage:_,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${z.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${A.length}`).get(M);return this.lastUsage=_,this.usdBudget-=D,Q},Y)}from};import{exec as _L}from"child_process";var fY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[W,X]of T.atoms){if(h1(W))continue;let F=n$(X);if(X.family){let Y=J.get(X.family.key);if(!Y||!("familyMembers"in Y))Y={key:X.family.key,familyMembers:new Map},J.set(X.family.key,Y);Y.familyMembers.set(X.family.subKey,F)}else J.set(W,F)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var NY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let W of[T.readonlySelectors,T.selectors])for(let[X,F]of W){if(h1(X))continue;let Y=n$(F);if(F.family){let G=J.get(F.family.key);if(!G||!("familyMembers"in G))G={key:F.family.key,familyMembers:new Map},J.set(F.family.key,G);G.familyMembers.set(F.family.subKey,Y)}else J.set(X,Y)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class IF{supported;constructor(T){this.supported=T}refine(T){for(let[$,J]of Object.entries(this.supported))try{if(J(T)===!0&&J!==Boolean)return{type:$,data:T}}catch(W){try{if(T instanceof J)return{type:$,data:T}}catch(X){}}return null}}var CY=new IF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function ZY(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var kY=new IF({object:ZY,array:(T)=>Array.isArray(T)}),wS=new IF({...CY.supported,...kY.supported}),PW=(T)=>{if(T===void 0)return"undefined";let $=wS.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class MH{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=ST.STORE){this.store=T,this.atomIndex=fY(this.store),this.selectorIndex=NY(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=MH.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=$6(this.atomIndex),J=$6(this.selectorIndex),W=[...$.values()].filter((G)=>("familyMembers"in G)),X=[...J.values()].filter((G)=>("familyMembers"in G)),F=performance.now(),Y=[];if(T.atomFamilies)for(let G of W){let H=G.familyMembers.values();for(let M of H){let A=this.statesCreatedAt.get(M.key)??this.auditorCreatedAt,Q=F-A;Y.push([M,Q])}}if(T.selectorFamilies)for(let G of X){let H=G.familyMembers.values();for(let M of H){let A=this.statesCreatedAt.get(M.key)??this.auditorCreatedAt,Q=F-A;Y.push([M,Q])}}return Y}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var qY=(T,$)=>{let J=(W,X)=>{let Y=((H,M)=>{let z=$(H,M);if(z)return z;return null})(W,X);if(Y?.jobComplete??Y?.pathComplete)return Y;let G=Array.isArray(X)?X.map((H,M)=>[M,H]):ZY(X)?Object.entries(X):[];for(let[H,M]of G){let z=J([...W,H],M);if(z?.jobComplete)return z}return{}};J([],T)};function OS(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function US(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function _S(T,$){return{summary:`${T} \u2192 ${$}`}}function zH(T,$,J){let W="",X=[],F=[],Y=[];return qY(T,(G,H)=>{let M;for(M of G){let z=$[M];if(z===void 0)F.push([M,JSON.stringify(H)]);else{let A=J(H,z);if(A.summary!=="No Change")Y.push([M,A])}}}),qY($,(G,H)=>{let M;for(M of G)if(T[M]===void 0)X.push([M,JSON.stringify(H)])}),W=`\uFF5E${Y.length} \uFF0B${X.length} \uFF0D${F.length}`,{summary:W,added:X,removed:F,changed:Y}}function DS(T,$,J){return zH(T,$,J)}class AH{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let W of Object.keys(T.supported)){let X=J[W];this.leafDiffers[W]=X}for(let W of Object.keys($.supported)){let X=J[W];this.treeDiffers[W]=X}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),W=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&W!==null){if(J.type===W.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,W.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,W.data,(G,H)=>this.diff(G,H))}}let X=PW(T),F=PW($);if(X===F)return{summary:`${X} \u2192 ${F}`};return{summary:`Type change: ${X} \u2192 ${F}`}}}var Qu=new AH(CY,kY,{number:OS,string:US,boolean:_S,null:()=>({summary:"No Change"}),object:zH,array:DS});var O=Symbol.for("drizzle:entityKind"),Vu=Symbol.for("drizzle:hasOwnEntityKind");function L(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,O))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(O in J&&J[O]===$[O])return!0;J=Object.getPrototypeOf(J)}return!1}class vT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[O]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class yY{static[O]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var bJ=Symbol.for("drizzle:Name");class IY{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:X}=T();return{name:J,columns:W,foreignTable:X[0].table,foreignColumns:X}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new QH(T,this)}}class QH{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),W=$.map((Y)=>Y.name),X=J.map((Y)=>Y.name),F=[this.table[bJ],...W,J[0].table[bJ],...X];return T??`${F.join("_")}_fk`}}function jF(T,...$){return T(...$)}function wH(T,$){return`${T[bJ]}_${$.join("_")}_unique`}function OH(T,$,J){for(let W=$;W<T.length;W++){let X=T[W];if(X==="\\"){W++;continue}if(X==='"')return[T.slice($,W).replace(/\\/g,""),W+1];if(J)continue;if(X===","||X==="}")return[T.slice($,W).replace(/\\/g,""),W]}return[T.slice($).replace(/\\/g,""),T.length]}function UH(T,$=0){let J=[],W=$,X=!1;while(W<T.length){let F=T[W];if(F===","){if(X||W===$)J.push("");X=!0,W++;continue}if(X=!1,F==="\\"){W+=2;continue}if(F==='"'){let[H,M]=OH(T,W+1,!0);J.push(H),W=M;continue}if(F==="}")return[J,W+1];if(F==="{"){let[H,M]=UH(T,W+1);J.push(H),W=M;continue}let[Y,G]=OH(T,W,!1);J.push(Y),W=G}return[J,W]}function _H(T){let[$]=UH(T,1);return $}function jY(T){return`{${T.map(($)=>{if(Array.isArray($))return jY($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class d extends yY{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new SH(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:W})=>{return jF((X,F)=>{let Y=new IY(()=>{let G=X();return{columns:[T],foreignColumns:[G]}});if(F.onUpdate)Y.onUpdate(F.onUpdate);if(F.onDelete)Y.onDelete(F.onDelete);return Y.build($)},J,W)})}buildExtraConfigColumn(T){return new DH(T,this.config)}}class b extends vT{constructor(T,$){if(!$.uniqueName)$.uniqueName=wH(T,[$.name]);super(T,$);this.table=T}static[O]="PgColumn"}class DH extends b{static[O]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class f2{static[O]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class SH extends d{static[O]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new xY(T,this.config,$)}}class xY extends b{constructor(T,$,J,W){super(T,$);this.baseColumn=J,this.range=W,this.size=$.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=_H(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((W)=>W===null?null:L(this.baseColumn,xY)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if($)return J;return jY(J)}}var bY=Symbol.for("drizzle:isPgEnum");function KH(T){return!!T&&typeof T==="function"&&bY in T&&T[bY]===!0}class VH extends d{static[O]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new EH(T,this.config)}}class EH extends b{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function xF(T,$){return SS(T,$,void 0)}function SS(T,$,J){let W=Object.assign((X)=>new VH(X??"",W),{enumName:T,enumValues:$,schema:J,[bY]:!0});return W}class S${static[O]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class N2 extends S${static[O]="WithSubquery"}var RH="0.41.0";var PY,vY,hT={startActiveSpan(T,$){if(!PY)return $();if(!vY)vY=PY.trace.getTracer("drizzle-orm",RH);return jF((J,W)=>W.startActiveSpan(T,(X)=>{try{return $(X)}catch(F){throw X.setStatus({code:J.SpanStatusCode.ERROR,message:F instanceof Error?F.message:"Unknown error"}),F}finally{X.end()}}),PY,vY)}};var uT=Symbol.for("drizzle:ViewBaseConfig");var bF=Symbol.for("drizzle:Schema"),PF=Symbol.for("drizzle:Columns"),LH=Symbol.for("drizzle:ExtraConfigColumns"),hY=Symbol.for("drizzle:OriginalName"),mY=Symbol.for("drizzle:BaseName"),C2=Symbol.for("drizzle:IsAlias"),BH=Symbol.for("drizzle:ExtraConfigBuilder"),KS=Symbol.for("drizzle:IsDrizzleTable");class u{static[O]="Table";static Symbol={Name:bJ,Schema:bF,OriginalName:hY,Columns:PF,ExtraConfigColumns:LH,BaseName:mY,IsAlias:C2,ExtraConfigBuilder:BH};[bJ];[hY];[bF];[PF];[LH];[mY];[C2]=!1;[KS]=!0;[BH]=void 0;constructor(T,$,J){this[bJ]=this[hY]=T,this[bF]=$,this[mY]=J}}function B$(T){return T[bJ]}function h0(T){return`${T[bF]??"public"}.${T[bJ]}`}function gY(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function VS(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class K${static[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=NH;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return hT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:W,escapeName:X,escapeParam:F,prepareTyping:Y,inlineParams:G,paramStartIndex:H}=J;return VS(T.map((M)=>{if(L(M,K$))return{sql:M.value.join(""),params:[]};if(L(M,vF))return{sql:X(M.value),params:[]};if(M===void 0)return{sql:"",params:[]};if(Array.isArray(M)){let z=[new K$("(")];for(let[A,Q]of M.entries())if(z.push(Q),A<M.length-1)z.push(new K$(", "));return z.push(new K$(")")),this.buildQueryFromSourceParams(z,J)}if(L(M,c))return this.buildQueryFromSourceParams(M.queryChunks,{...J,inlineParams:G||M.shouldInlineParams});if(L(M,u)){let z=M[u.Symbol.Schema],A=M[u.Symbol.Name];return{sql:z===void 0||M[C2]?X(A):X(z)+"."+X(A),params:[]}}if(L(M,vT)){let z=W.getColumnCasing(M);if($.invokeSource==="indexes")return{sql:X(z),params:[]};let A=M.table[u.Symbol.Schema];return{sql:M.table[C2]||A===void 0?X(M.table[u.Symbol.Name])+"."+X(z):X(A)+"."+X(M.table[u.Symbol.Name])+"."+X(z),params:[]}}if(L(M,a$)){let z=M[uT].schema,A=M[uT].name;return{sql:z===void 0||M[uT].isAlias?X(A):X(z)+"."+X(A),params:[]}}if(L(M,zJ)){if(L(M.value,t1))return{sql:F(H.value++,M),params:[M],typings:["none"]};let z=M.value===null?null:M.encoder.mapToDriverValue(M.value);if(L(z,c))return this.buildQueryFromSourceParams([z],J);if(G)return{sql:this.mapInlineParam(z,J),params:[]};let A=["none"];if(Y)A=[Y(M.encoder)];return{sql:F(H.value++,z),params:[z],typings:A}}if(L(M,t1))return{sql:F(H.value++,M),params:[M],typings:["none"]};if(L(M,c.Aliased)&&M.fieldAlias!==void 0)return{sql:X(M.fieldAlias),params:[]};if(L(M,S$)){if(M._.isWith)return{sql:X(M._.alias),params:[]};return this.buildQueryFromSourceParams([new K$("("),M._.sql,new K$(") "),new vF(M._.alias)],J)}if(KH(M)){if(M.schema)return{sql:X(M.schema)+"."+X(M.enumName),params:[]};return{sql:X(M.enumName),params:[]}}if(gY(M)){if(M.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([M.getSQL()],J);return this.buildQueryFromSourceParams([new K$("("),M.getSQL(),new K$(")")],J)}if(G)return{sql:this.mapInlineParam(M,J),params:[]};return{sql:F(H.value++,M),params:[M],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new c.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class vF{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new c([this])}}function fH(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var NH={mapFromDriverValue:(T)=>T},CH={mapToDriverValue:(T)=>T},Hc={...NH,...CH};class zJ{constructor(T,$=CH){this.value=T,this.encoder=$}static[O]="Param";brand;getSQL(){return new c([this])}}function U(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new K$(T[0]));for(let[W,X]of $.entries())J.push(X,new K$(T[W+1]));return new c(J)}((T)=>{function $(){return new c([])}T.empty=$;function J(H){return new c(H)}T.fromList=J;function W(H){return new c([new K$(H)])}T.raw=W;function X(H,M){let z=[];for(let[A,Q]of H.entries()){if(A>0&&M!==void 0)z.push(M);z.push(Q)}return new c(z)}T.join=X;function F(H){return new vF(H)}T.identifier=F;function Y(H){return new t1(H)}T.placeholder=Y;function G(H,M){return new zJ(H,M)}T.param=G})(U||(U={}));((T)=>{class ${constructor(J,W){this.sql=J,this.fieldAlias=W}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(c||(c={}));class t1{constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new c([this])}}function pY(T,$){return T.map((J)=>{if(L(J,t1)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(L(J,zJ)&&L(J.value,t1)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var ES=Symbol.for("drizzle:IsDrizzleView");class a${static[O]="View";[uT];[ES]=!0;constructor({name:T,schema:$,selectedFields:J,query:W}){this[uT]={name:T,originalName:T,schema:$,selectedFields:J,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new c([this])}}vT.prototype.getSQL=function(){return new c([this])};u.prototype.getSQL=function(){return new c([this])};S$.prototype.getSQL=function(){return new c([this])};class vW{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class Z2{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[O]="TableAliasProxyHandler";get(T,$){if($===u.Symbol.IsAlias)return!0;if($===u.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===u.Symbol.OriginalName)return this.alias;if($===uT)return{...T[uT],name:this.alias,isAlias:!0};if($===u.Symbol.Columns){let W=T[u.Symbol.Columns];if(!W)return W;let X={};return Object.keys(W).map((F)=>{X[F]=new Proxy(W[F],new vW(new Proxy(T,this)))}),X}let J=T[$];if(L(J,vT))return new Proxy(J,new vW(new Proxy(T,this)));return J}}function hF(T,$){return new Proxy(T,new Z2($,!1))}function aJ(T,$){return new Proxy(T,new vW(new Proxy(T.table,new Z2($,!1))))}function uY(T,$){return new c.Aliased(k2(T.sql,$),T.fieldAlias)}function k2(T,$){return U.join(T.queryChunks.map((J)=>{if(L(J,vT))return aJ(J,$);if(L(J,c))return k2(J,$);if(L(J,c.Aliased))return uY(J,$);return J}))}class mF extends Error{static[O]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class cY extends mF{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function s$(T,$){if(fH($)&&!gY(T)&&!L(T,zJ)&&!L(T,t1)&&!L(T,vT)&&!L(T,u)&&!L(T,a$))return new zJ(T,$);return T}var gF=(T,$)=>{return U`${T} = ${s$($,T)}`},ZH=(T,$)=>{return U`${T} <> ${s$($,T)}`};function q2(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" and ")),new K$(")")])}function kH(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" or ")),new K$(")")])}function qH(T){return U`not ${T}`}var pF=(T,$)=>{return U`${T} > ${s$($,T)}`},yH=(T,$)=>{return U`${T} >= ${s$($,T)}`},IH=(T,$)=>{return U`${T} < ${s$($,T)}`},jH=(T,$)=>{return U`${T} <= ${s$($,T)}`};function xH(T,$){if(Array.isArray($)){if($.length===0)return U`false`;return U`${T} in ${$.map((J)=>s$(J,T))}`}return U`${T} in ${s$($,T)}`}function bH(T,$){if(Array.isArray($)){if($.length===0)return U`true`;return U`${T} not in ${$.map((J)=>s$(J,T))}`}return U`${T} not in ${s$($,T)}`}function PH(T){return U`${T} is null`}function vH(T){return U`${T} is not null`}function hH(T){return U`exists ${T}`}function mH(T){return U`not exists ${T}`}function gH(T,$,J){return U`${T} between ${s$($,T)} and ${s$(J,T)}`}function pH(T,$,J){return U`${T} not between ${s$($,T)} and ${s$(J,T)}`}function uH(T,$){return U`${T} like ${$}`}function cH(T,$){return U`${T} not like ${$}`}function oH(T,$){return U`${T} ilike ${$}`}function dH(T,$){return U`${T} not ilike ${$}`}function lH(T){return U`${T} asc`}function nH(T){return U`${T} desc`}class iH{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class oY{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new iH}logQuery(T,$){let J=$.map((X)=>{try{return JSON.stringify(X)}catch{return String(X)}}),W=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class dY{static[O]="NoopLogger";logQuery(){}}class u${static[O]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function tH(T,$,J){let W={},X=T.reduce((F,{path:Y,field:G},H)=>{let M;if(L(G,vT))M=G;else if(L(G,c))M=G.decoder;else M=G.sql.decoder;let z=F;for(let[A,Q]of Y.entries())if(A<Y.length-1){if(!(Q in z))z[Q]={};z=z[Q]}else{let _=$[H],D=z[Q]=_===null?null:M.mapFromDriverValue(_);if(J&&L(G,vT)&&Y.length===2){let K=Y[0];if(!(K in W))W[K]=D===null?B$(G.table):!1;else if(typeof W[K]==="string"&&W[K]!==B$(G.table))W[K]=!1}}return F},{});if(J&&Object.keys(W).length>0){for(let[F,Y]of Object.entries(W))if(typeof Y==="string"&&!J[Y])X[F]=null}return X}function EJ(T,$){return Object.entries(T).reduce((J,[W,X])=>{if(typeof W!=="string")return J;let F=$?[...$,W]:[W];if(L(X,vT)||L(X,c)||L(X,c.Aliased))J.push({path:F,field:X});else if(L(X,u))J.push(...EJ(X[u.Symbol.Columns],F));else J.push(...EJ(X,F));return J},[])}function y2(T,$){let J=Object.keys(T),W=Object.keys($);if(J.length!==W.length)return!1;for(let[X,F]of J.entries())if(F!==W[X])return!1;return!0}function uF(T,$){let J=Object.entries($).filter(([,W])=>W!==void 0).map(([W,X])=>{if(L(X,c)||L(X,vT))return[W,X];else return[W,new zJ(X,T[u.Symbol.Columns][W])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function rH(T,$){for(let J of $)for(let W of Object.getOwnPropertyNames(J.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(J.prototype,W)||Object.create(null))}}function aH(T){return T[u.Symbol.Columns]}function V1(T){return L(T,S$)?T._.alias:L(T,a$)?T[uT].name:L(T,c)?void 0:T[u.Symbol.IsAlias]?T[u.Symbol.Name]:T[u.Symbol.BaseName]}function VT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function sH(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let $=typeof T.logger;if($!=="boolean"&&($!=="object"||typeof T.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in T){let $=typeof T.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let $=typeof T.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in T){let $=typeof T.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class r1 extends d{static[O]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class eH extends r1{static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new TM(T,this.config)}}class TM extends b{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class $M extends r1{static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new JM(T,this.config)}}class JM extends b{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function WM(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new eH(J);return new $M(J)}class XM extends d{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new FM(T,this.config)}}class FM extends b{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class YM extends d{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new GM(T,this.config)}}class GM extends b{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function HM(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new XM(J);return new YM(J)}class MM extends d{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new zM(T,this.config)}}class zM extends b{static[O]="PgBoolean";getSQLType(){return"boolean"}}function I2(T){return new MM(T??"")}class AM extends d{static[O]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new QM(T,this.config)}}class QM extends b{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function wM(T,$={}){let{name:J,config:W}=VT(T,$);return new AM(J,W)}class OM extends d{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new UM(T,this.config)}}class UM extends b{static[O]="PgCidr";getSQLType(){return"cidr"}}function _M(T){return new OM(T??"")}class DM extends d{static[O]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new SM(T,this.config)}}class SM extends b{static[O]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function KM(T){return($,J)=>{let{name:W,config:X}=VT($,J);return new DM(W,X,T)}}class E1 extends d{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(U`now()`)}}class VM extends E1{static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new cF(T,this.config)}}class cF extends b{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class EM extends E1{static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new oF(T,this.config)}}class oF extends b{static[O]="PgDateString";getSQLType(){return"date"}}function RM(T,$){let{name:J,config:W}=VT(T,$);if(W?.mode==="date")return new VM(J);return new EM(J)}class LM extends d{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new BM(T,this.config)}}class BM extends b{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function fM(T){return new LM(T??"")}class NM extends d{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new CM(T,this.config)}}class CM extends b{static[O]="PgInet";getSQLType(){return"inet"}}function ZM(T){return new NM(T??"")}class kM extends r1{static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new qM(T,this.config)}}class qM extends b{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function dF(T){return new kM(T??"")}class yM extends d{static[O]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new IM(T,this.config)}}class IM extends b{static[O]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function jM(T,$={}){let{name:J,config:W}=VT(T,$);return new yM(J,W)}class xM extends d{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new lF(T,this.config)}}class lF extends b{static[O]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function bM(T){return new xM(T??"")}class PM extends d{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new nF(T,this.config)}}class nF extends b{static[O]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function vM(T){return new PM(T??"")}class hM extends d{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new mM(T,this.config)}}class mM extends b{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class gM extends d{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new pM(T,this.config)}}class pM extends b{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function uM(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new hM(J);return new gM(J)}class cM extends d{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new oM(T,this.config)}}class oM extends b{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function dM(T){return new cM(T??"")}class lM extends d{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new nM(T,this.config)}}class nM extends b{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function iM(T){return new lM(T??"")}class tM extends d{static[O]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new iF(T,this.config)}}class iF extends b{static[O]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="string")return T;return String(T)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class rM extends d{static[O]="PgNumericNumberBuilder";constructor(T,$,J){super(T,"number","PgNumericNumber");this.config.precision=$,this.config.scale=J}build(T){return new aM(T,this.config)}}class aM extends b{static[O]="PgNumericNumber";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class sM extends d{static[O]="PgNumericBigIntBuilder";constructor(T,$,J){super(T,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=J}build(T){return new eM(T,this.config)}}class eM extends b{static[O]="PgNumericBigInt";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function Tz(T,$){let{name:J,config:W}=VT(T,$),X=W?.mode;return X==="number"?new rM(J,W?.precision,W?.scale):X==="bigint"?new sM(J,W?.precision,W?.scale):new tM(J,W?.precision,W?.scale)}class $z extends d{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new Jz(T,this.config)}}class Jz extends b{static[O]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class Wz extends d{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new Xz(T,this.config)}}class Xz extends b{static[O]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function Fz(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new $z(J);return new Wz(J)}function RS(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function Yz(T,$){let J=new ArrayBuffer(8),W=new DataView(J);for(let X=0;X<8;X++)W.setUint8(X,T[$+X]);return W.getFloat64(0,!0)}function lY(T){let $=RS(T),J=0,W=$[J];J+=1;let X=new DataView($.buffer),F=X.getUint32(J,W===1);J+=4;let Y;if(F&536870912)Y=X.getUint32(J,W===1),J+=4;if((F&65535)===1){let G=Yz($,J);J+=8;let H=Yz($,J);return J+=8,[G,H]}throw new Error("Unsupported geometry type")}class Gz extends d{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new Hz(T,this.config)}}class Hz extends b{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return lY(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class Mz extends d{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new zz(T,this.config)}}class zz extends b{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=lY(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function Az(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new Gz(J);return new Mz(J)}class Qz extends d{static[O]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new wz(T,this.config)}}class wz extends b{static[O]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function Oz(T){return new Qz(T??"")}class Uz extends d{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new _z(T,this.config)}}class _z extends b{static[O]="PgSerial";getSQLType(){return"serial"}}function Dz(T){return new Uz(T??"")}class Sz extends r1{static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new Kz(T,this.config)}}class Kz extends b{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function Vz(T){return new Sz(T??"")}class Ez extends d{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Rz(T,this.config)}}class Rz extends b{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function Lz(T){return new Ez(T??"")}class Bz extends d{static[O]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new fz(T,this.config)}}class fz extends b{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function Nz(T,$={}){let{name:J,config:W}=VT(T,$);return new Bz(J,W)}class Cz extends E1{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[O]="PgTimeBuilder";build(T){return new tF(T,this.config)}}class tF extends b{static[O]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Zz(T,$={}){let{name:J,config:W}=VT(T,$);return new Cz(J,W.withTimezone??!1,W.precision)}class kz extends E1{static[O]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new rF(T,this.config)}}class rF extends b{static[O]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class qz extends E1{static[O]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new aF(T,this.config)}}class aF extends b{static[O]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function PJ(T,$={}){let{name:J,config:W}=VT(T,$);if(W?.mode==="string")return new qz(J,W.withTimezone??!1,W.precision);return new kz(J,W?.withTimezone??!1,W?.precision)}class yz extends d{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(U`gen_random_uuid()`)}build(T){return new sF(T,this.config)}}class sF extends b{static[O]="PgUUID";getSQLType(){return"uuid"}}function AJ(T){return new yz(T??"")}class Iz extends d{static[O]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new jz(T,this.config)}}class jz extends b{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function Z$(T,$={}){let{name:J,config:W}=VT(T,$);return new Iz(J,W)}class xz extends d{static[O]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new bz(T,this.config)}}class bz extends b{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function Pz(T,$){let{name:J,config:W}=VT(T,$);return new xz(J,W)}class vz extends d{static[O]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new hz(T,this.config)}}class hz extends b{static[O]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function mz(T,$){let{name:J,config:W}=VT(T,$);return new vz(J,W)}class gz extends d{static[O]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new pz(T,this.config)}}class pz extends b{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function uz(T,$){let{name:J,config:W}=VT(T,$);return new gz(J,W)}class cz extends d{static[O]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new oz(T,this.config)}}class oz extends b{static[O]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function dz(T,$){let{name:J,config:W}=VT(T,$);return new cz(J,W)}function lz(){return{bigint:WM,bigserial:HM,boolean:I2,char:wM,cidr:_M,customType:KM,date:RM,doublePrecision:fM,inet:ZM,integer:dF,interval:jM,json:bM,jsonb:vM,line:uM,macaddr:dM,macaddr8:iM,numeric:Tz,point:Fz,geometry:Az,real:Oz,serial:Dz,smallint:Vz,smallserial:Lz,text:Nz,time:Zz,timestamp:PJ,uuid:AJ,varchar:Z$,bit:Pz,halfvec:mz,sparsevec:uz,vector:dz}}var nY=Symbol.for("drizzle:PgInlineForeignKeys"),nz=Symbol.for("drizzle:EnableRLS");class k$ extends u{static[O]="PgTable";static Symbol=Object.assign({},u.Symbol,{InlineForeignKeys:nY,EnableRLS:nz});[nY]=[];[nz]=!1;[u.Symbol.ExtraConfigBuilder]=void 0;[u.Symbol.ExtraConfigColumns]={}}function LS(T,$,J,W,X=T){let F=new k$(T,W,X),Y=typeof $==="function"?$(lz()):$,G=Object.fromEntries(Object.entries(Y).map(([z,A])=>{let Q=A;Q.setName(z);let _=Q.build(F);return F[nY].push(...Q.buildForeignKeys(_,F)),[z,_]})),H=Object.fromEntries(Object.entries(Y).map(([z,A])=>{let Q=A;Q.setName(z);let _=Q.buildExtraConfigColumn(F);return[z,_]})),M=Object.assign(F,G);if(M[u.Symbol.Columns]=G,M[u.Symbol.ExtraConfigColumns]=H,J)M[k$.Symbol.ExtraConfigBuilder]=J;return Object.assign(M,{enableRLS:()=>{return M[k$.Symbol.EnableRLS]=!0,M}})}var a1=(T,$,J)=>{return LS(T,$,J,void 0)};function iz(...T){if(T[0].columns)return new j2(T[0].columns,T[0].name);return new j2(T)}class j2{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new tz(T,this.columns,this.name)}}class tz{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[k$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class iY{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[u.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class rz{constructor(T,$){this.table=T,this.config=$}static[O]="Relations"}class s1 extends iY{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[O]="One";withFieldName(T){let $=new s1(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class x2 extends iY{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[O]="Many";withFieldName(T){let $=new x2(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function az(){return{and:q2,between:gH,eq:gF,exists:hH,gt:pF,gte:yH,ilike:oH,inArray:xH,isNull:PH,isNotNull:vH,like:uH,lt:IH,lte:jH,ne:ZH,not:qH,notBetween:pH,notExists:mH,notLike:cH,notIlike:dH,notInArray:bH,or:kH,sql:U}}function sz(){return{sql:U,asc:lH,desc:nH}}function ez(T,$){if(Object.keys(T).length===1&&"default"in T&&!L(T.default,u))T=T.default;let J={},W={},X={};for(let[F,Y]of Object.entries(T))if(L(Y,u)){let G=h0(Y),H=W[G];J[G]=F,X[F]={tsName:F,dbName:Y[u.Symbol.Name],schema:Y[u.Symbol.Schema],columns:Y[u.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let z of Object.values(Y[u.Symbol.Columns]))if(z.primary)X[F].primaryKey.push(z);let M=Y[u.Symbol.ExtraConfigBuilder]?.(Y[u.Symbol.ExtraConfigColumns]);if(M){for(let z of Object.values(M))if(L(z,j2))X[F].primaryKey.push(...z.columns)}}else if(L(Y,rz)){let G=h0(Y.table),H=J[G],M=Y.config($(Y.table)),z;for(let[A,Q]of Object.entries(M))if(H){let _=X[H];if(_.relations[A]=Q,z)_.primaryKey.push(...z)}else{if(!(G in W))W[G]={relations:{},primaryKey:z};W[G].relations[A]=Q}}return{tables:X,tableNamesMap:J}}function BS(T){return function $(J,W){return new s1(T,J,W,W?.fields.reduce((X,F)=>X&&F.notNull,!0)??!1)}}function fS(T){return function $(J,W){return new x2(T,J,W)}}function TA(T,$,J){if(L(J,s1)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[h0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[u.Symbol.Name]}" not found in schema`);let X=T[W];if(!X)throw new Error(`Table "${W}" not found in schema`);let F=J.sourceTable,Y=$[h0(F)];if(!Y)throw new Error(`Table "${F[u.Symbol.Name]}" not found in schema`);let G=[];for(let H of Object.values(X.relations))if(J.relationName&&J!==H&&H.relationName===J.relationName||!J.relationName&&H.referencedTable===J.sourceTable)G.push(H);if(G.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${J.sourceTable[u.Symbol.Name]}". Please specify relation name`);if(G[0]&&L(G[0],s1)&&G[0].config)return{fields:G[0].config.references,references:G[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${J.fieldName}"`)}function $A(T){return{one:BS(T),many:fS(T)}}function eF(T,$,J,W,X=(F)=>F){let F={};for(let[Y,G]of W.entries())if(G.isJson){let H=$.relations[G.tsKey],M=J[Y],z=typeof M==="string"?JSON.parse(M):M;F[G.tsKey]=L(H,s1)?z&&eF(T,T[G.relationTableTsKey],z,G.selection,X):z.map((A)=>eF(T,T[G.relationTableTsKey],A,G.selection,X))}else{let H=X(J[Y]),M=G.field,z;if(L(M,vT))z=M;else if(L(M,c))z=M.decoder;else z=M.sql.decoder;F[G.tsKey]=H===null?null:z.mapFromDriverValue(H)}return F}import zL from"path";import tS from"os";import rS from"fs";var T4=new Map,tY=new Map,rY=Symbol("OriginError"),hW={};class RJ extends Promise{constructor(T,$,J,W,X={}){let F,Y;super((G,H)=>{F=G,Y=H});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=X,this.state=null,this.statement=null,this.resolve=(G)=>(this.active=!1,F(G)),this.reject=(G)=>(this.active=!1,Y(G)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[rY]=this.handler.debug?new Error:this.tagged&&NS(this.strings)}get origin(){return(this.handler.debug?this[rY].stack:this.tagged&&tY.has(this.strings)?tY.get(this.strings):tY.set(this.strings,this[rY].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let J;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};J&&J();let W=new Promise((X,F)=>{this.cursorFn=(Y)=>{return X({value:Y,done:!1}),new Promise((G)=>J=G)},this.resolve=()=>(this.active=!1,X({done:!0})),this.reject=(Y)=>(this.active=!1,F(Y))});return this.execute(),W},return(){return J&&J(hW),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(T){return this.forEachFn=T,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function NS(T){if(T4.has(T))return T4.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,T4.set(T,new Error),Error.stackTraceLimit=$,T4.get(T)}class mW extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var H$={connection:JA,postgres:WA,generic:XA,notSupported:FA};function JA(T,$,J){let{host:W,port:X}=J||$,F=Object.assign(new Error("write "+T+" "+($.path||W+":"+X)),{code:T,errno:T,address:$.path||W},$.path?{}:{port:X});return Error.captureStackTrace(F,JA),F}function WA(T){let $=new mW(T);return Error.captureStackTrace($,WA),$}function XA(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,XA),J}function FA(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,FA),$}var CS={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class W4{then(){aY()}catch(){aY()}finally(){aY()}}class h2 extends W4{constructor(T){super();this.value=Y4(T)}}class sJ extends W4{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class X4 extends W4{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let X=ZS.map(([F,Y])=>({fn:Y,i:T.search(F)})).sort((F,Y)=>F.i-Y.i).pop();return X.i===-1?J9(this.first,W):X.fn(this.first,this.rest,$,J,W)}}function F4(T,$,J,W){let X=T instanceof sJ?T.value:T;if(X===void 0){if(T instanceof sJ?T.value=W.transform.undefined:X=T=W.transform.undefined,X===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof sJ?($.push(T.value),T.array?T.array[T.type||J4(T.value)]||T.type||MA(T.value):T.type):($.push(T),J4(T)))}var GA=AA(CS);function T9(T,$,J,W,X,F){for(let Y=1;Y<T.strings.length;Y++)$+=$9($,J,W,X,F)+T.strings[Y],J=T.args[Y];return $}function $9(T,$,J,W,X){return $ instanceof X4?$.build(T,J,W,X):$ instanceof RJ?eY($,J,W,X):$ instanceof h2?$.value:$&&$[0]instanceof RJ?$.reduce((F,Y)=>F+" "+eY(Y,J,W,X),""):F4($,J,W,X)}function eY(T,$,J,W){return T.fragment=!0,T9(T,T.strings[0],T.args[0],$,J,W)}function HA(T,$,J,W,X){return T.map((F)=>"("+W.map((Y)=>$9("values",F[Y],$,J,X)).join(",")+")").join(",")}function YA(T,$,J,W,X){let F=Array.isArray(T[0]),Y=$.length?$.flat():Object.keys(F?T[0]:T);return HA(F?T:[T],J,W,Y,X)}function $4(T,$,J,W,X){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return J9(T,X);let F;return($.length?$.flat():Object.keys(T)).map((G)=>{return F=T[G],(F instanceof RJ?eY(F,J,W,X):F instanceof h2?F.value:F4(F,J,W,X))+" as "+Y4(X.transform.column.to?X.transform.column.to(G):G)}).join(",")}var ZS=Object.entries({values:YA,in:(...T)=>{let $=YA(...T);return $==="()"?"(null)":$},select:$4,as:$4,returning:$4,"\\(":$4,update(T,$,J,W,X){return($.length?$.flat():Object.keys(T)).map((F)=>Y4(X.transform.column.to?X.transform.column.to(F):F)+"="+$9("values",T[F],J,W,X))},insert(T,$,J,W,X){let F=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+J9(F,X)+")values"+HA(Array.isArray(T)?T:[T],J,W,F,X)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function aY(){throw H$.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:kS,parsers:qS}=GA;function MA(T){if(Array.isArray(T))return MA(T[0]);return typeof T==="string"?1009:0}var zA=function(T){let $=AA(T||{});return{serializers:Object.assign({},kS,$.serializers),parsers:Object.assign({},qS,$.parsers)}};function AA(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((W)=>$.parsers[W]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((W)=>$.serializers[W]=T[J].serialize);return $},{parsers:{},serializers:{}})}function J9(T,{transform:{column:$}}){return T.map((J)=>Y4($.to?$.to(J):J)).join(",")}var Y4=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},J4=function T($){return $ instanceof sJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},yS=/\\/g,IS=/"/g;function jS(T){return T.replace(yS,"\\\\").replace(IS,"\\\"")}var QA=function T($,J,W,X){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let F=$[0],Y=X===1020?";":",";if(Array.isArray(F)&&!F.type)return"{"+$.map((G)=>T(G,J,W,X)).join(Y)+"}";return"{"+$.map((G)=>{if(G===void 0){if(G=W.transform.undefined,G===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return G===null?"null":'"'+jS(J?J(G.type?G.value:G):""+G)+'"'}).join(Y)+"}"},sY={i:0,char:null,str:"",quoted:!1,last:0},wA=function T($,J,W){return sY.i=sY.last=0,OA(sY,$,J,W)};function OA(T,$,J,W){let X=[],F=W===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')X.push(J?J(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,X.push(OA(T,$,J,W));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&X.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===F&&T.p!=="}"&&T.p!=='"')X.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&X.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),X}var m0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},g0=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},p0=(T)=>T.replace(/_/g,"-"),b2=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),P2=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),v2=(T)=>T.replace(/-/g,"_");function W9(T){return function $(J,W){return typeof J==="object"&&J!==null&&(W.type===114||W.type===3802)?Array.isArray(J)?J.map((X)=>$(X,W)):Object.entries(J).reduce((X,[F,Y])=>Object.assign(X,{[T(F)]:$(Y,W)}),{}):J}}m0.column={from:m0};m0.value={from:W9(m0)};b2.column={to:b2};var X9={...m0};X9.column.to=b2;g0.column={from:g0};g0.value={from:W9(g0)};P2.column={to:P2};var F9={...g0};F9.column.to=P2;p0.column={from:p0};p0.value={from:W9(p0)};v2.column={to:v2};var Y9={...p0};Y9.column.to=v2;import UA from"net";import vS from"tls";import m2 from"crypto";import G9 from"stream";import{performance as _A}from"perf_hooks";class u0 extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var QJ=xS;function xS(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(W)=>{let X=$.indexOf(W);return X===-1?null:($.splice(X,1),W)},push:(W)=>($.push(W),W),shift:()=>{let W=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return W}}}var P$=Buffer.allocUnsafe(256),bS="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return P$[0]=J,bT.i=5,bT},T},{}),bT=Object.assign(PS,bS,{N:String.fromCharCode(0),i:0,inc(T){return bT.i+=T,bT},str(T){let $=Buffer.byteLength(T);return G4($),bT.i+=P$.write(T,bT.i,$,"utf8"),bT},i16(T){return G4(2),P$.writeUInt16BE(T,bT.i),bT.i+=2,bT},i32(T,$){if($||$===0)return P$.writeUInt32BE(T,$),bT;return G4(4),P$.writeUInt32BE(T,bT.i),bT.i+=4,bT},z(T){return G4(T),P$.fill(0,bT.i,bT.i+T),bT.i+=T,bT},raw(T){return P$=Buffer.concat([P$.subarray(0,bT.i),T]),bT.i=P$.length,bT},end(T=1){P$.writeUInt32BE(bT.i-T,T);let $=P$.subarray(0,bT.i);return bT.i=0,P$=Buffer.allocUnsafe(256),$}}),s=bT;function G4(T){if(P$.length-bT.i<T){let $=P$,J=$.length;P$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(P$)}}function PS(){return bT.i=0,bT}var z9=KA,hS=1,e1=s().S().end(),DA=s().H().end(),mS=s().i32(8).i32(80877103).end(8),gS=Buffer.concat([s().E().str(s.N).i32(0).end(),e1]),pS=s().D().str("S").str(s.N).end(),gW=()=>{},uS=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),cS={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 KA(T,$={},{onopen:J=gW,onend:W=gW,onclose:X=gW}={}){let{ssl:F,max:Y,user:G,host:H,port:M,database:z,parsers:A,transform:Q,onnotice:_,onnotify:D,onparameter:K,max_pipeline:Z,keep_alive:k,backoff:N,target_session_attrs:y}=T,V=QJ(),f=hS++,C={pid:null,secret:null},B=M9(a4,T.idle_timeout),m=M9(a4,T.max_lifetime),$T=M9(WU,T.connect_timeout),E=null,XT,n=new u0,HT=Buffer.alloc(0),qT=T.fetch_types,eT={},l$={},J1=Math.random().toString(36).slice(2),I=1,a=0,CT=0,tT=0,z$=0,UT=0,gT=0,F$=0,rT=null,dT=null,q$=!1,pT=null,CJ=null,y$=null,b1=null,A$=null,lT=null,ZJ=null,pJ=null,h=null,MX=null,I$={queue:$.closed,idleTimer:B,connect(w){y$=w||!0,e5()},terminate:AX,execute:zX,cancel:eO,end:a4,count:0,id:f};return $.closed&&$.closed.push(I$),I$;async function sO(){let w;try{w=T.socket?await Promise.resolve(T.socket(T)):new UA.Socket}catch(S){r0(S);return}return w.on("error",r0),w.on("close",T7),w.on("drain",a5),w}async function eO({pid:w,secret:S},TT,ZT){try{XT=s().i32(16).i32(80877102).i32(w).i32(S).end(16),await s5(),E.once("error",ZT),E.once("close",TT)}catch(T$){ZT(T$)}}function zX(w){if(q$)return E8(w,H$.connection("CONNECTION_DESTROYED",T));if(w.cancelled)return;try{return w.state=C,h?V.push(w):(h=w,h.active=!0),JU(w),f$(TU(w))&&!w.describeFirst&&!w.cursorFn&&V.length<Z&&(!w.options.onexecute||w.options.onexecute(I$))}catch(S){return V.length===0&&f$(e1),uJ(S),!0}}function TU(w){if(w.parameters.length>=65534)throw H$.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return w.options.simple?s().Q().str(w.statement.string+s.N).end():w.describeFirst?Buffer.concat([i5(w),DA]):w.prepare?w.prepared?V8(w):Buffer.concat([i5(w),V8(w)]):$U(w)}function i5(w){return Buffer.concat([J7(w.statement.string,w.parameters,w.statement.types,w.statement.name),pU("S",w.statement.name)])}function V8(w){return Buffer.concat([gU(w.parameters,w.statement.types,w.statement.name,w.cursorName),w.cursorFn?W7("",w.cursorRows):gS])}function $U(w){return Buffer.concat([J7(w.statement.string,w.parameters,w.statement.types),pS,V8(w)])}function JU(w){let S=[],TT=[],ZT=T9(w,w.strings[0],w.args[0],S,TT,T);!w.tagged&&w.args.forEach((T$)=>F4(T$,S,TT,T)),w.prepare=T.prepare&&("prepare"in w.options?w.options.prepare:!0),w.string=ZT,w.signature=w.prepare&&TT+ZT,w.onlyDescribe&&delete l$[w.signature],w.parameters=w.parameters||S,w.prepared=w.prepare&&w.signature in l$,w.describeFirst=w.onlyDescribe||S.length&&!w.prepared,w.statement=w.prepared?l$[w.signature]:{string:ZT,types:TT,name:w.prepare?J1+I++:""},typeof T.debug==="function"&&T.debug(f,ZT,S,TT)}function f$(w,S){if(lT=lT?Buffer.concat([lT,w]):Buffer.from(w),S||lT.length>=1024)return t5(S);return dT===null&&(dT=setImmediate(t5)),!0}function t5(w){let S=E.write(lT,w);return dT!==null&&clearImmediate(dT),lT=dT=null,S}function WU(){uJ(H$.connection("CONNECT_TIMEOUT",T,E)),E.destroy()}async function r5(){if(f$(mS),!await new Promise((S)=>E.once("data",(TT)=>S(TT[0]===83)))&&F==="prefer")return t0();E.removeAllListeners(),E=vS.connect({socket:E,servername:UA.isIP(E.host)?void 0:E.host,...F==="require"||F==="allow"||F==="prefer"?{rejectUnauthorized:!1}:F==="verify-full"?{}:typeof F==="object"?F:{}}),E.on("secureConnect",t0),E.on("error",r0),E.on("close",T7),E.on("drain",a5)}function a5(){!h&&J(I$)}function r4(w){if(pT){if(pT.push(w),CT-=w.length,CT>=0)return}HT=pT?Buffer.concat(pT,UT-CT):HT.length===0?w:Buffer.concat([HT,w],HT.length+w.length);while(HT.length>4){if(UT=HT.readUInt32BE(1),UT>=HT.length){CT=UT-HT.length,pT=[HT];break}try{XU(HT.subarray(0,UT+1))}catch(S){h&&(h.cursorFn||h.describeFirst)&&f$(e1),uJ(S)}HT=HT.subarray(UT+1),CT=0,pT=null}}async function s5(){if(q$=!1,eT={},E||(E=await sO()),!E)return;if($T.start(),T.socket)return F?r5():t0();if(E.on("connect",F?r5:t0),T.path)return E.connect(T.path);E.ssl=F,E.connect(M[tT],H[tT]),E.host=H[tT],E.port=M[tT],tT=(tT+1)%M.length}function e5(){setTimeout(s5,a?a+gT-_A.now():0)}function t0(){try{l$={},qT=T.fetch_types,J1=Math.random().toString(36).slice(2),I=1,m.start(),E.on("data",r4),k&&E.setKeepAlive&&E.setKeepAlive(!0,1000*k);let w=cU();f$(w)}catch(w){r0(w)}}function r0(w){if(I$.queue===$.connecting&&T.host[z$+1])return;uJ(w);while(V.length)E8(V.shift(),w)}function uJ(w){A$&&(A$.destroy(w),A$=null),h&&E8(h,w),y$&&(E8(y$,w),y$=null)}function E8(w,S){"query"in S||"parameters"in S||Object.defineProperties(S,{stack:{value:S.stack+w.origin.replace(/.*\n/,`
68
- `),enumerable:T.debug},query:{value:w.string,enumerable:T.debug},parameters:{value:w.parameters,enumerable:T.debug},args:{value:w.args,enumerable:T.debug},types:{value:w.statement&&w.statement.types,enumerable:T.debug}}),w.reject(S)}function a4(){return b1||(!I$.reserved&&W(I$),!I$.reserved&&!y$&&!h&&V.length===0?(AX(),new Promise((w)=>E&&E.readyState!=="closed"?E.once("close",w):w())):b1=new Promise((w)=>ZJ=w))}function AX(){if(q$=!0,A$||h||y$||V.length)r0(H$.connection("CONNECTION_DESTROYED",T));if(clearImmediate(dT),E)E.removeListener("data",r4),E.removeListener("connect",t0),E.readyState==="open"&&E.end(s().X().end());ZJ&&(ZJ(),b1=ZJ=null)}async function T7(w){if(HT=Buffer.alloc(0),CT=0,pT=null,clearImmediate(dT),E.removeListener("data",r4),E.removeListener("connect",t0),B.cancel(),m.cancel(),$T.cancel(),E.removeAllListeners(),E=null,y$)return e5();!w&&(h||V.length)&&r0(H$.connection("CONNECTION_CLOSED",T,E)),a=_A.now(),w&&T.shared.retries++,gT=(typeof N==="function"?N(T.shared.retries):N)*1000,X(I$,H$.connection("CONNECTION_CLOSED",T,E))}function XU(w,S=w[0]){(S===68?FU:S===100?IU:S===65?NU:S===83?YU:S===90?GU:S===67?HU:S===50?$7:S===49?MU:S===116?zU:S===84?AU:S===82?QU:S===110?SU:S===75?KU:S===69?BU:S===115?CU:S===51?ZU:S===71?kU:S===78?xU:S===72?qU:S===99?jU:S===73?bU:S===86?PU:S===118?vU:S===87?yU:hU)(w)}function FU(w){let S=7,TT,ZT,T$,j$=h.isRaw?new Array(h.statement.columns.length):{};for(let m$=0;m$<h.statement.columns.length;m$++)ZT=h.statement.columns[m$],TT=w.readInt32BE(S),S+=4,T$=TT===-1?null:h.isRaw===!0?w.subarray(S,S+=TT):ZT.parser===void 0?w.toString("utf8",S,S+=TT):ZT.parser.array===!0?ZT.parser(w.toString("utf8",S+1,S+=TT)):ZT.parser(w.toString("utf8",S,S+=TT)),h.isRaw?j$[m$]=h.isRaw===!0?T$:Q.value.from?Q.value.from(T$,ZT):T$:j$[ZT.name]=Q.value.from?Q.value.from(T$,ZT):T$;h.forEachFn?h.forEachFn(Q.row.from?Q.row.from(j$):j$,n):n[F$++]=Q.row.from?Q.row.from(j$):j$}function YU(w){let[S,TT]=w.toString("utf8",5,w.length-1).split(s.N);if(eT[S]=TT,T.parameters[S]!==TT)T.parameters[S]=TT,K&&K(S,TT)}function GU(w){if(h&&h.options.simple&&h.resolve(CJ||n),h=CJ=null,n=new u0,$T.cancel(),y$){if(y){if(!eT.in_hot_standby||!eT.default_transaction_read_only)return LU();else if(RU(y,eT))return AX()}if(qT)return y$===!0&&(y$=null),VU();y$!==!0&&zX(y$),T.shared.retries=z$=0,y$=null;return}while(V.length&&(h=V.shift())&&(h.active=!0,h.cancelled))KA(T).cancel(h.state,h.cancelled.resolve,h.cancelled.reject);if(h)return;I$.reserved?!I$.reserved.release&&w[5]===73?b1?AX():(I$.reserved=null,J(I$)):I$.reserved():b1?AX():J(I$)}function HU(w){F$=0;for(let S=w.length-1;S>0;S--){if(w[S]===32&&w[S+1]<58&&n.count===null)n.count=+w.toString("utf8",S+1,w.length-1);if(w[S-1]>=65){n.command=w.toString("utf8",5,S),n.state=C;break}}if(MX&&(MX(),MX=null),n.command==="BEGIN"&&Y!==1&&!I$.reserved)return uJ(H$.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(h.options.simple)return $7();if(h.cursorFn)n.count&&h.cursorFn(n),f$(e1);h.resolve(n)}function MU(){h.parsing=!1}function $7(){!n.statement&&(n.statement=h.statement),n.columns=h.statement.columns}function zU(w){let S=w.readUInt16BE(5);for(let TT=0;TT<S;++TT)!h.statement.types[TT]&&(h.statement.types[TT]=w.readUInt32BE(7+TT*4));h.prepare&&(l$[h.signature]=h.statement),h.describeFirst&&!h.onlyDescribe&&(f$(V8(h)),h.describeFirst=!1)}function AU(w){if(n.command)CJ=CJ||[n],CJ.push(n=new u0),n.count=null,h.statement.columns=null;let S=w.readUInt16BE(5),TT=7,ZT;h.statement.columns=Array(S);for(let T$=0;T$<S;++T$){ZT=TT;while(w[TT++]!==0);let j$=w.readUInt32BE(TT),m$=w.readUInt16BE(TT+4),P1=w.readUInt32BE(TT+6);h.statement.columns[T$]={name:Q.column.from?Q.column.from(w.toString("utf8",ZT,TT-1)):w.toString("utf8",ZT,TT-1),parser:A[P1],table:j$,number:m$,type:P1},TT+=18}if(n.statement=h.statement,h.onlyDescribe)return h.resolve(h.statement),f$(e1)}async function QU(w,S=w.readUInt32BE(5)){(S===3?wU:S===5?OU:S===10?UU:S===11?_U:S===12?DU:S!==0?mU:gW)(w,S)}async function wU(){let w=await s4();f$(s().p().str(w).z(1).end())}async function OU(w){let S="md5"+await SA(Buffer.concat([Buffer.from(await SA(await s4()+G)),w.subarray(9)]));f$(s().p().str(S).z(1).end())}async function UU(){pJ=(await m2.randomBytes(18)).toString("base64"),s().p().str("SCRAM-SHA-256"+s.N);let w=s.i;f$(s.inc(4).str("n,,n=*,r="+pJ).i32(s.i-w-4,w).end())}async function _U(w){let S=w.toString("utf8",9).split(",").reduce((m$,P1)=>(m$[P1[0]]=P1.slice(2),m$),{}),TT=await m2.pbkdf2Sync(await s4(),Buffer.from(S.s,"base64"),parseInt(S.i),32,"sha256"),ZT=await H4(TT,"Client Key"),T$="n=*,r="+pJ+",r="+S.r+",s="+S.s+",i="+S.i+",c=biws,r="+S.r;rT=(await H4(await H4(TT,"Server Key"),T$)).toString("base64");let j$="c=biws,r="+S.r+",p="+dS(ZT,Buffer.from(await H4(await oS(ZT),T$))).toString("base64");f$(s().p().str(j$).end())}function DU(w){if(w.toString("utf8",9).split(s.N,1)[0].slice(2)===rT)return;uJ(H$.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function s4(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function SU(){if(n.statement=h.statement,n.statement.columns=[],h.onlyDescribe)return h.resolve(h.statement),f$(e1)}function KU(w){C.pid=w.readUInt32BE(5),C.secret=w.readUInt32BE(9)}async function VU(){qT=!1,(await new RJ([`
67
+ `)});return{model:T,messages:Y}}var BY={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function QS(T){return async function $(J,W){if(!T)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let X=await T.chat.completions.create({...J,stream:!1,response_format:{type:"json_object"}},W),F=X.choices[0].message?.content,{usage:Y}=X;if(F&&Y){let G=Y.prompt_tokens,H=Y.prompt_tokens_details?.cached_tokens??0,M=G-H,z=Y.completion_tokens,A=G*BY[J.model].promptPricePerToken+M*BY[J.model].promptPricePerTokenCached+z*BY[J.model].completionPricePerToken;return{data:JSON.parse(F),usage:Y,usdPrice:A}}if(!F&&!Y)throw new Error("No content or usage found in completion");if(!F)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var GH=new Map,HH=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:T,usdBudget:$,usdMinimum:J,apiKey:W,cachingMode:X,cacheKey:F="openai-safegen",logger:Y}){this.usdBudget=$,this.usdMinimum=J,this.squirrel=new YH(X);let G=GH.get(W);if(X!=="read"){if(!G)G=new l3({apiKey:W,dangerouslyAllowBrowser:!1}),GH.set(W,G);this.client=G}this.getUnknownJsonFromOpenAi=QS(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(F,this.getUnknownJsonFromOpenAi),this.from=lG(async(...H)=>{if(this.usdBudget<this.usdMinimum)return Y?.warn("SafeGen budget exhausted"),H[1];let M=AS(T,...H),z=H[0],A=H[3],{data:Q,usage:_,usdPrice:D}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${z.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${A.length}`).get(M);return this.lastUsage=_,this.usdBudget-=D,Q},Y)}from};import{exec as _L}from"child_process";var fY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let J=new Map;for(let[W,X]of T.atoms){if(h1(W))continue;let F=n$(X);if(X.family){let Y=J.get(X.family.key);if(!Y||!("familyMembers"in Y))Y={key:X.family.key,familyMembers:new Map},J.set(X.family.key,Y);Y.familyMembers.set(X.family.subKey,F)}else J.set(W,F)}return J},effects:[({setSelf:J})=>{T.on.atomCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.atomDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:J})=>J($)})};var NY=(T)=>{let $=XJ(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let J=new Map;for(let W of[T.readonlySelectors,T.selectors])for(let[X,F]of W){if(h1(X))continue;let Y=n$(F);if(F.family){let G=J.get(F.family.key);if(!G||!("familyMembers"in G))G={key:F.family.key,familyMembers:new Map},J.set(F.family.key,G);G.familyMembers.set(F.family.subKey,Y)}else J.set(X,Y)}return J},effects:[({setSelf:J})=>{T.on.selectorCreation.subscribe("introspection",(W)=>{if(h1(W.key))return;J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G===void 0||!("familyMembers"in G))G={key:F,familyMembers:new Map},X.set(F,G);G.familyMembers.set(Y,W)}else X.set(W.key,W);return X})}),T.on.selectorDisposal.subscribe("introspection",(W)=>{J((X)=>{if(W.family){let{key:F,subKey:Y}=W.family,G=X.get(F);if(G&&"familyMembers"in G){if(G.familyMembers.delete(Y),G.familyMembers.size===0)X.delete(F)}}else X.delete(W.key);return X})})}]},void 0);return W1(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:J})=>J($)})};class IF{supported;constructor(T){this.supported=T}refine(T){for(let[$,J]of Object.entries(this.supported))try{if(J(T)===!0&&J!==Boolean)return{type:$,data:T}}catch(W){try{if(T instanceof J)return{type:$,data:T}}catch(X){}}return null}}var CY=new IF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function ZY(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var kY=new IF({object:ZY,array:(T)=>Array.isArray(T)}),wS=new IF({...CY.supported,...kY.supported}),PW=(T)=>{if(T===void 0)return"undefined";let $=wS.refine(T);if($)return $.type;return Object.getPrototypeOf(T).constructor.name};class MH{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=ST.STORE){this.store=T,this.atomIndex=fY(this.store),this.selectorIndex=NY(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.set($,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:$})=>{this.statesCreatedAt.delete($)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=MH.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let $=$6(this.atomIndex),J=$6(this.selectorIndex),W=[...$.values()].filter((G)=>("familyMembers"in G)),X=[...J.values()].filter((G)=>("familyMembers"in G)),F=performance.now(),Y=[];if(T.atomFamilies)for(let G of W){let H=G.familyMembers.values();for(let M of H){let A=this.statesCreatedAt.get(M.key)??this.auditorCreatedAt,Q=F-A;Y.push([M,Q])}}if(T.selectorFamilies)for(let G of X){let H=G.familyMembers.values();for(let M of H){let A=this.statesCreatedAt.get(M.key)??this.auditorCreatedAt,Q=F-A;Y.push([M,Q])}}return Y}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var qY=(T,$)=>{let J=(W,X)=>{let Y=((H,M)=>{let z=$(H,M);if(z)return z;return null})(W,X);if(Y?.jobComplete??Y?.pathComplete)return Y;let G=Array.isArray(X)?X.map((H,M)=>[M,H]):ZY(X)?Object.entries(X):[];for(let[H,M]of G){let z=J([...W,H],M);if(z?.jobComplete)return z}return{}};J([],T)};function OS(T,$){return{summary:`${T<$?"+":"-"}${Math.abs(T-$)} (${T} \u2192 ${$})`}}function US(T,$){return{summary:`${T.length<$.length?"+":"-"}${Math.abs(T.length-$.length)} ("${T}" \u2192 "${$}")`}}function _S(T,$){return{summary:`${T} \u2192 ${$}`}}function zH(T,$,J){let W="",X=[],F=[],Y=[];return qY(T,(G,H)=>{let M;for(M of G){let z=$[M];if(z===void 0)F.push([M,JSON.stringify(H)]);else{let A=J(H,z);if(A.summary!=="No Change")Y.push([M,A])}}}),qY($,(G,H)=>{let M;for(M of G)if(T[M]===void 0)X.push([M,JSON.stringify(H)])}),W=`\uFF5E${Y.length} \uFF0B${X.length} \uFF0D${F.length}`,{summary:W,added:X,removed:F,changed:Y}}function DS(T,$,J){return zH(T,$,J)}class AH{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,$,J){this.leafRefinery=T,this.treeRefinery=$,this.leafDiffers={},this.treeDiffers={};for(let W of Object.keys(T.supported)){let X=J[W];this.leafDiffers[W]=X}for(let W of Object.keys($.supported)){let X=J[W];this.treeDiffers[W]=X}}diff(T,$){if(T===$)return{summary:"No Change"};let J=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),W=this.leafRefinery.refine($)??this.treeRefinery.refine($);if(J!==null&&W!==null){if(J.type===W.type){if(J.type in this.leafDiffers)return this.leafDiffers[J.type](J.data,W.data);if(J.type in this.treeDiffers)return this.treeDiffers[J.type](J.data,W.data,(G,H)=>this.diff(G,H))}}let X=PW(T),F=PW($);if(X===F)return{summary:`${X} \u2192 ${F}`};return{summary:`Type change: ${X} \u2192 ${F}`}}}var Qu=new AH(CY,kY,{number:OS,string:US,boolean:_S,null:()=>({summary:"No Change"}),object:zH,array:DS});var O=Symbol.for("drizzle:entityKind"),Vu=Symbol.for("drizzle:hasOwnEntityKind");function L(T,$){if(!T||typeof T!=="object")return!1;if(T instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,O))throw new Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf(T).constructor;if(J)while(J){if(O in J&&J[O]===$[O])return!0;J=Object.getPrototypeOf(J)}return!1}class vT{constructor(T,$){this.table=T,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[O]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class yY{static[O]="ColumnBuilder";config;constructor(T,$,J){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var bJ=Symbol.for("drizzle:Name");class IY{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,$){if(this.reference=()=>{let{name:J,columns:W,foreignColumns:X}=T();return{name:J,columns:W,foreignTable:X[0].table,foreignColumns:X}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new QH(T,this)}}class QH{constructor(T,$){this.table=T,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:$,foreignColumns:J}=this.reference(),W=$.map((Y)=>Y.name),X=J.map((Y)=>Y.name),F=[this.table[bJ],...W,J[0].table[bJ],...X];return T??`${F.join("_")}_fk`}}function jF(T,...$){return T(...$)}function wH(T,$){return`${T[bJ]}_${$.join("_")}_unique`}function OH(T,$,J){for(let W=$;W<T.length;W++){let X=T[W];if(X==="\\"){W++;continue}if(X==='"')return[T.slice($,W).replace(/\\/g,""),W+1];if(J)continue;if(X===","||X==="}")return[T.slice($,W).replace(/\\/g,""),W]}return[T.slice($).replace(/\\/g,""),T.length]}function UH(T,$=0){let J=[],W=$,X=!1;while(W<T.length){let F=T[W];if(F===","){if(X||W===$)J.push("");X=!0,W++;continue}if(X=!1,F==="\\"){W+=2;continue}if(F==='"'){let[H,M]=OH(T,W+1,!0);J.push(H),W=M;continue}if(F==="}")return[J,W+1];if(F==="{"){let[H,M]=UH(T,W+1);J.push(H),W=M;continue}let[Y,G]=OH(T,W,!1);J.push(Y),W=G}return[J,W]}function _H(T){let[$]=UH(T,1);return $}function jY(T){return`{${T.map(($)=>{if(Array.isArray($))return jY($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class d extends yY{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(T){return new SH(this.config.name,this,T)}references(T,$={}){return this.foreignKeyConfigs.push({ref:T,actions:$}),this}unique(T,$){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,$){return this.foreignKeyConfigs.map(({ref:J,actions:W})=>{return jF((X,F)=>{let Y=new IY(()=>{let G=X();return{columns:[T],foreignColumns:[G]}});if(F.onUpdate)Y.onUpdate(F.onUpdate);if(F.onDelete)Y.onDelete(F.onDelete);return Y.build($)},J,W)})}buildExtraConfigColumn(T){return new DH(T,this.config)}}class b extends vT{constructor(T,$){if(!$.uniqueName)$.uniqueName=wH(T,[$.name]);super(T,$);this.table=T}static[O]="PgColumn"}class DH extends b{static[O]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(T){return this.indexConfig.opClass=T,this}}class f2{static[O]="IndexedColumn";constructor(T,$,J,W){this.name=T,this.keyAsName=$,this.type=J,this.indexConfig=W}name;keyAsName;type;indexConfig}class SH extends d{static[O]="PgArrayBuilder";constructor(T,$,J){super(T,"array","PgArray");this.config.baseBuilder=$,this.config.size=J}build(T){let $=this.config.baseBuilder.build(T);return new xY(T,this.config,$)}}class xY extends b{constructor(T,$,J,W){super(T,$);this.baseColumn=J,this.range=W,this.size=$.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=_H(T);return T.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(T,$=!1){let J=T.map((W)=>W===null?null:L(this.baseColumn,xY)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if($)return J;return jY(J)}}var bY=Symbol.for("drizzle:isPgEnum");function KH(T){return!!T&&typeof T==="function"&&bY in T&&T[bY]===!0}class VH extends d{static[O]="PgEnumColumnBuilder";constructor(T,$){super(T,"string","PgEnumColumn");this.config.enum=$}build(T){return new EH(T,this.config)}}class EH extends b{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,$){super(T,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function xF(T,$){return SS(T,$,void 0)}function SS(T,$,J){let W=Object.assign((X)=>new VH(X??"",W),{enumName:T,enumValues:$,schema:J,[bY]:!0});return W}class S${static[O]="Subquery";constructor(T,$,J,W=!1){this._={brand:"Subquery",sql:T,selectedFields:$,alias:J,isWith:W}}}class N2 extends S${static[O]="WithSubquery"}var RH="0.41.0";var PY,vY,hT={startActiveSpan(T,$){if(!PY)return $();if(!vY)vY=PY.trace.getTracer("drizzle-orm",RH);return jF((J,W)=>W.startActiveSpan(T,(X)=>{try{return $(X)}catch(F){throw X.setStatus({code:J.SpanStatusCode.ERROR,message:F instanceof Error?F.message:"Unknown error"}),F}finally{X.end()}}),PY,vY)}};var uT=Symbol.for("drizzle:ViewBaseConfig");var bF=Symbol.for("drizzle:Schema"),PF=Symbol.for("drizzle:Columns"),LH=Symbol.for("drizzle:ExtraConfigColumns"),hY=Symbol.for("drizzle:OriginalName"),mY=Symbol.for("drizzle:BaseName"),C2=Symbol.for("drizzle:IsAlias"),BH=Symbol.for("drizzle:ExtraConfigBuilder"),KS=Symbol.for("drizzle:IsDrizzleTable");class u{static[O]="Table";static Symbol={Name:bJ,Schema:bF,OriginalName:hY,Columns:PF,ExtraConfigColumns:LH,BaseName:mY,IsAlias:C2,ExtraConfigBuilder:BH};[bJ];[hY];[bF];[PF];[LH];[mY];[C2]=!1;[KS]=!0;[BH]=void 0;constructor(T,$,J){this[bJ]=this[hY]=T,this[bF]=$,this[mY]=J}}function B$(T){return T[bJ]}function h0(T){return`${T[bF]??"public"}.${T[bJ]}`}function gY(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function VS(T){let $={sql:"",params:[]};for(let J of T)if($.sql+=J.sql,$.params.push(...J.params),J.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...J.typings)}return $}class K${static[O]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new c([this])}}class c{constructor(T){this.queryChunks=T}static[O]="SQL";decoder=NH;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return hT.startActiveSpan("drizzle.buildSQL",($)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,T);return $?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams(T,$){let J=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:W,escapeName:X,escapeParam:F,prepareTyping:Y,inlineParams:G,paramStartIndex:H}=J;return VS(T.map((M)=>{if(L(M,K$))return{sql:M.value.join(""),params:[]};if(L(M,vF))return{sql:X(M.value),params:[]};if(M===void 0)return{sql:"",params:[]};if(Array.isArray(M)){let z=[new K$("(")];for(let[A,Q]of M.entries())if(z.push(Q),A<M.length-1)z.push(new K$(", "));return z.push(new K$(")")),this.buildQueryFromSourceParams(z,J)}if(L(M,c))return this.buildQueryFromSourceParams(M.queryChunks,{...J,inlineParams:G||M.shouldInlineParams});if(L(M,u)){let z=M[u.Symbol.Schema],A=M[u.Symbol.Name];return{sql:z===void 0||M[C2]?X(A):X(z)+"."+X(A),params:[]}}if(L(M,vT)){let z=W.getColumnCasing(M);if($.invokeSource==="indexes")return{sql:X(z),params:[]};let A=M.table[u.Symbol.Schema];return{sql:M.table[C2]||A===void 0?X(M.table[u.Symbol.Name])+"."+X(z):X(A)+"."+X(M.table[u.Symbol.Name])+"."+X(z),params:[]}}if(L(M,a$)){let z=M[uT].schema,A=M[uT].name;return{sql:z===void 0||M[uT].isAlias?X(A):X(z)+"."+X(A),params:[]}}if(L(M,zJ)){if(L(M.value,t1))return{sql:F(H.value++,M),params:[M],typings:["none"]};let z=M.value===null?null:M.encoder.mapToDriverValue(M.value);if(L(z,c))return this.buildQueryFromSourceParams([z],J);if(G)return{sql:this.mapInlineParam(z,J),params:[]};let A=["none"];if(Y)A=[Y(M.encoder)];return{sql:F(H.value++,z),params:[z],typings:A}}if(L(M,t1))return{sql:F(H.value++,M),params:[M],typings:["none"]};if(L(M,c.Aliased)&&M.fieldAlias!==void 0)return{sql:X(M.fieldAlias),params:[]};if(L(M,S$)){if(M._.isWith)return{sql:X(M._.alias),params:[]};return this.buildQueryFromSourceParams([new K$("("),M._.sql,new K$(") "),new vF(M._.alias)],J)}if(KH(M)){if(M.schema)return{sql:X(M.schema)+"."+X(M.enumName),params:[]};return{sql:X(M.enumName),params:[]}}if(gY(M)){if(M.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([M.getSQL()],J);return this.buildQueryFromSourceParams([new K$("("),M.getSQL(),new K$(")")],J)}if(G)return{sql:this.mapInlineParam(M,J),params:[]};return{sql:F(H.value++,M),params:[M],typings:["none"]}}))}mapInlineParam(T,{escapeString:$}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return $(T);if(typeof T==="object"){let J=T.toString();if(J==="[object Object]")return $(JSON.stringify(T));return $(J)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new c.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class vF{constructor(T){this.value=T}static[O]="Name";brand;getSQL(){return new c([this])}}function fH(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var NH={mapFromDriverValue:(T)=>T},CH={mapToDriverValue:(T)=>T},Hc={...NH,...CH};class zJ{constructor(T,$=CH){this.value=T,this.encoder=$}static[O]="Param";brand;getSQL(){return new c([this])}}function U(T,...$){let J=[];if($.length>0||T.length>0&&T[0]!=="")J.push(new K$(T[0]));for(let[W,X]of $.entries())J.push(X,new K$(T[W+1]));return new c(J)}((T)=>{function $(){return new c([])}T.empty=$;function J(H){return new c(H)}T.fromList=J;function W(H){return new c([new K$(H)])}T.raw=W;function X(H,M){let z=[];for(let[A,Q]of H.entries()){if(A>0&&M!==void 0)z.push(M);z.push(Q)}return new c(z)}T.join=X;function F(H){return new vF(H)}T.identifier=F;function Y(H){return new t1(H)}T.placeholder=Y;function G(H,M){return new zJ(H,M)}T.param=G})(U||(U={}));((T)=>{class ${constructor(J,W){this.sql=J,this.fieldAlias=W}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}T.Aliased=$})(c||(c={}));class t1{constructor(T){this.name=T}static[O]="Placeholder";getSQL(){return new c([this])}}function pY(T,$){return T.map((J)=>{if(L(J,t1)){if(!(J.name in $))throw new Error(`No value for placeholder "${J.name}" was provided`);return $[J.name]}if(L(J,zJ)&&L(J.value,t1)){if(!(J.value.name in $))throw new Error(`No value for placeholder "${J.value.name}" was provided`);return J.encoder.mapToDriverValue($[J.value.name])}return J})}var ES=Symbol.for("drizzle:IsDrizzleView");class a${static[O]="View";[uT];[ES]=!0;constructor({name:T,schema:$,selectedFields:J,query:W}){this[uT]={name:T,originalName:T,schema:$,selectedFields:J,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new c([this])}}vT.prototype.getSQL=function(){return new c([this])};u.prototype.getSQL=function(){return new c([this])};S$.prototype.getSQL=function(){return new c([this])};class vW{constructor(T){this.table=T}static[O]="ColumnAliasProxyHandler";get(T,$){if($==="table")return this.table;return T[$]}}class Z2{constructor(T,$){this.alias=T,this.replaceOriginalName=$}static[O]="TableAliasProxyHandler";get(T,$){if($===u.Symbol.IsAlias)return!0;if($===u.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===u.Symbol.OriginalName)return this.alias;if($===uT)return{...T[uT],name:this.alias,isAlias:!0};if($===u.Symbol.Columns){let W=T[u.Symbol.Columns];if(!W)return W;let X={};return Object.keys(W).map((F)=>{X[F]=new Proxy(W[F],new vW(new Proxy(T,this)))}),X}let J=T[$];if(L(J,vT))return new Proxy(J,new vW(new Proxy(T,this)));return J}}function hF(T,$){return new Proxy(T,new Z2($,!1))}function aJ(T,$){return new Proxy(T,new vW(new Proxy(T.table,new Z2($,!1))))}function uY(T,$){return new c.Aliased(k2(T.sql,$),T.fieldAlias)}function k2(T,$){return U.join(T.queryChunks.map((J)=>{if(L(J,vT))return aJ(J,$);if(L(J,c))return k2(J,$);if(L(J,c.Aliased))return uY(J,$);return J}))}class mF extends Error{static[O]="DrizzleError";constructor({message:T,cause:$}){super(T);this.name="DrizzleError",this.cause=$}}class cY extends mF{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function s$(T,$){if(fH($)&&!gY(T)&&!L(T,zJ)&&!L(T,t1)&&!L(T,vT)&&!L(T,u)&&!L(T,a$))return new zJ(T,$);return T}var gF=(T,$)=>{return U`${T} = ${s$($,T)}`},ZH=(T,$)=>{return U`${T} <> ${s$($,T)}`};function q2(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" and ")),new K$(")")])}function kH(...T){let $=T.filter((J)=>J!==void 0);if($.length===0)return;if($.length===1)return new c($);return new c([new K$("("),U.join($,new K$(" or ")),new K$(")")])}function qH(T){return U`not ${T}`}var pF=(T,$)=>{return U`${T} > ${s$($,T)}`},yH=(T,$)=>{return U`${T} >= ${s$($,T)}`},IH=(T,$)=>{return U`${T} < ${s$($,T)}`},jH=(T,$)=>{return U`${T} <= ${s$($,T)}`};function xH(T,$){if(Array.isArray($)){if($.length===0)return U`false`;return U`${T} in ${$.map((J)=>s$(J,T))}`}return U`${T} in ${s$($,T)}`}function bH(T,$){if(Array.isArray($)){if($.length===0)return U`true`;return U`${T} not in ${$.map((J)=>s$(J,T))}`}return U`${T} not in ${s$($,T)}`}function PH(T){return U`${T} is null`}function vH(T){return U`${T} is not null`}function hH(T){return U`exists ${T}`}function mH(T){return U`not exists ${T}`}function gH(T,$,J){return U`${T} between ${s$($,T)} and ${s$(J,T)}`}function pH(T,$,J){return U`${T} not between ${s$($,T)} and ${s$(J,T)}`}function uH(T,$){return U`${T} like ${$}`}function cH(T,$){return U`${T} not like ${$}`}function oH(T,$){return U`${T} ilike ${$}`}function dH(T,$){return U`${T} not ilike ${$}`}function lH(T){return U`${T} asc`}function nH(T){return U`${T} desc`}class iH{static[O]="ConsoleLogWriter";write(T){console.log(T)}}class oY{static[O]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new iH}logQuery(T,$){let J=$.map((X)=>{try{return JSON.stringify(X)}catch{return String(X)}}),W=J.length?` -- params: [${J.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class dY{static[O]="NoopLogger";logQuery(){}}class u${static[O]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}then(T,$){return this.execute().then(T,$)}}function tH(T,$,J){let W={},X=T.reduce((F,{path:Y,field:G},H)=>{let M;if(L(G,vT))M=G;else if(L(G,c))M=G.decoder;else M=G.sql.decoder;let z=F;for(let[A,Q]of Y.entries())if(A<Y.length-1){if(!(Q in z))z[Q]={};z=z[Q]}else{let _=$[H],D=z[Q]=_===null?null:M.mapFromDriverValue(_);if(J&&L(G,vT)&&Y.length===2){let K=Y[0];if(!(K in W))W[K]=D===null?B$(G.table):!1;else if(typeof W[K]==="string"&&W[K]!==B$(G.table))W[K]=!1}}return F},{});if(J&&Object.keys(W).length>0){for(let[F,Y]of Object.entries(W))if(typeof Y==="string"&&!J[Y])X[F]=null}return X}function EJ(T,$){return Object.entries(T).reduce((J,[W,X])=>{if(typeof W!=="string")return J;let F=$?[...$,W]:[W];if(L(X,vT)||L(X,c)||L(X,c.Aliased))J.push({path:F,field:X});else if(L(X,u))J.push(...EJ(X[u.Symbol.Columns],F));else J.push(...EJ(X,F));return J},[])}function y2(T,$){let J=Object.keys(T),W=Object.keys($);if(J.length!==W.length)return!1;for(let[X,F]of J.entries())if(F!==W[X])return!1;return!0}function uF(T,$){let J=Object.entries($).filter(([,W])=>W!==void 0).map(([W,X])=>{if(L(X,c)||L(X,vT))return[W,X];else return[W,new zJ(X,T[u.Symbol.Columns][W])]});if(J.length===0)throw new Error("No values to set");return Object.fromEntries(J)}function rH(T,$){for(let J of $)for(let W of Object.getOwnPropertyNames(J.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(J.prototype,W)||Object.create(null))}}function aH(T){return T[u.Symbol.Columns]}function V1(T){return L(T,S$)?T._.alias:L(T,a$)?T[uT].name:L(T,c)?void 0:T[u.Symbol.IsAlias]?T[u.Symbol.Name]:T[u.Symbol.BaseName]}function VT(T,$){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:$}}function sH(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let $=typeof T.logger;if($!=="boolean"&&($!=="object"||typeof T.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in T){let $=typeof T.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in T){let $=typeof T.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let $=typeof T.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in T){let $=typeof T.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class r1 extends d{static[O]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:$,...J}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:J}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class eH extends r1{static[O]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new TM(T,this.config)}}class TM extends b{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class $M extends r1{static[O]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new JM(T,this.config)}}class JM extends b{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function WM(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new eH(J);return new $M(J)}class XM extends d{static[O]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new FM(T,this.config)}}class FM extends b{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class YM extends d{static[O]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new GM(T,this.config)}}class GM extends b{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function HM(T,$){let{name:J,config:W}=VT(T,$);if(W.mode==="number")return new XM(J);return new YM(J)}class MM extends d{static[O]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new zM(T,this.config)}}class zM extends b{static[O]="PgBoolean";getSQLType(){return"boolean"}}function I2(T){return new MM(T??"")}class AM extends d{static[O]="PgCharBuilder";constructor(T,$){super(T,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new QM(T,this.config)}}class QM extends b{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function wM(T,$={}){let{name:J,config:W}=VT(T,$);return new AM(J,W)}class OM extends d{static[O]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new UM(T,this.config)}}class UM extends b{static[O]="PgCidr";getSQLType(){return"cidr"}}function _M(T){return new OM(T??"")}class DM extends d{static[O]="PgCustomColumnBuilder";constructor(T,$,J){super(T,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=J}build(T){return new SM(T,this.config)}}class SM extends b{static[O]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,$){super(T,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function KM(T){return($,J)=>{let{name:W,config:X}=VT($,J);return new DM(W,X,T)}}class E1 extends d{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(U`now()`)}}class VM extends E1{static[O]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new cF(T,this.config)}}class cF extends b{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class EM extends E1{static[O]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new oF(T,this.config)}}class oF extends b{static[O]="PgDateString";getSQLType(){return"date"}}function RM(T,$){let{name:J,config:W}=VT(T,$);if(W?.mode==="date")return new VM(J);return new EM(J)}class LM extends d{static[O]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new BM(T,this.config)}}class BM extends b{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function fM(T){return new LM(T??"")}class NM extends d{static[O]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new CM(T,this.config)}}class CM extends b{static[O]="PgInet";getSQLType(){return"inet"}}function ZM(T){return new NM(T??"")}class kM extends r1{static[O]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new qM(T,this.config)}}class qM extends b{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function dF(T){return new kM(T??"")}class yM extends d{static[O]="PgIntervalBuilder";constructor(T,$){super(T,"string","PgInterval");this.config.intervalConfig=$}build(T){return new IM(T,this.config)}}class IM extends b{static[O]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${T}${$}`}}function jM(T,$={}){let{name:J,config:W}=VT(T,$);return new yM(J,W)}class xM extends d{static[O]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new lF(T,this.config)}}class lF extends b{static[O]="PgJson";constructor(T,$){super(T,$)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function bM(T){return new xM(T??"")}class PM extends d{static[O]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new nF(T,this.config)}}class nF extends b{static[O]="PgJsonb";constructor(T,$){super(T,$)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function vM(T){return new PM(T??"")}class hM extends d{static[O]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new mM(T,this.config)}}class mM extends b{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class gM extends d{static[O]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new pM(T,this.config)}}class pM extends b{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[$,J,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(J),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function uM(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new hM(J);return new gM(J)}class cM extends d{static[O]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new oM(T,this.config)}}class oM extends b{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function dM(T){return new cM(T??"")}class lM extends d{static[O]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new nM(T,this.config)}}class nM extends b{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function iM(T){return new lM(T??"")}class tM extends d{static[O]="PgNumericBuilder";constructor(T,$,J){super(T,"string","PgNumeric");this.config.precision=$,this.config.scale=J}build(T){return new iF(T,this.config)}}class iF extends b{static[O]="PgNumeric";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="string")return T;return String(T)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class rM extends d{static[O]="PgNumericNumberBuilder";constructor(T,$,J){super(T,"number","PgNumericNumber");this.config.precision=$,this.config.scale=J}build(T){return new aM(T,this.config)}}class aM extends b{static[O]="PgNumericNumber";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class sM extends d{static[O]="PgNumericBigIntBuilder";constructor(T,$,J){super(T,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=J}build(T){return new eM(T,this.config)}}class eM extends b{static[O]="PgNumericBigInt";precision;scale;constructor(T,$){super(T,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function Tz(T,$){let{name:J,config:W}=VT(T,$),X=W?.mode;return X==="number"?new rM(J,W?.precision,W?.scale):X==="bigint"?new sM(J,W?.precision,W?.scale):new tM(J,W?.precision,W?.scale)}class $z extends d{static[O]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new Jz(T,this.config)}}class Jz extends b{static[O]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(J)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class Wz extends d{static[O]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new Xz(T,this.config)}}class Xz extends b{static[O]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[$,J]=T.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(J)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function Fz(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new $z(J);return new Wz(J)}function RS(T){let $=[];for(let J=0;J<T.length;J+=2)$.push(Number.parseInt(T.slice(J,J+2),16));return new Uint8Array($)}function Yz(T,$){let J=new ArrayBuffer(8),W=new DataView(J);for(let X=0;X<8;X++)W.setUint8(X,T[$+X]);return W.getFloat64(0,!0)}function lY(T){let $=RS(T),J=0,W=$[J];J+=1;let X=new DataView($.buffer),F=X.getUint32(J,W===1);J+=4;let Y;if(F&536870912)Y=X.getUint32(J,W===1),J+=4;if((F&65535)===1){let G=Yz($,J);J+=8;let H=Yz($,J);return J+=8,[G,H]}throw new Error("Unsupported geometry type")}class Gz extends d{static[O]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new Hz(T,this.config)}}class Hz extends b{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return lY(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class Mz extends d{static[O]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new zz(T,this.config)}}class zz extends b{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let $=lY(T);return{x:$[0],y:$[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function Az(T,$){let{name:J,config:W}=VT(T,$);if(!W?.mode||W.mode==="tuple")return new Gz(J);return new Mz(J)}class Qz extends d{static[O]="PgRealBuilder";constructor(T,$){super(T,"number","PgReal");this.config.length=$}build(T){return new wz(T,this.config)}}class wz extends b{static[O]="PgReal";constructor(T,$){super(T,$)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function Oz(T){return new Qz(T??"")}class Uz extends d{static[O]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new _z(T,this.config)}}class _z extends b{static[O]="PgSerial";getSQLType(){return"serial"}}function Dz(T){return new Uz(T??"")}class Sz extends r1{static[O]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new Kz(T,this.config)}}class Kz extends b{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function Vz(T){return new Sz(T??"")}class Ez extends d{static[O]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new Rz(T,this.config)}}class Rz extends b{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function Lz(T){return new Ez(T??"")}class Bz extends d{static[O]="PgTextBuilder";constructor(T,$){super(T,"string","PgText");this.config.enumValues=$.enum}build(T){return new fz(T,this.config)}}class fz extends b{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function Nz(T,$={}){let{name:J,config:W}=VT(T,$);return new Bz(J,W)}class Cz extends E1{constructor(T,$,J){super(T,"string","PgTime");this.withTimezone=$,this.precision=J,this.config.withTimezone=$,this.config.precision=J}static[O]="PgTimeBuilder";build(T){return new tF(T,this.config)}}class tF extends b{static[O]="PgTime";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Zz(T,$={}){let{name:J,config:W}=VT(T,$);return new Cz(J,W.withTimezone??!1,W.precision)}class kz extends E1{static[O]="PgTimestampBuilder";constructor(T,$,J){super(T,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=J}build(T){return new rF(T,this.config)}}class rF extends b{static[O]="PgTimestamp";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class qz extends E1{static[O]="PgTimestampStringBuilder";constructor(T,$,J){super(T,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=J}build(T){return new aF(T,this.config)}}class aF extends b{static[O]="PgTimestampString";withTimezone;precision;constructor(T,$){super(T,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function PJ(T,$={}){let{name:J,config:W}=VT(T,$);if(W?.mode==="string")return new qz(J,W.withTimezone??!1,W.precision);return new kz(J,W?.withTimezone??!1,W?.precision)}class yz extends d{static[O]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(U`gen_random_uuid()`)}build(T){return new sF(T,this.config)}}class sF extends b{static[O]="PgUUID";getSQLType(){return"uuid"}}function AJ(T){return new yz(T??"")}class Iz extends d{static[O]="PgVarcharBuilder";constructor(T,$){super(T,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(T){return new jz(T,this.config)}}class jz extends b{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function b$(T,$={}){let{name:J,config:W}=VT(T,$);return new Iz(J,W)}class xz extends d{static[O]="PgBinaryVectorBuilder";constructor(T,$){super(T,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(T){return new bz(T,this.config)}}class bz extends b{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function Pz(T,$){let{name:J,config:W}=VT(T,$);return new xz(J,W)}class vz extends d{static[O]="PgHalfVectorBuilder";constructor(T,$){super(T,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(T){return new hz(T,this.config)}}class hz extends b{static[O]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function mz(T,$){let{name:J,config:W}=VT(T,$);return new vz(J,W)}class gz extends d{static[O]="PgSparseVectorBuilder";constructor(T,$){super(T,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(T){return new pz(T,this.config)}}class pz extends b{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function uz(T,$){let{name:J,config:W}=VT(T,$);return new gz(J,W)}class cz extends d{static[O]="PgVectorBuilder";constructor(T,$){super(T,"array","PgVector");this.config.dimensions=$.dimensions}build(T){return new oz(T,this.config)}}class oz extends b{static[O]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function dz(T,$){let{name:J,config:W}=VT(T,$);return new cz(J,W)}function lz(){return{bigint:WM,bigserial:HM,boolean:I2,char:wM,cidr:_M,customType:KM,date:RM,doublePrecision:fM,inet:ZM,integer:dF,interval:jM,json:bM,jsonb:vM,line:uM,macaddr:dM,macaddr8:iM,numeric:Tz,point:Fz,geometry:Az,real:Oz,serial:Dz,smallint:Vz,smallserial:Lz,text:Nz,time:Zz,timestamp:PJ,uuid:AJ,varchar:b$,bit:Pz,halfvec:mz,sparsevec:uz,vector:dz}}var nY=Symbol.for("drizzle:PgInlineForeignKeys"),nz=Symbol.for("drizzle:EnableRLS");class Z$ extends u{static[O]="PgTable";static Symbol=Object.assign({},u.Symbol,{InlineForeignKeys:nY,EnableRLS:nz});[nY]=[];[nz]=!1;[u.Symbol.ExtraConfigBuilder]=void 0;[u.Symbol.ExtraConfigColumns]={}}function LS(T,$,J,W,X=T){let F=new Z$(T,W,X),Y=typeof $==="function"?$(lz()):$,G=Object.fromEntries(Object.entries(Y).map(([z,A])=>{let Q=A;Q.setName(z);let _=Q.build(F);return F[nY].push(...Q.buildForeignKeys(_,F)),[z,_]})),H=Object.fromEntries(Object.entries(Y).map(([z,A])=>{let Q=A;Q.setName(z);let _=Q.buildExtraConfigColumn(F);return[z,_]})),M=Object.assign(F,G);if(M[u.Symbol.Columns]=G,M[u.Symbol.ExtraConfigColumns]=H,J)M[Z$.Symbol.ExtraConfigBuilder]=J;return Object.assign(M,{enableRLS:()=>{return M[Z$.Symbol.EnableRLS]=!0,M}})}var a1=(T,$,J)=>{return LS(T,$,J,void 0)};function iz(...T){if(T[0].columns)return new j2(T[0].columns,T[0].name);return new j2(T)}class j2{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(T,$){this.columns=T,this.name=$}build(T){return new tz(T,this.columns,this.name)}}class tz{constructor(T,$,J){this.table=T,this.columns=$,this.name=J}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Z$.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class iY{constructor(T,$,J){this.sourceTable=T,this.referencedTable=$,this.relationName=J,this.referencedTableName=$[u.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class rz{constructor(T,$){this.table=T,this.config=$}static[O]="Relations"}class s1 extends iY{constructor(T,$,J,W){super(T,$,J?.relationName);this.config=J,this.isNullable=W}static[O]="One";withFieldName(T){let $=new s1(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=T,$}}class x2 extends iY{constructor(T,$,J){super(T,$,J?.relationName);this.config=J}static[O]="Many";withFieldName(T){let $=new x2(this.sourceTable,this.referencedTable,this.config);return $.fieldName=T,$}}function az(){return{and:q2,between:gH,eq:gF,exists:hH,gt:pF,gte:yH,ilike:oH,inArray:xH,isNull:PH,isNotNull:vH,like:uH,lt:IH,lte:jH,ne:ZH,not:qH,notBetween:pH,notExists:mH,notLike:cH,notIlike:dH,notInArray:bH,or:kH,sql:U}}function sz(){return{sql:U,asc:lH,desc:nH}}function ez(T,$){if(Object.keys(T).length===1&&"default"in T&&!L(T.default,u))T=T.default;let J={},W={},X={};for(let[F,Y]of Object.entries(T))if(L(Y,u)){let G=h0(Y),H=W[G];J[G]=F,X[F]={tsName:F,dbName:Y[u.Symbol.Name],schema:Y[u.Symbol.Schema],columns:Y[u.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let z of Object.values(Y[u.Symbol.Columns]))if(z.primary)X[F].primaryKey.push(z);let M=Y[u.Symbol.ExtraConfigBuilder]?.(Y[u.Symbol.ExtraConfigColumns]);if(M){for(let z of Object.values(M))if(L(z,j2))X[F].primaryKey.push(...z.columns)}}else if(L(Y,rz)){let G=h0(Y.table),H=J[G],M=Y.config($(Y.table)),z;for(let[A,Q]of Object.entries(M))if(H){let _=X[H];if(_.relations[A]=Q,z)_.primaryKey.push(...z)}else{if(!(G in W))W[G]={relations:{},primaryKey:z};W[G].relations[A]=Q}}return{tables:X,tableNamesMap:J}}function BS(T){return function $(J,W){return new s1(T,J,W,W?.fields.reduce((X,F)=>X&&F.notNull,!0)??!1)}}function fS(T){return function $(J,W){return new x2(T,J,W)}}function TA(T,$,J){if(L(J,s1)&&J.config)return{fields:J.config.fields,references:J.config.references};let W=$[h0(J.referencedTable)];if(!W)throw new Error(`Table "${J.referencedTable[u.Symbol.Name]}" not found in schema`);let X=T[W];if(!X)throw new Error(`Table "${W}" not found in schema`);let F=J.sourceTable,Y=$[h0(F)];if(!Y)throw new Error(`Table "${F[u.Symbol.Name]}" not found in schema`);let G=[];for(let H of Object.values(X.relations))if(J.relationName&&J!==H&&H.relationName===J.relationName||!J.relationName&&H.referencedTable===J.sourceTable)G.push(H);if(G.length>1)throw J.relationName?new Error(`There are multiple relations with name "${J.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${J.sourceTable[u.Symbol.Name]}". Please specify relation name`);if(G[0]&&L(G[0],s1)&&G[0].config)return{fields:G[0].config.references,references:G[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${J.fieldName}"`)}function $A(T){return{one:BS(T),many:fS(T)}}function eF(T,$,J,W,X=(F)=>F){let F={};for(let[Y,G]of W.entries())if(G.isJson){let H=$.relations[G.tsKey],M=J[Y],z=typeof M==="string"?JSON.parse(M):M;F[G.tsKey]=L(H,s1)?z&&eF(T,T[G.relationTableTsKey],z,G.selection,X):z.map((A)=>eF(T,T[G.relationTableTsKey],A,G.selection,X))}else{let H=X(J[Y]),M=G.field,z;if(L(M,vT))z=M;else if(L(M,c))z=M.decoder;else z=M.sql.decoder;F[G.tsKey]=H===null?null:z.mapFromDriverValue(H)}return F}import zL from"path";import tS from"os";import rS from"fs";var T4=new Map,tY=new Map,rY=Symbol("OriginError"),hW={};class RJ extends Promise{constructor(T,$,J,W,X={}){let F,Y;super((G,H)=>{F=G,Y=H});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=$,this.handler=J,this.canceller=W,this.options=X,this.state=null,this.statement=null,this.resolve=(G)=>(this.active=!1,F(G)),this.reject=(G)=>(this.active=!1,Y(G)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[rY]=this.handler.debug?new Error:this.tagged&&NS(this.strings)}get origin(){return(this.handler.debug?this[rY].stack:this.tagged&&tY.has(this.strings)?tY.get(this.strings):tY.set(this.strings,this[rY].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(T=1,$){if(this.options.simple=!1,typeof T==="function")$=T,T=1;if(this.cursorRows=T,typeof $==="function")return this.cursorFn=$,this;let J;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};J&&J();let W=new Promise((X,F)=>{this.cursorFn=(Y)=>{return X({value:Y,done:!1}),new Promise((G)=>J=G)},this.resolve=()=>(this.active=!1,X({done:!0})),this.reject=(Y)=>(this.active=!1,F(Y))});return this.execute(),W},return(){return J&&J(hW),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(T){return this.forEachFn=T,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function NS(T){if(T4.has(T))return T4.get(T);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,T4.set(T,new Error),Error.stackTraceLimit=$,T4.get(T)}class mW extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var H$={connection:JA,postgres:WA,generic:XA,notSupported:FA};function JA(T,$,J){let{host:W,port:X}=J||$,F=Object.assign(new Error("write "+T+" "+($.path||W+":"+X)),{code:T,errno:T,address:$.path||W},$.path?{}:{port:X});return Error.captureStackTrace(F,JA),F}function WA(T){let $=new mW(T);return Error.captureStackTrace($,WA),$}function XA(T,$){let J=Object.assign(new Error(T+": "+$),{code:T});return Error.captureStackTrace(J,XA),J}function FA(T){let $=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace($,FA),$}var CS={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class W4{then(){aY()}catch(){aY()}finally(){aY()}}class h2 extends W4{constructor(T){super();this.value=Y4(T)}}class sJ extends W4{constructor(T,$,J){super();this.value=T,this.type=$,this.array=J}}class X4 extends W4{constructor(T,$){super();this.first=T,this.rest=$}build(T,$,J,W){let X=ZS.map(([F,Y])=>({fn:Y,i:T.search(F)})).sort((F,Y)=>F.i-Y.i).pop();return X.i===-1?J9(this.first,W):X.fn(this.first,this.rest,$,J,W)}}function F4(T,$,J,W){let X=T instanceof sJ?T.value:T;if(X===void 0){if(T instanceof sJ?T.value=W.transform.undefined:X=T=W.transform.undefined,X===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+J.push(T instanceof sJ?($.push(T.value),T.array?T.array[T.type||J4(T.value)]||T.type||MA(T.value):T.type):($.push(T),J4(T)))}var GA=AA(CS);function T9(T,$,J,W,X,F){for(let Y=1;Y<T.strings.length;Y++)$+=$9($,J,W,X,F)+T.strings[Y],J=T.args[Y];return $}function $9(T,$,J,W,X){return $ instanceof X4?$.build(T,J,W,X):$ instanceof RJ?eY($,J,W,X):$ instanceof h2?$.value:$&&$[0]instanceof RJ?$.reduce((F,Y)=>F+" "+eY(Y,J,W,X),""):F4($,J,W,X)}function eY(T,$,J,W){return T.fragment=!0,T9(T,T.strings[0],T.args[0],$,J,W)}function HA(T,$,J,W,X){return T.map((F)=>"("+W.map((Y)=>$9("values",F[Y],$,J,X)).join(",")+")").join(",")}function YA(T,$,J,W,X){let F=Array.isArray(T[0]),Y=$.length?$.flat():Object.keys(F?T[0]:T);return HA(F?T:[T],J,W,Y,X)}function $4(T,$,J,W,X){if(typeof T==="string"&&(T=[T].concat($)),Array.isArray(T))return J9(T,X);let F;return($.length?$.flat():Object.keys(T)).map((G)=>{return F=T[G],(F instanceof RJ?eY(F,J,W,X):F instanceof h2?F.value:F4(F,J,W,X))+" as "+Y4(X.transform.column.to?X.transform.column.to(G):G)}).join(",")}var ZS=Object.entries({values:YA,in:(...T)=>{let $=YA(...T);return $==="()"?"(null)":$},select:$4,as:$4,returning:$4,"\\(":$4,update(T,$,J,W,X){return($.length?$.flat():Object.keys(T)).map((F)=>Y4(X.transform.column.to?X.transform.column.to(F):F)+"="+$9("values",T[F],J,W,X))},insert(T,$,J,W,X){let F=$.length?$.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+J9(F,X)+")values"+HA(Array.isArray(T)?T:[T],J,W,F,X)}}).map(([T,$])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function aY(){throw H$.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:kS,parsers:qS}=GA;function MA(T){if(Array.isArray(T))return MA(T[0]);return typeof T==="string"?1009:0}var zA=function(T){let $=AA(T||{});return{serializers:Object.assign({},kS,$.serializers),parsers:Object.assign({},qS,$.parsers)}};function AA(T){return Object.keys(T).reduce(($,J)=>{if(T[J].from&&[].concat(T[J].from).forEach((W)=>$.parsers[W]=T[J].parse),T[J].serialize)$.serializers[T[J].to]=T[J].serialize,T[J].from&&[].concat(T[J].from).forEach((W)=>$.serializers[W]=T[J].serialize);return $},{parsers:{},serializers:{}})}function J9(T,{transform:{column:$}}){return T.map((J)=>Y4($.to?$.to(J):J)).join(",")}var Y4=function T($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},J4=function T($){return $ instanceof sJ?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?T($[0]):0},yS=/\\/g,IS=/"/g;function jS(T){return T.replace(yS,"\\\\").replace(IS,"\\\"")}var QA=function T($,J,W,X){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let F=$[0],Y=X===1020?";":",";if(Array.isArray(F)&&!F.type)return"{"+$.map((G)=>T(G,J,W,X)).join(Y)+"}";return"{"+$.map((G)=>{if(G===void 0){if(G=W.transform.undefined,G===void 0)throw H$.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return G===null?"null":'"'+jS(J?J(G.type?G.value:G):""+G)+'"'}).join(Y)+"}"},sY={i:0,char:null,str:"",quoted:!1,last:0},wA=function T($,J,W){return sY.i=sY.last=0,OA(sY,$,J,W)};function OA(T,$,J,W){let X=[],F=W===1020?";":",";for(;T.i<$.length;T.i++){if(T.char=$[T.i],T.quoted)if(T.char==="\\")T.str+=$[++T.i];else if(T.char==='"')X.push(J?J(T.str):T.str),T.str="",T.quoted=$[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,X.push(OA(T,$,J,W));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&X.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===F&&T.p!=="}"&&T.p!=='"')X.push(J?J($.slice(T.last,T.i)):$.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&X.push(J?J($.slice(T.last,T.i+1)):$.slice(T.last,T.i+1)),X}var m0=(T)=>{let $=T[0];for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},g0=(T)=>{let $=T[0].toUpperCase();for(let J=1;J<T.length;J++)$+=T[J]==="_"?T[++J].toUpperCase():T[J];return $},p0=(T)=>T.replace(/_/g,"-"),b2=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),P2=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),v2=(T)=>T.replace(/-/g,"_");function W9(T){return function $(J,W){return typeof J==="object"&&J!==null&&(W.type===114||W.type===3802)?Array.isArray(J)?J.map((X)=>$(X,W)):Object.entries(J).reduce((X,[F,Y])=>Object.assign(X,{[T(F)]:$(Y,W)}),{}):J}}m0.column={from:m0};m0.value={from:W9(m0)};b2.column={to:b2};var X9={...m0};X9.column.to=b2;g0.column={from:g0};g0.value={from:W9(g0)};P2.column={to:P2};var F9={...g0};F9.column.to=P2;p0.column={from:p0};p0.value={from:W9(p0)};v2.column={to:v2};var Y9={...p0};Y9.column.to=v2;import UA from"net";import vS from"tls";import m2 from"crypto";import G9 from"stream";import{performance as _A}from"perf_hooks";class u0 extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var QJ=xS;function xS(T=[]){let $=T.slice(),J=0;return{get length(){return $.length-J},remove:(W)=>{let X=$.indexOf(W);return X===-1?null:($.splice(X,1),W)},push:(W)=>($.push(W),W),shift:()=>{let W=$[J++];if(J===$.length)J=0,$=[];else $[J-1]=void 0;return W}}}var P$=Buffer.allocUnsafe(256),bS="BCcDdEFfHPpQSX".split("").reduce((T,$)=>{let J=$.charCodeAt(0);return T[$]=()=>{return P$[0]=J,bT.i=5,bT},T},{}),bT=Object.assign(PS,bS,{N:String.fromCharCode(0),i:0,inc(T){return bT.i+=T,bT},str(T){let $=Buffer.byteLength(T);return G4($),bT.i+=P$.write(T,bT.i,$,"utf8"),bT},i16(T){return G4(2),P$.writeUInt16BE(T,bT.i),bT.i+=2,bT},i32(T,$){if($||$===0)return P$.writeUInt32BE(T,$),bT;return G4(4),P$.writeUInt32BE(T,bT.i),bT.i+=4,bT},z(T){return G4(T),P$.fill(0,bT.i,bT.i+T),bT.i+=T,bT},raw(T){return P$=Buffer.concat([P$.subarray(0,bT.i),T]),bT.i=P$.length,bT},end(T=1){P$.writeUInt32BE(bT.i-T,T);let $=P$.subarray(0,bT.i);return bT.i=0,P$=Buffer.allocUnsafe(256),$}}),s=bT;function G4(T){if(P$.length-bT.i<T){let $=P$,J=$.length;P$=Buffer.allocUnsafe(J+(J>>1)+T),$.copy(P$)}}function PS(){return bT.i=0,bT}var z9=KA,hS=1,e1=s().S().end(),DA=s().H().end(),mS=s().i32(8).i32(80877103).end(8),gS=Buffer.concat([s().E().str(s.N).i32(0).end(),e1]),pS=s().D().str("S").str(s.N).end(),gW=()=>{},uS=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),cS={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 KA(T,$={},{onopen:J=gW,onend:W=gW,onclose:X=gW}={}){let{ssl:F,max:Y,user:G,host:H,port:M,database:z,parsers:A,transform:Q,onnotice:_,onnotify:D,onparameter:K,max_pipeline:Z,keep_alive:k,backoff:N,target_session_attrs:y}=T,V=QJ(),f=hS++,C={pid:null,secret:null},B=M9(a4,T.idle_timeout),m=M9(a4,T.max_lifetime),$T=M9(WU,T.connect_timeout),E=null,XT,n=new u0,HT=Buffer.alloc(0),qT=T.fetch_types,eT={},l$={},J1=Math.random().toString(36).slice(2),I=1,a=0,CT=0,tT=0,z$=0,UT=0,gT=0,F$=0,rT=null,dT=null,k$=!1,pT=null,CJ=null,q$=null,b1=null,A$=null,lT=null,ZJ=null,pJ=null,h=null,MX=null,y$={queue:$.closed,idleTimer:B,connect(w){q$=w||!0,e5()},terminate:AX,execute:zX,cancel:eO,end:a4,count:0,id:f};return $.closed&&$.closed.push(y$),y$;async function sO(){let w;try{w=T.socket?await Promise.resolve(T.socket(T)):new UA.Socket}catch(S){r0(S);return}return w.on("error",r0),w.on("close",T7),w.on("drain",a5),w}async function eO({pid:w,secret:S},TT,ZT){try{XT=s().i32(16).i32(80877102).i32(w).i32(S).end(16),await s5(),E.once("error",ZT),E.once("close",TT)}catch(T$){ZT(T$)}}function zX(w){if(k$)return E8(w,H$.connection("CONNECTION_DESTROYED",T));if(w.cancelled)return;try{return w.state=C,h?V.push(w):(h=w,h.active=!0),JU(w),f$(TU(w))&&!w.describeFirst&&!w.cursorFn&&V.length<Z&&(!w.options.onexecute||w.options.onexecute(y$))}catch(S){return V.length===0&&f$(e1),uJ(S),!0}}function TU(w){if(w.parameters.length>=65534)throw H$.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return w.options.simple?s().Q().str(w.statement.string+s.N).end():w.describeFirst?Buffer.concat([i5(w),DA]):w.prepare?w.prepared?V8(w):Buffer.concat([i5(w),V8(w)]):$U(w)}function i5(w){return Buffer.concat([J7(w.statement.string,w.parameters,w.statement.types,w.statement.name),pU("S",w.statement.name)])}function V8(w){return Buffer.concat([gU(w.parameters,w.statement.types,w.statement.name,w.cursorName),w.cursorFn?W7("",w.cursorRows):gS])}function $U(w){return Buffer.concat([J7(w.statement.string,w.parameters,w.statement.types),pS,V8(w)])}function JU(w){let S=[],TT=[],ZT=T9(w,w.strings[0],w.args[0],S,TT,T);!w.tagged&&w.args.forEach((T$)=>F4(T$,S,TT,T)),w.prepare=T.prepare&&("prepare"in w.options?w.options.prepare:!0),w.string=ZT,w.signature=w.prepare&&TT+ZT,w.onlyDescribe&&delete l$[w.signature],w.parameters=w.parameters||S,w.prepared=w.prepare&&w.signature in l$,w.describeFirst=w.onlyDescribe||S.length&&!w.prepared,w.statement=w.prepared?l$[w.signature]:{string:ZT,types:TT,name:w.prepare?J1+I++:""},typeof T.debug==="function"&&T.debug(f,ZT,S,TT)}function f$(w,S){if(lT=lT?Buffer.concat([lT,w]):Buffer.from(w),S||lT.length>=1024)return t5(S);return dT===null&&(dT=setImmediate(t5)),!0}function t5(w){let S=E.write(lT,w);return dT!==null&&clearImmediate(dT),lT=dT=null,S}function WU(){uJ(H$.connection("CONNECT_TIMEOUT",T,E)),E.destroy()}async function r5(){if(f$(mS),!await new Promise((S)=>E.once("data",(TT)=>S(TT[0]===83)))&&F==="prefer")return t0();E.removeAllListeners(),E=vS.connect({socket:E,servername:UA.isIP(E.host)?void 0:E.host,...F==="require"||F==="allow"||F==="prefer"?{rejectUnauthorized:!1}:F==="verify-full"?{}:typeof F==="object"?F:{}}),E.on("secureConnect",t0),E.on("error",r0),E.on("close",T7),E.on("drain",a5)}function a5(){!h&&J(y$)}function r4(w){if(pT){if(pT.push(w),CT-=w.length,CT>=0)return}HT=pT?Buffer.concat(pT,UT-CT):HT.length===0?w:Buffer.concat([HT,w],HT.length+w.length);while(HT.length>4){if(UT=HT.readUInt32BE(1),UT>=HT.length){CT=UT-HT.length,pT=[HT];break}try{XU(HT.subarray(0,UT+1))}catch(S){h&&(h.cursorFn||h.describeFirst)&&f$(e1),uJ(S)}HT=HT.subarray(UT+1),CT=0,pT=null}}async function s5(){if(k$=!1,eT={},E||(E=await sO()),!E)return;if($T.start(),T.socket)return F?r5():t0();if(E.on("connect",F?r5:t0),T.path)return E.connect(T.path);E.ssl=F,E.connect(M[tT],H[tT]),E.host=H[tT],E.port=M[tT],tT=(tT+1)%M.length}function e5(){setTimeout(s5,a?a+gT-_A.now():0)}function t0(){try{l$={},qT=T.fetch_types,J1=Math.random().toString(36).slice(2),I=1,m.start(),E.on("data",r4),k&&E.setKeepAlive&&E.setKeepAlive(!0,1000*k);let w=cU();f$(w)}catch(w){r0(w)}}function r0(w){if(y$.queue===$.connecting&&T.host[z$+1])return;uJ(w);while(V.length)E8(V.shift(),w)}function uJ(w){A$&&(A$.destroy(w),A$=null),h&&E8(h,w),q$&&(E8(q$,w),q$=null)}function E8(w,S){"query"in S||"parameters"in S||Object.defineProperties(S,{stack:{value:S.stack+w.origin.replace(/.*\n/,`
68
+ `),enumerable:T.debug},query:{value:w.string,enumerable:T.debug},parameters:{value:w.parameters,enumerable:T.debug},args:{value:w.args,enumerable:T.debug},types:{value:w.statement&&w.statement.types,enumerable:T.debug}}),w.reject(S)}function a4(){return b1||(!y$.reserved&&W(y$),!y$.reserved&&!q$&&!h&&V.length===0?(AX(),new Promise((w)=>E&&E.readyState!=="closed"?E.once("close",w):w())):b1=new Promise((w)=>ZJ=w))}function AX(){if(k$=!0,A$||h||q$||V.length)r0(H$.connection("CONNECTION_DESTROYED",T));if(clearImmediate(dT),E)E.removeListener("data",r4),E.removeListener("connect",t0),E.readyState==="open"&&E.end(s().X().end());ZJ&&(ZJ(),b1=ZJ=null)}async function T7(w){if(HT=Buffer.alloc(0),CT=0,pT=null,clearImmediate(dT),E.removeListener("data",r4),E.removeListener("connect",t0),B.cancel(),m.cancel(),$T.cancel(),E.removeAllListeners(),E=null,q$)return e5();!w&&(h||V.length)&&r0(H$.connection("CONNECTION_CLOSED",T,E)),a=_A.now(),w&&T.shared.retries++,gT=(typeof N==="function"?N(T.shared.retries):N)*1000,X(y$,H$.connection("CONNECTION_CLOSED",T,E))}function XU(w,S=w[0]){(S===68?FU:S===100?IU:S===65?NU:S===83?YU:S===90?GU:S===67?HU:S===50?$7:S===49?MU:S===116?zU:S===84?AU:S===82?QU:S===110?SU:S===75?KU:S===69?BU:S===115?CU:S===51?ZU:S===71?kU:S===78?xU:S===72?qU:S===99?jU:S===73?bU:S===86?PU:S===118?vU:S===87?yU:hU)(w)}function FU(w){let S=7,TT,ZT,T$,I$=h.isRaw?new Array(h.statement.columns.length):{};for(let m$=0;m$<h.statement.columns.length;m$++)ZT=h.statement.columns[m$],TT=w.readInt32BE(S),S+=4,T$=TT===-1?null:h.isRaw===!0?w.subarray(S,S+=TT):ZT.parser===void 0?w.toString("utf8",S,S+=TT):ZT.parser.array===!0?ZT.parser(w.toString("utf8",S+1,S+=TT)):ZT.parser(w.toString("utf8",S,S+=TT)),h.isRaw?I$[m$]=h.isRaw===!0?T$:Q.value.from?Q.value.from(T$,ZT):T$:I$[ZT.name]=Q.value.from?Q.value.from(T$,ZT):T$;h.forEachFn?h.forEachFn(Q.row.from?Q.row.from(I$):I$,n):n[F$++]=Q.row.from?Q.row.from(I$):I$}function YU(w){let[S,TT]=w.toString("utf8",5,w.length-1).split(s.N);if(eT[S]=TT,T.parameters[S]!==TT)T.parameters[S]=TT,K&&K(S,TT)}function GU(w){if(h&&h.options.simple&&h.resolve(CJ||n),h=CJ=null,n=new u0,$T.cancel(),q$){if(y){if(!eT.in_hot_standby||!eT.default_transaction_read_only)return LU();else if(RU(y,eT))return AX()}if(qT)return q$===!0&&(q$=null),VU();q$!==!0&&zX(q$),T.shared.retries=z$=0,q$=null;return}while(V.length&&(h=V.shift())&&(h.active=!0,h.cancelled))KA(T).cancel(h.state,h.cancelled.resolve,h.cancelled.reject);if(h)return;y$.reserved?!y$.reserved.release&&w[5]===73?b1?AX():(y$.reserved=null,J(y$)):y$.reserved():b1?AX():J(y$)}function HU(w){F$=0;for(let S=w.length-1;S>0;S--){if(w[S]===32&&w[S+1]<58&&n.count===null)n.count=+w.toString("utf8",S+1,w.length-1);if(w[S-1]>=65){n.command=w.toString("utf8",5,S),n.state=C;break}}if(MX&&(MX(),MX=null),n.command==="BEGIN"&&Y!==1&&!y$.reserved)return uJ(H$.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(h.options.simple)return $7();if(h.cursorFn)n.count&&h.cursorFn(n),f$(e1);h.resolve(n)}function MU(){h.parsing=!1}function $7(){!n.statement&&(n.statement=h.statement),n.columns=h.statement.columns}function zU(w){let S=w.readUInt16BE(5);for(let TT=0;TT<S;++TT)!h.statement.types[TT]&&(h.statement.types[TT]=w.readUInt32BE(7+TT*4));h.prepare&&(l$[h.signature]=h.statement),h.describeFirst&&!h.onlyDescribe&&(f$(V8(h)),h.describeFirst=!1)}function AU(w){if(n.command)CJ=CJ||[n],CJ.push(n=new u0),n.count=null,h.statement.columns=null;let S=w.readUInt16BE(5),TT=7,ZT;h.statement.columns=Array(S);for(let T$=0;T$<S;++T$){ZT=TT;while(w[TT++]!==0);let I$=w.readUInt32BE(TT),m$=w.readUInt16BE(TT+4),P1=w.readUInt32BE(TT+6);h.statement.columns[T$]={name:Q.column.from?Q.column.from(w.toString("utf8",ZT,TT-1)):w.toString("utf8",ZT,TT-1),parser:A[P1],table:I$,number:m$,type:P1},TT+=18}if(n.statement=h.statement,h.onlyDescribe)return h.resolve(h.statement),f$(e1)}async function QU(w,S=w.readUInt32BE(5)){(S===3?wU:S===5?OU:S===10?UU:S===11?_U:S===12?DU:S!==0?mU:gW)(w,S)}async function wU(){let w=await s4();f$(s().p().str(w).z(1).end())}async function OU(w){let S="md5"+await SA(Buffer.concat([Buffer.from(await SA(await s4()+G)),w.subarray(9)]));f$(s().p().str(S).z(1).end())}async function UU(){pJ=(await m2.randomBytes(18)).toString("base64"),s().p().str("SCRAM-SHA-256"+s.N);let w=s.i;f$(s.inc(4).str("n,,n=*,r="+pJ).i32(s.i-w-4,w).end())}async function _U(w){let S=w.toString("utf8",9).split(",").reduce((m$,P1)=>(m$[P1[0]]=P1.slice(2),m$),{}),TT=await m2.pbkdf2Sync(await s4(),Buffer.from(S.s,"base64"),parseInt(S.i),32,"sha256"),ZT=await H4(TT,"Client Key"),T$="n=*,r="+pJ+",r="+S.r+",s="+S.s+",i="+S.i+",c=biws,r="+S.r;rT=(await H4(await H4(TT,"Server Key"),T$)).toString("base64");let I$="c=biws,r="+S.r+",p="+dS(ZT,Buffer.from(await H4(await oS(ZT),T$))).toString("base64");f$(s().p().str(I$).end())}function DU(w){if(w.toString("utf8",9).split(s.N,1)[0].slice(2)===rT)return;uJ(H$.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function s4(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function SU(){if(n.statement=h.statement,n.statement.columns=[],h.onlyDescribe)return h.resolve(h.statement),f$(e1)}function KU(w){C.pid=w.readUInt32BE(5),C.secret=w.readUInt32BE(9)}async function VU(){qT=!1,(await new RJ([`
69
69
  select b.oid, b.typarray
70
70
  from pg_catalog.pg_type a
71
71
  left join pg_catalog.pg_type b on b.oid = a.typelem
@@ -75,7 +75,7 @@ ${Y}`)}let H=xJ.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(nT.
75
75
  `],[],zX)).forEach(({oid:S,typarray:TT})=>EU(S,TT))}function EU(w,S){if(!!T.parsers[S]&&!!T.serializers[S])return;let TT=T.parsers[w];T.shared.typeArrayMap[w]=S,T.parsers[S]=(ZT)=>wA(ZT,TT,S),T.parsers[S].array=!0,T.serializers[S]=(ZT)=>QA(ZT,T.serializers[w],T,S)}function RU(w,S){return w==="read-write"&&S.default_transaction_read_only==="on"||w==="read-only"&&S.default_transaction_read_only==="off"||w==="primary"&&S.in_hot_standby==="on"||w==="standby"&&S.in_hot_standby==="off"||w==="prefer-standby"&&S.in_hot_standby==="off"&&T.host[z$]}function LU(){let w=new RJ([`
76
76
  show transaction_read_only;
77
77
  select pg_catalog.pg_is_in_recovery()
78
- `],[],zX,null,{simple:!0});w.resolve=([[S],[TT]])=>{eT.default_transaction_read_only=S.transaction_read_only,eT.in_hot_standby=TT.pg_is_in_recovery?"on":"off"},w.execute()}function BU(w){h&&(h.cursorFn||h.describeFirst)&&f$(e1);let S=H$.postgres(H9(w));h&&h.retried?uJ(h.retried):h&&h.prepared&&uS.has(S.routine)?fU(h,S):uJ(S)}function fU(w,S){delete l$[w.signature],w.retried=S,zX(w)}function NU(w){if(!D)return;let S=9;while(w[S++]!==0);D(w.toString("utf8",9,S-1),w.toString("utf8",S,w.length-1))}async function CU(){try{let w=await Promise.resolve(h.cursorFn(n));F$=0,w===hW?f$(uU(h.portal)):(n=new u0,f$(W7("",h.cursorRows)))}catch(w){f$(e1),h.reject(w)}}function ZU(){n.count&&h.cursorFn(n),h.resolve(n)}function kU(){A$=new G9.Writable({autoDestroy:!0,write(w,S,TT){E.write(s().d().raw(w).end(),TT)},destroy(w,S){S(w),E.write(s().f().str(w+s.N).end()),A$=null},final(w){E.write(s().c().end()),MX=w}}),h.resolve(A$)}function qU(){A$=new G9.Readable({read(){E.resume()}}),h.resolve(A$)}function yU(){A$=new G9.Duplex({autoDestroy:!0,read(){E.resume()},write(w,S,TT){E.write(s().d().raw(w).end(),TT)},destroy(w,S){S(w),E.write(s().f().str(w+s.N).end()),A$=null},final(w){E.write(s().c().end()),MX=w}}),h.resolve(A$)}function IU(w){A$&&(A$.push(w.subarray(5))||E.pause())}function jU(){A$&&A$.push(null),A$=null}function xU(w){_?_(H9(w)):console.log(H9(w))}function bU(){}function PU(){uJ(H$.notSupported("FunctionCallResponse"))}function vU(){uJ(H$.notSupported("NegotiateProtocolVersion"))}function hU(w){console.error("Postgres.js : Unknown Message:",w[0])}function mU(w,S){console.error("Postgres.js : Unknown Auth:",S)}function gU(w,S,TT="",ZT=""){let T$,j$;return s().B().str(ZT+s.N).str(TT+s.N).i16(0).i16(w.length),w.forEach((m$,P1)=>{if(m$===null)return s.i32(4294967295);j$=S[P1],w[P1]=m$=j$ in T.serializers?T.serializers[j$](m$):""+m$,T$=s.i,s.inc(4).str(m$).i32(s.i-T$-4,T$)}),s.i16(0),s.end()}function J7(w,S,TT,ZT=""){return s().P().str(ZT+s.N).str(w+s.N).i16(S.length),S.forEach((T$,j$)=>s.i32(TT[j$]||0)),s.end()}function pU(w,S=""){return s().D().str(w).str(S+s.N).end()}function W7(w="",S=0){return Buffer.concat([s().E().str(w+s.N).i32(S).end(),DA])}function uU(w=""){return Buffer.concat([s().C().str("P").str(w+s.N).end(),s().S().end()])}function cU(){return XT||s().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:G,database:z,client_encoding:"UTF8"},T.connection)).filter(([,w])=>w).map(([w,S])=>w+s.N+S).join(s.N)).z(2).end(0)}}function H9(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[cS[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function SA(T){return m2.createHash("md5").update(T).digest("hex")}function H4(T,$){return m2.createHmac("sha256",T).update($).digest()}function oS(T){return m2.createHash("sha256").update(T).digest()}function dS(T,$){let J=Math.max(T.length,$.length),W=Buffer.allocUnsafe(J);for(let X=0;X<J;X++)W[X]=T[X]^$[X];return W}function M9(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:gW,start:gW};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(W,$*1000,arguments)}};function W(X){T.apply(null,X),J=null}}var VA=()=>{};function A9(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),X={},F,Y,G=!1,H=A.sql=T({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(G)return;Y=null,X.pid=X.secret=void 0,Q(await _(H,W,$.publications)),J.forEach((K)=>K.forEach(({onsubscribe:Z})=>Z()))},no_subscribe:!0}),M=H.end,z=H.close;return H.end=async()=>{return G=!0,Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),M()},H.close=async()=>{return Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),z()},A;async function A(K,Z,k=VA,N=VA){if(K=iS(K),!F)F=_(H,W,$.publications);let y={fn:Z,onsubscribe:k},V=J.has(K)?J.get(K).add(y):J.set(K,new Set([y])).get(K),f=()=>{V.delete(y),V.size===0&&J.delete(K)};return F.then((C)=>{return Q(C),k(),Y&&Y.on("error",N),{unsubscribe:f,state:X,sql:H}})}function Q(K){Y=K.stream,X.pid=K.state.pid,X.secret=K.state.secret}async function _(K,Z,k){if(!k)throw new Error("Missing publication names");let N=await K.unsafe(`CREATE_REPLICATION_SLOT ${Z} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[y]=N,V=await K.unsafe(`START_REPLICATION SLOT ${Z} LOGICAL ${y.consistent_point} (proto_version '1', publication_names '${k}')`).writable(),f={lsn:Buffer.concat(y.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return V.on("data",B),V.on("error",C),V.on("close",K.close),{stream:V,state:N.state};function C(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function B(E){if(E[0]===119)nS(E.subarray(25),f,K.options.parsers,m,$.transform);else if(E[0]===107&&E[17])f.lsn=E.subarray(1,9),$T()}function m(E,XT){let n=XT.relation.schema+"."+XT.relation.table;D("*",E,XT),D("*:"+n,E,XT),XT.relation.keys.length&&D("*:"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT),D(XT.command,E,XT),D(XT.command+":"+n,E,XT),XT.relation.keys.length&&D(XT.command+":"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT)}function $T(){let E=Buffer.alloc(34);E[0]=114,E.fill(f.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),V.write(E)}}function D(K,Z,k){J.has(K)&&J.get(K).forEach(({fn:N})=>N(Z,k,K))}}function lS(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function nS(T,$,J,W,X){let F=(Y,[G,H])=>(Y[G.charCodeAt(0)]=H,Y);Object.entries({R:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)]={schema:Y.toString("utf8",G+=4,G=Y.indexOf(0,G))||"pg_catalog",table:Y.toString("utf8",G+1,G=Y.indexOf(0,G+1)),columns:Array(Y.readUInt16BE(G+=2)),keys:[]};G+=2;let M=0,z;while(G<Y.length)z=H.columns[M++]={key:Y[G++],name:X.column.from?X.column.from(Y.toString("utf8",G,G=Y.indexOf(0,G))):Y.toString("utf8",G,G=Y.indexOf(0,G)),type:Y.readUInt32BE(G+=1),parser:J[Y.readUInt32BE(G)],atttypmod:Y.readUInt32BE(G+=4)},z.key&&H.keys.push(z),G+=4},Y:()=>{},O:()=>{},B:(Y)=>{$.date=lS(Y.readBigInt64BE(9)),$.lsn=Y.subarray(1,9)},I:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)],{row:M}=M4(Y,H.columns,G+=7,X);W(M,{command:"insert",relation:H})},D:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let M=Y[G]===75;W(M||Y[G]===79?M4(Y,H.columns,G+=3,X).row:null,{command:"delete",relation:H,key:M})},U:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let M=Y[G]===75,z=M||Y[G]===79?M4(Y,H.columns,G+=3,X):null;z&&(G=z.i);let{row:A}=M4(Y,H.columns,G+3,X);W(A,{command:"update",relation:H,key:M,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce(F,{})[T[0]](T)}function M4(T,$,J,W){let X,F,Y,G=W.raw?new Array($.length):{};for(let H=0;H<$.length;H++)X=T[J++],F=$[H],Y=X===110?null:X===117?void 0:F.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):F.parser.array===!0?F.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):F.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?G[H]=W.raw===!0?Y:W.value.from?W.value.from(Y,F):Y:G[F.name]=W.value.from?W.value.from(Y,F):Y;return{i:J,row:W.row.from?W.row.from(G):G}}function iS(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,W,X]=$;return(J||"*")+(W?":"+(W.indexOf(".")===-1?"public."+W:W):"")+(X?"="+X:"")}import EA from"stream";function Q9(T,$,J=393216){return new Promise(async(W,X)=>{await T.begin(async(F)=>{let Y;!$&&([{oid:$}]=await F`select lo_creat(-1) as oid`);let[{fd:G}]=await F`select lo_open(${$}, ${J}) as fd`,H={writable:z,readable:M,close:()=>F`select lo_close(${G})`.then(Y),tell:()=>F`select lo_tell64(${G})`,read:(A)=>F`select loread(${G}, ${A}) as data`,write:(A)=>F`select lowrite(${G}, ${A})`,truncate:(A)=>F`select lo_truncate64(${G}, ${A})`,seek:(A,Q=0)=>F`select lo_lseek64(${G}, ${A}, ${Q})`,size:()=>F`
78
+ `],[],zX,null,{simple:!0});w.resolve=([[S],[TT]])=>{eT.default_transaction_read_only=S.transaction_read_only,eT.in_hot_standby=TT.pg_is_in_recovery?"on":"off"},w.execute()}function BU(w){h&&(h.cursorFn||h.describeFirst)&&f$(e1);let S=H$.postgres(H9(w));h&&h.retried?uJ(h.retried):h&&h.prepared&&uS.has(S.routine)?fU(h,S):uJ(S)}function fU(w,S){delete l$[w.signature],w.retried=S,zX(w)}function NU(w){if(!D)return;let S=9;while(w[S++]!==0);D(w.toString("utf8",9,S-1),w.toString("utf8",S,w.length-1))}async function CU(){try{let w=await Promise.resolve(h.cursorFn(n));F$=0,w===hW?f$(uU(h.portal)):(n=new u0,f$(W7("",h.cursorRows)))}catch(w){f$(e1),h.reject(w)}}function ZU(){n.count&&h.cursorFn(n),h.resolve(n)}function kU(){A$=new G9.Writable({autoDestroy:!0,write(w,S,TT){E.write(s().d().raw(w).end(),TT)},destroy(w,S){S(w),E.write(s().f().str(w+s.N).end()),A$=null},final(w){E.write(s().c().end()),MX=w}}),h.resolve(A$)}function qU(){A$=new G9.Readable({read(){E.resume()}}),h.resolve(A$)}function yU(){A$=new G9.Duplex({autoDestroy:!0,read(){E.resume()},write(w,S,TT){E.write(s().d().raw(w).end(),TT)},destroy(w,S){S(w),E.write(s().f().str(w+s.N).end()),A$=null},final(w){E.write(s().c().end()),MX=w}}),h.resolve(A$)}function IU(w){A$&&(A$.push(w.subarray(5))||E.pause())}function jU(){A$&&A$.push(null),A$=null}function xU(w){_?_(H9(w)):console.log(H9(w))}function bU(){}function PU(){uJ(H$.notSupported("FunctionCallResponse"))}function vU(){uJ(H$.notSupported("NegotiateProtocolVersion"))}function hU(w){console.error("Postgres.js : Unknown Message:",w[0])}function mU(w,S){console.error("Postgres.js : Unknown Auth:",S)}function gU(w,S,TT="",ZT=""){let T$,I$;return s().B().str(ZT+s.N).str(TT+s.N).i16(0).i16(w.length),w.forEach((m$,P1)=>{if(m$===null)return s.i32(4294967295);I$=S[P1],w[P1]=m$=I$ in T.serializers?T.serializers[I$](m$):""+m$,T$=s.i,s.inc(4).str(m$).i32(s.i-T$-4,T$)}),s.i16(0),s.end()}function J7(w,S,TT,ZT=""){return s().P().str(ZT+s.N).str(w+s.N).i16(S.length),S.forEach((T$,I$)=>s.i32(TT[I$]||0)),s.end()}function pU(w,S=""){return s().D().str(w).str(S+s.N).end()}function W7(w="",S=0){return Buffer.concat([s().E().str(w+s.N).i32(S).end(),DA])}function uU(w=""){return Buffer.concat([s().C().str("P").str(w+s.N).end(),s().S().end()])}function cU(){return XT||s().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:G,database:z,client_encoding:"UTF8"},T.connection)).filter(([,w])=>w).map(([w,S])=>w+s.N+S).join(s.N)).z(2).end(0)}}function H9(T){let $={},J=5;for(let W=5;W<T.length-1;W++)if(T[W]===0)$[cS[T[J]]]=T.toString("utf8",J+1,W),J=W+1;return $}function SA(T){return m2.createHash("md5").update(T).digest("hex")}function H4(T,$){return m2.createHmac("sha256",T).update($).digest()}function oS(T){return m2.createHash("sha256").update(T).digest()}function dS(T,$){let J=Math.max(T.length,$.length),W=Buffer.allocUnsafe(J);for(let X=0;X<J;X++)W[X]=T[X]^$[X];return W}function M9(T,$){if($=typeof $==="function"?$():$,!$)return{cancel:gW,start:gW};let J;return{cancel(){J&&(clearTimeout(J),J=null)},start(){J&&clearTimeout(J),J=setTimeout(W,$*1000,arguments)}};function W(X){T.apply(null,X),J=null}}var VA=()=>{};function A9(T,$){let J=new Map,W="postgresjs_"+Math.random().toString(36).slice(2),X={},F,Y,G=!1,H=A.sql=T({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(G)return;Y=null,X.pid=X.secret=void 0,Q(await _(H,W,$.publications)),J.forEach((K)=>K.forEach(({onsubscribe:Z})=>Z()))},no_subscribe:!0}),M=H.end,z=H.close;return H.end=async()=>{return G=!0,Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),M()},H.close=async()=>{return Y&&await new Promise((K)=>(Y.once("close",K),Y.end())),z()},A;async function A(K,Z,k=VA,N=VA){if(K=iS(K),!F)F=_(H,W,$.publications);let y={fn:Z,onsubscribe:k},V=J.has(K)?J.get(K).add(y):J.set(K,new Set([y])).get(K),f=()=>{V.delete(y),V.size===0&&J.delete(K)};return F.then((C)=>{return Q(C),k(),Y&&Y.on("error",N),{unsubscribe:f,state:X,sql:H}})}function Q(K){Y=K.stream,X.pid=K.state.pid,X.secret=K.state.secret}async function _(K,Z,k){if(!k)throw new Error("Missing publication names");let N=await K.unsafe(`CREATE_REPLICATION_SLOT ${Z} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[y]=N,V=await K.unsafe(`START_REPLICATION SLOT ${Z} LOGICAL ${y.consistent_point} (proto_version '1', publication_names '${k}')`).writable(),f={lsn:Buffer.concat(y.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return V.on("data",B),V.on("error",C),V.on("close",K.close),{stream:V,state:N.state};function C(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function B(E){if(E[0]===119)nS(E.subarray(25),f,K.options.parsers,m,$.transform);else if(E[0]===107&&E[17])f.lsn=E.subarray(1,9),$T()}function m(E,XT){let n=XT.relation.schema+"."+XT.relation.table;D("*",E,XT),D("*:"+n,E,XT),XT.relation.keys.length&&D("*:"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT),D(XT.command,E,XT),D(XT.command+":"+n,E,XT),XT.relation.keys.length&&D(XT.command+":"+n+"="+XT.relation.keys.map((HT)=>E[HT.name]),E,XT)}function $T(){let E=Buffer.alloc(34);E[0]=114,E.fill(f.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),V.write(E)}}function D(K,Z,k){J.has(K)&&J.get(K).forEach(({fn:N})=>N(Z,k,K))}}function lS(T){return new Date(Date.UTC(2000,0,1)+Number(T/BigInt(1000)))}function nS(T,$,J,W,X){let F=(Y,[G,H])=>(Y[G.charCodeAt(0)]=H,Y);Object.entries({R:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)]={schema:Y.toString("utf8",G+=4,G=Y.indexOf(0,G))||"pg_catalog",table:Y.toString("utf8",G+1,G=Y.indexOf(0,G+1)),columns:Array(Y.readUInt16BE(G+=2)),keys:[]};G+=2;let M=0,z;while(G<Y.length)z=H.columns[M++]={key:Y[G++],name:X.column.from?X.column.from(Y.toString("utf8",G,G=Y.indexOf(0,G))):Y.toString("utf8",G,G=Y.indexOf(0,G)),type:Y.readUInt32BE(G+=1),parser:J[Y.readUInt32BE(G)],atttypmod:Y.readUInt32BE(G+=4)},z.key&&H.keys.push(z),G+=4},Y:()=>{},O:()=>{},B:(Y)=>{$.date=lS(Y.readBigInt64BE(9)),$.lsn=Y.subarray(1,9)},I:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)],{row:M}=M4(Y,H.columns,G+=7,X);W(M,{command:"insert",relation:H})},D:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let M=Y[G]===75;W(M||Y[G]===79?M4(Y,H.columns,G+=3,X).row:null,{command:"delete",relation:H,key:M})},U:(Y)=>{let G=1,H=$[Y.readUInt32BE(G)];G+=4;let M=Y[G]===75,z=M||Y[G]===79?M4(Y,H.columns,G+=3,X):null;z&&(G=z.i);let{row:A}=M4(Y,H.columns,G+3,X);W(A,{command:"update",relation:H,key:M,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce(F,{})[T[0]](T)}function M4(T,$,J,W){let X,F,Y,G=W.raw?new Array($.length):{};for(let H=0;H<$.length;H++)X=T[J++],F=$[H],Y=X===110?null:X===117?void 0:F.parser===void 0?T.toString("utf8",J+4,J+=4+T.readUInt32BE(J)):F.parser.array===!0?F.parser(T.toString("utf8",J+5,J+=4+T.readUInt32BE(J))):F.parser(T.toString("utf8",J+4,J+=4+T.readUInt32BE(J))),W.raw?G[H]=W.raw===!0?Y:W.value.from?W.value.from(Y,F):Y:G[F.name]=W.value.from?W.value.from(Y,F):Y;return{i:J,row:W.row.from?W.row.from(G):G}}function iS(T){let $=T.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+T);let[,J,W,X]=$;return(J||"*")+(W?":"+(W.indexOf(".")===-1?"public."+W:W):"")+(X?"="+X:"")}import EA from"stream";function Q9(T,$,J=393216){return new Promise(async(W,X)=>{await T.begin(async(F)=>{let Y;!$&&([{oid:$}]=await F`select lo_creat(-1) as oid`);let[{fd:G}]=await F`select lo_open(${$}, ${J}) as fd`,H={writable:z,readable:M,close:()=>F`select lo_close(${G})`.then(Y),tell:()=>F`select lo_tell64(${G})`,read:(A)=>F`select loread(${G}, ${A}) as data`,write:(A)=>F`select lowrite(${G}, ${A})`,truncate:(A)=>F`select lo_truncate64(${G}, ${A})`,seek:(A,Q=0)=>F`select lo_lseek64(${G}, ${A}, ${Q})`,size:()=>F`
79
79
  select
80
80
  lo_lseek64(${G}, location, 0) as position,
81
81
  seek.size
@@ -85,13 +85,13 @@ ${Y}`)}let H=xJ.join(this.baseDir,`${T}/${$}.output.json`);return JSON.parse(nT.
85
85
  tell.location
86
86
  from (select lo_tell64($1) as location) tell
87
87
  ) seek
88
- `};return W(H),new Promise(async(A)=>Y=A);async function M({highWaterMark:A=16384,start:Q=0,end:_=1/0}={}){let D=_-Q;return Q&&await H.seek(Q),new EA.Readable({highWaterMark:A,async read(K){let Z=K>D?K-D:K;D-=K;let[{data:k}]=await H.read(Z);if(this.push(k),k.length<K)this.push(null)}})}async function z({highWaterMark:A=16384,start:Q=0}={}){return Q&&await H.seek(Q),new EA.Writable({highWaterMark:A,write(_,D,K){H.write(_).then(()=>K(),K)}})}}).catch(X)})}Object.assign(z4,{PostgresError:mW,toPascal:g0,pascal:F9,toCamel:m0,camel:X9,toKebab:p0,kebab:Y9,fromPascal:P2,fromCamel:b2,fromKebab:v2,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var pW=z4;function z4(T,$){let J=aS(T,$),W=J.no_subscribe||A9(z4,{...J}),X=!1,F=QJ(),Y=QJ(),G=QJ(),H=QJ(),M=QJ(),z=QJ(),A=QJ(),Q=QJ(),_={connecting:Y,reserved:G,closed:H,ended:M,open:z,busy:A,full:Q},D=[...Array(J.max)].map(()=>z9(J,_,{onopen:l$,onend:eT,onclose:J1})),K=Z(m);return Object.assign(K,{get parameters(){return J.parameters},largeObject:Q9.bind(null,K),subscribe:W,CLOSE:hW,END:hW,PostgresError:mW,options:J,reserve:y,listen:k,begin:V,close:n,end:XT}),K;function Z(I){return I.debug=J.debug,Object.entries(J.types).reduce((UT,[gT,F$])=>{return UT[gT]=(rT)=>new sJ(rT,F$.to),UT},a),Object.assign(CT,{types:a,typed:a,unsafe:tT,notify:N,array:B,json:C,file:z$}),CT;function a(UT,gT){return new sJ(UT,gT)}function CT(UT,...gT){return UT&&Array.isArray(UT.raw)?new RJ(UT,gT,I,E):typeof UT==="string"&&!gT.length?new h2(J.transform.column.to?J.transform.column.to(UT):UT):new X4(UT,gT)}function tT(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([UT],gT,I,E,{prepare:!1,...F$,simple:"simple"in F$?F$.simple:gT.length===0})}function z$(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([],gT,(dT)=>{rS.readFile(UT,"utf8",(q$,pT)=>{if(q$)return dT.reject(q$);dT.strings=[pT],I(dT)})},E,{...F$,simple:"simple"in F$?F$.simple:gT.length===0})}}async function k(I,a,CT){let tT={fn:a,onlisten:CT},z$=k.sql||(k.sql=z4({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(k.channels).forEach(([dT,{listeners:q$}])=>{delete k.channels[dT],Promise.all(q$.map((pT)=>k(dT,pT.fn,pT.onlisten).catch(()=>{})))})},onnotify(dT,q$){dT in k.channels&&k.channels[dT].listeners.forEach((pT)=>pT.fn(q$))}})),UT=k.channels||(k.channels={});if(I in UT){UT[I].listeners.push(tT);let dT=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:dT.state,unlisten:rT}}UT[I]={result:z$`listen ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`,listeners:[tT]};let F$=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:F$.state,unlisten:rT};async function rT(){if(I in UT===!1)return;if(UT[I].listeners=UT[I].listeners.filter((dT)=>dT!==tT),UT[I].listeners.length)return;return delete UT[I],z$`unlisten ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`}}async function N(I,a){return await K`select pg_notify(${I}, ${""+a})`}async function y(){let I=QJ(),a=z.length?z.shift():await new Promise((z$)=>{F.push({reserve:z$}),H.length&&qT(H.shift())});f(a,G),a.reserved=()=>I.length?a.execute(I.shift()):f(a,G),a.reserved.release=!0;let CT=Z(tT);return CT.release=()=>{a.reserved=null,l$(a)},CT;function tT(z$){a.queue===Q?I.push(z$):a.execute(z$)||f(a,Q)}}async function V(I,a){!a&&(a=I,I="");let CT=QJ(),tT=0,z$,UT=null;try{return await K.unsafe("begin "+I.replace(/[^a-z ]/ig,""),[],{onexecute:F$}).execute(),await Promise.race([gT(z$,a),new Promise((rT,dT)=>z$.onclose=dT)])}catch(rT){throw rT}async function gT(rT,dT,q$){let pT=Z(A$);pT.savepoint=b1,pT.prepare=(lT)=>UT=lT.replace(/[^a-z0-9$-_. ]/gi);let CJ,y$;q$&&await pT`savepoint ${pT(q$)}`;try{if(y$=await new Promise((lT,ZJ)=>{let pJ=dT(pT);Promise.resolve(Array.isArray(pJ)?Promise.all(pJ):pJ).then(lT,ZJ)}),CJ)throw CJ}catch(lT){throw await(q$?pT`rollback to ${pT(q$)}`:pT`rollback`),lT instanceof mW&&lT.code==="25P02"&&CJ||lT}if(!q$)UT?await pT`prepare transaction '${pT.unsafe(UT)}'`:await pT`commit`;return y$;function b1(lT,ZJ){if(lT&&Array.isArray(lT.raw))return b1((pJ)=>pJ.apply(pJ,arguments));return arguments.length===1&&(ZJ=lT,lT=null),gT(rT,ZJ,"s"+tT+++(lT?"_"+lT:""))}function A$(lT){lT.catch((ZJ)=>CJ||(CJ=ZJ)),rT.queue===Q?CT.push(lT):rT.execute(lT)||f(rT,Q)}}function F$(rT){z$=rT,f(rT,G),rT.reserved=()=>CT.length?rT.execute(CT.shift()):f(rT,G)}}function f(I,a){return I.queue.remove(I),a.push(I),I.queue=a,a===z?I.idleTimer.start():I.idleTimer.cancel(),I}function C(I){return new sJ(I,3802)}function B(I,a){if(!Array.isArray(I))return B(Array.from(arguments));return new sJ(I,a||(I.length?J4(I)||25:0),J.shared.typeArrayMap)}function m(I){if(X)return I.reject(H$.connection("CONNECTION_ENDED",J,J));if(z.length)return $T(z.shift(),I);if(H.length)return qT(H.shift(),I);A.length?$T(A.shift(),I):F.push(I)}function $T(I,a){return I.execute(a)?f(I,A):f(I,Q)}function E(I){return new Promise((a,CT)=>{I.state?I.active?z9(J).cancel(I.state,a,CT):I.cancelled={resolve:a,reject:CT}:(F.remove(I),I.cancelled=!0,I.reject(H$.generic("57014","canceling statement due to user request")),a())})}async function XT({timeout:I=null}={}){if(X)return X;await 1;let a;return X=Promise.race([new Promise((CT)=>I!==null&&(a=setTimeout(HT,I*1000,CT))),Promise.all(D.map((CT)=>CT.end()).concat(k.sql?k.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(a))}async function n(){await Promise.all(D.map((I)=>I.end()))}async function HT(I){await Promise.all(D.map((a)=>a.terminate()));while(F.length)F.shift().reject(H$.connection("CONNECTION_DESTROYED",J));I()}function qT(I,a){return f(I,Y),I.connect(a),I}function eT(I){f(I,M)}function l$(I){if(F.length===0)return f(I,z);let a=Math.ceil(F.length/(Y.length+1)),CT=!0;while(CT&&F.length&&a-- >0){let tT=F.shift();if(tT.reserve)return tT.reserve(I);CT=I.execute(tT)}CT?f(I,A):f(I,Q)}function J1(I,a){f(I,H),I.reserved=null,I.onclose&&(I.onclose(a),I.onclose=null),J.onclose&&J.onclose(I.id),F.length&&qT(I,F.shift())}}function aS(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:X,multihost:F}=JK(T),Y=[...X.searchParams].reduce((Q,[_,D])=>(Q[_]=D,Q),{}),G=W.hostname||W.host||F||X.hostname||J.PGHOST||"localhost",H=W.port||X.port||J.PGPORT||5432,M=W.user||W.username||X.username||J.PGUSERNAME||J.PGUSER||WK();W.no_prepare&&(W.prepare=!1),Y.sslmode&&(Y.ssl=Y.sslmode,delete Y.sslmode),"timeout"in W&&(console.log("The timeout option is deprecated, use idle_timeout instead"),W.idle_timeout=W.timeout),Y.sslrootcert==="system"&&(Y.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],A={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:TK,max_pipeline:100,backoff:eS,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(G)?G:G.split(",").map((Q)=>Q.split(":")[0]),port:Array.isArray(H)?H:G.split(",").map((Q)=>parseInt(Q.split(":")[1]||H)),path:W.path||G.indexOf("/")>-1&&G+"/.s.PGSQL."+H,database:W.database||W.db||(X.pathname||"").slice(1)||J.PGDATABASE||M,user:M,pass:W.pass||W.password||X.password||J.PGPASSWORD||"",...Object.entries(A).reduce((Q,[_,D])=>{let K=_ in W?W[_]:(_ in Y)?Y[_]==="disable"||Y[_]==="false"?!1:Y[_]:J["PG"+_.toUpperCase()]||D;return Q[_]=typeof K==="string"&&z.includes(_)?+K:K,Q},{}),connection:{application_name:"postgres.js",...W.connection,...Object.entries(Y).reduce((Q,[_,D])=>((_ in A)||(Q[_]=D),Q),{})},types:W.types||{},target_session_attrs:sS(W,X,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:$K(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...zA(W.types)}}function sS(T,$,J){let W=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!W||["read-write","read-only","primary","standby","prefer-standby"].includes(W))return W;throw new Error("target_session_attrs "+W+" is not supported")}function eS(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function TK(){return 60*(30+Math.random()*30)}function $K(T){return{undefined:T.undefined,column:{from:typeof T.column==="function"?T.column:T.column&&T.column.from,to:T.column&&T.column.to},value:{from:typeof T.value==="function"?T.value:T.value&&T.value.from,to:T.value&&T.value.to},row:{from:typeof T.row==="function"?T.row:T.row&&T.row.from,to:T.row&&T.row.to}}}function JK(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let J=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(J.username),password:decodeURIComponent(J.password),host:J.host,hostname:J.hostname,port:J.port,pathname:J.pathname,searchParams:J.searchParams},multihost:$.indexOf(",")>-1&&$}}function WK(){try{return tS.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class J${static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===uT)return{...T[uT],selectedFields:new Proxy(T[uT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(L(T,S$)?T._.selectedFields:L(T,a$)?T[uT].selectedFields:T)[$];if(L(W,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!W.isSelectionField)return W.sql;let X=W.clone();return X.isSelectionField=!0,X}if(L(W,c)){if(this.config.sqlBehavior==="sql")return W;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(L(W,vT)){if(this.config.alias)return new Proxy(W,new vW(new Proxy(W.table,new Z2(this.config.alias,this.config.replaceOriginalName??!1))));return W}if(typeof W!=="object"||W===null)return W;return new Proxy(W,new J$(this.config))}}class A4 extends u${constructor(T,$,J,W){super();this.session=$,this.dialect=J,this.config={table:T,withList:W}}static[O]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function XK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function FK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,W,X)=>{let F=X===0?W.toLowerCase():`${W[0].toUpperCase()}${W.slice(1)}`;return J+F},"")}function YK(T){return T}class w9{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?XK:T==="camelCase"?FK:YK}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[u.Symbol.Schema]??"public",J=T.table[u.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[u.Symbol.Schema]??"public",J=T[u.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let X of Object.values(T[u.Symbol.Columns])){let F=`${W}.${X.name}`;this.cache[F]=this.convert(X.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class g2 extends a${static[O]="PgViewBase"}class c0{static[O]="PgDialect";casing;constructor(T){this.casing=new w9(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",X=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",F=U`
88
+ `};return W(H),new Promise(async(A)=>Y=A);async function M({highWaterMark:A=16384,start:Q=0,end:_=1/0}={}){let D=_-Q;return Q&&await H.seek(Q),new EA.Readable({highWaterMark:A,async read(K){let Z=K>D?K-D:K;D-=K;let[{data:k}]=await H.read(Z);if(this.push(k),k.length<K)this.push(null)}})}async function z({highWaterMark:A=16384,start:Q=0}={}){return Q&&await H.seek(Q),new EA.Writable({highWaterMark:A,write(_,D,K){H.write(_).then(()=>K(),K)}})}}).catch(X)})}Object.assign(z4,{PostgresError:mW,toPascal:g0,pascal:F9,toCamel:m0,camel:X9,toKebab:p0,kebab:Y9,fromPascal:P2,fromCamel:b2,fromKebab:v2,BigInt:{to:20,from:[20],parse:(T)=>BigInt(T),serialize:(T)=>T.toString()}});var pW=z4;function z4(T,$){let J=aS(T,$),W=J.no_subscribe||A9(z4,{...J}),X=!1,F=QJ(),Y=QJ(),G=QJ(),H=QJ(),M=QJ(),z=QJ(),A=QJ(),Q=QJ(),_={connecting:Y,reserved:G,closed:H,ended:M,open:z,busy:A,full:Q},D=[...Array(J.max)].map(()=>z9(J,_,{onopen:l$,onend:eT,onclose:J1})),K=Z(m);return Object.assign(K,{get parameters(){return J.parameters},largeObject:Q9.bind(null,K),subscribe:W,CLOSE:hW,END:hW,PostgresError:mW,options:J,reserve:y,listen:k,begin:V,close:n,end:XT}),K;function Z(I){return I.debug=J.debug,Object.entries(J.types).reduce((UT,[gT,F$])=>{return UT[gT]=(rT)=>new sJ(rT,F$.to),UT},a),Object.assign(CT,{types:a,typed:a,unsafe:tT,notify:N,array:B,json:C,file:z$}),CT;function a(UT,gT){return new sJ(UT,gT)}function CT(UT,...gT){return UT&&Array.isArray(UT.raw)?new RJ(UT,gT,I,E):typeof UT==="string"&&!gT.length?new h2(J.transform.column.to?J.transform.column.to(UT):UT):new X4(UT,gT)}function tT(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([UT],gT,I,E,{prepare:!1,...F$,simple:"simple"in F$?F$.simple:gT.length===0})}function z$(UT,gT=[],F$={}){return arguments.length===2&&!Array.isArray(gT)&&(F$=gT,gT=[]),new RJ([],gT,(dT)=>{rS.readFile(UT,"utf8",(k$,pT)=>{if(k$)return dT.reject(k$);dT.strings=[pT],I(dT)})},E,{...F$,simple:"simple"in F$?F$.simple:gT.length===0})}}async function k(I,a,CT){let tT={fn:a,onlisten:CT},z$=k.sql||(k.sql=z4({...J,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(k.channels).forEach(([dT,{listeners:k$}])=>{delete k.channels[dT],Promise.all(k$.map((pT)=>k(dT,pT.fn,pT.onlisten).catch(()=>{})))})},onnotify(dT,k$){dT in k.channels&&k.channels[dT].listeners.forEach((pT)=>pT.fn(k$))}})),UT=k.channels||(k.channels={});if(I in UT){UT[I].listeners.push(tT);let dT=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:dT.state,unlisten:rT}}UT[I]={result:z$`listen ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`,listeners:[tT]};let F$=await UT[I].result;return tT.onlisten&&tT.onlisten(),{state:F$.state,unlisten:rT};async function rT(){if(I in UT===!1)return;if(UT[I].listeners=UT[I].listeners.filter((dT)=>dT!==tT),UT[I].listeners.length)return;return delete UT[I],z$`unlisten ${z$.unsafe('"'+I.replace(/"/g,'""')+'"')}`}}async function N(I,a){return await K`select pg_notify(${I}, ${""+a})`}async function y(){let I=QJ(),a=z.length?z.shift():await new Promise((z$)=>{F.push({reserve:z$}),H.length&&qT(H.shift())});f(a,G),a.reserved=()=>I.length?a.execute(I.shift()):f(a,G),a.reserved.release=!0;let CT=Z(tT);return CT.release=()=>{a.reserved=null,l$(a)},CT;function tT(z$){a.queue===Q?I.push(z$):a.execute(z$)||f(a,Q)}}async function V(I,a){!a&&(a=I,I="");let CT=QJ(),tT=0,z$,UT=null;try{return await K.unsafe("begin "+I.replace(/[^a-z ]/ig,""),[],{onexecute:F$}).execute(),await Promise.race([gT(z$,a),new Promise((rT,dT)=>z$.onclose=dT)])}catch(rT){throw rT}async function gT(rT,dT,k$){let pT=Z(A$);pT.savepoint=b1,pT.prepare=(lT)=>UT=lT.replace(/[^a-z0-9$-_. ]/gi);let CJ,q$;k$&&await pT`savepoint ${pT(k$)}`;try{if(q$=await new Promise((lT,ZJ)=>{let pJ=dT(pT);Promise.resolve(Array.isArray(pJ)?Promise.all(pJ):pJ).then(lT,ZJ)}),CJ)throw CJ}catch(lT){throw await(k$?pT`rollback to ${pT(k$)}`:pT`rollback`),lT instanceof mW&&lT.code==="25P02"&&CJ||lT}if(!k$)UT?await pT`prepare transaction '${pT.unsafe(UT)}'`:await pT`commit`;return q$;function b1(lT,ZJ){if(lT&&Array.isArray(lT.raw))return b1((pJ)=>pJ.apply(pJ,arguments));return arguments.length===1&&(ZJ=lT,lT=null),gT(rT,ZJ,"s"+tT+++(lT?"_"+lT:""))}function A$(lT){lT.catch((ZJ)=>CJ||(CJ=ZJ)),rT.queue===Q?CT.push(lT):rT.execute(lT)||f(rT,Q)}}function F$(rT){z$=rT,f(rT,G),rT.reserved=()=>CT.length?rT.execute(CT.shift()):f(rT,G)}}function f(I,a){return I.queue.remove(I),a.push(I),I.queue=a,a===z?I.idleTimer.start():I.idleTimer.cancel(),I}function C(I){return new sJ(I,3802)}function B(I,a){if(!Array.isArray(I))return B(Array.from(arguments));return new sJ(I,a||(I.length?J4(I)||25:0),J.shared.typeArrayMap)}function m(I){if(X)return I.reject(H$.connection("CONNECTION_ENDED",J,J));if(z.length)return $T(z.shift(),I);if(H.length)return qT(H.shift(),I);A.length?$T(A.shift(),I):F.push(I)}function $T(I,a){return I.execute(a)?f(I,A):f(I,Q)}function E(I){return new Promise((a,CT)=>{I.state?I.active?z9(J).cancel(I.state,a,CT):I.cancelled={resolve:a,reject:CT}:(F.remove(I),I.cancelled=!0,I.reject(H$.generic("57014","canceling statement due to user request")),a())})}async function XT({timeout:I=null}={}){if(X)return X;await 1;let a;return X=Promise.race([new Promise((CT)=>I!==null&&(a=setTimeout(HT,I*1000,CT))),Promise.all(D.map((CT)=>CT.end()).concat(k.sql?k.sql.end({timeout:0}):[],W.sql?W.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(a))}async function n(){await Promise.all(D.map((I)=>I.end()))}async function HT(I){await Promise.all(D.map((a)=>a.terminate()));while(F.length)F.shift().reject(H$.connection("CONNECTION_DESTROYED",J));I()}function qT(I,a){return f(I,Y),I.connect(a),I}function eT(I){f(I,M)}function l$(I){if(F.length===0)return f(I,z);let a=Math.ceil(F.length/(Y.length+1)),CT=!0;while(CT&&F.length&&a-- >0){let tT=F.shift();if(tT.reserve)return tT.reserve(I);CT=I.execute(tT)}CT?f(I,A):f(I,Q)}function J1(I,a){f(I,H),I.reserved=null,I.onclose&&(I.onclose(a),I.onclose=null),J.onclose&&J.onclose(I.id),F.length&&qT(I,F.shift())}}function aS(T,$){if(T&&T.shared)return T;let J=process.env,W=(!T||typeof T==="string"?$:T)||{},{url:X,multihost:F}=JK(T),Y=[...X.searchParams].reduce((Q,[_,D])=>(Q[_]=D,Q),{}),G=W.hostname||W.host||F||X.hostname||J.PGHOST||"localhost",H=W.port||X.port||J.PGPORT||5432,M=W.user||W.username||X.username||J.PGUSERNAME||J.PGUSER||WK();W.no_prepare&&(W.prepare=!1),Y.sslmode&&(Y.ssl=Y.sslmode,delete Y.sslmode),"timeout"in W&&(console.log("The timeout option is deprecated, use idle_timeout instead"),W.idle_timeout=W.timeout),Y.sslrootcert==="system"&&(Y.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],A={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:TK,max_pipeline:100,backoff:eS,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(G)?G:G.split(",").map((Q)=>Q.split(":")[0]),port:Array.isArray(H)?H:G.split(",").map((Q)=>parseInt(Q.split(":")[1]||H)),path:W.path||G.indexOf("/")>-1&&G+"/.s.PGSQL."+H,database:W.database||W.db||(X.pathname||"").slice(1)||J.PGDATABASE||M,user:M,pass:W.pass||W.password||X.password||J.PGPASSWORD||"",...Object.entries(A).reduce((Q,[_,D])=>{let K=_ in W?W[_]:(_ in Y)?Y[_]==="disable"||Y[_]==="false"?!1:Y[_]:J["PG"+_.toUpperCase()]||D;return Q[_]=typeof K==="string"&&z.includes(_)?+K:K,Q},{}),connection:{application_name:"postgres.js",...W.connection,...Object.entries(Y).reduce((Q,[_,D])=>((_ in A)||(Q[_]=D),Q),{})},types:W.types||{},target_session_attrs:sS(W,X,J),onnotice:W.onnotice,onnotify:W.onnotify,onclose:W.onclose,onparameter:W.onparameter,socket:W.socket,transform:$K(W.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...zA(W.types)}}function sS(T,$,J){let W=T.target_session_attrs||$.searchParams.get("target_session_attrs")||J.PGTARGETSESSIONATTRS;if(!W||["read-write","read-only","primary","standby","prefer-standby"].includes(W))return W;throw new Error("target_session_attrs "+W+" is not supported")}function eS(T){return(0.5+Math.random()/2)*Math.min(3**T/100,20)}function TK(){return 60*(30+Math.random()*30)}function $K(T){return{undefined:T.undefined,column:{from:typeof T.column==="function"?T.column:T.column&&T.column.from,to:T.column&&T.column.to},value:{from:typeof T.value==="function"?T.value:T.value&&T.value.from,to:T.value&&T.value.to},row:{from:typeof T.row==="function"?T.row:T.row&&T.row.from,to:T.row&&T.row.to}}}function JK(T){if(!T||typeof T!=="string")return{url:{searchParams:new Map}};let $=T;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let J=new URL(T.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(J.username),password:decodeURIComponent(J.password),host:J.host,hostname:J.hostname,port:J.port,pathname:J.pathname,searchParams:J.searchParams},multihost:$.indexOf(",")>-1&&$}}function WK(){try{return tS.userInfo().username}catch(T){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class J${static[O]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,$){if($==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if($===uT)return{...T[uT],selectedFields:new Proxy(T[uT].selectedFields,this)};if(typeof $==="symbol")return T[$];let W=(L(T,S$)?T._.selectedFields:L(T,a$)?T[uT].selectedFields:T)[$];if(L(W,c.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!W.isSelectionField)return W.sql;let X=W.clone();return X.isSelectionField=!0,X}if(L(W,c)){if(this.config.sqlBehavior==="sql")return W;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(L(W,vT)){if(this.config.alias)return new Proxy(W,new vW(new Proxy(W.table,new Z2(this.config.alias,this.config.replaceOriginalName??!1))));return W}if(typeof W!=="object"||W===null)return W;return new Proxy(W,new J$(this.config))}}class A4 extends u${constructor(T,$,J,W){super();this.session=$,this.dialect=J,this.config={table:T,withList:W}}static[O]="PgDelete";config;where(T){return this.config.where=T,this}returning(T=this.config.table[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function XK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((J)=>J.toLowerCase()).join("_")}function FK(T){return(T.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((J,W,X)=>{let F=X===0?W.toLowerCase():`${W[0].toUpperCase()}${W.slice(1)}`;return J+F},"")}function YK(T){return T}class w9{static[O]="CasingCache";cache={};cachedTables={};convert;constructor(T){this.convert=T==="snake_case"?XK:T==="camelCase"?FK:YK}getColumnCasing(T){if(!T.keyAsName)return T.name;let $=T.table[u.Symbol.Schema]??"public",J=T.table[u.Symbol.OriginalName],W=`${$}.${J}.${T.name}`;if(!this.cache[W])this.cacheTable(T.table);return this.cache[W]}cacheTable(T){let $=T[u.Symbol.Schema]??"public",J=T[u.Symbol.OriginalName],W=`${$}.${J}`;if(!this.cachedTables[W]){for(let X of Object.values(T[u.Symbol.Columns])){let F=`${W}.${X.name}`;this.cache[F]=this.convert(X.name)}this.cachedTables[W]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class g2 extends a${static[O]="PgViewBase"}class c0{static[O]="PgDialect";casing;constructor(T){this.casing=new w9(T?.casing)}async migrate(T,$,J){let W=typeof J==="string"?"__drizzle_migrations":J.migrationsTable??"__drizzle_migrations",X=typeof J==="string"?"drizzle":J.migrationsSchema??"drizzle",F=U`
89
89
  CREATE TABLE IF NOT EXISTS ${U.identifier(X)}.${U.identifier(W)} (
90
90
  id SERIAL PRIMARY KEY,
91
91
  hash text NOT NULL,
92
92
  created_at bigint
93
93
  )
94
- `;await $.execute(U`CREATE SCHEMA IF NOT EXISTS ${U.identifier(X)}`),await $.execute(F);let G=(await $.all(U`select id, hash, created_at from ${U.identifier(X)}.${U.identifier(W)} order by created_at desc limit 1`))[0];await $.transaction(async(H)=>{for await(let M of T)if(!G||Number(G.created_at)<M.folderMillis){for(let z of M.sql)await H.execute(U.raw(z));await H.execute(U`insert into ${U.identifier(X)}.${U.identifier(W)} ("hash", "created_at") values(${M.hash}, ${M.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[U`with `];for(let[J,W]of T.entries())if($.push(U`${U.identifier(W._.alias)} as (${W._.sql})`),J<T.length-1)$.push(U`, `);return $.push(U` `),U.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:W}){let X=this.buildWithCTE(W),F=J?U` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,Y=$?U` where ${$}`:void 0;return U`${X}delete from ${T}${Y}${F}`}buildUpdateSet(T,$){let J=T[u.Symbol.Columns],W=Object.keys(J).filter((F)=>$[F]!==void 0||J[F]?.onUpdateFn!==void 0),X=W.length;return U.join(W.flatMap((F,Y)=>{let G=J[F],H=$[F]??U.param(G.onUpdateFn(),G),M=U`${U.identifier(this.casing.getColumnCasing(G))} = ${H}`;if(Y<X-1)return[M,U.raw(", ")];return[M]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:X,from:F,joins:Y}){let G=this.buildWithCTE(X),H=T[k$.Symbol.Name],M=T[k$.Symbol.Schema],z=T[k$.Symbol.OriginalName],A=H===z?void 0:H,Q=U`${M?U`${U.identifier(M)}.`:void 0}${U.identifier(z)}${A&&U` ${U.identifier(A)}`}`,_=this.buildUpdateSet(T,$),D=F&&U.join([U.raw(" from "),this.buildFromTable(F)]),K=this.buildJoins(Y),Z=W?U` returning ${this.buildSelection(W,{isSingleTable:!F})}`:void 0,k=J?U` where ${J}`:void 0;return U`${G}update ${Q} set ${_}${D}${K}${k}${Z}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:X},F)=>{let Y=[];if(L(X,c.Aliased)&&X.isSelectionField)Y.push(U.identifier(X.fieldAlias));else if(L(X,c.Aliased)||L(X,c)){let G=L(X,c.Aliased)?X.sql:X;if($)Y.push(new c(G.queryChunks.map((H)=>{if(L(H,b))return U.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(G);if(L(X,c.Aliased))Y.push(U` as ${U.identifier(X.fieldAlias)}`)}else if(L(X,vT))if($)Y.push(U.identifier(this.casing.getColumnCasing(X)));else Y.push(X);if(F<J-1)Y.push(U`, `);return Y});return U.join(W)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,W]of T.entries()){if(J===0)$.push(U` `);let X=W.table,F=W.lateral?U` lateral`:void 0;if(L(X,k$)){let Y=X[k$.Symbol.Name],G=X[k$.Symbol.Schema],H=X[k$.Symbol.OriginalName],M=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${M&&U` ${U.identifier(M)}`} on ${W.on}`)}else if(L(X,a$)){let Y=X[uT].name,G=X[uT].schema,H=X[uT].originalName,M=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${M&&U` ${U.identifier(M)}`} on ${W.on}`)}else $.push(U`${U.raw(W.joinType)} join${F} ${X} on ${W.on}`);if(J<T.length-1)$.push(U` `)}return U.join($)}buildFromTable(T){if(L(T,u)&&T[u.Symbol.IsAlias]){let $=U`${U.identifier(T[u.Symbol.OriginalName])}`;if(T[u.Symbol.Schema])$=U`${U.identifier(T[u.Symbol.Schema])}.${$}`;return U`${$} ${U.identifier(T[u.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:W,having:X,table:F,joins:Y,orderBy:G,groupBy:H,limit:M,offset:z,lockingClause:A,distinct:Q,setOperators:_}){let D=J??EJ($);for(let HT of D)if(L(HT.field,vT)&&B$(HT.field.table)!==(L(F,S$)?F._.alias:L(F,g2)?F[uT].name:L(F,c)?void 0:B$(F))&&!((qT)=>Y?.some(({alias:eT})=>eT===(qT[u.Symbol.IsAlias]?B$(qT):qT[u.Symbol.BaseName])))(HT.field.table)){let qT=B$(HT.field.table);throw new Error(`Your "${HT.path.join("->")}" field references a column "${qT}"."${HT.field.name}", but the table "${qT}" is not part of the query! Did you forget to join it?`)}let K=!Y||Y.length===0,Z=this.buildWithCTE(T),k;if(Q)k=Q===!0?U` distinct`:U` distinct on (${U.join(Q.on,U`, `)})`;let N=this.buildSelection(D,{isSingleTable:K}),y=this.buildFromTable(F),V=this.buildJoins(Y),f=W?U` where ${W}`:void 0,C=X?U` having ${X}`:void 0,B;if(G&&G.length>0)B=U` order by ${U.join(G,U`, `)}`;let m;if(H&&H.length>0)m=U` group by ${U.join(H,U`, `)}`;let $T=typeof M==="object"||typeof M==="number"&&M>=0?U` limit ${M}`:void 0,E=z?U` offset ${z}`:void 0,XT=U.empty();if(A){let HT=U` for ${U.raw(A.strength)}`;if(A.config.of)HT.append(U` of ${U.join(Array.isArray(A.config.of)?A.config.of:[A.config.of],U`, `)}`);if(A.config.noWait)HT.append(U` no wait`);else if(A.config.skipLocked)HT.append(U` skip locked`);XT.append(HT)}let n=U`${Z}select${k} ${N} from ${y}${V}${f}${m}${C}${B}${$T}${E}${XT}`;if(_.length>0)return this.buildSetOperations(n,_);return n}buildSetOperations(T,$){let[J,...W]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:W,limit:X,orderBy:F,offset:Y}}){let G=U`(${T.getSQL()}) `,H=U`(${W.getSQL()})`,M;if(F&&F.length>0){let _=[];for(let D of F)if(L(D,b))_.push(U.identifier(D.name));else if(L(D,c)){for(let K=0;K<D.queryChunks.length;K++){let Z=D.queryChunks[K];if(L(Z,b))D.queryChunks[K]=U.identifier(Z.name)}_.push(U`${D}`)}else _.push(U`${D}`);M=U` order by ${U.join(_,U`, `)} `}let z=typeof X==="object"||typeof X==="number"&&X>=0?U` limit ${X}`:void 0,A=U.raw(`${$} ${J?"all ":""}`),Q=Y?U` offset ${Y}`:void 0;return U`${G}${A}${H}${M}${z}${Q}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:X,select:F,overridingSystemValue_:Y}){let G=[],H=T[u.Symbol.Columns],M=Object.entries(H).filter(([Z,k])=>!k.shouldDisableInsert()),z=M.map(([,Z])=>U.identifier(this.casing.getColumnCasing(Z)));if(F){let Z=$;if(L(Z,c))G.push(Z);else G.push(Z.getSQL())}else{let Z=$;G.push(U.raw("values "));for(let[k,N]of Z.entries()){let y=[];for(let[V,f]of M){let C=N[V];if(C===void 0||L(C,zJ)&&C.value===void 0)if(f.defaultFn!==void 0){let B=f.defaultFn(),m=L(B,c)?B:U.param(B,f);y.push(m)}else if(!f.default&&f.onUpdateFn!==void 0){let B=f.onUpdateFn(),m=L(B,c)?B:U.param(B,f);y.push(m)}else y.push(U`default`);else y.push(C)}if(G.push(y),k<Z.length-1)G.push(U`, `)}}let A=this.buildWithCTE(X),Q=U.join(G),_=W?U` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,D=J?U` on conflict ${J}`:void 0,K=Y===!0?U`overriding system value `:void 0;return U`${A}insert into ${T} ${z} ${K}${Q}${D}${_}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let W=$?U` concurrently`:void 0,X=J?U` with no data`:void 0;return U`refresh materialized view${W} ${T}${X}`}prepareTyping(T){if(L(T,nF)||L(T,lF))return"json";else if(L(T,iF))return"decimal";else if(L(T,tF))return"time";else if(L(T,rF)||L(T,aF))return"timestamp";else if(L(T,cF)||L(T,oF))return"date";else if(L(T,sF))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:W,tableConfig:X,queryConfig:F,tableAlias:Y,nestedQueryRelation:G,joinOn:H}){let M=[],z,A,Q=[],_,D=[];if(F===!0)M=Object.entries(X.columns).map(([k,N])=>({dbKey:N.name,tsKey:k,field:aJ(N,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let Z=Object.fromEntries(Object.entries(X.columns).map(([C,B])=>[C,aJ(B,Y)]));if(F.where){let C=typeof F.where==="function"?F.where(Z,az()):F.where;_=C&&k2(C,Y)}let k=[],N=[];if(F.columns){let C=!1;for(let[B,m]of Object.entries(F.columns)){if(m===void 0)continue;if(B in X.columns){if(!C&&m===!0)C=!0;N.push(B)}}if(N.length>0)N=C?N.filter((B)=>F.columns?.[B]===!0):Object.keys(X.columns).filter((B)=>!N.includes(B))}else N=Object.keys(X.columns);for(let C of N){let B=X.columns[C];k.push({tsKey:C,value:B})}let y=[];if(F.with)y=Object.entries(F.with).filter((C)=>!!C[1]).map(([C,B])=>({tsKey:C,queryConfig:B,relation:X.relations[C]}));let V;if(F.extras){V=typeof F.extras==="function"?F.extras(Z,{sql:U}):F.extras;for(let[C,B]of Object.entries(V))k.push({tsKey:C,value:uY(B,Y)})}for(let{tsKey:C,value:B}of k)M.push({dbKey:L(B,c.Aliased)?B.fieldAlias:X.columns[C].name,tsKey:C,field:L(B,vT)?aJ(B,Y):B,relationTableTsKey:void 0,isJson:!1,selection:[]});let f=typeof F.orderBy==="function"?F.orderBy(Z,sz()):F.orderBy??[];if(!Array.isArray(f))f=[f];Q=f.map((C)=>{if(L(C,vT))return aJ(C,Y);return k2(C,Y)}),z=F.limit,A=F.offset;for(let{tsKey:C,queryConfig:B,relation:m}of y){let $T=TA($,J,m),E=h0(m.referencedTable),XT=J[E],n=`${Y}_${C}`,HT=q2(...$T.fields.map((l$,J1)=>gF(aJ($T.references[J1],n),aJ(l$,Y)))),qT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[XT],tableConfig:$[XT],queryConfig:L(m,s1)?B===!0?{limit:1}:{...B,limit:1}:B,tableAlias:n,joinOn:HT,nestedQueryRelation:m}),eT=U`${U.identifier(n)}.${U.identifier("data")}`.as(C);D.push({on:U`true`,table:new S$(qT.sql,{},n),alias:n,joinType:"left",lateral:!0}),M.push({dbKey:C,tsKey:C,field:eT,relationTableTsKey:XT,isJson:!0,selection:qT.selection})}}if(M.length===0)throw new mF({message:`No fields selected for table "${X.tsName}" ("${Y}")`});let K;if(_=q2(H,_),G){let Z=U`json_build_array(${U.join(M.map(({field:y,tsKey:V,isJson:f})=>f?U`${U.identifier(`${Y}_${V}`)}.${U.identifier("data")}`:L(y,c.Aliased)?y.sql:y),U`, `)})`;if(L(G,x2))Z=U`coalesce(json_agg(${Z}${Q.length>0?U` order by ${U.join(Q,U`, `)}`:void 0}), '[]'::json)`;let k=[{dbKey:"data",tsKey:"data",field:Z.as("data"),isJson:!0,relationTableTsKey:X.tsName,selection:M}];if(z!==void 0||A!==void 0||Q.length>0)K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:[{path:[],field:U.raw("*")}],where:_,limit:z,offset:A,orderBy:Q,setOperators:[]}),_=void 0,z=void 0,A=void 0,Q=[];else K=hF(W,Y);K=this.buildSelectQuery({table:L(K,k$)?K:new S$(K,{},Y),fields:{},fieldsFlat:k.map(({field:y})=>({path:[],field:L(y,vT)?aJ(y,Y):y})),joins:D,where:_,limit:z,offset:A,orderBy:Q,setOperators:[]})}else K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:M.map(({field:Z})=>({path:[],field:L(Z,vT)?aJ(Z,Y):Z})),joins:D,where:_,limit:z,offset:A,orderBy:Q,setOperators:[]});return{tableTsKey:X.tsName,sql:K,selection:M}}}class O9{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class c${static[O]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J=T,W;if(this.fields)W=this.fields;else if(L(J,S$))W=Object.fromEntries(Object.keys(J._.selectedFields).map((X)=>[X,J[X]]));else if(L(J,g2))W=J[uT].selectedFields;else if(L(J,c))W={};else W=aH(J);return new U9({table:J,fields:W,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class RA extends O9{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:X,withList:F,distinct:Y}){super();this.config={withList:F,table:T,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=X,this._={selectedFields:$},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,X=V1($);if(typeof X==="string"&&this.config.joins?.some((F)=>F.alias===X))throw new Error(`Alias "${X}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof W==="string")this.config.fields={[W]:this.config.fields};if(typeof X==="string"&&!L($,c)){let F=L($,S$)?$._.selectedFields:L($,a$)?$[uT].selectedFields:$[u.Symbol.Columns];this.config.fields[X]=F}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:X}),typeof X==="string")switch(T){case"left":{this.joinsNotNullableMap[X]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!0;break}case"inner":{this.joinsNotNullableMap[X]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(J)=>{let W=typeof J==="function"?J(GK()):J;if(!y2(this.getSelectedFields(),W.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:W}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new S$(this.getSQL(),this.config.fields,T),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new J$({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class U9 extends RA{static[O]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:X,authToken:F}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return hT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=EJ(J.fields),G=$.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return G.joinsNotNullableMap=X,G.setToken(F)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}rH(U9,[u$]);function uW(T,$){return(J,W,...X)=>{let F=[W,...X].map((Y)=>({type:T,isAll:$,rightSelect:Y}));for(let Y of F)if(!y2(J.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(F)}}var GK=()=>({union:HK,unionAll:MK,intersect:zK,intersectAll:AK,except:QK,exceptAll:wK}),HK=uW("union",!1),MK=uW("union",!0),zK=uW("intersect",!1),AK=uW("intersect",!0),QK=uW("except",!1),wK=uW("except",!0);class p2{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=L(T,c0)?T:void 0,this.dialectConfig=L(T,c0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(J);return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function X(F,Y){return new c$({fields:Y??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:F}})}return{select:J,selectDistinct:W,selectDistinctOn:X}}select(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new c0(this.dialectConfig);return this.dialect}}class Q4{constructor(T,$,J,W,X){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=X}static[O]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let W={},X=this.table[u.Symbol.Columns];for(let F of Object.keys(J)){let Y=J[F];W[F]=L(Y,c)?Y:new zJ(Y,X[F])}return W});return new _9(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new p2):T;if(!L($,c)&&!y2(this.table[PF],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new _9(this.table,$,this.session,this.dialect,this.withList,!0)}}class _9 extends u${constructor(T,$,J,W,X,F,Y){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:X,select:F,overridingSystemValue_:Y}}static[O]="PgInsert";config;returning(T=this.config.table[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=U`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let J=T.where?U` where ${T.where}`:void 0;this.config.onConflict=U`(${U.raw($)})${J} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?U` where ${T.where}`:void 0,J=T.targetWhere?U` where ${T.targetWhere}`:void 0,W=T.setWhere?U` where ${T.setWhere}`:void 0,X=this.dialect.buildUpdateSet(this.config.table,uF(this.config.table,T.set)),F="";return F=Array.isArray(T.target)?T.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=U`(${U.raw(F)})${J} do update set ${X}${$}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class D9 extends u${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[O]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class w4{constructor(T,$,J,W){this.table=T,this.session=$,this.dialect=J,this.withList=W}static[O]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new LA(this.table,uF(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class LA extends u${constructor(T,$,J,W,X){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:X,joins:[]},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=V1($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(L(T,k$))return T[u.Symbol.Columns];else if(L(T,S$))return T._.selectedFields;return T[uT].selectedFields}createJoin(T){return($,J)=>{let W=V1($);if(typeof W==="string"&&this.config.joins.some((X)=>X.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let X=this.config.from&&!L(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[u.Symbol.Columns],new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),X&&new Proxy(X,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!1])),this.joinsNotNullableMap[W]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[u.Symbol.Columns]),this.config.from){let $=V1(this.config.from);if(typeof $==="string"&&this.config.from&&!L(this.config.from,c)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let W=V1(J.table);if(typeof W==="string"&&!L(J.table,c)){let X=this.getTableLikeFields(J.table);T[W]=X}}}}return this.config.returningFields=T,this.config.returning=EJ(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class u2 extends c{constructor(T){super(u2.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=u2.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return U`(select count(*) from ${T}${U.raw(" where ").if($)}${$})`}static buildCount(T,$){return U`select count(*) as count from ${T}${U.raw(" where ").if($)}${$};`}setToken(T){return this.token=T,this}then(T,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,$)}catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}}class K9{constructor(T,$,J,W,X,F,Y){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y}static[O]="PgRelationalQueryBuilder";findMany(T){return new S9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new S9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class S9 extends u${constructor(T,$,J,W,X,F,Y,G,H){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y,this.config=G,this.mode=H}static[O]="PgRelationalQuery";_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,X)=>{let F=W.map((Y)=>eF(this.schema,this.tableConfig,Y,$.selection,X));if(this.mode==="first")return F[0];return F})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class V9 extends u${constructor(T,$,J,W){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=W}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class c2{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[W,X]of Object.entries(this._.schema))this.query[W]=new K9(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],X,T,$)}static[O]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(new p2(J.dialect));return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new u2({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function X(H,M){return new c$({fields:M??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:H}})}function F(H){return new w4(H,$.session,$.dialect,T)}function Y(H){return new Q4(H,$.session,$.dialect,T)}function G(H){return new A4(H,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:X,update:F,insert:Y,delete:G}}select(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new w4(T,this.session,this.dialect)}insert(T){return new Q4(T,this.session,this.dialect)}delete(T){return new A4(T,this.session,this.dialect)}refreshMaterializedView(T){return new D9(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?U.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),W=this.session.prepareQuery(J,void 0,void 0,!1);return new V9(()=>W.execute(void 0,this.authToken),$,J,(X)=>W.mapResult(X,!0))}transaction(T,$){return this.session.transaction(T,$)}}class BA{constructor(T,$){this.unique=T,this.name=$}static[O]="PgIndexBuilderOn";on(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new O4($.map((J)=>{if(L(J,c))return J;J=J;let W=new f2(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),W}),this.unique,!0,this.name,T)}}class O4{static[O]="PgIndexBuilder";config;constructor(T,$,J,W,X="btree"){this.config={name:W,columns:T,unique:$,only:J,method:X}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new fA(this.config,T)}}class fA{static[O]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function E9(T){return new BA(!0,T)}class R9{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class L9{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,$){return hT.startActiveSpan("drizzle.operation",()=>{return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class B9 extends c2{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[O]="PgTransaction";rollback(){throw new cY}getTransactionConfigSQL(T){let $=[];if(T.isolationLevel)$.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)$.push(T.accessMode);if(typeof T.deferrable==="boolean")$.push(T.deferrable?"deferrable":"not deferrable");return U.raw($.join(" "))}setTransaction(T){return this.session.execute(U`set transaction ${this.getTransactionConfigSQL(T)}`)}}class NA extends R9{constructor(T,$,J,W,X,F,Y){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=X,this._isResponseInArrayMode=F,this.customResultMapper=Y}static[O]="PostgresJsPreparedQuery";async execute(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:W,queryString:X,client:F,joinsNotNullableMap:Y,customResultMapper:G}=this;if(!W&&!G)return hT.startActiveSpan("drizzle.driver.execute",()=>{return F.unsafe(X,J)});let H=await hT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":X,"drizzle.query.params":JSON.stringify(J)}),F.unsafe(X,J).values()});return hT.startActiveSpan("drizzle.mapResponse",()=>{return G?G(H):H.map((M)=>tH(W,M,Y))})})}all(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),hT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.client.unsafe(this.queryString,J)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class o2 extends L9{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new dY}static[O]="PostgresJsSession";logger;prepareQuery(T,$,J,W,X){return new NA(this.client,T.sql,T.params,this.logger,$,W,X)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let W=new o2(J,this.dialect,this.schema,this.options),X=new f9(this.dialect,W,this.schema);if($)await X.setTransaction($);return T(X)})}}class f9 extends B9{constructor(T,$,J,W=0){super(T,$,J,W);this.session=$}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new o2($,this.dialect,this.schema,this.session.options),W=new f9(this.dialect,J,this.schema);return T(W)})}}class CA extends c2{static[O]="PostgresJsDatabase"}function cW(T,$={}){let J=(H)=>H;for(let H of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[H]=J,T.options.serializers[H]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let W=new c0({casing:$.casing}),X;if($.logger===!0)X=new oY;else if($.logger!==!1)X=$.logger;let F;if($.schema){let H=ez($.schema,$A);F={fullSchema:$.schema,schema:H.tables,tableNamesMap:H.tableNamesMap}}let Y=new o2(T,W,F,{logger:X}),G=new CA(W,Y,F);return G.$client=T,G}function U4(...T){if(typeof T[0]==="string"){let $=pW(T[0]);return cW($,T[1])}if(sH(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return cW(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:F,...Y}=$,G=pW(F,Y);return cW(G,W)}let X=pW($);return cW(X,W)}return cW(T[0],T[1])}((T)=>{function $(J){return cW({options:{parsers:{},serializers:{}}},J)}T.mock=$})(U4||(U4={}));function OK(T,$){let J={},W=[];for(let X in T){let F=T[X],Y=$[X],G=F["~standard"].validate(Y);if(G instanceof Promise)throw new Error(`Validation must be synchronous, but ${X} returned a Promise.`);if(G.issues){W.push(...G.issues.map((H)=>({...H,path:[X,...H.path??[]]})));continue}J[X]=G.value}if(W.length)return{issues:W};return{value:J}}function ZA(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[N,y]of Object.entries($))if(y==="")delete $[N]}if(!!T.skipValidation)return $;let X=typeof T.client==="object"?T.client:{},F=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},G=T.isServer??(typeof window==="undefined"||("Deno"in window)),H=G?{...F,...Y,...X}:{...X,...Y},M=OK(H,$),z=T.onValidationError??((N)=>{throw console.error("\u274C Invalid environment variables:",N),new Error("Invalid environment variables")}),A=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(M.issues)return z(M.issues);let Q=(N)=>{if(!T.clientPrefix)return!0;return!N.startsWith(T.clientPrefix)&&!(N in Y)},_=(N)=>{return G||!Q(N)},D=(N)=>{return N==="__esModule"||N==="$$typeof"},K=(T.extends??[]).reduce((N,y)=>{return Object.assign(N,y)},{}),Z=Object.assign(M.value,K);return new Proxy(Z,{get(N,y){if(typeof y!=="string")return;if(D(y))return;if(!_(y))return A(y);return Reflect.get(N,y)}})}var T0=(T)=>Array.isArray(T)?T:[T],kA=(T,$)=>{let J=[[],[]];for(let W of T)if($(W))J[0].push(W);else J[1].push(W);return J},_4=Array,R1=(T,$)=>T.includes($),qA=(T,$=0)=>[...new Array(T)].map((J,W)=>W+$),KT=(T,$,J)=>{if(T===void 0)return $===void 0?[]:Array.isArray($)?$:[$];if(J?.prepend)if(Array.isArray($))T.unshift(...$);else T.unshift($);else if(Array.isArray($))T.push(...$);else T.push($);return T},L1=(T,$)=>{if($===void 0||$===null)return T??[];if(T===void 0||T===null)return T0($);return T.concat($)},yA=(...T)=>T.reduce(L1,[]),eJ=(T,$,J)=>{if(T===void 0)return Array.isArray($)?$:[$];let W=J?.isEqual??((X,F)=>X===F);return T0($).forEach((X)=>{if(!T.some((F)=>W(F,X)))T.push(X)}),T},IA=(T,$)=>T.reduce((J,W)=>{let X=W[$];return J[X]=KT(J[X],W),J},{}),B1=(T,$,J)=>T.length===$.length&&T.every(J?.isEqual?(W,X)=>J.isEqual(W,$[X]):(W,X)=>W===$[X]);var e$=(T,$)=>V$(T)===$,V$=(T)=>{let $=typeof T;return $==="object"?T===null?"null":"object":$==="function"?"object":$},TJ={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},jA={...TJ,function:"a function"};class xA extends Error{}var fT=(T)=>f1(T,xA),f1=(T,$=Error)=>{throw new $(T)};class d2 extends Error{name="ParseError"}var R=(T)=>f1(T,d2),vJ=(T)=>` ${T}`;var MT=(T,$)=>{let J={},W=Array.isArray(T),X=!1;return Object.entries(T).forEach((F,Y)=>{let G=W?$(Y,F[1]):$(...F,Y);X||=typeof G[0]==="number",(Array.isArray(G[0])||G.length===0?G:[G]).forEach(([M,z])=>{if(typeof M==="object")J[M.group]=KT(J[M.group],z);else J[M]=z})}),X?Object.values(J):J};var N9=Object.entries;var X$=(T,$)=>(T in $),oW=(T,$)=>($ in T);class C9{constructor(T){Object.assign(this,T)}}var bA=class{};class l2 extends bA{}var UK=(T,$)=>{let J={},W={},X;for(X in T)if(X in $)J[X]=T[X];else W[X]=T[X];return[J,W]};var PA=(T,$)=>UK(T,$)[1],T1=(T)=>Object.keys(T).length===0,n2=(T)=>[...Object.entries(T),...Object.getOwnPropertySymbols(T).map(($)=>[$,T[$]])],vA=(T,$)=>Object.defineProperties(T,Object.getOwnPropertyDescriptors($)),hA=(T)=>{let $=Object.keys(T).sort(),J={};for(let W=0;W<$.length;W++)J[$[W]]=T[$[W]];return J};var wJ=vJ("represents an uninitialized value"),mA=(T)=>Object.values(T).filter(($)=>{if(typeof $==="number")return!0;return typeof T[$]!=="number"});var Z9={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},k9=globalThis.File??Blob,q9={ArrayBuffer,Blob,File:k9,FormData,Headers,Request,Response,URL},_K={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},o0={...Z9,...q9,..._K,String,Number,Boolean},i2=(T)=>{let $=Object.getPrototypeOf(T);while($?.constructor&&(!X$($.constructor.name,o0)||!(T instanceof o0[$.constructor.name])))$=Object.getPrototypeOf($);let J=$?.constructor?.name;if(J===void 0||J==="Object")return;return J},t2=(T)=>typeof T==="object"&&T!==null?i2(T)??"object":V$(T);var mT=Array.isArray,DK={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},SK={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},KK={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},gA={...DK,...SK,...KK},r2=(T)=>{let $=Object(T).name??null;return $&&X$($,o0)&&o0[$]===T?$:null};var y9=(T,$)=>{let J=T.prototype;while(J!==null){if(J===$.prototype)return!0;J=Object.getPrototypeOf(J)}return!1};var pA=(T)=>uA(T,new Map),uA=(T,$)=>{if(typeof T!=="object"||T===null)return T;if($?.has(T))return $.get(T);let J=r2(T.constructor);if(J==="Date")return new Date(T.getTime());if(J&&J!=="Array")return T;let W=Array.isArray(T)?T.slice():Object.create(Object.getPrototypeOf(T)),X=Object.getOwnPropertyDescriptors(T);if($){$.set(T,W);for(let F in X){let Y=X[F];if("get"in Y||"set"in Y)continue;Y.value=uA(Y.value,$)}}return Object.defineProperties(W,X),W};var VK=(T)=>{let $=wJ;return()=>$===wJ?$=T():$},$0=(T)=>typeof T==="function"&&T.length===0;var cA=class extends Function{constructor(...T){let $=T.slice(0,-1),J=T.at(-1);try{super(...$,J)}catch(W){return fT(`Encountered an unexpected error while compiling your definition:
94
+ `;await $.execute(U`CREATE SCHEMA IF NOT EXISTS ${U.identifier(X)}`),await $.execute(F);let G=(await $.all(U`select id, hash, created_at from ${U.identifier(X)}.${U.identifier(W)} order by created_at desc limit 1`))[0];await $.transaction(async(H)=>{for await(let M of T)if(!G||Number(G.created_at)<M.folderMillis){for(let z of M.sql)await H.execute(U.raw(z));await H.execute(U`insert into ${U.identifier(X)}.${U.identifier(W)} ("hash", "created_at") values(${M.hash}, ${M.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let $=[U`with `];for(let[J,W]of T.entries())if($.push(U`${U.identifier(W._.alias)} as (${W._.sql})`),J<T.length-1)$.push(U`, `);return $.push(U` `),U.join($)}buildDeleteQuery({table:T,where:$,returning:J,withList:W}){let X=this.buildWithCTE(W),F=J?U` returning ${this.buildSelection(J,{isSingleTable:!0})}`:void 0,Y=$?U` where ${$}`:void 0;return U`${X}delete from ${T}${Y}${F}`}buildUpdateSet(T,$){let J=T[u.Symbol.Columns],W=Object.keys(J).filter((F)=>$[F]!==void 0||J[F]?.onUpdateFn!==void 0),X=W.length;return U.join(W.flatMap((F,Y)=>{let G=J[F],H=$[F]??U.param(G.onUpdateFn(),G),M=U`${U.identifier(this.casing.getColumnCasing(G))} = ${H}`;if(Y<X-1)return[M,U.raw(", ")];return[M]}))}buildUpdateQuery({table:T,set:$,where:J,returning:W,withList:X,from:F,joins:Y}){let G=this.buildWithCTE(X),H=T[Z$.Symbol.Name],M=T[Z$.Symbol.Schema],z=T[Z$.Symbol.OriginalName],A=H===z?void 0:H,Q=U`${M?U`${U.identifier(M)}.`:void 0}${U.identifier(z)}${A&&U` ${U.identifier(A)}`}`,_=this.buildUpdateSet(T,$),D=F&&U.join([U.raw(" from "),this.buildFromTable(F)]),K=this.buildJoins(Y),Z=W?U` returning ${this.buildSelection(W,{isSingleTable:!F})}`:void 0,k=J?U` where ${J}`:void 0;return U`${G}update ${Q} set ${_}${D}${K}${k}${Z}`}buildSelection(T,{isSingleTable:$=!1}={}){let J=T.length,W=T.flatMap(({field:X},F)=>{let Y=[];if(L(X,c.Aliased)&&X.isSelectionField)Y.push(U.identifier(X.fieldAlias));else if(L(X,c.Aliased)||L(X,c)){let G=L(X,c.Aliased)?X.sql:X;if($)Y.push(new c(G.queryChunks.map((H)=>{if(L(H,b))return U.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(G);if(L(X,c.Aliased))Y.push(U` as ${U.identifier(X.fieldAlias)}`)}else if(L(X,vT))if($)Y.push(U.identifier(this.casing.getColumnCasing(X)));else Y.push(X);if(F<J-1)Y.push(U`, `);return Y});return U.join(W)}buildJoins(T){if(!T||T.length===0)return;let $=[];for(let[J,W]of T.entries()){if(J===0)$.push(U` `);let X=W.table,F=W.lateral?U` lateral`:void 0;if(L(X,Z$)){let Y=X[Z$.Symbol.Name],G=X[Z$.Symbol.Schema],H=X[Z$.Symbol.OriginalName],M=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${M&&U` ${U.identifier(M)}`} on ${W.on}`)}else if(L(X,a$)){let Y=X[uT].name,G=X[uT].schema,H=X[uT].originalName,M=Y===H?void 0:W.alias;$.push(U`${U.raw(W.joinType)} join${F} ${G?U`${U.identifier(G)}.`:void 0}${U.identifier(H)}${M&&U` ${U.identifier(M)}`} on ${W.on}`)}else $.push(U`${U.raw(W.joinType)} join${F} ${X} on ${W.on}`);if(J<T.length-1)$.push(U` `)}return U.join($)}buildFromTable(T){if(L(T,u)&&T[u.Symbol.IsAlias]){let $=U`${U.identifier(T[u.Symbol.OriginalName])}`;if(T[u.Symbol.Schema])$=U`${U.identifier(T[u.Symbol.Schema])}.${$}`;return U`${$} ${U.identifier(T[u.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:$,fieldsFlat:J,where:W,having:X,table:F,joins:Y,orderBy:G,groupBy:H,limit:M,offset:z,lockingClause:A,distinct:Q,setOperators:_}){let D=J??EJ($);for(let HT of D)if(L(HT.field,vT)&&B$(HT.field.table)!==(L(F,S$)?F._.alias:L(F,g2)?F[uT].name:L(F,c)?void 0:B$(F))&&!((qT)=>Y?.some(({alias:eT})=>eT===(qT[u.Symbol.IsAlias]?B$(qT):qT[u.Symbol.BaseName])))(HT.field.table)){let qT=B$(HT.field.table);throw new Error(`Your "${HT.path.join("->")}" field references a column "${qT}"."${HT.field.name}", but the table "${qT}" is not part of the query! Did you forget to join it?`)}let K=!Y||Y.length===0,Z=this.buildWithCTE(T),k;if(Q)k=Q===!0?U` distinct`:U` distinct on (${U.join(Q.on,U`, `)})`;let N=this.buildSelection(D,{isSingleTable:K}),y=this.buildFromTable(F),V=this.buildJoins(Y),f=W?U` where ${W}`:void 0,C=X?U` having ${X}`:void 0,B;if(G&&G.length>0)B=U` order by ${U.join(G,U`, `)}`;let m;if(H&&H.length>0)m=U` group by ${U.join(H,U`, `)}`;let $T=typeof M==="object"||typeof M==="number"&&M>=0?U` limit ${M}`:void 0,E=z?U` offset ${z}`:void 0,XT=U.empty();if(A){let HT=U` for ${U.raw(A.strength)}`;if(A.config.of)HT.append(U` of ${U.join(Array.isArray(A.config.of)?A.config.of:[A.config.of],U`, `)}`);if(A.config.noWait)HT.append(U` no wait`);else if(A.config.skipLocked)HT.append(U` skip locked`);XT.append(HT)}let n=U`${Z}select${k} ${N} from ${y}${V}${f}${m}${C}${B}${$T}${E}${XT}`;if(_.length>0)return this.buildSetOperations(n,_);return n}buildSetOperations(T,$){let[J,...W]=$;if(!J)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:J});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:J}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:$,isAll:J,rightSelect:W,limit:X,orderBy:F,offset:Y}}){let G=U`(${T.getSQL()}) `,H=U`(${W.getSQL()})`,M;if(F&&F.length>0){let _=[];for(let D of F)if(L(D,b))_.push(U.identifier(D.name));else if(L(D,c)){for(let K=0;K<D.queryChunks.length;K++){let Z=D.queryChunks[K];if(L(Z,b))D.queryChunks[K]=U.identifier(Z.name)}_.push(U`${D}`)}else _.push(U`${D}`);M=U` order by ${U.join(_,U`, `)} `}let z=typeof X==="object"||typeof X==="number"&&X>=0?U` limit ${X}`:void 0,A=U.raw(`${$} ${J?"all ":""}`),Q=Y?U` offset ${Y}`:void 0;return U`${G}${A}${H}${M}${z}${Q}`}buildInsertQuery({table:T,values:$,onConflict:J,returning:W,withList:X,select:F,overridingSystemValue_:Y}){let G=[],H=T[u.Symbol.Columns],M=Object.entries(H).filter(([Z,k])=>!k.shouldDisableInsert()),z=M.map(([,Z])=>U.identifier(this.casing.getColumnCasing(Z)));if(F){let Z=$;if(L(Z,c))G.push(Z);else G.push(Z.getSQL())}else{let Z=$;G.push(U.raw("values "));for(let[k,N]of Z.entries()){let y=[];for(let[V,f]of M){let C=N[V];if(C===void 0||L(C,zJ)&&C.value===void 0)if(f.defaultFn!==void 0){let B=f.defaultFn(),m=L(B,c)?B:U.param(B,f);y.push(m)}else if(!f.default&&f.onUpdateFn!==void 0){let B=f.onUpdateFn(),m=L(B,c)?B:U.param(B,f);y.push(m)}else y.push(U`default`);else y.push(C)}if(G.push(y),k<Z.length-1)G.push(U`, `)}}let A=this.buildWithCTE(X),Q=U.join(G),_=W?U` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,D=J?U` on conflict ${J}`:void 0,K=Y===!0?U`overriding system value `:void 0;return U`${A}insert into ${T} ${z} ${K}${Q}${D}${_}`}buildRefreshMaterializedViewQuery({view:T,concurrently:$,withNoData:J}){let W=$?U` concurrently`:void 0,X=J?U` with no data`:void 0;return U`refresh materialized view${W} ${T}${X}`}prepareTyping(T){if(L(T,nF)||L(T,lF))return"json";else if(L(T,iF))return"decimal";else if(L(T,tF))return"time";else if(L(T,rF)||L(T,aF))return"timestamp";else if(L(T,cF)||L(T,oF))return"date";else if(L(T,sF))return"uuid";else return"none"}sqlToQuery(T,$){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:W,tableConfig:X,queryConfig:F,tableAlias:Y,nestedQueryRelation:G,joinOn:H}){let M=[],z,A,Q=[],_,D=[];if(F===!0)M=Object.entries(X.columns).map(([k,N])=>({dbKey:N.name,tsKey:k,field:aJ(N,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let Z=Object.fromEntries(Object.entries(X.columns).map(([C,B])=>[C,aJ(B,Y)]));if(F.where){let C=typeof F.where==="function"?F.where(Z,az()):F.where;_=C&&k2(C,Y)}let k=[],N=[];if(F.columns){let C=!1;for(let[B,m]of Object.entries(F.columns)){if(m===void 0)continue;if(B in X.columns){if(!C&&m===!0)C=!0;N.push(B)}}if(N.length>0)N=C?N.filter((B)=>F.columns?.[B]===!0):Object.keys(X.columns).filter((B)=>!N.includes(B))}else N=Object.keys(X.columns);for(let C of N){let B=X.columns[C];k.push({tsKey:C,value:B})}let y=[];if(F.with)y=Object.entries(F.with).filter((C)=>!!C[1]).map(([C,B])=>({tsKey:C,queryConfig:B,relation:X.relations[C]}));let V;if(F.extras){V=typeof F.extras==="function"?F.extras(Z,{sql:U}):F.extras;for(let[C,B]of Object.entries(V))k.push({tsKey:C,value:uY(B,Y)})}for(let{tsKey:C,value:B}of k)M.push({dbKey:L(B,c.Aliased)?B.fieldAlias:X.columns[C].name,tsKey:C,field:L(B,vT)?aJ(B,Y):B,relationTableTsKey:void 0,isJson:!1,selection:[]});let f=typeof F.orderBy==="function"?F.orderBy(Z,sz()):F.orderBy??[];if(!Array.isArray(f))f=[f];Q=f.map((C)=>{if(L(C,vT))return aJ(C,Y);return k2(C,Y)}),z=F.limit,A=F.offset;for(let{tsKey:C,queryConfig:B,relation:m}of y){let $T=TA($,J,m),E=h0(m.referencedTable),XT=J[E],n=`${Y}_${C}`,HT=q2(...$T.fields.map((l$,J1)=>gF(aJ($T.references[J1],n),aJ(l$,Y)))),qT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:$,tableNamesMap:J,table:T[XT],tableConfig:$[XT],queryConfig:L(m,s1)?B===!0?{limit:1}:{...B,limit:1}:B,tableAlias:n,joinOn:HT,nestedQueryRelation:m}),eT=U`${U.identifier(n)}.${U.identifier("data")}`.as(C);D.push({on:U`true`,table:new S$(qT.sql,{},n),alias:n,joinType:"left",lateral:!0}),M.push({dbKey:C,tsKey:C,field:eT,relationTableTsKey:XT,isJson:!0,selection:qT.selection})}}if(M.length===0)throw new mF({message:`No fields selected for table "${X.tsName}" ("${Y}")`});let K;if(_=q2(H,_),G){let Z=U`json_build_array(${U.join(M.map(({field:y,tsKey:V,isJson:f})=>f?U`${U.identifier(`${Y}_${V}`)}.${U.identifier("data")}`:L(y,c.Aliased)?y.sql:y),U`, `)})`;if(L(G,x2))Z=U`coalesce(json_agg(${Z}${Q.length>0?U` order by ${U.join(Q,U`, `)}`:void 0}), '[]'::json)`;let k=[{dbKey:"data",tsKey:"data",field:Z.as("data"),isJson:!0,relationTableTsKey:X.tsName,selection:M}];if(z!==void 0||A!==void 0||Q.length>0)K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:[{path:[],field:U.raw("*")}],where:_,limit:z,offset:A,orderBy:Q,setOperators:[]}),_=void 0,z=void 0,A=void 0,Q=[];else K=hF(W,Y);K=this.buildSelectQuery({table:L(K,Z$)?K:new S$(K,{},Y),fields:{},fieldsFlat:k.map(({field:y})=>({path:[],field:L(y,vT)?aJ(y,Y):y})),joins:D,where:_,limit:z,offset:A,orderBy:Q,setOperators:[]})}else K=this.buildSelectQuery({table:hF(W,Y),fields:{},fieldsFlat:M.map(({field:Z})=>({path:[],field:L(Z,vT)?aJ(Z,Y):Z})),joins:D,where:_,limit:z,offset:A,orderBy:Q,setOperators:[]});return{tableTsKey:X.tsName,sql:K,selection:M}}}class O9{static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class c${static[O]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let $=!!this.fields,J=T,W;if(this.fields)W=this.fields;else if(L(J,S$))W=Object.fromEntries(Object.keys(J._.selectedFields).map((X)=>[X,J[X]]));else if(L(J,g2))W=J[uT].selectedFields;else if(L(J,c))W={};else W=aH(J);return new U9({table:J,fields:W,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class RA extends O9{static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:$,isPartialSelect:J,session:W,dialect:X,withList:F,distinct:Y}){super();this.config={withList:F,table:T,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=J,this.session=W,this.dialect=X,this._={selectedFields:$},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return($,J)=>{let W=this.tableName,X=V1($);if(typeof X==="string"&&this.config.joins?.some((F)=>F.alias===X))throw new Error(`Alias "${X}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof W==="string")this.config.fields={[W]:this.config.fields};if(typeof X==="string"&&!L($,c)){let F=L($,S$)?$._.selectedFields:L($,a$)?$[uT].selectedFields:$[u.Symbol.Columns];this.config.fields[X]=F}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:$,joinType:T,alias:X}),typeof X==="string")switch(T){case"left":{this.joinsNotNullableMap[X]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!0;break}case"inner":{this.joinsNotNullableMap[X]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([F])=>[F,!1])),this.joinsNotNullableMap[X]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,$){return(J)=>{let W=typeof J==="function"?J(GK()):J;if(!y2(this.getSelectedFields(),W.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:T,isAll:$,rightSelect:W}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let $=T[0](new Proxy(this.config.fields,new J$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let $=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,$={}){return this.config.lockingClause={strength:T,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(T){return new Proxy(new S$(this.getSQL(),this.config.fields,T),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new J$({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class U9 extends RA{static[O]="PgSelect";_prepare(T){let{session:$,config:J,dialect:W,joinsNotNullableMap:X,authToken:F}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return hT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=EJ(J.fields),G=$.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return G.joinsNotNullableMap=X,G.setToken(F)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}rH(U9,[u$]);function uW(T,$){return(J,W,...X)=>{let F=[W,...X].map((Y)=>({type:T,isAll:$,rightSelect:Y}));for(let Y of F)if(!y2(J.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(F)}}var GK=()=>({union:HK,unionAll:MK,intersect:zK,intersectAll:AK,except:QK,exceptAll:wK}),HK=uW("union",!1),MK=uW("union",!0),zK=uW("intersect",!1),AK=uW("intersect",!0),QK=uW("except",!1),wK=uW("except",!0);class p2{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=L(T,c0)?T:void 0,this.dialectConfig=L(T,c0)?void 0:T}$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(J);return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let $=this;function J(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),withList:T})}function W(F){return new c$({fields:F??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function X(F,Y){return new c$({fields:Y??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:F}})}return{select:J,selectDistinct:W,selectDistinctOn:X}}select(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new c$({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new c0(this.dialectConfig);return this.dialect}}class Q4{constructor(T,$,J,W,X){this.table=T,this.session=$,this.dialect=J,this.withList=W,this.overridingSystemValue_=X}static[O]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let $=T.map((J)=>{let W={},X=this.table[u.Symbol.Columns];for(let F of Object.keys(J)){let Y=J[F];W[F]=L(Y,c)?Y:new zJ(Y,X[F])}return W});return new _9(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let $=typeof T==="function"?T(new p2):T;if(!L($,c)&&!y2(this.table[PF],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new _9(this.table,$,this.session,this.dialect,this.withList,!0)}}class _9 extends u${constructor(T,$,J,W,X,F,Y){super();this.session=J,this.dialect=W,this.config={table:T,values:$,withList:X,select:F,overridingSystemValue_:Y}}static[O]="PgInsert";config;returning(T=this.config.table[u.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=EJ(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=U`do nothing`;else{let $="";$=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let J=T.where?U` where ${T.where}`:void 0;this.config.onConflict=U`(${U.raw($)})${J} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=T.where?U` where ${T.where}`:void 0,J=T.targetWhere?U` where ${T.targetWhere}`:void 0,W=T.setWhere?U` where ${T.setWhere}`:void 0,X=this.dialect.buildUpdateSet(this.config.table,uF(this.config.table,T.set)),F="";return F=Array.isArray(T.target)?T.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=U`(${U.raw(F)})${J} do update set ${X}${$}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class D9 extends u${constructor(T,$,J){super();this.session=$,this.dialect=J,this.config={view:T}}static[O]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class w4{constructor(T,$,J,W){this.table=T,this.session=$,this.dialect=J,this.withList=W}static[O]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new LA(this.table,uF(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class LA extends u${constructor(T,$,J,W,X){super();this.session=J,this.dialect=W,this.config={set:$,table:T,withList:X,joins:[]},this.tableName=V1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let $=T,J=V1($);if(typeof J==="string")this.joinsNotNullableMap[J]=!0;return this.config.from=$,this}getTableLikeFields(T){if(L(T,Z$))return T[u.Symbol.Columns];else if(L(T,S$))return T._.selectedFields;return T[uT].selectedFields}createJoin(T){return($,J)=>{let W=V1($);if(typeof W==="string"&&this.config.joins.some((X)=>X.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof J==="function"){let X=this.config.from&&!L(this.config.from,c)?this.getTableLikeFields(this.config.from):void 0;J=J(new Proxy(this.config.table[u.Symbol.Columns],new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),X&&new Proxy(X,new J$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:J,table:$,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([X])=>[X,!1])),this.joinsNotNullableMap[W]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[u.Symbol.Columns]),this.config.from){let $=V1(this.config.from);if(typeof $==="string"&&this.config.from&&!L(this.config.from,c)){let J=this.getTableLikeFields(this.config.from);T[$]=J}for(let J of this.config.joins){let W=V1(J.table);if(typeof W==="string"&&!L(J.table,c)){let X=this.getTableLikeFields(J.table);T[W]=X}}}}return this.config.returningFields=T,this.config.returning=EJ(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(T){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new J$({alias:B$(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class u2 extends c{constructor(T){super(u2.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=u2.buildCount(T.source,T.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,$){return U`(select count(*) from ${T}${U.raw(" where ").if($)}${$})`}static buildCount(T,$){return U`select count(*) as count from ${T}${U.raw(" where ").if($)}${$};`}setToken(T){return this.token=T,this}then(T,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,$)}catch(T){return this.then(void 0,T)}finally(T){return this.then(($)=>{return T?.(),$},($)=>{throw T?.(),$})}}class K9{constructor(T,$,J,W,X,F,Y){this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y}static[O]="PgRelationalQueryBuilder";findMany(T){return new S9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new S9(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class S9 extends u${constructor(T,$,J,W,X,F,Y,G,H){super();this.fullSchema=T,this.schema=$,this.tableNamesMap=J,this.table=W,this.tableConfig=X,this.dialect=F,this.session=Y,this.config=G,this.mode=H}static[O]="PgRelationalQuery";_prepare(T){return hT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:J}=this._toSQL();return this.session.prepareQuery(J,void 0,T,!0,(W,X)=>{let F=W.map((Y)=>eF(this.schema,this.tableConfig,Y,$.selection,X));if(this.mode==="first")return F[0];return F})})}prepare(T){return this._prepare(T)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let T=this._getQuery(),$=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return hT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class V9 extends u${constructor(T,$,J,W){super();this.execute=T,this.sql=$,this.query=J,this.mapBatchResult=W}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,$){return $?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class c2{constructor(T,$,J){if(this.dialect=T,this.session=$,this._=J?{schema:J.schema,fullSchema:J.fullSchema,tableNamesMap:J.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[W,X]of Object.entries(this._.schema))this.query[W]=new K9(J.fullSchema,this._.schema,this._.tableNamesMap,J.fullSchema[W],X,T,$)}static[O]="PgDatabase";query;$with=(T,$)=>{let J=this;return{as:(X)=>{if(typeof X==="function")X=X(new p2(J.dialect));return new Proxy(new N2(X.getSQL(),$??("getSelectedFields"in X?X.getSelectedFields()??{}:{}),T,!0),new J$({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,$){return new u2({source:T,filters:$,session:this.session})}with(...T){let $=this;function J(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T})}function W(H){return new c$({fields:H??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:!0})}function X(H,M){return new c$({fields:M??void 0,session:$.session,dialect:$.dialect,withList:T,distinct:{on:H}})}function F(H){return new w4(H,$.session,$.dialect,T)}function Y(H){return new Q4(H,$.session,$.dialect,T)}function G(H){return new A4(H,$.session,$.dialect,T)}return{select:J,selectDistinct:W,selectDistinctOn:X,update:F,insert:Y,delete:G}}select(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new c$({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,$){return new c$({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new w4(T,this.session,this.dialect)}insert(T){return new Q4(T,this.session,this.dialect)}delete(T){return new A4(T,this.session,this.dialect)}refreshMaterializedView(T){return new D9(T,this.session,this.dialect)}authToken;execute(T){let $=typeof T==="string"?U.raw(T):T.getSQL(),J=this.dialect.sqlToQuery($),W=this.session.prepareQuery(J,void 0,void 0,!1);return new V9(()=>W.execute(void 0,this.authToken),$,J,(X)=>W.mapResult(X,!0))}transaction(T,$){return this.session.transaction(T,$)}}class BA{constructor(T,$){this.unique=T,this.name=$}static[O]="PgIndexBuilderOn";on(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),J}),this.unique,!1,this.name)}onOnly(...T){return new O4(T.map(($)=>{if(L($,c))return $;$=$;let J=new f2($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,J}),this.unique,!0,this.name)}using(T,...$){return new O4($.map((J)=>{if(L(J,c))return J;J=J;let W=new f2(J.name,!!J.keyAsName,J.columnType,J.indexConfig);return J.indexConfig=JSON.parse(JSON.stringify(J.defaultConfig)),W}),this.unique,!0,this.name,T)}}class O4{static[O]="PgIndexBuilder";config;constructor(T,$,J,W,X="btree"){this.config={name:W,columns:T,unique:$,only:J,method:X}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new fA(this.config,T)}}class fA{static[O]="PgIndex";config;constructor(T,$){this.config={...T,table:$}}}function E9(T){return new BA(!0,T)}class R9{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,$){return T}setToken(T){return this.authToken=T,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class L9{constructor(T){this.dialect=T}static[O]="PgSession";execute(T,$){return hT.startActiveSpan("drizzle.operation",()=>{return hT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,$){let J=await this.execute(T,$);return Number(J[0].count)}}class B9 extends c2{constructor(T,$,J,W=0){super(T,$,J);this.schema=J,this.nestedIndex=W}static[O]="PgTransaction";rollback(){throw new cY}getTransactionConfigSQL(T){let $=[];if(T.isolationLevel)$.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)$.push(T.accessMode);if(typeof T.deferrable==="boolean")$.push(T.deferrable?"deferrable":"not deferrable");return U.raw($.join(" "))}setTransaction(T){return this.session.execute(U`set transaction ${this.getTransactionConfigSQL(T)}`)}}class NA extends R9{constructor(T,$,J,W,X,F,Y){super({sql:$,params:J});this.client=T,this.queryString=$,this.params=J,this.logger=W,this.fields=X,this._isResponseInArrayMode=F,this.customResultMapper=Y}static[O]="PostgresJsPreparedQuery";async execute(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(this.params,T);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J);let{fields:W,queryString:X,client:F,joinsNotNullableMap:Y,customResultMapper:G}=this;if(!W&&!G)return hT.startActiveSpan("drizzle.driver.execute",()=>{return F.unsafe(X,J)});let H=await hT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":X,"drizzle.query.params":JSON.stringify(J)}),F.unsafe(X,J).values()});return hT.startActiveSpan("drizzle.mapResponse",()=>{return G?G(H):H.map((M)=>tH(W,M,Y))})})}all(T={}){return hT.startActiveSpan("drizzle.execute",async($)=>{let J=pY(this.params,T);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.logger.logQuery(this.queryString,J),hT.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(J)}),this.client.unsafe(this.queryString,J)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class o2 extends L9{constructor(T,$,J,W={}){super($);this.client=T,this.schema=J,this.options=W,this.logger=W.logger??new dY}static[O]="PostgresJsSession";logger;prepareQuery(T,$,J,W,X){return new NA(this.client,T.sql,T.params,this.logger,$,W,X)}query(T,$){return this.logger.logQuery(T,$),this.client.unsafe(T,$).values()}queryObjects(T,$){return this.client.unsafe(T,$)}transaction(T,$){return this.client.begin(async(J)=>{let W=new o2(J,this.dialect,this.schema,this.options),X=new f9(this.dialect,W,this.schema);if($)await X.setTransaction($);return T(X)})}}class f9 extends B9{constructor(T,$,J,W=0){super(T,$,J,W);this.session=$}static[O]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint(($)=>{let J=new o2($,this.dialect,this.schema,this.session.options),W=new f9(this.dialect,J,this.schema);return T(W)})}}class CA extends c2{static[O]="PostgresJsDatabase"}function cW(T,$={}){let J=(H)=>H;for(let H of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[H]=J,T.options.serializers[H]=J;T.options.serializers["114"]=J,T.options.serializers["3802"]=J;let W=new c0({casing:$.casing}),X;if($.logger===!0)X=new oY;else if($.logger!==!1)X=$.logger;let F;if($.schema){let H=ez($.schema,$A);F={fullSchema:$.schema,schema:H.tables,tableNamesMap:H.tableNamesMap}}let Y=new o2(T,W,F,{logger:X}),G=new CA(W,Y,F);return G.$client=T,G}function U4(...T){if(typeof T[0]==="string"){let $=pW(T[0]);return cW($,T[1])}if(sH(T[0])){let{connection:$,client:J,...W}=T[0];if(J)return cW(J,W);if(typeof $==="object"&&$.url!==void 0){let{url:F,...Y}=$,G=pW(F,Y);return cW(G,W)}let X=pW($);return cW(X,W)}return cW(T[0],T[1])}((T)=>{function $(J){return cW({options:{parsers:{},serializers:{}}},J)}T.mock=$})(U4||(U4={}));function OK(T,$){let J={},W=[];for(let X in T){let F=T[X],Y=$[X],G=F["~standard"].validate(Y);if(G instanceof Promise)throw new Error(`Validation must be synchronous, but ${X} returned a Promise.`);if(G.issues){W.push(...G.issues.map((H)=>({...H,path:[X,...H.path??[]]})));continue}J[X]=G.value}if(W.length)return{issues:W};return{value:J}}function ZA(T){let $=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[N,y]of Object.entries($))if(y==="")delete $[N]}if(!!T.skipValidation)return $;let X=typeof T.client==="object"?T.client:{},F=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},G=T.isServer??(typeof window==="undefined"||("Deno"in window)),H=G?{...F,...Y,...X}:{...X,...Y},M=OK(H,$),z=T.onValidationError??((N)=>{throw console.error("\u274C Invalid environment variables:",N),new Error("Invalid environment variables")}),A=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(M.issues)return z(M.issues);let Q=(N)=>{if(!T.clientPrefix)return!0;return!N.startsWith(T.clientPrefix)&&!(N in Y)},_=(N)=>{return G||!Q(N)},D=(N)=>{return N==="__esModule"||N==="$$typeof"},K=(T.extends??[]).reduce((N,y)=>{return Object.assign(N,y)},{}),Z=Object.assign(M.value,K);return new Proxy(Z,{get(N,y){if(typeof y!=="string")return;if(D(y))return;if(!_(y))return A(y);return Reflect.get(N,y)}})}var T0=(T)=>Array.isArray(T)?T:[T],kA=(T,$)=>{let J=[[],[]];for(let W of T)if($(W))J[0].push(W);else J[1].push(W);return J},_4=Array,R1=(T,$)=>T.includes($),qA=(T,$=0)=>[...new Array(T)].map((J,W)=>W+$),KT=(T,$,J)=>{if(T===void 0)return $===void 0?[]:Array.isArray($)?$:[$];if(J?.prepend)if(Array.isArray($))T.unshift(...$);else T.unshift($);else if(Array.isArray($))T.push(...$);else T.push($);return T},L1=(T,$)=>{if($===void 0||$===null)return T??[];if(T===void 0||T===null)return T0($);return T.concat($)},yA=(...T)=>T.reduce(L1,[]),eJ=(T,$,J)=>{if(T===void 0)return Array.isArray($)?$:[$];let W=J?.isEqual??((X,F)=>X===F);return T0($).forEach((X)=>{if(!T.some((F)=>W(F,X)))T.push(X)}),T},IA=(T,$)=>T.reduce((J,W)=>{let X=W[$];return J[X]=KT(J[X],W),J},{}),B1=(T,$,J)=>T.length===$.length&&T.every(J?.isEqual?(W,X)=>J.isEqual(W,$[X]):(W,X)=>W===$[X]);var e$=(T,$)=>V$(T)===$,V$=(T)=>{let $=typeof T;return $==="object"?T===null?"null":"object":$==="function"?"object":$},TJ={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},jA={...TJ,function:"a function"};class xA extends Error{}var fT=(T)=>f1(T,xA),f1=(T,$=Error)=>{throw new $(T)};class d2 extends Error{name="ParseError"}var R=(T)=>f1(T,d2),vJ=(T)=>` ${T}`;var MT=(T,$)=>{let J={},W=Array.isArray(T),X=!1;return Object.entries(T).forEach((F,Y)=>{let G=W?$(Y,F[1]):$(...F,Y);X||=typeof G[0]==="number",(Array.isArray(G[0])||G.length===0?G:[G]).forEach(([M,z])=>{if(typeof M==="object")J[M.group]=KT(J[M.group],z);else J[M]=z})}),X?Object.values(J):J};var N9=Object.entries;var X$=(T,$)=>(T in $),oW=(T,$)=>($ in T);class C9{constructor(T){Object.assign(this,T)}}var bA=class{};class l2 extends bA{}var UK=(T,$)=>{let J={},W={},X;for(X in T)if(X in $)J[X]=T[X];else W[X]=T[X];return[J,W]};var PA=(T,$)=>UK(T,$)[1],T1=(T)=>Object.keys(T).length===0,n2=(T)=>[...Object.entries(T),...Object.getOwnPropertySymbols(T).map(($)=>[$,T[$]])],vA=(T,$)=>Object.defineProperties(T,Object.getOwnPropertyDescriptors($)),hA=(T)=>{let $=Object.keys(T).sort(),J={};for(let W=0;W<$.length;W++)J[$[W]]=T[$[W]];return J};var wJ=vJ("represents an uninitialized value"),mA=(T)=>Object.values(T).filter(($)=>{if(typeof $==="number")return!0;return typeof T[$]!=="number"});var Z9={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},k9=globalThis.File??Blob,q9={ArrayBuffer,Blob,File:k9,FormData,Headers,Request,Response,URL},_K={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},o0={...Z9,...q9,..._K,String,Number,Boolean},i2=(T)=>{let $=Object.getPrototypeOf(T);while($?.constructor&&(!X$($.constructor.name,o0)||!(T instanceof o0[$.constructor.name])))$=Object.getPrototypeOf($);let J=$?.constructor?.name;if(J===void 0||J==="Object")return;return J},t2=(T)=>typeof T==="object"&&T!==null?i2(T)??"object":V$(T);var mT=Array.isArray,DK={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},SK={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},KK={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},gA={...DK,...SK,...KK},r2=(T)=>{let $=Object(T).name??null;return $&&X$($,o0)&&o0[$]===T?$:null};var y9=(T,$)=>{let J=T.prototype;while(J!==null){if(J===$.prototype)return!0;J=Object.getPrototypeOf(J)}return!1};var pA=(T)=>uA(T,new Map),uA=(T,$)=>{if(typeof T!=="object"||T===null)return T;if($?.has(T))return $.get(T);let J=r2(T.constructor);if(J==="Date")return new Date(T.getTime());if(J&&J!=="Array")return T;let W=Array.isArray(T)?T.slice():Object.create(Object.getPrototypeOf(T)),X=Object.getOwnPropertyDescriptors(T);if($){$.set(T,W);for(let F in X){let Y=X[F];if("get"in Y||"set"in Y)continue;Y.value=uA(Y.value,$)}}return Object.defineProperties(W,X),W};var VK=(T)=>{let $=wJ;return()=>$===wJ?$=T():$},$0=(T)=>typeof T==="function"&&T.length===0;var cA=class extends Function{constructor(...T){let $=T.slice(0,-1),J=T.at(-1);try{super(...$,J)}catch(W){return fT(`Encountered an unexpected error while compiling your definition:
95
95
  Message: ${W}
96
96
  Source: (${T.slice(0,-1)}) => {
97
97
  ${T.at(-1)}
@@ -129,7 +129,7 @@ Right: ${$}`;var tV=GT({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUn
129
129
  ${Y},
130
130
  `;if(!J.hasKind("union"))return G;let H=new J8({kind:"Allows",optimistic:!0}).indent();J.compile(H);let M=H.write(`${J.id}Optimistic`);return`${G}${M},
131
131
  `},`{
132
- `)+"}");class j4{config;resolvedConfig;name;get[o$](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(T,$){if(this.config=W8(q.config,$),this.resolvedConfig=W8(q.resolvedConfig,$),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(S5).length}`,this.name in S5)R(`A Scope already named ${this.name} already exists`);S5[this.name]=this,Object.entries(T).map((W)=>this.preparseOwnAliasEntry(...W)).forEach(([W,X])=>{let F=W;if(W[0]==="#"){if(F=W.slice(1),F in this.aliases)R(Gw(F));this.aliases[F]=X}else{if(F in this.aliases)R(Gw(W));this.aliases[F]=X,this.exportedNames.push(F)}if(!l(X,"module")&&!l(X,"generic")&&!$0(X)){let Y=this.preparseOwnDefinitionFormat(X,{alias:F});if(l(Y,"root"))this.resolutions[F]=this.bindReference(Y);else this.resolutions[F]=this.createParseContext(Y).id}}),Hw??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[Hw.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=q.intrinsic?MT(q.intrinsic,(W,X)=>W.startsWith("json")?[]:[W,this.bindReference(X)]):{}}cacheGetter(T,$){return Object.defineProperty(this,T,{value:$}),$}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(T){return T}generic=(...T)=>{let $=this;return(J,W)=>new F0(T,W?new f4(J):J,$,$,W??null)};units=(T,$)=>{let J=[];for(let X of T)if(!J.includes(X))J.push(X);let W=J.map((X)=>this.node("unit",{unit:X},$));return this.node("union",W,{...$,prereduced:!0})};lazyResolutions=[];lazilyResolve(T,$){let J=this.node("alias",{reference:$??"synthetic",resolve:T},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(J);return J}schema=(T,$)=>this.finalize(this.parseSchema(T,$));parseSchema=(T,$)=>this.node(G8(T),T,$);preparseNode(T,$,J){let W=typeof T==="string"?T:G8($,T);if(cT($)&&$.kind===W)return $;if(W==="alias"&&!J?.prereduced){let{reference:Y}=w8.implementation.normalize($,this);if(Y.startsWith("$")){let G=this.resolveRoot(Y.slice(1));$=G,W=G.kind}}else if(W==="union"&&e$($,"object")){let Y=OE($);if(Y?.length===1)$=Y[0],W=G8($)}if(cT($)&&$.kind===W)return $;let F=TX[W].normalize?.($,this)??$;if(cT(F))return F.kind===W?F:UE(W,F.kind);return{...J,$:this,kind:W,def:F,prefix:J.alias??W}}bindReference(T){let $;if(cT(T))$=T.$===this?T:new T.constructor(T.attachments,this);else $=T.$===this?T:new F0(T.params,T.bodyDef,T.$,this,T.hkt);if(!this.resolved)Object.assign(this.referencesById,$.referencesById);return $}resolveRoot(T){return this.maybeResolveRoot(T)??R(E5(T))}maybeResolveRoot(T){let $=this.maybeResolve(T);if(l($,"generic"))return;return $}maybeResolveSubalias(T){return K5(this.aliases,T)??K5(this.ambient,T)}get ambient(){return q.ambient}maybeResolve(T){let $=this.resolutions[T];if($){if(typeof $!=="string")return this.bindReference($);let W=d$[$];if(l(W,"root"))return this.resolutions[T]=W;if(l(W,"context")){if(W.phase==="resolving")return this.node("alias",{reference:`$${T}`},{prereduced:!0});if(W.phase==="resolved")return fT(`Unexpected resolved context for was uncached by its scope: ${YT(W)}`);W.phase="resolving";let X=this.bindReference(this.parseOwnDefinitionFormat(W.def,W));return W.phase="resolved",d$[X.id]=X,d$[W.id]=X,this.resolutions[T]=X}return fT(`Unexpected nodesById entry for ${$}: ${YT(W)}`)}let J=this.aliases[T]??this.ambient?.[T];if(!J)return this.maybeResolveSubalias(T);if(J=this.normalizeRootScopeValue(J),l(J,"generic"))return this.resolutions[T]=this.bindReference(J);if(l(J,"module"))if(J.root)return this.resolutions[T]=this.bindReference(J.root);else return R(Uw(T));return this.resolutions[T]=this.parse(J,{alias:T})}createParseContext(T){let $=T.id??$5(T.prefix);return d$[$]=Object.assign(T,{[o$]:"context",$:this,id:$,phase:"unresolved"})}traversal(T){return new mJ(T,this.resolvedConfig)}import(...T){return new WX(MT(this.export(...T),($,J)=>[`#${$}`,J]))}precompilation;_exportedResolutions;_exports;export(...T){if(!this._exports){this._exports={};for(let J of this.exportedNames){let W=this.aliases[J];this._exports[J]=l(W,"module")?D5(W,this):Mw(this.maybeResolve(J))}if(this.lazyResolutions.forEach((J)=>J.resolution),this._exportedResolutions=Ow(this,this._exports),this._json=ww(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let J=Qw(this.references);this.precompilation=J.write(zw,4),Aw(this.references,J)}this.resolved=!0}let $=T.length?T:this.exportedNames;return new WX(MT($,(J,W)=>[W,this._exports[W]]))}resolve(T){return this.export()[T]}node=(T,$,J={})=>{let W=this.preparseNode(T,$,J);if(cT(W))return this.bindReference(W);let X=this.createParseContext(W),F=J5(X),Y=this.bindReference(F);return d$[X.id]=Y};parse=(T,$={})=>this.finalize(this.parseDefinition(T,$));parseDefinition(T,$={}){if(l(T,"root"))return this.bindReference(T);let J=this.preparseOwnDefinitionFormat(T,$);if(l(J,"root"))return this.bindReference(J);let W=this.createParseContext(J);d$[W.id]=W;let X=this.bindReference(this.parseOwnDefinitionFormat(T,W));if(X.isCyclic)X=bQ(X,W.id);return d$[W.id]=X,X}finalize(T){if(Mw(T),!T.precompilation&&!this.resolvedConfig.jitless)_E(T.references);return T}}class V5 extends j4{parseOwnDefinitionFormat(T,$){return J5($)}preparseOwnDefinitionFormat(T,$){return this.preparseNode(G8(T),T,$)}preparseOwnAliasEntry(T,$){return[T,$]}normalizeRootScopeValue(T){return T}}var Mw=(T)=>{return T.references.filter(($)=>$.hasKind("alias")).forEach(($)=>{Object.assign($.referencesById,$.resolution.referencesById),T.references.forEach((J)=>{if($.id in J.referencesById)Object.assign(J.referencesById,$.referencesById)})}),T},ww=(T)=>MT(T,($,J)=>[$,l(J,"root")||l(J,"generic")?J.json:l(J,"module")?ww(J):fT(`Unexpected resolution ${YT(J)}`)]),K5=(T,$)=>{let J=$.indexOf(".");if(J===-1)return;let W=$.slice(0,J),X=T[W];if(X===void 0)return;if(!l(X,"module"))return R(DE(W));let F=$.slice(J+1),Y=X[F];if(Y===void 0)return K5(X,F);if(l(Y,"root")||l(Y,"generic"))return Y;if(l(Y,"module"))return Y.root??R(Uw($));fT(`Unexpected resolution for alias '${$}': ${YT(Y)}`)},x4=(T,$)=>new V5(T,$),_8=new V5({});var Ow=(T,$)=>{let J={};for(let W in $){let X=$[W];if(l(X,"module")){let F=Ow(T,X),Y=MT(F,(G,H)=>[`${W}.${G}`,H]);Object.assign(J,Y)}else if(l(X,"root")||l(X,"generic"))J[W]=X;else fT(`Unexpected scope resolution ${YT(X)}`)}return J},E5=(T)=>`'${T}' is unresolvable`,DE=(T)=>`'${T}' must reference a module to be accessed using dot syntax`,Uw=(T)=>`Reference to submodule '${T}' must specify an alias`;_8.export();var{schema:IT,node:XX,defineSchema:iJT,generic:NJ}=_8;var R5="^(?:0|[1-9]\\d*)$",SE=new RegExp(R5),aJT=sT(SE);var _w=x4({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();q.intrinsic={..._w};var Dw=x4({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:R5}},{prereducedAliases:!0}).export();Object.assign(q.intrinsic,Dw);var KE=x4({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),e={..._w,...Dw,...KE,emptyStructure:XX("structure",{},{prereduced:!0})};q.intrinsic={...e};var Kw=(T)=>typeof T==="string"&&T[0]==="d"&&(T[1]==="'"||T[1]==='"')&&T.at(-1)===T[1],Sw=(T)=>T.toString()!=="Invalid Date",Vw=(T)=>T.slice(2,-1),L5=(T)=>`'${T}' could not be parsed by the Date constructor`,Ew=(T,$)=>VE(T,$),VE=(T,$)=>{let J=new Date(T);if(Sw(J))return J;let W=eA(T);if(W!==void 0){let X=new Date(W);if(Sw(X))return X}return $?R($===!0?L5(T):$):void 0};var B5=(T,$)=>{let J=T.scanner.shiftUntil(EE[Lw[$]]);if(T.scanner.lookahead==="")return T.error(LE(J,$));if(T.scanner.shift(),$==="/"){try{new RegExp(J)}catch(W){R(String(W))}T.root=T.ctx.$.node("intersection",{domain:"string",pattern:J},{prereduced:!0})}else if(X$($,f5))T.root=T.ctx.$.node("unit",{unit:J});else{let W=Ew(J,L5(J));T.root=T.ctx.$.node("unit",{meta:J,unit:W})}},f5={"'":1,'"':1},Rw={"/":1,"'":1,'"':1},Lw={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},EE={"'":(T)=>T.lookahead==="'",'"':(T)=>T.lookahead==='"',"/":(T)=>T.lookahead==="/"},RE={'"':"double-quote","'":"single-quote","/":"forward slash"},LE=(T,$)=>`${$}${T} requires a closing ${RE[Lw[$]]}`;var Bw=(T)=>`Private type references should not include '#'. Use '${T}' instead.`,b4="Optional definitions like 'string?' are only valid as properties in an object or tuple",P4="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var fw={">":!0,">=":!0},Nw={"<":!0,"<=":!0};var FX={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},Cw=(T)=>`Unmatched )${T===""?"":` before ${T}`}`,v4=(T)=>`Missing ${T}`,Zw=(T,$)=>`Left bounds are only valid when paired with right bounds (try ...${$}${T})`,h4=(T)=>`Left-bounded expressions must specify their limits using < or <= (was ${T})`,kw=(T,$,J,W)=>`An expression may have at most one left bound (parsed ${T}${FX[$]}, ${J}${FX[W]})`;var qw=(T,$,J)=>yw(T,$,J,[]),yw=(T,$,J,W)=>{let X=J.parseUntilFinalizer();if(W.push(X.root),X.finalizer===">"){if(W.length!==$.params.length)return J.error(N5(T,$.names,W.map((F)=>F.expression)));return W}if(X.finalizer===",")return yw(T,$,J,W);return X.error(v4(">"))},N5=(T,$,J)=>`${T}<${$.join(", ")}> requires exactly ${$.length} args (got ${J.length}${J.length===0?"":`: ${J.join(", ")}`})`;var C5=(T)=>{let $=T.scanner.shiftUntilNextTerminator();if($==="keyof")T.addPrefix("keyof");else T.root=fE(T,$)},BE=(T,$,J)=>{if(J.scanner.shiftUntilNonWhitespace(),J.scanner.shift()!=="<")return J.error(N5(T,$.names,[]));let X=qw(T,$,J);return $(...X)},fE=(T,$)=>NE(T,$)??CE(T,$)??T.error($===""?T.scanner.lookahead==="#"?Bw(T.shiftedByOne().scanner.shiftUntilNextTerminator()):Z5(T):E5($)),NE=(T,$)=>{if(T.ctx.args?.[$]){let W=T.ctx.args[$];if(typeof W!=="string")return W;return T.ctx.$.node("alias",{reference:W},{prereduced:!0})}let J=T.ctx.$.maybeResolve($);if(l(J,"root"))return J;if(J===void 0)return;if(l(J,"generic"))return BE($,J,T);return R(`Unexpected resolution ${YT(J)}`)},CE=(T,$)=>{let J=TQ($);if(J!==void 0)return T.ctx.$.node("unit",{unit:J});let W=JQ($);if(W!==void 0)return T.ctx.$.node("unit",{unit:W})},Z5=(T)=>{let $=T.previousOperator();return $?k5($,T.scanner.unscanned):ZE(T.scanner.unscanned)},k5=(T,$="")=>`Token '${T}' requires a right operand${$?` before '${$}'`:""}`,ZE=(T)=>`Expected an expression${T?` before '${T}'`:""}`;var q5=(T)=>T.scanner.lookahead===""?T.error(Z5(T)):T.scanner.lookahead==="("?T.shiftedByOne().reduceGroupOpen():T.scanner.lookaheadIsIn(Rw)?B5(T,T.scanner.shift()):T.scanner.lookaheadIsIn(J0)?q5(T.shiftedByOne()):T.scanner.lookahead==="d"?T.scanner.nextLookahead in f5?B5(T,`${T.scanner.shift()}${T.scanner.shift()}`):C5(T):C5(T);class q1 extends P9{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in q1.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...J0};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(T,$)=>T===">"?$[0]==="="?$[1]==="=":$.trimStart()===""||X$($.trimStart()[0],q1.terminatingChars):T==="="?$[0]!=="=":T===","||T==="?"}var jw=(T,$)=>{let J=kE(T,$);if(T.root.hasKind("unit")){if(typeof T.root.unit==="number"){T.reduceLeftBound(T.root.unit,J),T.unsetRoot();return}if(T.root.unit instanceof Date){let W=`d'${T.root.description??T.root.unit.toISOString()}'`;T.unsetRoot(),T.reduceLeftBound(W,J);return}}return yE(T,J)},xw={"<":1,">":1,"=":1},kE=(T,$)=>T.scanner.lookaheadIs("=")?`${$}${T.scanner.shift()}`:$;var Iw=(T,$,J,W)=>{if(J.extends(q.intrinsic.number)){if(typeof $!=="number")return R(y5(T,$,W));return T==="=="?["min","max"]:T[0]===">"?["min"]:["max"]}if(J.extends(q.intrinsic.lengthBoundable)){if(typeof $!=="number")return R(y5(T,$,W));return T==="=="?["exactLength"]:T[0]===">"?["minLength"]:["maxLength"]}if(J.extends(q.intrinsic.Date))return T==="=="?["after","before"]:T[0]===">"?["after"]:["before"];return R(RQ(J.expression))},qE=(T)=>({rule:Kw(T.limit)?Vw(T.limit):T.limit,exclusive:T.comparator.length===1}),yE=(T,$)=>{let J=T.unsetRoot(),W=T.scanner.location;T.parseOperand();let X=T.unsetRoot(),F=T.scanner.sliceChars(W,T.scanner.location);if(T.root=J,!X.hasKind("unit")||typeof X.unit!=="number"&&!(X.unit instanceof Date))return T.error(y5($,F,"right"));let Y=X.unit,G=$.length===1,H=Iw($,typeof Y==="number"?Y:F,J,"right");for(let z of H)T.constrainRoot(z,$==="=="?{rule:Y}:{rule:Y,exclusive:G});if(!T.branches.leftBound)return;if(!X$($,Nw))return T.error(h4($));let M=Iw(T.branches.leftBound.comparator,T.branches.leftBound.limit,J,"left");T.constrainRoot(M[0],qE(T.branches.leftBound)),T.branches.leftBound=null},y5=(T,$,J)=>`Comparator ${J==="left"?FX[T]:T} must be ${J==="left"?"preceded":"followed"} by a corresponding literal (was ${$})`;var bw=(T)=>{T.scanner.shiftUntilNonWhitespace();let $=T.scanner.shiftUntilNextTerminator();T.root=T.root.brand($)};var vw=(T)=>{let $=T.scanner.shiftUntilNextTerminator(),J=$Q($,{errorOnFail:Pw($)});if(J===0)T.error(Pw(0));T.root=T.root.constrain("divisor",J)},Pw=(T)=>`% operator must be followed by a non-zero integer literal (was ${T})`;var I5=(T)=>{let $=T.scanner.shift();return $===""?T.finalize(""):$==="["?T.scanner.shift()==="]"?T.setRoot(T.root.array()):T.error(IE):$==="|"?T.scanner.lookahead===">"?T.shiftedByOne().pushRootToBranch("|>"):T.pushRootToBranch($):$==="&"?T.pushRootToBranch($):$===")"?T.finalizeGroup():q1.lookaheadIsFinalizing($,T.scanner.unscanned)?T.finalize($):X$($,xw)?jw(T,$):$==="%"?vw(T):$==="#"?bw(T):($ in J0)?I5(T):T.error(m4($))},m4=(T,$="")=>`'${T}' is not allowed here${$&&` (should be ${$})`}`,IE="Missing expected ']'";var hw=(T)=>{let $=T.unsetRoot();T.parseOperand();let J=T.unsetRoot();if(!J.hasKind("unit"))return T.error(jE(J.expression));let W=J.unit instanceof Date?()=>new Date(J.unit):J.unit;return[$,"=",W]},jE=(T)=>`Default value '${T}' must a literal value`;var j5=(T,$)=>{let J=$.$.maybeResolveRoot(T);if(J)return J;if(T.endsWith("[]")){let F=$.$.maybeResolveRoot(T.slice(0,-2));if(F)return F.array()}let W=new YX(new q1(T),$),X=xE(W);if(W.finalizer===">")R(m4(">"));return X},xE=(T)=>{T.parseOperand();let $=D8(T).root;if(!$)return fT(`Root was unexpectedly unset after parsing string '${T.scanner.scanned}'`);if(T.finalizer==="=")$=hw(T);else if(T.finalizer==="?")$=[$,"?"];if(T.scanner.shiftUntilNonWhitespace(),T.scanner.lookahead)R(m4(T.scanner.lookahead));return $},D8=(T)=>{while(T.finalizer===void 0)bE(T);return T},bE=(T)=>T.hasRoot()?T.parseOperator():T.parseOperand();class YX{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(T,$){this.scanner=T,this.ctx=$}error(T){return R(T)}hasRoot(){return this.root!==void 0}setRoot(T){this.root=T}unsetRoot(){let T=this.root;return this.root=void 0,T}constrainRoot(...T){this.root=this.root.constrain(T[0],T[1])}finalize(T){if(this.groups.length)return this.error(v4(")"));this.finalizeBranches(),this.finalizer=T}reduceLeftBound(T,$){let J=FX[$];if(!X$(J,fw))return this.error(h4($));if(this.branches.leftBound)return this.error(kw(this.branches.leftBound.limit,this.branches.leftBound.comparator,T,J));this.branches.leftBound={comparator:J,limit:T}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let T=this.groups.pop();if(!T)return this.error(Cw(this.scanner.unscanned));this.branches=T}addPrefix(T){this.branches.prefixes.push(T)}applyPrefixes(){while(this.branches.prefixes.length){let T=this.branches.prefixes.pop();this.root=T==="keyof"?this.root.keyof():fT(`Unexpected prefix '${T}'`)}}pushRootToBranch(T){this.assertRangeUnset(),this.applyPrefixes();let $=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd($)??$,T==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,T==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return D8(new YX(this.scanner,this.ctx))}parseOperator(){return I5(this)}parseOperand(){return q5(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(Zw(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var PE="An empty string is not a valid generic parameter name",g4=(T,$,J)=>{T.shiftUntilNonWhitespace();let W=T.shiftUntilNextTerminator();if(W===""){if(T.lookahead===""&&$.length)return $;return R(PE)}return T.shiftUntilNonWhitespace(),vE(T,W,$,J)},mw="extends ",vE=(T,$,J,W)=>{if(T.shiftUntilNonWhitespace(),T.unscanned.startsWith(mw))T.jumpForward(mw.length);else{if(T.lookahead===",")T.shift();return J.push($),g4(T,J,W)}let X=D8(new YX(T,W));return J.push([$,X.root]),g4(T,J,W)};class x5 extends hJ{$;constructor(T){super((...$)=>new S8(T)(...$),{bind:T});this.$=T}in(T){return new S8(this.$,T===void 0?void 0:this.$.parse(T))}at(T,$){return new S8(this.$).at(T,$)}case(T,$){return new S8(this.$).case(T,$)}}class S8 extends hJ{$;in;key;branches=[];constructor(T,$){super((J)=>this.caseEntries(Object.entries(J).map(([W,X])=>W==="default"?[W,X]:[this.$.parse(W),X])));this.$=T,this.in=$}at(T,$){if(this.key)R(mE);if(this.branches.length)R(hE);return this.key=T,$?this.match($):this}case(T,$){return this.caseEntry(this.$.parse(T),$)}caseEntry(T,$){let W=(this.key?this.$.parse({[this.key]:T}):T).pipe($);return this.branches.push(W),this}match(T){return this(T)}strings(T){return this.caseEntries(Object.entries(T).map(([$,J])=>$==="default"?[$,J]:[this.$.node("unit",{unit:$}),J]))}caseEntries(T){for(let $=0;$<T.length;$++){let[J,W]=T[$];if(J==="default"){if($!==T.length-1)R("default may only be specified as the last key of a switch definition");return this.default(W)}if(typeof W!=="function")return R(`Value for case "${J}" must be a function (was ${V$(W)})`);this.caseEntry(J,W)}return this}default(T){if(typeof T==="function")this.case(e.unknown,T);let $={branches:this.branches,ordered:!0};if(T==="never"||T==="assert")$.meta={onFail:gw};let J=this.$.node("union",$);if(!this.in)return this.$.finalize(J);let W=this.in.pipe(J);if(T==="never"||T==="assert")W=W.configureReferences({onFail:gw},"self");return this.$.finalize(W)}}var gw=(T)=>T.throw(),hE="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",mE="At most one key matcher may be specified per expression";var p4=(T,$)=>{if(mT(T)){if(T[1]==="=")return[$.$.parseOwnDefinitionFormat(T[0],$),"=",T[2]];if(T[1]==="?")return[$.$.parseOwnDefinitionFormat(T[0],$),"?"]}return u4(T,$)},pw="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",uw="Only required keys may specify default values, e.g. { value: 'number = 0' }";var cw=(T,$)=>{let J,W={},X=n2(T);for(let[Y,G]of X){let H=uE(Y);if(H.kind==="spread"){if(!T1(W))return R(pE);let _=$.$.parseOwnDefinitionFormat(G,$);if(_.equals(e.object))continue;if(!_.hasKind("intersection")||!_.basis?.equals(e.object))return R(cE(_.expression));J=_.structure;continue}if(H.kind==="undeclared"){if(G!=="reject"&&G!=="delete"&&G!=="ignore")R(gE(G));W.undeclared=G;continue}let M=p4(G,$),z=H;if(H.kind==="required"){if(!mT(M))b5(W,"required",{key:H.normalized,value:M},$);else b5(W,"optional",M[1]==="="?{key:H.normalized,value:M[0],default:M[2]}:{key:H.normalized,value:M[0]},$);continue}if(mT(M)){if(M[1]==="?")R(pw);if(M[1]==="=")R(uw)}if(H.kind==="optional"){b5(W,"optional",{key:H.normalized,value:M},$);continue}let A=$.$.parseOwnDefinitionFormat(z.normalized,$),Q=I4(A,M,$.$);if(Q.index)W.index=KT(W.index,Q.index);if(Q.required)W.required=KT(W.required,Q.required)}let F=$.$.node("structure",W);return $.$.parseSchema({domain:"object",structure:J?.merge(F)??F})},b5=(T,$,J,W)=>{T[$]=KT(T[$],W.$.node($,J))},gE=(T)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${YT(T)})`,pE="Spread operator may only be used as the first key in an object",uE=(T)=>typeof T==="symbol"?{kind:"required",normalized:T}:T.at(-1)==="?"?T.at(-2)===a2?{kind:"required",normalized:`${T.slice(0,-2)}?`}:{kind:"optional",normalized:T.slice(0,-1)}:T[0]==="["&&T.at(-1)==="]"?{kind:"index",normalized:T.slice(1,-1)}:T[0]===a2&&T[1]==="["&&T.at(-1)==="]"?{kind:"required",normalized:T.slice(1)}:T==="..."?{kind:"spread"}:T==="+"?{kind:"undeclared"}:{kind:"required",normalized:T==="\\..."?"...":T==="\\+"?"+":T},cE=(T)=>`Spread operand must resolve to an object literal type (was ${T})`;var dw=(T,$)=>eE(T)?tw[T[0]](T,$):aE(T)?iw[T[1]](T,$):null,oE=(T,$)=>$.$.parseOwnDefinitionFormat(T[1],$).keyof(),P5=(T,$)=>{if(T[2]===void 0)return R(k5(T[1],""));let J=$.$.parseOwnDefinitionFormat(T[0],$),W=$.$.parseOwnDefinitionFormat(T[2],$);if(T[1]==="|")return $.$.node("union",{branches:[J,W]});let X=T[1]==="&"?WJ(J,W,$.$):Y8(J,W,$.$);if(X instanceof v)return X.throw();return X},dE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).array(),lE=(T,$)=>{if(typeof T[2]!=="function")return R(lw("=>",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).pipe(T[2])},lw=(T,$)=>`${T===":"?"Narrow":"Morph"} expression requires a function following '${T}' (was ${typeof $})`,nE=(T,$)=>{if(typeof T[2]!=="function")return R(lw(":",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).constrain("predicate",T[2])},iE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).configureReferences(T[2],"shallow"),nw=(T)=>T,tE=nw({"[]":dE,"?":()=>R(b4)}),rE=nw({"|":P5,"&":P5,":":nE,"=>":lE,"|>":P5,"@":iE,"=":()=>R(P4)}),iw={...tE,...rE},aE=(T)=>iw[T[1]]!==void 0,sE=(T)=>T,tw=sE({keyof:oE,instanceof:(T,$)=>{if(typeof T[1]!=="function")return R(ow(t2(T[1])));let J=T.slice(1).map((W)=>typeof W==="function"?$.$.node("proto",{proto:W}):R(ow(t2(W))));return J.length===1?J[0]:$.$.node("union",{branches:J})},"===":(T,$)=>$.$.units(T.slice(1))}),eE=(T)=>tw[T[0]]!==void 0,ow=(T)=>`Expected a constructor following 'instanceof' operator (was ${T})`;var sw=(T,$)=>{let J=[{}],W=0;while(W<T.length){let X=!1;if(T[W]==="..."&&W<T.length-1)X=!0,W++;let F=p4(T[W],$),[Y,G,H]=!mT(F)?[F]:F;if(W++,X){if(!Y.extends(q.intrinsic.Array))return R(JR(Y.expression));J=J.flatMap((M)=>Y.distribute((z)=>$R(E4(M),z)))}else J=J.map((M)=>{if(G==="?")return ew(M,Y);if(G==="=")return TR(M,Y,H);return v5(M,Y)})}return $.$.parseSchema(J.map((X)=>T1(X)?{proto:Array,exactLength:0}:{proto:Array,sequence:X}))},v5=(T,$)=>{if(T.defaultables||T.optionals)return R(T.variadic?O5:WR);if(T.variadic)T.postfix=KT(T.postfix,$);else T.prefix=KT(T.prefix,$);return T},ew=(T,$)=>{if(T.variadic)return R(TO);return T.optionals=KT(T.optionals,$),T},TR=(T,$,J)=>{if(T.variadic)return R(TO);if(T.optionals)return R(XR);return T.defaultables=KT(T.defaultables,[[$,J]]),T},rw=(T,$)=>{if(T.postfix)R(aw);if(T.variadic){if(!T.variadic.equals($))R(aw)}else T.variadic=$.internal;return T},$R=(T,$)=>{let J=$.select({method:"find",kind:"sequence"});if(!J)return rw(T,q.intrinsic.unknown);if(J.prefix?.forEach((W)=>v5(T,W)),J.optionals?.forEach((W)=>ew(T,W)),J.variadic)rw(T,J.variadic);return J.postfix?.forEach((W)=>v5(T,W)),T},JR=(T)=>`Spread element must be an array (was ${T})`,aw="A tuple may have at most one variadic element",WR="A required element may not follow an optional element",TO="An optional element may not follow a variadic element";var XR="A defaultable element may not follow an optional element without a default";var FR={},u4=(T,$)=>{if(typeof T==="string"){if($.args&&Object.keys($.args).some((W)=>T.includes(W)))return j5(T,$);let J=FR[$.$.name]??={};return J[T]??=j5(T,$)}return e$(T,"object")?YR(T,$):R(h5(V$(T)))},YR=(T,$)=>{let J=i2(T);switch(J){case void 0:if(l(T,"root"))return T;return cw(T,$);case"Array":return GR(T,$);case"RegExp":return $.$.node("intersection",{domain:"string",pattern:T},{prereduced:!0});case"Function":{let W=$0(T)?T():T;if(l(W,"root"))return W;return R(h5("Function"))}default:return R(h5(J??YT(T)))}},GR=(T,$)=>dw(T,$)??sw(T,$),h5=(T)=>`Type definitions must be strings or objects (was ${T})`;class m5 extends hJ{constructor(T){let $=Object.assign({errors:$J,hkt:v$,$:T,raw:T.parse,module:T.constructor.module,scope:T.constructor.scope,define:T.define,match:T.match,generic:T.generic,schema:T.schema,keywords:T.ambient,unit:T.unit,enumerated:T.enumerated,instanceOf:T.instanceOf,valueOf:T.valueOf,or:T.or,and:T.and,merge:T.merge,pipe:T.pipe},T.ambientAttachments);super((...J)=>{if(J.length===1)return T.parse(J[0]);if(J.length===2&&typeof J[0]==="string"&&J[0][0]==="<"&&J[0].at(-1)===">"){let W=J[0].slice(1,-1),X=T.parseGenericParams(W,{});return new F0(X,J[1],T,T,null)}return T.parse(J)},{bind:T,attach:$})}}var GX=q;class c4 extends j4{get ambientAttachments(){if(!GX.typeAttachments)return;return this.cacheGetter("ambientAttachments",MT(GX.typeAttachments,(T,$)=>[T,this.bindReference($)]))}preparseOwnAliasEntry(T,$){let J=T.indexOf("<");if(J===-1){if(l($,"module")||l($,"generic"))return[T,$];let F=this.name==="ark"?T:T==="root"?this.name:`${this.name}.${T}`,Y=this.resolvedConfig.keywords?.[F];if(Y)$=[$,"@",Y];return[T,$]}if(T.at(-1)!==">")R("'>' must be the last character of a generic declaration in a scope");let W=T.slice(0,J),X=T.slice(J+1,-1);return[W,()=>{let F=this.parseGenericParams(X,{alias:W});return DQ(F,$,this)}]}parseGenericParams(T,$){return g4(new q1(T),[],this.createParseContext({...$,def:T,prefix:"generic"}))}normalizeRootScopeValue(T){if($0(T)&&!l(T,"generic"))return T();return T}preparseOwnDefinitionFormat(T,$){return{...$,def:T,prefix:$.alias??"type"}}parseOwnDefinitionFormat(T,$){if(!($.alias&&($.alias in this.aliases))&&!$.args)$.args={this:$.id};let W=u4(T,$);if(mT(W)){if(W[1]==="=")return R(P4);if(W[1]==="?")return R(b4)}return W}unit=(T)=>this.units([T]);valueOf=(T)=>this.units(mA(T));enumerated=(...T)=>this.units(T);instanceOf=(T)=>this.node("proto",{proto:T},{prereduced:!0});or=(...T)=>this.schema(T.map(($)=>this.parse($)));and=(...T)=>T.reduce(($,J)=>$.and(this.parse(J)),this.intrinsic.unknown);merge=(...T)=>T.reduce(($,J)=>$.merge(this.parse(J)),this.intrinsic.object);pipe=(...T)=>this.intrinsic.unknown.pipe(...T);match=new x5(this);declare=()=>({type:this.type});define(T){return T}type=new m5(this);static scope=(T,$={})=>new c4(T,$);static module=(T,$={})=>this.scope(T,$).export()}var g5=Object.assign(c4.scope,{define:(T)=>T}),OT=c4;class $O extends v${description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var HR=NJ(["base",e.object],["props",e.object])((T)=>T.base.merge(T.props),$O),JO=OT.module({Key:e.key,Merge:HR});class WO extends v${}var MR=NJ("element")((T)=>{let $=T.element.exclude(e.Array),J=$.array();return $.rawOr(J).pipe(T0).distribute((W)=>W.assertHasKind("morph").declareOut(J),IT)},WO),XO=OT.module({root:e.Array,readonly:"root",index:e.nonNegativeIntegerString,liftFrom:MR},{name:"Array"});var p5=IT(["string",d0.FileConstructor]),zR=p5.rawOr(p5.array()),FO=IT({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:zR}}),YO=OT.module({root:["instanceof",FormData],value:p5,parsed:FO,parse:IT({in:FormData,morphs:(T)=>{let $={};for(let[J,W]of T)if(J in $){let X=$[J];if(typeof X==="string"||X instanceof d0.FileConstructor)$[J]=[X,W];else X.push(W)}else $[J]=W;return $},declaredOut:FO})},{name:"FormData"});var GO=OT.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var AR={Boolean:1,Number:1,String:1},HO=OT.module({...MT({...Z9,...q9},(T,$)=>(T in AR)?[]:[T,["instanceof",$]]),Array:XO,TypedArray:GO,FormData:YO});var QR=IT({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),wR=IT({domain:"number",divisor:1}),o4=OT.module({root:e.number,integer:wR,epoch:QR,safe:IT({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var iT=(T,$)=>XX("intersection",{domain:"string",pattern:{rule:T.source,flags:T.flags,meta:$}}),MO=iT(s2,"a well-formed integer string"),VO=OT.module({root:MO,parse:IT({in:MO,morphs:(T,$)=>{let J=Number.parseInt(T);return Number.isSafeInteger(J)?J:$.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:e.integer})},{name:"string.integer"}),OR=iT(/^[0-9a-fA-F]+$/,"hex characters only"),UR=OT.module({root:iT(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,"base64-encoded"),url:iT(/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==|%3D%3D)?|[A-Za-z0-9_-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),zO=iT(/^[A-Z].*$/,"capitalized"),_R=OT.module({root:IT({in:"string",morphs:(T)=>T.charAt(0).toUpperCase()+T.slice(1),declaredOut:zO}),preformatted:zO},{name:"string.capitalize"}),DR=(T)=>{let $=T.replace(/[- ]+/g,""),J=0,W,X,F=!1;for(let Y=$.length-1;Y>=0;Y--){if(W=$.substring(Y,Y+1),X=Number.parseInt(W,10),F)if(X*=2,X>=10)J+=X%10+1;else J+=X;else J+=X;F=!F}return!!(J%10===0?$:!1)},SR=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,KR=IT({domain:"string",pattern:{meta:"a credit card number",rule:SR.source},predicate:{meta:"a credit card number",predicate:DR}});var VR=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var ER=(T)=>!Number.isNaN(new Date(T).valueOf()),AO=IT({domain:"string",predicate:{meta:"a parsable date",predicate:ER}}).assertHasKind("intersection"),QO=VO.root.internal.narrow((T,$)=>{let J=Number.parseInt(T),W=o4.epoch(J);if(W instanceof $J)return $.errors.merge(W),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),RR=OT.module({root:QO,parse:IT({in:QO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.epoch"}),wO=iT(VR,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),LR=OT.module({root:wO,parse:IT({in:wO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.iso"}),BR=OT.module({root:AO,parse:IT({declaredIn:AO,in:"string",morphs:(T,$)=>{let J=new Date(T);if(Number.isNaN(J.valueOf()))return $.error("a parsable date");return J},declaredOut:e.Date}),iso:LR,epoch:RR},{name:"string.date"}),fR=iT(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,"an email address"),OO="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",Y0=`(${OO}[.]){3}${OO}`,NR=new RegExp(`^${Y0}$`),M$="(?:[0-9a-fA-F]{1,4})",CR=new RegExp(`^((?:${M$}:){7}(?:${M$}|:)|(?:${M$}:){6}(?:${Y0}|:${M$}|:)|(?:${M$}:){5}(?::${Y0}|(:${M$}){1,2}|:)|(?:${M$}:){4}(?:(:${M$}){0,1}:${Y0}|(:${M$}){1,3}|:)|(?:${M$}:){3}(?:(:${M$}){0,2}:${Y0}|(:${M$}){1,4}|:)|(?:${M$}:){2}(?:(:${M$}){0,3}:${Y0}|(:${M$}){1,5}|:)|(?:${M$}:){1}(?:(:${M$}){0,4}:${Y0}|(:${M$}){1,6}|:)|(?::((?::${M$}){0,5}:${Y0}|(?::${M$}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),ZR=OT.module({root:["v4 | v6","@","an IP address"],v4:iT(NR,"an IPv4 address"),v6:iT(CR,"an IPv6 address")},{name:"string.ip"}),HX="a JSON string",EO=(T)=>{if(!(T instanceof SyntaxError))throw T;return`must be ${HX} (${T})`},kR=IT({meta:HX,domain:"string",predicate:{meta:HX,predicate:(T,$)=>{try{return JSON.parse(T),!0}catch(J){return $.reject({code:"predicate",expected:HX,problem:EO(J)})}}}}),qR=(T,$)=>{if(T.length===0)return $.error({code:"predicate",expected:HX,actual:"empty"});try{return JSON.parse(T)}catch(J){return $.error({code:"predicate",expected:HX,problem:EO(J)})}},yR=OT.module({root:kR,parse:IT({meta:"safe JSON string parser",in:"string",morphs:qR,declaredOut:e.jsonObject})},{name:"string.json"}),UO=iT(/^[a-z]*$/,"only lowercase letters"),IR=OT.module({root:IT({in:"string",morphs:(T)=>T.toLowerCase(),declaredOut:UO}),preformatted:UO},{name:"string.lower"}),RO=["NFC","NFD","NFKC","NFKD"],K8=MT(RO,(T,$)=>[$,IT({domain:"string",predicate:(J)=>J.normalize($)===J,meta:`${$}-normalized unicode`})]),d4=MT(RO,(T,$)=>[$,IT({in:"string",morphs:(J)=>J.normalize($),declaredOut:K8[$]})]),jR=OT.module({root:d4.NFC,preformatted:K8.NFC},{name:"string.normalize.NFC"}),xR=OT.module({root:d4.NFD,preformatted:K8.NFD},{name:"string.normalize.NFD"}),bR=OT.module({root:d4.NFKC,preformatted:K8.NFKC},{name:"string.normalize.NFKC"}),PR=OT.module({root:d4.NFKD,preformatted:K8.NFKD},{name:"string.normalize.NFKD"}),vR=OT.module({root:"NFC",NFC:jR,NFD:xR,NFKC:bR,NFKD:PR},{name:"string.normalize"}),_O=iT(D4,"a well-formed numeric string"),hR=OT.module({root:_O,parse:IT({in:_O,morphs:(T)=>Number.parseFloat(T),declaredOut:e.number})},{name:"string.numeric"}),mR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,gR=iT(mR,"a semantic version (see https://semver.org/)"),DO=iT(/^\S.*\S$|^\S?$/,"trimmed"),pR=OT.module({root:IT({in:"string",morphs:(T)=>T.trim(),declaredOut:DO}),preformatted:DO},{name:"string.trim"}),SO=iT(/^[A-Z]*$/,"only uppercase letters"),uR=OT.module({root:IT({in:"string",morphs:(T)=>T.toUpperCase(),declaredOut:SO}),preformatted:SO},{name:"string.upper"}),cR=(T)=>{if(URL.canParse)return URL.canParse(T);try{return new URL(T),!0}catch{return!1}},KO=IT({domain:"string",predicate:{meta:"a URL string",predicate:cR}}),oR=OT.module({root:KO,parse:IT({declaredIn:KO,in:"string",morphs:(T,$)=>{try{return new URL(T)}catch{return $.error("a URL string")}},declaredOut:IT(URL)})},{name:"string.url"}),dR=OT.module({root:["versioned | nil | max","@","a UUID"],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,v1:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv1"),v2:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-2[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv2"),v3:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv3"),v4:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv4"),v5:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv5"),v6:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv6"),v7:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv7"),v8:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),LO=OT.module({root:e.string,alpha:iT(/^[A-Za-z]*$/,"only letters"),alphanumeric:iT(/^[A-Za-z\d]*$/,"only letters and digits 0-9"),hex:OR,base64:UR,capitalize:_R,creditCard:KR,date:BR,digits:iT(/^\d*$/,"only digits 0-9"),email:fR,integer:VO,ip:ZR,json:yR,lower:IR,normalize:vR,numeric:hR,semver:gR,trim:pR,upper:uR,url:oR,uuid:dR},{name:"string"});var BO=OT.module({bigint:e.bigint,boolean:e.boolean,false:e.false,never:e.never,null:e.null,number:e.number,object:e.object,string:e.string,symbol:e.symbol,true:e.true,unknown:e.unknown,undefined:e.undefined}),fO=OT.module({root:e.unknown,any:e.unknown},{name:"unknown"}),lR=OT.module({root:e.jsonObject,stringify:XX("morph",{in:e.jsonObject,morphs:(T)=>JSON.stringify(T),declaredOut:e.string})},{name:"object.json"}),NO=OT.module({root:e.object,json:lR},{name:"object"});class CO extends v${description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var nR=NJ(["K",e.key],"V")((T)=>({domain:"object",index:{signature:T.K,value:T.V}}),CO);class ZO extends v${description='pick a set of properties from an object like `Pick(User, "name | age")`'}var iR=NJ(["T",e.object],["K",e.key])((T)=>T.T.pick(T.K),ZO);class kO extends v${description='omit a set of properties from an object like `Omit(User, "age")`'}var tR=NJ(["T",e.object],["K",e.key])((T)=>T.T.omit(T.K),kO);class qO extends v${description="make all named properties of an object optional like `Partial(User)`"}var rR=NJ(["T",e.object])((T)=>T.T.partial(),qO);class yO extends v${description="make all named properties of an object required like `Required(User)`"}var aR=NJ(["T",e.object])((T)=>T.T.required(),yO);class IO extends v${description='exclude branches of a union like `Exclude("boolean", "true")`'}var sR=NJ("T","U")((T)=>T.T.exclude(T.U),IO);class jO extends v${description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var eR=NJ("T","U")((T)=>T.T.extract(T.U),jO),xO=OT.module({Exclude:sR,Extract:eR,Omit:tR,Partial:rR,Pick:iR,Record:nR,Required:aR});var G0=g5({...BO,...xO,...HO,...JO,string:LO,number:o4,object:NO,unknown:fO},{prereducedAliases:!0,name:"ark"}),E$=G0.export();Object.assign(GX.ambient,E$);GX.typeAttachments={string:E$.string.root,number:E$.number.root,bigint:E$.bigint,boolean:E$.boolean,symbol:E$.symbol,undefined:E$.undefined,null:E$.null,object:E$.object.root,unknown:E$.unknown.root,false:E$.false,true:E$.true,never:E$.never,arrayIndex:E$.Array.index,Key:E$.Key,Record:E$.Record,Array:E$.Array.root,Date:E$.Date};var y1=Object.assign(G0.type,GX.typeAttachments),TL=G0.match,$L=G0.generic,SXT=G0.schema,JL=G0.define,WL=G0.declare;var XL="__vite_start_time"in globalThis,FL=typeof window!=="undefined",PXT="vitest"in globalThis,I1=y1("string"),bO=y1('"true" | "false" | undefined'),j1=ZA({isServer:!XL&&!FL,server:{CI:y1("string | undefined").pipe(Boolean),POSTGRES_USER:I1,POSTGRES_PASSWORD:I1,POSTGRES_DATABASE:I1,POSTGRES_HOST:I1,POSTGRES_PORT:I1.pipe((T)=>Number.parseInt(T,10)),BACKEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:bO.pipe((T)=>T==="true"),FRONTEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:I1.pipe.try((T)=>JSON.parse(T),y1("string[]")),OPENAI_API_KEY:y1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:I1,VITE_USE_SELF_SIGNED_CERTIFICATE:bO.pipe((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var c5={};rU(c5,{users:()=>i0,userChanges:()=>GL,untrackedUserColumnNames:()=>YL,twoFactorMethod:()=>gO,trackedUserColumnName:()=>mO,trackableUserColumnNames:()=>hO,role:()=>vO,players:()=>u5,passwordResetAttempts:()=>ML,loginHistory:()=>HL,games:()=>l4,banishedIps:()=>n4});function PO(T){return U`lower(${T})`}var vO=xF("role",["admin","user"]),i0=a1("users",{id:AJ().primaryKey().defaultRandom(),username:Z$({length:16}).notNull(),email:Z$({length:254}).notNull(),hash:Z$({length:64}).notNull(),salt:Z$({length:36}).notNull(),createdAt:PJ({withTimezone:!0}).notNull().defaultNow(),createdIp:Z$({length:45}).notNull(),isActive:I2().notNull().default(!1),verifiedAt:PJ({withTimezone:!0}),userRole:vO().default("user")},(T)=>[E9("usernameUniqueIndex").on(PO(T.username)),E9("emailUniqueIndex").on(PO(T.email))]),YL=["id","createdAt","createdIp","isActive","salt","verifiedAt"],hO=["username","email","hash","userRole"],mO=xF("trackedUserColumnName",hO),GL=a1("userChanges",{id:AJ().primaryKey().defaultRandom(),userId:AJ().notNull().references(()=>i0.id),changedAt:PJ({withTimezone:!0}).notNull().defaultNow(),changedIp:Z$({length:45}).notNull(),changedColumn:mO().notNull(),oldValue:Z$({length:255}),newValue:Z$({length:255})}),l4=a1("games",{id:AJ().primaryKey().defaultRandom()}),u5=a1("players",{userId:AJ().notNull().references(()=>i0.id),gameId:AJ().notNull().references(()=>l4.id),score:dF().notNull()},(T)=>[iz({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),HL=a1("loginHistory",{id:AJ().primaryKey().defaultRandom(),userId:AJ().references(()=>i0.id),loginTime:PJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:Z$({length:45}).notNull(),userAgent:Z$({length:1024}),successful:I2().notNull().default(!1)}),gO=xF("twoFactorMethod",["email","phone"]),ML=a1("passwordResetAttempts",{id:AJ().primaryKey().defaultRandom(),userId:AJ().notNull().references(()=>i0.id),requestedIp:Z$({length:45}).notNull(),requestedAt:PJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:Z$({length:45}),succeededAt:PJ({withTimezone:!0}),verificationMethod:gO().notNull()}),n4=a1("banishedIps",{ip:Z$({length:45}).primaryKey(),reason:Z$({length:2048}).notNull(),banishedAt:PJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:PJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class o5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(zL.resolve(__dirname,"notify_update.sql"));let T=[B$(i0),B$(l4),B$(u5)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),W=J[0],X=J[1],F=`${W}("${X}")`;if(this.observers.has(F))this.observers.get(F).next(F)})}constructor(T=!1,$={host:j1.POSTGRES_HOST,port:j1.POSTGRES_PORT,user:j1.POSTGRES_USER,password:j1.POSTGRES_PASSWORD,database:j1.POSTGRES_DATABASE}){this.options=$,this.sql=pW($),this.drizzle=U4(this.sql,{schema:c5,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new wT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as wL}from"path";import{existsSync as d5,mkdirSync as pO,readFileSync as AL,writeFileSync as QL,rmSync as uO,readdirSync as cO,statSync as oO}from"fs";import{resolve as l5}from"path";var dO=class{get initialized(){return d5(this.rootDir)}initialize(){if(!this.initialized)pO(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=l5(this.rootDir,T);if(d5($))return AL($,"utf-8");return null}setItem(T,$){this.initialize();let J=l5(this.rootDir,T);QL(J,$)}removeItem(T){let $=l5(this.rootDir,T);if(d5($))this.initialize(),uO($)}key(T){var $;return($=cO(this.rootDir).sort((X,F)=>{let Y=oO(X);return oO(F).ctimeMs-Y.ctimeMs})[T])!=null?$:null}clear(){uO(this.rootDir,{recursive:!0}),pO(this.rootDir,{recursive:!0})}get length(){return cO(this.rootDir).length}};var n5=new dO({path:wL(process.cwd(),"storage")});import*as i4 from"fs";import*as lO from"readline";function OL(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,X,F,Y,G)=>{let M={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[F];return`${Y}-${M}-${X}T${G}`});return new Date(J)}async function nO(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!i4.existsSync($))return T.error(`Log file not found: ${$}`),W;let X=i4.createReadStream($),F=lO.createInterface({input:X,crlfDelay:Number.POSITIVE_INFINITY}),Y=new Date(J.getTime()-3600000);return F.on("line",(G)=>{let H=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,M=G.match(H);if(M?.groups){let z=M.groups.ip,A=M.groups.dateTime,Q=OL(A);if(!Number.isNaN(Q.getTime())){if(Q>=Y&&Q<=J){let _=W.get(z);if(!_)_=[],W.set(z,_);_.push(G)}}else T.error(`Failed to parse date: ${A}`)}}),new Promise((G,H)=>{F.on("error",(M)=>{H(M)}),F.on("close",()=>{G(W)})})}function iO(T){return T.toJsonSchema()}var UL=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
132
+ `)+"}");class j4{config;resolvedConfig;name;get[o$](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(T,$){if(this.config=W8(q.config,$),this.resolvedConfig=W8(q.resolvedConfig,$),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(S5).length}`,this.name in S5)R(`A Scope already named ${this.name} already exists`);S5[this.name]=this,Object.entries(T).map((W)=>this.preparseOwnAliasEntry(...W)).forEach(([W,X])=>{let F=W;if(W[0]==="#"){if(F=W.slice(1),F in this.aliases)R(Gw(F));this.aliases[F]=X}else{if(F in this.aliases)R(Gw(W));this.aliases[F]=X,this.exportedNames.push(F)}if(!l(X,"module")&&!l(X,"generic")&&!$0(X)){let Y=this.preparseOwnDefinitionFormat(X,{alias:F});if(l(Y,"root"))this.resolutions[F]=this.bindReference(Y);else this.resolutions[F]=this.createParseContext(Y).id}}),Hw??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[Hw.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=q.intrinsic?MT(q.intrinsic,(W,X)=>W.startsWith("json")?[]:[W,this.bindReference(X)]):{}}cacheGetter(T,$){return Object.defineProperty(this,T,{value:$}),$}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(T){return T}generic=(...T)=>{let $=this;return(J,W)=>new F0(T,W?new f4(J):J,$,$,W??null)};units=(T,$)=>{let J=[];for(let X of T)if(!J.includes(X))J.push(X);let W=J.map((X)=>this.node("unit",{unit:X},$));return this.node("union",W,{...$,prereduced:!0})};lazyResolutions=[];lazilyResolve(T,$){let J=this.node("alias",{reference:$??"synthetic",resolve:T},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(J);return J}schema=(T,$)=>this.finalize(this.parseSchema(T,$));parseSchema=(T,$)=>this.node(G8(T),T,$);preparseNode(T,$,J){let W=typeof T==="string"?T:G8($,T);if(cT($)&&$.kind===W)return $;if(W==="alias"&&!J?.prereduced){let{reference:Y}=w8.implementation.normalize($,this);if(Y.startsWith("$")){let G=this.resolveRoot(Y.slice(1));$=G,W=G.kind}}else if(W==="union"&&e$($,"object")){let Y=OE($);if(Y?.length===1)$=Y[0],W=G8($)}if(cT($)&&$.kind===W)return $;let F=TX[W].normalize?.($,this)??$;if(cT(F))return F.kind===W?F:UE(W,F.kind);return{...J,$:this,kind:W,def:F,prefix:J.alias??W}}bindReference(T){let $;if(cT(T))$=T.$===this?T:new T.constructor(T.attachments,this);else $=T.$===this?T:new F0(T.params,T.bodyDef,T.$,this,T.hkt);if(!this.resolved)Object.assign(this.referencesById,$.referencesById);return $}resolveRoot(T){return this.maybeResolveRoot(T)??R(E5(T))}maybeResolveRoot(T){let $=this.maybeResolve(T);if(l($,"generic"))return;return $}maybeResolveSubalias(T){return K5(this.aliases,T)??K5(this.ambient,T)}get ambient(){return q.ambient}maybeResolve(T){let $=this.resolutions[T];if($){if(typeof $!=="string")return this.bindReference($);let W=d$[$];if(l(W,"root"))return this.resolutions[T]=W;if(l(W,"context")){if(W.phase==="resolving")return this.node("alias",{reference:`$${T}`},{prereduced:!0});if(W.phase==="resolved")return fT(`Unexpected resolved context for was uncached by its scope: ${YT(W)}`);W.phase="resolving";let X=this.bindReference(this.parseOwnDefinitionFormat(W.def,W));return W.phase="resolved",d$[X.id]=X,d$[W.id]=X,this.resolutions[T]=X}return fT(`Unexpected nodesById entry for ${$}: ${YT(W)}`)}let J=this.aliases[T]??this.ambient?.[T];if(!J)return this.maybeResolveSubalias(T);if(J=this.normalizeRootScopeValue(J),l(J,"generic"))return this.resolutions[T]=this.bindReference(J);if(l(J,"module"))if(J.root)return this.resolutions[T]=this.bindReference(J.root);else return R(Uw(T));return this.resolutions[T]=this.parse(J,{alias:T})}createParseContext(T){let $=T.id??$5(T.prefix);return d$[$]=Object.assign(T,{[o$]:"context",$:this,id:$,phase:"unresolved"})}traversal(T){return new mJ(T,this.resolvedConfig)}import(...T){return new WX(MT(this.export(...T),($,J)=>[`#${$}`,J]))}precompilation;_exportedResolutions;_exports;export(...T){if(!this._exports){this._exports={};for(let J of this.exportedNames){let W=this.aliases[J];this._exports[J]=l(W,"module")?D5(W,this):Mw(this.maybeResolve(J))}if(this.lazyResolutions.forEach((J)=>J.resolution),this._exportedResolutions=Ow(this,this._exports),this._json=ww(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let J=Qw(this.references);this.precompilation=J.write(zw,4),Aw(this.references,J)}this.resolved=!0}let $=T.length?T:this.exportedNames;return new WX(MT($,(J,W)=>[W,this._exports[W]]))}resolve(T){return this.export()[T]}node=(T,$,J={})=>{let W=this.preparseNode(T,$,J);if(cT(W))return this.bindReference(W);let X=this.createParseContext(W),F=J5(X),Y=this.bindReference(F);return d$[X.id]=Y};parse=(T,$={})=>this.finalize(this.parseDefinition(T,$));parseDefinition(T,$={}){if(l(T,"root"))return this.bindReference(T);let J=this.preparseOwnDefinitionFormat(T,$);if(l(J,"root"))return this.bindReference(J);let W=this.createParseContext(J);d$[W.id]=W;let X=this.bindReference(this.parseOwnDefinitionFormat(T,W));if(X.isCyclic)X=bQ(X,W.id);return d$[W.id]=X,X}finalize(T){if(Mw(T),!T.precompilation&&!this.resolvedConfig.jitless)_E(T.references);return T}}class V5 extends j4{parseOwnDefinitionFormat(T,$){return J5($)}preparseOwnDefinitionFormat(T,$){return this.preparseNode(G8(T),T,$)}preparseOwnAliasEntry(T,$){return[T,$]}normalizeRootScopeValue(T){return T}}var Mw=(T)=>{return T.references.filter(($)=>$.hasKind("alias")).forEach(($)=>{Object.assign($.referencesById,$.resolution.referencesById),T.references.forEach((J)=>{if($.id in J.referencesById)Object.assign(J.referencesById,$.referencesById)})}),T},ww=(T)=>MT(T,($,J)=>[$,l(J,"root")||l(J,"generic")?J.json:l(J,"module")?ww(J):fT(`Unexpected resolution ${YT(J)}`)]),K5=(T,$)=>{let J=$.indexOf(".");if(J===-1)return;let W=$.slice(0,J),X=T[W];if(X===void 0)return;if(!l(X,"module"))return R(DE(W));let F=$.slice(J+1),Y=X[F];if(Y===void 0)return K5(X,F);if(l(Y,"root")||l(Y,"generic"))return Y;if(l(Y,"module"))return Y.root??R(Uw($));fT(`Unexpected resolution for alias '${$}': ${YT(Y)}`)},x4=(T,$)=>new V5(T,$),_8=new V5({});var Ow=(T,$)=>{let J={};for(let W in $){let X=$[W];if(l(X,"module")){let F=Ow(T,X),Y=MT(F,(G,H)=>[`${W}.${G}`,H]);Object.assign(J,Y)}else if(l(X,"root")||l(X,"generic"))J[W]=X;else fT(`Unexpected scope resolution ${YT(X)}`)}return J},E5=(T)=>`'${T}' is unresolvable`,DE=(T)=>`'${T}' must reference a module to be accessed using dot syntax`,Uw=(T)=>`Reference to submodule '${T}' must specify an alias`;_8.export();var{schema:IT,node:XX,defineSchema:iJT,generic:NJ}=_8;var R5="^(?:0|[1-9]\\d*)$",SE=new RegExp(R5),aJT=sT(SE);var _w=x4({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();q.intrinsic={..._w};var Dw=x4({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:R5}},{prereducedAliases:!0}).export();Object.assign(q.intrinsic,Dw);var KE=x4({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),e={..._w,...Dw,...KE,emptyStructure:XX("structure",{},{prereduced:!0})};q.intrinsic={...e};var Kw=(T)=>typeof T==="string"&&T[0]==="d"&&(T[1]==="'"||T[1]==='"')&&T.at(-1)===T[1],Sw=(T)=>T.toString()!=="Invalid Date",Vw=(T)=>T.slice(2,-1),L5=(T)=>`'${T}' could not be parsed by the Date constructor`,Ew=(T,$)=>VE(T,$),VE=(T,$)=>{let J=new Date(T);if(Sw(J))return J;let W=eA(T);if(W!==void 0){let X=new Date(W);if(Sw(X))return X}return $?R($===!0?L5(T):$):void 0};var B5=(T,$)=>{let J=T.scanner.shiftUntil(EE[Lw[$]]);if(T.scanner.lookahead==="")return T.error(LE(J,$));if(T.scanner.shift(),$==="/"){try{new RegExp(J)}catch(W){R(String(W))}T.root=T.ctx.$.node("intersection",{domain:"string",pattern:J},{prereduced:!0})}else if(X$($,f5))T.root=T.ctx.$.node("unit",{unit:J});else{let W=Ew(J,L5(J));T.root=T.ctx.$.node("unit",{meta:J,unit:W})}},f5={"'":1,'"':1},Rw={"/":1,"'":1,'"':1},Lw={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},EE={"'":(T)=>T.lookahead==="'",'"':(T)=>T.lookahead==='"',"/":(T)=>T.lookahead==="/"},RE={'"':"double-quote","'":"single-quote","/":"forward slash"},LE=(T,$)=>`${$}${T} requires a closing ${RE[Lw[$]]}`;var Bw=(T)=>`Private type references should not include '#'. Use '${T}' instead.`,b4="Optional definitions like 'string?' are only valid as properties in an object or tuple",P4="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var fw={">":!0,">=":!0},Nw={"<":!0,"<=":!0};var FX={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},Cw=(T)=>`Unmatched )${T===""?"":` before ${T}`}`,v4=(T)=>`Missing ${T}`,Zw=(T,$)=>`Left bounds are only valid when paired with right bounds (try ...${$}${T})`,h4=(T)=>`Left-bounded expressions must specify their limits using < or <= (was ${T})`,kw=(T,$,J,W)=>`An expression may have at most one left bound (parsed ${T}${FX[$]}, ${J}${FX[W]})`;var qw=(T,$,J)=>yw(T,$,J,[]),yw=(T,$,J,W)=>{let X=J.parseUntilFinalizer();if(W.push(X.root),X.finalizer===">"){if(W.length!==$.params.length)return J.error(N5(T,$.names,W.map((F)=>F.expression)));return W}if(X.finalizer===",")return yw(T,$,J,W);return X.error(v4(">"))},N5=(T,$,J)=>`${T}<${$.join(", ")}> requires exactly ${$.length} args (got ${J.length}${J.length===0?"":`: ${J.join(", ")}`})`;var C5=(T)=>{let $=T.scanner.shiftUntilNextTerminator();if($==="keyof")T.addPrefix("keyof");else T.root=fE(T,$)},BE=(T,$,J)=>{if(J.scanner.shiftUntilNonWhitespace(),J.scanner.shift()!=="<")return J.error(N5(T,$.names,[]));let X=qw(T,$,J);return $(...X)},fE=(T,$)=>NE(T,$)??CE(T,$)??T.error($===""?T.scanner.lookahead==="#"?Bw(T.shiftedByOne().scanner.shiftUntilNextTerminator()):Z5(T):E5($)),NE=(T,$)=>{if(T.ctx.args?.[$]){let W=T.ctx.args[$];if(typeof W!=="string")return W;return T.ctx.$.node("alias",{reference:W},{prereduced:!0})}let J=T.ctx.$.maybeResolve($);if(l(J,"root"))return J;if(J===void 0)return;if(l(J,"generic"))return BE($,J,T);return R(`Unexpected resolution ${YT(J)}`)},CE=(T,$)=>{let J=TQ($);if(J!==void 0)return T.ctx.$.node("unit",{unit:J});let W=JQ($);if(W!==void 0)return T.ctx.$.node("unit",{unit:W})},Z5=(T)=>{let $=T.previousOperator();return $?k5($,T.scanner.unscanned):ZE(T.scanner.unscanned)},k5=(T,$="")=>`Token '${T}' requires a right operand${$?` before '${$}'`:""}`,ZE=(T)=>`Expected an expression${T?` before '${T}'`:""}`;var q5=(T)=>T.scanner.lookahead===""?T.error(Z5(T)):T.scanner.lookahead==="("?T.shiftedByOne().reduceGroupOpen():T.scanner.lookaheadIsIn(Rw)?B5(T,T.scanner.shift()):T.scanner.lookaheadIsIn(J0)?q5(T.shiftedByOne()):T.scanner.lookahead==="d"?T.scanner.nextLookahead in f5?B5(T,`${T.scanner.shift()}${T.scanner.shift()}`):C5(T):C5(T);class q1 extends P9{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in q1.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...J0};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(T,$)=>T===">"?$[0]==="="?$[1]==="=":$.trimStart()===""||X$($.trimStart()[0],q1.terminatingChars):T==="="?$[0]!=="=":T===","||T==="?"}var jw=(T,$)=>{let J=kE(T,$);if(T.root.hasKind("unit")){if(typeof T.root.unit==="number"){T.reduceLeftBound(T.root.unit,J),T.unsetRoot();return}if(T.root.unit instanceof Date){let W=`d'${T.root.description??T.root.unit.toISOString()}'`;T.unsetRoot(),T.reduceLeftBound(W,J);return}}return yE(T,J)},xw={"<":1,">":1,"=":1},kE=(T,$)=>T.scanner.lookaheadIs("=")?`${$}${T.scanner.shift()}`:$;var Iw=(T,$,J,W)=>{if(J.extends(q.intrinsic.number)){if(typeof $!=="number")return R(y5(T,$,W));return T==="=="?["min","max"]:T[0]===">"?["min"]:["max"]}if(J.extends(q.intrinsic.lengthBoundable)){if(typeof $!=="number")return R(y5(T,$,W));return T==="=="?["exactLength"]:T[0]===">"?["minLength"]:["maxLength"]}if(J.extends(q.intrinsic.Date))return T==="=="?["after","before"]:T[0]===">"?["after"]:["before"];return R(RQ(J.expression))},qE=(T)=>({rule:Kw(T.limit)?Vw(T.limit):T.limit,exclusive:T.comparator.length===1}),yE=(T,$)=>{let J=T.unsetRoot(),W=T.scanner.location;T.parseOperand();let X=T.unsetRoot(),F=T.scanner.sliceChars(W,T.scanner.location);if(T.root=J,!X.hasKind("unit")||typeof X.unit!=="number"&&!(X.unit instanceof Date))return T.error(y5($,F,"right"));let Y=X.unit,G=$.length===1,H=Iw($,typeof Y==="number"?Y:F,J,"right");for(let z of H)T.constrainRoot(z,$==="=="?{rule:Y}:{rule:Y,exclusive:G});if(!T.branches.leftBound)return;if(!X$($,Nw))return T.error(h4($));let M=Iw(T.branches.leftBound.comparator,T.branches.leftBound.limit,J,"left");T.constrainRoot(M[0],qE(T.branches.leftBound)),T.branches.leftBound=null},y5=(T,$,J)=>`Comparator ${J==="left"?FX[T]:T} must be ${J==="left"?"preceded":"followed"} by a corresponding literal (was ${$})`;var bw=(T)=>{T.scanner.shiftUntilNonWhitespace();let $=T.scanner.shiftUntilNextTerminator();T.root=T.root.brand($)};var vw=(T)=>{let $=T.scanner.shiftUntilNextTerminator(),J=$Q($,{errorOnFail:Pw($)});if(J===0)T.error(Pw(0));T.root=T.root.constrain("divisor",J)},Pw=(T)=>`% operator must be followed by a non-zero integer literal (was ${T})`;var I5=(T)=>{let $=T.scanner.shift();return $===""?T.finalize(""):$==="["?T.scanner.shift()==="]"?T.setRoot(T.root.array()):T.error(IE):$==="|"?T.scanner.lookahead===">"?T.shiftedByOne().pushRootToBranch("|>"):T.pushRootToBranch($):$==="&"?T.pushRootToBranch($):$===")"?T.finalizeGroup():q1.lookaheadIsFinalizing($,T.scanner.unscanned)?T.finalize($):X$($,xw)?jw(T,$):$==="%"?vw(T):$==="#"?bw(T):($ in J0)?I5(T):T.error(m4($))},m4=(T,$="")=>`'${T}' is not allowed here${$&&` (should be ${$})`}`,IE="Missing expected ']'";var hw=(T)=>{let $=T.unsetRoot();T.parseOperand();let J=T.unsetRoot();if(!J.hasKind("unit"))return T.error(jE(J.expression));let W=J.unit instanceof Date?()=>new Date(J.unit):J.unit;return[$,"=",W]},jE=(T)=>`Default value '${T}' must a literal value`;var j5=(T,$)=>{let J=$.$.maybeResolveRoot(T);if(J)return J;if(T.endsWith("[]")){let F=$.$.maybeResolveRoot(T.slice(0,-2));if(F)return F.array()}let W=new YX(new q1(T),$),X=xE(W);if(W.finalizer===">")R(m4(">"));return X},xE=(T)=>{T.parseOperand();let $=D8(T).root;if(!$)return fT(`Root was unexpectedly unset after parsing string '${T.scanner.scanned}'`);if(T.finalizer==="=")$=hw(T);else if(T.finalizer==="?")$=[$,"?"];if(T.scanner.shiftUntilNonWhitespace(),T.scanner.lookahead)R(m4(T.scanner.lookahead));return $},D8=(T)=>{while(T.finalizer===void 0)bE(T);return T},bE=(T)=>T.hasRoot()?T.parseOperator():T.parseOperand();class YX{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(T,$){this.scanner=T,this.ctx=$}error(T){return R(T)}hasRoot(){return this.root!==void 0}setRoot(T){this.root=T}unsetRoot(){let T=this.root;return this.root=void 0,T}constrainRoot(...T){this.root=this.root.constrain(T[0],T[1])}finalize(T){if(this.groups.length)return this.error(v4(")"));this.finalizeBranches(),this.finalizer=T}reduceLeftBound(T,$){let J=FX[$];if(!X$(J,fw))return this.error(h4($));if(this.branches.leftBound)return this.error(kw(this.branches.leftBound.limit,this.branches.leftBound.comparator,T,J));this.branches.leftBound={comparator:J,limit:T}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let T=this.groups.pop();if(!T)return this.error(Cw(this.scanner.unscanned));this.branches=T}addPrefix(T){this.branches.prefixes.push(T)}applyPrefixes(){while(this.branches.prefixes.length){let T=this.branches.prefixes.pop();this.root=T==="keyof"?this.root.keyof():fT(`Unexpected prefix '${T}'`)}}pushRootToBranch(T){this.assertRangeUnset(),this.applyPrefixes();let $=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd($)??$,T==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,T==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return D8(new YX(this.scanner,this.ctx))}parseOperator(){return I5(this)}parseOperand(){return q5(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(Zw(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var PE="An empty string is not a valid generic parameter name",g4=(T,$,J)=>{T.shiftUntilNonWhitespace();let W=T.shiftUntilNextTerminator();if(W===""){if(T.lookahead===""&&$.length)return $;return R(PE)}return T.shiftUntilNonWhitespace(),vE(T,W,$,J)},mw="extends ",vE=(T,$,J,W)=>{if(T.shiftUntilNonWhitespace(),T.unscanned.startsWith(mw))T.jumpForward(mw.length);else{if(T.lookahead===",")T.shift();return J.push($),g4(T,J,W)}let X=D8(new YX(T,W));return J.push([$,X.root]),g4(T,J,W)};class x5 extends hJ{$;constructor(T){super((...$)=>new S8(T)(...$),{bind:T});this.$=T}in(T){return new S8(this.$,T===void 0?void 0:this.$.parse(T))}at(T,$){return new S8(this.$).at(T,$)}case(T,$){return new S8(this.$).case(T,$)}}class S8 extends hJ{$;in;key;branches=[];constructor(T,$){super((J)=>this.caseEntries(Object.entries(J).map(([W,X])=>W==="default"?[W,X]:[this.$.parse(W),X])));this.$=T,this.in=$}at(T,$){if(this.key)R(mE);if(this.branches.length)R(hE);return this.key=T,$?this.match($):this}case(T,$){return this.caseEntry(this.$.parse(T),$)}caseEntry(T,$){let W=(this.key?this.$.parse({[this.key]:T}):T).pipe($);return this.branches.push(W),this}match(T){return this(T)}strings(T){return this.caseEntries(Object.entries(T).map(([$,J])=>$==="default"?[$,J]:[this.$.node("unit",{unit:$}),J]))}caseEntries(T){for(let $=0;$<T.length;$++){let[J,W]=T[$];if(J==="default"){if($!==T.length-1)R("default may only be specified as the last key of a switch definition");return this.default(W)}if(typeof W!=="function")return R(`Value for case "${J}" must be a function (was ${V$(W)})`);this.caseEntry(J,W)}return this}default(T){if(typeof T==="function")this.case(e.unknown,T);let $={branches:this.branches,ordered:!0};if(T==="never"||T==="assert")$.meta={onFail:gw};let J=this.$.node("union",$);if(!this.in)return this.$.finalize(J);let W=this.in.pipe(J);if(T==="never"||T==="assert")W=W.configureReferences({onFail:gw},"self");return this.$.finalize(W)}}var gw=(T)=>T.throw(),hE="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",mE="At most one key matcher may be specified per expression";var p4=(T,$)=>{if(mT(T)){if(T[1]==="=")return[$.$.parseOwnDefinitionFormat(T[0],$),"=",T[2]];if(T[1]==="?")return[$.$.parseOwnDefinitionFormat(T[0],$),"?"]}return u4(T,$)},pw="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",uw="Only required keys may specify default values, e.g. { value: 'number = 0' }";var cw=(T,$)=>{let J,W={},X=n2(T);for(let[Y,G]of X){let H=uE(Y);if(H.kind==="spread"){if(!T1(W))return R(pE);let _=$.$.parseOwnDefinitionFormat(G,$);if(_.equals(e.object))continue;if(!_.hasKind("intersection")||!_.basis?.equals(e.object))return R(cE(_.expression));J=_.structure;continue}if(H.kind==="undeclared"){if(G!=="reject"&&G!=="delete"&&G!=="ignore")R(gE(G));W.undeclared=G;continue}let M=p4(G,$),z=H;if(H.kind==="required"){if(!mT(M))b5(W,"required",{key:H.normalized,value:M},$);else b5(W,"optional",M[1]==="="?{key:H.normalized,value:M[0],default:M[2]}:{key:H.normalized,value:M[0]},$);continue}if(mT(M)){if(M[1]==="?")R(pw);if(M[1]==="=")R(uw)}if(H.kind==="optional"){b5(W,"optional",{key:H.normalized,value:M},$);continue}let A=$.$.parseOwnDefinitionFormat(z.normalized,$),Q=I4(A,M,$.$);if(Q.index)W.index=KT(W.index,Q.index);if(Q.required)W.required=KT(W.required,Q.required)}let F=$.$.node("structure",W);return $.$.parseSchema({domain:"object",structure:J?.merge(F)??F})},b5=(T,$,J,W)=>{T[$]=KT(T[$],W.$.node($,J))},gE=(T)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${YT(T)})`,pE="Spread operator may only be used as the first key in an object",uE=(T)=>typeof T==="symbol"?{kind:"required",normalized:T}:T.at(-1)==="?"?T.at(-2)===a2?{kind:"required",normalized:`${T.slice(0,-2)}?`}:{kind:"optional",normalized:T.slice(0,-1)}:T[0]==="["&&T.at(-1)==="]"?{kind:"index",normalized:T.slice(1,-1)}:T[0]===a2&&T[1]==="["&&T.at(-1)==="]"?{kind:"required",normalized:T.slice(1)}:T==="..."?{kind:"spread"}:T==="+"?{kind:"undeclared"}:{kind:"required",normalized:T==="\\..."?"...":T==="\\+"?"+":T},cE=(T)=>`Spread operand must resolve to an object literal type (was ${T})`;var dw=(T,$)=>eE(T)?tw[T[0]](T,$):aE(T)?iw[T[1]](T,$):null,oE=(T,$)=>$.$.parseOwnDefinitionFormat(T[1],$).keyof(),P5=(T,$)=>{if(T[2]===void 0)return R(k5(T[1],""));let J=$.$.parseOwnDefinitionFormat(T[0],$),W=$.$.parseOwnDefinitionFormat(T[2],$);if(T[1]==="|")return $.$.node("union",{branches:[J,W]});let X=T[1]==="&"?WJ(J,W,$.$):Y8(J,W,$.$);if(X instanceof v)return X.throw();return X},dE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).array(),lE=(T,$)=>{if(typeof T[2]!=="function")return R(lw("=>",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).pipe(T[2])},lw=(T,$)=>`${T===":"?"Narrow":"Morph"} expression requires a function following '${T}' (was ${typeof $})`,nE=(T,$)=>{if(typeof T[2]!=="function")return R(lw(":",T[2]));return $.$.parseOwnDefinitionFormat(T[0],$).constrain("predicate",T[2])},iE=(T,$)=>$.$.parseOwnDefinitionFormat(T[0],$).configureReferences(T[2],"shallow"),nw=(T)=>T,tE=nw({"[]":dE,"?":()=>R(b4)}),rE=nw({"|":P5,"&":P5,":":nE,"=>":lE,"|>":P5,"@":iE,"=":()=>R(P4)}),iw={...tE,...rE},aE=(T)=>iw[T[1]]!==void 0,sE=(T)=>T,tw=sE({keyof:oE,instanceof:(T,$)=>{if(typeof T[1]!=="function")return R(ow(t2(T[1])));let J=T.slice(1).map((W)=>typeof W==="function"?$.$.node("proto",{proto:W}):R(ow(t2(W))));return J.length===1?J[0]:$.$.node("union",{branches:J})},"===":(T,$)=>$.$.units(T.slice(1))}),eE=(T)=>tw[T[0]]!==void 0,ow=(T)=>`Expected a constructor following 'instanceof' operator (was ${T})`;var sw=(T,$)=>{let J=[{}],W=0;while(W<T.length){let X=!1;if(T[W]==="..."&&W<T.length-1)X=!0,W++;let F=p4(T[W],$),[Y,G,H]=!mT(F)?[F]:F;if(W++,X){if(!Y.extends(q.intrinsic.Array))return R(JR(Y.expression));J=J.flatMap((M)=>Y.distribute((z)=>$R(E4(M),z)))}else J=J.map((M)=>{if(G==="?")return ew(M,Y);if(G==="=")return TR(M,Y,H);return v5(M,Y)})}return $.$.parseSchema(J.map((X)=>T1(X)?{proto:Array,exactLength:0}:{proto:Array,sequence:X}))},v5=(T,$)=>{if(T.defaultables||T.optionals)return R(T.variadic?O5:WR);if(T.variadic)T.postfix=KT(T.postfix,$);else T.prefix=KT(T.prefix,$);return T},ew=(T,$)=>{if(T.variadic)return R(TO);return T.optionals=KT(T.optionals,$),T},TR=(T,$,J)=>{if(T.variadic)return R(TO);if(T.optionals)return R(XR);return T.defaultables=KT(T.defaultables,[[$,J]]),T},rw=(T,$)=>{if(T.postfix)R(aw);if(T.variadic){if(!T.variadic.equals($))R(aw)}else T.variadic=$.internal;return T},$R=(T,$)=>{let J=$.select({method:"find",kind:"sequence"});if(!J)return rw(T,q.intrinsic.unknown);if(J.prefix?.forEach((W)=>v5(T,W)),J.optionals?.forEach((W)=>ew(T,W)),J.variadic)rw(T,J.variadic);return J.postfix?.forEach((W)=>v5(T,W)),T},JR=(T)=>`Spread element must be an array (was ${T})`,aw="A tuple may have at most one variadic element",WR="A required element may not follow an optional element",TO="An optional element may not follow a variadic element";var XR="A defaultable element may not follow an optional element without a default";var FR={},u4=(T,$)=>{if(typeof T==="string"){if($.args&&Object.keys($.args).some((W)=>T.includes(W)))return j5(T,$);let J=FR[$.$.name]??={};return J[T]??=j5(T,$)}return e$(T,"object")?YR(T,$):R(h5(V$(T)))},YR=(T,$)=>{let J=i2(T);switch(J){case void 0:if(l(T,"root"))return T;return cw(T,$);case"Array":return GR(T,$);case"RegExp":return $.$.node("intersection",{domain:"string",pattern:T},{prereduced:!0});case"Function":{let W=$0(T)?T():T;if(l(W,"root"))return W;return R(h5("Function"))}default:return R(h5(J??YT(T)))}},GR=(T,$)=>dw(T,$)??sw(T,$),h5=(T)=>`Type definitions must be strings or objects (was ${T})`;class m5 extends hJ{constructor(T){let $=Object.assign({errors:$J,hkt:v$,$:T,raw:T.parse,module:T.constructor.module,scope:T.constructor.scope,define:T.define,match:T.match,generic:T.generic,schema:T.schema,keywords:T.ambient,unit:T.unit,enumerated:T.enumerated,instanceOf:T.instanceOf,valueOf:T.valueOf,or:T.or,and:T.and,merge:T.merge,pipe:T.pipe},T.ambientAttachments);super((...J)=>{if(J.length===1)return T.parse(J[0]);if(J.length===2&&typeof J[0]==="string"&&J[0][0]==="<"&&J[0].at(-1)===">"){let W=J[0].slice(1,-1),X=T.parseGenericParams(W,{});return new F0(X,J[1],T,T,null)}return T.parse(J)},{bind:T,attach:$})}}var GX=q;class c4 extends j4{get ambientAttachments(){if(!GX.typeAttachments)return;return this.cacheGetter("ambientAttachments",MT(GX.typeAttachments,(T,$)=>[T,this.bindReference($)]))}preparseOwnAliasEntry(T,$){let J=T.indexOf("<");if(J===-1){if(l($,"module")||l($,"generic"))return[T,$];let F=this.name==="ark"?T:T==="root"?this.name:`${this.name}.${T}`,Y=this.resolvedConfig.keywords?.[F];if(Y)$=[$,"@",Y];return[T,$]}if(T.at(-1)!==">")R("'>' must be the last character of a generic declaration in a scope");let W=T.slice(0,J),X=T.slice(J+1,-1);return[W,()=>{let F=this.parseGenericParams(X,{alias:W});return DQ(F,$,this)}]}parseGenericParams(T,$){return g4(new q1(T),[],this.createParseContext({...$,def:T,prefix:"generic"}))}normalizeRootScopeValue(T){if($0(T)&&!l(T,"generic"))return T();return T}preparseOwnDefinitionFormat(T,$){return{...$,def:T,prefix:$.alias??"type"}}parseOwnDefinitionFormat(T,$){if(!($.alias&&($.alias in this.aliases))&&!$.args)$.args={this:$.id};let W=u4(T,$);if(mT(W)){if(W[1]==="=")return R(P4);if(W[1]==="?")return R(b4)}return W}unit=(T)=>this.units([T]);valueOf=(T)=>this.units(mA(T));enumerated=(...T)=>this.units(T);instanceOf=(T)=>this.node("proto",{proto:T},{prereduced:!0});or=(...T)=>this.schema(T.map(($)=>this.parse($)));and=(...T)=>T.reduce(($,J)=>$.and(this.parse(J)),this.intrinsic.unknown);merge=(...T)=>T.reduce(($,J)=>$.merge(this.parse(J)),this.intrinsic.object);pipe=(...T)=>this.intrinsic.unknown.pipe(...T);match=new x5(this);declare=()=>({type:this.type});define(T){return T}type=new m5(this);static scope=(T,$={})=>new c4(T,$);static module=(T,$={})=>this.scope(T,$).export()}var g5=Object.assign(c4.scope,{define:(T)=>T}),OT=c4;class $O extends v${description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var HR=NJ(["base",e.object],["props",e.object])((T)=>T.base.merge(T.props),$O),JO=OT.module({Key:e.key,Merge:HR});class WO extends v${}var MR=NJ("element")((T)=>{let $=T.element.exclude(e.Array),J=$.array();return $.rawOr(J).pipe(T0).distribute((W)=>W.assertHasKind("morph").declareOut(J),IT)},WO),XO=OT.module({root:e.Array,readonly:"root",index:e.nonNegativeIntegerString,liftFrom:MR},{name:"Array"});var p5=IT(["string",d0.FileConstructor]),zR=p5.rawOr(p5.array()),FO=IT({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:zR}}),YO=OT.module({root:["instanceof",FormData],value:p5,parsed:FO,parse:IT({in:FormData,morphs:(T)=>{let $={};for(let[J,W]of T)if(J in $){let X=$[J];if(typeof X==="string"||X instanceof d0.FileConstructor)$[J]=[X,W];else X.push(W)}else $[J]=W;return $},declaredOut:FO})},{name:"FormData"});var GO=OT.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var AR={Boolean:1,Number:1,String:1},HO=OT.module({...MT({...Z9,...q9},(T,$)=>(T in AR)?[]:[T,["instanceof",$]]),Array:XO,TypedArray:GO,FormData:YO});var QR=IT({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),wR=IT({domain:"number",divisor:1}),o4=OT.module({root:e.number,integer:wR,epoch:QR,safe:IT({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var iT=(T,$)=>XX("intersection",{domain:"string",pattern:{rule:T.source,flags:T.flags,meta:$}}),MO=iT(s2,"a well-formed integer string"),VO=OT.module({root:MO,parse:IT({in:MO,morphs:(T,$)=>{let J=Number.parseInt(T);return Number.isSafeInteger(J)?J:$.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:e.integer})},{name:"string.integer"}),OR=iT(/^[0-9a-fA-F]+$/,"hex characters only"),UR=OT.module({root:iT(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,"base64-encoded"),url:iT(/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==|%3D%3D)?|[A-Za-z0-9_-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),zO=iT(/^[A-Z].*$/,"capitalized"),_R=OT.module({root:IT({in:"string",morphs:(T)=>T.charAt(0).toUpperCase()+T.slice(1),declaredOut:zO}),preformatted:zO},{name:"string.capitalize"}),DR=(T)=>{let $=T.replace(/[- ]+/g,""),J=0,W,X,F=!1;for(let Y=$.length-1;Y>=0;Y--){if(W=$.substring(Y,Y+1),X=Number.parseInt(W,10),F)if(X*=2,X>=10)J+=X%10+1;else J+=X;else J+=X;F=!F}return!!(J%10===0?$:!1)},SR=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,KR=IT({domain:"string",pattern:{meta:"a credit card number",rule:SR.source},predicate:{meta:"a credit card number",predicate:DR}});var VR=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var ER=(T)=>!Number.isNaN(new Date(T).valueOf()),AO=IT({domain:"string",predicate:{meta:"a parsable date",predicate:ER}}).assertHasKind("intersection"),QO=VO.root.internal.narrow((T,$)=>{let J=Number.parseInt(T),W=o4.epoch(J);if(W instanceof $J)return $.errors.merge(W),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),RR=OT.module({root:QO,parse:IT({in:QO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.epoch"}),wO=iT(VR,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),LR=OT.module({root:wO,parse:IT({in:wO,morphs:(T)=>new Date(T),declaredOut:e.Date})},{name:"string.date.iso"}),BR=OT.module({root:AO,parse:IT({declaredIn:AO,in:"string",morphs:(T,$)=>{let J=new Date(T);if(Number.isNaN(J.valueOf()))return $.error("a parsable date");return J},declaredOut:e.Date}),iso:LR,epoch:RR},{name:"string.date"}),fR=iT(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,"an email address"),OO="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",Y0=`(${OO}[.]){3}${OO}`,NR=new RegExp(`^${Y0}$`),M$="(?:[0-9a-fA-F]{1,4})",CR=new RegExp(`^((?:${M$}:){7}(?:${M$}|:)|(?:${M$}:){6}(?:${Y0}|:${M$}|:)|(?:${M$}:){5}(?::${Y0}|(:${M$}){1,2}|:)|(?:${M$}:){4}(?:(:${M$}){0,1}:${Y0}|(:${M$}){1,3}|:)|(?:${M$}:){3}(?:(:${M$}){0,2}:${Y0}|(:${M$}){1,4}|:)|(?:${M$}:){2}(?:(:${M$}){0,3}:${Y0}|(:${M$}){1,5}|:)|(?:${M$}:){1}(?:(:${M$}){0,4}:${Y0}|(:${M$}){1,6}|:)|(?::((?::${M$}){0,5}:${Y0}|(?::${M$}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),ZR=OT.module({root:["v4 | v6","@","an IP address"],v4:iT(NR,"an IPv4 address"),v6:iT(CR,"an IPv6 address")},{name:"string.ip"}),HX="a JSON string",EO=(T)=>{if(!(T instanceof SyntaxError))throw T;return`must be ${HX} (${T})`},kR=IT({meta:HX,domain:"string",predicate:{meta:HX,predicate:(T,$)=>{try{return JSON.parse(T),!0}catch(J){return $.reject({code:"predicate",expected:HX,problem:EO(J)})}}}}),qR=(T,$)=>{if(T.length===0)return $.error({code:"predicate",expected:HX,actual:"empty"});try{return JSON.parse(T)}catch(J){return $.error({code:"predicate",expected:HX,problem:EO(J)})}},yR=OT.module({root:kR,parse:IT({meta:"safe JSON string parser",in:"string",morphs:qR,declaredOut:e.jsonObject})},{name:"string.json"}),UO=iT(/^[a-z]*$/,"only lowercase letters"),IR=OT.module({root:IT({in:"string",morphs:(T)=>T.toLowerCase(),declaredOut:UO}),preformatted:UO},{name:"string.lower"}),RO=["NFC","NFD","NFKC","NFKD"],K8=MT(RO,(T,$)=>[$,IT({domain:"string",predicate:(J)=>J.normalize($)===J,meta:`${$}-normalized unicode`})]),d4=MT(RO,(T,$)=>[$,IT({in:"string",morphs:(J)=>J.normalize($),declaredOut:K8[$]})]),jR=OT.module({root:d4.NFC,preformatted:K8.NFC},{name:"string.normalize.NFC"}),xR=OT.module({root:d4.NFD,preformatted:K8.NFD},{name:"string.normalize.NFD"}),bR=OT.module({root:d4.NFKC,preformatted:K8.NFKC},{name:"string.normalize.NFKC"}),PR=OT.module({root:d4.NFKD,preformatted:K8.NFKD},{name:"string.normalize.NFKD"}),vR=OT.module({root:"NFC",NFC:jR,NFD:xR,NFKC:bR,NFKD:PR},{name:"string.normalize"}),_O=iT(D4,"a well-formed numeric string"),hR=OT.module({root:_O,parse:IT({in:_O,morphs:(T)=>Number.parseFloat(T),declaredOut:e.number})},{name:"string.numeric"}),mR=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,gR=iT(mR,"a semantic version (see https://semver.org/)"),DO=iT(/^\S.*\S$|^\S?$/,"trimmed"),pR=OT.module({root:IT({in:"string",morphs:(T)=>T.trim(),declaredOut:DO}),preformatted:DO},{name:"string.trim"}),SO=iT(/^[A-Z]*$/,"only uppercase letters"),uR=OT.module({root:IT({in:"string",morphs:(T)=>T.toUpperCase(),declaredOut:SO}),preformatted:SO},{name:"string.upper"}),cR=(T)=>{if(URL.canParse)return URL.canParse(T);try{return new URL(T),!0}catch{return!1}},KO=IT({domain:"string",predicate:{meta:"a URL string",predicate:cR}}),oR=OT.module({root:KO,parse:IT({declaredIn:KO,in:"string",morphs:(T,$)=>{try{return new URL(T)}catch{return $.error("a URL string")}},declaredOut:IT(URL)})},{name:"string.url"}),dR=OT.module({root:["versioned | nil | max","@","a UUID"],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,v1:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv1"),v2:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-2[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv2"),v3:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-3[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv3"),v4:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv4"),v5:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv5"),v6:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-6[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv6"),v7:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv7"),v8:iT(/^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),LO=OT.module({root:e.string,alpha:iT(/^[A-Za-z]*$/,"only letters"),alphanumeric:iT(/^[A-Za-z\d]*$/,"only letters and digits 0-9"),hex:OR,base64:UR,capitalize:_R,creditCard:KR,date:BR,digits:iT(/^\d*$/,"only digits 0-9"),email:fR,integer:VO,ip:ZR,json:yR,lower:IR,normalize:vR,numeric:hR,semver:gR,trim:pR,upper:uR,url:oR,uuid:dR},{name:"string"});var BO=OT.module({bigint:e.bigint,boolean:e.boolean,false:e.false,never:e.never,null:e.null,number:e.number,object:e.object,string:e.string,symbol:e.symbol,true:e.true,unknown:e.unknown,undefined:e.undefined}),fO=OT.module({root:e.unknown,any:e.unknown},{name:"unknown"}),lR=OT.module({root:e.jsonObject,stringify:XX("morph",{in:e.jsonObject,morphs:(T)=>JSON.stringify(T),declaredOut:e.string})},{name:"object.json"}),NO=OT.module({root:e.object,json:lR},{name:"object"});class CO extends v${description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var nR=NJ(["K",e.key],"V")((T)=>({domain:"object",index:{signature:T.K,value:T.V}}),CO);class ZO extends v${description='pick a set of properties from an object like `Pick(User, "name | age")`'}var iR=NJ(["T",e.object],["K",e.key])((T)=>T.T.pick(T.K),ZO);class kO extends v${description='omit a set of properties from an object like `Omit(User, "age")`'}var tR=NJ(["T",e.object],["K",e.key])((T)=>T.T.omit(T.K),kO);class qO extends v${description="make all named properties of an object optional like `Partial(User)`"}var rR=NJ(["T",e.object])((T)=>T.T.partial(),qO);class yO extends v${description="make all named properties of an object required like `Required(User)`"}var aR=NJ(["T",e.object])((T)=>T.T.required(),yO);class IO extends v${description='exclude branches of a union like `Exclude("boolean", "true")`'}var sR=NJ("T","U")((T)=>T.T.exclude(T.U),IO);class jO extends v${description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var eR=NJ("T","U")((T)=>T.T.extract(T.U),jO),xO=OT.module({Exclude:sR,Extract:eR,Omit:tR,Partial:rR,Pick:iR,Record:nR,Required:aR});var G0=g5({...BO,...xO,...HO,...JO,string:LO,number:o4,object:NO,unknown:fO},{prereducedAliases:!0,name:"ark"}),E$=G0.export();Object.assign(GX.ambient,E$);GX.typeAttachments={string:E$.string.root,number:E$.number.root,bigint:E$.bigint,boolean:E$.boolean,symbol:E$.symbol,undefined:E$.undefined,null:E$.null,object:E$.object.root,unknown:E$.unknown.root,false:E$.false,true:E$.true,never:E$.never,arrayIndex:E$.Array.index,Key:E$.Key,Record:E$.Record,Array:E$.Array.root,Date:E$.Date};var y1=Object.assign(G0.type,GX.typeAttachments),TL=G0.match,$L=G0.generic,SXT=G0.schema,JL=G0.define,WL=G0.declare;var XL="__vite_start_time"in globalThis,FL=typeof window!=="undefined",PXT="vitest"in globalThis,I1=y1("string"),bO=y1('"true" | "false" | undefined'),j1=ZA({isServer:!XL&&!FL,server:{CI:y1("string | undefined").pipe(Boolean),POSTGRES_USER:I1,POSTGRES_PASSWORD:I1,POSTGRES_DATABASE:I1,POSTGRES_HOST:I1,POSTGRES_PORT:I1.pipe((T)=>Number.parseInt(T,10)),BACKEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:bO.pipe((T)=>T==="true"),FRONTEND_PORT:I1.pipe((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:I1.pipe.try((T)=>JSON.parse(T),y1("string[]")),OPENAI_API_KEY:y1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:I1,VITE_USE_SELF_SIGNED_CERTIFICATE:bO.pipe((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var c5={};rU(c5,{users:()=>i0,userChanges:()=>GL,untrackedUserColumnNames:()=>YL,twoFactorMethod:()=>gO,trackedUserColumnName:()=>mO,trackableUserColumnNames:()=>hO,role:()=>vO,players:()=>u5,passwordResetAttempts:()=>ML,loginHistory:()=>HL,games:()=>l4,banishedIps:()=>n4});function PO(T){return U`lower(${T})`}var vO=xF("role",["admin","user"]),i0=a1("users",{id:AJ().primaryKey().defaultRandom(),username:b$({length:16}).notNull(),email:b$({length:254}).notNull(),password:b$({length:254}).notNull(),createdAt:PJ({withTimezone:!0}).notNull().defaultNow(),createdIp:b$({length:45}).notNull(),isActive:I2().notNull().default(!1),verifiedAt:PJ({withTimezone:!0}),userRole:vO().default("user")},(T)=>[E9("usernameUniqueIndex").on(PO(T.username)),E9("emailUniqueIndex").on(PO(T.email))]),YL=["id","createdAt","createdIp","isActive","verifiedAt"],hO=["username","email","password","userRole"],mO=xF("trackedUserColumnName",hO),GL=a1("userChanges",{id:AJ().primaryKey().defaultRandom(),userId:AJ().notNull().references(()=>i0.id,{onDelete:"cascade"}),changedAt:PJ({withTimezone:!0}).notNull().defaultNow(),changedIp:b$({length:45}).notNull(),changedColumn:mO().notNull(),oldValue:b$({length:255}),newValue:b$({length:255})}),l4=a1("games",{id:AJ().primaryKey().defaultRandom()}),u5=a1("players",{userId:AJ().notNull().references(()=>i0.id,{onDelete:"cascade"}),gameId:AJ().notNull().references(()=>l4.id,{onDelete:"cascade"}),score:dF().notNull()},(T)=>[iz({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),HL=a1("loginHistory",{id:AJ().primaryKey().defaultRandom(),userId:AJ().references(()=>i0.id,{onDelete:"cascade"}),loginTime:PJ({withTimezone:!0}).notNull().defaultNow(),ipAddress:b$({length:45}).notNull(),userAgent:b$({length:1024}),successful:I2().notNull().default(!1)}),gO=xF("twoFactorMethod",["email","phone"]),ML=a1("passwordResetAttempts",{id:AJ().primaryKey().defaultRandom(),userId:AJ().notNull().references(()=>i0.id,{onDelete:"cascade"}),requestedIp:b$({length:45}).notNull(),requestedAt:PJ({withTimezone:!0}).notNull().defaultNow(),succeededIp:b$({length:45}),succeededAt:PJ({withTimezone:!0}),verificationMethod:gO().notNull()}),n4=a1("banishedIps",{ip:b$({length:45}).primaryKey(),reason:b$({length:2048}).notNull(),banishedAt:PJ({withTimezone:!0}).notNull().defaultNow(),banishedUntil:PJ({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class o5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(zL.resolve(__dirname,"notify_update.sql"));let T=[B$(i0),B$(l4),B$(u5)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",($)=>{let J=$.split(","),W=J[0],X=J[1],F=`${W}("${X}")`;if(this.observers.has(F))this.observers.get(F).next(F)})}constructor(T=!1,$={host:j1.POSTGRES_HOST,port:j1.POSTGRES_PORT,user:j1.POSTGRES_USER,password:j1.POSTGRES_PASSWORD,database:j1.POSTGRES_DATABASE}){this.options=$,this.sql=pW($),this.drizzle=U4(this.sql,{schema:c5,logger:T})}observe(T,$){if(!this.observers.has(T))this.observers.set(T,new wT);this.observers.get(T).subscribe("SINGLETON",$)}}import{resolve as wL}from"path";import{existsSync as d5,mkdirSync as pO,readFileSync as AL,writeFileSync as QL,rmSync as uO,readdirSync as cO,statSync as oO}from"fs";import{resolve as l5}from"path";var dO=class{get initialized(){return d5(this.rootDir)}initialize(){if(!this.initialized)pO(this.rootDir,{recursive:!0})}constructor(T){if(this.rootDir=T.path,T.eagerInit)this.initialize()}getItem(T){let $=l5(this.rootDir,T);if(d5($))return AL($,"utf-8");return null}setItem(T,$){this.initialize();let J=l5(this.rootDir,T);QL(J,$)}removeItem(T){let $=l5(this.rootDir,T);if(d5($))this.initialize(),uO($)}key(T){var $;return($=cO(this.rootDir).sort((X,F)=>{let Y=oO(X);return oO(F).ctimeMs-Y.ctimeMs})[T])!=null?$:null}clear(){uO(this.rootDir,{recursive:!0}),pO(this.rootDir,{recursive:!0})}get length(){return cO(this.rootDir).length}};var n5=new dO({path:wL(process.cwd(),"storage")});import*as i4 from"fs";import*as lO from"readline";function OL(T){let J=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(W,X,F,Y,G)=>{let M={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[F];return`${Y}-${M}-${X}T${G}`});return new Date(J)}async function nO(T,$="/var/log/nginx/access.log",J=new Date){let W=new Map;if(!i4.existsSync($))return T.error(`Log file not found: ${$}`),W;let X=i4.createReadStream($),F=lO.createInterface({input:X,crlfDelay:Number.POSITIVE_INFINITY}),Y=new Date(J.getTime()-3600000);return F.on("line",(G)=>{let H=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,M=G.match(H);if(M?.groups){let z=M.groups.ip,A=M.groups.dateTime,Q=OL(A);if(!Number.isNaN(Q.getTime())){if(Q>=Y&&Q<=J){let _=W.get(z);if(!_)_=[],W.set(z,_);_.push(G)}}else T.error(`Failed to parse date: ${A}`)}}),new Promise((G,H)=>{F.on("error",(M)=>{H(M)}),F.on("close",()=>{G(W)})})}function iO(T){return T.toJsonSchema()}var UL=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
133
133
  `);function tO(T){return UL+T.join(`
134
134
 
135
135
  `)}var rO={schema:y1([{shouldBanIp:"false"},"|",{shouldBanIp:"true",veryConciseReason:"string"}]),toJsonSchema:iO,fallback:{shouldBanIp:!1}};var DL=[".env","php"];async function aO({generator:T,logFilePath:$,logger:J,now:W=new Date}){let X=T.usdBudget,F=new o5({logQuery(y,V){J.info("\uD83D\uDCDD query",y,V)}}),Y=await nO(J,$,W),G=[],H=T.from(rO),M=0,z=0;for(let[y,V]of Y){J.info(`\uD83D\uDD0D ruling on ${y}. logs:`),J.info(V.map((C)=>` ${C}`).join(`