stroid 0.1.3 → 0.1.4-beta.0

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +37 -15
  2. package/README.md +12 -10
  3. package/dist/async.d.ts +1 -1
  4. package/dist/async.js +22 -22
  5. package/dist/computed-types.d.ts +42 -0
  6. package/dist/computed-types.js +2 -0
  7. package/dist/computed.d.ts +9 -2
  8. package/dist/computed.js +11 -11
  9. package/dist/core.js +14 -14
  10. package/dist/devtools.d.ts +1 -1
  11. package/dist/devtools.js +1 -1
  12. package/dist/helpers.js +14 -14
  13. package/dist/index-internal.d.ts +1 -1
  14. package/dist/index.d.cts +3 -1
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.js +24 -24
  17. package/dist/install.js +1 -1
  18. package/dist/persist.js +1 -1
  19. package/dist/psr.d.ts +38 -0
  20. package/dist/psr.js +19 -0
  21. package/dist/react/index.d.ts +3 -1
  22. package/dist/react/index.js +25 -25
  23. package/dist/runtime-admin.js +1 -1
  24. package/dist/runtime-patch.d.ts +29 -0
  25. package/dist/runtime-tools.d.ts +6 -1
  26. package/dist/runtime-tools.js +2 -2
  27. package/dist/selectors.js +1 -1
  28. package/dist/server.d.ts +3 -1
  29. package/dist/server.js +11 -11
  30. package/dist/store-registry.d.ts +6 -0
  31. package/dist/sync.js +1 -1
  32. package/dist/testing.js +16 -16
  33. package/dist/types.d.ts +1 -1
  34. package/package.json +37 -39
  35. package/dist/async.js.map +0 -1
  36. package/dist/computed.js.map +0 -1
  37. package/dist/core.js.map +0 -1
  38. package/dist/devtools.js.map +0 -1
  39. package/dist/feature.js.map +0 -1
  40. package/dist/helpers.js.map +0 -1
  41. package/dist/index.js.map +0 -1
  42. package/dist/install.js.map +0 -1
  43. package/dist/persist.js.map +0 -1
  44. package/dist/react/index.js.map +0 -1
  45. package/dist/runtime-admin.js.map +0 -1
  46. package/dist/runtime-tools.js.map +0 -1
  47. package/dist/selectors.js.map +0 -1
  48. package/dist/server.js.map +0 -1
  49. package/dist/sync.js.map +0 -1
  50. package/dist/testing.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var ot=new Map;var ye=e=>ot.get(e),J=()=>Array.from(ot.keys());var it=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),at=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:it(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),he=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),it().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var Zt=new Map,v=(e,t,r=0)=>{!e||typeof t!="function"||Zt.set(e,{name:e,order:r,fn:t});};var Me=new Map,ct=new WeakSet,Ee=e=>{ct.has(e)||(ct.add(e),J().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=ye(t);r&&e.featureRuntimes.set(t,r());}}));},er=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,ut,Te=e=>(ut||er||e).replace(/\.ts(\?|$)/,".js$1"),Q=Te("stroid:default-registry");var tr=()=>{ut=void 0,Me.clear();};v("registry.scope-override",tr,110);var rr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),nr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},or=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,failed:false,error:void 0}),sr=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,transaction:or(),async:at(),notify:rr(),lifecycleListener:null};return Ee(t),t},Z=e=>{let t=Te(e),r=Me.get(t);if(r)return r;let n=sr();return Me.set(t,n),n},ee=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var lt=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.failed=false,e.transaction.error=void 0,nr(e.notify),he(e.async),e.lifecycleListener=null;};var Fe=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var z=[],ft={run:(e,t)=>{z.push(e);try{return t()}finally{z.pop();}},get:()=>z.length>0?z[z.length-1]:null,enterWith:e=>{if(z.length>0){z[z.length-1]=e;return}z.push(e);}};var L=e=>(ft).get()||e||Z(Q);var ar={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},gt={logSink:ar,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},Oe=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),je=new WeakMap,yt=Oe(gt),cr=e=>{let t=je.get(e);return t||(t=Oe(yt),je.set(e,t)),t};var j=()=>cr(L());var fr=()=>{je=new WeakMap,yt=Oe(gt);};v("config.reset",fr,90);var pr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,gr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,ht=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,yr="production",hr=pr??gr??yr,Se=typeof ht=="boolean"?ht:hr!=="production",M=()=>Se,St=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},Sr=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},mr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},De=(e,t)=>{if((j().logSink.critical??Sr)(e,t),j().assertRuntime)throw new Error(e)},f=(e,t)=>{if(!Se)return;if((j().logSink.warn??St)(e,t),j().assertRuntime)throw new Error(e)},te=(e,t)=>{if((j().logSink.warn??St)(e,t),j().assertRuntime)throw new Error(e)};var re=(e,t)=>{if(!Se)return;(j().logSink.log??mr)(e,t);};var mt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",bt=()=>"Map detected; converting to plain object.",wt=()=>"Set detected; converting to array.";var ne=new Set(["__proto__","constructor","prototype"]);var Rt=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,wr=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var fe=(e,t)=>{let r=wr(e);if(r)throw new Error(`${r} values are not supported`);let n=Rt(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return M()&&f(mt()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),M()&&f(bt());let o={};for(let[c,d]of e){if(typeof c!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(c)]=fe(d,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),M()&&f(wt()),Array.from(e,o=>fe(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},c=Object.getOwnPropertyDescriptors(e);for(let[d,g]of Object.entries(c))if(g.enumerable&&!ne.has(d)){if("get"in g||"set"in g)throw new Error(`Accessor properties are not supported during sanitize ("${d}")`);o[d]=fe(g.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>fe(o,t))}return e},Ve=e=>fe(e,new WeakSet);var Ne=null,Rr=()=>{if(Ne)return Ne;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return Ne=t,t},kt=e=>{let t=Rr(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},Cr=2166136261,kr=2654435761,xr=1e5,B=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},G=(e,t)=>{B(e,t.length);for(let r=0;r<t.length;r++)B(e,t.charCodeAt(r));},R=(e,t)=>{G(e,t);},Ct=(e,t)=>{if(Number.isNaN(t)){R(e,"NaN");return}if(!Number.isFinite(t)){R(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){R(e,"-0");return}let r=t|0;if(t===r){R(e,"int"),B(e,r);return}R(e,"num"),G(e,String(t));},oe=(e,t)=>{if(e.nodes++>xr){R(e,"[max]");return}if(t===null){R(e,"null");return}let r=typeof t;if(r==="string"){R(e,"string"),G(e,t);return}if(r==="number"){R(e,"number"),Ct(e,t);return}if(r==="boolean"){R(e,t?"true":"false");return}if(r==="undefined"){R(e,"undefined");return}if(r==="bigint"){R(e,"bigint"),G(e,t.toString());return}if(r==="symbol"){R(e,"symbol");let u=t;G(e,Symbol.keyFor(u)??u.description??String(u));return}if(r==="function"){R(e,"function"),G(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){R(e,"ref"),B(e,o);return}let c=e.nextId++;if(e.seen.set(n,c),Array.isArray(n)){R(e,"array"),B(e,n.length);for(let u=0;u<n.length;u++)Object.prototype.hasOwnProperty.call(n,u)?oe(e,n[u]):R(e,"hole");return}if(n instanceof Date){R(e,"date"),Ct(e,n.getTime());return}if(n instanceof Map){R(e,"map"),B(e,n.size),n.forEach((u,m)=>{oe(e,m),oe(e,u);});return}if(n instanceof Set){R(e,"set"),B(e,n.size),n.forEach(u=>{oe(e,u);});return}R(e,"object");let d=Object.getOwnPropertyDescriptors(n),g=[];Object.entries(d).forEach(([u,m])=>{m?.enumerable&&(ne.has(u)||"get"in m||"set"in m||g.push([u,m]));}),B(e,g.length);for(let[u,m]of g)G(e,u),oe(e,m.value);},Ie=e=>{if(typeof e=="string")return kt(JSON.stringify(e));let t={h1:Cr,h2:kr,seen:new WeakMap,nextId:1,nodes:0};oe(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var vr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",_e=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Mr=e=>_e(e)===null,Er=e=>{let t=_e(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},Y=(e,t=new WeakMap)=>{if(Er(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((c,d)=>{o.set(Y(d,t),Y(c,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(c=>{o.add(Y(c,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((c,d)=>{o[d]=Y(c,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,c])=>{!c.enumerable||ne.has(o)||"get"in c||"set"in c||(r[o]=Y(c.value,t));}),r},K=e=>{if(vr)try{return structuredClone(e)}catch(t){if(!Mr(e)){let r=_e(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return f(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),Y(e)}return Y(e)};var xt=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(c){let d=`${t} for "${e}" failed: ${c?.message??c}`;o(d,"always");}};var Tr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;te(`${t} callback threw: ${String(o)}`);}},me=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Tr(o,"onError",e),r==="critical"){n==="dev"&&f(e),De(e);return}if(n==="always"){te(e);return}f(e);};v("computed.order-resolver",()=>{},105);var Et=()=>L(Z(Q)),$e=()=>Et().computedEntries,Tt=()=>Et().computedDependents;var Ft=e=>Object.prototype.hasOwnProperty.call($e(),e);var We=e=>{let t=$e()[e];if(!t)return null;let r=Tt()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var At=new WeakMap,jt=new WeakMap;var we=e=>{let t=At.get(e);return t||(t=new Map,At.set(e,t)),t},Ot=e=>{let t=jt.get(e);return t||(t=new Map,jt.set(e,t)),t};new Proxy(new Map,{get:(e,t)=>{let r=we(V());if(t==="size")return r.size;if(t===Symbol.iterator)return r[Symbol.iterator].bind(r);let n=r[t];return typeof n=="function"?n.bind(r):n},set:(e,t,r)=>(we(V())[t]=r,true)});var Re=()=>{let e=V();we(e).clear(),Ot(e).clear();};v("validation.path-cache",Re,50);var Wt=new Map;var ge=(e,t,r)=>{let n=Wt.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(c){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,c);}});};var Or=()=>{};v("write-context.runner",Or,121);var Nr=()=>{let e=V().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};v("notify.reset",Nr,40);var Ir=()=>V().computedCleanups,Lt=new WeakMap;var Pr=e=>{let t=Lt.get(e);return t||(t=new Map,Lt.set(e,t)),t};var Bt=e=>{let t=Ir(),r=t.get(e);if(!r){M()&&f(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var Kt=(e,t=V())=>Pr(t).get(e)?.autoDispose===true;var qt=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,c=e.metaEntries,d=e.snapshotCache,g=e.featureRuntimes,u=e.deletingStores,m=(i,b)=>{me(b,{onError:c[i]?.options?.onError,severity:"warn",visibility:"dev"});},y=({name:i,prev:b,options:S,initialState:E,getMeta:I,getStoreValue:_,hasStore:F})=>({name:i,options:S,prev:b,getMeta:I,getStoreValue:_,getAllStores:()=>t,getInitialState:()=>E,hasStore:F,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:k=>{me(k,{onError:S.onError,severity:"warn",visibility:"dev"});},warn:f,warnAlways:te,log:re,hashState:Ie,deepClone:K,sanitize:Ve,validate:()=>({ok:true,value:b}),isDev:M}),C=({name:i,prev:b,options:S,initialState:E,phase:I})=>{let _=y({name:i,prev:b,options:S,initialState:E,getMeta:()=>c[i],getStoreValue:()=>t[i],hasStore:()=>ee(e,i)}),F=y({name:i,prev:b,options:S,initialState:E,getMeta:()=>{},getStoreValue:()=>b,hasStore:()=>false});J().forEach(k=>{let A=g.get(k);I==="before"?A?.beforeStoreDelete?.(_):A?.afterStoreDelete?.(F);});},l=i=>{if(!ee(e,i))return;let b=t[i],S=c[i].options,E=n[i],I=r[i];u.add(i);try{I?.forEach(k=>{try{k(null);}catch(A){f(`Subscriber for "${i}" threw during delete: ${A?.message??A}`);}}),xt({name:i,label:"onDelete",fn:S.onDelete,args:[b],reportIssue:(k,A)=>{me(k,{onError:S.onError,severity:"warn",visibility:A});}}),C({name:i,prev:b,options:S,initialState:E,phase:"before"}),delete t[i],delete r[i],delete n[i],delete o[i],delete c[i],delete d[i],Ft(i)&&Bt(i);let F=e.computedDependents[i];if(F)for(let k of [...F]){let A=We(k);if(A&&Kt(k,e)&&A.deps.every(ae=>!ee(e,ae))){l(k);continue}f(`[stroid] source store "${i}" was deleted. Computed store "${k}" depends on it and will return stale data. Call deleteComputed("${k}") to clean up.`);}C({name:i,prev:b,options:S,initialState:E,phase:"after"}),ge("afterStoreDelete",i,{type:"afterStoreDelete",prev:b}),Fe(e,{type:"deleted",name:i}),re(`Store "${i}" deleted`);}finally{u.delete(i);}};return {deleteExistingStore:l,clearAllStores:()=>{let i=[],S=0,E=Number.POSITIVE_INFINITY;for(;S<20;){let _=Object.keys(t);if(_.length===0)break;_.forEach(k=>{ee(e,k)&&(l(k),i.push(k));}),S+=1;let F=Object.keys(t).length;if(F===0||F>=E)break;E=F;}let I=Object.keys(t).length;return I>0?f(`clearAllStores stopped after ${S} pass${S===1?"":"es"}; ${I} store(s) still registered (likely recreated during deletion).`):re(`All stores cleared (${i.length} stores removed)`),i},clearStores:i=>{let b=Object.keys(t).filter(S=>i?i.endsWith("*")?S.startsWith(i.slice(0,-1)):S===i:true);return b.forEach(S=>l(S)),b},reportStoreError:m}};var Je=Q,Gt=Z(Je),N=()=>{let e=L(Gt);return Ee(e),e};var V=()=>N();var ie=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),$r=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),Wr=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ie(()=>N().stores);ie(()=>N().subscribers);ie(()=>N().initialStates);ie(()=>N().initialFactories);ie(()=>N().metaEntries);ie(()=>N().snapshotCache);var se=$r(()=>N().featureRuntimes),Ut=new WeakMap,Yt=e=>{let t=Ut.get(e);return t||(t=qt(e),Ut.set(e,t)),t};Wr(()=>Yt(N()));var Qe=()=>Yt(N()),zr=e=>{let t=se.get(e);if(t)return t;let r=ye(e);if(!r)return;let n=r();return se.set(e,n),n},Hr=()=>{J().forEach(e=>{zr(e);});};Hr();var Lr=()=>{lt(N());},Br=()=>{se.forEach(e=>{try{e.resetAll?.();}catch{}}),se.clear();};v("features.reset",Br,10);v("registries.clear",Lr,20);v("registry.default",()=>{Je=Q,Gt=Z(Je);},115);var Xt=()=>L().async;var Jt=()=>{he(Xt());};var hs=()=>{Qe().clearAllStores(),Jt(),Re();},Ss=e=>{Qe().clearStores(e),Re();};export{hs as clearAllStores,Ss as clearStores};//# sourceMappingURL=runtime-admin.js.map
1
+ var ot=new Map;var ye=e=>ot.get(e),J=()=>Array.from(ot.keys());var it=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),at=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:it(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),he=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),it().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var Zt=new Map,x=(e,t,r=0)=>{!e||typeof t!="function"||Zt.set(e,{name:e,order:r,fn:t});};var Me=new Map,ct=new WeakSet,Ee=e=>{ct.has(e)||(ct.add(e),J().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=ye(t);r&&e.featureRuntimes.set(t,r());}}));},er=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,ut,Te=e=>(ut||er||e).replace(/\.ts(\?|$)/,".js$1"),Q=Te("stroid:default-registry");var tr=()=>{ut=void 0,Me.clear();};x("registry.scope-override",tr,110);var rr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],subscriberBuffer:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),nr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.subscriberBuffer.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},or=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,runtimePatches:[],failed:false,error:void 0}),sr=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,lastRuntimePatches:[],transaction:or(),async:at(),notify:rr(),lifecycleListener:null};return Ee(t),t},Z=e=>{let t=Te(e),r=Me.get(t);if(r)return r;let n=sr();return Me.set(t,n),n},ee=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var lt=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.runtimePatches.length=0,e.transaction.failed=false,e.transaction.error=void 0,e.lastRuntimePatches.length=0,nr(e.notify),he(e.async),e.lifecycleListener=null;};var Fe=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var z=[],pt={run:(e,t)=>{z.push(e);try{return t()}finally{z.pop();}},get:()=>z.length>0?z[z.length-1]:null,enterWith:e=>{if(z.length>0){z[z.length-1]=e;return}z.push(e);}};var L=e=>(pt).get()||e||Z(Q);var ar={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},gt={logSink:ar,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},Oe=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),je=new WeakMap,yt=Oe(gt),cr=e=>{let t=je.get(e);return t||(t=Oe(yt),je.set(e,t)),t};var j=()=>cr(L());var pr=()=>{je=new WeakMap,yt=Oe(gt);};x("config.reset",pr,90);var fr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,gr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,ht=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,yr="production",hr=fr??gr??yr,me=typeof ht=="boolean"?ht:hr!=="production",M=()=>me,mt=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},mr=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},Sr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},De=(e,t)=>{if((j().logSink.critical??mr)(e,t),j().assertRuntime)throw new Error(e)},p=(e,t)=>{if(!me)return;if((j().logSink.warn??mt)(e,t),j().assertRuntime)throw new Error(e)},te=(e,t)=>{if((j().logSink.warn??mt)(e,t),j().assertRuntime)throw new Error(e)};var re=(e,t)=>{if(!me)return;(j().logSink.log??Sr)(e,t);};var St=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",bt=()=>"Map detected; converting to plain object.",Rt=()=>"Set detected; converting to array.";var ne=new Set(["__proto__","constructor","prototype"]);var wt=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,Rr=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var pe=(e,t)=>{let r=Rr(e);if(r)throw new Error(`${r} values are not supported`);let n=wt(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return M()&&p(St()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),M()&&p(bt());let o={};for(let[c,d]of e){if(typeof c!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(c)]=pe(d,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),M()&&p(Rt()),Array.from(e,o=>pe(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},c=Object.getOwnPropertyDescriptors(e);for(let[d,g]of Object.entries(c))if(g.enumerable&&!ne.has(d)){if("get"in g||"set"in g)throw new Error(`Accessor properties are not supported during sanitize ("${d}")`);o[d]=pe(g.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>pe(o,t))}return e},Ne=e=>pe(e,new WeakSet);var Ve=null,wr=()=>{if(Ve)return Ve;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return Ve=t,t},kt=e=>{let t=wr(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},Cr=2166136261,kr=2654435761,vr=1e5,B=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},G=(e,t)=>{B(e,t.length);for(let r=0;r<t.length;r++)B(e,t.charCodeAt(r));},w=(e,t)=>{G(e,t);},Ct=(e,t)=>{if(Number.isNaN(t)){w(e,"NaN");return}if(!Number.isFinite(t)){w(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){w(e,"-0");return}let r=t|0;if(t===r){w(e,"int"),B(e,r);return}w(e,"num"),G(e,String(t));},oe=(e,t)=>{if(e.nodes++>vr){w(e,"[max]");return}if(t===null){w(e,"null");return}let r=typeof t;if(r==="string"){w(e,"string"),G(e,t);return}if(r==="number"){w(e,"number"),Ct(e,t);return}if(r==="boolean"){w(e,t?"true":"false");return}if(r==="undefined"){w(e,"undefined");return}if(r==="bigint"){w(e,"bigint"),G(e,t.toString());return}if(r==="symbol"){w(e,"symbol");let u=t;G(e,Symbol.keyFor(u)??u.description??String(u));return}if(r==="function"){w(e,"function"),G(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){w(e,"ref"),B(e,o);return}let c=e.nextId++;if(e.seen.set(n,c),Array.isArray(n)){w(e,"array"),B(e,n.length);for(let u=0;u<n.length;u++)Object.prototype.hasOwnProperty.call(n,u)?oe(e,n[u]):w(e,"hole");return}if(n instanceof Date){w(e,"date"),Ct(e,n.getTime());return}if(n instanceof Map){w(e,"map"),B(e,n.size),n.forEach((u,S)=>{oe(e,S),oe(e,u);});return}if(n instanceof Set){w(e,"set"),B(e,n.size),n.forEach(u=>{oe(e,u);});return}w(e,"object");let d=Object.getOwnPropertyDescriptors(n),g=[];Object.entries(d).forEach(([u,S])=>{S?.enumerable&&(ne.has(u)||"get"in S||"set"in S||g.push([u,S]));}),B(e,g.length);for(let[u,S]of g)G(e,u),oe(e,S.value);},Pe=e=>{if(typeof e=="string")return kt(JSON.stringify(e));let t={h1:Cr,h2:kr,seen:new WeakMap,nextId:1,nodes:0};oe(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var xr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",$e=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Mr=e=>$e(e)===null,Er=e=>{let t=$e(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},Y=(e,t=new WeakMap)=>{if(Er(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((c,d)=>{o.set(Y(d,t),Y(c,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(c=>{o.add(Y(c,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((c,d)=>{o[d]=Y(c,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,c])=>{!c.enumerable||ne.has(o)||"get"in c||"set"in c||(r[o]=Y(c.value,t));}),r},q=e=>{if(xr)try{return structuredClone(e)}catch(t){if(!Mr(e)){let r=$e(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return p(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),Y(e)}return Y(e)};var vt=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(c){let d=`${t} for "${e}" failed: ${c?.message??c}`;o(d,"always");}};var Tr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;te(`${t} callback threw: ${String(o)}`);}},Se=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Tr(o,"onError",e),r==="critical"){n==="dev"&&p(e),De(e);return}if(n==="always"){te(e);return}p(e);};x("computed.order-resolver",()=>{},105);var Et=()=>L(Z(Q));var _e=()=>Et().computedEntries,Tt=()=>Et().computedDependents;var Ft=e=>Object.prototype.hasOwnProperty.call(_e(),e);var We=e=>{let t=_e()[e];if(!t)return null;let r=Tt()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var At=new WeakMap,jt=new WeakMap;var Re=e=>{let t=At.get(e);return t||(t=new Map,At.set(e,t)),t},Ot=e=>{let t=jt.get(e);return t||(t=new Map,jt.set(e,t)),t};new Proxy(new Map,{get:(e,t)=>{let r=Re(N());if(t==="size")return r.size;if(t===Symbol.iterator)return r[Symbol.iterator].bind(r);let n=r[t];return typeof n=="function"?n.bind(r):n},set:(e,t,r)=>(Re(N())[t]=r,true)});var we=()=>{let e=N();Re(e).clear(),Ot(e).clear();};x("validation.path-cache",we,50);var Wt=new Map;var ge=(e,t,r)=>{let n=Wt.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(c){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,c);}});};var Or=()=>{};x("write-context.runner",Or,121);var Vr=()=>{let e=N().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};x("notify.reset",Vr,40);var Pr=()=>N().computedCleanups,Lt=new WeakMap;var Ir=e=>{let t=Lt.get(e);return t||(t=new Map,Lt.set(e,t)),t};var Bt=e=>{let t=Pr(),r=t.get(e);if(!r){M()&&p(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var qt=(e,t=N())=>Ir(t).get(e)?.autoDispose===true;var Kt=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,c=e.metaEntries,d=e.snapshotCache,g=e.featureRuntimes,u=e.deletingStores,S=(i,b)=>{Se(b,{onError:c[i]?.options?.onError,severity:"warn",visibility:"dev"});},y=({name:i,prev:b,options:m,initialState:E,getMeta:P,getStoreValue:$,hasStore:F})=>({name:i,options:m,prev:b,getMeta:P,getStoreValue:$,getAllStores:()=>t,getInitialState:()=>E,hasStore:F,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:k=>{Se(k,{onError:m.onError,severity:"warn",visibility:"dev"});},warn:p,warnAlways:te,log:re,hashState:Pe,deepClone:q,sanitize:Ne,validate:()=>({ok:true,value:b}),isDev:M}),C=({name:i,prev:b,options:m,initialState:E,phase:P})=>{let $=y({name:i,prev:b,options:m,initialState:E,getMeta:()=>c[i],getStoreValue:()=>t[i],hasStore:()=>ee(e,i)}),F=y({name:i,prev:b,options:m,initialState:E,getMeta:()=>{},getStoreValue:()=>b,hasStore:()=>false});J().forEach(k=>{let A=g.get(k);P==="before"?A?.beforeStoreDelete?.($):A?.afterStoreDelete?.(F);});},l=i=>{if(!ee(e,i))return;let b=t[i],m=c[i].options,E=n[i],P=r[i];u.add(i);try{P?.forEach(k=>{try{k(null);}catch(A){p(`Subscriber for "${i}" threw during delete: ${A?.message??A}`);}}),vt({name:i,label:"onDelete",fn:m.onDelete,args:[b],reportIssue:(k,A)=>{Se(k,{onError:m.onError,severity:"warn",visibility:A});}}),C({name:i,prev:b,options:m,initialState:E,phase:"before"}),delete t[i],delete r[i],delete n[i],delete o[i],delete c[i],delete d[i],Ft(i)&&Bt(i);let F=e.computedDependents[i];if(F)for(let k of [...F]){let A=We(k);if(A&&qt(k,e)&&A.deps.every(ae=>!ee(e,ae))){l(k);continue}p(`[stroid] source store "${i}" was deleted. Computed store "${k}" depends on it and will return stale data. Call deleteComputed("${k}") to clean up.`);}C({name:i,prev:b,options:m,initialState:E,phase:"after"}),ge("afterStoreDelete",i,{type:"afterStoreDelete",prev:b}),Fe(e,{type:"deleted",name:i}),re(`Store "${i}" deleted`);}finally{u.delete(i);}};return {deleteExistingStore:l,clearAllStores:()=>{let i=[],m=0,E=Number.POSITIVE_INFINITY;for(;m<20;){let $=Object.keys(t);if($.length===0)break;$.forEach(k=>{ee(e,k)&&(l(k),i.push(k));}),m+=1;let F=Object.keys(t).length;if(F===0||F>=E)break;E=F;}let P=Object.keys(t).length;return P>0?p(`clearAllStores stopped after ${m} pass${m===1?"":"es"}; ${P} store(s) still registered (likely recreated during deletion).`):re(`All stores cleared (${i.length} stores removed)`),i},clearStores:i=>{let b=Object.keys(t).filter(m=>i?i.endsWith("*")?m.startsWith(i.slice(0,-1)):m===i:true);return b.forEach(m=>l(m)),b},reportStoreError:S}};var Je=Q,Gt=Z(Je),V=()=>{let e=L(Gt);return Ee(e),e};var N=()=>V();var ie=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),_r=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),Wr=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ie(()=>V().stores);ie(()=>V().subscribers);ie(()=>V().initialStates);ie(()=>V().initialFactories);ie(()=>V().metaEntries);ie(()=>V().snapshotCache);var se=_r(()=>V().featureRuntimes),Ut=new WeakMap,Yt=e=>{let t=Ut.get(e);return t||(t=Kt(e),Ut.set(e,t)),t};Wr(()=>Yt(V()));var Qe=()=>Yt(V()),zr=e=>{let t=se.get(e);if(t)return t;let r=ye(e);if(!r)return;let n=r();return se.set(e,n),n},Hr=()=>{J().forEach(e=>{zr(e);});};Hr();var Lr=()=>{lt(V());},Br=()=>{se.forEach(e=>{try{e.resetAll?.();}catch{}}),se.clear();};x("features.reset",Br,10);x("registries.clear",Lr,20);x("registry.default",()=>{Je=Q,Gt=Z(Je);},115);var Xt=()=>L().async;var Jt=()=>{he(Xt());};var Rs=()=>{Qe().clearAllStores(),Jt(),we();},ws=e=>{Qe().clearStores(e),we();};export{Rs as clearAllStores,ws as clearStores};//# sourceMappingURL=runtime-admin.js.map
2
2
  //# sourceMappingURL=runtime-admin.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module runtime-patch
3
+ *
4
+ * LAYER: Store runtime
5
+ * OWNS: Canonical serializable patch model and write-lowering helpers.
6
+ *
7
+ * Consumers: store-set-impl, store-replace-impl, store-admin-impl, store-hydrate-impl.
8
+ */
9
+
10
+ type RuntimePatchOp = "set" | "merge" | "delete" | "insert";
11
+ type RuntimePatchSource = "setStore" | "replaceStore" | "resetStore" | "hydrateStores";
12
+ type RuntimePatchPath = readonly (string | number)[];
13
+ interface RuntimePatchMeta {
14
+ timestamp: number;
15
+ source: RuntimePatchSource;
16
+ causedBy?: readonly string[];
17
+ isUnsafe?: boolean;
18
+ asyncBoundary?: boolean;
19
+ }
20
+ interface RuntimePatch {
21
+ id: string;
22
+ store: string;
23
+ path: RuntimePatchPath;
24
+ op: RuntimePatchOp;
25
+ value?: unknown;
26
+ meta: RuntimePatchMeta;
27
+ }
28
+
29
+ export type { RuntimePatch as R, RuntimePatchMeta as a, RuntimePatchOp as b };
@@ -1,5 +1,7 @@
1
1
  import { StoreFeatureMeta } from './feature.js';
2
2
  import { getAsyncMetrics } from './async.js';
3
+ import { RuntimeNodeId, ComputedDescriptor, RuntimeGraph } from './computed-types.js';
4
+ export { ComputedClassification, RuntimeEdgeType, RuntimeGraphEdge, RuntimeGraphGranularity, RuntimeGraphNode, RuntimeNodeType } from './computed-types.js';
3
5
  import './options.js';
4
6
  import './utility.js';
5
7
  import './cache.js';
@@ -58,9 +60,12 @@ declare const getComputedGraph: () => {
58
60
  dependencies: Record<string, string[]>;
59
61
  dependents: Record<string, string[]>;
60
62
  };
63
+ declare const getRuntimeGraph: () => RuntimeGraph;
61
64
  declare const getComputedDeps: (name: string) => {
62
65
  deps: string[];
63
66
  dependents: string[];
64
67
  } | null;
68
+ declare const getComputedDescriptor: (nodeId: RuntimeNodeId) => ComputedDescriptor | null;
69
+ declare const evaluateComputed: (nodeId: RuntimeNodeId, snapshot: Record<string, unknown>) => unknown;
65
70
 
66
- export { type ColdStoreReport, type StoreHealthEntry, type StoreHealthReport, findColdStores, getAsyncInflightCount, getComputedDeps, getComputedGraph, getInitialState, getMetrics, getPersistQueueDepth, getStoreHealth, getStoreMeta, getSubscriberCount, listStores };
71
+ export { type ColdStoreReport, ComputedDescriptor, RuntimeGraph, RuntimeNodeId, type StoreHealthEntry, type StoreHealthReport, evaluateComputed, findColdStores, getAsyncInflightCount, getComputedDeps, getComputedDescriptor, getComputedGraph, getInitialState, getMetrics, getPersistQueueDepth, getRuntimeGraph, getStoreHealth, getStoreMeta, getSubscriberCount, listStores };
@@ -1,4 +1,4 @@
1
- var er=new Map,k=(e,t,r=0)=>{!e||typeof t!="function"||er.set(e,{name:e,order:r,fn:t});};var ut=new Map;var we=e=>ut.get(e),te=()=>Array.from(ut.keys());var dt=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),ft=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:dt(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),pt=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),dt().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var Te=new Map,gt=new WeakSet,Ae=e=>{gt.has(e)||(gt.add(e),te().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=we(t);r&&e.featureRuntimes.set(t,r());}}));},rr=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,yt,De=e=>(yt||rr||e).replace(/\.ts(\?|$)/,".js$1"),q=De("stroid:default-registry");var nr=()=>{yt=void 0,Te.clear();};k("registry.scope-override",nr,110);var or=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),sr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},ir=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,failed:false,error:void 0}),ar=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,transaction:ir(),async:ft(),notify:or(),lifecycleListener:null};return Ae(t),t},K=e=>{let t=De(e),r=Te.get(t);if(r)return r;let n=ar();return Te.set(t,n),n},U=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var mt=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.failed=false,e.transaction.error=void 0,sr(e.notify),pt(e.async),e.lifecycleListener=null;};var Oe=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var L=[],St={run:(e,t)=>{L.push(e);try{return t()}finally{L.pop();}},get:()=>L.length>0?L[L.length-1]:null,enterWith:e=>{if(L.length>0){L[L.length-1]=e;return}L.push(e);}};var _=e=>(St).get()||e||K(q);var ur={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},wt={logSink:ur,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},Ie=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),Ne=new WeakMap,Rt=Ie(wt),lr=e=>{let t=Ne.get(e);return t||(t=Ie(Rt),Ne.set(e,t)),t};var T=()=>lr(_());var gr=()=>{Ne=new WeakMap,Rt=Ie(wt);};k("config.reset",gr,90);var yr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,mr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,Ct=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,hr="production",Sr=yr??mr??hr,ge=typeof Ct=="boolean"?Ct:Sr!=="production",M=()=>ge,$e=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},br=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},wr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},Re=(e,t)=>{if((T().logSink.critical??br)(e,t),T().assertRuntime)throw new Error(e)},f=(e,t)=>{if(!ge)return;if((T().logSink.warn??$e)(e,t),T().assertRuntime)throw new Error(e)},re=(e,t)=>{if((T().logSink.warn??$e)(e,t),T().assertRuntime)throw new Error(e)},_e=(e,t)=>{if(ge&&(T().logSink.warn??$e)(e,t),Re(e,t),T().assertRuntime)throw new Error(e)},ne=(e,t)=>{if(!ge)return;(T().logSink.log??wr)(e,t);};var xt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",vt=()=>"Map detected; converting to plain object.",kt=()=>"Set detected; converting to array.";var Rr=128,Cr=(e,t)=>Math.abs(e.length-t.length)>2?false:Math.max(e.length,t.length)<=Rr,xr=(e,t)=>{if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;let r=Array.from({length:e.length+1},(o,s)=>s),n=new Array(e.length+1);for(let o=1;o<=t.length;o++){n[0]=o;for(let s=1;s<=e.length;s++)n[s]=t[o-1]===e[s-1]?r[s-1]:Math.min(r[s-1],n[s-1],r[s])+1;[r,n]=[n,r];}return r[e.length]},Pe=(e,t)=>{let r=t.find(n=>{let o=n.toLowerCase(),s=e.toLowerCase();return o.includes(s)||s.includes(o)||Cr(o,s)&&xr(o,s)<=2});if(r){f(`Store "${e}" not found. Did you mean "${r}"?`);return}_e(`Store "${e}" not found.
1
+ var dr=new Map,k=(e,t,r=0)=>{!e||typeof t!="function"||dr.set(e,{name:e,order:r,fn:t});};var ft=new Map;var we=e=>ft.get(e),re=()=>Array.from(ft.keys());var yt=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),mt=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:yt(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),ht=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),yt().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var Fe=new Map,St=new WeakSet,Ae=e=>{St.has(e)||(St.add(e),re().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=we(t);r&&e.featureRuntimes.set(t,r());}}));},fr=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,bt,De=e=>(bt||fr||e).replace(/\.ts(\?|$)/,".js$1"),G=De("stroid:default-registry");var gr=()=>{bt=void 0,Fe.clear();};k("registry.scope-override",gr,110);var yr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],subscriberBuffer:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),mr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.subscriberBuffer.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},hr=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,runtimePatches:[],failed:false,error:void 0}),Sr=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,lastRuntimePatches:[],transaction:hr(),async:mt(),notify:yr(),lifecycleListener:null};return Ae(t),t},K=e=>{let t=De(e),r=Fe.get(t);if(r)return r;let n=Sr();return Fe.set(t,n),n},U=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var Rt=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.runtimePatches.length=0,e.transaction.failed=false,e.transaction.error=void 0,e.lastRuntimePatches.length=0,mr(e.notify),ht(e.async),e.lifecycleListener=null;};var Oe=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var B=[],Ct={run:(e,t)=>{B.push(e);try{return t()}finally{B.pop();}},get:()=>B.length>0?B[B.length-1]:null,enterWith:e=>{if(B.length>0){B[B.length-1]=e;return}B.push(e);}};var _=e=>(Ct).get()||e||K(G);var Rr={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},vt={logSink:Rr,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},Ie=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),je=new WeakMap,kt=Ie(vt),wr=e=>{let t=je.get(e);return t||(t=Ie(kt),je.set(e,t)),t};var F=()=>wr(_());var kr=()=>{je=new WeakMap,kt=Ie(vt);};k("config.reset",kr,90);var Mr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,Er=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,Mt=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,Tr="production",Fr=Mr??Er??Tr,ye=typeof Mt=="boolean"?Mt:Fr!=="production",M=()=>ye,Pe=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},Ar=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},Dr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},Ce=(e,t)=>{if((F().logSink.critical??Ar)(e,t),F().assertRuntime)throw new Error(e)},g=(e,t)=>{if(!ye)return;if((F().logSink.warn??Pe)(e,t),F().assertRuntime)throw new Error(e)},ne=(e,t)=>{if((F().logSink.warn??Pe)(e,t),F().assertRuntime)throw new Error(e)},$e=(e,t)=>{if(ye&&(F().logSink.warn??Pe)(e,t),Ce(e,t),F().assertRuntime)throw new Error(e)},oe=(e,t)=>{if(!ye)return;(F().logSink.log??Dr)(e,t);};var Et=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",Tt=()=>"Map detected; converting to plain object.",Ft=()=>"Set detected; converting to array.";var Or=128,Nr=(e,t)=>Math.abs(e.length-t.length)>2?false:Math.max(e.length,t.length)<=Or,jr=(e,t)=>{if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;let r=Array.from({length:e.length+1},(o,s)=>s),n=new Array(e.length+1);for(let o=1;o<=t.length;o++){n[0]=o;for(let s=1;s<=e.length;s++)n[s]=t[o-1]===e[s-1]?r[s-1]:Math.min(r[s-1],n[s-1],r[s])+1;[r,n]=[n,r];}return r[e.length]},_e=(e,t)=>{let r=t.find(n=>{let o=n.toLowerCase(),s=e.toLowerCase();return o.includes(s)||s.includes(o)||Nr(o,s)&&jr(o,s)<=2});if(r){g(`Store "${e}" not found. Did you mean "${r}"?`);return}$e(`Store "${e}" not found.
2
2
  Available stores: [${t.join(", ")}]
