stroid 0.1.2 → 0.1.3

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 (105) hide show
  1. package/CHANGELOG.md +27 -2
  2. package/dist/async.js +22 -22
  3. package/dist/async.js.map +1 -1
  4. package/dist/computed.d.ts +7 -1
  5. package/dist/computed.js +11 -11
  6. package/dist/computed.js.map +1 -1
  7. package/dist/core.js +14 -14
  8. package/dist/core.js.map +1 -1
  9. package/dist/devtools.js +1 -1
  10. package/dist/devtools.js.map +1 -1
  11. package/dist/feature.js.map +1 -1
  12. package/dist/helpers.js +14 -14
  13. package/dist/helpers.js.map +1 -1
  14. package/dist/index.d.cts +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.js +24 -24
  17. package/dist/index.js.map +1 -1
  18. package/dist/install.js +1 -1
  19. package/dist/install.js.map +1 -1
  20. package/dist/persist.js +1 -1
  21. package/dist/persist.js.map +1 -1
  22. package/dist/react/index.js +25 -25
  23. package/dist/react/index.js.map +1 -1
  24. package/dist/runtime-admin.js +1 -1
  25. package/dist/runtime-admin.js.map +1 -1
  26. package/dist/runtime-tools.js +2 -2
  27. package/dist/runtime-tools.js.map +1 -1
  28. package/dist/selectors.js +1 -1
  29. package/dist/selectors.js.map +1 -1
  30. package/dist/server.js +11 -11
  31. package/dist/server.js.map +1 -1
  32. package/dist/store-registry.d.ts +0 -1
  33. package/dist/sync.js +1 -1
  34. package/dist/sync.js.map +1 -1
  35. package/dist/testing.js +14 -14
  36. package/dist/testing.js.map +1 -1
  37. package/package.json +4 -1
  38. package/dist/types/adapters/options.d.ts +0 -335
  39. package/dist/types/async/cache.d.ts +0 -39
  40. package/dist/types/async/clone.d.ts +0 -10
  41. package/dist/types/async/errors.d.ts +0 -3
  42. package/dist/types/async/fetch.d.ts +0 -37
  43. package/dist/types/async/inflight.d.ts +0 -13
  44. package/dist/types/async/rate.d.ts +0 -5
  45. package/dist/types/async/registry.d.ts +0 -116
  46. package/dist/types/async/request.d.ts +0 -11
  47. package/dist/types/async/retry.d.ts +0 -10
  48. package/dist/types/async.d.ts +0 -10
  49. package/dist/types/computed/computed-graph.d.ts +0 -29
  50. package/dist/types/computed/index.d.ts +0 -16
  51. package/dist/types/config.d.ts +0 -10
  52. package/dist/types/core/index.d.ts +0 -11
  53. package/dist/types/core/lifecycle-hooks.d.ts +0 -16
  54. package/dist/types/core/store-admin-impl.d.ts +0 -9
  55. package/dist/types/core/store-admin.d.ts +0 -9
  56. package/dist/types/core/store-core.d.ts +0 -13
  57. package/dist/types/core/store-create.d.ts +0 -16
  58. package/dist/types/core/store-hydrate-impl.d.ts +0 -35
  59. package/dist/types/core/store-hydrate.d.ts +0 -9
  60. package/dist/types/core/store-lifecycle/hooks.d.ts +0 -19
  61. package/dist/types/core/store-lifecycle/identity.d.ts +0 -23
  62. package/dist/types/core/store-lifecycle/registry.d.ts +0 -53
  63. package/dist/types/core/store-lifecycle/types.d.ts +0 -67
  64. package/dist/types/core/store-lifecycle/validation.d.ts +0 -53
  65. package/dist/types/core/store-name.d.ts +0 -28
  66. package/dist/types/core/store-notify.d.ts +0 -12
  67. package/dist/types/core/store-read.d.ts +0 -18
  68. package/dist/types/core/store-registry.d.ts +0 -108
  69. package/dist/types/core/store-replace-impl.d.ts +0 -11
  70. package/dist/types/core/store-replace.d.ts +0 -9
  71. package/dist/types/core/store-set-impl.d.ts +0 -13
  72. package/dist/types/core/store-set.d.ts +0 -9
  73. package/dist/types/core/store-shared/core.d.ts +0 -13
  74. package/dist/types/core/store-shared/notify.d.ts +0 -12
  75. package/dist/types/core/store-transaction.d.ts +0 -26
  76. package/dist/types/core/store-write-shared.d.ts +0 -19
  77. package/dist/types/core/store-write.d.ts +0 -13
  78. package/dist/types/features/feature-registry.d.ts +0 -91
  79. package/dist/types/features/lifecycle.d.ts +0 -40
  80. package/dist/types/index.d.ts +0 -17
  81. package/dist/types/integrations/query.d.ts +0 -8
  82. package/dist/types/internals/computed-order.d.ts +0 -3
  83. package/dist/types/internals/config.d.ts +0 -116
  84. package/dist/types/internals/diagnostics.d.ts +0 -21
  85. package/dist/types/internals/reporting.d.ts +0 -9
  86. package/dist/types/internals/store-admin.d.ts +0 -7
  87. package/dist/types/internals/store-ops.d.ts +0 -13
  88. package/dist/types/internals/test-reset.d.ts +0 -2
  89. package/dist/types/internals/write-context.d.ts +0 -15
  90. package/dist/types/notification/delivery.d.ts +0 -3
  91. package/dist/types/notification/index.d.ts +0 -10
  92. package/dist/types/notification/metrics.d.ts +0 -12
  93. package/dist/types/notification/priority.d.ts +0 -9
  94. package/dist/types/notification/scheduler.d.ts +0 -11
  95. package/dist/types/notification/snapshot.d.ts +0 -8
  96. package/dist/types/runtime-admin/index.d.ts +0 -2
  97. package/dist/types/runtime-tools/index.d.ts +0 -58
  98. package/dist/types/store.d.ts +0 -16
  99. package/dist/types/types/utility.d.ts +0 -17
  100. package/dist/types/utils/clone.d.ts +0 -4
  101. package/dist/types/utils/devfreeze.d.ts +0 -2
  102. package/dist/types/utils/hash.d.ts +0 -8
  103. package/dist/types/utils/path.d.ts +0 -5
  104. package/dist/types/utils/validation.d.ts +0 -14
  105. package/dist/types/utils.d.ts +0 -13
