tempest.games 0.2.29 → 0.2.30

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.
@@ -58,7 +58,7 @@ ${V.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.mol
58
58
  ${L.trace}`:`No previous disposal trace for ${G} was found.`),X}let J=z0(Z),Q=W.molecules.get(J);if(!Q){let L=Y.disposalTraces.buffer.find((V)=>V?.key===J);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${J} in store "${Y.config.name}".`,L?`
59
59
  ${J} was most recently disposed
60
60
  ${L.trace}`:`No previous disposal trace for ${J} was found.`),X}let $=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:H.stringKey}).filter(([,{source:L}])=>L!==G).map(([L])=>G1(L));if(_)W.moleculeGraph.delete(G);W.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:H.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:H.key,from:$,to:[Q.key]};if(o0(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(z);return X}function uF(Y,Z,X){switch(Z){case"newValue":{u7(Y,X);break}case"oldValue":{E8(X,Y.token);break}}}function dF(Y,Z,X){switch(Z){case"newValue":{E8(X,Y.token);break}case"oldValue":{if(u7(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}}function u7(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)H0(Z,_,G1(X.subKey))}}function cF(Y,Z,X){switch(Z){case"newValue":D8(X,Y.provenance,Y.key);break;case"oldValue":V8(X,Y.key);break}}function lF(Y,Z,X){switch(Z){case"newValue":V8(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(G1);D8(X,_,Y.key);for(let[G,W]of Y.values){let H=X.families.get(G);if(H){H0(X,H,Y.key);let J=`${G}(${z0(Y.key)})`;X.valueMap.set(J,W)}}}break}}function iF(Y,Z,X){switch(Z){case"newValue":{let _=Y.to.length===1?Y.to[0]:Y.to;H6(X,_,Y.key,"exclusive")}break;case"oldValue":{let _=Y.from.length===1?Y.from[0]:Y.from;H6(X,_,Y.key,"exclusive")}break}}function d7(Y,Z,X){let _=Y==="newValue"?Z.updates:[...Z.updates].reverse();for(let G of _)switch(G.type){case"atom_update":case"selector_update":pF(Y,G,X);break;case"state_creation":uF(G,Y,X);break;case"state_disposal":dF(G,Y,X);break;case"molecule_creation":cF(G,Y,X);break;case"molecule_disposal":lF(G,Y,X);break;case"molecule_transfer":iF(G,Y,X);break;case"transaction_update":d7(Y,G,X);break}}function c7(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function oF(Y,Z){return Y.transactionMeta.epoch.get(Z)}function nF(Y,Z){if(!R4(Y))return;let _=c7(Y,Z);if(_===void 0)return;return oF(Y,_)}function rF(Y,Z,X){if(!R4(Y))return;let G=c7(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var sF=(Y,Z)=>{let X=i(Z),{parent:_}=X;if(_===null||!o0(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{updates:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.key,`Applying transaction with ${G.length} updates:`,G),d7("newValue",X.transactionMeta.update,_),R4(_))rF(_,X.transactionMeta.update.key,X.transactionMeta.update.epoch),h0(Z,{key:X.transactionMeta.update.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.key,"Finished applying transaction.");else if(o0(_))_.transactionMeta.update.updates.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function aF(Y){return{store:Y}}function k1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=H0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let W=X.family.subKey,H=Y.disposalTraces.buffer.find((J)=>J?.key===W);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,H?`This state was previously disposed:
61
- ${H.trace}`:"No previous disposal trace was found."),_.type){case"atom_family":case"mutable_atom_family":return Y.defaults.get(_.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(_.key))return Y.defaults.get(X.family.key);let J=h0(Y,_).default(W);return Y.defaults.set(_.key,J),J}}}return VY(Y,h0(Y,X))}var i1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},tF=(Y,Z,X,_)=>{let G=i(Y),W={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new i1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new i1(G.families),joins:new i1(G.joins),operation:{open:!1},readonlySelectors:new i1(G.readonlySelectors),timelines:new i1(G.timelines),timelineTopics:new W1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new i1(G.transactions),selectorAtoms:new W1(G.selectorAtoms.toJSON()),selectorGraph:new W1(G.selectorGraph.toJSON(),{makeContentKey:(...$)=>$.sort().join(":")}),writableSelectors:new i1(G.writableSelectors),valueMap:new i1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new i1(G.molecules),moleculeGraph:new W1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new W1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new W1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new i1(G.miscResources)},H=nF(Y,Z),J={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:H===void 0?NaN:H+1,updates:[],params:X,output:void 0},toolkit:{get:(...$)=>k1(Q,...$),set:(...$)=>{R1(Q,...$)},reset:(...$)=>{L8(Q,...$)},run:($,z=N7())=>j5(Q,$,z),find:(...$)=>H0(Y,...$),json:($)=>b4(Q,$),dispose:(...$)=>{E8(Q,...$)},env:()=>aF(Q)}},Q=Object.assign(W,{transactionMeta:J});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function S5(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(J,Q)=>{let $=tF(Y,X,J,Q);try{let z=i(Y),{toolkit:O}=$.transactionMeta,L=Z.do(O,...J);return sF(L,z),L}catch(z){throw jF(W),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",z),z}},install:(J)=>S5(J,Z),subject:new J0},W=i(Y);W.transactions.set(X,G);let H=W4(G);if(!_)Y.on.transactionCreation.next(H);return H}var C7=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new W1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new W1({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new W1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new W1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new TF(100);molecules=new Map;moleculeJoins=new W1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new W1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new W1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new J0,atomDisposal:new J0,selectorCreation:new J0,selectorDisposal:new J0,timelineCreation:new J0,transactionCreation:new J0,transactionApplying:new KF(null),operationClose:new J0,moleculeCreation:new J0,moleculeDisposal:new J0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new w7("warn",(Y,Z,X)=>!M8(X))];logger={error:(...Y)=>{for(let Z of this.loggers)Z.error(...Y)},info:(...Y)=>{for(let Z of this.loggers)Z.info(...Y)},warn:(...Y)=>{for(let Z of this.loggers)Z.warn(...Y)}};constructor(Y,Z=null){if(this.config={...Z?.config,...Y},Z!==null){if(this.valueMap=new Map(Z?.valueMap),this.operation={...Z?.operation},R4(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new W1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=b4(Z,_),W=o5(_);X.add(G.key),X.add(W.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},x0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new C7({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function h0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new k5(Z,Y)}var eF=(Y,Z)=>{let X=i(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)};var v7=(Y,Z)=>{let X=i(Y);return k7(Z,Y).map((G)=>{return G.subject.subscribe(`${Z.type}:${Z.key}`,(W)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",G.key,"went",W.oldValue,"->",W.newValue);let H=eF(X,Z),J=VY(X,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",H,"->",J),Z.subject.next({newValue:J,oldValue:H})})})};function $6(Y,Z,X,_){function G(O){if(Y.operation.open){let L=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{L(),_(O)})}else _(O)}let W=h0(Y,Z);Y.logger.info("\uD83D\uDC40",W.type,W.key,`Adding subscription "${X}"`);let H=W.type==="writable_pure_selector"||W.type==="readonly_pure_selector",J=null,Q=G;if(H)J=v7(Y,W),Q=(O)=>{if(J)J.length=0,J.push(...v7(Y,W));G(O)};let $=W.subject.subscribe(X,Q);return()=>{if(Y.logger.info("\uD83D\uDE48",W.type,W.key,`Removing subscription "${X}"`),$(),J)for(let O of J)O()}}var YU=(Y,Z,X,_)=>{let G=h0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let W=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),W()}};var c5=class{initializeState(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=k4(Z,{key:X,default:null},_);if(Z.parent?.valueMap.has(X)){let W=Z.parent.valueMap.get(X);Z.valueMap.set(X,W)}return G}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`,G=k1(X,Y);this.unsubscribeFromInnerValue=G.subscribe(_,(W)=>{R1(X,Z,W)}),this.unsubscribeFromState=$6(X,Y,_,(W)=>{if(W.newValue!==W.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=W.newValue.subscribe(_,(H)=>{R1(X,Z,H)})})}updateCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;$6(X,Z,_,({newValue:G,oldValue:W})=>{let H=X.timelineTopics.getRelatedKey(Z.key);if(H){if(X.timelines.get(H)?.timeTraveling){let $=YU(X,{key:H,type:"timeline"},_,(z)=>{$(),R1(X,Y,(O)=>{if(z==="redo"&&G)O.do(G);else if(z==="undo"&&W)O.undo(W);return O})});return}}let J=X.on.operationClose.subscribe(_,()=>{J();let Q=k1(X,Y),$=G===null?-1:Q.getUpdateNumber(G),z=$-Q.cacheUpdateNumber;if(G&&z===1)R1(X,Y,(O)=>(O.do(G),O));else X.logger.info("\u274C","mutable_atom",Y.key,`could not be updated. Expected update number ${Q.cacheUpdateNumber+1}, but got ${$}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(Y,Z){this.mutableState=Y;let X=i(Z);this.latestUpdateState=this.initializeState(Y,X),this.observeCore(Y,this.latestUpdateState,X),this.updateCore(Y,this.latestUpdateState,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function l5(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=i(Y),{key:G,default:W}=Z,H=_.atoms.get(G),J="mutable_atom";if(H&&H.type===J)return Y.logger.error("\u274C",J,G,"Tried to create atom, but it already exists in the store."),W4(H);let Q=new J0,$={...Z,type:J,install:(L)=>{return L.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${L.config.name}"`),l5(L,Z,X)},subject:Q};if(X)$.family=X;let z=W();_.atoms.set($.key,$),o1(_,G,z,Q);let O=W4($);if(Z.effects){let L=0,V=[];for(let N of Z.effects){let A=N({resetSelf:()=>{L8(Y,O)},setSelf:(f)=>{R1(Y,O,f)},onSet:(f)=>$6(Y,O,`effect[${L}]`,f)});if(A)V.push(A);++L}$.cleanup=()=>{for(let N of V)N()}}if(new c5(O,Y),!X)V7(O,Z,Y);return O}var ZU=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(Y,Z){let X=z6(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=h0(Z,X),this.mutableAtoms=Y,this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,(_)=>{let{type:G,token:W}=_;if(W.family){let H=G1(W.family.subKey);switch(G){case"state_creation":this.trackers.set(H,new c5(W,Z));break;case"state_disposal":{let J=this.trackers.get(H);if(J)J[Symbol.dispose](),this.trackers.delete(H)}break}}})}};function i5(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${f4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new J0,J=Object.assign((Q)=>{let $=z0(Q),z={key:Z.key,subKey:$},O=`${Z.key}(${$})`,L=i(Y),V={key:O,default:()=>Z.default(Q),toJson:Z.toJson,fromJson:Z.fromJson,mutable:!0};if(Z.effects)V.effects=Z.effects(Q);let N=l5(L,V,z);return W.next({type:"state_creation",token:N}),N},_,{subject:W,install:(Q)=>i5(Q,Z),toJson:Z.toJson,fromJson:Z.fromJson,internalRoles:X});return Y.families.set(Z.key,J),M7(Y,J,Z),new ZU(J,Y),_}var x7=(Y,Z)=>{let X=i(Z),_=`${Y.key}:JSON`;return X.families.get(_)},b4=(Y,Z)=>{if(Z.family){let _=i(Y),W={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},H=h0(_,W),J=JSON.parse(Z.family.subKey);return H0(Y,H,J)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var o5=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function XU(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y}function b5(Y,Z,X){let _=X.valueMap.get(Z.key),G=Y.valueMap.get(Z.key);if(_!==G)return G;if(_===void 0)return Z.default();X.logger.info("\uD83D\uDCC3","atom",Z.key,"copying");let W=Z.toJson(_),H=Z.fromJson(W);return Y.valueMap.set(Z.key,H),new c5(Z,X),H}function o1(Y,Z,X,_){let G=Y.valueMap.get(Z);if(G instanceof x5){let W=G;if(X instanceof Promise)return W;return Y.valueMap.set(Z,X),X}if(X instanceof Promise){let W=new x5(X);return Y.valueMap.set(Z,W),W.then((H)=>{if(Y.valueMap.get(Z)===W){o1(Y,Z,H,_);let Q=Y.atoms.get(Z);if(Q)LY(Y,Q),h5(Y,Q),DY(Y);else{let $=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if($)LY(Y,$),SF(Y,$),DY(Y)}_.next({newValue:H,oldValue:W})}}).catch((H)=>{Y.logger.error("\uD83D\uDCA5","state",Z,"rejected:",H)}),W}return Y.valueMap.set(Z,X),X}var _U=(Y,Z)=>{let X=Z.valueMap.get(Y.key);if(Y.type==="mutable_atom"&&o0(Z)){let{parent:_}=Z;X=b5(Z,Y,_)}return X},l7=(Y,Z)=>{let X=Z.valueMap.get(Y);if(X instanceof x5){let _=X,G=Z.writableSelectors.get(Y)??Z.readonlySelectors.get(Y);if(G)_.use(G.get());return}if(Z.operation.open)Z.operation.prev.set(Y,X);Z.valueMap.delete(Y),Z.logger.info("\uD83D\uDDD1","state",Y,"evicted")};function k4(Y,Z,X){let{key:G,default:W}=Z;Y.logger.info("\uD83D\uDD28","atom",G,`creating in store "${Y.config.name}"`);let H=i(Y),J=H.atoms.get(G);if(J&&J.type==="atom")return Y.logger.error("\u274C","atom",G,"Tried to create atom, but it already exists in the store."),W4(J);let Q=new J0,$={...Z,type:"atom",install:(L)=>{return L.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${L.config.name}"`),k4(L,Z,X)},subject:Q};if(X)$.family=X;let z=W;if(W instanceof Function)z=W();H.atoms.set(G,$),o1(H,G,z,Q);let O=W4($);if(Z.effects){let L=0,V=[];for(let N of Z.effects){let A=N({resetSelf:()=>{L8(Y,O)},setSelf:(f)=>{R1(Y,O,f)},onSet:(f)=>$6(Y,O,`effect[${L}]`,f)});if(A)V.push(A);++L}$.cleanup=()=>{for(let N of V)N()}}return O}function q7(Y,Z){if("mutable"in Z){let G=l5(Y,Z,void 0);return Y.on.atomCreation.next(G),G}let _=k4(Y,Z,void 0);return Y.on.atomCreation.next(_),_}function i7(Y,Z){let X=i(Y),{key:_,family:G}=Z,W=h0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{W.cleanup?.();let H=Y.valueMap.get(W.key),J=h0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:H};J.subject.next(Q);let $=o0(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let z=o5(Z);i7(Y,z),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),$&&X.transactionMeta.phase==="building"){let z=X.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([V])=>V===W.family?.key)))X.transactionMeta.update.updates.push(Q)}else Y.on.atomDisposal.next(Z)}}var v5=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=x0.STORE){this.store=X,this.realm=new R7(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...R)=>k1(X,...R),set:(...R)=>{R1(X,...R)},find:(...R)=>H0(X,...R),json:(R)=>b4(X,R)};let _=Y.between[0],G=Y.between[1],W=i5(X,{key:`${Y.key}/relatedKeys`,default:()=>new L1,mutable:!0,fromJson:(R)=>L1.fromJSON(R),toJson:(R)=>R.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:W};let H=({get:R},I)=>R(W,I),J=({set:R},I,K)=>{if(!this.store.molecules.has(z0(I)))this.realm.allocate(Y.key,I);R(W,I,(q)=>q.add(K)),R(W,K,(q)=>q.add(I))},Q=({set:R},I,K)=>{R(W,I,(q)=>{return q.delete(K),q}),R(W,K,(q)=>{return q.delete(I),q})},$=(R,I,K)=>{let{find:q,get:p,set:s}=R,T=q(W,I),t=p(T);for(let m of t){if(K.includes(m))continue;s(W,m,(U0)=>{return U0.delete(I),U0})}s(T,(m)=>{return m.transaction((e)=>{e.clear();for(let U0 of K){let b0=H(R,U0),$1=b0.has(I);if(this.relations.cardinality==="1:n"){let s1=[];for(let C of b0){if(C===I)continue;let u=H(R,C);if(u.delete(U0),u.size===0)s1.push(C)}if(!$1&&b0.size>0)b0.clear();for(let C of s1){let u=[U0,C].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!$1)b0.add(I);e.add(U0)}return!0}),m})},z=(R,I,K)=>{let{set:q}=R;q(W,I,(p)=>{return p.transaction((s)=>{for(let T of K)s.add(T);return!0}),p});for(let p of K)q(W,p,(s)=>{return s.add(I),s});return!0},O=(R,I,K)=>{let q=H(R,I);return K?q.has(K):q.size>0},L={getRelatedKeys:(R)=>H(this.toolkit,R),addRelation:(R,I)=>{this.store.moleculeJoins.set(R,Y.key),this.store.moleculeJoins.set(I,Y.key),J(this.toolkit,R,I)},deleteRelation:(R,I)=>{Q(this.toolkit,R,I)},replaceRelationsSafely:(R,I)=>{$(this.toolkit,R,I)},replaceRelationsUnsafely:(R,I)=>{z(this.toolkit,R,I)},has:(R,I)=>O(this.toolkit,R,I)},V,N;if(Z){N=z6(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let R=({get:q},p)=>q(N,p),I=({set:q},p,s)=>{q(N,p,s)};V=Object.assign(L,{getContent:(q)=>{return R(this.toolkit,q)},setContent:(q,p)=>{I(this.toolkit,q,p)},deleteContent:(q)=>{this.realm.deallocate(q)}})}else V=L;let A=new W1(Y,{externalStore:V,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...R)=>{let[I,K]=R,q=R.sort(),p=`${q[0]}:${q[1]}`,s=X.molecules.get(z0(I)),T=X.molecules.get(z0(K));if(!s)this.realm.allocate(Y.key,I);if(!T)this.realm.allocate(Y.key,K);return this.realm.allocate(I,p,"all"),this.realm.claim(K,p),this.store.moleculeJoins.set(p,Y.key),p}}),f=()=>h4(X,{key:`${Y.key}/singleRelatedKey`,get:(R)=>({get:I})=>{let K=I(W,R);for(let q of K)return q;return null}},["join","keys"]),b=()=>{return h4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(R)=>({get:I})=>{let K=x7(W,X);return I(K,R).members}},["join","keys"])},k=()=>h4(X,{key:`${Y.key}/singleRelatedEntry`,get:(R)=>({get:I})=>{let K=I(W,R);for(let q of K){let p=A.isAType?.(R)?R:void 0,s=p===void 0?R:void 0;p??=q,s??=q;let T=A.makeContentKey(p,s),t=I(N,T);return[q,t]}return null}},["join","entries"]),g=()=>h4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(R)=>({get:I})=>{let K=x7(W,X);return I(K,R).members.map((p)=>{let s=A.isAType?.(R)?R:void 0,T=s===void 0?R:void 0;s??=p,T??=p;let t=A.makeContentKey(s,T),m=I(N,t);return[p,m]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let R=f(),I=`${_}KeyOf${B0(G)}`,K=`${G}KeyOf${B0(_)}`,q={[I]:R,[K]:R},p;if(Z){let s=k(),T=`${_}EntryOf${B0(G)}`,t=`${G}EntryOf${B0(_)}`,m={[T]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p;break}case"1:n":{let R=f(),I=b(),K=`${_}KeyOf${B0(G)}`,q=`${G}KeysOf${B0(_)}`,p={[K]:R,[q]:I},s;if(Z){let T=k(),t=g(),m=`${_}EntryOf${B0(G)}`,e=`${G}EntriesOf${B0(_)}`,U0={[m]:T,[e]:t};s=Object.assign(p,U0)}else s=p;this.relations=A,this.states=s;break}case"n:n":{let R=b(),I=`${_}KeysOf${B0(G)}`,K=`${G}KeysOf${B0(_)}`,q={[I]:R,[K]:R},p;if(Z){let s=g(),T=`${_}EntriesOf${B0(G)}`,t=`${G}EntriesOf${B0(_)}`,m={[T]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p}}}};function n5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=x0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new v5(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function J6(Y,Z,X){let _=n5(Y,X),G=i(X);if(o0(G)){let{toolkit:W}=G.transactionMeta;_.transact(W,({relations:H})=>{Z(H)})}else Z(_.relations)}function K7(Y,Z,X){let _=n5(Y,X),G;switch(Y.cardinality){case"1:1":{let W=`${Y.a}KeyOf${B0(Y.b)}`,H=`${Y.b}KeyOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntryOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntryOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}break}case"1:n":{let W=`${Y.a}KeyOf${B0(Y.b)}`,H=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntryOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}break}case"n:n":{let W=`${Y.a}KeysOf${B0(Y.b)}`,H=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntriesOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}}}return G}function j7(Y,Z){return n5(Y,Z).core.relatedKeysAtoms}function M8(Y){return Y.startsWith("\uD83D\uDD0D ")}var GU=(Y)=>{return k4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(M8(X))continue;let G=W4(_);if(_.family){let W=Z.get(_.family.key);if(!W||!("familyMembers"in W))W={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,W);W.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(M8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H===void 0||!("familyMembers"in H))H={key:G,familyMembers:new Map},_.set(G,H);H.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H&&"familyMembers"in H){if(H.familyMembers.delete(W),H.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},WU=(Y)=>{return k4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[_,G]of X){if(M8(_))continue;let W=W4(G);if(G.family){let H=Z.get(G.family.key);if(!H||!("familyMembers"in H))H={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,H);H.familyMembers.set(G.family.subKey,W)}else Z.set(_,W)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(M8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H===void 0||!("familyMembers"in H))H={key:G,familyMembers:new Map},_.set(G,H);H.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H&&"familyMembers"in H){if(H.familyMembers.delete(W),H.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var r5=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},n7=new r5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function r7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var s7=new r5({object:r7,array:(Y)=>Array.isArray(Y)}),HU=new r5({...n7.supported,...s7.supported}),AY=(Y)=>{if(Y===void 0)return"undefined";let Z=HU.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var lB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=x0.STORE){this.store=Z,this.atomIndex=GU(this.store),this.selectorIndex=WU(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=K5(this.atomIndex),_=K5(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),W=[..._.values()].filter((Q)=>("familyMembers"in Q)),H=performance.now(),J=[];if(Z.atomFamilies)for(let Q of G){let $=Q.familyMembers.values();for(let z of $){let L=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=H-L;J.push([z,V])}}if(Z.selectorFamilies)for(let Q of W){let $=Q.familyMembers.values();for(let z of $){let L=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=H-L;J.push([z,V])}}return J}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},o7=(Y,Z)=>{let X=(_,G)=>{let H=((Q,$)=>{let z=Z(Q,$);if(z)return z;return null})(_,G);if(H?.jobComplete??H?.pathComplete)return H;let J=Array.isArray(G)?G.map((Q,$)=>[$,Q]):r7(G)?Object.entries(G):[];for(let[Q,$]of J){let z=X([..._,Q],$);if(z?.jobComplete)return z}return{}};X([],Y)};function JU(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function $U(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function QU(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function a7(Y,Z,X){let _="",G=[],W=[],H=[];return o7(Y,(J,Q)=>{let $;for($ of J){let z=Z[$];if(z===void 0)W.push([$,JSON.stringify(Q)]);else{let O=X(Q,z);if(O.summary!=="No Change")H.push([$,O])}}}),o7(Z,(J,Q)=>{let $;for($ of J)if(Y[$]===void 0)G.push([$,JSON.stringify(Q)])}),_=`\uFF5E${H.length} \uFF0B${G.length} \uFF0D${W.length}`,{summary:_,added:G,removed:W,changed:H}}function zU(Y,Z,X){return a7(Y,Z,X)}var FU=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(J,Q)=>this.diff(J,Q))}}let G=AY(Y),W=AY(Z);if(G===W)return{summary:`${G} \u2192 ${W}`};return{summary:`Type change: ${G} \u2192 ${W}`}}},iB=new FU(n7,s7,{number:JU,string:$U,boolean:QU,null:()=>({summary:"No Change"}),object:a7,array:zU});var UU=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}clear(){throw new Error("Cannot clear an InvariantMap")}},tB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new UU;static create(Z,X){let _=new Y(Z),{type:G,globals:W,actions:H,perspectives:J}=X(_),Q={type:G,key:Z,globals:W,actions:H,perspectives:J};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var eB=O8({key:"usersInRoomIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),s5=O8({key:"roomIndex",default:()=>new L1,mutable:!0,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),OU={enteredAtEpoch:0},F6=OY({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},OU),YT=EY({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=A7(F6);return[Z(X,Y)]}});import{spawn as EU}from"child_process";var a5=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},LU=class extends a5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let W=JSON.stringify([_,...G])+"\x03",H=(J)=>{if(J.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",H)};return this.process.stdin.once("error",H),this.process.stdin.write(W),this});if(this.process=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let W=this.unprocessedEvents.shift();this.incompleteData+=W??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let H=G1(this.incompleteData);this.handleEvent(...H);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;H=G1(J),this.handleEvent(...H)}}this.incompleteData=""}catch(H){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(H)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let W=this.unprocessedLogs.shift();this.incompleteLog+=W??"";try{let H=G1(this.incompleteLog);this.handleLog(H);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)H=G1(this.incompleteLog),this.handleLog(H)}catch(H){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(H),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},DU=class extends a5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new J0,this.out=new J0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},t7=class extends a5{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(z0(Y.map((Z)=>Z instanceof L1?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=G1(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let W=G1(G);this.handleEvent(...W)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),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",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new DU(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},e7=G6({key:"roomArguments",default:["echo",["Hello World!"]]}),VU=EY({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(e7,Y),G=Z(_),[W,H]=G,J=await new Promise((Q)=>{let $=EU(W,H,{env:process.env}),z=(O)=>{if(O.toString()==="ALIVE")$.stdout.off("data",z),Q($)};$.stdout.on("data",z)});return new LU(J,Y)}}),zT=W6({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,W)=>{let H=W?[G,W]:[G],J=X(e7,_);Z(J,H),Z(s5,(z)=>z.add(_));let Q=X(VU,_);return Y(Q)}}),FT=W6({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return J6(F6,(W)=>{W.set({room:Z,user:X},G)},Y.env().store),G}}),UT=W6({key:"leaveRoom",do:(Y,Z,X)=>{J6(F6,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),OT=W6({key:"destroyRoom",do:(Y,Z)=>{J6(F6,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(s5,(X)=>(X.delete(Z),X))}});var ET=G6({key:"redactor",default:{occlude:(Y)=>Y}}),LT=G6({key:"unacknowledgedUpdates",default:()=>[]}),DT=G6({key:"sockets",default:null}),VT=O8({key:"socketsIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),MT=O8({key:"usersIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),AT=OY({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:SH,serve:xO}=globalThis.Bun;import{readFileSync as X3}from"fs";import{createServer as RU}from"http";import{createServer as NU}from"https";import{resolve as e5}from"path";function Y3(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function MU(Y,Z){let X={},_=[];for(let G in Y){let W=Y[G]["~standard"].validate(Z[G]);if(Y3(W,`Validation must be synchronous, but ${G} returned a Promise.`),W.issues){_.push(...W.issues.map((H)=>({...H,message:H.message,path:[G,...H.path??[]]})));continue}X[G]=W.value}if(_.length)return{issues:_};return{value:X}}function t5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[k,g]of Object.entries(Z))if(g==="")delete Z[k]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},W=typeof Y.server==="object"?Y.server:{},H=typeof Y.shared==="object"?Y.shared:{},J=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=J?{...W,...H,...G}:{...G,...H},$=Y.createFinalSchema?.(Q,J)["~standard"].validate(Z)??MU(Q,Z);Y3($,"Validation must be synchronous");let z=Y.onValidationError??((k)=>{throw console.error("\u274C Invalid environment variables:",k),new Error("Invalid environment variables")}),O=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if($.issues)return z($.issues);let L=(k)=>{if(!Y.clientPrefix)return!0;return!k.startsWith(Y.clientPrefix)&&!(k in H)},V=(k)=>{return J||!L(k)},N=(k)=>{return k==="__esModule"||k==="$$typeof"},A=(Y.extends??[]).reduce((k,g)=>{return Object.assign(k,g)},{}),f=Object.assign(A,$.value);return new Proxy(f,{get(k,g){if(typeof g!=="string")return;if(N(g))return;if(!V(g))return O(g);return Reflect.get(k,g)}})}var AU="__vite_start_time"in globalThis,wU=typeof window!=="undefined",PT="vitest"in globalThis,H4=E1("string"),Z3=E1('"true" | "false" | undefined'),g1=t5({isServer:!AU&&!wU,server:{CI:E1("string | undefined").pipe(Boolean),POSTGRES_USER:H4,POSTGRES_PASSWORD:H4,POSTGRES_DATABASE:H4,POSTGRES_HOST:H4,POSTGRES_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:Z3.pipe((Y)=>Y==="true"),FRONTEND_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:H4.pipe.try((Y)=>JSON.parse(Y),E1("string[]")),API_KEY_OPENAI:E1("string | undefined"),API_KEY_RESEND:E1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:H4,VITE_DEV_FRONTEND_HOST:E1("string | undefined"),VITE_DEV_HTTPS:Z3.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var _3=e5(import.meta.dirname,"../dev"),wY=g1.VITE_DEV_HTTPS?{cert:X3(e5(_3,"./cert.pem"),"utf-8"),key:X3(e5(_3,"./key.pem"),"utf-8")}:void 0;function kT(Y){if(wY)return NU(wY,Y);return RU({},Y)}import CO from"path";var U=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,U))throw new Error(`Class "${Z.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 X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(U in X&&X[U]===Z[U])return!0;X=Object.getPrototypeOf(X)}return!1}class E0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[U]="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(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class YX{static[U]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var y1=Symbol.for("drizzle:Name");class ZX{static[U]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new G3(Y,this)}}class G3{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[U]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((H)=>H.name),G=X.map((H)=>H.name),W=[this.table[y1],..._,X[0].table[y1],...G];return Y??`${W.join("_")}_fk`}}function RY(Y,...Z){return Y(...Z)}function W3(Y,Z){return`${Y[y1]}_${Z.join("_")}_unique`}function H3(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function J3(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let W=Y[_];if(W===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,W==="\\"){_+=2;continue}if(W==='"'){let[Q,$]=H3(Y,_+1,!0);X.push(Q),_=$;continue}if(W==="}")return[X,_+1];if(W==="{"){let[Q,$]=J3(Y,_+1);X.push(Q),_=$;continue}let[H,J]=H3(Y,_,!1);X.push(H),_=J}return[X,_]}function $3(Y){let[Z]=J3(Y,1);return Z}function XX(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return XX(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class h extends YX{foreignKeyConfigs=[];static[U]="PgColumnBuilder";array(Y){return new z3(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return RY((G,W)=>{let H=new ZX(()=>{let J=G();return{columns:[Y],foreignColumns:[J]}});if(W.onUpdate)H.onUpdate(W.onUpdate);if(W.onDelete)H.onDelete(W.onDelete);return H.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new Q3(Y,this.config)}}class j extends E0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=W3(Y,[Z.name]);super(Y,Z);this.table=Y}static[U]="PgColumn"}class Q3 extends j{static[U]="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(Y){return this.indexConfig.opClass=Y,this}}class U6{static[U]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class z3 extends h{static[U]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new _X(Y,this.config,Z)}}class _X extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[U]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=$3(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:M(this.baseColumn,_X)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return XX(X)}}class F3 extends h{static[U]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new U3(Y,this.config)}}class U3 extends j{static[U]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var NY=Symbol.for("drizzle:isPgEnum");function O3(Y){return!!Y&&typeof Y==="function"&&NY in Y&&Y[NY]===!0}class E3 extends h{static[U]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new L3(Y,this.config)}}class L3 extends j{static[U]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function O6(Y,Z){return Array.isArray(Z)?IU(Y,[...Z],void 0):BU(Y,Z,void 0)}function IU(Y,Z,X){let _=Object.assign((G)=>new E3(G??"",_),{enumName:Y,enumValues:Z,schema:X,[NY]:!0});return _}function BU(Y,Z,X){let _=Object.assign((G)=>new F3(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[NY]:!0});return _}class P0{static[U]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class E6 extends P0{static[U]="WithSubquery"}var D3="0.44.4";var GX,WX,L0={startActiveSpan(Y,Z){if(!GX)return Z();if(!WX)WX=GX.trace.getTracer("drizzle-orm",D3);return RY((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch(W){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:W instanceof Error?W.message:"Unknown error"}),W}finally{G.end()}}),GX,WX)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var g4=Symbol.for("drizzle:Schema"),IY=Symbol.for("drizzle:Columns"),V3=Symbol.for("drizzle:ExtraConfigColumns"),HX=Symbol.for("drizzle:OriginalName"),JX=Symbol.for("drizzle:BaseName"),L6=Symbol.for("drizzle:IsAlias"),M3=Symbol.for("drizzle:ExtraConfigBuilder"),TU=Symbol.for("drizzle:IsDrizzleTable");class P{static[U]="Table";static Symbol={Name:y1,Schema:g4,OriginalName:HX,Columns:IY,ExtraConfigColumns:V3,BaseName:JX,IsAlias:L6,ExtraConfigBuilder:M3};[y1];[HX];[g4];[IY];[V3];[JX];[L6]=!1;[TU]=!0;[M3]=void 0;constructor(Y,Z,X){this[y1]=this[HX]=Y,this[g4]=Z,this[JX]=X}}function c0(Y){return Y[y1]}function y4(Y){return`${Y[g4]??"public"}.${Y[y1]}`}function $X(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function CU(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class u0{static[U]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new x([this])}}class x{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[U]="SQL";decoder=w3;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return L0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:W,prepareTyping:H,inlineParams:J,paramStartIndex:Q}=X;return CU(Y.map(($)=>{if(M($,u0))return{sql:$.value.join(""),params:[]};if(M($,BY))return{sql:G($.value),params:[]};if($===void 0)return{sql:"",params:[]};if(Array.isArray($)){let z=[new u0("(")];for(let[O,L]of $.entries())if(z.push(L),O<$.length-1)z.push(new u0(", "));return z.push(new u0(")")),this.buildQueryFromSourceParams(z,X)}if(M($,x))return this.buildQueryFromSourceParams($.queryChunks,{...X,inlineParams:J||$.shouldInlineParams});if(M($,P)){let z=$[P.Symbol.Schema],O=$[P.Symbol.Name];return{sql:z===void 0||$[L6]?G(O):G(z)+"."+G(O),params:[]}}if(M($,E0)){let z=_.getColumnCasing($);if(Z.invokeSource==="indexes")return{sql:G(z),params:[]};let O=$.table[P.Symbol.Schema];return{sql:$.table[L6]||O===void 0?G($.table[P.Symbol.Name])+"."+G(z):G(O)+"."+G($.table[P.Symbol.Name])+"."+G(z),params:[]}}if(M($,D1)){let z=$[A0].schema,O=$[A0].name;return{sql:z===void 0||$[A0].isAlias?G(O):G(z)+"."+G(O),params:[]}}if(M($,N1)){if(M($.value,N4))return{sql:W(Q.value++,$),params:[$],typings:["none"]};let z=$.value===null?null:$.encoder.mapToDriverValue($.value);if(M(z,x))return this.buildQueryFromSourceParams([z],X);if(J)return{sql:this.mapInlineParam(z,X),params:[]};let O=["none"];if(H)O=[H($.encoder)];return{sql:W(Q.value++,z),params:[z],typings:O}}if(M($,N4))return{sql:W(Q.value++,$),params:[$],typings:["none"]};if(M($,x.Aliased)&&$.fieldAlias!==void 0)return{sql:G($.fieldAlias),params:[]};if(M($,P0)){if($._.isWith)return{sql:G($._.alias),params:[]};return this.buildQueryFromSourceParams([new u0("("),$._.sql,new u0(") "),new BY($._.alias)],X)}if(O3($)){if($.schema)return{sql:G($.schema)+"."+G($.enumName),params:[]};return{sql:G($.enumName),params:[]}}if($X($)){if($.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([$.getSQL()],X);return this.buildQueryFromSourceParams([new u0("("),$.getSQL(),new u0(")")],X)}if(J)return{sql:this.mapInlineParam($,X),params:[]};return{sql:W(Q.value++,$),params:[$],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new x.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class BY{constructor(Y){this.value=Y}static[U]="Name";brand;getSQL(){return new x([this])}}function A3(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var w3={mapFromDriverValue:(Y)=>Y},R3={mapToDriverValue:(Y)=>Y},CC={...w3,...R3};class N1{constructor(Y,Z=R3){this.value=Y,this.encoder=Z}static[U]="Param";brand;getSQL(){return new x([this])}}function E(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new u0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new u0(Y[_+1]));return new x(X)}((Y)=>{function Z(){return new x([])}Y.empty=Z;function X(Q){return new x(Q)}Y.fromList=X;function _(Q){return new x([new u0(Q)])}Y.raw=_;function G(Q,$){let z=[];for(let[O,L]of Q.entries()){if(O>0&&$!==void 0)z.push($);z.push(L)}return new x(z)}Y.join=G;function W(Q){return new BY(Q)}Y.identifier=W;function H(Q){return new N4(Q)}Y.placeholder=H;function J(Q,$){return new N1(Q,$)}Y.param=J})(E||(E={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[U]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(x||(x={}));class N4{constructor(Y){this.name=Y}static[U]="Placeholder";getSQL(){return new x([this])}}function QX(Y,Z){return Y.map((X)=>{if(M(X,N4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,N1)&&M(X.value,N4)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var qU=Symbol.for("drizzle:IsDrizzleView");class D1{static[U]="View";[A0];[qU]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[A0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new x([this])}}E0.prototype.getSQL=function(){return new x([this])};P.prototype.getSQL=function(){return new x([this])};P0.prototype.getSQL=function(){return new x([this])};class A8{constructor(Y){this.table=Y}static[U]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class D6{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[U]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let _=Y[P.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map((W)=>{G[W]=new Proxy(_[W],new A8(new Proxy(Y,this)))}),G}let X=Y[Z];if(M(X,E0))return new Proxy(X,new A8(new Proxy(Y,this)));return X}}function TY(Y,Z){return new Proxy(Y,new D6(Z,!1))}function n1(Y,Z){return new Proxy(Y,new A8(new Proxy(Y.table,new D6(Z,!1))))}function zX(Y,Z){return new x.Aliased(V6(Y.sql,Z),Y.fieldAlias)}function V6(Y,Z){return E.join(Y.queryChunks.map((X)=>{if(M(X,E0))return n1(X,Z);if(M(X,x))return V6(X,Z);if(M(X,x.Aliased))return zX(X,Z);return X}))}class CY extends Error{static[U]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class J4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
61
+ ${H.trace}`:"No previous disposal trace was found."),_.type){case"atom_family":case"mutable_atom_family":return Y.defaults.get(_.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(_.key))return Y.defaults.get(X.family.key);let J=h0(Y,_).default(W);return Y.defaults.set(_.key,J),J}}}return VY(Y,h0(Y,X))}var i1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},tF=(Y,Z,X,_)=>{let G=i(Y),W={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new i1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new i1(G.families),joins:new i1(G.joins),operation:{open:!1},readonlySelectors:new i1(G.readonlySelectors),timelines:new i1(G.timelines),timelineTopics:new W1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new i1(G.transactions),selectorAtoms:new W1(G.selectorAtoms.toJSON()),selectorGraph:new W1(G.selectorGraph.toJSON(),{makeContentKey:(...$)=>$.sort().join(":")}),writableSelectors:new i1(G.writableSelectors),valueMap:new i1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new i1(G.molecules),moleculeGraph:new W1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new W1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new W1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new i1(G.miscResources)},H=nF(Y,Z),J={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:H===void 0?NaN:H+1,updates:[],params:X,output:void 0},toolkit:{get:(...$)=>k1(Q,...$),set:(...$)=>{R1(Q,...$)},reset:(...$)=>{L8(Q,...$)},run:($,z=N7())=>j5(Q,$,z),find:(...$)=>H0(Y,...$),json:($)=>b4(Q,$),dispose:(...$)=>{E8(Q,...$)},env:()=>aF(Q)}},Q=Object.assign(W,{transactionMeta:J});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function S5(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(J,Q)=>{let $=tF(Y,X,J,Q);try{let z=i(Y),{toolkit:O}=$.transactionMeta,L=Z.do(O,...J);return sF(L,z),L}catch(z){throw jF(W),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",z),z}},install:(J)=>S5(J,Z),subject:new J0},W=i(Y);W.transactions.set(X,G);let H=W4(G);if(!_)Y.on.transactionCreation.next(H);return H}var C7=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new W1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new W1({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new W1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new W1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new TF(100);molecules=new Map;moleculeJoins=new W1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new W1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new W1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new J0,atomDisposal:new J0,selectorCreation:new J0,selectorDisposal:new J0,timelineCreation:new J0,transactionCreation:new J0,transactionApplying:new KF(null),operationClose:new J0,moleculeCreation:new J0,moleculeDisposal:new J0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new w7("warn",(Y,Z,X)=>!M8(X))];logger={error:(...Y)=>{for(let Z of this.loggers)Z.error(...Y)},info:(...Y)=>{for(let Z of this.loggers)Z.info(...Y)},warn:(...Y)=>{for(let Z of this.loggers)Z.warn(...Y)}};constructor(Y,Z=null){if(this.config={...Z?.config,...Y},Z!==null){if(this.valueMap=new Map(Z?.valueMap),this.operation={...Z?.operation},R4(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new W1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=b4(Z,_),W=o5(_);X.add(G.key),X.add(W.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},x0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new C7({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function h0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new k5(Z,Y)}var eF=(Y,Z)=>{let X=i(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)};var v7=(Y,Z)=>{let X=i(Y);return k7(Z,Y).map((G)=>{return G.subject.subscribe(`${Z.type}:${Z.key}`,(W)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",G.key,"went",W.oldValue,"->",W.newValue);let H=eF(X,Z),J=VY(X,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",H,"->",J),Z.subject.next({newValue:J,oldValue:H})})})};function $6(Y,Z,X,_){function G(O){if(Y.operation.open){let L=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{L(),_(O)})}else _(O)}let W=h0(Y,Z);Y.logger.info("\uD83D\uDC40",W.type,W.key,`Adding subscription "${X}"`);let H=W.type==="writable_pure_selector"||W.type==="readonly_pure_selector",J=null,Q=G;if(H)J=v7(Y,W),Q=(O)=>{if(J)J.length=0,J.push(...v7(Y,W));G(O)};let $=W.subject.subscribe(X,Q);return()=>{if(Y.logger.info("\uD83D\uDE48",W.type,W.key,`Removing subscription "${X}"`),$(),J)for(let O of J)O()}}var YU=(Y,Z,X,_)=>{let G=h0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let W=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),W()}};var c5=class{initializeState(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=k4(Z,{key:X,default:null},_);if(Z.parent?.valueMap.has(X)){let W=Z.parent.valueMap.get(X);Z.valueMap.set(X,W)}return G}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`,G=k1(X,Y);this.unsubscribeFromInnerValue=G.subscribe(_,(W)=>{R1(X,Z,W)}),this.unsubscribeFromState=$6(X,Y,_,(W)=>{if(W.newValue!==W.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=W.newValue.subscribe(_,(H)=>{R1(X,Z,H)})})}updateCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;$6(X,Z,_,({newValue:G,oldValue:W})=>{let H=X.timelineTopics.getRelatedKey(Z.key);if(H){if(X.timelines.get(H)?.timeTraveling){let $=YU(X,{key:H,type:"timeline"},_,(z)=>{$(),R1(X,Y,(O)=>{if(z==="redo"&&G)O.do(G);else if(z==="undo"&&W)O.undo(W);return O})});return}}let J=X.on.operationClose.subscribe(_,()=>{J();let Q=k1(X,Y),$=G===null?-1:Q.getUpdateNumber(G),z=$-Q.cacheUpdateNumber;if(G&&z===1)R1(X,Y,(O)=>(O.do(G),O));else X.logger.info("\u274C","mutable_atom",Y.key,`could not be updated. Expected update number ${Q.cacheUpdateNumber+1}, but got ${$}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(Y,Z){this.mutableState=Y;let X=i(Z);this.latestUpdateState=this.initializeState(Y,X),this.observeCore(Y,this.latestUpdateState,X),this.updateCore(Y,this.latestUpdateState,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function l5(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=i(Y),{key:G,default:W}=Z,H=_.atoms.get(G),J="mutable_atom";if(H&&H.type===J)return Y.logger.error("\u274C",J,G,"Tried to create atom, but it already exists in the store."),W4(H);let Q=new J0,$={...Z,type:J,install:(L)=>{return L.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${L.config.name}"`),l5(L,Z,X)},subject:Q};if(X)$.family=X;let z=W();_.atoms.set($.key,$),o1(_,G,z,Q);let O=W4($);if(Z.effects){let L=0,V=[];for(let N of Z.effects){let A=N({resetSelf:()=>{L8(Y,O)},setSelf:(f)=>{R1(Y,O,f)},onSet:(f)=>$6(Y,O,`effect[${L}]`,f)});if(A)V.push(A);++L}$.cleanup=()=>{for(let N of V)N()}}if(new c5(O,Y),!X)V7(O,Z,Y);return O}var ZU=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(Y,Z){let X=z6(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=h0(Z,X),this.mutableAtoms=Y,this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,(_)=>{let{type:G,token:W}=_;if(W.family){let H=G1(W.family.subKey);switch(G){case"state_creation":this.trackers.set(H,new c5(W,Z));break;case"state_disposal":{let J=this.trackers.get(H);if(J)J[Symbol.dispose](),this.trackers.delete(H)}break}}})}};function i5(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${f4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new J0,J=Object.assign((Q)=>{let $=z0(Q),z={key:Z.key,subKey:$},O=`${Z.key}(${$})`,L=i(Y),V={key:O,default:()=>Z.default(Q),toJson:Z.toJson,fromJson:Z.fromJson,mutable:!0};if(Z.effects)V.effects=Z.effects(Q);let N=l5(L,V,z);return W.next({type:"state_creation",token:N}),N},_,{subject:W,install:(Q)=>i5(Q,Z),toJson:Z.toJson,fromJson:Z.fromJson,internalRoles:X});return Y.families.set(Z.key,J),M7(Y,J,Z),new ZU(J,Y),_}var x7=(Y,Z)=>{let X=i(Z),_=`${Y.key}:JSON`;return X.families.get(_)},b4=(Y,Z)=>{if(Z.family){let _=i(Y),W={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},H=h0(_,W),J=JSON.parse(Z.family.subKey);return H0(Y,H,J)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var o5=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function XU(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y}function b5(Y,Z,X){let _=X.valueMap.get(Z.key),G=Y.valueMap.get(Z.key);if(_!==G)return G;if(_===void 0)return Z.default();X.logger.info("\uD83D\uDCC3","atom",Z.key,"copying");let W=Z.toJson(_),H=Z.fromJson(W);return Y.valueMap.set(Z.key,H),new c5(Z,X),H}function o1(Y,Z,X,_){let G=Y.valueMap.get(Z);if(G instanceof x5){let W=G;if(X instanceof Promise)return W.use(X),W;return Y.valueMap.set(Z,X),X}if(X instanceof Promise){let W=new x5(X);return Y.valueMap.set(Z,W),W.then((H)=>{if(Y.valueMap.get(Z)===W){o1(Y,Z,H,_);let Q=Y.atoms.get(Z);if(Q)LY(Y,Q),h5(Y,Q),DY(Y);else{let $=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if($)LY(Y,$),SF(Y,$),DY(Y)}_.next({newValue:H,oldValue:W})}}).catch((H)=>{Y.logger.error("\uD83D\uDCA5","state",Z,"rejected:",H)}),W}return Y.valueMap.set(Z,X),X}var _U=(Y,Z)=>{let X=Z.valueMap.get(Y.key);if(Y.type==="mutable_atom"&&o0(Z)){let{parent:_}=Z;X=b5(Z,Y,_)}return X},l7=(Y,Z)=>{let X=Z.valueMap.get(Y);if(X instanceof x5){let _=X,G=Z.writableSelectors.get(Y)??Z.readonlySelectors.get(Y);if(G)_.use(G.get());return}if(Z.operation.open)Z.operation.prev.set(Y,X);Z.valueMap.delete(Y),Z.logger.info("\uD83D\uDDD1","state",Y,"evicted")};function k4(Y,Z,X){let{key:G,default:W}=Z;Y.logger.info("\uD83D\uDD28","atom",G,`creating in store "${Y.config.name}"`);let H=i(Y),J=H.atoms.get(G);if(J&&J.type==="atom")return Y.logger.error("\u274C","atom",G,"Tried to create atom, but it already exists in the store."),W4(J);let Q=new J0,$={...Z,type:"atom",install:(L)=>{return L.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${L.config.name}"`),k4(L,Z,X)},subject:Q};if(X)$.family=X;let z=W;if(W instanceof Function)z=W();H.atoms.set(G,$),o1(H,G,z,Q);let O=W4($);if(Z.effects){let L=0,V=[];for(let N of Z.effects){let A=N({resetSelf:()=>{L8(Y,O)},setSelf:(f)=>{R1(Y,O,f)},onSet:(f)=>$6(Y,O,`effect[${L}]`,f)});if(A)V.push(A);++L}$.cleanup=()=>{for(let N of V)N()}}return O}function q7(Y,Z){if("mutable"in Z){let G=l5(Y,Z,void 0);return Y.on.atomCreation.next(G),G}let _=k4(Y,Z,void 0);return Y.on.atomCreation.next(_),_}function i7(Y,Z){let X=i(Y),{key:_,family:G}=Z,W=h0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{W.cleanup?.();let H=Y.valueMap.get(W.key),J=h0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:H};J.subject.next(Q);let $=o0(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let z=o5(Z);i7(Y,z),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),$&&X.transactionMeta.phase==="building"){let z=X.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([V])=>V===W.family?.key)))X.transactionMeta.update.updates.push(Q)}else Y.on.atomDisposal.next(Z)}}var v5=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=x0.STORE){this.store=X,this.realm=new R7(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...R)=>k1(X,...R),set:(...R)=>{R1(X,...R)},find:(...R)=>H0(X,...R),json:(R)=>b4(X,R)};let _=Y.between[0],G=Y.between[1],W=i5(X,{key:`${Y.key}/relatedKeys`,default:()=>new L1,mutable:!0,fromJson:(R)=>L1.fromJSON(R),toJson:(R)=>R.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:W};let H=({get:R},I)=>R(W,I),J=({set:R},I,K)=>{if(!this.store.molecules.has(z0(I)))this.realm.allocate(Y.key,I);R(W,I,(q)=>q.add(K)),R(W,K,(q)=>q.add(I))},Q=({set:R},I,K)=>{R(W,I,(q)=>{return q.delete(K),q}),R(W,K,(q)=>{return q.delete(I),q})},$=(R,I,K)=>{let{find:q,get:p,set:s}=R,T=q(W,I),t=p(T);for(let m of t){if(K.includes(m))continue;s(W,m,(U0)=>{return U0.delete(I),U0})}s(T,(m)=>{return m.transaction((e)=>{e.clear();for(let U0 of K){let b0=H(R,U0),$1=b0.has(I);if(this.relations.cardinality==="1:n"){let s1=[];for(let C of b0){if(C===I)continue;let u=H(R,C);if(u.delete(U0),u.size===0)s1.push(C)}if(!$1&&b0.size>0)b0.clear();for(let C of s1){let u=[U0,C].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!$1)b0.add(I);e.add(U0)}return!0}),m})},z=(R,I,K)=>{let{set:q}=R;q(W,I,(p)=>{return p.transaction((s)=>{for(let T of K)s.add(T);return!0}),p});for(let p of K)q(W,p,(s)=>{return s.add(I),s});return!0},O=(R,I,K)=>{let q=H(R,I);return K?q.has(K):q.size>0},L={getRelatedKeys:(R)=>H(this.toolkit,R),addRelation:(R,I)=>{this.store.moleculeJoins.set(R,Y.key),this.store.moleculeJoins.set(I,Y.key),J(this.toolkit,R,I)},deleteRelation:(R,I)=>{Q(this.toolkit,R,I)},replaceRelationsSafely:(R,I)=>{$(this.toolkit,R,I)},replaceRelationsUnsafely:(R,I)=>{z(this.toolkit,R,I)},has:(R,I)=>O(this.toolkit,R,I)},V,N;if(Z){N=z6(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let R=({get:q},p)=>q(N,p),I=({set:q},p,s)=>{q(N,p,s)};V=Object.assign(L,{getContent:(q)=>{return R(this.toolkit,q)},setContent:(q,p)=>{I(this.toolkit,q,p)},deleteContent:(q)=>{this.realm.deallocate(q)}})}else V=L;let A=new W1(Y,{externalStore:V,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...R)=>{let[I,K]=R,q=R.sort(),p=`${q[0]}:${q[1]}`,s=X.molecules.get(z0(I)),T=X.molecules.get(z0(K));if(!s)this.realm.allocate(Y.key,I);if(!T)this.realm.allocate(Y.key,K);return this.realm.allocate(I,p,"all"),this.realm.claim(K,p),this.store.moleculeJoins.set(p,Y.key),p}}),f=()=>h4(X,{key:`${Y.key}/singleRelatedKey`,get:(R)=>({get:I})=>{let K=I(W,R);for(let q of K)return q;return null}},["join","keys"]),b=()=>{return h4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(R)=>({get:I})=>{let K=x7(W,X);return I(K,R).members}},["join","keys"])},k=()=>h4(X,{key:`${Y.key}/singleRelatedEntry`,get:(R)=>({get:I})=>{let K=I(W,R);for(let q of K){let p=A.isAType?.(R)?R:void 0,s=p===void 0?R:void 0;p??=q,s??=q;let T=A.makeContentKey(p,s),t=I(N,T);return[q,t]}return null}},["join","entries"]),g=()=>h4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(R)=>({get:I})=>{let K=x7(W,X);return I(K,R).members.map((p)=>{let s=A.isAType?.(R)?R:void 0,T=s===void 0?R:void 0;s??=p,T??=p;let t=A.makeContentKey(s,T),m=I(N,t);return[p,m]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let R=f(),I=`${_}KeyOf${B0(G)}`,K=`${G}KeyOf${B0(_)}`,q={[I]:R,[K]:R},p;if(Z){let s=k(),T=`${_}EntryOf${B0(G)}`,t=`${G}EntryOf${B0(_)}`,m={[T]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p;break}case"1:n":{let R=f(),I=b(),K=`${_}KeyOf${B0(G)}`,q=`${G}KeysOf${B0(_)}`,p={[K]:R,[q]:I},s;if(Z){let T=k(),t=g(),m=`${_}EntryOf${B0(G)}`,e=`${G}EntriesOf${B0(_)}`,U0={[m]:T,[e]:t};s=Object.assign(p,U0)}else s=p;this.relations=A,this.states=s;break}case"n:n":{let R=b(),I=`${_}KeysOf${B0(G)}`,K=`${G}KeysOf${B0(_)}`,q={[I]:R,[K]:R},p;if(Z){let s=g(),T=`${_}EntriesOf${B0(G)}`,t=`${G}EntriesOf${B0(_)}`,m={[T]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p}}}};function n5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=x0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new v5(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function J6(Y,Z,X){let _=n5(Y,X),G=i(X);if(o0(G)){let{toolkit:W}=G.transactionMeta;_.transact(W,({relations:H})=>{Z(H)})}else Z(_.relations)}function K7(Y,Z,X){let _=n5(Y,X),G;switch(Y.cardinality){case"1:1":{let W=`${Y.a}KeyOf${B0(Y.b)}`,H=`${Y.b}KeyOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntryOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntryOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}break}case"1:n":{let W=`${Y.a}KeyOf${B0(Y.b)}`,H=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntryOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}break}case"n:n":{let W=`${Y.a}KeysOf${B0(Y.b)}`,H=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return H0(X,Q,Z)},get[H](){let Q=_.states[H];return H0(X,Q,Z)}};let J=`${Y.a}EntriesOf${B0(Y.b)}`;if(J in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[J](){let $=_.states[J];return H0(X,$,Z)},get[Q](){let $=_.states[Q];return H0(X,$,Z)}})}}}return G}function j7(Y,Z){return n5(Y,Z).core.relatedKeysAtoms}function M8(Y){return Y.startsWith("\uD83D\uDD0D ")}var GU=(Y)=>{return k4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(M8(X))continue;let G=W4(_);if(_.family){let W=Z.get(_.family.key);if(!W||!("familyMembers"in W))W={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,W);W.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(M8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H===void 0||!("familyMembers"in H))H={key:G,familyMembers:new Map},_.set(G,H);H.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H&&"familyMembers"in H){if(H.familyMembers.delete(W),H.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},WU=(Y)=>{return k4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[_,G]of X){if(M8(_))continue;let W=W4(G);if(G.family){let H=Z.get(G.family.key);if(!H||!("familyMembers"in H))H={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,H);H.familyMembers.set(G.family.subKey,W)}else Z.set(_,W)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(M8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H===void 0||!("familyMembers"in H))H={key:G,familyMembers:new Map},_.set(G,H);H.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,H=_.get(G);if(H&&"familyMembers"in H){if(H.familyMembers.delete(W),H.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var r5=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},n7=new r5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function r7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var s7=new r5({object:r7,array:(Y)=>Array.isArray(Y)}),HU=new r5({...n7.supported,...s7.supported}),AY=(Y)=>{if(Y===void 0)return"undefined";let Z=HU.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var lB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=x0.STORE){this.store=Z,this.atomIndex=GU(this.store),this.selectorIndex=WU(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=K5(this.atomIndex),_=K5(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),W=[..._.values()].filter((Q)=>("familyMembers"in Q)),H=performance.now(),J=[];if(Z.atomFamilies)for(let Q of G){let $=Q.familyMembers.values();for(let z of $){let L=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=H-L;J.push([z,V])}}if(Z.selectorFamilies)for(let Q of W){let $=Q.familyMembers.values();for(let z of $){let L=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=H-L;J.push([z,V])}}return J}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},o7=(Y,Z)=>{let X=(_,G)=>{let H=((Q,$)=>{let z=Z(Q,$);if(z)return z;return null})(_,G);if(H?.jobComplete??H?.pathComplete)return H;let J=Array.isArray(G)?G.map((Q,$)=>[$,Q]):r7(G)?Object.entries(G):[];for(let[Q,$]of J){let z=X([..._,Q],$);if(z?.jobComplete)return z}return{}};X([],Y)};function JU(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function $U(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function QU(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function a7(Y,Z,X){let _="",G=[],W=[],H=[];return o7(Y,(J,Q)=>{let $;for($ of J){let z=Z[$];if(z===void 0)W.push([$,JSON.stringify(Q)]);else{let O=X(Q,z);if(O.summary!=="No Change")H.push([$,O])}}}),o7(Z,(J,Q)=>{let $;for($ of J)if(Y[$]===void 0)G.push([$,JSON.stringify(Q)])}),_=`\uFF5E${H.length} \uFF0B${G.length} \uFF0D${W.length}`,{summary:_,added:G,removed:W,changed:H}}function zU(Y,Z,X){return a7(Y,Z,X)}var FU=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(J,Q)=>this.diff(J,Q))}}let G=AY(Y),W=AY(Z);if(G===W)return{summary:`${G} \u2192 ${W}`};return{summary:`Type change: ${G} \u2192 ${W}`}}},iB=new FU(n7,s7,{number:JU,string:$U,boolean:QU,null:()=>({summary:"No Change"}),object:a7,array:zU});var UU=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}clear(){throw new Error("Cannot clear an InvariantMap")}},tB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new UU;static create(Z,X){let _=new Y(Z),{type:G,globals:W,actions:H,perspectives:J}=X(_),Q={type:G,key:Z,globals:W,actions:H,perspectives:J};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var eB=O8({key:"usersInRoomIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),s5=O8({key:"roomIndex",default:()=>new L1,mutable:!0,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),OU={enteredAtEpoch:0},F6=OY({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},OU),YT=EY({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=A7(F6);return[Z(X,Y)]}});import{spawn as EU}from"child_process";var a5=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},LU=class extends a5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let W=JSON.stringify([_,...G])+"\x03",H=(J)=>{if(J.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",H)};return this.process.stdin.once("error",H),this.process.stdin.write(W),this});if(this.process=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let W=this.unprocessedEvents.shift();this.incompleteData+=W??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let H=G1(this.incompleteData);this.handleEvent(...H);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;H=G1(J),this.handleEvent(...H)}}this.incompleteData=""}catch(H){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(H)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let W=this.unprocessedLogs.shift();this.incompleteLog+=W??"";try{let H=G1(this.incompleteLog);this.handleLog(H);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)H=G1(this.incompleteLog),this.handleLog(H)}catch(H){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(H),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},DU=class extends a5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new J0,this.out=new J0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},t7=class extends a5{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(z0(Y.map((Z)=>Z instanceof L1?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=G1(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let W=G1(G);this.handleEvent(...W)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),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",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new DU(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},e7=G6({key:"roomArguments",default:["echo",["Hello World!"]]}),VU=EY({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(e7,Y),G=Z(_),[W,H]=G,J=await new Promise((Q)=>{let $=EU(W,H,{env:process.env}),z=(O)=>{if(O.toString()==="ALIVE")$.stdout.off("data",z),Q($)};$.stdout.on("data",z)});return new LU(J,Y)}}),zT=W6({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,W)=>{let H=W?[G,W]:[G],J=X(e7,_);Z(J,H),Z(s5,(z)=>z.add(_));let Q=X(VU,_);return Y(Q)}}),FT=W6({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return J6(F6,(W)=>{W.set({room:Z,user:X},G)},Y.env().store),G}}),UT=W6({key:"leaveRoom",do:(Y,Z,X)=>{J6(F6,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),OT=W6({key:"destroyRoom",do:(Y,Z)=>{J6(F6,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(s5,(X)=>(X.delete(Z),X))}});var ET=G6({key:"redactor",default:{occlude:(Y)=>Y}}),LT=G6({key:"unacknowledgedUpdates",default:()=>[]}),DT=G6({key:"sockets",default:null}),VT=O8({key:"socketsIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),MT=O8({key:"usersIndex",mutable:!0,default:()=>new L1,toJson:(Y)=>Y.toJSON(),fromJson:(Y)=>L1.fromJSON(Y)}),AT=OY({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:SH,serve:xO}=globalThis.Bun;import{readFileSync as X3}from"fs";import{createServer as RU}from"http";import{createServer as NU}from"https";import{resolve as e5}from"path";function Y3(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function MU(Y,Z){let X={},_=[];for(let G in Y){let W=Y[G]["~standard"].validate(Z[G]);if(Y3(W,`Validation must be synchronous, but ${G} returned a Promise.`),W.issues){_.push(...W.issues.map((H)=>({...H,message:H.message,path:[G,...H.path??[]]})));continue}X[G]=W.value}if(_.length)return{issues:_};return{value:X}}function t5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[k,g]of Object.entries(Z))if(g==="")delete Z[k]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},W=typeof Y.server==="object"?Y.server:{},H=typeof Y.shared==="object"?Y.shared:{},J=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=J?{...W,...H,...G}:{...G,...H},$=Y.createFinalSchema?.(Q,J)["~standard"].validate(Z)??MU(Q,Z);Y3($,"Validation must be synchronous");let z=Y.onValidationError??((k)=>{throw console.error("\u274C Invalid environment variables:",k),new Error("Invalid environment variables")}),O=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if($.issues)return z($.issues);let L=(k)=>{if(!Y.clientPrefix)return!0;return!k.startsWith(Y.clientPrefix)&&!(k in H)},V=(k)=>{return J||!L(k)},N=(k)=>{return k==="__esModule"||k==="$$typeof"},A=(Y.extends??[]).reduce((k,g)=>{return Object.assign(k,g)},{}),f=Object.assign(A,$.value);return new Proxy(f,{get(k,g){if(typeof g!=="string")return;if(N(g))return;if(!V(g))return O(g);return Reflect.get(k,g)}})}var AU="__vite_start_time"in globalThis,wU=typeof window!=="undefined",PT="vitest"in globalThis,H4=E1("string"),Z3=E1('"true" | "false" | undefined'),g1=t5({isServer:!AU&&!wU,server:{CI:E1("string | undefined").pipe(Boolean),POSTGRES_USER:H4,POSTGRES_PASSWORD:H4,POSTGRES_DATABASE:H4,POSTGRES_HOST:H4,POSTGRES_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:Z3.pipe((Y)=>Y==="true"),FRONTEND_PORT:H4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:H4.pipe.try((Y)=>JSON.parse(Y),E1("string[]")),API_KEY_OPENAI:E1("string | undefined"),API_KEY_RESEND:E1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:H4,VITE_DEV_FRONTEND_HOST:E1("string | undefined"),VITE_DEV_HTTPS:Z3.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var _3=e5(import.meta.dirname,"../dev"),wY=g1.VITE_DEV_HTTPS?{cert:X3(e5(_3,"./cert.pem"),"utf-8"),key:X3(e5(_3,"./key.pem"),"utf-8")}:void 0;function kT(Y){if(wY)return NU(wY,Y);return RU({},Y)}import CO from"path";var U=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,U))throw new Error(`Class "${Z.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 X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(U in X&&X[U]===Z[U])return!0;X=Object.getPrototypeOf(X)}return!1}class E0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[U]="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(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class YX{static[U]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var y1=Symbol.for("drizzle:Name");class ZX{static[U]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new G3(Y,this)}}class G3{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[U]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((H)=>H.name),G=X.map((H)=>H.name),W=[this.table[y1],..._,X[0].table[y1],...G];return Y??`${W.join("_")}_fk`}}function RY(Y,...Z){return Y(...Z)}function W3(Y,Z){return`${Y[y1]}_${Z.join("_")}_unique`}function H3(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function J3(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let W=Y[_];if(W===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,W==="\\"){_+=2;continue}if(W==='"'){let[Q,$]=H3(Y,_+1,!0);X.push(Q),_=$;continue}if(W==="}")return[X,_+1];if(W==="{"){let[Q,$]=J3(Y,_+1);X.push(Q),_=$;continue}let[H,J]=H3(Y,_,!1);X.push(H),_=J}return[X,_]}function $3(Y){let[Z]=J3(Y,1);return Z}function XX(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return XX(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class h extends YX{foreignKeyConfigs=[];static[U]="PgColumnBuilder";array(Y){return new z3(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return RY((G,W)=>{let H=new ZX(()=>{let J=G();return{columns:[Y],foreignColumns:[J]}});if(W.onUpdate)H.onUpdate(W.onUpdate);if(W.onDelete)H.onDelete(W.onDelete);return H.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new Q3(Y,this.config)}}class j extends E0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=W3(Y,[Z.name]);super(Y,Z);this.table=Y}static[U]="PgColumn"}class Q3 extends j{static[U]="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(Y){return this.indexConfig.opClass=Y,this}}class U6{static[U]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class z3 extends h{static[U]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new _X(Y,this.config,Z)}}class _X extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[U]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=$3(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:M(this.baseColumn,_X)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return XX(X)}}class F3 extends h{static[U]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new U3(Y,this.config)}}class U3 extends j{static[U]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var NY=Symbol.for("drizzle:isPgEnum");function O3(Y){return!!Y&&typeof Y==="function"&&NY in Y&&Y[NY]===!0}class E3 extends h{static[U]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new L3(Y,this.config)}}class L3 extends j{static[U]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function O6(Y,Z){return Array.isArray(Z)?IU(Y,[...Z],void 0):BU(Y,Z,void 0)}function IU(Y,Z,X){let _=Object.assign((G)=>new E3(G??"",_),{enumName:Y,enumValues:Z,schema:X,[NY]:!0});return _}function BU(Y,Z,X){let _=Object.assign((G)=>new F3(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[NY]:!0});return _}class P0{static[U]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class E6 extends P0{static[U]="WithSubquery"}var D3="0.44.4";var GX,WX,L0={startActiveSpan(Y,Z){if(!GX)return Z();if(!WX)WX=GX.trace.getTracer("drizzle-orm",D3);return RY((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch(W){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:W instanceof Error?W.message:"Unknown error"}),W}finally{G.end()}}),GX,WX)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var g4=Symbol.for("drizzle:Schema"),IY=Symbol.for("drizzle:Columns"),V3=Symbol.for("drizzle:ExtraConfigColumns"),HX=Symbol.for("drizzle:OriginalName"),JX=Symbol.for("drizzle:BaseName"),L6=Symbol.for("drizzle:IsAlias"),M3=Symbol.for("drizzle:ExtraConfigBuilder"),TU=Symbol.for("drizzle:IsDrizzleTable");class P{static[U]="Table";static Symbol={Name:y1,Schema:g4,OriginalName:HX,Columns:IY,ExtraConfigColumns:V3,BaseName:JX,IsAlias:L6,ExtraConfigBuilder:M3};[y1];[HX];[g4];[IY];[V3];[JX];[L6]=!1;[TU]=!0;[M3]=void 0;constructor(Y,Z,X){this[y1]=this[HX]=Y,this[g4]=Z,this[JX]=X}}function c0(Y){return Y[y1]}function y4(Y){return`${Y[g4]??"public"}.${Y[y1]}`}function $X(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function CU(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class u0{static[U]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new x([this])}}class x{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[U]="SQL";decoder=w3;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return L0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:W,prepareTyping:H,inlineParams:J,paramStartIndex:Q}=X;return CU(Y.map(($)=>{if(M($,u0))return{sql:$.value.join(""),params:[]};if(M($,BY))return{sql:G($.value),params:[]};if($===void 0)return{sql:"",params:[]};if(Array.isArray($)){let z=[new u0("(")];for(let[O,L]of $.entries())if(z.push(L),O<$.length-1)z.push(new u0(", "));return z.push(new u0(")")),this.buildQueryFromSourceParams(z,X)}if(M($,x))return this.buildQueryFromSourceParams($.queryChunks,{...X,inlineParams:J||$.shouldInlineParams});if(M($,P)){let z=$[P.Symbol.Schema],O=$[P.Symbol.Name];return{sql:z===void 0||$[L6]?G(O):G(z)+"."+G(O),params:[]}}if(M($,E0)){let z=_.getColumnCasing($);if(Z.invokeSource==="indexes")return{sql:G(z),params:[]};let O=$.table[P.Symbol.Schema];return{sql:$.table[L6]||O===void 0?G($.table[P.Symbol.Name])+"."+G(z):G(O)+"."+G($.table[P.Symbol.Name])+"."+G(z),params:[]}}if(M($,D1)){let z=$[A0].schema,O=$[A0].name;return{sql:z===void 0||$[A0].isAlias?G(O):G(z)+"."+G(O),params:[]}}if(M($,N1)){if(M($.value,N4))return{sql:W(Q.value++,$),params:[$],typings:["none"]};let z=$.value===null?null:$.encoder.mapToDriverValue($.value);if(M(z,x))return this.buildQueryFromSourceParams([z],X);if(J)return{sql:this.mapInlineParam(z,X),params:[]};let O=["none"];if(H)O=[H($.encoder)];return{sql:W(Q.value++,z),params:[z],typings:O}}if(M($,N4))return{sql:W(Q.value++,$),params:[$],typings:["none"]};if(M($,x.Aliased)&&$.fieldAlias!==void 0)return{sql:G($.fieldAlias),params:[]};if(M($,P0)){if($._.isWith)return{sql:G($._.alias),params:[]};return this.buildQueryFromSourceParams([new u0("("),$._.sql,new u0(") "),new BY($._.alias)],X)}if(O3($)){if($.schema)return{sql:G($.schema)+"."+G($.enumName),params:[]};return{sql:G($.enumName),params:[]}}if($X($)){if($.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([$.getSQL()],X);return this.buildQueryFromSourceParams([new u0("("),$.getSQL(),new u0(")")],X)}if(J)return{sql:this.mapInlineParam($,X),params:[]};return{sql:W(Q.value++,$),params:[$],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new x.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class BY{constructor(Y){this.value=Y}static[U]="Name";brand;getSQL(){return new x([this])}}function A3(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var w3={mapFromDriverValue:(Y)=>Y},R3={mapToDriverValue:(Y)=>Y},CC={...w3,...R3};class N1{constructor(Y,Z=R3){this.value=Y,this.encoder=Z}static[U]="Param";brand;getSQL(){return new x([this])}}function E(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new u0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new u0(Y[_+1]));return new x(X)}((Y)=>{function Z(){return new x([])}Y.empty=Z;function X(Q){return new x(Q)}Y.fromList=X;function _(Q){return new x([new u0(Q)])}Y.raw=_;function G(Q,$){let z=[];for(let[O,L]of Q.entries()){if(O>0&&$!==void 0)z.push($);z.push(L)}return new x(z)}Y.join=G;function W(Q){return new BY(Q)}Y.identifier=W;function H(Q){return new N4(Q)}Y.placeholder=H;function J(Q,$){return new N1(Q,$)}Y.param=J})(E||(E={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[U]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(x||(x={}));class N4{constructor(Y){this.name=Y}static[U]="Placeholder";getSQL(){return new x([this])}}function QX(Y,Z){return Y.map((X)=>{if(M(X,N4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,N1)&&M(X.value,N4)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var qU=Symbol.for("drizzle:IsDrizzleView");class D1{static[U]="View";[A0];[qU]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[A0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new x([this])}}E0.prototype.getSQL=function(){return new x([this])};P.prototype.getSQL=function(){return new x([this])};P0.prototype.getSQL=function(){return new x([this])};class A8{constructor(Y){this.table=Y}static[U]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class D6{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[U]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let _=Y[P.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map((W)=>{G[W]=new Proxy(_[W],new A8(new Proxy(Y,this)))}),G}let X=Y[Z];if(M(X,E0))return new Proxy(X,new A8(new Proxy(Y,this)));return X}}function TY(Y,Z){return new Proxy(Y,new D6(Z,!1))}function n1(Y,Z){return new Proxy(Y,new A8(new Proxy(Y.table,new D6(Z,!1))))}function zX(Y,Z){return new x.Aliased(V6(Y.sql,Z),Y.fieldAlias)}function V6(Y,Z){return E.join(Y.queryChunks.map((X)=>{if(M(X,E0))return n1(X,Z);if(M(X,x))return V6(X,Z);if(M(X,x.Aliased))return zX(X,Z);return X}))}class CY extends Error{static[U]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class J4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
62
62
  params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,J4),X)this.cause=X}}class FX extends CY{static[U]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class N3{static[U]="ConsoleLogWriter";write(Y){console.log(Y)}}class UX{static[U]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new N3}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class OX{static[U]="NoopLogger";logQuery(){}}class H1{static[U]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function I3(Y,Z,X){let _={},G=Y.reduce((W,{path:H,field:J},Q)=>{let $;if(M(J,E0))$=J;else if(M(J,x))$=J.decoder;else $=J.sql.decoder;let z=W;for(let[O,L]of H.entries())if(O<H.length-1){if(!(L in z))z[L]={};z=z[L]}else{let V=Z[Q],N=z[L]=V===null?null:$.mapFromDriverValue(V);if(X&&M(J,E0)&&H.length===2){let A=H[0];if(!(A in _))_[A]=N===null?c0(J.table):!1;else if(typeof _[A]==="string"&&_[A]!==c0(J.table))_[A]=!1}}return W},{});if(X&&Object.keys(_).length>0){for(let[W,H]of Object.entries(_))if(typeof H==="string"&&!X[H])G[W]=null}return G}function K1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let W=Z?[...Z,_]:[_];if(M(G,E0)||M(G,x)||M(G,x.Aliased))X.push({path:W,field:G});else if(M(G,P))X.push(...K1(G[P.Symbol.Columns],W));else X.push(...K1(G,W));return X},[])}function M6(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,W]of X.entries())if(W!==_[G])return!1;return!0}function qY(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(M(G,x)||M(G,E0))return[_,G];else return[_,new N1(G,Y[P.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function B3(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function T3(Y){return Y[P.Symbol.Columns]}function $4(Y){return M(Y,P0)?Y._.alias:M(Y,D1)?Y[A0].name:M(Y,x)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function C3(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class I4 extends h{static[U]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class q3 extends I4{static[U]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new K3(Y,this.config)}}class K3 extends j{static[U]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class j3 extends I4{static[U]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new P3(Y,this.config)}}class P3 extends j{static[U]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function S3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new q3(X);return new j3(X)}class v3 extends h{static[U]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new x3(Y,this.config)}}class x3 extends j{static[U]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class h3 extends h{static[U]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new f3(Y,this.config)}}class f3 extends j{static[U]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function b3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new v3(X);return new h3(X)}class k3 extends h{static[U]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new g3(Y,this.config)}}class g3 extends j{static[U]="PgBoolean";getSQLType(){return"boolean"}}function A6(Y){return new k3(Y??"")}class y3 extends h{static[U]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new p3(Y,this.config)}}class p3 extends j{static[U]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function m3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new y3(X,_)}class u3 extends h{static[U]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new d3(Y,this.config)}}class d3 extends j{static[U]="PgCidr";getSQLType(){return"cidr"}}function c3(Y){return new u3(Y??"")}class l3 extends h{static[U]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new i3(Y,this.config)}}class i3 extends j{static[U]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function o3(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new l3(_,G,Y)}}class Q4 extends h{static[U]="PgDateColumnBaseBuilder";defaultNow(){return this.default(E`now()`)}}class n3 extends Q4{static[U]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new KY(Y,this.config)}}class KY extends j{static[U]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class r3 extends Q4{static[U]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new jY(Y,this.config)}}class jY extends j{static[U]="PgDateString";getSQLType(){return"date"}}function s3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new n3(X);return new r3(X)}class a3 extends h{static[U]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new t3(Y,this.config)}}class t3 extends j{static[U]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function e3(Y){return new a3(Y??"")}class Y2 extends h{static[U]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new Z2(Y,this.config)}}class Z2 extends j{static[U]="PgInet";getSQLType(){return"inet"}}function X2(Y){return new Y2(Y??"")}class _2 extends I4{static[U]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new G2(Y,this.config)}}class G2 extends j{static[U]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function w6(Y){return new _2(Y??"")}class W2 extends h{static[U]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new H2(Y,this.config)}}class H2 extends j{static[U]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function J2(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new W2(X,_)}class $2 extends h{static[U]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new PY(Y,this.config)}}class PY extends j{static[U]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function Q2(Y){return new $2(Y??"")}class z2 extends h{static[U]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new SY(Y,this.config)}}class SY extends j{static[U]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function F2(Y){return new z2(Y??"")}class U2 extends h{static[U]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new O2(Y,this.config)}}class O2 extends j{static[U]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class E2 extends h{static[U]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new L2(Y,this.config)}}class L2 extends j{static[U]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function D2(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new U2(X);return new E2(X)}class V2 extends h{static[U]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new M2(Y,this.config)}}class M2 extends j{static[U]="PgMacaddr";getSQLType(){return"macaddr"}}function A2(Y){return new V2(Y??"")}class w2 extends h{static[U]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new R2(Y,this.config)}}class R2 extends j{static[U]="PgMacaddr8";getSQLType(){return"macaddr8"}}function N2(Y){return new w2(Y??"")}class I2 extends h{static[U]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new vY(Y,this.config)}}class vY extends j{static[U]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}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 B2 extends h{static[U]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new T2(Y,this.config)}}class T2 extends j{static[U]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}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 C2 extends h{static[U]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new q2(Y,this.config)}}class q2 extends j{static[U]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.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 K2(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new B2(X,_?.precision,_?.scale):G==="bigint"?new C2(X,_?.precision,_?.scale):new I2(X,_?.precision,_?.scale)}class j2 extends h{static[U]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new P2(Y,this.config)}}class P2 extends j{static[U]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class S2 extends h{static[U]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new v2(Y,this.config)}}class v2 extends j{static[U]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function x2(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new j2(X);return new S2(X)}function KU(Y){let Z=[];for(let X=0;X<Y.length;X+=2)Z.push(Number.parseInt(Y.slice(X,X+2),16));return new Uint8Array(Z)}function h2(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function EX(Y){let Z=KU(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),W=G.getUint32(X,_===1);X+=4;let H;if(W&536870912)H=G.getUint32(X,_===1),X+=4;if((W&65535)===1){let J=h2(Z,X);X+=8;let Q=h2(Z,X);return X+=8,[J,Q]}throw new Error("Unsupported geometry type")}class f2 extends h{static[U]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new b2(Y,this.config)}}class b2 extends j{static[U]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return EX(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class k2 extends h{static[U]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new g2(Y,this.config)}}class g2 extends j{static[U]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=EX(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function y2(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new f2(X);return new k2(X)}class p2 extends h{static[U]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new m2(Y,this.config)}}class m2 extends j{static[U]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function u2(Y){return new p2(Y??"")}class d2 extends h{static[U]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new c2(Y,this.config)}}class c2 extends j{static[U]="PgSerial";getSQLType(){return"serial"}}function l2(Y){return new d2(Y??"")}class i2 extends I4{static[U]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new o2(Y,this.config)}}class o2 extends j{static[U]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function n2(Y){return new i2(Y??"")}class r2 extends h{static[U]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new s2(Y,this.config)}}class s2 extends j{static[U]="PgSmallSerial";getSQLType(){return"smallserial"}}function a2(Y){return new r2(Y??"")}class t2 extends h{static[U]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new e2(Y,this.config)}}class e2 extends j{static[U]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function YW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new t2(X,_)}class ZW extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[U]="PgTimeBuilder";build(Y){return new xY(Y,this.config)}}class xY extends j{static[U]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function XW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new ZW(X,_.withTimezone??!1,_.precision)}class _W extends Q4{static[U]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new hY(Y,this.config)}}class hY extends j{static[U]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class GW extends Q4{static[U]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new fY(Y,this.config)}}class fY extends j{static[U]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function WW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new GW(X,_.withTimezone??!1,_.precision);return new _W(X,_?.withTimezone??!1,_?.precision)}class HW extends h{static[U]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(E`gen_random_uuid()`)}build(Y){return new bY(Y,this.config)}}class bY extends j{static[U]="PgUUID";getSQLType(){return"uuid"}}function j1(Y){return new HW(Y??"")}class JW extends h{static[U]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new $W(Y,this.config)}}class $W extends j{static[U]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function e0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new JW(X,_)}class QW extends h{static[U]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new zW(Y,this.config)}}class zW extends j{static[U]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function FW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new QW(X,_)}class UW extends h{static[U]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new OW(Y,this.config)}}class OW extends j{static[U]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function EW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new UW(X,_)}class LW extends h{static[U]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new DW(Y,this.config)}}class DW extends j{static[U]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function VW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new LW(X,_)}class MW extends h{static[U]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new AW(Y,this.config)}}class AW extends j{static[U]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function wW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new MW(X,_)}function RW(){return{bigint:S3,bigserial:b3,boolean:A6,char:m3,cidr:c3,customType:o3,date:s3,doublePrecision:e3,inet:X2,integer:w6,interval:J2,json:Q2,jsonb:F2,line:D2,macaddr:A2,macaddr8:N2,numeric:K2,point:x2,geometry:y2,real:u2,serial:l2,smallint:n2,smallserial:a2,text:YW,time:XW,timestamp:WW,uuid:j1,varchar:e0,bit:FW,halfvec:EW,sparsevec:VW,vector:wW}}var LX=Symbol.for("drizzle:PgInlineForeignKeys"),NW=Symbol.for("drizzle:EnableRLS");class d0 extends P{static[U]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:LX,EnableRLS:NW});[LX]=[];[NW]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function jU(Y,Z,X,_,G=Y){let W=new d0(Y,_,G),H=typeof Z==="function"?Z(RW()):Z,J=Object.fromEntries(Object.entries(H).map(([z,O])=>{let L=O;L.setName(z);let V=L.build(W);return W[LX].push(...L.buildForeignKeys(V,W)),[z,V]})),Q=Object.fromEntries(Object.entries(H).map(([z,O])=>{let L=O;L.setName(z);let V=L.buildExtraConfigColumn(W);return[z,V]})),$=Object.assign(W,J);if($[P.Symbol.Columns]=J,$[P.Symbol.ExtraConfigColumns]=Q,X)$[d0.Symbol.ExtraConfigBuilder]=X;return Object.assign($,{enableRLS:()=>{return $[d0.Symbol.EnableRLS]=!0,$}})}var B4=(Y,Z,X)=>{return jU(Y,Z,X,void 0)};function IW(...Y){if(Y[0].columns)return new R6(Y[0].columns,Y[0].name);return new R6(Y)}class R6{static[U]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new BW(Y,this.columns,this.name)}}class BW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[U]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[d0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function V1(Y,Z){if(A3(Z)&&!$X(Y)&&!M(Y,N1)&&!M(Y,N4)&&!M(Y,E0)&&!M(Y,P)&&!M(Y,D1))return new N1(Y,Z);return Y}var kY=(Y,Z)=>{return E`${Y} = ${V1(Z,Y)}`},TW=(Y,Z)=>{return E`${Y} <> ${V1(Z,Y)}`};function N6(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new u0("("),E.join(Z,new u0(" and ")),new u0(")")])}function CW(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new u0("("),E.join(Z,new u0(" or ")),new u0(")")])}function qW(Y){return E`not ${Y}`}var KW=(Y,Z)=>{return E`${Y} > ${V1(Z,Y)}`},jW=(Y,Z)=>{return E`${Y} >= ${V1(Z,Y)}`},PW=(Y,Z)=>{return E`${Y} < ${V1(Z,Y)}`},SW=(Y,Z)=>{return E`${Y} <= ${V1(Z,Y)}`};function vW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return E`false`;return E`${Y} in ${Z.map((X)=>V1(X,Y))}`}return E`${Y} in ${V1(Z,Y)}`}function xW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return E`true`;return E`${Y} not in ${Z.map((X)=>V1(X,Y))}`}return E`${Y} not in ${V1(Z,Y)}`}function hW(Y){return E`${Y} is null`}function fW(Y){return E`${Y} is not null`}function bW(Y){return E`exists ${Y}`}function kW(Y){return E`not exists ${Y}`}function gW(Y,Z,X){return E`${Y} between ${V1(Z,Y)} and ${V1(X,Y)}`}function yW(Y,Z,X){return E`${Y} not between ${V1(Z,Y)} and ${V1(X,Y)}`}function pW(Y,Z){return E`${Y} like ${Z}`}function mW(Y,Z){return E`${Y} not like ${Z}`}function uW(Y,Z){return E`${Y} ilike ${Z}`}function dW(Y,Z){return E`${Y} not ilike ${Z}`}function cW(Y){return E`${Y} asc`}function lW(Y){return E`${Y} desc`}class DX{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[U]="Relation";referencedTableName;fieldName}class iW{constructor(Y,Z){this.table=Y,this.config=Z}static[U]="Relations"}class T4 extends DX{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[U]="One";withFieldName(Y){let Z=new T4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class I6 extends DX{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[U]="Many";withFieldName(Y){let Z=new I6(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function oW(){return{and:N6,between:gW,eq:kY,exists:bW,gt:KW,gte:jW,ilike:uW,inArray:vW,isNull:hW,isNotNull:fW,like:pW,lt:PW,lte:SW,ne:TW,not:qW,notBetween:yW,notExists:kW,notLike:mW,notIlike:dW,notInArray:xW,or:CW,sql:E}}function nW(){return{sql:E,asc:cW,desc:lW}}function rW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},_={},G={};for(let[W,H]of Object.entries(Y))if(M(H,P)){let J=y4(H),Q=_[J];X[J]=W,G[W]={tsName:W,dbName:H[P.Symbol.Name],schema:H[P.Symbol.Schema],columns:H[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values(H[P.Symbol.Columns]))if(z.primary)G[W].primaryKey.push(z);let $=H[P.Symbol.ExtraConfigBuilder]?.(H[P.Symbol.ExtraConfigColumns]);if($){for(let z of Object.values($))if(M(z,R6))G[W].primaryKey.push(...z.columns)}}else if(M(H,iW)){let J=y4(H.table),Q=X[J],$=H.config(Z(H.table)),z;for(let[O,L]of Object.entries($))if(Q){let V=G[Q];if(V.relations[O]=L,z)V.primaryKey.push(...z)}else{if(!(J in _))_[J]={relations:{},primaryKey:z};_[J].relations[O]=L}}return{tables:G,tableNamesMap:X}}function PU(Y){return function Z(X,_){return new T4(Y,X,_,_?.fields.reduce((G,W)=>G&&W.notNull,!0)??!1)}}function SU(Y){return function Z(X,_){return new I6(Y,X,_)}}function sW(Y,Z,X){if(M(X,T4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[y4(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let W=X.sourceTable,H=Z[y4(W)];if(!H)throw new Error(`Table "${W[P.Symbol.Name]}" not found in schema`);let J=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)J.push(Q);if(J.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(J[0]&&M(J[0],T4)&&J[0].config)return{fields:J[0].config.references,references:J[0].config.fields};throw new Error(`There is not enough information to infer relation "${H}.${X.fieldName}"`)}function aW(Y){return{one:PU(Y),many:SU(Y)}}function gY(Y,Z,X,_,G=(W)=>W){let W={};for(let[H,J]of _.entries())if(J.isJson){let Q=Z.relations[J.tsKey],$=X[H],z=typeof $==="string"?JSON.parse($):$;W[J.tsKey]=M(Q,T4)?z&&gY(Y,Y[J.relationTableTsKey],z,J.selection,G):z.map((O)=>gY(Y,Y[J.relationTableTsKey],O,J.selection,G))}else{let Q=G(X[H]),$=J.field,z;if(M($,E0))z=$;else if(M($,x))z=$.decoder;else z=$.sql.decoder;W[J.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return W}import ZO from"os";import XO from"fs";var yY=new Map,VX=new Map,MX=Symbol("OriginError"),w8={};class P1 extends Promise{constructor(Y,Z,X,_,G={}){let W,H;super((J,Q)=>{W=J,H=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(J)=>(this.active=!1,W(J)),this.reject=(J)=>(this.active=!1,H(J)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[MX]=this.handler.debug?new Error:this.tagged&&vU(this.strings)}get origin(){return(this.handler.debug?this[MX].stack:this.tagged&&VX.has(this.strings)?VX.get(this.strings):VX.set(this.strings,this[MX].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(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,W)=>{this.cursorFn=(H)=>{return G({value:H,done:!1}),new Promise((J)=>X=J)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(H)=>(this.active=!1,W(H))});return this.execute(),_},return(){return X&&X(w8),{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(Y){return this.forEachFn=Y,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 vU(Y){if(yY.has(Y))return yY.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,yY.set(Y,new Error),Error.stackTraceLimit=Z,yY.get(Y)}class R8 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:tW,postgres:eW,generic:YH,notSupported:ZH};function tW(Y,Z,X){let{host:_,port:G}=X||Z,W=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace(W,tW),W}function eW(Y){let Z=new R8(Y);return Error.captureStackTrace(Z,eW),Z}function YH(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,YH),X}function ZH(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,ZH),Z}var xU={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class uY{then(){AX()}catch(){AX()}finally(){AX()}}class q6 extends uY{constructor(Y){super();this.value=lY(Y)}}class r1 extends uY{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class dY extends uY{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=hU.map(([W,H])=>({fn:H,i:Y.search(W)})).sort((W,H)=>W.i-H.i).pop();return G.i===-1?BX(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function cY(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||mY(Y.value)]||Y.type||WH(Y.value):Y.type):(Z.push(Y),mY(Y)))}var _H=JH(xU);function NX(Y,Z,X,_,G,W){for(let H=1;H<Y.strings.length;H++)Z+=IX(Z,X,_,G,W)+Y.strings[H],X=Y.args[H];return Z}function IX(Y,Z,X,_,G){return Z instanceof dY?Z.build(Y,X,_,G):Z instanceof P1?RX(Z,X,_,G):Z instanceof q6?Z.value:Z&&Z[0]instanceof P1?Z.reduce((W,H)=>W+" "+RX(H,X,_,G),""):cY(Z,X,_,G)}function RX(Y,Z,X,_){return Y.fragment=!0,NX(Y,Y.strings[0],Y.args[0],Z,X,_)}function GH(Y,Z,X,_,G){return Y.map((W)=>"("+_.map((H)=>IX("values",W[H],Z,X,G)).join(",")+")").join(",")}function XH(Y,Z,X,_,G){let W=Array.isArray(Y[0]),H=Z.length?Z.flat():Object.keys(W?Y[0]:Y);return GH(W?Y:[Y],X,_,H,G)}function pY(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return BX(Y,G);let W;return(Z.length?Z.flat():Object.keys(Y)).map((J)=>{return W=Y[J],(W instanceof P1?RX(W,X,_,G):W instanceof q6?W.value:cY(W,X,_,G))+" as "+lY(G.transform.column.to?G.transform.column.to(J):J)}).join(",")}var hU=Object.entries({values:XH,in:(...Y)=>{let Z=XH(...Y);return Z==="()"?"(null)":Z},select:pY,as:pY,returning:pY,"\\(":pY,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map((W)=>lY(G.transform.column.to?G.transform.column.to(W):W)+"="+IX("values",Y[W],X,_,G))},insert(Y,Z,X,_,G){let W=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+BX(W,G)+")values"+GH(Array.isArray(Y)?Y:[Y],X,_,W,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function AX(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:fU,parsers:bU}=_H;function WH(Y){if(Array.isArray(Y))return WH(Y[0]);return typeof Y==="string"?1009:0}var HH=function(Y){let Z=JH(Y||{});return{serializers:Object.assign({},fU,Z.serializers),parsers:Object.assign({},bU,Z.parsers)}};function JH(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function BX(Y,{transform:{column:Z}}){return Y.map((X)=>lY(Z.to?Z.to(X):X)).join(",")}var lY=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},mY=function Y(Z){return Z instanceof r1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},kU=/\\/g,gU=/"/g;function yU(Y){return Y.replace(kU,"\\\\").replace(gU,"\\\"")}var $H=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let W=Z[0],H=G===1020?";":",";if(Array.isArray(W)&&!W.type)return"{"+Z.map((J)=>Y(J,X,_,G)).join(H)+"}";return"{"+Z.map((J)=>{if(J===void 0){if(J=_.transform.undefined,J===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return J===null?"null":'"'+yU(X?X(J.type?J.value:J):""+J)+'"'}).join(H)+"}"},wX={i:0,char:null,str:"",quoted:!1,last:0},QH=function Y(Z,X,_){return wX.i=wX.last=0,zH(wX,Z,X,_)};function zH(Y,Z,X,_){let G=[],W=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push(zH(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===W&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),B6=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),T6=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),C6=(Y)=>Y.replace(/-/g,"_");function TX(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[W,H])=>Object.assign(G,{[Y(W)]:Z(H,_)}),{}):X}}p4.column={from:p4};p4.value={from:TX(p4)};B6.column={to:B6};var CX={...p4};CX.column.to=B6;m4.column={from:m4};m4.value={from:TX(m4)};T6.column={to:T6};var qX={...m4};qX.column.to=T6;u4.column={from:u4};u4.value={from:TX(u4)};C6.column={to:C6};var KX={...u4};KX.column.to=C6;import FH from"net";import dU from"tls";import K6 from"crypto";import jX from"stream";import{performance as UH}from"perf_hooks";class d4 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 I1=pU;function pU(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var Y1=Buffer.allocUnsafe(256),mU="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return Y1[0]=X,F0.i=5,F0},Y},{}),F0=Object.assign(uU,mU,{N:String.fromCharCode(0),i:0,inc(Y){return F0.i+=Y,F0},str(Y){let Z=Buffer.byteLength(Y);return iY(Z),F0.i+=Y1.write(Y,F0.i,Z,"utf8"),F0},i16(Y){return iY(2),Y1.writeUInt16BE(Y,F0.i),F0.i+=2,F0},i32(Y,Z){if(Z||Z===0)return Y1.writeUInt32BE(Y,Z),F0;return iY(4),Y1.writeUInt32BE(Y,F0.i),F0.i+=4,F0},z(Y){return iY(Y),Y1.fill(0,F0.i,F0.i+Y),F0.i+=Y,F0},raw(Y){return Y1=Buffer.concat([Y1.subarray(0,F0.i),Y]),F0.i=Y1.length,F0},end(Y=1){Y1.writeUInt32BE(F0.i-Y,Y);let Z=Y1.subarray(0,F0.i);return F0.i=0,Y1=Buffer.allocUnsafe(256),Z}}),c=F0;function iY(Y){if(Y1.length-F0.i<Y){let Z=Y1,X=Z.length;Y1=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(Y1)}}function uU(){return F0.i=0,F0}var vX=LH,cU=1,C4=c().S().end(),OH=c().H().end(),lU=c().i32(8).i32(80877103).end(8),iU=Buffer.concat([c().E().str(c.N).i32(0).end(),C4]),oU=c().D().str("S").str(c.N).end(),N8=()=>{},nU=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),rU={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 LH(Y,Z={},{onopen:X=N8,onend:_=N8,onclose:G=N8}={}){let{ssl:W,max:H,user:J,host:Q,port:$,database:z,parsers:O,transform:L,onnotice:V,onnotify:N,onparameter:A,max_pipeline:f,keep_alive:b,backoff:k,target_session_attrs:g}=Y,R=I1(),I=cU++,K={pid:null,secret:null},q=SX(HZ,Y.idle_timeout),p=SX(HZ,Y.max_lifetime),s=SX(gH,Y.connect_timeout),T=null,t,m=new d4,e=Buffer.alloc(0),U0=Y.fetch_types,b0={},$1={},s1=Math.random().toString(36).slice(2),C=1,u=0,G0=0,T0=0,k0=0,a=0,Q0=0,S0=0,C0=null,w0=null,n0=!1,D0=null,S1=null,l0=null,z4=null,g0=null,R0=null,v1=null,m1=null,v=null,C8=null,r0={queue:Z.closed,idleTimer:q,connect(F){l0=F,W_()},terminate:K8,execute:q8,cancel:hH,end:HZ,count:0,id:I};return Z.closed&&Z.closed.push(r0),r0;async function xH(){let F;try{F=Y.socket?await Promise.resolve(Y.socket(Y)):new FH.Socket}catch(D){o4(D);return}return F.on("error",o4),F.on("close",H_),F.on("drain",__),F}async function hH({pid:F,secret:D},l,W0){try{t=c().i32(16).i32(80877102).i32(F).i32(D).end(16),await G_(),T.once("error",W0),T.once("close",l)}catch(K0){W0(K0)}}function q8(F){if(n0)return b6(F,f0.connection("CONNECTION_DESTROYED",Y));if(F.cancelled)return;try{return F.state=K,v?R.push(F):(v=F,v.active=!0),kH(F),i0(fH(F))&&!F.describeFirst&&!F.cursorFn&&R.length<f&&(!F.options.onexecute||F.options.onexecute(r0))}catch(D){return R.length===0&&i0(C4),u1(D),!0}}function fH(F){if(F.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return F.options.simple?c().Q().str(F.statement.string+c.N).end():F.describeFirst?Buffer.concat([Y_(F),OH]):F.prepare?F.prepared?f6(F):Buffer.concat([Y_(F),f6(F)]):bH(F)}function Y_(F){return Buffer.concat([$_(F.statement.string,F.parameters,F.statement.types,F.statement.name),NJ("S",F.statement.name)])}function f6(F){return Buffer.concat([RJ(F.parameters,F.statement.types,F.statement.name,F.cursorName),F.cursorFn?Q_("",F.cursorRows):iU])}function bH(F){return Buffer.concat([$_(F.statement.string,F.parameters,F.statement.types),oU,f6(F)])}function kH(F){let D=[],l=[],W0=NX(F,F.strings[0],F.args[0],D,l,Y);!F.tagged&&F.args.forEach((K0)=>cY(K0,D,l,Y)),F.prepare=Y.prepare&&("prepare"in F.options?F.options.prepare:!0),F.string=W0,F.signature=F.prepare&&l+W0,F.onlyDescribe&&delete $1[F.signature],F.parameters=F.parameters||D,F.prepared=F.prepare&&F.signature in $1,F.describeFirst=F.onlyDescribe||D.length&&!F.prepared,F.statement=F.prepared?$1[F.signature]:{string:W0,types:l,name:F.prepare?s1+C++:""},typeof Y.debug==="function"&&Y.debug(I,W0,D,l)}function i0(F,D){if(R0=R0?Buffer.concat([R0,F]):Buffer.from(F),D||R0.length>=1024)return Z_(D);return w0===null&&(w0=setImmediate(Z_)),!0}function Z_(F){let D=T.write(R0,F);return w0!==null&&clearImmediate(w0),R0=w0=null,D}function gH(){u1(f0.connection("CONNECT_TIMEOUT",Y,T)),T.destroy()}async function X_(){if(i0(lU),!await new Promise((D)=>T.once("data",(l)=>D(l[0]===83)))&&W==="prefer")return i4();T.removeAllListeners(),T=dU.connect({socket:T,servername:FH.isIP(T.host)?void 0:T.host,...W==="require"||W==="allow"||W==="prefer"?{rejectUnauthorized:!1}:W==="verify-full"?{}:typeof W==="object"?W:{}}),T.on("secureConnect",i4),T.on("error",o4),T.on("close",H_),T.on("drain",__)}function __(){!v&&X(r0)}function WZ(F){if(D0){if(D0.push(F),G0-=F.length,G0>0)return}e=D0?Buffer.concat(D0,a-G0):e.length===0?F:Buffer.concat([e,F],e.length+F.length);while(e.length>4){if(a=e.readUInt32BE(1),a>=e.length){G0=a-e.length,D0=[e];break}try{yH(e.subarray(0,a+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&i0(C4),u1(D)}e=e.subarray(a+1),G0=0,D0=null}}async function G_(){if(n0=!1,b0={},T||(T=await xH()),!T)return;if(s.start(),Y.socket)return W?X_():i4();if(T.on("connect",W?X_:i4),Y.path)return T.connect(Y.path);T.ssl=W,T.connect($[T0],Q[T0]),T.host=Q[T0],T.port=$[T0],T0=(T0+1)%$.length}function W_(){setTimeout(G_,u?u+Q0-UH.now():0)}function i4(){try{$1={},U0=Y.fetch_types,s1=Math.random().toString(36).slice(2),C=1,p.start(),T.on("data",WZ),b&&T.setKeepAlive&&T.setKeepAlive(!0,1000*b);let F=BJ();i0(F)}catch(F){o4(F)}}function o4(F){if(r0.queue===Z.connecting&&Y.host[k0+1])return;u1(F);while(R.length)b6(R.shift(),F)}function u1(F){g0&&(g0.destroy(F),g0=null),v&&b6(v,F),l0&&(b6(l0,F),l0=null)}function b6(F,D){if(F.reserve)return F.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+F.origin.replace(/.*\n/,`
63
63
  `),enumerable:Y.debug},query:{value:F.string,enumerable:Y.debug},parameters:{value:F.parameters,enumerable:Y.debug},args:{value:F.args,enumerable:Y.debug},types:{value:F.statement&&F.statement.types,enumerable:Y.debug}}),F.reject(D)}function HZ(){return z4||(!r0.reserved&&_(r0),!r0.reserved&&!l0&&!v&&R.length===0?(K8(),new Promise((F)=>T&&T.readyState!=="closed"?T.once("close",F):F())):z4=new Promise((F)=>v1=F))}function K8(){if(n0=!0,g0||v||l0||R.length)o4(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),T)T.removeListener("data",WZ),T.removeListener("connect",i4),T.readyState==="open"&&T.end(c().X().end());v1&&(v1(),z4=v1=null)}async function H_(F){if(e=Buffer.alloc(0),G0=0,D0=null,clearImmediate(w0),T.removeListener("data",WZ),T.removeListener("connect",i4),q.cancel(),p.cancel(),s.cancel(),T.removeAllListeners(),T=null,l0)return W_();!F&&(v||R.length)&&o4(f0.connection("CONNECTION_CLOSED",Y,T)),u=UH.now(),F&&Y.shared.retries++,Q0=(typeof k==="function"?k(Y.shared.retries):k)*1000,G(r0,f0.connection("CONNECTION_CLOSED",Y,T))}function yH(F,D=F[0]){(D===68?pH:D===100?OJ:D===65?JJ:D===83?mH:D===90?uH:D===67?dH:D===50?J_:D===49?cH:D===116?lH:D===84?iH:D===82?oH:D===110?eH:D===75?YJ:D===69?WJ:D===115?$J:D===51?QJ:D===71?zJ:D===78?LJ:D===72?FJ:D===99?EJ:D===73?DJ:D===86?VJ:D===118?MJ:D===87?UJ:AJ)(F)}function pH(F){let D=7,l,W0,K0,s0=v.isRaw?new Array(v.statement.columns.length):{};for(let Z1=0;Z1<v.statement.columns.length;Z1++)W0=v.statement.columns[Z1],l=F.readInt32BE(D),D+=4,K0=l===-1?null:v.isRaw===!0?F.subarray(D,D+=l):W0.parser===void 0?F.toString("utf8",D,D+=l):W0.parser.array===!0?W0.parser(F.toString("utf8",D+1,D+=l)):W0.parser(F.toString("utf8",D,D+=l)),v.isRaw?s0[Z1]=v.isRaw===!0?K0:L.value.from?L.value.from(K0,W0):K0:s0[W0.name]=L.value.from?L.value.from(K0,W0):K0;v.forEachFn?v.forEachFn(L.row.from?L.row.from(s0):s0,m):m[S0++]=L.row.from?L.row.from(s0):s0}function mH(F){let[D,l]=F.toString("utf8",5,F.length-1).split(c.N);if(b0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,A&&A(D,l)}function uH(F){if(v&&v.options.simple&&v.resolve(S1||m),v=S1=null,m=new d4,s.cancel(),l0){if(g){if(!b0.in_hot_standby||!b0.default_transaction_read_only)return GJ();else if(_J(g,b0))return K8()}if(U0)return l0.reserve&&(l0=null),ZJ();l0&&!l0.reserve&&q8(l0),Y.shared.retries=k0=0,l0=null;return}while(R.length&&(v=R.shift())&&(v.active=!0,v.cancelled))LH(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&F[5]===73?z4?K8():(r0.reserved=null,X(r0)):r0.reserved():z4?K8():X(r0)}function dH(F){S0=0;for(let D=F.length-1;D>0;D--){if(F[D]===32&&F[D+1]<58&&m.count===null)m.count=+F.toString("utf8",D+1,F.length-1);if(F[D-1]>=65){m.command=F.toString("utf8",5,D),m.state=K;break}}if(C8&&(C8(),C8=null),m.command==="BEGIN"&&H!==1&&!r0.reserved)return u1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return J_();if(v.cursorFn)m.count&&v.cursorFn(m),i0(C4);v.resolve(m)}function cH(){v.parsing=!1}function J_(){!m.statement&&(m.statement=v.statement),m.columns=v.statement.columns}function lH(F){let D=F.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=F.readUInt32BE(7+l*4));v.prepare&&($1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(i0(f6(v)),v.describeFirst=!1)}function iH(F){if(m.command)S1=S1||[m],S1.push(m=new d4),m.count=null,v.statement.columns=null;let D=F.readUInt16BE(5),l=7,W0;v.statement.columns=Array(D);for(let K0=0;K0<D;++K0){W0=l;while(F[l++]!==0);let s0=F.readUInt32BE(l),Z1=F.readUInt16BE(l+4),F4=F.readUInt32BE(l+6);v.statement.columns[K0]={name:L.column.from?L.column.from(F.toString("utf8",W0,l-1)):F.toString("utf8",W0,l-1),parser:O[F4],table:s0,number:Z1,type:F4},l+=18}if(m.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),i0(C4)}async function oH(F,D=F.readUInt32BE(5)){(D===3?nH:D===5?rH:D===10?sH:D===11?aH:D===12?tH:D!==0?wJ:N8)(F,D)}async function nH(){let F=await JZ();i0(c().p().str(F).z(1).end())}async function rH(F){let D="md5"+await EH(Buffer.concat([Buffer.from(await EH(await JZ()+J)),F.subarray(9)]));i0(c().p().str(D).z(1).end())}async function sH(){m1=(await K6.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let F=c.i;i0(c.inc(4).str("n,,n=*,r="+m1).i32(c.i-F-4,F).end())}async function aH(F){let D=F.toString("utf8",9).split(",").reduce((Z1,F4)=>(Z1[F4[0]]=F4.slice(2),Z1),{}),l=await K6.pbkdf2Sync(await JZ(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),W0=await oY(l,"Client Key"),K0="n=*,r="+m1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;C0=(await oY(await oY(l,"Server Key"),K0)).toString("base64");let s0="c=biws,r="+D.r+",p="+aU(W0,Buffer.from(await oY(await sU(W0),K0))).toString("base64");i0(c().p().str(s0).end())}function tH(F){if(F.toString("utf8",9).split(c.N,1)[0].slice(2)===C0)return;u1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),T.destroy()}function JZ(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function eH(){if(m.statement=v.statement,m.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),i0(C4)}function YJ(F){K.pid=F.readUInt32BE(5),K.secret=F.readUInt32BE(9)}async function ZJ(){U0=!1,(await new P1([`
64
64
  select b.oid, b.typarray
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tempest.games",
3
- "version": "0.2.29",
3
+ "version": "0.2.30",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,18 +25,18 @@
25
25
  "index.html"
26
26
  ],
27
27
  "dependencies": {
28
- "@floating-ui/react": "0.27.14",
28
+ "@floating-ui/react": "0.27.15",
29
29
  "@js-temporal/polyfill": "0.5.1",
30
- "@react-email/components": "0.3.2",
30
+ "@react-email/components": "0.3.3",
31
31
  "@t3-oss/env-core": "0.13.8",
32
32
  "@trpc/client": "11.4.3",
33
33
  "@trpc/server": "11.4.3",
34
34
  "arktype": "2.1.20",
35
35
  "cron": "4.3.2",
36
36
  "drizzle-orm": "0.44.4",
37
- "motion": "12.23.11",
37
+ "motion": "12.23.12",
38
38
  "nanoid": "5.1.5",
39
- "openai": "5.10.2",
39
+ "openai": "5.11.0",
40
40
  "postgres": "3.4.7",
41
41
  "react": "19.1.1",
42
42
  "react-dom": "19.1.1",
@@ -45,12 +45,12 @@
45
45
  "safegen": "0.6.2",
46
46
  "socket.io": "4.8.1",
47
47
  "socket.io-client": "4.8.1",
48
- "atom.io": "0.33.20",
49
48
  "treetrunks": "0.1.3",
49
+ "atom.io": "0.33.21",
50
50
  "safedeposit": "0.1.1"
51
51
  },
52
52
  "devDependencies": {
53
- "@react-email/components": "0.3.2",
53
+ "@react-email/components": "0.3.3",
54
54
  "@types/bun": "npm:bun-types@1.2.19",
55
55
  "@types/cors": "2.8.19",
56
56
  "@types/node": "24.1.0",
@@ -70,7 +70,7 @@
70
70
  "vite": "7.0.6",
71
71
  "vite-tsconfig-paths": "5.1.4",
72
72
  "vitest": "3.2.4",
73
- "flightdeck": "0.2.51",
73
+ "flightdeck": "0.2.52",
74
74
  "varmint": "0.5.2"
75
75
  },
76
76
  "scripts": {