tempest.games 0.2.22 → 0.2.23
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 +11 -0
- package/app/assets/{index-DikmBhXT.js → index-CxZfwqZY.js} +1 -1
- package/app/index.html +1 -1
- package/bin/backend.bun.js +1 -1
- package/bin/backend.worker.game.bun.js +5 -5
- package/bin/backend.worker.tribunal.bun.js +57 -57
- package/bin/frontend.bun.js +28 -28
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# tempest.games
|
|
2
2
|
|
|
3
|
+
## 0.2.23
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [208b4a9]
|
|
8
|
+
- Updated dependencies [208b4a9]
|
|
9
|
+
- Updated dependencies [208b4a9]
|
|
10
|
+
- Updated dependencies [208b4a9]
|
|
11
|
+
- Updated dependencies [208b4a9]
|
|
12
|
+
- atom.io@0.33.14
|
|
13
|
+
|
|
3
14
|
## 0.2.22
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -19,7 +19,7 @@ ${S.trace}`:`No previous disposal trace for ${n} was found.`);return}const o=t.m
|
|
|
19
19
|
${v.trace}`:`No previous disposal trace for ${o} was found.`),n}const d=Ze(e),h=c.molecules.get(d);if(!h){const v=t.disposalTraces.buffer.find(S=>S?.key===d);return t.logger.error("❌","molecule",n,"claim failed:",`Could not allocate to ${d} in store "${t.config.name}".`,v?`
|
|
20
20
|
${d} was most recently disposed
|
|
21
21
|
${v.trace}`:`No previous disposal trace for ${d} was found.`),n}const p=t.moleculeGraph.getRelationEntries({downstreamMoleculeKey:u.stringKey}).filter(([,{source:v}])=>v!==o).map(([v])=>ds(v));r&&c.moleculeGraph.delete(o),c.moleculeGraph.set({upstreamMoleculeKey:h.stringKey,downstreamMoleculeKey:u.stringKey},{source:h.stringKey});const y={type:"molecule_transfer",key:u.key,from:p,to:[h.key]};return Yt(c)&&c.transactionMeta.phase==="building"&&c.transactionMeta.update.updates.push(y),n}function oM(t,e,n){switch(e){case"newValue":{l1(t,n);break}case"oldValue":{Xu(n,t.token);break}}}function aM(t,e,n){switch(e){case"newValue":{Xu(n,t.token);break}case"oldValue":{l1(t,n),t.subType==="atom"&&n.valueMap.set(t.token.key,t.value);break}}}function l1(t,e){const{family:n}=t.token;if(n){const r=e.families.get(n.key);r&&Jt(e,r,ds(n.subKey))}}function lM(t,e,n){switch(e){case"newValue":pl(n,t.provenance,t.key);break;case"oldValue":ml(n,t.key);break}}function cM(t,e,n){switch(e){case"newValue":ml(n,t.key);break;case"oldValue":{const r=t.provenance.map(ds);pl(n,r,t.key);for(const[o,c]of t.values){const u=n.families.get(o);if(u){Jt(n,u,t.key);const d=`${o}(${Ze(t.key)})`;n.valueMap.set(d,c)}}}break}}function uM(t,e,n){switch(e){case"newValue":{const r=t.to.length===1?t.to[0]:t.to;wu(n,r,t.key,"exclusive")}break;case"oldValue":{const r=t.from.length===1?t.from[0]:t.from;wu(n,r,t.key,"exclusive")}break}}function co(t,e,n){const r=t==="newValue"?e.updates:[...e.updates].reverse();for(const o of r)switch(o.type){case"atom_update":case"selector_update":nM(t,o,n);break;case"state_creation":oM(o,t,n);break;case"state_disposal":aM(o,t,n);break;case"molecule_creation":lM(o,t,n);break;case"molecule_disposal":cM(o,t,n);break;case"molecule_transfer":uM(o,t,n);break;case"transaction_update":co(t,o,n);break}}function c1(t,e){return t.transactionMeta.actionContinuities.getRelatedKey(e)}function u1(t,e){return t.transactionMeta.epoch.get(e)}function fM(t,e){if(!mi(t))return;const r=c1(t,e);if(r!==void 0)return u1(t,r)}function Pm(t,e,n){mi(t)&&e&&t.transactionMeta.epoch.set(e,n)}function dM(t,e,n){if(!mi(t))return;const o=c1(t,e);o!==void 0&&t.transactionMeta.epoch.set(o,n)}const hM=(t,e)=>{const n=pe(e),{parent:r}=n;if(r===null||!Yt(n)||n.transactionMeta?.phase!=="building"){e.logger.warn("🐞","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}n.transactionMeta.phase="applying",n.transactionMeta.update.output=t,r.child=null,r.on.transactionApplying.next(n.transactionMeta);const{updates:o}=n.transactionMeta.update;e.logger.info("🛄","transaction",n.transactionMeta.update.key,`Applying transaction with ${o.length} updates:`,o),co("newValue",n.transactionMeta.update,r),mi(r)?(dM(r,n.transactionMeta.update.key,n.transactionMeta.update.epoch),Tt(e,{key:n.transactionMeta.update.key,type:"transaction"})?.subject.next(n.transactionMeta.update),e.logger.info("🛬","transaction",n.transactionMeta.update.key,"Finished applying transaction.")):Yt(r)&&r.transactionMeta.update.updates.push(n.transactionMeta.update),r.on.transactionApplying.next(null)};function f1(t,e,n){if(!mi(t))return;const{epoch:o,actionContinuities:c}=t.transactionMeta;c.set(e,n),o.has(e)||o.set(e,-1)}function pM(t){return{store:t}}function zn(t,...e){let n,r,o;if(e.length===1?n=e[0]:(r=e[0],o=e[1],n=Jt(t,r,o)),"counterfeit"in n&&"family"in n){r=t.families.get(n.family.key);const c=n.family.subKey,u=t.disposalTraces.buffer.find(d=>d?.key===c);switch(t.logger.error("❌",n.type,n.key,`could not be retrieved because it was not found in the store "${t.config.name}".`,u?`This state was previously disposed:
|
|
22
|
-
${u.trace}`:"No previous disposal trace was found."),r.type){case"atom_family":case"mutable_atom_family":return t.defaults.get(r.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(t.defaults.has(r.key))return t.defaults.get(n.family.key);const d=Tt(t,r).default(c);return t.defaults.set(r.key,d),d}}}return Yu(t,Tt(t,n))}var ii=class extends Map{deleted=new Set;source;constructor(t){super(),this.source=t}get(t){if(super.has(t))return super.get(t);if(!this.deleted.has(t)&&this.source.has(t))return this.source.get(t)}set(t,e){return this.deleted.delete(t),super.set(t,e)}hasOwn(t){return super.has(t)}has(t){return!this.deleted.has(t)&&(super.has(t)||this.source.has(t))}delete(t){return this.deleted.add(t),super.delete(t)}};const mM=(t,e,n,r)=>{const o=pe(t),c={parent:o,child:null,on:o.on,loggers:o.loggers,logger:o.logger,config:o.config,atoms:new ii(o.atoms),atomsThatAreDefault:new Set(o.atomsThatAreDefault),families:new ii(o.families),joins:new ii(o.joins),operation:{open:!1},readonlySelectors:new ii(o.readonlySelectors),timelines:new ii(o.timelines),timelineTopics:new Qt(o.timelineTopics.toJSON()),trackers:new Map,transactions:new ii(o.transactions),selectorAtoms:new Qt(o.selectorAtoms.toJSON()),selectorGraph:new Qt(o.selectorGraph.toJSON(),{makeContentKey:(...p)=>p.sort().join(":")}),writableSelectors:new ii(o.writableSelectors),valueMap:new ii(o.valueMap),defaults:o.defaults,disposalTraces:t.disposalTraces.copy(),molecules:new ii(o.molecules),moleculeGraph:new Qt(o.moleculeGraph.toJSON(),{makeContentKey:o.moleculeGraph.makeContentKey}),moleculeData:new Qt(o.moleculeData.toJSON(),{makeContentKey:o.moleculeData.makeContentKey}),moleculeJoins:new Qt(o.moleculeJoins.toJSON(),{makeContentKey:o.moleculeJoins.makeContentKey}),miscResources:new ii(o.miscResources)},u=fM(t,e),d={phase:"building",update:{type:"transaction_update",key:e,id:r,epoch:u===void 0?NaN:u+1,updates:[],params:n,output:void 0},toolkit:{get:(...p)=>zn(h,...p),set:(...p)=>{Et(h,...p)},run:(p,y=Gu())=>$m(h,p,y),find:(...p)=>Jt(t,...p),json:p=>ps(h,p),dispose:(...p)=>{Xu(h,...p)},env:()=>pM(h)}},h=Object.assign(c,{transactionMeta:d});return o.child=h,t.logger.info("🛫","transaction",e,"Building transaction with params:",n),h};function d1(t,e){const n={key:e.key,type:"transaction",run:(c,u)=>{const d=mM(t,e.key,c,u);try{const h=pe(t),{toolkit:p}=d.transactionMeta,y=e.do(p,...c);return hM(y,h),y}catch(h){throw qk(r),t.logger.warn("💥","transaction",e.key,"caught:",h),h}},install:c=>d1(c,e),subject:new tt},r=pe(t);r.transactions.set(n.key,n);const o=Eo(n);return t.on.transactionCreation.next(o),o}var yM=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 Qt({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Qt({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new Qt({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Qt({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Vk(100);molecules=new Map;moleculeJoins=new Qt({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});moleculeGraph=new Qt({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});moleculeData=new Qt({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});miscResources=new Map;on={atomCreation:new tt,atomDisposal:new tt,selectorCreation:new tt,selectorDisposal:new tt,timelineCreation:new tt,transactionCreation:new tt,transactionApplying:new Kk(null),operationClose:new tt,moleculeCreation:new tt,moleculeDisposal:new tt};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new Ck("warn",(t,e,n)=>!OM(n))];logger={error:(...t)=>{for(const e of this.loggers)e.error(...t)},info:(...t)=>{for(const e of this.loggers)e.info(...t)},warn:(...t)=>{for(const e of this.loggers)e.warn(...t)}};constructor(t,e=null){if(this.config={...e?.config,...t},e!==null){this.valueMap=new Map(e?.valueMap),this.operation={...e?.operation},mi(e)&&(this.transactionMeta={epoch:new Map(e?.transactionMeta.epoch),actionContinuities:new Qt(e?.transactionMeta.actionContinuities.toJSON())});for(const[,r]of e.families)r.internalRoles?.includes("mutable")||r.internalRoles?.includes("join")||r.install(this);const n=new Set;for(const[,r]of e.atoms)if(!n.has(r.key)&&(r.install(this),r.type==="mutable_atom")){const o=ps(e,r),c=y1(r);n.add(o.key),n.add(c.key)}for(const[,r]of e.readonlySelectors)r.install(this);for(const[,r]of e.writableSelectors)n.has(r.key)||r.install(this);for(const[,r]of e.transactions)r.install(this);for(const[,r]of e.timelines)r.install(this)}}};const yt={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new yM({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function Tt(t,e){let n,r=t;for(;r!==null;){switch(e.type){case"atom":case"mutable_atom":n=r.atoms.get(e.key);break;case"writable_pure_selector":case"writable_held_selector":n=r.writableSelectors.get(e.key);break;case"readonly_pure_selector":case"readonly_held_selector":n=r.readonlySelectors.get(e.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":n=r.families.get(e.key);break;case"timeline":n=r.timelines.get(e.key);break;case"transaction":n=r.transactions.get(e.key);break}if(n)return n;r=r.child}throw new Nm(e,t)}const gM=(t,e)=>{const n=pe(t);return n.operation.open?n.operation.prev.get(e.key):n.valueMap.get(e.key)};function bM(t,e,n,r=Gu()){switch(e.type){case"atom":case"mutable_atom":case"readonly_pure_selector":case"readonly_held_selector":case"writable_pure_selector":case"writable_held_selector":return Ro(t,e,r,n);case"transaction":return p1(t,e,r,n);case"timeline":return h1(t,e,r,n)}}const Q0=(t,e)=>{const n=pe(t);return Jk(e,t).map(o=>{const c=n.atoms.get(o);if(c===void 0)throw new Error(`Atom "${o}", a dependency of selector "${e.key}", not found in store "${t.config.name}".`);return c.subject.subscribe(`${e.type}:${e.key}`,u=>{t.logger.info("📢",e.type,e.key,"root",o,"went",u.oldValue,"->",u.newValue);const d=gM(n,e),h=Yu(n,e);t.logger.info("✨",e.type,e.key,"went",d,"->",h),e.subject.next({newValue:h,oldValue:d})})})};function Ro(t,e,n,r){function o(g){if(t.operation.open){const v=t.on.operationClose.subscribe(`state subscription ${n}`,()=>{v(),r(g)})}else r(g)}const c=Tt(t,e);t.logger.info("👀",c.type,c.key,`Adding subscription "${n}"`);const u=c.type==="writable_pure_selector"||c.type==="readonly_pure_selector";let d=null,h=o;u&&(d=Q0(t,c),h=g=>{d&&(d.length=0,d.push(...Q0(t,c))),o(g)});const p=c.subject.subscribe(n,h);return()=>{if(t.logger.info("🙈",c.type,c.key,`Removing subscription "${n}"`),p(),d)for(const g of d)g()}}const h1=(t,e,n,r)=>{const o=Tt(t,e);t.logger.info("👀","timeline",e.key,`Adding subscription "${n}"`);const c=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","timeline",e.key,`Removing subscription "${n}" from timeline`),c()}},p1=(t,e,n,r)=>{const o=Tt(t,e);t.logger.info("👀","transaction",e.key,`Adding subscription "${n}"`);const c=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","transaction",e.key,`Removing subscription "${n}"`),c()}};var Im=class{initializeState(t,e){const n=`*${t.key}`;e.atoms.delete(n),e.valueMap.delete(n);const r=t.family?{key:`*${t.family.key}`,subKey:t.family.subKey}:void 0,o=Zu(e,{key:n,default:null},r);if(e.parent?.valueMap.has(n)){const c=e.parent.valueMap.get(n);e.valueMap.set(n,c)}return o}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(t,e,n){const r=`tracker:${n.config.name}:${Yt(n)?n.transactionMeta.update.key:"main"}:${t.key}`,o=zn(n,t);this.unsubscribeFromInnerValue=o.subscribe(r,c=>{Et(n,e,c)}),this.unsubscribeFromState=Ro(n,t,r,c=>{c.newValue!==c.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=c.newValue.subscribe(r,u=>{Et(n,e,u)}))})}updateCore(t,e,n){const r=`tracker:${n.config.name}:${Yt(n)?n.transactionMeta.update.key:"main"}:${t.key}`;Ro(n,e,r,({newValue:o,oldValue:c})=>{const u=n.timelineTopics.getRelatedKey(e.key);if(u&&n.timelines.get(u)?.timeTraveling){const p=h1(n,{key:u,type:"timeline"},r,y=>{p(),Et(n,t,g=>(y==="redo"&&o?g.do(o):y==="undo"&&c&&g.undo(c),g))});return}const d=n.on.operationClose.subscribe(r,()=>{d();const h=zn(n,t),p=o===null?-1:h.getUpdateNumber(o),y=p-h.cacheUpdateNumber;o&&y===1?Et(n,t,g=>(g.do(o),g)):n.logger.info("❌","mutable_atom",t.key,`could not be updated. Expected update number ${h.cacheUpdateNumber+1}, but got ${p}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(t,e){this.mutableState=t;const n=pe(e);this.latestUpdateState=this.initializeState(t,n),this.observeCore(t,this.latestUpdateState,n),this.updateCore(t,this.latestUpdateState,n),n.trackers.set(t.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(t.key)}}};function Hm(t,e,n){t.logger.info("🔨","atom",e.key,`creating in store "${t.config.name}"`);const r=pe(t),{key:o,default:c}=e,u=r.atoms.get(o),d="mutable_atom";if(u&&u.type===d)return t.logger.error("❌",d,o,"Tried to create atom, but it already exists in the store."),Eo(u);const h=new tt,p={...e,type:d,install:v=>(v.logger.info("🛠️","atom",o,`installing in store "${v.config.name}"`),Hm(v,e,n)),subject:h};n&&(p.family=n);const y=c();r.atoms.set(p.key,p),b1(t,o),fi(r,o,y,h);const g=Eo(p);if(e.effects){let v=0;const S=[];for(const T of e.effects){const w=T({setSelf:D=>{Et(t,g,D)},onSet:D=>Ro(t,g,`effect[${v}]`,D)});w&&S.push(w),++v}p.cleanup=()=>{for(const T of S)T()}}return new Im(g,t),n||Rk(g,e,t),g}var vM=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(t,e){const n=Bm(e,{key:`*${t.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=Tt(e,n),this.mutableAtoms=t,this.mutableAtoms.subject.subscribe(`store=${e.config.name}::tracker-atom-family`,r=>{const{type:o,token:c}=r;if(c.family){const u=ds(c.family.subKey);switch(o){case"state_creation":this.trackers.set(u,new Im(c,e));break;case"state_disposal":{const d=this.trackers.get(u);d&&(d[Symbol.dispose](),this.trackers.delete(u))}break}}})}};function m1(t,e,n){const r={key:e.key,type:"mutable_atom_family"},o=t.families.get(e.key);o&&t.logger.error("❗","mutable_atom_family",e.key,`Overwriting an existing ${hs(o)} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const c=new tt,d=Object.assign(h=>{const p=Ze(h),y={key:e.key,subKey:p},g=`${e.key}(${p})`,v=pe(t),S={key:g,default:()=>e.default(h),toJson:e.toJson,fromJson:e.fromJson,mutable:!0};e.effects&&(S.effects=e.effects(h));const T=Hm(v,S,y);return c.next({type:"state_creation",token:T}),T},r,{subject:c,install:h=>m1(h,e),toJson:e.toJson,fromJson:e.fromJson,internalRoles:n});return t.families.set(e.key,d),Ok(t,d,e),new vM(d,t),r}const W0=(t,e)=>{const n=pe(e),r=`${t.key}:JSON`;return n.families.get(r)},ps=(t,e)=>{if(e.family){const r=pe(t),c={key:`${e.family.key}:JSON`,type:"writable_pure_selector_family"},u=Tt(r,c),d=JSON.parse(e.family.subKey);return Jt(t,u,d)}return{type:"writable_pure_selector",key:`${e.key}:JSON`}},y1=t=>{const n={type:"atom",key:`*${t.key}`};return t.family&&(n.family={key:`*${t.family.key}`,subKey:t.family.subKey}),n};function SM(t){return typeof t=="object"&&t!==null&&"do"in t&&"undo"in t&&"subscribe"in t}function kp(t,e,n){const r=n.valueMap.get(e.key),o=t.valueMap.get(e.key);if(r!==o)return o;if(r===void 0)return e.default();n.logger.info("📃","atom",e.key,"copying");const c=e.toJson(r),u=e.fromJson(c);return t.valueMap.set(e.key,u),new Im(e,n),u}function fi(t,e,n,r){const o=t.valueMap.get(e);if(o instanceof Ap){const c=o;return n instanceof Promise?c:(t.valueMap.set(e,n),n)}if(n instanceof Promise){const c=new Ap(n);return t.valueMap.set(e,c),c.then(u=>{if(t.valueMap.get(e)===c){fi(t,e,u,r);const h=t.atoms.get(e);if(h)Ep(t,h),Op(t,h),Rp(t);else{const p=t.writableSelectors.get(e)??t.readonlySelectors.get(e);p&&(Ep(t,p),Ik(t,p),Rp(t))}r.next({newValue:u,oldValue:c})}}).catch(u=>{t.logger.error("💥","state",e,"rejected:",u)}),c}return t.valueMap.set(e,n),n}const xM=(t,e)=>{let n=e.valueMap.get(t.key);if(t.type==="mutable_atom"&&Yt(e)){const{parent:r}=e;n=kp(e,t,r)}return n},g1=(t,e)=>{const n=e.valueMap.get(t);if(n instanceof Ap){const r=n,o=e.writableSelectors.get(t)??e.readonlySelectors.get(t);o&&r.use(o.get());return}e.operation.open&&e.operation.prev.set(t,n),e.valueMap.delete(t),e.logger.info("🗑","state",t,"evicted")},wM=(t,e)=>pe(t).atomsThatAreDefault.has(e),b1=(t,e)=>{const n=pe(t);n.atomsThatAreDefault=new Set(n.atomsThatAreDefault).add(e)},TM=(t,e)=>{const n=pe(t);n.atomsThatAreDefault=new Set(pe(t).atomsThatAreDefault),n.atomsThatAreDefault.delete(e)};function Zu(t,e,n){const r="atom",{key:o,default:c}=e;t.logger.info("🔨","atom",o,`creating in store "${t.config.name}"`);const u=pe(t),d=u.atoms.get(o);if(d&&d.type===r)return t.logger.error("❌","atom",o,"Tried to create atom, but it already exists in the store."),Eo(d);const h=new tt,p={...e,type:r,install:v=>(v.logger.info("🛠️",r,o,`installing in store "${v.config.name}"`),Zu(v,e,n)),subject:h};n&&(p.family=n);let y=c;c instanceof Function&&(y=c()),u.atoms.set(o,p),b1(t,o),fi(u,o,y,h);const g=Eo(p);if(e.effects){let v=0;const S=[];for(const T of e.effects){const w=T({setSelf:D=>{Et(t,g,D)},onSet:D=>Ro(t,g,`effect[${v}]`,D)});w&&S.push(w),++v}p.cleanup=()=>{for(const T of S)T()}}return g}function AM(t,e){if("mutable"in e){const o=Hm(t,e,void 0);return t.on.atomCreation.next(o),o}const r=Zu(t,e,void 0);return t.on.atomCreation.next(r),r}function Fm(t,e){const n=pe(t),{key:r,family:o}=e,c=Tt(n,e);if(!o)t.logger.error("❌","atom",r,"Standalone atoms cannot be disposed.");else{c.cleanup?.();const u=t.valueMap.get(c.key),d=Tt(t,{key:o.key,type:"atom_family"}),h={type:"state_disposal",subType:"atom",token:e,value:u};d.subject.next(h);const p=Yt(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),t.timelineTopics.delete(r),e.type==="mutable_atom"){const y=y1(e);Fm(t,y),t.trackers.delete(r)}if(t.logger.info("🔥","atom",r,"deleted"),p&&n.transactionMeta.phase==="building"){const y=n.transactionMeta.update.updates.at(-1);y?.type==="molecule_disposal"&&y.values.some(([S])=>S===c.family?.key)||n.transactionMeta.update.updates.push(h)}else t.on.atomDisposal.next(e)}}var v1=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(t,e){const n=this.toolkit;this.toolkit=t,e(this),this.toolkit=n}store;realm;[Symbol.dispose](){}constructor(t,e,n=yt.STORE){this.store=n,this.realm=new Nk(n),this.options=t,this.defaultContent=e,this.store.miscResources.set(`join:${t.key}`,this),this.realm.allocate("root",t.key),this.toolkit={get:(...C)=>zn(n,...C),set:(...C)=>{Et(n,...C)},find:(...C)=>Jt(n,...C),json:C=>ps(n,C)};const r=t.between[0],o=t.between[1],c=m1(n,{key:`${t.key}/relatedKeys`,default:()=>new Ao,mutable:!0,fromJson:C=>Ao.fromJSON(C),toJson:C=>C.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:c};const u=({get:C},O)=>C(c,O),d=({set:C},O,X)=>{this.store.molecules.has(Ze(O))||this.realm.allocate(t.key,O),C(c,O,F=>F.add(X)),C(c,X,F=>F.add(O))},h=({set:C},O,X)=>{C(c,O,F=>(F.delete(X),F)),C(c,X,F=>(F.delete(O),F))},p=(C,O,X)=>{const{find:F,get:G,set:te}=C,oe=F(c,O),ue=G(oe);for(const me of ue)X.includes(me)||te(c,me,ce=>(ce.delete(O),ce));te(oe,me=>(me.transaction(be=>{be.clear();for(const ce of X){const Z=u(C,ce),B=Z.has(O);if(this.relations.cardinality==="1:n"){const P=[];for(const q of Z){if(q===O)continue;const W=u(C,q);W.delete(ce),W.size===0&&P.push(q)}!B&&Z.size>0&&Z.clear();for(const q of P){const W=[ce,q].sort(),A=`"${W[0]}:${W[1]}"`;this.molecules.delete(A)}}B||Z.add(O),be.add(ce)}return!0}),me))},y=(C,O,X)=>{const{set:F}=C;F(c,O,G=>(G.transaction(te=>{for(const oe of X)te.add(oe);return!0}),G));for(const G of X)F(c,G,te=>(te.add(O),te));return!0},g=(C,O,X)=>{const F=u(C,O);return X?F.has(X):F.size>0},v={getRelatedKeys:C=>u(this.toolkit,C),addRelation:(C,O)=>{this.store.moleculeJoins.set(C,t.key),this.store.moleculeJoins.set(O,t.key),d(this.toolkit,C,O)},deleteRelation:(C,O)=>{h(this.toolkit,C,O)},replaceRelationsSafely:(C,O)=>{p(this.toolkit,C,O)},replaceRelationsUnsafely:(C,O)=>{y(this.toolkit,C,O)},has:(C,O)=>g(this.toolkit,C,O)};let S,T;if(e){T=Bm(n,{key:`${t.key}/content`,default:e},["join","content"]);const C=({get:F},G)=>F(T,G),O=({set:F},G,te)=>{F(T,G,te)};S=Object.assign(v,{getContent:F=>C(this.toolkit,F),setContent:(F,G)=>{O(this.toolkit,F,G)},deleteContent:F=>{this.realm.deallocate(F)}})}else S=v;const w=new Qt(t,{externalStore:S,isAType:t.isAType,isBType:t.isBType,makeContentKey:(...C)=>{const[O,X]=C,F=C.sort(),G=`${F[0]}:${F[1]}`,te=n.molecules.get(Ze(O)),oe=n.molecules.get(Ze(X));return te||this.realm.allocate(t.key,O),oe||this.realm.allocate(t.key,X),this.realm.allocate(O,G,"all"),this.realm.claim(X,G),this.store.moleculeJoins.set(G,t.key),G}}),D=()=>lo(n,{key:`${t.key}/singleRelatedKey`,get:C=>({get:O})=>{const X=O(c,C);for(const F of X)return F;return null}},["join","keys"]),$=()=>lo(n,{key:`${t.key}/multipleRelatedKeys`,get:C=>({get:O})=>{const X=W0(c,n);return O(X,C).members}},["join","keys"]),_=()=>lo(n,{key:`${t.key}/singleRelatedEntry`,get:C=>({get:O})=>{const X=O(c,C);for(const F of X){let G=w.isAType?.(C)?C:void 0,te=G===void 0?C:void 0;G??=F,te??=F;const oe=w.makeContentKey(G,te),ue=O(T,oe);return[F,ue]}return null}},["join","entries"]),k=()=>lo(n,{key:`${t.key}/multipleRelatedEntries`,get:C=>({get:O})=>{const X=W0(c,n);return O(X,C).members.map(G=>{let te=w.isAType?.(C)?C:void 0,oe=te===void 0?C:void 0;te??=G,oe??=G;const ue=w.makeContentKey(te,oe),me=O(T,ue);return[G,me]})}},["join","entries"]);switch(t.cardinality){case"1:1":{const C=D(),O=`${r}KeyOf${ln(o)}`,X=`${o}KeyOf${ln(r)}`,F={[O]:C,[X]:C};let G;if(e){const te=_(),oe=`${r}EntryOf${ln(o)}`,ue=`${o}EntryOf${ln(r)}`,me={[oe]:te,[ue]:te};G=Object.assign(F,me)}else G=F;this.relations=w,this.states=G;break}case"1:n":{const C=D(),O=$(),X=`${r}KeyOf${ln(o)}`,F=`${o}KeysOf${ln(r)}`,G={[X]:C,[F]:O};let te;if(e){const oe=_(),ue=k(),me=`${r}EntryOf${ln(o)}`,be=`${o}EntriesOf${ln(r)}`,ce={[me]:oe,[be]:ue};te=Object.assign(G,ce)}else te=G;this.relations=w,this.states=te;break}case"n:n":{const C=$(),O=`${r}KeysOf${ln(o)}`,X=`${o}KeysOf${ln(r)}`,F={[O]:C,[X]:C};let G;if(e){const te=k(),oe=`${r}EntriesOf${ln(o)}`,ue=`${o}EntriesOf${ln(r)}`,me={[oe]:te,[ue]:te};G=Object.assign(F,me)}else G=F;this.relations=w,this.states=G}}}};function EM(t,e){let n=e.joins.get(t.key);if(n===void 0){const o=yt.STORE.joins.get(t.key);if(o===void 0)throw new Error(`Join "${t.key}" not found in store "${e.config.name}"`);n=new v1(o.options,o.defaultContent,e),e.joins.set(t.key,n)}return n}function RM(t,e){return EM(t,e).core.relatedKeysAtoms}function OM(t){return t.startsWith("🔍 ")}var Bh={exports:{}},xe={};/**
|
|
22
|
+
${u.trace}`:"No previous disposal trace was found."),r.type){case"atom_family":case"mutable_atom_family":return t.defaults.get(r.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(t.defaults.has(r.key))return t.defaults.get(n.family.key);const d=Tt(t,r).default(c);return t.defaults.set(r.key,d),d}}}return Yu(t,Tt(t,n))}var ii=class extends Map{deleted=new Set;source;constructor(t){super(),this.source=t}get(t){if(super.has(t))return super.get(t);if(!this.deleted.has(t)&&this.source.has(t))return this.source.get(t)}set(t,e){return this.deleted.delete(t),super.set(t,e)}hasOwn(t){return super.has(t)}has(t){return!this.deleted.has(t)&&(super.has(t)||this.source.has(t))}delete(t){return this.deleted.add(t),super.delete(t)}};const mM=(t,e,n,r)=>{const o=pe(t),c={parent:o,child:null,on:o.on,loggers:o.loggers,logger:o.logger,config:o.config,atoms:new ii(o.atoms),atomsThatAreDefault:new Set(o.atomsThatAreDefault),families:new ii(o.families),joins:new ii(o.joins),operation:{open:!1},readonlySelectors:new ii(o.readonlySelectors),timelines:new ii(o.timelines),timelineTopics:new Qt(o.timelineTopics.toJSON()),trackers:new Map,transactions:new ii(o.transactions),selectorAtoms:new Qt(o.selectorAtoms.toJSON()),selectorGraph:new Qt(o.selectorGraph.toJSON(),{makeContentKey:(...p)=>p.sort().join(":")}),writableSelectors:new ii(o.writableSelectors),valueMap:new ii(o.valueMap),defaults:o.defaults,disposalTraces:t.disposalTraces.copy(),molecules:new ii(o.molecules),moleculeGraph:new Qt(o.moleculeGraph.toJSON(),{makeContentKey:o.moleculeGraph.makeContentKey}),moleculeData:new Qt(o.moleculeData.toJSON(),{makeContentKey:o.moleculeData.makeContentKey}),moleculeJoins:new Qt(o.moleculeJoins.toJSON(),{makeContentKey:o.moleculeJoins.makeContentKey}),miscResources:new ii(o.miscResources)},u=fM(t,e),d={phase:"building",update:{type:"transaction_update",key:e,id:r,epoch:u===void 0?NaN:u+1,updates:[],params:n,output:void 0},toolkit:{get:(...p)=>zn(h,...p),set:(...p)=>{Et(h,...p)},run:(p,y=Gu())=>$m(h,p,y),find:(...p)=>Jt(t,...p),json:p=>ps(h,p),dispose:(...p)=>{Xu(h,...p)},env:()=>pM(h)}},h=Object.assign(c,{transactionMeta:d});return o.child=h,t.logger.info("🛫","transaction",e,"Building transaction with params:",n),h};function d1(t,e){const{key:n}=e,r=t.transactions.has(n),o={key:n,type:"transaction",run:(d,h)=>{const p=mM(t,n,d,h);try{const y=pe(t),{toolkit:g}=p.transactionMeta,v=e.do(g,...d);return hM(v,y),v}catch(y){throw qk(c),t.logger.warn("💥","transaction",n,"caught:",y),y}},install:d=>d1(d,e),subject:new tt},c=pe(t);c.transactions.set(n,o);const u=Eo(o);return r||t.on.transactionCreation.next(u),u}var yM=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 Qt({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Qt({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new Qt({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Qt({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Vk(100);molecules=new Map;moleculeJoins=new Qt({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});moleculeGraph=new Qt({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});moleculeData=new Qt({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});miscResources=new Map;on={atomCreation:new tt,atomDisposal:new tt,selectorCreation:new tt,selectorDisposal:new tt,timelineCreation:new tt,transactionCreation:new tt,transactionApplying:new Kk(null),operationClose:new tt,moleculeCreation:new tt,moleculeDisposal:new tt};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new Ck("warn",(t,e,n)=>!OM(n))];logger={error:(...t)=>{for(const e of this.loggers)e.error(...t)},info:(...t)=>{for(const e of this.loggers)e.info(...t)},warn:(...t)=>{for(const e of this.loggers)e.warn(...t)}};constructor(t,e=null){if(this.config={...e?.config,...t},e!==null){this.valueMap=new Map(e?.valueMap),this.operation={...e?.operation},mi(e)&&(this.transactionMeta={epoch:new Map(e?.transactionMeta.epoch),actionContinuities:new Qt(e?.transactionMeta.actionContinuities.toJSON())});for(const[,r]of e.families)r.internalRoles?.includes("mutable")||r.internalRoles?.includes("join")||r.install(this);const n=new Set;for(const[,r]of e.atoms)if(!n.has(r.key)&&(r.install(this),r.type==="mutable_atom")){const o=ps(e,r),c=y1(r);n.add(o.key),n.add(c.key)}for(const[,r]of e.readonlySelectors)r.install(this);for(const[,r]of e.writableSelectors)n.has(r.key)||r.install(this);for(const[,r]of e.transactions)r.install(this);for(const[,r]of e.timelines)r.install(this)}}};const yt={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new yM({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function Tt(t,e){let n,r=t;for(;r!==null;){switch(e.type){case"atom":case"mutable_atom":n=r.atoms.get(e.key);break;case"writable_pure_selector":case"writable_held_selector":n=r.writableSelectors.get(e.key);break;case"readonly_pure_selector":case"readonly_held_selector":n=r.readonlySelectors.get(e.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":n=r.families.get(e.key);break;case"timeline":n=r.timelines.get(e.key);break;case"transaction":n=r.transactions.get(e.key);break}if(n)return n;r=r.child}throw new Nm(e,t)}const gM=(t,e)=>{const n=pe(t);return n.operation.open?n.operation.prev.get(e.key):n.valueMap.get(e.key)};function bM(t,e,n,r=Gu()){switch(e.type){case"atom":case"mutable_atom":case"readonly_pure_selector":case"readonly_held_selector":case"writable_pure_selector":case"writable_held_selector":return Ro(t,e,r,n);case"transaction":return p1(t,e,r,n);case"timeline":return h1(t,e,r,n)}}const Q0=(t,e)=>{const n=pe(t);return Jk(e,t).map(o=>{const c=n.atoms.get(o);if(c===void 0)throw new Error(`Atom "${o}", a dependency of selector "${e.key}", not found in store "${t.config.name}".`);return c.subject.subscribe(`${e.type}:${e.key}`,u=>{t.logger.info("📢",e.type,e.key,"root",o,"went",u.oldValue,"->",u.newValue);const d=gM(n,e),h=Yu(n,e);t.logger.info("✨",e.type,e.key,"went",d,"->",h),e.subject.next({newValue:h,oldValue:d})})})};function Ro(t,e,n,r){function o(g){if(t.operation.open){const v=t.on.operationClose.subscribe(`state subscription ${n}`,()=>{v(),r(g)})}else r(g)}const c=Tt(t,e);t.logger.info("👀",c.type,c.key,`Adding subscription "${n}"`);const u=c.type==="writable_pure_selector"||c.type==="readonly_pure_selector";let d=null,h=o;u&&(d=Q0(t,c),h=g=>{d&&(d.length=0,d.push(...Q0(t,c))),o(g)});const p=c.subject.subscribe(n,h);return()=>{if(t.logger.info("🙈",c.type,c.key,`Removing subscription "${n}"`),p(),d)for(const g of d)g()}}const h1=(t,e,n,r)=>{const o=Tt(t,e);t.logger.info("👀","timeline",e.key,`Adding subscription "${n}"`);const c=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","timeline",e.key,`Removing subscription "${n}" from timeline`),c()}},p1=(t,e,n,r)=>{const o=Tt(t,e);t.logger.info("👀","transaction",e.key,`Adding subscription "${n}"`);const c=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","transaction",e.key,`Removing subscription "${n}"`),c()}};var Im=class{initializeState(t,e){const n=`*${t.key}`;e.atoms.delete(n),e.valueMap.delete(n);const r=t.family?{key:`*${t.family.key}`,subKey:t.family.subKey}:void 0,o=Zu(e,{key:n,default:null},r);if(e.parent?.valueMap.has(n)){const c=e.parent.valueMap.get(n);e.valueMap.set(n,c)}return o}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(t,e,n){const r=`tracker:${n.config.name}:${Yt(n)?n.transactionMeta.update.key:"main"}:${t.key}`,o=zn(n,t);this.unsubscribeFromInnerValue=o.subscribe(r,c=>{Et(n,e,c)}),this.unsubscribeFromState=Ro(n,t,r,c=>{c.newValue!==c.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=c.newValue.subscribe(r,u=>{Et(n,e,u)}))})}updateCore(t,e,n){const r=`tracker:${n.config.name}:${Yt(n)?n.transactionMeta.update.key:"main"}:${t.key}`;Ro(n,e,r,({newValue:o,oldValue:c})=>{const u=n.timelineTopics.getRelatedKey(e.key);if(u&&n.timelines.get(u)?.timeTraveling){const p=h1(n,{key:u,type:"timeline"},r,y=>{p(),Et(n,t,g=>(y==="redo"&&o?g.do(o):y==="undo"&&c&&g.undo(c),g))});return}const d=n.on.operationClose.subscribe(r,()=>{d();const h=zn(n,t),p=o===null?-1:h.getUpdateNumber(o),y=p-h.cacheUpdateNumber;o&&y===1?Et(n,t,g=>(g.do(o),g)):n.logger.info("❌","mutable_atom",t.key,`could not be updated. Expected update number ${h.cacheUpdateNumber+1}, but got ${p}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(t,e){this.mutableState=t;const n=pe(e);this.latestUpdateState=this.initializeState(t,n),this.observeCore(t,this.latestUpdateState,n),this.updateCore(t,this.latestUpdateState,n),n.trackers.set(t.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(t.key)}}};function Hm(t,e,n){t.logger.info("🔨","atom",e.key,`creating in store "${t.config.name}"`);const r=pe(t),{key:o,default:c}=e,u=r.atoms.get(o),d="mutable_atom";if(u&&u.type===d)return t.logger.error("❌",d,o,"Tried to create atom, but it already exists in the store."),Eo(u);const h=new tt,p={...e,type:d,install:v=>(v.logger.info("🛠️","atom",o,`installing in store "${v.config.name}"`),Hm(v,e,n)),subject:h};n&&(p.family=n);const y=c();r.atoms.set(p.key,p),b1(t,o),fi(r,o,y,h);const g=Eo(p);if(e.effects){let v=0;const S=[];for(const T of e.effects){const w=T({setSelf:D=>{Et(t,g,D)},onSet:D=>Ro(t,g,`effect[${v}]`,D)});w&&S.push(w),++v}p.cleanup=()=>{for(const T of S)T()}}return new Im(g,t),n||Rk(g,e,t),g}var vM=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(t,e){const n=Bm(e,{key:`*${t.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=Tt(e,n),this.mutableAtoms=t,this.mutableAtoms.subject.subscribe(`store=${e.config.name}::tracker-atom-family`,r=>{const{type:o,token:c}=r;if(c.family){const u=ds(c.family.subKey);switch(o){case"state_creation":this.trackers.set(u,new Im(c,e));break;case"state_disposal":{const d=this.trackers.get(u);d&&(d[Symbol.dispose](),this.trackers.delete(u))}break}}})}};function m1(t,e,n){const r={key:e.key,type:"mutable_atom_family"},o=t.families.get(e.key);o&&t.logger.error("❗","mutable_atom_family",e.key,`Overwriting an existing ${hs(o)} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const c=new tt,d=Object.assign(h=>{const p=Ze(h),y={key:e.key,subKey:p},g=`${e.key}(${p})`,v=pe(t),S={key:g,default:()=>e.default(h),toJson:e.toJson,fromJson:e.fromJson,mutable:!0};e.effects&&(S.effects=e.effects(h));const T=Hm(v,S,y);return c.next({type:"state_creation",token:T}),T},r,{subject:c,install:h=>m1(h,e),toJson:e.toJson,fromJson:e.fromJson,internalRoles:n});return t.families.set(e.key,d),Ok(t,d,e),new vM(d,t),r}const W0=(t,e)=>{const n=pe(e),r=`${t.key}:JSON`;return n.families.get(r)},ps=(t,e)=>{if(e.family){const r=pe(t),c={key:`${e.family.key}:JSON`,type:"writable_pure_selector_family"},u=Tt(r,c),d=JSON.parse(e.family.subKey);return Jt(t,u,d)}return{type:"writable_pure_selector",key:`${e.key}:JSON`}},y1=t=>{const n={type:"atom",key:`*${t.key}`};return t.family&&(n.family={key:`*${t.family.key}`,subKey:t.family.subKey}),n};function SM(t){return typeof t=="object"&&t!==null&&"do"in t&&"undo"in t&&"subscribe"in t}function kp(t,e,n){const r=n.valueMap.get(e.key),o=t.valueMap.get(e.key);if(r!==o)return o;if(r===void 0)return e.default();n.logger.info("📃","atom",e.key,"copying");const c=e.toJson(r),u=e.fromJson(c);return t.valueMap.set(e.key,u),new Im(e,n),u}function fi(t,e,n,r){const o=t.valueMap.get(e);if(o instanceof Ap){const c=o;return n instanceof Promise?c:(t.valueMap.set(e,n),n)}if(n instanceof Promise){const c=new Ap(n);return t.valueMap.set(e,c),c.then(u=>{if(t.valueMap.get(e)===c){fi(t,e,u,r);const h=t.atoms.get(e);if(h)Ep(t,h),Op(t,h),Rp(t);else{const p=t.writableSelectors.get(e)??t.readonlySelectors.get(e);p&&(Ep(t,p),Ik(t,p),Rp(t))}r.next({newValue:u,oldValue:c})}}).catch(u=>{t.logger.error("💥","state",e,"rejected:",u)}),c}return t.valueMap.set(e,n),n}const xM=(t,e)=>{let n=e.valueMap.get(t.key);if(t.type==="mutable_atom"&&Yt(e)){const{parent:r}=e;n=kp(e,t,r)}return n},g1=(t,e)=>{const n=e.valueMap.get(t);if(n instanceof Ap){const r=n,o=e.writableSelectors.get(t)??e.readonlySelectors.get(t);o&&r.use(o.get());return}e.operation.open&&e.operation.prev.set(t,n),e.valueMap.delete(t),e.logger.info("🗑","state",t,"evicted")},wM=(t,e)=>pe(t).atomsThatAreDefault.has(e),b1=(t,e)=>{const n=pe(t);n.atomsThatAreDefault=new Set(n.atomsThatAreDefault).add(e)},TM=(t,e)=>{const n=pe(t);n.atomsThatAreDefault=new Set(pe(t).atomsThatAreDefault),n.atomsThatAreDefault.delete(e)};function Zu(t,e,n){const r="atom",{key:o,default:c}=e;t.logger.info("🔨","atom",o,`creating in store "${t.config.name}"`);const u=pe(t),d=u.atoms.get(o);if(d&&d.type===r)return t.logger.error("❌","atom",o,"Tried to create atom, but it already exists in the store."),Eo(d);const h=new tt,p={...e,type:r,install:v=>(v.logger.info("🛠️",r,o,`installing in store "${v.config.name}"`),Zu(v,e,n)),subject:h};n&&(p.family=n);let y=c;c instanceof Function&&(y=c()),u.atoms.set(o,p),b1(t,o),fi(u,o,y,h);const g=Eo(p);if(e.effects){let v=0;const S=[];for(const T of e.effects){const w=T({setSelf:D=>{Et(t,g,D)},onSet:D=>Ro(t,g,`effect[${v}]`,D)});w&&S.push(w),++v}p.cleanup=()=>{for(const T of S)T()}}return g}function AM(t,e){if("mutable"in e){const o=Hm(t,e,void 0);return t.on.atomCreation.next(o),o}const r=Zu(t,e,void 0);return t.on.atomCreation.next(r),r}function Fm(t,e){const n=pe(t),{key:r,family:o}=e,c=Tt(n,e);if(!o)t.logger.error("❌","atom",r,"Standalone atoms cannot be disposed.");else{c.cleanup?.();const u=t.valueMap.get(c.key),d=Tt(t,{key:o.key,type:"atom_family"}),h={type:"state_disposal",subType:"atom",token:e,value:u};d.subject.next(h);const p=Yt(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),t.timelineTopics.delete(r),e.type==="mutable_atom"){const y=y1(e);Fm(t,y),t.trackers.delete(r)}if(t.logger.info("🔥","atom",r,"deleted"),p&&n.transactionMeta.phase==="building"){const y=n.transactionMeta.update.updates.at(-1);y?.type==="molecule_disposal"&&y.values.some(([S])=>S===c.family?.key)||n.transactionMeta.update.updates.push(h)}else t.on.atomDisposal.next(e)}}var v1=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(t,e){const n=this.toolkit;this.toolkit=t,e(this),this.toolkit=n}store;realm;[Symbol.dispose](){}constructor(t,e,n=yt.STORE){this.store=n,this.realm=new Nk(n),this.options=t,this.defaultContent=e,this.store.miscResources.set(`join:${t.key}`,this),this.realm.allocate("root",t.key),this.toolkit={get:(...C)=>zn(n,...C),set:(...C)=>{Et(n,...C)},find:(...C)=>Jt(n,...C),json:C=>ps(n,C)};const r=t.between[0],o=t.between[1],c=m1(n,{key:`${t.key}/relatedKeys`,default:()=>new Ao,mutable:!0,fromJson:C=>Ao.fromJSON(C),toJson:C=>C.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:c};const u=({get:C},O)=>C(c,O),d=({set:C},O,X)=>{this.store.molecules.has(Ze(O))||this.realm.allocate(t.key,O),C(c,O,F=>F.add(X)),C(c,X,F=>F.add(O))},h=({set:C},O,X)=>{C(c,O,F=>(F.delete(X),F)),C(c,X,F=>(F.delete(O),F))},p=(C,O,X)=>{const{find:F,get:G,set:te}=C,oe=F(c,O),ue=G(oe);for(const me of ue)X.includes(me)||te(c,me,ce=>(ce.delete(O),ce));te(oe,me=>(me.transaction(be=>{be.clear();for(const ce of X){const Z=u(C,ce),B=Z.has(O);if(this.relations.cardinality==="1:n"){const P=[];for(const q of Z){if(q===O)continue;const W=u(C,q);W.delete(ce),W.size===0&&P.push(q)}!B&&Z.size>0&&Z.clear();for(const q of P){const W=[ce,q].sort(),A=`"${W[0]}:${W[1]}"`;this.molecules.delete(A)}}B||Z.add(O),be.add(ce)}return!0}),me))},y=(C,O,X)=>{const{set:F}=C;F(c,O,G=>(G.transaction(te=>{for(const oe of X)te.add(oe);return!0}),G));for(const G of X)F(c,G,te=>(te.add(O),te));return!0},g=(C,O,X)=>{const F=u(C,O);return X?F.has(X):F.size>0},v={getRelatedKeys:C=>u(this.toolkit,C),addRelation:(C,O)=>{this.store.moleculeJoins.set(C,t.key),this.store.moleculeJoins.set(O,t.key),d(this.toolkit,C,O)},deleteRelation:(C,O)=>{h(this.toolkit,C,O)},replaceRelationsSafely:(C,O)=>{p(this.toolkit,C,O)},replaceRelationsUnsafely:(C,O)=>{y(this.toolkit,C,O)},has:(C,O)=>g(this.toolkit,C,O)};let S,T;if(e){T=Bm(n,{key:`${t.key}/content`,default:e},["join","content"]);const C=({get:F},G)=>F(T,G),O=({set:F},G,te)=>{F(T,G,te)};S=Object.assign(v,{getContent:F=>C(this.toolkit,F),setContent:(F,G)=>{O(this.toolkit,F,G)},deleteContent:F=>{this.realm.deallocate(F)}})}else S=v;const w=new Qt(t,{externalStore:S,isAType:t.isAType,isBType:t.isBType,makeContentKey:(...C)=>{const[O,X]=C,F=C.sort(),G=`${F[0]}:${F[1]}`,te=n.molecules.get(Ze(O)),oe=n.molecules.get(Ze(X));return te||this.realm.allocate(t.key,O),oe||this.realm.allocate(t.key,X),this.realm.allocate(O,G,"all"),this.realm.claim(X,G),this.store.moleculeJoins.set(G,t.key),G}}),D=()=>lo(n,{key:`${t.key}/singleRelatedKey`,get:C=>({get:O})=>{const X=O(c,C);for(const F of X)return F;return null}},["join","keys"]),$=()=>lo(n,{key:`${t.key}/multipleRelatedKeys`,get:C=>({get:O})=>{const X=W0(c,n);return O(X,C).members}},["join","keys"]),_=()=>lo(n,{key:`${t.key}/singleRelatedEntry`,get:C=>({get:O})=>{const X=O(c,C);for(const F of X){let G=w.isAType?.(C)?C:void 0,te=G===void 0?C:void 0;G??=F,te??=F;const oe=w.makeContentKey(G,te),ue=O(T,oe);return[F,ue]}return null}},["join","entries"]),k=()=>lo(n,{key:`${t.key}/multipleRelatedEntries`,get:C=>({get:O})=>{const X=W0(c,n);return O(X,C).members.map(G=>{let te=w.isAType?.(C)?C:void 0,oe=te===void 0?C:void 0;te??=G,oe??=G;const ue=w.makeContentKey(te,oe),me=O(T,ue);return[G,me]})}},["join","entries"]);switch(t.cardinality){case"1:1":{const C=D(),O=`${r}KeyOf${ln(o)}`,X=`${o}KeyOf${ln(r)}`,F={[O]:C,[X]:C};let G;if(e){const te=_(),oe=`${r}EntryOf${ln(o)}`,ue=`${o}EntryOf${ln(r)}`,me={[oe]:te,[ue]:te};G=Object.assign(F,me)}else G=F;this.relations=w,this.states=G;break}case"1:n":{const C=D(),O=$(),X=`${r}KeyOf${ln(o)}`,F=`${o}KeysOf${ln(r)}`,G={[X]:C,[F]:O};let te;if(e){const oe=_(),ue=k(),me=`${r}EntryOf${ln(o)}`,be=`${o}EntriesOf${ln(r)}`,ce={[me]:oe,[be]:ue};te=Object.assign(G,ce)}else te=G;this.relations=w,this.states=te;break}case"n:n":{const C=$(),O=`${r}KeysOf${ln(o)}`,X=`${o}KeysOf${ln(r)}`,F={[O]:C,[X]:C};let G;if(e){const te=k(),oe=`${r}EntriesOf${ln(o)}`,ue=`${o}EntriesOf${ln(r)}`,me={[oe]:te,[ue]:te};G=Object.assign(F,me)}else G=F;this.relations=w,this.states=G}}}};function EM(t,e){let n=e.joins.get(t.key);if(n===void 0){const o=yt.STORE.joins.get(t.key);if(o===void 0)throw new Error(`Join "${t.key}" not found in store "${e.config.name}"`);n=new v1(o.options,o.defaultContent,e),e.joins.set(t.key,n)}return n}function RM(t,e){return EM(t,e).core.relatedKeysAtoms}function OM(t){return t.startsWith("🔍 ")}var Bh={exports:{}},xe={};/**
|
|
23
23
|
* @license React
|
|
24
24
|
* react.production.js
|
|
25
25
|
*
|
package/app/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>TEMPEST</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CxZfwqZY.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-ki_mruCb.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/bin/backend.bun.js
CHANGED
|
@@ -296,7 +296,7 @@ ${g.trace}`:`No previous disposal trace for ${e} was found.`);return}let t=n.mol
|
|
|
296
296
|
${b.trace}`:`No previous disposal trace for ${t} was found.`),e}let u=ee(i),l=r.molecules.get(u);if(!l){let b=n.disposalTraces.buffer.find((g)=>g?.key===u);return n.logger.error("\u274C","molecule",e,"claim failed:",`Could not allocate to ${u} in store "${n.config.name}".`,b?`
|
|
297
297
|
${u} was most recently disposed
|
|
298
298
|
${b.trace}`:`No previous disposal trace for ${u} was found.`),e}let s=n.moleculeGraph.getRelationEntries({downstreamMoleculeKey:o.stringKey}).filter(([,{source:b}])=>b!==t).map(([b])=>vr(b));if(a)r.moleculeGraph.delete(t);r.moleculeGraph.set({upstreamMoleculeKey:l.stringKey,downstreamMoleculeKey:o.stringKey},{source:l.stringKey});let c={type:"molecule_transfer",key:o.key,from:s,to:[l.key]};if(Ba(r)&&r.transactionMeta.phase==="building")r.transactionMeta.update.updates.push(c);return e}function Pen(n,i,e){switch(i){case"newValue":{z6(n,e);break}case"oldValue":{tb(e,n.token);break}}}function Ben(n,i,e){switch(i){case"newValue":{tb(e,n.token);break}case"oldValue":{if(z6(n,e),n.subType==="atom")e.valueMap.set(n.token.key,n.value);break}}}function z6(n,i){let{family:e}=n.token;if(e){let a=i.families.get(e.key);if(a)Pi(i,a,vr(e.subKey))}}function Wen(n,i,e){switch(i){case"newValue":rb(e,n.provenance,n.key);break;case"oldValue":ob(e,n.key);break}}function Yen(n,i,e){switch(i){case"newValue":ob(e,n.key);break;case"oldValue":{let a=n.provenance.map(vr);rb(e,a,n.key);for(let[t,r]of n.values){let o=e.families.get(t);if(o){Pi(e,o,n.key);let u=`${t}(${ee(n.key)})`;e.valueMap.set(u,r)}}}break}}function Ven(n,i,e){switch(i){case"newValue":{let a=n.to.length===1?n.to[0]:n.to;Am(e,a,n.key,"exclusive")}break;case"oldValue":{let a=n.from.length===1?n.from[0]:n.from;Am(e,a,n.key,"exclusive")}break}}function H6(n,i,e){let a=n==="newValue"?i.updates:[...i.updates].reverse();for(let t of a)switch(t.type){case"atom_update":case"selector_update":Hen(n,t,e);break;case"state_creation":Pen(t,n,e);break;case"state_disposal":Ben(t,n,e);break;case"molecule_creation":Wen(t,n,e);break;case"molecule_disposal":Yen(t,n,e);break;case"molecule_transfer":Ven(t,n,e);break;case"transaction_update":H6(n,t,e);break}}function $6(n,i){return n.transactionMeta.actionContinuities.getRelatedKey(i)}function Xen(n,i){return n.transactionMeta.epoch.get(i)}function ken(n,i){if(!Dc(n))return;let a=$6(n,i);if(a===void 0)return;return Xen(n,a)}function Zen(n,i,e){if(!Dc(n))return;let t=$6(n,i);if(t!==void 0)n.transactionMeta.epoch.set(t,e)}var Qen=(n,i)=>{let e=kn(i),{parent:a}=e;if(a===null||!Ba(e)||e.transactionMeta?.phase!=="building"){i.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}e.transactionMeta.phase="applying",e.transactionMeta.update.output=n,a.child=null,a.on.transactionApplying.next(e.transactionMeta);let{updates:t}=e.transactionMeta.update;if(i.logger.info("\uD83D\uDEC4","transaction",e.transactionMeta.update.key,`Applying transaction with ${t.length} updates:`,t),H6("newValue",e.transactionMeta.update,a),Dc(a))Zen(a,e.transactionMeta.update.key,e.transactionMeta.update.epoch),sa(i,{key:e.transactionMeta.update.key,type:"transaction"})?.subject.next(e.transactionMeta.update),i.logger.info("\uD83D\uDEEC","transaction",e.transactionMeta.update.key,"Finished applying transaction.");else if(Ba(a))a.transactionMeta.update.updates.push(e.transactionMeta.update);a.on.transactionApplying.next(null)};function Ken(n){return{store:n}}function Tr(n,...i){let e,a,t;if(i.length===1)e=i[0];else a=i[0],t=i[1],e=Pi(n,a,t);if("counterfeit"in e&&"family"in e){a=n.families.get(e.family.key);let r=e.family.subKey,o=n.disposalTraces.buffer.find((u)=>u?.key===r);switch(n.logger.error("\u274C",e.type,e.key,`could not be retrieved because it was not found in the store "${n.config.name}".`,o?`This state was previously disposed:
|
|
299
|
-
${o.trace}`:"No previous disposal trace was found."),a.type){case"atom_family":case"mutable_atom_family":return n.defaults.get(a.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(n.defaults.has(a.key))return n.defaults.get(e.family.key);let u=sa(n,a).default(r);return n.defaults.set(a.key,u),u}}}return P0(n,sa(n,e))}var wl=class extends Map{deleted=new Set;source;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,i){return this.deleted.delete(n),super.set(n,i)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}},jen=(n,i,e,a)=>{let t=kn(n),r={parent:t,child:null,on:t.on,loggers:t.loggers,logger:t.logger,config:t.config,atoms:new wl(t.atoms),atomsThatAreDefault:new Set(t.atomsThatAreDefault),families:new wl(t.families),joins:new wl(t.joins),operation:{open:!1},readonlySelectors:new wl(t.readonlySelectors),timelines:new wl(t.timelines),timelineTopics:new Pa(t.timelineTopics.toJSON()),trackers:new Map,transactions:new wl(t.transactions),selectorAtoms:new Pa(t.selectorAtoms.toJSON()),selectorGraph:new Pa(t.selectorGraph.toJSON(),{makeContentKey:(...s)=>s.sort().join(":")}),writableSelectors:new wl(t.writableSelectors),valueMap:new wl(t.valueMap),defaults:t.defaults,disposalTraces:n.disposalTraces.copy(),molecules:new wl(t.molecules),moleculeGraph:new Pa(t.moleculeGraph.toJSON(),{makeContentKey:t.moleculeGraph.makeContentKey}),moleculeData:new Pa(t.moleculeData.toJSON(),{makeContentKey:t.moleculeData.makeContentKey}),moleculeJoins:new Pa(t.moleculeJoins.toJSON(),{makeContentKey:t.moleculeJoins.makeContentKey}),miscResources:new wl(t.miscResources)},o=ken(n,i),u={phase:"building",update:{type:"transaction_update",key:i,id:a,epoch:o===void 0?NaN:o+1,updates:[],params:e,output:void 0},toolkit:{get:(...s)=>Tr(l,...s),set:(...s)=>{ca(l,...s)},run:(s,c=F6())=>u_(l,s,c),find:(...s)=>Pi(n,...s),json:(s)=>Qp(l,s),dispose:(...s)=>{tb(l,...s)},env:()=>Ken(l)}},l=Object.assign(r,{transactionMeta:u});return t.child=l,n.logger.info("\uD83D\uDEEB","transaction",i,"Building transaction with params:",e),l};function b_(n,i){let e={key:i.key,type:"transaction",run:(r,o)=>{let u=jen(n,i.key,r,o);try{let l=kn(n),{toolkit:s}=u.transactionMeta,c=i.do(s,...r);return Qen(c,l),c}catch(l){throw Nen(a),n.logger.warn("\uD83D\uDCA5","transaction",i.key,"caught:",l),l}},install:(r)=>b_(r,i),subject:new Xi},a=kn(n);a.transactions.set(e.key,e);let t=ab(e);return n.on.transactionCreation.next(t),t}var P6=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 Pa({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Pa({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new Pa({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Pa({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new ven(100);molecules=new Map;moleculeJoins=new Pa({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeGraph=new Pa({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeData=new Pa({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});miscResources=new Map;on={atomCreation:new Xi,atomDisposal:new Xi,selectorCreation:new Xi,selectorDisposal:new Xi,timelineCreation:new Xi,transactionCreation:new Xi,transactionApplying:new _en(null),operationClose:new Xi,moleculeCreation:new Xi,moleculeDisposal:new Xi};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new $0("warn",(n,i,e)=>!ran(e))];logger={error:(...n)=>{for(let i of this.loggers)i.error(...n)},info:(...n)=>{for(let i of this.loggers)i.info(...n)},warn:(...n)=>{for(let i of this.loggers)i.warn(...n)}};constructor(n,i=null){if(this.config={...i?.config,...n},i!==null){if(this.valueMap=new Map(i?.valueMap),this.operation={...i?.operation},Dc(i))this.transactionMeta={epoch:new Map(i?.transactionMeta.epoch),actionContinuities:new Pa(i?.transactionMeta.actionContinuities.toJSON())};for(let[,a]of i.families){if(a.internalRoles?.includes("mutable")||a.internalRoles?.includes("join"))continue;a.install(this)}let e=new Set;for(let[,a]of i.atoms){if(e.has(a.key))continue;if(a.install(this),a.type==="mutable_atom"){let t=Qp(i,a),r=h_(a);e.add(t.key),e.add(r.key)}}for(let[,a]of i.readonlySelectors)a.install(this);for(let[,a]of i.writableSelectors){if(e.has(a.key))continue;a.install(this)}for(let[,a]of i.transactions)a.install(this);for(let[,a]of i.timelines)a.install(this)}}},Mi={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new P6({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function sa(n,i){let e,a=n;while(a!==null){switch(i.type){case"atom":case"mutable_atom":e=a.atoms.get(i.key);break;case"writable_pure_selector":case"writable_held_selector":e=a.writableSelectors.get(i.key);break;case"readonly_pure_selector":case"readonly_held_selector":e=a.readonlySelectors.get(i.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":e=a.families.get(i.key);break;case"timeline":e=a.timelines.get(i.key);break;case"transaction":e=a.transactions.get(i.key);break}if(e)return e;a=a.child}throw new o_(i,n)}var Jen=(n,i)=>{let e=kn(n);if(e.operation.open)return e.operation.prev.get(i.key);return e.valueMap.get(i.key)};var _6=(n,i)=>{let e=kn(n);return Ien(i,n).map((t)=>{let r=e.atoms.get(t);if(r===void 0)throw new Error(`Atom "${t}", a dependency of selector "${i.key}", not found in store "${n.config.name}".`);return r.subject.subscribe(`${i.type}:${i.key}`,(o)=>{n.logger.info("\uD83D\uDCE2",i.type,i.key,"root",t,"went",o.oldValue,"->",o.newValue);let u=Jen(e,i),l=P0(e,i);n.logger.info("\u2728",i.type,i.key,"went",u,"->",l),i.subject.next({newValue:l,oldValue:u})})})};function Dm(n,i,e,a){function t(f){if(n.operation.open){let b=n.on.operationClose.subscribe(`state subscription ${e}`,()=>{b(),a(f)})}else a(f)}let r=sa(n,i);n.logger.info("\uD83D\uDC40",r.type,r.key,`Adding subscription "${e}"`);let o=r.type==="writable_pure_selector"||r.type==="readonly_pure_selector",u=null,l=t;if(o)u=_6(n,r),l=(f)=>{if(u)u.length=0,u.push(..._6(n,r));t(f)};let s=r.subject.subscribe(e,l);return()=>{if(n.logger.info("\uD83D\uDE48",r.type,r.key,`Removing subscription "${e}"`),s(),u)for(let f of u)f()}}var qen=(n,i,e,a)=>{let t=sa(n,i);n.logger.info("\uD83D\uDC40","timeline",i.key,`Adding subscription "${e}"`);let r=t.subject.subscribe(e,a);return()=>{n.logger.info("\uD83D\uDE48","timeline",i.key,`Removing subscription "${e}" from timeline`),r()}};var E_=class{initializeState(n,i){let e=`*${n.key}`;i.atoms.delete(e),i.valueMap.delete(e);let a=n.family?{key:`*${n.family.key}`,subKey:n.family.subKey}:void 0,t=Y0(i,{key:e,default:null},a);if(i.parent?.valueMap.has(e)){let r=i.parent.valueMap.get(e);i.valueMap.set(e,r)}return t}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(n,i,e){let a=`tracker:${e.config.name}:${Ba(e)?e.transactionMeta.update.key:"main"}:${n.key}`,t=Tr(e,n);this.unsubscribeFromInnerValue=t.subscribe(a,(r)=>{ca(e,i,r)}),this.unsubscribeFromState=Dm(e,n,a,(r)=>{if(r.newValue!==r.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=r.newValue.subscribe(a,(o)=>{ca(e,i,o)})})}updateCore(n,i,e){let a=`tracker:${e.config.name}:${Ba(e)?e.transactionMeta.update.key:"main"}:${n.key}`;Dm(e,i,a,({newValue:t,oldValue:r})=>{let o=e.timelineTopics.getRelatedKey(i.key);if(o){if(e.timelines.get(o)?.timeTraveling){let s=qen(e,{key:o,type:"timeline"},a,(c)=>{s(),ca(e,n,(f)=>{if(c==="redo"&&t)f.do(t);else if(c==="undo"&&r)f.undo(r);return f})});return}}let u=e.on.operationClose.subscribe(a,()=>{u();let l=Tr(e,n),s=t===null?-1:l.getUpdateNumber(t),c=s-l.cacheUpdateNumber;if(t&&c===1)ca(e,n,(f)=>(f.do(t),f));else e.logger.info("\u274C","mutable_atom",n.key,`could not be updated. Expected update number ${l.cacheUpdateNumber+1}, but got ${s}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(n,i){this.mutableState=n;let e=kn(i);this.latestUpdateState=this.initializeState(n,e),this.observeCore(n,this.latestUpdateState,e),this.updateCore(n,this.latestUpdateState,e),e.trackers.set(n.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),e.trackers.delete(n.key)}}};function g_(n,i,e){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);let a=kn(n),{key:t,default:r}=i,o=a.atoms.get(t),u="mutable_atom";if(o&&o.type===u)return n.logger.error("\u274C",u,t,"Tried to create atom, but it already exists in the store."),ab(o);let l=new Xi,s={...i,type:u,install:(b)=>{return b.logger.info("\uD83D\uDEE0\uFE0F","atom",t,`installing in store "${b.config.name}"`),g_(b,i,e)},subject:l};if(e)s.family=e;let c=r();a.atoms.set(s.key,s),W6(n,t),vl(a,t,c,l);let f=ab(s);if(i.effects){let b=0,g=[];for(let m of i.effects){let h=m({setSelf:(D)=>{ca(n,f,D)},onSet:(D)=>Dm(n,f,`effect[${b}]`,D)});if(h)g.push(h);++b}s.cleanup=()=>{for(let m of g)m()}}if(new E_(f,n),!e)R6(f,i,n);return f}var nan=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(n,i){let e=B0(i,{key:`*${n.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=sa(i,e),this.mutableAtoms=n,this.mutableAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(a)=>{let{type:t,token:r}=a;if(r.family){let o=vr(r.family.subKey);switch(t){case"state_creation":this.trackers.set(o,new E_(r,i));break;case"state_disposal":{let u=this.trackers.get(o);if(u)u[Symbol.dispose](),this.trackers.delete(o)}break}}})}};function m_(n,i,e){let a={key:i.key,type:"mutable_atom_family"},t=n.families.get(i.key);if(t)n.logger.error("\u2757","mutable_atom_family",i.key,`Overwriting an existing ${Zp(t)} "${t.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let r=new Xi,u=Object.assign((l)=>{let s=ee(l),c={key:i.key,subKey:s},f=`${i.key}(${s})`,b=kn(n),g={key:f,default:()=>i.default(l),toJson:i.toJson,fromJson:i.fromJson,mutable:!0};if(i.effects)g.effects=i.effects(l);let m=g_(b,g,c);return r.next({type:"state_creation",token:m}),m},a,{subject:r,install:(l)=>m_(l,i),toJson:i.toJson,fromJson:i.fromJson,internalRoles:e});return n.families.set(i.key,u),T6(n,u,i),new nan(u,n),a}var N6=(n,i)=>{let e=kn(i),a=`${n.key}:JSON`;return e.families.get(a)},Qp=(n,i)=>{if(i.family){let a=kn(n),r={key:`${i.family.key}:JSON`,type:"writable_pure_selector_family"},o=sa(a,r),u=JSON.parse(i.family.subKey);return Pi(n,o,u)}return{type:"writable_pure_selector",key:`${i.key}:JSON`}};var h_=(n)=>{let e={type:"atom",key:`*${n.key}`};if(n.family)e.family={key:`*${n.family.key}`,subKey:n.family.subKey};return e};function ian(n){return typeof n==="object"&&n!==null&&"do"in n&&"undo"in n&&"subscribe"in n}function r_(n,i,e){let a=e.valueMap.get(i.key),t=n.valueMap.get(i.key);if(a!==t)return t;if(a===void 0)return i.default();e.logger.info("\uD83D\uDCC3","atom",i.key,"copying");let r=i.toJson(a),o=i.fromJson(r);return n.valueMap.set(i.key,o),new E_(i,e),o}function vl(n,i,e,a){let t=n.valueMap.get(i);if(t instanceof n_){let r=t;if(e instanceof Promise)return r;return n.valueMap.set(i,e),e}if(e instanceof Promise){let r=new n_(e);return n.valueMap.set(i,r),r.then((o)=>{if(n.valueMap.get(i)===r){vl(n,i,o,a);let l=n.atoms.get(i);if(l)i_(n,l),a_(n,l),e_(n);else{let s=n.writableSelectors.get(i)??n.readonlySelectors.get(i);if(s)i_(n,s),Fen(n,s),e_(n)}a.next({newValue:o,oldValue:r})}}).catch((o)=>{n.logger.error("\uD83D\uDCA5","state",i,"rejected:",o)}),r}return n.valueMap.set(i,e),e}var ean=(n,i)=>{let e=i.valueMap.get(n.key);if(n.type==="mutable_atom"&&Ba(i)){let{parent:a}=i;e=r_(i,n,a)}return e},B6=(n,i)=>{let e=i.valueMap.get(n);if(e instanceof n_){let a=e,t=i.writableSelectors.get(n)??i.readonlySelectors.get(n);if(t)a.use(t.get());return}if(i.operation.open)i.operation.prev.set(n,e);i.valueMap.delete(n),i.logger.info("\uD83D\uDDD1","state",n,"evicted")},aan=(n,i)=>{return kn(n).atomsThatAreDefault.has(i)},W6=(n,i)=>{let e=kn(n);e.atomsThatAreDefault=new Set(e.atomsThatAreDefault).add(i)},tan=(n,i)=>{let e=kn(n);e.atomsThatAreDefault=new Set(kn(n).atomsThatAreDefault),e.atomsThatAreDefault.delete(i)};function Y0(n,i,e){let{key:t,default:r}=i;n.logger.info("\uD83D\uDD28","atom",t,`creating in store "${n.config.name}"`);let o=kn(n),u=o.atoms.get(t);if(u&&u.type==="atom")return n.logger.error("\u274C","atom",t,"Tried to create atom, but it already exists in the store."),ab(u);let l=new Xi,s={...i,type:"atom",install:(b)=>{return b.logger.info("\uD83D\uDEE0\uFE0F","atom",t,`installing in store "${b.config.name}"`),Y0(b,i,e)},subject:l};if(e)s.family=e;let c=r;if(r instanceof Function)c=r();o.atoms.set(t,s),W6(n,t),vl(o,t,c,l);let f=ab(s);if(i.effects){let b=0,g=[];for(let m of i.effects){let h=m({setSelf:(D)=>{ca(n,f,D)},onSet:(D)=>Dm(n,f,`effect[${b}]`,D)});if(h)g.push(h);++b}s.cleanup=()=>{for(let m of g)m()}}return f}function Y6(n,i){if("mutable"in i){let t=g_(n,i,void 0);return n.on.atomCreation.next(t),t}let a=Y0(n,i,void 0);return n.on.atomCreation.next(a),a}function V6(n,i){let e=kn(n),{key:a,family:t}=i,r=sa(e,i);if(!t)n.logger.error("\u274C","atom",a,"Standalone atoms cannot be disposed.");else{r.cleanup?.();let o=n.valueMap.get(r.key),u=sa(n,{key:t.key,type:"atom_family"}),l={type:"state_disposal",subType:"atom",token:i,value:o};u.subject.next(l);let s=Ba(e);if(e.atoms.delete(a),e.valueMap.delete(a),e.selectorAtoms.delete(a),e.atomsThatAreDefault.delete(a),n.timelineTopics.delete(a),i.type==="mutable_atom"){let c=h_(i);V6(n,c),n.trackers.delete(a)}if(n.logger.info("\uD83D\uDD25","atom",a,"deleted"),s&&e.transactionMeta.phase==="building"){let c=e.transactionMeta.update.updates.at(-1);if(!(c?.type==="molecule_disposal"&&c.values.some(([g])=>g===r.family?.key)))e.transactionMeta.update.updates.push(l)}else n.on.atomDisposal.next(i)}}var A_=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(n,i){let e=this.toolkit;this.toolkit=n,i(this),this.toolkit=e}store;realm;[Symbol.dispose](){}constructor(n,i,e=Mi.STORE){this.store=e,this.realm=new S6(e),this.options=n,this.defaultContent=i,this.store.miscResources.set(`join:${n.key}`,this),this.realm.allocate("root",n.key),this.toolkit={get:(...x)=>Tr(e,...x),set:(...x)=>{ca(e,...x)},find:(...x)=>Pi(e,...x),json:(x)=>Qp(e,x)};let a=n.between[0],t=n.between[1],r=m_(e,{key:`${n.key}/relatedKeys`,default:()=>new Rr,mutable:!0,fromJson:(x)=>Rr.fromJSON(x),toJson:(x)=>x.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:r};let o=({get:x},N)=>x(r,N),u=({set:x},N,I)=>{if(!this.store.molecules.has(ee(N)))this.realm.allocate(n.key,N);x(r,N,(G)=>G.add(I)),x(r,I,(G)=>G.add(N))},l=({set:x},N,I)=>{x(r,N,(G)=>{return G.delete(I),G}),x(r,I,(G)=>{return G.delete(N),G})},s=(x,N,I)=>{let{find:G,get:Y,set:W}=x,$=G(r,N),K=Y($);for(let Z of K){if(I.includes(Z))continue;W(r,Z,(tn)=>{return tn.delete(N),tn})}W($,(Z)=>{return Z.transaction((J)=>{J.clear();for(let tn of I){let on=o(x,tn),Dn=on.has(N);if(this.relations.cardinality==="1:n"){let Ln=[];for(let Q of on){if(Q===N)continue;let O=o(x,Q);if(O.delete(tn),O.size===0)Ln.push(Q)}if(!Dn&&on.size>0)on.clear();for(let Q of Ln){let O=[tn,Q].sort(),k=`"${O[0]}:${O[1]}"`;this.molecules.delete(k)}}if(!Dn)on.add(N);J.add(tn)}return!0}),Z})},c=(x,N,I)=>{let{set:G}=x;G(r,N,(Y)=>{return Y.transaction((W)=>{for(let $ of I)W.add($);return!0}),Y});for(let Y of I)G(r,Y,(W)=>{return W.add(N),W});return!0},f=(x,N,I)=>{let G=o(x,N);return I?G.has(I):G.size>0},b={getRelatedKeys:(x)=>o(this.toolkit,x),addRelation:(x,N)=>{this.store.moleculeJoins.set(x,n.key),this.store.moleculeJoins.set(N,n.key),u(this.toolkit,x,N)},deleteRelation:(x,N)=>{l(this.toolkit,x,N)},replaceRelationsSafely:(x,N)=>{s(this.toolkit,x,N)},replaceRelationsUnsafely:(x,N)=>{c(this.toolkit,x,N)},has:(x,N)=>f(this.toolkit,x,N)},g,m;if(i){m=B0(e,{key:`${n.key}/content`,default:i},["join","content"]);let x=({get:G},Y)=>G(m,Y),N=({set:G},Y,W)=>{G(m,Y,W)};g=Object.assign(b,{getContent:(G)=>{return x(this.toolkit,G)},setContent:(G,Y)=>{N(this.toolkit,G,Y)},deleteContent:(G)=>{this.realm.deallocate(G)}})}else g=b;let h=new Pa(n,{externalStore:g,isAType:n.isAType,isBType:n.isBType,makeContentKey:(...x)=>{let[N,I]=x,G=x.sort(),Y=`${G[0]}:${G[1]}`,W=e.molecules.get(ee(N)),$=e.molecules.get(ee(I));if(!W)this.realm.allocate(n.key,N);if(!$)this.realm.allocate(n.key,I);return this.realm.allocate(N,Y,"all"),this.realm.claim(I,Y),this.store.moleculeJoins.set(Y,n.key),Y}}),D=()=>eb(e,{key:`${n.key}/singleRelatedKey`,get:(x)=>({get:N})=>{let I=N(r,x);for(let G of I)return G;return null}},["join","keys"]),T=()=>{return eb(e,{key:`${n.key}/multipleRelatedKeys`,get:(x)=>({get:N})=>{let I=N6(r,e);return N(I,x).members}},["join","keys"])},v=()=>eb(e,{key:`${n.key}/singleRelatedEntry`,get:(x)=>({get:N})=>{let I=N(r,x);for(let G of I){let Y=h.isAType?.(x)?x:void 0,W=Y===void 0?x:void 0;Y??=G,W??=G;let $=h.makeContentKey(Y,W),K=N(m,$);return[G,K]}return null}},["join","entries"]),S=()=>eb(e,{key:`${n.key}/multipleRelatedEntries`,get:(x)=>({get:N})=>{let I=N6(r,e);return N(I,x).members.map((Y)=>{let W=h.isAType?.(x)?x:void 0,$=W===void 0?x:void 0;W??=Y,$??=Y;let K=h.makeContentKey(W,$),Z=N(m,K);return[Y,Z]})}},["join","entries"]);switch(n.cardinality){case"1:1":{let x=D(),N=`${a}KeyOf${De(t)}`,I=`${t}KeyOf${De(a)}`,G={[N]:x,[I]:x},Y;if(i){let W=v(),$=`${a}EntryOf${De(t)}`,K=`${t}EntryOf${De(a)}`,Z={[$]:W,[K]:W};Y=Object.assign(G,Z)}else Y=G;this.relations=h,this.states=Y;break}case"1:n":{let x=D(),N=T(),I=`${a}KeyOf${De(t)}`,G=`${t}KeysOf${De(a)}`,Y={[I]:x,[G]:N},W;if(i){let $=v(),K=S(),Z=`${a}EntryOf${De(t)}`,J=`${t}EntriesOf${De(a)}`,tn={[Z]:$,[J]:K};W=Object.assign(Y,tn)}else W=Y;this.relations=h,this.states=W;break}case"n:n":{let x=T(),N=`${a}KeysOf${De(t)}`,I=`${t}KeysOf${De(a)}`,G={[N]:x,[I]:x},Y;if(i){let W=S(),$=`${a}EntriesOf${De(t)}`,K=`${t}EntriesOf${De(a)}`,Z={[$]:W,[K]:W};Y=Object.assign(G,Z)}else Y=G;this.relations=h,this.states=Y}}}};function D_(n,i){let e=i.joins.get(n.key);if(e===void 0){let t=Mi.STORE.joins.get(n.key);if(t===void 0)throw new Error(`Join "${n.key}" not found in store "${i.config.name}"`);e=new A_(t.options,t.defaultContent,i),i.joins.set(n.key,e)}return e}function wc(n,i,e){let a=D_(n,e),t=kn(e);if(Ba(t)){let{toolkit:r}=t.transactionMeta;a.transact(r,({relations:o})=>{i(o)})}else i(a.relations)}function vm(n,i,e){let a=D_(n,e),t;switch(n.cardinality){case"1:1":{let r=`${n.a}KeyOf${De(n.b)}`,o=`${n.b}KeyOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntryOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntryOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}break}case"1:n":{let r=`${n.a}KeyOf${De(n.b)}`,o=`${n.b}KeysOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntryOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntriesOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}break}case"n:n":{let r=`${n.a}KeysOf${De(n.b)}`,o=`${n.b}KeysOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntriesOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntriesOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}}}return t}function X6(n,i){return D_(n,i).core.relatedKeysAtoms}function ran(n){return n.startsWith("\uD83D\uDD0D ")}function ub(n){return Y6(Mi.STORE,n)}function Rm(n){return O6(Mi.STORE,n)}function ZFn(...n){if(n.length===2)return Tr(Mi.STORE,...n);return Tr(Mi.STORE,...n)}function V0(n,i,e=Mi.STORE){return e.joins.set(n.key,new A_(n,i,e)),{key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality}}function k6(n){return X6(n,Mi.STORE)}var w_=(n)=>(i,e,a,t,...r)=>{console[n](`${i} ${e} "${a}" ${t}`,...r)},uan={error:w_("error"),info:w_("info"),warn:w_("warn")},$0=class{logLevel;filter;logger;constructor(n,i,e=uan){this.logLevel=n,this.filter=i,this.logger=e}error=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel!==null){if(i===!0)this.logger.error(...n);else if(i!==!1)this.logger.error(...i)}};info=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel==="info"){if(i===!0)this.logger.info(...n);else if(i!==!1)this.logger.info(...i)}};warn=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel!=="error"&&this.logLevel!==null){if(i===!0)this.logger.warn(...n);else if(i!==!1)this.logger.warn(...i)}}};var lan=class{store;constructor(n=Mi.STORE){this.store=n,G6("root",n)}allocate(n,i,e){return rb(this.store,n,i,e)}fuse(n,i,e){return y6(this.store,n,i,e)}deallocate(n){ob(this.store,n)}claim(n,i,e){return Am(this.store,n,i,e)}},S6=class{store;realm;constructor(n=Mi.STORE){this.store=n,this.realm=new lan(n)}allocate(n,i,e){rb(this.store,n,i,e)}deallocate(n){ob(this.store,n)}claim(n,i,e){Am(this.store,n,i,e)}};function X0(n){return U6(Mi.STORE,n)}function Tm(n){return b_(Mi.STORE,n)}var jj=si(k0(),1),Jj=si(rN(),1);var O3=si(C3(),1),{Server:L3,Namespace:vCn,Socket:I3}=O3.default;import{readFileSync as WH}from"fs";import{createServer as mbn}from"http";import{createServer as hbn}from"https";import{resolve as gF}from"path";function M3(n,i){if(n instanceof Promise)throw new Error(i)}function vcn(n,i){let e={},a=[];for(let t in n){let r=n[t]["~standard"].validate(i[t]);if(M3(r,`Validation must be synchronous, but ${t} returned a Promise.`),r.issues){a.push(...r.issues.map((o)=>({...o,message:o.message,path:[t,...o.path??[]]})));continue}e[t]=r.value}if(a.length)return{issues:a};return{value:e}}function JN(n){let i=n.runtimeEnvStrict??n.runtimeEnv??process.env;if(n.emptyStringAsUndefined??!1){for(let[v,S]of Object.entries(i))if(S==="")delete i[v]}if(!!n.skipValidation)return i;let t=typeof n.client==="object"?n.client:{},r=typeof n.server==="object"?n.server:{},o=typeof n.shared==="object"?n.shared:{},u=n.isServer??(typeof window==="undefined"||("Deno"in window)),l=u?{...r,...o,...t}:{...t,...o},s=n.createFinalSchema?.(l,u)["~standard"].validate(i)??vcn(l,i);M3(s,"Validation must be synchronous");let c=n.onValidationError??((v)=>{throw console.error("\u274C Invalid environment variables:",v),new Error("Invalid environment variables")}),f=n.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(s.issues)return c(s.issues);let b=(v)=>{if(!n.clientPrefix)return!0;return!v.startsWith(n.clientPrefix)&&!(v in o)},g=(v)=>{return u||!b(v)},m=(v)=>{return v==="__esModule"||v==="$$typeof"},h=(n.extends??[]).reduce((v,S)=>{return Object.assign(v,S)},{}),D=Object.assign(h,s.value);return new Proxy(D,{get(v,S){if(typeof S!=="string")return;if(m(S))return;if(!g(S))return f(S);return Reflect.get(v,S)}})}var Cc=(n)=>Array.isArray(n)?n:[n],U3=(n,i)=>{let e=[[],[]];for(let a of n)if(i(a))e[0].push(a);else e[1].push(a);return e},HD=Array,As=(n,i)=>n.includes(i),G3=(n,i=0)=>[...new Array(n)].map((e,a)=>a+i),Ti=(n,i,e)=>{if(n===void 0)return i===void 0?[]:Array.isArray(i)?i:[i];if(e?.prepend)if(Array.isArray(i))n.unshift(...i);else n.unshift(i);else if(Array.isArray(i))n.push(...i);else n.push(i);return n},Ds=(n,i)=>{if(i===void 0||i===null)return n??[];if(n===void 0||n===null)return Cc(i);return n.concat(i)},y3=(...n)=>n.reduce(Ds,[]),_l=(n,i,e)=>{if(n===void 0)return Array.isArray(i)?i:[i];let a=e?.isEqual??((t,r)=>t===r);for(let t of Cc(i))if(!n.some((r)=>a(r,t)))n.push(t);return n},z3=(n,i)=>n.reduce((e,a)=>{let t=a[i];return e[t]=Ti(e[t],a),e},{}),ws=(n,i,e)=>n.length===i.length&&n.every(e?.isEqual?(a,t)=>e.isEqual(a,i[t]):(a,t)=>a===i[t]);var Sr=(n,i)=>pa(n)===i,pa=(n)=>{let i=typeof n;return i==="object"?n===null?"null":"object":i==="function"?"object":i},Fr={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},H3={...Fr,function:"a function"};class $3 extends Error{}var Oi=(n)=>sd(n,$3),sd=(n,i=Error)=>{throw new i(n)};class Wm extends Error{name="ParseError"}var an=(n)=>sd(n,Wm),xu=(n)=>` ${n}`;var ri=(n,i)=>{let e={},a=Array.isArray(n),t=!1;for(let[r,o]of Object.entries(n).entries()){let u=a?i(r,o[1]):i(...o,r);t||=typeof u[0]==="number";let l=Array.isArray(u[0])||u.length===0?u:[u];for(let[s,c]of l)if(typeof s==="object")e[s.group]=Ti(e[s.group],c);else e[s]=c}return t?Object.values(e):e};var qN=Object.entries;var da=(n,i)=>(n in i),Mb=(n,i)=>(i in n);class nS{constructor(n){Object.assign(this,n)}}var P3=class{};class Ym extends P3{}var Rcn=(n,i)=>{let e={},a={},t;for(t in n)if(t in i)e[t]=n[t];else a[t]=n[t];return[e,a]};var B3=(n,i)=>Rcn(n,i)[1],Nl=(n)=>Object.keys(n).length===0,cd=(n)=>[...Object.entries(n),...Object.getOwnPropertySymbols(n).map((i)=>[i,n[i]])],W3=(n,i)=>Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)),Y3=(n)=>{let i=Object.keys(n).sort(),e={};for(let a=0;a<i.length;a++)e[i[a]]=n[i[a]];return e};var po=xu("represents an uninitialized value"),V3=(n)=>Object.values(n).filter((i)=>{if(typeof i==="number")return!0;return typeof n[i]!=="number"});var iS={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},eS=globalThis.File??Blob,aS={ArrayBuffer,Blob,File:eS,FormData,Headers,Request,Response,URL},Tcn={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},pd={...iS,...aS,...Tcn,String,Number,Boolean},Vm=(n)=>{let i=Object.getPrototypeOf(n);while(i?.constructor&&(!da(i.constructor.name,pd)||!(n instanceof pd[i.constructor.name])))i=Object.getPrototypeOf(i);let e=i?.constructor?.name;if(e===void 0||e==="Object")return;return e},Xm=(n)=>typeof n==="object"&&n!==null?Vm(n)??"object":pa(n);var le=Array.isArray,_cn={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},Ncn={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},Scn={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},X3={..._cn,...Ncn,...Scn},km=(n)=>{let i=Object(n).name??null;return i&&da(i,pd)&&pd[i]===n?i:null};var tS=(n,i)=>{let e=n.prototype;while(e!==null){if(e===i.prototype)return!0;e=Object.getPrototypeOf(e)}return!1};var k3=(n)=>Z3(n,new Map),Z3=(n,i)=>{if(typeof n!=="object"||n===null)return n;if(i?.has(n))return i.get(n);let e=km(n.constructor);if(e==="Date")return new Date(n.getTime());if(e&&e!=="Array")return n;let a=Array.isArray(n)?n.slice():Object.create(Object.getPrototypeOf(n)),t=Object.getOwnPropertyDescriptors(n);if(i){i.set(n,a);for(let r in t){let o=t[r];if("get"in o||"set"in o)continue;o.value=Z3(o.value,i)}}return Object.defineProperties(a,t),a};var Fcn=(n)=>{let i=po;return()=>i===po?i=n():i},Oc=(n)=>typeof n==="function"&&n.length===0;var Q3=class extends Function{constructor(...n){let i=n.slice(0,-1),e=n.at(-1);try{super(...i,e)}catch(a){return Oi(`Encountered an unexpected error while compiling your definition:
|
|
299
|
+
${o.trace}`:"No previous disposal trace was found."),a.type){case"atom_family":case"mutable_atom_family":return n.defaults.get(a.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(n.defaults.has(a.key))return n.defaults.get(e.family.key);let u=sa(n,a).default(r);return n.defaults.set(a.key,u),u}}}return P0(n,sa(n,e))}var wl=class extends Map{deleted=new Set;source;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,i){return this.deleted.delete(n),super.set(n,i)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}},jen=(n,i,e,a)=>{let t=kn(n),r={parent:t,child:null,on:t.on,loggers:t.loggers,logger:t.logger,config:t.config,atoms:new wl(t.atoms),atomsThatAreDefault:new Set(t.atomsThatAreDefault),families:new wl(t.families),joins:new wl(t.joins),operation:{open:!1},readonlySelectors:new wl(t.readonlySelectors),timelines:new wl(t.timelines),timelineTopics:new Pa(t.timelineTopics.toJSON()),trackers:new Map,transactions:new wl(t.transactions),selectorAtoms:new Pa(t.selectorAtoms.toJSON()),selectorGraph:new Pa(t.selectorGraph.toJSON(),{makeContentKey:(...s)=>s.sort().join(":")}),writableSelectors:new wl(t.writableSelectors),valueMap:new wl(t.valueMap),defaults:t.defaults,disposalTraces:n.disposalTraces.copy(),molecules:new wl(t.molecules),moleculeGraph:new Pa(t.moleculeGraph.toJSON(),{makeContentKey:t.moleculeGraph.makeContentKey}),moleculeData:new Pa(t.moleculeData.toJSON(),{makeContentKey:t.moleculeData.makeContentKey}),moleculeJoins:new Pa(t.moleculeJoins.toJSON(),{makeContentKey:t.moleculeJoins.makeContentKey}),miscResources:new wl(t.miscResources)},o=ken(n,i),u={phase:"building",update:{type:"transaction_update",key:i,id:a,epoch:o===void 0?NaN:o+1,updates:[],params:e,output:void 0},toolkit:{get:(...s)=>Tr(l,...s),set:(...s)=>{ca(l,...s)},run:(s,c=F6())=>u_(l,s,c),find:(...s)=>Pi(n,...s),json:(s)=>Qp(l,s),dispose:(...s)=>{tb(l,...s)},env:()=>Ken(l)}},l=Object.assign(r,{transactionMeta:u});return t.child=l,n.logger.info("\uD83D\uDEEB","transaction",i,"Building transaction with params:",e),l};function b_(n,i){let{key:e}=i,a=n.transactions.has(e),t={key:e,type:"transaction",run:(u,l)=>{let s=jen(n,e,u,l);try{let c=kn(n),{toolkit:f}=s.transactionMeta,b=i.do(f,...u);return Qen(b,c),b}catch(c){throw Nen(r),n.logger.warn("\uD83D\uDCA5","transaction",e,"caught:",c),c}},install:(u)=>b_(u,i),subject:new Xi},r=kn(n);r.transactions.set(e,t);let o=ab(t);if(!a)n.on.transactionCreation.next(o);return o}var P6=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 Pa({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Pa({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new Pa({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Pa({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new ven(100);molecules=new Map;moleculeJoins=new Pa({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeGraph=new Pa({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});moleculeData=new Pa({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});miscResources=new Map;on={atomCreation:new Xi,atomDisposal:new Xi,selectorCreation:new Xi,selectorDisposal:new Xi,timelineCreation:new Xi,transactionCreation:new Xi,transactionApplying:new _en(null),operationClose:new Xi,moleculeCreation:new Xi,moleculeDisposal:new Xi};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new $0("warn",(n,i,e)=>!ran(e))];logger={error:(...n)=>{for(let i of this.loggers)i.error(...n)},info:(...n)=>{for(let i of this.loggers)i.info(...n)},warn:(...n)=>{for(let i of this.loggers)i.warn(...n)}};constructor(n,i=null){if(this.config={...i?.config,...n},i!==null){if(this.valueMap=new Map(i?.valueMap),this.operation={...i?.operation},Dc(i))this.transactionMeta={epoch:new Map(i?.transactionMeta.epoch),actionContinuities:new Pa(i?.transactionMeta.actionContinuities.toJSON())};for(let[,a]of i.families){if(a.internalRoles?.includes("mutable")||a.internalRoles?.includes("join"))continue;a.install(this)}let e=new Set;for(let[,a]of i.atoms){if(e.has(a.key))continue;if(a.install(this),a.type==="mutable_atom"){let t=Qp(i,a),r=h_(a);e.add(t.key),e.add(r.key)}}for(let[,a]of i.readonlySelectors)a.install(this);for(let[,a]of i.writableSelectors){if(e.has(a.key))continue;a.install(this)}for(let[,a]of i.transactions)a.install(this);for(let[,a]of i.timelines)a.install(this)}}},Mi={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new P6({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function sa(n,i){let e,a=n;while(a!==null){switch(i.type){case"atom":case"mutable_atom":e=a.atoms.get(i.key);break;case"writable_pure_selector":case"writable_held_selector":e=a.writableSelectors.get(i.key);break;case"readonly_pure_selector":case"readonly_held_selector":e=a.readonlySelectors.get(i.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":e=a.families.get(i.key);break;case"timeline":e=a.timelines.get(i.key);break;case"transaction":e=a.transactions.get(i.key);break}if(e)return e;a=a.child}throw new o_(i,n)}var Jen=(n,i)=>{let e=kn(n);if(e.operation.open)return e.operation.prev.get(i.key);return e.valueMap.get(i.key)};var _6=(n,i)=>{let e=kn(n);return Ien(i,n).map((t)=>{let r=e.atoms.get(t);if(r===void 0)throw new Error(`Atom "${t}", a dependency of selector "${i.key}", not found in store "${n.config.name}".`);return r.subject.subscribe(`${i.type}:${i.key}`,(o)=>{n.logger.info("\uD83D\uDCE2",i.type,i.key,"root",t,"went",o.oldValue,"->",o.newValue);let u=Jen(e,i),l=P0(e,i);n.logger.info("\u2728",i.type,i.key,"went",u,"->",l),i.subject.next({newValue:l,oldValue:u})})})};function Dm(n,i,e,a){function t(f){if(n.operation.open){let b=n.on.operationClose.subscribe(`state subscription ${e}`,()=>{b(),a(f)})}else a(f)}let r=sa(n,i);n.logger.info("\uD83D\uDC40",r.type,r.key,`Adding subscription "${e}"`);let o=r.type==="writable_pure_selector"||r.type==="readonly_pure_selector",u=null,l=t;if(o)u=_6(n,r),l=(f)=>{if(u)u.length=0,u.push(..._6(n,r));t(f)};let s=r.subject.subscribe(e,l);return()=>{if(n.logger.info("\uD83D\uDE48",r.type,r.key,`Removing subscription "${e}"`),s(),u)for(let f of u)f()}}var qen=(n,i,e,a)=>{let t=sa(n,i);n.logger.info("\uD83D\uDC40","timeline",i.key,`Adding subscription "${e}"`);let r=t.subject.subscribe(e,a);return()=>{n.logger.info("\uD83D\uDE48","timeline",i.key,`Removing subscription "${e}" from timeline`),r()}};var E_=class{initializeState(n,i){let e=`*${n.key}`;i.atoms.delete(e),i.valueMap.delete(e);let a=n.family?{key:`*${n.family.key}`,subKey:n.family.subKey}:void 0,t=Y0(i,{key:e,default:null},a);if(i.parent?.valueMap.has(e)){let r=i.parent.valueMap.get(e);i.valueMap.set(e,r)}return t}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(n,i,e){let a=`tracker:${e.config.name}:${Ba(e)?e.transactionMeta.update.key:"main"}:${n.key}`,t=Tr(e,n);this.unsubscribeFromInnerValue=t.subscribe(a,(r)=>{ca(e,i,r)}),this.unsubscribeFromState=Dm(e,n,a,(r)=>{if(r.newValue!==r.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=r.newValue.subscribe(a,(o)=>{ca(e,i,o)})})}updateCore(n,i,e){let a=`tracker:${e.config.name}:${Ba(e)?e.transactionMeta.update.key:"main"}:${n.key}`;Dm(e,i,a,({newValue:t,oldValue:r})=>{let o=e.timelineTopics.getRelatedKey(i.key);if(o){if(e.timelines.get(o)?.timeTraveling){let s=qen(e,{key:o,type:"timeline"},a,(c)=>{s(),ca(e,n,(f)=>{if(c==="redo"&&t)f.do(t);else if(c==="undo"&&r)f.undo(r);return f})});return}}let u=e.on.operationClose.subscribe(a,()=>{u();let l=Tr(e,n),s=t===null?-1:l.getUpdateNumber(t),c=s-l.cacheUpdateNumber;if(t&&c===1)ca(e,n,(f)=>(f.do(t),f));else e.logger.info("\u274C","mutable_atom",n.key,`could not be updated. Expected update number ${l.cacheUpdateNumber+1}, but got ${s}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(n,i){this.mutableState=n;let e=kn(i);this.latestUpdateState=this.initializeState(n,e),this.observeCore(n,this.latestUpdateState,e),this.updateCore(n,this.latestUpdateState,e),e.trackers.set(n.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),e.trackers.delete(n.key)}}};function g_(n,i,e){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);let a=kn(n),{key:t,default:r}=i,o=a.atoms.get(t),u="mutable_atom";if(o&&o.type===u)return n.logger.error("\u274C",u,t,"Tried to create atom, but it already exists in the store."),ab(o);let l=new Xi,s={...i,type:u,install:(b)=>{return b.logger.info("\uD83D\uDEE0\uFE0F","atom",t,`installing in store "${b.config.name}"`),g_(b,i,e)},subject:l};if(e)s.family=e;let c=r();a.atoms.set(s.key,s),W6(n,t),vl(a,t,c,l);let f=ab(s);if(i.effects){let b=0,g=[];for(let m of i.effects){let h=m({setSelf:(D)=>{ca(n,f,D)},onSet:(D)=>Dm(n,f,`effect[${b}]`,D)});if(h)g.push(h);++b}s.cleanup=()=>{for(let m of g)m()}}if(new E_(f,n),!e)R6(f,i,n);return f}var nan=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(n,i){let e=B0(i,{key:`*${n.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=sa(i,e),this.mutableAtoms=n,this.mutableAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(a)=>{let{type:t,token:r}=a;if(r.family){let o=vr(r.family.subKey);switch(t){case"state_creation":this.trackers.set(o,new E_(r,i));break;case"state_disposal":{let u=this.trackers.get(o);if(u)u[Symbol.dispose](),this.trackers.delete(o)}break}}})}};function m_(n,i,e){let a={key:i.key,type:"mutable_atom_family"},t=n.families.get(i.key);if(t)n.logger.error("\u2757","mutable_atom_family",i.key,`Overwriting an existing ${Zp(t)} "${t.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let r=new Xi,u=Object.assign((l)=>{let s=ee(l),c={key:i.key,subKey:s},f=`${i.key}(${s})`,b=kn(n),g={key:f,default:()=>i.default(l),toJson:i.toJson,fromJson:i.fromJson,mutable:!0};if(i.effects)g.effects=i.effects(l);let m=g_(b,g,c);return r.next({type:"state_creation",token:m}),m},a,{subject:r,install:(l)=>m_(l,i),toJson:i.toJson,fromJson:i.fromJson,internalRoles:e});return n.families.set(i.key,u),T6(n,u,i),new nan(u,n),a}var N6=(n,i)=>{let e=kn(i),a=`${n.key}:JSON`;return e.families.get(a)},Qp=(n,i)=>{if(i.family){let a=kn(n),r={key:`${i.family.key}:JSON`,type:"writable_pure_selector_family"},o=sa(a,r),u=JSON.parse(i.family.subKey);return Pi(n,o,u)}return{type:"writable_pure_selector",key:`${i.key}:JSON`}};var h_=(n)=>{let e={type:"atom",key:`*${n.key}`};if(n.family)e.family={key:`*${n.family.key}`,subKey:n.family.subKey};return e};function ian(n){return typeof n==="object"&&n!==null&&"do"in n&&"undo"in n&&"subscribe"in n}function r_(n,i,e){let a=e.valueMap.get(i.key),t=n.valueMap.get(i.key);if(a!==t)return t;if(a===void 0)return i.default();e.logger.info("\uD83D\uDCC3","atom",i.key,"copying");let r=i.toJson(a),o=i.fromJson(r);return n.valueMap.set(i.key,o),new E_(i,e),o}function vl(n,i,e,a){let t=n.valueMap.get(i);if(t instanceof n_){let r=t;if(e instanceof Promise)return r;return n.valueMap.set(i,e),e}if(e instanceof Promise){let r=new n_(e);return n.valueMap.set(i,r),r.then((o)=>{if(n.valueMap.get(i)===r){vl(n,i,o,a);let l=n.atoms.get(i);if(l)i_(n,l),a_(n,l),e_(n);else{let s=n.writableSelectors.get(i)??n.readonlySelectors.get(i);if(s)i_(n,s),Fen(n,s),e_(n)}a.next({newValue:o,oldValue:r})}}).catch((o)=>{n.logger.error("\uD83D\uDCA5","state",i,"rejected:",o)}),r}return n.valueMap.set(i,e),e}var ean=(n,i)=>{let e=i.valueMap.get(n.key);if(n.type==="mutable_atom"&&Ba(i)){let{parent:a}=i;e=r_(i,n,a)}return e},B6=(n,i)=>{let e=i.valueMap.get(n);if(e instanceof n_){let a=e,t=i.writableSelectors.get(n)??i.readonlySelectors.get(n);if(t)a.use(t.get());return}if(i.operation.open)i.operation.prev.set(n,e);i.valueMap.delete(n),i.logger.info("\uD83D\uDDD1","state",n,"evicted")},aan=(n,i)=>{return kn(n).atomsThatAreDefault.has(i)},W6=(n,i)=>{let e=kn(n);e.atomsThatAreDefault=new Set(e.atomsThatAreDefault).add(i)},tan=(n,i)=>{let e=kn(n);e.atomsThatAreDefault=new Set(kn(n).atomsThatAreDefault),e.atomsThatAreDefault.delete(i)};function Y0(n,i,e){let{key:t,default:r}=i;n.logger.info("\uD83D\uDD28","atom",t,`creating in store "${n.config.name}"`);let o=kn(n),u=o.atoms.get(t);if(u&&u.type==="atom")return n.logger.error("\u274C","atom",t,"Tried to create atom, but it already exists in the store."),ab(u);let l=new Xi,s={...i,type:"atom",install:(b)=>{return b.logger.info("\uD83D\uDEE0\uFE0F","atom",t,`installing in store "${b.config.name}"`),Y0(b,i,e)},subject:l};if(e)s.family=e;let c=r;if(r instanceof Function)c=r();o.atoms.set(t,s),W6(n,t),vl(o,t,c,l);let f=ab(s);if(i.effects){let b=0,g=[];for(let m of i.effects){let h=m({setSelf:(D)=>{ca(n,f,D)},onSet:(D)=>Dm(n,f,`effect[${b}]`,D)});if(h)g.push(h);++b}s.cleanup=()=>{for(let m of g)m()}}return f}function Y6(n,i){if("mutable"in i){let t=g_(n,i,void 0);return n.on.atomCreation.next(t),t}let a=Y0(n,i,void 0);return n.on.atomCreation.next(a),a}function V6(n,i){let e=kn(n),{key:a,family:t}=i,r=sa(e,i);if(!t)n.logger.error("\u274C","atom",a,"Standalone atoms cannot be disposed.");else{r.cleanup?.();let o=n.valueMap.get(r.key),u=sa(n,{key:t.key,type:"atom_family"}),l={type:"state_disposal",subType:"atom",token:i,value:o};u.subject.next(l);let s=Ba(e);if(e.atoms.delete(a),e.valueMap.delete(a),e.selectorAtoms.delete(a),e.atomsThatAreDefault.delete(a),n.timelineTopics.delete(a),i.type==="mutable_atom"){let c=h_(i);V6(n,c),n.trackers.delete(a)}if(n.logger.info("\uD83D\uDD25","atom",a,"deleted"),s&&e.transactionMeta.phase==="building"){let c=e.transactionMeta.update.updates.at(-1);if(!(c?.type==="molecule_disposal"&&c.values.some(([g])=>g===r.family?.key)))e.transactionMeta.update.updates.push(l)}else n.on.atomDisposal.next(i)}}var A_=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(n,i){let e=this.toolkit;this.toolkit=n,i(this),this.toolkit=e}store;realm;[Symbol.dispose](){}constructor(n,i,e=Mi.STORE){this.store=e,this.realm=new S6(e),this.options=n,this.defaultContent=i,this.store.miscResources.set(`join:${n.key}`,this),this.realm.allocate("root",n.key),this.toolkit={get:(...x)=>Tr(e,...x),set:(...x)=>{ca(e,...x)},find:(...x)=>Pi(e,...x),json:(x)=>Qp(e,x)};let a=n.between[0],t=n.between[1],r=m_(e,{key:`${n.key}/relatedKeys`,default:()=>new Rr,mutable:!0,fromJson:(x)=>Rr.fromJSON(x),toJson:(x)=>x.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:r};let o=({get:x},N)=>x(r,N),u=({set:x},N,I)=>{if(!this.store.molecules.has(ee(N)))this.realm.allocate(n.key,N);x(r,N,(G)=>G.add(I)),x(r,I,(G)=>G.add(N))},l=({set:x},N,I)=>{x(r,N,(G)=>{return G.delete(I),G}),x(r,I,(G)=>{return G.delete(N),G})},s=(x,N,I)=>{let{find:G,get:Y,set:W}=x,$=G(r,N),K=Y($);for(let Z of K){if(I.includes(Z))continue;W(r,Z,(tn)=>{return tn.delete(N),tn})}W($,(Z)=>{return Z.transaction((J)=>{J.clear();for(let tn of I){let on=o(x,tn),Dn=on.has(N);if(this.relations.cardinality==="1:n"){let Ln=[];for(let Q of on){if(Q===N)continue;let O=o(x,Q);if(O.delete(tn),O.size===0)Ln.push(Q)}if(!Dn&&on.size>0)on.clear();for(let Q of Ln){let O=[tn,Q].sort(),k=`"${O[0]}:${O[1]}"`;this.molecules.delete(k)}}if(!Dn)on.add(N);J.add(tn)}return!0}),Z})},c=(x,N,I)=>{let{set:G}=x;G(r,N,(Y)=>{return Y.transaction((W)=>{for(let $ of I)W.add($);return!0}),Y});for(let Y of I)G(r,Y,(W)=>{return W.add(N),W});return!0},f=(x,N,I)=>{let G=o(x,N);return I?G.has(I):G.size>0},b={getRelatedKeys:(x)=>o(this.toolkit,x),addRelation:(x,N)=>{this.store.moleculeJoins.set(x,n.key),this.store.moleculeJoins.set(N,n.key),u(this.toolkit,x,N)},deleteRelation:(x,N)=>{l(this.toolkit,x,N)},replaceRelationsSafely:(x,N)=>{s(this.toolkit,x,N)},replaceRelationsUnsafely:(x,N)=>{c(this.toolkit,x,N)},has:(x,N)=>f(this.toolkit,x,N)},g,m;if(i){m=B0(e,{key:`${n.key}/content`,default:i},["join","content"]);let x=({get:G},Y)=>G(m,Y),N=({set:G},Y,W)=>{G(m,Y,W)};g=Object.assign(b,{getContent:(G)=>{return x(this.toolkit,G)},setContent:(G,Y)=>{N(this.toolkit,G,Y)},deleteContent:(G)=>{this.realm.deallocate(G)}})}else g=b;let h=new Pa(n,{externalStore:g,isAType:n.isAType,isBType:n.isBType,makeContentKey:(...x)=>{let[N,I]=x,G=x.sort(),Y=`${G[0]}:${G[1]}`,W=e.molecules.get(ee(N)),$=e.molecules.get(ee(I));if(!W)this.realm.allocate(n.key,N);if(!$)this.realm.allocate(n.key,I);return this.realm.allocate(N,Y,"all"),this.realm.claim(I,Y),this.store.moleculeJoins.set(Y,n.key),Y}}),D=()=>eb(e,{key:`${n.key}/singleRelatedKey`,get:(x)=>({get:N})=>{let I=N(r,x);for(let G of I)return G;return null}},["join","keys"]),T=()=>{return eb(e,{key:`${n.key}/multipleRelatedKeys`,get:(x)=>({get:N})=>{let I=N6(r,e);return N(I,x).members}},["join","keys"])},v=()=>eb(e,{key:`${n.key}/singleRelatedEntry`,get:(x)=>({get:N})=>{let I=N(r,x);for(let G of I){let Y=h.isAType?.(x)?x:void 0,W=Y===void 0?x:void 0;Y??=G,W??=G;let $=h.makeContentKey(Y,W),K=N(m,$);return[G,K]}return null}},["join","entries"]),S=()=>eb(e,{key:`${n.key}/multipleRelatedEntries`,get:(x)=>({get:N})=>{let I=N6(r,e);return N(I,x).members.map((Y)=>{let W=h.isAType?.(x)?x:void 0,$=W===void 0?x:void 0;W??=Y,$??=Y;let K=h.makeContentKey(W,$),Z=N(m,K);return[Y,Z]})}},["join","entries"]);switch(n.cardinality){case"1:1":{let x=D(),N=`${a}KeyOf${De(t)}`,I=`${t}KeyOf${De(a)}`,G={[N]:x,[I]:x},Y;if(i){let W=v(),$=`${a}EntryOf${De(t)}`,K=`${t}EntryOf${De(a)}`,Z={[$]:W,[K]:W};Y=Object.assign(G,Z)}else Y=G;this.relations=h,this.states=Y;break}case"1:n":{let x=D(),N=T(),I=`${a}KeyOf${De(t)}`,G=`${t}KeysOf${De(a)}`,Y={[I]:x,[G]:N},W;if(i){let $=v(),K=S(),Z=`${a}EntryOf${De(t)}`,J=`${t}EntriesOf${De(a)}`,tn={[Z]:$,[J]:K};W=Object.assign(Y,tn)}else W=Y;this.relations=h,this.states=W;break}case"n:n":{let x=T(),N=`${a}KeysOf${De(t)}`,I=`${t}KeysOf${De(a)}`,G={[N]:x,[I]:x},Y;if(i){let W=S(),$=`${a}EntriesOf${De(t)}`,K=`${t}EntriesOf${De(a)}`,Z={[$]:W,[K]:W};Y=Object.assign(G,Z)}else Y=G;this.relations=h,this.states=Y}}}};function D_(n,i){let e=i.joins.get(n.key);if(e===void 0){let t=Mi.STORE.joins.get(n.key);if(t===void 0)throw new Error(`Join "${n.key}" not found in store "${i.config.name}"`);e=new A_(t.options,t.defaultContent,i),i.joins.set(n.key,e)}return e}function wc(n,i,e){let a=D_(n,e),t=kn(e);if(Ba(t)){let{toolkit:r}=t.transactionMeta;a.transact(r,({relations:o})=>{i(o)})}else i(a.relations)}function vm(n,i,e){let a=D_(n,e),t;switch(n.cardinality){case"1:1":{let r=`${n.a}KeyOf${De(n.b)}`,o=`${n.b}KeyOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntryOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntryOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}break}case"1:n":{let r=`${n.a}KeyOf${De(n.b)}`,o=`${n.b}KeysOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntryOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntriesOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}break}case"n:n":{let r=`${n.a}KeysOf${De(n.b)}`,o=`${n.b}KeysOf${De(n.a)}`;t={get[r](){let l=a.states[r];return Pi(e,l,i)},get[o](){let l=a.states[o];return Pi(e,l,i)}};let u=`${n.a}EntriesOf${De(n.b)}`;if(u in a.states){let l=`${n.b}EntriesOf${De(n.a)}`;Object.assign(t,{get[u](){let s=a.states[u];return Pi(e,s,i)},get[l](){let s=a.states[l];return Pi(e,s,i)}})}}}return t}function X6(n,i){return D_(n,i).core.relatedKeysAtoms}function ran(n){return n.startsWith("\uD83D\uDD0D ")}function ub(n){return Y6(Mi.STORE,n)}function Rm(n){return O6(Mi.STORE,n)}function ZFn(...n){if(n.length===2)return Tr(Mi.STORE,...n);return Tr(Mi.STORE,...n)}function V0(n,i,e=Mi.STORE){return e.joins.set(n.key,new A_(n,i,e)),{key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality}}function k6(n){return X6(n,Mi.STORE)}var w_=(n)=>(i,e,a,t,...r)=>{console[n](`${i} ${e} "${a}" ${t}`,...r)},uan={error:w_("error"),info:w_("info"),warn:w_("warn")},$0=class{logLevel;filter;logger;constructor(n,i,e=uan){this.logLevel=n,this.filter=i,this.logger=e}error=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel!==null){if(i===!0)this.logger.error(...n);else if(i!==!1)this.logger.error(...i)}};info=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel==="info"){if(i===!0)this.logger.info(...n);else if(i!==!1)this.logger.info(...i)}};warn=(...n)=>{let i=this.filter?.(...n)??!0;if(this.logLevel!=="error"&&this.logLevel!==null){if(i===!0)this.logger.warn(...n);else if(i!==!1)this.logger.warn(...i)}}};var lan=class{store;constructor(n=Mi.STORE){this.store=n,G6("root",n)}allocate(n,i,e){return rb(this.store,n,i,e)}fuse(n,i,e){return y6(this.store,n,i,e)}deallocate(n){ob(this.store,n)}claim(n,i,e){return Am(this.store,n,i,e)}},S6=class{store;realm;constructor(n=Mi.STORE){this.store=n,this.realm=new lan(n)}allocate(n,i,e){rb(this.store,n,i,e)}deallocate(n){ob(this.store,n)}claim(n,i,e){Am(this.store,n,i,e)}};function X0(n){return U6(Mi.STORE,n)}function Tm(n){return b_(Mi.STORE,n)}var jj=si(k0(),1),Jj=si(rN(),1);var O3=si(C3(),1),{Server:L3,Namespace:vCn,Socket:I3}=O3.default;import{readFileSync as WH}from"fs";import{createServer as mbn}from"http";import{createServer as hbn}from"https";import{resolve as gF}from"path";function M3(n,i){if(n instanceof Promise)throw new Error(i)}function vcn(n,i){let e={},a=[];for(let t in n){let r=n[t]["~standard"].validate(i[t]);if(M3(r,`Validation must be synchronous, but ${t} returned a Promise.`),r.issues){a.push(...r.issues.map((o)=>({...o,message:o.message,path:[t,...o.path??[]]})));continue}e[t]=r.value}if(a.length)return{issues:a};return{value:e}}function JN(n){let i=n.runtimeEnvStrict??n.runtimeEnv??process.env;if(n.emptyStringAsUndefined??!1){for(let[v,S]of Object.entries(i))if(S==="")delete i[v]}if(!!n.skipValidation)return i;let t=typeof n.client==="object"?n.client:{},r=typeof n.server==="object"?n.server:{},o=typeof n.shared==="object"?n.shared:{},u=n.isServer??(typeof window==="undefined"||("Deno"in window)),l=u?{...r,...o,...t}:{...t,...o},s=n.createFinalSchema?.(l,u)["~standard"].validate(i)??vcn(l,i);M3(s,"Validation must be synchronous");let c=n.onValidationError??((v)=>{throw console.error("\u274C Invalid environment variables:",v),new Error("Invalid environment variables")}),f=n.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(s.issues)return c(s.issues);let b=(v)=>{if(!n.clientPrefix)return!0;return!v.startsWith(n.clientPrefix)&&!(v in o)},g=(v)=>{return u||!b(v)},m=(v)=>{return v==="__esModule"||v==="$$typeof"},h=(n.extends??[]).reduce((v,S)=>{return Object.assign(v,S)},{}),D=Object.assign(h,s.value);return new Proxy(D,{get(v,S){if(typeof S!=="string")return;if(m(S))return;if(!g(S))return f(S);return Reflect.get(v,S)}})}var Cc=(n)=>Array.isArray(n)?n:[n],U3=(n,i)=>{let e=[[],[]];for(let a of n)if(i(a))e[0].push(a);else e[1].push(a);return e},HD=Array,As=(n,i)=>n.includes(i),G3=(n,i=0)=>[...new Array(n)].map((e,a)=>a+i),Ti=(n,i,e)=>{if(n===void 0)return i===void 0?[]:Array.isArray(i)?i:[i];if(e?.prepend)if(Array.isArray(i))n.unshift(...i);else n.unshift(i);else if(Array.isArray(i))n.push(...i);else n.push(i);return n},Ds=(n,i)=>{if(i===void 0||i===null)return n??[];if(n===void 0||n===null)return Cc(i);return n.concat(i)},y3=(...n)=>n.reduce(Ds,[]),_l=(n,i,e)=>{if(n===void 0)return Array.isArray(i)?i:[i];let a=e?.isEqual??((t,r)=>t===r);for(let t of Cc(i))if(!n.some((r)=>a(r,t)))n.push(t);return n},z3=(n,i)=>n.reduce((e,a)=>{let t=a[i];return e[t]=Ti(e[t],a),e},{}),ws=(n,i,e)=>n.length===i.length&&n.every(e?.isEqual?(a,t)=>e.isEqual(a,i[t]):(a,t)=>a===i[t]);var Sr=(n,i)=>pa(n)===i,pa=(n)=>{let i=typeof n;return i==="object"?n===null?"null":"object":i==="function"?"object":i},Fr={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},H3={...Fr,function:"a function"};class $3 extends Error{}var Oi=(n)=>sd(n,$3),sd=(n,i=Error)=>{throw new i(n)};class Wm extends Error{name="ParseError"}var an=(n)=>sd(n,Wm),xu=(n)=>` ${n}`;var ri=(n,i)=>{let e={},a=Array.isArray(n),t=!1;for(let[r,o]of Object.entries(n).entries()){let u=a?i(r,o[1]):i(...o,r);t||=typeof u[0]==="number";let l=Array.isArray(u[0])||u.length===0?u:[u];for(let[s,c]of l)if(typeof s==="object")e[s.group]=Ti(e[s.group],c);else e[s]=c}return t?Object.values(e):e};var qN=Object.entries;var da=(n,i)=>(n in i),Mb=(n,i)=>(i in n);class nS{constructor(n){Object.assign(this,n)}}var P3=class{};class Ym extends P3{}var Rcn=(n,i)=>{let e={},a={},t;for(t in n)if(t in i)e[t]=n[t];else a[t]=n[t];return[e,a]};var B3=(n,i)=>Rcn(n,i)[1],Nl=(n)=>Object.keys(n).length===0,cd=(n)=>[...Object.entries(n),...Object.getOwnPropertySymbols(n).map((i)=>[i,n[i]])],W3=(n,i)=>Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)),Y3=(n)=>{let i=Object.keys(n).sort(),e={};for(let a=0;a<i.length;a++)e[i[a]]=n[i[a]];return e};var po=xu("represents an uninitialized value"),V3=(n)=>Object.values(n).filter((i)=>{if(typeof i==="number")return!0;return typeof n[i]!=="number"});var iS={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},eS=globalThis.File??Blob,aS={ArrayBuffer,Blob,File:eS,FormData,Headers,Request,Response,URL},Tcn={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},pd={...iS,...aS,...Tcn,String,Number,Boolean},Vm=(n)=>{let i=Object.getPrototypeOf(n);while(i?.constructor&&(!da(i.constructor.name,pd)||!(n instanceof pd[i.constructor.name])))i=Object.getPrototypeOf(i);let e=i?.constructor?.name;if(e===void 0||e==="Object")return;return e},Xm=(n)=>typeof n==="object"&&n!==null?Vm(n)??"object":pa(n);var le=Array.isArray,_cn={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},Ncn={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},Scn={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},X3={..._cn,...Ncn,...Scn},km=(n)=>{let i=Object(n).name??null;return i&&da(i,pd)&&pd[i]===n?i:null};var tS=(n,i)=>{let e=n.prototype;while(e!==null){if(e===i.prototype)return!0;e=Object.getPrototypeOf(e)}return!1};var k3=(n)=>Z3(n,new Map),Z3=(n,i)=>{if(typeof n!=="object"||n===null)return n;if(i?.has(n))return i.get(n);let e=km(n.constructor);if(e==="Date")return new Date(n.getTime());if(e&&e!=="Array")return n;let a=Array.isArray(n)?n.slice():Object.create(Object.getPrototypeOf(n)),t=Object.getOwnPropertyDescriptors(n);if(i){i.set(n,a);for(let r in t){let o=t[r];if("get"in o||"set"in o)continue;o.value=Z3(o.value,i)}}return Object.defineProperties(a,t),a};var Fcn=(n)=>{let i=po;return()=>i===po?i=n():i},Oc=(n)=>typeof n==="function"&&n.length===0;var Q3=class extends Function{constructor(...n){let i=n.slice(0,-1),e=n.at(-1);try{super(...i,e)}catch(a){return Oi(`Encountered an unexpected error while compiling your definition:
|
|
300
300
|
Message: ${a}
|
|
301
301
|
Source: (${n.slice(0,-1)}) => {
|
|
302
302
|
${n.at(-1)}
|