package/dist/devtools.js CHANGED
@@ -1,2 +1,2 @@
1
- var xe=new Map,tt=null,rt=(e,t)=>{xe.set(e,t),tt?.(e,t);};var ge=e=>xe.get(e),X=()=>Array.from(xe.keys()),ot=e=>{tt=e;};var Gt=new Map,M=(e,t,r=0)=>{!e||typeof t!="function"||Gt.set(e,{name:e,order:r,fn:t});};var nt=()=>new Map([["noSignal",new Set],["shape",new Set],["autoCreate",new Set],["mutableResult",new Set]]),st=()=>({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:nt(),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}}),it=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(o=>{try{o();}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(),nt().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 ve=new Map,at=new WeakSet,Me=e=>{at.has(e)||(at.add(e),X().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=ge(t);r&&e.featureRuntimes.set(t,r());}}));},Xt=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,ct,Fe=e=>(ct||Xt||e).replace(/\.ts(\?|$)/,".js$1"),J=Fe(new URL("../../store.js",import.meta.url).href);var Jt=()=>{ct=void 0,ve.clear();};M("registry.scope-override",Jt,110);var Qt=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],subscriberBuffer:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),Zt=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;},er=()=>({depth:0,pending:[],stagedValues:new Map,snapshotCache:new Map,failed:false,error:void 0}),tr=(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:er(),async:st(),notify:Qt(),lifecycleListener:null};return Me(t),t},Q=e=>{let t=Fe(e),r=ve.get(t);if(r)return r;let o=tr();return ve.set(t,o),o},ce=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var ut=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,Zt(e.notify),it(e.async),e.lifecycleListener=null;};var Ee=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var $=[],dt={run:(e,t)=>{$.push(e);try{return t()}finally{$.pop();}},get:()=>$.length>0?$[$.length-1]:null,enterWith:e=>{if($.length>0){$[$.length-1]=e;return}$.push(e);}};var Z=e=>(dt).get()||e||Q(J);var or={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}`));}},pt={logSink:or,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},je=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}),De=new WeakMap,gt=je(pt),nr=e=>{let t=De.get(e);return t||(t=je(gt),De.set(e,t)),t};var j=()=>nr(Z());var cr=()=>{De=new WeakMap,gt=je(pt);};M("config.reset",cr,90);var ur=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,lr=typeof import.meta<"u"&&import.meta?.env?.MODE?import.meta.env.MODE:void 0,yt=typeof globalThis<"u"&&typeof globalThis.__STROID_DEV__=="boolean"?globalThis.__STROID_DEV__:void 0,dr="production",fr=ur??lr??dr,ye=typeof yt=="boolean"?yt:fr!=="production",x=()=>ye,St=(e,t)=>{typeof console<"u"&&typeof console.warn=="function"&&(t?console.warn(`[stroid] ${e}`,t):console.warn(`[stroid] ${e}`));},pr=(e,t)=>{typeof console<"u"&&typeof console.error=="function"&&(t?console.error(`[stroid] ${e}`,t):console.error(`[stroid] ${e}`));},gr=(e,t)=>{typeof console<"u"&&typeof console.log=="function"&&(t?console.log(`[stroid] ${e}`,t):console.log(`[stroid] ${e}`));},Oe=(e,t)=>{if((j().logSink.critical??pr)(e,t),j().assertRuntime)throw new Error(e)},g=(e,t)=>{if(!ye)return;if((j().logSink.warn??St)(e,t),j().assertRuntime)throw new Error(e)},ee=(e,t)=>{if((j().logSink.warn??St)(e,t),j().assertRuntime)throw new Error(e)};var ue=(e,t)=>{if(!ye)return;(j().logSink.log??gr)(e,t);};var mt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",ht=()=>"Map detected; converting to plain object.",bt=()=>"Set detected; converting to array.";var te=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,Sr=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 le=(e,t)=>{let r=Sr(e);if(r)throw new Error(`${r} values are not supported`);let o=wt(e);if(o==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(o==="bigint")throw new Error("BigInt values are not supported");if(o==="symbol")throw new Error("Symbol values are not supported");if(o==="date")return x()&&g(mt()),e.toISOString();if(o==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),x()&&g(ht());let n={};for(let[s,u]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");n[String(s)]=le(u,t);}return n}if(o==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),x()&&g(bt()),Array.from(e,n=>le(n,t))}if(o==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let n={},s=Object.getOwnPropertyDescriptors(e);for(let[u,f]of Object.entries(s))if(f.enumerable&&!te.has(u)){if("get"in f||"set"in f)throw new Error(`Accessor properties are not supported during sanitize ("${u}")`);n[u]=le(f.value,t);}return n}if(o==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(n=>le(n,t))}return e},Ne=e=>le(e,new WeakSet);var Ae=null,mr=()=>{if(Ae)return Ae;let e,t=[];for(let r=0;r<256;r++){e=r;for(let o=0;o<8;o++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return Ae=t,t},Ct=e=>{let t=mr(),r=-1;for(let o=0;o<e.length;o++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(o))&255];return (r^-1)>>>0},hr=2166136261,br=2654435761,wr=1e5,W=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},K=(e,t)=>{W(e,t.length);for(let r=0;r<t.length;r++)W(e,t.charCodeAt(r));},w=(e,t)=>{K(e,t);},Rt=(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"),W(e,r);return}w(e,"num"),K(e,String(t));},re=(e,t)=>{if(e.nodes++>wr){w(e,"[max]");return}if(t===null){w(e,"null");return}let r=typeof t;if(r==="string"){w(e,"string"),K(e,t);return}if(r==="number"){w(e,"number"),Rt(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"),K(e,t.toString());return}if(r==="symbol"){w(e,"symbol");let l=t;K(e,Symbol.keyFor(l)??l.description??String(l));return}if(r==="function"){w(e,"function"),K(e,t.name||"anonymous");return}let o=t,n=e.seen.get(o);if(n!==void 0){w(e,"ref"),W(e,n);return}let s=e.nextId++;if(e.seen.set(o,s),Array.isArray(o)){w(e,"array"),W(e,o.length);for(let l=0;l<o.length;l++)Object.prototype.hasOwnProperty.call(o,l)?re(e,o[l]):w(e,"hole");return}if(o instanceof Date){w(e,"date"),Rt(e,o.getTime());return}if(o instanceof Map){w(e,"map"),W(e,o.size),o.forEach((l,p)=>{re(e,p),re(e,l);});return}if(o instanceof Set){w(e,"set"),W(e,o.size),o.forEach(l=>{re(e,l);});return}w(e,"object");let u=Object.getOwnPropertyDescriptors(o),f=[];Object.entries(u).forEach(([l,p])=>{p?.enumerable&&(te.has(l)||"get"in p||"set"in p||f.push([l,p]));}),W(e,f.length);for(let[l,p]of f)K(e,l),re(e,p.value);},Ve=e=>{if(typeof e=="string")return Ct(JSON.stringify(e));let t={h1:hr,h2:br,seen:new WeakMap,nextId:1,nodes:0};re(t,e);let r=t.h1>>>0,o=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,o^=o>>>16,o=Math.imul(o,668265261),o^=o>>>15,o=Math.imul(o,374761393),o^=o>>>16,(r&2097151)*4294967296+(o>>>0)};var Rr=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[o,n]of t)if(typeof n=="function"&&e instanceof n)return o;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},Cr=e=>_e(e)===null,kr=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(kr(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 n=new Map;return t.set(e,n),e.forEach((s,u)=>{n.set(Y(u,t),Y(s,t));}),n}if(e instanceof Set){let n=new Set;return t.set(e,n),e.forEach(s=>{n.add(Y(s,t));}),n}if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((s,u)=>{n[u]=Y(s,t);}),n}let r={};t.set(e,r);let o;try{o=Object.getOwnPropertyDescriptors(e);}catch(n){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${n?.message??n}`)}return Object.entries(o).forEach(([n,s])=>{!s.enumerable||te.has(n)||"get"in s||"set"in s||(r[n]=Y(s.value,t));}),r},L=e=>{if(Rr)try{return structuredClone(e)}catch(t){if(!Cr(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 g(`deepClone fell back to manual clone after structuredClone failed: ${t?.message??t}`),Y(e)}return Y(e)};var xr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(o){let n=o?.message??o;ee(`${t} callback threw: ${String(n)}`);}},Se=(e,t={})=>{let{severity:r="warn",visibility:o="dev",onError:n}=t;if(xr(n,"onError",e),r==="critical"){o==="dev"&&g(e),Oe(e);return}if(o==="always"){ee(e);return}g(e);};var kt=false,xt=e=>{try{return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return e}},vr=({name:e,useDevtools:t,existingDevtools:r,stores:o,warn:n})=>{if(!t||typeof window>"u")return r;let s=window.__REDUX_DEVTOOLS_EXTENSION__||window.__REDUX_DEVTOOLS_EXTENSION__;if(!s||typeof s.connect!="function")return n(`DevTools requested for "${e}" but Redux DevTools extension not found.`),r;if(r)return r;let u=s.connect({name:"stroid"});return u.init(o),u},me=({data:e,redactor:t,deepClone:r})=>{if(typeof t=="function")try{return t(r(e))}catch{return e}return e},Mr=(e,t)=>{if(typeof e!="object"||typeof t!="object"||e===null||t===null)return null;let r=e,o=t,n=[],s=[],u=[],f=new Set(Object.keys(r)),l=new Set(Object.keys(o));return l.forEach(p=>{f.has(p)?Object.is(r[p],o[p])||u.push(p):n.push(p);}),f.forEach(p=>{l.has(p)||s.push(p);}),{added:n,removed:s,changed:u}},vt=({name:e,action:t,prev:r,next:o,history:n,historyLimit:s,applyRedactor:u,deepClone:f})=>{if(s===0)return;n[e]||(n[e]=[]);let l={ts:Date.now(),action:t,prev:f(u(r)),next:f(u(o)),diff:Mr(r,o)};n[e].push(l),n[e].length>s&&n[e].splice(0,n[e].length-s);},Mt=({name:e,action:t,force:r=false,devtools:o,enabled:n,stores:s,applyRedactor:u})=>{if(!(!o||!r&&!n))try{let f={...s,[e]:u(s[e])};o.send({type:`${e}/${t}`},f);}catch{}},Fr=()=>{let e=Object.create(null),t;return {onStoreCreate(r){t=vr({name:r.name,useDevtools:!!r.options.devtools,existingDevtools:t,stores:r.getAllStores(),warn:r.warn}),vt({name:r.name,action:"create",prev:null,next:r.getStoreValue(),history:e,historyLimit:r.options.historyLimit??50,applyRedactor:o=>me({data:o,redactor:r.options.redactor,deepClone:r.deepClone}),deepClone:r.deepClone});},onStoreWrite(r){vt({name:r.name,action:r.action,prev:r.prev,next:r.next,history:e,historyLimit:r.options.historyLimit??50,applyRedactor:o=>me({data:o,redactor:r.options.redactor,deepClone:r.deepClone}),deepClone:r.deepClone}),Mt({name:r.name,action:r.action,devtools:t,enabled:!!r.options.devtools,stores:r.getAllStores(),applyRedactor:o=>me({data:o,redactor:r.options.redactor,deepClone:r.deepClone})});},afterStoreDelete(r){r.options.devtools&&Mt({name:r.name,action:"delete",force:true,devtools:t,enabled:true,stores:r.getAllStores(),applyRedactor:o=>me({data:o,redactor:r.options.redactor,deepClone:r.deepClone})}),delete e[r.name];},resetAll(){Object.keys(e).forEach(r=>{delete e[r];}),t=void 0;},api:{getHistory(r,o){if(!e[r])return [];let n=e[r];return o&&o>0?xt(n.slice(-o)):xt(n)},clearHistory(r){if(r){delete e[r];return}Object.keys(e).forEach(o=>{delete e[o];});}}}},Ft=()=>{kt||(kt=true,rt("devtools",Fr));};var Et=()=>{Ft();};var Tt=({name:e,label:t,fn:r,args:o,reportIssue:n})=>{if(typeof r=="function")try{r(...o);}catch(s){let u=`${t} for "${e}" failed: ${s?.message??s}`;n(u,"always");}};M("computed.order-resolver",()=>{},105);var Ot=()=>Z(Q(J)),Nt=()=>Ot().computedEntries;var At=e=>Object.prototype.hasOwnProperty.call(Nt(),e);var Dr=new Set;var jr=()=>{Dr.clear();};M("ssr.warnings",jr,60);var be=e=>B.get(e)?.api;var zt=new Map;var fe=(e,t,r)=>{let o=zt.get(e);!o||o.size===0||o.forEach(n=>{try{n(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var _r=()=>{let e=pe().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.subscriberBuffer.length=0,e.notifyScheduled=false,e.batchDepth=0;};M("notify.reset",_r,40);var Pr=()=>pe().computedCleanups;var Bt=e=>{let t=Pr(),r=t.get(e);if(!r){x()&&g(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var Ut=e=>{let t=e.stores,r=e.subscribers,o=e.initialStates,n=e.initialFactories,s=e.metaEntries,u=e.snapshotCache,f=e.featureRuntimes,l=e.deletingStores,p=(a,C)=>{Se(C,{onError:s[a]?.options?.onError,severity:"warn",visibility:"dev"});},S=({name:a,prev:C,options:m,initialState:E,getMeta:T,getStoreValue:_,hasStore:D})=>({name:a,options:m,prev:C,getMeta:T,getStoreValue:_,getAllStores:()=>t,getInitialState:()=>E,hasStore:D,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:k=>{Se(k,{onError:m.onError,severity:"warn",visibility:"dev"});},warn:g,warnAlways:ee,log:ue,hashState:Ve,deepClone:L,sanitize:Ne,validate:()=>({ok:true,value:C}),isDev:x}),h=({name:a,prev:C,options:m,initialState:E,phase:T})=>{let _=S({name:a,prev:C,options:m,initialState:E,getMeta:()=>s[a],getStoreValue:()=>t[a],hasStore:()=>ce(e,a)}),D=S({name:a,prev:C,options:m,initialState:E,getMeta:()=>{},getStoreValue:()=>C,hasStore:()=>false});X().forEach(k=>{let A=f.get(k);T==="before"?A?.beforeStoreDelete?.(_):A?.afterStoreDelete?.(D);});},y=a=>{if(!ce(e,a))return;let C=t[a],m=s[a].options,E=o[a],T=r[a];l.add(a);try{T?.forEach(k=>{try{k(null);}catch(A){g(`Subscriber for "${a}" threw during delete: ${A?.message??A}`);}}),Tt({name:a,label:"onDelete",fn:m.onDelete,args:[C],reportIssue:(k,A)=>{Se(k,{onError:m.onError,severity:"warn",visibility:A});}}),h({name:a,prev:C,options:m,initialState:E,phase:"before"}),delete t[a],delete r[a],delete o[a],delete n[a],delete s[a],delete u[a],At(a)&&Bt(a);let D=e.computedDependents[a];if(D)for(let k of D)g(`[stroid] source store "${a}" was deleted. Computed store "${k}" depends on it and will return stale data. Call deleteComputed("${k}") to clean up.`);h({name:a,prev:C,options:m,initialState:E,phase:"after"}),fe("afterStoreDelete",a,{type:"afterStoreDelete",prev:C}),Ee(e,{type:"deleted",name:a}),ue(`Store "${a}" deleted`);}finally{l.delete(a);}};return {deleteExistingStore:y,clearAllStores:()=>{let a=[],m=0,E=Number.POSITIVE_INFINITY;for(;m<20;){let _=Object.keys(t);if(_.length===0)break;_.forEach(k=>{ce(e,k)&&(y(k),a.push(k));}),m+=1;let D=Object.keys(t).length;if(D===0||D>=E)break;E=D;}let T=Object.keys(t).length;return T>0?g(`clearAllStores stopped after ${m} pass${m===1?"":"es"}; ${T} store(s) still registered (likely recreated during deletion).`):g(`All stores cleared (${a.length} stores removed)`),a},clearStores:a=>{let C=Object.keys(t).filter(m=>a?a.endsWith("*")?m.startsWith(a.slice(0,-1)):m===a:true);return C.forEach(m=>y(m)),C},reportStoreError:p}};var Ye=J,Kt=Q(Ye);var I=()=>{let e=Z(Kt);return Me(e),e};var pe=()=>I();var oe=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,o)=>(e()[r]=o,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let o=Object.getOwnPropertyDescriptor(e(),r);if(o)return {...o,configurable:true}}}),Hr=e=>new Proxy(new Map,{get:(t,r)=>{let o=e();if(r==="size")return o.size;if(r===Symbol.iterator)return o[Symbol.iterator].bind(o);let n=o[r];return typeof n=="function"?n.bind(o):n},set:(t,r,o)=>(e()[r]=o,true)}),$r=e=>new Proxy({},{get:(t,r)=>{let o=e(),n=o[r];return typeof n=="function"?n.bind(o):n},set:(t,r,o)=>(e()[r]=o,true)});oe(()=>I().stores);oe(()=>I().subscribers);oe(()=>I().initialStates);oe(()=>I().initialFactories);oe(()=>I().metaEntries);oe(()=>I().snapshotCache);var B=Hr(()=>I().featureRuntimes),qt=new WeakMap,zr=e=>{let t=qt.get(e);return t||(t=Ut(e),qt.set(e,t)),t};$r(()=>zr(I()));var Wr=e=>{let t=B.get(e);if(t)return t;let r=ge(e);if(!r)return;let o=r();return B.set(e,o),o},Lr=()=>{X().forEach(e=>{Wr(e);});};ot((e,t)=>{B.get(e)||B.set(e,t());});Lr();var Br=()=>{ut(I());},Ur=()=>{B.forEach(e=>{try{e.resetAll?.();}catch{}}),B.clear();};M("features.reset",Ur,10);M("registries.clear",Br,20);M("registry.default",()=>{Ye=J,Kt=Q(Ye);},115);var qr=(e,t)=>be("devtools")?.getHistory?.(e,t)??[],Kr=e=>{be("devtools")?.clearHistory?.(e);};Et();export{Kr as clearHistory,qr as getHistory,Et as installDevtools};//# sourceMappingURL=devtools.js.map
1
+ var ve=new Map,ot=null,nt=(e,t)=>{ve.set(e,t),ot?.(e,t);};var ye=e=>ve.get(e),X=()=>Array.from(ve.keys()),st=e=>{ot=e;};var Qt=new Map,v=(e,t,r=0)=>{!e||typeof t!="function"||Qt.set(e,{name:e,order:r,fn:t});};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}}),ct=e=>{Object.values(e.storeCleanups).forEach(t=>{Object.values(t).forEach(r=>{r?.forEach(o=>{try{o();}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 Me=new Map,ut=new WeakSet,Fe=e=>{ut.has(e)||(ut.add(e),X().forEach(t=>{if(!e.featureRuntimes.get(t)){let r=ye(t);r&&e.featureRuntimes.set(t,r());}}));},Zt=typeof __STROID_REGISTRY_ID__<"u"&&__STROID_REGISTRY_ID__||typeof process<"u"&&process.env?.STROID_REGISTRY_ID||void 0,lt,Ee=e=>(lt||Zt||e).replace(/\.ts(\?|$)/,".js$1"),J=Ee("stroid:default-registry");var er=()=>{lt=void 0,Me.clear();};v("registry.scope-override",er,110);var tr=()=>({pendingNotifications:new Set,pendingBuffer:[],orderedNames:[],notifyScheduled:false,batchDepth:0,flushId:0,isFlushing:false}),rr=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}),nr=(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:tr(),lifecycleListener:null};return Fe(t),t},Q=e=>{let t=Ee(e),r=Me.get(t);if(r)return r;let o=nr();return Me.set(t,o),o},Z=(e,t)=>Object.prototype.hasOwnProperty.call(e.stores,t);var dt=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,rr(e.notify),ct(e.async),e.lifecycleListener=null;};var Te=(e,t)=>{try{e.lifecycleListener?.(t);}catch{}};var $=[],ft={run:(e,t)=>{$.push(e);try{return t()}finally{$.pop();}},get:()=>$.length>0?$[$.length-1]:null,enterWith:e=>{if($.length>0){$[$.length-1]=e;return}$.push(e);}};var ee=e=>(ft).get()||e||Q(J);var ir={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}`));}},yt={logSink:ir,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,St=Oe(yt),ar=e=>{let t=je.get(e);return t||(t=Oe(St),je.set(e,t)),t};var j=()=>ar(ee());var dr=()=>{je=new WeakMap,St=Oe(yt);};v("config.reset",dr,90);var pr=typeof process<"u"&&typeof process.env?.NODE_ENV=="string"?process.env.NODE_ENV:void 0,fr=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,gr="production",yr=pr??fr??gr,Se=typeof mt=="boolean"?mt:yr!=="production",M=()=>Se,ht=(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}`));},Ne=(e,t)=>{if((j().logSink.critical??Sr)(e,t),j().assertRuntime)throw new Error(e)},g=(e,t)=>{if(!Se)return;if((j().logSink.warn??ht)(e,t),j().assertRuntime)throw new Error(e)},te=(e,t)=>{if((j().logSink.warn??ht)(e,t),j().assertRuntime)throw new Error(e)};var re=(e,t)=>{if(!Se)return;(j().logSink.log??mr)(e,t);};var bt=()=>"Date detected; stored as ISO string. Use new Date(value) when reading.",wt=()=>"Map detected; converting to plain object.",Rt=()=>"Set detected; converting to array.";var oe=new Set(["__proto__","constructor","prototype"]);var Ct=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,br=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=br(e);if(r)throw new Error(`${r} values are not supported`);let o=Ct(e);if(o==="number"){if(!Number.isFinite(e))throw new Error("Non-finite numbers are not supported");return e}if(o==="bigint")throw new Error("BigInt values are not supported");if(o==="symbol")throw new Error("Symbol values are not supported");if(o==="date")return M()&&g(bt()),e.toISOString();if(o==="map"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e),M()&&g(wt());let n={};for(let[s,u]of e){if(typeof s!="string")throw new Error("Map keys must be strings to remain JSON-safe");n[String(s)]=pe(u,t);}return n}if(o==="set"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),M()&&g(Rt()),Array.from(e,n=>pe(n,t))}if(o==="object"){if(t.has(e))throw new Error("Circular reference detected during sanitize");t.add(e);let n={},s=Object.getOwnPropertyDescriptors(e);for(let[u,d]of Object.entries(s))if(d.enumerable&&!oe.has(u)){if("get"in d||"set"in d)throw new Error(`Accessor properties are not supported during sanitize ("${u}")`);n[u]=pe(d.value,t);}return n}if(o==="array"){if(t.has(e))throw new Error("Circular reference detected during sanitize");return t.add(e),e.map(n=>pe(n,t))}return e},Ae=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 o=0;o<8;o++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e>>>0;}return Ve=t,t},xt=e=>{let t=wr(),r=-1;for(let o=0;o<e.length;o++)r=r>>>0,r=r>>>8^t[(r^e.charCodeAt(o))&255];return (r^-1)>>>0},Rr=2166136261,Cr=2654435761,kr=1e5,z=(e,t)=>{let r=t>>>0;e.h1=Math.imul(e.h1^r,2246822507),e.h2=Math.imul(e.h2^r,3266489909);},K=(e,t)=>{z(e,t.length);for(let r=0;r<t.length;r++)z(e,t.charCodeAt(r));},R=(e,t)=>{K(e,t);},kt=(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"),z(e,r);return}R(e,"num"),K(e,String(t));},ne=(e,t)=>{if(e.nodes++>kr){R(e,"[max]");return}if(t===null){R(e,"null");return}let r=typeof t;if(r==="string"){R(e,"string"),K(e,t);return}if(r==="number"){R(e,"number"),kt(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"),K(e,t.toString());return}if(r==="symbol"){R(e,"symbol");let l=t;K(e,Symbol.keyFor(l)??l.description??String(l));return}if(r==="function"){R(e,"function"),K(e,t.name||"anonymous");return}let o=t,n=e.seen.get(o);if(n!==void 0){R(e,"ref"),z(e,n);return}let s=e.nextId++;if(e.seen.set(o,s),Array.isArray(o)){R(e,"array"),z(e,o.length);for(let l=0;l<o.length;l++)Object.prototype.hasOwnProperty.call(o,l)?ne(e,o[l]):R(e,"hole");return}if(o instanceof Date){R(e,"date"),kt(e,o.getTime());return}if(o instanceof Map){R(e,"map"),z(e,o.size),o.forEach((l,p)=>{ne(e,p),ne(e,l);});return}if(o instanceof Set){R(e,"set"),z(e,o.size),o.forEach(l=>{ne(e,l);});return}R(e,"object");let u=Object.getOwnPropertyDescriptors(o),d=[];Object.entries(u).forEach(([l,p])=>{p?.enumerable&&(oe.has(l)||"get"in p||"set"in p||d.push([l,p]));}),z(e,d.length);for(let[l,p]of d)K(e,l),ne(e,p.value);},Ie=e=>{if(typeof e=="string")return xt(JSON.stringify(e));let t={h1:Rr,h2:Cr,seen:new WeakMap,nextId:1,nodes:0};ne(t,e);let r=t.h1>>>0,o=t.h2>>>0;return r^=r>>>16,r=Math.imul(r,2246822507),r^=r>>>13,r=Math.imul(r,3266489909),r^=r>>>16,o^=o>>>16,o=Math.imul(o,668265261),o^=o>>>15,o=Math.imul(o,374761393),o^=o>>>16,(r&2097151)*4294967296+(o>>>0)};var xr=typeof globalThis<"u"&&typeof globalThis.structuredClone=="function",Pe=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[o,n]of t)if(typeof n=="function"&&e instanceof n)return o;let r=globalThis.Node;return typeof r=="function"&&e instanceof r?"DOM Node":null},vr=e=>Pe(e)===null,Mr=e=>{let t=Pe(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(Mr(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 n=new Map;return t.set(e,n),e.forEach((s,u)=>{n.set(Y(u,t),Y(s,t));}),n}if(e instanceof Set){let n=new Set;return t.set(e,n),e.forEach(s=>{n.add(Y(s,t));}),n}if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((s,u)=>{n[u]=Y(s,t);}),n}let r={};t.set(e,r);let o;try{o=Object.getOwnPropertyDescriptors(e);}catch(n){throw new Error(`deepClone failed to read object descriptors (possible Proxy or host object): ${n?.message??n}`)}return Object.entries(o).forEach(([n,s])=>{!s.enumerable||oe.has(n)||"get"in s||"set"in s||(r[n]=Y(s.value,t));}),r},L=e=>{if(xr)try{return structuredClone(e)}catch(t){if(!vr(e)){let r=Pe(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}`),Y(e)}return Y(e)};var Fr=(e,t,...r)=>{if(typeof e=="function")try{e(...r);}catch(o){let n=o?.message??o;te(`${t} callback threw: ${String(n)}`);}},me=(e,t={})=>{let{severity:r="warn",visibility:o="dev",onError:n}=t;if(Fr(n,"onError",e),r==="critical"){o==="dev"&&g(e),Ne(e);return}if(o==="always"){te(e);return}g(e);};var vt=({name:e,label:t,fn:r,args:o,reportIssue:n})=>{if(typeof r=="function")try{r(...o);}catch(s){let u=`${t} for "${e}" failed: ${s?.message??s}`;n(u,"always");}};v("computed.order-resolver",()=>{},105);var Et=()=>ee(Q(J)),He=()=>Et().computedEntries,Tt=()=>Et().computedDependents;var Dt=e=>Object.prototype.hasOwnProperty.call(He(),e);var $e=e=>{let t=He()[e];if(!t)return null;let r=Tt()[e];return {deps:[...t.deps],dependents:r?[...r]:[]}};var Tr=new Set;var Dr=()=>{Tr.clear();};v("ssr.warnings",Dr,60);var be=e=>B.get(e)?.api;var _t=new Map;var ge=(e,t,r)=>{let o=_t.get(e);!o||o.size===0||o.forEach(n=>{try{n(t,r);}catch(s){typeof console<"u"&&console.warn&&console.warn(`[stroid] lifecycle hook "${e}" failed:`,s);}});};var Ar=()=>{};v("write-context.runner",Ar,121);var _r=()=>{let e=se().notify;e.pendingNotifications.clear(),e.pendingBuffer.length=0,e.orderedNames.length=0,e.notifyScheduled=false,e.batchDepth=0;};v("notify.reset",_r,40);var Pr=()=>se().computedCleanups,$t=new WeakMap;var Hr=e=>{let t=$t.get(e);return t||(t=new Map,$t.set(e,t)),t};var Wt=e=>{let t=Pr(),r=t.get(e);if(!r){M()&&g(`deleteComputed("${e}") -- not found`);return}r(),t.delete(e);};var zt=(e,t=se())=>Hr(t).get(e)?.autoDispose===true;var Lt=e=>{let t=e.stores,r=e.subscribers,o=e.initialStates,n=e.initialFactories,s=e.metaEntries,u=e.snapshotCache,d=e.featureRuntimes,l=e.deletingStores,p=(a,b)=>{me(b,{onError:s[a]?.options?.onError,severity:"warn",visibility:"dev"});},S=({name:a,prev:b,options:h,initialState:F,getMeta:A,getStoreValue:_,hasStore:T})=>({name:a,options:h,prev:b,getMeta:A,getStoreValue:_,getAllStores:()=>t,getInitialState:()=>F,hasStore:T,setStoreValue:()=>{},applyFeatureState:()=>{},notify:()=>{},reportStoreError:k=>{me(k,{onError:h.onError,severity:"warn",visibility:"dev"});},warn:g,warnAlways:te,log:re,hashState:Ie,deepClone:L,sanitize:Ae,validate:()=>({ok:true,value:b}),isDev:M}),C=({name:a,prev:b,options:h,initialState:F,phase:A})=>{let _=S({name:a,prev:b,options:h,initialState:F,getMeta:()=>s[a],getStoreValue:()=>t[a],hasStore:()=>Z(e,a)}),T=S({name:a,prev:b,options:h,initialState:F,getMeta:()=>{},getStoreValue:()=>b,hasStore:()=>false});X().forEach(k=>{let D=d.get(k);A==="before"?D?.beforeStoreDelete?.(_):D?.afterStoreDelete?.(T);});},f=a=>{if(!Z(e,a))return;let b=t[a],h=s[a].options,F=o[a],A=r[a];l.add(a);try{A?.forEach(k=>{try{k(null);}catch(D){g(`Subscriber for "${a}" threw during delete: ${D?.message??D}`);}}),vt({name:a,label:"onDelete",fn:h.onDelete,args:[b],reportIssue:(k,D)=>{me(k,{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 o[a],delete n[a],delete s[a],delete u[a],Dt(a)&&Wt(a);let T=e.computedDependents[a];if(T)for(let k of [...T]){let D=$e(k);if(D&&zt(k,e)&&D.deps.every(ae=>!Z(e,ae))){f(k);continue}g(`[stroid] source store "${a}" was deleted. Computed store "${k}" depends on it and will return stale data. Call deleteComputed("${k}") to clean up.`);}C({name:a,prev:b,options:h,initialState:F,phase:"after"}),ge("afterStoreDelete",a,{type:"afterStoreDelete",prev:b}),Te(e,{type:"deleted",name:a}),re(`Store "${a}" deleted`);}finally{l.delete(a);}};return {deleteExistingStore:f,clearAllStores:()=>{let a=[],h=0,F=Number.POSITIVE_INFINITY;for(;h<20;){let _=Object.keys(t);if(_.length===0)break;_.forEach(k=>{Z(e,k)&&(f(k),a.push(k));}),h+=1;let T=Object.keys(t).length;if(T===0||T>=F)break;F=T;}let A=Object.keys(t).length;return A>0?g(`clearAllStores stopped after ${h} pass${h===1?"":"es"}; ${A} store(s) still registered (likely recreated during deletion).`):re(`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=>f(h)),b},reportStoreError:p}};var Je=J,Ut=Q(Je);var I=()=>{let e=ee(Ut);return Fe(e),e};var se=()=>I();var ie=e=>new Proxy(Object.create(null),{get:(t,r)=>e()[r],set:(t,r,o)=>(e()[r]=o,true),deleteProperty:(t,r)=>(delete e()[r],true),has:(t,r)=>r in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,r)=>{let o=Object.getOwnPropertyDescriptor(e(),r);if(o)return {...o,configurable:true}}}),$r=e=>new Proxy(new Map,{get:(t,r)=>{let o=e();if(r==="size")return o.size;if(r===Symbol.iterator)return o[Symbol.iterator].bind(o);let n=o[r];return typeof n=="function"?n.bind(o):n},set:(t,r,o)=>(e()[r]=o,true)}),Wr=e=>new Proxy({},{get:(t,r)=>{let o=e(),n=o[r];return typeof n=="function"?n.bind(o):n},set:(t,r,o)=>(e()[r]=o,true)});ie(()=>I().stores);ie(()=>I().subscribers);ie(()=>I().initialStates);ie(()=>I().initialFactories);ie(()=>I().metaEntries);ie(()=>I().snapshotCache);var B=$r(()=>I().featureRuntimes),Bt=new WeakMap,zr=e=>{let t=Bt.get(e);return t||(t=Lt(e),Bt.set(e,t)),t};Wr(()=>zr(I()));var Lr=e=>{let t=B.get(e);if(t)return t;let r=ye(e);if(!r)return;let o=r();return B.set(e,o),o},Br=()=>{X().forEach(e=>{Lr(e);});};st((e,t)=>{B.get(e)||B.set(e,t());});Br();var Ur=()=>{dt(I());},qr=()=>{B.forEach(e=>{try{e.resetAll?.();}catch{}}),B.clear();};v("features.reset",qr,10);v("registries.clear",Ur,20);v("registry.default",()=>{Je=J,Ut=Q(Je);},115);var qt=false,Kt=e=>{try{return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}catch{return e}},Kr=({name:e,useDevtools:t,existingDevtools:r,stores:o,warn:n})=>{if(!t||typeof window>"u")return r;let s=window.__REDUX_DEVTOOLS_EXTENSION__||window.__REDUX_DEVTOOLS_EXTENSION__;if(!s||typeof s.connect!="function")return n(`DevTools requested for "${e}" but Redux DevTools extension not found.`),r;if(r)return r;let u=s.connect({name:"stroid"});return u.init(o),u},Re=({data:e,redactor:t,deepClone:r})=>{if(typeof t=="function")try{return t(r(e))}catch{return e}return e},Yr=(e,t)=>{if(typeof e!="object"||typeof t!="object"||e===null||t===null)return null;let r=e,o=t,n=[],s=[],u=[],d=new Set(Object.keys(r)),l=new Set(Object.keys(o));return l.forEach(p=>{d.has(p)?Object.is(r[p],o[p])||u.push(p):n.push(p);}),d.forEach(p=>{l.has(p)||s.push(p);}),{added:n,removed:s,changed:u}},Yt=({name:e,action:t,prev:r,next:o,history:n,historyLimit:s,applyRedactor:u,deepClone:d})=>{if(s===0)return;n[e]||(n[e]=[]);let l={ts:Date.now(),action:t,prev:d(u(r)),next:d(u(o)),diff:Yr(r,o)};n[e].push(l),n[e].length>s&&n[e].splice(0,n[e].length-s);},Gt=({name:e,action:t,force:r=false,devtools:o,enabled:n,stores:s,applyRedactor:u})=>{if(!(!o||!r&&!n))try{let d={...s,[e]:u(s[e])};o.send({type:`${e}/${t}`},d);}catch{}},Gr=()=>{let e=Object.create(null),t;return {onStoreCreate(r){t=Kr({name:r.name,useDevtools:!!r.options.devtools,existingDevtools:t,stores:r.getAllStores(),warn:r.warn}),Yt({name:r.name,action:"create",prev:null,next:r.getStoreValue(),history:e,historyLimit:r.options.historyLimit??50,applyRedactor:o=>Re({data:o,redactor:r.options.redactor,deepClone:r.deepClone}),deepClone:r.deepClone});},onStoreWrite(r){Yt({name:r.name,action:r.action,prev:r.prev,next:r.next,history:e,historyLimit:r.options.historyLimit??50,applyRedactor:o=>Re({data:o,redactor:r.options.redactor,deepClone:r.deepClone}),deepClone:r.deepClone}),Gt({name:r.name,action:r.action,devtools:t,enabled:!!r.options.devtools,stores:r.getAllStores(),applyRedactor:o=>Re({data:o,redactor:r.options.redactor,deepClone:r.deepClone})});},afterStoreDelete(r){r.options.devtools&&Gt({name:r.name,action:"delete",force:true,devtools:t,enabled:true,stores:r.getAllStores(),applyRedactor:o=>Re({data:o,redactor:r.options.redactor,deepClone:r.deepClone})}),delete e[r.name];},resetAll(){Object.keys(e).forEach(r=>{delete e[r];}),t=void 0;},api:{getHistory(r,o){if(!e[r])return [];let n=e[r];return o&&o>0?Kt(n.slice(-o)):Kt(n)},clearHistory(r){if(r){delete e[r];return}Object.keys(e).forEach(o=>{delete e[o];});}}}},Xt=()=>{qt||(qt=true,nt("devtools",Gr));};var Jt=()=>{Xt();};var Xr=(e,t)=>be("devtools")?.getHistory?.(e,t)??[],Jr=e=>{be("devtools")?.clearHistory?.(e);};Jt();export{Jr as clearHistory,Xr as getHistory,Jt as installDevtools};//# sourceMappingURL=devtools.js.map
2
2
  //# sourceMappingURL=devtools.js.map