3
- Call createStore("${e}", data) first.`);};var oe=new Set(["__proto__","constructor","prototype"]);var Mt=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,vr=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var ye=(e,t)=>{let r=vr(e);if(r)throw new Error(`${r} values are not supported`);let n=Mt(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return M()&&f(xt()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),M()&&f(vt());let o={};for(let[s,l]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(s)]=ye(l,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),M()&&f(kt()),Array.from(e,o=>ye(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},s=Object.getOwnPropertyDescriptors(e);for(let[l,p]of Object.entries(s))if(p.enumerable&&!oe.has(l)){if("get"in p||"set"in p)throw new Error(`Accessor properties are not supported during sanitize ("${l}")`);o[l]=ye(p.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>ye(o,t))}return e},Ve=e=>ye(e,new WeakSet);var We=null,kr=()=>{if(We)return We;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return We=t,t},Et=e=>{let t=kr(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},Mr=2166136261,Fr=2654435761,Er=1e5,G=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},J=(e,t)=>{G(e,t.length);for(let r=0;r<t.length;r++)G(e,t.charCodeAt(r));},R=(e,t)=>{J(e,t);},Ft=(e,t)=>{if(Number.isNaN(t)){R(e,"NaN");return}if(!Number.isFinite(t)){R(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){R(e,"-0");return}let r=t|0;if(t===r){R(e,"int"),G(e,r);return}R(e,"num"),J(e,String(t));},se=(e,t)=>{if(e.nodes++>Er){R(e,"[max]");return}if(t===null){R(e,"null");return}let r=typeof t;if(r==="string"){R(e,"string"),J(e,t);return}if(r==="number"){R(e,"number"),Ft(e,t);return}if(r==="boolean"){R(e,t?"true":"false");return}if(r==="undefined"){R(e,"undefined");return}if(r==="bigint"){R(e,"bigint"),J(e,t.toString());return}if(r==="symbol"){R(e,"symbol");let u=t;J(e,Symbol.keyFor(u)??u.description??String(u));return}if(r==="function"){R(e,"function"),J(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){R(e,"ref"),G(e,o);return}let s=e.nextId++;if(e.seen.set(n,s),Array.isArray(n)){R(e,"array"),G(e,n.length);for(let u=0;u<n.length;u++)Object.prototype.hasOwnProperty.call(n,u)?se(e,n[u]):R(e,"hole");return}if(n instanceof Date){R(e,"date"),Ft(e,n.getTime());return}if(n instanceof Map){R(e,"map"),G(e,n.size),n.forEach((u,S)=>{se(e,S),se(e,u);});return}if(n instanceof Set){R(e,"set"),G(e,n.size),n.forEach(u=>{se(e,u);});return}R(e,"object");let l=Object.getOwnPropertyDescriptors(n),p=[];Object.entries(l).forEach(([u,S])=>{S?.enumerable&&(oe.has(u)||"get"in S||"set"in S||p.push([u,S]));}),G(e,p.length);for(let[u,S]of p)J(e,u),se(e,S.value);},He=e=>{if(typeof e=="string")return Et(JSON.stringify(e));let t={h1:Mr,h2:Fr,seen:new WeakMap,nextId:1,nodes:0};se(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var Tr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",N=e=>{if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.slice();let t={},r=Object.getOwnPropertyDescriptors(e);return Object.entries(r).forEach(([n,o])=>{o.enumerable&&(oe.has(n)||"get"in o||"set"in o||(t[n]=o.value));}),t},ze=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Ar=e=>ze(e)===null,Dr=e=>{let t=ze(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},Z=(e,t=new WeakMap)=>{if(Dr(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((s,l)=>{o.set(Z(l,t),Z(s,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(s=>{o.add(Z(s,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((s,l)=>{o[l]=Z(s,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,s])=>{!s.enumerable||oe.has(o)||"get"in s||"set"in s||(r[o]=Z(s.value,t));}),r},P=e=>{if(Tr)try{return structuredClone(e)}catch(t){if(!Ar(e)){let r=ze(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return f(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),Z(e)}return Z(e)};var Tt=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(s){let l=`${t} for "${e}" failed: ${s?.message??s}`;o(l,"always");}};var Or=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;re(`${t} callback threw: ${String(o)}`);}},Ce=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Or(o,"onError",e),r==="critical"){n==="dev"&&f(e),Re(e);return}if(n==="always"){re(e);return}f(e);};k("computed.order-resolver",()=>{},105);var Ot=()=>_(K(q)),ve=()=>Ot().computedEntries,Le=()=>Ot().computedDependents;var jt=e=>Object.prototype.hasOwnProperty.call(ve(),e);var Be=()=>{let e=ve(),t=Le(),r=Object.keys(e),n=[];for(let[o,s]of Object.entries(e))for(let l of s.deps)n.push({from:l,to:o});return {nodes:r,edges:n,dependencies:Object.fromEntries(Object.entries(e).map(([o,s])=>[o,[...s.deps]])),dependents:Object.fromEntries(Object.entries(t).map(([o,s])=>[o,[...s]]))}},me=e=>{let t=ve()[e];if(!t)return null;let r=Le()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var Nr=new Set;var Ir=()=>{Nr.clear();};k("ssr.warnings",Ir,60);var Nt=e=>Y.get(e)?.api;var Ht=new Map;var Se=(e,t,r)=>{let n=Ht.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var Vr=()=>{};k("write-context.runner",Vr,121);var zr=()=>{let e=ie().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};k("notify.reset",zr,40);var Lr=()=>ie().computedCleanups,Bt=new WeakMap;var Br=e=>{let t=Bt.get(e);return t||(t=new Map,Bt.set(e,t)),t};var qt=e=>{let t=Lr(),r=t.get(e);if(!r){M()&&f(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var Kt=(e,t=ie())=>Br(t).get(e)?.autoDispose===true;var Ut=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,s=e.metaEntries,l=e.snapshotCache,p=e.featureRuntimes,u=e.deletingStores,S=(a,b)=>{Ce(b,{onError:s[a]?.options?.onError,severity:"warn",visibility:"dev"});},y=({name:a,prev:b,options:h,initialState:F,getMeta:I,getStoreValue:W,hasStore:A})=>({name:a,options:h,prev:b,getMeta:I,getStoreValue:W,getAllStores:()=>t,getInitialState:()=>F,hasStore:A,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:x=>{Ce(x,{onError:h.onError,severity:"warn",visibility:"dev"});},warn:f,warnAlways:re,log:ne,hashState:He,deepClone:P,sanitize:Ve,validate:()=>({ok:true,value:b}),isDev:M}),C=({name:a,prev:b,options:h,initialState:F,phase:I})=>{let W=y({name:a,prev:b,options:h,initialState:F,getMeta:()=>s[a],getStoreValue:()=>t[a],hasStore:()=>U(e,a)}),A=y({name:a,prev:b,options:h,initialState:F,getMeta:()=>{},getStoreValue:()=>b,hasStore:()=>false});te().forEach(x=>{let D=p.get(x);I==="before"?D?.beforeStoreDelete?.(W):D?.afterStoreDelete?.(A);});},d=a=>{if(!U(e,a))return;let b=t[a],h=s[a].options,F=n[a],I=r[a];u.add(a);try{I?.forEach(x=>{try{x(null);}catch(D){f(`Subscriber for "${a}" threw during delete: ${D?.message??D}`);}}),Tt({name:a,label:"onDelete",fn:h.onDelete,args:[b],reportIssue:(x,D)=>{Ce(x,{onError:h.onError,severity:"warn",visibility:D});}}),C({name:a,prev:b,options:h,initialState:F,phase:"before"}),delete t[a],delete r[a],delete n[a],delete o[a],delete s[a],delete l[a],jt(a)&&qt(a);let A=e.computedDependents[a];if(A)for(let x of [...A]){let D=me(x);if(D&&Kt(x,e)&&D.deps.every(ue=>!U(e,ue))){d(x);continue}f(`[stroid] source store "${a}" was deleted. Computed store "${x}" depends on it and will return stale data. Call deleteComputed("${x}") to clean up.`);}C({name:a,prev:b,options:h,initialState:F,phase:"after"}),Se("afterStoreDelete",a,{type:"afterStoreDelete",prev:b}),Oe(e,{type:"deleted",name:a}),ne(`Store "${a}" deleted`);}finally{u.delete(a);}};return {deleteExistingStore:d,clearAllStores:()=>{let a=[],h=0,F=Number.POSITIVE_INFINITY;for(;h<20;){let W=Object.keys(t);if(W.length===0)break;W.forEach(x=>{U(e,x)&&(d(x),a.push(x));}),h+=1;let A=Object.keys(t).length;if(A===0||A>=F)break;F=A;}let I=Object.keys(t).length;return I>0?f(`clearAllStores stopped after ${h} pass${h===1?"":"es"}; ${I} store(s) still registered (likely recreated during deletion).`):ne(`All stores cleared (${a.length} stores removed)`),a},clearStores:a=>{let b=Object.keys(t).filter(h=>a?a.endsWith("*")?h.startsWith(a.slice(0,-1)):h===a:true);return b.forEach(h=>d(h)),b},reportStoreError:S}};var tt=q,Yt=K(tt);var V=()=>{let e=_(Yt);return Ae(e),e};var ie=()=>V();var ae=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),qr=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),Kr=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ae(()=>V().stores);var Xt=ae(()=>V().subscribers);ae(()=>V().initialStates);ae(()=>V().initialFactories);ae(()=>V().metaEntries);ae(()=>V().snapshotCache);var Y=qr(()=>V().featureRuntimes),Gt=new WeakMap,Ur=e=>{let t=Gt.get(e);return t||(t=Ut(e),Gt.set(e,t)),t};Kr(()=>Ur(V()));var Gr=e=>{let t=Y.get(e);if(t)return t;let r=we(e);if(!r)return;let n=r();return Y.set(e,n),n},Yr=()=>{te().forEach(e=>{Gr(e);});};Yr();var Xr=()=>{mt(V());},Qr=()=>{Y.forEach(e=>{try{e.resetAll?.();}catch{}}),Y.clear();};k("features.reset",Qr,10);k("registries.clear",Xr,20);k("registry.default",()=>{tt=q,Yt=K(tt);},115);var rt=()=>_().async;var Jr=()=>rt().inflight;var Qt=()=>rt().asyncMetrics;var nt=e=>{let t=`${e}:`,r=Jr(),n=0;return Object.keys(r).forEach(o=>{(o===e||o.startsWith(t))&&(n+=1);}),n};var Jt=()=>({...Qt()});var ce=()=>_(K(q)),be=e=>{let t=ce();return U(t,e)?true:(Pe(e,Object.keys(t.stores)),false)},Zr=(e,t)=>{if(!t)return true;if(t.endsWith("*")){let r=t.slice(0,-1);return e.startsWith(r)}return e===t},Zt=e=>{let t=ce();return Object.keys(t.stores).filter(r=>Zr(r,e))},en=e=>{if(!be(e))return null;let t=ce().metaEntries[e],r=N(t);r.metrics=N(t.metrics);let n=N(t.options),o=n;return o.persist&&typeof o.persist=="object"&&(o.persist=N(o.persist)),o.sync&&typeof o.sync=="object"&&(o.sync=N(o.sync)),o.devtools&&typeof o.devtools=="object"&&(o.devtools=N(o.devtools)),o.lifecycle&&typeof o.lifecycle=="object"&&(o.lifecycle=N(o.lifecycle)),r.options=n,r},Ws=()=>P(ce().initialStates),tn=e=>{let t=ce().metaEntries[e];return t?.metrics?{...t.metrics}:null},rn=e=>be(e)?Xt[e]?.size??0:0,nn=e=>be(e)?nt(e):0,on=(e={})=>{let t=e.unreadThresholdMs??6e4,r=Date.now();return Zt().map(n=>{let o=ce().metaEntries[n],s=o?.createdAt?new Date(o.createdAt).getTime():r,l=o?.lastReadAtMs??null,p=Math.max(0,r-s),u;return (o?.readCount??0)===0&&(o?.updateCount??0)===0?u="cold":(o?.readCount??0)===0?u="write-only":l&&r-l>t?u="stale":u="active",{name:n,createdAt:o?.createdAt??new Date(s).toISOString(),lastReadAt:o?.lastReadAt??null,updateCount:o?.updateCount??0,readCount:o?.readCount??0,subscriberCount:rn(n),ageMs:p,verdict:u}}).filter(n=>n.verdict==="cold"||n.verdict==="stale"||e.includeWriteOnly&&n.verdict==="write-only")},sn=e=>{if(e){if(!be(e))return null;let r=en(e);return {name:e,meta:r,metrics:tn(e),async:{inflight:nn(e),lastCorrelationId:r?.lastCorrelationId??null,traceContext:r?.lastTraceContext??null},persist:{queueDepth:an(e)}}}let t=Zt().map(r=>sn(r));return {stores:t,async:Jt(),registry:{totalStores:t.length,coldStores:on({})}}},an=e=>{if(!be(e))return 0;let t=Nt("persist");return t?.getPersistQueueDepth?t.getPersistQueueDepth(e)??0:0},Hs=()=>Be(),zs=e=>me(e);export{on as findColdStores,nn as getAsyncInflightCount,zs as getComputedDeps,Hs as getComputedGraph,Ws as getInitialState,tn as getMetrics,an as getPersistQueueDepth,sn as getStoreHealth,en as getStoreMeta,rn as getSubscriberCount,Zt as listStores};//# sourceMappingURL=runtime-tools.js.map
3
+ Call createStore("${e}", data) first.`);};var se=new Set(["__proto__","constructor","prototype"]);var At=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,Ir=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var me=(e,t)=>{let r=Ir(e);if(r)throw new Error(`${r} values are not supported`);let n=At(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return M()&&g(Et()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),M()&&g(Tt());let o={};for(let[s,c]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(s)]=me(c,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),M()&&g(Ft()),Array.from(e,o=>me(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},s=Object.getOwnPropertyDescriptors(e);for(let[c,d]of Object.entries(s))if(d.enumerable&&!se.has(c)){if("get"in d||"set"in d)throw new Error(`Accessor properties are not supported during sanitize ("${c}")`);o[c]=me(d.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>me(o,t))}return e},Ve=e=>me(e,new WeakSet);var We=null,Pr=()=>{if(We)return We;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return We=t,t},Ot=e=>{let t=Pr(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},$r=2166136261,_r=2654435761,Vr=1e5,Y=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},Z=(e,t)=>{Y(e,t.length);for(let r=0;r<t.length;r++)Y(e,t.charCodeAt(r));},C=(e,t)=>{Z(e,t);},Dt=(e,t)=>{if(Number.isNaN(t)){C(e,"NaN");return}if(!Number.isFinite(t)){C(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){C(e,"-0");return}let r=t|0;if(t===r){C(e,"int"),Y(e,r);return}C(e,"num"),Z(e,String(t));},ie=(e,t)=>{if(e.nodes++>Vr){C(e,"[max]");return}if(t===null){C(e,"null");return}let r=typeof t;if(r==="string"){C(e,"string"),Z(e,t);return}if(r==="number"){C(e,"number"),Dt(e,t);return}if(r==="boolean"){C(e,t?"true":"false");return}if(r==="undefined"){C(e,"undefined");return}if(r==="bigint"){C(e,"bigint"),Z(e,t.toString());return}if(r==="symbol"){C(e,"symbol");let l=t;Z(e,Symbol.keyFor(l)??l.description??String(l));return}if(r==="function"){C(e,"function"),Z(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){C(e,"ref"),Y(e,o);return}let s=e.nextId++;if(e.seen.set(n,s),Array.isArray(n)){C(e,"array"),Y(e,n.length);for(let l=0;l<n.length;l++)Object.prototype.hasOwnProperty.call(n,l)?ie(e,n[l]):C(e,"hole");return}if(n instanceof Date){C(e,"date"),Dt(e,n.getTime());return}if(n instanceof Map){C(e,"map"),Y(e,n.size),n.forEach((l,h)=>{ie(e,h),ie(e,l);});return}if(n instanceof Set){C(e,"set"),Y(e,n.size),n.forEach(l=>{ie(e,l);});return}C(e,"object");let c=Object.getOwnPropertyDescriptors(n),d=[];Object.entries(c).forEach(([l,h])=>{h?.enumerable&&(se.has(l)||"get"in h||"set"in h||d.push([l,h]));}),Y(e,d.length);for(let[l,h]of d)Z(e,l),ie(e,h.value);},He=e=>{if(typeof e=="string")return Ot(JSON.stringify(e));let t={h1:$r,h2:_r,seen:new WeakMap,nextId:1,nodes:0};ie(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var Wr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",j=e=>{if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.slice();let t={},r=Object.getOwnPropertyDescriptors(e);return Object.entries(r).forEach(([n,o])=>{o.enumerable&&(se.has(n)||"get"in o||"set"in o||(t[n]=o.value));}),t},ze=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Hr=e=>ze(e)===null,zr=e=>{let t=ze(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},ee=(e,t=new WeakMap)=>{if(zr(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((s,c)=>{o.set(ee(c,t),ee(s,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(s=>{o.add(ee(s,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((s,c)=>{o[c]=ee(s,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,s])=>{!s.enumerable||se.has(o)||"get"in s||"set"in s||(r[o]=ee(s.value,t));}),r},V=e=>{if(Wr)try{return structuredClone(e)}catch(t){if(!Hr(e)){let r=ze(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return g(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),ee(e)}return ee(e)};var Nt=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(s){let c=`${t} for "${e}" failed: ${s?.message??s}`;o(c,"always");}};var Lr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;ne(`${t} callback threw: ${String(o)}`);}},xe=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Lr(o,"onError",e),r==="critical"){n==="dev"&&g(e),Ce(e);return}if(n==="always"){ne(e);return}g(e);};k("computed.order-resolver",()=>{},105);var _t=()=>_(K(G));var I=()=>_t().computedEntries,Le=()=>_t().computedDependents;var Vt=e=>Object.prototype.hasOwnProperty.call(I(),e);var Be=e=>e==="asyncBoundary"?"async-boundary":"computed",Wt=(e,t,r=[])=>JSON.stringify([e,t,[...r]]),Br=e=>e==="leaf"||e==="computed"||e==="async-boundary",qr=e=>{try{let t=JSON.parse(e);if(!Array.isArray(t)||t.length!==3)return null;let[r,n,o]=t;return !Br(r)||typeof n!="string"||!Array.isArray(o)||o.some(s=>typeof s!="string"&&typeof s!="number")?null:{type:r,storeId:n,path:[...o]}}catch{return null}},Pt=(e,t)=>({id:Wt(e,t),storeId:t,path:[],type:e}),Ht=e=>{let t=I()[e];return Pt(t?Be(t.classification):"leaf",e)},zt=e=>{let t=I();if(t[e])return e;let r=qr(e);if(!r||r.path.length!==0||r.type!=="computed"&&r.type!=="async-boundary")return null;let n=t[r.storeId];return n&&Be(n.classification)===r.type?r.storeId:null},Lt=(e,t)=>{let r=Be(t.classification);return {id:Wt(r,e),storeId:e,path:[],dependencies:t.deps.map(n=>Ht(n).id),nodeType:r,classification:t.classification,...t.classification==="asyncBoundary"?{asyncBoundary:true}:{}}},qe=e=>{let t=zt(e);if(!t)return null;let r=I()[t];return r?Lt(t,r):null};var Ge=()=>{let e=I(),t=Le(),r=Object.keys(e),n=[];for(let[o,s]of Object.entries(e))for(let c of s.deps)n.push({from:c,to:o});return {nodes:r,edges:n,dependencies:Object.fromEntries(Object.entries(e).map(([o,s])=>[o,[...s.deps]])),dependents:Object.fromEntries(Object.entries(t).map(([o,s])=>[o,[...s]]))}},he=e=>{let t=I()[e];if(!t)return null;let r=Le()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}},Ke=()=>{let e=I(),t=new Map,r=new Map;for(let[s,c]of Object.entries(e)){let d=Lt(s,c);t.set(d.id,{id:d.id,storeId:d.storeId,path:d.path,type:d.nodeType}),c.deps.forEach((l,h)=>{let p=Ht(l),b=I()[l]?"computed-input":"leaf-input";t.set(p.id,p),r.set(`${p.id}|${d.id}|${h}`,{from:p.id,to:d.id,type:b});});}let n=Array.from(t.values()).sort((s,c)=>s.id.localeCompare(c.id)),o=Array.from(r.values()).sort((s,c)=>{let d=s.from.localeCompare(c.from);if(d!==0)return d;let l=s.to.localeCompare(c.to);return l!==0?l:s.type.localeCompare(c.type)});return {granularity:"store",nodes:n,edges:o}},Kr=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),$t=(e,t)=>Kr(e,t)?e[t]:null,Bt=(e,t,r)=>{if(r.memo.has(e))return r.memo.get(e);if(r.stack.has(e))throw new Error(`evaluateComputed("${e}") detected a computed cycle`);let n=I()[e];if(!n)throw new Error(`evaluateComputed("${e}") could not find a computed descriptor`);if(n.classification!=="deterministic")throw new Error(`evaluateComputed("${e}") only supports deterministic computed nodes`);r.stack.add(e);try{let o=n.deps.map(c=>{let d=I()[c];if(!d)return $t(t,c);if(d.classification!=="deterministic")throw new Error(`evaluateComputed("${e}") cannot cross non-deterministic dependency "${c}"`);return Bt(c,t,r)}),s;try{s=n.compute(...o);}catch{s=$t(t,e);}return r.memo.set(e,s),s}finally{r.stack.delete(e);}},Ue=(e,t)=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`evaluateComputed("${e}") requires a snapshot record`);let r=zt(e);if(!r)throw new Error(`evaluateComputed("${e}") could not find a computed descriptor`);return Bt(r,t,{memo:new Map,stack:new Set})};var Ur=new Set;var Yr=()=>{Ur.clear();};k("ssr.warnings",Yr,60);var qt=e=>X.get(e)?.api;var Jt=new Map;var be=(e,t,r)=>{let n=Jt.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var Zr=()=>{};k("write-context.runner",Zr,121);var rn=()=>{let e=ae().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};k("notify.reset",rn,40);var nn=()=>ae().computedCleanups,tr=new WeakMap;var on=e=>{let t=tr.get(e);return t||(t=new Map,tr.set(e,t)),t};var rr=e=>{let t=nn(),r=t.get(e);if(!r){M()&&g(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var nr=(e,t=ae())=>on(t).get(e)?.autoDispose===true;var or=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,s=e.metaEntries,c=e.snapshotCache,d=e.featureRuntimes,l=e.deletingStores,h=(a,R)=>{xe(R,{onError:s[a]?.options?.onError,severity:"warn",visibility:"dev"});},p=({name:a,prev:R,options:S,initialState:E,getMeta:P,getStoreValue:H,hasStore:A})=>({name:a,options:S,prev:R,getMeta:P,getStoreValue:H,getAllStores:()=>t,getInitialState:()=>E,hasStore:A,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:x=>{xe(x,{onError:S.onError,severity:"warn",visibility:"dev"});},warn:g,warnAlways:ne,log:oe,hashState:He,deepClone:V,sanitize:Ve,validate:()=>({ok:true,value:R}),isDev:M}),b=({name:a,prev:R,options:S,initialState:E,phase:P})=>{let H=p({name:a,prev:R,options:S,initialState:E,getMeta:()=>s[a],getStoreValue:()=>t[a],hasStore:()=>U(e,a)}),A=p({name:a,prev:R,options:S,initialState:E,getMeta:()=>{},getStoreValue:()=>R,hasStore:()=>false});re().forEach(x=>{let D=d.get(x);P==="before"?D?.beforeStoreDelete?.(H):D?.afterStoreDelete?.(A);});},f=a=>{if(!U(e,a))return;let R=t[a],S=s[a].options,E=n[a],P=r[a];l.add(a);try{P?.forEach(x=>{try{x(null);}catch(D){g(`Subscriber for "${a}" threw during delete: ${D?.message??D}`);}}),Nt({name:a,label:"onDelete",fn:S.onDelete,args:[R],reportIssue:(x,D)=>{xe(x,{onError:S.onError,severity:"warn",visibility:D});}}),b({name:a,prev:R,options:S,initialState:E,phase:"before"}),delete t[a],delete r[a],delete n[a],delete o[a],delete s[a],delete c[a],Vt(a)&&rr(a);let A=e.computedDependents[a];if(A)for(let x of [...A]){let D=he(x);if(D&&nr(x,e)&&D.deps.every(le=>!U(e,le))){f(x);continue}g(`[stroid] source store "${a}" was deleted. Computed store "${x}" depends on it and will return stale data. Call deleteComputed("${x}") to clean up.`);}b({name:a,prev:R,options:S,initialState:E,phase:"after"}),be("afterStoreDelete",a,{type:"afterStoreDelete",prev:R}),Oe(e,{type:"deleted",name:a}),oe(`Store "${a}" deleted`);}finally{l.delete(a);}};return {deleteExistingStore:f,clearAllStores:()=>{let a=[],S=0,E=Number.POSITIVE_INFINITY;for(;S<20;){let H=Object.keys(t);if(H.length===0)break;H.forEach(x=>{U(e,x)&&(f(x),a.push(x));}),S+=1;let A=Object.keys(t).length;if(A===0||A>=E)break;E=A;}let P=Object.keys(t).length;return P>0?g(`clearAllStores stopped after ${S} pass${S===1?"":"es"}; ${P} store(s) still registered (likely recreated during deletion).`):oe(`All stores cleared (${a.length} stores removed)`),a},clearStores:a=>{let R=Object.keys(t).filter(S=>a?a.endsWith("*")?S.startsWith(a.slice(0,-1)):S===a:true);return R.forEach(S=>f(S)),R},reportStoreError:h}};var st=G,ir=K(st);var W=()=>{let e=_(ir);return Ae(e),e};var ae=()=>W();var ce=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),sn=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),an=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ce(()=>W().stores);var ar=ce(()=>W().subscribers);ce(()=>W().initialStates);ce(()=>W().initialFactories);ce(()=>W().metaEntries);ce(()=>W().snapshotCache);var X=sn(()=>W().featureRuntimes),sr=new WeakMap,cn=e=>{let t=sr.get(e);return t||(t=or(e),sr.set(e,t)),t};an(()=>cn(W()));var un=e=>{let t=X.get(e);if(t)return t;let r=we(e);if(!r)return;let n=r();return X.set(e,n),n},ln=()=>{re().forEach(e=>{un(e);});};ln();var dn=()=>{Rt(W());},pn=()=>{X.forEach(e=>{try{e.resetAll?.();}catch{}}),X.clear();};k("features.reset",pn,10);k("registries.clear",dn,20);k("registry.default",()=>{st=G,ir=K(st);},115);var it=()=>_().async;var fn=()=>it().inflight;var cr=()=>it().asyncMetrics;var at=e=>{let t=`${e}:`,r=fn(),n=0;return Object.keys(r).forEach(o=>{(o===e||o.startsWith(t))&&(n+=1);}),n};var ur=()=>({...cr()});var ue=()=>_(K(G)),Re=e=>{let t=ue();return U(t,e)?true:(_e(e,Object.keys(t.stores)),false)},gn=(e,t)=>{if(!t)return true;if(t.endsWith("*")){let r=t.slice(0,-1);return e.startsWith(r)}return e===t},lr=e=>{let t=ue();return Object.keys(t.stores).filter(r=>gn(r,e))},yn=e=>{if(!Re(e))return null;let t=ue().metaEntries[e],r=j(t);r.metrics=j(t.metrics);let n=j(t.options),o=n;return o.persist&&typeof o.persist=="object"&&(o.persist=j(o.persist)),o.sync&&typeof o.sync=="object"&&(o.sync=j(o.sync)),o.devtools&&typeof o.devtools=="object"&&(o.devtools=j(o.devtools)),o.lifecycle&&typeof o.lifecycle=="object"&&(o.lifecycle=j(o.lifecycle)),r.options=n,r},ti=()=>V(ue().initialStates),mn=e=>{let t=ue().metaEntries[e];return t?.metrics?{...t.metrics}:null},hn=e=>Re(e)?ar[e]?.size??0:0,Sn=e=>Re(e)?at(e):0,bn=(e={})=>{let t=e.unreadThresholdMs??6e4,r=Date.now();return lr().map(n=>{let o=ue().metaEntries[n],s=o?.createdAt?new Date(o.createdAt).getTime():r,c=o?.lastReadAtMs??null,d=Math.max(0,r-s),l;return (o?.readCount??0)===0&&(o?.updateCount??0)===0?l="cold":(o?.readCount??0)===0?l="write-only":c&&r-c>t?l="stale":l="active",{name:n,createdAt:o?.createdAt??new Date(s).toISOString(),lastReadAt:o?.lastReadAt??null,updateCount:o?.updateCount??0,readCount:o?.readCount??0,subscriberCount:hn(n),ageMs:d,verdict:l}}).filter(n=>n.verdict==="cold"||n.verdict==="stale"||e.includeWriteOnly&&n.verdict==="write-only")},Rn=e=>{if(e){if(!Re(e))return null;let r=yn(e);return {name:e,meta:r,metrics:mn(e),async:{inflight:Sn(e),lastCorrelationId:r?.lastCorrelationId??null,traceContext:r?.lastTraceContext??null},persist:{queueDepth:wn(e)}}}let t=lr().map(r=>Rn(r));return {stores:t,async:ur(),registry:{totalStores:t.length,coldStores:bn({})}}},wn=e=>{if(!Re(e))return 0;let t=qt("persist");return t?.getPersistQueueDepth?t.getPersistQueueDepth(e)??0:0},ri=()=>Ge(),ni=()=>Ke(),oi=e=>he(e),si=e=>qe(e),ii=(e,t)=>Ue(e,t);export{ii as evaluateComputed,bn as findColdStores,Sn as getAsyncInflightCount,oi as getComputedDeps,si as getComputedDescriptor,ri as getComputedGraph,ti as getInitialState,mn as getMetrics,wn as getPersistQueueDepth,ni as getRuntimeGraph,Rn as getStoreHealth,yn as getStoreMeta,hn as getSubscriberCount,lr as listStores};//# sourceMappingURL=runtime-tools.js.map
4
4
  //# sourceMappingURL=runtime-tools.js.map
package/dist/selectors.js CHANGED
@@ -1,2 +1,2 @@
1
- var ut=new Map;var me=e=>ut.get(e),Q=()=>Array.from(ut.keys());var dt=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),ft=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:dt(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),pt=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),dt().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var cr=new Map,M=(e,t,r=0)=>{!e||typeof t!="function"||cr.set(e,{name:e,order:r,fn:t});};var Ne=new Map,gt=new WeakSet,Ve=e=>{gt.has(e)||(gt.add(e),Q().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=me(t);r&&e.featureRuntimes.set(t,r());}}));},ur=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,yt,Ie=e=>(yt||ur||e).replace(/\.ts(\?|$)/,".js$1"),Z=Ie("stroid:default-registry");var lr=()=>{yt=void 0,Ne.clear();};M("registry.scope-override",lr,110);var dr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),fr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},St=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,failed:false,error:void 0}),pr=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,transaction:St(),async:ft(),notify:dr(),lifecycleListener:null};return Ve(t),t},ee=e=>{let t=Ie(e),r=Ne.get(t);if(r)return r;let n=pr();return Ne.set(t,n),n},Y=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var ht=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.failed=false,e.transaction.error=void 0,fr(e.notify),pt(e.async),e.lifecycleListener=null;};var Pe=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var be=()=>null,H=[],bt={run:(e,t)=>{H.push(e);try{return t()}finally{H.pop();}},get:()=>H.length>0?H[H.length-1]:null,enterWith:e=>{if(H.length>0){H[H.length-1]=e;return}H.push(e);}};var B=e=>(bt).get()||e||ee(Z);var yr={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},wt={logSink:yr,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},$e=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),We=new WeakMap,Rt=$e(wt),Sr=e=>{let t=We.get(e);return t||(t=$e(Rt),We.set(e,t)),t};var T=()=>Sr(B());var wr=()=>{We=new WeakMap,Rt=$e(wt);};M("config.reset",wr,90);var Rr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,kr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,kt=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,Cr="production",xr=Rr??kr??Cr,we=typeof kt=="boolean"?kt:xr!=="production",v=()=>we,Ct=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},Mr=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},Tr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},Re=(e,t)=>{if((T().logSink.critical??Mr)(e,t),T().assertRuntime)throw new Error(e)},S=(e,t)=>{if(!we)return;if((T().logSink.warn??Ct)(e,t),T().assertRuntime)throw new Error(e)},te=(e,t)=>{if((T().logSink.warn??Ct)(e,t),T().assertRuntime)throw new Error(e)};var re=(e,t)=>{if(!we)return;(T().logSink.log??Tr)(e,t);};var xt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",Mt=()=>"Map detected; converting to plain object.",Tt=()=>"Set detected; converting to array.";var vt=(e,t)=>`Path "${e.join(".")}" not found - reached null at "${t}"`,Et=e=>`Cannot go deeper at "${e}" - value is not an object`;var ne=new Set(["__proto__","constructor","prototype"]);var jt=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,vr=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var pe=(e,t)=>{let r=vr(e);if(r)throw new Error(`${r} values are not supported`);let n=jt(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return v()&&S(xt()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),v()&&S(Mt());let o={};for(let[s,g]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(s)]=pe(g,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),v()&&S(Tt()),Array.from(e,o=>pe(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},s=Object.getOwnPropertyDescriptors(e);for(let[g,f]of Object.entries(s))if(f.enumerable&&!ne.has(g)){if("get"in f||"set"in f)throw new Error(`Accessor properties are not supported during sanitize ("${g}")`);o[g]=pe(f.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>pe(o,t))}return e},ze=e=>pe(e,new WeakSet);var He=null,Er=()=>{if(He)return He;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return He=t,t},Ot=e=>{let t=Er(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},Fr=2166136261,jr=2654435761,Dr=1e5,q=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},G=(e,t)=>{q(e,t.length);for(let r=0;r<t.length;r++)q(e,t.charCodeAt(r));},k=(e,t)=>{G(e,t);},Dt=(e,t)=>{if(Number.isNaN(t)){k(e,"NaN");return}if(!Number.isFinite(t)){k(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){k(e,"-0");return}let r=t|0;if(t===r){k(e,"int"),q(e,r);return}k(e,"num"),G(e,String(t));},oe=(e,t)=>{if(e.nodes++>Dr){k(e,"[max]");return}if(t===null){k(e,"null");return}let r=typeof t;if(r==="string"){k(e,"string"),G(e,t);return}if(r==="number"){k(e,"number"),Dt(e,t);return}if(r==="boolean"){k(e,t?"true":"false");return}if(r==="undefined"){k(e,"undefined");return}if(r==="bigint"){k(e,"bigint"),G(e,t.toString());return}if(r==="symbol"){k(e,"symbol");let d=t;G(e,Symbol.keyFor(d)??d.description??String(d));return}if(r==="function"){k(e,"function"),G(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){k(e,"ref"),q(e,o);return}let s=e.nextId++;if(e.seen.set(n,s),Array.isArray(n)){k(e,"array"),q(e,n.length);for(let d=0;d<n.length;d++)Object.prototype.hasOwnProperty.call(n,d)?oe(e,n[d]):k(e,"hole");return}if(n instanceof Date){k(e,"date"),Dt(e,n.getTime());return}if(n instanceof Map){k(e,"map"),q(e,n.size),n.forEach((d,a)=>{oe(e,a),oe(e,d);});return}if(n instanceof Set){k(e,"set"),q(e,n.size),n.forEach(d=>{oe(e,d);});return}k(e,"object");let g=Object.getOwnPropertyDescriptors(n),f=[];Object.entries(g).forEach(([d,a])=>{a?.enumerable&&(ne.has(d)||"get"in a||"set"in a||f.push([d,a]));}),q(e,f.length);for(let[d,a]of f)G(e,d),oe(e,a.value);},Le=e=>{if(typeof e=="string")return Ot(JSON.stringify(e));let t={h1:Fr,h2:jr,seen:new WeakMap,nextId:1,nodes:0};oe(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var Or=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",ge=e=>{if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.slice();let t={},r=Object.getOwnPropertyDescriptors(e);return Object.entries(r).forEach(([n,o])=>{o.enumerable&&(ne.has(n)||"get"in o||"set"in o||(t[n]=o.value));}),t},Be=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Ar=e=>Be(e)===null,Nr=e=>{let t=Be(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},J=(e,t=new WeakMap)=>{if(Nr(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((s,g)=>{o.set(J(g,t),J(s,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(s=>{o.add(J(s,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((s,g)=>{o[g]=J(s,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,s])=>{!s.enumerable||ne.has(o)||"get"in s||"set"in s||(r[o]=J(s.value,t));}),r},V=e=>{if(Or)try{return structuredClone(e)}catch(t){if(!Ar(e)){let r=Be(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return S(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),J(e)}return J(e)};var Vr=e=>{let t=[],r="",n=false;for(let o of e){if(n){r+=o,n=false;continue}if(o==="\\"){n=true;continue}if(o==="."){t.push(r),r="";continue}r+=o;}return n&&(r+="\\"),t.push(r),t},At=e=>Array.isArray(e)?[...e]:typeof e=="string"&&!e.includes(".")?[e]:typeof e=="string"?Vr(e):[String(e)];var ke=(e,t)=>{let r=At(t),n=e;for(let o of r){if(n==null){S(vt(r,o));return}if(typeof n!="object"){S(Et(o));return}n=n[o];}return n};var Nt=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(s){let g=`${t} for "${e}" failed: ${s?.message??s}`;o(g,"always");}};var Ir=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;te(`${t} callback threw: ${String(o)}`);}},Ce=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Ir(o,"onError",e),r==="critical"){n==="dev"&&S(e),Re(e);return}if(n==="always"){te(e);return}S(e);};M("computed.order-resolver",()=>{},105);var Pt=()=>B(ee(Z)),qe=()=>Pt().computedEntries,_t=()=>Pt().computedDependents;var Wt=e=>Object.prototype.hasOwnProperty.call(qe(),e);var Ue=e=>{let t=qe()[e];if(!t)return null;let r=_t()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var Me=null;var _r=()=>{Me=null;};M("transaction.runner",_r,120);var $t=e=>{let t=Me?.get();return t||(e??B()).transaction};var Te=()=>Me?(Me.get()?.depth??0)>0:$t().depth>0;var zt=e=>{let t=$t();return t.stagedValues.has(e)?{has:true,value:t.stagedValues.get(e)}:{has:false,value:void 0}};var Lt=e=>{if(typeof e!="object"||e===null)return false;let t=e;if(t.$$typeof||typeof window<"u"&&e instanceof Element)return false;let r=t.constructor?.name;return !(r&&r!=="Object"&&r!=="Array")},ye=e=>(Lt(e)&&(Object.isFrozen(e)||Object.freeze(e)),e),ve=e=>{if(!Lt(e))return e;let t=[e],r=new WeakSet;for(;t.length>0;){let n=t.pop();if(!r.has(n)){r.add(n),Object.isFrozen(n)||Object.freeze(n);for(let o of Object.keys(n)){let s=n[o];typeof s=="object"&&s!==null&&!r.has(s)&&t.push(s);}}}return e};var Ee=(e,t)=>{let r=e?.options?.snapshot??t;return r==="shallow"||r==="ref"?r:"deep"},se=(e,t)=>{if(t==="ref"){if(!v())return e;try{return ye(e)}catch{return e}}if(t==="shallow"){let n=ge(e);if(!v())return n;try{return ye(n)}catch{return n}}let r=V(e);if(!v())return r;try{return ve(r)}catch{return r}};var Ut=new Map;var he=(e,t,r)=>{let n=Ut.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var Wr=()=>{};M("write-context.runner",Wr,121);var je=(e,t)=>{if(!(!e||typeof e!="object")){if(t==="ref"||t==="shallow"){ye(e);return}t==="deep"&&ve(e);}};var Gt=e=>{if(!Jt(e))return null;let t=I();Xt(e,t);let r=Ee(t.metaEntries[e],T().defaultSnapshotMode);if(Te()){let f=t.transaction.snapshotCache,d=tt(e);if(d===void 0)return null;let a=f.get(e);if(a&&a.source===d&&a.mode===r){let y=a.snapshot;return je(y,r),y}let u=se(d,r);return f.set(e,{source:d,snapshot:u,mode:r}),je(u,r),u}let n=t.notify.flushId,o=tt(e,t),s=t.snapshotCache[e];if(s&&s.source===o&&s.mode===r){let f=s.snapshot;return je(f,r),f}let g=se(o,r);return je(g,r),t.snapshotCache[e]={version:n,snapshot:g,source:o,mode:r},g};var Hr=()=>{let e=I().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};M("notify.reset",Hr,40);var Lr=()=>I().computedCleanups,Qt=new WeakMap;var Br=e=>{let t=Qt.get(e);return t||(t=new Map,Qt.set(e,t)),t};var Zt=e=>{let t=Lr(),r=t.get(e);if(!r){v()&&S(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var er=(e,t=I())=>Br(t).get(e)?.autoDispose===true;var tr=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,s=e.metaEntries,g=e.snapshotCache,f=e.featureRuntimes,d=e.deletingStores,a=(c,w)=>{Ce(w,{onError:s[c]?.options?.onError,severity:"warn",visibility:"dev"});},u=({name:c,prev:w,options:b,initialState:E,getMeta:P,getStoreValue:W,hasStore:j})=>({name:c,options:b,prev:w,getMeta:P,getStoreValue:W,getAllStores:()=>t,getInitialState:()=>E,hasStore:j,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:C=>{Ce(C,{onError:b.onError,severity:"warn",visibility:"dev"});},warn:S,warnAlways:te,log:re,hashState:Le,deepClone:V,sanitize:ze,validate:()=>({ok:true,value:w}),isDev:v}),y=({name:c,prev:w,options:b,initialState:E,phase:P})=>{let W=u({name:c,prev:w,options:b,initialState:E,getMeta:()=>s[c],getStoreValue:()=>t[c],hasStore:()=>Y(e,c)}),j=u({name:c,prev:w,options:b,initialState:E,getMeta:()=>{},getStoreValue:()=>w,hasStore:()=>false});Q().forEach(C=>{let D=f.get(C);P==="before"?D?.beforeStoreDelete?.(W):D?.afterStoreDelete?.(j);});},p=c=>{if(!Y(e,c))return;let w=t[c],b=s[c].options,E=n[c],P=r[c];d.add(c);try{P?.forEach(C=>{try{C(null);}catch(D){S(`Subscriber for "${c}" threw during delete: ${D?.message??D}`);}}),Nt({name:c,label:"onDelete",fn:b.onDelete,args:[w],reportIssue:(C,D)=>{Ce(C,{onError:b.onError,severity:"warn",visibility:D});}}),y({name:c,prev:w,options:b,initialState:E,phase:"before"}),delete t[c],delete r[c],delete n[c],delete o[c],delete s[c],delete g[c],Wt(c)&&Zt(c);let j=e.computedDependents[c];if(j)for(let C of [...j]){let D=Ue(C);if(D&&er(C,e)&&D.deps.every(ce=>!Y(e,ce))){p(C);continue}S(`[stroid] source store "${c}" was deleted. Computed store "${C}" depends on it and will return stale data. Call deleteComputed("${C}") to clean up.`);}y({name:c,prev:w,options:b,initialState:E,phase:"after"}),he("afterStoreDelete",c,{type:"afterStoreDelete",prev:w}),Pe(e,{type:"deleted",name:c}),re(`Store "${c}" deleted`);}finally{d.delete(c);}};return {deleteExistingStore:p,clearAllStores:()=>{let c=[],b=0,E=Number.POSITIVE_INFINITY;for(;b<20;){let W=Object.keys(t);if(W.length===0)break;W.forEach(C=>{Y(e,C)&&(p(C),c.push(C));}),b+=1;let j=Object.keys(t).length;if(j===0||j>=E)break;E=j;}let P=Object.keys(t).length;return P>0?S(`clearAllStores stopped after ${b} pass${b===1?"":"es"}; ${P} store(s) still registered (likely recreated during deletion).`):re(`All stores cleared (${c.length} stores removed)`),c},clearStores:c=>{let w=Object.keys(t).filter(b=>c?c.endsWith("*")?b.startsWith(c.slice(0,-1)):b===c:true);return w.forEach(b=>p(b)),w},reportStoreError:a}};var rt=Z,nr=ee(rt);var O=()=>{let e=B(nr);return Ve(e),e};var I=()=>O();var ae=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),qr=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),Ur=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ae(()=>O().stores);ae(()=>O().subscribers);ae(()=>O().initialStates);ae(()=>O().initialFactories);var or=ae(()=>O().metaEntries);ae(()=>O().snapshotCache);var ie=qr(()=>O().featureRuntimes),rr=new WeakMap,Kr=e=>{let t=rr.get(e);return t||(t=tr(e),rr.set(e,t)),t};Ur(()=>Kr(O()));var Yr=e=>{let t=ie.get(e);if(t)return t;let r=me(e);if(!r)return;let n=r();return ie.set(e,n),n},Gr=()=>{Q().forEach(e=>{Yr(e);});};Gr();var Jt=(e,t)=>Y(O(),e),tt=(e,t=O())=>{if(Te()){let n=zt(e);if(n.has)return n.value}let r=be();return r&&Object.prototype.hasOwnProperty.call(r,e)?r[e]:t.stores[e]};var Xt=(e,t=O())=>{let r=t.metaEntries[e];if(!r)return;r.readCount=(r.readCount??0)+1;let n=Date.now();r.lastReadAtMs=n,r.lastReadAt=new Date(n).toISOString();},Jr=()=>{ht(O());},Xr=()=>{ie.forEach(e=>{try{e.resetAll?.();}catch{}}),ie.clear();};M("features.reset",Xr,10);M("registries.clear",Jr,20);M("registry.default",()=>{rt=Z,nr=ee(rt);},115);var nt=e=>{let t=I();return Object.prototype.hasOwnProperty.call(t.stores,e)},sr=e=>I().stores[e],ir=(e,t)=>{let n=I().subscribers;return n[e]||(n[e]=new Set),n[e].add(t),()=>{n[e]?.delete(t),n[e]?.size===0&&delete n[e];}};var Qr=(e,t)=>{let r=new WeakMap,n=new WeakMap,o=new Set,s="\0",g=(a,u)=>{if(!a||typeof a!="object")return a;let y=r.get(a);if(y)return y;let p=new Proxy(a,{get(m,h,c){if(typeof h!="string")return Reflect.get(m,h,c);let w=[...u,h],b=Reflect.get(m,h,c);return (!b||typeof b!="object")&&o.add(w.join(s)),g(b,w)}});return n.set(p,u.join(s)),r.set(a,p),p},f=t(g(e,[])),d=(a,u)=>{if(!a||typeof a!="object"||u.has(a))return;u.add(a);let y=n.get(a);if(y){y&&o.add(y);return}for(let p of Object.values(a))d(p,u);};return d(f,new WeakSet),{result:f,deps:Array.from(o,a=>a.split(s))}},Zr=(e,t,r)=>r.some(n=>!Object.is(ke(e,n),ke(t,n))),Es=(e,t)=>{let r,n,o=[];return ()=>{let s=sr(e);if(s===void 0)return null;if(s===r)return n??null;if(r!==void 0&&o.length>0&&!Zr(r,s,o))return r=s,n??null;let g=T().selectorCloneFrozen,f=s&&typeof s=="object"&&Object.isFrozen(s)&&g?V(s):s,d=Qr(f,t);return r=s,o=d.deps,n=d.result,n??null}},Fs=(e,t,r=Object.is,n)=>{if(typeof t!="function"||typeof n!="function")return S(`subscribeWithSelector("${e}") requires selector and listener functions.`),()=>{};let o=false,s,g=()=>{let a=or[e]?.options?.snapshot;return a==="shallow"||a==="ref"?a:"deep"},f=a=>{let u=a!==void 0?a:Gt(e);if(u===null||typeof u!="object")return u;let y=g();return y==="ref"?u:y==="shallow"?ge(u):V(u)};return nt(e)&&(s=t(f()),o=true),ir(e,a=>{if(a===null||!nt(e)){o=false,s=void 0;return}let u=t(f(a));if(!o){let p=s;o=true,s=u,n(u,p);return}if(!r(u,s)){let p=s;s=u,n(u,p);}})};export{Es as createSelector,Fs as subscribeWithSelector};//# sourceMappingURL=selectors.js.map
1
+ var lt=new Map;var Se=e=>lt.get(e),Q=()=>Array.from(lt.keys());var ft=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),pt=()=>({fetchRegistry:Object.create(null),inflight:Object.create(null),requestVersion:Object.create(null),cacheMeta:Object.create(null),rateWindowStart:Object.create(null),rateCount:Object.create(null),ratePruneState:{lastAt:0},ratePruneTimer:null,warnedOnce:ft(),storeCleanups:Object.create(null),revalidateKeys:new Set,revalidateHandlers:Object.create(null),asyncMetrics:{cacheHits:0,cacheMisses:0,dedupes:0,requests:0,failures:0,avgMs:0,lastMs:0}}),gt=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(n=>{try{n();}catch{}});});}),Object.keys(e.fetchRegistry).forEach(t=>delete e.fetchRegistry[t]),Object.keys(e.inflight).forEach(t=>delete e.inflight[t]),Object.keys(e.requestVersion).forEach(t=>delete e.requestVersion[t]),Object.keys(e.cacheMeta).forEach(t=>delete e.cacheMeta[t]),Object.keys(e.rateWindowStart).forEach(t=>delete e.rateWindowStart[t]),Object.keys(e.rateCount).forEach(t=>delete e.rateCount[t]),Object.keys(e.storeCleanups).forEach(t=>delete e.storeCleanups[t]),Object.keys(e.revalidateHandlers).forEach(t=>delete e.revalidateHandlers[t]),e.revalidateKeys.clear(),e.warnedOnce.forEach(t=>t.clear()),e.warnedOnce.clear(),ft().forEach((t,r)=>{e.warnedOnce.set(r,t);}),e.ratePruneState.lastAt=0,e.ratePruneTimer&&(clearTimeout(e.ratePruneTimer),e.ratePruneTimer=null),e.asyncMetrics.cacheHits=0,e.asyncMetrics.cacheMisses=0,e.asyncMetrics.dedupes=0,e.asyncMetrics.requests=0,e.asyncMetrics.failures=0,e.asyncMetrics.avgMs=0,e.asyncMetrics.lastMs=0;};var ur=new Map,M=(e,t,r=0)=>{!e||typeof t!="function"||ur.set(e,{name:e,order:r,fn:t});};var Ae=new Map,yt=new WeakSet,Ie=e=>{yt.has(e)||(yt.add(e),Q().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=Se(t);r&&e.featureRuntimes.set(t,r());}}));},lr=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,mt,Pe=e=>(mt||lr||e).replace(/\.ts(\?|$)/,".js$1"),Z=Pe("stroid:default-registry");var dr=()=>{mt=void 0,Ae.clear();};M("registry.scope-override",dr,110);var fr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],subscriberBuffer:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),pr=e=>{e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.subscriberBuffer.length=0,e.notifyScheduled=false,e.batchDepth=0,e.flushId=0,e.isFlushing=false;},ht=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,runtimePatches:[],failed:false,error:void 0}),gr=(e="default")=>{let t={scope:e,stores:Object.create(null),subscribers:Object.create(null),initialStates:Object.create(null),initialFactories:Object.create(null),metaEntries:Object.create(null),snapshotCache:Object.create(null),featureRuntimes:new Map,deletingStores:new Set,computedEntries:Object.create(null),computedDependents:Object.create(null),computedCleanups:new Map,lastRuntimePatches:[],transaction:ht(),async:pt(),notify:fr(),lifecycleListener:null};return Ie(t),t},ee=e=>{let t=Pe(e),r=Ae.get(t);if(r)return r;let n=gr();return Ae.set(t,n),n},K=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var St=e=>{e.computedCleanups.forEach(t=>{try{t();}catch{}}),e.computedCleanups.clear(),[e.stores,e.subscribers,e.initialStates,e.initialFactories,e.metaEntries,e.snapshotCache,e.computedEntries,e.computedDependents].forEach(t=>{Object.keys(t).forEach(r=>{delete t[r];});}),e.deletingStores.clear(),e.transaction.depth=0,e.transaction.pending=[],e.transaction.stagedValues.clear(),e.transaction.snapshotCache.clear(),e.transaction.runtimePatches.length=0,e.transaction.failed=false,e.transaction.error=void 0,e.lastRuntimePatches.length=0,pr(e.notify),gt(e.async),e.lifecycleListener=null;};var Ve=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var be=()=>null,H=[],Rt={run:(e,t)=>{H.push(e);try{return t()}finally{H.pop();}},get:()=>H.length>0?H[H.length-1]:null,enterWith:e=>{if(H.length>0){H[H.length-1]=e;return}H.push(e);}};var B=e=>(Rt).get()||e||ee(Z);var mr={log:(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},warn:(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},critical:(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));}},wt={logSink:mr,flush:{chunkSize:Number.POSITIVE_INFINITY,chunkDelayMs:0,priorityStores:[]},revalidateOnFocus:{debounceMs:0,maxConcurrent:3,staggerMs:100},namespace:"",strictMissingFeatures:true,assertRuntime:false,strictMutatorReturns:true,asyncAutoCreate:false,asyncCloneResult:"none",autoCorrelationIds:false,acknowledgeLooseTypes:false,pathCacheSize:500,defaultSnapshotMode:"deep",strictAsyncUsageErrors:false,middleware:[],allowUntrustedHydration:false,mutatorProduce:void 0,selectorCloneFrozen:true},We=e=>({logSink:{...e.logSink},flush:{...e.flush},revalidateOnFocus:{...e.revalidateOnFocus},namespace:e.namespace,strictMissingFeatures:e.strictMissingFeatures,assertRuntime:e.assertRuntime,strictMutatorReturns:e.strictMutatorReturns,asyncAutoCreate:e.asyncAutoCreate,asyncCloneResult:e.asyncCloneResult,autoCorrelationIds:e.autoCorrelationIds,acknowledgeLooseTypes:e.acknowledgeLooseTypes,pathCacheSize:e.pathCacheSize,defaultSnapshotMode:e.defaultSnapshotMode,strictAsyncUsageErrors:e.strictAsyncUsageErrors,middleware:[...e.middleware],allowUntrustedHydration:e.allowUntrustedHydration,mutatorProduce:e.mutatorProduce,selectorCloneFrozen:e.selectorCloneFrozen}),$e=new WeakMap,Ct=We(wt),hr=e=>{let t=$e.get(e);return t||(t=We(Ct),$e.set(e,t)),t};var T=()=>hr(B());var wr=()=>{$e=new WeakMap,Ct=We(wt);};M("config.reset",wr,90);var Cr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,kr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,kt=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,xr="production",Mr=Cr??kr??xr,Re=typeof kt=="boolean"?kt:Mr!=="production",v=()=>Re,xt=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},Tr=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},vr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},we=(e,t)=>{if((T().logSink.critical??Tr)(e,t),T().assertRuntime)throw new Error(e)},m=(e,t)=>{if(!Re)return;if((T().logSink.warn??xt)(e,t),T().assertRuntime)throw new Error(e)},te=(e,t)=>{if((T().logSink.warn??xt)(e,t),T().assertRuntime)throw new Error(e)};var re=(e,t)=>{if(!Re)return;(T().logSink.log??vr)(e,t);};var Mt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",Tt=()=>"Map detected; converting to plain object.",vt=()=>"Set detected; converting to array.";var Et=(e,t)=>`Path "${e.join(".")}" not found - reached null at "${t}"`,Ft=e=>`Cannot go deeper at "${e}" - value is not an object`;var ne=new Set(["__proto__","constructor","prototype"]);var Ot=e=>e===null?"null":Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":e instanceof Date?"date":typeof e=="function"?"function":typeof e,Er=e=>{if(!e||typeof e!="object")return null;let t=globalThis?.WeakRef;return t&&e instanceof t?"WeakRef":typeof WeakMap<"u"&&e instanceof WeakMap?"WeakMap":typeof WeakSet<"u"&&e instanceof WeakSet?"WeakSet":typeof EventTarget<"u"&&e instanceof EventTarget?"EventTarget":typeof ReadableStream<"u"&&e instanceof ReadableStream?"ReadableStream":typeof WritableStream<"u"&&e instanceof WritableStream?"WritableStream":typeof Request<"u"&&e instanceof Request?"Request":typeof Response<"u"&&e instanceof Response?"Response":typeof Headers<"u"&&e instanceof Headers?"Headers":typeof FormData<"u"&&e instanceof FormData?"FormData":null};var pe=(e,t)=>{let r=Er(e);if(r)throw new Error(`${r} values are not supported`);let n=Ot(e);if(n==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(n==="bigint")throw new Error("BigInt values are not supported");if(n==="symbol")throw new Error("Symbol values are not supported");if(n==="date")return v()&&m(Mt()),e.toISOString();if(n==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),v()&&m(Tt());let o={};for(let[s,p]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");o[String(s)]=pe(p,t);}return o}if(n==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),v()&&m(vt()),Array.from(e,o=>pe(o,t))}if(n==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let o={},s=Object.getOwnPropertyDescriptors(e);for(let[p,g]of Object.entries(s))if(g.enumerable&&!ne.has(p)){if("get"in g||"set"in g)throw new Error(`Accessor properties are not supported during sanitize ("${p}")`);o[p]=pe(g.value,t);}return o}if(n==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(o=>pe(o,t))}return e},ze=e=>pe(e,new WeakSet);var He=null,Fr=()=>{if(He)return He;let e,t=[];for(let r=0;r<256;r++){e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return He=t,t},Nt=e=>{let t=Fr(),r=-1;for(let n=0;n<e.length;n++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(n))&255];return (r^-1)>>>0},jr=2166136261,Or=2654435761,Dr=1e5,q=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},Y=(e,t)=>{q(e,t.length);for(let r=0;r<t.length;r++)q(e,t.charCodeAt(r));},C=(e,t)=>{Y(e,t);},Dt=(e,t)=>{if(Number.isNaN(t)){C(e,"NaN");return}if(!Number.isFinite(t)){C(e,t>0?"Infinity":"-Infinity");return}if(Object.is(t,-0)){C(e,"-0");return}let r=t|0;if(t===r){C(e,"int"),q(e,r);return}C(e,"num"),Y(e,String(t));},oe=(e,t)=>{if(e.nodes++>Dr){C(e,"[max]");return}if(t===null){C(e,"null");return}let r=typeof t;if(r==="string"){C(e,"string"),Y(e,t);return}if(r==="number"){C(e,"number"),Dt(e,t);return}if(r==="boolean"){C(e,t?"true":"false");return}if(r==="undefined"){C(e,"undefined");return}if(r==="bigint"){C(e,"bigint"),Y(e,t.toString());return}if(r==="symbol"){C(e,"symbol");let l=t;Y(e,Symbol.keyFor(l)??l.description??String(l));return}if(r==="function"){C(e,"function"),Y(e,t.name||"anonymous");return}let n=t,o=e.seen.get(n);if(o!==void 0){C(e,"ref"),q(e,o);return}let s=e.nextId++;if(e.seen.set(n,s),Array.isArray(n)){C(e,"array"),q(e,n.length);for(let l=0;l<n.length;l++)Object.prototype.hasOwnProperty.call(n,l)?oe(e,n[l]):C(e,"hole");return}if(n instanceof Date){C(e,"date"),Dt(e,n.getTime());return}if(n instanceof Map){C(e,"map"),q(e,n.size),n.forEach((l,a)=>{oe(e,a),oe(e,l);});return}if(n instanceof Set){C(e,"set"),q(e,n.size),n.forEach(l=>{oe(e,l);});return}C(e,"object");let p=Object.getOwnPropertyDescriptors(n),g=[];Object.entries(p).forEach(([l,a])=>{a?.enumerable&&(ne.has(l)||"get"in a||"set"in a||g.push([l,a]));}),q(e,g.length);for(let[l,a]of g)Y(e,l),oe(e,a.value);},Le=e=>{if(typeof e=="string")return Nt(JSON.stringify(e));let t={h1:jr,h2:Or,seen:new WeakMap,nextId:1,nodes:0};oe(t,e);let r=t.h1>>>0,n=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,n^=n>>>16,n=Math.imul(n,668265261),n^=n>>>15,n=Math.imul(n,374761393),n^=n>>>16,(r&2097151)*4294967296+(n>>>0)};var Nr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",ge=e=>{if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.slice();let t={},r=Object.getOwnPropertyDescriptors(e);return Object.entries(r).forEach(([n,o])=>{o.enumerable&&(ne.has(n)||"get"in o||"set"in o||(t[n]=o.value));}),t},Be=e=>{if(typeof e=="function")return "function";if(typeof e=="symbol")return "symbol";if(e===null||typeof e!="object")return null;let t=[["WeakMap",globalThis.WeakMap],["WeakSet",globalThis.WeakSet],["WeakRef",globalThis.WeakRef],["Promise",globalThis.Promise],["ReadableStream",globalThis.ReadableStream],["WritableStream",globalThis.WritableStream],["TransformStream",globalThis.TransformStream],["EventTarget",globalThis.EventTarget]];for(let[n,o]of t)if(typeof o=="function"&&e instanceof o)return n;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Ar=e=>Be(e)===null,Ir=e=>{let t=Be(e);if(t)throw new Error(`deepClone failed: value is not structured-cloneable (${t}). Avoid storing this type in stroid state.`)},J=(e,t=new WeakMap)=>{if(Ir(e),e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((s,p)=>{o.set(J(p,t),J(s,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(s=>{o.add(J(s,t));}),o}if(Array.isArray(e)){let o=[];return t.set(e,o),e.forEach((s,p)=>{o[p]=J(s,t);}),o}let r={};t.set(e,r);let n;try{n=Object.getOwnPropertyDescriptors(e);}catch(o){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${o?.message??o}`)}return Object.entries(n).forEach(([o,s])=>{!s.enumerable||ne.has(o)||"get"in s||"set"in s||(r[o]=J(s.value,t));}),r},I=e=>{if(Nr)try{return structuredClone(e)}catch(t){if(!Ar(e)){let r=Be(e)??"unknown";throw new Error(`deepClone failed: value is not structured-cloneable (${r}). Avoid storing this type in stroid state.`)}return m(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),J(e)}return J(e)};var Pr=e=>{let t=[],r="",n=false;for(let o of e){if(n){r+=o,n=false;continue}if(o==="\\"){n=true;continue}if(o==="."){t.push(r),r="";continue}r+=o;}return n&&(r+="\\"),t.push(r),t},At=e=>Array.isArray(e)?[...e]:typeof e=="string"&&!e.includes(".")?[e]:typeof e=="string"?Pr(e):[String(e)];var Ce=(e,t)=>{let r=At(t),n=e;for(let o of r){if(n==null){m(Et(r,o));return}if(typeof n!="object"){m(Ft(o));return}n=n[o];}return n};var It=({name:e,label:t,fn:r,args:n,reportIssue:o})=>{if(typeof r=="function")try{r(...n);}catch(s){let p=`${t} for "${e}" failed: ${s?.message??s}`;o(p,"always");}};var Vr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(n){let o=n?.message??n;te(`${t} callback threw: ${String(o)}`);}},ke=(e,t={})=>{let{severity:r="warn",visibility:n="dev",onError:o}=t;if(Vr(o,"onError",e),r==="critical"){n==="dev"&&m(e),we(e);return}if(n==="always"){te(e);return}m(e);};M("computed.order-resolver",()=>{},105);var _t=()=>B(ee(Z));var qe=()=>_t().computedEntries,$t=()=>_t().computedDependents;var Wt=e=>Object.prototype.hasOwnProperty.call(qe(),e);var Ue=e=>{let t=qe()[e];if(!t)return null;let r=$t()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var Me=null;var $r=()=>{Me=null;};M("transaction.runner",$r,120);var zt=e=>{let t=Me?.get();return t||(e??B()).transaction};var Te=()=>Me?(Me.get()?.depth??0)>0:zt().depth>0;var Ht=e=>{let t=zt();return t.stagedValues.has(e)?{has:true,value:t.stagedValues.get(e)}:{has:false,value:void 0}};var Bt=e=>{if(typeof e!="object"||e===null)return false;let t=e;if(t.$$typeof||typeof window<"u"&&e instanceof Element)return false;let r=t.constructor?.name;return !(r&&r!=="Object"&&r!=="Array")},ye=e=>(Bt(e)&&(Object.isFrozen(e)||Object.freeze(e)),e),ve=e=>{if(!Bt(e))return e;let t=[e],r=new WeakSet;for(;t.length>0;){let n=t.pop();if(!r.has(n)){r.add(n),Object.isFrozen(n)||Object.freeze(n);for(let o of Object.keys(n)){let s=n[o];typeof s=="object"&&s!==null&&!r.has(s)&&t.push(s);}}}return e};var Ee=(e,t)=>{let r=e?.options?.snapshot??t;return r==="shallow"||r==="ref"?r:"deep"},se=(e,t)=>{if(t==="ref"){if(!v())return e;try{return ye(e)}catch{return e}}if(t==="shallow"){let n=ge(e);if(!v())return n;try{return ye(n)}catch{return n}}let r=I(e);if(!v())return r;try{return ve(r)}catch{return r}};var Gt=new Map;var he=(e,t,r)=>{let n=Gt.get(e);!n||n.size===0||n.forEach(o=>{try{o(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var Wr=()=>{};M("write-context.runner",Wr,121);var je=(e,t)=>{if(!(!e||typeof e!="object")){if(t==="ref"||t==="shallow"){ye(e);return}t==="deep"&&ve(e);}};var Lr=(e,t)=>{if(!Xt(e))return null;let r=P();Qt(e,r);let n=Ee(r.metaEntries[e],T().defaultSnapshotMode);if(Te()){let l=r.transaction.snapshotCache,a=tt(e);if(a===void 0)return null;let u=l.get(e);if(u&&u.source===a&&u.mode===n){let f=u.snapshot;return je(f,n),f}let y=se(a,n);return l.set(e,{source:a,snapshot:y,mode:n}),je(y,n),y}let o=r.notify.flushId,s=tt(e,r),p=r.snapshotCache[e];if(p&&p.source===s&&p.mode===n){let l=p.snapshot;return je(l,n),l}let g=se(s,n);return je(g,n),r.snapshotCache[e]={version:o,snapshot:g,source:s,mode:n},g},Jt=e=>Lr(e);var Br=()=>{let e=P().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};M("notify.reset",Br,40);var qr=()=>P().computedCleanups,Zt=new WeakMap;var Ur=e=>{let t=Zt.get(e);return t||(t=new Map,Zt.set(e,t)),t};var er=e=>{let t=qr(),r=t.get(e);if(!r){v()&&m(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var tr=(e,t=P())=>Ur(t).get(e)?.autoDispose===true;var rr=e=>{let t=e.stores,r=e.subscribers,n=e.initialStates,o=e.initialFactories,s=e.metaEntries,p=e.snapshotCache,g=e.featureRuntimes,l=e.deletingStores,a=(c,R)=>{ke(R,{onError:s[c]?.options?.onError,severity:"warn",visibility:"dev"});},u=({name:c,prev:R,options:b,initialState:E,getMeta:V,getStoreValue:$,hasStore:O})=>({name:c,options:b,prev:R,getMeta:V,getStoreValue:$,getAllStores:()=>t,getInitialState:()=>E,hasStore:O,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:k=>{ke(k,{onError:b.onError,severity:"warn",visibility:"dev"});},warn:m,warnAlways:te,log:re,hashState:Le,deepClone:I,sanitize:ze,validate:()=>({ok:true,value:R}),isDev:v}),y=({name:c,prev:R,options:b,initialState:E,phase:V})=>{let $=u({name:c,prev:R,options:b,initialState:E,getMeta:()=>s[c],getStoreValue:()=>t[c],hasStore:()=>K(e,c)}),O=u({name:c,prev:R,options:b,initialState:E,getMeta:()=>{},getStoreValue:()=>R,hasStore:()=>false});Q().forEach(k=>{let D=g.get(k);V==="before"?D?.beforeStoreDelete?.($):D?.afterStoreDelete?.(O);});},f=c=>{if(!K(e,c))return;let R=t[c],b=s[c].options,E=n[c],V=r[c];l.add(c);try{V?.forEach(k=>{try{k(null);}catch(D){m(`Subscriber for "${c}" threw during delete: ${D?.message??D}`);}}),It({name:c,label:"onDelete",fn:b.onDelete,args:[R],reportIssue:(k,D)=>{ke(k,{onError:b.onError,severity:"warn",visibility:D});}}),y({name:c,prev:R,options:b,initialState:E,phase:"before"}),delete t[c],delete r[c],delete n[c],delete o[c],delete s[c],delete p[c],Wt(c)&&er(c);let O=e.computedDependents[c];if(O)for(let k of [...O]){let D=Ue(k);if(D&&tr(k,e)&&D.deps.every(ce=>!K(e,ce))){f(k);continue}m(`[stroid] source store "${c}" was deleted. Computed store "${k}" depends on it and will return stale data. Call deleteComputed("${k}") to clean up.`);}y({name:c,prev:R,options:b,initialState:E,phase:"after"}),he("afterStoreDelete",c,{type:"afterStoreDelete",prev:R}),Ve(e,{type:"deleted",name:c}),re(`Store "${c}" deleted`);}finally{l.delete(c);}};return {deleteExistingStore:f,clearAllStores:()=>{let c=[],b=0,E=Number.POSITIVE_INFINITY;for(;b<20;){let $=Object.keys(t);if($.length===0)break;$.forEach(k=>{K(e,k)&&(f(k),c.push(k));}),b+=1;let O=Object.keys(t).length;if(O===0||O>=E)break;E=O;}let V=Object.keys(t).length;return V>0?m(`clearAllStores stopped after ${b} pass${b===1?"":"es"}; ${V} store(s) still registered (likely recreated during deletion).`):re(`All stores cleared (${c.length} stores removed)`),c},clearStores:c=>{let R=Object.keys(t).filter(b=>c?c.endsWith("*")?b.startsWith(c.slice(0,-1)):b===c:true);return R.forEach(b=>f(b)),R},reportStoreError:a}};var nt=Z,or=ee(nt);var j=()=>{let e=B(or);return Ie(e),e};var P=()=>j();var ae=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,n)=>(e()[r]=n,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let n=Object.getOwnPropertyDescriptor(e(),r);if(n)return {...n,configurable:true}}}),Gr=e=>new Proxy(new Map,{get:(t,r)=>{let n=e();if(r==="size")return n.size;if(r===Symbol.iterator)return n[Symbol.iterator].bind(n);let o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)}),Kr=e=>new Proxy({},{get:(t,r)=>{let n=e(),o=n[r];return typeof o=="function"?o.bind(n):o},set:(t,r,n)=>(e()[r]=n,true)});ae(()=>j().stores);ae(()=>j().subscribers);ae(()=>j().initialStates);ae(()=>j().initialFactories);var sr=ae(()=>j().metaEntries);ae(()=>j().snapshotCache);var ie=Gr(()=>j().featureRuntimes),nr=new WeakMap,Yr=e=>{let t=nr.get(e);return t||(t=rr(e),nr.set(e,t)),t};Kr(()=>Yr(j()));var Jr=e=>{let t=ie.get(e);if(t)return t;let r=Se(e);if(!r)return;let n=r();return ie.set(e,n),n},Xr=()=>{Q().forEach(e=>{Jr(e);});};Xr();var Xt=(e,t)=>K(j(),e),tt=(e,t=j())=>{if(Te()){let r=Ht(e);if(r.has)return r.value}return rt(e,t)},rt=(e,t=j())=>{let r=be();return r&&Object.prototype.hasOwnProperty.call(r,e)?r[e]:t.stores[e]};var Qt=(e,t=j())=>{let r=t.metaEntries[e];if(!r)return;r.readCount=(r.readCount??0)+1;let n=Date.now();r.lastReadAtMs=n,r.lastReadAt=new Date(n).toISOString();},Qr=()=>{St(j());},Zr=()=>{ie.forEach(e=>{try{e.resetAll?.();}catch{}}),ie.clear();};M("features.reset",Zr,10);M("registries.clear",Qr,20);M("registry.default",()=>{nt=Z,or=ee(nt);},115);var ot=e=>{let t=P();return Object.prototype.hasOwnProperty.call(t.stores,e)},ir=e=>P().stores[e],ar=(e,t)=>{let n=P().subscribers;return n[e]||(n[e]=new Set),n[e].add(t),()=>{n[e]?.delete(t),n[e]?.size===0&&delete n[e];}};var en=(e,t)=>{let r=new WeakMap,n=new WeakMap,o=new Set,s="\0",p=(a,u)=>{if(!a||typeof a!="object")return a;let y=r.get(a);if(y)return y;let f=new Proxy(a,{get(S,h,c){if(typeof h!="string")return Reflect.get(S,h,c);let R=[...u,h],b=Reflect.get(S,h,c);return (!b||typeof b!="object")&&o.add(R.join(s)),p(b,R)}});return n.set(f,u.join(s)),r.set(a,f),f},g=t(p(e,[])),l=(a,u)=>{if(!a||typeof a!="object"||u.has(a))return;u.add(a);let y=n.get(a);if(y){y&&o.add(y);return}for(let f of Object.values(a))l(f,u);};return l(g,new WeakSet),{result:g,deps:Array.from(o,a=>a.split(s))}},tn=(e,t,r)=>r.some(n=>!Object.is(Ce(e,n),Ce(t,n))),Ns=(e,t)=>{let r,n,o=[];return ()=>{let s=ir(e);if(s===void 0)return null;if(s===r)return n??null;if(r!==void 0&&o.length>0&&!tn(r,s,o))return r=s,n??null;let p=T().selectorCloneFrozen,g=s&&typeof s=="object"&&Object.isFrozen(s)&&p?I(s):s,l=en(g,t);return r=s,o=l.deps,n=l.result,n??null}},As=(e,t,r=Object.is,n)=>{if(typeof t!="function"||typeof n!="function")return m(`subscribeWithSelector("${e}") requires selector and listener functions.`),()=>{};let o=false,s,p=()=>{let a=sr[e]?.options?.snapshot;return a==="shallow"||a==="ref"?a:"deep"},g=a=>{let u=a!==void 0?a:Jt(e);if(u===null||typeof u!="object")return u;let y=p();return y==="ref"?u:y==="shallow"?ge(u):I(u)};return ot(e)&&(s=t(g()),o=true),ar(e,a=>{if(a===null||!ot(e)){o=false,s=void 0;return}let u=t(g(a));if(!o){let f=s;o=true,s=u,n(u,f);return}if(!r(u,s)){let f=s;s=u,n(u,f);}})};export{Ns as createSelector,As as subscribeWithSelector};//# sourceMappingURL=selectors.js.map
2
2
  //# sourceMappingURL=selectors.js.map
package/dist/server.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { S as StoreOptions } from './options.js';
2
- import { S as StoreStateMap } from './types.js';
2
+ import { c as StoreStateMap } from './types.js';
3
3
  import { S as StoreRegistry } from './store-registry.js';
4
4
  import './utility.js';
5
5
  import './feature.js';
6
+ import './runtime-patch.js';
6
7
  import './registry.js';
8
+ import './computed-types.js';
7
9
 
8
10
  type RequestStoreName<StateMap> = keyof StateMap extends never ? string : keyof StateMap & string;
9
11
  type RequestStoreValue<StateMap, Name extends RequestStoreName<StateMap>> = Name extends keyof StateMap ? StateMap[Name] : unknown;