valdres 1.0.0-beta.32 → 1.0.0-beta.34

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/README.md CHANGED
@@ -66,7 +66,7 @@ const report = inspect.export()
66
66
  inspect.reset()
67
67
  ```
68
68
 
69
- The report correlates human labels with opaque operation, commit, evaluation, session, and search IDs. It includes selector work, proposed topology changes, cycle-search visits by host and call site, aggregate negative-proof memo admission/probe/prune counters, transient selector-host counts, and propagation/notification totals. Completed summaries and details use separate bounded rings with explicit overflow. Exports are immutable and JSON-safe; application values, callbacks, errors, and live State handles are never recorded. Labels are metadata, not identity. The core inspection schema is version 3.
69
+ The report correlates human labels with opaque operation, commit, evaluation, session, and search IDs. It includes selector work, proposed topology changes, forward cycle-search visits by host and call site, bounded reverse-proof outcomes and work, aggregate negative-proof memo admission/probe/prune counters, transient selector-host counts, and propagation/notification totals. Completed summaries and details use separate bounded rings with explicit overflow. Exports are immutable and JSON-safe; application values, callbacks, errors, and live State handles are never recorded. Labels are metadata, not identity. The core inspection schema is version 4.
70
70
 
71
71
  Inspection adds recording and timing work only to the Store created by `createInspectableStore`. The recorder stays outside the ordinary root entry and ordinary consumer bundles remain within their existing size budget.
72
72
 
@@ -1 +1 @@
1
- import{q as e}from"../chunk-k8zy7f8n.js";var t=e.adapter,a=t.assertStore,o=t.read,s=t.subscribe,n=t.readHydrationSnapshot;export{a as assertStore,o as read,n as readHydrationSnapshot,s as subscribe};
1
+ import{r as e}from"../chunk-fbqtxaaa.js";var t=e.adapter,a=t.assertStore,o=t.read,s=t.subscribe,n=t.readHydrationSnapshot;export{a as assertStore,o as read,n as readHydrationSnapshot,s as subscribe};
@@ -0,0 +1,2 @@
1
+ class F extends Error{seal(){Object.freeze(this)}}class fe extends F{code="VALDRES_SELECTOR_GETTER_ERROR";selector;cause;constructor(e,t){super("Selector getter failed");this.name="SelectorGetterError",this.selector=e,this.cause=t,this.seal()}}class Ce extends F{code="VALDRES_SELECTOR_DEPENDENCY_ERROR";dependency;cause;constructor(e,t){super("Selector dependency failed");this.name="SelectorDependencyError",this.dependency=e,this.cause=t,this.seal()}}class ee extends F{code="VALDRES_SELECTOR_CIRCULAR_DEPENDENCY";selector;path;constructor(e,t){super("Selector dependency graph must be acyclic");this.name="SelectorCircularDependencyError",this.selector=e,this.path=Object.freeze([...t]),this.seal()}}class _ extends F{code="VALDRES_INVALID_SYNCHRONOUS_SELECTOR_RESULT";phase;constructor(e){super(`Selector ${e} returned or threw a thenable`);this.name="InvalidSynchronousSelectorResultError",this.phase=e,this.seal()}}class Ee extends F{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class he extends F{code="VALDRES_SELECTOR_COMPARATOR_ERROR";selector;cause;constructor(e,t){super("Selector comparator failed");this.name="SelectorComparatorError",this.selector=e,this.cause=t,this.seal()}}class De extends F{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var $e=Object.freeze({kind:"not-thenable"}),Dt=()=>{},Vt=Reflect.apply,Qe=Symbol.for("valdres.runtime-owner/v1");class w extends Error{seal(){Object.freeze(this)}}class Ve extends w{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class Pe extends w{code="VALDRES_SUBSCRIBER_NOTIFICATION";cause;causes;committed=!0;phase="notifying";source="owned-mutation";constructor(e){super("One or more Store subscribers threw during notification");this.name="SubscriberNotificationError",this.causes=Object.freeze([...e]),this.cause=this.causes[0],this.seal()}}class K extends w{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class Y extends w{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class X extends w{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class Se extends w{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class te extends w{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class ne extends w{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class oe extends w{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class xe extends w{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class je extends w{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Ie extends w{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class pe extends w{code="VALDRES_INVALID_TRANSACTION_TARGET";constructor(){super("Transaction.scope requires a Store or named child");this.name="InvalidTransactionTargetError",this.seal()}}var E=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return $e;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):$e}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},D=(e)=>{try{Vt(e.then,e.target,[void 0,Dt])}catch{}},re=(e)=>{let t=E(e);if(t.kind==="not-thenable")return Object.freeze({kind:"value",value:e});if(t.kind==="inspection-error")return Object.freeze({kind:"error",error:t.error});return D(t),Object.freeze({kind:"error",error:new ne})},Me=(e)=>{try{return re(e())}catch(t){let n=E(t);if(n.kind==="not-thenable")return Object.freeze({kind:"error",error:t});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return D(n),Object.freeze({kind:"error",error:new ne})}},ie=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},B=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"guarded-callback",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},Ze=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"subscriber",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},se=(e,t,n)=>ie(e,Object.freeze({kind:"selector",session:t}),n),Je=(e,t,n)=>ie(e,Object.freeze({kind:"transaction",transaction:t}),n),me=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"transaction-result",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},V=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="selector")throw new Y(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new X;throw new K},ze=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new Y(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new X;throw new K},et=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new Y("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new X;throw new K},ye=(e,t,n)=>{if(!n)throw new Se;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new Y("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new K;throw new X},tt=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},U=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";if((typeof t==="object"||typeof t==="function")&&t!==null){let o=Object.getOwnPropertyDescriptor(t,Qe);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new Ve;throw tt(e,n).latchControlFault(r),r}}return"invalid"},j=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";let o=e.activity,r=tt(e,n);if(o!==void 0&&"session"in o)try{let i=U(e,t,r),s=r.getControlFault();if(s.kind==="fault")throw s.error;return i}catch(i){let s=r.getControlFault();if(s.kind==="fault")throw s.error;throw i}return B(e,r,()=>U(e,t,r))},ae=(e,t)=>(Object.defineProperty(e,Qe,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),be=(e,t)=>Object.freeze(ae({kind:e},t));var nt=Object.freeze({kind:"not-thenable"}),Pt=()=>{},xt=Reflect.apply,ot=Symbol("selector dependency path root"),st=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return nt;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):nt}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},at=(e)=>{try{xt(e.then,e.target,[void 0,Pt])}catch{}},jt=(e)=>Object.freeze(e),It=(e)=>Object.freeze(e),R=(e,t,n,o)=>{let r=It(o);return Object.freeze({selector:e,token:t,outcome:jt(n),dependencies:r,attemptedPrefix:n.kind==="value"?Mt:Object.freeze(r.map((i)=>i.node))})},Mt=Object.freeze([]),Ae=32,Q=8192,zt=2*Ae,dt=128;class ct{passiveSearches;searches=0;constructor(e,t){if(this.passiveSearches=e,t!==void 0)this.diagnostics=t}get enabled(){return this.disabled!==!0}beginSearch(){if(this.searches++,this.diagnostics!==void 0)this.diagnosticsCompleted=!1,this.mapProbes=0,this.prunedNodes=0;let e=this.enabled&&this.searches>this.passiveSearches&&this.first!==void 0;if(e)this.consultCurrentSearch=!0,this.hits=0;else if(this.consultCurrentSearch===!0)this.consultCurrentSearch=void 0;if(e&&this.passiveOrigin===!0&&this.searches===this.passiveSearches+1&&this.passiveProbeBudget===void 0)this.passiveProbeBudget=Math.min(Q,2*this.first.size);return e}hasProvenNoPath(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(t.has(e))return this.hits=(this.hits??0)|1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(n.has(e))return this.hits=(this.hits??0)|2,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}hasProvenNoPathMeasured(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(this.mapProbes=(this.mapProbes??0)+1,t.has(e))return this.hits=(this.hits??0)|1,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(this.mapProbes=(this.mapProbes??0)+1,n.has(e))return this.hits=(this.hits??0)|2,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}completeNegative(e){if(!this.enabled)return;if(this.searches<=this.passiveSearches){let n=e.size>=Ae&&e.size<=Q,o;if(this.searches===1&&n)this.first=e,this.firstIndependentlyClosed=!0,this.passiveOrigin=!0,o="initial";else if(this.searches===this.passiveSearches&&n)o=this.first===void 0?"initial":"activation-replacement",this.first=e,this.firstIndependentlyClosed=!0,this.second=void 0,this.secondIndependentlyClosed=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0;this.completeDiagnostics(o);return}if((this.hits??0)!==0){if(e.size>Q){this.disable("over-cap-hit");return}let n=this.first,o=this.second,r=this.firstIndependentlyClosed===!0,i=this.secondIndependentlyClosed===!0;this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.retain(n,r),this.retain(o,i);let s=this.retain(e,!1);this.locked=!0,this.missWork=0,this.completeDiagnostics(s?"hit-derived":void 0);return}if(e.size===1){this.completeDiagnostics();return}let t=e.size>=Ae&&e.size<=Q;if(this.first===void 0){if(t)this.first=e,this.firstIndependentlyClosed=!0;this.completeDiagnostics(t?"initial":void 0);return}if(this.missWork=(this.missWork??0)+Math.min(e.size,Ae),this.locked!==!0&&this.second===void 0&&t){this.second=e,this.secondIndependentlyClosed=!0,this.completeDiagnostics("secondary");return}if((this.missWork??0)>=zt){this.disable("miss-budget");return}this.completeDiagnostics()}completePositive(){this.completeDiagnostics()}advanceGraphVersion(e){if(!this.enabled||e===void 0)return this.reset(),!1;let t=this.firstIndependentlyClosed===!0?this.first:void 0,n=this.secondIndependentlyClosed===!0?this.second:void 0,o=t===void 0||n!==void 0&&n.size>t.size?n:t;if(o===void 0)return this.reset(),!1;if(this.passiveProbeBudget===void 0)this.passiveOrigin=!0,this.passiveProbeBudget=Math.min(Q,2*o.size);let r=0;for(let i of e){let s=this.hasWithinCrossVersionBudget(o,i.tail);if(s===void 0)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1;if(r++,!s)continue;let a=this.hasWithinCrossVersionBudget(o,i.head);if(a===void 0)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1;if(r++,!a)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1}if(this.diagnostics?.recordMapProbes?.(r),this.passiveProbeBudget===0)return this.reset(),!1;return this.first=o,this.firstIndependentlyClosed=!0,this.second=void 0,this.secondIndependentlyClosed=void 0,this.hits=void 0,this.consultCurrentSearch=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0,!0}reset(){this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.hits=void 0,this.missWork=void 0,this.locked=void 0,this.disabled=void 0,this.searches=0,this.consultCurrentSearch=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0}retain(e,t=!1){if(e===void 0||e.size>Q||e===this.first)return!1;if(this.first===void 0||e.size>this.first.size)return this.second=this.first,this.secondIndependentlyClosed=this.firstIndependentlyClosed,this.first=e,this.firstIndependentlyClosed=t,!0;if(this.second===void 0||e.size>this.second.size)return this.second=e,this.secondIndependentlyClosed=t,!0;return!1}disable(e){this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.missWork=void 0,this.disabled=!0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.completeDiagnostics(void 0,e)}hasWithinCrossVersionBudget(e,t){let n=this.passiveProbeBudget;if(n===void 0||n===0)return;let o=e.has(t);return this.passiveProbeBudget=n-1,o}completeDiagnostics(e,t){let n=this.diagnostics;if(n===void 0||this.diagnosticsCompleted===!0)return;this.diagnosticsCompleted=!0;let o=this.mapProbes??0;n.completeSearch(this.consultCurrentSearch===!0?(this.hits??0)!==0?"consulted-pruned":"consulted-no-prune":"observing",e,t,o,this.prunedNodes??0,(this.first?.size??0)+(this.second?.size??0))}}var Ft=(e,t)=>new ct(e,t),de=(e,t,n,o,r,i)=>{if(i!==void 0)i.nodeVisits=n,i.dependentProbes=dt-t.remaining-n,i.liveDependents=o,i.maxFrontier=r;return e},_t=(e,t,n,o,r,i=!0)=>{if(r!==void 0)r.nodeVisits=0,r.dependentProbes=0,r.liveDependents=0,r.maxFrontier=0;let s=n.visitSelectorDependents;if(s===void 0)return"unsupported";if(!o.isSoleActiveSelector(n,t))return"ineligible-active-frames";if(!Object.is(e,t)){let m=n.getSelectorDependencyNodes;if(m!==void 0){let h=m.call(n,e);if(h===void 0||h.length===0)return"proven-terminal"}}if(!i)return"disabled";let a={remaining:dt},d=[t],c=new Set(d),l=0,u=0,p=1;while(d.length>0){if(a.remaining===0)return de("budget-exhausted",a,l,u,p,r);a.remaining--,l++;let m=d.pop();if(Object.is(m,e))return de("path-possible",a,l,u,p,r);let h=!1,y=s.call(n,m,a,(M)=>{if(u++,Object.is(M,e))return h=!0,!1;if(!c.has(M)){if(c.add(M),d.push(M),d.length>p)p=d.length}return!0});if(h)return de("path-possible",a,l,u,p,r);if(!y)return de("budget-exhausted",a,l,u,p,r)}return de("proven-reverse",a,l,u,p,r)},Bt=(e,t,n,o,r,i,s)=>{if(r===1){let u=_t(e,t,n,o,void 0,s?.reverseProofEnabled??!0);if(u==="proven-terminal"||u==="proven-reverse")return;if(u==="budget-exhausted"&&s!==void 0)s.reverseProofEnabled=!1}let a=s?.(),d=a?.beginSearch()??!1,c=[e],l=new Map([[e,ot]]);while(c.length>0){let u=c.pop();if(Object.is(u,t)){let h=[],y=u;while(y!==ot)h.push(y),y=l.get(y);return h.reverse(),a?.completePositive(),Object.freeze(h)}let p=o.getTransientDependencies(n,u);if(p){if(p.length===0)continue;if(d){let h=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(h)continue}for(let h of p){if(l.has(h.node))continue;l.set(h.node,u),c.push(h.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let h=n.getSelectorDependencyNodes(u);if(h===void 0||h.length===0)continue;if(d){let y=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(y)continue}for(let y of h){if(l.has(y))continue;l.set(y,u),c.push(y)}continue}let m=n.getSelectorRecord(u);if(!m||m.dependencies.length===0)continue;if(d){let h=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(h)continue}for(let h of m.dependencies){if(l.has(h.node))continue;l.set(h.node,u),c.push(h.node)}}a?.completeNegative(l);return},rt=(e,t)=>{let n=st(e);if(n.kind==="thenable")return at(n),new _(t);if(n.kind==="inspection-error")return n.error;return e},it=(e,t)=>{let n=st(e);if(n.kind==="thenable")return at(n),Object.freeze({kind:"error",error:new _(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},lt=(e,t,n,o=Bt,r)=>{let{node:i}=e,s=[],a=t.getSelectorRecord(i),d=a?.dependencies,c=d===void 0?new Set:void 0,l,u=0,p=t.getComparisonBaseline(i),m=!0,h=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let S of s)f.add(S.node);return c=f,f};n.enter(t,i,s);let y=t.getSelectorGraphVersion(),M=n.getSelectorGraphPublicationCount(t),z=y,H=M,qe=y,Ue=M,ke,we=!1,Te=y,ce=0,G,Ke=y,le,Oe=(f,S)=>{if(f===Te)return;if(Te=f,G===void 0){ce=0;return}if(G.advanceGraphVersion(S))return;ce=0,r?.graphVersionReset()},Nt=(f)=>{if(f!==Te)Oe(f,void 0);if(ce++,(d?.length??0)===0&&ce<3){r?.admissionSkipped();return}if(G===void 0){let S=d!==void 0&&d.length>0&&d.length<3;G=Ft(S?3:0,r)}if(!G.enabled){r?.disabled();return}return G},Ct=(f)=>{if(we)return;let S=t.beginSelectorGraphObservation?.(f);if(S===void 0)return;we=!0,ke=S},Re=(f,S,g,v)=>g-f===v-S,Ye=(f=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t),g=Re(z,H,f,S))=>{if(f===z)return;if(!we&&t.beginSelectorGraphObservation!==void 0){Oe(f,void 0),z=f,H=S;return}let v=ke?.takeAddedEdges();if(Oe(f,v),g){z=f,H=S;return}if(v!==void 0){let k=!1;for(let O of v)if(o(O.head,O.tail,t,n,2,s.length)!==void 0){k=!0;break}if(!k){z=f,H=S;return}}for(let k=0;k<s.length;k++){let O=s[k],C=o(O.node,i,t,n,0,s.length);if(!C)continue;if(c!==void 0)for(let P=s.length-1;P>=k;P--)c.delete(s[P].node);if(s.length=k,u++,n.getControlFault().kind==="fault")return;let T=new ee(i,[i,...C]);n.latchCycle(t,i,T);return}z=f,H=S},Ne=()=>{let f=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t);qe=f,Ue=S;let g=Re(z,H,f,S);if(!g)n.revalidateAncestorPrefixes(t,i);Ye(f,S,g)};n.setPrefixRevalidator(t,i,Ye);let Et=(f)=>{if(!m)throw new De;let S=n.getControlFault();if(S.kind==="fault")throw S.error;let g=n.getCycle(t,i);if(g!==void 0)throw g;let v=n.activeCyclePath(t,f);if(v){let b=new ee(i,v);throw n.latchCycle(t,i,b),b}let k=s.length,O,C=!1;if(c===void 0){let b=d?.[k];if(b!==void 0&&Object.is(b.node,f))O=!1,C=!0;else O=h().has(f)}else O=c.has(f);if(!O&&!C&&d!==void 0&&d.length>0){let b=d[s.length];if(b!==void 0&&Object.is(b.node,f))C=!0;else{if(l===void 0){l=new Set;for(let q of d)l.add(q.node)}C=l.has(f)}}let L=u,T=t.serve(f,n);Ne();let P=n.getCycle(t,i);if(P!==void 0)throw P;let Z=c!==void 0?c.has(f):u===L&&s.length===k?!1:h().has(f),I=qe,W=Ue,x=Z||C&&I===y,ue=d===void 0&&Re(y,M,I,W);if(!x&&!ue){if(Ke=I,le===void 0)le=()=>Nt(Ke),le.reverseProofEnabled=!0;let b=o(f,i,t,n,1,s.length,le);if(b){let q=n.getControlFault();if(q.kind==="fault")throw q.error;let Xe=new ee(i,[i,...b]);throw n.latchCycle(t,i,Xe),Xe}}if(!Z){let b=a?.dependencies[s.length];c?.add(f),s.push(b!==void 0&&Object.is(b.node,f)&&Object.is(b.token,T.token)?b:Object.freeze({node:f,token:T.token})),Ct(f)}if(z=I,H=W,T.outcome.kind==="control-error"){n.latchControlFault(T.outcome.error);let b=n.getControlFault();if(b.kind==="fault")throw b.error;throw T.outcome.error}let J=n.getControlFault();if(J.kind==="fault")throw J.error;if(T.outcome.kind==="error")throw new Ce(f,T.outcome.error);return T.outcome.value};try{let f,S,g=!1;try{f=e.get(Et)}catch(P){g=!0,S=P}finally{m=!1}if(g)S=rt(S,"getter");let v=g?void 0:it(f,"getter");Ne();let k=n.getControlFault();if(k.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:k.error},s);let O=n.getCycle(t,i);if(O!==void 0)return R(i,t.createOutcomeToken(),{kind:"error",error:O},s);if(g)return R(i,t.createOutcomeToken(),{kind:"error",error:S instanceof _?S:new fe(i,S)},s);if(v===void 0)throw Error("Selector result classification was not completed");let C=n.getControlFault();if(C.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:C.error},s);if(v.kind==="error")return R(i,t.createOutcomeToken(),{kind:"error",error:v.error instanceof _?v.error:new fe(i,v.error)},s);let L=v.value,T;if(p){let P=e.equal??Object.is,Z,I,W=!1;try{Z=P(p.value,L)}catch(q){W=!0,I=rt(q,"comparator")}let x=W?void 0:it(Z,"comparator");Ne();let ue=n.getControlFault();if(ue.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:ue.error},s);let J=n.getCycle(t,i);if(J!==void 0)return R(i,t.createOutcomeToken(),{kind:"error",error:J},s);if(W)return R(i,t.createOutcomeToken(),{kind:"error",error:I instanceof _?I:new he(i,I)},s);if(x===void 0)throw Error("Selector comparator classification was not completed");let b=n.getControlFault();if(b.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:b.error},s);if(x.kind==="error")return R(i,t.createOutcomeToken(),{kind:"error",error:x.error instanceof _?x.error:new he(i,x.error)},s);if(x.value!==!0&&x.value!==!1)return R(i,t.createOutcomeToken(),{kind:"error",error:new Ee},s);if(x.value===!0)L=p.value,T=p.current?p.token:void 0}return R(i,T??t.createOutcomeToken(),{kind:"value",value:L},s)}finally{try{ke?.close()}finally{n.leave(t,i)}}};class A{#t=[];#n;#o=0;#i;#s=Ht;latchControlFault(e){if(this.#s.kind==="fault")return;this.#s=Object.freeze({kind:"fault",error:e})}getControlFault(){return this.#s}noteSelectorGraphPublication(e){let t=this.#n;if(t===void 0){this.#n=e,this.#o=1;return}if(Object.is(t,e)){this.#o++;return}let n=this.#i??(this.#i=new WeakMap);n.set(e,(n.get(e)??0)+1)}getSelectorGraphPublicationCount(e){return Object.is(this.#n,e)?this.#o:this.#i?.get(e)??0}enter(e,t,n){this.#t.push({host:e,selector:t,dependencyPrefix:n,revalidatePrefix:void 0,cycleError:void 0})}leave(e,t){let n=this.#t.pop();if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame corruption")}isActive(e,t){return this.#t.some((n)=>Object.is(n.host,e)&&Object.is(n.selector,t))}isSoleActiveSelector(e,t){let n=!1;for(let o of this.#t){if(!Object.is(o.host,e))continue;if(n||!Object.is(o.selector,t))return!1;n=!0}return n}activeCyclePath(e,t){let n=this.#t.findIndex((o)=>Object.is(o.host,e)&&Object.is(o.selector,t));if(n===-1)return;return Object.freeze([...this.#t.slice(n).filter((o)=>Object.is(o.host,e)).map((o)=>o.selector),t])}setPrefixRevalidator(e,t,n){let o=this.#r(e,t);if(o.revalidatePrefix!==void 0)throw Error("Selector prefix revalidator is already installed");o.revalidatePrefix=n}revalidateAncestorPrefixes(e,t){this.#r(e,t);for(let n=0;n<this.#t.length-1;n++){let o=this.#t[n];if(!Object.is(o.host,e))continue;let r=o.revalidatePrefix;if(r===void 0)throw Error("Selector prefix revalidator is not installed");r()}}getTransientDependencies(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o.dependencyPrefix}return}latchCycle(e,t,n){let o=this.#a(e,t);o.cycleError??=n}getCycle(e,t){return this.#r(e,t).cycleError}#r(e,t){let n=this.#t[this.#t.length-1];if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame is not active");return n}#a(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o}throw Error("Selector evaluation frame is not active")}}var Ht=Object.freeze({kind:"none"});var ut=Symbol("no-committed-selector-baseline");class ve{#t;#n=new Map;#o=new Map;#i=new Map;#s;#r=1;#a=0;#c;constructor(e,t,n){this.#t=e,this.#s=t,this.#c=n}readSelector(e){let t=new A,n=this.serve(e,t);if(n.outcome.kind!=="value")throw n.outcome.error;return n.outcome.value}advanceGeneration(e){if(e!==this.#s+1)throw Error("Scratch selector generation is not contiguous");this.#s=e,this.#n.clear(),this.#o.clear()}revoke(){this.#n.clear(),this.#o.clear(),this.#i.clear(),this.#t=void 0}serve(e,t){let n=this.#d(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let d=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,d),d}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#c(o.definition,this,t));if(i.outcome.kind==="control-error")throw i.outcome.error;let s=Object.freeze({token:i.token,outcome:i.outcome});return this.#a++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:s,dependencies:i.dependencies})),s}getSelectorRecord(e){let t=this.#n.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorGraphVersion(){return this.#a}getComparisonBaseline(e){let t=this.#i.get(e);if(t===void 0)t=this.#d().captureCommittedSelectorSuccess(e)??ut,this.#i.set(e,t);return t===ut?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#d(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var ft=4096,Gt=Object.freeze([]);class St{onDeadReference;onEmptinessProbe;#t=new WeakMap;#n=new Set;constructor(e,t){this.onDeadReference=e;this.onEmptinessProbe=t}add(e){if(this.#t.has(e))return;let t=new WeakRef(e);this.#t.set(e,t),this.#n.add(t)}delete(e){let t=this.#t.get(e);if(t===void 0)return;this.#t.delete(e),this.#n.delete(t)}forEach(e){for(let t of this.#n){let n=t.deref();if(n===void 0){this.#n.delete(t),this.onDeadReference?.();continue}e(n)}}visitWithin(e,t){for(let n of this.#n){if(e.remaining===0)return!1;e.remaining--;let o=n.deref();if(o===void 0){this.#n.delete(n),this.onDeadReference?.();continue}if(!t(o))return!1}return!0}isEmpty(){for(let e of this.#n){if(this.onEmptinessProbe?.(),e.deref()!==void 0)return!1;this.#n.delete(e),this.onDeadReference?.()}return!0}clear(){this.#n.clear(),this.#t=new WeakMap}}class ge{coordinator;parent;name;children;namedChildren=new Map;atomOverrides=new WeakMap;#t=new WeakMap;#n;#o=new WeakMap;#i;#s=new WeakMap;#r=new WeakSet;#a=0;#c=0;#d;#l=!1;#h;#u="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#m(),this.#n=this.#m()}get status(){return this.#u}get facade(){if(this.#h===void 0)throw Error("Store scope facade is not installed");return this.#h}installFacade(e){if(this.#h!==void 0)throw Error("Store scope facade is already installed");this.#h=e}markDisposing(){if(this.#u==="live")this.#u="disposing"}markDisposed(){this.#u="disposed"}getAtomView(e){return this.#t.get(e)}getMaterializedServedOutcome(e){let t=this.#t.get(e);if(t!==void 0)return t.served;let n=e,o=this.#o.get(n);return o!==void 0&&!this.#r.has(n)?o.served:void 0}createAtomView(e,t,n){let o=this.#t.get(e);if(o!==void 0)return o;let r={scope:this,atom:e,served:Object.freeze({token:this.createOutcomeToken(),outcome:t}),inheritedFrom:n,inheritingChildren:this.#m()};if(this.#t.set(e,r),this.#n.add(r),n!==void 0)n.inheritingChildren.add(r),this.coordinator.recordCounter("routeAdds");return r}attachAtomView(e,t){if(Object.is(e.inheritedFrom,t))return;this.detachAtomView(e),e.inheritedFrom=t,t.inheritingChildren.add(e),this.coordinator.recordCounter("routeAdds")}detachAtomView(e){if(e.inheritedFrom===void 0)return;e.inheritedFrom.inheritingChildren.delete(e),e.inheritedFrom=void 0,this.coordinator.recordCounter("routeRemoves")}updateAtomView(e,t){e.served=Object.freeze({token:this.createOutcomeToken(),outcome:t}),this.coordinator.reachSubscriptionTarget(this,e.atom)}captureCommittedSelectorSuccess(e){let t=this.#o.get(e)?.lastSuccess;return t===void 0?void 0:Object.freeze({value:t.value})}isSelectorDirty(e){return this.#r.has(e)}getCommittedSelectorDependencies(e){return this.#o.get(e)?.dependencies}markDependents(e){this.#s.get(e)?.forEach((t)=>{if(this.coordinator.enqueueSelector(this,t))this.#r.add(t)})}dropRecords(){this.#n.forEach((e)=>{this.detachAtomView(e),e.inheritingChildren.clear()}),this.#n.clear(),this.atomOverrides=new WeakMap,this.#t=new WeakMap,this.#o=new WeakMap,this.#i=void 0,this.#s=new WeakMap,this.#r=new WeakSet,this.#a++,this.#e()}serve(e,t){let n=this.coordinator.runtimeDomain;if(U(n,e,t)==="invalid")throw TypeError("Selector get requires a valid State");return this.serveKnownLocal(e,t)}serveKnownLocal(e,t){let n=this.coordinator.runtimeDomain;if(n.atoms.has(e)){let a=this.#t.get(e);if(a!==void 0)return a.served;return this.coordinator.serveScopeAtom(this,e,t)}let o=n.selectors.get(e);if(o===void 0)throw TypeError("Unknown committed StoreTree state");let r=e,i=this.#o.get(r);if(i!==void 0&&this.coordinator.postSourceApply)this.coordinator.prepareSelectorRead(this,r,t),i=this.#o.get(r);if(i!==void 0&&!this.#r.has(r))return i.served;let s=se(n,t,()=>this.coordinator.evaluate(o,this,t));if(s.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw s.outcome.error;return this.#b(r,s,t)}getSelectorRecord(e){let t=this.#o.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorDependencyNodes(e){let t=this.#o.get(e);if(t===void 0)return;let n=e,o=this.#i?.get(n);if(o===void 0){let r=[];for(let s of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(s.node))r.push(s.node);o=Object.freeze(r);let i=this.#i;if(i===void 0)i=new WeakMap,this.#i=i;i.set(n,o)}return o}visitSelectorDependents(e,t,n){return this.#s.get(e)?.visitWithin(t,n)??!0}getSelectorGraphVersion(){return this.#a}beginSelectorGraphObservation(e){if(!this.coordinator.runtimeDomain.selectors.has(e))return;if(this.#c===0)this.#d=[],this.#l=!1;this.#c++;let t=this.#d?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#d;if(o===void 0)return;if(t===o.length)return Gt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#c--,this.#c!==0)return;this.#d=void 0,this.#l=!1}})}getComparisonBaseline(e){let t=this.#o.get(e);if(t?.lastSuccess===void 0)return;return t.served.outcome.kind==="value"?Object.freeze({current:!0,value:t.lastSuccess.value,token:t.served.token}):Object.freeze({current:!1,value:t.lastSuccess.value})}createOutcomeToken(){return this.coordinator.createOutcomeToken()}#b(e,t,n){let o=this.#o.get(e),r=Object.freeze({token:t.token,outcome:t.outcome}),i=Object.freeze({served:r,dependencies:t.dependencies,lastSuccess:t.outcome.kind==="value"?Object.freeze({value:t.outcome.value,token:t.token}):o?.lastSuccess}),s=this.#y(e,o?.dependencies??ht,t.dependencies),a=s?this.#S(e,o?.dependencies??ht,t.dependencies):void 0;if(s)this.#i?.delete(e);if(this.#a++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),a!==void 0)this.#p(a);if(o!==void 0&&!Object.is(o.served.token,t.token))this.coordinator.reachSubscriptionTarget(this,e),this.markDependents(e);if(t.outcome.kind==="control-error")this.coordinator.latchPropagationControlFault(t.outcome.error);return r}#y(e,t,n){if(t.length===n.length){let o=0;while(o<t.length&&Object.is(t[o].node,n[o].node))o++;if(o===t.length)return!1}for(let o of t){let r=this.#s.get(o.node);if(r?.delete(e),r?.isEmpty())this.#s.delete(o.node)}for(let o of n){let r=this.#s.get(o.node);if(r===void 0)r=this.#m(),this.#s.set(o.node,r);r.add(e)}return!0}#S(e,t,n){if(this.#c===0||this.#l)return;let o=this.#d;if(o===void 0){this.#e();return}let r=ft-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let d of t)if(i.has(d.node))s.add(d.node);let a=[];for(let d of n)if(i.has(d.node)&&!s.has(d.node)){if(a.push(Object.freeze({tail:e,head:d.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#d;if(t===void 0||t.length+e.length>ft){this.#e();return}t.push(...e)}#e(){if(this.#c===0)return;this.#d=[],this.#l=!0}#m(){return new St(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var ht=Object.freeze([]);class Fe{transaction=Object.freeze({});#t;#n;#o;#i;#s;#r;#a;#c;#d;#l;#h;#u;#b;#y;#S;#p;#e;generation=0;active=!0;constructor(e){this.#t=e}get hasIntents(){return this.#o!==void 0||this.#i!==void 0||this.#s!==void 0||this.#r!==void 0}get singleIntentScope(){return this.#n}get singleIntent(){return this.#i===void 0?this.#o:void 0}stage(e,t){let n=this.#r;if(n!==void 0){let i=n.get(e);if(i===void 0)i=this.#f(),n.set(e,i);i.set(t.atom,t),this.#m();return}let o=this.#s;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#f();i.set(this.#n,o);let s=this.#f();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#s=void 0,this.#n=void 0}this.#m();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#m();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#m();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#m();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#m();return}let s=this.#f();s.set(r.atom,r),s.set(i.atom,i),s.set(t.atom,t),this.#s=s}else{let i=this.#f(),s=this.#f();if(s.set(r.atom,r),this.#i!==void 0)s.set(this.#i.atom,this.#i);i.set(this.#n,s);let a=this.#f();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#m()}forEachIntent(e){let t=this.#o;if(t!==void 0){if(e(this.#n,t),this.#i!==void 0)e(this.#n,this.#i);return}let n=this.#s;if(n!==void 0){let r=this.#n;for(let i of n.values())e(r,i);return}let o=this.#r;if(o===void 0)return;for(let[r,i]of o)for(let s of i.values())e(r,s)}getIntent(e,t){let n=this.#o;if(n!==void 0&&Object.is(this.#n,e)&&Object.is(n.atom,t))return n;let o=this.#i;if(o!==void 0&&Object.is(this.#n,e)&&Object.is(o.atom,t))return o;if(Object.is(this.#n,e))return this.#s?.get(t);return this.#r?.get(e)?.get(t)}getAtomBaseline(e,t){if(this.#d!==void 0&&Object.is(this.#a,e)&&Object.is(this.#c,t))return this.#d;if(this.#h!==void 0&&Object.is(this.#a,e)&&Object.is(this.#l,t))return this.#h;if(Object.is(this.#a,e))return this.#u?.get(t);return this.#b?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#b;if(o!==void 0){let s=o.get(e);if(s===void 0)s=this.#f(),o.set(e,s);if(!s.has(t))s.set(t,n);return}let r=this.#u;if(r!==void 0){if(Object.is(this.#a,e)){if(!r.has(t))r.set(t,n)}else{let s=this.#f();s.set(this.#a,r);let a=this.#f();a.set(t,n),s.set(e,a),this.#b=s,this.#u=void 0,this.#a=void 0}return}let i=this.#d;if(i===void 0){this.#a=e,this.#c=t,this.#d=n;return}if(Object.is(this.#a,e)&&Object.is(this.#c,t))return;if(Object.is(this.#a,e)){let s=this.#h;if(s===void 0){this.#l=t,this.#h=n;return}if(Object.is(this.#l,t))return;let a=this.#f();a.set(this.#c,i),a.set(this.#l,s),a.set(t,n),this.#u=a}else{let s=this.#f(),a=this.#f();if(a.set(this.#c,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#a,a);let d=this.#f();d.set(t,n),s.set(e,d),this.#b=s,this.#a=void 0}this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#y,e))return this.#S;return this.#p?.get(e)}hasFallback(e){return Object.is(this.#y,e)||(this.#p?.has(e)??!1)}setFallback(e,t){let n=this.#p;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#y=e,this.#S=t;return}if(Object.is(this.#y,e)){this.#S=t;return}let o=this.#f();o.set(this.#y,this.#S),o.set(e,t),this.#p=o,this.#y=void 0,this.#S=void 0}forEachFallback(e){if(this.#y!==void 0&&this.#S!==void 0)e(this.#y,this.#S);if(this.#p!==void 0)for(let[t,n]of this.#p)e(t,n)}#m(){this.generation+=1;let e=this.#e;if(e!==void 0)for(let t of e.values())t.advanceGeneration(this.generation)}getScratchHost(e){return this.#e?.get(e)}installScratchHost(e,t){let n=this.#e,o=n===void 0;if(n===void 0)n=new Map,this.#e=n;return n.set(e,t),o}close(){if(!this.active)return;this.active=!1;let e=this.#e;if(e!==void 0){for(let t of e.values())t.revoke();e.clear()}this.#e=void 0}release(){if(this.#s?.clear(),this.#r!==void 0){for(let e of this.#r.values())e.clear();this.#r.clear()}if(this.#u?.clear(),this.#b!==void 0){for(let e of this.#b.values())e.clear();this.#b.clear()}this.#p?.clear(),this.#n=void 0,this.#o=void 0,this.#i=void 0,this.#s=void 0,this.#r=void 0,this.#a=void 0,this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0,this.#u=void 0,this.#b=void 0,this.#y=void 0,this.#S=void 0,this.#p=void 0,this.#e?.clear(),this.#e=void 0}#f(){return this.#t?.(),new Map}}class pt{get;set;update;reset;scope;constructor(e,t,n){this.get=(o)=>e.transactionGet(t,n,o),this.set=(o,r)=>e.transactionSet(t,n,o,r),this.update=(o,r)=>e.transactionUpdate(t,n,o,r),this.reset=(o)=>e.transactionReset(t,n,o),this.scope=(...o)=>e.transactionScope(t,n,o[0],o.length,o[1]),ae(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var _e=(e,t,n)=>new pt(e,t,n),Be=(e)=>{let t=E(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw D(t),new te},mt=(e)=>{let t=E(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw D(t),new te};var Lt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},wt=Object.freeze({sourceEpoch:0,routeVisits:1,deadRouteCompactions:2,scratchHostAllocations:3,propagationSettlements:4,disposalVisits:5,warmParentHops:6,scopeNodesCreated:7,storeFacadesCreated:8,namedScopeHits:9,namedScopeMisses:10,routeAdds:11,routeRemoves:12,fallbackPublications:13,draftCreations:14,scratchMapAllocations:15,finalResolutionVisits:16,finalPreflightVisits:17,draftStorageAllocations:18,commitWorksetAllocations:19,subscriptionIndexMapsCreated:20,subscriptionTargetsCreated:21,subscriptionRegistrations:22,subscriptionRemovals:23,unsubscribeClosuresCreated:24,activeSubscriptionScopes:25,activeSubscriptionTargets:26,activeSubscriptions:27,notificationTargetsReached:28,notificationSnapshots:29,subscriberCallbacksAttempted:30,subscriberErrors:31}),Wt=32,Tt=new WeakMap,pn=()=>{let e=new Uint32Array(Wt),t=Object.freeze({read(n){return e[wt[n]]??0}});return Tt.set(t,e),t},N=(e)=>Object.freeze({kind:"value",value:e}),qt=(e)=>Object.freeze({kind:"error",error:e}),yt=(e)=>e.kind==="value"?N(e.value):qt(e.error),bt=(e,t)=>{if(e.kind!==t.kind)return!1;if(e.kind==="value"&&t.kind==="value")return Object.is(e.value,t.value);return e.kind!=="value"&&t.kind!=="value"&&Object.is(e.error,t.error)},At=1,He=2,vt=4,Ut=(e)=>({onAllocation:e,preflightAtom:void 0,preflightScope:void 0,preflightOutcome:void 0,secondPreflightAtom:void 0,secondPreflightScope:void 0,secondPreflightOutcome:void 0,preflight:void 0,consideredRecord:void 0,secondConsideredRecord:void 0,considered:void 0,affectedRecord:void 0,affectedBefore:void 0,secondAffectedRecord:void 0,secondAffectedBefore:void 0,affected:void 0}),Le=(e)=>(e.onAllocation?.(),new Map),Kt=(e)=>(e.onAllocation?.(),new Set),Ge=(e,t,n)=>{if(e.preflightOutcome!==void 0&&Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return e.preflightOutcome;if(e.secondPreflightOutcome!==void 0&&Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return e.secondPreflightOutcome;return e.preflight?.get(t)?.get(n)},gt=(e,t,n,o)=>{if(e.preflightOutcome===void 0){e.preflightAtom=t,e.preflightScope=n,e.preflightOutcome=o;return}if(Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return;if(e.secondPreflightOutcome===void 0){e.secondPreflightAtom=t,e.secondPreflightScope=n,e.secondPreflightOutcome=o;return}if(Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return;let r=e.preflight;if(r===void 0)r=Le(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=Le(e),r.set(t,i);i.set(n,o)},Yt=(e,t)=>{if(Object.is(e.consideredRecord,t)||Object.is(e.secondConsideredRecord,t))return!1;if(e.consideredRecord===void 0)return e.consideredRecord=t,!0;if(e.secondConsideredRecord===void 0)return e.secondConsideredRecord=t,!0;let n=e.considered;if(n===void 0)n=Kt(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Xt=(e,t,n)=>{if(e.affectedRecord===void 0){e.affectedRecord=t,e.affectedBefore=n;return}if(e.secondAffectedRecord===void 0){e.secondAffectedRecord=t,e.secondAffectedBefore=n;return}let o=e.affected;if(o===void 0)o=Le(e),e.affected=o;o.set(t,n)};class Ot{#t=new WeakMap;#n;#o=1;#i=0;#s=!1;#r;#a;#c;#d=0;#l;#h;#u;#b=1;#y=0;#S;#p;#e;#m;#f;evaluate;constructor(e,t,n){this.#e=e,this.#m=t===void 0?void 0:Tt.get(t),this.#f=n,this.evaluate=n?.evaluate??lt,this.#n=new ge(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#s}get instrumented(){return this.#m!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#m;if(n===void 0)return;n[wt[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Fe(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new A,o=t,r=j(this.#e,o,n),i=ze(this.#e,"StoreTree.get");if(this.#A(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value")throw s.outcome.error;return s.outcome.value}try{let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value"){if(s.outcome.kind==="control-error")i.latchControlFault(s.outcome.error);throw s.outcome.error}return s.outcome.value}catch(s){let a=n.getControlFault();if(a.kind==="fault")i.latchControlFault(a.error);throw s}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":j(this.#e,o,r=new A);if(V(this.#e,"StoreTree.sub"),this.#A(e),i==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("StoreTree.sub requires a valid State");if(typeof n!=="function")throw TypeError("StoreTree.sub requires a callback function");let s=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new A);if(s.outcome.kind==="control-error")throw s.outcome.error;let a=this.#u;if(a===void 0){if(a=new Map,this.#u=a,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let d=a.get(e);if(d===void 0){if(d=new Map,a.set(e,d),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let c=d.get(o);if(c===void 0){if(c={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},d.set(o,c),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:c,previous:c.tail,next:void 0};if(c.tail===void 0)c.head=l;else c.tail.next=l;if(c.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return Lt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;et(this.#e);let{previous:n,next:o}=e;if(n===void 0)t.head=o;else n.next=o;if(o===void 0)t.tail=n;else o.previous=n;e.callback=void 0,e.target=void 0,e.previous=void 0,e.next=void 0;let r=this.instrumented;if(r)this.recordCounter("subscriptionRemovals"),this.recordCounter("activeSubscriptions",-1);if(t.head!==void 0)return;let i=this.#u,s=i?.get(t.scope);if(s?.get(t.state)===t){if(s.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(s!==void 0&&s.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#u=void 0}set(e,t,n){this.#O(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#O(e,t,"StoreTree.update","update",n)}reset(e,t){this.#O(e,t,"StoreTree.reset","reset")}scope(e,t,n){if(t!==0&&(typeof n==="object"||typeof n==="function")&&n!==null)j(this.#e,n,new A);if(V(this.#e,"StoreTree.scope"),this.#A(e),t===0)return this.#P(e);if(t!==1||typeof n!=="string")throw TypeError("StoreTree.scope requires a string name");let o=e.namedChildren.get(n);if(o!==void 0)return this.recordCounter("namedScopeHits"),o.facade;return this.recordCounter("namedScopeMisses"),this.#P(e,n)}dispose(e){if(V(this.#e,"StoreTree.dispose"),e.status!=="live")return;let t=[],n=[Object.freeze({node:e,expanded:!1})];while(n.length>0){let{node:o,expanded:r}=n.pop();if(r){t.push(o);continue}o.markDisposing(),n.push(Object.freeze({node:o,expanded:!0}));let i=[];o.children.forEach((s)=>i.push(s));for(let s=i.length-1;s>=0;s--)n.push(Object.freeze({node:i[s],expanded:!1}))}for(let o of t){this.recordCounter("disposalVisits");let r=o.parent;if(r!==void 0){if(o.name!==void 0&&Object.is(r.namedChildren.get(o.name),o))r.namedChildren.delete(o.name);r.children.delete(o)}this.#$(o),o.dropRecords(),o.namedChildren.clear(),o.children.clear(),o.markDisposed()}if(Object.is(e,this.#n))this.#t=new WeakMap}txn(e,t,n){if(V(this.#e,"StoreTree.txn"),this.#A(e),typeof t!=="function"||n!==void 0&&typeof n!=="string")throw TypeError("StoreTree.txn requires a callback");let o=this.#T(),r=_e(this,o,e),i;try{i=Je(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new A;me(this.#e,s,()=>Be(i)),this.#F(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new A,o=t,r=j(this.#e,o,n);if(V(this.#e,"adapter readHydrationSnapshot"),this.#A(e),r==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("readHydrationSnapshot requires a valid State");let i=this.#T(),s;try{if(this.#e.atoms.has(o)){let a=this.#v(i,e,o,n);if(a.kind!=="value")throw a.error;return a.value}return s=this.#K(i,e),s.readSelector(o)}finally{s?.revoke(),i.close(),i.forEachFallback((a,d)=>{if(this.#t.has(a))return;this.#t.set(a,d),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new A,i=j(this.#e,o,r);if(ye(this.#e,e.transaction,e.active),this.#A(t),i==="invalid")throw TypeError("Transaction.get requires a valid State");if(this.#e.atoms.has(o)){let a=this.#v(e,t,o,r);if(a.kind!=="value")throw a.error;return a.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let s=e.getScratchHost(t);if(s===void 0){if(s=this.#U(e,t),e.installScratchHost(t,s))this.recordCounter("scratchMapAllocations")}return s.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new A;this.#R(e,t,r,i,"Transaction.set"),this.#j(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new A;this.#R(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new A;this.#R(e,t,o,r,"Transaction.reset"),this.#M(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new A;if(typeof n!=="string")j(this.#e,n,i);ye(this.#e,e.transaction,e.active),this.#A(t);let s=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let a=_e(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let d;try{d=r(a)}catch(l){let u=new A;return me(this.#e,u,()=>mt(l))}let c=new A;return me(this.#e,c,()=>Be(d)),d}createOutcomeToken(){return Object.freeze({id:this.#o++})}#U(e,t){return this.recordCounter("scratchHostAllocations"),new ve(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>se(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new ve(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>se(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(U(this.#e,e,t)==="invalid")throw TypeError("Selector get requires a valid State");if(this.#e.atoms.has(e))return Object.freeze({kind:"atom"});let n=this.#e.selectors.get(e);if(n===void 0)throw TypeError("Unknown scratch StoreTree State");return Object.freeze({kind:"selector",definition:n})}#P(e,t){let n=new ge(this,e,t);this.recordCounter("scopeNodesCreated");let o=new We(this,n,this.#f);if(e.children.add(n),t!==void 0)e.namedChildren.set(t,n);return o}#Y(e,t){if(typeof t==="string"){let i=e.namedChildren.get(t);if(i===void 0)throw new je;return this.#A(i),i}let n=t,o=this.#e.stores.get(n);if(o!==void 0){let i=o;if(this.#A(i),!Object.is(i.coordinator,this))throw new Ie;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new Se;throw new pe}throw new pe}#A(e){if(e.status!=="live")throw new xe}#X(e,t,n,o){let r=j(this.#e,t,n);V(this.#e,o),this.#A(e),this.#x(t,r,o)}#O(e,t,n,o,r){let i=t,s=new A;this.#X(e,i,s,n);let a=this.#T();try{if(o==="set")this.#j(a,e,i,r,s);else if(o==="update")this.#I(a,e,i,r,s,n);else this.#M(a,e,i,s)}catch(d){throw a.close(),a.release(),d}a.close();try{this.#F(a)}finally{a.release()}}#$(e){let t=this.#u,n=t?.get(e);if(n===void 0)return;let o=0;for(let r of n.values()){let i=r.head;while(i!==void 0){let s=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=s}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#u=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#R(e,t,n,o,r){let i=j(this.#e,n,o);ye(this.#e,e.transaction,e.active),this.#A(t),this.#x(n,i,r)}#x(e,t,n){if(t==="invalid"||!this.#e.atoms.has(e))throw TypeError(`${n} requires a valid Atom`)}#j(e,t,n,o,r){let i=B(this.#e,r,()=>re(o));if(i.kind==="error")throw i.error;let s=this.#N(e,t,n,r);this.#q(e,t,n,i.value,s,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let s=this.#N(e,t,n,r),a=e.hasIntents?this.#v(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let d=this.#J(o,a.value,r);this.#q(e,t,n,d,s,r)}#M(e,t,n,o){this.#N(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0}):this.#z(e,t.parent,n,o);if(r.outcome.kind!=="value")throw r.outcome.error;let i=r.reachesFallback&&e.hasFallback(n);e.stage(t,Object.freeze({kind:"reset",atom:n,publishDraftFallback:i}))}#N(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),s=t,a;while(s!==void 0){if(s.atomOverrides.has(n)){a=N(s.atomOverrides.get(n));break}s=s.parent}let d=a===void 0,c=Object.freeze({owned:i,outcome:a??this.#C(e,n,o),reachesFallback:d});return e.setAtomBaseline(t,n,c),c}#v(e,t,n,o){return this.#z(e,t,n,o).outcome}#z(e,t,n,o){let r=t;while(r!==void 0){let i=e.getIntent(r,n);if(i?.kind==="set")return Object.freeze({outcome:N(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:N(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0})}#C(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return N(r.fallback.value);let i=r.fallback.initialize,s=e.getFallback(t);if(s!==void 0)return s;let a=yt(B(this.#e,n,()=>Me(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#g(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#Z(r,t,n,o)?t:n}#Z(e,t,n,o){return B(this.#e,o,()=>{let r;try{r=e(t,n)}catch(s){let a=E(s);if(a.kind==="not-thenable")throw s;if(a.kind==="inspection-error")throw a.error;throw D(a),new oe}let i=E(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw D(i),new oe;if(r!==!0&&r!==!1)throw new oe;return r})}#J(e,t,n){return B(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let s=E(i);if(s.kind==="not-thenable")throw i;if(s.kind==="inspection-error")throw s.error;throw D(s),new ne}let r=re(o);if(r.kind==="error")throw r.error;return r.value})}#F(e){if(!e.hasIntents)return;let{singleIntent:t,singleIntentScope:n}=e;if(t?.kind==="reset"&&n!==void 0&&!t.publishDraftFallback&&e.getAtomBaseline(n,t.atom)?.owned===!1)return;let o=Ut(this.instrumented?()=>this.recordCounter("commitWorksetAllocations"):void 0),r,i;if(t!==void 0&&n!==void 0)r=this.#_(e,n,t,o);else e.forEachIntent((a,d)=>{let c=this.#_(e,a,d,o);if(r===void 0){r=c;return}if(i===void 0)i=[];i.push(c)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#B(e,r),i!==void 0)for(let a of i)this.#B(e,a);let s=this.#H(r);if(i!==void 0)for(let a of i){let d=this.#H(a);s||=d}if(this.#G(r),i!==void 0)for(let a of i)this.#G(a);this.#se();try{let a,d,c=o.affectedRecord,l=o.affectedBefore;if(c!==void 0&&l!==void 0)a=this.#E(o,c,l);let{secondAffectedRecord:u,secondAffectedBefore:p}=o;if(u!==void 0&&p!==void 0){let m=this.#E(o,u,p);if(m!==void 0)if(a===void 0)a=m;else d=[m]}if(o.affected!==void 0)for(let[m,h]of o.affected){let y=this.#E(o,m,h);if(y===void 0)continue;if(a===void 0)a=y;else{if(d===void 0)d=[];d.push(y)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(d?.length??0)),this.#ie(a,d)}catch(a){throw this.#k(),a}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#L(e,t,n.atom,o);let i=Object.freeze({scope:t,intent:n,ownershipChanged:n.kind==="set"?!r.owned||!Object.is(t.atomOverrides.get(n.atom),n.value):r.owned}),s=t.getAtomView(n.atom);if(s!==void 0)this.#ee(e,s,o);return i}#B(e,t){if(!t.intent.publishDraftFallback)return;let n=e.getFallback(t.intent.atom);if(n!==void 0&&!this.#t.has(t.intent.atom))this.#t.set(t.intent.atom,n),this.recordCounter("fallbackPublications")}#H(e){let{intent:t,scope:n}=e;if(t.kind==="set")n.atomOverrides.set(t.atom,t.value);else n.atomOverrides.delete(t.atom);return e.ownershipChanged}#G({scope:e,intent:t}){let n=e.getAtomView(t.atom);if(n===void 0)return;if(t.kind==="set"||e.parent===void 0)e.detachAtomView(n);else e.attachAtomView(n,this.#oe(e.parent,t.atom))}#E(e,t,n){let o=Ge(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),bt(n,o))return;return t.scope.updateAtomView(t,o),t}#ee(e,t,n){let o=[t];while(o.length!==0){let r=o.pop();if(!Yt(n,r))continue;let i=r.served.outcome,s=this.#L(e,r.scope,r.atom,n);if(bt(i,s))continue;Xt(n,r,i);let a=o.length;r.inheritingChildren.forEach((d)=>{this.recordCounter("routeVisits"),o.push(d)});for(let d=a,c=o.length-1;d<c;d++,c--){let l=o[d];o[d]=o[c],o[c]=l}}}#L(e,t,n,o){let r=Ge(o,n,t);if(r!==void 0)return r;let i=t,s,a,d;while(i!==void 0){let c=Ge(o,n,i);if(c!==void 0){d=c;break}if(s===void 0)s=i;else{if(a===void 0)a=[];a.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){d=N(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){d=N(i.atomOverrides.get(n));break}i=i.parent}if(d??=this.#te(e,n),s!==void 0)gt(o,n,s,d),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let c of a)gt(o,n,c,d),this.recordCounter("finalPreflightVisits");return d}#te(e,t){let n=this.#t.get(t);if(n!==void 0)return n;let o=e.getFallback(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return N(r.fallback.value);throw Error("Final Atom fallback was not resolved during staging")}#ne(e){let t=this.#t.get(e);if(t!==void 0)return t;let n=this.#g(e);if(n.fallback.kind==="eager")return N(n.fallback.value);throw Error("Committed Atom fallback is not materialized")}#oe(e,t){let n=e,o=[],r;while(!0){let i=n.getAtomView(t);if(i!==void 0){r=i;break}if(n.atomOverrides.has(t)){r=n.createAtomView(t,N(n.atomOverrides.get(t)));break}if(n.parent===void 0){r=n.createAtomView(t,this.#ne(t));break}o.push(n),n=n.parent}for(let i=o.length-1;i>=0;i--)r=o[i].createAtomView(t,r.served.outcome,r);return r}serveScopeAtom(e,t,n){let o=e,r=[],i;while(!0){let s=o.getAtomView(t);if(s!==void 0){i=s;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,N(o.atomOverrides.get(t)));break}if(o.parent===void 0){i=o.createAtomView(t,this.#re(t,n));break}this.recordCounter("warmParentHops"),r.push(o),o=o.parent}for(let s=r.length-1;s>=0;s--)i=r[s].createAtomView(t,i.served.outcome,i);return i.served}#re(e,t){let n=this.#t.get(e);if(n!==void 0)return n;let o=this.#g(e);if(o.fallback.kind==="eager")return N(o.fallback.value);let r=o.fallback.initialize,i=yt(B(this.#e,t,()=>Me(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#g(e){let t=this.#e.atoms.get(e);if(t===void 0)throw TypeError("Unknown committed StoreTree Atom");return t}#ie(e,t){if(e===void 0){this.#k();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#a=void 0,this.#c=void 0,this.#d=0,this.#l=void 0,this.#h=void 0,this.#s=!0;let n;try{if(e.scope.markDependents(e.atom),t!==void 0)for(let r of t)r.scope.markDependents(r.atom);let o=0;while(o<this.#r.length){let r=this.#r[o++],i=this.#r[o++];this.#D(r,i)}}finally{n=this.#h,this.#h=void 0,this.#s=!1,this.#r=void 0,this.#a=void 0,this.#c=void 0,this.#d=0,this.#l=void 0}this.#ae(n)}#se(){this.#S=void 0,this.#p=void 0,this.#y=this.#u===void 0?0:this.#b++}#k(){this.#y=0,this.#S=void 0,this.#p=void 0}reachSubscriptionTarget(e,t){let n=this.#y,o=this.#u?.get(e)?.get(t);if(n===0||o===void 0||o.reachedEpoch===n)return;if(o.reachedEpoch=n,this.instrumented)this.recordCounter("notificationTargetsReached");if(this.#S===void 0){this.#S=o;return}if(this.#p===void 0)this.#p=[o];else this.#p.push(o)}#ae(e){let t=this.#S;if(t===void 0){if(this.#k(),e!==void 0)throw e;return}let n,o,r=(c)=>{let l=c.head;while(l!==void 0){let u=l.callback;if(u!==void 0)if(n===void 0)n=u;else if(o===void 0)o=[n,u];else o.push(u);l=l.next}};r(t);let i=this.#p;if(i!==void 0)for(let c of i)r(c);if(this.#k(),n===void 0){if(e!==void 0)throw e;return}let s=Object.freeze(o??[n]),a=this.instrumented;if(a)this.recordCounter("notificationSnapshots");let d;for(let c of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new A,u=!1,p;try{Ze(this.#e,l,()=>{try{let m=c(),h=E(m);if(h.kind==="thenable")D(h);else if(h.kind==="inspection-error")u=!0,p=h.error}catch(m){u=!0,p=m;let h=E(m);if(h.kind==="thenable")D(h)}})}catch(m){u=!0,p=m}if(u){if(d===void 0)d=[];if(d.push(p),a)this.recordCounter("subscriberErrors")}}if(d===void 0){if(e!==void 0)throw e;return}throw new Pe(e===void 0?d:[e,...d])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#W(e,t)&At)!==0)return!0;return this.#w(e,t,At),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#D(e,t,n)}#D(e,t,n){if((this.#W(e,t)&(vt|He))!==0)return;this.#w(e,t,He);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let s of i)if(this.#e.selectors.has(s.node))this.#D(e,s.node)}if(e.isSelectorDirty(t)){let s=r===e.getSelectorGraphVersion();if(n!==void 0&&s)e.serve(t,n);else e.serve(t,new A)}this.#w(e,t,vt)}finally{this.#w(e,t,0,He)}}#W(e,t){if(Object.is(this.#a,e)&&Object.is(this.#c,t))return this.#d;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#a===void 0){this.#a=e,this.#c=t,this.#d=n&~o;return}if(Object.is(this.#a,e)&&Object.is(this.#c,t)){this.#d=(this.#d|n)&~o;return}let r=this.#l;if(r===void 0)r=new Map,this.#l=r;let i=r.get(e);if(i===void 0)i=new Map,r.set(e,i);i.set(t,((i.get(t)??0)|n)&~o)}latchPropagationControlFault(e){this.#h??=e}#q(e,t,n,o,r,i){let s=r.outcome.kind==="value"?this.#Q(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:s,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class We{get;sub;set;update;reset;txn;scope;dispose;constructor(e,t,n){this.get=(o)=>e.get(t,o),this.sub=(o,r)=>e.sub(t,o,r),this.set=(o,r)=>e.set(t,o,r),this.update=(o,r)=>e.update(t,o,r),this.reset=(o)=>e.reset(t,o),this.txn=(o,r)=>e.txn(t,o,r),this.scope=function(o){return e.scope(t,arguments.length,o)},this.dispose=()=>e.dispose(t),t.installFacade(this),ae(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var kt=(e)=>{if(e.equal!==void 0&&typeof e.equal!=="function")throw TypeError("Atom equal must be a function");return{...e.name===void 0?{}:{name:e.name},...e.equal===void 0?{}:{equal:e.equal}}},Rt=(e)=>{let t={states:new WeakSet,atoms:new WeakMap,selectors:new WeakMap,stores:new WeakMap,transactionCursors:new WeakMap,ownerToken:Object.freeze({}),activity:void 0},n=(d,c={})=>{let l=new A,u=B(t,l,()=>re(d));if(u.kind==="error")throw u.error;let p=be("atom",t.ownerToken);return t.states.add(p),t.atoms.set(p,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...kt(c)})),p},o=(d,c={})=>{if(typeof d!=="function")throw TypeError("atomLazy requires an initializer function");let l=be("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:d}),...kt(c)})),l},r=(d,c={})=>{if(typeof d!=="function")throw TypeError("selector requires a getter function");if(c.equal!==void 0&&typeof c.equal!=="function")throw TypeError("selector equal must be a function");let l=be("selector",t.ownerToken),u=Object.freeze({node:l,get:d,...c.name===void 0?{}:{name:c.name},...c.equal===void 0?{}:{equal:c.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(d)=>{let c=new A;if(j(t,d,c)==="invalid")return;return t.stores.get(d)},a=Object.freeze({assertStore:(d)=>{let c=i(d);if(V(t,"adapter assertStore"),c===void 0)throw TypeError("assertStore requires a valid Store")},read:(d,c)=>{if(i(d)===void 0)throw ze(t,"adapter read"),TypeError("read requires a valid Store");return d.get(c)},subscribe:(d,c,l)=>{if(i(d)===void 0)throw V(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return d.sub(c,l)},readHydrationSnapshot:(d,c)=>{let l=i(d);if(l===void 0)throw V(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,c)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(d=e,c)=>{V(t,"createStoreTree");let l=new Ot(t,d,c);return new We(l,l.rootScope,c)}})};var $t=Rt(),bn=(e,t)=>$t.createStoreTree(e,t);
2
+ export{ee as a,_t as b,lt as c,Ve as d,Pe as e,K as f,Y as g,X as h,Se as i,te as j,ne as k,oe as l,xe as m,je as n,Ie as o,pe as p,pn as q,$t as r,bn as s};
@@ -1 +1 @@
1
- import{q as e}from"../chunk-k8zy7f8n.js";var t=e.adapter,a=t.assertStore,o=t.read,s=t.subscribe,n=t.readHydrationSnapshot;export{a as assertStore,o as read,n as readHydrationSnapshot,s as subscribe};
1
+ import{r as e}from"../chunk-fbqtxaaa.js";var t=e.adapter,a=t.assertStore,o=t.read,s=t.subscribe,n=t.readHydrationSnapshot;export{a as assertStore,o as read,n as readHydrationSnapshot,s as subscribe};
@@ -0,0 +1,2 @@
1
+ class F extends Error{seal(){Object.freeze(this)}}class fe extends F{code="VALDRES_SELECTOR_GETTER_ERROR";selector;cause;constructor(e,t){super("Selector getter failed");this.name="SelectorGetterError",this.selector=e,this.cause=t,this.seal()}}class Ce extends F{code="VALDRES_SELECTOR_DEPENDENCY_ERROR";dependency;cause;constructor(e,t){super("Selector dependency failed");this.name="SelectorDependencyError",this.dependency=e,this.cause=t,this.seal()}}class ee extends F{code="VALDRES_SELECTOR_CIRCULAR_DEPENDENCY";selector;path;constructor(e,t){super("Selector dependency graph must be acyclic");this.name="SelectorCircularDependencyError",this.selector=e,this.path=Object.freeze([...t]),this.seal()}}class _ extends F{code="VALDRES_INVALID_SYNCHRONOUS_SELECTOR_RESULT";phase;constructor(e){super(`Selector ${e} returned or threw a thenable`);this.name="InvalidSynchronousSelectorResultError",this.phase=e,this.seal()}}class Ee extends F{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class he extends F{code="VALDRES_SELECTOR_COMPARATOR_ERROR";selector;cause;constructor(e,t){super("Selector comparator failed");this.name="SelectorComparatorError",this.selector=e,this.cause=t,this.seal()}}class De extends F{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var $e=Object.freeze({kind:"not-thenable"}),Dt=()=>{},Vt=Reflect.apply,Qe=Symbol.for("valdres.runtime-owner/v1");class w extends Error{seal(){Object.freeze(this)}}class Ve extends w{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class Pe extends w{code="VALDRES_SUBSCRIBER_NOTIFICATION";cause;causes;committed=!0;phase="notifying";source="owned-mutation";constructor(e){super("One or more Store subscribers threw during notification");this.name="SubscriberNotificationError",this.causes=Object.freeze([...e]),this.cause=this.causes[0],this.seal()}}class K extends w{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class Y extends w{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class X extends w{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class Se extends w{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class te extends w{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class ne extends w{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class oe extends w{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class xe extends w{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class je extends w{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Ie extends w{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class pe extends w{code="VALDRES_INVALID_TRANSACTION_TARGET";constructor(){super("Transaction.scope requires a Store or named child");this.name="InvalidTransactionTargetError",this.seal()}}var E=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return $e;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):$e}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},D=(e)=>{try{Vt(e.then,e.target,[void 0,Dt])}catch{}},re=(e)=>{let t=E(e);if(t.kind==="not-thenable")return Object.freeze({kind:"value",value:e});if(t.kind==="inspection-error")return Object.freeze({kind:"error",error:t.error});return D(t),Object.freeze({kind:"error",error:new ne})},Me=(e)=>{try{return re(e())}catch(t){let n=E(t);if(n.kind==="not-thenable")return Object.freeze({kind:"error",error:t});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return D(n),Object.freeze({kind:"error",error:new ne})}},ie=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},B=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"guarded-callback",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},Ze=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"subscriber",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},se=(e,t,n)=>ie(e,Object.freeze({kind:"selector",session:t}),n),Je=(e,t,n)=>ie(e,Object.freeze({kind:"transaction",transaction:t}),n),me=(e,t,n)=>{try{let o=ie(e,Object.freeze({kind:"transaction-result",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},V=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="selector")throw new Y(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new X;throw new K},ze=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new Y(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new X;throw new K},et=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new Y("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new X;throw new K},ye=(e,t,n)=>{if(!n)throw new Se;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new Y("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new K;throw new X},tt=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},U=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";if((typeof t==="object"||typeof t==="function")&&t!==null){let o=Object.getOwnPropertyDescriptor(t,Qe);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new Ve;throw tt(e,n).latchControlFault(r),r}}return"invalid"},j=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";let o=e.activity,r=tt(e,n);if(o!==void 0&&"session"in o)try{let i=U(e,t,r),s=r.getControlFault();if(s.kind==="fault")throw s.error;return i}catch(i){let s=r.getControlFault();if(s.kind==="fault")throw s.error;throw i}return B(e,r,()=>U(e,t,r))},ae=(e,t)=>(Object.defineProperty(e,Qe,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),be=(e,t)=>Object.freeze(ae({kind:e},t));var nt=Object.freeze({kind:"not-thenable"}),Pt=()=>{},xt=Reflect.apply,ot=Symbol("selector dependency path root"),st=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return nt;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):nt}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},at=(e)=>{try{xt(e.then,e.target,[void 0,Pt])}catch{}},jt=(e)=>Object.freeze(e),It=(e)=>Object.freeze(e),R=(e,t,n,o)=>{let r=It(o);return Object.freeze({selector:e,token:t,outcome:jt(n),dependencies:r,attemptedPrefix:n.kind==="value"?Mt:Object.freeze(r.map((i)=>i.node))})},Mt=Object.freeze([]),Ae=32,Q=8192,zt=2*Ae,dt=128;class ct{passiveSearches;searches=0;constructor(e,t){if(this.passiveSearches=e,t!==void 0)this.diagnostics=t}get enabled(){return this.disabled!==!0}beginSearch(){if(this.searches++,this.diagnostics!==void 0)this.diagnosticsCompleted=!1,this.mapProbes=0,this.prunedNodes=0;let e=this.enabled&&this.searches>this.passiveSearches&&this.first!==void 0;if(e)this.consultCurrentSearch=!0,this.hits=0;else if(this.consultCurrentSearch===!0)this.consultCurrentSearch=void 0;if(e&&this.passiveOrigin===!0&&this.searches===this.passiveSearches+1&&this.passiveProbeBudget===void 0)this.passiveProbeBudget=Math.min(Q,2*this.first.size);return e}hasProvenNoPath(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(t.has(e))return this.hits=(this.hits??0)|1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(n.has(e))return this.hits=(this.hits??0)|2,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}hasProvenNoPathMeasured(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(this.mapProbes=(this.mapProbes??0)+1,t.has(e))return this.hits=(this.hits??0)|1,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){let o=this.passiveProbeBudget;if(o===0)return this.disable("passive-probe-budget"),!1;if(this.mapProbes=(this.mapProbes??0)+1,n.has(e))return this.hits=(this.hits??0)|2,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}completeNegative(e){if(!this.enabled)return;if(this.searches<=this.passiveSearches){let n=e.size>=Ae&&e.size<=Q,o;if(this.searches===1&&n)this.first=e,this.firstIndependentlyClosed=!0,this.passiveOrigin=!0,o="initial";else if(this.searches===this.passiveSearches&&n)o=this.first===void 0?"initial":"activation-replacement",this.first=e,this.firstIndependentlyClosed=!0,this.second=void 0,this.secondIndependentlyClosed=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0;this.completeDiagnostics(o);return}if((this.hits??0)!==0){if(e.size>Q){this.disable("over-cap-hit");return}let n=this.first,o=this.second,r=this.firstIndependentlyClosed===!0,i=this.secondIndependentlyClosed===!0;this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.retain(n,r),this.retain(o,i);let s=this.retain(e,!1);this.locked=!0,this.missWork=0,this.completeDiagnostics(s?"hit-derived":void 0);return}if(e.size===1){this.completeDiagnostics();return}let t=e.size>=Ae&&e.size<=Q;if(this.first===void 0){if(t)this.first=e,this.firstIndependentlyClosed=!0;this.completeDiagnostics(t?"initial":void 0);return}if(this.missWork=(this.missWork??0)+Math.min(e.size,Ae),this.locked!==!0&&this.second===void 0&&t){this.second=e,this.secondIndependentlyClosed=!0,this.completeDiagnostics("secondary");return}if((this.missWork??0)>=zt){this.disable("miss-budget");return}this.completeDiagnostics()}completePositive(){this.completeDiagnostics()}advanceGraphVersion(e){if(!this.enabled||e===void 0)return this.reset(),!1;let t=this.firstIndependentlyClosed===!0?this.first:void 0,n=this.secondIndependentlyClosed===!0?this.second:void 0,o=t===void 0||n!==void 0&&n.size>t.size?n:t;if(o===void 0)return this.reset(),!1;if(this.passiveProbeBudget===void 0)this.passiveOrigin=!0,this.passiveProbeBudget=Math.min(Q,2*o.size);let r=0;for(let i of e){let s=this.hasWithinCrossVersionBudget(o,i.tail);if(s===void 0)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1;if(r++,!s)continue;let a=this.hasWithinCrossVersionBudget(o,i.head);if(a===void 0)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1;if(r++,!a)return this.diagnostics?.recordMapProbes?.(r),this.reset(),!1}if(this.diagnostics?.recordMapProbes?.(r),this.passiveProbeBudget===0)return this.reset(),!1;return this.first=o,this.firstIndependentlyClosed=!0,this.second=void 0,this.secondIndependentlyClosed=void 0,this.hits=void 0,this.consultCurrentSearch=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0,!0}reset(){this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.hits=void 0,this.missWork=void 0,this.locked=void 0,this.disabled=void 0,this.searches=0,this.consultCurrentSearch=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0}retain(e,t=!1){if(e===void 0||e.size>Q||e===this.first)return!1;if(this.first===void 0||e.size>this.first.size)return this.second=this.first,this.secondIndependentlyClosed=this.firstIndependentlyClosed,this.first=e,this.firstIndependentlyClosed=t,!0;if(this.second===void 0||e.size>this.second.size)return this.second=e,this.secondIndependentlyClosed=t,!0;return!1}disable(e){this.first=void 0,this.second=void 0,this.firstIndependentlyClosed=void 0,this.secondIndependentlyClosed=void 0,this.missWork=void 0,this.disabled=!0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.completeDiagnostics(void 0,e)}hasWithinCrossVersionBudget(e,t){let n=this.passiveProbeBudget;if(n===void 0||n===0)return;let o=e.has(t);return this.passiveProbeBudget=n-1,o}completeDiagnostics(e,t){let n=this.diagnostics;if(n===void 0||this.diagnosticsCompleted===!0)return;this.diagnosticsCompleted=!0;let o=this.mapProbes??0;n.completeSearch(this.consultCurrentSearch===!0?(this.hits??0)!==0?"consulted-pruned":"consulted-no-prune":"observing",e,t,o,this.prunedNodes??0,(this.first?.size??0)+(this.second?.size??0))}}var Ft=(e,t)=>new ct(e,t),de=(e,t,n,o,r,i)=>{if(i!==void 0)i.nodeVisits=n,i.dependentProbes=dt-t.remaining-n,i.liveDependents=o,i.maxFrontier=r;return e},_t=(e,t,n,o,r,i=!0)=>{if(r!==void 0)r.nodeVisits=0,r.dependentProbes=0,r.liveDependents=0,r.maxFrontier=0;let s=n.visitSelectorDependents;if(s===void 0)return"unsupported";if(!o.isSoleActiveSelector(n,t))return"ineligible-active-frames";if(!Object.is(e,t)){let m=n.getSelectorDependencyNodes;if(m!==void 0){let h=m.call(n,e);if(h===void 0||h.length===0)return"proven-terminal"}}if(!i)return"disabled";let a={remaining:dt},d=[t],c=new Set(d),l=0,u=0,p=1;while(d.length>0){if(a.remaining===0)return de("budget-exhausted",a,l,u,p,r);a.remaining--,l++;let m=d.pop();if(Object.is(m,e))return de("path-possible",a,l,u,p,r);let h=!1,y=s.call(n,m,a,(M)=>{if(u++,Object.is(M,e))return h=!0,!1;if(!c.has(M)){if(c.add(M),d.push(M),d.length>p)p=d.length}return!0});if(h)return de("path-possible",a,l,u,p,r);if(!y)return de("budget-exhausted",a,l,u,p,r)}return de("proven-reverse",a,l,u,p,r)},Bt=(e,t,n,o,r,i,s)=>{if(r===1){let u=_t(e,t,n,o,void 0,s?.reverseProofEnabled??!0);if(u==="proven-terminal"||u==="proven-reverse")return;if(u==="budget-exhausted"&&s!==void 0)s.reverseProofEnabled=!1}let a=s?.(),d=a?.beginSearch()??!1,c=[e],l=new Map([[e,ot]]);while(c.length>0){let u=c.pop();if(Object.is(u,t)){let h=[],y=u;while(y!==ot)h.push(y),y=l.get(y);return h.reverse(),a?.completePositive(),Object.freeze(h)}let p=o.getTransientDependencies(n,u);if(p){if(p.length===0)continue;if(d){let h=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(h)continue}for(let h of p){if(l.has(h.node))continue;l.set(h.node,u),c.push(h.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let h=n.getSelectorDependencyNodes(u);if(h===void 0||h.length===0)continue;if(d){let y=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(y)continue}for(let y of h){if(l.has(y))continue;l.set(y,u),c.push(y)}continue}let m=n.getSelectorRecord(u);if(!m||m.dependencies.length===0)continue;if(d){let h=a.hasProvenNoPath(u);if(!a.enabled)d=!1;if(h)continue}for(let h of m.dependencies){if(l.has(h.node))continue;l.set(h.node,u),c.push(h.node)}}a?.completeNegative(l);return},rt=(e,t)=>{let n=st(e);if(n.kind==="thenable")return at(n),new _(t);if(n.kind==="inspection-error")return n.error;return e},it=(e,t)=>{let n=st(e);if(n.kind==="thenable")return at(n),Object.freeze({kind:"error",error:new _(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},lt=(e,t,n,o=Bt,r)=>{let{node:i}=e,s=[],a=t.getSelectorRecord(i),d=a?.dependencies,c=d===void 0?new Set:void 0,l,u=0,p=t.getComparisonBaseline(i),m=!0,h=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let S of s)f.add(S.node);return c=f,f};n.enter(t,i,s);let y=t.getSelectorGraphVersion(),M=n.getSelectorGraphPublicationCount(t),z=y,H=M,qe=y,Ue=M,ke,we=!1,Te=y,ce=0,G,Ke=y,le,Oe=(f,S)=>{if(f===Te)return;if(Te=f,G===void 0){ce=0;return}if(G.advanceGraphVersion(S))return;ce=0,r?.graphVersionReset()},Nt=(f)=>{if(f!==Te)Oe(f,void 0);if(ce++,(d?.length??0)===0&&ce<3){r?.admissionSkipped();return}if(G===void 0){let S=d!==void 0&&d.length>0&&d.length<3;G=Ft(S?3:0,r)}if(!G.enabled){r?.disabled();return}return G},Ct=(f)=>{if(we)return;let S=t.beginSelectorGraphObservation?.(f);if(S===void 0)return;we=!0,ke=S},Re=(f,S,g,v)=>g-f===v-S,Ye=(f=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t),g=Re(z,H,f,S))=>{if(f===z)return;if(!we&&t.beginSelectorGraphObservation!==void 0){Oe(f,void 0),z=f,H=S;return}let v=ke?.takeAddedEdges();if(Oe(f,v),g){z=f,H=S;return}if(v!==void 0){let k=!1;for(let O of v)if(o(O.head,O.tail,t,n,2,s.length)!==void 0){k=!0;break}if(!k){z=f,H=S;return}}for(let k=0;k<s.length;k++){let O=s[k],C=o(O.node,i,t,n,0,s.length);if(!C)continue;if(c!==void 0)for(let P=s.length-1;P>=k;P--)c.delete(s[P].node);if(s.length=k,u++,n.getControlFault().kind==="fault")return;let T=new ee(i,[i,...C]);n.latchCycle(t,i,T);return}z=f,H=S},Ne=()=>{let f=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t);qe=f,Ue=S;let g=Re(z,H,f,S);if(!g)n.revalidateAncestorPrefixes(t,i);Ye(f,S,g)};n.setPrefixRevalidator(t,i,Ye);let Et=(f)=>{if(!m)throw new De;let S=n.getControlFault();if(S.kind==="fault")throw S.error;let g=n.getCycle(t,i);if(g!==void 0)throw g;let v=n.activeCyclePath(t,f);if(v){let b=new ee(i,v);throw n.latchCycle(t,i,b),b}let k=s.length,O,C=!1;if(c===void 0){let b=d?.[k];if(b!==void 0&&Object.is(b.node,f))O=!1,C=!0;else O=h().has(f)}else O=c.has(f);if(!O&&!C&&d!==void 0&&d.length>0){let b=d[s.length];if(b!==void 0&&Object.is(b.node,f))C=!0;else{if(l===void 0){l=new Set;for(let q of d)l.add(q.node)}C=l.has(f)}}let L=u,T=t.serve(f,n);Ne();let P=n.getCycle(t,i);if(P!==void 0)throw P;let Z=c!==void 0?c.has(f):u===L&&s.length===k?!1:h().has(f),I=qe,W=Ue,x=Z||C&&I===y,ue=d===void 0&&Re(y,M,I,W);if(!x&&!ue){if(Ke=I,le===void 0)le=()=>Nt(Ke),le.reverseProofEnabled=!0;let b=o(f,i,t,n,1,s.length,le);if(b){let q=n.getControlFault();if(q.kind==="fault")throw q.error;let Xe=new ee(i,[i,...b]);throw n.latchCycle(t,i,Xe),Xe}}if(!Z){let b=a?.dependencies[s.length];c?.add(f),s.push(b!==void 0&&Object.is(b.node,f)&&Object.is(b.token,T.token)?b:Object.freeze({node:f,token:T.token})),Ct(f)}if(z=I,H=W,T.outcome.kind==="control-error"){n.latchControlFault(T.outcome.error);let b=n.getControlFault();if(b.kind==="fault")throw b.error;throw T.outcome.error}let J=n.getControlFault();if(J.kind==="fault")throw J.error;if(T.outcome.kind==="error")throw new Ce(f,T.outcome.error);return T.outcome.value};try{let f,S,g=!1;try{f=e.get(Et)}catch(P){g=!0,S=P}finally{m=!1}if(g)S=rt(S,"getter");let v=g?void 0:it(f,"getter");Ne();let k=n.getControlFault();if(k.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:k.error},s);let O=n.getCycle(t,i);if(O!==void 0)return R(i,t.createOutcomeToken(),{kind:"error",error:O},s);if(g)return R(i,t.createOutcomeToken(),{kind:"error",error:S instanceof _?S:new fe(i,S)},s);if(v===void 0)throw Error("Selector result classification was not completed");let C=n.getControlFault();if(C.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:C.error},s);if(v.kind==="error")return R(i,t.createOutcomeToken(),{kind:"error",error:v.error instanceof _?v.error:new fe(i,v.error)},s);let L=v.value,T;if(p){let P=e.equal??Object.is,Z,I,W=!1;try{Z=P(p.value,L)}catch(q){W=!0,I=rt(q,"comparator")}let x=W?void 0:it(Z,"comparator");Ne();let ue=n.getControlFault();if(ue.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:ue.error},s);let J=n.getCycle(t,i);if(J!==void 0)return R(i,t.createOutcomeToken(),{kind:"error",error:J},s);if(W)return R(i,t.createOutcomeToken(),{kind:"error",error:I instanceof _?I:new he(i,I)},s);if(x===void 0)throw Error("Selector comparator classification was not completed");let b=n.getControlFault();if(b.kind==="fault")return R(i,t.createOutcomeToken(),{kind:"control-error",error:b.error},s);if(x.kind==="error")return R(i,t.createOutcomeToken(),{kind:"error",error:x.error instanceof _?x.error:new he(i,x.error)},s);if(x.value!==!0&&x.value!==!1)return R(i,t.createOutcomeToken(),{kind:"error",error:new Ee},s);if(x.value===!0)L=p.value,T=p.current?p.token:void 0}return R(i,T??t.createOutcomeToken(),{kind:"value",value:L},s)}finally{try{ke?.close()}finally{n.leave(t,i)}}};class A{#t=[];#n;#o=0;#i;#s=Ht;latchControlFault(e){if(this.#s.kind==="fault")return;this.#s=Object.freeze({kind:"fault",error:e})}getControlFault(){return this.#s}noteSelectorGraphPublication(e){let t=this.#n;if(t===void 0){this.#n=e,this.#o=1;return}if(Object.is(t,e)){this.#o++;return}let n=this.#i??(this.#i=new WeakMap);n.set(e,(n.get(e)??0)+1)}getSelectorGraphPublicationCount(e){return Object.is(this.#n,e)?this.#o:this.#i?.get(e)??0}enter(e,t,n){this.#t.push({host:e,selector:t,dependencyPrefix:n,revalidatePrefix:void 0,cycleError:void 0})}leave(e,t){let n=this.#t.pop();if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame corruption")}isActive(e,t){return this.#t.some((n)=>Object.is(n.host,e)&&Object.is(n.selector,t))}isSoleActiveSelector(e,t){let n=!1;for(let o of this.#t){if(!Object.is(o.host,e))continue;if(n||!Object.is(o.selector,t))return!1;n=!0}return n}activeCyclePath(e,t){let n=this.#t.findIndex((o)=>Object.is(o.host,e)&&Object.is(o.selector,t));if(n===-1)return;return Object.freeze([...this.#t.slice(n).filter((o)=>Object.is(o.host,e)).map((o)=>o.selector),t])}setPrefixRevalidator(e,t,n){let o=this.#r(e,t);if(o.revalidatePrefix!==void 0)throw Error("Selector prefix revalidator is already installed");o.revalidatePrefix=n}revalidateAncestorPrefixes(e,t){this.#r(e,t);for(let n=0;n<this.#t.length-1;n++){let o=this.#t[n];if(!Object.is(o.host,e))continue;let r=o.revalidatePrefix;if(r===void 0)throw Error("Selector prefix revalidator is not installed");r()}}getTransientDependencies(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o.dependencyPrefix}return}latchCycle(e,t,n){let o=this.#a(e,t);o.cycleError??=n}getCycle(e,t){return this.#r(e,t).cycleError}#r(e,t){let n=this.#t[this.#t.length-1];if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame is not active");return n}#a(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o}throw Error("Selector evaluation frame is not active")}}var Ht=Object.freeze({kind:"none"});var ut=Symbol("no-committed-selector-baseline");class ve{#t;#n=new Map;#o=new Map;#i=new Map;#s;#r=1;#a=0;#c;constructor(e,t,n){this.#t=e,this.#s=t,this.#c=n}readSelector(e){let t=new A,n=this.serve(e,t);if(n.outcome.kind!=="value")throw n.outcome.error;return n.outcome.value}advanceGeneration(e){if(e!==this.#s+1)throw Error("Scratch selector generation is not contiguous");this.#s=e,this.#n.clear(),this.#o.clear()}revoke(){this.#n.clear(),this.#o.clear(),this.#i.clear(),this.#t=void 0}serve(e,t){let n=this.#d(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let d=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,d),d}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#c(o.definition,this,t));if(i.outcome.kind==="control-error")throw i.outcome.error;let s=Object.freeze({token:i.token,outcome:i.outcome});return this.#a++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:s,dependencies:i.dependencies})),s}getSelectorRecord(e){let t=this.#n.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorGraphVersion(){return this.#a}getComparisonBaseline(e){let t=this.#i.get(e);if(t===void 0)t=this.#d().captureCommittedSelectorSuccess(e)??ut,this.#i.set(e,t);return t===ut?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#d(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var ft=4096,Gt=Object.freeze([]);class St{onDeadReference;onEmptinessProbe;#t=new WeakMap;#n=new Set;constructor(e,t){this.onDeadReference=e;this.onEmptinessProbe=t}add(e){if(this.#t.has(e))return;let t=new WeakRef(e);this.#t.set(e,t),this.#n.add(t)}delete(e){let t=this.#t.get(e);if(t===void 0)return;this.#t.delete(e),this.#n.delete(t)}forEach(e){for(let t of this.#n){let n=t.deref();if(n===void 0){this.#n.delete(t),this.onDeadReference?.();continue}e(n)}}visitWithin(e,t){for(let n of this.#n){if(e.remaining===0)return!1;e.remaining--;let o=n.deref();if(o===void 0){this.#n.delete(n),this.onDeadReference?.();continue}if(!t(o))return!1}return!0}isEmpty(){for(let e of this.#n){if(this.onEmptinessProbe?.(),e.deref()!==void 0)return!1;this.#n.delete(e),this.onDeadReference?.()}return!0}clear(){this.#n.clear(),this.#t=new WeakMap}}class ge{coordinator;parent;name;children;namedChildren=new Map;atomOverrides=new WeakMap;#t=new WeakMap;#n;#o=new WeakMap;#i;#s=new WeakMap;#r=new WeakSet;#a=0;#c=0;#d;#l=!1;#h;#u="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#m(),this.#n=this.#m()}get status(){return this.#u}get facade(){if(this.#h===void 0)throw Error("Store scope facade is not installed");return this.#h}installFacade(e){if(this.#h!==void 0)throw Error("Store scope facade is already installed");this.#h=e}markDisposing(){if(this.#u==="live")this.#u="disposing"}markDisposed(){this.#u="disposed"}getAtomView(e){return this.#t.get(e)}getMaterializedServedOutcome(e){let t=this.#t.get(e);if(t!==void 0)return t.served;let n=e,o=this.#o.get(n);return o!==void 0&&!this.#r.has(n)?o.served:void 0}createAtomView(e,t,n){let o=this.#t.get(e);if(o!==void 0)return o;let r={scope:this,atom:e,served:Object.freeze({token:this.createOutcomeToken(),outcome:t}),inheritedFrom:n,inheritingChildren:this.#m()};if(this.#t.set(e,r),this.#n.add(r),n!==void 0)n.inheritingChildren.add(r),this.coordinator.recordCounter("routeAdds");return r}attachAtomView(e,t){if(Object.is(e.inheritedFrom,t))return;this.detachAtomView(e),e.inheritedFrom=t,t.inheritingChildren.add(e),this.coordinator.recordCounter("routeAdds")}detachAtomView(e){if(e.inheritedFrom===void 0)return;e.inheritedFrom.inheritingChildren.delete(e),e.inheritedFrom=void 0,this.coordinator.recordCounter("routeRemoves")}updateAtomView(e,t){e.served=Object.freeze({token:this.createOutcomeToken(),outcome:t}),this.coordinator.reachSubscriptionTarget(this,e.atom)}captureCommittedSelectorSuccess(e){let t=this.#o.get(e)?.lastSuccess;return t===void 0?void 0:Object.freeze({value:t.value})}isSelectorDirty(e){return this.#r.has(e)}getCommittedSelectorDependencies(e){return this.#o.get(e)?.dependencies}markDependents(e){this.#s.get(e)?.forEach((t)=>{if(this.coordinator.enqueueSelector(this,t))this.#r.add(t)})}dropRecords(){this.#n.forEach((e)=>{this.detachAtomView(e),e.inheritingChildren.clear()}),this.#n.clear(),this.atomOverrides=new WeakMap,this.#t=new WeakMap,this.#o=new WeakMap,this.#i=void 0,this.#s=new WeakMap,this.#r=new WeakSet,this.#a++,this.#e()}serve(e,t){let n=this.coordinator.runtimeDomain;if(U(n,e,t)==="invalid")throw TypeError("Selector get requires a valid State");return this.serveKnownLocal(e,t)}serveKnownLocal(e,t){let n=this.coordinator.runtimeDomain;if(n.atoms.has(e)){let a=this.#t.get(e);if(a!==void 0)return a.served;return this.coordinator.serveScopeAtom(this,e,t)}let o=n.selectors.get(e);if(o===void 0)throw TypeError("Unknown committed StoreTree state");let r=e,i=this.#o.get(r);if(i!==void 0&&this.coordinator.postSourceApply)this.coordinator.prepareSelectorRead(this,r,t),i=this.#o.get(r);if(i!==void 0&&!this.#r.has(r))return i.served;let s=se(n,t,()=>this.coordinator.evaluate(o,this,t));if(s.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw s.outcome.error;return this.#b(r,s,t)}getSelectorRecord(e){let t=this.#o.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorDependencyNodes(e){let t=this.#o.get(e);if(t===void 0)return;let n=e,o=this.#i?.get(n);if(o===void 0){let r=[];for(let s of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(s.node))r.push(s.node);o=Object.freeze(r);let i=this.#i;if(i===void 0)i=new WeakMap,this.#i=i;i.set(n,o)}return o}visitSelectorDependents(e,t,n){return this.#s.get(e)?.visitWithin(t,n)??!0}getSelectorGraphVersion(){return this.#a}beginSelectorGraphObservation(e){if(!this.coordinator.runtimeDomain.selectors.has(e))return;if(this.#c===0)this.#d=[],this.#l=!1;this.#c++;let t=this.#d?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#d;if(o===void 0)return;if(t===o.length)return Gt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#c--,this.#c!==0)return;this.#d=void 0,this.#l=!1}})}getComparisonBaseline(e){let t=this.#o.get(e);if(t?.lastSuccess===void 0)return;return t.served.outcome.kind==="value"?Object.freeze({current:!0,value:t.lastSuccess.value,token:t.served.token}):Object.freeze({current:!1,value:t.lastSuccess.value})}createOutcomeToken(){return this.coordinator.createOutcomeToken()}#b(e,t,n){let o=this.#o.get(e),r=Object.freeze({token:t.token,outcome:t.outcome}),i=Object.freeze({served:r,dependencies:t.dependencies,lastSuccess:t.outcome.kind==="value"?Object.freeze({value:t.outcome.value,token:t.token}):o?.lastSuccess}),s=this.#y(e,o?.dependencies??ht,t.dependencies),a=s?this.#S(e,o?.dependencies??ht,t.dependencies):void 0;if(s)this.#i?.delete(e);if(this.#a++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),a!==void 0)this.#p(a);if(o!==void 0&&!Object.is(o.served.token,t.token))this.coordinator.reachSubscriptionTarget(this,e),this.markDependents(e);if(t.outcome.kind==="control-error")this.coordinator.latchPropagationControlFault(t.outcome.error);return r}#y(e,t,n){if(t.length===n.length){let o=0;while(o<t.length&&Object.is(t[o].node,n[o].node))o++;if(o===t.length)return!1}for(let o of t){let r=this.#s.get(o.node);if(r?.delete(e),r?.isEmpty())this.#s.delete(o.node)}for(let o of n){let r=this.#s.get(o.node);if(r===void 0)r=this.#m(),this.#s.set(o.node,r);r.add(e)}return!0}#S(e,t,n){if(this.#c===0||this.#l)return;let o=this.#d;if(o===void 0){this.#e();return}let r=ft-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let d of t)if(i.has(d.node))s.add(d.node);let a=[];for(let d of n)if(i.has(d.node)&&!s.has(d.node)){if(a.push(Object.freeze({tail:e,head:d.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#d;if(t===void 0||t.length+e.length>ft){this.#e();return}t.push(...e)}#e(){if(this.#c===0)return;this.#d=[],this.#l=!0}#m(){return new St(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var ht=Object.freeze([]);class Fe{transaction=Object.freeze({});#t;#n;#o;#i;#s;#r;#a;#c;#d;#l;#h;#u;#b;#y;#S;#p;#e;generation=0;active=!0;constructor(e){this.#t=e}get hasIntents(){return this.#o!==void 0||this.#i!==void 0||this.#s!==void 0||this.#r!==void 0}get singleIntentScope(){return this.#n}get singleIntent(){return this.#i===void 0?this.#o:void 0}stage(e,t){let n=this.#r;if(n!==void 0){let i=n.get(e);if(i===void 0)i=this.#f(),n.set(e,i);i.set(t.atom,t),this.#m();return}let o=this.#s;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#f();i.set(this.#n,o);let s=this.#f();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#s=void 0,this.#n=void 0}this.#m();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#m();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#m();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#m();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#m();return}let s=this.#f();s.set(r.atom,r),s.set(i.atom,i),s.set(t.atom,t),this.#s=s}else{let i=this.#f(),s=this.#f();if(s.set(r.atom,r),this.#i!==void 0)s.set(this.#i.atom,this.#i);i.set(this.#n,s);let a=this.#f();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#m()}forEachIntent(e){let t=this.#o;if(t!==void 0){if(e(this.#n,t),this.#i!==void 0)e(this.#n,this.#i);return}let n=this.#s;if(n!==void 0){let r=this.#n;for(let i of n.values())e(r,i);return}let o=this.#r;if(o===void 0)return;for(let[r,i]of o)for(let s of i.values())e(r,s)}getIntent(e,t){let n=this.#o;if(n!==void 0&&Object.is(this.#n,e)&&Object.is(n.atom,t))return n;let o=this.#i;if(o!==void 0&&Object.is(this.#n,e)&&Object.is(o.atom,t))return o;if(Object.is(this.#n,e))return this.#s?.get(t);return this.#r?.get(e)?.get(t)}getAtomBaseline(e,t){if(this.#d!==void 0&&Object.is(this.#a,e)&&Object.is(this.#c,t))return this.#d;if(this.#h!==void 0&&Object.is(this.#a,e)&&Object.is(this.#l,t))return this.#h;if(Object.is(this.#a,e))return this.#u?.get(t);return this.#b?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#b;if(o!==void 0){let s=o.get(e);if(s===void 0)s=this.#f(),o.set(e,s);if(!s.has(t))s.set(t,n);return}let r=this.#u;if(r!==void 0){if(Object.is(this.#a,e)){if(!r.has(t))r.set(t,n)}else{let s=this.#f();s.set(this.#a,r);let a=this.#f();a.set(t,n),s.set(e,a),this.#b=s,this.#u=void 0,this.#a=void 0}return}let i=this.#d;if(i===void 0){this.#a=e,this.#c=t,this.#d=n;return}if(Object.is(this.#a,e)&&Object.is(this.#c,t))return;if(Object.is(this.#a,e)){let s=this.#h;if(s===void 0){this.#l=t,this.#h=n;return}if(Object.is(this.#l,t))return;let a=this.#f();a.set(this.#c,i),a.set(this.#l,s),a.set(t,n),this.#u=a}else{let s=this.#f(),a=this.#f();if(a.set(this.#c,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#a,a);let d=this.#f();d.set(t,n),s.set(e,d),this.#b=s,this.#a=void 0}this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#y,e))return this.#S;return this.#p?.get(e)}hasFallback(e){return Object.is(this.#y,e)||(this.#p?.has(e)??!1)}setFallback(e,t){let n=this.#p;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#y=e,this.#S=t;return}if(Object.is(this.#y,e)){this.#S=t;return}let o=this.#f();o.set(this.#y,this.#S),o.set(e,t),this.#p=o,this.#y=void 0,this.#S=void 0}forEachFallback(e){if(this.#y!==void 0&&this.#S!==void 0)e(this.#y,this.#S);if(this.#p!==void 0)for(let[t,n]of this.#p)e(t,n)}#m(){this.generation+=1;let e=this.#e;if(e!==void 0)for(let t of e.values())t.advanceGeneration(this.generation)}getScratchHost(e){return this.#e?.get(e)}installScratchHost(e,t){let n=this.#e,o=n===void 0;if(n===void 0)n=new Map,this.#e=n;return n.set(e,t),o}close(){if(!this.active)return;this.active=!1;let e=this.#e;if(e!==void 0){for(let t of e.values())t.revoke();e.clear()}this.#e=void 0}release(){if(this.#s?.clear(),this.#r!==void 0){for(let e of this.#r.values())e.clear();this.#r.clear()}if(this.#u?.clear(),this.#b!==void 0){for(let e of this.#b.values())e.clear();this.#b.clear()}this.#p?.clear(),this.#n=void 0,this.#o=void 0,this.#i=void 0,this.#s=void 0,this.#r=void 0,this.#a=void 0,this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0,this.#u=void 0,this.#b=void 0,this.#y=void 0,this.#S=void 0,this.#p=void 0,this.#e?.clear(),this.#e=void 0}#f(){return this.#t?.(),new Map}}class pt{get;set;update;reset;scope;constructor(e,t,n){this.get=(o)=>e.transactionGet(t,n,o),this.set=(o,r)=>e.transactionSet(t,n,o,r),this.update=(o,r)=>e.transactionUpdate(t,n,o,r),this.reset=(o)=>e.transactionReset(t,n,o),this.scope=(...o)=>e.transactionScope(t,n,o[0],o.length,o[1]),ae(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var _e=(e,t,n)=>new pt(e,t,n),Be=(e)=>{let t=E(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw D(t),new te},mt=(e)=>{let t=E(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw D(t),new te};var Lt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},wt=Object.freeze({sourceEpoch:0,routeVisits:1,deadRouteCompactions:2,scratchHostAllocations:3,propagationSettlements:4,disposalVisits:5,warmParentHops:6,scopeNodesCreated:7,storeFacadesCreated:8,namedScopeHits:9,namedScopeMisses:10,routeAdds:11,routeRemoves:12,fallbackPublications:13,draftCreations:14,scratchMapAllocations:15,finalResolutionVisits:16,finalPreflightVisits:17,draftStorageAllocations:18,commitWorksetAllocations:19,subscriptionIndexMapsCreated:20,subscriptionTargetsCreated:21,subscriptionRegistrations:22,subscriptionRemovals:23,unsubscribeClosuresCreated:24,activeSubscriptionScopes:25,activeSubscriptionTargets:26,activeSubscriptions:27,notificationTargetsReached:28,notificationSnapshots:29,subscriberCallbacksAttempted:30,subscriberErrors:31}),Wt=32,Tt=new WeakMap,pn=()=>{let e=new Uint32Array(Wt),t=Object.freeze({read(n){return e[wt[n]]??0}});return Tt.set(t,e),t},N=(e)=>Object.freeze({kind:"value",value:e}),qt=(e)=>Object.freeze({kind:"error",error:e}),yt=(e)=>e.kind==="value"?N(e.value):qt(e.error),bt=(e,t)=>{if(e.kind!==t.kind)return!1;if(e.kind==="value"&&t.kind==="value")return Object.is(e.value,t.value);return e.kind!=="value"&&t.kind!=="value"&&Object.is(e.error,t.error)},At=1,He=2,vt=4,Ut=(e)=>({onAllocation:e,preflightAtom:void 0,preflightScope:void 0,preflightOutcome:void 0,secondPreflightAtom:void 0,secondPreflightScope:void 0,secondPreflightOutcome:void 0,preflight:void 0,consideredRecord:void 0,secondConsideredRecord:void 0,considered:void 0,affectedRecord:void 0,affectedBefore:void 0,secondAffectedRecord:void 0,secondAffectedBefore:void 0,affected:void 0}),Le=(e)=>(e.onAllocation?.(),new Map),Kt=(e)=>(e.onAllocation?.(),new Set),Ge=(e,t,n)=>{if(e.preflightOutcome!==void 0&&Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return e.preflightOutcome;if(e.secondPreflightOutcome!==void 0&&Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return e.secondPreflightOutcome;return e.preflight?.get(t)?.get(n)},gt=(e,t,n,o)=>{if(e.preflightOutcome===void 0){e.preflightAtom=t,e.preflightScope=n,e.preflightOutcome=o;return}if(Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return;if(e.secondPreflightOutcome===void 0){e.secondPreflightAtom=t,e.secondPreflightScope=n,e.secondPreflightOutcome=o;return}if(Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return;let r=e.preflight;if(r===void 0)r=Le(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=Le(e),r.set(t,i);i.set(n,o)},Yt=(e,t)=>{if(Object.is(e.consideredRecord,t)||Object.is(e.secondConsideredRecord,t))return!1;if(e.consideredRecord===void 0)return e.consideredRecord=t,!0;if(e.secondConsideredRecord===void 0)return e.secondConsideredRecord=t,!0;let n=e.considered;if(n===void 0)n=Kt(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Xt=(e,t,n)=>{if(e.affectedRecord===void 0){e.affectedRecord=t,e.affectedBefore=n;return}if(e.secondAffectedRecord===void 0){e.secondAffectedRecord=t,e.secondAffectedBefore=n;return}let o=e.affected;if(o===void 0)o=Le(e),e.affected=o;o.set(t,n)};class Ot{#t=new WeakMap;#n;#o=1;#i=0;#s=!1;#r;#a;#c;#d=0;#l;#h;#u;#b=1;#y=0;#S;#p;#e;#m;#f;evaluate;constructor(e,t,n){this.#e=e,this.#m=t===void 0?void 0:Tt.get(t),this.#f=n,this.evaluate=n?.evaluate??lt,this.#n=new ge(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#s}get instrumented(){return this.#m!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#m;if(n===void 0)return;n[wt[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Fe(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new A,o=t,r=j(this.#e,o,n),i=ze(this.#e,"StoreTree.get");if(this.#A(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value")throw s.outcome.error;return s.outcome.value}try{let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value"){if(s.outcome.kind==="control-error")i.latchControlFault(s.outcome.error);throw s.outcome.error}return s.outcome.value}catch(s){let a=n.getControlFault();if(a.kind==="fault")i.latchControlFault(a.error);throw s}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":j(this.#e,o,r=new A);if(V(this.#e,"StoreTree.sub"),this.#A(e),i==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("StoreTree.sub requires a valid State");if(typeof n!=="function")throw TypeError("StoreTree.sub requires a callback function");let s=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new A);if(s.outcome.kind==="control-error")throw s.outcome.error;let a=this.#u;if(a===void 0){if(a=new Map,this.#u=a,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let d=a.get(e);if(d===void 0){if(d=new Map,a.set(e,d),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let c=d.get(o);if(c===void 0){if(c={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},d.set(o,c),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:c,previous:c.tail,next:void 0};if(c.tail===void 0)c.head=l;else c.tail.next=l;if(c.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return Lt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;et(this.#e);let{previous:n,next:o}=e;if(n===void 0)t.head=o;else n.next=o;if(o===void 0)t.tail=n;else o.previous=n;e.callback=void 0,e.target=void 0,e.previous=void 0,e.next=void 0;let r=this.instrumented;if(r)this.recordCounter("subscriptionRemovals"),this.recordCounter("activeSubscriptions",-1);if(t.head!==void 0)return;let i=this.#u,s=i?.get(t.scope);if(s?.get(t.state)===t){if(s.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(s!==void 0&&s.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#u=void 0}set(e,t,n){this.#O(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#O(e,t,"StoreTree.update","update",n)}reset(e,t){this.#O(e,t,"StoreTree.reset","reset")}scope(e,t,n){if(t!==0&&(typeof n==="object"||typeof n==="function")&&n!==null)j(this.#e,n,new A);if(V(this.#e,"StoreTree.scope"),this.#A(e),t===0)return this.#P(e);if(t!==1||typeof n!=="string")throw TypeError("StoreTree.scope requires a string name");let o=e.namedChildren.get(n);if(o!==void 0)return this.recordCounter("namedScopeHits"),o.facade;return this.recordCounter("namedScopeMisses"),this.#P(e,n)}dispose(e){if(V(this.#e,"StoreTree.dispose"),e.status!=="live")return;let t=[],n=[Object.freeze({node:e,expanded:!1})];while(n.length>0){let{node:o,expanded:r}=n.pop();if(r){t.push(o);continue}o.markDisposing(),n.push(Object.freeze({node:o,expanded:!0}));let i=[];o.children.forEach((s)=>i.push(s));for(let s=i.length-1;s>=0;s--)n.push(Object.freeze({node:i[s],expanded:!1}))}for(let o of t){this.recordCounter("disposalVisits");let r=o.parent;if(r!==void 0){if(o.name!==void 0&&Object.is(r.namedChildren.get(o.name),o))r.namedChildren.delete(o.name);r.children.delete(o)}this.#$(o),o.dropRecords(),o.namedChildren.clear(),o.children.clear(),o.markDisposed()}if(Object.is(e,this.#n))this.#t=new WeakMap}txn(e,t,n){if(V(this.#e,"StoreTree.txn"),this.#A(e),typeof t!=="function"||n!==void 0&&typeof n!=="string")throw TypeError("StoreTree.txn requires a callback");let o=this.#T(),r=_e(this,o,e),i;try{i=Je(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new A;me(this.#e,s,()=>Be(i)),this.#F(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new A,o=t,r=j(this.#e,o,n);if(V(this.#e,"adapter readHydrationSnapshot"),this.#A(e),r==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("readHydrationSnapshot requires a valid State");let i=this.#T(),s;try{if(this.#e.atoms.has(o)){let a=this.#v(i,e,o,n);if(a.kind!=="value")throw a.error;return a.value}return s=this.#K(i,e),s.readSelector(o)}finally{s?.revoke(),i.close(),i.forEachFallback((a,d)=>{if(this.#t.has(a))return;this.#t.set(a,d),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new A,i=j(this.#e,o,r);if(ye(this.#e,e.transaction,e.active),this.#A(t),i==="invalid")throw TypeError("Transaction.get requires a valid State");if(this.#e.atoms.has(o)){let a=this.#v(e,t,o,r);if(a.kind!=="value")throw a.error;return a.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let s=e.getScratchHost(t);if(s===void 0){if(s=this.#U(e,t),e.installScratchHost(t,s))this.recordCounter("scratchMapAllocations")}return s.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new A;this.#R(e,t,r,i,"Transaction.set"),this.#j(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new A;this.#R(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new A;this.#R(e,t,o,r,"Transaction.reset"),this.#M(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new A;if(typeof n!=="string")j(this.#e,n,i);ye(this.#e,e.transaction,e.active),this.#A(t);let s=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let a=_e(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let d;try{d=r(a)}catch(l){let u=new A;return me(this.#e,u,()=>mt(l))}let c=new A;return me(this.#e,c,()=>Be(d)),d}createOutcomeToken(){return Object.freeze({id:this.#o++})}#U(e,t){return this.recordCounter("scratchHostAllocations"),new ve(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>se(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new ve(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>se(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(U(this.#e,e,t)==="invalid")throw TypeError("Selector get requires a valid State");if(this.#e.atoms.has(e))return Object.freeze({kind:"atom"});let n=this.#e.selectors.get(e);if(n===void 0)throw TypeError("Unknown scratch StoreTree State");return Object.freeze({kind:"selector",definition:n})}#P(e,t){let n=new ge(this,e,t);this.recordCounter("scopeNodesCreated");let o=new We(this,n,this.#f);if(e.children.add(n),t!==void 0)e.namedChildren.set(t,n);return o}#Y(e,t){if(typeof t==="string"){let i=e.namedChildren.get(t);if(i===void 0)throw new je;return this.#A(i),i}let n=t,o=this.#e.stores.get(n);if(o!==void 0){let i=o;if(this.#A(i),!Object.is(i.coordinator,this))throw new Ie;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new Se;throw new pe}throw new pe}#A(e){if(e.status!=="live")throw new xe}#X(e,t,n,o){let r=j(this.#e,t,n);V(this.#e,o),this.#A(e),this.#x(t,r,o)}#O(e,t,n,o,r){let i=t,s=new A;this.#X(e,i,s,n);let a=this.#T();try{if(o==="set")this.#j(a,e,i,r,s);else if(o==="update")this.#I(a,e,i,r,s,n);else this.#M(a,e,i,s)}catch(d){throw a.close(),a.release(),d}a.close();try{this.#F(a)}finally{a.release()}}#$(e){let t=this.#u,n=t?.get(e);if(n===void 0)return;let o=0;for(let r of n.values()){let i=r.head;while(i!==void 0){let s=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=s}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#u=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#R(e,t,n,o,r){let i=j(this.#e,n,o);ye(this.#e,e.transaction,e.active),this.#A(t),this.#x(n,i,r)}#x(e,t,n){if(t==="invalid"||!this.#e.atoms.has(e))throw TypeError(`${n} requires a valid Atom`)}#j(e,t,n,o,r){let i=B(this.#e,r,()=>re(o));if(i.kind==="error")throw i.error;let s=this.#N(e,t,n,r);this.#q(e,t,n,i.value,s,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let s=this.#N(e,t,n,r),a=e.hasIntents?this.#v(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let d=this.#J(o,a.value,r);this.#q(e,t,n,d,s,r)}#M(e,t,n,o){this.#N(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0}):this.#z(e,t.parent,n,o);if(r.outcome.kind!=="value")throw r.outcome.error;let i=r.reachesFallback&&e.hasFallback(n);e.stage(t,Object.freeze({kind:"reset",atom:n,publishDraftFallback:i}))}#N(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),s=t,a;while(s!==void 0){if(s.atomOverrides.has(n)){a=N(s.atomOverrides.get(n));break}s=s.parent}let d=a===void 0,c=Object.freeze({owned:i,outcome:a??this.#C(e,n,o),reachesFallback:d});return e.setAtomBaseline(t,n,c),c}#v(e,t,n,o){return this.#z(e,t,n,o).outcome}#z(e,t,n,o){let r=t;while(r!==void 0){let i=e.getIntent(r,n);if(i?.kind==="set")return Object.freeze({outcome:N(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:N(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0})}#C(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return N(r.fallback.value);let i=r.fallback.initialize,s=e.getFallback(t);if(s!==void 0)return s;let a=yt(B(this.#e,n,()=>Me(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#g(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#Z(r,t,n,o)?t:n}#Z(e,t,n,o){return B(this.#e,o,()=>{let r;try{r=e(t,n)}catch(s){let a=E(s);if(a.kind==="not-thenable")throw s;if(a.kind==="inspection-error")throw a.error;throw D(a),new oe}let i=E(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw D(i),new oe;if(r!==!0&&r!==!1)throw new oe;return r})}#J(e,t,n){return B(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let s=E(i);if(s.kind==="not-thenable")throw i;if(s.kind==="inspection-error")throw s.error;throw D(s),new ne}let r=re(o);if(r.kind==="error")throw r.error;return r.value})}#F(e){if(!e.hasIntents)return;let{singleIntent:t,singleIntentScope:n}=e;if(t?.kind==="reset"&&n!==void 0&&!t.publishDraftFallback&&e.getAtomBaseline(n,t.atom)?.owned===!1)return;let o=Ut(this.instrumented?()=>this.recordCounter("commitWorksetAllocations"):void 0),r,i;if(t!==void 0&&n!==void 0)r=this.#_(e,n,t,o);else e.forEachIntent((a,d)=>{let c=this.#_(e,a,d,o);if(r===void 0){r=c;return}if(i===void 0)i=[];i.push(c)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#B(e,r),i!==void 0)for(let a of i)this.#B(e,a);let s=this.#H(r);if(i!==void 0)for(let a of i){let d=this.#H(a);s||=d}if(this.#G(r),i!==void 0)for(let a of i)this.#G(a);this.#se();try{let a,d,c=o.affectedRecord,l=o.affectedBefore;if(c!==void 0&&l!==void 0)a=this.#E(o,c,l);let{secondAffectedRecord:u,secondAffectedBefore:p}=o;if(u!==void 0&&p!==void 0){let m=this.#E(o,u,p);if(m!==void 0)if(a===void 0)a=m;else d=[m]}if(o.affected!==void 0)for(let[m,h]of o.affected){let y=this.#E(o,m,h);if(y===void 0)continue;if(a===void 0)a=y;else{if(d===void 0)d=[];d.push(y)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(d?.length??0)),this.#ie(a,d)}catch(a){throw this.#k(),a}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#L(e,t,n.atom,o);let i=Object.freeze({scope:t,intent:n,ownershipChanged:n.kind==="set"?!r.owned||!Object.is(t.atomOverrides.get(n.atom),n.value):r.owned}),s=t.getAtomView(n.atom);if(s!==void 0)this.#ee(e,s,o);return i}#B(e,t){if(!t.intent.publishDraftFallback)return;let n=e.getFallback(t.intent.atom);if(n!==void 0&&!this.#t.has(t.intent.atom))this.#t.set(t.intent.atom,n),this.recordCounter("fallbackPublications")}#H(e){let{intent:t,scope:n}=e;if(t.kind==="set")n.atomOverrides.set(t.atom,t.value);else n.atomOverrides.delete(t.atom);return e.ownershipChanged}#G({scope:e,intent:t}){let n=e.getAtomView(t.atom);if(n===void 0)return;if(t.kind==="set"||e.parent===void 0)e.detachAtomView(n);else e.attachAtomView(n,this.#oe(e.parent,t.atom))}#E(e,t,n){let o=Ge(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),bt(n,o))return;return t.scope.updateAtomView(t,o),t}#ee(e,t,n){let o=[t];while(o.length!==0){let r=o.pop();if(!Yt(n,r))continue;let i=r.served.outcome,s=this.#L(e,r.scope,r.atom,n);if(bt(i,s))continue;Xt(n,r,i);let a=o.length;r.inheritingChildren.forEach((d)=>{this.recordCounter("routeVisits"),o.push(d)});for(let d=a,c=o.length-1;d<c;d++,c--){let l=o[d];o[d]=o[c],o[c]=l}}}#L(e,t,n,o){let r=Ge(o,n,t);if(r!==void 0)return r;let i=t,s,a,d;while(i!==void 0){let c=Ge(o,n,i);if(c!==void 0){d=c;break}if(s===void 0)s=i;else{if(a===void 0)a=[];a.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){d=N(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){d=N(i.atomOverrides.get(n));break}i=i.parent}if(d??=this.#te(e,n),s!==void 0)gt(o,n,s,d),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let c of a)gt(o,n,c,d),this.recordCounter("finalPreflightVisits");return d}#te(e,t){let n=this.#t.get(t);if(n!==void 0)return n;let o=e.getFallback(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return N(r.fallback.value);throw Error("Final Atom fallback was not resolved during staging")}#ne(e){let t=this.#t.get(e);if(t!==void 0)return t;let n=this.#g(e);if(n.fallback.kind==="eager")return N(n.fallback.value);throw Error("Committed Atom fallback is not materialized")}#oe(e,t){let n=e,o=[],r;while(!0){let i=n.getAtomView(t);if(i!==void 0){r=i;break}if(n.atomOverrides.has(t)){r=n.createAtomView(t,N(n.atomOverrides.get(t)));break}if(n.parent===void 0){r=n.createAtomView(t,this.#ne(t));break}o.push(n),n=n.parent}for(let i=o.length-1;i>=0;i--)r=o[i].createAtomView(t,r.served.outcome,r);return r}serveScopeAtom(e,t,n){let o=e,r=[],i;while(!0){let s=o.getAtomView(t);if(s!==void 0){i=s;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,N(o.atomOverrides.get(t)));break}if(o.parent===void 0){i=o.createAtomView(t,this.#re(t,n));break}this.recordCounter("warmParentHops"),r.push(o),o=o.parent}for(let s=r.length-1;s>=0;s--)i=r[s].createAtomView(t,i.served.outcome,i);return i.served}#re(e,t){let n=this.#t.get(e);if(n!==void 0)return n;let o=this.#g(e);if(o.fallback.kind==="eager")return N(o.fallback.value);let r=o.fallback.initialize,i=yt(B(this.#e,t,()=>Me(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#g(e){let t=this.#e.atoms.get(e);if(t===void 0)throw TypeError("Unknown committed StoreTree Atom");return t}#ie(e,t){if(e===void 0){this.#k();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#a=void 0,this.#c=void 0,this.#d=0,this.#l=void 0,this.#h=void 0,this.#s=!0;let n;try{if(e.scope.markDependents(e.atom),t!==void 0)for(let r of t)r.scope.markDependents(r.atom);let o=0;while(o<this.#r.length){let r=this.#r[o++],i=this.#r[o++];this.#D(r,i)}}finally{n=this.#h,this.#h=void 0,this.#s=!1,this.#r=void 0,this.#a=void 0,this.#c=void 0,this.#d=0,this.#l=void 0}this.#ae(n)}#se(){this.#S=void 0,this.#p=void 0,this.#y=this.#u===void 0?0:this.#b++}#k(){this.#y=0,this.#S=void 0,this.#p=void 0}reachSubscriptionTarget(e,t){let n=this.#y,o=this.#u?.get(e)?.get(t);if(n===0||o===void 0||o.reachedEpoch===n)return;if(o.reachedEpoch=n,this.instrumented)this.recordCounter("notificationTargetsReached");if(this.#S===void 0){this.#S=o;return}if(this.#p===void 0)this.#p=[o];else this.#p.push(o)}#ae(e){let t=this.#S;if(t===void 0){if(this.#k(),e!==void 0)throw e;return}let n,o,r=(c)=>{let l=c.head;while(l!==void 0){let u=l.callback;if(u!==void 0)if(n===void 0)n=u;else if(o===void 0)o=[n,u];else o.push(u);l=l.next}};r(t);let i=this.#p;if(i!==void 0)for(let c of i)r(c);if(this.#k(),n===void 0){if(e!==void 0)throw e;return}let s=Object.freeze(o??[n]),a=this.instrumented;if(a)this.recordCounter("notificationSnapshots");let d;for(let c of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new A,u=!1,p;try{Ze(this.#e,l,()=>{try{let m=c(),h=E(m);if(h.kind==="thenable")D(h);else if(h.kind==="inspection-error")u=!0,p=h.error}catch(m){u=!0,p=m;let h=E(m);if(h.kind==="thenable")D(h)}})}catch(m){u=!0,p=m}if(u){if(d===void 0)d=[];if(d.push(p),a)this.recordCounter("subscriberErrors")}}if(d===void 0){if(e!==void 0)throw e;return}throw new Pe(e===void 0?d:[e,...d])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#W(e,t)&At)!==0)return!0;return this.#w(e,t,At),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#D(e,t,n)}#D(e,t,n){if((this.#W(e,t)&(vt|He))!==0)return;this.#w(e,t,He);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let s of i)if(this.#e.selectors.has(s.node))this.#D(e,s.node)}if(e.isSelectorDirty(t)){let s=r===e.getSelectorGraphVersion();if(n!==void 0&&s)e.serve(t,n);else e.serve(t,new A)}this.#w(e,t,vt)}finally{this.#w(e,t,0,He)}}#W(e,t){if(Object.is(this.#a,e)&&Object.is(this.#c,t))return this.#d;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#a===void 0){this.#a=e,this.#c=t,this.#d=n&~o;return}if(Object.is(this.#a,e)&&Object.is(this.#c,t)){this.#d=(this.#d|n)&~o;return}let r=this.#l;if(r===void 0)r=new Map,this.#l=r;let i=r.get(e);if(i===void 0)i=new Map,r.set(e,i);i.set(t,((i.get(t)??0)|n)&~o)}latchPropagationControlFault(e){this.#h??=e}#q(e,t,n,o,r,i){let s=r.outcome.kind==="value"?this.#Q(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:s,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class We{get;sub;set;update;reset;txn;scope;dispose;constructor(e,t,n){this.get=(o)=>e.get(t,o),this.sub=(o,r)=>e.sub(t,o,r),this.set=(o,r)=>e.set(t,o,r),this.update=(o,r)=>e.update(t,o,r),this.reset=(o)=>e.reset(t,o),this.txn=(o,r)=>e.txn(t,o,r),this.scope=function(o){return e.scope(t,arguments.length,o)},this.dispose=()=>e.dispose(t),t.installFacade(this),ae(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var kt=(e)=>{if(e.equal!==void 0&&typeof e.equal!=="function")throw TypeError("Atom equal must be a function");return{...e.name===void 0?{}:{name:e.name},...e.equal===void 0?{}:{equal:e.equal}}},Rt=(e)=>{let t={states:new WeakSet,atoms:new WeakMap,selectors:new WeakMap,stores:new WeakMap,transactionCursors:new WeakMap,ownerToken:Object.freeze({}),activity:void 0},n=(d,c={})=>{let l=new A,u=B(t,l,()=>re(d));if(u.kind==="error")throw u.error;let p=be("atom",t.ownerToken);return t.states.add(p),t.atoms.set(p,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...kt(c)})),p},o=(d,c={})=>{if(typeof d!=="function")throw TypeError("atomLazy requires an initializer function");let l=be("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:d}),...kt(c)})),l},r=(d,c={})=>{if(typeof d!=="function")throw TypeError("selector requires a getter function");if(c.equal!==void 0&&typeof c.equal!=="function")throw TypeError("selector equal must be a function");let l=be("selector",t.ownerToken),u=Object.freeze({node:l,get:d,...c.name===void 0?{}:{name:c.name},...c.equal===void 0?{}:{equal:c.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(d)=>{let c=new A;if(j(t,d,c)==="invalid")return;return t.stores.get(d)},a=Object.freeze({assertStore:(d)=>{let c=i(d);if(V(t,"adapter assertStore"),c===void 0)throw TypeError("assertStore requires a valid Store")},read:(d,c)=>{if(i(d)===void 0)throw ze(t,"adapter read"),TypeError("read requires a valid Store");return d.get(c)},subscribe:(d,c,l)=>{if(i(d)===void 0)throw V(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return d.sub(c,l)},readHydrationSnapshot:(d,c)=>{let l=i(d);if(l===void 0)throw V(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,c)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(d=e,c)=>{V(t,"createStoreTree");let l=new Ot(t,d,c);return new We(l,l.rootScope,c)}})};var $t=Rt(),bn=(e,t)=>$t.createStoreTree(e,t);
2
+ export{ee as a,_t as b,lt as c,Ve as d,Pe as e,K as f,Y as g,X as h,Se as i,te as j,ne as k,oe as l,xe as m,je as n,Ie as o,pe as p,pn as q,$t as r,bn as s};
@@ -1 +1 @@
1
- import{a as o,c as a,d as n,e as l,f as p,g as c,h as i,i as s,j as u,k as y,l as v,m as E,n as m,o as S,q as t}from"./chunk-k8zy7f8n.js";var f=(r,e={})=>t.atomLazy(r,e),d=(r,e={})=>t.atom(r,e);Object.defineProperty(d,"lazy",{configurable:!1,enumerable:!0,value:f,writable:!1});var T=Object.freeze(d),x=(r,e={})=>t.selector(r,e);function V(){if(arguments.length!==0)throw TypeError("store() accepts no arguments");return t.createStoreTree()}var R=T,h=x,F=V,k=l,g=y,D=u,O=s,M=S,N=a,q=E,P=p,z=o,w=v,U=m,G=n,j=i,L=c;export{k as CallbackCapabilityError,g as InvalidAtomComparatorResultError,D as InvalidSynchronousAtomValueError,O as InvalidTransactionCallbackResultError,M as InvalidTransactionTargetError,N as RuntimeMismatchError,q as ScopeNotFoundError,P as SelectorCapabilityError,z as SelectorCircularDependencyError,w as StoreDisposedError,U as StoreTreeMismatchError,G as SubscriberNotificationError,j as TransactionClosedError,L as TransactionPhaseError,R as atom,h as selector,F as store};
1
+ import{a as o,d as a,e as n,f as l,g as p,h as c,i,j as s,k as u,l as y,m as v,n as E,o as m,p as S,r as t}from"./chunk-fbqtxaaa.js";var f=(r,e={})=>t.atomLazy(r,e),d=(r,e={})=>t.atom(r,e);Object.defineProperty(d,"lazy",{configurable:!1,enumerable:!0,value:f,writable:!1});var T=Object.freeze(d),x=(r,e={})=>t.selector(r,e);function V(){if(arguments.length!==0)throw TypeError("store() accepts no arguments");return t.createStoreTree()}var R=T,h=x,F=V,k=l,g=y,D=u,O=s,M=S,N=a,q=E,P=p,z=o,w=v,U=m,G=n,j=i,L=c;export{k as CallbackCapabilityError,g as InvalidAtomComparatorResultError,D as InvalidSynchronousAtomValueError,O as InvalidTransactionCallbackResultError,M as InvalidTransactionTargetError,N as RuntimeMismatchError,q as ScopeNotFoundError,P as SelectorCapabilityError,z as SelectorCircularDependencyError,w as StoreDisposedError,U as StoreTreeMismatchError,G as SubscriberNotificationError,j as TransactionClosedError,L as TransactionPhaseError,R as atom,h as selector,F as store};
@@ -1 +1 @@
1
- import{b as U,d as G,p as Y,r as ne}from"./chunk-k8zy7f8n.js";var te=2048,oe=1e5,A=256,B=1024,V=1e4,re=32,ie=20000,j=new Set(["span","operation","commit"]),se=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),K=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),ae=()=>{},q=Symbol("inspection dependency path root"),ce=1;class N{#o;#e=[];#r=0;constructor(e){this.#o=e}add(e){if(this.#o===0)return!0;if(this.#e.length<this.#o)return this.#e.push(e),!1;return this.#e[this.#r]=e,this.#r=(this.#r+1)%this.#o,!0}snapshot(){if(this.#e.length<this.#o||this.#r===0)return Object.freeze([...this.#e]);return Object.freeze([...this.#e.slice(this.#r),...this.#e.slice(0,this.#r)])}}var H=(e)=>{if(e.length===0)return;let n=Number.POSITIVE_INFINITY,t=0;for(let o of e){let i="sequence"in o?o.sequence:void 0;n=Math.min(n,o.seqStart??i??0),t=Math.max(t,o.seqEnd??i??0)}return Object.freeze({firstSequence:n,lastSequence:t})},J=(e,n,t,o)=>{let i=e??n;if(!Number.isSafeInteger(i)||i<(o?0:1))throw TypeError(`${t} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return i},W=(e)=>e.length<=A?e:e.slice(0,A),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),X=()=>({admissionSkipped:0,observing:0,consultedNoPrune:0,consultedPruned:0,disabled:0,mapProbes:0,prunedNodes:0,graphVersionResets:0,initialSeeds:0,activationReplacementSeeds:0,secondarySeeds:0,hitDerivedSeeds:0,missBudgetDisables:0,oversizedHitApproachDisables:0,passiveProbeBudgetDisables:0,maxRetainedEntries:0}),Q=(e)=>Object.freeze({admissionSkipped:e.admissionSkipped,observing:e.observing,consultedNoPrune:e.consultedNoPrune,consultedPruned:e.consultedPruned,disabled:e.disabled,mapProbes:e.mapProbes,prunedNodes:e.prunedNodes,resets:Object.freeze({graphVersion:e.graphVersionResets}),seeds:Object.freeze({initial:e.initialSeeds,activationReplacement:e.activationReplacementSeeds,secondary:e.secondarySeeds,hitDerived:e.hitDerivedSeeds}),disables:Object.freeze({missBudget:e.missBudgetDisables,oversizedHitApproach:e.oversizedHitApproachDisables,passiveProbeBudget:e.passiveProbeBudgetDisables}),retained:Object.freeze({maxEntries:e.maxRetainedEntries})}),de=(e)=>{let n=X(),t=!1;return Object.freeze({sink:Object.freeze({admissionSkipped(){t=!0,n.admissionSkipped++,e({admissionSkipped:1})},disabled(){t=!0,n.disabled++,e({disabled:1})},graphVersionReset(){t=!0,n.graphVersionResets++,e({graphVersionResets:1})},completeSearch(i,r,s,c=0,d=0,y=0){if(t=!0,i==="observing")n.observing++;else if(i==="consulted-no-prune")n.consultedNoPrune++;else n.consultedPruned++;if(n.mapProbes+=c,n.prunedNodes+=d,n.maxRetainedEntries=Math.max(n.maxRetainedEntries,y),r==="initial")n.initialSeeds++;else if(r==="activation-replacement")n.activationReplacementSeeds++;else if(r==="secondary")n.secondarySeeds++;else if(r==="hit-derived")n.hitDerivedSeeds++;if(s==="miss-budget")n.missBudgetDisables++;else if(s==="over-cap-hit")n.oversizedHitApproachDisables++;else if(s==="passive-probe-budget")n.passiveProbeBudgetDisables++;e({...i==="observing"?{observing:1}:i==="consulted-no-prune"?{consultedNoPrune:1}:{consultedPruned:1},mapProbes:c,prunedNodes:d,maxRetainedEntries:y,...r==="initial"?{initialSeeds:1}:r==="activation-replacement"?{activationReplacementSeeds:1}:r==="secondary"?{secondarySeeds:1}:r==="hit-derived"?{hitDerivedSeeds:1}:{},...s==="miss-budget"?{missBudgetDisables:1}:s==="over-cap-hit"?{oversizedHitApproachDisables:1}:s==="passive-probe-budget"?{passiveProbeBudgetDisables:1}:{}})}}),finish:()=>t?n:void 0})},le=()=>({selectorEvaluations:0,proposedTopologyChanges:0,proposedTopologyIdentical:0,transientSelectorHostsCreated:0,propagationSettled:0,notificationTargets:0,subscriberCallbacks:0,cycle:{searches:0,visits:0,maxVisits:0,found:0,prefixRevalidation:0,newEdgeProof:0,topologyDeltaProof:0,committed:0,scratch:0,hydration:0,newEdgeProofMemo:X(),lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()}}}}),M=(e)=>Object.freeze({selectorEvaluations:e.selectorEvaluations,proposedTopologyChanges:e.proposedTopologyChanges,proposedTopologyIdentical:e.proposedTopologyIdentical,transientSelectorHostsCreated:e.transientSelectorHostsCreated,propagationSettled:e.propagationSettled,notificationTargets:e.notificationTargets,subscriberCallbacks:e.subscriberCallbacks,cycle:Object.freeze({searches:e.cycle.searches,visits:e.cycle.visits,maxVisits:e.cycle.maxVisits,found:e.cycle.found,bySite:Object.freeze({prefixRevalidation:e.cycle.prefixRevalidation,newEdgeProof:e.cycle.newEdgeProof,topologyDeltaProof:e.cycle.topologyDeltaProof}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),newEdgeProofMemo:Q(e.cycle.newEdgeProofMemo),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.committed.topologyDeltaProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.scratch.topologyDeltaProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.hydration.topologyDeltaProof})})})})}),O=(e,n,t,o)=>{if(n.remaining--<=0||o>re)return null;if(e===null)return null;if(typeof e==="string")return e.length<=B?e:e.slice(0,B);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){let s=[],c=Math.min(e.length,V);for(let d=0;d<c;d++)s.push(O(e[d],n,t,o+1));return Object.freeze(s)}let i={},r=Object.keys(e).slice(0,V);for(let s of r){if(K.has(s))continue;let c=Reflect.get(e,s);if(c===void 0)continue;i[s]=O(c,n,t,o+1)}return Object.freeze(i)}finally{t.delete(e)}},z=(e)=>{if(e===void 0)return pe;let n={},t={remaining:ie};for(let o of Object.keys(e).slice(0,V)){if(se.has(o)||K.has(o))continue;let i=e[o];if(i===void 0)continue;n[o]=O(i,t,new Set,0)}return Object.freeze(n)},pe=Object.freeze({}),ue=(e,n)=>{if(n===void 0)return e;return Object.freeze({...e,...z(n)})},a=(e,n)=>n===void 0||!Number.isFinite(n)||n<=0?e:e+n,me=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return _;try{let n=e.then;return typeof n==="function"?{kind:"thenable",target:e,then:n}:_}catch(n){return{kind:"inspection-error",error:n}}},_=Object.freeze({kind:"not-thenable"});class Z{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#R=1;#E=1;#T=1;#P=1;#n=[];#m=new WeakMap;#C=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#y;#x;constructor(e,n){this.#x=n,this.#r=J(e.capacity?.summaries,te,"Inspection summary",!1),this.#u=J(e.capacity?.details,oe,"Inspection detail",!0),this.#o=new N(this.#r),this.#e=new N(this.#u),this.#y=this.#p(),this.#D()}get recordingId(){return this.#d}registerStore(e,n){this.#w.set(e,n)}capture(e,n){let t=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=t===void 0?void 0:this.#w.get(t);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let i;if(n!==void 0){let s=typeof n==="object"&&n!==null||typeof n==="function"?n:void 0,c=o.coordinator.runtimeDomain;if(s===void 0||!c.states.has(s))throw TypeError("Inspection capture requires a valid State");let d=c.atoms.get(s),y=c.selectors.get(s);if(d===void 0&&y===void 0)throw TypeError("Inspection capture requires a valid State");let R=d?.name??y?.name;i=this.reference(s,d===void 0?"selector":"atom",typeof R==="string"?R:void 0)}let r=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#M(r),monotonicTimeMs:r,store:this.reference(o,"scope",o.name),...i===void 0?{}:{state:i},...this.#b()})}reference(e,n,t){if(this.#t!==void 0)return L;try{let o=this.#m.get(e);if(o===void 0)o=this.#P++,this.#m.set(e,o);let i=this.#C.get(e);if(i===void 0&&t!==void 0)i=W(t),this.#C.set(e,i);return Object.freeze({id:o,kind:n,...i===void 0?{}:{name:i}})}catch{return this.#c("reference"),L}}sessionId(e){let n=this.#f.get(e);if(n!==void 0)return n;let t=this.#E++;return this.#f.set(e,t),t}beginInterval(e){if(this.#t!==void 0)return F;try{let n=this.#V(e.type),t=Object.freeze({id:n,type:e.type}),o=Object.freeze({...this.#b(),...e.links}),i={token:t,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:W(e.name),seqStart:this.#s++,startUs:this.#I(),fields:z(e.fields),totals:j.has(e.type)?le():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:j.has(e.type)?this.#O():void 0};if(e.type==="commit"){let r=this.#i("operation");if(r!==void 0)r.commitId=n}return this.#n.push(i),t}catch{return this.#c("begin-interval"),F}}finishInterval(e,n={}){if(e.id===0||this.#t!==void 0)return;try{let t=this.#n.pop();if(t===void 0||!Object.is(t.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#j(t);let o=this.#s++,i=Math.max(0,this.#I()-t.startUs),r=ue(t.fields,n.fields),s=this.#z(t,o,i,r,n.result);if(j.has(t.token.type)){if(this.#o.add(s))this.#l++}else if(this.#e.add(s))this.#a++}catch{this.#c("finish-interval")}}record(e){if(this.#t!==void 0)return;try{let n=this.#s++,t=Object.freeze({...z(e.fields),type:e.type,sequence:n,timeUs:this.#I(),...this.#b(),...e.links});if(this.#e.add(t))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let n of this.#n){let t=n.totals;if(t===void 0)continue;t.selectorEvaluations=a(t.selectorEvaluations,e.selectorEvaluations),t.proposedTopologyChanges=a(t.proposedTopologyChanges,e.proposedTopologyChanges),t.proposedTopologyIdentical=a(t.proposedTopologyIdentical,e.proposedTopologyIdentical),t.transientSelectorHostsCreated=a(t.transientSelectorHostsCreated,e.transientSelectorHostsCreated),t.propagationSettled=a(t.propagationSettled,e.propagationSettled),t.notificationTargets=a(t.notificationTargets,e.notificationTargets),t.subscriberCallbacks=a(t.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;t.cycle.searches=a(t.cycle.searches,o.searches),t.cycle.visits=a(t.cycle.visits,o.visits),t.cycle.maxVisits=Math.max(t.cycle.maxVisits,o.maxVisits??0),t.cycle.found=a(t.cycle.found,o.found);let i=o.newEdgeProofMemo;if(i!==void 0){let r=t.cycle.newEdgeProofMemo;r.admissionSkipped=a(r.admissionSkipped,i.admissionSkipped),r.observing=a(r.observing,i.observing),r.consultedNoPrune=a(r.consultedNoPrune,i.consultedNoPrune),r.consultedPruned=a(r.consultedPruned,i.consultedPruned),r.disabled=a(r.disabled,i.disabled),r.mapProbes=a(r.mapProbes,i.mapProbes),r.prunedNodes=a(r.prunedNodes,i.prunedNodes),r.graphVersionResets=a(r.graphVersionResets,i.graphVersionResets),r.initialSeeds=a(r.initialSeeds,i.initialSeeds),r.activationReplacementSeeds=a(r.activationReplacementSeeds,i.activationReplacementSeeds),r.secondarySeeds=a(r.secondarySeeds,i.secondarySeeds),r.hitDerivedSeeds=a(r.hitDerivedSeeds,i.hitDerivedSeeds),r.missBudgetDisables=a(r.missBudgetDisables,i.missBudgetDisables),r.oversizedHitApproachDisables=a(r.oversizedHitApproachDisables,i.oversizedHitApproachDisables),r.passiveProbeBudgetDisables=a(r.passiveProbeBudgetDisables,i.passiveProbeBudgetDisables),r.maxRetainedEntries=Math.max(r.maxRetainedEntries,i.maxRetainedEntries??0)}if(o.site==="prefix-revalidation")t.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")t.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")t.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)t.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let r=o.site==="prefix-revalidation"?"prefixRevalidation":o.site==="new-edge-proof"?"newEdgeProof":"topologyDeltaProof",s=t.cycle.lanes[o.host][r];s.searches=a(s.searches,o.searches),s.visits=a(s.visits,o.visits),s.maxVisits=Math.max(s.maxVisits,o.maxVisits??0),s.found=a(s.found,o.found)}}}catch{this.#c("add-work")}}beginStoreOperation(e){return this.beginInterval({type:"operation",...e.name===void 0?{}:{name:e.name},fields:{operation:e.operation,scope:this.reference(e.scope,"scope",e.scopeName)}})}finishStoreOperation(e,n){let t=this.#i("operation"),o=t===void 0||!Object.is(t.token,e)||t.commitId===void 0||!t.commitSourceApplied?"none":n==="returned"?"committed":t.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:n,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,n){let t=this.#i("operation");if(t!==void 0)t.commitSourceApplied||=n.sourceApplied,t.commitFailurePhase=n.failurePhase;this.finishInterval(e,{result:n.result,fields:{intents:n.intents,...n.changedSources===void 0?{}:{changedSources:n.changedSources},...n.ownershipChanged===void 0?{}:{ownershipChanged:n.ownershipChanged},sourceApplied:n.sourceApplied,notificationsCompleted:n.notificationsCompleted}})}recordStoreIntent(e){this.record({type:"intent",fields:{intent:e.intent,scope:this.reference(e.scope,"scope",e.scopeName),atom:this.reference(e.atom,"atom",e.atomName)}})}recordStoreEvent(...e){let n=e[0];if(n===0){let o=["set","update","reset","transaction"][e[1]];this.beginStoreOperation({operation:o,scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},...e[4]===void 0?{}:{name:e[4]}});return}if(n===1){let o=e[1]===0?"returned":"threw",i=this.#i("operation");if(i===void 0)return;let r=this.#i("commit");if(r!==void 0)this.#j(r),this.finishStoreCommit(r.token,{result:o,intents:i.operationIntents,...r.commitChangedSources===void 0?{}:{changedSources:r.commitChangedSources},...r.commitOwnershipChanged===void 0?{}:{ownershipChanged:r.commitOwnershipChanged},sourceApplied:r.commitSourceApplied,notificationsCompleted:o==="returned",...e[2]===void 0?{}:{failurePhase:e[2]===1?"notify":"propagate"}});this.finishStoreOperation(i.token,o);return}if(n===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(n===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let t=this.#i("operation");if(t!==void 0)t.operationIntents++;this.recordStoreIntent({intent:e[1]===0?"set":"reset",scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},atom:e[4],...e[5]===void 0?{}:{atomName:e[5]}})}hasActiveStoreOperation(){return this.#i("operation")!==void 0}beginDraftCommit(e,n){this.recordStoreEvent(2),e.forEachIntent((t,o)=>{let i=n.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,t,t.name,o.atom,typeof i==="string"?i:void 0)})}findDependencyPath(e,n,t,o,i,r,s,c,d,y,R,I){let S=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",w=this.beginInterval({type:"cycle-search",fields:{site:S,host:e,hostRef:n,start:this.#h(t),target:this.#h(o),graphVersion:i.getSelectorGraphVersion(),attributedSessionPublications:r.getSelectorGraphPublicationCount(i),evaluationGraphVersionDelta:i.getSelectorGraphVersion()-d,evaluationAttributedPublicationDelta:r.getSelectorGraphPublicationCount(i)-y,acceptedPrefixLength:c,parentWasCold:R}}),m=I?.beginSearch()??!1,l=[t],v=new Map([[t,q]]),x=0,p=0,b=1,C=0,T=0,P=0,g;while(l.length>0){let f=l.pop();if(x++,Object.is(f,o)){let u=[],k=f;while(k!==q)u.push(k),k=v.get(k);u.reverse(),g=Object.freeze(u);break}let h=r.getTransientDependencies(i,f);if(h){if(C++,h.length===0)continue;if(m){let u=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(u)continue}p+=h.length;for(let u of h){if(v.has(u.node))continue;v.set(u.node,f),l.push(u.node)}if(l.length>b)b=l.length;continue}if(i.getSelectorDependencyNodes!==void 0){let u=i.getSelectorDependencyNodes(f);if(u===void 0){P++;continue}if(T++,u.length===0)continue;if(m){let k=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(k)continue}p+=u.length;for(let k of u){if(v.has(k))continue;v.set(k,f),l.push(k)}if(l.length>b)b=l.length;continue}let D=i.getSelectorRecord(f);if(!D){P++;continue}if(T++,D.dependencies.length===0)continue;if(m){let u=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(u)continue}p+=D.dependencies.length;for(let u of D.dependencies){if(v.has(u.node))continue;v.set(u.node,f),l.push(u.node)}if(l.length>b)b=l.length}if(g===void 0)I?.completeNegative(v);else I?.completePositive();return this.addWork({cycle:{searches:1,visits:x,maxVisits:x,found:g===void 0?0:1,site:S,host:e}}),this.finishInterval(w,{result:"returned",fields:{visits:x,edges:p,maxFrontier:b,transientExpansions:C,recordExpansions:T,terminalPrunes:P,found:g!==void 0,...g===void 0?{}:{path:g.map((f)=>this.#h(f))}}}),g}span(e,n){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof n!=="function")throw TypeError("Inspection span callback must be a function");let t=this.beginInterval({type:"span",name:e}),o;try{o=n()}catch(r){throw this.finishInterval(t,{result:"threw"}),r}let i=me(o);if(i.kind==="inspection-error")throw this.finishInterval(t,{result:"threw"}),i.error;if(i.kind==="thenable"){try{Reflect.apply(i.then,i.target,[void 0,ae])}catch{}throw this.finishInterval(t,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(t,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((i,r)=>i.seqStart-r.seqStart),n=[...this.#e.snapshot()].sort((i,r)=>(i.seqStart??i.sequence??0)-(r.seqStart??r.sequence??0)),t=H(e),o=H(n);return Object.freeze({schema:"valdres.inspect",schemaVersion:3,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(n),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...t===void 0?{}:{summaries:t},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#D()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(n,t)=>e.capture(n,t),span:(n,t)=>e.span(n,t),export:()=>e.export(),reset:()=>e.reset()})}#D(){this.#d=`inspection-${ce++}`,this.#o=new N(this.#r),this.#e=new N(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#R=1,this.#E=1,this.#T=1,this.#P=1,this.#n=[],this.#m=new WeakMap,this.#f=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#y=this.#p()}#V(e){if(e==="span")return this.#g++;if(e==="operation")return this.#S++;if(e==="commit")return this.#v++;if(e==="selector-evaluation")return this.#k++;if(e==="cycle-search")return this.#R++;return this.#T++}#b(){let e={};for(let n of this.#n){let{id:t,type:o}=n.token;if(n.links.sessionId!==void 0)e.sessionId=n.links.sessionId;if(o==="span")e.spanId=t;else if(o==="operation")e.operationId=t;else if(o==="commit")e.commitId=t;else if(o==="selector-evaluation")e.evaluationId=t;else if(o==="cycle-search")e.searchId=t}return e}#i(e){for(let n=this.#n.length-1;n>=0;n--){let t=this.#n[n];if(t.token.type===e)return t}return}#h(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,n,t,o,i){let r={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:n,startUs:e.startUs,durationUs:t,...e.links};if(e.token.type==="span")return Object.freeze({...r,type:"span",spanId:e.token.id,...e.links.spanId===void 0?{}:{parentSpanId:e.links.spanId},name:e.name??"",result:i??"returned",totals:M(e.totals)});if(e.token.type==="operation")return Object.freeze({...r,type:"operation",operationId:e.token.id,...e.name===void 0?{}:{name:e.name},...e.commitId===void 0?{}:{commitId:e.commitId},result:i==="threw"||i==="async-rejected"?"threw":"returned",effect:o.effect??(e.commitId===void 0?"none":"committed"),totals:M(e.totals)});if(e.token.type==="commit")return Object.freeze({...r,type:"commit",commitId:e.token.id,operationId:e.links.operationId??0,intents:o.intents??0,changedSources:o.changedSources??0,ownershipChanged:o.ownershipChanged??!1,sourceApplied:o.sourceApplied??!0,notificationsCompleted:o.notificationsCompleted??!0,totals:M(e.totals)});let s=e.token.type==="selector-evaluation"?{evaluationId:e.token.id}:e.token.type==="cycle-search"?{searchId:e.token.id}:{id:e.token.id};return Object.freeze({...r,...s})}#N(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#O(){let e=(n)=>this.#x.read(n);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#j(e){let n=e.counterStart;if(n===void 0)return;e.counterStart=void 0;let t=this.#O();if(e.token.type==="commit")e.commitOwnershipChanged=t.sourceEpoch!==n.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=t.transientSelectorHostsCreated-n.transientSelectorHostsCreated,o.propagationSettled+=t.propagationSettled-n.propagationSettled,o.notificationTargets+=t.notificationTargets-n.notificationTargets,o.subscriberCallbacks+=t.subscriberCallbacks-n.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let n=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:n}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#M(e){return Math.max(0,Math.round((e-this.#y)*1000))}#I(){return this.#M(this.#p())}}var L=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),fe=(e)=>{let n=(i,r,s,c)=>{if(e.hasActiveStoreOperation())return c();e.recordStoreEvent(0,i,r,r.name,s);try{let d=c();return e.recordStoreEvent(1,0),d}catch(d){throw e.recordStoreEvent(1,1,d instanceof G?1:0),d}},t=(i,r,s)=>{if(i===0){let c=r,d=s;e.registerStore(c,d);let y=c,R=c.set,I=c.update,S=c.reset,w=c.txn;y.set=(m,l)=>n(0,d,void 0,()=>R(m,l)),y.update=(m,l)=>n(1,d,void 0,()=>I(m,l)),y.reset=(m)=>n(2,d,void 0,()=>S(m)),y.txn=(m,l)=>{if(typeof m!=="function"||l!==void 0&&typeof l!=="string")return w(m,l);return n(3,d,l,()=>w(m,l))};return}if(i===1){e.beginDraftCommit(r,s);return}if(i===2)e.recordStoreEvent(3,r)};return Object.assign(t,{evaluate:(i,r,s)=>{let c=r.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",d=r.name,y=e.reference(r,c==="committed"?"scope":"scratch-host",typeof d==="string"?d:void 0),R=r.getSelectorGraphVersion(),I=s.getSelectorGraphPublicationCount(r),S=r.getSelectorRecord(i.node)?.dependencies,w=S?.length??0,m=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:c,hostRef:y,selector:e.reference(i.node,"selector",typeof i.name==="string"?i.name:void 0),graphVersionStart:R,previousDependencyCount:w}});e.addWork({selectorEvaluations:1});let l=de((p)=>e.addWork({cycle:{newEdgeProofMemo:p}})),v=()=>{let p=l.finish();if(p===void 0)return;return Q(p)},x=(p,b,C,T,P,g,f)=>e.findDependencyPath(c,y,p,b,C,T,P,g,R,I,S===void 0,f);try{let p=U(i,r,s,x,l.sink),b=S===void 0||S.length!==p.dependencies.length||S.some((h,D)=>!Object.is(h.node,p.dependencies[D]?.node)),C=new Set(S?.map((h)=>h.node)),T=new Set(p.dependencies.map((h)=>h.node)),P=0,g=0;for(let h of T)if(!C.has(h))P++;for(let h of C)if(!T.has(h))g++;e.addWork(b?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1});let f=v();return e.finishInterval(m,{result:"returned",fields:{outcome:p.outcome.kind,dependencyCount:p.dependencies.length,proposedTopologyChanged:b,proposedEdgesAdded:P,proposedEdgesRemoved:g,graphVersionEnd:r.getSelectorGraphVersion(),newEdgeProofMemo:f}}),p}catch(p){let b=v();throw e.finishInterval(m,{result:"threw",fields:{outcome:"threw",graphVersionEnd:r.getSelectorGraphVersion(),newEdgeProofMemo:b}}),p}}}),Object.freeze(t)},ee=(e={})=>{let n=Y(),t=new Z(e,n);return Object.freeze({recorder:t,inspect:t.createInspector(),instrumentation:n,trace:fe(t)})};var Se=(e={})=>{let{inspect:n,instrumentation:t,trace:o}=ee(e),i=ne(t,o);return Object.freeze({store:i,inspect:n})};export{Se as createInspectableStore};
1
+ import{b as Q,c as Z,e as ee,q as ne,s as ae}from"./chunk-fbqtxaaa.js";var ce=2048,de=1e5,q=256,H=1024,W=1e4,le=32,pe=20000,A=new Set(["span","operation","commit"]),ue=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),te=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),me=()=>{},J=Symbol("inspection dependency path root"),_=(e)=>e==="proven-terminal"?"terminal":e==="proven-reverse"?"proven":e==="ineligible-active-frames"?"active-frames":e,fe=1;class O{#o;#e=[];#r=0;constructor(e){this.#o=e}add(e){if(this.#o===0)return!0;if(this.#e.length<this.#o)return this.#e.push(e),!1;return this.#e[this.#r]=e,this.#r=(this.#r+1)%this.#o,!0}snapshot(){if(this.#e.length<this.#o||this.#r===0)return Object.freeze([...this.#e]);return Object.freeze([...this.#e.slice(this.#r),...this.#e.slice(0,this.#r)])}}var L=(e)=>{if(e.length===0)return;let n=Number.POSITIVE_INFINITY,t=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;n=Math.min(n,o.seqStart??r??0),t=Math.max(t,o.seqEnd??r??0)}return Object.freeze({firstSequence:n,lastSequence:t})},U=(e,n,t,o)=>{let r=e??n;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${t} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},G=(e)=>e.length<=q?e:e.slice(0,q),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),oe=()=>({admissionSkipped:0,observing:0,consultedNoPrune:0,consultedPruned:0,disabled:0,mapProbes:0,prunedNodes:0,graphVersionResets:0,initialSeeds:0,activationReplacementSeeds:0,secondarySeeds:0,hitDerivedSeeds:0,missBudgetDisables:0,oversizedHitApproachDisables:0,passiveProbeBudgetDisables:0,maxRetainedEntries:0}),re=(e)=>Object.freeze({admissionSkipped:e.admissionSkipped,observing:e.observing,consultedNoPrune:e.consultedNoPrune,consultedPruned:e.consultedPruned,disabled:e.disabled,mapProbes:e.mapProbes,prunedNodes:e.prunedNodes,resets:Object.freeze({graphVersion:e.graphVersionResets}),seeds:Object.freeze({initial:e.initialSeeds,activationReplacement:e.activationReplacementSeeds,secondary:e.secondarySeeds,hitDerived:e.hitDerivedSeeds}),disables:Object.freeze({missBudget:e.missBudgetDisables,oversizedHitApproach:e.oversizedHitApproachDisables,passiveProbeBudget:e.passiveProbeBudgetDisables}),retained:Object.freeze({maxEntries:e.maxRetainedEntries})}),be=(e)=>{let n=oe(),t=!1;return Object.freeze({sink:Object.freeze({admissionSkipped(){t=!0,n.admissionSkipped++,e({admissionSkipped:1})},disabled(){t=!0,n.disabled++,e({disabled:1})},graphVersionReset(){t=!0,n.graphVersionResets++,e({graphVersionResets:1})},recordMapProbes(r){if(r===0)return;t=!0,n.mapProbes+=r,e({mapProbes:r})},completeSearch(r,i,s,a=0,d=0,b=0){if(t=!0,r==="observing")n.observing++;else if(r==="consulted-no-prune")n.consultedNoPrune++;else n.consultedPruned++;if(n.mapProbes+=a,n.prunedNodes+=d,n.maxRetainedEntries=Math.max(n.maxRetainedEntries,b),i==="initial")n.initialSeeds++;else if(i==="activation-replacement")n.activationReplacementSeeds++;else if(i==="secondary")n.secondarySeeds++;else if(i==="hit-derived")n.hitDerivedSeeds++;if(s==="miss-budget")n.missBudgetDisables++;else if(s==="over-cap-hit")n.oversizedHitApproachDisables++;else if(s==="passive-probe-budget")n.passiveProbeBudgetDisables++;e({...r==="observing"?{observing:1}:r==="consulted-no-prune"?{consultedNoPrune:1}:{consultedPruned:1},mapProbes:a,prunedNodes:d,maxRetainedEntries:b,...i==="initial"?{initialSeeds:1}:i==="activation-replacement"?{activationReplacementSeeds:1}:i==="secondary"?{secondarySeeds:1}:i==="hit-derived"?{hitDerivedSeeds:1}:{},...s==="miss-budget"?{missBudgetDisables:1}:s==="over-cap-hit"?{oversizedHitApproachDisables:1}:s==="passive-probe-budget"?{passiveProbeBudgetDisables:1}:{}})}}),finish:()=>t?n:void 0})},ye=()=>({selectorEvaluations:0,proposedTopologyChanges:0,proposedTopologyIdentical:0,transientSelectorHostsCreated:0,propagationSettled:0,notificationTargets:0,subscriberCallbacks:0,cycle:{searches:0,visits:0,maxVisits:0,found:0,prefixRevalidation:0,newEdgeProof:0,topologyDeltaProof:0,committed:0,scratch:0,hydration:0,newEdgeProofMemo:oe(),reverseProof:{terminal:0,proven:0,pathPossible:0,budgetExhausted:0,disabled:0,activeFrames:0,unsupported:0,nodeVisits:0,dependentProbes:0,liveDependents:0,maxWork:0,maxFrontier:0},lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()}}}}),B=(e)=>Object.freeze({selectorEvaluations:e.selectorEvaluations,proposedTopologyChanges:e.proposedTopologyChanges,proposedTopologyIdentical:e.proposedTopologyIdentical,transientSelectorHostsCreated:e.transientSelectorHostsCreated,propagationSettled:e.propagationSettled,notificationTargets:e.notificationTargets,subscriberCallbacks:e.subscriberCallbacks,cycle:Object.freeze({searches:e.cycle.searches,visits:e.cycle.visits,maxVisits:e.cycle.maxVisits,found:e.cycle.found,bySite:Object.freeze({prefixRevalidation:e.cycle.prefixRevalidation,newEdgeProof:e.cycle.newEdgeProof,topologyDeltaProof:e.cycle.topologyDeltaProof}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),newEdgeProofMemo:re(e.cycle.newEdgeProofMemo),reverseProof:Object.freeze({...e.cycle.reverseProof}),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.committed.topologyDeltaProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.scratch.topologyDeltaProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.hydration.topologyDeltaProof})})})})}),z=(e,n,t,o)=>{if(n.remaining--<=0||o>le)return null;if(e===null)return null;if(typeof e==="string")return e.length<=H?e:e.slice(0,H);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,W);for(let d=0;d<a;d++)s.push(z(e[d],n,t,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,W);for(let s of i){if(te.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=z(a,n,t,o+1)}return Object.freeze(r)}finally{t.delete(e)}},F=(e)=>{if(e===void 0)return he;let n={},t={remaining:pe};for(let o of Object.keys(e).slice(0,W)){if(ue.has(o)||te.has(o))continue;let r=e[o];if(r===void 0)continue;n[o]=z(r,t,new Set,0)}return Object.freeze(n)},he=Object.freeze({}),Ie=(e,n)=>{if(n===void 0)return e;return Object.freeze({...e,...F(n)})},c=(e,n)=>n===void 0||!Number.isFinite(n)||n<=0?e:e+n,ge=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Y;try{let n=e.then;return typeof n==="function"?{kind:"thenable",target:e,then:n}:Y}catch(n){return{kind:"inspection-error",error:n}}},Y=Object.freeze({kind:"not-thenable"});class se{#o;#e;#r;#u;#d="";#i=1;#g=1;#S=1;#v=1;#P=1;#R=1;#E=1;#k=1;#T=1;#n=[];#m=new WeakMap;#x=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#b;#C;constructor(e,n){this.#C=n,this.#r=U(e.capacity?.summaries,ce,"Inspection summary",!1),this.#u=U(e.capacity?.details,de,"Inspection detail",!0),this.#o=new O(this.#r),this.#e=new O(this.#u),this.#b=this.#p(),this.#D()}get recordingId(){return this.#d}registerStore(e,n){this.#w.set(e,n)}capture(e,n){let t=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=t===void 0?void 0:this.#w.get(t);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(n!==void 0){let s=typeof n==="object"&&n!==null||typeof n==="function"?n:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let d=a.atoms.get(s),b=a.selectors.get(s);if(d===void 0&&b===void 0)throw TypeError("Inspection capture requires a valid State");let R=d?.name??b?.name;r=this.reference(s,d===void 0?"selector":"atom",typeof R==="string"?R:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#M(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#y()})}reference(e,n,t){if(this.#t!==void 0)return K;try{let o=this.#m.get(e);if(o===void 0)o=this.#T++,this.#m.set(e,o);let r=this.#x.get(e);if(r===void 0&&t!==void 0)r=G(t),this.#x.set(e,r);return Object.freeze({id:o,kind:n,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),K}}sessionId(e){let n=this.#f.get(e);if(n!==void 0)return n;let t=this.#E++;return this.#f.set(e,t),t}beginInterval(e){if(this.#t!==void 0)return X;try{let n=this.#V(e.type),t=Object.freeze({id:n,type:e.type}),o=Object.freeze({...this.#y(),...e.links}),r={token:t,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:G(e.name),seqStart:this.#i++,startUs:this.#I(),fields:F(e.fields),totals:A.has(e.type)?ye():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:A.has(e.type)?this.#O():void 0};if(e.type==="commit"){let i=this.#s("operation");if(i!==void 0)i.commitId=n}return this.#n.push(r),t}catch{return this.#c("begin-interval"),X}}finishInterval(e,n={}){if(e.id===0||this.#t!==void 0)return;try{let t=this.#n.pop();if(t===void 0||!Object.is(t.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#j(t);let o=this.#i++,r=Math.max(0,this.#I()-t.startUs),i=Ie(t.fields,n.fields),s=this.#z(t,o,r,i,n.result);if(A.has(t.token.type)){if(this.#o.add(s))this.#l++}else if(this.#e.add(s))this.#a++}catch{this.#c("finish-interval")}}record(e){if(this.#t!==void 0)return;try{let n=this.#i++,t=Object.freeze({...F(e.fields),type:e.type,sequence:n,timeUs:this.#I(),...this.#y(),...e.links});if(this.#e.add(t))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let n of this.#n){let t=n.totals;if(t===void 0)continue;t.selectorEvaluations=c(t.selectorEvaluations,e.selectorEvaluations),t.proposedTopologyChanges=c(t.proposedTopologyChanges,e.proposedTopologyChanges),t.proposedTopologyIdentical=c(t.proposedTopologyIdentical,e.proposedTopologyIdentical),t.transientSelectorHostsCreated=c(t.transientSelectorHostsCreated,e.transientSelectorHostsCreated),t.propagationSettled=c(t.propagationSettled,e.propagationSettled),t.notificationTargets=c(t.notificationTargets,e.notificationTargets),t.subscriberCallbacks=c(t.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;t.cycle.searches=c(t.cycle.searches,o.searches),t.cycle.visits=c(t.cycle.visits,o.visits),t.cycle.maxVisits=Math.max(t.cycle.maxVisits,o.maxVisits??0),t.cycle.found=c(t.cycle.found,o.found);let r=o.newEdgeProofMemo;if(r!==void 0){let s=t.cycle.newEdgeProofMemo;s.admissionSkipped=c(s.admissionSkipped,r.admissionSkipped),s.observing=c(s.observing,r.observing),s.consultedNoPrune=c(s.consultedNoPrune,r.consultedNoPrune),s.consultedPruned=c(s.consultedPruned,r.consultedPruned),s.disabled=c(s.disabled,r.disabled),s.mapProbes=c(s.mapProbes,r.mapProbes),s.prunedNodes=c(s.prunedNodes,r.prunedNodes),s.graphVersionResets=c(s.graphVersionResets,r.graphVersionResets),s.initialSeeds=c(s.initialSeeds,r.initialSeeds),s.activationReplacementSeeds=c(s.activationReplacementSeeds,r.activationReplacementSeeds),s.secondarySeeds=c(s.secondarySeeds,r.secondarySeeds),s.hitDerivedSeeds=c(s.hitDerivedSeeds,r.hitDerivedSeeds),s.missBudgetDisables=c(s.missBudgetDisables,r.missBudgetDisables),s.oversizedHitApproachDisables=c(s.oversizedHitApproachDisables,r.oversizedHitApproachDisables),s.passiveProbeBudgetDisables=c(s.passiveProbeBudgetDisables,r.passiveProbeBudgetDisables),s.maxRetainedEntries=Math.max(s.maxRetainedEntries,r.maxRetainedEntries??0)}let i=o.reverseProof;if(i!==void 0){let s=t.cycle.reverseProof;if(i.outcome==="terminal")s.terminal++;else if(i.outcome==="proven")s.proven++;else if(i.outcome==="path-possible")s.pathPossible++;else if(i.outcome==="budget-exhausted")s.budgetExhausted++;else if(i.outcome==="disabled")s.disabled++;else if(i.outcome==="active-frames")s.activeFrames++;else s.unsupported++;s.nodeVisits=c(s.nodeVisits,i.nodeVisits),s.dependentProbes=c(s.dependentProbes,i.dependentProbes),s.liveDependents=c(s.liveDependents,i.liveDependents),s.maxWork=Math.max(s.maxWork,i.nodeVisits+i.dependentProbes),s.maxFrontier=Math.max(s.maxFrontier,i.maxFrontier)}if(o.site==="prefix-revalidation")t.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")t.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")t.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)t.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let s=o.site==="prefix-revalidation"?"prefixRevalidation":o.site==="new-edge-proof"?"newEdgeProof":"topologyDeltaProof",a=t.cycle.lanes[o.host][s];a.searches=c(a.searches,o.searches),a.visits=c(a.visits,o.visits),a.maxVisits=Math.max(a.maxVisits,o.maxVisits??0),a.found=c(a.found,o.found)}}}catch{this.#c("add-work")}}beginStoreOperation(e){return this.beginInterval({type:"operation",...e.name===void 0?{}:{name:e.name},fields:{operation:e.operation,scope:this.reference(e.scope,"scope",e.scopeName)}})}finishStoreOperation(e,n){let t=this.#s("operation"),o=t===void 0||!Object.is(t.token,e)||t.commitId===void 0||!t.commitSourceApplied?"none":n==="returned"?"committed":t.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:n,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,n){let t=this.#s("operation");if(t!==void 0)t.commitSourceApplied||=n.sourceApplied,t.commitFailurePhase=n.failurePhase;this.finishInterval(e,{result:n.result,fields:{intents:n.intents,...n.changedSources===void 0?{}:{changedSources:n.changedSources},...n.ownershipChanged===void 0?{}:{ownershipChanged:n.ownershipChanged},sourceApplied:n.sourceApplied,notificationsCompleted:n.notificationsCompleted}})}recordStoreIntent(e){this.record({type:"intent",fields:{intent:e.intent,scope:this.reference(e.scope,"scope",e.scopeName),atom:this.reference(e.atom,"atom",e.atomName)}})}recordStoreEvent(...e){let n=e[0];if(n===0){let o=["set","update","reset","transaction"][e[1]];this.beginStoreOperation({operation:o,scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},...e[4]===void 0?{}:{name:e[4]}});return}if(n===1){let o=e[1]===0?"returned":"threw",r=this.#s("operation");if(r===void 0)return;let i=this.#s("commit");if(i!==void 0)this.#j(i),this.finishStoreCommit(i.token,{result:o,intents:r.operationIntents,...i.commitChangedSources===void 0?{}:{changedSources:i.commitChangedSources},...i.commitOwnershipChanged===void 0?{}:{ownershipChanged:i.commitOwnershipChanged},sourceApplied:i.commitSourceApplied,notificationsCompleted:o==="returned",...e[2]===void 0?{}:{failurePhase:e[2]===1?"notify":"propagate"}});this.finishStoreOperation(r.token,o);return}if(n===2){let o=this.#s("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(n===3){let o=this.#s("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let t=this.#s("operation");if(t!==void 0)t.operationIntents++;this.recordStoreIntent({intent:e[1]===0?"set":"reset",scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},atom:e[4],...e[5]===void 0?{}:{atomName:e[5]}})}hasActiveStoreOperation(){return this.#s("operation")!==void 0}beginDraftCommit(e,n){this.recordStoreEvent(2),e.forEachIntent((t,o)=>{let r=n.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,t,t.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,n,t,o,r,i,s,a,d,b,R,k){let S=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",D=this.beginInterval({type:"cycle-search",fields:{site:S,host:e,hostRef:n,start:this.#h(t),target:this.#h(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-d,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-b,acceptedPrefixLength:a,parentWasCold:R}}),m={nodeVisits:0,dependentProbes:0,liveDependents:0,maxFrontier:0},l=s===1?Q(t,o,r,i,m,k?.reverseProofEnabled??!0):void 0;if(l==="budget-exhausted"&&k!==void 0)k.reverseProofEnabled=!1;let j=l==="proven-terminal"||l==="proven-reverse",N=0,p=0,y=0,C=0,T=0,x=0,g;if(!j){let h=k?.(),f=h?.beginSearch()??!1,I=[t],w=new Map([[t,J]]);y=1;while(I.length>0){let v=I.pop();if(N++,Object.is(v,o)){let u=[],P=v;while(P!==J)u.push(P),P=w.get(P);u.reverse(),g=Object.freeze(u);break}let M=i.getTransientDependencies(r,v);if(M){if(C++,M.length===0)continue;if(f){let u=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(u)continue}p+=M.length;for(let u of M){if(w.has(u.node))continue;w.set(u.node,v),I.push(u.node)}if(I.length>y)y=I.length;continue}if(r.getSelectorDependencyNodes!==void 0){let u=r.getSelectorDependencyNodes(v);if(u===void 0){x++;continue}if(T++,u.length===0)continue;if(f){let P=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(P)continue}p+=u.length;for(let P of u){if(w.has(P))continue;w.set(P,v),I.push(P)}if(I.length>y)y=I.length;continue}let V=r.getSelectorRecord(v);if(!V){x++;continue}if(T++,V.dependencies.length===0)continue;if(f){let u=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(u)continue}p+=V.dependencies.length;for(let u of V.dependencies){if(w.has(u.node))continue;w.set(u.node,v),I.push(u.node)}if(I.length>y)y=I.length}if(g===void 0)h?.completeNegative(w);else h?.completePositive()}return this.addWork({cycle:{searches:1,visits:N,maxVisits:N,found:g===void 0?0:1,site:S,host:e,...l===void 0?{}:{reverseProof:{outcome:_(l),...m}}}}),this.finishInterval(D,{result:"returned",fields:{visits:N,edges:p,maxFrontier:y,transientExpansions:C,recordExpansions:T,terminalPrunes:x,...l===void 0?{}:{reverseProof:{outcome:_(l),...m}},found:g!==void 0,...g===void 0?{}:{path:g.map((h)=>this.#h(h))}}}),g}span(e,n){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof n!=="function")throw TypeError("Inspection span callback must be a function");let t=this.beginInterval({type:"span",name:e}),o;try{o=n()}catch(i){throw this.finishInterval(t,{result:"threw"}),i}let r=ge(o);if(r.kind==="inspection-error")throw this.finishInterval(t,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,me])}catch{}throw this.finishInterval(t,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(t,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),n=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),t=L(e),o=L(n);return Object.freeze({schema:"valdres.inspect",schemaVersion:4,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(n),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...t===void 0?{}:{summaries:t},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#D()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(n,t)=>e.capture(n,t),span:(n,t)=>e.span(n,t),export:()=>e.export(),reset:()=>e.reset()})}#D(){this.#d=`inspection-${fe++}`,this.#o=new O(this.#r),this.#e=new O(this.#u),this.#i=1,this.#g=1,this.#S=1,this.#v=1,this.#P=1,this.#R=1,this.#E=1,this.#k=1,this.#T=1,this.#n=[],this.#m=new WeakMap,this.#f=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#b=this.#p()}#V(e){if(e==="span")return this.#g++;if(e==="operation")return this.#S++;if(e==="commit")return this.#v++;if(e==="selector-evaluation")return this.#P++;if(e==="cycle-search")return this.#R++;return this.#k++}#y(){let e={};for(let n of this.#n){let{id:t,type:o}=n.token;if(n.links.sessionId!==void 0)e.sessionId=n.links.sessionId;if(o==="span")e.spanId=t;else if(o==="operation")e.operationId=t;else if(o==="commit")e.commitId=t;else if(o==="selector-evaluation")e.evaluationId=t;else if(o==="cycle-search")e.searchId=t}return e}#s(e){for(let n=this.#n.length-1;n>=0;n--){let t=this.#n[n];if(t.token.type===e)return t}return}#h(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):z(e,{remaining:1},new Set,0)}#z(e,n,t,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:n,startUs:e.startUs,durationUs:t,...e.links};if(e.token.type==="span")return Object.freeze({...i,type:"span",spanId:e.token.id,...e.links.spanId===void 0?{}:{parentSpanId:e.links.spanId},name:e.name??"",result:r??"returned",totals:B(e.totals)});if(e.token.type==="operation")return Object.freeze({...i,type:"operation",operationId:e.token.id,...e.name===void 0?{}:{name:e.name},...e.commitId===void 0?{}:{commitId:e.commitId},result:r==="threw"||r==="async-rejected"?"threw":"returned",effect:o.effect??(e.commitId===void 0?"none":"committed"),totals:B(e.totals)});if(e.token.type==="commit")return Object.freeze({...i,type:"commit",commitId:e.token.id,operationId:e.links.operationId??0,intents:o.intents??0,changedSources:o.changedSources??0,ownershipChanged:o.ownershipChanged??!1,sourceApplied:o.sourceApplied??!0,notificationsCompleted:o.notificationsCompleted??!0,totals:B(e.totals)});let s=e.token.type==="selector-evaluation"?{evaluationId:e.token.id}:e.token.type==="cycle-search"?{searchId:e.token.id}:{id:e.token.id};return Object.freeze({...i,...s})}#N(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#O(){let e=(n)=>this.#C.read(n);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#j(e){let n=e.counterStart;if(n===void 0)return;e.counterStart=void 0;let t=this.#O();if(e.token.type==="commit")e.commitOwnershipChanged=t.sourceEpoch!==n.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=t.transientSelectorHostsCreated-n.transientSelectorHostsCreated,o.propagationSettled+=t.propagationSettled-n.propagationSettled,o.notificationTargets+=t.notificationTargets-n.notificationTargets,o.subscriberCallbacks+=t.subscriberCallbacks-n.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let n=this.#i++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:n}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#M(e){return Math.max(0,Math.round((e-this.#b)*1000))}#I(){return this.#M(this.#p())}}var K=Object.freeze({id:0,kind:"store"}),X=Object.freeze({id:0,type:"operation"}),Se=(e)=>{let n=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let d=a();return e.recordStoreEvent(1,0),d}catch(d){throw e.recordStoreEvent(1,1,d instanceof ee?1:0),d}},t=(r,i,s)=>{if(r===0){let a=i,d=s;e.registerStore(a,d);let b=a,R=a.set,k=a.update,S=a.reset,D=a.txn;b.set=(m,l)=>n(0,d,void 0,()=>R(m,l)),b.update=(m,l)=>n(1,d,void 0,()=>k(m,l)),b.reset=(m)=>n(2,d,void 0,()=>S(m)),b.txn=(m,l)=>{if(typeof m!=="function"||l!==void 0&&typeof l!=="string")return D(m,l);return n(3,d,l,()=>D(m,l))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(t,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",d=i.name,b=e.reference(i,a==="committed"?"scope":"scratch-host",typeof d==="string"?d:void 0),R=i.getSelectorGraphVersion(),k=s.getSelectorGraphPublicationCount(i),S=i.getSelectorRecord(r.node)?.dependencies,D=S?.length??0,m=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:b,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:R,previousDependencyCount:D}});e.addWork({selectorEvaluations:1});let l=be((p)=>e.addWork({cycle:{newEdgeProofMemo:p}})),j=()=>{let p=l.finish();if(p===void 0)return;return re(p)},N=(p,y,C,T,x,g,h)=>e.findDependencyPath(a,b,p,y,C,T,x,g,R,k,S===void 0,h);try{let p=Z(r,i,s,N,l.sink),y=S===void 0||S.length!==p.dependencies.length||S.some((f,I)=>!Object.is(f.node,p.dependencies[I]?.node)),C=new Set(S?.map((f)=>f.node)),T=new Set(p.dependencies.map((f)=>f.node)),x=0,g=0;for(let f of T)if(!C.has(f))x++;for(let f of C)if(!T.has(f))g++;e.addWork(y?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1});let h=j();return e.finishInterval(m,{result:"returned",fields:{outcome:p.outcome.kind,dependencyCount:p.dependencies.length,proposedTopologyChanged:y,proposedEdgesAdded:x,proposedEdgesRemoved:g,graphVersionEnd:i.getSelectorGraphVersion(),newEdgeProofMemo:h}}),p}catch(p){let y=j();throw e.finishInterval(m,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion(),newEdgeProofMemo:y}}),p}}}),Object.freeze(t)},ie=(e={})=>{let n=ne(),t=new se(e,n);return Object.freeze({recorder:t,inspect:t.createInspector(),instrumentation:n,trace:Se(t)})};var Te=(e={})=>{let{inspect:n,instrumentation:t,trace:o}=ie(e),r=ae(t,o);return Object.freeze({store:r,inspect:n})};export{Te as createInspectableStore};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as o,c as a,d as n,e as l,f as p,g as c,h as i,i as s,j as u,k as y,l as v,m as E,n as m,o as S,q as t}from"./chunk-k8zy7f8n.js";var f=(r,e={})=>t.atomLazy(r,e),d=(r,e={})=>t.atom(r,e);Object.defineProperty(d,"lazy",{configurable:!1,enumerable:!0,value:f,writable:!1});var T=Object.freeze(d),x=(r,e={})=>t.selector(r,e);function V(){if(arguments.length!==0)throw TypeError("store() accepts no arguments");return t.createStoreTree()}var R=T,h=x,F=V,k=l,g=y,D=u,O=s,M=S,N=a,q=E,P=p,z=o,w=v,U=m,G=n,j=i,L=c;export{k as CallbackCapabilityError,g as InvalidAtomComparatorResultError,D as InvalidSynchronousAtomValueError,O as InvalidTransactionCallbackResultError,M as InvalidTransactionTargetError,N as RuntimeMismatchError,q as ScopeNotFoundError,P as SelectorCapabilityError,z as SelectorCircularDependencyError,w as StoreDisposedError,U as StoreTreeMismatchError,G as SubscriberNotificationError,j as TransactionClosedError,L as TransactionPhaseError,R as atom,h as selector,F as store};
1
+ import{a as o,d as a,e as n,f as l,g as p,h as c,i,j as s,k as u,l as y,m as v,n as E,o as m,p as S,r as t}from"./chunk-fbqtxaaa.js";var f=(r,e={})=>t.atomLazy(r,e),d=(r,e={})=>t.atom(r,e);Object.defineProperty(d,"lazy",{configurable:!1,enumerable:!0,value:f,writable:!1});var T=Object.freeze(d),x=(r,e={})=>t.selector(r,e);function V(){if(arguments.length!==0)throw TypeError("store() accepts no arguments");return t.createStoreTree()}var R=T,h=x,F=V,k=l,g=y,D=u,O=s,M=S,N=a,q=E,P=p,z=o,w=v,U=m,G=n,j=i,L=c;export{k as CallbackCapabilityError,g as InvalidAtomComparatorResultError,D as InvalidSynchronousAtomValueError,O as InvalidTransactionCallbackResultError,M as InvalidTransactionTargetError,N as RuntimeMismatchError,q as ScopeNotFoundError,P as SelectorCapabilityError,z as SelectorCircularDependencyError,w as StoreDisposedError,U as StoreTreeMismatchError,G as SubscriberNotificationError,j as TransactionClosedError,L as TransactionPhaseError,R as atom,h as selector,F as store};
package/dist/inspect.js CHANGED
@@ -1 +1 @@
1
- import{b as U,d as G,p as Y,r as ne}from"./chunk-k8zy7f8n.js";var te=2048,oe=1e5,A=256,B=1024,V=1e4,re=32,ie=20000,j=new Set(["span","operation","commit"]),se=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),K=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),ae=()=>{},q=Symbol("inspection dependency path root"),ce=1;class N{#o;#e=[];#r=0;constructor(e){this.#o=e}add(e){if(this.#o===0)return!0;if(this.#e.length<this.#o)return this.#e.push(e),!1;return this.#e[this.#r]=e,this.#r=(this.#r+1)%this.#o,!0}snapshot(){if(this.#e.length<this.#o||this.#r===0)return Object.freeze([...this.#e]);return Object.freeze([...this.#e.slice(this.#r),...this.#e.slice(0,this.#r)])}}var H=(e)=>{if(e.length===0)return;let n=Number.POSITIVE_INFINITY,t=0;for(let o of e){let i="sequence"in o?o.sequence:void 0;n=Math.min(n,o.seqStart??i??0),t=Math.max(t,o.seqEnd??i??0)}return Object.freeze({firstSequence:n,lastSequence:t})},J=(e,n,t,o)=>{let i=e??n;if(!Number.isSafeInteger(i)||i<(o?0:1))throw TypeError(`${t} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return i},W=(e)=>e.length<=A?e:e.slice(0,A),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),X=()=>({admissionSkipped:0,observing:0,consultedNoPrune:0,consultedPruned:0,disabled:0,mapProbes:0,prunedNodes:0,graphVersionResets:0,initialSeeds:0,activationReplacementSeeds:0,secondarySeeds:0,hitDerivedSeeds:0,missBudgetDisables:0,oversizedHitApproachDisables:0,passiveProbeBudgetDisables:0,maxRetainedEntries:0}),Q=(e)=>Object.freeze({admissionSkipped:e.admissionSkipped,observing:e.observing,consultedNoPrune:e.consultedNoPrune,consultedPruned:e.consultedPruned,disabled:e.disabled,mapProbes:e.mapProbes,prunedNodes:e.prunedNodes,resets:Object.freeze({graphVersion:e.graphVersionResets}),seeds:Object.freeze({initial:e.initialSeeds,activationReplacement:e.activationReplacementSeeds,secondary:e.secondarySeeds,hitDerived:e.hitDerivedSeeds}),disables:Object.freeze({missBudget:e.missBudgetDisables,oversizedHitApproach:e.oversizedHitApproachDisables,passiveProbeBudget:e.passiveProbeBudgetDisables}),retained:Object.freeze({maxEntries:e.maxRetainedEntries})}),de=(e)=>{let n=X(),t=!1;return Object.freeze({sink:Object.freeze({admissionSkipped(){t=!0,n.admissionSkipped++,e({admissionSkipped:1})},disabled(){t=!0,n.disabled++,e({disabled:1})},graphVersionReset(){t=!0,n.graphVersionResets++,e({graphVersionResets:1})},completeSearch(i,r,s,c=0,d=0,y=0){if(t=!0,i==="observing")n.observing++;else if(i==="consulted-no-prune")n.consultedNoPrune++;else n.consultedPruned++;if(n.mapProbes+=c,n.prunedNodes+=d,n.maxRetainedEntries=Math.max(n.maxRetainedEntries,y),r==="initial")n.initialSeeds++;else if(r==="activation-replacement")n.activationReplacementSeeds++;else if(r==="secondary")n.secondarySeeds++;else if(r==="hit-derived")n.hitDerivedSeeds++;if(s==="miss-budget")n.missBudgetDisables++;else if(s==="over-cap-hit")n.oversizedHitApproachDisables++;else if(s==="passive-probe-budget")n.passiveProbeBudgetDisables++;e({...i==="observing"?{observing:1}:i==="consulted-no-prune"?{consultedNoPrune:1}:{consultedPruned:1},mapProbes:c,prunedNodes:d,maxRetainedEntries:y,...r==="initial"?{initialSeeds:1}:r==="activation-replacement"?{activationReplacementSeeds:1}:r==="secondary"?{secondarySeeds:1}:r==="hit-derived"?{hitDerivedSeeds:1}:{},...s==="miss-budget"?{missBudgetDisables:1}:s==="over-cap-hit"?{oversizedHitApproachDisables:1}:s==="passive-probe-budget"?{passiveProbeBudgetDisables:1}:{}})}}),finish:()=>t?n:void 0})},le=()=>({selectorEvaluations:0,proposedTopologyChanges:0,proposedTopologyIdentical:0,transientSelectorHostsCreated:0,propagationSettled:0,notificationTargets:0,subscriberCallbacks:0,cycle:{searches:0,visits:0,maxVisits:0,found:0,prefixRevalidation:0,newEdgeProof:0,topologyDeltaProof:0,committed:0,scratch:0,hydration:0,newEdgeProofMemo:X(),lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()}}}}),M=(e)=>Object.freeze({selectorEvaluations:e.selectorEvaluations,proposedTopologyChanges:e.proposedTopologyChanges,proposedTopologyIdentical:e.proposedTopologyIdentical,transientSelectorHostsCreated:e.transientSelectorHostsCreated,propagationSettled:e.propagationSettled,notificationTargets:e.notificationTargets,subscriberCallbacks:e.subscriberCallbacks,cycle:Object.freeze({searches:e.cycle.searches,visits:e.cycle.visits,maxVisits:e.cycle.maxVisits,found:e.cycle.found,bySite:Object.freeze({prefixRevalidation:e.cycle.prefixRevalidation,newEdgeProof:e.cycle.newEdgeProof,topologyDeltaProof:e.cycle.topologyDeltaProof}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),newEdgeProofMemo:Q(e.cycle.newEdgeProofMemo),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.committed.topologyDeltaProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.scratch.topologyDeltaProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.hydration.topologyDeltaProof})})})})}),O=(e,n,t,o)=>{if(n.remaining--<=0||o>re)return null;if(e===null)return null;if(typeof e==="string")return e.length<=B?e:e.slice(0,B);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){let s=[],c=Math.min(e.length,V);for(let d=0;d<c;d++)s.push(O(e[d],n,t,o+1));return Object.freeze(s)}let i={},r=Object.keys(e).slice(0,V);for(let s of r){if(K.has(s))continue;let c=Reflect.get(e,s);if(c===void 0)continue;i[s]=O(c,n,t,o+1)}return Object.freeze(i)}finally{t.delete(e)}},z=(e)=>{if(e===void 0)return pe;let n={},t={remaining:ie};for(let o of Object.keys(e).slice(0,V)){if(se.has(o)||K.has(o))continue;let i=e[o];if(i===void 0)continue;n[o]=O(i,t,new Set,0)}return Object.freeze(n)},pe=Object.freeze({}),ue=(e,n)=>{if(n===void 0)return e;return Object.freeze({...e,...z(n)})},a=(e,n)=>n===void 0||!Number.isFinite(n)||n<=0?e:e+n,me=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return _;try{let n=e.then;return typeof n==="function"?{kind:"thenable",target:e,then:n}:_}catch(n){return{kind:"inspection-error",error:n}}},_=Object.freeze({kind:"not-thenable"});class Z{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#R=1;#E=1;#T=1;#P=1;#n=[];#m=new WeakMap;#C=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#y;#x;constructor(e,n){this.#x=n,this.#r=J(e.capacity?.summaries,te,"Inspection summary",!1),this.#u=J(e.capacity?.details,oe,"Inspection detail",!0),this.#o=new N(this.#r),this.#e=new N(this.#u),this.#y=this.#p(),this.#D()}get recordingId(){return this.#d}registerStore(e,n){this.#w.set(e,n)}capture(e,n){let t=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=t===void 0?void 0:this.#w.get(t);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let i;if(n!==void 0){let s=typeof n==="object"&&n!==null||typeof n==="function"?n:void 0,c=o.coordinator.runtimeDomain;if(s===void 0||!c.states.has(s))throw TypeError("Inspection capture requires a valid State");let d=c.atoms.get(s),y=c.selectors.get(s);if(d===void 0&&y===void 0)throw TypeError("Inspection capture requires a valid State");let R=d?.name??y?.name;i=this.reference(s,d===void 0?"selector":"atom",typeof R==="string"?R:void 0)}let r=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#M(r),monotonicTimeMs:r,store:this.reference(o,"scope",o.name),...i===void 0?{}:{state:i},...this.#b()})}reference(e,n,t){if(this.#t!==void 0)return L;try{let o=this.#m.get(e);if(o===void 0)o=this.#P++,this.#m.set(e,o);let i=this.#C.get(e);if(i===void 0&&t!==void 0)i=W(t),this.#C.set(e,i);return Object.freeze({id:o,kind:n,...i===void 0?{}:{name:i}})}catch{return this.#c("reference"),L}}sessionId(e){let n=this.#f.get(e);if(n!==void 0)return n;let t=this.#E++;return this.#f.set(e,t),t}beginInterval(e){if(this.#t!==void 0)return F;try{let n=this.#V(e.type),t=Object.freeze({id:n,type:e.type}),o=Object.freeze({...this.#b(),...e.links}),i={token:t,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:W(e.name),seqStart:this.#s++,startUs:this.#I(),fields:z(e.fields),totals:j.has(e.type)?le():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:j.has(e.type)?this.#O():void 0};if(e.type==="commit"){let r=this.#i("operation");if(r!==void 0)r.commitId=n}return this.#n.push(i),t}catch{return this.#c("begin-interval"),F}}finishInterval(e,n={}){if(e.id===0||this.#t!==void 0)return;try{let t=this.#n.pop();if(t===void 0||!Object.is(t.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#j(t);let o=this.#s++,i=Math.max(0,this.#I()-t.startUs),r=ue(t.fields,n.fields),s=this.#z(t,o,i,r,n.result);if(j.has(t.token.type)){if(this.#o.add(s))this.#l++}else if(this.#e.add(s))this.#a++}catch{this.#c("finish-interval")}}record(e){if(this.#t!==void 0)return;try{let n=this.#s++,t=Object.freeze({...z(e.fields),type:e.type,sequence:n,timeUs:this.#I(),...this.#b(),...e.links});if(this.#e.add(t))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let n of this.#n){let t=n.totals;if(t===void 0)continue;t.selectorEvaluations=a(t.selectorEvaluations,e.selectorEvaluations),t.proposedTopologyChanges=a(t.proposedTopologyChanges,e.proposedTopologyChanges),t.proposedTopologyIdentical=a(t.proposedTopologyIdentical,e.proposedTopologyIdentical),t.transientSelectorHostsCreated=a(t.transientSelectorHostsCreated,e.transientSelectorHostsCreated),t.propagationSettled=a(t.propagationSettled,e.propagationSettled),t.notificationTargets=a(t.notificationTargets,e.notificationTargets),t.subscriberCallbacks=a(t.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;t.cycle.searches=a(t.cycle.searches,o.searches),t.cycle.visits=a(t.cycle.visits,o.visits),t.cycle.maxVisits=Math.max(t.cycle.maxVisits,o.maxVisits??0),t.cycle.found=a(t.cycle.found,o.found);let i=o.newEdgeProofMemo;if(i!==void 0){let r=t.cycle.newEdgeProofMemo;r.admissionSkipped=a(r.admissionSkipped,i.admissionSkipped),r.observing=a(r.observing,i.observing),r.consultedNoPrune=a(r.consultedNoPrune,i.consultedNoPrune),r.consultedPruned=a(r.consultedPruned,i.consultedPruned),r.disabled=a(r.disabled,i.disabled),r.mapProbes=a(r.mapProbes,i.mapProbes),r.prunedNodes=a(r.prunedNodes,i.prunedNodes),r.graphVersionResets=a(r.graphVersionResets,i.graphVersionResets),r.initialSeeds=a(r.initialSeeds,i.initialSeeds),r.activationReplacementSeeds=a(r.activationReplacementSeeds,i.activationReplacementSeeds),r.secondarySeeds=a(r.secondarySeeds,i.secondarySeeds),r.hitDerivedSeeds=a(r.hitDerivedSeeds,i.hitDerivedSeeds),r.missBudgetDisables=a(r.missBudgetDisables,i.missBudgetDisables),r.oversizedHitApproachDisables=a(r.oversizedHitApproachDisables,i.oversizedHitApproachDisables),r.passiveProbeBudgetDisables=a(r.passiveProbeBudgetDisables,i.passiveProbeBudgetDisables),r.maxRetainedEntries=Math.max(r.maxRetainedEntries,i.maxRetainedEntries??0)}if(o.site==="prefix-revalidation")t.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")t.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")t.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)t.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let r=o.site==="prefix-revalidation"?"prefixRevalidation":o.site==="new-edge-proof"?"newEdgeProof":"topologyDeltaProof",s=t.cycle.lanes[o.host][r];s.searches=a(s.searches,o.searches),s.visits=a(s.visits,o.visits),s.maxVisits=Math.max(s.maxVisits,o.maxVisits??0),s.found=a(s.found,o.found)}}}catch{this.#c("add-work")}}beginStoreOperation(e){return this.beginInterval({type:"operation",...e.name===void 0?{}:{name:e.name},fields:{operation:e.operation,scope:this.reference(e.scope,"scope",e.scopeName)}})}finishStoreOperation(e,n){let t=this.#i("operation"),o=t===void 0||!Object.is(t.token,e)||t.commitId===void 0||!t.commitSourceApplied?"none":n==="returned"?"committed":t.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:n,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,n){let t=this.#i("operation");if(t!==void 0)t.commitSourceApplied||=n.sourceApplied,t.commitFailurePhase=n.failurePhase;this.finishInterval(e,{result:n.result,fields:{intents:n.intents,...n.changedSources===void 0?{}:{changedSources:n.changedSources},...n.ownershipChanged===void 0?{}:{ownershipChanged:n.ownershipChanged},sourceApplied:n.sourceApplied,notificationsCompleted:n.notificationsCompleted}})}recordStoreIntent(e){this.record({type:"intent",fields:{intent:e.intent,scope:this.reference(e.scope,"scope",e.scopeName),atom:this.reference(e.atom,"atom",e.atomName)}})}recordStoreEvent(...e){let n=e[0];if(n===0){let o=["set","update","reset","transaction"][e[1]];this.beginStoreOperation({operation:o,scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},...e[4]===void 0?{}:{name:e[4]}});return}if(n===1){let o=e[1]===0?"returned":"threw",i=this.#i("operation");if(i===void 0)return;let r=this.#i("commit");if(r!==void 0)this.#j(r),this.finishStoreCommit(r.token,{result:o,intents:i.operationIntents,...r.commitChangedSources===void 0?{}:{changedSources:r.commitChangedSources},...r.commitOwnershipChanged===void 0?{}:{ownershipChanged:r.commitOwnershipChanged},sourceApplied:r.commitSourceApplied,notificationsCompleted:o==="returned",...e[2]===void 0?{}:{failurePhase:e[2]===1?"notify":"propagate"}});this.finishStoreOperation(i.token,o);return}if(n===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(n===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let t=this.#i("operation");if(t!==void 0)t.operationIntents++;this.recordStoreIntent({intent:e[1]===0?"set":"reset",scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},atom:e[4],...e[5]===void 0?{}:{atomName:e[5]}})}hasActiveStoreOperation(){return this.#i("operation")!==void 0}beginDraftCommit(e,n){this.recordStoreEvent(2),e.forEachIntent((t,o)=>{let i=n.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,t,t.name,o.atom,typeof i==="string"?i:void 0)})}findDependencyPath(e,n,t,o,i,r,s,c,d,y,R,I){let S=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",w=this.beginInterval({type:"cycle-search",fields:{site:S,host:e,hostRef:n,start:this.#h(t),target:this.#h(o),graphVersion:i.getSelectorGraphVersion(),attributedSessionPublications:r.getSelectorGraphPublicationCount(i),evaluationGraphVersionDelta:i.getSelectorGraphVersion()-d,evaluationAttributedPublicationDelta:r.getSelectorGraphPublicationCount(i)-y,acceptedPrefixLength:c,parentWasCold:R}}),m=I?.beginSearch()??!1,l=[t],v=new Map([[t,q]]),x=0,p=0,b=1,C=0,T=0,P=0,g;while(l.length>0){let f=l.pop();if(x++,Object.is(f,o)){let u=[],k=f;while(k!==q)u.push(k),k=v.get(k);u.reverse(),g=Object.freeze(u);break}let h=r.getTransientDependencies(i,f);if(h){if(C++,h.length===0)continue;if(m){let u=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(u)continue}p+=h.length;for(let u of h){if(v.has(u.node))continue;v.set(u.node,f),l.push(u.node)}if(l.length>b)b=l.length;continue}if(i.getSelectorDependencyNodes!==void 0){let u=i.getSelectorDependencyNodes(f);if(u===void 0){P++;continue}if(T++,u.length===0)continue;if(m){let k=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(k)continue}p+=u.length;for(let k of u){if(v.has(k))continue;v.set(k,f),l.push(k)}if(l.length>b)b=l.length;continue}let D=i.getSelectorRecord(f);if(!D){P++;continue}if(T++,D.dependencies.length===0)continue;if(m){let u=I.hasProvenNoPathMeasured(f);if(!I.enabled)m=!1;if(u)continue}p+=D.dependencies.length;for(let u of D.dependencies){if(v.has(u.node))continue;v.set(u.node,f),l.push(u.node)}if(l.length>b)b=l.length}if(g===void 0)I?.completeNegative(v);else I?.completePositive();return this.addWork({cycle:{searches:1,visits:x,maxVisits:x,found:g===void 0?0:1,site:S,host:e}}),this.finishInterval(w,{result:"returned",fields:{visits:x,edges:p,maxFrontier:b,transientExpansions:C,recordExpansions:T,terminalPrunes:P,found:g!==void 0,...g===void 0?{}:{path:g.map((f)=>this.#h(f))}}}),g}span(e,n){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof n!=="function")throw TypeError("Inspection span callback must be a function");let t=this.beginInterval({type:"span",name:e}),o;try{o=n()}catch(r){throw this.finishInterval(t,{result:"threw"}),r}let i=me(o);if(i.kind==="inspection-error")throw this.finishInterval(t,{result:"threw"}),i.error;if(i.kind==="thenable"){try{Reflect.apply(i.then,i.target,[void 0,ae])}catch{}throw this.finishInterval(t,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(t,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((i,r)=>i.seqStart-r.seqStart),n=[...this.#e.snapshot()].sort((i,r)=>(i.seqStart??i.sequence??0)-(r.seqStart??r.sequence??0)),t=H(e),o=H(n);return Object.freeze({schema:"valdres.inspect",schemaVersion:3,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(n),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...t===void 0?{}:{summaries:t},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#D()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(n,t)=>e.capture(n,t),span:(n,t)=>e.span(n,t),export:()=>e.export(),reset:()=>e.reset()})}#D(){this.#d=`inspection-${ce++}`,this.#o=new N(this.#r),this.#e=new N(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#R=1,this.#E=1,this.#T=1,this.#P=1,this.#n=[],this.#m=new WeakMap,this.#f=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#y=this.#p()}#V(e){if(e==="span")return this.#g++;if(e==="operation")return this.#S++;if(e==="commit")return this.#v++;if(e==="selector-evaluation")return this.#k++;if(e==="cycle-search")return this.#R++;return this.#T++}#b(){let e={};for(let n of this.#n){let{id:t,type:o}=n.token;if(n.links.sessionId!==void 0)e.sessionId=n.links.sessionId;if(o==="span")e.spanId=t;else if(o==="operation")e.operationId=t;else if(o==="commit")e.commitId=t;else if(o==="selector-evaluation")e.evaluationId=t;else if(o==="cycle-search")e.searchId=t}return e}#i(e){for(let n=this.#n.length-1;n>=0;n--){let t=this.#n[n];if(t.token.type===e)return t}return}#h(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,n,t,o,i){let r={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:n,startUs:e.startUs,durationUs:t,...e.links};if(e.token.type==="span")return Object.freeze({...r,type:"span",spanId:e.token.id,...e.links.spanId===void 0?{}:{parentSpanId:e.links.spanId},name:e.name??"",result:i??"returned",totals:M(e.totals)});if(e.token.type==="operation")return Object.freeze({...r,type:"operation",operationId:e.token.id,...e.name===void 0?{}:{name:e.name},...e.commitId===void 0?{}:{commitId:e.commitId},result:i==="threw"||i==="async-rejected"?"threw":"returned",effect:o.effect??(e.commitId===void 0?"none":"committed"),totals:M(e.totals)});if(e.token.type==="commit")return Object.freeze({...r,type:"commit",commitId:e.token.id,operationId:e.links.operationId??0,intents:o.intents??0,changedSources:o.changedSources??0,ownershipChanged:o.ownershipChanged??!1,sourceApplied:o.sourceApplied??!0,notificationsCompleted:o.notificationsCompleted??!0,totals:M(e.totals)});let s=e.token.type==="selector-evaluation"?{evaluationId:e.token.id}:e.token.type==="cycle-search"?{searchId:e.token.id}:{id:e.token.id};return Object.freeze({...r,...s})}#N(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#O(){let e=(n)=>this.#x.read(n);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#j(e){let n=e.counterStart;if(n===void 0)return;e.counterStart=void 0;let t=this.#O();if(e.token.type==="commit")e.commitOwnershipChanged=t.sourceEpoch!==n.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=t.transientSelectorHostsCreated-n.transientSelectorHostsCreated,o.propagationSettled+=t.propagationSettled-n.propagationSettled,o.notificationTargets+=t.notificationTargets-n.notificationTargets,o.subscriberCallbacks+=t.subscriberCallbacks-n.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let n=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:n}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#M(e){return Math.max(0,Math.round((e-this.#y)*1000))}#I(){return this.#M(this.#p())}}var L=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),fe=(e)=>{let n=(i,r,s,c)=>{if(e.hasActiveStoreOperation())return c();e.recordStoreEvent(0,i,r,r.name,s);try{let d=c();return e.recordStoreEvent(1,0),d}catch(d){throw e.recordStoreEvent(1,1,d instanceof G?1:0),d}},t=(i,r,s)=>{if(i===0){let c=r,d=s;e.registerStore(c,d);let y=c,R=c.set,I=c.update,S=c.reset,w=c.txn;y.set=(m,l)=>n(0,d,void 0,()=>R(m,l)),y.update=(m,l)=>n(1,d,void 0,()=>I(m,l)),y.reset=(m)=>n(2,d,void 0,()=>S(m)),y.txn=(m,l)=>{if(typeof m!=="function"||l!==void 0&&typeof l!=="string")return w(m,l);return n(3,d,l,()=>w(m,l))};return}if(i===1){e.beginDraftCommit(r,s);return}if(i===2)e.recordStoreEvent(3,r)};return Object.assign(t,{evaluate:(i,r,s)=>{let c=r.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",d=r.name,y=e.reference(r,c==="committed"?"scope":"scratch-host",typeof d==="string"?d:void 0),R=r.getSelectorGraphVersion(),I=s.getSelectorGraphPublicationCount(r),S=r.getSelectorRecord(i.node)?.dependencies,w=S?.length??0,m=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:c,hostRef:y,selector:e.reference(i.node,"selector",typeof i.name==="string"?i.name:void 0),graphVersionStart:R,previousDependencyCount:w}});e.addWork({selectorEvaluations:1});let l=de((p)=>e.addWork({cycle:{newEdgeProofMemo:p}})),v=()=>{let p=l.finish();if(p===void 0)return;return Q(p)},x=(p,b,C,T,P,g,f)=>e.findDependencyPath(c,y,p,b,C,T,P,g,R,I,S===void 0,f);try{let p=U(i,r,s,x,l.sink),b=S===void 0||S.length!==p.dependencies.length||S.some((h,D)=>!Object.is(h.node,p.dependencies[D]?.node)),C=new Set(S?.map((h)=>h.node)),T=new Set(p.dependencies.map((h)=>h.node)),P=0,g=0;for(let h of T)if(!C.has(h))P++;for(let h of C)if(!T.has(h))g++;e.addWork(b?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1});let f=v();return e.finishInterval(m,{result:"returned",fields:{outcome:p.outcome.kind,dependencyCount:p.dependencies.length,proposedTopologyChanged:b,proposedEdgesAdded:P,proposedEdgesRemoved:g,graphVersionEnd:r.getSelectorGraphVersion(),newEdgeProofMemo:f}}),p}catch(p){let b=v();throw e.finishInterval(m,{result:"threw",fields:{outcome:"threw",graphVersionEnd:r.getSelectorGraphVersion(),newEdgeProofMemo:b}}),p}}}),Object.freeze(t)},ee=(e={})=>{let n=Y(),t=new Z(e,n);return Object.freeze({recorder:t,inspect:t.createInspector(),instrumentation:n,trace:fe(t)})};var Se=(e={})=>{let{inspect:n,instrumentation:t,trace:o}=ee(e),i=ne(t,o);return Object.freeze({store:i,inspect:n})};export{Se as createInspectableStore};
1
+ import{b as Q,c as Z,e as ee,q as ne,s as ae}from"./chunk-fbqtxaaa.js";var ce=2048,de=1e5,q=256,H=1024,W=1e4,le=32,pe=20000,A=new Set(["span","operation","commit"]),ue=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),te=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),me=()=>{},J=Symbol("inspection dependency path root"),_=(e)=>e==="proven-terminal"?"terminal":e==="proven-reverse"?"proven":e==="ineligible-active-frames"?"active-frames":e,fe=1;class O{#o;#e=[];#r=0;constructor(e){this.#o=e}add(e){if(this.#o===0)return!0;if(this.#e.length<this.#o)return this.#e.push(e),!1;return this.#e[this.#r]=e,this.#r=(this.#r+1)%this.#o,!0}snapshot(){if(this.#e.length<this.#o||this.#r===0)return Object.freeze([...this.#e]);return Object.freeze([...this.#e.slice(this.#r),...this.#e.slice(0,this.#r)])}}var L=(e)=>{if(e.length===0)return;let n=Number.POSITIVE_INFINITY,t=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;n=Math.min(n,o.seqStart??r??0),t=Math.max(t,o.seqEnd??r??0)}return Object.freeze({firstSequence:n,lastSequence:t})},U=(e,n,t,o)=>{let r=e??n;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${t} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},G=(e)=>e.length<=q?e:e.slice(0,q),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),oe=()=>({admissionSkipped:0,observing:0,consultedNoPrune:0,consultedPruned:0,disabled:0,mapProbes:0,prunedNodes:0,graphVersionResets:0,initialSeeds:0,activationReplacementSeeds:0,secondarySeeds:0,hitDerivedSeeds:0,missBudgetDisables:0,oversizedHitApproachDisables:0,passiveProbeBudgetDisables:0,maxRetainedEntries:0}),re=(e)=>Object.freeze({admissionSkipped:e.admissionSkipped,observing:e.observing,consultedNoPrune:e.consultedNoPrune,consultedPruned:e.consultedPruned,disabled:e.disabled,mapProbes:e.mapProbes,prunedNodes:e.prunedNodes,resets:Object.freeze({graphVersion:e.graphVersionResets}),seeds:Object.freeze({initial:e.initialSeeds,activationReplacement:e.activationReplacementSeeds,secondary:e.secondarySeeds,hitDerived:e.hitDerivedSeeds}),disables:Object.freeze({missBudget:e.missBudgetDisables,oversizedHitApproach:e.oversizedHitApproachDisables,passiveProbeBudget:e.passiveProbeBudgetDisables}),retained:Object.freeze({maxEntries:e.maxRetainedEntries})}),be=(e)=>{let n=oe(),t=!1;return Object.freeze({sink:Object.freeze({admissionSkipped(){t=!0,n.admissionSkipped++,e({admissionSkipped:1})},disabled(){t=!0,n.disabled++,e({disabled:1})},graphVersionReset(){t=!0,n.graphVersionResets++,e({graphVersionResets:1})},recordMapProbes(r){if(r===0)return;t=!0,n.mapProbes+=r,e({mapProbes:r})},completeSearch(r,i,s,a=0,d=0,b=0){if(t=!0,r==="observing")n.observing++;else if(r==="consulted-no-prune")n.consultedNoPrune++;else n.consultedPruned++;if(n.mapProbes+=a,n.prunedNodes+=d,n.maxRetainedEntries=Math.max(n.maxRetainedEntries,b),i==="initial")n.initialSeeds++;else if(i==="activation-replacement")n.activationReplacementSeeds++;else if(i==="secondary")n.secondarySeeds++;else if(i==="hit-derived")n.hitDerivedSeeds++;if(s==="miss-budget")n.missBudgetDisables++;else if(s==="over-cap-hit")n.oversizedHitApproachDisables++;else if(s==="passive-probe-budget")n.passiveProbeBudgetDisables++;e({...r==="observing"?{observing:1}:r==="consulted-no-prune"?{consultedNoPrune:1}:{consultedPruned:1},mapProbes:a,prunedNodes:d,maxRetainedEntries:b,...i==="initial"?{initialSeeds:1}:i==="activation-replacement"?{activationReplacementSeeds:1}:i==="secondary"?{secondarySeeds:1}:i==="hit-derived"?{hitDerivedSeeds:1}:{},...s==="miss-budget"?{missBudgetDisables:1}:s==="over-cap-hit"?{oversizedHitApproachDisables:1}:s==="passive-probe-budget"?{passiveProbeBudgetDisables:1}:{}})}}),finish:()=>t?n:void 0})},ye=()=>({selectorEvaluations:0,proposedTopologyChanges:0,proposedTopologyIdentical:0,transientSelectorHostsCreated:0,propagationSettled:0,notificationTargets:0,subscriberCallbacks:0,cycle:{searches:0,visits:0,maxVisits:0,found:0,prefixRevalidation:0,newEdgeProof:0,topologyDeltaProof:0,committed:0,scratch:0,hydration:0,newEdgeProofMemo:oe(),reverseProof:{terminal:0,proven:0,pathPossible:0,budgetExhausted:0,disabled:0,activeFrames:0,unsupported:0,nodeVisits:0,dependentProbes:0,liveDependents:0,maxWork:0,maxFrontier:0},lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E(),topologyDeltaProof:E()}}}}),B=(e)=>Object.freeze({selectorEvaluations:e.selectorEvaluations,proposedTopologyChanges:e.proposedTopologyChanges,proposedTopologyIdentical:e.proposedTopologyIdentical,transientSelectorHostsCreated:e.transientSelectorHostsCreated,propagationSettled:e.propagationSettled,notificationTargets:e.notificationTargets,subscriberCallbacks:e.subscriberCallbacks,cycle:Object.freeze({searches:e.cycle.searches,visits:e.cycle.visits,maxVisits:e.cycle.maxVisits,found:e.cycle.found,bySite:Object.freeze({prefixRevalidation:e.cycle.prefixRevalidation,newEdgeProof:e.cycle.newEdgeProof,topologyDeltaProof:e.cycle.topologyDeltaProof}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),newEdgeProofMemo:re(e.cycle.newEdgeProofMemo),reverseProof:Object.freeze({...e.cycle.reverseProof}),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.committed.topologyDeltaProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.scratch.topologyDeltaProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof}),topologyDeltaProof:Object.freeze({...e.cycle.lanes.hydration.topologyDeltaProof})})})})}),z=(e,n,t,o)=>{if(n.remaining--<=0||o>le)return null;if(e===null)return null;if(typeof e==="string")return e.length<=H?e:e.slice(0,H);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(t.has(e))return null;t.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,W);for(let d=0;d<a;d++)s.push(z(e[d],n,t,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,W);for(let s of i){if(te.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=z(a,n,t,o+1)}return Object.freeze(r)}finally{t.delete(e)}},F=(e)=>{if(e===void 0)return he;let n={},t={remaining:pe};for(let o of Object.keys(e).slice(0,W)){if(ue.has(o)||te.has(o))continue;let r=e[o];if(r===void 0)continue;n[o]=z(r,t,new Set,0)}return Object.freeze(n)},he=Object.freeze({}),Ie=(e,n)=>{if(n===void 0)return e;return Object.freeze({...e,...F(n)})},c=(e,n)=>n===void 0||!Number.isFinite(n)||n<=0?e:e+n,ge=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Y;try{let n=e.then;return typeof n==="function"?{kind:"thenable",target:e,then:n}:Y}catch(n){return{kind:"inspection-error",error:n}}},Y=Object.freeze({kind:"not-thenable"});class se{#o;#e;#r;#u;#d="";#i=1;#g=1;#S=1;#v=1;#P=1;#R=1;#E=1;#k=1;#T=1;#n=[];#m=new WeakMap;#x=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#b;#C;constructor(e,n){this.#C=n,this.#r=U(e.capacity?.summaries,ce,"Inspection summary",!1),this.#u=U(e.capacity?.details,de,"Inspection detail",!0),this.#o=new O(this.#r),this.#e=new O(this.#u),this.#b=this.#p(),this.#D()}get recordingId(){return this.#d}registerStore(e,n){this.#w.set(e,n)}capture(e,n){let t=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=t===void 0?void 0:this.#w.get(t);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(n!==void 0){let s=typeof n==="object"&&n!==null||typeof n==="function"?n:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let d=a.atoms.get(s),b=a.selectors.get(s);if(d===void 0&&b===void 0)throw TypeError("Inspection capture requires a valid State");let R=d?.name??b?.name;r=this.reference(s,d===void 0?"selector":"atom",typeof R==="string"?R:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#M(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#y()})}reference(e,n,t){if(this.#t!==void 0)return K;try{let o=this.#m.get(e);if(o===void 0)o=this.#T++,this.#m.set(e,o);let r=this.#x.get(e);if(r===void 0&&t!==void 0)r=G(t),this.#x.set(e,r);return Object.freeze({id:o,kind:n,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),K}}sessionId(e){let n=this.#f.get(e);if(n!==void 0)return n;let t=this.#E++;return this.#f.set(e,t),t}beginInterval(e){if(this.#t!==void 0)return X;try{let n=this.#V(e.type),t=Object.freeze({id:n,type:e.type}),o=Object.freeze({...this.#y(),...e.links}),r={token:t,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:G(e.name),seqStart:this.#i++,startUs:this.#I(),fields:F(e.fields),totals:A.has(e.type)?ye():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:A.has(e.type)?this.#O():void 0};if(e.type==="commit"){let i=this.#s("operation");if(i!==void 0)i.commitId=n}return this.#n.push(r),t}catch{return this.#c("begin-interval"),X}}finishInterval(e,n={}){if(e.id===0||this.#t!==void 0)return;try{let t=this.#n.pop();if(t===void 0||!Object.is(t.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#j(t);let o=this.#i++,r=Math.max(0,this.#I()-t.startUs),i=Ie(t.fields,n.fields),s=this.#z(t,o,r,i,n.result);if(A.has(t.token.type)){if(this.#o.add(s))this.#l++}else if(this.#e.add(s))this.#a++}catch{this.#c("finish-interval")}}record(e){if(this.#t!==void 0)return;try{let n=this.#i++,t=Object.freeze({...F(e.fields),type:e.type,sequence:n,timeUs:this.#I(),...this.#y(),...e.links});if(this.#e.add(t))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let n of this.#n){let t=n.totals;if(t===void 0)continue;t.selectorEvaluations=c(t.selectorEvaluations,e.selectorEvaluations),t.proposedTopologyChanges=c(t.proposedTopologyChanges,e.proposedTopologyChanges),t.proposedTopologyIdentical=c(t.proposedTopologyIdentical,e.proposedTopologyIdentical),t.transientSelectorHostsCreated=c(t.transientSelectorHostsCreated,e.transientSelectorHostsCreated),t.propagationSettled=c(t.propagationSettled,e.propagationSettled),t.notificationTargets=c(t.notificationTargets,e.notificationTargets),t.subscriberCallbacks=c(t.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;t.cycle.searches=c(t.cycle.searches,o.searches),t.cycle.visits=c(t.cycle.visits,o.visits),t.cycle.maxVisits=Math.max(t.cycle.maxVisits,o.maxVisits??0),t.cycle.found=c(t.cycle.found,o.found);let r=o.newEdgeProofMemo;if(r!==void 0){let s=t.cycle.newEdgeProofMemo;s.admissionSkipped=c(s.admissionSkipped,r.admissionSkipped),s.observing=c(s.observing,r.observing),s.consultedNoPrune=c(s.consultedNoPrune,r.consultedNoPrune),s.consultedPruned=c(s.consultedPruned,r.consultedPruned),s.disabled=c(s.disabled,r.disabled),s.mapProbes=c(s.mapProbes,r.mapProbes),s.prunedNodes=c(s.prunedNodes,r.prunedNodes),s.graphVersionResets=c(s.graphVersionResets,r.graphVersionResets),s.initialSeeds=c(s.initialSeeds,r.initialSeeds),s.activationReplacementSeeds=c(s.activationReplacementSeeds,r.activationReplacementSeeds),s.secondarySeeds=c(s.secondarySeeds,r.secondarySeeds),s.hitDerivedSeeds=c(s.hitDerivedSeeds,r.hitDerivedSeeds),s.missBudgetDisables=c(s.missBudgetDisables,r.missBudgetDisables),s.oversizedHitApproachDisables=c(s.oversizedHitApproachDisables,r.oversizedHitApproachDisables),s.passiveProbeBudgetDisables=c(s.passiveProbeBudgetDisables,r.passiveProbeBudgetDisables),s.maxRetainedEntries=Math.max(s.maxRetainedEntries,r.maxRetainedEntries??0)}let i=o.reverseProof;if(i!==void 0){let s=t.cycle.reverseProof;if(i.outcome==="terminal")s.terminal++;else if(i.outcome==="proven")s.proven++;else if(i.outcome==="path-possible")s.pathPossible++;else if(i.outcome==="budget-exhausted")s.budgetExhausted++;else if(i.outcome==="disabled")s.disabled++;else if(i.outcome==="active-frames")s.activeFrames++;else s.unsupported++;s.nodeVisits=c(s.nodeVisits,i.nodeVisits),s.dependentProbes=c(s.dependentProbes,i.dependentProbes),s.liveDependents=c(s.liveDependents,i.liveDependents),s.maxWork=Math.max(s.maxWork,i.nodeVisits+i.dependentProbes),s.maxFrontier=Math.max(s.maxFrontier,i.maxFrontier)}if(o.site==="prefix-revalidation")t.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")t.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")t.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)t.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let s=o.site==="prefix-revalidation"?"prefixRevalidation":o.site==="new-edge-proof"?"newEdgeProof":"topologyDeltaProof",a=t.cycle.lanes[o.host][s];a.searches=c(a.searches,o.searches),a.visits=c(a.visits,o.visits),a.maxVisits=Math.max(a.maxVisits,o.maxVisits??0),a.found=c(a.found,o.found)}}}catch{this.#c("add-work")}}beginStoreOperation(e){return this.beginInterval({type:"operation",...e.name===void 0?{}:{name:e.name},fields:{operation:e.operation,scope:this.reference(e.scope,"scope",e.scopeName)}})}finishStoreOperation(e,n){let t=this.#s("operation"),o=t===void 0||!Object.is(t.token,e)||t.commitId===void 0||!t.commitSourceApplied?"none":n==="returned"?"committed":t.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:n,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,n){let t=this.#s("operation");if(t!==void 0)t.commitSourceApplied||=n.sourceApplied,t.commitFailurePhase=n.failurePhase;this.finishInterval(e,{result:n.result,fields:{intents:n.intents,...n.changedSources===void 0?{}:{changedSources:n.changedSources},...n.ownershipChanged===void 0?{}:{ownershipChanged:n.ownershipChanged},sourceApplied:n.sourceApplied,notificationsCompleted:n.notificationsCompleted}})}recordStoreIntent(e){this.record({type:"intent",fields:{intent:e.intent,scope:this.reference(e.scope,"scope",e.scopeName),atom:this.reference(e.atom,"atom",e.atomName)}})}recordStoreEvent(...e){let n=e[0];if(n===0){let o=["set","update","reset","transaction"][e[1]];this.beginStoreOperation({operation:o,scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},...e[4]===void 0?{}:{name:e[4]}});return}if(n===1){let o=e[1]===0?"returned":"threw",r=this.#s("operation");if(r===void 0)return;let i=this.#s("commit");if(i!==void 0)this.#j(i),this.finishStoreCommit(i.token,{result:o,intents:r.operationIntents,...i.commitChangedSources===void 0?{}:{changedSources:i.commitChangedSources},...i.commitOwnershipChanged===void 0?{}:{ownershipChanged:i.commitOwnershipChanged},sourceApplied:i.commitSourceApplied,notificationsCompleted:o==="returned",...e[2]===void 0?{}:{failurePhase:e[2]===1?"notify":"propagate"}});this.finishStoreOperation(r.token,o);return}if(n===2){let o=this.#s("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(n===3){let o=this.#s("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let t=this.#s("operation");if(t!==void 0)t.operationIntents++;this.recordStoreIntent({intent:e[1]===0?"set":"reset",scope:e[2],...e[3]===void 0?{}:{scopeName:e[3]},atom:e[4],...e[5]===void 0?{}:{atomName:e[5]}})}hasActiveStoreOperation(){return this.#s("operation")!==void 0}beginDraftCommit(e,n){this.recordStoreEvent(2),e.forEachIntent((t,o)=>{let r=n.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,t,t.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,n,t,o,r,i,s,a,d,b,R,k){let S=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",D=this.beginInterval({type:"cycle-search",fields:{site:S,host:e,hostRef:n,start:this.#h(t),target:this.#h(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-d,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-b,acceptedPrefixLength:a,parentWasCold:R}}),m={nodeVisits:0,dependentProbes:0,liveDependents:0,maxFrontier:0},l=s===1?Q(t,o,r,i,m,k?.reverseProofEnabled??!0):void 0;if(l==="budget-exhausted"&&k!==void 0)k.reverseProofEnabled=!1;let j=l==="proven-terminal"||l==="proven-reverse",N=0,p=0,y=0,C=0,T=0,x=0,g;if(!j){let h=k?.(),f=h?.beginSearch()??!1,I=[t],w=new Map([[t,J]]);y=1;while(I.length>0){let v=I.pop();if(N++,Object.is(v,o)){let u=[],P=v;while(P!==J)u.push(P),P=w.get(P);u.reverse(),g=Object.freeze(u);break}let M=i.getTransientDependencies(r,v);if(M){if(C++,M.length===0)continue;if(f){let u=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(u)continue}p+=M.length;for(let u of M){if(w.has(u.node))continue;w.set(u.node,v),I.push(u.node)}if(I.length>y)y=I.length;continue}if(r.getSelectorDependencyNodes!==void 0){let u=r.getSelectorDependencyNodes(v);if(u===void 0){x++;continue}if(T++,u.length===0)continue;if(f){let P=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(P)continue}p+=u.length;for(let P of u){if(w.has(P))continue;w.set(P,v),I.push(P)}if(I.length>y)y=I.length;continue}let V=r.getSelectorRecord(v);if(!V){x++;continue}if(T++,V.dependencies.length===0)continue;if(f){let u=h.hasProvenNoPathMeasured(v);if(!h.enabled)f=!1;if(u)continue}p+=V.dependencies.length;for(let u of V.dependencies){if(w.has(u.node))continue;w.set(u.node,v),I.push(u.node)}if(I.length>y)y=I.length}if(g===void 0)h?.completeNegative(w);else h?.completePositive()}return this.addWork({cycle:{searches:1,visits:N,maxVisits:N,found:g===void 0?0:1,site:S,host:e,...l===void 0?{}:{reverseProof:{outcome:_(l),...m}}}}),this.finishInterval(D,{result:"returned",fields:{visits:N,edges:p,maxFrontier:y,transientExpansions:C,recordExpansions:T,terminalPrunes:x,...l===void 0?{}:{reverseProof:{outcome:_(l),...m}},found:g!==void 0,...g===void 0?{}:{path:g.map((h)=>this.#h(h))}}}),g}span(e,n){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof n!=="function")throw TypeError("Inspection span callback must be a function");let t=this.beginInterval({type:"span",name:e}),o;try{o=n()}catch(i){throw this.finishInterval(t,{result:"threw"}),i}let r=ge(o);if(r.kind==="inspection-error")throw this.finishInterval(t,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,me])}catch{}throw this.finishInterval(t,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(t,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),n=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),t=L(e),o=L(n);return Object.freeze({schema:"valdres.inspect",schemaVersion:4,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(n),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...t===void 0?{}:{summaries:t},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#D()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(n,t)=>e.capture(n,t),span:(n,t)=>e.span(n,t),export:()=>e.export(),reset:()=>e.reset()})}#D(){this.#d=`inspection-${fe++}`,this.#o=new O(this.#r),this.#e=new O(this.#u),this.#i=1,this.#g=1,this.#S=1,this.#v=1,this.#P=1,this.#R=1,this.#E=1,this.#k=1,this.#T=1,this.#n=[],this.#m=new WeakMap,this.#f=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#b=this.#p()}#V(e){if(e==="span")return this.#g++;if(e==="operation")return this.#S++;if(e==="commit")return this.#v++;if(e==="selector-evaluation")return this.#P++;if(e==="cycle-search")return this.#R++;return this.#k++}#y(){let e={};for(let n of this.#n){let{id:t,type:o}=n.token;if(n.links.sessionId!==void 0)e.sessionId=n.links.sessionId;if(o==="span")e.spanId=t;else if(o==="operation")e.operationId=t;else if(o==="commit")e.commitId=t;else if(o==="selector-evaluation")e.evaluationId=t;else if(o==="cycle-search")e.searchId=t}return e}#s(e){for(let n=this.#n.length-1;n>=0;n--){let t=this.#n[n];if(t.token.type===e)return t}return}#h(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):z(e,{remaining:1},new Set,0)}#z(e,n,t,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:n,startUs:e.startUs,durationUs:t,...e.links};if(e.token.type==="span")return Object.freeze({...i,type:"span",spanId:e.token.id,...e.links.spanId===void 0?{}:{parentSpanId:e.links.spanId},name:e.name??"",result:r??"returned",totals:B(e.totals)});if(e.token.type==="operation")return Object.freeze({...i,type:"operation",operationId:e.token.id,...e.name===void 0?{}:{name:e.name},...e.commitId===void 0?{}:{commitId:e.commitId},result:r==="threw"||r==="async-rejected"?"threw":"returned",effect:o.effect??(e.commitId===void 0?"none":"committed"),totals:B(e.totals)});if(e.token.type==="commit")return Object.freeze({...i,type:"commit",commitId:e.token.id,operationId:e.links.operationId??0,intents:o.intents??0,changedSources:o.changedSources??0,ownershipChanged:o.ownershipChanged??!1,sourceApplied:o.sourceApplied??!0,notificationsCompleted:o.notificationsCompleted??!0,totals:B(e.totals)});let s=e.token.type==="selector-evaluation"?{evaluationId:e.token.id}:e.token.type==="cycle-search"?{searchId:e.token.id}:{id:e.token.id};return Object.freeze({...i,...s})}#N(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#O(){let e=(n)=>this.#C.read(n);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#j(e){let n=e.counterStart;if(n===void 0)return;e.counterStart=void 0;let t=this.#O();if(e.token.type==="commit")e.commitOwnershipChanged=t.sourceEpoch!==n.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=t.transientSelectorHostsCreated-n.transientSelectorHostsCreated,o.propagationSettled+=t.propagationSettled-n.propagationSettled,o.notificationTargets+=t.notificationTargets-n.notificationTargets,o.subscriberCallbacks+=t.subscriberCallbacks-n.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let n=this.#i++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:n}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#M(e){return Math.max(0,Math.round((e-this.#b)*1000))}#I(){return this.#M(this.#p())}}var K=Object.freeze({id:0,kind:"store"}),X=Object.freeze({id:0,type:"operation"}),Se=(e)=>{let n=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let d=a();return e.recordStoreEvent(1,0),d}catch(d){throw e.recordStoreEvent(1,1,d instanceof ee?1:0),d}},t=(r,i,s)=>{if(r===0){let a=i,d=s;e.registerStore(a,d);let b=a,R=a.set,k=a.update,S=a.reset,D=a.txn;b.set=(m,l)=>n(0,d,void 0,()=>R(m,l)),b.update=(m,l)=>n(1,d,void 0,()=>k(m,l)),b.reset=(m)=>n(2,d,void 0,()=>S(m)),b.txn=(m,l)=>{if(typeof m!=="function"||l!==void 0&&typeof l!=="string")return D(m,l);return n(3,d,l,()=>D(m,l))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(t,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",d=i.name,b=e.reference(i,a==="committed"?"scope":"scratch-host",typeof d==="string"?d:void 0),R=i.getSelectorGraphVersion(),k=s.getSelectorGraphPublicationCount(i),S=i.getSelectorRecord(r.node)?.dependencies,D=S?.length??0,m=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:b,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:R,previousDependencyCount:D}});e.addWork({selectorEvaluations:1});let l=be((p)=>e.addWork({cycle:{newEdgeProofMemo:p}})),j=()=>{let p=l.finish();if(p===void 0)return;return re(p)},N=(p,y,C,T,x,g,h)=>e.findDependencyPath(a,b,p,y,C,T,x,g,R,k,S===void 0,h);try{let p=Z(r,i,s,N,l.sink),y=S===void 0||S.length!==p.dependencies.length||S.some((f,I)=>!Object.is(f.node,p.dependencies[I]?.node)),C=new Set(S?.map((f)=>f.node)),T=new Set(p.dependencies.map((f)=>f.node)),x=0,g=0;for(let f of T)if(!C.has(f))x++;for(let f of C)if(!T.has(f))g++;e.addWork(y?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1});let h=j();return e.finishInterval(m,{result:"returned",fields:{outcome:p.outcome.kind,dependencyCount:p.dependencies.length,proposedTopologyChanged:y,proposedEdgesAdded:x,proposedEdgesRemoved:g,graphVersionEnd:i.getSelectorGraphVersion(),newEdgeProofMemo:h}}),p}catch(p){let y=j();throw e.finishInterval(m,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion(),newEdgeProofMemo:y}}),p}}}),Object.freeze(t)},ie=(e={})=>{let n=ne(),t=new se(e,n);return Object.freeze({recorder:t,inspect:t.createInspector(),instrumentation:n,trace:Se(t)})};var Te=(e={})=>{let{inspect:n,instrumentation:t,trace:o}=ie(e),r=ae(t,o);return Object.freeze({store:r,inspect:n})};export{Te as createInspectableStore};
@@ -1,5 +1,5 @@
1
1
  import type { Store } from "./v1.js";
2
- import type { CommitInspection, CycleSearchInspectionDetail, InspectableStoreOptions, InspectionCycleBucket, InspectionCycleTotals, InspectionCapture, InspectionDetail, InspectionDetailType, InspectionExport, InspectionJsonObject, InspectionJsonPrimitive, InspectionJsonValue, InspectionNewEdgeProofMemoTotals, InspectionOverflow, InspectionRecorderFault, InspectionReference, InspectionReferenceKind, InspectionSummary, InspectionWorkTotals, OperationInspection, IntentInspectionDetail, SelectorEvaluationInspectionDetail, SpanInspection, StateInspectionCapture, StoreInspector } from "./v1-internal/inspection.js";
2
+ import type { CommitInspection, CycleSearchInspectionDetail, InspectableStoreOptions, InspectionCycleBucket, InspectionCycleTotals, InspectionCapture, InspectionDetail, InspectionDetailType, InspectionExport, InspectionJsonObject, InspectionJsonPrimitive, InspectionJsonValue, InspectionNewEdgeProofMemoTotals, InspectionOverflow, InspectionRecorderFault, InspectionReference, InspectionReferenceKind, InspectionReverseProofOutcome, InspectionReverseProofTotals, InspectionSummary, InspectionWorkTotals, OperationInspection, IntentInspectionDetail, SelectorEvaluationInspectionDetail, SpanInspection, StateInspectionCapture, StoreInspector } from "./v1-internal/inspection.js";
3
3
  export interface InspectableStoreResult {
4
4
  readonly store: Store;
5
5
  readonly inspect: StoreInspector;
@@ -9,4 +9,4 @@ export interface InspectableStoreResult {
9
9
  * State values, callbacks, and Store internals never enter the recording.
10
10
  */
11
11
  export declare const createInspectableStore: (options?: InspectableStoreOptions) => InspectableStoreResult;
12
- export type { CommitInspection, CycleSearchInspectionDetail, InspectableStoreOptions, InspectionCycleBucket, InspectionCycleTotals, InspectionCapture, InspectionDetail, InspectionDetailType, InspectionExport, InspectionJsonObject, InspectionJsonPrimitive, InspectionJsonValue, InspectionNewEdgeProofMemoTotals, InspectionOverflow, InspectionRecorderFault, InspectionReference, InspectionReferenceKind, InspectionSummary, InspectionWorkTotals, OperationInspection, IntentInspectionDetail, SelectorEvaluationInspectionDetail, SpanInspection, StateInspectionCapture, StoreInspector, };
12
+ export type { CommitInspection, CycleSearchInspectionDetail, InspectableStoreOptions, InspectionCycleBucket, InspectionCycleTotals, InspectionCapture, InspectionDetail, InspectionDetailType, InspectionExport, InspectionJsonObject, InspectionJsonPrimitive, InspectionJsonValue, InspectionNewEdgeProofMemoTotals, InspectionOverflow, InspectionRecorderFault, InspectionReference, InspectionReferenceKind, InspectionReverseProofOutcome, InspectionReverseProofTotals, InspectionSummary, InspectionWorkTotals, OperationInspection, IntentInspectionDetail, SelectorEvaluationInspectionDetail, SpanInspection, StateInspectionCapture, StoreInspector, };
@@ -1,4 +1,4 @@
1
- import type { SelectorComparisonBaseline, SelectorDefinition, SelectorDependencySnapshot, SelectorEvaluationHost, SelectorEvaluationProposal, SelectorGraphObservation, SelectorRecordView, ServedSelectorOutcome } from "../selector-evaluator/types.js";
1
+ import type { SelectorComparisonBaseline, SelectorDefinition, SelectorDependencySnapshot, SelectorEvaluationHost, SelectorEvaluationProposal, SelectorGraphObservation, SelectorGraphTraversalBudget, SelectorRecordView, ServedSelectorOutcome } from "../selector-evaluator/types.js";
2
2
  import { SelectorEvaluationSession } from "../selector-evaluator/types.js";
3
3
  import { type AnyAtom, type AnyState, type RuntimeDomainRecords } from "./runtime-domain.js";
4
4
  import type { DraftAtomOutcome } from "./tree-transaction.js";
@@ -40,6 +40,11 @@ export declare class WeakHandleSet<Value extends object> {
40
40
  add(value: Value): void;
41
41
  delete(value: Value): void;
42
42
  forEach(visitor: (value: Value) => void): void;
43
+ /**
44
+ * Visit live handles while charging every underlying weak-reference probe.
45
+ * Returns true only when the set was exhausted.
46
+ */
47
+ visitWithin(budget: SelectorGraphTraversalBudget, visitor: (value: Value) => boolean): boolean;
43
48
  isEmpty(): boolean;
44
49
  clear(): void;
45
50
  }
@@ -85,6 +90,7 @@ export declare class StoreScopeNode implements SelectorEvaluationHost<AnyState,
85
90
  serveKnownLocal(node: AnyState, session: SelectorEvaluationSession<AnyState>): ServedSelectorOutcome<OutcomeToken>;
86
91
  getSelectorRecord(node: AnyState): SelectorRecordView<AnyState, OutcomeToken> | undefined;
87
92
  getSelectorDependencyNodes(node: AnyState): readonly AnySelector[] | undefined;
93
+ visitSelectorDependents(node: AnyState, budget: SelectorGraphTraversalBudget, visitor: (dependent: AnyState) => boolean): boolean;
88
94
  getSelectorGraphVersion(): number;
89
95
  beginSelectorGraphObservation(newlyAcceptedDependency: AnyState): SelectorGraphObservation<AnyState> | undefined;
90
96
  getComparisonBaseline(node: AnyState): SelectorComparisonBaseline<OutcomeToken> | undefined;
@@ -1,6 +1,6 @@
1
1
  import { type InternalStoreTreeInstrumentation, type InternalStoreTreeTrace } from "./committed-store-tree/committed-store-tree.js";
2
2
  import type { CommittedStoreTree, State } from "./committed-store-tree/types.js";
3
- import type { SelectorCycleSearchSite, SelectorEvaluationHost, SelectorEvaluationSession, SelectorNewEdgeProofMemo } from "./selector-evaluator/types.js";
3
+ import type { SelectorCycleSearchSite, SelectorEvaluationHost, SelectorEvaluationSession, SelectorNewEdgeProofMemoProvider } from "./selector-evaluator/types.js";
4
4
  type StoreRecorderEvent = readonly [
5
5
  event: 0,
6
6
  operation: 0 | 1 | 2 | 3,
@@ -40,6 +40,7 @@ export type InspectionNewEdgeProofMemoTotals = Readonly<{
40
40
  readonly consultedNoPrune: number;
41
41
  readonly consultedPruned: number;
42
42
  readonly disabled: number;
43
+ /** Retained-map membership checks in DFS and exact-delta validation. */
43
44
  readonly mapProbes: number;
44
45
  readonly prunedNodes: number;
45
46
  readonly resets: Readonly<{
@@ -60,6 +61,24 @@ export type InspectionNewEdgeProofMemoTotals = Readonly<{
60
61
  maxEntries: number;
61
62
  }>;
62
63
  }> & InspectionJsonObject;
64
+ export type InspectionReverseProofOutcome = "terminal" | "proven" | "path-possible" | "budget-exhausted" | "disabled" | "active-frames" | "unsupported";
65
+ /** Bounded reverse-first work and outcomes for logical site-1 proofs. */
66
+ export type InspectionReverseProofTotals = Readonly<{
67
+ /** These seven outcomes partition all new-edge proofs. */
68
+ readonly terminal: number;
69
+ readonly proven: number;
70
+ readonly pathPossible: number;
71
+ readonly budgetExhausted: number;
72
+ readonly disabled: number;
73
+ readonly activeFrames: number;
74
+ readonly unsupported: number;
75
+ /** Reverse-only structural work; ordinary `cycle.visits` stays forward-only. */
76
+ readonly nodeVisits: number;
77
+ readonly dependentProbes: number;
78
+ readonly liveDependents: number;
79
+ readonly maxWork: number;
80
+ readonly maxFrontier: number;
81
+ }> & InspectionJsonObject;
63
82
  export interface InspectionCycleTotals {
64
83
  readonly searches: number;
65
84
  readonly visits: number;
@@ -77,6 +96,8 @@ export interface InspectionCycleTotals {
77
96
  }>;
78
97
  /** Aggregate site-1 proof-sharing decisions; no per-node events. */
79
98
  readonly newEdgeProofMemo: InspectionNewEdgeProofMemoTotals;
99
+ /** Aggregate bounded reverse-first decisions; no per-node events. */
100
+ readonly reverseProof: InspectionReverseProofTotals;
80
101
  readonly byLane: Readonly<{
81
102
  committed: Readonly<{
82
103
  prefixRevalidation: InspectionCycleBucket;
@@ -205,6 +226,13 @@ export interface CycleSearchInspectionDetail extends InspectionDetailLinks {
205
226
  readonly transientExpansions: number;
206
227
  readonly recordExpansions: number;
207
228
  readonly terminalPrunes: number;
229
+ readonly reverseProof?: Readonly<{
230
+ outcome: InspectionReverseProofOutcome;
231
+ nodeVisits: number;
232
+ dependentProbes: number;
233
+ liveDependents: number;
234
+ maxFrontier: number;
235
+ }>;
208
236
  readonly found: boolean;
209
237
  readonly path?: readonly InspectionJsonValue[];
210
238
  }
@@ -231,7 +259,7 @@ export interface InspectionRecorderFault {
231
259
  }
232
260
  export interface InspectionExport {
233
261
  readonly schema: "valdres.inspect";
234
- readonly schemaVersion: 3;
262
+ readonly schemaVersion: 4;
235
263
  readonly recordingId: string;
236
264
  readonly summaries: readonly InspectionSummary[];
237
265
  readonly details: readonly InspectionDetail[];
@@ -319,6 +347,13 @@ type NewEdgeProofMemoWorkDelta = Readonly<{
319
347
  passiveProbeBudgetDisables?: number;
320
348
  maxRetainedEntries?: number;
321
349
  }>;
350
+ type ReverseProofWorkDelta = Readonly<{
351
+ outcome: InspectionReverseProofOutcome;
352
+ nodeVisits: number;
353
+ dependentProbes: number;
354
+ liveDependents: number;
355
+ maxFrontier: number;
356
+ }>;
322
357
  export interface InspectionWorkDelta {
323
358
  readonly selectorEvaluations?: number;
324
359
  readonly proposedTopologyChanges?: number;
@@ -335,12 +370,13 @@ export interface InspectionWorkDelta {
335
370
  site?: "prefix-revalidation" | "new-edge-proof" | "topology-delta-proof";
336
371
  host?: "committed" | "scratch" | "hydration";
337
372
  newEdgeProofMemo?: NewEdgeProofMemoWorkDelta;
373
+ reverseProof?: ReverseProofWorkDelta;
338
374
  }>;
339
375
  }
340
376
  export interface InternalInspectionRecorder {
341
377
  recordStoreEvent(...event: StoreRecorderEvent): void;
342
378
  hasActiveStoreOperation(): boolean;
343
- findDependencyPath<Node, Token extends object>(hostKind: "committed" | "scratch" | "hydration", hostRef: InspectionReference, start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite, acceptedPrefixLength: number, evaluationGraphVersionStart: number, evaluationAttributedPublicationStart: number, parentWasCold: boolean, newEdgeProofMemo?: SelectorNewEdgeProofMemo<Node>): readonly Node[] | undefined;
379
+ findDependencyPath<Node, Token extends object>(hostKind: "committed" | "scratch" | "hydration", hostRef: InspectionReference, start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite, acceptedPrefixLength: number, evaluationGraphVersionStart: number, evaluationAttributedPublicationStart: number, parentWasCold: boolean, getNewEdgeProofMemo?: SelectorNewEdgeProofMemoProvider<Node>): readonly Node[] | undefined;
344
380
  reference(target: object, kind: InspectionReferenceKind, name?: string): InspectionReference;
345
381
  beginInterval(input: InternalInspectionIntervalInput): InternalInspectionIntervalToken;
346
382
  finishInterval(token: InternalInspectionIntervalToken, finish?: InternalInspectionIntervalFinish): void;
@@ -1,4 +1,19 @@
1
1
  import type { SelectorDefinition, SelectorNewEdgeProofDiagnostics, SelectorEvaluationHost, SelectorEvaluationProposal, SelectorEvaluationSession, SelectorCycleSearch } from "./types.js";
2
+ export type SelectorReverseProofOutcome = "unsupported" | "ineligible-active-frames" | "proven-terminal" | "proven-reverse" | "path-possible" | "budget-exhausted" | "disabled";
3
+ export interface SelectorReverseProofMeasurement {
4
+ nodeVisits: number;
5
+ dependentProbes: number;
6
+ liveDependents: number;
7
+ maxFrontier: number;
8
+ }
9
+ /**
10
+ * Try the cheap direction first for a site-1 proof. The persistent host's
11
+ * reverse index describes the effective graph exactly only while `target` is
12
+ * its sole active frame: changing the target's own outgoing prefix cannot add
13
+ * a path into the target. Any possible positive or bounded/ineligible case is
14
+ * deliberately left to the canonical ordered forward DFS.
15
+ */
16
+ export declare const tryProveNoDependencyPathReverse: <Node, Token extends object>(start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, measurement?: SelectorReverseProofMeasurement, allowTraversal?: boolean) => SelectorReverseProofOutcome;
2
17
  /**
3
18
  * Evaluate exactly one selector body. This function never installs the active
4
19
  * selector record; persistent, scratch, and hydration hosts apply the returned
@@ -53,6 +53,10 @@ export interface SelectorGraphObservation<Node> {
53
53
  takeAddedEdges(): readonly SelectorGraphEdgeAddition<Node>[] | undefined;
54
54
  close(): void;
55
55
  }
56
+ /** @internal Mutable budget shared with one bounded selector-graph traversal. */
57
+ export interface SelectorGraphTraversalBudget {
58
+ remaining: number;
59
+ }
56
60
  export type SelectorProposalOutcome<Value = unknown> = SelectorOutcome<Value>;
57
61
  export interface SelectorEvaluationProposal<Node, Token extends object, Value = unknown> {
58
62
  readonly selector: Node;
@@ -78,6 +82,8 @@ export interface SelectorNewEdgeProofDiagnostics {
78
82
  admissionSkipped(): void;
79
83
  disabled(): void;
80
84
  graphVersionReset(): void;
85
+ /** Adds non-search membership checks used to validate a retained proof. */
86
+ recordMapProbes?(count: number): void;
81
87
  completeSearch(classification: SelectorNewEdgeProofMemoSearchClassification, seed?: SelectorNewEdgeProofMemoSeedReason, disable?: SelectorNewEdgeProofMemoDisableReason, mapProbes?: number, prunedNodes?: number, retainedNodes?: number): void;
82
88
  }
83
89
  /**
@@ -85,8 +91,9 @@ export interface SelectorNewEdgeProofDiagnostics {
85
91
  *
86
92
  * A search may consult retained closures only when `beginSearch` returns true,
87
93
  * and may publish its parent map only after exhausting without finding the
88
- * target. The evaluator owns the coordinator's target, host, and exact graph
89
- * version lifetime; strategies must not retain it or use it at another site.
94
+ * target. The evaluator owns the coordinator's target, host, and synchronous
95
+ * graph-observation lifetime; strategies must not retain it or use it at
96
+ * another site.
90
97
  */
91
98
  export interface SelectorNewEdgeProofMemo<Node> {
92
99
  /** False after bounded admission found no reusable overlap. */
@@ -106,6 +113,13 @@ export interface SelectorNewEdgeProofMemo<Node> {
106
113
  /** Completes a physical search that found its target and retained nothing. */
107
114
  completePositive(): void;
108
115
  }
116
+ /** @internal Evaluation-local site-1 acceleration state. */
117
+ export interface SelectorNewEdgeProofMemoProvider<Node> {
118
+ /** Lazily acquired only when a site-1 proof falls back to forward DFS. */
119
+ (): SelectorNewEdgeProofMemo<Node> | undefined;
120
+ /** A bounded reverse traversal disables itself after its first budget miss. */
121
+ reverseProofEnabled: boolean;
122
+ }
109
123
  /**
110
124
  * Optional inspectable-Store strategy. Live nodes are valid only for the
111
125
  * duration of the call; a recorder must translate them immediately.
@@ -113,13 +127,15 @@ export interface SelectorNewEdgeProofMemo<Node> {
113
127
  * Site 0 is the canonical accepted-prefix proof, site 1 is a newly proposed
114
128
  * edge proof, and site 2 is a negative-only replay of an exact committed edge
115
129
  * addition. A positive site-2 result must fall back to site 0 so first-read
116
- * blame and the canonical cycle path remain unchanged. `newEdgeProofMemo` is
117
- * supplied only at site 1 and only while its evaluation-local graph-version
118
- * certificate remains exact.
130
+ * blame and the canonical cycle path remain unchanged. The memo provider is
131
+ * supplied only at site 1 and is invoked only when a bounded host acceleration
132
+ * cannot prove the negative first. Its evidence remains evaluation-local and
133
+ * may cross a graph version only when one exact addition interval preserves a
134
+ * fully exhausted, successor-closed negative proof.
119
135
  */
120
136
  export type SelectorCycleSearch<Node, Token extends object> = (start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite,
121
137
  /** Length of the active selector prefix whose acyclicity this proves. */
122
- acceptedPrefixLength: number, newEdgeProofMemo?: SelectorNewEdgeProofMemo<Node>) => readonly Node[] | undefined;
138
+ acceptedPrefixLength: number, getNewEdgeProofMemo?: SelectorNewEdgeProofMemoProvider<Node>) => readonly Node[] | undefined;
123
139
  export interface SelectorEvaluationStrategy {
124
140
  <Node, Token extends object, Value>(definition: SelectorDefinition<Node, Value>, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>): SelectorEvaluationProposal<Node, Token, Value>;
125
141
  }
@@ -142,6 +158,15 @@ export interface SelectorEvaluationHost<Node, Token extends object> {
142
158
  * than requesting fallback to `getSelectorRecord`.
143
159
  */
144
160
  getSelectorDependencyNodes?(node: Node): readonly Node[] | undefined;
161
+ /**
162
+ * Optional committed-host reverse adjacency. It must synchronously expose
163
+ * every authoritative committed selector that directly depends on `node`.
164
+ * The host must decrement `budget.remaining` once for every underlying
165
+ * route reference it probes, including dead weak references, and stop when
166
+ * either the budget or the visitor asks it to. Returns true only after
167
+ * exhausting the adjacency.
168
+ */
169
+ visitSelectorDependents?(node: Node, budget: SelectorGraphTraversalBudget, visitor: (dependent: Node) => boolean): boolean;
145
170
  /**
146
171
  * Monotonic version advanced for every selector-graph publication or
147
172
  * interleavable record removal/clear.
@@ -183,6 +208,8 @@ export declare class SelectorEvaluationSession<Node> {
183
208
  leave(host: object, selector: Node): void;
184
209
  /** @internal */
185
210
  isActive(host: object, node: Node): boolean;
211
+ /** @internal True when this selector is the host's only active frame. */
212
+ isSoleActiveSelector(host: object, selector: Node): boolean;
186
213
  /** @internal */
187
214
  activeCyclePath(host: object, node: Node): readonly Node[] | undefined;
188
215
  /** @internal Evaluator-owned active-frame coordination. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "valdres",
3
3
  "description": "Fast atom-based state management for JavaScript. Inspired by Recoil and Jotai.",
4
- "version": "1.0.0-beta.32",
4
+ "version": "1.0.0-beta.34",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Eigil Sagafos"
@@ -1,2 +0,0 @@
1
- class z extends Error{seal(){Object.freeze(this)}}class de extends z{code="VALDRES_SELECTOR_GETTER_ERROR";selector;cause;constructor(e,t){super("Selector getter failed");this.name="SelectorGetterError",this.selector=e,this.cause=t,this.seal()}}class Te extends z{code="VALDRES_SELECTOR_DEPENDENCY_ERROR";dependency;cause;constructor(e,t){super("Selector dependency failed");this.name="SelectorDependencyError",this.dependency=e,this.cause=t,this.seal()}}class Z extends z{code="VALDRES_SELECTOR_CIRCULAR_DEPENDENCY";selector;path;constructor(e,t){super("Selector dependency graph must be acyclic");this.name="SelectorCircularDependencyError",this.selector=e,this.path=Object.freeze([...t]),this.seal()}}class F extends z{code="VALDRES_INVALID_SYNCHRONOUS_SELECTOR_RESULT";phase;constructor(e){super(`Selector ${e} returned or threw a thenable`);this.name="InvalidSynchronousSelectorResultError",this.phase=e,this.seal()}}class Oe extends z{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class ce extends z{code="VALDRES_SELECTOR_COMPARATOR_ERROR";selector;cause;constructor(e,t){super("Selector comparator failed");this.name="SelectorComparatorError",this.selector=e,this.cause=t,this.seal()}}class Re extends z{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var qe=Object.freeze({kind:"not-thenable"}),Ot=()=>{},Rt=Reflect.apply,Ke=Symbol.for("valdres.runtime-owner/v1");class k extends Error{seal(){Object.freeze(this)}}class Ne extends k{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class Ce extends k{code="VALDRES_SUBSCRIBER_NOTIFICATION";cause;causes;committed=!0;phase="notifying";source="owned-mutation";constructor(e){super("One or more Store subscribers threw during notification");this.name="SubscriberNotificationError",this.causes=Object.freeze([...e]),this.cause=this.causes[0],this.seal()}}class q extends k{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class K extends k{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class Y extends k{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class le extends k{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends k{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class ee extends k{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class te extends k{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class Ee extends k{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class De extends k{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Ve extends k{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class ue extends k{code="VALDRES_INVALID_TRANSACTION_TARGET";constructor(){super("Transaction.scope requires a Store or named child");this.name="InvalidTransactionTargetError",this.seal()}}var C=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return qe;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):qe}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},E=(e)=>{try{Rt(e.then,e.target,[void 0,Ot])}catch{}},ne=(e)=>{let t=C(e);if(t.kind==="not-thenable")return Object.freeze({kind:"value",value:e});if(t.kind==="inspection-error")return Object.freeze({kind:"error",error:t.error});return E(t),Object.freeze({kind:"error",error:new ee})},je=(e)=>{try{return ne(e())}catch(t){let n=C(t);if(n.kind==="not-thenable")return Object.freeze({kind:"error",error:t});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return E(n),Object.freeze({kind:"error",error:new ee})}},oe=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},_=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"guarded-callback",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},Ye=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"subscriber",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},re=(e,t,n)=>oe(e,Object.freeze({kind:"selector",session:t}),n),Xe=(e,t,n)=>oe(e,Object.freeze({kind:"transaction",transaction:t}),n),fe=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"transaction-result",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},D=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="selector")throw new K(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new Y;throw new q},xe=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new K(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new Y;throw new q},$e=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new K("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new Y;throw new q},he=(e,t,n)=>{if(!n)throw new le;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new K("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new q;throw new Y},Qe=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},U=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";if((typeof t==="object"||typeof t==="function")&&t!==null){let o=Object.getOwnPropertyDescriptor(t,Ke);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new Ne;throw Qe(e,n).latchControlFault(r),r}}return"invalid"},x=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";let o=e.activity,r=Qe(e,n);if(o!==void 0&&"session"in o)try{let i=U(e,t,r),s=r.getControlFault();if(s.kind==="fault")throw s.error;return i}catch(i){let s=r.getControlFault();if(s.kind==="fault")throw s.error;throw i}return _(e,r,()=>U(e,t,r))},ie=(e,t)=>(Object.defineProperty(e,Ke,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),Se=(e,t)=>Object.freeze(ie({kind:e},t));var Ze=Object.freeze({kind:"not-thenable"}),Nt=()=>{},Ct=Reflect.apply,Je=Symbol("selector dependency path root"),nt=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Ze;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Ze}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},ot=(e)=>{try{Ct(e.then,e.target,[void 0,Nt])}catch{}},Et=(e)=>Object.freeze(e),Dt=(e)=>Object.freeze(e),O=(e,t,n,o)=>{let r=Dt(o);return Object.freeze({selector:e,token:t,outcome:Et(n),dependencies:r,attemptedPrefix:n.kind==="value"?Vt:Object.freeze(r.map((i)=>i.node))})},Vt=Object.freeze([]),pe=32,se=8192,jt=2*pe;class rt{passiveSearches;searches=0;constructor(e,t){if(this.passiveSearches=e,t!==void 0)this.diagnostics=t}get enabled(){return this.disabled!==!0}beginSearch(){if(this.searches++,this.diagnostics!==void 0)this.diagnosticsCompleted=!1,this.mapProbes=0,this.prunedNodes=0;let e=this.enabled&&this.searches>this.passiveSearches&&this.first!==void 0;if(e)this.consultCurrentSearch=!0,this.hits=0;else if(this.consultCurrentSearch===!0)this.consultCurrentSearch=void 0;if(e&&this.passiveOrigin===!0&&this.searches===this.passiveSearches+1)this.passiveProbeBudget=Math.min(se,2*this.first.size);return e}hasProvenNoPath(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){if(t.has(e))return this.hits=(this.hits??0)|1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){if(n.has(e))return this.hits=(this.hits??0)|2,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}hasProvenNoPathMeasured(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){if(this.mapProbes=(this.mapProbes??0)+1,t.has(e))return this.hits=(this.hits??0)|1,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){if(this.mapProbes=(this.mapProbes??0)+1,n.has(e))return this.hits=(this.hits??0)|2,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}completeNegative(e){if(!this.enabled)return;if(this.searches<=this.passiveSearches){let n=e.size>=pe&&e.size<=se,o;if(this.searches===1&&n)this.first=e,this.passiveOrigin=!0,o="initial";else if(this.searches===this.passiveSearches&&n)o=this.first===void 0?"initial":"activation-replacement",this.first=e,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0;this.completeDiagnostics(o);return}if((this.hits??0)!==0){if(e.size>se){this.disable("over-cap-hit");return}let n=this.first,o=this.second;this.first=void 0,this.second=void 0,this.retain(n),this.retain(o);let r=this.retain(e);this.locked=!0,this.missWork=0,this.completeDiagnostics(r?"hit-derived":void 0);return}if(e.size===1){this.completeDiagnostics();return}let t=e.size>=pe&&e.size<=se;if(this.first===void 0){if(t)this.first=e;this.completeDiagnostics(t?"initial":void 0);return}if(this.missWork=(this.missWork??0)+Math.min(e.size,pe),this.locked!==!0&&this.second===void 0&&t){this.second=e,this.completeDiagnostics("secondary");return}if((this.missWork??0)>=jt){this.disable("miss-budget");return}this.completeDiagnostics()}completePositive(){this.completeDiagnostics()}reset(){this.first=void 0,this.second=void 0,this.hits=void 0,this.missWork=void 0,this.locked=void 0,this.disabled=void 0,this.searches=0,this.consultCurrentSearch=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0}retain(e){if(e===void 0||e.size>se||e===this.first)return!1;if(this.first===void 0||e.size>this.first.size)return this.second=this.first,this.first=e,!0;if(this.second===void 0||e.size>this.second.size)return this.second=e,!0;return!1}disable(e){this.first=void 0,this.second=void 0,this.missWork=void 0,this.disabled=!0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.completeDiagnostics(void 0,e)}completeDiagnostics(e,t){let n=this.diagnostics;if(n===void 0||this.diagnosticsCompleted===!0)return;this.diagnosticsCompleted=!0;let o=this.mapProbes??0;n.completeSearch(this.consultCurrentSearch===!0?(this.hits??0)!==0?"consulted-pruned":"consulted-no-prune":"observing",e,t,o,this.prunedNodes??0,(this.first?.size??0)+(this.second?.size??0))}}var xt=(e,t)=>new rt(e,t),Pt=(e,t,n,o,r,i,s)=>{let a=s?.beginSearch()??!1,d=[e],c=new Map([[e,Je]]);while(d.length>0){let l=d.pop();if(Object.is(l,t)){let f=[],p=l;while(p!==Je)f.push(p),p=c.get(p);return f.reverse(),s?.completePositive(),Object.freeze(f)}let h=o.getTransientDependencies(n,l);if(h){if(h.length===0)continue;if(a){let f=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(f)continue}for(let f of h){if(c.has(f.node))continue;c.set(f.node,l),d.push(f.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let f=n.getSelectorDependencyNodes(l);if(f===void 0||f.length===0)continue;if(a){let p=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(p)continue}for(let p of f){if(c.has(p))continue;c.set(p,l),d.push(p)}continue}let A=n.getSelectorRecord(l);if(!A||A.dependencies.length===0)continue;if(a){let f=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(f)continue}for(let f of A.dependencies){if(c.has(f.node))continue;c.set(f.node,l),d.push(f.node)}}s?.completeNegative(c);return},et=(e,t)=>{let n=nt(e);if(n.kind==="thenable")return ot(n),new F(t);if(n.kind==="inspection-error")return n.error;return e},tt=(e,t)=>{let n=nt(e);if(n.kind==="thenable")return ot(n),Object.freeze({kind:"error",error:new F(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},it=(e,t,n,o=Pt,r)=>{let{node:i}=e,s=[],a=t.getSelectorRecord(i),d=a?.dependencies,c=d===void 0?new Set:void 0,l,h=0,A=t.getComparisonBaseline(i),f=!0,p=()=>{let u=c;if(u!==void 0)return u;u=new Set;for(let S of s)u.add(S.node);return c=u,u};n.enter(t,i,s);let P=t.getSelectorGraphVersion(),Ae=n.getSelectorGraphPublicationCount(t),M=P,B=Ae,He=P,Le=Ae,be,ve=!1,Ge=P,ge=0,H,kt=(u)=>{if(u!==Ge){if(Ge=u,ge=0,H!==void 0)H.reset(),r?.graphVersionReset()}if(ge++,(d?.length??0)===0&&ge<3){r?.admissionSkipped();return}if(H===void 0){let S=d!==void 0&&d.length>0&&d.length<3;H=xt(S?3:0,r)}if(!H.enabled){r?.disabled();return}return H},wt=(u)=>{if(ve)return;let S=t.beginSelectorGraphObservation?.(u);if(S===void 0)return;ve=!0,be=S},ke=(u,S,b,v)=>b-u===v-S,We=(u=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t),b=ke(M,B,u,S))=>{if(u===M)return;if(!ve&&t.beginSelectorGraphObservation!==void 0){M=u,B=S;return}let v=be?.takeAddedEdges();if(b){M=u,B=S;return}if(v!==void 0){let g=!1;for(let T of v)if(o(T.head,T.tail,t,n,2,s.length)!==void 0){g=!0;break}if(!g){M=u,B=S;return}}for(let g=0;g<s.length;g++){let T=s[g],N=o(T.node,i,t,n,0,s.length);if(!N)continue;if(c!==void 0)for(let V=s.length-1;V>=g;V--)c.delete(s[V].node);if(s.length=g,h++,n.getControlFault().kind==="fault")return;let w=new Z(i,[i,...N]);n.latchCycle(t,i,w);return}M=u,B=S},we=()=>{let u=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t);He=u,Le=S;let b=ke(M,B,u,S);if(!b)n.revalidateAncestorPrefixes(t,i);We(u,S,b)};n.setPrefixRevalidator(t,i,We);let Tt=(u)=>{if(!f)throw new Re;let S=n.getControlFault();if(S.kind==="fault")throw S.error;let b=n.getCycle(t,i);if(b!==void 0)throw b;let v=n.activeCyclePath(t,u);if(v){let m=new Z(i,v);throw n.latchCycle(t,i,m),m}let g=s.length,T,N=!1;if(c===void 0){let m=d?.[g];if(m!==void 0&&Object.is(m.node,u))T=!1,N=!0;else T=p().has(u)}else T=c.has(u);if(!T&&!N&&d!==void 0&&d.length>0){let m=d[s.length];if(m!==void 0&&Object.is(m.node,u))N=!0;else{if(l===void 0){l=new Set;for(let W of d)l.add(W.node)}N=l.has(u)}}let L=h,w=t.serve(u,n);we();let V=n.getCycle(t,i);if(V!==void 0)throw V;let X=c!==void 0?c.has(u):h===L&&s.length===g?!1:p().has(u),I=He,G=Le,j=X||N&&I===P,ae=d===void 0&&ke(P,Ae,I,G);if(!j&&!ae){let m=o(u,i,t,n,1,s.length,kt(I));if(m){let W=n.getControlFault();if(W.kind==="fault")throw W.error;let Ue=new Z(i,[i,...m]);throw n.latchCycle(t,i,Ue),Ue}}if(!X){let m=a?.dependencies[s.length];c?.add(u),s.push(m!==void 0&&Object.is(m.node,u)&&Object.is(m.token,w.token)?m:Object.freeze({node:u,token:w.token})),wt(u)}if(M=I,B=G,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let m=n.getControlFault();if(m.kind==="fault")throw m.error;throw w.outcome.error}let Q=n.getControlFault();if(Q.kind==="fault")throw Q.error;if(w.outcome.kind==="error")throw new Te(u,w.outcome.error);return w.outcome.value};try{let u,S,b=!1;try{u=e.get(Tt)}catch(V){b=!0,S=V}finally{f=!1}if(b)S=et(S,"getter");let v=b?void 0:tt(u,"getter");we();let g=n.getControlFault();if(g.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:g.error},s);let T=n.getCycle(t,i);if(T!==void 0)return O(i,t.createOutcomeToken(),{kind:"error",error:T},s);if(b)return O(i,t.createOutcomeToken(),{kind:"error",error:S instanceof F?S:new de(i,S)},s);if(v===void 0)throw Error("Selector result classification was not completed");let N=n.getControlFault();if(N.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:N.error},s);if(v.kind==="error")return O(i,t.createOutcomeToken(),{kind:"error",error:v.error instanceof F?v.error:new de(i,v.error)},s);let L=v.value,w;if(A){let V=e.equal??Object.is,X,I,G=!1;try{X=V(A.value,L)}catch(W){G=!0,I=et(W,"comparator")}let j=G?void 0:tt(X,"comparator");we();let ae=n.getControlFault();if(ae.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:ae.error},s);let Q=n.getCycle(t,i);if(Q!==void 0)return O(i,t.createOutcomeToken(),{kind:"error",error:Q},s);if(G)return O(i,t.createOutcomeToken(),{kind:"error",error:I instanceof F?I:new ce(i,I)},s);if(j===void 0)throw Error("Selector comparator classification was not completed");let m=n.getControlFault();if(m.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:m.error},s);if(j.kind==="error")return O(i,t.createOutcomeToken(),{kind:"error",error:j.error instanceof F?j.error:new ce(i,j.error)},s);if(j.value!==!0&&j.value!==!1)return O(i,t.createOutcomeToken(),{kind:"error",error:new Oe},s);if(j.value===!0)L=A.value,w=A.current?A.token:void 0}return O(i,w??t.createOutcomeToken(),{kind:"value",value:L},s)}finally{try{be?.close()}finally{n.leave(t,i)}}};class y{#t=[];#n;#o=0;#i;#a=It;latchControlFault(e){if(this.#a.kind==="fault")return;this.#a=Object.freeze({kind:"fault",error:e})}getControlFault(){return this.#a}noteSelectorGraphPublication(e){let t=this.#n;if(t===void 0){this.#n=e,this.#o=1;return}if(Object.is(t,e)){this.#o++;return}let n=this.#i??(this.#i=new WeakMap);n.set(e,(n.get(e)??0)+1)}getSelectorGraphPublicationCount(e){return Object.is(this.#n,e)?this.#o:this.#i?.get(e)??0}enter(e,t,n){this.#t.push({host:e,selector:t,dependencyPrefix:n,revalidatePrefix:void 0,cycleError:void 0})}leave(e,t){let n=this.#t.pop();if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame corruption")}isActive(e,t){return this.#t.some((n)=>Object.is(n.host,e)&&Object.is(n.selector,t))}activeCyclePath(e,t){let n=this.#t.findIndex((o)=>Object.is(o.host,e)&&Object.is(o.selector,t));if(n===-1)return;return Object.freeze([...this.#t.slice(n).filter((o)=>Object.is(o.host,e)).map((o)=>o.selector),t])}setPrefixRevalidator(e,t,n){let o=this.#r(e,t);if(o.revalidatePrefix!==void 0)throw Error("Selector prefix revalidator is already installed");o.revalidatePrefix=n}revalidateAncestorPrefixes(e,t){this.#r(e,t);for(let n=0;n<this.#t.length-1;n++){let o=this.#t[n];if(!Object.is(o.host,e))continue;let r=o.revalidatePrefix;if(r===void 0)throw Error("Selector prefix revalidator is not installed");r()}}getTransientDependencies(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o.dependencyPrefix}return}latchCycle(e,t,n){let o=this.#s(e,t);o.cycleError??=n}getCycle(e,t){return this.#r(e,t).cycleError}#r(e,t){let n=this.#t[this.#t.length-1];if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame is not active");return n}#s(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o}throw Error("Selector evaluation frame is not active")}}var It=Object.freeze({kind:"none"});var st=Symbol("no-committed-selector-baseline");class me{#t;#n=new Map;#o=new Map;#i=new Map;#a;#r=1;#s=0;#c;constructor(e,t,n){this.#t=e,this.#a=t,this.#c=n}readSelector(e){let t=new y,n=this.serve(e,t);if(n.outcome.kind!=="value")throw n.outcome.error;return n.outcome.value}advanceGeneration(e){if(e!==this.#a+1)throw Error("Scratch selector generation is not contiguous");this.#a=e,this.#n.clear(),this.#o.clear()}revoke(){this.#n.clear(),this.#o.clear(),this.#i.clear(),this.#t=void 0}serve(e,t){let n=this.#d(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let d=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,d),d}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#c(o.definition,this,t));if(i.outcome.kind==="control-error")throw i.outcome.error;let s=Object.freeze({token:i.token,outcome:i.outcome});return this.#s++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:s,dependencies:i.dependencies})),s}getSelectorRecord(e){let t=this.#n.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorGraphVersion(){return this.#s}getComparisonBaseline(e){let t=this.#i.get(e);if(t===void 0)t=this.#d().captureCommittedSelectorSuccess(e)??st,this.#i.set(e,t);return t===st?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#d(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var at=4096,Mt=Object.freeze([]);class ct{onDeadReference;onEmptinessProbe;#t=new WeakMap;#n=new Set;constructor(e,t){this.onDeadReference=e;this.onEmptinessProbe=t}add(e){if(this.#t.has(e))return;let t=new WeakRef(e);this.#t.set(e,t),this.#n.add(t)}delete(e){let t=this.#t.get(e);if(t===void 0)return;this.#t.delete(e),this.#n.delete(t)}forEach(e){for(let t of this.#n){let n=t.deref();if(n===void 0){this.#n.delete(t),this.onDeadReference?.();continue}e(n)}}isEmpty(){for(let e of this.#n){if(this.onEmptinessProbe?.(),e.deref()!==void 0)return!1;this.#n.delete(e),this.onDeadReference?.()}return!0}clear(){this.#n.clear(),this.#t=new WeakMap}}class ye{coordinator;parent;name;children;namedChildren=new Map;atomOverrides=new WeakMap;#t=new WeakMap;#n;#o=new WeakMap;#i;#a=new WeakMap;#r=new WeakSet;#s=0;#c=0;#d;#l=!1;#h;#u="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#m(),this.#n=this.#m()}get status(){return this.#u}get facade(){if(this.#h===void 0)throw Error("Store scope facade is not installed");return this.#h}installFacade(e){if(this.#h!==void 0)throw Error("Store scope facade is already installed");this.#h=e}markDisposing(){if(this.#u==="live")this.#u="disposing"}markDisposed(){this.#u="disposed"}getAtomView(e){return this.#t.get(e)}getMaterializedServedOutcome(e){let t=this.#t.get(e);if(t!==void 0)return t.served;let n=e,o=this.#o.get(n);return o!==void 0&&!this.#r.has(n)?o.served:void 0}createAtomView(e,t,n){let o=this.#t.get(e);if(o!==void 0)return o;let r={scope:this,atom:e,served:Object.freeze({token:this.createOutcomeToken(),outcome:t}),inheritedFrom:n,inheritingChildren:this.#m()};if(this.#t.set(e,r),this.#n.add(r),n!==void 0)n.inheritingChildren.add(r),this.coordinator.recordCounter("routeAdds");return r}attachAtomView(e,t){if(Object.is(e.inheritedFrom,t))return;this.detachAtomView(e),e.inheritedFrom=t,t.inheritingChildren.add(e),this.coordinator.recordCounter("routeAdds")}detachAtomView(e){if(e.inheritedFrom===void 0)return;e.inheritedFrom.inheritingChildren.delete(e),e.inheritedFrom=void 0,this.coordinator.recordCounter("routeRemoves")}updateAtomView(e,t){e.served=Object.freeze({token:this.createOutcomeToken(),outcome:t}),this.coordinator.reachSubscriptionTarget(this,e.atom)}captureCommittedSelectorSuccess(e){let t=this.#o.get(e)?.lastSuccess;return t===void 0?void 0:Object.freeze({value:t.value})}isSelectorDirty(e){return this.#r.has(e)}getCommittedSelectorDependencies(e){return this.#o.get(e)?.dependencies}markDependents(e){this.#a.get(e)?.forEach((t)=>{if(this.coordinator.enqueueSelector(this,t))this.#r.add(t)})}dropRecords(){this.#n.forEach((e)=>{this.detachAtomView(e),e.inheritingChildren.clear()}),this.#n.clear(),this.atomOverrides=new WeakMap,this.#t=new WeakMap,this.#o=new WeakMap,this.#i=void 0,this.#a=new WeakMap,this.#r=new WeakSet,this.#s++,this.#e()}serve(e,t){let n=this.coordinator.runtimeDomain;if(U(n,e,t)==="invalid")throw TypeError("Selector get requires a valid State");return this.serveKnownLocal(e,t)}serveKnownLocal(e,t){let n=this.coordinator.runtimeDomain;if(n.atoms.has(e)){let a=this.#t.get(e);if(a!==void 0)return a.served;return this.coordinator.serveScopeAtom(this,e,t)}let o=n.selectors.get(e);if(o===void 0)throw TypeError("Unknown committed StoreTree state");let r=e,i=this.#o.get(r);if(i!==void 0&&this.coordinator.postSourceApply)this.coordinator.prepareSelectorRead(this,r,t),i=this.#o.get(r);if(i!==void 0&&!this.#r.has(r))return i.served;let s=re(n,t,()=>this.coordinator.evaluate(o,this,t));if(s.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw s.outcome.error;return this.#A(r,s,t)}getSelectorRecord(e){let t=this.#o.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorDependencyNodes(e){let t=this.#o.get(e);if(t===void 0)return;let n=e,o=this.#i?.get(n);if(o===void 0){let r=[];for(let s of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(s.node))r.push(s.node);o=Object.freeze(r);let i=this.#i;if(i===void 0)i=new WeakMap,this.#i=i;i.set(n,o)}return o}getSelectorGraphVersion(){return this.#s}beginSelectorGraphObservation(e){if(!this.coordinator.runtimeDomain.selectors.has(e))return;if(this.#c===0)this.#d=[],this.#l=!1;this.#c++;let t=this.#d?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#d;if(o===void 0)return;if(t===o.length)return Mt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#c--,this.#c!==0)return;this.#d=void 0,this.#l=!1}})}getComparisonBaseline(e){let t=this.#o.get(e);if(t?.lastSuccess===void 0)return;return t.served.outcome.kind==="value"?Object.freeze({current:!0,value:t.lastSuccess.value,token:t.served.token}):Object.freeze({current:!1,value:t.lastSuccess.value})}createOutcomeToken(){return this.coordinator.createOutcomeToken()}#A(e,t,n){let o=this.#o.get(e),r=Object.freeze({token:t.token,outcome:t.outcome}),i=Object.freeze({served:r,dependencies:t.dependencies,lastSuccess:t.outcome.kind==="value"?Object.freeze({value:t.outcome.value,token:t.token}):o?.lastSuccess}),s=this.#y(e,o?.dependencies??dt,t.dependencies),a=s?this.#S(e,o?.dependencies??dt,t.dependencies):void 0;if(s)this.#i?.delete(e);if(this.#s++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),a!==void 0)this.#p(a);if(o!==void 0&&!Object.is(o.served.token,t.token))this.coordinator.reachSubscriptionTarget(this,e),this.markDependents(e);if(t.outcome.kind==="control-error")this.coordinator.latchPropagationControlFault(t.outcome.error);return r}#y(e,t,n){if(t.length===n.length){let o=0;while(o<t.length&&Object.is(t[o].node,n[o].node))o++;if(o===t.length)return!1}for(let o of t){let r=this.#a.get(o.node);if(r?.delete(e),r?.isEmpty())this.#a.delete(o.node)}for(let o of n){let r=this.#a.get(o.node);if(r===void 0)r=this.#m(),this.#a.set(o.node,r);r.add(e)}return!0}#S(e,t,n){if(this.#c===0||this.#l)return;let o=this.#d;if(o===void 0){this.#e();return}let r=at-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let d of t)if(i.has(d.node))s.add(d.node);let a=[];for(let d of n)if(i.has(d.node)&&!s.has(d.node)){if(a.push(Object.freeze({tail:e,head:d.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#d;if(t===void 0||t.length+e.length>at){this.#e();return}t.push(...e)}#e(){if(this.#c===0)return;this.#d=[],this.#l=!0}#m(){return new ct(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var dt=Object.freeze([]);class Pe{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#c;#d;#l;#h;#u;#A;#y;#S;#p;#e;generation=0;active=!0;constructor(e){this.#t=e}get hasIntents(){return this.#o!==void 0||this.#i!==void 0||this.#a!==void 0||this.#r!==void 0}get singleIntentScope(){return this.#n}get singleIntent(){return this.#i===void 0?this.#o:void 0}stage(e,t){let n=this.#r;if(n!==void 0){let i=n.get(e);if(i===void 0)i=this.#f(),n.set(e,i);i.set(t.atom,t),this.#m();return}let o=this.#a;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#f();i.set(this.#n,o);let s=this.#f();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#a=void 0,this.#n=void 0}this.#m();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#m();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#m();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#m();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#m();return}let s=this.#f();s.set(r.atom,r),s.set(i.atom,i),s.set(t.atom,t),this.#a=s}else{let i=this.#f(),s=this.#f();if(s.set(r.atom,r),this.#i!==void 0)s.set(this.#i.atom,this.#i);i.set(this.#n,s);let a=this.#f();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#m()}forEachIntent(e){let t=this.#o;if(t!==void 0){if(e(this.#n,t),this.#i!==void 0)e(this.#n,this.#i);return}let n=this.#a;if(n!==void 0){let r=this.#n;for(let i of n.values())e(r,i);return}let o=this.#r;if(o===void 0)return;for(let[r,i]of o)for(let s of i.values())e(r,s)}getIntent(e,t){let n=this.#o;if(n!==void 0&&Object.is(this.#n,e)&&Object.is(n.atom,t))return n;let o=this.#i;if(o!==void 0&&Object.is(this.#n,e)&&Object.is(o.atom,t))return o;if(Object.is(this.#n,e))return this.#a?.get(t);return this.#r?.get(e)?.get(t)}getAtomBaseline(e,t){if(this.#d!==void 0&&Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;if(this.#h!==void 0&&Object.is(this.#s,e)&&Object.is(this.#l,t))return this.#h;if(Object.is(this.#s,e))return this.#u?.get(t);return this.#A?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#A;if(o!==void 0){let s=o.get(e);if(s===void 0)s=this.#f(),o.set(e,s);if(!s.has(t))s.set(t,n);return}let r=this.#u;if(r!==void 0){if(Object.is(this.#s,e)){if(!r.has(t))r.set(t,n)}else{let s=this.#f();s.set(this.#s,r);let a=this.#f();a.set(t,n),s.set(e,a),this.#A=s,this.#u=void 0,this.#s=void 0}return}let i=this.#d;if(i===void 0){this.#s=e,this.#c=t,this.#d=n;return}if(Object.is(this.#s,e)&&Object.is(this.#c,t))return;if(Object.is(this.#s,e)){let s=this.#h;if(s===void 0){this.#l=t,this.#h=n;return}if(Object.is(this.#l,t))return;let a=this.#f();a.set(this.#c,i),a.set(this.#l,s),a.set(t,n),this.#u=a}else{let s=this.#f(),a=this.#f();if(a.set(this.#c,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#s,a);let d=this.#f();d.set(t,n),s.set(e,d),this.#A=s,this.#s=void 0}this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#y,e))return this.#S;return this.#p?.get(e)}hasFallback(e){return Object.is(this.#y,e)||(this.#p?.has(e)??!1)}setFallback(e,t){let n=this.#p;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#y=e,this.#S=t;return}if(Object.is(this.#y,e)){this.#S=t;return}let o=this.#f();o.set(this.#y,this.#S),o.set(e,t),this.#p=o,this.#y=void 0,this.#S=void 0}forEachFallback(e){if(this.#y!==void 0&&this.#S!==void 0)e(this.#y,this.#S);if(this.#p!==void 0)for(let[t,n]of this.#p)e(t,n)}#m(){this.generation+=1;let e=this.#e;if(e!==void 0)for(let t of e.values())t.advanceGeneration(this.generation)}getScratchHost(e){return this.#e?.get(e)}installScratchHost(e,t){let n=this.#e,o=n===void 0;if(n===void 0)n=new Map,this.#e=n;return n.set(e,t),o}close(){if(!this.active)return;this.active=!1;let e=this.#e;if(e!==void 0){for(let t of e.values())t.revoke();e.clear()}this.#e=void 0}release(){if(this.#a?.clear(),this.#r!==void 0){for(let e of this.#r.values())e.clear();this.#r.clear()}if(this.#u?.clear(),this.#A!==void 0){for(let e of this.#A.values())e.clear();this.#A.clear()}this.#p?.clear(),this.#n=void 0,this.#o=void 0,this.#i=void 0,this.#a=void 0,this.#r=void 0,this.#s=void 0,this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0,this.#u=void 0,this.#A=void 0,this.#y=void 0,this.#S=void 0,this.#p=void 0,this.#e?.clear(),this.#e=void 0}#f(){return this.#t?.(),new Map}}class lt{get;set;update;reset;scope;constructor(e,t,n){this.get=(o)=>e.transactionGet(t,n,o),this.set=(o,r)=>e.transactionSet(t,n,o,r),this.update=(o,r)=>e.transactionUpdate(t,n,o,r),this.reset=(o)=>e.transactionReset(t,n,o),this.scope=(...o)=>e.transactionScope(t,n,o[0],o.length,o[1]),ie(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var Ie=(e,t,n)=>new lt(e,t,n),Me=(e)=>{let t=C(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw E(t),new J},ut=(e)=>{let t=C(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw E(t),new J};var zt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},At=Object.freeze({sourceEpoch:0,routeVisits:1,deadRouteCompactions:2,scratchHostAllocations:3,propagationSettlements:4,disposalVisits:5,warmParentHops:6,scopeNodesCreated:7,storeFacadesCreated:8,namedScopeHits:9,namedScopeMisses:10,routeAdds:11,routeRemoves:12,fallbackPublications:13,draftCreations:14,scratchMapAllocations:15,finalResolutionVisits:16,finalPreflightVisits:17,draftStorageAllocations:18,commitWorksetAllocations:19,subscriptionIndexMapsCreated:20,subscriptionTargetsCreated:21,subscriptionRegistrations:22,subscriptionRemovals:23,unsubscribeClosuresCreated:24,activeSubscriptionScopes:25,activeSubscriptionTargets:26,activeSubscriptions:27,notificationTargetsReached:28,notificationSnapshots:29,subscriberCallbacksAttempted:30,subscriberErrors:31}),Ft=32,bt=new WeakMap,cn=()=>{let e=new Uint32Array(Ft),t=Object.freeze({read(n){return e[At[n]]??0}});return bt.set(t,e),t},R=(e)=>Object.freeze({kind:"value",value:e}),_t=(e)=>Object.freeze({kind:"error",error:e}),ft=(e)=>e.kind==="value"?R(e.value):_t(e.error),ht=(e,t)=>{if(e.kind!==t.kind)return!1;if(e.kind==="value"&&t.kind==="value")return Object.is(e.value,t.value);return e.kind!=="value"&&t.kind!=="value"&&Object.is(e.error,t.error)},St=1,ze=2,pt=4,Bt=(e)=>({onAllocation:e,preflightAtom:void 0,preflightScope:void 0,preflightOutcome:void 0,secondPreflightAtom:void 0,secondPreflightScope:void 0,secondPreflightOutcome:void 0,preflight:void 0,consideredRecord:void 0,secondConsideredRecord:void 0,considered:void 0,affectedRecord:void 0,affectedBefore:void 0,secondAffectedRecord:void 0,secondAffectedBefore:void 0,affected:void 0}),_e=(e)=>(e.onAllocation?.(),new Map),Ht=(e)=>(e.onAllocation?.(),new Set),Fe=(e,t,n)=>{if(e.preflightOutcome!==void 0&&Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return e.preflightOutcome;if(e.secondPreflightOutcome!==void 0&&Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return e.secondPreflightOutcome;return e.preflight?.get(t)?.get(n)},mt=(e,t,n,o)=>{if(e.preflightOutcome===void 0){e.preflightAtom=t,e.preflightScope=n,e.preflightOutcome=o;return}if(Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return;if(e.secondPreflightOutcome===void 0){e.secondPreflightAtom=t,e.secondPreflightScope=n,e.secondPreflightOutcome=o;return}if(Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return;let r=e.preflight;if(r===void 0)r=_e(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=_e(e),r.set(t,i);i.set(n,o)},Lt=(e,t)=>{if(Object.is(e.consideredRecord,t)||Object.is(e.secondConsideredRecord,t))return!1;if(e.consideredRecord===void 0)return e.consideredRecord=t,!0;if(e.secondConsideredRecord===void 0)return e.secondConsideredRecord=t,!0;let n=e.considered;if(n===void 0)n=Ht(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Gt=(e,t,n)=>{if(e.affectedRecord===void 0){e.affectedRecord=t,e.affectedBefore=n;return}if(e.secondAffectedRecord===void 0){e.secondAffectedRecord=t,e.secondAffectedBefore=n;return}let o=e.affected;if(o===void 0)o=_e(e),e.affected=o;o.set(t,n)};class vt{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#c;#d=0;#l;#h;#u;#A=1;#y=0;#S;#p;#e;#m;#f;evaluate;constructor(e,t,n){this.#e=e,this.#m=t===void 0?void 0:bt.get(t),this.#f=n,this.evaluate=n?.evaluate??it,this.#n=new ye(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#a}get instrumented(){return this.#m!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#m;if(n===void 0)return;n[At[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Pe(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new y,o=t,r=x(this.#e,o,n),i=xe(this.#e,"StoreTree.get");if(this.#b(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value")throw s.outcome.error;return s.outcome.value}try{let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value"){if(s.outcome.kind==="control-error")i.latchControlFault(s.outcome.error);throw s.outcome.error}return s.outcome.value}catch(s){let a=n.getControlFault();if(a.kind==="fault")i.latchControlFault(a.error);throw s}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":x(this.#e,o,r=new y);if(D(this.#e,"StoreTree.sub"),this.#b(e),i==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("StoreTree.sub requires a valid State");if(typeof n!=="function")throw TypeError("StoreTree.sub requires a callback function");let s=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new y);if(s.outcome.kind==="control-error")throw s.outcome.error;let a=this.#u;if(a===void 0){if(a=new Map,this.#u=a,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let d=a.get(e);if(d===void 0){if(d=new Map,a.set(e,d),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let c=d.get(o);if(c===void 0){if(c={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},d.set(o,c),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:c,previous:c.tail,next:void 0};if(c.tail===void 0)c.head=l;else c.tail.next=l;if(c.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return zt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;$e(this.#e);let{previous:n,next:o}=e;if(n===void 0)t.head=o;else n.next=o;if(o===void 0)t.tail=n;else o.previous=n;e.callback=void 0,e.target=void 0,e.previous=void 0,e.next=void 0;let r=this.instrumented;if(r)this.recordCounter("subscriptionRemovals"),this.recordCounter("activeSubscriptions",-1);if(t.head!==void 0)return;let i=this.#u,s=i?.get(t.scope);if(s?.get(t.state)===t){if(s.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(s!==void 0&&s.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#u=void 0}set(e,t,n){this.#O(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#O(e,t,"StoreTree.update","update",n)}reset(e,t){this.#O(e,t,"StoreTree.reset","reset")}scope(e,t,n){if(t!==0&&(typeof n==="object"||typeof n==="function")&&n!==null)x(this.#e,n,new y);if(D(this.#e,"StoreTree.scope"),this.#b(e),t===0)return this.#j(e);if(t!==1||typeof n!=="string")throw TypeError("StoreTree.scope requires a string name");let o=e.namedChildren.get(n);if(o!==void 0)return this.recordCounter("namedScopeHits"),o.facade;return this.recordCounter("namedScopeMisses"),this.#j(e,n)}dispose(e){if(D(this.#e,"StoreTree.dispose"),e.status!=="live")return;let t=[],n=[Object.freeze({node:e,expanded:!1})];while(n.length>0){let{node:o,expanded:r}=n.pop();if(r){t.push(o);continue}o.markDisposing(),n.push(Object.freeze({node:o,expanded:!0}));let i=[];o.children.forEach((s)=>i.push(s));for(let s=i.length-1;s>=0;s--)n.push(Object.freeze({node:i[s],expanded:!1}))}for(let o of t){this.recordCounter("disposalVisits");let r=o.parent;if(r!==void 0){if(o.name!==void 0&&Object.is(r.namedChildren.get(o.name),o))r.namedChildren.delete(o.name);r.children.delete(o)}this.#$(o),o.dropRecords(),o.namedChildren.clear(),o.children.clear(),o.markDisposed()}if(Object.is(e,this.#n))this.#t=new WeakMap}txn(e,t,n){if(D(this.#e,"StoreTree.txn"),this.#b(e),typeof t!=="function"||n!==void 0&&typeof n!=="string")throw TypeError("StoreTree.txn requires a callback");let o=this.#T(),r=Ie(this,o,e),i;try{i=Xe(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new y;fe(this.#e,s,()=>Me(i)),this.#F(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new y,o=t,r=x(this.#e,o,n);if(D(this.#e,"adapter readHydrationSnapshot"),this.#b(e),r==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("readHydrationSnapshot requires a valid State");let i=this.#T(),s;try{if(this.#e.atoms.has(o)){let a=this.#v(i,e,o,n);if(a.kind!=="value")throw a.error;return a.value}return s=this.#K(i,e),s.readSelector(o)}finally{s?.revoke(),i.close(),i.forEachFallback((a,d)=>{if(this.#t.has(a))return;this.#t.set(a,d),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new y,i=x(this.#e,o,r);if(he(this.#e,e.transaction,e.active),this.#b(t),i==="invalid")throw TypeError("Transaction.get requires a valid State");if(this.#e.atoms.has(o)){let a=this.#v(e,t,o,r);if(a.kind!=="value")throw a.error;return a.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let s=e.getScratchHost(t);if(s===void 0){if(s=this.#q(e,t),e.installScratchHost(t,s))this.recordCounter("scratchMapAllocations")}return s.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new y;this.#R(e,t,r,i,"Transaction.set"),this.#P(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new y;this.#R(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new y;this.#R(e,t,o,r,"Transaction.reset"),this.#M(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new y;if(typeof n!=="string")x(this.#e,n,i);he(this.#e,e.transaction,e.active),this.#b(t);let s=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let a=Ie(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let d;try{d=r(a)}catch(l){let h=new y;return fe(this.#e,h,()=>ut(l))}let c=new y;return fe(this.#e,c,()=>Me(d)),d}createOutcomeToken(){return Object.freeze({id:this.#o++})}#q(e,t){return this.recordCounter("scratchHostAllocations"),new me(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>re(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new me(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>re(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(U(this.#e,e,t)==="invalid")throw TypeError("Selector get requires a valid State");if(this.#e.atoms.has(e))return Object.freeze({kind:"atom"});let n=this.#e.selectors.get(e);if(n===void 0)throw TypeError("Unknown scratch StoreTree State");return Object.freeze({kind:"selector",definition:n})}#j(e,t){let n=new ye(this,e,t);this.recordCounter("scopeNodesCreated");let o=new Be(this,n,this.#f);if(e.children.add(n),t!==void 0)e.namedChildren.set(t,n);return o}#Y(e,t){if(typeof t==="string"){let i=e.namedChildren.get(t);if(i===void 0)throw new De;return this.#b(i),i}let n=t,o=this.#e.stores.get(n);if(o!==void 0){let i=o;if(this.#b(i),!Object.is(i.coordinator,this))throw new Ve;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new le;throw new ue}throw new ue}#b(e){if(e.status!=="live")throw new Ee}#X(e,t,n,o){let r=x(this.#e,t,n);D(this.#e,o),this.#b(e),this.#x(t,r,o)}#O(e,t,n,o,r){let i=t,s=new y;this.#X(e,i,s,n);let a=this.#T();try{if(o==="set")this.#P(a,e,i,r,s);else if(o==="update")this.#I(a,e,i,r,s,n);else this.#M(a,e,i,s)}catch(d){throw a.close(),a.release(),d}a.close();try{this.#F(a)}finally{a.release()}}#$(e){let t=this.#u,n=t?.get(e);if(n===void 0)return;let o=0;for(let r of n.values()){let i=r.head;while(i!==void 0){let s=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=s}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#u=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#R(e,t,n,o,r){let i=x(this.#e,n,o);he(this.#e,e.transaction,e.active),this.#b(t),this.#x(n,i,r)}#x(e,t,n){if(t==="invalid"||!this.#e.atoms.has(e))throw TypeError(`${n} requires a valid Atom`)}#P(e,t,n,o,r){let i=_(this.#e,r,()=>ne(o));if(i.kind==="error")throw i.error;let s=this.#N(e,t,n,r);this.#U(e,t,n,i.value,s,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let s=this.#N(e,t,n,r),a=e.hasIntents?this.#v(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let d=this.#J(o,a.value,r);this.#U(e,t,n,d,s,r)}#M(e,t,n,o){this.#N(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0}):this.#z(e,t.parent,n,o);if(r.outcome.kind!=="value")throw r.outcome.error;let i=r.reachesFallback&&e.hasFallback(n);e.stage(t,Object.freeze({kind:"reset",atom:n,publishDraftFallback:i}))}#N(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),s=t,a;while(s!==void 0){if(s.atomOverrides.has(n)){a=R(s.atomOverrides.get(n));break}s=s.parent}let d=a===void 0,c=Object.freeze({owned:i,outcome:a??this.#C(e,n,o),reachesFallback:d});return e.setAtomBaseline(t,n,c),c}#v(e,t,n,o){return this.#z(e,t,n,o).outcome}#z(e,t,n,o){let r=t;while(r!==void 0){let i=e.getIntent(r,n);if(i?.kind==="set")return Object.freeze({outcome:R(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:R(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0})}#C(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return R(r.fallback.value);let i=r.fallback.initialize,s=e.getFallback(t);if(s!==void 0)return s;let a=ft(_(this.#e,n,()=>je(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#g(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#Z(r,t,n,o)?t:n}#Z(e,t,n,o){return _(this.#e,o,()=>{let r;try{r=e(t,n)}catch(s){let a=C(s);if(a.kind==="not-thenable")throw s;if(a.kind==="inspection-error")throw a.error;throw E(a),new te}let i=C(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw E(i),new te;if(r!==!0&&r!==!1)throw new te;return r})}#J(e,t,n){return _(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let s=C(i);if(s.kind==="not-thenable")throw i;if(s.kind==="inspection-error")throw s.error;throw E(s),new ee}let r=ne(o);if(r.kind==="error")throw r.error;return r.value})}#F(e){if(!e.hasIntents)return;let{singleIntent:t,singleIntentScope:n}=e;if(t?.kind==="reset"&&n!==void 0&&!t.publishDraftFallback&&e.getAtomBaseline(n,t.atom)?.owned===!1)return;let o=Bt(this.instrumented?()=>this.recordCounter("commitWorksetAllocations"):void 0),r,i;if(t!==void 0&&n!==void 0)r=this.#_(e,n,t,o);else e.forEachIntent((a,d)=>{let c=this.#_(e,a,d,o);if(r===void 0){r=c;return}if(i===void 0)i=[];i.push(c)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#B(e,r),i!==void 0)for(let a of i)this.#B(e,a);let s=this.#H(r);if(i!==void 0)for(let a of i){let d=this.#H(a);s||=d}if(this.#L(r),i!==void 0)for(let a of i)this.#L(a);this.#se();try{let a,d,c=o.affectedRecord,l=o.affectedBefore;if(c!==void 0&&l!==void 0)a=this.#E(o,c,l);let{secondAffectedRecord:h,secondAffectedBefore:A}=o;if(h!==void 0&&A!==void 0){let f=this.#E(o,h,A);if(f!==void 0)if(a===void 0)a=f;else d=[f]}if(o.affected!==void 0)for(let[f,p]of o.affected){let P=this.#E(o,f,p);if(P===void 0)continue;if(a===void 0)a=P;else{if(d===void 0)d=[];d.push(P)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(d?.length??0)),this.#ie(a,d)}catch(a){throw this.#k(),a}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#G(e,t,n.atom,o);let i=Object.freeze({scope:t,intent:n,ownershipChanged:n.kind==="set"?!r.owned||!Object.is(t.atomOverrides.get(n.atom),n.value):r.owned}),s=t.getAtomView(n.atom);if(s!==void 0)this.#ee(e,s,o);return i}#B(e,t){if(!t.intent.publishDraftFallback)return;let n=e.getFallback(t.intent.atom);if(n!==void 0&&!this.#t.has(t.intent.atom))this.#t.set(t.intent.atom,n),this.recordCounter("fallbackPublications")}#H(e){let{intent:t,scope:n}=e;if(t.kind==="set")n.atomOverrides.set(t.atom,t.value);else n.atomOverrides.delete(t.atom);return e.ownershipChanged}#L({scope:e,intent:t}){let n=e.getAtomView(t.atom);if(n===void 0)return;if(t.kind==="set"||e.parent===void 0)e.detachAtomView(n);else e.attachAtomView(n,this.#oe(e.parent,t.atom))}#E(e,t,n){let o=Fe(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),ht(n,o))return;return t.scope.updateAtomView(t,o),t}#ee(e,t,n){let o=[t];while(o.length!==0){let r=o.pop();if(!Lt(n,r))continue;let i=r.served.outcome,s=this.#G(e,r.scope,r.atom,n);if(ht(i,s))continue;Gt(n,r,i);let a=o.length;r.inheritingChildren.forEach((d)=>{this.recordCounter("routeVisits"),o.push(d)});for(let d=a,c=o.length-1;d<c;d++,c--){let l=o[d];o[d]=o[c],o[c]=l}}}#G(e,t,n,o){let r=Fe(o,n,t);if(r!==void 0)return r;let i=t,s,a,d;while(i!==void 0){let c=Fe(o,n,i);if(c!==void 0){d=c;break}if(s===void 0)s=i;else{if(a===void 0)a=[];a.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){d=R(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){d=R(i.atomOverrides.get(n));break}i=i.parent}if(d??=this.#te(e,n),s!==void 0)mt(o,n,s,d),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let c of a)mt(o,n,c,d),this.recordCounter("finalPreflightVisits");return d}#te(e,t){let n=this.#t.get(t);if(n!==void 0)return n;let o=e.getFallback(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return R(r.fallback.value);throw Error("Final Atom fallback was not resolved during staging")}#ne(e){let t=this.#t.get(e);if(t!==void 0)return t;let n=this.#g(e);if(n.fallback.kind==="eager")return R(n.fallback.value);throw Error("Committed Atom fallback is not materialized")}#oe(e,t){let n=e,o=[],r;while(!0){let i=n.getAtomView(t);if(i!==void 0){r=i;break}if(n.atomOverrides.has(t)){r=n.createAtomView(t,R(n.atomOverrides.get(t)));break}if(n.parent===void 0){r=n.createAtomView(t,this.#ne(t));break}o.push(n),n=n.parent}for(let i=o.length-1;i>=0;i--)r=o[i].createAtomView(t,r.served.outcome,r);return r}serveScopeAtom(e,t,n){let o=e,r=[],i;while(!0){let s=o.getAtomView(t);if(s!==void 0){i=s;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,R(o.atomOverrides.get(t)));break}if(o.parent===void 0){i=o.createAtomView(t,this.#re(t,n));break}this.recordCounter("warmParentHops"),r.push(o),o=o.parent}for(let s=r.length-1;s>=0;s--)i=r[s].createAtomView(t,i.served.outcome,i);return i.served}#re(e,t){let n=this.#t.get(e);if(n!==void 0)return n;let o=this.#g(e);if(o.fallback.kind==="eager")return R(o.fallback.value);let r=o.fallback.initialize,i=ft(_(this.#e,t,()=>je(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#g(e){let t=this.#e.atoms.get(e);if(t===void 0)throw TypeError("Unknown committed StoreTree Atom");return t}#ie(e,t){if(e===void 0){this.#k();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#c=void 0,this.#d=0,this.#l=void 0,this.#h=void 0,this.#a=!0;let n;try{if(e.scope.markDependents(e.atom),t!==void 0)for(let r of t)r.scope.markDependents(r.atom);let o=0;while(o<this.#r.length){let r=this.#r[o++],i=this.#r[o++];this.#D(r,i)}}finally{n=this.#h,this.#h=void 0,this.#a=!1,this.#r=void 0,this.#s=void 0,this.#c=void 0,this.#d=0,this.#l=void 0}this.#ae(n)}#se(){this.#S=void 0,this.#p=void 0,this.#y=this.#u===void 0?0:this.#A++}#k(){this.#y=0,this.#S=void 0,this.#p=void 0}reachSubscriptionTarget(e,t){let n=this.#y,o=this.#u?.get(e)?.get(t);if(n===0||o===void 0||o.reachedEpoch===n)return;if(o.reachedEpoch=n,this.instrumented)this.recordCounter("notificationTargetsReached");if(this.#S===void 0){this.#S=o;return}if(this.#p===void 0)this.#p=[o];else this.#p.push(o)}#ae(e){let t=this.#S;if(t===void 0){if(this.#k(),e!==void 0)throw e;return}let n,o,r=(c)=>{let l=c.head;while(l!==void 0){let h=l.callback;if(h!==void 0)if(n===void 0)n=h;else if(o===void 0)o=[n,h];else o.push(h);l=l.next}};r(t);let i=this.#p;if(i!==void 0)for(let c of i)r(c);if(this.#k(),n===void 0){if(e!==void 0)throw e;return}let s=Object.freeze(o??[n]),a=this.instrumented;if(a)this.recordCounter("notificationSnapshots");let d;for(let c of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new y,h=!1,A;try{Ye(this.#e,l,()=>{try{let f=c(),p=C(f);if(p.kind==="thenable")E(p);else if(p.kind==="inspection-error")h=!0,A=p.error}catch(f){h=!0,A=f;let p=C(f);if(p.kind==="thenable")E(p)}})}catch(f){h=!0,A=f}if(h){if(d===void 0)d=[];if(d.push(A),a)this.recordCounter("subscriberErrors")}}if(d===void 0){if(e!==void 0)throw e;return}throw new Ce(e===void 0?d:[e,...d])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#W(e,t)&St)!==0)return!0;return this.#w(e,t,St),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#D(e,t,n)}#D(e,t,n){if((this.#W(e,t)&(pt|ze))!==0)return;this.#w(e,t,ze);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let s of i)if(this.#e.selectors.has(s.node))this.#D(e,s.node)}if(e.isSelectorDirty(t)){let s=r===e.getSelectorGraphVersion();if(n!==void 0&&s)e.serve(t,n);else e.serve(t,new y)}this.#w(e,t,pt)}finally{this.#w(e,t,0,ze)}}#W(e,t){if(Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#s===void 0){this.#s=e,this.#c=t,this.#d=n&~o;return}if(Object.is(this.#s,e)&&Object.is(this.#c,t)){this.#d=(this.#d|n)&~o;return}let r=this.#l;if(r===void 0)r=new Map,this.#l=r;let i=r.get(e);if(i===void 0)i=new Map,r.set(e,i);i.set(t,((i.get(t)??0)|n)&~o)}latchPropagationControlFault(e){this.#h??=e}#U(e,t,n,o,r,i){let s=r.outcome.kind==="value"?this.#Q(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:s,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class Be{get;sub;set;update;reset;txn;scope;dispose;constructor(e,t,n){this.get=(o)=>e.get(t,o),this.sub=(o,r)=>e.sub(t,o,r),this.set=(o,r)=>e.set(t,o,r),this.update=(o,r)=>e.update(t,o,r),this.reset=(o)=>e.reset(t,o),this.txn=(o,r)=>e.txn(t,o,r),this.scope=function(o){return e.scope(t,arguments.length,o)},this.dispose=()=>e.dispose(t),t.installFacade(this),ie(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var yt=(e)=>{if(e.equal!==void 0&&typeof e.equal!=="function")throw TypeError("Atom equal must be a function");return{...e.name===void 0?{}:{name:e.name},...e.equal===void 0?{}:{equal:e.equal}}},gt=(e)=>{let t={states:new WeakSet,atoms:new WeakMap,selectors:new WeakMap,stores:new WeakMap,transactionCursors:new WeakMap,ownerToken:Object.freeze({}),activity:void 0},n=(d,c={})=>{let l=new y,h=_(t,l,()=>ne(d));if(h.kind==="error")throw h.error;let A=Se("atom",t.ownerToken);return t.states.add(A),t.atoms.set(A,Object.freeze({fallback:Object.freeze({kind:"eager",value:h.value}),...yt(c)})),A},o=(d,c={})=>{if(typeof d!=="function")throw TypeError("atomLazy requires an initializer function");let l=Se("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:d}),...yt(c)})),l},r=(d,c={})=>{if(typeof d!=="function")throw TypeError("selector requires a getter function");if(c.equal!==void 0&&typeof c.equal!=="function")throw TypeError("selector equal must be a function");let l=Se("selector",t.ownerToken),h=Object.freeze({node:l,get:d,...c.name===void 0?{}:{name:c.name},...c.equal===void 0?{}:{equal:c.equal}});return t.states.add(l),t.selectors.set(l,h),l},i=(d)=>{let c=new y;if(x(t,d,c)==="invalid")return;return t.stores.get(d)},a=Object.freeze({assertStore:(d)=>{let c=i(d);if(D(t,"adapter assertStore"),c===void 0)throw TypeError("assertStore requires a valid Store")},read:(d,c)=>{if(i(d)===void 0)throw xe(t,"adapter read"),TypeError("read requires a valid Store");return d.get(c)},subscribe:(d,c,l)=>{if(i(d)===void 0)throw D(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return d.sub(c,l)},readHydrationSnapshot:(d,c)=>{let l=i(d);if(l===void 0)throw D(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,c)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(d=e,c)=>{D(t,"createStoreTree");let l=new vt(t,d,c);return new Be(l,l.rootScope,c)}})};var Wt=gt(),fn=(e,t)=>Wt.createStoreTree(e,t);
2
- export{Z as a,it as b,Ne as c,Ce as d,q as e,K as f,Y as g,le as h,J as i,ee as j,te as k,Ee as l,De as m,Ve as n,ue as o,cn as p,Wt as q,fn as r};
@@ -1,2 +0,0 @@
1
- class z extends Error{seal(){Object.freeze(this)}}class de extends z{code="VALDRES_SELECTOR_GETTER_ERROR";selector;cause;constructor(e,t){super("Selector getter failed");this.name="SelectorGetterError",this.selector=e,this.cause=t,this.seal()}}class Te extends z{code="VALDRES_SELECTOR_DEPENDENCY_ERROR";dependency;cause;constructor(e,t){super("Selector dependency failed");this.name="SelectorDependencyError",this.dependency=e,this.cause=t,this.seal()}}class Z extends z{code="VALDRES_SELECTOR_CIRCULAR_DEPENDENCY";selector;path;constructor(e,t){super("Selector dependency graph must be acyclic");this.name="SelectorCircularDependencyError",this.selector=e,this.path=Object.freeze([...t]),this.seal()}}class F extends z{code="VALDRES_INVALID_SYNCHRONOUS_SELECTOR_RESULT";phase;constructor(e){super(`Selector ${e} returned or threw a thenable`);this.name="InvalidSynchronousSelectorResultError",this.phase=e,this.seal()}}class Oe extends z{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class ce extends z{code="VALDRES_SELECTOR_COMPARATOR_ERROR";selector;cause;constructor(e,t){super("Selector comparator failed");this.name="SelectorComparatorError",this.selector=e,this.cause=t,this.seal()}}class Re extends z{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var qe=Object.freeze({kind:"not-thenable"}),Ot=()=>{},Rt=Reflect.apply,Ke=Symbol.for("valdres.runtime-owner/v1");class k extends Error{seal(){Object.freeze(this)}}class Ne extends k{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class Ce extends k{code="VALDRES_SUBSCRIBER_NOTIFICATION";cause;causes;committed=!0;phase="notifying";source="owned-mutation";constructor(e){super("One or more Store subscribers threw during notification");this.name="SubscriberNotificationError",this.causes=Object.freeze([...e]),this.cause=this.causes[0],this.seal()}}class q extends k{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class K extends k{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class Y extends k{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class le extends k{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends k{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class ee extends k{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class te extends k{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class Ee extends k{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class De extends k{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Ve extends k{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class ue extends k{code="VALDRES_INVALID_TRANSACTION_TARGET";constructor(){super("Transaction.scope requires a Store or named child");this.name="InvalidTransactionTargetError",this.seal()}}var C=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return qe;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):qe}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},E=(e)=>{try{Rt(e.then,e.target,[void 0,Ot])}catch{}},ne=(e)=>{let t=C(e);if(t.kind==="not-thenable")return Object.freeze({kind:"value",value:e});if(t.kind==="inspection-error")return Object.freeze({kind:"error",error:t.error});return E(t),Object.freeze({kind:"error",error:new ee})},je=(e)=>{try{return ne(e())}catch(t){let n=C(t);if(n.kind==="not-thenable")return Object.freeze({kind:"error",error:t});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return E(n),Object.freeze({kind:"error",error:new ee})}},oe=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},_=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"guarded-callback",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},Ye=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"subscriber",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},re=(e,t,n)=>oe(e,Object.freeze({kind:"selector",session:t}),n),Xe=(e,t,n)=>oe(e,Object.freeze({kind:"transaction",transaction:t}),n),fe=(e,t,n)=>{try{let o=oe(e,Object.freeze({kind:"transaction-result",session:t}),n),r=t.getControlFault();if(r.kind==="fault")throw r.error;return o}catch(o){let r=t.getControlFault();if(r.kind==="fault")throw r.error;throw o}},D=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="selector")throw new K(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new Y;throw new q},xe=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new K(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new Y;throw new q},$e=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new K("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new Y;throw new q},he=(e,t,n)=>{if(!n)throw new le;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new K("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new q;throw new Y},Qe=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},U=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";if((typeof t==="object"||typeof t==="function")&&t!==null){let o=Object.getOwnPropertyDescriptor(t,Ke);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new Ne;throw Qe(e,n).latchControlFault(r),r}}return"invalid"},x=(e,t,n)=>{if((typeof t==="object"||typeof t==="function")&&t!==null&&(e.states.has(t)||e.stores.has(t)||e.transactionCursors.has(t)))return"local";let o=e.activity,r=Qe(e,n);if(o!==void 0&&"session"in o)try{let i=U(e,t,r),s=r.getControlFault();if(s.kind==="fault")throw s.error;return i}catch(i){let s=r.getControlFault();if(s.kind==="fault")throw s.error;throw i}return _(e,r,()=>U(e,t,r))},ie=(e,t)=>(Object.defineProperty(e,Ke,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),Se=(e,t)=>Object.freeze(ie({kind:e},t));var Ze=Object.freeze({kind:"not-thenable"}),Nt=()=>{},Ct=Reflect.apply,Je=Symbol("selector dependency path root"),nt=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Ze;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Ze}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},ot=(e)=>{try{Ct(e.then,e.target,[void 0,Nt])}catch{}},Et=(e)=>Object.freeze(e),Dt=(e)=>Object.freeze(e),O=(e,t,n,o)=>{let r=Dt(o);return Object.freeze({selector:e,token:t,outcome:Et(n),dependencies:r,attemptedPrefix:n.kind==="value"?Vt:Object.freeze(r.map((i)=>i.node))})},Vt=Object.freeze([]),pe=32,se=8192,jt=2*pe;class rt{passiveSearches;searches=0;constructor(e,t){if(this.passiveSearches=e,t!==void 0)this.diagnostics=t}get enabled(){return this.disabled!==!0}beginSearch(){if(this.searches++,this.diagnostics!==void 0)this.diagnosticsCompleted=!1,this.mapProbes=0,this.prunedNodes=0;let e=this.enabled&&this.searches>this.passiveSearches&&this.first!==void 0;if(e)this.consultCurrentSearch=!0,this.hits=0;else if(this.consultCurrentSearch===!0)this.consultCurrentSearch=void 0;if(e&&this.passiveOrigin===!0&&this.searches===this.passiveSearches+1)this.passiveProbeBudget=Math.min(se,2*this.first.size);return e}hasProvenNoPath(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){if(t.has(e))return this.hits=(this.hits??0)|1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){if(n.has(e))return this.hits=(this.hits??0)|2,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}hasProvenNoPathMeasured(e){if(!this.enabled)return!1;let t=this.first;if(t!==void 0){if(this.mapProbes=(this.mapProbes??0)+1,t.has(e))return this.hits=(this.hits??0)|1,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}let n=this.second;if(n!==void 0){if(this.mapProbes=(this.mapProbes??0)+1,n.has(e))return this.hits=(this.hits??0)|2,this.prunedNodes=(this.prunedNodes??0)+1,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,!0;let o=this.passiveProbeBudget;if(o!==void 0){if(this.passiveProbeBudget=o-1,o===1)return this.disable("passive-probe-budget"),!1}}return!1}completeNegative(e){if(!this.enabled)return;if(this.searches<=this.passiveSearches){let n=e.size>=pe&&e.size<=se,o;if(this.searches===1&&n)this.first=e,this.passiveOrigin=!0,o="initial";else if(this.searches===this.passiveSearches&&n)o=this.first===void 0?"initial":"activation-replacement",this.first=e,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0;this.completeDiagnostics(o);return}if((this.hits??0)!==0){if(e.size>se){this.disable("over-cap-hit");return}let n=this.first,o=this.second;this.first=void 0,this.second=void 0,this.retain(n),this.retain(o);let r=this.retain(e);this.locked=!0,this.missWork=0,this.completeDiagnostics(r?"hit-derived":void 0);return}if(e.size===1){this.completeDiagnostics();return}let t=e.size>=pe&&e.size<=se;if(this.first===void 0){if(t)this.first=e;this.completeDiagnostics(t?"initial":void 0);return}if(this.missWork=(this.missWork??0)+Math.min(e.size,pe),this.locked!==!0&&this.second===void 0&&t){this.second=e,this.completeDiagnostics("secondary");return}if((this.missWork??0)>=jt){this.disable("miss-budget");return}this.completeDiagnostics()}completePositive(){this.completeDiagnostics()}reset(){this.first=void 0,this.second=void 0,this.hits=void 0,this.missWork=void 0,this.locked=void 0,this.disabled=void 0,this.searches=0,this.consultCurrentSearch=void 0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.diagnosticsCompleted=void 0,this.mapProbes=void 0,this.prunedNodes=void 0}retain(e){if(e===void 0||e.size>se||e===this.first)return!1;if(this.first===void 0||e.size>this.first.size)return this.second=this.first,this.first=e,!0;if(this.second===void 0||e.size>this.second.size)return this.second=e,!0;return!1}disable(e){this.first=void 0,this.second=void 0,this.missWork=void 0,this.disabled=!0,this.passiveOrigin=void 0,this.passiveProbeBudget=void 0,this.completeDiagnostics(void 0,e)}completeDiagnostics(e,t){let n=this.diagnostics;if(n===void 0||this.diagnosticsCompleted===!0)return;this.diagnosticsCompleted=!0;let o=this.mapProbes??0;n.completeSearch(this.consultCurrentSearch===!0?(this.hits??0)!==0?"consulted-pruned":"consulted-no-prune":"observing",e,t,o,this.prunedNodes??0,(this.first?.size??0)+(this.second?.size??0))}}var xt=(e,t)=>new rt(e,t),Pt=(e,t,n,o,r,i,s)=>{let a=s?.beginSearch()??!1,d=[e],c=new Map([[e,Je]]);while(d.length>0){let l=d.pop();if(Object.is(l,t)){let f=[],p=l;while(p!==Je)f.push(p),p=c.get(p);return f.reverse(),s?.completePositive(),Object.freeze(f)}let h=o.getTransientDependencies(n,l);if(h){if(h.length===0)continue;if(a){let f=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(f)continue}for(let f of h){if(c.has(f.node))continue;c.set(f.node,l),d.push(f.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let f=n.getSelectorDependencyNodes(l);if(f===void 0||f.length===0)continue;if(a){let p=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(p)continue}for(let p of f){if(c.has(p))continue;c.set(p,l),d.push(p)}continue}let A=n.getSelectorRecord(l);if(!A||A.dependencies.length===0)continue;if(a){let f=s.hasProvenNoPath(l);if(!s.enabled)a=!1;if(f)continue}for(let f of A.dependencies){if(c.has(f.node))continue;c.set(f.node,l),d.push(f.node)}}s?.completeNegative(c);return},et=(e,t)=>{let n=nt(e);if(n.kind==="thenable")return ot(n),new F(t);if(n.kind==="inspection-error")return n.error;return e},tt=(e,t)=>{let n=nt(e);if(n.kind==="thenable")return ot(n),Object.freeze({kind:"error",error:new F(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},it=(e,t,n,o=Pt,r)=>{let{node:i}=e,s=[],a=t.getSelectorRecord(i),d=a?.dependencies,c=d===void 0?new Set:void 0,l,h=0,A=t.getComparisonBaseline(i),f=!0,p=()=>{let u=c;if(u!==void 0)return u;u=new Set;for(let S of s)u.add(S.node);return c=u,u};n.enter(t,i,s);let P=t.getSelectorGraphVersion(),Ae=n.getSelectorGraphPublicationCount(t),M=P,B=Ae,He=P,Le=Ae,be,ve=!1,Ge=P,ge=0,H,kt=(u)=>{if(u!==Ge){if(Ge=u,ge=0,H!==void 0)H.reset(),r?.graphVersionReset()}if(ge++,(d?.length??0)===0&&ge<3){r?.admissionSkipped();return}if(H===void 0){let S=d!==void 0&&d.length>0&&d.length<3;H=xt(S?3:0,r)}if(!H.enabled){r?.disabled();return}return H},wt=(u)=>{if(ve)return;let S=t.beginSelectorGraphObservation?.(u);if(S===void 0)return;ve=!0,be=S},ke=(u,S,b,v)=>b-u===v-S,We=(u=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t),b=ke(M,B,u,S))=>{if(u===M)return;if(!ve&&t.beginSelectorGraphObservation!==void 0){M=u,B=S;return}let v=be?.takeAddedEdges();if(b){M=u,B=S;return}if(v!==void 0){let g=!1;for(let T of v)if(o(T.head,T.tail,t,n,2,s.length)!==void 0){g=!0;break}if(!g){M=u,B=S;return}}for(let g=0;g<s.length;g++){let T=s[g],N=o(T.node,i,t,n,0,s.length);if(!N)continue;if(c!==void 0)for(let V=s.length-1;V>=g;V--)c.delete(s[V].node);if(s.length=g,h++,n.getControlFault().kind==="fault")return;let w=new Z(i,[i,...N]);n.latchCycle(t,i,w);return}M=u,B=S},we=()=>{let u=t.getSelectorGraphVersion(),S=n.getSelectorGraphPublicationCount(t);He=u,Le=S;let b=ke(M,B,u,S);if(!b)n.revalidateAncestorPrefixes(t,i);We(u,S,b)};n.setPrefixRevalidator(t,i,We);let Tt=(u)=>{if(!f)throw new Re;let S=n.getControlFault();if(S.kind==="fault")throw S.error;let b=n.getCycle(t,i);if(b!==void 0)throw b;let v=n.activeCyclePath(t,u);if(v){let m=new Z(i,v);throw n.latchCycle(t,i,m),m}let g=s.length,T,N=!1;if(c===void 0){let m=d?.[g];if(m!==void 0&&Object.is(m.node,u))T=!1,N=!0;else T=p().has(u)}else T=c.has(u);if(!T&&!N&&d!==void 0&&d.length>0){let m=d[s.length];if(m!==void 0&&Object.is(m.node,u))N=!0;else{if(l===void 0){l=new Set;for(let W of d)l.add(W.node)}N=l.has(u)}}let L=h,w=t.serve(u,n);we();let V=n.getCycle(t,i);if(V!==void 0)throw V;let X=c!==void 0?c.has(u):h===L&&s.length===g?!1:p().has(u),I=He,G=Le,j=X||N&&I===P,ae=d===void 0&&ke(P,Ae,I,G);if(!j&&!ae){let m=o(u,i,t,n,1,s.length,kt(I));if(m){let W=n.getControlFault();if(W.kind==="fault")throw W.error;let Ue=new Z(i,[i,...m]);throw n.latchCycle(t,i,Ue),Ue}}if(!X){let m=a?.dependencies[s.length];c?.add(u),s.push(m!==void 0&&Object.is(m.node,u)&&Object.is(m.token,w.token)?m:Object.freeze({node:u,token:w.token})),wt(u)}if(M=I,B=G,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let m=n.getControlFault();if(m.kind==="fault")throw m.error;throw w.outcome.error}let Q=n.getControlFault();if(Q.kind==="fault")throw Q.error;if(w.outcome.kind==="error")throw new Te(u,w.outcome.error);return w.outcome.value};try{let u,S,b=!1;try{u=e.get(Tt)}catch(V){b=!0,S=V}finally{f=!1}if(b)S=et(S,"getter");let v=b?void 0:tt(u,"getter");we();let g=n.getControlFault();if(g.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:g.error},s);let T=n.getCycle(t,i);if(T!==void 0)return O(i,t.createOutcomeToken(),{kind:"error",error:T},s);if(b)return O(i,t.createOutcomeToken(),{kind:"error",error:S instanceof F?S:new de(i,S)},s);if(v===void 0)throw Error("Selector result classification was not completed");let N=n.getControlFault();if(N.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:N.error},s);if(v.kind==="error")return O(i,t.createOutcomeToken(),{kind:"error",error:v.error instanceof F?v.error:new de(i,v.error)},s);let L=v.value,w;if(A){let V=e.equal??Object.is,X,I,G=!1;try{X=V(A.value,L)}catch(W){G=!0,I=et(W,"comparator")}let j=G?void 0:tt(X,"comparator");we();let ae=n.getControlFault();if(ae.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:ae.error},s);let Q=n.getCycle(t,i);if(Q!==void 0)return O(i,t.createOutcomeToken(),{kind:"error",error:Q},s);if(G)return O(i,t.createOutcomeToken(),{kind:"error",error:I instanceof F?I:new ce(i,I)},s);if(j===void 0)throw Error("Selector comparator classification was not completed");let m=n.getControlFault();if(m.kind==="fault")return O(i,t.createOutcomeToken(),{kind:"control-error",error:m.error},s);if(j.kind==="error")return O(i,t.createOutcomeToken(),{kind:"error",error:j.error instanceof F?j.error:new ce(i,j.error)},s);if(j.value!==!0&&j.value!==!1)return O(i,t.createOutcomeToken(),{kind:"error",error:new Oe},s);if(j.value===!0)L=A.value,w=A.current?A.token:void 0}return O(i,w??t.createOutcomeToken(),{kind:"value",value:L},s)}finally{try{be?.close()}finally{n.leave(t,i)}}};class y{#t=[];#n;#o=0;#i;#a=It;latchControlFault(e){if(this.#a.kind==="fault")return;this.#a=Object.freeze({kind:"fault",error:e})}getControlFault(){return this.#a}noteSelectorGraphPublication(e){let t=this.#n;if(t===void 0){this.#n=e,this.#o=1;return}if(Object.is(t,e)){this.#o++;return}let n=this.#i??(this.#i=new WeakMap);n.set(e,(n.get(e)??0)+1)}getSelectorGraphPublicationCount(e){return Object.is(this.#n,e)?this.#o:this.#i?.get(e)??0}enter(e,t,n){this.#t.push({host:e,selector:t,dependencyPrefix:n,revalidatePrefix:void 0,cycleError:void 0})}leave(e,t){let n=this.#t.pop();if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame corruption")}isActive(e,t){return this.#t.some((n)=>Object.is(n.host,e)&&Object.is(n.selector,t))}activeCyclePath(e,t){let n=this.#t.findIndex((o)=>Object.is(o.host,e)&&Object.is(o.selector,t));if(n===-1)return;return Object.freeze([...this.#t.slice(n).filter((o)=>Object.is(o.host,e)).map((o)=>o.selector),t])}setPrefixRevalidator(e,t,n){let o=this.#r(e,t);if(o.revalidatePrefix!==void 0)throw Error("Selector prefix revalidator is already installed");o.revalidatePrefix=n}revalidateAncestorPrefixes(e,t){this.#r(e,t);for(let n=0;n<this.#t.length-1;n++){let o=this.#t[n];if(!Object.is(o.host,e))continue;let r=o.revalidatePrefix;if(r===void 0)throw Error("Selector prefix revalidator is not installed");r()}}getTransientDependencies(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o.dependencyPrefix}return}latchCycle(e,t,n){let o=this.#s(e,t);o.cycleError??=n}getCycle(e,t){return this.#r(e,t).cycleError}#r(e,t){let n=this.#t[this.#t.length-1];if(!n||!Object.is(n.host,e)||!Object.is(n.selector,t))throw Error("Selector evaluation frame is not active");return n}#s(e,t){for(let n=this.#t.length-1;n>=0;n--){let o=this.#t[n];if(Object.is(o.host,e)&&Object.is(o.selector,t))return o}throw Error("Selector evaluation frame is not active")}}var It=Object.freeze({kind:"none"});var st=Symbol("no-committed-selector-baseline");class me{#t;#n=new Map;#o=new Map;#i=new Map;#a;#r=1;#s=0;#c;constructor(e,t,n){this.#t=e,this.#a=t,this.#c=n}readSelector(e){let t=new y,n=this.serve(e,t);if(n.outcome.kind!=="value")throw n.outcome.error;return n.outcome.value}advanceGeneration(e){if(e!==this.#a+1)throw Error("Scratch selector generation is not contiguous");this.#a=e,this.#n.clear(),this.#o.clear()}revoke(){this.#n.clear(),this.#o.clear(),this.#i.clear(),this.#t=void 0}serve(e,t){let n=this.#d(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let d=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,d),d}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#c(o.definition,this,t));if(i.outcome.kind==="control-error")throw i.outcome.error;let s=Object.freeze({token:i.token,outcome:i.outcome});return this.#s++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:s,dependencies:i.dependencies})),s}getSelectorRecord(e){let t=this.#n.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorGraphVersion(){return this.#s}getComparisonBaseline(e){let t=this.#i.get(e);if(t===void 0)t=this.#d().captureCommittedSelectorSuccess(e)??st,this.#i.set(e,t);return t===st?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#d(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var at=4096,Mt=Object.freeze([]);class ct{onDeadReference;onEmptinessProbe;#t=new WeakMap;#n=new Set;constructor(e,t){this.onDeadReference=e;this.onEmptinessProbe=t}add(e){if(this.#t.has(e))return;let t=new WeakRef(e);this.#t.set(e,t),this.#n.add(t)}delete(e){let t=this.#t.get(e);if(t===void 0)return;this.#t.delete(e),this.#n.delete(t)}forEach(e){for(let t of this.#n){let n=t.deref();if(n===void 0){this.#n.delete(t),this.onDeadReference?.();continue}e(n)}}isEmpty(){for(let e of this.#n){if(this.onEmptinessProbe?.(),e.deref()!==void 0)return!1;this.#n.delete(e),this.onDeadReference?.()}return!0}clear(){this.#n.clear(),this.#t=new WeakMap}}class ye{coordinator;parent;name;children;namedChildren=new Map;atomOverrides=new WeakMap;#t=new WeakMap;#n;#o=new WeakMap;#i;#a=new WeakMap;#r=new WeakSet;#s=0;#c=0;#d;#l=!1;#h;#u="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#m(),this.#n=this.#m()}get status(){return this.#u}get facade(){if(this.#h===void 0)throw Error("Store scope facade is not installed");return this.#h}installFacade(e){if(this.#h!==void 0)throw Error("Store scope facade is already installed");this.#h=e}markDisposing(){if(this.#u==="live")this.#u="disposing"}markDisposed(){this.#u="disposed"}getAtomView(e){return this.#t.get(e)}getMaterializedServedOutcome(e){let t=this.#t.get(e);if(t!==void 0)return t.served;let n=e,o=this.#o.get(n);return o!==void 0&&!this.#r.has(n)?o.served:void 0}createAtomView(e,t,n){let o=this.#t.get(e);if(o!==void 0)return o;let r={scope:this,atom:e,served:Object.freeze({token:this.createOutcomeToken(),outcome:t}),inheritedFrom:n,inheritingChildren:this.#m()};if(this.#t.set(e,r),this.#n.add(r),n!==void 0)n.inheritingChildren.add(r),this.coordinator.recordCounter("routeAdds");return r}attachAtomView(e,t){if(Object.is(e.inheritedFrom,t))return;this.detachAtomView(e),e.inheritedFrom=t,t.inheritingChildren.add(e),this.coordinator.recordCounter("routeAdds")}detachAtomView(e){if(e.inheritedFrom===void 0)return;e.inheritedFrom.inheritingChildren.delete(e),e.inheritedFrom=void 0,this.coordinator.recordCounter("routeRemoves")}updateAtomView(e,t){e.served=Object.freeze({token:this.createOutcomeToken(),outcome:t}),this.coordinator.reachSubscriptionTarget(this,e.atom)}captureCommittedSelectorSuccess(e){let t=this.#o.get(e)?.lastSuccess;return t===void 0?void 0:Object.freeze({value:t.value})}isSelectorDirty(e){return this.#r.has(e)}getCommittedSelectorDependencies(e){return this.#o.get(e)?.dependencies}markDependents(e){this.#a.get(e)?.forEach((t)=>{if(this.coordinator.enqueueSelector(this,t))this.#r.add(t)})}dropRecords(){this.#n.forEach((e)=>{this.detachAtomView(e),e.inheritingChildren.clear()}),this.#n.clear(),this.atomOverrides=new WeakMap,this.#t=new WeakMap,this.#o=new WeakMap,this.#i=void 0,this.#a=new WeakMap,this.#r=new WeakSet,this.#s++,this.#e()}serve(e,t){let n=this.coordinator.runtimeDomain;if(U(n,e,t)==="invalid")throw TypeError("Selector get requires a valid State");return this.serveKnownLocal(e,t)}serveKnownLocal(e,t){let n=this.coordinator.runtimeDomain;if(n.atoms.has(e)){let a=this.#t.get(e);if(a!==void 0)return a.served;return this.coordinator.serveScopeAtom(this,e,t)}let o=n.selectors.get(e);if(o===void 0)throw TypeError("Unknown committed StoreTree state");let r=e,i=this.#o.get(r);if(i!==void 0&&this.coordinator.postSourceApply)this.coordinator.prepareSelectorRead(this,r,t),i=this.#o.get(r);if(i!==void 0&&!this.#r.has(r))return i.served;let s=re(n,t,()=>this.coordinator.evaluate(o,this,t));if(s.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw s.outcome.error;return this.#A(r,s,t)}getSelectorRecord(e){let t=this.#o.get(e);return t===void 0?void 0:Object.freeze({dependencies:t.dependencies})}getSelectorDependencyNodes(e){let t=this.#o.get(e);if(t===void 0)return;let n=e,o=this.#i?.get(n);if(o===void 0){let r=[];for(let s of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(s.node))r.push(s.node);o=Object.freeze(r);let i=this.#i;if(i===void 0)i=new WeakMap,this.#i=i;i.set(n,o)}return o}getSelectorGraphVersion(){return this.#s}beginSelectorGraphObservation(e){if(!this.coordinator.runtimeDomain.selectors.has(e))return;if(this.#c===0)this.#d=[],this.#l=!1;this.#c++;let t=this.#d?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#d;if(o===void 0)return;if(t===o.length)return Mt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#c--,this.#c!==0)return;this.#d=void 0,this.#l=!1}})}getComparisonBaseline(e){let t=this.#o.get(e);if(t?.lastSuccess===void 0)return;return t.served.outcome.kind==="value"?Object.freeze({current:!0,value:t.lastSuccess.value,token:t.served.token}):Object.freeze({current:!1,value:t.lastSuccess.value})}createOutcomeToken(){return this.coordinator.createOutcomeToken()}#A(e,t,n){let o=this.#o.get(e),r=Object.freeze({token:t.token,outcome:t.outcome}),i=Object.freeze({served:r,dependencies:t.dependencies,lastSuccess:t.outcome.kind==="value"?Object.freeze({value:t.outcome.value,token:t.token}):o?.lastSuccess}),s=this.#y(e,o?.dependencies??dt,t.dependencies),a=s?this.#S(e,o?.dependencies??dt,t.dependencies):void 0;if(s)this.#i?.delete(e);if(this.#s++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),a!==void 0)this.#p(a);if(o!==void 0&&!Object.is(o.served.token,t.token))this.coordinator.reachSubscriptionTarget(this,e),this.markDependents(e);if(t.outcome.kind==="control-error")this.coordinator.latchPropagationControlFault(t.outcome.error);return r}#y(e,t,n){if(t.length===n.length){let o=0;while(o<t.length&&Object.is(t[o].node,n[o].node))o++;if(o===t.length)return!1}for(let o of t){let r=this.#a.get(o.node);if(r?.delete(e),r?.isEmpty())this.#a.delete(o.node)}for(let o of n){let r=this.#a.get(o.node);if(r===void 0)r=this.#m(),this.#a.set(o.node,r);r.add(e)}return!0}#S(e,t,n){if(this.#c===0||this.#l)return;let o=this.#d;if(o===void 0){this.#e();return}let r=at-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let d of t)if(i.has(d.node))s.add(d.node);let a=[];for(let d of n)if(i.has(d.node)&&!s.has(d.node)){if(a.push(Object.freeze({tail:e,head:d.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#d;if(t===void 0||t.length+e.length>at){this.#e();return}t.push(...e)}#e(){if(this.#c===0)return;this.#d=[],this.#l=!0}#m(){return new ct(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var dt=Object.freeze([]);class Pe{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#c;#d;#l;#h;#u;#A;#y;#S;#p;#e;generation=0;active=!0;constructor(e){this.#t=e}get hasIntents(){return this.#o!==void 0||this.#i!==void 0||this.#a!==void 0||this.#r!==void 0}get singleIntentScope(){return this.#n}get singleIntent(){return this.#i===void 0?this.#o:void 0}stage(e,t){let n=this.#r;if(n!==void 0){let i=n.get(e);if(i===void 0)i=this.#f(),n.set(e,i);i.set(t.atom,t),this.#m();return}let o=this.#a;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#f();i.set(this.#n,o);let s=this.#f();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#a=void 0,this.#n=void 0}this.#m();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#m();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#m();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#m();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#m();return}let s=this.#f();s.set(r.atom,r),s.set(i.atom,i),s.set(t.atom,t),this.#a=s}else{let i=this.#f(),s=this.#f();if(s.set(r.atom,r),this.#i!==void 0)s.set(this.#i.atom,this.#i);i.set(this.#n,s);let a=this.#f();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#m()}forEachIntent(e){let t=this.#o;if(t!==void 0){if(e(this.#n,t),this.#i!==void 0)e(this.#n,this.#i);return}let n=this.#a;if(n!==void 0){let r=this.#n;for(let i of n.values())e(r,i);return}let o=this.#r;if(o===void 0)return;for(let[r,i]of o)for(let s of i.values())e(r,s)}getIntent(e,t){let n=this.#o;if(n!==void 0&&Object.is(this.#n,e)&&Object.is(n.atom,t))return n;let o=this.#i;if(o!==void 0&&Object.is(this.#n,e)&&Object.is(o.atom,t))return o;if(Object.is(this.#n,e))return this.#a?.get(t);return this.#r?.get(e)?.get(t)}getAtomBaseline(e,t){if(this.#d!==void 0&&Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;if(this.#h!==void 0&&Object.is(this.#s,e)&&Object.is(this.#l,t))return this.#h;if(Object.is(this.#s,e))return this.#u?.get(t);return this.#A?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#A;if(o!==void 0){let s=o.get(e);if(s===void 0)s=this.#f(),o.set(e,s);if(!s.has(t))s.set(t,n);return}let r=this.#u;if(r!==void 0){if(Object.is(this.#s,e)){if(!r.has(t))r.set(t,n)}else{let s=this.#f();s.set(this.#s,r);let a=this.#f();a.set(t,n),s.set(e,a),this.#A=s,this.#u=void 0,this.#s=void 0}return}let i=this.#d;if(i===void 0){this.#s=e,this.#c=t,this.#d=n;return}if(Object.is(this.#s,e)&&Object.is(this.#c,t))return;if(Object.is(this.#s,e)){let s=this.#h;if(s===void 0){this.#l=t,this.#h=n;return}if(Object.is(this.#l,t))return;let a=this.#f();a.set(this.#c,i),a.set(this.#l,s),a.set(t,n),this.#u=a}else{let s=this.#f(),a=this.#f();if(a.set(this.#c,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#s,a);let d=this.#f();d.set(t,n),s.set(e,d),this.#A=s,this.#s=void 0}this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#y,e))return this.#S;return this.#p?.get(e)}hasFallback(e){return Object.is(this.#y,e)||(this.#p?.has(e)??!1)}setFallback(e,t){let n=this.#p;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#y=e,this.#S=t;return}if(Object.is(this.#y,e)){this.#S=t;return}let o=this.#f();o.set(this.#y,this.#S),o.set(e,t),this.#p=o,this.#y=void 0,this.#S=void 0}forEachFallback(e){if(this.#y!==void 0&&this.#S!==void 0)e(this.#y,this.#S);if(this.#p!==void 0)for(let[t,n]of this.#p)e(t,n)}#m(){this.generation+=1;let e=this.#e;if(e!==void 0)for(let t of e.values())t.advanceGeneration(this.generation)}getScratchHost(e){return this.#e?.get(e)}installScratchHost(e,t){let n=this.#e,o=n===void 0;if(n===void 0)n=new Map,this.#e=n;return n.set(e,t),o}close(){if(!this.active)return;this.active=!1;let e=this.#e;if(e!==void 0){for(let t of e.values())t.revoke();e.clear()}this.#e=void 0}release(){if(this.#a?.clear(),this.#r!==void 0){for(let e of this.#r.values())e.clear();this.#r.clear()}if(this.#u?.clear(),this.#A!==void 0){for(let e of this.#A.values())e.clear();this.#A.clear()}this.#p?.clear(),this.#n=void 0,this.#o=void 0,this.#i=void 0,this.#a=void 0,this.#r=void 0,this.#s=void 0,this.#c=void 0,this.#d=void 0,this.#l=void 0,this.#h=void 0,this.#u=void 0,this.#A=void 0,this.#y=void 0,this.#S=void 0,this.#p=void 0,this.#e?.clear(),this.#e=void 0}#f(){return this.#t?.(),new Map}}class lt{get;set;update;reset;scope;constructor(e,t,n){this.get=(o)=>e.transactionGet(t,n,o),this.set=(o,r)=>e.transactionSet(t,n,o,r),this.update=(o,r)=>e.transactionUpdate(t,n,o,r),this.reset=(o)=>e.transactionReset(t,n,o),this.scope=(...o)=>e.transactionScope(t,n,o[0],o.length,o[1]),ie(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var Ie=(e,t,n)=>new lt(e,t,n),Me=(e)=>{let t=C(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw E(t),new J},ut=(e)=>{let t=C(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw E(t),new J};var zt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},At=Object.freeze({sourceEpoch:0,routeVisits:1,deadRouteCompactions:2,scratchHostAllocations:3,propagationSettlements:4,disposalVisits:5,warmParentHops:6,scopeNodesCreated:7,storeFacadesCreated:8,namedScopeHits:9,namedScopeMisses:10,routeAdds:11,routeRemoves:12,fallbackPublications:13,draftCreations:14,scratchMapAllocations:15,finalResolutionVisits:16,finalPreflightVisits:17,draftStorageAllocations:18,commitWorksetAllocations:19,subscriptionIndexMapsCreated:20,subscriptionTargetsCreated:21,subscriptionRegistrations:22,subscriptionRemovals:23,unsubscribeClosuresCreated:24,activeSubscriptionScopes:25,activeSubscriptionTargets:26,activeSubscriptions:27,notificationTargetsReached:28,notificationSnapshots:29,subscriberCallbacksAttempted:30,subscriberErrors:31}),Ft=32,bt=new WeakMap,cn=()=>{let e=new Uint32Array(Ft),t=Object.freeze({read(n){return e[At[n]]??0}});return bt.set(t,e),t},R=(e)=>Object.freeze({kind:"value",value:e}),_t=(e)=>Object.freeze({kind:"error",error:e}),ft=(e)=>e.kind==="value"?R(e.value):_t(e.error),ht=(e,t)=>{if(e.kind!==t.kind)return!1;if(e.kind==="value"&&t.kind==="value")return Object.is(e.value,t.value);return e.kind!=="value"&&t.kind!=="value"&&Object.is(e.error,t.error)},St=1,ze=2,pt=4,Bt=(e)=>({onAllocation:e,preflightAtom:void 0,preflightScope:void 0,preflightOutcome:void 0,secondPreflightAtom:void 0,secondPreflightScope:void 0,secondPreflightOutcome:void 0,preflight:void 0,consideredRecord:void 0,secondConsideredRecord:void 0,considered:void 0,affectedRecord:void 0,affectedBefore:void 0,secondAffectedRecord:void 0,secondAffectedBefore:void 0,affected:void 0}),_e=(e)=>(e.onAllocation?.(),new Map),Ht=(e)=>(e.onAllocation?.(),new Set),Fe=(e,t,n)=>{if(e.preflightOutcome!==void 0&&Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return e.preflightOutcome;if(e.secondPreflightOutcome!==void 0&&Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return e.secondPreflightOutcome;return e.preflight?.get(t)?.get(n)},mt=(e,t,n,o)=>{if(e.preflightOutcome===void 0){e.preflightAtom=t,e.preflightScope=n,e.preflightOutcome=o;return}if(Object.is(e.preflightAtom,t)&&Object.is(e.preflightScope,n))return;if(e.secondPreflightOutcome===void 0){e.secondPreflightAtom=t,e.secondPreflightScope=n,e.secondPreflightOutcome=o;return}if(Object.is(e.secondPreflightAtom,t)&&Object.is(e.secondPreflightScope,n))return;let r=e.preflight;if(r===void 0)r=_e(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=_e(e),r.set(t,i);i.set(n,o)},Lt=(e,t)=>{if(Object.is(e.consideredRecord,t)||Object.is(e.secondConsideredRecord,t))return!1;if(e.consideredRecord===void 0)return e.consideredRecord=t,!0;if(e.secondConsideredRecord===void 0)return e.secondConsideredRecord=t,!0;let n=e.considered;if(n===void 0)n=Ht(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Gt=(e,t,n)=>{if(e.affectedRecord===void 0){e.affectedRecord=t,e.affectedBefore=n;return}if(e.secondAffectedRecord===void 0){e.secondAffectedRecord=t,e.secondAffectedBefore=n;return}let o=e.affected;if(o===void 0)o=_e(e),e.affected=o;o.set(t,n)};class vt{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#c;#d=0;#l;#h;#u;#A=1;#y=0;#S;#p;#e;#m;#f;evaluate;constructor(e,t,n){this.#e=e,this.#m=t===void 0?void 0:bt.get(t),this.#f=n,this.evaluate=n?.evaluate??it,this.#n=new ye(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#a}get instrumented(){return this.#m!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#m;if(n===void 0)return;n[At[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Pe(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new y,o=t,r=x(this.#e,o,n),i=xe(this.#e,"StoreTree.get");if(this.#b(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value")throw s.outcome.error;return s.outcome.value}try{let s=e.serveKnownLocal(o,n);if(s.outcome.kind!=="value"){if(s.outcome.kind==="control-error")i.latchControlFault(s.outcome.error);throw s.outcome.error}return s.outcome.value}catch(s){let a=n.getControlFault();if(a.kind==="fault")i.latchControlFault(a.error);throw s}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":x(this.#e,o,r=new y);if(D(this.#e,"StoreTree.sub"),this.#b(e),i==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("StoreTree.sub requires a valid State");if(typeof n!=="function")throw TypeError("StoreTree.sub requires a callback function");let s=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new y);if(s.outcome.kind==="control-error")throw s.outcome.error;let a=this.#u;if(a===void 0){if(a=new Map,this.#u=a,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let d=a.get(e);if(d===void 0){if(d=new Map,a.set(e,d),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let c=d.get(o);if(c===void 0){if(c={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},d.set(o,c),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:c,previous:c.tail,next:void 0};if(c.tail===void 0)c.head=l;else c.tail.next=l;if(c.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return zt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;$e(this.#e);let{previous:n,next:o}=e;if(n===void 0)t.head=o;else n.next=o;if(o===void 0)t.tail=n;else o.previous=n;e.callback=void 0,e.target=void 0,e.previous=void 0,e.next=void 0;let r=this.instrumented;if(r)this.recordCounter("subscriptionRemovals"),this.recordCounter("activeSubscriptions",-1);if(t.head!==void 0)return;let i=this.#u,s=i?.get(t.scope);if(s?.get(t.state)===t){if(s.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(s!==void 0&&s.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#u=void 0}set(e,t,n){this.#O(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#O(e,t,"StoreTree.update","update",n)}reset(e,t){this.#O(e,t,"StoreTree.reset","reset")}scope(e,t,n){if(t!==0&&(typeof n==="object"||typeof n==="function")&&n!==null)x(this.#e,n,new y);if(D(this.#e,"StoreTree.scope"),this.#b(e),t===0)return this.#j(e);if(t!==1||typeof n!=="string")throw TypeError("StoreTree.scope requires a string name");let o=e.namedChildren.get(n);if(o!==void 0)return this.recordCounter("namedScopeHits"),o.facade;return this.recordCounter("namedScopeMisses"),this.#j(e,n)}dispose(e){if(D(this.#e,"StoreTree.dispose"),e.status!=="live")return;let t=[],n=[Object.freeze({node:e,expanded:!1})];while(n.length>0){let{node:o,expanded:r}=n.pop();if(r){t.push(o);continue}o.markDisposing(),n.push(Object.freeze({node:o,expanded:!0}));let i=[];o.children.forEach((s)=>i.push(s));for(let s=i.length-1;s>=0;s--)n.push(Object.freeze({node:i[s],expanded:!1}))}for(let o of t){this.recordCounter("disposalVisits");let r=o.parent;if(r!==void 0){if(o.name!==void 0&&Object.is(r.namedChildren.get(o.name),o))r.namedChildren.delete(o.name);r.children.delete(o)}this.#$(o),o.dropRecords(),o.namedChildren.clear(),o.children.clear(),o.markDisposed()}if(Object.is(e,this.#n))this.#t=new WeakMap}txn(e,t,n){if(D(this.#e,"StoreTree.txn"),this.#b(e),typeof t!=="function"||n!==void 0&&typeof n!=="string")throw TypeError("StoreTree.txn requires a callback");let o=this.#T(),r=Ie(this,o,e),i;try{i=Xe(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new y;fe(this.#e,s,()=>Me(i)),this.#F(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new y,o=t,r=x(this.#e,o,n);if(D(this.#e,"adapter readHydrationSnapshot"),this.#b(e),r==="invalid"||!this.#e.atoms.has(o)&&!this.#e.selectors.has(o))throw TypeError("readHydrationSnapshot requires a valid State");let i=this.#T(),s;try{if(this.#e.atoms.has(o)){let a=this.#v(i,e,o,n);if(a.kind!=="value")throw a.error;return a.value}return s=this.#K(i,e),s.readSelector(o)}finally{s?.revoke(),i.close(),i.forEachFallback((a,d)=>{if(this.#t.has(a))return;this.#t.set(a,d),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new y,i=x(this.#e,o,r);if(he(this.#e,e.transaction,e.active),this.#b(t),i==="invalid")throw TypeError("Transaction.get requires a valid State");if(this.#e.atoms.has(o)){let a=this.#v(e,t,o,r);if(a.kind!=="value")throw a.error;return a.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let s=e.getScratchHost(t);if(s===void 0){if(s=this.#q(e,t),e.installScratchHost(t,s))this.recordCounter("scratchMapAllocations")}return s.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new y;this.#R(e,t,r,i,"Transaction.set"),this.#P(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new y;this.#R(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new y;this.#R(e,t,o,r,"Transaction.reset"),this.#M(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new y;if(typeof n!=="string")x(this.#e,n,i);he(this.#e,e.transaction,e.active),this.#b(t);let s=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let a=Ie(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let d;try{d=r(a)}catch(l){let h=new y;return fe(this.#e,h,()=>ut(l))}let c=new y;return fe(this.#e,c,()=>Me(d)),d}createOutcomeToken(){return Object.freeze({id:this.#o++})}#q(e,t){return this.recordCounter("scratchHostAllocations"),new me(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>re(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new me(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#v(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>re(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(U(this.#e,e,t)==="invalid")throw TypeError("Selector get requires a valid State");if(this.#e.atoms.has(e))return Object.freeze({kind:"atom"});let n=this.#e.selectors.get(e);if(n===void 0)throw TypeError("Unknown scratch StoreTree State");return Object.freeze({kind:"selector",definition:n})}#j(e,t){let n=new ye(this,e,t);this.recordCounter("scopeNodesCreated");let o=new Be(this,n,this.#f);if(e.children.add(n),t!==void 0)e.namedChildren.set(t,n);return o}#Y(e,t){if(typeof t==="string"){let i=e.namedChildren.get(t);if(i===void 0)throw new De;return this.#b(i),i}let n=t,o=this.#e.stores.get(n);if(o!==void 0){let i=o;if(this.#b(i),!Object.is(i.coordinator,this))throw new Ve;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new le;throw new ue}throw new ue}#b(e){if(e.status!=="live")throw new Ee}#X(e,t,n,o){let r=x(this.#e,t,n);D(this.#e,o),this.#b(e),this.#x(t,r,o)}#O(e,t,n,o,r){let i=t,s=new y;this.#X(e,i,s,n);let a=this.#T();try{if(o==="set")this.#P(a,e,i,r,s);else if(o==="update")this.#I(a,e,i,r,s,n);else this.#M(a,e,i,s)}catch(d){throw a.close(),a.release(),d}a.close();try{this.#F(a)}finally{a.release()}}#$(e){let t=this.#u,n=t?.get(e);if(n===void 0)return;let o=0;for(let r of n.values()){let i=r.head;while(i!==void 0){let s=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=s}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#u=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#R(e,t,n,o,r){let i=x(this.#e,n,o);he(this.#e,e.transaction,e.active),this.#b(t),this.#x(n,i,r)}#x(e,t,n){if(t==="invalid"||!this.#e.atoms.has(e))throw TypeError(`${n} requires a valid Atom`)}#P(e,t,n,o,r){let i=_(this.#e,r,()=>ne(o));if(i.kind==="error")throw i.error;let s=this.#N(e,t,n,r);this.#U(e,t,n,i.value,s,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let s=this.#N(e,t,n,r),a=e.hasIntents?this.#v(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let d=this.#J(o,a.value,r);this.#U(e,t,n,d,s,r)}#M(e,t,n,o){this.#N(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0}):this.#z(e,t.parent,n,o);if(r.outcome.kind!=="value")throw r.outcome.error;let i=r.reachesFallback&&e.hasFallback(n);e.stage(t,Object.freeze({kind:"reset",atom:n,publishDraftFallback:i}))}#N(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),s=t,a;while(s!==void 0){if(s.atomOverrides.has(n)){a=R(s.atomOverrides.get(n));break}s=s.parent}let d=a===void 0,c=Object.freeze({owned:i,outcome:a??this.#C(e,n,o),reachesFallback:d});return e.setAtomBaseline(t,n,c),c}#v(e,t,n,o){return this.#z(e,t,n,o).outcome}#z(e,t,n,o){let r=t;while(r!==void 0){let i=e.getIntent(r,n);if(i?.kind==="set")return Object.freeze({outcome:R(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:R(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#C(e,n,o),reachesFallback:!0})}#C(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return R(r.fallback.value);let i=r.fallback.initialize,s=e.getFallback(t);if(s!==void 0)return s;let a=ft(_(this.#e,n,()=>je(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#g(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#Z(r,t,n,o)?t:n}#Z(e,t,n,o){return _(this.#e,o,()=>{let r;try{r=e(t,n)}catch(s){let a=C(s);if(a.kind==="not-thenable")throw s;if(a.kind==="inspection-error")throw a.error;throw E(a),new te}let i=C(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw E(i),new te;if(r!==!0&&r!==!1)throw new te;return r})}#J(e,t,n){return _(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let s=C(i);if(s.kind==="not-thenable")throw i;if(s.kind==="inspection-error")throw s.error;throw E(s),new ee}let r=ne(o);if(r.kind==="error")throw r.error;return r.value})}#F(e){if(!e.hasIntents)return;let{singleIntent:t,singleIntentScope:n}=e;if(t?.kind==="reset"&&n!==void 0&&!t.publishDraftFallback&&e.getAtomBaseline(n,t.atom)?.owned===!1)return;let o=Bt(this.instrumented?()=>this.recordCounter("commitWorksetAllocations"):void 0),r,i;if(t!==void 0&&n!==void 0)r=this.#_(e,n,t,o);else e.forEachIntent((a,d)=>{let c=this.#_(e,a,d,o);if(r===void 0){r=c;return}if(i===void 0)i=[];i.push(c)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#B(e,r),i!==void 0)for(let a of i)this.#B(e,a);let s=this.#H(r);if(i!==void 0)for(let a of i){let d=this.#H(a);s||=d}if(this.#L(r),i!==void 0)for(let a of i)this.#L(a);this.#se();try{let a,d,c=o.affectedRecord,l=o.affectedBefore;if(c!==void 0&&l!==void 0)a=this.#E(o,c,l);let{secondAffectedRecord:h,secondAffectedBefore:A}=o;if(h!==void 0&&A!==void 0){let f=this.#E(o,h,A);if(f!==void 0)if(a===void 0)a=f;else d=[f]}if(o.affected!==void 0)for(let[f,p]of o.affected){let P=this.#E(o,f,p);if(P===void 0)continue;if(a===void 0)a=P;else{if(d===void 0)d=[];d.push(P)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(d?.length??0)),this.#ie(a,d)}catch(a){throw this.#k(),a}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#G(e,t,n.atom,o);let i=Object.freeze({scope:t,intent:n,ownershipChanged:n.kind==="set"?!r.owned||!Object.is(t.atomOverrides.get(n.atom),n.value):r.owned}),s=t.getAtomView(n.atom);if(s!==void 0)this.#ee(e,s,o);return i}#B(e,t){if(!t.intent.publishDraftFallback)return;let n=e.getFallback(t.intent.atom);if(n!==void 0&&!this.#t.has(t.intent.atom))this.#t.set(t.intent.atom,n),this.recordCounter("fallbackPublications")}#H(e){let{intent:t,scope:n}=e;if(t.kind==="set")n.atomOverrides.set(t.atom,t.value);else n.atomOverrides.delete(t.atom);return e.ownershipChanged}#L({scope:e,intent:t}){let n=e.getAtomView(t.atom);if(n===void 0)return;if(t.kind==="set"||e.parent===void 0)e.detachAtomView(n);else e.attachAtomView(n,this.#oe(e.parent,t.atom))}#E(e,t,n){let o=Fe(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),ht(n,o))return;return t.scope.updateAtomView(t,o),t}#ee(e,t,n){let o=[t];while(o.length!==0){let r=o.pop();if(!Lt(n,r))continue;let i=r.served.outcome,s=this.#G(e,r.scope,r.atom,n);if(ht(i,s))continue;Gt(n,r,i);let a=o.length;r.inheritingChildren.forEach((d)=>{this.recordCounter("routeVisits"),o.push(d)});for(let d=a,c=o.length-1;d<c;d++,c--){let l=o[d];o[d]=o[c],o[c]=l}}}#G(e,t,n,o){let r=Fe(o,n,t);if(r!==void 0)return r;let i=t,s,a,d;while(i!==void 0){let c=Fe(o,n,i);if(c!==void 0){d=c;break}if(s===void 0)s=i;else{if(a===void 0)a=[];a.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){d=R(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){d=R(i.atomOverrides.get(n));break}i=i.parent}if(d??=this.#te(e,n),s!==void 0)mt(o,n,s,d),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let c of a)mt(o,n,c,d),this.recordCounter("finalPreflightVisits");return d}#te(e,t){let n=this.#t.get(t);if(n!==void 0)return n;let o=e.getFallback(t);if(o!==void 0)return o;let r=this.#g(t);if(r.fallback.kind==="eager")return R(r.fallback.value);throw Error("Final Atom fallback was not resolved during staging")}#ne(e){let t=this.#t.get(e);if(t!==void 0)return t;let n=this.#g(e);if(n.fallback.kind==="eager")return R(n.fallback.value);throw Error("Committed Atom fallback is not materialized")}#oe(e,t){let n=e,o=[],r;while(!0){let i=n.getAtomView(t);if(i!==void 0){r=i;break}if(n.atomOverrides.has(t)){r=n.createAtomView(t,R(n.atomOverrides.get(t)));break}if(n.parent===void 0){r=n.createAtomView(t,this.#ne(t));break}o.push(n),n=n.parent}for(let i=o.length-1;i>=0;i--)r=o[i].createAtomView(t,r.served.outcome,r);return r}serveScopeAtom(e,t,n){let o=e,r=[],i;while(!0){let s=o.getAtomView(t);if(s!==void 0){i=s;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,R(o.atomOverrides.get(t)));break}if(o.parent===void 0){i=o.createAtomView(t,this.#re(t,n));break}this.recordCounter("warmParentHops"),r.push(o),o=o.parent}for(let s=r.length-1;s>=0;s--)i=r[s].createAtomView(t,i.served.outcome,i);return i.served}#re(e,t){let n=this.#t.get(e);if(n!==void 0)return n;let o=this.#g(e);if(o.fallback.kind==="eager")return R(o.fallback.value);let r=o.fallback.initialize,i=ft(_(this.#e,t,()=>je(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#g(e){let t=this.#e.atoms.get(e);if(t===void 0)throw TypeError("Unknown committed StoreTree Atom");return t}#ie(e,t){if(e===void 0){this.#k();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#c=void 0,this.#d=0,this.#l=void 0,this.#h=void 0,this.#a=!0;let n;try{if(e.scope.markDependents(e.atom),t!==void 0)for(let r of t)r.scope.markDependents(r.atom);let o=0;while(o<this.#r.length){let r=this.#r[o++],i=this.#r[o++];this.#D(r,i)}}finally{n=this.#h,this.#h=void 0,this.#a=!1,this.#r=void 0,this.#s=void 0,this.#c=void 0,this.#d=0,this.#l=void 0}this.#ae(n)}#se(){this.#S=void 0,this.#p=void 0,this.#y=this.#u===void 0?0:this.#A++}#k(){this.#y=0,this.#S=void 0,this.#p=void 0}reachSubscriptionTarget(e,t){let n=this.#y,o=this.#u?.get(e)?.get(t);if(n===0||o===void 0||o.reachedEpoch===n)return;if(o.reachedEpoch=n,this.instrumented)this.recordCounter("notificationTargetsReached");if(this.#S===void 0){this.#S=o;return}if(this.#p===void 0)this.#p=[o];else this.#p.push(o)}#ae(e){let t=this.#S;if(t===void 0){if(this.#k(),e!==void 0)throw e;return}let n,o,r=(c)=>{let l=c.head;while(l!==void 0){let h=l.callback;if(h!==void 0)if(n===void 0)n=h;else if(o===void 0)o=[n,h];else o.push(h);l=l.next}};r(t);let i=this.#p;if(i!==void 0)for(let c of i)r(c);if(this.#k(),n===void 0){if(e!==void 0)throw e;return}let s=Object.freeze(o??[n]),a=this.instrumented;if(a)this.recordCounter("notificationSnapshots");let d;for(let c of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new y,h=!1,A;try{Ye(this.#e,l,()=>{try{let f=c(),p=C(f);if(p.kind==="thenable")E(p);else if(p.kind==="inspection-error")h=!0,A=p.error}catch(f){h=!0,A=f;let p=C(f);if(p.kind==="thenable")E(p)}})}catch(f){h=!0,A=f}if(h){if(d===void 0)d=[];if(d.push(A),a)this.recordCounter("subscriberErrors")}}if(d===void 0){if(e!==void 0)throw e;return}throw new Ce(e===void 0?d:[e,...d])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#W(e,t)&St)!==0)return!0;return this.#w(e,t,St),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#D(e,t,n)}#D(e,t,n){if((this.#W(e,t)&(pt|ze))!==0)return;this.#w(e,t,ze);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let s of i)if(this.#e.selectors.has(s.node))this.#D(e,s.node)}if(e.isSelectorDirty(t)){let s=r===e.getSelectorGraphVersion();if(n!==void 0&&s)e.serve(t,n);else e.serve(t,new y)}this.#w(e,t,pt)}finally{this.#w(e,t,0,ze)}}#W(e,t){if(Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#s===void 0){this.#s=e,this.#c=t,this.#d=n&~o;return}if(Object.is(this.#s,e)&&Object.is(this.#c,t)){this.#d=(this.#d|n)&~o;return}let r=this.#l;if(r===void 0)r=new Map,this.#l=r;let i=r.get(e);if(i===void 0)i=new Map,r.set(e,i);i.set(t,((i.get(t)??0)|n)&~o)}latchPropagationControlFault(e){this.#h??=e}#U(e,t,n,o,r,i){let s=r.outcome.kind==="value"?this.#Q(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:s,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class Be{get;sub;set;update;reset;txn;scope;dispose;constructor(e,t,n){this.get=(o)=>e.get(t,o),this.sub=(o,r)=>e.sub(t,o,r),this.set=(o,r)=>e.set(t,o,r),this.update=(o,r)=>e.update(t,o,r),this.reset=(o)=>e.reset(t,o),this.txn=(o,r)=>e.txn(t,o,r),this.scope=function(o){return e.scope(t,arguments.length,o)},this.dispose=()=>e.dispose(t),t.installFacade(this),ie(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var yt=(e)=>{if(e.equal!==void 0&&typeof e.equal!=="function")throw TypeError("Atom equal must be a function");return{...e.name===void 0?{}:{name:e.name},...e.equal===void 0?{}:{equal:e.equal}}},gt=(e)=>{let t={states:new WeakSet,atoms:new WeakMap,selectors:new WeakMap,stores:new WeakMap,transactionCursors:new WeakMap,ownerToken:Object.freeze({}),activity:void 0},n=(d,c={})=>{let l=new y,h=_(t,l,()=>ne(d));if(h.kind==="error")throw h.error;let A=Se("atom",t.ownerToken);return t.states.add(A),t.atoms.set(A,Object.freeze({fallback:Object.freeze({kind:"eager",value:h.value}),...yt(c)})),A},o=(d,c={})=>{if(typeof d!=="function")throw TypeError("atomLazy requires an initializer function");let l=Se("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:d}),...yt(c)})),l},r=(d,c={})=>{if(typeof d!=="function")throw TypeError("selector requires a getter function");if(c.equal!==void 0&&typeof c.equal!=="function")throw TypeError("selector equal must be a function");let l=Se("selector",t.ownerToken),h=Object.freeze({node:l,get:d,...c.name===void 0?{}:{name:c.name},...c.equal===void 0?{}:{equal:c.equal}});return t.states.add(l),t.selectors.set(l,h),l},i=(d)=>{let c=new y;if(x(t,d,c)==="invalid")return;return t.stores.get(d)},a=Object.freeze({assertStore:(d)=>{let c=i(d);if(D(t,"adapter assertStore"),c===void 0)throw TypeError("assertStore requires a valid Store")},read:(d,c)=>{if(i(d)===void 0)throw xe(t,"adapter read"),TypeError("read requires a valid Store");return d.get(c)},subscribe:(d,c,l)=>{if(i(d)===void 0)throw D(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return d.sub(c,l)},readHydrationSnapshot:(d,c)=>{let l=i(d);if(l===void 0)throw D(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,c)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(d=e,c)=>{D(t,"createStoreTree");let l=new vt(t,d,c);return new Be(l,l.rootScope,c)}})};var Wt=gt(),fn=(e,t)=>Wt.createStoreTree(e,t);
2
- export{Z as a,it as b,Ne as c,Ce as d,q as e,K as f,Y as g,le as h,J as i,ee as j,te as k,Ee as l,De as m,Ve as n,ue as o,cn as p,Wt as q,fn as r};