tempest.games 0.2.63 → 0.2.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/bin/backend.bun.js +241 -240
- package/bin/backend.worker.game.bun.js +1 -1
- package/bin/backend.worker.tribunal.bun.js +57 -57
- package/bin/frontend.bun.js +1 -1
- package/bin/setup-db.bun.js +3 -3
- package/package.json +12 -11
package/bin/frontend.bun.js
CHANGED
|
@@ -56,7 +56,7 @@ ${O.trace}`:`No previous disposal trace for ${Z} was found.`);return}_.subject.n
|
|
|
56
56
|
${G} was most recently disposed
|
|
57
57
|
${F.trace}`:`No previous disposal trace for ${G} was found.`),Z}let H=j0(Y),Q=W.molecules.get(H);if(!Q){let F=X.disposalTraces.buffer.find((O)=>O?.key===H);return X.logger.error("\u274C","key",Z,"claim failed:",`Could not allocate to ${H} in store "${X.config.name}".`,F?`
|
|
58
58
|
${H} was most recently disposed
|
|
59
|
-
${F.trace}`:`No previous disposal trace for ${H} was found.`),Z}let J=X.moleculeGraph.getRelationEntries({downstreamMoleculeKey:$.stringKey}).filter(([,{source:F}])=>F!==G).map(([F])=>X1(F));if(_)W.moleculeGraph.delete(G);W.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:$.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:$.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if(F1(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.subEvents.push(z);return Z}function ZU(X,Y,Z){switch(Z){case"newValue":X7(X,Y);break;case"oldValue":W2(X,Y.token);break}}function _U(X,Y,Z){switch(Z){case"newValue":W2(X,Y.token);break;case"oldValue":if(X7(X,Y),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function X7(X,Y){let{token:Z}=Y;if(Y.subType==="writable"&&Y.value)b1(X,Z,Y.value);else k1(X,Z)}function GU(X,Y,Z){switch(Z){case"newValue":yY(X,Y.provenance,Y.key);break;case"oldValue":eY(X,Y.key);break}}function WU(X,Y,Z){switch(Z){case"newValue":eY(X,Y.key);break;case"oldValue":yY(X,Y.provenance.map(X1),Y.key);for(let[_,G]of Y.values){let W=X.families.get(_);if(W){k1(X,W,Y.key);let $=`${_}(${j0(Y.key)})`;X.valueMap.set($,G)}}break}}function $U(X,Y,Z){switch(Z){case"newValue":for(let _ of Y.to)gY(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)gY(X,G,Y.key,_),_=void 0}break}}function Y7(X,Y,Z){let _=Z==="newValue"?Y.subEvents:[...Y.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":XU(X,G,Z);break;case"state_creation":ZU(X,G,Z);break;case"state_disposal":_U(X,G,Z);break;case"molecule_creation":GU(X,G,Z);break;case"molecule_disposal":WU(X,G,Z);break;case"molecule_transfer":$U(X,G,Z);break;case"transaction_outcome":Y7(X,G,Z);break}}function V8(X){return"epoch"in X.transactionMeta}function F1(X){return"phase"in X.transactionMeta}function Z7(X,Y){return X.transactionMeta.actionContinuities.getRelatedKey(Y)}function HU(X,Y){return X.transactionMeta.epoch.get(Y)}function JU(X,Y){let Z=Z7(X,Y);if(Z===void 0)return;return HU(X,Z)}function QU(X,Y,Z){let _=Z7(X,Y);if(_!==void 0)X.transactionMeta.epoch.set(_,Z)}function zU(X,Y){let Z=t(X),{parent:_}=Z;Z.transactionMeta.phase="applying",Z.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(Z.transactionMeta);let{subEvents:G}=Z.transactionMeta.update;if(X.logger.info("\uD83D\uDEC4","transaction",Z.transactionMeta.update.token.key,`applying ${G.length} subEvents:`,G),Y7(_,Z.transactionMeta.update,"newValue"),V8(_))QU(_,Z.transactionMeta.update.token.key,Z.transactionMeta.update.epoch),B0(X,{key:Z.transactionMeta.update.token.key,type:"transaction"})?.subject.next(Z.transactionMeta.update),X.logger.info("\uD83D\uDEEC","transaction",Z.transactionMeta.update.token.key,"applied");else if(F1(_))_.transactionMeta.update.subEvents.push(Z.transactionMeta.update);_.on.transactionApplying.next(null)}function FU(X){return{store:X}}var UU=(X,Y,Z,_)=>{let G=t(X),W={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new y1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new y1(G.families),joins:new y1(G.joins),operation:{open:!1},readonlySelectors:new y1(G.readonlySelectors),timelines:new y1(G.timelines),timelineTopics:G.timelineTopics.overlay(),trackers:new Map,transactions:new y1(G.transactions),selectorAtoms:G.selectorAtoms.overlay(),selectorGraph:G.selectorGraph.overlay(),writableSelectors:new y1(G.writableSelectors),valueMap:new y1(G.valueMap),defaults:G.defaults,disposalTraces:X.disposalTraces.copy(),molecules:new y1(G.molecules),moleculeGraph:G.moleculeGraph.overlay(),moleculeData:G.moleculeData.overlay(),keyRefsInJoins:G.keyRefsInJoins.overlay(),miscResources:new y1(G.miscResources)},$=JU(X,Y.key),H={phase:"building",update:{type:"transaction_outcome",token:Y,id:_,epoch:$===void 0?NaN:$+1,timestamp:Date.now(),subEvents:[],params:Z,output:void 0},toolkit:{get:(...J)=>k1(Q,...J),set:(...J)=>{b1(Q,...J)},reset:(...J)=>{R6(Q,...J)},run:(J,z=gG())=>bY(Q,J,z),find:(...J)=>e0(X,...J),json:(J)=>k4(Q,J),dispose:(...J)=>{W2(Q,...J)},env:()=>FU(Q)}},Q=Object.assign(W,{transactionMeta:H});return G.child=Q,X.logger.info("\uD83D\uDEEB","transaction",Y.key,"building with params:",Z),Q};function pY(X,Y){let{key:Z}=Y,_=X.transactions.has(Z),G={key:Z,type:"transaction",run:($,H)=>{let Q=UU(X,g1(G),$,H);try{let{toolkit:J}=Q.transactionMeta,z=Y.do(J,...$);return zU(Q,z),z}catch(J){throw eF(Q),X.logger.warn("\uD83D\uDCA5","transaction",Z,"caught:",J),J}},install:($)=>pY($,Y),subject:new Y0};t(X).transactions.set(Z,G);let W=g1(G);if(!_)X.on.transactionCreation.next(W);return W}var pG=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 $4({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new $4({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new $4({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new $4({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new tF(100);molecules=new Map;moleculeGraph=new $4({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});moleculeData=new $4({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});keyRefsInJoins=new $4({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});miscResources=new Map;on={atomCreation:new Y0,atomDisposal:new Y0,selectorCreation:new Y0,selectorDisposal:new Y0,timelineCreation:new Y0,transactionCreation:new Y0,transactionApplying:new sF(null),operationClose:new Y0,moleculeCreation:new Y0,moleculeDisposal:new Y0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:globalThis.process?.env?.NODE_ENV==="production"};loggers=[new bG("warn",(X,Y,Z)=>!D8(Z))];logger={error:(...X)=>{for(let Y of this.loggers)Y.error(...X)},info:(...X)=>{for(let Y of this.loggers)Y.info(...X)},warn:(...X)=>{for(let Y of this.loggers)Y.warn(...X)}};constructor(X,Y=null){if(this.config={...Y?.config,...X},Y!==null){if(this.operation={...Y?.operation},V8(Y))this.transactionMeta={epoch:new Map(Y?.transactionMeta.epoch),actionContinuities:new $4(Y?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Y.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let Z=new Set;for(let[,_]of Y.atoms){if(Z.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=k4(Y,_),W=N6(_);Z.add(G.key),Z.add(W.key)}}for(let[,_]of Y.readonlySelectors)_.install(this);for(let[,_]of Y.writableSelectors){if(Z.has(_.key))continue;_.install(this)}for(let[,_]of Y.transactions)_.install(this);for(let[,_]of Y.timelines)_.install(this)}}},L1={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new pG({name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:process?.env?.NODE_ENV==="production"}),globalThis.ATOM_IO_IMPLICIT_STORE}};var EU=class extends Error{constructor(X,Y){super(`${G4[X.type]} ${j0(X.key)} not found in store "${Y.config.name}".`)}};function B0(X,Y){let Z,_=X;while(_!==null){switch(Y.type){case"atom":case"mutable_atom":Z=_.atoms.get(Y.key);break;case"writable_pure_selector":case"writable_held_selector":Z=_.writableSelectors.get(Y.key);break;case"readonly_pure_selector":case"readonly_held_selector":Z=_.readonlySelectors.get(Y.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":Z=_.families.get(Y.key);break;case"timeline":Z=_.timelines.get(Y.key);break;case"transaction":Z=_.transactions.get(Y.key);break}if(Z)return Z;_=_.child}throw new EU(Y,X)}function _7(X,Y,Z,_){let G=X.disposalTraces.buffer.find((W)=>W?.key===j0(_));switch(X.logger.error("\u274C",Y.type,Y.key,"gets a fallback value because key",_,"is not allocated",G?`This key was previously disposed:
|
|
59
|
+
${F.trace}`:`No previous disposal trace for ${H} was found.`),Z}let J=X.moleculeGraph.getRelationEntries({downstreamMoleculeKey:$.stringKey}).filter(([,{source:F}])=>F!==G).map(([F])=>X1(F));if(_)W.moleculeGraph.delete(G);W.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:$.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:$.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if(F1(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.subEvents.push(z);return Z}function ZU(X,Y,Z){switch(Z){case"newValue":X7(X,Y);break;case"oldValue":W2(X,Y.token);break}}function _U(X,Y,Z){switch(Z){case"newValue":W2(X,Y.token);break;case"oldValue":if(X7(X,Y),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function X7(X,Y){let{token:Z}=Y;if(Y.subType==="writable"&&Y.value)b1(X,Z,Y.value);else k1(X,Z)}function GU(X,Y,Z){switch(Z){case"newValue":yY(X,Y.provenance,Y.key);break;case"oldValue":eY(X,Y.key);break}}function WU(X,Y,Z){switch(Z){case"newValue":eY(X,Y.key);break;case"oldValue":yY(X,Y.provenance.map(X1),Y.key);for(let[_,G]of Y.values){let W=X.families.get(_);if(W){k1(X,W,Y.key);let $=`${_}(${j0(Y.key)})`;X.valueMap.set($,G)}}break}}function $U(X,Y,Z){switch(Z){case"newValue":for(let _ of Y.to)gY(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)gY(X,G,Y.key,_),_=void 0}break}}function Y7(X,Y,Z){let _=Z==="newValue"?Y.subEvents:[...Y.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":XU(X,G,Z);break;case"state_creation":ZU(X,G,Z);break;case"state_disposal":_U(X,G,Z);break;case"molecule_creation":GU(X,G,Z);break;case"molecule_disposal":WU(X,G,Z);break;case"molecule_transfer":$U(X,G,Z);break;case"transaction_outcome":Y7(X,G,Z);break}}function V8(X){return"epoch"in X.transactionMeta}function F1(X){return"phase"in X.transactionMeta}function Z7(X,Y){return X.transactionMeta.actionContinuities.getRelatedKey(Y)}function HU(X,Y){return X.transactionMeta.epoch.get(Y)}function JU(X,Y){let Z=Z7(X,Y);if(Z===void 0)return;return HU(X,Z)}function QU(X,Y,Z){let _=Z7(X,Y);if(_!==void 0)X.transactionMeta.epoch.set(_,Z)}function zU(X,Y){let Z=t(X),{parent:_}=Z;Z.transactionMeta.phase="applying",Z.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(Z.transactionMeta);let{subEvents:G}=Z.transactionMeta.update;if(X.logger.info("\uD83D\uDEC4","transaction",Z.transactionMeta.update.token.key,`applying ${G.length} subEvents:`,G),Y7(_,Z.transactionMeta.update,"newValue"),V8(_))QU(_,Z.transactionMeta.update.token.key,Z.transactionMeta.update.epoch),B0(X,{key:Z.transactionMeta.update.token.key,type:"transaction"})?.subject.next(Z.transactionMeta.update),X.logger.info("\uD83D\uDEEC","transaction",Z.transactionMeta.update.token.key,"applied");else if(F1(_))_.transactionMeta.update.subEvents.push(Z.transactionMeta.update);_.on.transactionApplying.next(null)}function FU(X){return{store:X}}var UU=(X,Y,Z,_)=>{let G=t(X),W={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new y1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new y1(G.families),joins:new y1(G.joins),operation:{open:!1},readonlySelectors:new y1(G.readonlySelectors),timelines:new y1(G.timelines),timelineTopics:G.timelineTopics.overlay(),trackers:new Map,transactions:new y1(G.transactions),selectorAtoms:G.selectorAtoms.overlay(),selectorGraph:G.selectorGraph.overlay(),writableSelectors:new y1(G.writableSelectors),valueMap:new y1(G.valueMap),defaults:G.defaults,disposalTraces:X.disposalTraces.copy(),molecules:new y1(G.molecules),moleculeGraph:G.moleculeGraph.overlay(),moleculeData:G.moleculeData.overlay(),keyRefsInJoins:G.keyRefsInJoins.overlay(),miscResources:new y1(G.miscResources)},$=JU(X,Y.key),H={phase:"building",update:{type:"transaction_outcome",token:Y,id:_,epoch:$===void 0?NaN:$+1,timestamp:Date.now(),subEvents:[],params:Z,output:void 0},toolkit:{get:(...J)=>k1(Q,...J),set:(...J)=>{b1(Q,...J)},reset:(...J)=>{R6(Q,...J)},run:(J,z=gG())=>bY(Q,J,z),find:(...J)=>e0(X,...J),json:(J)=>k4(Q,J),dispose:(...J)=>{W2(Q,...J)},env:()=>FU(Q)}},Q=Object.assign(W,{transactionMeta:H});return G.child=Q,X.logger.info("\uD83D\uDEEB","transaction",Y.key,"building with params:",Z),Q};function pY(X,Y){let{key:Z}=Y,_=X.transactions.has(Z),G={key:Z,type:"transaction",run:($,H)=>{let Q=UU(X,g1(G),$,H);try{let{toolkit:J}=Q.transactionMeta,z=Y.do(J,...$);return zU(Q,z),z}catch(J){throw eF(Q),X.logger.warn("\uD83D\uDCA5","transaction",Z,"caught:",J),J}},install:($)=>pY($,Y),subject:new Y0};t(X).transactions.set(Z,G);let W=g1(G);if(!_)X.on.transactionCreation.next(W);return W}var pG=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 $4({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new $4({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new $4({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new $4({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new tF(100);molecules=new Map;moleculeGraph=new $4({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});moleculeData=new $4({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});keyRefsInJoins=new $4({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...X)=>X.sort().join(":")});miscResources=new Map;on={atomCreation:new Y0,atomDisposal:new Y0,selectorCreation:new Y0,selectorDisposal:new Y0,timelineCreation:new Y0,transactionCreation:new Y0,transactionApplying:new sF(null),operationClose:new Y0,moleculeCreation:new Y0,moleculeDisposal:new Y0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:globalThis.process?.env?.NODE_ENV==="production"};loggers=[new bG("warn",(X,Y,Z)=>!D8(Z))];logger={error:(...X)=>{for(let Y of this.loggers)Y.error(...X)},info:(...X)=>{for(let Y of this.loggers)Y.info(...X)},warn:(...X)=>{for(let Y of this.loggers)Y.warn(...X)}};constructor(X,Y=null){if(this.config={...Y?.config,...X},Y!==null){if(this.operation={...Y?.operation},V8(Y))this.transactionMeta={epoch:new Map(Y?.transactionMeta.epoch),actionContinuities:new $4(Y?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Y.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let Z=new Set;for(let[,_]of Y.atoms){if(Z.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=k4(Y,_),W=N6(_);Z.add(G.key),Z.add(W.key)}}for(let[,_]of Y.readonlySelectors)_.install(this);for(let[,_]of Y.writableSelectors){if(Z.has(_.key))continue;_.install(this)}for(let[,_]of Y.transactions)_.install(this);for(let[,_]of Y.timelines)_.install(this)}}},L1={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new pG({name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:globalThis.process?.env?.NODE_ENV==="production"}),globalThis.ATOM_IO_IMPLICIT_STORE}};var EU=class extends Error{constructor(X,Y){super(`${G4[X.type]} ${j0(X.key)} not found in store "${Y.config.name}".`)}};function B0(X,Y){let Z,_=X;while(_!==null){switch(Y.type){case"atom":case"mutable_atom":Z=_.atoms.get(Y.key);break;case"writable_pure_selector":case"writable_held_selector":Z=_.writableSelectors.get(Y.key);break;case"readonly_pure_selector":case"readonly_held_selector":Z=_.readonlySelectors.get(Y.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":Z=_.families.get(Y.key);break;case"timeline":Z=_.timelines.get(Y.key);break;case"transaction":Z=_.transactions.get(Y.key);break}if(Z)return Z;_=_.child}throw new EU(Y,X)}function _7(X,Y,Z,_){let G=X.disposalTraces.buffer.find((W)=>W?.key===j0(_));switch(X.logger.error("\u274C",Y.type,Y.key,"gets a fallback value because key",_,"is not allocated",G?`This key was previously disposed:
|
|
60
60
|
${G.trace}`:"(no previous disposal trace found)"),Z.type){case"mutable_atom_family":{if(X.defaults.has(Z.key))return X.defaults.get(Z.key);let W=new Z.class;return X.defaults.set(Z.key,W),W.READONLY_VIEW}case"atom_family":{if(X.defaults.has(Z.key))return X.defaults.get(Z.key);let W=Z.default,$=W(_);return X.defaults.set(Z.key,$),$}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(X.defaults.has(Z.key))return X.defaults.get(Z.key);let W=Z.default(_);return X.defaults.set(Z.key,W),W}}}function I6(X,Y){let{type:Z,key:_,catch:G}=Y;switch(Z){case"readonly_pure_selector":case"writable_pure_selector":{let W;X.logger.info("\uD83E\uDDEE",Z,_,"computing value");try{if(W=Y.getFrom(X),W instanceof Promise)return W.catch(($)=>{if(X.logger.error("\uD83D\uDCA5",Z,_,"rejected:",$),G){for(let H of G)if($ instanceof H)return $}throw $})}catch($){if(X.logger.error("\uD83D\uDCA5",Z,_,"rejected:",$),G){for(let H of G)if($ instanceof H)return B1(X,Y,$)}throw $}return B1(X,Y,W)}case"atom":{let W;if(H2(Y.default))try{if(W=Y.default(),W instanceof Promise)W=W.catch(($)=>{if(X.logger.error("\uD83D\uDCA5",Z,_,"rejected:",$),G){for(let H of G)if($ instanceof H)return $}throw $})}catch($){if(X.logger.error("\uD83D\uDCA5",Z,_,"rejected:",$),G){for(let H of G)if($ instanceof H)return W=B1(X,Y,$),X.logger.info("\u2728",Y.type,_,"computed default",W),W}throw $}else W=Y.default,X.logger.info("\u2728",Y.type,_,"using static default",W);return B1(X,Y,W)}}}function h4(X,Y,Z){if(X.valueMap.has(Y.key))return CU(X,Y,Z);X.logger.info("\u2754",Y.type,Y.key,"value not found in cache");let{key:_}=Y;switch(Y.type){case"readonly_held_selector":case"writable_held_selector":return X.logger.info("\uD83E\uDDEE",Y.type,_,"computing value"),Y.getFrom(X);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return I6(X,Y);case"mutable_atom":{let G=new Y.class;return X.logger.info("\u2728",Y.type,_,"created new instance",G),B1(X,Y,G)}}}function XZ(X,Y){return B0(X,{key:Y.family.key,type:`${Y.type}_family`})}var sG={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},J2=Symbol("MUST_CREATE"),OU=Symbol("DO_NOT_CREATE");function Q2(X,Y,Z,_){let G=j0(_),W=Y.molecules.get(G);if(!W&&Y.config.lifespan==="immortal"){let{type:H,key:Q}=Z;return Y.logger.warn("\uD83D\uDCA3","key",G,"was used to mint a counterfeit token for",H,`"${Q}"`),{counterfeit:!0,key:`${Q}(${G})`,type:sG[H],family:{key:Q,subKey:G}}}let $;if(X===J2){if(Y.logger.info("\uD83D\uDC6A",Z.type,Z.key,"adds member",typeof _==="string"?`\`${_}\``:_),$=Z.create(_),W)Y.moleculeData.set(G,Z.key)}else{let{type:H,key:Q}=Z;return{key:`${Q}(${G})`,type:sG[H],family:{key:Q,subKey:G}}}return $}function YZ(X,...Y){let Z,_,G,W,$;if(Y.length===1){if($=Y[0],"family"in $){let Q=XZ(X,$);if(G=B0(X,Q),W=X1($.family.subKey),Z=z2(X,Q,W),"counterfeit"in $)return{token:$,family:G,subKey:W,isNew:!1};if(!Z)_=Q2(J2,X,Q,W),$=_;else $=Z}}else if(G=B0(X,Y[0]),W=Y[1],Z=z2(X,G,W),!Z)_=Q2(J2,X,G,W),$=_;else $=Z;let H="counterfeit"in $;if(Boolean(_)&&H===!1&&G){let Q;switch($.type){case"readonly_pure_selector":case"readonly_held_selector":Q="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":Q="writable";break}let J={type:"state_creation",subType:Q,token:$,timestamp:Date.now()};G.subject.next(J);let z=t(X);if($.family){if(V8(z))switch($.type){case"atom":case"mutable_atom":X.on.atomCreation.next($);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":X.on.selectorCreation.next($);break}else if(F1(z)&&z.on.transactionApplying.state===null)z.transactionMeta.update.subEvents.push(J)}}return{token:$,family:G,subKey:W,isNew:Boolean(_)}}function k1(X,...Y){let{token:Z,family:_,subKey:G}=YZ(X,...Y);if("counterfeit"in Z&&_&&G)return _7(X,Z,_,G);return h4(X,B0(X,Z))}function z2(X,Y,Z){let _=j0(Z),G=`${Y.key}(${_})`,W=t(X),$;switch(Y.type){case"atom_family":case"mutable_atom_family":$=W.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":$=W.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":$=W.readonlySelectors.get(G);break}if($)return g1($);return $}function e0(X,Y,Z){let _=B0(X,Y),G=z2(X,Y,Z);if(G)return G;return Q2(OU,X,_,Z)}function F2(X,Y,Z){let _=Y.key,G="readonly_pure_selector_family",W={key:_,type:"readonly_pure_selector_family"},$=X.families.get(_);if($&&X.config.isProduction===!0)X.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${G4[$.type]} "${$.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new Y0,J={...W,create:(z)=>{let F=j0(z),O={key:_,subKey:F},D=`${_}(${F})`,w=t(X),R={key:D,get:Y.get(z)};if(Y.catch)R.catch=Y.catch;return WZ(w,R,O)},internalRoles:Z,subject:H,install:(z)=>F2(z,Y),default:(z)=>{return Y.get(z)({get:(...F)=>k1(X,...F),find:(...F)=>e0(X,...F),json:(F)=>k4(X,F)})}};return X.families.set(_,J),W}function G2(X,Y,Z){let _={key:Y.key,type:"atom_family"},G=X.families.get(Y.key);if(G&&X.config.isProduction===!0)X.logger.error("\u2757","atom_family",Y.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new Y0,H={..._,create:(Q)=>{let J=j0(Q),z={key:Y.key,subKey:J},F=`${Y.key}(${J})`,O=t(X),D=Y.default,w={key:F,default:H2(D)?()=>D(Q):D};if(Y.effects)w.effects=Y.effects(Q);if(Y.catch)w.catch=Y.catch;return f4(O,w,z)},default:Y.default,subject:W,install:(Q)=>G2(Q,Y),internalRoles:Z};if(X.families.set(Y.key,H),H2(Y.default)===!1)X.defaults.set(Y.key,Y.default);return _}function G7(X,Y,Z){let _=Y.key,G="readonly_held_selector_family",W={key:_,type:"readonly_held_selector_family"},$=X.families.get(_);if($&&X.config.isProduction===!0)X.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${G4[$.type]} "${$.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new Y0,J={...W,create:(z)=>{let F=j0(z),O={key:_,subKey:F},D=`${_}(${F})`;return GZ(t(X),{key:D,const:Y.const(z),get:Y.get(z)},O)},internalRoles:Z,subject:H,install:(z)=>G7(z,Y),default:Y.const};return X.families.set(_,J),W}function W7(X,Y,Z){let _=Y.key,G="writable_held_selector_family",W={key:_,type:"writable_held_selector_family"},$=X.families.get(_);if($&&X.config.isProduction===!0)X.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${G4[$.type]} "${$.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new Y0,J={...W,create:(z)=>{let F=j0(z),O={key:_,subKey:F},D=`${_}(${F})`;return $Z(t(X),{key:D,const:Y.const(z),get:Y.get(z),set:Y.set(z)},O)},internalRoles:Z,subject:H,install:(z)=>W7(z,Y),default:Y.const};return X.families.set(_,J),W}function ZZ(X,Y,Z){let _=Y.key,G="writable_pure_selector_family",W={key:_,type:"writable_pure_selector_family"},$=X.families.get(_);if($&&X.config.isProduction===!0)X.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${G4[$.type]} "${$.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new Y0,J={...W,create:(z)=>{let F=j0(z),O={key:_,subKey:F},D=`${_}(${F})`,w=t(X),R={key:D,get:Y.get(z),set:Y.set(z)};if(Y.catch)R.catch=Y.catch;return HZ(w,R,O)},internalRoles:Z,subject:H,install:(z)=>ZZ(z,Y),default:(z)=>{return Y.get(z)({get:(...F)=>k1(X,...F),find:(...F)=>e0(X,...F),json:(F)=>k4(X,F)})}};return X.families.set(_,J),W}function mY(X,Y){let Z="set"in Y,_="const"in Y;if(_&&Z)return W7(X,Y,void 0);if(_)return G7(X,Y,void 0);if(Z)return ZZ(X,Y);return F2(X,Y)}function W2(X,...Y){let Z;if(Y.length===1)Z=Y[0];else{let _=Y[0],G=Y[1];Z=e0(X,_,G)}try{B0(X,Z)}catch(_){X.logger.error("\u274C",Z.type,Z.key,`could not be disposed because it was not found in the store "${X.config.name}".`);return}switch(Z.type){case"atom":case"mutable_atom":U7(X,Z);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":NU(X,Z);break}}function $7(X,Y){if(X.operation.open){let Z=performance.now();return X.logger.info("\uD83D\uDEAB",Y.type,Y.key,`deferring setState at T-${Z} until setState for "${X.operation.token.key}" is done`),Z}return X.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:Y,subEvents:[]},X.logger.info("\u2B55",Y.type,Y.key,`operation start in store "${X.config.name}"${F1(X)?` ${X.transactionMeta.phase} "${X.transactionMeta.update.token.key}"`:""}`),X}function H7(X){if(X.operation.open)X.logger.info("\uD83D\uDD34",X.operation.token.type,X.operation.token.key,`operation done in store "${X.config.name}"`);X.operation={open:!1},X.on.operationClose.next(X.operation)}var J7=(X,Y)=>{if(!X.operation.open)return X.logger.error("\uD83D\uDC1E","unknown",Y,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return X.operation.done.has(Y)},B6=(X,Y)=>{if(!X.operation.open){X.logger.error("\uD83D\uDC1E","unknown",Y,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}X.operation.done.add(Y)};function rY(X,Y,{oldValue:Z,newValue:_},G,W){let $=g1(Y);if(G&&W){Y.subject.next({newValue:_});let F={checkpoint:!0,type:"state_creation",subType:"writable",token:$,timestamp:Date.now(),value:_};X.operation.subEvents.push(F),W.subject.next(F);let O=t(X);if($.family){if(V8(O))switch($.type){case"atom":case"mutable_atom":X.on.atomCreation.next($);break;case"writable_pure_selector":case"writable_held_selector":X.on.selectorCreation.next($);break}else if(F1(O)&&O.on.transactionApplying.state===null)O.transactionMeta.update.subEvents.push(F)}return}let{key:H,subject:Q,type:J}=Y,z={oldValue:oY(Z)?Z.READONLY_VIEW:Z,newValue:oY(_)?_.READONLY_VIEW:_};if(V8(X)){switch(J){case"mutable_atom":X.logger.info("\uD83D\uDCE2",J,H,"is now (",_,") subscribers:",Q.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":X.logger.info("\uD83D\uDCE2",J,H,"went (",Z,"->",_,") subscribers:",Q.subscribers.keys())}Q.next(z)}if(F1(X)&&(J==="mutable_atom"||J==="atom")){if(X.on.transactionApplying.state===null){if(oY(_))return;let{timestamp:F}=X.operation,O={type:"atom_update",token:$,timestamp:F,update:z};X.transactionMeta.update.subEvents.push(O),X.logger.info("\uD83D\uDCC1","atom",H,"stowed (",Z,"->",_,")");return}if(zZ(Y,"tracker:signal")){let F=H.slice(1),O=X.atoms.get(F);if(h4(X,O,"mut").do(z.newValue)===null===!0)QZ(X,O)}}}var sY=(X,Y,Z)=>{let _=h4(X,Y,"mut"),G=iY(Z,_);return X.logger.info("\u2B50","atom",Y.key,"setting value",G),G=B1(X,Y,G),B6(X,Y.key),QZ(X,Y),{oldValue:_,newValue:G}};function lY(X,Y){switch(Y.type){case"mutable_atom":return sY(X,Y,new Y.class);case"atom":{let Z;if(H2(Y.default))Z=I6(X,Y);else Z=Y.default;return sY(X,Y,Z)}}}function VU(X,Y){let Z;switch(Y.type){case"atom":case"mutable_atom":Z=lY(X,Y);break;case"writable_held_selector":{let _=U2(X,Y.key);for(let W of _.values())rY(X,Y,lY(X,W),!1);let G=Y.getFrom(X);Z={oldValue:G,newValue:G}}break;case"writable_pure_selector":{let _=I6(X,Y),G=U2(X,Y.key);for(let W of G.values())rY(X,Y,lY(X,W),!1);Z={oldValue:_,newValue:I6(X,Y)}}break}return Z}function b1(X,...Y){L8(K6,X,...Y)}var tY=Symbol("RESET");function R6(X,...Y){b1(X,...[...Y,tY])}function DU(X,Y,Z){let _,G,W,{type:$,key:H}=Y;switch(Y.type){case"writable_pure_selector":_=h4(X,Y,"mut"),G=iY(Z,_),G=B1(X,Y,G);break;case"writable_held_selector":W=Y.const,iY(Z,W),_=W,G=W}return X.logger.info("\u2B50",$,H,"setting to",G),B6(X,H),Y.setSelf(G),{oldValue:_,newValue:G}}var LU=(X,Y,Z)=>{let _;switch(Y.type){case"atom":case"mutable_atom":_=sY(X,Y,Z);break;case"writable_pure_selector":case"writable_held_selector":_=DU(X,Y,Z);break}return _},K6=Symbol("OWN_OP"),_Z=Symbol("JOIN_OP");function L8(X,Y,...Z){let _,G,W,$,H,Q;if(Z.length===2){if(W=Z[0],Q=Z[1],"family"in W)if($=XZ(Y,W),H=X1(W.family.subKey),_=z2(Y,$,H),!_)W=G=Q2(J2,Y,$,H);else W=_}else if($=B0(Y,Z[0]),H=Z[1],Q=Z[2],_=z2(Y,$,H),!_)W=G=Q2(J2,Y,$,H);else W=_;let J=Q===tY?"reset":"set",z;if(X===K6){let D=$7(Y,W);if(typeof D==="number"){let w=D,R=Y.on.operationClose.subscribe(`waiting to ${J} "${W.key}" at T-${w}`,function(){R(),Y.logger.info("\uD83D\uDFE2",W.type,W.key,"resuming deferred",J,`from T-${w}`),L8(X,Y,W,Q)});return}z=D}else z=Y;if("counterfeit"in W&&"family"in W){let D=W.family.subKey,w=Y.disposalTraces.buffer.find((R)=>R?.key===D);Y.logger.error("\u274C",W.type,W.key,"could not be",J,"because key",D,"is not allocated.",w?`this key was previously disposed:${w.trace}`:"(no previous disposal trace found)");return}let F=B0(z,W),O;if(Q===tY)O=VU(z,F);else O=LU(z,F,Q);if(rY(z,F,O,Boolean(G),$),X===K6)H7(z)}var Q7=(X,Y)=>t(X).atoms.has(Y),AU=(X,Y)=>t(X).writableSelectors.has(Y),MU=(X,Y)=>t(X).readonlySelectors.has(Y),RU=(X,Y)=>Q7(X,Y)||AU(X,Y)||MU(X,Y);function tG(X,Y){return t(X).selectorGraph.getRelationEntries({downstreamSelectorKey:Y}).filter(([Z,{source:_}])=>_!==Y).map(([Z,{source:_}])=>_).filter((Z)=>RU(X,Z))}function U2(X,Y,Z=new Set){let _=tG(X,Y),G=new Map;while(_.length>0){let W=_.pop();if(Z.has(W))continue;if(Z.add(W),Q7(X,W)){let $=X.atoms.get(W);G.set($.key,$)}else _.push(...tG(X,W))}return G}function wU(X,Y,Z,_,G){let W=t(X),{type:$,key:H}=_;if($==="atom"||$==="mutable_atom")W.selectorAtoms.set({selectorKey:Z,atomKey:H}),X.logger.info("\uD83D\uDD0D",Y,Z,`discovers root atom "${H}"`);else{let Q=U2(X,H,G);X.logger.info("\uD83D\uDD0D",Y,Z,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())W.selectorAtoms=W.selectorAtoms.set({selectorKey:Z,atomKey:J})}G.add(H)}function T6(X,Y,Z,_){return{get:(...G)=>{let W=t(X),{token:$,family:H,subKey:Q}=YZ(X,...G),J;if("counterfeit"in $&&H&&Q)J=_7(X,$,H,Q);else J=h4(X,B0(X,$));return X.logger.info("\uD83D\uDD0C",Y,Z,`registers dependency ( "${$.key}" =`,J,")"),W.selectorGraph.set({upstreamSelectorKey:$.key,downstreamSelectorKey:Z},{source:$.key}),wU(X,Y,Z,$,_),J},set:(...G)=>{L8(_Z,t(X),...G)},find:(...G)=>e0(X,...G),json:(G)=>k4(X,G)}}function GZ(X,Y,Z){let _=t(X),G=new Y0,W=new Set,{key:$,const:H}=Y,Q="readonly_held_selector";X.logger.info("\uD83D\uDD28","readonly_held_selector",$,"is being created");let{get:J,find:z,json:F}=T6(_,"readonly_held_selector",$,W),D={...Y,type:"readonly_held_selector",subject:G,getFrom:(R)=>{let v=R.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[j,{source:P}]of v)if(P!==$)R.selectorGraph.delete(j,$);return R.selectorAtoms.delete($),Y.get({get:J,find:z,json:F},H),B1(R,D,H),X.logger.info("\u2728","readonly_held_selector",$,"=",H),W.clear(),H},install:(R)=>GZ(R,Y,Z)};if(Z)D.family=Z;_.readonlySelectors.set($,D);let w={key:$,type:"readonly_held_selector"};if(Z)w.family=Z;return w}function WZ(X,Y,Z){let _=t(X),G=new Y0,W=new Set,$=Y.key,H="readonly_pure_selector";X.logger.info("\uD83D\uDD28","readonly_pure_selector",$,"is being created");let{get:Q,find:J,json:z}=T6(_,"readonly_pure_selector",$,W),O={...Y,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=t(X),R=w.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[j,{source:P}]of R)if(P!==$)w.selectorGraph.delete(j,$);w.selectorAtoms.delete($);let v=B1(w,O,Y.get({get:Q,find:J,json:z}));return X.logger.info("\u2728","readonly_pure_selector",$,"=",v),W.clear(),v},install:(w)=>WZ(w,Y,Z)};if(Z)O.family=Z;_.readonlySelectors.set($,O);let D={key:$,type:"readonly_pure_selector"};if(Z)D.family=Z;return D}function $Z(X,Y,Z){let _=t(X),G=new Y0,W=new Set,{key:$,const:H}=Y,Q="writable_held_selector";X.logger.info("\uD83D\uDD28","writable_held_selector",$,"is being created");let J=T6(_,"writable_held_selector",$,W),{find:z,get:F,json:O}=J,D={find:z,get:F,json:O},v={...Y,type:"writable_held_selector",subject:G,getFrom:(P)=>{let h=P.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[i,{source:g}]of h)if(g!==$)P.selectorGraph.delete(i,$);return P.selectorAtoms.delete($),Y.get(D,H),B1(P,v,H),X.logger.info("\u2728","writable_held_selector",$,"=",H),W.clear(),H},setSelf:()=>{Y.set(J,H)},install:(P)=>$Z(P,Y,Z)};if(Z)v.family=Z;_.writableSelectors.set($,v);let j={key:$,type:"writable_held_selector"};if(Z)j.family=Z;return j}function HZ(X,Y,Z){let _=t(X),G=new Y0,W=new Set,$=Y.key,H="writable_pure_selector";X.logger.info("\uD83D\uDD28","writable_pure_selector",$,"is being created");let Q=T6(_,"writable_pure_selector",$,W),{find:J,get:z,json:F}=Q,O={find:J,get:z,json:F},R={...Y,type:"writable_pure_selector",subject:G,getFrom:(j)=>{let P=j.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[i,{source:g}]of P)if(g!==$)j.selectorGraph.delete(i,$);j.selectorAtoms.delete($);let h=B1(j,R,Y.get(O));return X.logger.info("\u2728","writable_pure_selector",$,"=",h),W.clear(),h},setSelf:(j)=>{Y.set(Q,j)},install:(j)=>HZ(j,Y,Z)};if(Z)R.family=Z;_.writableSelectors.set($,R);let v={key:$,type:"writable_pure_selector"};if(Z)v.family=Z;return v}function mG(X,Y){let Z="set"in Y,_="const"in Y;if(_&&Z){let W=$Z(X,Y,void 0);return X.on.selectorCreation.next(W),W}if(_){let W=GZ(X,Y,void 0);return X.on.selectorCreation.next(W),W}if(Z){let W=HZ(X,Y,void 0);return X.on.selectorCreation.next(W),W}let G=WZ(X,Y,void 0);return X.on.selectorCreation.next(G),G}function NU(X,Y){let Z=t(X),{key:_,type:G,family:W}=Y;if(!W)X.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(Z.molecules.get(W.subKey))Z.moleculeData.delete(W.subKey,W.key);let $;switch(Y.type){case"writable_held_selector":Z.writableSelectors.delete(_),$={key:W.key,type:"writable_held_selector_family"},B0(X,$).subject.next({type:"state_disposal",subType:"selector",token:Y,timestamp:Date.now()});break;case"writable_pure_selector":Z.writableSelectors.delete(_),$={key:W.key,type:"writable_pure_selector_family"},B0(X,$).subject.next({type:"state_disposal",subType:"selector",token:Y,timestamp:Date.now()});break;case"readonly_held_selector":Z.readonlySelectors.delete(_),$={key:W.key,type:"readonly_held_selector_family"},B0(X,$).subject.next({type:"state_disposal",subType:"selector",token:Y,timestamp:Date.now()});break;case"readonly_pure_selector":Z.readonlySelectors.delete(_),$={key:W.key,type:"readonly_pure_selector_family"},B0(X,$).subject.next({type:"state_disposal",subType:"selector",token:Y,timestamp:Date.now()});break}if(Z.valueMap.delete(_),Z.selectorAtoms.delete(_),Z.selectorGraph.delete(_),Z.moleculeData.delete(W.key,W.subKey),X.logger.info("\uD83D\uDD25",Y.type,_,"deleted"),F1(Z)&&Z.transactionMeta.phase==="building")Z.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Y,timestamp:Date.now()});else X.on.selectorDisposal.next(Y)}}var IU=(X,Y)=>{let Z=t(X);if(Z.operation.open)return Z.operation.prev.get(Y.key);return Z.valueMap.get(Y.key)},aG=(X,Y,Z)=>{return Z.subject.subscribe(`${Y.type}:${Y.key}`,(_)=>{X.logger.info("\uD83D\uDCE2",Y.type,Y.key,"root",Z.key,"went",_.oldValue,"->",_.newValue);let G=IU(X,Y),W=h4(X,Y);X.logger.info("\u2728",Y.type,Y.key,"went",G,"->",W),Y.subject.next({newValue:W,oldValue:G})})};function E2(X,Y,Z,_){function G(F){if(X.operation.open){if(W?.type==="atom"&&zZ(W,"tracker:signal")&&"*"+X.operation.token.key===Y.key&&"inboundTracker"in _)return;let O=X.on.operationClose.subscribe(`state subscription ${Z}`,()=>{O(),_(F)})}else _(F)}YZ(X,Y);let W=B0(X,Y);X.logger.info("\uD83D\uDC40",W.type,W.key,`Adding subscription "${Z}"`);let $=W.type==="writable_pure_selector"||W.type==="readonly_pure_selector",H=new Map,Q=G;if($){h4(X,W);for(let[F,O]of U2(X,W.key))H.set(F,aG(X,W,O));Q=function(O){let D=U2(X,W.key);for(let[w,R]of H)if(D.get(w))D.delete(w);else R(),H.delete(w);for(let[w,R]of D)H.set(w,aG(X,W,R));G(O)}}let J=W.subject.subscribe(Z,Q);return()=>{X.logger.info("\uD83D\uDE48",W.type,W.key,`Removing subscription "${Z}"`),J();for(let F of H.values())F()}}var KU=(X,Y,Z,_)=>{let G=B0(X,Y);X.logger.info("\uD83D\uDC40","timeline",Y.key,`Adding subscription "${Z}"`);let W=G.subject.subscribe(Z,_);return()=>{X.logger.info("\uD83D\uDE48","timeline",Y.key,`Removing subscription "${Z}" from timeline`),W()}};var JZ=class{initializeSignalAtom(X,Y){let Z=`*${X.key}`;Y.atoms.delete(Z),Y.valueMap.delete(Z);let _=X.family?{key:`*${X.family.key}`,subKey:X.family.subKey}:void 0,G=f4(Y,{key:Z,default:null},_,["tracker:signal"]);if(Y.parent?.valueMap.has(Z)){let W=Y.parent.valueMap.get(Z);Y.valueMap.set(Z,W)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(X,Y,Z){let _=X.key,G=`tracker-from-core:${Z.config.name}:${F1(Z)?Z.transactionMeta.update.token.key:"main"}:${_}`,W=($)=>{L8(_Z,Z,Y,$)};this.unsubscribeFromInnerValue=k1(Z,X).subscribe(G,W),this.unsubscribeFromState=E2(Z,X,G,function(H){if(H.newValue!==H.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=H.newValue.subscribe(G,W)}.bind(this))}supplySignalsToCore(X,Y,Z){let _=X.key,G=`tracker-to-core:${Z.config.name}:${F1(Z)?Z.transactionMeta.update.token.key:"main"}:${_}`;E2(Z,Y,G,Object.assign(function({newValue:$,oldValue:H}){let Q=Z.timelineTopics.getRelatedKey(Y.key);if(Q&&Z.timelines.get(Q)?.timeTraveling){let J=KU(Z,{key:Q,type:"timeline"},G,function(F){J(),b1(Z,X,(O)=>{if(F==="redo"&&$)O.do($);else if(F==="undo"&&H)O.undo(H);return O})});return}b1(Z,X,(J)=>(J.do($),J))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(X,Y){let Z=t(Y),_=this.initializeSignalAtom(X,Z);this.mutableAtomToken=X,this.latestSignalToken=_,this.captureSignalsFromCore(X,_,Z),this.supplySignalsToCore(X,_,Z),Z.trackers.set(X.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),Z.trackers.delete(X.key)}}};function w6(X,Y,Z){X.logger.info("\uD83D\uDD28","atom",Y.key,`creating in store "${X.config.name}"`);let _=t(X),{key:G}=Y,W=_.atoms.get(G),$="mutable_atom";if(W?.type===$&&X.config.isProduction===!0)return X.logger.error("\u274C",$,G,"Tried to create atom, but it already exists in the store."),g1(W);let H=new Y0,Q={...Y,type:$,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${z.config.name}"`),w6(z,Y,Z)},subject:H};if(Z)Q.family=Z;_.atoms.set(Q.key,Q);let J=g1(Q);if(new JZ(J,X),!Z)mG(X,{key:`${G}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},F)=>{z(J,Y.class.fromJSON(F))}});if(Y.effects){let z=0,F=[];for(let O of Y.effects){let D=O({resetSelf:()=>{R6(X,J)},setSelf:(w)=>{b1(X,J,w)},onSet:(w)=>E2(X,J,`effect[${z}]`,w),token:J,store:aY(X)});if(D)F.push(D);++z}Q.cleanup=()=>{for(let O of F)O()}}return X.on.atomCreation.next(J),J}var BU=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(X,Y){this.latestSignalAtoms=B0(Y,G2(Y,{key:`*${X.key}`,default:null},["mutable","updates"])),this.mutableAtoms=X;let Z=(_)=>{let{type:G,token:W}=_;if(W.family){let $=X1(W.family.subKey);switch(G){case"state_creation":this.trackers.set($,new JZ(W,Y));break;case"state_disposal":{let H=this.trackers.get($);if(H)H[Symbol.dispose](),this.trackers.delete($)}}}};this.mutableAtoms.subject.subscribe(`store=${Y.config.name}::tracker-atom-family`,Z)}};function uY(X,Y,Z){let _={key:Y.key,type:"mutable_atom_family"},G=X.families.get(Y.key);if(G&&X.config.isProduction===!0)X.logger.error("\u2757","mutable_atom_family",Y.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${X.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new Y0,H={..._,create:(Q)=>{let J=j0(Q),z={key:Y.key,subKey:J},F=`${Y.key}(${J})`,O=t(X),D={key:F,class:Y.class};if(Y.effects)D.effects=Y.effects(Q);return w6(O,D,z)},class:Y.class,subject:W,install:(Q)=>uY(Q,Y),internalRoles:Z};return X.families.set(Y.key,H),ZZ(X,{key:`${Y.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},z)=>{J(_,Q,Y.class.fromJSON(z))}},["mutable","json"]),new BU(H,X),_}var TU=(X,Y)=>{let Z=t(Y),_=`${X.key}:JSON`;return Z.families.get(_)},k4=(X,Y)=>{if(Y.family)return e0(X,B0(t(X),{key:`${Y.family.key}:JSON`,type:"writable_pure_selector_family"}),X1(Y.family.subKey));return{type:"writable_pure_selector",key:`${Y.key}:JSON`}};var N6=(X)=>{let Y={type:"atom",key:`*${X.key}`};if(X.family)Y.family={key:`*${X.family.key}`,subKey:X.family.subKey};return Y};function oY(X){return typeof X==="object"&&X!==null&&"do"in X&&"undo"in X&&"subscribe"in X&&"READONLY_VIEW"in X&&"toJSON"in X}function B1(X,Y,Z){let{key:_,subject:G,type:W}=Y,$=X.valueMap.get(_);if($ instanceof nY&&!$.done){let H=$;if(Z instanceof Promise)return H.use(Z),H;return X.valueMap.set(_,Z),Z}if(Z instanceof Promise){let H=new nY(Z);return X.valueMap.set(_,H),H.then(function(J){if(X.valueMap.get(_)===H){switch($7(X,Y),B1(X,Y,J),W){case"atom":QZ(X,Y);break;case"readonly_pure_selector":case"writable_pure_selector":F7(X,_);break}H7(X),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{X.logger.error("\uD83D\uDCA5",Y.type,_,"rejected:",Q)}),H}return X.logger.info("\uD83D\uDCDD",Y.type,Y.key,"writing to cache",Z),X.valueMap.set(_,Z),Z}function CU(X,Y,Z){X.logger.info("\uD83D\uDCD6",Y.type,Y.key,"reading cached value");let _=X.valueMap.get(Y.key);if(Z==="mut"&&Y.type==="mutable_atom"&&F1(X)){let G=Y,{parent:W}=X;if(X.valueMap.hasOwn(G.key))return _;let $=W.valueMap.get(G.key);X.logger.info("\uD83D\uDCC3","atom",G.key,"copying");let H=$.toJSON(),Q=G.class.fromJSON(H);X.valueMap.set(G.key,Q),new JZ(G,W),_=Q}return _}function z7(X,Y){let Z=X.valueMap.get(Y);if(Z instanceof nY){let _=X.writableSelectors.get(Y)??X.readonlySelectors.get(Y);if(_)_.getFrom(X);return}if(X.operation.open)X.operation.prev.set(Y,Z);X.valueMap.delete(Y),X.logger.info("\uD83D\uDDD1","state",Y,"evicted")}function QZ(X,Y){let Z=t(X),{key:_,type:G}=Y,W=Z.selectorAtoms.getRelatedKeys(_);if(Z.logger.info("\uD83E\uDDF9",G,_,W?`evicting ${W.size} states downstream:`:"no downstream states",W??"to evict"),W){if(Z.operation.open)Z.logger.info("\uD83E\uDDF9",G,_,`[ ${[...Z.operation.done].join(", ")} ] already done`);for(let $ of W){if(J7(Z,$))continue;z7(Z,$),B6(Z,$)}}}function F7(X,Y){let Z=t(X),_=Z.selectorGraph.getRelationEntries({upstreamSelectorKey:Y}).filter(([G,{source:W}])=>W===Y);for(let[G]of _){if(J7(Z,G))continue;z7(Z,G),B6(Z,G),F7(X,G)}}function f4(X,Y,Z,_){let{key:W}=Y;X.logger.info("\uD83D\uDD28","atom",W,"is being created");let $=t(X),H=$.atoms.get(W);if(H?.type==="atom"&&X.config.isProduction===!0)return X.logger.error("\u274C","atom",W,"Tried to create atom, but it already exists in the store."),g1(H);let Q=new Y0,J={...Y,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",W,`installing in store "${F.config.name}"`),f4(F,Y,Z)},subject:Q};if(Z)J.family=Z;if(_)J.internalRoles=_;$.atoms.set(W,J);let z=g1(J);if(Y.effects){let F=0,O=[];for(let D of Y.effects){let w=D({resetSelf:()=>{R6(X,z)},setSelf:(R)=>{b1(X,z,R)},onSet:(R)=>E2(X,z,`effect[${F}]`,R),token:z,store:aY(X)});if(w)O.push(w);++F}J.cleanup=()=>{for(let D of O)D()}}return X.on.atomCreation.next(z),z}function zZ(X,Y){if("internalRoles"in X===!1)return!1;return X.internalRoles.includes(Y)}function U7(X,Y){let Z=t(X),{key:_,family:G}=Y,W=B0(Z,Y);if(!G)X.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{W.cleanup?.();let $=X.valueMap.get(W.key),H=B0(X,XZ(X,Y)).subject,Q={type:"state_disposal",subType:"atom",token:Y,value:$,timestamp:Date.now()};H.next(Q);let J=F1(Z);if(Z.atoms.delete(_),Z.valueMap.delete(_),Z.selectorAtoms.delete(_),Z.atomsThatAreDefault.delete(_),Z.moleculeData.delete(G.key,G.subKey),X.timelineTopics.delete(_),Y.type==="mutable_atom")U7(X,N6(Y)),X.trackers.delete(_);if(X.logger.info("\uD83D\uDD25","atom",_,"deleted"),J&&Z.transactionMeta.phase==="building"){let z=Z.transactionMeta.update.subEvents.at(-1),F=z?.type==="molecule_disposal"&&z.values.some(([D])=>D===W.family?.key),O=zZ(W,"tracker:signal");if(!F&&!O)Z.transactionMeta.update.subEvents.push(Q)}else X.on.atomDisposal.next(Y)}}function K1(X){return X[0].toUpperCase()+X.slice(1)}var E7=class{toolkit;options;relations;states;relatedKeysAtoms;transact(X,Y){let Z=this.toolkit;this.toolkit=X,Y(this),this.toolkit=Z}store;[Symbol.dispose](){}constructor(X,Y=L1.STORE){this.store=Y,this.options=X,this.store.miscResources.set(`join:${X.key}`,this),this.toolkit={get:(...z)=>k1(Y,...z),set:(...z)=>{b1(Y,...z)},find:(...z)=>e0(Y,...z),json:(z)=>k4(Y,z)};let Z=X.between[0],_=X.between[1],G=uY(Y,{key:`${X.key}/relatedKeys`,class:W4},["join","relations"]);this.relatedKeysAtoms=G;let W=(z,F,O)=>{let{find:D,get:w,set:R}=z,v=D(G,F),j=w(v);for(let P of j){if(O.includes(P))continue;R(G,P,(h)=>{return h.delete(F),h})}R(v,(P)=>{P.clear();for(let h of O){let i=D(G,h),g=w(i),p=g.has(F);if(this.relations.cardinality==="1:n"){let m=[];for(let _0 of g){if(_0===F)continue;let u0;if(L8(_Z,this.store,G,_0,(K)=>{return K.delete(h),u0=K.size,K}),u0===0)m.push(_0)}if(!p&&g.size>0)R(i,(_0)=>{return _0.clear(),_0});for(let _0 of m)Y.keyRefsInJoins.delete(_2(h,_0))}if(!p)R(i,(m)=>{return m.add(F),m});P.add(h)}return P})},$=(z,F,O)=>{let{set:D}=z;D(G,F,(w)=>{for(let R of O)w.add(R);return w});for(let w of O)D(G,w,(R)=>{return R.add(F),R});return!0},H=new $4(X,{externalStore:{getRelatedKeys:(z)=>this.toolkit.get(G,z),addRelation:(z,F)=>{this.store.keyRefsInJoins.set(`"${z}"`,X.key),this.store.keyRefsInJoins.set(`"${F}"`,X.key),this.store.keyRefsInJoins.set(_2(z,F),X.key),this.toolkit.set(G,z,(O)=>O.add(F)),this.toolkit.set(G,F,(O)=>O.add(z))},deleteRelation:(z,F)=>{this.toolkit.set(G,z,(D)=>{return D.delete(F),D}),this.toolkit.set(G,F,(D)=>{return D.delete(z),D});let O=_2(z,F);this.store.keyRefsInJoins.delete(O)},replaceRelationsSafely:(z,F)=>{W(this.toolkit,z,F)},replaceRelationsUnsafely:(z,F)=>{$(this.toolkit,z,F)},has:(z,F)=>{let O=this.toolkit.get(G,z);return F?O.has(F):O.size>0}},isAType:X.isAType,isBType:X.isBType}),Q=()=>F2(Y,{key:`${X.key}/singleRelatedKey`,get:(z)=>({get:F})=>{let O=F(G,z);for(let D of O)return D;return null}},["join","keys"]),J=()=>{return F2(Y,{key:`${X.key}/multipleRelatedKeys`,get:(z)=>({get:F})=>{return F(TU(G,Y),z)}},["join","keys"])};switch(X.cardinality){case"1:1":{let z=Q(),F=`${Z}KeyOf${K1(_)}`,O=`${_}KeyOf${K1(Z)}`;this.relations=H,this.states={[F]:z,[O]:z};break}case"1:n":{let z=Q(),F=J(),O=`${Z}KeyOf${K1(_)}`,D=`${_}KeysOf${K1(Z)}`,w={[O]:z,[D]:F};this.relations=H,this.states=w;break}case"n:n":{let z=J(),F=`${Z}KeysOf${K1(_)}`,O=`${_}KeysOf${K1(Z)}`;this.relations=H,this.states={[F]:z,[O]:z}}}}};function uG(X,Y){return X.joins.set(Y.key,new E7(Y)),{key:Y.key,type:"join",a:Y.between[0],b:Y.between[1],cardinality:Y.cardinality}}function FZ(X,Y){let Z=Y.joins.get(X.key);if(Z===void 0){let _=L1.STORE.joins.get(X.key);if(_===void 0)throw Error(`Join "${X.key}" not found in store "${Y.config.name}"`);let G=aY(Y);Z=new E7(_.options,G),Y.joins.set(X.key,Z)}return Z}function $2(X,Y,Z){let _=FZ(X,Z),G=t(Z);if(F1(G)){let{toolkit:W}=G.transactionMeta;_.transact(W,({relations:$})=>{Y($)})}else Y(_.relations)}function nF(X,Y,Z){let _=FZ(X,Z),G;switch(X.cardinality){case"1:1":{let W=`${X.a}KeyOf${K1(X.b)}`,$=`${X.b}KeyOf${K1(X.a)}`;G={get[W](){let H=_.states[W];return e0(Z,H,Y)},get[$](){let H=_.states[$];return e0(Z,H,Y)}};break}case"1:n":{let W=`${X.a}KeyOf${K1(X.b)}`,$=`${X.b}KeysOf${K1(X.a)}`;G={get[W](){let H=_.states[W];return e0(Z,H,Y)},get[$](){let H=_.states[$];return e0(Z,H,Y)}};break}case"n:n":{let W=`${X.a}KeysOf${K1(X.b)}`,$=`${X.b}KeysOf${K1(X.a)}`;G={get[W](){let H=_.states[W];return e0(Z,H,Y)},get[$](){let H=_.states[$];return e0(Z,H,Y)}}}}return G}function dG(X,Y){return FZ(X,Y).relatedKeysAtoms}var qU=(X)=>{return f4(X,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Y=new Map;for(let[Z,_]of X.atoms){if(D8(Z))continue;let G=g1(_);if(_.family){let W=Y.get(_.family.key);if(!W||!("familyMembers"in W))W={key:_.family.key,familyMembers:new Map},Y.set(_.family.key,W);W.familyMembers.set(_.family.subKey,G)}else Y.set(Z,G)}return Y},effects:[({setSelf:Y})=>{X.on.atomCreation.subscribe("introspection",(Z)=>{if(D8(Z.key))return;Y((_)=>{if(Z.family){let{key:G,subKey:W}=Z.family,$=_.get(G);if($===void 0||!("familyMembers"in $))$={key:G,familyMembers:new Map},_.set(G,$);$.familyMembers.set(W,Z)}else _.set(Z.key,Z);return new Map(_)})}),X.on.atomDisposal.subscribe("introspection",(Z)=>{Y((_)=>{if(Z.family){let{key:G,subKey:W}=Z.family,$=_.get(G);if($&&"familyMembers"in $){if($.familyMembers.delete(W),$.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},jU=(X)=>{return f4(X,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Y=new Map;for(let Z of[X.readonlySelectors,X.writableSelectors])for(let[_,G]of Z){if(D8(_))continue;let W=g1(G);if(G.family){let $=Y.get(G.family.key);if(!$||!("familyMembers"in $))$={key:G.family.key,familyMembers:new Map},Y.set(G.family.key,$);$.familyMembers.set(G.family.subKey,W)}else Y.set(_,W)}return Y},effects:[({setSelf:Y})=>{X.on.selectorCreation.subscribe("introspection",(Z)=>{if(D8(Z.key))return;Y((_)=>{if(Z.family){let{key:G,subKey:W}=Z.family,$=_.get(G);if($===void 0||!("familyMembers"in $))$={key:G,familyMembers:new Map},_.set(G,$);$.familyMembers.set(W,Z)}else _.set(Z.key,Z);return new Map(_)})}),X.on.selectorDisposal.subscribe("introspection",(Z)=>{Y((_)=>{if(Z.family){let{key:G,subKey:W}=Z.family,$=_.get(G);if($&&"familyMembers"in $){if($.familyMembers.delete(W),$.familyMembers.size===0)_.delete(G)}}else _.delete(Z.key);return new Map(_)})})}]},void 0)};var UZ=class{supported;constructor(X){this.supported=X}refine(X){for(let[Y,Z]of Object.entries(this.supported))try{if(Z(X)===!0&&Z!==Boolean)return{type:Y,data:X}}catch(_){try{if(X instanceof Z)return{type:Y,data:X}}catch(G){}}return null}},V7=new UZ({number:(X)=>typeof X==="number",string:(X)=>typeof X==="string",boolean:(X)=>typeof X==="boolean",null:(X)=>X===null});function D7(X){if(!X)return!1;return Object.getPrototypeOf(X)===Object.prototype}var L7=new UZ({object:D7,array:(X)=>Array.isArray(X)}),SU=new UZ({...V7.supported,...L7.supported}),C6=(X)=>{if(X===void 0)return"undefined";let Y=SU.refine(X);if(Y)return Y.type;return Object.getPrototypeOf(X).constructor.name};var CB=class X{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Y=L1.STORE){this.store=Y,this.atomIndex=qU(this.store),this.selectorIndex=jU(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:Z})=>{this.statesCreatedAt.set(Z,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:Z})=>{this.statesCreatedAt.delete(Z)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:Z})=>{this.statesCreatedAt.set(Z,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:Z})=>{this.statesCreatedAt.delete(Z)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Y=X.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw Error("This Auditor has been disposed");let Z=kY(this.atomIndex),_=kY(this.selectorIndex),G=[...Z.values()].filter((Q)=>("familyMembers"in Q)),W=[..._.values()].filter((Q)=>("familyMembers"in Q)),$=performance.now(),H=[];if(Y.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let z of J){let F=$-(this.statesCreatedAt.get(z.key)??this.auditorCreatedAt);H.push([z,F])}}if(Y.selectorFamilies)for(let Q of W){let J=Q.familyMembers.values();for(let z of J){let F=$-(this.statesCreatedAt.get(z.key)??this.auditorCreatedAt);H.push([z,F])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},O7=(X,Y)=>{let Z=(_,G)=>{let $=((Q,J)=>{let z=Y(Q,J);if(z)return z;return null})(_,G);if($?.jobComplete??$?.pathComplete)return $;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):D7(G)?Object.entries(G):[];for(let[Q,J]of H){let z=Z([..._,Q],J);if(z?.jobComplete)return z}return{}};Z([],X)};function PU(X,Y){return{summary:`${X<Y?"+":"-"}${Math.abs(X-Y)} (${X} \u2192 ${Y})`}}function vU(X,Y){return{summary:`${X.length<Y.length?"+":"-"}${Math.abs(X.length-Y.length)} ("${X}" \u2192 "${Y}")`}}function xU(X,Y){return{summary:`${X} \u2192 ${Y}`}}function A7(X,Y,Z){let _="",G=[],W=[],$=[];return O7(X,(H,Q)=>{let J;for(J of H){let z=Y[J];if(z===void 0)W.push([J,JSON.stringify(Q)]);else{let F=Z(Q,z);if(F.summary!=="No Change")$.push([J,F])}}}),O7(Y,(H,Q)=>{let J;for(J of H)if(X[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${$.length} \uFF0B${G.length} \uFF0D${W.length}`,{summary:_,added:G,removed:W,changed:$}}function fU(X,Y,Z){return A7(X,Y,Z)}var hU=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(X,Y,Z){this.leafRefinery=X,this.treeRefinery=Y,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(X.supported)){let G=Z[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Y.supported)){let G=Z[_];this.treeDiffers[_]=G}}diff(X,Y){if(X===Y)return{summary:"No Change"};let Z=this.leafRefinery.refine(X)??this.treeRefinery.refine(X),_=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y);if(Z!==null&&_!==null){if(Z.type===_.type){if(Z.type in this.leafDiffers)return this.leafDiffers[Z.type](Z.data,_.data);if(Z.type in this.treeDiffers)return this.treeDiffers[Z.type](Z.data,_.data,($,H)=>this.diff($,H))}}let G=C6(X),W=C6(Y);if(G===W)return{summary:`${G} \u2192 ${W}`};return{summary:`Type change: ${G} \u2192 ${W}`}}},qB=new hU(V7,L7,{number:PU,string:vU,boolean:xU,null:()=>({summary:"No Change"}),object:A7,array:fU});var kU=O8({key:"mutex",default:!1}),bU=class extends Map{set(X,Y){if(this.has(X))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:X,value:Y}),this;return super.set(X,Y)}},fB=class X{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Y){this.key=Y}static existing=new bU;static create(Y,Z){let{type:_,globals:G,actions:W,perspectives:$}=Z(new X(Y)),H={type:_,key:Y,globals:G,actions:W,perspectives:$};return X.existing.set(Y,H),H}add(...Y){switch(Y[0].type){case"atom":case"mutable_atom":this.globals.push(...Y);break;case"transaction":this.actions.push(...Y);break;case"atom_family":case"mutable_atom_family":{let[Z,_]=Y;this.perspectives.push({type:"realtime_perspective",resourceAtoms:Z,viewAtoms:_})}break}return this}};var hB=E8({key:"usersInRoomIndex",class:W4}),M7=E8({key:"roomIndex",class:W4});var O2=L6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(X)=>typeof X==="string",isBType:(X)=>typeof X==="string"}),kB=A6({key:"usersInMyRoomView",get:(X)=>({find:Y})=>{return[Y(kG(O2),X)]}});var oB=O8({key:"redactor",default:{occlude:(X)=>X}}),iB=O8({key:"unacknowledgedUpdates",default:()=>[]});var EZ=class{listeners;globalListeners;handleEvent(...X){let[Y,...Z]=X;for(let G of this.globalListeners)G(Y,...Z);let _=this.listeners.get(Y);if(_)for(let G of _)G(...Z)}id="no_id_retrieved";emit;constructor(X){this.emit=X,this.listeners=new Map,this.globalListeners=new Set}on(X,Y){let Z=this.listeners.get(X);if(Z)Z.add(Y);else this.listeners.set(X,new Set([Y]));return this}onAny(X){return this.globalListeners.add(X),this}off(X,Y){let Z=this.listeners.get(X);if(Z)if(Y)Z.delete(Y);else this.listeners.delete(X);return this}offAny(X){return this.globalListeners.delete(X),this}},nB=class extends EZ{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";proc;key;logger;handleLog(X){if(Array.isArray(X)){let[Y,...Z]=X;switch(Y){case"i":this.logger.info(...Z);break;case"w":this.logger.warn(...Z);break;case"e":this.logger.error(...Z);break}}}constructor(X,Y,Z){super((_,...G)=>{let W=JSON.stringify([_,...G])+"\x03",$=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.proc.stdin);this.proc.stdin.removeListener("error",$)};return this.proc.stdin.once("error",$),this.proc.stdin.write(W),this});if(this.proc=X,this.key=Y,this.logger=Z??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.proc.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE"){this.logger.info(G);return}let W=G.split("\x03"),$=W[0];W[0]=this.incompleteData+$;let H=0;for(let Q of W){if(Q==="")continue;try{let J=X1(Q);this.handleEvent(...J),this.incompleteData=""}catch(J){if(J instanceof Error)console.error(["\u274C Malformed data received from child process","",Q,"",J.message].join(`
|
|
61
61
|
\u274C `));try{if(H===0){this.incompleteData=Q;let z=X1($);this.handleEvent(...z),this.incompleteData=""}else this.incompleteData+=Q}catch(z){if(z instanceof Error)console.error(["\u274C Malformed data received from child process","",$,"",z.message].join(`
|
|
62
62
|
\u274C `))}}++H}}),this.proc.stderr.on("data",(_)=>{let G=_.toString().split("\x03"),W=G[0];G[0]=this.incompleteData+W;let $=0;for(let H of G){if(H==="")continue;try{let Q=X1(H);this.handleLog(Q),this.incompleteData=""}catch(Q){if(Q instanceof Error)console.error(["\u274C Malformed log received from child process","",H,"",Q.message].join(`
|
package/bin/setup-db.bun.js
CHANGED
|
@@ -13813,12 +13813,12 @@ try {
|
|
|
13813
13813
|
}
|
|
13814
13814
|
}
|
|
13815
13815
|
try {
|
|
13816
|
-
console.log(`\uD83D\uDE80
|
|
13817
|
-
await sql2`
|
|
13816
|
+
console.log(`\uD83D\uDE80 Changing owner of ${env2.POSTGRES_DATABASE} to ${env2.POSTGRES_USER}...`);
|
|
13817
|
+
await sql2.unsafe(`ALTER DATABASE ${env2.POSTGRES_DATABASE} OWNER TO ${env2.POSTGRES_USER}`);
|
|
13818
13818
|
console.log(`Done!`);
|
|
13819
13819
|
} catch (thrown) {
|
|
13820
13820
|
if (thrown instanceof Error) {
|
|
13821
|
-
console.error(`\uD83D\uDCA5 Failed:`, thrown.message);
|
|
13821
|
+
console.error(`\uD83D\uDCA5 Failed to change ownership:`, thrown.message);
|
|
13822
13822
|
}
|
|
13823
13823
|
}
|
|
13824
13824
|
await sql2.end();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tempest.games",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.65",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@floating-ui/react": "0.27.16",
|
|
29
29
|
"@js-temporal/polyfill": "0.5.1",
|
|
30
|
-
"@react-email/components": "0.5.
|
|
30
|
+
"@react-email/components": "0.5.7",
|
|
31
31
|
"@t3-oss/env-core": "0.13.8",
|
|
32
32
|
"@trpc/client": "11.6.0",
|
|
33
33
|
"@trpc/server": "11.6.0",
|
|
@@ -36,24 +36,25 @@
|
|
|
36
36
|
"drizzle-orm": "0.44.6",
|
|
37
37
|
"motion": "12.23.24",
|
|
38
38
|
"nanoid": "5.1.6",
|
|
39
|
-
"openai": "6.
|
|
39
|
+
"openai": "6.5.0",
|
|
40
40
|
"postgres": "3.4.7",
|
|
41
41
|
"react": "19.2.0",
|
|
42
42
|
"react-dom": "19.2.0",
|
|
43
|
-
"react-email": "4.3.
|
|
44
|
-
"resend": "6.
|
|
43
|
+
"react-email": "4.3.1",
|
|
44
|
+
"resend": "6.2.0",
|
|
45
45
|
"safegen": "0.7.0",
|
|
46
46
|
"socket.io": "4.8.1",
|
|
47
47
|
"socket.io-client": "4.8.1",
|
|
48
|
-
"atom.io": "0.43.
|
|
48
|
+
"atom.io": "0.43.2",
|
|
49
49
|
"safedeposit": "0.1.2",
|
|
50
50
|
"treetrunks": "0.1.5"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@react-email/components": "0.5.
|
|
53
|
+
"@react-email/components": "0.5.7",
|
|
54
|
+
"@react-email/preview-server": "4.3.1",
|
|
54
55
|
"@types/bun": "npm:bun-types@1.3.0",
|
|
55
56
|
"@types/cors": "2.8.19",
|
|
56
|
-
"@types/node": "24.
|
|
57
|
+
"@types/node": "24.8.1",
|
|
57
58
|
"@types/react": "19.2.2",
|
|
58
59
|
"@types/react-dom": "19.2.2",
|
|
59
60
|
"@vitejs/plugin-react": "npm:@vitejs/plugin-react-swc@4.1.0",
|
|
@@ -63,15 +64,15 @@
|
|
|
63
64
|
"dotenv": "17.2.3",
|
|
64
65
|
"dotenv-cli": "10.0.0",
|
|
65
66
|
"drizzle-kit": "0.31.5",
|
|
66
|
-
"eslint": "9.
|
|
67
|
+
"eslint": "9.38.0",
|
|
67
68
|
"globals": "16.4.0",
|
|
68
69
|
"rimraf": "6.0.1",
|
|
69
70
|
"sass-embedded": "1.93.2",
|
|
70
71
|
"vite": "7.1.10",
|
|
71
72
|
"vite-tsconfig-paths": "5.1.4",
|
|
72
73
|
"vitest": "3.2.4",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
74
|
+
"flightdeck": "0.2.87",
|
|
75
|
+
"varmint": "0.5.6"
|
|
75
76
|
},
|
|
76
77
|
"scripts": {
|
|
77
78
|
"dev": "bun run env:dev && concurrently \"bun:dev:*\"",
|