valdres 1.0.0-beta.29 → 1.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter-internals/v1.js +1 -1
- package/dist/chunk-t48n3zg9.js +2 -0
- package/dist/development/adapter-internals/v1.js +1 -1
- package/dist/development/chunk-t48n3zg9.js +2 -0
- package/dist/development/index.js +1 -1
- package/dist/development/inspect.js +1 -1
- package/dist/index.js +1 -1
- package/dist/inspect.js +1 -1
- package/dist/types/v1-internal/committed-store-tree/scope-node.d.ts +2 -1
- package/dist/types/v1-internal/inspection.d.ts +11 -5
- package/dist/types/v1-internal/selector-evaluator/types.d.ts +30 -19
- package/package.json +1 -1
- package/dist/chunk-xjz5p1py.js +0 -2
- package/dist/development/chunk-xjz5p1py.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as e}from"../chunk-
|
|
1
|
+
import{q as e}from"../chunk-t48n3zg9.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 z extends Error{seal(){Object.freeze(this)}}class se 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 be 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 Q 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 ke extends z{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class ae 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 ve extends z{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var He=Object.freeze({kind:"not-thenable"}),yt=()=>{},At=Reflect.apply,Be=Symbol.for("valdres.runtime-owner/v1");class g extends Error{seal(){Object.freeze(this)}}class ge extends g{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class we extends g{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 U extends g{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class q extends g{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class K extends g{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class ce extends g{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends g{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class Z extends g{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class ee extends g{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class Te extends g{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class Oe extends g{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Re extends g{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class de extends g{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 He;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):He}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},N=(e)=>{try{At(e.then,e.target,[void 0,yt])}catch{}},te=(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 N(t),Object.freeze({kind:"error",error:new Z})},Ce=(e)=>{try{return te(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 N(n),Object.freeze({kind:"error",error:new Z})}},ne=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},M=(e,t,n)=>{try{let o=ne(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}},Le=(e,t,n)=>{try{let o=ne(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}},oe=(e,t,n)=>ne(e,Object.freeze({kind:"selector",session:t}),n),Ge=(e,t,n)=>ne(e,Object.freeze({kind:"transaction",transaction:t}),n),le=(e,t,n)=>{try{let o=ne(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 q(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new K;throw new U},Ee=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new q(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new K;throw new U},We=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new q("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new K;throw new U},ue=(e,t,n)=>{if(!n)throw new ce;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new q("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new U;throw new K},Ue=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},W=(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,Be);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new ge;throw Ue(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=Ue(e,n);if(o!==void 0&&"session"in o)try{let i=W(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 M(e,r,()=>W(e,t,r))},re=(e,t)=>(Object.defineProperty(e,Be,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),fe=(e,t)=>Object.freeze(re({kind:e},t));var qe=Object.freeze({kind:"not-thenable"}),bt=()=>{},kt=Reflect.apply,Ke=Symbol("selector dependency path root"),Xe=(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})}},Qe=(e)=>{try{kt(e.then,e.target,[void 0,bt])}catch{}},vt=(e)=>Object.freeze(e),gt=(e)=>Object.freeze(e),O=(e,t,n,o)=>{let r=gt(o);return Object.freeze({selector:e,token:t,outcome:vt(n),dependencies:r,attemptedPrefix:n.kind==="value"?wt:Object.freeze(r.map((i)=>i.node))})},wt=Object.freeze([]),Tt=(e,t,n,o,r,i)=>{let s=[e],a=new Map([[e,Ke]]);while(s.length>0){let c=s.pop();if(Object.is(c,t)){let u=[],S=c;while(S!==Ke)u.push(S),S=a.get(S);return u.reverse(),Object.freeze(u)}let d=o.getTransientDependencies(n,c);if(d){for(let u of d){if(a.has(u.node))continue;a.set(u.node,c),s.push(u.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let u=n.getSelectorDependencyNodes(c);if(u===void 0)continue;for(let S of u){if(a.has(S))continue;a.set(S,c),s.push(S)}continue}let l=n.getSelectorRecord(c);if(!l)continue;for(let u of l.dependencies){if(a.has(u.node))continue;a.set(u.node,c),s.push(u.node)}}return},Ye=(e,t)=>{let n=Xe(e);if(n.kind==="thenable")return Qe(n),new F(t);if(n.kind==="inspection-error")return n.error;return e},$e=(e,t)=>{let n=Xe(e);if(n.kind==="thenable")return Qe(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})},Je=(e,t,n,o=Tt)=>{let{node:r}=e,i=[],s=t.getSelectorRecord(r),a=s?.dependencies,c=a===void 0?new Set:void 0,d,l=0,u=t.getComparisonBaseline(r),S=!0,y=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let h of i)f.add(h.node);return c=f,f};n.enter(t,r,i);let A=t.getSelectorGraphVersion(),_=n.getSelectorGraphPublicationCount(t),P=A,H=_,ze=A,Fe=_,pe,me=!1,pt=(f)=>{if(me)return;let h=t.beginSelectorGraphObservation?.(f);if(h===void 0)return;me=!0,pe=h},ye=(f,h,b,k)=>b-f===k-h,Me=(f=t.getSelectorGraphVersion(),h=n.getSelectorGraphPublicationCount(t),b=ye(P,H,f,h))=>{if(f===P)return;if(!me&&t.beginSelectorGraphObservation!==void 0){P=f,H=h;return}let k=pe?.takeAddedEdges();if(b){P=f,H=h;return}if(k!==void 0){let v=!1;for(let T of k)if(o(T.head,T.tail,t,n,2,i.length)!==void 0){v=!0;break}if(!v){P=f,H=h;return}}for(let v=0;v<i.length;v++){let T=i[v],C=o(T.node,r,t,n,0,i.length);if(!C)continue;if(c!==void 0)for(let V=i.length-1;V>=v;V--)c.delete(i[V].node);if(i.length=v,l++,n.getControlFault().kind==="fault")return;let w=new Q(r,[r,...C]);n.latchCycle(t,r,w);return}P=f,H=h},Ae=()=>{let f=t.getSelectorGraphVersion(),h=n.getSelectorGraphPublicationCount(t);ze=f,Fe=h;let b=ye(P,H,f,h);if(!b)n.revalidateAncestorPrefixes(t,r);Me(f,h,b)};n.setPrefixRevalidator(t,r,Me);let mt=(f)=>{if(!S)throw new ve;let h=n.getControlFault();if(h.kind==="fault")throw h.error;let b=n.getCycle(t,r);if(b!==void 0)throw b;let k=n.activeCyclePath(t,f);if(k){let p=new Q(r,k);throw n.latchCycle(t,r,p),p}let v=i.length,T,C=!1;if(c===void 0){let p=a?.[v];if(p!==void 0&&Object.is(p.node,f))T=!1,C=!0;else T=y().has(f)}else T=c.has(f);if(!T&&!C&&a!==void 0&&a.length>0){let p=a[i.length];if(p!==void 0&&Object.is(p.node,f))C=!0;else{if(d===void 0){d=new Set;for(let G of a)d.add(G.node)}C=d.has(f)}}let B=l,w=t.serve(f,n);Ae();let V=n.getCycle(t,r);if(V!==void 0)throw V;let Y=c!==void 0?c.has(f):l===B&&i.length===v?!1:y().has(f),I=ze,L=Fe,j=Y||C&&I===A,ie=a===void 0&&ye(A,_,I,L);if(!j&&!ie){let p=o(f,r,t,n,1,i.length);if(p){let G=n.getControlFault();if(G.kind==="fault")throw G.error;let _e=new Q(r,[r,...p]);throw n.latchCycle(t,r,_e),_e}}if(!Y){let p=s?.dependencies[i.length];c?.add(f),i.push(p!==void 0&&Object.is(p.node,f)&&Object.is(p.token,w.token)?p:Object.freeze({node:f,token:w.token})),pt(f)}if(P=I,H=L,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let p=n.getControlFault();if(p.kind==="fault")throw p.error;throw w.outcome.error}let X=n.getControlFault();if(X.kind==="fault")throw X.error;if(w.outcome.kind==="error")throw new be(f,w.outcome.error);return w.outcome.value};try{let f,h,b=!1;try{f=e.get(mt)}catch(V){b=!0,h=V}finally{S=!1}if(b)h=Ye(h,"getter");let k=b?void 0:$e(f,"getter");Ae();let v=n.getControlFault();if(v.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:v.error},i);let T=n.getCycle(t,r);if(T!==void 0)return O(r,t.createOutcomeToken(),{kind:"error",error:T},i);if(b)return O(r,t.createOutcomeToken(),{kind:"error",error:h instanceof F?h:new se(r,h)},i);if(k===void 0)throw Error("Selector result classification was not completed");let C=n.getControlFault();if(C.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:C.error},i);if(k.kind==="error")return O(r,t.createOutcomeToken(),{kind:"error",error:k.error instanceof F?k.error:new se(r,k.error)},i);let B=k.value,w;if(u){let V=e.equal??Object.is,Y,I,L=!1;try{Y=V(u.value,B)}catch(G){L=!0,I=Ye(G,"comparator")}let j=L?void 0:$e(Y,"comparator");Ae();let ie=n.getControlFault();if(ie.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:ie.error},i);let X=n.getCycle(t,r);if(X!==void 0)return O(r,t.createOutcomeToken(),{kind:"error",error:X},i);if(L)return O(r,t.createOutcomeToken(),{kind:"error",error:I instanceof F?I:new ae(r,I)},i);if(j===void 0)throw Error("Selector comparator classification was not completed");let p=n.getControlFault();if(p.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:p.error},i);if(j.kind==="error")return O(r,t.createOutcomeToken(),{kind:"error",error:j.error instanceof F?j.error:new ae(r,j.error)},i);if(j.value!==!0&&j.value!==!1)return O(r,t.createOutcomeToken(),{kind:"error",error:new ke},i);if(j.value===!0)B=u.value,w=u.current?u.token:void 0}return O(r,w??t.createOutcomeToken(),{kind:"value",value:B},i)}finally{try{pe?.close()}finally{n.leave(t,r)}}};class m{#t=[];#n;#o=0;#i;#a=Ot;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 Ot=Object.freeze({kind:"none"});var Ze=Symbol("no-committed-selector-baseline");class he{#t;#n=new Map;#o=new Map;#i=new Map;#a;#r=1;#s=0;#d;constructor(e,t,n){this.#t=e,this.#a=t,this.#d=n}readSelector(e){let t=new m,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.#c(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let c=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,c),c}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#d(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.#c().captureCommittedSelectorSuccess(e)??Ze,this.#i.set(e,t);return t===Ze?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#c(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var et=4096,Rt=Object.freeze([]);class nt{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 Se{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;#d=0;#c;#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(W(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=oe(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.#d===0)this.#c=[],this.#l=!1;this.#d++;let t=this.#c?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#c;if(o===void 0)return;if(t===o.length)return Rt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#d--,this.#d!==0)return;this.#c=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??tt,t.dependencies),a=s?this.#S(e,o?.dependencies??tt,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.#d===0||this.#l)return;let o=this.#c;if(o===void 0){this.#e();return}let r=et-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let c of t)if(i.has(c.node))s.add(c.node);let a=[];for(let c of n)if(i.has(c.node)&&!s.has(c.node)){if(a.push(Object.freeze({tail:e,head:c.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#c;if(t===void 0||t.length+e.length>et){this.#e();return}t.push(...e)}#e(){if(this.#d===0)return;this.#c=[],this.#l=!0}#m(){return new nt(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var tt=Object.freeze([]);class Ne{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#d;#c;#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.#c!==void 0&&Object.is(this.#s,e)&&Object.is(this.#d,t))return this.#c;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.#c;if(i===void 0){this.#s=e,this.#d=t,this.#c=n;return}if(Object.is(this.#s,e)&&Object.is(this.#d,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.#d,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.#d,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#s,a);let c=this.#f();c.set(t,n),s.set(e,c),this.#A=s,this.#s=void 0}this.#d=void 0,this.#c=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.#d=void 0,this.#c=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 ot{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]),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var De=(e,t,n)=>new ot(e,t,n),Ve=(e)=>{let t=E(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw N(t),new J},rt=(e)=>{let t=E(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw N(t),new J};var Ct=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},ut=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}),Et=32,ft=new WeakMap,Jt=()=>{let e=new Uint32Array(Et),t=Object.freeze({read(n){return e[ut[n]]??0}});return ft.set(t,e),t},R=(e)=>Object.freeze({kind:"value",value:e}),Nt=(e)=>Object.freeze({kind:"error",error:e}),it=(e)=>e.kind==="value"?R(e.value):Nt(e.error),st=(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,je=2,ct=4,Dt=(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}),Pe=(e)=>(e.onAllocation?.(),new Map),Vt=(e)=>(e.onAllocation?.(),new Set),xe=(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)},dt=(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=Pe(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=Pe(e),r.set(t,i);i.set(n,o)},jt=(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=Vt(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=Pe(e),e.affected=o;o.set(t,n)};class ht{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#d;#c=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:ft.get(t),this.#f=n,this.evaluate=n?.evaluate??Je,this.#n=new Se(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[ut[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Ne(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new m,o=t,r=x(this.#e,o,n),i=Ee(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 m);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 m);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 c=a.get(e);if(c===void 0){if(c=new Map,a.set(e,c),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let d=c.get(o);if(d===void 0){if(d={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},c.set(o,d),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:d,previous:d.tail,next:void 0};if(d.tail===void 0)d.head=l;else d.tail.next=l;if(d.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return Ct(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;We(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 m);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.#X(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=De(this,o,e),i;try{i=Ge(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new m;le(this.#e,s,()=>Ve(i)),this.#M(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new m,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.#k(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,c)=>{if(this.#t.has(a))return;this.#t.set(a,c),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new m,i=x(this.#e,o,r);if(ue(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.#k(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 m;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 m;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 m;this.#R(e,t,o,r,"Transaction.reset"),this.#z(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new m;if(typeof n!=="string")x(this.#e,n,i);ue(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=De(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let c;try{c=r(a)}catch(l){let u=new m;return le(this.#e,u,()=>rt(l))}let d=new m;return le(this.#e,d,()=>Ve(c)),c}createOutcomeToken(){return Object.freeze({id:this.#o++})}#q(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(W(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 Se(this,e,t);this.recordCounter("scopeNodesCreated");let o=new Ie(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 Oe;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 Re;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new ce;throw new de}throw new de}#b(e){if(e.status!=="live")throw new Te}#$(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 m;this.#$(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.#z(a,e,i,s)}catch(c){throw a.close(),a.release(),c}a.close();try{this.#M(a)}finally{a.release()}}#X(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);ue(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=M(this.#e,r,()=>te(o));if(i.kind==="error")throw i.error;let s=this.#C(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.#C(e,t,n,r),a=e.hasIntents?this.#k(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let c=this.#Z(o,a.value,r);this.#U(e,t,n,c,s,r)}#z(e,t,n,o){this.#C(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#E(e,n,o),reachesFallback:!0}):this.#F(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}))}#C(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 c=a===void 0,d=Object.freeze({owned:i,outcome:a??this.#E(e,n,o),reachesFallback:c});return e.setAtomBaseline(t,n,d),d}#k(e,t,n,o){return this.#F(e,t,n,o).outcome}#F(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.#E(e,n,o),reachesFallback:!0})}#E(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#v(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=it(M(this.#e,n,()=>Ce(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#v(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#J(r,t,n,o)?t:n}#J(e,t,n,o){return M(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 N(a),new ee}let i=E(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw N(i),new ee;if(r!==!0&&r!==!1)throw new ee;return r})}#Z(e,t,n){return M(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 N(s),new Z}let r=te(o);if(r.kind==="error")throw r.error;return r.value})}#M(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=Dt(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,c)=>{let d=this.#_(e,a,c,o);if(r===void 0){r=d;return}if(i===void 0)i=[];i.push(d)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#H(e,r),i!==void 0)for(let a of i)this.#H(e,a);let s=this.#B(r);if(i!==void 0)for(let a of i){let c=this.#B(a);s||=c}if(this.#L(r),i!==void 0)for(let a of i)this.#L(a);this.#se();try{let a,c,d=o.affectedRecord,l=o.affectedBefore;if(d!==void 0&&l!==void 0)a=this.#N(o,d,l);let{secondAffectedRecord:u,secondAffectedBefore:S}=o;if(u!==void 0&&S!==void 0){let y=this.#N(o,u,S);if(y!==void 0)if(a===void 0)a=y;else c=[y]}if(o.affected!==void 0)for(let[y,A]of o.affected){let _=this.#N(o,y,A);if(_===void 0)continue;if(a===void 0)a=_;else{if(c===void 0)c=[];c.push(_)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(c?.length??0)),this.#ie(a,c)}catch(a){throw this.#g(),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}#H(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")}#B(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))}#N(e,t,n){let o=xe(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),st(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(!jt(n,r))continue;let i=r.served.outcome,s=this.#G(e,r.scope,r.atom,n);if(st(i,s))continue;xt(n,r,i);let a=o.length;r.inheritingChildren.forEach((c)=>{this.recordCounter("routeVisits"),o.push(c)});for(let c=a,d=o.length-1;c<d;c++,d--){let l=o[c];o[c]=o[d],o[d]=l}}}#G(e,t,n,o){let r=xe(o,n,t);if(r!==void 0)return r;let i=t,s,a,c;while(i!==void 0){let d=xe(o,n,i);if(d!==void 0){c=d;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"){c=R(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){c=R(i.atomOverrides.get(n));break}i=i.parent}if(c??=this.#te(e,n),s!==void 0)dt(o,n,s,c),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let d of a)dt(o,n,d,c),this.recordCounter("finalPreflightVisits");return c}#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.#v(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.#v(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.#v(e);if(o.fallback.kind==="eager")return R(o.fallback.value);let r=o.fallback.initialize,i=it(M(this.#e,t,()=>Ce(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#v(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.#g();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#d=void 0,this.#c=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.#d=void 0,this.#c=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++}#g(){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.#g(),e!==void 0)throw e;return}let n,o,r=(d)=>{let l=d.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 d of i)r(d);if(this.#g(),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 c;for(let d of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new m,u=!1,S;try{Le(this.#e,l,()=>{try{let y=d(),A=E(y);if(A.kind==="thenable")N(A);else if(A.kind==="inspection-error")u=!0,S=A.error}catch(y){u=!0,S=y;let A=E(y);if(A.kind==="thenable")N(A)}})}catch(y){u=!0,S=y}if(u){if(c===void 0)c=[];if(c.push(S),a)this.recordCounter("subscriberErrors")}}if(c===void 0){if(e!==void 0)throw e;return}throw new we(e===void 0?c:[e,...c])}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)&(ct|je))!==0)return;this.#w(e,t,je);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 m)}this.#w(e,t,ct)}finally{this.#w(e,t,0,je)}}#W(e,t){if(Object.is(this.#s,e)&&Object.is(this.#d,t))return this.#c;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#s===void 0){this.#s=e,this.#d=t,this.#c=n&~o;return}if(Object.is(this.#s,e)&&Object.is(this.#d,t)){this.#c=(this.#c|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 Ie{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),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var lt=(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}}},St=(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=(c,d={})=>{let l=new m,u=M(t,l,()=>te(c));if(u.kind==="error")throw u.error;let S=fe("atom",t.ownerToken);return t.states.add(S),t.atoms.set(S,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...lt(d)})),S},o=(c,d={})=>{if(typeof c!=="function")throw TypeError("atomLazy requires an initializer function");let l=fe("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:c}),...lt(d)})),l},r=(c,d={})=>{if(typeof c!=="function")throw TypeError("selector requires a getter function");if(d.equal!==void 0&&typeof d.equal!=="function")throw TypeError("selector equal must be a function");let l=fe("selector",t.ownerToken),u=Object.freeze({node:l,get:c,...d.name===void 0?{}:{name:d.name},...d.equal===void 0?{}:{equal:d.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(c)=>{let d=new m;if(x(t,c,d)==="invalid")return;return t.stores.get(c)},a=Object.freeze({assertStore:(c)=>{let d=i(c);if(D(t,"adapter assertStore"),d===void 0)throw TypeError("assertStore requires a valid Store")},read:(c,d)=>{if(i(c)===void 0)throw Ee(t,"adapter read"),TypeError("read requires a valid Store");return c.get(d)},subscribe:(c,d,l)=>{if(i(c)===void 0)throw D(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return c.sub(d,l)},readHydrationSnapshot:(c,d)=>{let l=i(c);if(l===void 0)throw D(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,d)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(c=e,d)=>{D(t,"createStoreTree");let l=new ht(t,c,d);return new Ie(l,l.rootScope,d)}})};var Pt=St(),tn=(e,t)=>Pt.createStoreTree(e,t);
|
|
2
|
+
export{Q as a,Je as b,ge as c,we as d,U as e,q as f,K as g,ce as h,J as i,Z as j,ee as k,Te as l,Oe as m,Re as n,de as o,Jt as p,Pt as q,tn as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as e}from"../chunk-
|
|
1
|
+
import{q as e}from"../chunk-t48n3zg9.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 z extends Error{seal(){Object.freeze(this)}}class se 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 be 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 Q 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 ke extends z{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class ae 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 ve extends z{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var He=Object.freeze({kind:"not-thenable"}),yt=()=>{},At=Reflect.apply,Be=Symbol.for("valdres.runtime-owner/v1");class g extends Error{seal(){Object.freeze(this)}}class ge extends g{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class we extends g{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 U extends g{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class q extends g{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class K extends g{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class ce extends g{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends g{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class Z extends g{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class ee extends g{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class Te extends g{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class Oe extends g{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Re extends g{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class de extends g{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 He;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):He}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},N=(e)=>{try{At(e.then,e.target,[void 0,yt])}catch{}},te=(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 N(t),Object.freeze({kind:"error",error:new Z})},Ce=(e)=>{try{return te(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 N(n),Object.freeze({kind:"error",error:new Z})}},ne=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},M=(e,t,n)=>{try{let o=ne(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}},Le=(e,t,n)=>{try{let o=ne(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}},oe=(e,t,n)=>ne(e,Object.freeze({kind:"selector",session:t}),n),Ge=(e,t,n)=>ne(e,Object.freeze({kind:"transaction",transaction:t}),n),le=(e,t,n)=>{try{let o=ne(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 q(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new K;throw new U},Ee=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new q(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new K;throw new U},We=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new q("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new K;throw new U},ue=(e,t,n)=>{if(!n)throw new ce;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new q("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new U;throw new K},Ue=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},W=(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,Be);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new ge;throw Ue(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=Ue(e,n);if(o!==void 0&&"session"in o)try{let i=W(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 M(e,r,()=>W(e,t,r))},re=(e,t)=>(Object.defineProperty(e,Be,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),fe=(e,t)=>Object.freeze(re({kind:e},t));var qe=Object.freeze({kind:"not-thenable"}),bt=()=>{},kt=Reflect.apply,Ke=Symbol("selector dependency path root"),Xe=(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})}},Qe=(e)=>{try{kt(e.then,e.target,[void 0,bt])}catch{}},vt=(e)=>Object.freeze(e),gt=(e)=>Object.freeze(e),O=(e,t,n,o)=>{let r=gt(o);return Object.freeze({selector:e,token:t,outcome:vt(n),dependencies:r,attemptedPrefix:n.kind==="value"?wt:Object.freeze(r.map((i)=>i.node))})},wt=Object.freeze([]),Tt=(e,t,n,o,r,i)=>{let s=[e],a=new Map([[e,Ke]]);while(s.length>0){let c=s.pop();if(Object.is(c,t)){let u=[],S=c;while(S!==Ke)u.push(S),S=a.get(S);return u.reverse(),Object.freeze(u)}let d=o.getTransientDependencies(n,c);if(d){for(let u of d){if(a.has(u.node))continue;a.set(u.node,c),s.push(u.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let u=n.getSelectorDependencyNodes(c);if(u===void 0)continue;for(let S of u){if(a.has(S))continue;a.set(S,c),s.push(S)}continue}let l=n.getSelectorRecord(c);if(!l)continue;for(let u of l.dependencies){if(a.has(u.node))continue;a.set(u.node,c),s.push(u.node)}}return},Ye=(e,t)=>{let n=Xe(e);if(n.kind==="thenable")return Qe(n),new F(t);if(n.kind==="inspection-error")return n.error;return e},$e=(e,t)=>{let n=Xe(e);if(n.kind==="thenable")return Qe(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})},Je=(e,t,n,o=Tt)=>{let{node:r}=e,i=[],s=t.getSelectorRecord(r),a=s?.dependencies,c=a===void 0?new Set:void 0,d,l=0,u=t.getComparisonBaseline(r),S=!0,y=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let h of i)f.add(h.node);return c=f,f};n.enter(t,r,i);let A=t.getSelectorGraphVersion(),_=n.getSelectorGraphPublicationCount(t),P=A,H=_,ze=A,Fe=_,pe,me=!1,pt=(f)=>{if(me)return;let h=t.beginSelectorGraphObservation?.(f);if(h===void 0)return;me=!0,pe=h},ye=(f,h,b,k)=>b-f===k-h,Me=(f=t.getSelectorGraphVersion(),h=n.getSelectorGraphPublicationCount(t),b=ye(P,H,f,h))=>{if(f===P)return;if(!me&&t.beginSelectorGraphObservation!==void 0){P=f,H=h;return}let k=pe?.takeAddedEdges();if(b){P=f,H=h;return}if(k!==void 0){let v=!1;for(let T of k)if(o(T.head,T.tail,t,n,2,i.length)!==void 0){v=!0;break}if(!v){P=f,H=h;return}}for(let v=0;v<i.length;v++){let T=i[v],C=o(T.node,r,t,n,0,i.length);if(!C)continue;if(c!==void 0)for(let V=i.length-1;V>=v;V--)c.delete(i[V].node);if(i.length=v,l++,n.getControlFault().kind==="fault")return;let w=new Q(r,[r,...C]);n.latchCycle(t,r,w);return}P=f,H=h},Ae=()=>{let f=t.getSelectorGraphVersion(),h=n.getSelectorGraphPublicationCount(t);ze=f,Fe=h;let b=ye(P,H,f,h);if(!b)n.revalidateAncestorPrefixes(t,r);Me(f,h,b)};n.setPrefixRevalidator(t,r,Me);let mt=(f)=>{if(!S)throw new ve;let h=n.getControlFault();if(h.kind==="fault")throw h.error;let b=n.getCycle(t,r);if(b!==void 0)throw b;let k=n.activeCyclePath(t,f);if(k){let p=new Q(r,k);throw n.latchCycle(t,r,p),p}let v=i.length,T,C=!1;if(c===void 0){let p=a?.[v];if(p!==void 0&&Object.is(p.node,f))T=!1,C=!0;else T=y().has(f)}else T=c.has(f);if(!T&&!C&&a!==void 0&&a.length>0){let p=a[i.length];if(p!==void 0&&Object.is(p.node,f))C=!0;else{if(d===void 0){d=new Set;for(let G of a)d.add(G.node)}C=d.has(f)}}let B=l,w=t.serve(f,n);Ae();let V=n.getCycle(t,r);if(V!==void 0)throw V;let Y=c!==void 0?c.has(f):l===B&&i.length===v?!1:y().has(f),I=ze,L=Fe,j=Y||C&&I===A,ie=a===void 0&&ye(A,_,I,L);if(!j&&!ie){let p=o(f,r,t,n,1,i.length);if(p){let G=n.getControlFault();if(G.kind==="fault")throw G.error;let _e=new Q(r,[r,...p]);throw n.latchCycle(t,r,_e),_e}}if(!Y){let p=s?.dependencies[i.length];c?.add(f),i.push(p!==void 0&&Object.is(p.node,f)&&Object.is(p.token,w.token)?p:Object.freeze({node:f,token:w.token})),pt(f)}if(P=I,H=L,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let p=n.getControlFault();if(p.kind==="fault")throw p.error;throw w.outcome.error}let X=n.getControlFault();if(X.kind==="fault")throw X.error;if(w.outcome.kind==="error")throw new be(f,w.outcome.error);return w.outcome.value};try{let f,h,b=!1;try{f=e.get(mt)}catch(V){b=!0,h=V}finally{S=!1}if(b)h=Ye(h,"getter");let k=b?void 0:$e(f,"getter");Ae();let v=n.getControlFault();if(v.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:v.error},i);let T=n.getCycle(t,r);if(T!==void 0)return O(r,t.createOutcomeToken(),{kind:"error",error:T},i);if(b)return O(r,t.createOutcomeToken(),{kind:"error",error:h instanceof F?h:new se(r,h)},i);if(k===void 0)throw Error("Selector result classification was not completed");let C=n.getControlFault();if(C.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:C.error},i);if(k.kind==="error")return O(r,t.createOutcomeToken(),{kind:"error",error:k.error instanceof F?k.error:new se(r,k.error)},i);let B=k.value,w;if(u){let V=e.equal??Object.is,Y,I,L=!1;try{Y=V(u.value,B)}catch(G){L=!0,I=Ye(G,"comparator")}let j=L?void 0:$e(Y,"comparator");Ae();let ie=n.getControlFault();if(ie.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:ie.error},i);let X=n.getCycle(t,r);if(X!==void 0)return O(r,t.createOutcomeToken(),{kind:"error",error:X},i);if(L)return O(r,t.createOutcomeToken(),{kind:"error",error:I instanceof F?I:new ae(r,I)},i);if(j===void 0)throw Error("Selector comparator classification was not completed");let p=n.getControlFault();if(p.kind==="fault")return O(r,t.createOutcomeToken(),{kind:"control-error",error:p.error},i);if(j.kind==="error")return O(r,t.createOutcomeToken(),{kind:"error",error:j.error instanceof F?j.error:new ae(r,j.error)},i);if(j.value!==!0&&j.value!==!1)return O(r,t.createOutcomeToken(),{kind:"error",error:new ke},i);if(j.value===!0)B=u.value,w=u.current?u.token:void 0}return O(r,w??t.createOutcomeToken(),{kind:"value",value:B},i)}finally{try{pe?.close()}finally{n.leave(t,r)}}};class m{#t=[];#n;#o=0;#i;#a=Ot;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 Ot=Object.freeze({kind:"none"});var Ze=Symbol("no-committed-selector-baseline");class he{#t;#n=new Map;#o=new Map;#i=new Map;#a;#r=1;#s=0;#d;constructor(e,t,n){this.#t=e,this.#a=t,this.#d=n}readSelector(e){let t=new m,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.#c(),o=n.resolveState(e,t);if(o.kind==="atom"){let a=this.#o.get(e);if(a!==void 0)return a;let c=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,c),c}let r=this.#n.get(e);if(r!==void 0)return r.served;let i=n.runSelectorActivity(t,()=>this.#d(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.#c().captureCommittedSelectorSuccess(e)??Ze,this.#i.set(e,t);return t===Ze?void 0:Object.freeze({current:!1,value:t.value})}createOutcomeToken(){return Object.freeze({id:this.#r++})}#c(){if(this.#t===void 0)throw Error("Scratch selector host is revoked");return this.#t}}var et=4096,Rt=Object.freeze([]);class nt{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 Se{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;#d=0;#c;#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(W(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=oe(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.#d===0)this.#c=[],this.#l=!1;this.#d++;let t=this.#c?.length??0,n=!1;return Object.freeze({takeAddedEdges:()=>{if(n||this.#l)return;let o=this.#c;if(o===void 0)return;if(t===o.length)return Rt;let r=Object.freeze(o.slice(t));return t=o.length,r},close:()=>{if(n)return;if(n=!0,this.#d--,this.#d!==0)return;this.#c=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??tt,t.dependencies),a=s?this.#S(e,o?.dependencies??tt,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.#d===0||this.#l)return;let o=this.#c;if(o===void 0){this.#e();return}let r=et-o.length,i=this.coordinator.runtimeDomain.selectors,s=new Set;for(let c of t)if(i.has(c.node))s.add(c.node);let a=[];for(let c of n)if(i.has(c.node)&&!s.has(c.node)){if(a.push(Object.freeze({tail:e,head:c.node})),a.length>r){this.#e();return}}return a}#p(e){if(e.length===0)return;let t=this.#c;if(t===void 0||t.length+e.length>et){this.#e();return}t.push(...e)}#e(){if(this.#d===0)return;this.#c=[],this.#l=!0}#m(){return new nt(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var tt=Object.freeze([]);class Ne{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#d;#c;#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.#c!==void 0&&Object.is(this.#s,e)&&Object.is(this.#d,t))return this.#c;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.#c;if(i===void 0){this.#s=e,this.#d=t,this.#c=n;return}if(Object.is(this.#s,e)&&Object.is(this.#d,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.#d,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.#d,i),this.#l!==void 0&&this.#h!==void 0)a.set(this.#l,this.#h);s.set(this.#s,a);let c=this.#f();c.set(t,n),s.set(e,c),this.#A=s,this.#s=void 0}this.#d=void 0,this.#c=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.#d=void 0,this.#c=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 ot{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]),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var De=(e,t,n)=>new ot(e,t,n),Ve=(e)=>{let t=E(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw N(t),new J},rt=(e)=>{let t=E(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw N(t),new J};var Ct=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},ut=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}),Et=32,ft=new WeakMap,Jt=()=>{let e=new Uint32Array(Et),t=Object.freeze({read(n){return e[ut[n]]??0}});return ft.set(t,e),t},R=(e)=>Object.freeze({kind:"value",value:e}),Nt=(e)=>Object.freeze({kind:"error",error:e}),it=(e)=>e.kind==="value"?R(e.value):Nt(e.error),st=(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,je=2,ct=4,Dt=(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}),Pe=(e)=>(e.onAllocation?.(),new Map),Vt=(e)=>(e.onAllocation?.(),new Set),xe=(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)},dt=(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=Pe(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=Pe(e),r.set(t,i);i.set(n,o)},jt=(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=Vt(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=Pe(e),e.affected=o;o.set(t,n)};class ht{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#d;#c=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:ft.get(t),this.#f=n,this.evaluate=n?.evaluate??Je,this.#n=new Se(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[ut[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Ne(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new m,o=t,r=x(this.#e,o,n),i=Ee(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 m);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 m);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 c=a.get(e);if(c===void 0){if(c=new Map,a.set(e,c),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let d=c.get(o);if(d===void 0){if(d={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},c.set(o,d),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:d,previous:d.tail,next:void 0};if(d.tail===void 0)d.head=l;else d.tail.next=l;if(d.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return Ct(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;We(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 m);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.#X(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=De(this,o,e),i;try{i=Ge(this.#e,o.transaction,()=>t(r))}catch(s){throw o.close(),o.release(),s}o.close();try{let s=new m;le(this.#e,s,()=>Ve(i)),this.#M(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new m,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.#k(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,c)=>{if(this.#t.has(a))return;this.#t.set(a,c),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new m,i=x(this.#e,o,r);if(ue(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.#k(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 m;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 m;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 m;this.#R(e,t,o,r,"Transaction.reset"),this.#z(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new m;if(typeof n!=="string")x(this.#e,n,i);ue(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=De(this,e,s);if(o===1)return a;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let c;try{c=r(a)}catch(l){let u=new m;return le(this.#e,u,()=>rt(l))}let d=new m;return le(this.#e,d,()=>Ve(c)),c}createOutcomeToken(){return Object.freeze({id:this.#o++})}#q(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#V(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#V(e,t){if(W(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 Se(this,e,t);this.recordCounter("scopeNodesCreated");let o=new Ie(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 Oe;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 Re;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new ce;throw new de}throw new de}#b(e){if(e.status!=="live")throw new Te}#$(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 m;this.#$(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.#z(a,e,i,s)}catch(c){throw a.close(),a.release(),c}a.close();try{this.#M(a)}finally{a.release()}}#X(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);ue(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=M(this.#e,r,()=>te(o));if(i.kind==="error")throw i.error;let s=this.#C(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.#C(e,t,n,r),a=e.hasIntents?this.#k(e,t,n,r):s.outcome;if(a.kind!=="value")throw a.error;let c=this.#Z(o,a.value,r);this.#U(e,t,n,c,s,r)}#z(e,t,n,o){this.#C(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#E(e,n,o),reachesFallback:!0}):this.#F(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}))}#C(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 c=a===void 0,d=Object.freeze({owned:i,outcome:a??this.#E(e,n,o),reachesFallback:c});return e.setAtomBaseline(t,n,d),d}#k(e,t,n,o){return this.#F(e,t,n,o).outcome}#F(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.#E(e,n,o),reachesFallback:!0})}#E(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#v(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=it(M(this.#e,n,()=>Ce(i)));return e.setFallback(t,a),a}#Q(e,t,n,o){let r=this.#v(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#J(r,t,n,o)?t:n}#J(e,t,n,o){return M(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 N(a),new ee}let i=E(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw N(i),new ee;if(r!==!0&&r!==!1)throw new ee;return r})}#Z(e,t,n){return M(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 N(s),new Z}let r=te(o);if(r.kind==="error")throw r.error;return r.value})}#M(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=Dt(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,c)=>{let d=this.#_(e,a,c,o);if(r===void 0){r=d;return}if(i===void 0)i=[];i.push(d)});if(r===void 0)return;if(this.#f?.(1,e,this.#e.atoms),this.#H(e,r),i!==void 0)for(let a of i)this.#H(e,a);let s=this.#B(r);if(i!==void 0)for(let a of i){let c=this.#B(a);s||=c}if(this.#L(r),i!==void 0)for(let a of i)this.#L(a);this.#se();try{let a,c,d=o.affectedRecord,l=o.affectedBefore;if(d!==void 0&&l!==void 0)a=this.#N(o,d,l);let{secondAffectedRecord:u,secondAffectedBefore:S}=o;if(u!==void 0&&S!==void 0){let y=this.#N(o,u,S);if(y!==void 0)if(a===void 0)a=y;else c=[y]}if(o.affected!==void 0)for(let[y,A]of o.affected){let _=this.#N(o,y,A);if(_===void 0)continue;if(a===void 0)a=_;else{if(c===void 0)c=[];c.push(_)}}if(s)this.#i+=1,this.recordCounter("sourceEpoch");this.#f?.(2,a===void 0?0:1+(c?.length??0)),this.#ie(a,c)}catch(a){throw this.#g(),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}#H(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")}#B(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))}#N(e,t,n){let o=xe(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),st(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(!jt(n,r))continue;let i=r.served.outcome,s=this.#G(e,r.scope,r.atom,n);if(st(i,s))continue;xt(n,r,i);let a=o.length;r.inheritingChildren.forEach((c)=>{this.recordCounter("routeVisits"),o.push(c)});for(let c=a,d=o.length-1;c<d;c++,d--){let l=o[c];o[c]=o[d],o[d]=l}}}#G(e,t,n,o){let r=xe(o,n,t);if(r!==void 0)return r;let i=t,s,a,c;while(i!==void 0){let d=xe(o,n,i);if(d!==void 0){c=d;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"){c=R(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){c=R(i.atomOverrides.get(n));break}i=i.parent}if(c??=this.#te(e,n),s!==void 0)dt(o,n,s,c),this.recordCounter("finalPreflightVisits");if(a!==void 0)for(let d of a)dt(o,n,d,c),this.recordCounter("finalPreflightVisits");return c}#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.#v(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.#v(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.#v(e);if(o.fallback.kind==="eager")return R(o.fallback.value);let r=o.fallback.initialize,i=it(M(this.#e,t,()=>Ce(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#v(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.#g();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#d=void 0,this.#c=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.#d=void 0,this.#c=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++}#g(){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.#g(),e!==void 0)throw e;return}let n,o,r=(d)=>{let l=d.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 d of i)r(d);if(this.#g(),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 c;for(let d of s){if(a)this.recordCounter("subscriberCallbacksAttempted");let l=new m,u=!1,S;try{Le(this.#e,l,()=>{try{let y=d(),A=E(y);if(A.kind==="thenable")N(A);else if(A.kind==="inspection-error")u=!0,S=A.error}catch(y){u=!0,S=y;let A=E(y);if(A.kind==="thenable")N(A)}})}catch(y){u=!0,S=y}if(u){if(c===void 0)c=[];if(c.push(S),a)this.recordCounter("subscriberErrors")}}if(c===void 0){if(e!==void 0)throw e;return}throw new we(e===void 0?c:[e,...c])}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)&(ct|je))!==0)return;this.#w(e,t,je);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 m)}this.#w(e,t,ct)}finally{this.#w(e,t,0,je)}}#W(e,t){if(Object.is(this.#s,e)&&Object.is(this.#d,t))return this.#c;return this.#l?.get(e)?.get(t)??0}#w(e,t,n,o=0){if(this.#s===void 0){this.#s=e,this.#d=t,this.#c=n&~o;return}if(Object.is(this.#s,e)&&Object.is(this.#d,t)){this.#c=(this.#c|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 Ie{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),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var lt=(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}}},St=(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=(c,d={})=>{let l=new m,u=M(t,l,()=>te(c));if(u.kind==="error")throw u.error;let S=fe("atom",t.ownerToken);return t.states.add(S),t.atoms.set(S,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...lt(d)})),S},o=(c,d={})=>{if(typeof c!=="function")throw TypeError("atomLazy requires an initializer function");let l=fe("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:c}),...lt(d)})),l},r=(c,d={})=>{if(typeof c!=="function")throw TypeError("selector requires a getter function");if(d.equal!==void 0&&typeof d.equal!=="function")throw TypeError("selector equal must be a function");let l=fe("selector",t.ownerToken),u=Object.freeze({node:l,get:c,...d.name===void 0?{}:{name:d.name},...d.equal===void 0?{}:{equal:d.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(c)=>{let d=new m;if(x(t,c,d)==="invalid")return;return t.stores.get(c)},a=Object.freeze({assertStore:(c)=>{let d=i(c);if(D(t,"adapter assertStore"),d===void 0)throw TypeError("assertStore requires a valid Store")},read:(c,d)=>{if(i(c)===void 0)throw Ee(t,"adapter read"),TypeError("read requires a valid Store");return c.get(d)},subscribe:(c,d,l)=>{if(i(c)===void 0)throw D(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return c.sub(d,l)},readHydrationSnapshot:(c,d)=>{let l=i(c);if(l===void 0)throw D(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,d)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:a,createStoreTree:(c=e,d)=>{D(t,"createStoreTree");let l=new ht(t,c,d);return new Ie(l,l.rootScope,d)}})};var Pt=St(),tn=(e,t)=>Pt.createStoreTree(e,t);
|
|
2
|
+
export{Q as a,Je as b,ge as c,we as d,U as e,q as f,K as g,ce as h,J as i,Z as j,ee as k,Te as l,Oe as m,Re as n,de as o,Jt as p,Pt as q,tn as r};
|
|
@@ -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-
|
|
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-t48n3zg9.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 H,d as B,p as U,r as X}from"./chunk-xjz5p1py.js";var Q=2048,Z=1e5,A=256,z=1024,P=1e4,ee=32,ne=20000,N=new Set(["span","operation","commit"]),te=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),G=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),oe=()=>{},M=Symbol("inspection dependency path root"),re=1;class w{#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 q=(e)=>{if(e.length===0)return;let t=Number.POSITIVE_INFINITY,n=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;t=Math.min(t,o.seqStart??r??0),n=Math.max(n,o.seqEnd??r??0)}return Object.freeze({firstSequence:t,lastSequence:n})},J=(e,t,n,o)=>{let r=e??t;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${n} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},_=(e)=>e.length<=A?e:e.slice(0,A),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),ie=()=>({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,committed:0,scratch:0,hydration:0,lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E()}}}}),D=(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}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof})})})})}),O=(e,t,n,o)=>{if(t.remaining--<=0||o>ee)return null;if(e===null)return null;if(typeof e==="string")return e.length<=z?e:e.slice(0,z);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,P);for(let c=0;c<a;c++)s.push(O(e[c],t,n,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,P);for(let s of i){if(G.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=O(a,t,n,o+1)}return Object.freeze(r)}finally{n.delete(e)}},V=(e)=>{if(e===void 0)return se;let t={},n={remaining:ne};for(let o of Object.keys(e).slice(0,P)){if(te.has(o)||G.has(o))continue;let r=e[o];if(r===void 0)continue;t[o]=O(r,n,new Set,0)}return Object.freeze(t)},se=Object.freeze({}),ae=(e,t)=>{if(t===void 0)return e;return Object.freeze({...e,...V(t)})},y=(e,t)=>t===void 0||!Number.isFinite(t)||t<=0?e:e+t,ce=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return L;try{let t=e.then;return typeof t==="function"?{kind:"thenable",target:e,then:t}:L}catch(t){return{kind:"inspection-error",error:t}}},L=Object.freeze({kind:"not-thenable"});class Y{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#T=1;#C=1;#R=1;#E=1;#n=[];#m=new WeakMap;#x=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#y;#O;constructor(e,t){this.#O=t,this.#r=J(e.capacity?.summaries,Q,"Inspection summary",!1),this.#u=J(e.capacity?.details,Z,"Inspection detail",!0),this.#o=new w(this.#r),this.#e=new w(this.#u),this.#y=this.#p(),this.#j()}get recordingId(){return this.#d}registerStore(e,t){this.#w.set(e,t)}capture(e,t){let n=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=n===void 0?void 0:this.#w.get(n);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(t!==void 0){let s=typeof t==="object"&&t!==null||typeof t==="function"?t:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let c=a.atoms.get(s),h=a.selectors.get(s);if(c===void 0&&h===void 0)throw TypeError("Inspection capture requires a valid State");let g=c?.name??h?.name;r=this.reference(s,c===void 0?"selector":"atom",typeof g==="string"?g:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#V(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#h()})}reference(e,t,n){if(this.#t!==void 0)return W;try{let o=this.#m.get(e);if(o===void 0)o=this.#E++,this.#m.set(e,o);let r=this.#x.get(e);if(r===void 0&&n!==void 0)r=_(n),this.#x.set(e,r);return Object.freeze({id:o,kind:t,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),W}}sessionId(e){let t=this.#f.get(e);if(t!==void 0)return t;let n=this.#C++;return this.#f.set(e,n),n}beginInterval(e){if(this.#t!==void 0)return F;try{let t=this.#A(e.type),n=Object.freeze({id:t,type:e.type}),o=Object.freeze({...this.#h(),...e.links}),r={token:n,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:_(e.name),seqStart:this.#s++,startUs:this.#b(),fields:V(e.fields),totals:N.has(e.type)?ie():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:N.has(e.type)?this.#D():void 0};if(e.type==="commit"){let i=this.#i("operation");if(i!==void 0)i.commitId=t}return this.#n.push(r),n}catch{return this.#c("begin-interval"),F}}finishInterval(e,t={}){if(e.id===0||this.#t!==void 0)return;try{let n=this.#n.pop();if(n===void 0||!Object.is(n.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#P(n);let o=this.#s++,r=Math.max(0,this.#b()-n.startUs),i=ae(n.fields,t.fields),s=this.#z(n,o,r,i,t.result);if(N.has(n.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 t=this.#s++,n=Object.freeze({...V(e.fields),type:e.type,sequence:t,timeUs:this.#b(),...this.#h(),...e.links});if(this.#e.add(n))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let t of this.#n){let n=t.totals;if(n===void 0)continue;n.selectorEvaluations=y(n.selectorEvaluations,e.selectorEvaluations),n.proposedTopologyChanges=y(n.proposedTopologyChanges,e.proposedTopologyChanges),n.proposedTopologyIdentical=y(n.proposedTopologyIdentical,e.proposedTopologyIdentical),n.transientSelectorHostsCreated=y(n.transientSelectorHostsCreated,e.transientSelectorHostsCreated),n.propagationSettled=y(n.propagationSettled,e.propagationSettled),n.notificationTargets=y(n.notificationTargets,e.notificationTargets),n.subscriberCallbacks=y(n.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;if(n.cycle.searches=y(n.cycle.searches,o.searches),n.cycle.visits=y(n.cycle.visits,o.visits),n.cycle.maxVisits=Math.max(n.cycle.maxVisits,o.maxVisits??0),n.cycle.found=y(n.cycle.found,o.found),o.site==="prefix-revalidation")n.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")n.cycle.newEdgeProof+=o.searches??1;if(o.host!==void 0)n.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let r=o.site==="prefix-revalidation"?"prefixRevalidation":"newEdgeProof",i=n.cycle.lanes[o.host][r];i.searches=y(i.searches,o.searches),i.visits=y(i.visits,o.visits),i.maxVisits=Math.max(i.maxVisits,o.maxVisits??0),i.found=y(i.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,t){let n=this.#i("operation"),o=n===void 0||!Object.is(n.token,e)||n.commitId===void 0||!n.commitSourceApplied?"none":t==="returned"?"committed":n.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:t,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,t){let n=this.#i("operation");if(n!==void 0)n.commitSourceApplied||=t.sourceApplied,n.commitFailurePhase=t.failurePhase;this.finishInterval(e,{result:t.result,fields:{intents:t.intents,...t.changedSources===void 0?{}:{changedSources:t.changedSources},...t.ownershipChanged===void 0?{}:{ownershipChanged:t.ownershipChanged},sourceApplied:t.sourceApplied,notificationsCompleted:t.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 t=e[0];if(t===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(t===1){let o=e[1]===0?"returned":"threw",r=this.#i("operation");if(r===void 0)return;let i=this.#i("commit");if(i!==void 0)this.#P(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(t===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(t===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let n=this.#i("operation");if(n!==void 0)n.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,t){this.recordStoreEvent(2),e.forEachIntent((n,o)=>{let r=t.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,n,n.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,t,n,o,r,i,s,a,c,h,g){g?.beginSearch();let R=s===0?"prefix-revalidation":"new-edge-proof",S=this.beginInterval({type:"cycle-search",fields:{site:R,host:e,hostRef:t,start:this.#I(n),target:this.#I(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-a,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-c,acceptedPrefixLength:i.getTransientDependencies(r,o)?.length??0,parentWasCold:h}}),p=[n],d=new Map([[n,M]]),u=0,m=0,I=1,C=0,v=0,k=0,b;while(p.length>0){let l=p.pop();if(u++,Object.is(l,o)){let f=[],T=l;while(T!==M)f.push(T),T=d.get(T);f.reverse(),b=Object.freeze(f);break}if(g?.hasProvenNoPath(l))continue;let x=i.getTransientDependencies(r,l);if(x){C++,m+=x.length;for(let f of x){if(d.has(f.node))continue;d.set(f.node,l),p.push(f.node)}if(p.length>I)I=p.length;continue}if(r.getSelectorDependencyNodes!==void 0){let f=r.getSelectorDependencyNodes(l);if(f===void 0){k++;continue}v++,m+=f.length;for(let T of f){if(d.has(T))continue;d.set(T,l),p.push(T)}if(p.length>I)I=p.length;continue}let j=r.getSelectorRecord(l);if(!j){k++;continue}v++,m+=j.dependencies.length;for(let f of j.dependencies){if(d.has(f.node))continue;d.set(f.node,l),p.push(f.node)}if(p.length>I)I=p.length}if(b===void 0)g?.completeNegative(d);return this.addWork({cycle:{searches:1,visits:u,maxVisits:u,found:b===void 0?0:1,site:R,host:e}}),this.finishInterval(S,{result:"returned",fields:{visits:u,edges:m,maxFrontier:I,transientExpansions:C,recordExpansions:v,terminalPrunes:k,found:b!==void 0,...b===void 0?{}:{path:b.map((l)=>this.#I(l))}}}),b}span(e,t){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof t!=="function")throw TypeError("Inspection span callback must be a function");let n=this.beginInterval({type:"span",name:e}),o;try{o=t()}catch(i){throw this.finishInterval(n,{result:"threw"}),i}let r=ce(o);if(r.kind==="inspection-error")throw this.finishInterval(n,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,oe])}catch{}throw this.finishInterval(n,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(n,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),t=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),n=q(e),o=q(t);return Object.freeze({schema:"valdres.inspect",schemaVersion:1,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(t),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...n===void 0?{}:{summaries:n},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#j()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(t,n)=>e.capture(t,n),span:(t,n)=>e.span(t,n),export:()=>e.export(),reset:()=>e.reset()})}#j(){this.#d=`inspection-${re++}`,this.#o=new w(this.#r),this.#e=new w(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#T=1,this.#C=1,this.#R=1,this.#E=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()}#A(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.#T++;return this.#R++}#h(){let e={};for(let t of this.#n){let{id:n,type:o}=t.token;if(t.links.sessionId!==void 0)e.sessionId=t.links.sessionId;if(o==="span")e.spanId=n;else if(o==="operation")e.operationId=n;else if(o==="commit")e.commitId=n;else if(o==="selector-evaluation")e.evaluationId=n;else if(o==="cycle-search")e.searchId=n}return e}#i(e){for(let t=this.#n.length-1;t>=0;t--){let n=this.#n[t];if(n.token.type===e)return n}return}#I(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,t,n,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:t,startUs:e.startUs,durationUs:n,...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:D(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:D(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:D(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`)}#D(){let e=(t)=>this.#O.read(t);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#P(e){let t=e.counterStart;if(t===void 0)return;e.counterStart=void 0;let n=this.#D();if(e.token.type==="commit")e.commitOwnershipChanged=n.sourceEpoch!==t.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=n.transientSelectorHostsCreated-t.transientSelectorHostsCreated,o.propagationSettled+=n.propagationSettled-t.propagationSettled,o.notificationTargets+=n.notificationTargets-t.notificationTargets,o.subscriberCallbacks+=n.subscriberCallbacks-t.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let t=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:t}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#V(e){return Math.max(0,Math.round((e-this.#y)*1000))}#b(){return this.#V(this.#p())}}var W=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),de=(e)=>{let t=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let c=a();return e.recordStoreEvent(1,0),c}catch(c){throw e.recordStoreEvent(1,1,c instanceof B?1:0),c}},n=(r,i,s)=>{if(r===0){let a=i,c=s;e.registerStore(a,c);let h=a,g=a.set,R=a.update,S=a.reset,p=a.txn;h.set=(d,u)=>t(0,c,void 0,()=>g(d,u)),h.update=(d,u)=>t(1,c,void 0,()=>R(d,u)),h.reset=(d)=>t(2,c,void 0,()=>S(d)),h.txn=(d,u)=>{if(typeof d!=="function"||u!==void 0&&typeof u!=="string")return p(d,u);return t(3,c,u,()=>p(d,u))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(n,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",c=i.name,h=e.reference(i,a==="committed"?"scope":"scratch-host",typeof c==="string"?c:void 0),g=i.getSelectorGraphVersion(),R=s.getSelectorGraphPublicationCount(i),S=i.getSelectorRecord(r.node)?.dependencies,p=S?.length??0,d=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:h,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:g,previousDependencyCount:p}});e.addWork({selectorEvaluations:1});let u=(m,I,C,v,k,b)=>e.findDependencyPath(a,h,m,I,C,v,k,g,R,S===void 0,b);try{let m=H(r,i,s,u),I=S===void 0||S.length!==m.dependencies.length||S.some((l,x)=>!Object.is(l.node,m.dependencies[x]?.node)),C=new Set(S?.map((l)=>l.node)),v=new Set(m.dependencies.map((l)=>l.node)),k=0,b=0;for(let l of v)if(!C.has(l))k++;for(let l of C)if(!v.has(l))b++;return e.addWork(I?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1}),e.finishInterval(d,{result:"returned",fields:{outcome:m.outcome.kind,dependencyCount:m.dependencies.length,proposedTopologyChanged:I,proposedEdgesAdded:k,proposedEdgesRemoved:b,graphVersionEnd:i.getSelectorGraphVersion()}}),m}catch(m){throw e.finishInterval(d,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion()}}),m}}}),Object.freeze(n)},K=(e={})=>{let t=U(),n=new Y(e,t);return Object.freeze({recorder:n,inspect:n.createInspector(),instrumentation:t,trace:de(n)})};var ye=(e={})=>{let{inspect:t,instrumentation:n,trace:o}=K(e),r=X(n,o);return Object.freeze({store:r,inspect:t})};export{ye as createInspectableStore};
|
|
1
|
+
import{b as H,d as B,p as U,r as X}from"./chunk-t48n3zg9.js";var Q=2048,Z=1e5,A=256,z=1024,P=1e4,ee=32,ne=20000,D=new Set(["span","operation","commit"]),te=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),G=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),oe=()=>{},M=Symbol("inspection dependency path root"),re=1;class w{#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 q=(e)=>{if(e.length===0)return;let t=Number.POSITIVE_INFINITY,n=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;t=Math.min(t,o.seqStart??r??0),n=Math.max(n,o.seqEnd??r??0)}return Object.freeze({firstSequence:t,lastSequence:n})},J=(e,t,n,o)=>{let r=e??t;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${n} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},_=(e)=>e.length<=A?e:e.slice(0,A),v=()=>({searches:0,visits:0,maxVisits:0,found:0}),ie=()=>({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,lanes:{committed:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()},scratch:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()},hydration:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()}}}}),N=(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}),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,t,n,o)=>{if(t.remaining--<=0||o>ee)return null;if(e===null)return null;if(typeof e==="string")return e.length<=z?e:e.slice(0,z);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,P);for(let c=0;c<a;c++)s.push(O(e[c],t,n,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,P);for(let s of i){if(G.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=O(a,t,n,o+1)}return Object.freeze(r)}finally{n.delete(e)}},V=(e)=>{if(e===void 0)return se;let t={},n={remaining:ne};for(let o of Object.keys(e).slice(0,P)){if(te.has(o)||G.has(o))continue;let r=e[o];if(r===void 0)continue;t[o]=O(r,n,new Set,0)}return Object.freeze(t)},se=Object.freeze({}),ae=(e,t)=>{if(t===void 0)return e;return Object.freeze({...e,...V(t)})},y=(e,t)=>t===void 0||!Number.isFinite(t)||t<=0?e:e+t,ce=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return L;try{let t=e.then;return typeof t==="function"?{kind:"thenable",target:e,then:t}:L}catch(t){return{kind:"inspection-error",error:t}}},L=Object.freeze({kind:"not-thenable"});class Y{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#C=1;#T=1;#R=1;#E=1;#n=[];#f=new WeakMap;#x=new WeakMap;#w=new WeakMap;#m=new WeakMap;#l=0;#a=0;#t;#y;#O;constructor(e,t){this.#O=t,this.#r=J(e.capacity?.summaries,Q,"Inspection summary",!1),this.#u=J(e.capacity?.details,Z,"Inspection detail",!0),this.#o=new w(this.#r),this.#e=new w(this.#u),this.#y=this.#p(),this.#j()}get recordingId(){return this.#d}registerStore(e,t){this.#w.set(e,t)}capture(e,t){let n=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=n===void 0?void 0:this.#w.get(n);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(t!==void 0){let s=typeof t==="object"&&t!==null||typeof t==="function"?t:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let c=a.atoms.get(s),h=a.selectors.get(s);if(c===void 0&&h===void 0)throw TypeError("Inspection capture requires a valid State");let S=c?.name??h?.name;r=this.reference(s,c===void 0?"selector":"atom",typeof S==="string"?S:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#V(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#h()})}reference(e,t,n){if(this.#t!==void 0)return W;try{let o=this.#f.get(e);if(o===void 0)o=this.#E++,this.#f.set(e,o);let r=this.#x.get(e);if(r===void 0&&n!==void 0)r=_(n),this.#x.set(e,r);return Object.freeze({id:o,kind:t,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),W}}sessionId(e){let t=this.#m.get(e);if(t!==void 0)return t;let n=this.#T++;return this.#m.set(e,n),n}beginInterval(e){if(this.#t!==void 0)return F;try{let t=this.#A(e.type),n=Object.freeze({id:t,type:e.type}),o=Object.freeze({...this.#h(),...e.links}),r={token:n,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:_(e.name),seqStart:this.#s++,startUs:this.#b(),fields:V(e.fields),totals:D.has(e.type)?ie():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:D.has(e.type)?this.#N():void 0};if(e.type==="commit"){let i=this.#i("operation");if(i!==void 0)i.commitId=t}return this.#n.push(r),n}catch{return this.#c("begin-interval"),F}}finishInterval(e,t={}){if(e.id===0||this.#t!==void 0)return;try{let n=this.#n.pop();if(n===void 0||!Object.is(n.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#P(n);let o=this.#s++,r=Math.max(0,this.#b()-n.startUs),i=ae(n.fields,t.fields),s=this.#z(n,o,r,i,t.result);if(D.has(n.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 t=this.#s++,n=Object.freeze({...V(e.fields),type:e.type,sequence:t,timeUs:this.#b(),...this.#h(),...e.links});if(this.#e.add(n))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let t of this.#n){let n=t.totals;if(n===void 0)continue;n.selectorEvaluations=y(n.selectorEvaluations,e.selectorEvaluations),n.proposedTopologyChanges=y(n.proposedTopologyChanges,e.proposedTopologyChanges),n.proposedTopologyIdentical=y(n.proposedTopologyIdentical,e.proposedTopologyIdentical),n.transientSelectorHostsCreated=y(n.transientSelectorHostsCreated,e.transientSelectorHostsCreated),n.propagationSettled=y(n.propagationSettled,e.propagationSettled),n.notificationTargets=y(n.notificationTargets,e.notificationTargets),n.subscriberCallbacks=y(n.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;if(n.cycle.searches=y(n.cycle.searches,o.searches),n.cycle.visits=y(n.cycle.visits,o.visits),n.cycle.maxVisits=Math.max(n.cycle.maxVisits,o.maxVisits??0),n.cycle.found=y(n.cycle.found,o.found),o.site==="prefix-revalidation")n.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")n.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")n.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)n.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",i=n.cycle.lanes[o.host][r];i.searches=y(i.searches,o.searches),i.visits=y(i.visits,o.visits),i.maxVisits=Math.max(i.maxVisits,o.maxVisits??0),i.found=y(i.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,t){let n=this.#i("operation"),o=n===void 0||!Object.is(n.token,e)||n.commitId===void 0||!n.commitSourceApplied?"none":t==="returned"?"committed":n.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:t,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,t){let n=this.#i("operation");if(n!==void 0)n.commitSourceApplied||=t.sourceApplied,n.commitFailurePhase=t.failurePhase;this.finishInterval(e,{result:t.result,fields:{intents:t.intents,...t.changedSources===void 0?{}:{changedSources:t.changedSources},...t.ownershipChanged===void 0?{}:{ownershipChanged:t.ownershipChanged},sourceApplied:t.sourceApplied,notificationsCompleted:t.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 t=e[0];if(t===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(t===1){let o=e[1]===0?"returned":"threw",r=this.#i("operation");if(r===void 0)return;let i=this.#i("commit");if(i!==void 0)this.#P(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(t===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(t===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let n=this.#i("operation");if(n!==void 0)n.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,t){this.recordStoreEvent(2),e.forEachIntent((n,o)=>{let r=t.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,n,n.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,t,n,o,r,i,s,a,c,h,S){let E=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",g=this.beginInterval({type:"cycle-search",fields:{site:E,host:e,hostRef:t,start:this.#I(n),target:this.#I(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-c,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-h,acceptedPrefixLength:a,parentWasCold:S}}),p=[n],d=new Map([[n,M]]),u=0,f=0,I=1,R=0,k=0,C=0,b;while(p.length>0){let l=p.pop();if(u++,Object.is(l,o)){let m=[],T=l;while(T!==M)m.push(T),T=d.get(T);m.reverse(),b=Object.freeze(m);break}let x=i.getTransientDependencies(r,l);if(x){R++,f+=x.length;for(let m of x){if(d.has(m.node))continue;d.set(m.node,l),p.push(m.node)}if(p.length>I)I=p.length;continue}if(r.getSelectorDependencyNodes!==void 0){let m=r.getSelectorDependencyNodes(l);if(m===void 0){C++;continue}k++,f+=m.length;for(let T of m){if(d.has(T))continue;d.set(T,l),p.push(T)}if(p.length>I)I=p.length;continue}let j=r.getSelectorRecord(l);if(!j){C++;continue}k++,f+=j.dependencies.length;for(let m of j.dependencies){if(d.has(m.node))continue;d.set(m.node,l),p.push(m.node)}if(p.length>I)I=p.length}return this.addWork({cycle:{searches:1,visits:u,maxVisits:u,found:b===void 0?0:1,site:E,host:e}}),this.finishInterval(g,{result:"returned",fields:{visits:u,edges:f,maxFrontier:I,transientExpansions:R,recordExpansions:k,terminalPrunes:C,found:b!==void 0,...b===void 0?{}:{path:b.map((l)=>this.#I(l))}}}),b}span(e,t){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof t!=="function")throw TypeError("Inspection span callback must be a function");let n=this.beginInterval({type:"span",name:e}),o;try{o=t()}catch(i){throw this.finishInterval(n,{result:"threw"}),i}let r=ce(o);if(r.kind==="inspection-error")throw this.finishInterval(n,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,oe])}catch{}throw this.finishInterval(n,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(n,{result:"returned"}),o}export(){this.#D("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),t=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),n=q(e),o=q(t);return Object.freeze({schema:"valdres.inspect",schemaVersion:2,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(t),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...n===void 0?{}:{summaries:n},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#D("reset"),this.#j()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(t,n)=>e.capture(t,n),span:(t,n)=>e.span(t,n),export:()=>e.export(),reset:()=>e.reset()})}#j(){this.#d=`inspection-${re++}`,this.#o=new w(this.#r),this.#e=new w(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#C=1,this.#T=1,this.#R=1,this.#E=1,this.#n=[],this.#f=new WeakMap,this.#m=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#y=this.#p()}#A(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.#C++;return this.#R++}#h(){let e={};for(let t of this.#n){let{id:n,type:o}=t.token;if(t.links.sessionId!==void 0)e.sessionId=t.links.sessionId;if(o==="span")e.spanId=n;else if(o==="operation")e.operationId=n;else if(o==="commit")e.commitId=n;else if(o==="selector-evaluation")e.evaluationId=n;else if(o==="cycle-search")e.searchId=n}return e}#i(e){for(let t=this.#n.length-1;t>=0;t--){let n=this.#n[t];if(n.token.type===e)return n}return}#I(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,t,n,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:t,startUs:e.startUs,durationUs:n,...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:N(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:N(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:N(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})}#D(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#N(){let e=(t)=>this.#O.read(t);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#P(e){let t=e.counterStart;if(t===void 0)return;e.counterStart=void 0;let n=this.#N();if(e.token.type==="commit")e.commitOwnershipChanged=n.sourceEpoch!==t.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=n.transientSelectorHostsCreated-t.transientSelectorHostsCreated,o.propagationSettled+=n.propagationSettled-t.propagationSettled,o.notificationTargets+=n.notificationTargets-t.notificationTargets,o.subscriberCallbacks+=n.subscriberCallbacks-t.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let t=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:t}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#V(e){return Math.max(0,Math.round((e-this.#y)*1000))}#b(){return this.#V(this.#p())}}var W=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),de=(e)=>{let t=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let c=a();return e.recordStoreEvent(1,0),c}catch(c){throw e.recordStoreEvent(1,1,c instanceof B?1:0),c}},n=(r,i,s)=>{if(r===0){let a=i,c=s;e.registerStore(a,c);let h=a,S=a.set,E=a.update,g=a.reset,p=a.txn;h.set=(d,u)=>t(0,c,void 0,()=>S(d,u)),h.update=(d,u)=>t(1,c,void 0,()=>E(d,u)),h.reset=(d)=>t(2,c,void 0,()=>g(d)),h.txn=(d,u)=>{if(typeof d!=="function"||u!==void 0&&typeof u!=="string")return p(d,u);return t(3,c,u,()=>p(d,u))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(n,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",c=i.name,h=e.reference(i,a==="committed"?"scope":"scratch-host",typeof c==="string"?c:void 0),S=i.getSelectorGraphVersion(),E=s.getSelectorGraphPublicationCount(i),g=i.getSelectorRecord(r.node)?.dependencies,p=g?.length??0,d=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:h,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:S,previousDependencyCount:p}});e.addWork({selectorEvaluations:1});let u=(f,I,R,k,C,b)=>e.findDependencyPath(a,h,f,I,R,k,C,b,S,E,g===void 0);try{let f=H(r,i,s,u),I=g===void 0||g.length!==f.dependencies.length||g.some((l,x)=>!Object.is(l.node,f.dependencies[x]?.node)),R=new Set(g?.map((l)=>l.node)),k=new Set(f.dependencies.map((l)=>l.node)),C=0,b=0;for(let l of k)if(!R.has(l))C++;for(let l of R)if(!k.has(l))b++;return e.addWork(I?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1}),e.finishInterval(d,{result:"returned",fields:{outcome:f.outcome.kind,dependencyCount:f.dependencies.length,proposedTopologyChanged:I,proposedEdgesAdded:C,proposedEdgesRemoved:b,graphVersionEnd:i.getSelectorGraphVersion()}}),f}catch(f){throw e.finishInterval(d,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion()}}),f}}}),Object.freeze(n)},K=(e={})=>{let t=U(),n=new Y(e,t);return Object.freeze({recorder:n,inspect:n.createInspector(),instrumentation:t,trace:de(n)})};var ye=(e={})=>{let{inspect:t,instrumentation:n,trace:o}=K(e),r=X(n,o);return Object.freeze({store:r,inspect:t})};export{ye 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-
|
|
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-t48n3zg9.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 H,d as B,p as U,r as X}from"./chunk-xjz5p1py.js";var Q=2048,Z=1e5,A=256,z=1024,P=1e4,ee=32,ne=20000,N=new Set(["span","operation","commit"]),te=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),G=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),oe=()=>{},M=Symbol("inspection dependency path root"),re=1;class w{#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 q=(e)=>{if(e.length===0)return;let t=Number.POSITIVE_INFINITY,n=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;t=Math.min(t,o.seqStart??r??0),n=Math.max(n,o.seqEnd??r??0)}return Object.freeze({firstSequence:t,lastSequence:n})},J=(e,t,n,o)=>{let r=e??t;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${n} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},_=(e)=>e.length<=A?e:e.slice(0,A),E=()=>({searches:0,visits:0,maxVisits:0,found:0}),ie=()=>({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,committed:0,scratch:0,hydration:0,lanes:{committed:{prefixRevalidation:E(),newEdgeProof:E()},scratch:{prefixRevalidation:E(),newEdgeProof:E()},hydration:{prefixRevalidation:E(),newEdgeProof:E()}}}}),D=(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}),byHost:Object.freeze({committed:e.cycle.committed,scratch:e.cycle.scratch,hydration:e.cycle.hydration}),byLane:Object.freeze({committed:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.committed.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.committed.newEdgeProof})}),scratch:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.scratch.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.scratch.newEdgeProof})}),hydration:Object.freeze({prefixRevalidation:Object.freeze({...e.cycle.lanes.hydration.prefixRevalidation}),newEdgeProof:Object.freeze({...e.cycle.lanes.hydration.newEdgeProof})})})})}),O=(e,t,n,o)=>{if(t.remaining--<=0||o>ee)return null;if(e===null)return null;if(typeof e==="string")return e.length<=z?e:e.slice(0,z);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,P);for(let c=0;c<a;c++)s.push(O(e[c],t,n,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,P);for(let s of i){if(G.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=O(a,t,n,o+1)}return Object.freeze(r)}finally{n.delete(e)}},V=(e)=>{if(e===void 0)return se;let t={},n={remaining:ne};for(let o of Object.keys(e).slice(0,P)){if(te.has(o)||G.has(o))continue;let r=e[o];if(r===void 0)continue;t[o]=O(r,n,new Set,0)}return Object.freeze(t)},se=Object.freeze({}),ae=(e,t)=>{if(t===void 0)return e;return Object.freeze({...e,...V(t)})},y=(e,t)=>t===void 0||!Number.isFinite(t)||t<=0?e:e+t,ce=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return L;try{let t=e.then;return typeof t==="function"?{kind:"thenable",target:e,then:t}:L}catch(t){return{kind:"inspection-error",error:t}}},L=Object.freeze({kind:"not-thenable"});class Y{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#T=1;#C=1;#R=1;#E=1;#n=[];#m=new WeakMap;#x=new WeakMap;#w=new WeakMap;#f=new WeakMap;#l=0;#a=0;#t;#y;#O;constructor(e,t){this.#O=t,this.#r=J(e.capacity?.summaries,Q,"Inspection summary",!1),this.#u=J(e.capacity?.details,Z,"Inspection detail",!0),this.#o=new w(this.#r),this.#e=new w(this.#u),this.#y=this.#p(),this.#j()}get recordingId(){return this.#d}registerStore(e,t){this.#w.set(e,t)}capture(e,t){let n=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=n===void 0?void 0:this.#w.get(n);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(t!==void 0){let s=typeof t==="object"&&t!==null||typeof t==="function"?t:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let c=a.atoms.get(s),h=a.selectors.get(s);if(c===void 0&&h===void 0)throw TypeError("Inspection capture requires a valid State");let g=c?.name??h?.name;r=this.reference(s,c===void 0?"selector":"atom",typeof g==="string"?g:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#V(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#h()})}reference(e,t,n){if(this.#t!==void 0)return W;try{let o=this.#m.get(e);if(o===void 0)o=this.#E++,this.#m.set(e,o);let r=this.#x.get(e);if(r===void 0&&n!==void 0)r=_(n),this.#x.set(e,r);return Object.freeze({id:o,kind:t,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),W}}sessionId(e){let t=this.#f.get(e);if(t!==void 0)return t;let n=this.#C++;return this.#f.set(e,n),n}beginInterval(e){if(this.#t!==void 0)return F;try{let t=this.#A(e.type),n=Object.freeze({id:t,type:e.type}),o=Object.freeze({...this.#h(),...e.links}),r={token:n,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:_(e.name),seqStart:this.#s++,startUs:this.#b(),fields:V(e.fields),totals:N.has(e.type)?ie():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:N.has(e.type)?this.#D():void 0};if(e.type==="commit"){let i=this.#i("operation");if(i!==void 0)i.commitId=t}return this.#n.push(r),n}catch{return this.#c("begin-interval"),F}}finishInterval(e,t={}){if(e.id===0||this.#t!==void 0)return;try{let n=this.#n.pop();if(n===void 0||!Object.is(n.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#P(n);let o=this.#s++,r=Math.max(0,this.#b()-n.startUs),i=ae(n.fields,t.fields),s=this.#z(n,o,r,i,t.result);if(N.has(n.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 t=this.#s++,n=Object.freeze({...V(e.fields),type:e.type,sequence:t,timeUs:this.#b(),...this.#h(),...e.links});if(this.#e.add(n))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let t of this.#n){let n=t.totals;if(n===void 0)continue;n.selectorEvaluations=y(n.selectorEvaluations,e.selectorEvaluations),n.proposedTopologyChanges=y(n.proposedTopologyChanges,e.proposedTopologyChanges),n.proposedTopologyIdentical=y(n.proposedTopologyIdentical,e.proposedTopologyIdentical),n.transientSelectorHostsCreated=y(n.transientSelectorHostsCreated,e.transientSelectorHostsCreated),n.propagationSettled=y(n.propagationSettled,e.propagationSettled),n.notificationTargets=y(n.notificationTargets,e.notificationTargets),n.subscriberCallbacks=y(n.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;if(n.cycle.searches=y(n.cycle.searches,o.searches),n.cycle.visits=y(n.cycle.visits,o.visits),n.cycle.maxVisits=Math.max(n.cycle.maxVisits,o.maxVisits??0),n.cycle.found=y(n.cycle.found,o.found),o.site==="prefix-revalidation")n.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")n.cycle.newEdgeProof+=o.searches??1;if(o.host!==void 0)n.cycle[o.host]+=o.searches??1;if(o.host!==void 0&&o.site!==void 0){let r=o.site==="prefix-revalidation"?"prefixRevalidation":"newEdgeProof",i=n.cycle.lanes[o.host][r];i.searches=y(i.searches,o.searches),i.visits=y(i.visits,o.visits),i.maxVisits=Math.max(i.maxVisits,o.maxVisits??0),i.found=y(i.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,t){let n=this.#i("operation"),o=n===void 0||!Object.is(n.token,e)||n.commitId===void 0||!n.commitSourceApplied?"none":t==="returned"?"committed":n.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:t,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,t){let n=this.#i("operation");if(n!==void 0)n.commitSourceApplied||=t.sourceApplied,n.commitFailurePhase=t.failurePhase;this.finishInterval(e,{result:t.result,fields:{intents:t.intents,...t.changedSources===void 0?{}:{changedSources:t.changedSources},...t.ownershipChanged===void 0?{}:{ownershipChanged:t.ownershipChanged},sourceApplied:t.sourceApplied,notificationsCompleted:t.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 t=e[0];if(t===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(t===1){let o=e[1]===0?"returned":"threw",r=this.#i("operation");if(r===void 0)return;let i=this.#i("commit");if(i!==void 0)this.#P(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(t===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(t===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let n=this.#i("operation");if(n!==void 0)n.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,t){this.recordStoreEvent(2),e.forEachIntent((n,o)=>{let r=t.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,n,n.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,t,n,o,r,i,s,a,c,h,g){g?.beginSearch();let R=s===0?"prefix-revalidation":"new-edge-proof",S=this.beginInterval({type:"cycle-search",fields:{site:R,host:e,hostRef:t,start:this.#I(n),target:this.#I(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-a,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-c,acceptedPrefixLength:i.getTransientDependencies(r,o)?.length??0,parentWasCold:h}}),p=[n],d=new Map([[n,M]]),u=0,m=0,I=1,C=0,v=0,k=0,b;while(p.length>0){let l=p.pop();if(u++,Object.is(l,o)){let f=[],T=l;while(T!==M)f.push(T),T=d.get(T);f.reverse(),b=Object.freeze(f);break}if(g?.hasProvenNoPath(l))continue;let x=i.getTransientDependencies(r,l);if(x){C++,m+=x.length;for(let f of x){if(d.has(f.node))continue;d.set(f.node,l),p.push(f.node)}if(p.length>I)I=p.length;continue}if(r.getSelectorDependencyNodes!==void 0){let f=r.getSelectorDependencyNodes(l);if(f===void 0){k++;continue}v++,m+=f.length;for(let T of f){if(d.has(T))continue;d.set(T,l),p.push(T)}if(p.length>I)I=p.length;continue}let j=r.getSelectorRecord(l);if(!j){k++;continue}v++,m+=j.dependencies.length;for(let f of j.dependencies){if(d.has(f.node))continue;d.set(f.node,l),p.push(f.node)}if(p.length>I)I=p.length}if(b===void 0)g?.completeNegative(d);return this.addWork({cycle:{searches:1,visits:u,maxVisits:u,found:b===void 0?0:1,site:R,host:e}}),this.finishInterval(S,{result:"returned",fields:{visits:u,edges:m,maxFrontier:I,transientExpansions:C,recordExpansions:v,terminalPrunes:k,found:b!==void 0,...b===void 0?{}:{path:b.map((l)=>this.#I(l))}}}),b}span(e,t){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof t!=="function")throw TypeError("Inspection span callback must be a function");let n=this.beginInterval({type:"span",name:e}),o;try{o=t()}catch(i){throw this.finishInterval(n,{result:"threw"}),i}let r=ce(o);if(r.kind==="inspection-error")throw this.finishInterval(n,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,oe])}catch{}throw this.finishInterval(n,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(n,{result:"returned"}),o}export(){this.#N("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),t=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),n=q(e),o=q(t);return Object.freeze({schema:"valdres.inspect",schemaVersion:1,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(t),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...n===void 0?{}:{summaries:n},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#N("reset"),this.#j()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(t,n)=>e.capture(t,n),span:(t,n)=>e.span(t,n),export:()=>e.export(),reset:()=>e.reset()})}#j(){this.#d=`inspection-${re++}`,this.#o=new w(this.#r),this.#e=new w(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#T=1,this.#C=1,this.#R=1,this.#E=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()}#A(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.#T++;return this.#R++}#h(){let e={};for(let t of this.#n){let{id:n,type:o}=t.token;if(t.links.sessionId!==void 0)e.sessionId=t.links.sessionId;if(o==="span")e.spanId=n;else if(o==="operation")e.operationId=n;else if(o==="commit")e.commitId=n;else if(o==="selector-evaluation")e.evaluationId=n;else if(o==="cycle-search")e.searchId=n}return e}#i(e){for(let t=this.#n.length-1;t>=0;t--){let n=this.#n[t];if(n.token.type===e)return n}return}#I(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,t,n,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:t,startUs:e.startUs,durationUs:n,...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:D(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:D(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:D(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`)}#D(){let e=(t)=>this.#O.read(t);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#P(e){let t=e.counterStart;if(t===void 0)return;e.counterStart=void 0;let n=this.#D();if(e.token.type==="commit")e.commitOwnershipChanged=n.sourceEpoch!==t.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=n.transientSelectorHostsCreated-t.transientSelectorHostsCreated,o.propagationSettled+=n.propagationSettled-t.propagationSettled,o.notificationTargets+=n.notificationTargets-t.notificationTargets,o.subscriberCallbacks+=n.subscriberCallbacks-t.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let t=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:t}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#V(e){return Math.max(0,Math.round((e-this.#y)*1000))}#b(){return this.#V(this.#p())}}var W=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),de=(e)=>{let t=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let c=a();return e.recordStoreEvent(1,0),c}catch(c){throw e.recordStoreEvent(1,1,c instanceof B?1:0),c}},n=(r,i,s)=>{if(r===0){let a=i,c=s;e.registerStore(a,c);let h=a,g=a.set,R=a.update,S=a.reset,p=a.txn;h.set=(d,u)=>t(0,c,void 0,()=>g(d,u)),h.update=(d,u)=>t(1,c,void 0,()=>R(d,u)),h.reset=(d)=>t(2,c,void 0,()=>S(d)),h.txn=(d,u)=>{if(typeof d!=="function"||u!==void 0&&typeof u!=="string")return p(d,u);return t(3,c,u,()=>p(d,u))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(n,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",c=i.name,h=e.reference(i,a==="committed"?"scope":"scratch-host",typeof c==="string"?c:void 0),g=i.getSelectorGraphVersion(),R=s.getSelectorGraphPublicationCount(i),S=i.getSelectorRecord(r.node)?.dependencies,p=S?.length??0,d=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:h,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:g,previousDependencyCount:p}});e.addWork({selectorEvaluations:1});let u=(m,I,C,v,k,b)=>e.findDependencyPath(a,h,m,I,C,v,k,g,R,S===void 0,b);try{let m=H(r,i,s,u),I=S===void 0||S.length!==m.dependencies.length||S.some((l,x)=>!Object.is(l.node,m.dependencies[x]?.node)),C=new Set(S?.map((l)=>l.node)),v=new Set(m.dependencies.map((l)=>l.node)),k=0,b=0;for(let l of v)if(!C.has(l))k++;for(let l of C)if(!v.has(l))b++;return e.addWork(I?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1}),e.finishInterval(d,{result:"returned",fields:{outcome:m.outcome.kind,dependencyCount:m.dependencies.length,proposedTopologyChanged:I,proposedEdgesAdded:k,proposedEdgesRemoved:b,graphVersionEnd:i.getSelectorGraphVersion()}}),m}catch(m){throw e.finishInterval(d,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion()}}),m}}}),Object.freeze(n)},K=(e={})=>{let t=U(),n=new Y(e,t);return Object.freeze({recorder:n,inspect:n.createInspector(),instrumentation:t,trace:de(n)})};var ye=(e={})=>{let{inspect:t,instrumentation:n,trace:o}=K(e),r=X(n,o);return Object.freeze({store:r,inspect:t})};export{ye as createInspectableStore};
|
|
1
|
+
import{b as H,d as B,p as U,r as X}from"./chunk-t48n3zg9.js";var Q=2048,Z=1e5,A=256,z=1024,P=1e4,ee=32,ne=20000,D=new Set(["span","operation","commit"]),te=new Set(["type","id","sequence","seqStart","seqEnd","startUs","durationUs","spanId","parentSpanId","operationId","commitId","evaluationId","searchId","name","result","totals"]),G=new Set(["value","previousValue","nextValue","resultValue","error","callback","updater"]),oe=()=>{},M=Symbol("inspection dependency path root"),re=1;class w{#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 q=(e)=>{if(e.length===0)return;let t=Number.POSITIVE_INFINITY,n=0;for(let o of e){let r="sequence"in o?o.sequence:void 0;t=Math.min(t,o.seqStart??r??0),n=Math.max(n,o.seqEnd??r??0)}return Object.freeze({firstSequence:t,lastSequence:n})},J=(e,t,n,o)=>{let r=e??t;if(!Number.isSafeInteger(r)||r<(o?0:1))throw TypeError(`${n} capacity must be ${o?"a non-negative":"a positive"} safe integer`);return r},_=(e)=>e.length<=A?e:e.slice(0,A),v=()=>({searches:0,visits:0,maxVisits:0,found:0}),ie=()=>({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,lanes:{committed:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()},scratch:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()},hydration:{prefixRevalidation:v(),newEdgeProof:v(),topologyDeltaProof:v()}}}}),N=(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}),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,t,n,o)=>{if(t.remaining--<=0||o>ee)return null;if(e===null)return null;if(typeof e==="string")return e.length<=z?e:e.slice(0,z);if(typeof e==="boolean")return e;if(typeof e==="number")return Number.isFinite(e)?e:null;if(typeof e!=="object")return null;if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let s=[],a=Math.min(e.length,P);for(let c=0;c<a;c++)s.push(O(e[c],t,n,o+1));return Object.freeze(s)}let r={},i=Object.keys(e).slice(0,P);for(let s of i){if(G.has(s))continue;let a=Reflect.get(e,s);if(a===void 0)continue;r[s]=O(a,t,n,o+1)}return Object.freeze(r)}finally{n.delete(e)}},V=(e)=>{if(e===void 0)return se;let t={},n={remaining:ne};for(let o of Object.keys(e).slice(0,P)){if(te.has(o)||G.has(o))continue;let r=e[o];if(r===void 0)continue;t[o]=O(r,n,new Set,0)}return Object.freeze(t)},se=Object.freeze({}),ae=(e,t)=>{if(t===void 0)return e;return Object.freeze({...e,...V(t)})},y=(e,t)=>t===void 0||!Number.isFinite(t)||t<=0?e:e+t,ce=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return L;try{let t=e.then;return typeof t==="function"?{kind:"thenable",target:e,then:t}:L}catch(t){return{kind:"inspection-error",error:t}}},L=Object.freeze({kind:"not-thenable"});class Y{#o;#e;#r;#u;#d="";#s=1;#g=1;#S=1;#v=1;#k=1;#C=1;#T=1;#R=1;#E=1;#n=[];#f=new WeakMap;#x=new WeakMap;#w=new WeakMap;#m=new WeakMap;#l=0;#a=0;#t;#y;#O;constructor(e,t){this.#O=t,this.#r=J(e.capacity?.summaries,Q,"Inspection summary",!1),this.#u=J(e.capacity?.details,Z,"Inspection detail",!0),this.#o=new w(this.#r),this.#e=new w(this.#u),this.#y=this.#p(),this.#j()}get recordingId(){return this.#d}registerStore(e,t){this.#w.set(e,t)}capture(e,t){let n=typeof e==="object"&&e!==null||typeof e==="function"?e:void 0,o=n===void 0?void 0:this.#w.get(n);if(o===void 0)throw TypeError("Inspection capture requires a Store owned by this inspector");let r;if(t!==void 0){let s=typeof t==="object"&&t!==null||typeof t==="function"?t:void 0,a=o.coordinator.runtimeDomain;if(s===void 0||!a.states.has(s))throw TypeError("Inspection capture requires a valid State");let c=a.atoms.get(s),h=a.selectors.get(s);if(c===void 0&&h===void 0)throw TypeError("Inspection capture requires a valid State");let S=c?.name??h?.name;r=this.reference(s,c===void 0?"selector":"atom",typeof S==="string"?S:void 0)}let i=this.#p();return Object.freeze({recordingId:this.#d,timeUs:this.#V(i),monotonicTimeMs:i,store:this.reference(o,"scope",o.name),...r===void 0?{}:{state:r},...this.#h()})}reference(e,t,n){if(this.#t!==void 0)return W;try{let o=this.#f.get(e);if(o===void 0)o=this.#E++,this.#f.set(e,o);let r=this.#x.get(e);if(r===void 0&&n!==void 0)r=_(n),this.#x.set(e,r);return Object.freeze({id:o,kind:t,...r===void 0?{}:{name:r}})}catch{return this.#c("reference"),W}}sessionId(e){let t=this.#m.get(e);if(t!==void 0)return t;let n=this.#T++;return this.#m.set(e,n),n}beginInterval(e){if(this.#t!==void 0)return F;try{let t=this.#A(e.type),n=Object.freeze({id:t,type:e.type}),o=Object.freeze({...this.#h(),...e.links}),r={token:n,parentId:this.#n[this.#n.length-1]?.token.id,links:o,name:e.name===void 0?void 0:_(e.name),seqStart:this.#s++,startUs:this.#b(),fields:V(e.fields),totals:D.has(e.type)?ie():void 0,commitId:void 0,commitSourceApplied:!1,commitChangedSources:void 0,commitOwnershipChanged:void 0,commitFailurePhase:void 0,operationIntents:0,counterStart:D.has(e.type)?this.#N():void 0};if(e.type==="commit"){let i=this.#i("operation");if(i!==void 0)i.commitId=t}return this.#n.push(r),n}catch{return this.#c("begin-interval"),F}}finishInterval(e,t={}){if(e.id===0||this.#t!==void 0)return;try{let n=this.#n.pop();if(n===void 0||!Object.is(n.token,e))throw Error("Inspection intervals must finish in LIFO order");this.#P(n);let o=this.#s++,r=Math.max(0,this.#b()-n.startUs),i=ae(n.fields,t.fields),s=this.#z(n,o,r,i,t.result);if(D.has(n.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 t=this.#s++,n=Object.freeze({...V(e.fields),type:e.type,sequence:t,timeUs:this.#b(),...this.#h(),...e.links});if(this.#e.add(n))this.#a++}catch{this.#c("record-detail")}}addWork(e){if(this.#t!==void 0)return;try{for(let t of this.#n){let n=t.totals;if(n===void 0)continue;n.selectorEvaluations=y(n.selectorEvaluations,e.selectorEvaluations),n.proposedTopologyChanges=y(n.proposedTopologyChanges,e.proposedTopologyChanges),n.proposedTopologyIdentical=y(n.proposedTopologyIdentical,e.proposedTopologyIdentical),n.transientSelectorHostsCreated=y(n.transientSelectorHostsCreated,e.transientSelectorHostsCreated),n.propagationSettled=y(n.propagationSettled,e.propagationSettled),n.notificationTargets=y(n.notificationTargets,e.notificationTargets),n.subscriberCallbacks=y(n.subscriberCallbacks,e.subscriberCallbacks);let o=e.cycle;if(o===void 0)continue;if(n.cycle.searches=y(n.cycle.searches,o.searches),n.cycle.visits=y(n.cycle.visits,o.visits),n.cycle.maxVisits=Math.max(n.cycle.maxVisits,o.maxVisits??0),n.cycle.found=y(n.cycle.found,o.found),o.site==="prefix-revalidation")n.cycle.prefixRevalidation+=o.searches??1;else if(o.site==="new-edge-proof")n.cycle.newEdgeProof+=o.searches??1;else if(o.site==="topology-delta-proof")n.cycle.topologyDeltaProof+=o.searches??1;if(o.host!==void 0)n.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",i=n.cycle.lanes[o.host][r];i.searches=y(i.searches,o.searches),i.visits=y(i.visits,o.visits),i.maxVisits=Math.max(i.maxVisits,o.maxVisits??0),i.found=y(i.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,t){let n=this.#i("operation"),o=n===void 0||!Object.is(n.token,e)||n.commitId===void 0||!n.commitSourceApplied?"none":t==="returned"?"committed":n.commitFailurePhase==="notify"?"committed-with-notification-error":"committed-with-propagation-error";this.finishInterval(e,{result:t,fields:{effect:o}})}beginStoreCommit(e){return this.beginInterval({type:"commit",links:{operationId:e.id}})}finishStoreCommit(e,t){let n=this.#i("operation");if(n!==void 0)n.commitSourceApplied||=t.sourceApplied,n.commitFailurePhase=t.failurePhase;this.finishInterval(e,{result:t.result,fields:{intents:t.intents,...t.changedSources===void 0?{}:{changedSources:t.changedSources},...t.ownershipChanged===void 0?{}:{ownershipChanged:t.ownershipChanged},sourceApplied:t.sourceApplied,notificationsCompleted:t.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 t=e[0];if(t===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(t===1){let o=e[1]===0?"returned":"threw",r=this.#i("operation");if(r===void 0)return;let i=this.#i("commit");if(i!==void 0)this.#P(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(t===2){let o=this.#i("operation");if(o!==void 0)this.beginStoreCommit(o.token);return}if(t===3){let o=this.#i("commit");if(o!==void 0)o.commitSourceApplied=!0,o.commitChangedSources=e[1];return}let n=this.#i("operation");if(n!==void 0)n.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,t){this.recordStoreEvent(2),e.forEachIntent((n,o)=>{let r=t.get(o.atom)?.name;this.recordStoreEvent(5,o.kind==="set"?0:2,n,n.name,o.atom,typeof r==="string"?r:void 0)})}findDependencyPath(e,t,n,o,r,i,s,a,c,h,S){let E=s===0?"prefix-revalidation":s===1?"new-edge-proof":"topology-delta-proof",g=this.beginInterval({type:"cycle-search",fields:{site:E,host:e,hostRef:t,start:this.#I(n),target:this.#I(o),graphVersion:r.getSelectorGraphVersion(),attributedSessionPublications:i.getSelectorGraphPublicationCount(r),evaluationGraphVersionDelta:r.getSelectorGraphVersion()-c,evaluationAttributedPublicationDelta:i.getSelectorGraphPublicationCount(r)-h,acceptedPrefixLength:a,parentWasCold:S}}),p=[n],d=new Map([[n,M]]),u=0,f=0,I=1,R=0,k=0,C=0,b;while(p.length>0){let l=p.pop();if(u++,Object.is(l,o)){let m=[],T=l;while(T!==M)m.push(T),T=d.get(T);m.reverse(),b=Object.freeze(m);break}let x=i.getTransientDependencies(r,l);if(x){R++,f+=x.length;for(let m of x){if(d.has(m.node))continue;d.set(m.node,l),p.push(m.node)}if(p.length>I)I=p.length;continue}if(r.getSelectorDependencyNodes!==void 0){let m=r.getSelectorDependencyNodes(l);if(m===void 0){C++;continue}k++,f+=m.length;for(let T of m){if(d.has(T))continue;d.set(T,l),p.push(T)}if(p.length>I)I=p.length;continue}let j=r.getSelectorRecord(l);if(!j){C++;continue}k++,f+=j.dependencies.length;for(let m of j.dependencies){if(d.has(m.node))continue;d.set(m.node,l),p.push(m.node)}if(p.length>I)I=p.length}return this.addWork({cycle:{searches:1,visits:u,maxVisits:u,found:b===void 0?0:1,site:E,host:e}}),this.finishInterval(g,{result:"returned",fields:{visits:u,edges:f,maxFrontier:I,transientExpansions:R,recordExpansions:k,terminalPrunes:C,found:b!==void 0,...b===void 0?{}:{path:b.map((l)=>this.#I(l))}}}),b}span(e,t){if(typeof e!=="string")throw TypeError("Inspection span name must be a string");if(typeof t!=="function")throw TypeError("Inspection span callback must be a function");let n=this.beginInterval({type:"span",name:e}),o;try{o=t()}catch(i){throw this.finishInterval(n,{result:"threw"}),i}let r=ce(o);if(r.kind==="inspection-error")throw this.finishInterval(n,{result:"threw"}),r.error;if(r.kind==="thenable"){try{Reflect.apply(r.then,r.target,[void 0,oe])}catch{}throw this.finishInterval(n,{result:"async-rejected"}),TypeError("Inspection spans must be synchronous")}return this.finishInterval(n,{result:"returned"}),o}export(){this.#D("export");let e=[...this.#o.snapshot()].sort((r,i)=>r.seqStart-i.seqStart),t=[...this.#e.snapshot()].sort((r,i)=>(r.seqStart??r.sequence??0)-(i.seqStart??i.sequence??0)),n=q(e),o=q(t);return Object.freeze({schema:"valdres.inspect",schemaVersion:2,recordingId:this.#d,summaries:Object.freeze(e),details:Object.freeze(t),complete:this.#l===0&&this.#a===0&&this.#t===void 0,overflow:Object.freeze({summaries:this.#l,details:this.#a,retained:Object.freeze({...n===void 0?{}:{summaries:n},...o===void 0?{}:{details:o}})}),...this.#t===void 0?{}:{fault:this.#t}})}reset(){this.#D("reset"),this.#j()}createInspector(){let e=this;return Object.freeze({get recordingId(){return e.recordingId},capture:(t,n)=>e.capture(t,n),span:(t,n)=>e.span(t,n),export:()=>e.export(),reset:()=>e.reset()})}#j(){this.#d=`inspection-${re++}`,this.#o=new w(this.#r),this.#e=new w(this.#u),this.#s=1,this.#g=1,this.#S=1,this.#v=1,this.#k=1,this.#C=1,this.#T=1,this.#R=1,this.#E=1,this.#n=[],this.#f=new WeakMap,this.#m=new WeakMap,this.#l=0,this.#a=0,this.#t=void 0,this.#y=this.#p()}#A(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.#C++;return this.#R++}#h(){let e={};for(let t of this.#n){let{id:n,type:o}=t.token;if(t.links.sessionId!==void 0)e.sessionId=t.links.sessionId;if(o==="span")e.spanId=n;else if(o==="operation")e.operationId=n;else if(o==="commit")e.commitId=n;else if(o==="selector-evaluation")e.evaluationId=n;else if(o==="cycle-search")e.searchId=n}return e}#i(e){for(let t=this.#n.length-1;t>=0;t--){let n=this.#n[t];if(n.token.type===e)return n}return}#I(e){return typeof e==="object"&&e!==null||typeof e==="function"?this.reference(e,"state"):O(e,{remaining:1},new Set,0)}#z(e,t,n,o,r){let i={...o,type:e.token.type,seqStart:e.seqStart,seqEnd:t,startUs:e.startUs,durationUs:n,...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:N(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:N(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:N(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})}#D(e){if(this.#n.length!==0)throw Error(`Inspection ${e} requires an idle Store`)}#N(){let e=(t)=>this.#O.read(t);return{sourceEpoch:e("sourceEpoch"),transientSelectorHostsCreated:e("scratchHostAllocations"),propagationSettled:e("propagationSettlements"),notificationTargets:e("notificationTargetsReached"),subscriberCallbacks:e("subscriberCallbacksAttempted")}}#P(e){let t=e.counterStart;if(t===void 0)return;e.counterStart=void 0;let n=this.#N();if(e.token.type==="commit")e.commitOwnershipChanged=n.sourceEpoch!==t.sourceEpoch;let o=e.totals;if(o===void 0)return;o.transientSelectorHostsCreated+=n.transientSelectorHostsCreated-t.transientSelectorHostsCreated,o.propagationSettled+=n.propagationSettled-t.propagationSettled,o.notificationTargets+=n.notificationTargets-t.notificationTargets,o.subscriberCallbacks+=n.subscriberCallbacks-t.subscriberCallbacks}#c(e){if(this.#t!==void 0)return;let t=this.#s++;this.#t=Object.freeze({type:"recorder-fault",phase:e,sequence:t}),this.#n=[]}#p(){return globalThis.performance?.now()??Date.now()}#V(e){return Math.max(0,Math.round((e-this.#y)*1000))}#b(){return this.#V(this.#p())}}var W=Object.freeze({id:0,kind:"store"}),F=Object.freeze({id:0,type:"operation"}),de=(e)=>{let t=(r,i,s,a)=>{if(e.hasActiveStoreOperation())return a();e.recordStoreEvent(0,r,i,i.name,s);try{let c=a();return e.recordStoreEvent(1,0),c}catch(c){throw e.recordStoreEvent(1,1,c instanceof B?1:0),c}},n=(r,i,s)=>{if(r===0){let a=i,c=s;e.registerStore(a,c);let h=a,S=a.set,E=a.update,g=a.reset,p=a.txn;h.set=(d,u)=>t(0,c,void 0,()=>S(d,u)),h.update=(d,u)=>t(1,c,void 0,()=>E(d,u)),h.reset=(d)=>t(2,c,void 0,()=>g(d)),h.txn=(d,u)=>{if(typeof d!=="function"||u!==void 0&&typeof u!=="string")return p(d,u);return t(3,c,u,()=>p(d,u))};return}if(r===1){e.beginDraftCommit(i,s);return}if(r===2)e.recordStoreEvent(3,i)};return Object.assign(n,{evaluate:(r,i,s)=>{let a=i.getSelectorDependencyNodes!==void 0?"committed":e.hasActiveStoreOperation()?"scratch":"hydration",c=i.name,h=e.reference(i,a==="committed"?"scope":"scratch-host",typeof c==="string"?c:void 0),S=i.getSelectorGraphVersion(),E=s.getSelectorGraphPublicationCount(i),g=i.getSelectorRecord(r.node)?.dependencies,p=g?.length??0,d=e.beginInterval({type:"selector-evaluation",links:{sessionId:e.sessionId(s)},fields:{host:a,hostRef:h,selector:e.reference(r.node,"selector",typeof r.name==="string"?r.name:void 0),graphVersionStart:S,previousDependencyCount:p}});e.addWork({selectorEvaluations:1});let u=(f,I,R,k,C,b)=>e.findDependencyPath(a,h,f,I,R,k,C,b,S,E,g===void 0);try{let f=H(r,i,s,u),I=g===void 0||g.length!==f.dependencies.length||g.some((l,x)=>!Object.is(l.node,f.dependencies[x]?.node)),R=new Set(g?.map((l)=>l.node)),k=new Set(f.dependencies.map((l)=>l.node)),C=0,b=0;for(let l of k)if(!R.has(l))C++;for(let l of R)if(!k.has(l))b++;return e.addWork(I?{proposedTopologyChanges:1}:{proposedTopologyIdentical:1}),e.finishInterval(d,{result:"returned",fields:{outcome:f.outcome.kind,dependencyCount:f.dependencies.length,proposedTopologyChanged:I,proposedEdgesAdded:C,proposedEdgesRemoved:b,graphVersionEnd:i.getSelectorGraphVersion()}}),f}catch(f){throw e.finishInterval(d,{result:"threw",fields:{outcome:"threw",graphVersionEnd:i.getSelectorGraphVersion()}}),f}}}),Object.freeze(n)},K=(e={})=>{let t=U(),n=new Y(e,t);return Object.freeze({recorder:n,inspect:n.createInspector(),instrumentation:t,trace:de(n)})};var ye=(e={})=>{let{inspect:t,instrumentation:n,trace:o}=K(e),r=X(n,o);return Object.freeze({store:r,inspect:t})};export{ye as createInspectableStore};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SelectorComparisonBaseline, SelectorDefinition, SelectorDependencySnapshot, SelectorEvaluationHost, SelectorEvaluationProposal, SelectorRecordView, ServedSelectorOutcome } from "../selector-evaluator/types.js";
|
|
1
|
+
import type { SelectorComparisonBaseline, SelectorDefinition, SelectorDependencySnapshot, SelectorEvaluationHost, SelectorEvaluationProposal, SelectorGraphObservation, 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";
|
|
@@ -86,6 +86,7 @@ export declare class StoreScopeNode implements SelectorEvaluationHost<AnyState,
|
|
|
86
86
|
getSelectorRecord(node: AnyState): SelectorRecordView<AnyState, OutcomeToken> | undefined;
|
|
87
87
|
getSelectorDependencyNodes(node: AnyState): readonly AnySelector[] | undefined;
|
|
88
88
|
getSelectorGraphVersion(): number;
|
|
89
|
+
beginSelectorGraphObservation(newlyAcceptedDependency: AnyState): SelectorGraphObservation<AnyState> | undefined;
|
|
89
90
|
getComparisonBaseline(node: AnyState): SelectorComparisonBaseline<OutcomeToken> | undefined;
|
|
90
91
|
createOutcomeToken(): OutcomeToken;
|
|
91
92
|
}
|
|
@@ -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,
|
|
3
|
+
import type { SelectorCycleSearchSite, SelectorEvaluationHost, SelectorEvaluationSession } from "./selector-evaluator/types.js";
|
|
4
4
|
type StoreRecorderEvent = readonly [
|
|
5
5
|
event: 0,
|
|
6
6
|
operation: 0 | 1 | 2 | 3,
|
|
@@ -30,6 +30,8 @@ export interface InspectionCycleBucket {
|
|
|
30
30
|
readonly searches: number;
|
|
31
31
|
readonly visits: number;
|
|
32
32
|
readonly maxVisits: number;
|
|
33
|
+
/** Physical searches that reached their target. A conservative topology
|
|
34
|
+
* delta signal and its canonical prefix fallback may both contribute. */
|
|
33
35
|
readonly found: number;
|
|
34
36
|
}
|
|
35
37
|
export interface InspectionCycleTotals {
|
|
@@ -40,6 +42,7 @@ export interface InspectionCycleTotals {
|
|
|
40
42
|
readonly bySite: Readonly<{
|
|
41
43
|
prefixRevalidation: number;
|
|
42
44
|
newEdgeProof: number;
|
|
45
|
+
topologyDeltaProof: number;
|
|
43
46
|
}>;
|
|
44
47
|
readonly byHost: Readonly<{
|
|
45
48
|
committed: number;
|
|
@@ -50,14 +53,17 @@ export interface InspectionCycleTotals {
|
|
|
50
53
|
committed: Readonly<{
|
|
51
54
|
prefixRevalidation: InspectionCycleBucket;
|
|
52
55
|
newEdgeProof: InspectionCycleBucket;
|
|
56
|
+
topologyDeltaProof: InspectionCycleBucket;
|
|
53
57
|
}>;
|
|
54
58
|
scratch: Readonly<{
|
|
55
59
|
prefixRevalidation: InspectionCycleBucket;
|
|
56
60
|
newEdgeProof: InspectionCycleBucket;
|
|
61
|
+
topologyDeltaProof: InspectionCycleBucket;
|
|
57
62
|
}>;
|
|
58
63
|
hydration: Readonly<{
|
|
59
64
|
prefixRevalidation: InspectionCycleBucket;
|
|
60
65
|
newEdgeProof: InspectionCycleBucket;
|
|
66
|
+
topologyDeltaProof: InspectionCycleBucket;
|
|
61
67
|
}>;
|
|
62
68
|
}>;
|
|
63
69
|
}
|
|
@@ -153,7 +159,7 @@ export type SelectorEvaluationInspectionDetail = SelectorEvaluationInspectionBas
|
|
|
153
159
|
}>);
|
|
154
160
|
export interface CycleSearchInspectionDetail extends InspectionDetailLinks {
|
|
155
161
|
readonly type: "cycle-search";
|
|
156
|
-
readonly site: "prefix-revalidation" | "new-edge-proof";
|
|
162
|
+
readonly site: "prefix-revalidation" | "new-edge-proof" | "topology-delta-proof";
|
|
157
163
|
readonly host: "committed" | "scratch" | "hydration";
|
|
158
164
|
readonly hostRef: InspectionReference;
|
|
159
165
|
readonly start: InspectionJsonValue;
|
|
@@ -196,7 +202,7 @@ export interface InspectionRecorderFault {
|
|
|
196
202
|
}
|
|
197
203
|
export interface InspectionExport {
|
|
198
204
|
readonly schema: "valdres.inspect";
|
|
199
|
-
readonly schemaVersion:
|
|
205
|
+
readonly schemaVersion: 2;
|
|
200
206
|
readonly recordingId: string;
|
|
201
207
|
readonly summaries: readonly InspectionSummary[];
|
|
202
208
|
readonly details: readonly InspectionDetail[];
|
|
@@ -279,14 +285,14 @@ export interface InspectionWorkDelta {
|
|
|
279
285
|
visits?: number;
|
|
280
286
|
maxVisits?: number;
|
|
281
287
|
found?: number;
|
|
282
|
-
site?: "prefix-revalidation" | "new-edge-proof";
|
|
288
|
+
site?: "prefix-revalidation" | "new-edge-proof" | "topology-delta-proof";
|
|
283
289
|
host?: "committed" | "scratch" | "hydration";
|
|
284
290
|
}>;
|
|
285
291
|
}
|
|
286
292
|
export interface InternalInspectionRecorder {
|
|
287
293
|
recordStoreEvent(...event: StoreRecorderEvent): void;
|
|
288
294
|
hasActiveStoreOperation(): boolean;
|
|
289
|
-
findDependencyPath<Node, Token extends object>(hostKind: "committed" | "scratch" | "hydration", hostRef: InspectionReference, start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite, evaluationGraphVersionStart: number, evaluationAttributedPublicationStart: number, parentWasCold: boolean
|
|
295
|
+
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): readonly Node[] | undefined;
|
|
290
296
|
reference(target: object, kind: InspectionReferenceKind, name?: string): InspectionReference;
|
|
291
297
|
beginInterval(input: InternalInspectionIntervalInput): InternalInspectionIntervalToken;
|
|
292
298
|
finishInterval(token: InternalInspectionIntervalToken, finish?: InternalInspectionIntervalFinish): void;
|
|
@@ -40,6 +40,19 @@ export type SelectorComparisonBaseline<Token extends object, Value = unknown> =
|
|
|
40
40
|
export interface SelectorRecordView<Node, Token extends object> {
|
|
41
41
|
readonly dependencies: readonly SelectorDependencySnapshot<Node, Token>[];
|
|
42
42
|
}
|
|
43
|
+
export interface SelectorGraphEdgeAddition<Node> {
|
|
44
|
+
readonly tail: Node;
|
|
45
|
+
readonly head: Node;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Synchronous, bounded observation of exact selector-edge additions. An
|
|
49
|
+
* undefined read means the host could not retain a complete interval and the
|
|
50
|
+
* evaluator must use its canonical accepted-prefix proof instead.
|
|
51
|
+
*/
|
|
52
|
+
export interface SelectorGraphObservation<Node> {
|
|
53
|
+
takeAddedEdges(): readonly SelectorGraphEdgeAddition<Node>[] | undefined;
|
|
54
|
+
close(): void;
|
|
55
|
+
}
|
|
43
56
|
export type SelectorProposalOutcome<Value = unknown> = SelectorOutcome<Value>;
|
|
44
57
|
export interface SelectorEvaluationProposal<Node, Token extends object, Value = unknown> {
|
|
45
58
|
readonly selector: Node;
|
|
@@ -50,30 +63,19 @@ export interface SelectorEvaluationProposal<Node, Token extends object, Value =
|
|
|
50
63
|
/** Failure-only accepted acyclic prefix; the offending/foreign edge is absent. */
|
|
51
64
|
readonly attemptedPrefix: readonly Node[];
|
|
52
65
|
}
|
|
53
|
-
export type SelectorCycleSearchSite = 0 | 1;
|
|
54
|
-
/** Proposal-local coordinator for fully exhausted negative path proofs. */
|
|
55
|
-
export interface SelectorNegativePathMemo<Node> {
|
|
56
|
-
/** False after bounded learning found no reusable closure. */
|
|
57
|
-
readonly enabled: boolean;
|
|
58
|
-
/** Starts one physical reachability search. */
|
|
59
|
-
beginSearch(): void;
|
|
60
|
-
/** Prunes a node covered by a retained fully-negative closure. */
|
|
61
|
-
hasProvenNoPath(node: Node): boolean;
|
|
62
|
-
/** Publishes the search map only after complete negative exhaustion. */
|
|
63
|
-
completeNegative(closure: ReadonlyMap<Node, unknown>): void;
|
|
64
|
-
}
|
|
66
|
+
export type SelectorCycleSearchSite = 0 | 1 | 2;
|
|
65
67
|
/**
|
|
66
68
|
* Optional inspectable-Store strategy. Live nodes are valid only for the
|
|
67
69
|
* duration of the call; a recorder must translate them immediately.
|
|
68
70
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* path. It must never publish a partial positive search or carry the memo to
|
|
74
|
-
* another graph observation, prefix batch, or new-edge proof.
|
|
71
|
+
* Site 0 is the canonical accepted-prefix proof, site 1 is a newly proposed
|
|
72
|
+
* edge proof, and site 2 is a negative-only replay of an exact committed edge
|
|
73
|
+
* addition. A positive site-2 result must fall back to site 0 so first-read
|
|
74
|
+
* blame and the canonical cycle path remain unchanged.
|
|
75
75
|
*/
|
|
76
|
-
export type SelectorCycleSearch<Node, Token extends object> = (start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite,
|
|
76
|
+
export type SelectorCycleSearch<Node, Token extends object> = (start: Node, target: Node, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>, site: SelectorCycleSearchSite,
|
|
77
|
+
/** Length of the active selector prefix whose acyclicity this proves. */
|
|
78
|
+
acceptedPrefixLength: number) => readonly Node[] | undefined;
|
|
77
79
|
export interface SelectorEvaluationStrategy {
|
|
78
80
|
<Node, Token extends object, Value>(definition: SelectorDefinition<Node, Value>, host: SelectorEvaluationHost<Node, Token>, session: SelectorEvaluationSession<Node>): SelectorEvaluationProposal<Node, Token, Value>;
|
|
79
81
|
}
|
|
@@ -101,6 +103,15 @@ export interface SelectorEvaluationHost<Node, Token extends object> {
|
|
|
101
103
|
* interleavable record removal/clear.
|
|
102
104
|
*/
|
|
103
105
|
getSelectorGraphVersion(): number;
|
|
106
|
+
/**
|
|
107
|
+
* Optional committed-host acceleration. Direct node references live only
|
|
108
|
+
* while at least one synchronous evaluator is observing the host. Returning
|
|
109
|
+
* `undefined` certifies that the passed dependency's identity cannot act as
|
|
110
|
+
* a selector-graph tail for the duration of this evaluation; the evaluator
|
|
111
|
+
* retries when it accepts a later dependency that can participate in the
|
|
112
|
+
* selector graph.
|
|
113
|
+
*/
|
|
114
|
+
beginSelectorGraphObservation?(newlyAcceptedDependency: Node): SelectorGraphObservation<Node> | undefined;
|
|
104
115
|
/** Host-selected prior successful comparison baseline, if one exists. */
|
|
105
116
|
getComparisonBaseline(node: Node): SelectorComparisonBaseline<Token, unknown> | undefined;
|
|
106
117
|
/** Allocate one host-local served-outcome identity. */
|
package/package.json
CHANGED
package/dist/chunk-xjz5p1py.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
class I extends Error{seal(){Object.freeze(this)}}class ae extends I{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 ye extends I{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 X extends I{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 z extends I{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 Ae extends I{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class se extends I{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 be extends I{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var Me=Object.freeze({kind:"not-thenable"}),ft=()=>{},ht=Reflect.apply,_e=Symbol.for("valdres.runtime-owner/v1");class v extends Error{seal(){Object.freeze(this)}}class ke extends v{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class ve extends v{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 W extends v{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class U extends v{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class q extends v{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class ce extends v{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends v{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class Z extends v{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class ee extends v{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class we extends v{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class ge extends v{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Te extends v{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class de extends v{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 Me;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Me}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},N=(e)=>{try{ht(e.then,e.target,[void 0,ft])}catch{}},te=(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 N(t),Object.freeze({kind:"error",error:new Z})},Re=(e)=>{try{return te(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 N(n),Object.freeze({kind:"error",error:new Z})}},ne=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},F=(e,t,n)=>{try{let o=ne(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}},He=(e,t,n)=>{try{let o=ne(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}},oe=(e,t,n)=>ne(e,Object.freeze({kind:"selector",session:t}),n),Be=(e,t,n)=>ne(e,Object.freeze({kind:"transaction",transaction:t}),n),le=(e,t,n)=>{try{let o=ne(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 U(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new q;throw new W},Oe=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new U(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new q;throw new W},Le=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new U("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new q;throw new W},ue=(e,t,n)=>{if(!n)throw new ce;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new U("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new W;throw new q},We=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},L=(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,_e);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new ke;throw We(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=We(e,n);if(o!==void 0&&"session"in o)try{let i=L(e,t,r),a=r.getControlFault();if(a.kind==="fault")throw a.error;return i}catch(i){let a=r.getControlFault();if(a.kind==="fault")throw a.error;throw i}return F(e,r,()=>L(e,t,r))},re=(e,t)=>(Object.defineProperty(e,_e,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),fe=(e,t)=>Object.freeze(re({kind:e},t));var Ue=Object.freeze({kind:"not-thenable"}),St=()=>{},mt=Reflect.apply,qe=Symbol("selector dependency path root"),Ye=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Ue;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Ue}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},$e=(e)=>{try{mt(e.then,e.target,[void 0,St])}catch{}},pt=(e)=>Object.freeze(e),yt=(e)=>Object.freeze(e),g=(e,t,n,o)=>{let r=yt(o);return Object.freeze({selector:e,token:t,outcome:pt(n),dependencies:r,attemptedPrefix:n.kind==="value"?At:Object.freeze(r.map((i)=>i.node))})},At=Object.freeze([]),bt=()=>{let e,t,n=0,o=!1,r=0,i=!0,a=()=>{e=void 0,t=void 0,r=0,i=!1};return{get enabled(){return i},beginSearch(){n=0},hasProvenNoPath(s){if(e?.has(s))return n|=1,!0;if(t?.has(s))return n|=2,!0;return!1},completeNegative(s){if(!i)return;if(n!==0){e=n===1?e:n===2?t:(e?.size??0)>=(t?.size??0)?e:t,t=void 0,o=!0,r=0;return}if(s.size<=1)return;if(o){if(r++,r>=3)a();return}if(e===void 0){e=s;return}if(t===void 0){t=s;return}a()}}},kt=(e,t,n,o,r,i)=>{i?.beginSearch();let a=[e],s=new Map([[e,qe]]);while(a.length>0){let c=a.pop();if(Object.is(c,t)){let u=[],h=c;while(h!==qe)u.push(h),h=s.get(h);return u.reverse(),Object.freeze(u)}if(i?.hasProvenNoPath(c))continue;let d=o.getTransientDependencies(n,c);if(d){for(let u of d){if(s.has(u.node))continue;s.set(u.node,c),a.push(u.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let u=n.getSelectorDependencyNodes(c);if(u===void 0)continue;for(let h of u){if(s.has(h))continue;s.set(h,c),a.push(h)}continue}let l=n.getSelectorRecord(c);if(!l)continue;for(let u of l.dependencies){if(s.has(u.node))continue;s.set(u.node,c),a.push(u.node)}}i?.completeNegative(s);return},Ge=(e,t)=>{let n=Ye(e);if(n.kind==="thenable")return $e(n),new z(t);if(n.kind==="inspection-error")return n.error;return e},Ke=(e,t)=>{let n=Ye(e);if(n.kind==="thenable")return $e(n),Object.freeze({kind:"error",error:new z(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},Qe=(e,t,n,o=kt)=>{let{node:r}=e,i=[],a=t.getSelectorRecord(r),s=a?.dependencies,c=s===void 0?new Set:void 0,d,l=0,u=t.getComparisonBaseline(r),h=!0,y=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let p of i)f.add(p.node);return c=f,f};n.enter(t,r,i);let A=t.getSelectorGraphVersion(),M=n.getSelectorGraphPublicationCount(t),G=A,K=M,Pe=A,Ie=M,me=(f,p,b,k)=>b-f===k-p,ze=(f=t.getSelectorGraphVersion(),p=n.getSelectorGraphPublicationCount(t),b=me(G,K,f,p))=>{if(b){G=f,K=p;return}let k=i.length>1?bt():void 0;for(let R=0;R<i.length;R++){let x=i[R],O=o(x.node,r,t,n,0,k?.enabled?k:void 0);if(!O)continue;if(c!==void 0)for(let E=i.length-1;E>=R;E--)c.delete(i[E].node);if(i.length=R,l++,n.getControlFault().kind==="fault")return;let w=new X(r,[r,...O]);n.latchCycle(t,r,w);return}G=f,K=p},pe=()=>{let f=t.getSelectorGraphVersion(),p=n.getSelectorGraphPublicationCount(t);Pe=f,Ie=p;let b=me(G,K,f,p);if(!b)n.revalidateAncestorPrefixes(t,r);ze(f,p,b)};n.setPrefixRevalidator(t,r,ze);let ut=(f)=>{if(!h)throw new be;let p=n.getControlFault();if(p.kind==="fault")throw p.error;let b=n.getCycle(t,r);if(b!==void 0)throw b;let k=n.activeCyclePath(t,f);if(k){let S=new X(r,k);throw n.latchCycle(t,r,S),S}let R=i.length,x,O=!1;if(c===void 0){let S=s?.[R];if(S!==void 0&&Object.is(S.node,f))x=!1,O=!0;else x=y().has(f)}else x=c.has(f);if(!x&&!O&&s!==void 0&&s.length>0){let S=s[i.length];if(S!==void 0&&Object.is(S.node,f))O=!0;else{if(d===void 0){d=new Set;for(let B of s)d.add(B.node)}O=d.has(f)}}let _=l,w=t.serve(f,n);pe();let E=n.getCycle(t,r);if(E!==void 0)throw E;let Y=c!==void 0?c.has(f):l===_&&i.length===R?!1:y().has(f),P=Pe,H=Ie,D=Y||O&&P===A,ie=s===void 0&&me(A,M,P,H);if(!D&&!ie){let S=o(f,r,t,n,1);if(S){let B=n.getControlFault();if(B.kind==="fault")throw B.error;let Fe=new X(r,[r,...S]);throw n.latchCycle(t,r,Fe),Fe}}if(!Y){let S=a?.dependencies[i.length];c?.add(f),i.push(S!==void 0&&Object.is(S.node,f)&&Object.is(S.token,w.token)?S:Object.freeze({node:f,token:w.token}))}if(G=P,K=H,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let S=n.getControlFault();if(S.kind==="fault")throw S.error;throw w.outcome.error}let Q=n.getControlFault();if(Q.kind==="fault")throw Q.error;if(w.outcome.kind==="error")throw new ye(f,w.outcome.error);return w.outcome.value};try{let f,p,b=!1;try{f=e.get(ut)}catch(E){b=!0,p=E}finally{h=!1}if(b)p=Ge(p,"getter");let k=b?void 0:Ke(f,"getter");pe();let R=n.getControlFault();if(R.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:R.error},i);let x=n.getCycle(t,r);if(x!==void 0)return g(r,t.createOutcomeToken(),{kind:"error",error:x},i);if(b)return g(r,t.createOutcomeToken(),{kind:"error",error:p instanceof z?p:new ae(r,p)},i);if(k===void 0)throw Error("Selector result classification was not completed");let O=n.getControlFault();if(O.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:O.error},i);if(k.kind==="error")return g(r,t.createOutcomeToken(),{kind:"error",error:k.error instanceof z?k.error:new ae(r,k.error)},i);let _=k.value,w;if(u){let E=e.equal??Object.is,Y,P,H=!1;try{Y=E(u.value,_)}catch(B){H=!0,P=Ge(B,"comparator")}let D=H?void 0:Ke(Y,"comparator");pe();let ie=n.getControlFault();if(ie.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:ie.error},i);let Q=n.getCycle(t,r);if(Q!==void 0)return g(r,t.createOutcomeToken(),{kind:"error",error:Q},i);if(H)return g(r,t.createOutcomeToken(),{kind:"error",error:P instanceof z?P:new se(r,P)},i);if(D===void 0)throw Error("Selector comparator classification was not completed");let S=n.getControlFault();if(S.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:S.error},i);if(D.kind==="error")return g(r,t.createOutcomeToken(),{kind:"error",error:D.error instanceof z?D.error:new se(r,D.error)},i);if(D.value!==!0&&D.value!==!1)return g(r,t.createOutcomeToken(),{kind:"error",error:new Ae},i);if(D.value===!0)_=u.value,w=u.current?u.token:void 0}return g(r,w??t.createOutcomeToken(),{kind:"value",value:_},i)}finally{n.leave(t,r)}};class m{#t=[];#n;#o=0;#i;#a=vt;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 vt=Object.freeze({kind:"none"});var Xe=Symbol("no-committed-selector-baseline");class he{#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 m,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 s=this.#o.get(e);if(s!==void 0)return s;let c=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,c),c}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 a=Object.freeze({token:i.token,outcome:i.outcome});return this.#s++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:a,dependencies:i.dependencies})),a}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)??Xe,this.#i.set(e,t);return t===Xe?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}}class Je{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 Se{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;#d="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#l(),this.#n=this.#l()}get status(){return this.#d}get facade(){if(this.#c===void 0)throw Error("Store scope facade is not installed");return this.#c}installFacade(e){if(this.#c!==void 0)throw Error("Store scope facade is already installed");this.#c=e}markDisposing(){if(this.#d==="live")this.#d="disposing"}markDisposed(){this.#d="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.#l()};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}serve(e,t){let n=this.coordinator.runtimeDomain;if(L(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 s=this.#t.get(e);if(s!==void 0)return s.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 a=oe(n,t,()=>this.coordinator.evaluate(o,this,t));if(a.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw a.outcome.error;return this.#f(r,a,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 a of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(a.node))r.push(a.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}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()}#f(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});if(this.#h(e,o?.dependencies??wt,t.dependencies))this.#i?.delete(e);if(this.#s++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),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}#h(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.#l(),this.#a.set(o.node,r);r.add(e)}return!0}#l(){return new Je(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var wt=Object.freeze([]);class Ce{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#c;#d;#f;#h;#l;#b;#p;#S;#m;#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.#u(),n.set(e,i);i.set(t.atom,t),this.#y();return}let o=this.#a;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#u();i.set(this.#n,o);let a=this.#u();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#a=void 0,this.#n=void 0}this.#y();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#y();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#y();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#y();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#y();return}let a=this.#u();a.set(r.atom,r),a.set(i.atom,i),a.set(t.atom,t),this.#a=a}else{let i=this.#u(),a=this.#u();if(a.set(r.atom,r),this.#i!==void 0)a.set(this.#i.atom,this.#i);i.set(this.#n,a);let s=this.#u();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#y()}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 a of i.values())e(r,a)}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.#f,t))return this.#h;if(Object.is(this.#s,e))return this.#l?.get(t);return this.#b?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#b;if(o!==void 0){let a=o.get(e);if(a===void 0)a=this.#u(),o.set(e,a);if(!a.has(t))a.set(t,n);return}let r=this.#l;if(r!==void 0){if(Object.is(this.#s,e)){if(!r.has(t))r.set(t,n)}else{let a=this.#u();a.set(this.#s,r);let s=this.#u();s.set(t,n),a.set(e,s),this.#b=a,this.#l=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 a=this.#h;if(a===void 0){this.#f=t,this.#h=n;return}if(Object.is(this.#f,t))return;let s=this.#u();s.set(this.#c,i),s.set(this.#f,a),s.set(t,n),this.#l=s}else{let a=this.#u(),s=this.#u();if(s.set(this.#c,i),this.#f!==void 0&&this.#h!==void 0)s.set(this.#f,this.#h);a.set(this.#s,s);let c=this.#u();c.set(t,n),a.set(e,c),this.#b=a,this.#s=void 0}this.#c=void 0,this.#d=void 0,this.#f=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#p,e))return this.#S;return this.#m?.get(e)}hasFallback(e){return Object.is(this.#p,e)||(this.#m?.has(e)??!1)}setFallback(e,t){let n=this.#m;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#p=e,this.#S=t;return}if(Object.is(this.#p,e)){this.#S=t;return}let o=this.#u();o.set(this.#p,this.#S),o.set(e,t),this.#m=o,this.#p=void 0,this.#S=void 0}forEachFallback(e){if(this.#p!==void 0&&this.#S!==void 0)e(this.#p,this.#S);if(this.#m!==void 0)for(let[t,n]of this.#m)e(t,n)}#y(){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.#l?.clear(),this.#b!==void 0){for(let e of this.#b.values())e.clear();this.#b.clear()}this.#m?.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.#f=void 0,this.#h=void 0,this.#l=void 0,this.#b=void 0,this.#p=void 0,this.#S=void 0,this.#m=void 0,this.#e?.clear(),this.#e=void 0}#u(){return this.#t?.(),new Map}}class Ze{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]),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var Ne=(e,t,n)=>new Ze(e,t,n),Ve=(e)=>{let t=C(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw N(t),new J},et=(e)=>{let t=C(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw N(t),new J};var gt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},st=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}),Tt=32,ct=new WeakMap,Yt=()=>{let e=new Uint32Array(Tt),t=Object.freeze({read(n){return e[st[n]]??0}});return ct.set(t,e),t},T=(e)=>Object.freeze({kind:"value",value:e}),Rt=(e)=>Object.freeze({kind:"error",error:e}),tt=(e)=>e.kind==="value"?T(e.value):Rt(e.error),nt=(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)},ot=1,Ee=2,rt=4,Ot=(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}),je=(e)=>(e.onAllocation?.(),new Map),Ct=(e)=>(e.onAllocation?.(),new Set),De=(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)},it=(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=je(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=je(e),r.set(t,i);i.set(n,o)},Nt=(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=Ct(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Vt=(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=je(e),e.affected=o;o.set(t,n)};class dt{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#c;#d=0;#f;#h;#l;#b=1;#p=0;#S;#m;#e;#y;#u;evaluate;constructor(e,t,n){this.#e=e,this.#y=t===void 0?void 0:ct.get(t),this.#u=n,this.evaluate=n?.evaluate??Qe,this.#n=new Se(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#a}get instrumented(){return this.#y!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#y;if(n===void 0)return;n[st[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Ce(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new m,o=t,r=j(this.#e,o,n),i=Oe(this.#e,"StoreTree.get");if(this.#A(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let a=e.serveKnownLocal(o,n);if(a.outcome.kind!=="value")throw a.outcome.error;return a.outcome.value}try{let a=e.serveKnownLocal(o,n);if(a.outcome.kind!=="value"){if(a.outcome.kind==="control-error")i.latchControlFault(a.outcome.error);throw a.outcome.error}return a.outcome.value}catch(a){let s=n.getControlFault();if(s.kind==="fault")i.latchControlFault(s.error);throw a}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":j(this.#e,o,r=new m);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 a=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new m);if(a.outcome.kind==="control-error")throw a.outcome.error;let s=this.#l;if(s===void 0){if(s=new Map,this.#l=s,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let c=s.get(e);if(c===void 0){if(c=new Map,s.set(e,c),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let d=c.get(o);if(d===void 0){if(d={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},c.set(o,d),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:d,previous:d.tail,next:void 0};if(d.tail===void 0)d.head=l;else d.tail.next=l;if(d.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return gt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;Le(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.#l,a=i?.get(t.scope);if(a?.get(t.state)===t){if(a.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(a!==void 0&&a.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#l=void 0}set(e,t,n){this.#R(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#R(e,t,"StoreTree.update","update",n)}reset(e,t){this.#R(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 m);if(V(this.#e,"StoreTree.scope"),this.#A(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(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((a)=>i.push(a));for(let a=i.length-1;a>=0;a--)n.push(Object.freeze({node:i[a],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.#Q(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=Ne(this,o,e),i;try{i=Be(this.#e,o.transaction,()=>t(r))}catch(a){throw o.close(),o.release(),a}o.close();try{let a=new m;le(this.#e,a,()=>Ve(i)),this.#M(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new m,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(),a;try{if(this.#e.atoms.has(o)){let s=this.#k(i,e,o,n);if(s.kind!=="value")throw s.error;return s.value}return a=this.#K(i,e),a.readSelector(o)}finally{a?.revoke(),i.close(),i.forEachFallback((s,c)=>{if(this.#t.has(s))return;this.#t.set(s,c),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new m,i=j(this.#e,o,r);if(ue(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 s=this.#k(e,t,o,r);if(s.kind!=="value")throw s.error;return s.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let a=e.getScratchHost(t);if(a===void 0){if(a=this.#G(e,t),e.installScratchHost(t,a))this.recordCounter("scratchMapAllocations")}return a.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new m;this.#O(e,t,r,i,"Transaction.set"),this.#P(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new m;this.#O(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new m;this.#O(e,t,o,r,"Transaction.reset"),this.#z(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new m;if(typeof n!=="string")j(this.#e,n,i);ue(this.#e,e.transaction,e.active),this.#A(t);let a=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let s=Ne(this,e,a);if(o===1)return s;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let c;try{c=r(s)}catch(l){let u=new m;return le(this.#e,u,()=>et(l))}let d=new m;return le(this.#e,d,()=>Ve(c)),c}createOutcomeToken(){return Object.freeze({id:this.#o++})}#G(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#D(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#D(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#D(e,t){if(L(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 Se(this,e,t);this.recordCounter("scopeNodesCreated");let o=new xe(this,n,this.#u);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 ge;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 Te;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new ce;throw new de}throw new de}#A(e){if(e.status!=="live")throw new we}#$(e,t,n,o){let r=j(this.#e,t,n);V(this.#e,o),this.#A(e),this.#x(t,r,o)}#R(e,t,n,o,r){let i=t,a=new m;this.#$(e,i,a,n);let s=this.#T();try{if(o==="set")this.#P(s,e,i,r,a);else if(o==="update")this.#I(s,e,i,r,a,n);else this.#z(s,e,i,a)}catch(c){throw s.close(),s.release(),c}s.close();try{this.#M(s)}finally{s.release()}}#Q(e){let t=this.#l,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 a=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=a}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#l=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#O(e,t,n,o,r){let i=j(this.#e,n,o);ue(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`)}#P(e,t,n,o,r){let i=F(this.#e,r,()=>te(o));if(i.kind==="error")throw i.error;let a=this.#C(e,t,n,r);this.#q(e,t,n,i.value,a,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let a=this.#C(e,t,n,r),s=e.hasIntents?this.#k(e,t,n,r):a.outcome;if(s.kind!=="value")throw s.error;let c=this.#Z(o,s.value,r);this.#q(e,t,n,c,a,r)}#z(e,t,n,o){this.#C(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#N(e,n,o),reachesFallback:!0}):this.#F(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}))}#C(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),a=t,s;while(a!==void 0){if(a.atomOverrides.has(n)){s=T(a.atomOverrides.get(n));break}a=a.parent}let c=s===void 0,d=Object.freeze({owned:i,outcome:s??this.#N(e,n,o),reachesFallback:c});return e.setAtomBaseline(t,n,d),d}#k(e,t,n,o){return this.#F(e,t,n,o).outcome}#F(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:T(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:T(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#N(e,n,o),reachesFallback:!0})}#N(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#v(t);if(r.fallback.kind==="eager")return T(r.fallback.value);let i=r.fallback.initialize,a=e.getFallback(t);if(a!==void 0)return a;let s=tt(F(this.#e,n,()=>Re(i)));return e.setFallback(t,s),s}#X(e,t,n,o){let r=this.#v(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#J(r,t,n,o)?t:n}#J(e,t,n,o){return F(this.#e,o,()=>{let r;try{r=e(t,n)}catch(a){let s=C(a);if(s.kind==="not-thenable")throw a;if(s.kind==="inspection-error")throw s.error;throw N(s),new ee}let i=C(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw N(i),new ee;if(r!==!0&&r!==!1)throw new ee;return r})}#Z(e,t,n){return F(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let a=C(i);if(a.kind==="not-thenable")throw i;if(a.kind==="inspection-error")throw a.error;throw N(a),new Z}let r=te(o);if(r.kind==="error")throw r.error;return r.value})}#M(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=Ot(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((s,c)=>{let d=this.#_(e,s,c,o);if(r===void 0){r=d;return}if(i===void 0)i=[];i.push(d)});if(r===void 0)return;if(this.#u?.(1,e,this.#e.atoms),this.#H(e,r),i!==void 0)for(let s of i)this.#H(e,s);let a=this.#B(r);if(i!==void 0)for(let s of i){let c=this.#B(s);a||=c}if(this.#L(r),i!==void 0)for(let s of i)this.#L(s);this.#ae();try{let s,c,d=o.affectedRecord,l=o.affectedBefore;if(d!==void 0&&l!==void 0)s=this.#V(o,d,l);let{secondAffectedRecord:u,secondAffectedBefore:h}=o;if(u!==void 0&&h!==void 0){let y=this.#V(o,u,h);if(y!==void 0)if(s===void 0)s=y;else c=[y]}if(o.affected!==void 0)for(let[y,A]of o.affected){let M=this.#V(o,y,A);if(M===void 0)continue;if(s===void 0)s=M;else{if(c===void 0)c=[];c.push(M)}}if(a)this.#i+=1,this.recordCounter("sourceEpoch");this.#u?.(2,s===void 0?0:1+(c?.length??0)),this.#ie(s,c)}catch(s){throw this.#w(),s}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#W(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}),a=t.getAtomView(n.atom);if(a!==void 0)this.#ee(e,a,o);return i}#H(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")}#B(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))}#V(e,t,n){let o=De(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),nt(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(!Nt(n,r))continue;let i=r.served.outcome,a=this.#W(e,r.scope,r.atom,n);if(nt(i,a))continue;Vt(n,r,i);let s=o.length;r.inheritingChildren.forEach((c)=>{this.recordCounter("routeVisits"),o.push(c)});for(let c=s,d=o.length-1;c<d;c++,d--){let l=o[c];o[c]=o[d],o[d]=l}}}#W(e,t,n,o){let r=De(o,n,t);if(r!==void 0)return r;let i=t,a,s,c;while(i!==void 0){let d=De(o,n,i);if(d!==void 0){c=d;break}if(a===void 0)a=i;else{if(s===void 0)s=[];s.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){c=T(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){c=T(i.atomOverrides.get(n));break}i=i.parent}if(c??=this.#te(e,n),a!==void 0)it(o,n,a,c),this.recordCounter("finalPreflightVisits");if(s!==void 0)for(let d of s)it(o,n,d,c),this.recordCounter("finalPreflightVisits");return c}#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.#v(t);if(r.fallback.kind==="eager")return T(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.#v(e);if(n.fallback.kind==="eager")return T(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,T(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 a=o.getAtomView(t);if(a!==void 0){i=a;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,T(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 a=r.length-1;a>=0;a--)i=r[a].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.#v(e);if(o.fallback.kind==="eager")return T(o.fallback.value);let r=o.fallback.initialize,i=tt(F(this.#e,t,()=>Re(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#v(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.#w();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#c=void 0,this.#d=0,this.#f=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.#E(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.#f=void 0}this.#se(n)}#ae(){this.#S=void 0,this.#m=void 0,this.#p=this.#l===void 0?0:this.#b++}#w(){this.#p=0,this.#S=void 0,this.#m=void 0}reachSubscriptionTarget(e,t){let n=this.#p,o=this.#l?.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.#m===void 0)this.#m=[o];else this.#m.push(o)}#se(e){let t=this.#S;if(t===void 0){if(this.#w(),e!==void 0)throw e;return}let n,o,r=(d)=>{let l=d.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.#m;if(i!==void 0)for(let d of i)r(d);if(this.#w(),n===void 0){if(e!==void 0)throw e;return}let a=Object.freeze(o??[n]),s=this.instrumented;if(s)this.recordCounter("notificationSnapshots");let c;for(let d of a){if(s)this.recordCounter("subscriberCallbacksAttempted");let l=new m,u=!1,h;try{He(this.#e,l,()=>{try{let y=d(),A=C(y);if(A.kind==="thenable")N(A);else if(A.kind==="inspection-error")u=!0,h=A.error}catch(y){u=!0,h=y;let A=C(y);if(A.kind==="thenable")N(A)}})}catch(y){u=!0,h=y}if(u){if(c===void 0)c=[];if(c.push(h),s)this.recordCounter("subscriberErrors")}}if(c===void 0){if(e!==void 0)throw e;return}throw new ve(e===void 0?c:[e,...c])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#U(e,t)&ot)!==0)return!0;return this.#g(e,t,ot),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#E(e,t,n)}#E(e,t,n){if((this.#U(e,t)&(rt|Ee))!==0)return;this.#g(e,t,Ee);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let a of i)if(this.#e.selectors.has(a.node))this.#E(e,a.node)}if(e.isSelectorDirty(t)){let a=r===e.getSelectorGraphVersion();if(n!==void 0&&a)e.serve(t,n);else e.serve(t,new m)}this.#g(e,t,rt)}finally{this.#g(e,t,0,Ee)}}#U(e,t){if(Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;return this.#f?.get(e)?.get(t)??0}#g(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.#f;if(r===void 0)r=new Map,this.#f=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 a=r.outcome.kind==="value"?this.#X(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:a,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class xe{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),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var at=(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}}},lt=(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=(c,d={})=>{let l=new m,u=F(t,l,()=>te(c));if(u.kind==="error")throw u.error;let h=fe("atom",t.ownerToken);return t.states.add(h),t.atoms.set(h,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...at(d)})),h},o=(c,d={})=>{if(typeof c!=="function")throw TypeError("atomLazy requires an initializer function");let l=fe("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:c}),...at(d)})),l},r=(c,d={})=>{if(typeof c!=="function")throw TypeError("selector requires a getter function");if(d.equal!==void 0&&typeof d.equal!=="function")throw TypeError("selector equal must be a function");let l=fe("selector",t.ownerToken),u=Object.freeze({node:l,get:c,...d.name===void 0?{}:{name:d.name},...d.equal===void 0?{}:{equal:d.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(c)=>{let d=new m;if(j(t,c,d)==="invalid")return;return t.stores.get(c)},s=Object.freeze({assertStore:(c)=>{let d=i(c);if(V(t,"adapter assertStore"),d===void 0)throw TypeError("assertStore requires a valid Store")},read:(c,d)=>{if(i(c)===void 0)throw Oe(t,"adapter read"),TypeError("read requires a valid Store");return c.get(d)},subscribe:(c,d,l)=>{if(i(c)===void 0)throw V(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return c.sub(d,l)},readHydrationSnapshot:(c,d)=>{let l=i(c);if(l===void 0)throw V(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,d)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:s,createStoreTree:(c=e,d)=>{V(t,"createStoreTree");let l=new dt(t,c,d);return new xe(l,l.rootScope,d)}})};var Et=lt(),Xt=(e,t)=>Et.createStoreTree(e,t);
|
|
2
|
-
export{X as a,Qe as b,ke as c,ve as d,W as e,U as f,q as g,ce as h,J as i,Z as j,ee as k,we as l,ge as m,Te as n,de as o,Yt as p,Et as q,Xt as r};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
class I extends Error{seal(){Object.freeze(this)}}class ae extends I{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 ye extends I{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 X extends I{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 z extends I{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 Ae extends I{code="VALDRES_INVALID_SELECTOR_COMPARATOR_RESULT";constructor(){super("Selector comparator must return exactly true or false");this.name="InvalidSelectorComparatorResultError",this.seal()}}class se extends I{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 be extends I{code="VALDRES_SELECTOR_READ_REVOKED";constructor(){super("Selector supplied get is no longer active");this.name="SelectorReadRevokedError",this.seal()}}var Me=Object.freeze({kind:"not-thenable"}),ft=()=>{},ht=Reflect.apply,_e=Symbol.for("valdres.runtime-owner/v1");class v extends Error{seal(){Object.freeze(this)}}class ke extends v{code="VALDRES_RUNTIME_MISMATCH";constructor(){super("Valdres handles belong to a different runtime domain");this.name="RuntimeMismatchError",this.seal()}}class ve extends v{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 W extends v{code="VALDRES_CALLBACK_CAPABILITY";constructor(){super("This callback cannot use captured Valdres runtime capabilities");this.name="CallbackCapabilityError",this.seal()}}class U extends v{code="VALDRES_SELECTOR_CAPABILITY_ERROR";constructor(e){super(`A selector callback cannot call ${e} directly`);this.name="SelectorCapabilityError",this.seal()}}class q extends v{code="VALDRES_TRANSACTION_PHASE";constructor(){super("Captured StoreTree work is forbidden during a transaction");this.name="TransactionPhaseError",this.seal()}}class ce extends v{code="VALDRES_TRANSACTION_CLOSED";constructor(){super("The Transaction cursor is no longer active");this.name="TransactionClosedError",this.seal()}}class J extends v{code="VALDRES_INVALID_TRANSACTION_CALLBACK_RESULT";constructor(){super("Transaction callbacks must return synchronously");this.name="InvalidTransactionCallbackResultError",this.seal()}}class Z extends v{code="VALDRES_INVALID_SYNCHRONOUS_ATOM_VALUE";constructor(){super("Atom values and lazy initializers must be synchronous");this.name="InvalidSynchronousAtomValueError",this.seal()}}class ee extends v{code="VALDRES_INVALID_ATOM_COMPARATOR_RESULT";constructor(){super("Atom comparators must return exactly true or false synchronously");this.name="InvalidAtomComparatorResultError",this.seal()}}class we extends v{code="VALDRES_STORE_DISPOSED";constructor(){super("This Store has been disposed");this.name="StoreDisposedError",this.seal()}}class ge extends v{code="VALDRES_SCOPE_NOT_FOUND";constructor(){super("The named child Store does not exist");this.name="ScopeNotFoundError",this.seal()}}class Te extends v{code="VALDRES_STORE_TREE_MISMATCH";constructor(){super("The Store belongs to a different StoreTree");this.name="StoreTreeMismatchError",this.seal()}}class de extends v{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 Me;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Me}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},N=(e)=>{try{ht(e.then,e.target,[void 0,ft])}catch{}},te=(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 N(t),Object.freeze({kind:"error",error:new Z})},Re=(e)=>{try{return te(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 N(n),Object.freeze({kind:"error",error:new Z})}},ne=(e,t,n)=>{let o=e.activity;e.activity=t;try{return n()}finally{e.activity=o}},F=(e,t,n)=>{try{let o=ne(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}},He=(e,t,n)=>{try{let o=ne(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}},oe=(e,t,n)=>ne(e,Object.freeze({kind:"selector",session:t}),n),Be=(e,t,n)=>ne(e,Object.freeze({kind:"transaction",transaction:t}),n),le=(e,t,n)=>{try{let o=ne(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 U(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new q;throw new W},Oe=(e,t)=>{let n=e.activity;if(n===void 0)return;if(n.kind==="subscriber")return n.session;if(n.kind==="selector")throw new U(t);if(n.kind==="transaction"||n.kind==="transaction-result")throw new q;throw new W},Le=(e)=>{let t=e.activity;if(t===void 0||t.kind==="subscriber")return;if(t.kind==="selector")throw new U("Store unsubscribe");if(t.kind==="transaction"||t.kind==="transaction-result")throw new q;throw new W},ue=(e,t,n)=>{if(!n)throw new ce;let o=e.activity;if(o?.kind==="transaction"&&Object.is(o.transaction,t))return;if(o?.kind==="selector")throw new U("Transaction cursor operation");if(o?.kind==="guarded-callback")throw new W;throw new q},We=(e,t)=>{let n=e.activity;return n!==void 0&&"session"in n?n.session:t},L=(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,_e);if(o!==void 0&&"value"in o&&!Object.is(o.value,e.ownerToken)){let r=new ke;throw We(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=We(e,n);if(o!==void 0&&"session"in o)try{let i=L(e,t,r),a=r.getControlFault();if(a.kind==="fault")throw a.error;return i}catch(i){let a=r.getControlFault();if(a.kind==="fault")throw a.error;throw i}return F(e,r,()=>L(e,t,r))},re=(e,t)=>(Object.defineProperty(e,_e,{value:t,enumerable:!1,writable:!1,configurable:!1}),e),fe=(e,t)=>Object.freeze(re({kind:e},t));var Ue=Object.freeze({kind:"not-thenable"}),St=()=>{},mt=Reflect.apply,qe=Symbol("selector dependency path root"),Ye=(e)=>{if((typeof e!=="object"||e===null)&&typeof e!=="function")return Ue;try{let t=e.then;return typeof t==="function"?Object.freeze({kind:"thenable",target:e,then:t}):Ue}catch(t){return Object.freeze({kind:"inspection-error",error:t})}},$e=(e)=>{try{mt(e.then,e.target,[void 0,St])}catch{}},pt=(e)=>Object.freeze(e),yt=(e)=>Object.freeze(e),g=(e,t,n,o)=>{let r=yt(o);return Object.freeze({selector:e,token:t,outcome:pt(n),dependencies:r,attemptedPrefix:n.kind==="value"?At:Object.freeze(r.map((i)=>i.node))})},At=Object.freeze([]),bt=()=>{let e,t,n=0,o=!1,r=0,i=!0,a=()=>{e=void 0,t=void 0,r=0,i=!1};return{get enabled(){return i},beginSearch(){n=0},hasProvenNoPath(s){if(e?.has(s))return n|=1,!0;if(t?.has(s))return n|=2,!0;return!1},completeNegative(s){if(!i)return;if(n!==0){e=n===1?e:n===2?t:(e?.size??0)>=(t?.size??0)?e:t,t=void 0,o=!0,r=0;return}if(s.size<=1)return;if(o){if(r++,r>=3)a();return}if(e===void 0){e=s;return}if(t===void 0){t=s;return}a()}}},kt=(e,t,n,o,r,i)=>{i?.beginSearch();let a=[e],s=new Map([[e,qe]]);while(a.length>0){let c=a.pop();if(Object.is(c,t)){let u=[],h=c;while(h!==qe)u.push(h),h=s.get(h);return u.reverse(),Object.freeze(u)}if(i?.hasProvenNoPath(c))continue;let d=o.getTransientDependencies(n,c);if(d){for(let u of d){if(s.has(u.node))continue;s.set(u.node,c),a.push(u.node)}continue}if(n.getSelectorDependencyNodes!==void 0){let u=n.getSelectorDependencyNodes(c);if(u===void 0)continue;for(let h of u){if(s.has(h))continue;s.set(h,c),a.push(h)}continue}let l=n.getSelectorRecord(c);if(!l)continue;for(let u of l.dependencies){if(s.has(u.node))continue;s.set(u.node,c),a.push(u.node)}}i?.completeNegative(s);return},Ge=(e,t)=>{let n=Ye(e);if(n.kind==="thenable")return $e(n),new z(t);if(n.kind==="inspection-error")return n.error;return e},Ke=(e,t)=>{let n=Ye(e);if(n.kind==="thenable")return $e(n),Object.freeze({kind:"error",error:new z(t)});if(n.kind==="inspection-error")return Object.freeze({kind:"error",error:n.error});return Object.freeze({kind:"value",value:e})},Qe=(e,t,n,o=kt)=>{let{node:r}=e,i=[],a=t.getSelectorRecord(r),s=a?.dependencies,c=s===void 0?new Set:void 0,d,l=0,u=t.getComparisonBaseline(r),h=!0,y=()=>{let f=c;if(f!==void 0)return f;f=new Set;for(let p of i)f.add(p.node);return c=f,f};n.enter(t,r,i);let A=t.getSelectorGraphVersion(),M=n.getSelectorGraphPublicationCount(t),G=A,K=M,Pe=A,Ie=M,me=(f,p,b,k)=>b-f===k-p,ze=(f=t.getSelectorGraphVersion(),p=n.getSelectorGraphPublicationCount(t),b=me(G,K,f,p))=>{if(b){G=f,K=p;return}let k=i.length>1?bt():void 0;for(let R=0;R<i.length;R++){let x=i[R],O=o(x.node,r,t,n,0,k?.enabled?k:void 0);if(!O)continue;if(c!==void 0)for(let E=i.length-1;E>=R;E--)c.delete(i[E].node);if(i.length=R,l++,n.getControlFault().kind==="fault")return;let w=new X(r,[r,...O]);n.latchCycle(t,r,w);return}G=f,K=p},pe=()=>{let f=t.getSelectorGraphVersion(),p=n.getSelectorGraphPublicationCount(t);Pe=f,Ie=p;let b=me(G,K,f,p);if(!b)n.revalidateAncestorPrefixes(t,r);ze(f,p,b)};n.setPrefixRevalidator(t,r,ze);let ut=(f)=>{if(!h)throw new be;let p=n.getControlFault();if(p.kind==="fault")throw p.error;let b=n.getCycle(t,r);if(b!==void 0)throw b;let k=n.activeCyclePath(t,f);if(k){let S=new X(r,k);throw n.latchCycle(t,r,S),S}let R=i.length,x,O=!1;if(c===void 0){let S=s?.[R];if(S!==void 0&&Object.is(S.node,f))x=!1,O=!0;else x=y().has(f)}else x=c.has(f);if(!x&&!O&&s!==void 0&&s.length>0){let S=s[i.length];if(S!==void 0&&Object.is(S.node,f))O=!0;else{if(d===void 0){d=new Set;for(let B of s)d.add(B.node)}O=d.has(f)}}let _=l,w=t.serve(f,n);pe();let E=n.getCycle(t,r);if(E!==void 0)throw E;let Y=c!==void 0?c.has(f):l===_&&i.length===R?!1:y().has(f),P=Pe,H=Ie,D=Y||O&&P===A,ie=s===void 0&&me(A,M,P,H);if(!D&&!ie){let S=o(f,r,t,n,1);if(S){let B=n.getControlFault();if(B.kind==="fault")throw B.error;let Fe=new X(r,[r,...S]);throw n.latchCycle(t,r,Fe),Fe}}if(!Y){let S=a?.dependencies[i.length];c?.add(f),i.push(S!==void 0&&Object.is(S.node,f)&&Object.is(S.token,w.token)?S:Object.freeze({node:f,token:w.token}))}if(G=P,K=H,w.outcome.kind==="control-error"){n.latchControlFault(w.outcome.error);let S=n.getControlFault();if(S.kind==="fault")throw S.error;throw w.outcome.error}let Q=n.getControlFault();if(Q.kind==="fault")throw Q.error;if(w.outcome.kind==="error")throw new ye(f,w.outcome.error);return w.outcome.value};try{let f,p,b=!1;try{f=e.get(ut)}catch(E){b=!0,p=E}finally{h=!1}if(b)p=Ge(p,"getter");let k=b?void 0:Ke(f,"getter");pe();let R=n.getControlFault();if(R.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:R.error},i);let x=n.getCycle(t,r);if(x!==void 0)return g(r,t.createOutcomeToken(),{kind:"error",error:x},i);if(b)return g(r,t.createOutcomeToken(),{kind:"error",error:p instanceof z?p:new ae(r,p)},i);if(k===void 0)throw Error("Selector result classification was not completed");let O=n.getControlFault();if(O.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:O.error},i);if(k.kind==="error")return g(r,t.createOutcomeToken(),{kind:"error",error:k.error instanceof z?k.error:new ae(r,k.error)},i);let _=k.value,w;if(u){let E=e.equal??Object.is,Y,P,H=!1;try{Y=E(u.value,_)}catch(B){H=!0,P=Ge(B,"comparator")}let D=H?void 0:Ke(Y,"comparator");pe();let ie=n.getControlFault();if(ie.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:ie.error},i);let Q=n.getCycle(t,r);if(Q!==void 0)return g(r,t.createOutcomeToken(),{kind:"error",error:Q},i);if(H)return g(r,t.createOutcomeToken(),{kind:"error",error:P instanceof z?P:new se(r,P)},i);if(D===void 0)throw Error("Selector comparator classification was not completed");let S=n.getControlFault();if(S.kind==="fault")return g(r,t.createOutcomeToken(),{kind:"control-error",error:S.error},i);if(D.kind==="error")return g(r,t.createOutcomeToken(),{kind:"error",error:D.error instanceof z?D.error:new se(r,D.error)},i);if(D.value!==!0&&D.value!==!1)return g(r,t.createOutcomeToken(),{kind:"error",error:new Ae},i);if(D.value===!0)_=u.value,w=u.current?u.token:void 0}return g(r,w??t.createOutcomeToken(),{kind:"value",value:_},i)}finally{n.leave(t,r)}};class m{#t=[];#n;#o=0;#i;#a=vt;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 vt=Object.freeze({kind:"none"});var Xe=Symbol("no-committed-selector-baseline");class he{#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 m,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 s=this.#o.get(e);if(s!==void 0)return s;let c=Object.freeze({token:this.createOutcomeToken(),outcome:n.readDraftAtomOutcome(e,t)});return this.#o.set(e,c),c}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 a=Object.freeze({token:i.token,outcome:i.outcome});return this.#s++,t.noteSelectorGraphPublication(this),this.#n.set(e,Object.freeze({served:a,dependencies:i.dependencies})),a}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)??Xe,this.#i.set(e,t);return t===Xe?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}}class Je{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 Se{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;#d="live";constructor(e,t,n){this.coordinator=e,this.parent=t,this.name=n,this.children=this.#l(),this.#n=this.#l()}get status(){return this.#d}get facade(){if(this.#c===void 0)throw Error("Store scope facade is not installed");return this.#c}installFacade(e){if(this.#c!==void 0)throw Error("Store scope facade is already installed");this.#c=e}markDisposing(){if(this.#d==="live")this.#d="disposing"}markDisposed(){this.#d="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.#l()};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}serve(e,t){let n=this.coordinator.runtimeDomain;if(L(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 s=this.#t.get(e);if(s!==void 0)return s.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 a=oe(n,t,()=>this.coordinator.evaluate(o,this,t));if(a.outcome.kind==="control-error"&&!this.coordinator.postSourceApply)throw a.outcome.error;return this.#f(r,a,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 a of t.dependencies)if(this.coordinator.runtimeDomain.selectors.has(a.node))r.push(a.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}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()}#f(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});if(this.#h(e,o?.dependencies??wt,t.dependencies))this.#i?.delete(e);if(this.#s++,n.noteSelectorGraphPublication(this),this.#o.set(e,i),this.#r.delete(e),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}#h(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.#l(),this.#a.set(o.node,r);r.add(e)}return!0}#l(){return new Je(this.coordinator.instrumented?()=>this.coordinator.recordCounter("deadRouteCompactions"):void 0)}}var wt=Object.freeze([]);class Ce{transaction=Object.freeze({});#t;#n;#o;#i;#a;#r;#s;#c;#d;#f;#h;#l;#b;#p;#S;#m;#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.#u(),n.set(e,i);i.set(t.atom,t),this.#y();return}let o=this.#a;if(o!==void 0){if(Object.is(this.#n,e))o.set(t.atom,t);else{let i=this.#u();i.set(this.#n,o);let a=this.#u();a.set(t.atom,t),i.set(e,a),this.#r=i,this.#a=void 0,this.#n=void 0}this.#y();return}let r=this.#o;if(r===void 0){this.#n=e,this.#o=t,this.#y();return}if(Object.is(this.#n,e)&&Object.is(r.atom,t.atom)){this.#o=t,this.#y();return}if(Object.is(this.#n,e)){let i=this.#i;if(i===void 0){this.#i=t,this.#y();return}if(Object.is(i.atom,t.atom)){this.#i=t,this.#y();return}let a=this.#u();a.set(r.atom,r),a.set(i.atom,i),a.set(t.atom,t),this.#a=a}else{let i=this.#u(),a=this.#u();if(a.set(r.atom,r),this.#i!==void 0)a.set(this.#i.atom,this.#i);i.set(this.#n,a);let s=this.#u();s.set(t.atom,t),i.set(e,s),this.#r=i,this.#n=void 0}this.#o=void 0,this.#i=void 0,this.#y()}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 a of i.values())e(r,a)}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.#f,t))return this.#h;if(Object.is(this.#s,e))return this.#l?.get(t);return this.#b?.get(e)?.get(t)}setAtomBaseline(e,t,n){let o=this.#b;if(o!==void 0){let a=o.get(e);if(a===void 0)a=this.#u(),o.set(e,a);if(!a.has(t))a.set(t,n);return}let r=this.#l;if(r!==void 0){if(Object.is(this.#s,e)){if(!r.has(t))r.set(t,n)}else{let a=this.#u();a.set(this.#s,r);let s=this.#u();s.set(t,n),a.set(e,s),this.#b=a,this.#l=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 a=this.#h;if(a===void 0){this.#f=t,this.#h=n;return}if(Object.is(this.#f,t))return;let s=this.#u();s.set(this.#c,i),s.set(this.#f,a),s.set(t,n),this.#l=s}else{let a=this.#u(),s=this.#u();if(s.set(this.#c,i),this.#f!==void 0&&this.#h!==void 0)s.set(this.#f,this.#h);a.set(this.#s,s);let c=this.#u();c.set(t,n),a.set(e,c),this.#b=a,this.#s=void 0}this.#c=void 0,this.#d=void 0,this.#f=void 0,this.#h=void 0}getFallback(e){if(Object.is(this.#p,e))return this.#S;return this.#m?.get(e)}hasFallback(e){return Object.is(this.#p,e)||(this.#m?.has(e)??!1)}setFallback(e,t){let n=this.#m;if(n!==void 0){n.set(e,t);return}if(this.#S===void 0){this.#p=e,this.#S=t;return}if(Object.is(this.#p,e)){this.#S=t;return}let o=this.#u();o.set(this.#p,this.#S),o.set(e,t),this.#m=o,this.#p=void 0,this.#S=void 0}forEachFallback(e){if(this.#p!==void 0&&this.#S!==void 0)e(this.#p,this.#S);if(this.#m!==void 0)for(let[t,n]of this.#m)e(t,n)}#y(){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.#l?.clear(),this.#b!==void 0){for(let e of this.#b.values())e.clear();this.#b.clear()}this.#m?.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.#f=void 0,this.#h=void 0,this.#l=void 0,this.#b=void 0,this.#p=void 0,this.#S=void 0,this.#m=void 0,this.#e?.clear(),this.#e=void 0}#u(){return this.#t?.(),new Map}}class Ze{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]),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.transactionCursors.set(this,t),Object.freeze(this)}}var Ne=(e,t,n)=>new Ze(e,t,n),Ve=(e)=>{let t=C(e);if(t.kind==="not-thenable")return;if(t.kind==="inspection-error")throw t.error;throw N(t),new J},et=(e)=>{let t=C(e);if(t.kind==="not-thenable")throw e;if(t.kind==="inspection-error")throw t.error;throw N(t),new J};var gt=(e)=>function(){let n=e.target;if(n===void 0)return;n.host.removeSubscription(e)},st=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}),Tt=32,ct=new WeakMap,Yt=()=>{let e=new Uint32Array(Tt),t=Object.freeze({read(n){return e[st[n]]??0}});return ct.set(t,e),t},T=(e)=>Object.freeze({kind:"value",value:e}),Rt=(e)=>Object.freeze({kind:"error",error:e}),tt=(e)=>e.kind==="value"?T(e.value):Rt(e.error),nt=(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)},ot=1,Ee=2,rt=4,Ot=(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}),je=(e)=>(e.onAllocation?.(),new Map),Ct=(e)=>(e.onAllocation?.(),new Set),De=(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)},it=(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=je(e),e.preflight=r;let i=r.get(t);if(i===void 0)i=je(e),r.set(t,i);i.set(n,o)},Nt=(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=Ct(e),e.considered=n;if(n.has(t))return!1;return n.add(t),!0},Vt=(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=je(e),e.affected=o;o.set(t,n)};class dt{#t=new WeakMap;#n;#o=1;#i=0;#a=!1;#r;#s;#c;#d=0;#f;#h;#l;#b=1;#p=0;#S;#m;#e;#y;#u;evaluate;constructor(e,t,n){this.#e=e,this.#y=t===void 0?void 0:ct.get(t),this.#u=n,this.evaluate=n?.evaluate??Qe,this.#n=new Se(this),this.recordCounter("scopeNodesCreated")}get runtimeDomain(){return this.#e}get postSourceApply(){return this.#a}get instrumented(){return this.#y!==void 0}get rootScope(){return this.#n}recordCounter(e,t=1){let n=this.#y;if(n===void 0)return;n[st[e]]+=t}#T(){return this.recordCounter("draftCreations"),new Ce(this.instrumented?()=>this.recordCounter("draftStorageAllocations"):void 0)}get(e,t){let n=new m,o=t,r=j(this.#e,o,n),i=Oe(this.#e,"StoreTree.get");if(this.#A(e),r==="invalid")throw TypeError("StoreTree.get requires a valid State");if(i===void 0){let a=e.serveKnownLocal(o,n);if(a.outcome.kind!=="value")throw a.outcome.error;return a.outcome.value}try{let a=e.serveKnownLocal(o,n);if(a.outcome.kind!=="value"){if(a.outcome.kind==="control-error")i.latchControlFault(a.outcome.error);throw a.outcome.error}return a.outcome.value}catch(a){let s=n.getControlFault();if(s.kind==="fault")i.latchControlFault(s.error);throw a}}sub(e,t,n){let o=t,r,i=this.#e.states.has(o)?"local":j(this.#e,o,r=new m);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 a=e.getMaterializedServedOutcome(o)??e.serveKnownLocal(o,r??new m);if(a.outcome.kind==="control-error")throw a.outcome.error;let s=this.#l;if(s===void 0){if(s=new Map,this.#l=s,this.instrumented)this.recordCounter("subscriptionIndexMapsCreated")}let c=s.get(e);if(c===void 0){if(c=new Map,s.set(e,c),this.instrumented)this.recordCounter("subscriptionIndexMapsCreated"),this.recordCounter("activeSubscriptionScopes")}let d=c.get(o);if(d===void 0){if(d={host:this,scope:e,state:o,head:void 0,tail:void 0,reachedEpoch:0},c.set(o,d),this.instrumented)this.recordCounter("subscriptionTargetsCreated"),this.recordCounter("activeSubscriptionTargets")}let l={callback:n,target:d,previous:d.tail,next:void 0};if(d.tail===void 0)d.head=l;else d.tail.next=l;if(d.tail=l,this.instrumented)this.recordCounter("subscriptionRegistrations"),this.recordCounter("activeSubscriptions"),this.recordCounter("unsubscribeClosuresCreated");return gt(l)}removeSubscription(e){let t=e.target;if(t===void 0)return;Le(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.#l,a=i?.get(t.scope);if(a?.get(t.state)===t){if(a.delete(t.state),r)this.recordCounter("activeSubscriptionTargets",-1)}if(a!==void 0&&a.size===0){if(i?.delete(t.scope),r)this.recordCounter("activeSubscriptionScopes",-1)}if(i?.size===0)this.#l=void 0}set(e,t,n){this.#R(e,t,"StoreTree.set","set",n)}update(e,t,n){this.#R(e,t,"StoreTree.update","update",n)}reset(e,t){this.#R(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 m);if(V(this.#e,"StoreTree.scope"),this.#A(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(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((a)=>i.push(a));for(let a=i.length-1;a>=0;a--)n.push(Object.freeze({node:i[a],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.#Q(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=Ne(this,o,e),i;try{i=Be(this.#e,o.transaction,()=>t(r))}catch(a){throw o.close(),o.release(),a}o.close();try{let a=new m;le(this.#e,a,()=>Ve(i)),this.#M(o)}finally{o.release()}return i}readHydrationSnapshot(e,t){let n=new m,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(),a;try{if(this.#e.atoms.has(o)){let s=this.#k(i,e,o,n);if(s.kind!=="value")throw s.error;return s.value}return a=this.#K(i,e),a.readSelector(o)}finally{a?.revoke(),i.close(),i.forEachFallback((s,c)=>{if(this.#t.has(s))return;this.#t.set(s,c),this.recordCounter("fallbackPublications")}),i.release()}}transactionGet(e,t,n){let o=n,r=new m,i=j(this.#e,o,r);if(ue(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 s=this.#k(e,t,o,r);if(s.kind!=="value")throw s.error;return s.value}if(!this.#e.selectors.has(o))throw TypeError("Transaction.get requires a readable State");let a=e.getScratchHost(t);if(a===void 0){if(a=this.#G(e,t),e.installScratchHost(t,a))this.recordCounter("scratchMapAllocations")}return a.readSelector(o)}transactionSet(e,t,n,o){let r=n,i=new m;this.#O(e,t,r,i,"Transaction.set"),this.#P(e,t,r,o,i)}transactionUpdate(e,t,n,o){let r=n,i=new m;this.#O(e,t,r,i,"Transaction.update"),this.#I(e,t,r,o,i,"Transaction.update")}transactionReset(e,t,n){let o=n,r=new m;this.#O(e,t,o,r,"Transaction.reset"),this.#z(e,t,o,r)}transactionScope(e,t,n,o,r){let i=new m;if(typeof n!=="string")j(this.#e,n,i);ue(this.#e,e.transaction,e.active),this.#A(t);let a=this.#Y(t,n);if(o!==1&&o!==2)throw TypeError("Transaction.scope requires a target and optional callback");let s=Ne(this,e,a);if(o===1)return s;if(typeof r!=="function")throw TypeError("Transaction.scope requires a callback function");let c;try{c=r(s)}catch(l){let u=new m;return le(this.#e,u,()=>et(l))}let d=new m;return le(this.#e,d,()=>Ve(c)),c}createOutcomeToken(){return Object.freeze({id:this.#o++})}#G(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#D(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:(n)=>t.captureCommittedSelectorSuccess(n),runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#K(e,t){return this.recordCounter("scratchHostAllocations"),new he(Object.freeze({resolveState:(n,o)=>this.#D(n,o),readDraftAtomOutcome:(n,o)=>this.#k(e,t,n,o),captureCommittedSelectorSuccess:()=>{return},runSelectorActivity:(n,o)=>oe(this.#e,n,o)}),e.generation,this.evaluate)}#D(e,t){if(L(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 Se(this,e,t);this.recordCounter("scopeNodesCreated");let o=new xe(this,n,this.#u);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 ge;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 Te;return i}let r=this.#e.transactionCursors.get(n);if(r!==void 0){if(!r.active)throw new ce;throw new de}throw new de}#A(e){if(e.status!=="live")throw new we}#$(e,t,n,o){let r=j(this.#e,t,n);V(this.#e,o),this.#A(e),this.#x(t,r,o)}#R(e,t,n,o,r){let i=t,a=new m;this.#$(e,i,a,n);let s=this.#T();try{if(o==="set")this.#P(s,e,i,r,a);else if(o==="update")this.#I(s,e,i,r,a,n);else this.#z(s,e,i,a)}catch(c){throw s.close(),s.release(),c}s.close();try{this.#M(s)}finally{s.release()}}#Q(e){let t=this.#l,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 a=i.next;i.callback=void 0,i.target=void 0,i.previous=void 0,i.next=void 0,o++,i=a}r.head=void 0,r.tail=void 0}if(t.delete(e),t.size===0)this.#l=void 0;if(this.instrumented)this.recordCounter("subscriptionRemovals",o),this.recordCounter("activeSubscriptions",-o),this.recordCounter("activeSubscriptionTargets",-n.size),this.recordCounter("activeSubscriptionScopes",-1)}#O(e,t,n,o,r){let i=j(this.#e,n,o);ue(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`)}#P(e,t,n,o,r){let i=F(this.#e,r,()=>te(o));if(i.kind==="error")throw i.error;let a=this.#C(e,t,n,r);this.#q(e,t,n,i.value,a,r)}#I(e,t,n,o,r,i){if(typeof o!=="function")throw TypeError(`${i} requires an updater function`);let a=this.#C(e,t,n,r),s=e.hasIntents?this.#k(e,t,n,r):a.outcome;if(s.kind!=="value")throw s.error;let c=this.#Z(o,s.value,r);this.#q(e,t,n,c,a,r)}#z(e,t,n,o){this.#C(e,t,n,o);let r=t.parent===void 0?Object.freeze({outcome:this.#N(e,n,o),reachesFallback:!0}):this.#F(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}))}#C(e,t,n,o){let r=e.getAtomBaseline(t,n);if(r!==void 0)return r;let i=t.atomOverrides.has(n),a=t,s;while(a!==void 0){if(a.atomOverrides.has(n)){s=T(a.atomOverrides.get(n));break}a=a.parent}let c=s===void 0,d=Object.freeze({owned:i,outcome:s??this.#N(e,n,o),reachesFallback:c});return e.setAtomBaseline(t,n,d),d}#k(e,t,n,o){return this.#F(e,t,n,o).outcome}#F(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:T(i.value),reachesFallback:!1});if(i===void 0&&r.atomOverrides.has(n))return Object.freeze({outcome:T(r.atomOverrides.get(n)),reachesFallback:!1});r=r.parent}return Object.freeze({outcome:this.#N(e,n,o),reachesFallback:!0})}#N(e,t,n){let o=this.#t.get(t);if(o!==void 0)return o;let r=this.#v(t);if(r.fallback.kind==="eager")return T(r.fallback.value);let i=r.fallback.initialize,a=e.getFallback(t);if(a!==void 0)return a;let s=tt(F(this.#e,n,()=>Re(i)));return e.setFallback(t,s),s}#X(e,t,n,o){let r=this.#v(e).equal;if(r===void 0)return Object.is(t,n)?t:n;return this.#J(r,t,n,o)?t:n}#J(e,t,n,o){return F(this.#e,o,()=>{let r;try{r=e(t,n)}catch(a){let s=C(a);if(s.kind==="not-thenable")throw a;if(s.kind==="inspection-error")throw s.error;throw N(s),new ee}let i=C(r);if(i.kind==="inspection-error")throw i.error;if(i.kind==="thenable")throw N(i),new ee;if(r!==!0&&r!==!1)throw new ee;return r})}#Z(e,t,n){return F(this.#e,n,()=>{let o;try{o=e(t)}catch(i){let a=C(i);if(a.kind==="not-thenable")throw i;if(a.kind==="inspection-error")throw a.error;throw N(a),new Z}let r=te(o);if(r.kind==="error")throw r.error;return r.value})}#M(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=Ot(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((s,c)=>{let d=this.#_(e,s,c,o);if(r===void 0){r=d;return}if(i===void 0)i=[];i.push(d)});if(r===void 0)return;if(this.#u?.(1,e,this.#e.atoms),this.#H(e,r),i!==void 0)for(let s of i)this.#H(e,s);let a=this.#B(r);if(i!==void 0)for(let s of i){let c=this.#B(s);a||=c}if(this.#L(r),i!==void 0)for(let s of i)this.#L(s);this.#ae();try{let s,c,d=o.affectedRecord,l=o.affectedBefore;if(d!==void 0&&l!==void 0)s=this.#V(o,d,l);let{secondAffectedRecord:u,secondAffectedBefore:h}=o;if(u!==void 0&&h!==void 0){let y=this.#V(o,u,h);if(y!==void 0)if(s===void 0)s=y;else c=[y]}if(o.affected!==void 0)for(let[y,A]of o.affected){let M=this.#V(o,y,A);if(M===void 0)continue;if(s===void 0)s=M;else{if(c===void 0)c=[];c.push(M)}}if(a)this.#i+=1,this.recordCounter("sourceEpoch");this.#u?.(2,s===void 0?0:1+(c?.length??0)),this.#ie(s,c)}catch(s){throw this.#w(),s}}#_(e,t,n,o){let r=e.getAtomBaseline(t,n.atom);if(r===void 0)throw Error("TreeDraft atom baseline is missing");this.#W(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}),a=t.getAtomView(n.atom);if(a!==void 0)this.#ee(e,a,o);return i}#H(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")}#B(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))}#V(e,t,n){let o=De(e,t.atom,t.scope);if(o===void 0)throw Error("Affected AtomView final outcome is missing");if(this.recordCounter("finalResolutionVisits"),nt(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(!Nt(n,r))continue;let i=r.served.outcome,a=this.#W(e,r.scope,r.atom,n);if(nt(i,a))continue;Vt(n,r,i);let s=o.length;r.inheritingChildren.forEach((c)=>{this.recordCounter("routeVisits"),o.push(c)});for(let c=s,d=o.length-1;c<d;c++,d--){let l=o[c];o[c]=o[d],o[d]=l}}}#W(e,t,n,o){let r=De(o,n,t);if(r!==void 0)return r;let i=t,a,s,c;while(i!==void 0){let d=De(o,n,i);if(d!==void 0){c=d;break}if(a===void 0)a=i;else{if(s===void 0)s=[];s.push(i)}let l=e.getIntent(i,n);if(l?.kind==="set"){c=T(l.value);break}if(l===void 0&&i.atomOverrides.has(n)){c=T(i.atomOverrides.get(n));break}i=i.parent}if(c??=this.#te(e,n),a!==void 0)it(o,n,a,c),this.recordCounter("finalPreflightVisits");if(s!==void 0)for(let d of s)it(o,n,d,c),this.recordCounter("finalPreflightVisits");return c}#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.#v(t);if(r.fallback.kind==="eager")return T(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.#v(e);if(n.fallback.kind==="eager")return T(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,T(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 a=o.getAtomView(t);if(a!==void 0){i=a;break}if(o.atomOverrides.has(t)){i=o.createAtomView(t,T(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 a=r.length-1;a>=0;a--)i=r[a].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.#v(e);if(o.fallback.kind==="eager")return T(o.fallback.value);let r=o.fallback.initialize,i=tt(F(this.#e,t,()=>Re(r)));return this.#t.set(e,i),this.recordCounter("fallbackPublications"),i}#v(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.#w();return}this.recordCounter("propagationSettlements"),this.#r=[],this.#s=void 0,this.#c=void 0,this.#d=0,this.#f=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.#E(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.#f=void 0}this.#se(n)}#ae(){this.#S=void 0,this.#m=void 0,this.#p=this.#l===void 0?0:this.#b++}#w(){this.#p=0,this.#S=void 0,this.#m=void 0}reachSubscriptionTarget(e,t){let n=this.#p,o=this.#l?.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.#m===void 0)this.#m=[o];else this.#m.push(o)}#se(e){let t=this.#S;if(t===void 0){if(this.#w(),e!==void 0)throw e;return}let n,o,r=(d)=>{let l=d.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.#m;if(i!==void 0)for(let d of i)r(d);if(this.#w(),n===void 0){if(e!==void 0)throw e;return}let a=Object.freeze(o??[n]),s=this.instrumented;if(s)this.recordCounter("notificationSnapshots");let c;for(let d of a){if(s)this.recordCounter("subscriberCallbacksAttempted");let l=new m,u=!1,h;try{He(this.#e,l,()=>{try{let y=d(),A=C(y);if(A.kind==="thenable")N(A);else if(A.kind==="inspection-error")u=!0,h=A.error}catch(y){u=!0,h=y;let A=C(y);if(A.kind==="thenable")N(A)}})}catch(y){u=!0,h=y}if(u){if(c===void 0)c=[];if(c.push(h),s)this.recordCounter("subscriberErrors")}}if(c===void 0){if(e!==void 0)throw e;return}throw new ve(e===void 0?c:[e,...c])}enqueueSelector(e,t){let n=this.#r;if(n===void 0)return!1;if((this.#U(e,t)&ot)!==0)return!0;return this.#g(e,t,ot),n.push(e,t),!0}prepareSelectorRead(e,t,n){if(this.#r===void 0)return;this.#E(e,t,n)}#E(e,t,n){if((this.#U(e,t)&(rt|Ee))!==0)return;this.#g(e,t,Ee);try{let r=e.getSelectorGraphVersion(),i=e.getCommittedSelectorDependencies(t);if(i!==void 0){for(let a of i)if(this.#e.selectors.has(a.node))this.#E(e,a.node)}if(e.isSelectorDirty(t)){let a=r===e.getSelectorGraphVersion();if(n!==void 0&&a)e.serve(t,n);else e.serve(t,new m)}this.#g(e,t,rt)}finally{this.#g(e,t,0,Ee)}}#U(e,t){if(Object.is(this.#s,e)&&Object.is(this.#c,t))return this.#d;return this.#f?.get(e)?.get(t)??0}#g(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.#f;if(r===void 0)r=new Map,this.#f=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 a=r.outcome.kind==="value"?this.#X(n,r.outcome.value,o,i):o;e.stage(t,Object.freeze({kind:"set",atom:n,value:a,publishDraftFallback:r.reachesFallback&&e.hasFallback(n)}))}}class xe{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),re(this,e.runtimeDomain.ownerToken),e.runtimeDomain.stores.set(this,t),e.recordCounter("storeFacadesCreated"),n?.(0,this,t),Object.freeze(this)}}var at=(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}}},lt=(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=(c,d={})=>{let l=new m,u=F(t,l,()=>te(c));if(u.kind==="error")throw u.error;let h=fe("atom",t.ownerToken);return t.states.add(h),t.atoms.set(h,Object.freeze({fallback:Object.freeze({kind:"eager",value:u.value}),...at(d)})),h},o=(c,d={})=>{if(typeof c!=="function")throw TypeError("atomLazy requires an initializer function");let l=fe("atom",t.ownerToken);return t.states.add(l),t.atoms.set(l,Object.freeze({fallback:Object.freeze({kind:"lazy",initialize:c}),...at(d)})),l},r=(c,d={})=>{if(typeof c!=="function")throw TypeError("selector requires a getter function");if(d.equal!==void 0&&typeof d.equal!=="function")throw TypeError("selector equal must be a function");let l=fe("selector",t.ownerToken),u=Object.freeze({node:l,get:c,...d.name===void 0?{}:{name:d.name},...d.equal===void 0?{}:{equal:d.equal}});return t.states.add(l),t.selectors.set(l,u),l},i=(c)=>{let d=new m;if(j(t,c,d)==="invalid")return;return t.stores.get(c)},s=Object.freeze({assertStore:(c)=>{let d=i(c);if(V(t,"adapter assertStore"),d===void 0)throw TypeError("assertStore requires a valid Store")},read:(c,d)=>{if(i(c)===void 0)throw Oe(t,"adapter read"),TypeError("read requires a valid Store");return c.get(d)},subscribe:(c,d,l)=>{if(i(c)===void 0)throw V(t,"adapter subscribe"),TypeError("subscribe requires a valid Store");return c.sub(d,l)},readHydrationSnapshot:(c,d)=>{let l=i(c);if(l===void 0)throw V(t,"adapter readHydrationSnapshot"),TypeError("readHydrationSnapshot requires a valid Store");return l.coordinator.readHydrationSnapshot(l,d)}});return Object.freeze({atom:n,atomLazy:o,selector:r,adapter:s,createStoreTree:(c=e,d)=>{V(t,"createStoreTree");let l=new dt(t,c,d);return new xe(l,l.rootScope,d)}})};var Et=lt(),Xt=(e,t)=>Et.createStoreTree(e,t);
|
|
2
|
-
export{X as a,Qe as b,ke as c,ve as d,W as e,U as f,q as g,ce as h,J as i,Z as j,ee as k,we as l,ge as m,Te as n,de as o,Yt as p,Et as q,Xt as r};
|