@rkrupinski/stan 1.7.3 → 2.0.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.
package/dist/cache.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  type Evictable<T> = (signal: AbortSignal) => T;
2
2
  export type CachePolicy = {
3
3
  type: 'keep-all';
4
+ ttl?: number;
4
5
  } | {
5
6
  type: 'most-recent';
7
+ ttl?: number;
6
8
  } | {
7
9
  type: 'lru';
8
10
  maxSize: number;
11
+ ttl?: number;
9
12
  };
10
13
  type KeyMaker<A> = (arg: A) => any;
11
14
  type MemoizeOptions<A> = {
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{i as t,d as s,R as a,a as n,s as c,b as i,c as o,E as h,M as l,U as u}from"./store-CWPE_rUn.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,e as reset}from"./store-CWPE_rUn.js";class d extends Error{}class g{#e;#t;#s;constructor(e){this.#e=new Map,this.#t=new Map,this.#s=e}#a(e){const t=this.#e.get(e);t&&(t.controller.abort(),this.#e.delete(e),this.#t.delete(e))}#r(){for(const e of this.#e.keys())if(!((this.#t.get(e)??0)>0))return void this.#a(e)}has(e){return this.#e.has(e)}get(e){const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#a(e):this.#e.size>=this.#s&&this.#r();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s})}delete(e){return!!this.#e.has(e)&&(this.#a(e),!0)}clear(){for(const e of this.#e.keys())this.#a(e)}retain(e){this.#t.set(e,(this.#t.get(e)??0)+1)}release(e){const t=this.#t.get(e)??0;t>0&&this.#t.set(e,t-1),0===(this.#t.get(e)??0)&&(this.#t.delete(e),this.#e.size>this.#s&&this.#r())}}const f=(e,{cachePolicy:s={type:"keep-all"},keyMaker:a=t}={})=>{const r=(e=>{switch(e.type){case"keep-all":return new g(Number.POSITIVE_INFINITY);case"most-recent":return new g(1);case"lru":return new g(e.maxSize);default:return e}})(s);return t=>{const s=a(t);return r.has(s)||r.set(s,e(t,{retain:()=>r.retain(s),release:()=>r.release(s)})),r.get(s)}};let v=0;const k=(e,{tag:t,effects:r,areValuesEqual:c=s}={})=>{const i=e,o=`@@atom${t?`[${t}]`:""}-${++v}`;return f((e=>()=>{const t=new Set,s=new Set;e.version.set(o,1);const h=(a=!1)=>r=>{d();const i=e.value.get(o),h=n(r)?r(i):r;c(i,h)||((()=>{const t=e.version.get(o)??0;e.version.set(o,t+1)})(),e.value.set(o,h),[...t].forEach((e=>e(h))),a||s.forEach((e=>e(h))))},l=h(),u=h(!0),d=()=>{if(e.initialized.get(o))return;e.value.set(o,i),e.initialized.set(o,!0);let t=!0;r?.forEach((a=>a({init(s){t&&e.value.set(o,s)},set:u,onSet(e){s.add(e)}}))),t=!1};return{key:o,get:()=>(d(),e.value.get(o)),set:l,subscribe:e=>(t.add(e),()=>{t.delete(e)}),[a](){l(i)}}}))},w=(e,{tag:t,...s}={})=>f((a=>()=>k(n(e)?e(a):e,{tag:n(t)?t(a):t,...s})),{keyMaker:c});let p=0;const b=(e,{tag:t,areValuesEqual:a=s}={},{[h]:r,[l]:n,[u]:c}={})=>{const g=`@@selector${t?`[${t}]`:""}-${++p}`;return f((t=>()=>{const s=new Map;t.deps.set(g,s);const h=new Set,l=new Set;let u=null;r?.addEventListener("abort",(()=>{u?.abort(new d),t.erase(g)}),{once:!0});const f=new Set;let v=0;const k=()=>{s.clear(),h.clear(),l.forEach((e=>e())),l.clear(),u?.abort(new d),u=new AbortController;const r=e({get:(n=++v,e=>{const a=e(t),r=a.get();if(!s.has(a.key)&&n===v){s.set(a.key,t.version.get(a.key)??0);const e=()=>a.subscribe((()=>{m()}));h.add(e),t.mounted.get(g)&&l.add(e())}return r}),signal:u.signal});var n;(!t.value.has(g)||!a(t.value.get(g),r))&&((()=>{const e=t.version.get(g)??0;t.version.set(g,e+1)})(),t.value.set(g,r),[...f].forEach((e=>e(t.value.get(g)))))},m=()=>{t.mounted.get(g)?k():t.initialized.set(g,!1)};return{key:g,get(){switch(!0){case!t.initialized.get(g):k(),t.initialized.set(g,!0);break;case o(t,g):k()}return t.value.get(g)},subscribe:e=>(0===f.size&&(h.forEach((e=>{l.add(e())})),t.mounted.set(g,!0),n?.()),f.add(e),function(){f.delete(e),0===f.size&&(l.forEach((e=>{e()})),l.clear(),t.mounted.set(g,!1),c?.())}),[i](){m()}}}))},y=(e,{cachePolicy:t,tag:s,...a}={})=>f(((t,{retain:r,release:c})=>i=>b(e(t),{tag:n(s)?s(t):s,...a},{[h]:i,[l]:r,[u]:c})),{cachePolicy:t,keyMaker:c});export{d as Aborted,k as atom,w as atomFamily,b as selector,y as selectorFamily};
1
+ import{i as e,d as t,R as s,a,s as i,b as n,E as o,M as h,U as l}from"./store-Bbwcz5LJ.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,c as reset}from"./store-Bbwcz5LJ.js";class u extends Error{}class d{#e;#t;#s;#r;constructor(e,t=Number.POSITIVE_INFINITY){this.#e=new Map,this.#t=new Map,this.#s=e,this.#r=t}#a(e){const t=this.#e.get(e);t&&(t.controller.abort(),this.#e.delete(e),this.#t.delete(e))}#c(){for(const e of this.#e.keys())if(!((this.#t.get(e)??0)>0))return void this.#a(e)}#i(e){const t=this.#e.get(e);!t||t.expiresAt>Date.now()||(this.#t.get(e)??0)>0||this.#a(e)}has(e){return this.#i(e),this.#e.has(e)}get(e){this.#i(e);const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#a(e):this.#e.size>=this.#s&&this.#c();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s,expiresAt:Date.now()+this.#r})}delete(e){return!!this.#e.has(e)&&(this.#a(e),!0)}clear(){for(const e of this.#e.keys())this.#a(e)}retain(e){this.#t.set(e,(this.#t.get(e)??0)+1)}release(e){const t=this.#t.get(e)??0;t>0&&this.#t.set(e,t-1),0===(this.#t.get(e)??0)&&(this.#t.delete(e),this.#e.size>this.#s&&this.#c())}}const f=(t,{cachePolicy:s={type:"keep-all"},keyMaker:r=e}={})=>{const a=(e=>{switch(e.type){case"keep-all":return new d(Number.POSITIVE_INFINITY,e.ttl);case"most-recent":return new d(1,e.ttl);case"lru":return new d(e.maxSize,e.ttl);default:return e}})(s);return e=>{const s=r(e);return a.has(s)||a.set(s,t(e,{retain:()=>a.retain(s),release:()=>a.release(s)})),a.get(s)}};let p=0;const g=(e,{tag:r,effects:c,areValuesEqual:i=t}={})=>{const n=e,o=`@@atom${r?`[${r}]`:""}-${++p}`;return f((e=>()=>{const t=new Set,r=new Set,h=(s=!1)=>c=>{d();const n=e.peek(o),h=a(c)?c(n):c;i(n,h)||(e.commit(o,h),[...t].forEach((e=>e(h))),s||r.forEach((e=>e(h))))},l=h(),u=h(!0),d=()=>{if(e.isReady(o))return;e.seed(o,n),e.markReady(o);let t=!0;c?.forEach((s=>s({init(s){t&&e.seed(o,s)},set:u,onSet(e){r.add(e)}}))),t=!1};return{key:o,get:()=>(d(),e.peek(o)),set:l,subscribe:e=>(t.add(e),()=>{t.delete(e)}),[s](){l(n)}}}))},k=(e,{tag:t,...s}={})=>f((r=>()=>g(a(e)?e(r):e,{tag:a(t)?t(r):t,...s})),{keyMaker:i});let E=0;const y=(e,{tag:s,areValuesEqual:r=t}={},{[o]:a,[h]:c,[l]:i}={})=>{const d=`@@selector${s?`[${s}]`:""}-${++E}`;return f((t=>()=>{const s=new Set,o=new Set;let h=null;a?.addEventListener("abort",(()=>{h?.abort(new u),t.erase(d)}),{once:!0});const l=new Set;let f=0;const p=()=>{t.resetDeps(d),s.clear(),o.forEach((e=>e())),o.clear(),h?.abort(new u),h=new AbortController;const a=e({get:(c=++f,e=>{const r=e(t),a=r.get();if(c===f&&t.trackDep(d,r.key)){const e=()=>r.subscribe((()=>{g()}));s.add(e),t.isMounted(d)&&o.add(e())}return a}),signal:h.signal});var c;(!t.has(d)||!r(t.peek(d),a))&&(t.commit(d,a),[...l].forEach((e=>e(t.peek(d)))))},g=()=>{t.isMounted(d)?p():t.markStale(d)};return{key:d,get(){switch(!0){case!t.isReady(d):p(),t.markReady(d);break;case t.depsChanged(d):p()}return t.peek(d)},subscribe:e=>(0===l.size&&(s.forEach((e=>{o.add(e())})),t.mount(d),c?.()),l.add(e),function(){l.delete(e),0===l.size&&(o.forEach((e=>{e()})),o.clear(),t.unmount(d),i?.())}),[n](){g()}}}))},w=(e,{cachePolicy:t,tag:s,...r}={})=>f(((t,{retain:c,release:i})=>n=>y(e(t),{tag:a(s)?s(t):s,...r},{[o]:n,[h]:c,[l]:i})),{cachePolicy:t,keyMaker:i});export{u as Aborted,g as atom,k as atomFamily,y as selector,w as selectorFamily};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./store-2LF9WAu6.js");class t extends Error{}class s{#e;#t;#s;constructor(e){this.#e=new Map,this.#t=new Map,this.#s=e}#r(e){const t=this.#e.get(e);t&&(t.controller.abort(),this.#e.delete(e),this.#t.delete(e))}#a(){for(const e of this.#e.keys())if(!((this.#t.get(e)??0)>0))return void this.#r(e)}has(e){return this.#e.has(e)}get(e){const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#r(e):this.#e.size>=this.#s&&this.#a();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s})}delete(e){return!!this.#e.has(e)&&(this.#r(e),!0)}clear(){for(const e of this.#e.keys())this.#r(e)}retain(e){this.#t.set(e,(this.#t.get(e)??0)+1)}release(e){const t=this.#t.get(e)??0;t>0&&this.#t.set(e,t-1),0===(this.#t.get(e)??0)&&(this.#t.delete(e),this.#e.size>this.#s&&this.#a())}}const r=(t,{cachePolicy:r={type:"keep-all"},keyMaker:a=e.identity}={})=>{const i=(e=>{switch(e.type){case"keep-all":return new s(Number.POSITIVE_INFINITY);case"most-recent":return new s(1);case"lru":return new s(e.maxSize);default:return e}})(r);return e=>{const s=a(e);return i.has(s)||i.set(s,t(e,{retain:()=>i.retain(s),release:()=>i.release(s)})),i.get(s)}};let a=0;const i=(t,{tag:s,effects:i,areValuesEqual:n=e.dejaVu}={})=>{const o=t,c=`@@atom${s?`[${s}]`:""}-${++a}`;return r((t=>()=>{const s=new Set,r=new Set;t.version.set(c,1);const a=(a=!1)=>i=>{u();const o=t.value.get(c),l=e.isFunction(i)?i(o):i;n(o,l)||((()=>{const e=t.version.get(c)??0;t.version.set(c,e+1)})(),t.value.set(c,l),[...s].forEach((e=>e(l))),a||r.forEach((e=>e(l))))},l=a(),h=a(!0),u=()=>{if(t.initialized.get(c))return;t.value.set(c,o),t.initialized.set(c,!0);let e=!0;i?.forEach((s=>s({init(s){e&&t.value.set(c,s)},set:h,onSet(e){r.add(e)}}))),e=!1};return{key:c,get:()=>(u(),t.value.get(c)),set:l,subscribe:e=>(s.add(e),()=>{s.delete(e)}),[e.RESET_TAG](){l(o)}}}))};let n=0;const o=(s,{tag:a,areValuesEqual:i=e.dejaVu}={},{[e.ERASE_TAG]:o,[e.MOUNT_TAG]:c,[e.UNMOUNT_TAG]:l}={})=>{const h=`@@selector${a?`[${a}]`:""}-${++n}`;return r((r=>()=>{const a=new Map;r.deps.set(h,a);const n=new Set,u=new Set;let d=null;o?.addEventListener("abort",(()=>{d?.abort(new t),r.erase(h)}),{once:!0});const g=new Set;let f=0;const v=()=>{a.clear(),n.clear(),u.forEach((e=>e())),u.clear(),d?.abort(new t),d=new AbortController;const e=s({get:(o=++f,e=>{const t=e(r),s=t.get();if(!a.has(t.key)&&o===f){a.set(t.key,r.version.get(t.key)??0);const e=()=>t.subscribe((()=>{p()}));n.add(e),r.mounted.get(h)&&u.add(e())}return s}),signal:d.signal});var o;(!r.value.has(h)||!i(r.value.get(h),e))&&((()=>{const e=r.version.get(h)??0;r.version.set(h,e+1)})(),r.value.set(h,e),[...g].forEach((e=>e(r.value.get(h)))))},p=()=>{r.mounted.get(h)?v():r.initialized.set(h,!1)};return{key:h,get(){switch(!0){case!r.initialized.get(h):v(),r.initialized.set(h,!0);break;case e.depsChanged(r,h):v()}return r.value.get(h)},subscribe:e=>(0===g.size&&(n.forEach((e=>{u.add(e())})),r.mounted.set(h,!0),c?.()),g.add(e),function(){g.delete(e),0===g.size&&(u.forEach((e=>{e()})),u.clear(),r.mounted.set(h,!1),l?.())}),[e.REFRESH_TAG](){p()}}}))};exports.DEFAULT_STORE=e.DEFAULT_STORE,exports.Store=e.Store,exports.makeStore=e.makeStore,exports.refresh=e.refresh,exports.reset=e.reset,exports.Aborted=t,exports.atom=i,exports.atomFamily=(t,{tag:s,...a}={})=>r((r=>()=>i(e.isFunction(t)?t(r):t,{tag:e.isFunction(s)?s(r):s,...a})),{keyMaker:e.stableStringify}),exports.selector=o,exports.selectorFamily=(t,{cachePolicy:s,tag:a,...i}={})=>r(((s,{retain:r,release:n})=>c=>o(t(s),{tag:e.isFunction(a)?a(s):a,...i},{[e.ERASE_TAG]:c,[e.MOUNT_TAG]:r,[e.UNMOUNT_TAG]:n})),{cachePolicy:s,keyMaker:e.stableStringify});
1
+ "use strict";var e=require("./store-DxpQZiWF.js");class t extends Error{}class s{#e;#t;#s;#r;constructor(e,t=Number.POSITIVE_INFINITY){this.#e=new Map,this.#t=new Map,this.#s=e,this.#r=t}#a(e){const t=this.#e.get(e);t&&(t.controller.abort(),this.#e.delete(e),this.#t.delete(e))}#i(){for(const e of this.#e.keys())if(!((this.#t.get(e)??0)>0))return void this.#a(e)}#c(e){const t=this.#e.get(e);!t||t.expiresAt>Date.now()||(this.#t.get(e)??0)>0||this.#a(e)}has(e){return this.#c(e),this.#e.has(e)}get(e){this.#c(e);const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#a(e):this.#e.size>=this.#s&&this.#i();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s,expiresAt:Date.now()+this.#r})}delete(e){return!!this.#e.has(e)&&(this.#a(e),!0)}clear(){for(const e of this.#e.keys())this.#a(e)}retain(e){this.#t.set(e,(this.#t.get(e)??0)+1)}release(e){const t=this.#t.get(e)??0;t>0&&this.#t.set(e,t-1),0===(this.#t.get(e)??0)&&(this.#t.delete(e),this.#e.size>this.#s&&this.#i())}}const r=(t,{cachePolicy:r={type:"keep-all"},keyMaker:a=e.identity}={})=>{const i=(e=>{switch(e.type){case"keep-all":return new s(Number.POSITIVE_INFINITY,e.ttl);case"most-recent":return new s(1,e.ttl);case"lru":return new s(e.maxSize,e.ttl);default:return e}})(r);return e=>{const s=a(e);return i.has(s)||i.set(s,t(e,{retain:()=>i.retain(s),release:()=>i.release(s)})),i.get(s)}};let a=0;const i=(t,{tag:s,effects:i,areValuesEqual:c=e.dejaVu}={})=>{const o=t,n=`@@atom${s?`[${s}]`:""}-${++a}`;return r((t=>()=>{const s=new Set,r=new Set,a=(a=!1)=>i=>{u();const o=t.peek(n),h=e.isFunction(i)?i(o):i;c(o,h)||(t.commit(n,h),[...s].forEach((e=>e(h))),a||r.forEach((e=>e(h))))},h=a(),l=a(!0),u=()=>{if(t.isReady(n))return;t.seed(n,o),t.markReady(n);let e=!0;i?.forEach((s=>s({init(s){e&&t.seed(n,s)},set:l,onSet(e){r.add(e)}}))),e=!1};return{key:n,get:()=>(u(),t.peek(n)),set:h,subscribe:e=>(s.add(e),()=>{s.delete(e)}),[e.RESET_TAG](){h(o)}}}))};let c=0;const o=(s,{tag:a,areValuesEqual:i=e.dejaVu}={},{[e.ERASE_TAG]:o,[e.MOUNT_TAG]:n,[e.UNMOUNT_TAG]:h}={})=>{const l=`@@selector${a?`[${a}]`:""}-${++c}`;return r((r=>()=>{const a=new Set,c=new Set;let u=null;o?.addEventListener("abort",(()=>{u?.abort(new t),r.erase(l)}),{once:!0});const d=new Set;let p=0;const f=()=>{r.resetDeps(l),a.clear(),c.forEach((e=>e())),c.clear(),u?.abort(new t),u=new AbortController;const e=s({get:(o=++p,e=>{const t=e(r),s=t.get();if(o===p&&r.trackDep(l,t.key)){const e=()=>t.subscribe((()=>{E()}));a.add(e),r.isMounted(l)&&c.add(e())}return s}),signal:u.signal});var o;(!r.has(l)||!i(r.peek(l),e))&&(r.commit(l,e),[...d].forEach((e=>e(r.peek(l)))))},E=()=>{r.isMounted(l)?f():r.markStale(l)};return{key:l,get(){switch(!0){case!r.isReady(l):f(),r.markReady(l);break;case r.depsChanged(l):f()}return r.peek(l)},subscribe:e=>(0===d.size&&(a.forEach((e=>{c.add(e())})),r.mount(l),n?.()),d.add(e),function(){d.delete(e),0===d.size&&(c.forEach((e=>{e()})),c.clear(),r.unmount(l),h?.())}),[e.REFRESH_TAG](){E()}}}))};exports.DEFAULT_STORE=e.DEFAULT_STORE,exports.Store=e.Store,exports.makeStore=e.makeStore,exports.refresh=e.refresh,exports.reset=e.reset,exports.Aborted=t,exports.atom=i,exports.atomFamily=(t,{tag:s,...a}={})=>r((r=>()=>i(e.isFunction(t)?t(r):t,{tag:e.isFunction(s)?s(r):s,...a})),{keyMaker:e.stableStringify}),exports.selector=o,exports.selectorFamily=(t,{cachePolicy:s,tag:a,...i}={})=>r(((s,{retain:r,release:c})=>n=>o(t(s),{tag:e.isFunction(a)?a(s):a,...i},{[e.ERASE_TAG]:n,[e.MOUNT_TAG]:r,[e.UNMOUNT_TAG]:c})),{cachePolicy:s,keyMaker:e.stableStringify});
@@ -1,4 +1,3 @@
1
- import type { Store } from './store';
2
1
  export { default as stableStringify } from 'fast-json-stable-stringify';
3
2
  export declare const REFRESH_TAG: unique symbol;
4
3
  export declare const RESET_TAG: unique symbol;
@@ -9,4 +8,3 @@ export declare const dejaVu: <T>(a: T, b: T) => boolean;
9
8
  export declare const identity: <T>(arg: T) => T;
10
9
  export type TypedOmit<T, K extends keyof T> = Omit<T, K>;
11
10
  export declare const isFunction: (candidate: any) => candidate is (...args: any[]) => any;
12
- export declare const depsChanged: (store: Store, key: string) => boolean;
package/dist/react.esm.js CHANGED
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as t,useMemo as n,useRef as s,useState as o,useEffect as c,useCallback as u}from"react";import{D as a,m as i,r as l,e as p}from"./store-CWPE_rUn.js";const m=e({store:a}),d=({store:e,children:t})=>{const s=n((()=>({store:e??i()})),[e]);return r(m.Provider,{value:s,children:t})},g=()=>t(m),h=r=>{const{store:e}=g(),t=r(e),n=s(t),[u,a]=o((()=>t.get()));let i=u;t!==n.current&&(i=t.get(),n.current=t,a(i));const l=s(new WeakMap);return l.current.has(t)||l.current.set(t,t.subscribe(a)),c((()=>{const r=l.current;return()=>{const e=r.get(t);e&&(e(),r.delete(t))}}),[t]),i},y=r=>{const{store:e}=g();return r(e).set},f=r=>[h(r),y(r)],v=r=>{const e=h(r),[t,n]=o({type:"loading"});return c((()=>{let r=!0;return n({type:"loading"}),e.then((e=>{r&&n({type:"ready",value:e})}),(e=>{r&&n({type:"error",reason:e})})),()=>{r=!1}}),[e]),t},b=r=>{const{store:e}=g(),t=r(e);return u((()=>{l(t)}),[t])},j=r=>{const{store:e}=g(),t=r(e);return u((()=>{p(t)}),[t])},x=(r,e=[])=>{const{store:t}=g(),n=s(r);return c((()=>{n.current=r})),u(((...r)=>{const e={get:r=>r(t).get(),set:(r,e)=>{r(t).set(e)},reset:r=>{p(r(t))},refresh:r=>{l(r(t))}};return n.current(e)(...r)}),[t,...e])};export{d as StanProvider,y as useSetStanValue,f as useStan,x as useStanCallback,g as useStanCtx,b as useStanRefresh,j as useStanReset,h as useStanValue,v as useStanValueAsync};
1
+ import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as t,useMemo as n,useRef as s,useState as o,useEffect as c,useCallback as u}from"react";import{D as a,m as i,r as l,c as p}from"./store-Bbwcz5LJ.js";const m=e({store:a}),d=({store:e,children:t})=>{const s=n((()=>({store:e??i()})),[e]);return r(m.Provider,{value:s,children:t})},g=()=>t(m),h=r=>{const{store:e}=g(),t=r(e),n=s(t),[u,a]=o((()=>t.get()));let i=u;t!==n.current&&(i=t.get(),n.current=t,a(i));const l=s(new WeakMap);return l.current.has(t)||l.current.set(t,t.subscribe(a)),c((()=>{const r=l.current;return()=>{const e=r.get(t);e&&(e(),r.delete(t))}}),[t]),i},y=r=>{const{store:e}=g();return r(e).set},f=r=>[h(r),y(r)],v=r=>{const e=h(r),[t,n]=o({type:"loading"});return c((()=>{let r=!0;return n({type:"loading"}),e.then((e=>{r&&n({type:"ready",value:e})}),(e=>{r&&n({type:"error",reason:e})})),()=>{r=!1}}),[e]),t},b=r=>{const{store:e}=g(),t=r(e);return u((()=>{l(t)}),[t])},j=r=>{const{store:e}=g(),t=r(e);return u((()=>{p(t)}),[t])},x=(r,e=[])=>{const{store:t}=g(),n=s(r);return c((()=>{n.current=r})),u(((...r)=>{const e={get:r=>r(t).get(),set:(r,e)=>{r(t).set(e)},reset:r=>{p(r(t))},refresh:r=>{l(r(t))}};return n.current(e)(...r)}),[t,...e])};export{d as StanProvider,y as useSetStanValue,f as useStan,x as useStanCallback,g as useStanCtx,b as useStanRefresh,j as useStanReset,h as useStanValue,v as useStanValueAsync};
package/dist/react.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./store-2LF9WAu6.js");const s=t.createContext({store:r.DEFAULT_STORE}),n=()=>t.useContext(s),u=e=>{const{store:r}=n(),s=e(r),u=t.useRef(s),[o,a]=t.useState((()=>s.get()));let c=o;s!==u.current&&(c=s.get(),u.current=s,a(c));const l=t.useRef(new WeakMap);return l.current.has(s)||l.current.set(s,s.subscribe(a)),t.useEffect((()=>{const e=l.current;return()=>{const t=e.get(s);t&&(t(),e.delete(s))}}),[s]),c},o=e=>{const{store:t}=n();return e(t).set};exports.StanProvider=({store:n,children:u})=>{const o=t.useMemo((()=>({store:n??r.makeStore()})),[n]);return e.jsx(s.Provider,{value:o,children:u})},exports.useSetStanValue=o,exports.useStan=e=>[u(e),o(e)],exports.useStanCallback=(e,s=[])=>{const{store:u}=n(),o=t.useRef(e);return t.useEffect((()=>{o.current=e})),t.useCallback(((...e)=>{const t={get:e=>e(u).get(),set:(e,t)=>{e(u).set(t)},reset:e=>{r.reset(e(u))},refresh:e=>{r.refresh(e(u))}};return o.current(t)(...e)}),[u,...s])},exports.useStanCtx=n,exports.useStanRefresh=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.refresh(u)}),[u])},exports.useStanReset=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.reset(u)}),[u])},exports.useStanValue=u,exports.useStanValueAsync=e=>{const r=u(e),[s,n]=t.useState({type:"loading"});return t.useEffect((()=>{let e=!0;return n({type:"loading"}),r.then((t=>{e&&n({type:"ready",value:t})}),(t=>{e&&n({type:"error",reason:t})})),()=>{e=!1}}),[r]),s};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./store-DxpQZiWF.js");const s=t.createContext({store:r.DEFAULT_STORE}),n=()=>t.useContext(s),u=e=>{const{store:r}=n(),s=e(r),u=t.useRef(s),[o,a]=t.useState((()=>s.get()));let c=o;s!==u.current&&(c=s.get(),u.current=s,a(c));const l=t.useRef(new WeakMap);return l.current.has(s)||l.current.set(s,s.subscribe(a)),t.useEffect((()=>{const e=l.current;return()=>{const t=e.get(s);t&&(t(),e.delete(s))}}),[s]),c},o=e=>{const{store:t}=n();return e(t).set};exports.StanProvider=({store:n,children:u})=>{const o=t.useMemo((()=>({store:n??r.makeStore()})),[n]);return e.jsx(s.Provider,{value:o,children:u})},exports.useSetStanValue=o,exports.useStan=e=>[u(e),o(e)],exports.useStanCallback=(e,s=[])=>{const{store:u}=n(),o=t.useRef(e);return t.useEffect((()=>{o.current=e})),t.useCallback(((...e)=>{const t={get:e=>e(u).get(),set:(e,t)=>{e(u).set(t)},reset:e=>{r.reset(e(u))},refresh:e=>{r.refresh(e(u))}};return o.current(t)(...e)}),[u,...s])},exports.useStanCtx=n,exports.useStanRefresh=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.refresh(u)}),[u])},exports.useStanReset=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.reset(u)}),[u])},exports.useStanValue=u,exports.useStanValueAsync=e=>{const r=u(e),[s,n]=t.useState({type:"loading"});return t.useEffect((()=>{let e=!0;return n({type:"loading"}),r.then((t=>{e&&n({type:"ready",value:t})}),(t=>{e&&n({type:"error",reason:t})})),()=>{e=!1}}),[r]),s};
@@ -0,0 +1 @@
1
+ function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,s;var i=e(s?t:(s=1,t=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var s,i="boolean"==typeof t.cycles&&t.cycles,n=t.cmp&&(s=t.cmp,function(e){return function(t,i){var n={key:t,value:e[t]},r={key:i,value:e[i]};return s(n,r)}}),r=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var s,o;if(Array.isArray(t)){for(o="[",s=0;s<t.length;s++)s&&(o+=","),o+=e(t[s])||"null";return o+"]"}if(null===t)return"null";if(-1!==r.indexOf(t)){if(i)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=r.push(t)-1,u=Object.keys(t).sort(n&&n(t));for(o="",s=0;s<u.length;s++){var l=u[s],c=e(t[l]);c&&(o&&(o+=","),o+=JSON.stringify(l)+":"+c)}return r.splice(a,1),"{"+o+"}"}}(e)}));const n=Symbol("@@refresh"),r=Symbol("@@reset"),o=Symbol("@@erase"),a=Symbol("@@mount"),u=Symbol("@@unmount"),l=(e,t)=>e===t,c=e=>e,h=["[object Function]","[object AsyncFunction]","[object GeneratorFunction]","[object AsyncGeneratorFunction]"],d=e=>h.includes(Object.prototype.toString.call(e)),p=e=>{e[n]()},y=e=>{e[r]()};let f=0;class v{__v_skip=!0;key;libVersion="2.0.0";#e=new Map;#t=new Map;#s=new Map;#i=new Map;#n=new Map;constructor({tag:e}={}){this.key=`@@store${e?`[${e}]`:""}-${f++}`,"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.register(this)}#r(e){"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.send(this.key,e)}destroy(){this.#e.clear(),this.#t.clear(),this.#s.clear(),this.#i.clear(),this.#n.clear(),"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.unregister(this)}erase(e){this.#e.delete(e),this.#t.delete(e),this.#s.delete(e),this.#i.delete(e),this.#n.delete(e),this.#r({type:"DELETE",key:e})}has(e){return this.#t.has(e)}peek(e){return this.#t.get(e)}seed(e,t){this.#t.set(e,t),this.#r({type:"SET",key:e,value:t})}commit(e,t){this.#s.set(e,(this.#s.get(e)??0)+1),this.#t.set(e,t),this.#r({type:"SET",key:e,value:t})}versionOf(e){return this.#s.get(e)??0}isReady(e){return!!this.#n.get(e)}markReady(e){this.#n.set(e,!0)}markStale(e){this.#n.set(e,!1)}isMounted(e){return!!this.#i.get(e)}mount(e){this.#i.set(e,!0)}unmount(e){this.#i.set(e,!1)}resetDeps(e){const t=this.#e.get(e);t?t.clear():this.#e.set(e,new Map)}trackDep(e,t){let s=this.#e.get(e);return s||(s=new Map,this.#e.set(e,s)),!s.has(t)&&(s.set(t,this.#s.get(t)??0),!0)}depsChanged(e){const t=this.#e.get(e);if(!t||!t.size)return!1;for(const[e,s]of t.entries())if((this.#s.get(e)??0)!==s)return!0;for(const e of t.keys())if(this.depsChanged(e))return!0;return!1}entries(){return this.#t.entries()}}const m=e=>new v(e),_=m({tag:"Default"});export{_ as D,o as E,a as M,r as R,v as S,u as U,d as a,n as b,y as c,l as d,c as i,m,p as r,i as s};
@@ -0,0 +1 @@
1
+ "use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,s;var r=e(s?t:(s=1,t=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var s,r="boolean"==typeof t.cycles&&t.cycles,i=t.cmp&&(s=t.cmp,function(e){return function(t,r){var i={key:t,value:e[t]},n={key:r,value:e[r]};return s(i,n)}}),n=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var s,o;if(Array.isArray(t)){for(o="[",s=0;s<t.length;s++)s&&(o+=","),o+=e(t[s])||"null";return o+"]"}if(null===t)return"null";if(-1!==n.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var u=n.push(t)-1,a=Object.keys(t).sort(i&&i(t));for(o="",s=0;s<a.length;s++){var l=a[s],c=e(t[l]);c&&(o&&(o+=","),o+=JSON.stringify(l)+":"+c)}return n.splice(u,1),"{"+o+"}"}}(e)}));const i=Symbol("@@refresh"),n=Symbol("@@reset"),o=Symbol("@@erase"),u=Symbol("@@mount"),a=Symbol("@@unmount"),l=["[object Function]","[object AsyncFunction]","[object GeneratorFunction]","[object AsyncGeneratorFunction]"];let c=0;class p{__v_skip=!0;key;libVersion="2.0.0";#e=new Map;#t=new Map;#s=new Map;#r=new Map;#i=new Map;constructor({tag:e}={}){this.key=`@@store${e?`[${e}]`:""}-${c++}`,"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.register(this)}#n(e){"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.send(this.key,e)}destroy(){this.#e.clear(),this.#t.clear(),this.#s.clear(),this.#r.clear(),this.#i.clear(),"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.unregister(this)}erase(e){this.#e.delete(e),this.#t.delete(e),this.#s.delete(e),this.#r.delete(e),this.#i.delete(e),this.#n({type:"DELETE",key:e})}has(e){return this.#t.has(e)}peek(e){return this.#t.get(e)}seed(e,t){this.#t.set(e,t),this.#n({type:"SET",key:e,value:t})}commit(e,t){this.#s.set(e,(this.#s.get(e)??0)+1),this.#t.set(e,t),this.#n({type:"SET",key:e,value:t})}versionOf(e){return this.#s.get(e)??0}isReady(e){return!!this.#i.get(e)}markReady(e){this.#i.set(e,!0)}markStale(e){this.#i.set(e,!1)}isMounted(e){return!!this.#r.get(e)}mount(e){this.#r.set(e,!0)}unmount(e){this.#r.set(e,!1)}resetDeps(e){const t=this.#e.get(e);t?t.clear():this.#e.set(e,new Map)}trackDep(e,t){let s=this.#e.get(e);return s||(s=new Map,this.#e.set(e,s)),!s.has(t)&&(s.set(t,this.#s.get(t)??0),!0)}depsChanged(e){const t=this.#e.get(e);if(!t||!t.size)return!1;for(const[e,s]of t.entries())if((this.#s.get(e)??0)!==s)return!0;for(const e of t.keys())if(this.depsChanged(e))return!0;return!1}entries(){return this.#t.entries()}}const h=e=>new p(e),d=h({tag:"Default"});exports.DEFAULT_STORE=d,exports.ERASE_TAG=o,exports.MOUNT_TAG=u,exports.REFRESH_TAG=i,exports.RESET_TAG=n,exports.Store=p,exports.UNMOUNT_TAG=a,exports.dejaVu=(e,t)=>e===t,exports.identity=e=>e,exports.isFunction=e=>l.includes(Object.prototype.toString.call(e)),exports.makeStore=h,exports.refresh=e=>{e[i]()},exports.reset=e=>{e[n]()},exports.stableStringify=r;
package/dist/store.d.ts CHANGED
@@ -16,18 +16,13 @@ declare global {
16
16
  __STAN_DEVTOOLS__?: DevToolsHook;
17
17
  }
18
18
  }
19
- type Deps = Map<string, number>;
20
19
  export type StoreOptions = {
21
20
  tag?: string;
22
21
  };
23
22
  export declare class Store {
23
+ #private;
24
24
  key: string;
25
25
  libVersion: string;
26
- deps: Map<string, Deps>;
27
- value: Map<string, any>;
28
- version: Map<string, number>;
29
- mounted: Map<string, boolean>;
30
- initialized: Map<string, boolean>;
31
26
  constructor({ tag }?: StoreOptions);
32
27
  destroy(): void;
33
28
  erase(key: string): void;
package/dist/vue.esm.js CHANGED
@@ -1 +1 @@
1
- import{defineComponent as e,provide as t,computed as s,inject as r,shallowRef as a,watch as u,readonly as o,isRef as l}from"vue";import{m as n,D as v,r as c,e as i}from"./store-CWPE_rUn.js";const m=Symbol("stan"),p=()=>r(m,{store:s((()=>v))}),d=e=>{const r=e??n();t(m,{store:s((()=>r))})},y=e({name:"StanProvider",props:{store:{type:Object,default:void 0}},setup(e,{slots:r}){let a;return t(m,{store:s((()=>e.store??(a??=n())))}),()=>r.default?.()}}),g=e=>l(e)?e.value:e,f=e=>{const{store:t}=p(),r=s((()=>g(e)(t.value))),l=a(r.value.get());return u(r,((e,t,s)=>{l.value=e.get();s(e.subscribe((e=>{l.value=e})))}),{immediate:!0,flush:"sync"}),o(l)},b=e=>{const{store:t}=p(),r=s((()=>g(e)(t.value))),o=a(r.value.get());return u(r,((e,t,s)=>{o.value=e.get();s(e.subscribe((e=>{o.value=e})))}),{immediate:!0,flush:"sync"}),s({get:()=>o.value,set:e=>{r.value.set(e)}})},h=e=>{const t=f(e),s=a({type:"loading"});return u(t,((e,t,r)=>{s.value={type:"loading"};let a=!0;r((()=>{a=!1})),e.then((e=>{a&&(s.value={type:"ready",value:e})}),(e=>{a&&(s.value={type:"error",reason:e})}))}),{immediate:!0,flush:"sync"}),o(s)},j=e=>{const{store:t}=p();return()=>{c(g(e)(t.value))}},S=e=>{const{store:t}=p();return()=>{i(g(e)(t.value))}},x=e=>{const{store:t}=p();return(...s)=>e({get:e=>e(t.value).get(),set:(e,s)=>{e(t.value).set(s)},reset:e=>{i(e(t.value))},refresh:e=>{c(e(t.value))}})(...s)};export{y as StanProvider,d as provideStan,b as useStan,x as useStanCallback,j as useStanRefresh,S as useStanReset,p as useStanStore,f as useStanValue,h as useStanValueAsync};
1
+ import{defineComponent as e,provide as t,computed as s,inject as r,shallowRef as a,watch as u,readonly as o,isRef as l}from"vue";import{m as n,D as v,r as c,c as i}from"./store-Bbwcz5LJ.js";const m=Symbol("stan"),p=()=>r(m,{store:s((()=>v))}),d=e=>{const r=e??n();t(m,{store:s((()=>r))})},y=e({name:"StanProvider",props:{store:{type:Object,default:void 0}},setup(e,{slots:r}){let a;return t(m,{store:s((()=>e.store??(a??=n())))}),()=>r.default?.()}}),g=e=>l(e)?e.value:e,f=e=>{const{store:t}=p(),r=s((()=>g(e)(t.value))),l=a(r.value.get());return u(r,((e,t,s)=>{l.value=e.get();s(e.subscribe((e=>{l.value=e})))}),{immediate:!0,flush:"sync"}),o(l)},b=e=>{const{store:t}=p(),r=s((()=>g(e)(t.value))),o=a(r.value.get());return u(r,((e,t,s)=>{o.value=e.get();s(e.subscribe((e=>{o.value=e})))}),{immediate:!0,flush:"sync"}),s({get:()=>o.value,set:e=>{r.value.set(e)}})},h=e=>{const t=f(e),s=a({type:"loading"});return u(t,((e,t,r)=>{s.value={type:"loading"};let a=!0;r((()=>{a=!1})),e.then((e=>{a&&(s.value={type:"ready",value:e})}),(e=>{a&&(s.value={type:"error",reason:e})}))}),{immediate:!0,flush:"sync"}),o(s)},j=e=>{const{store:t}=p();return()=>{c(g(e)(t.value))}},S=e=>{const{store:t}=p();return()=>{i(g(e)(t.value))}},x=e=>{const{store:t}=p();return(...s)=>e({get:e=>e(t.value).get(),set:(e,s)=>{e(t.value).set(s)},reset:e=>{i(e(t.value))},refresh:e=>{c(e(t.value))}})(...s)};export{y as StanProvider,d as provideStan,b as useStan,x as useStanCallback,j as useStanRefresh,S as useStanReset,p as useStanStore,f as useStanValue,h as useStanValueAsync};
package/dist/vue.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("vue"),t=require("./store-2LF9WAu6.js");const s=Symbol("stan"),r=()=>e.inject(s,{store:e.computed((()=>t.DEFAULT_STORE))}),a=e.defineComponent({name:"StanProvider",props:{store:{type:Object,default:void 0}},setup(r,{slots:a}){let o;return e.provide(s,{store:e.computed((()=>r.store??(o??=t.makeStore())))}),()=>a.default?.()}}),o=t=>e.isRef(t)?t.value:t,u=t=>{const{store:s}=r(),a=e.computed((()=>o(t)(s.value))),u=e.shallowRef(a.value.get());return e.watch(a,((e,t,s)=>{u.value=e.get();s(e.subscribe((e=>{u.value=e})))}),{immediate:!0,flush:"sync"}),e.readonly(u)};exports.StanProvider=a,exports.provideStan=r=>{const a=r??t.makeStore();e.provide(s,{store:e.computed((()=>a))})},exports.useStan=t=>{const{store:s}=r(),a=e.computed((()=>o(t)(s.value))),u=e.shallowRef(a.value.get());return e.watch(a,((e,t,s)=>{u.value=e.get();s(e.subscribe((e=>{u.value=e})))}),{immediate:!0,flush:"sync"}),e.computed({get:()=>u.value,set:e=>{a.value.set(e)}})},exports.useStanCallback=e=>{const{store:s}=r();return(...r)=>e({get:e=>e(s.value).get(),set:(e,t)=>{e(s.value).set(t)},reset:e=>{t.reset(e(s.value))},refresh:e=>{t.refresh(e(s.value))}})(...r)},exports.useStanRefresh=e=>{const{store:s}=r();return()=>{t.refresh(o(e)(s.value))}},exports.useStanReset=e=>{const{store:s}=r();return()=>{t.reset(o(e)(s.value))}},exports.useStanStore=r,exports.useStanValue=u,exports.useStanValueAsync=t=>{const s=u(t),r=e.shallowRef({type:"loading"});return e.watch(s,((e,t,s)=>{r.value={type:"loading"};let a=!0;s((()=>{a=!1})),e.then((e=>{a&&(r.value={type:"ready",value:e})}),(e=>{a&&(r.value={type:"error",reason:e})}))}),{immediate:!0,flush:"sync"}),e.readonly(r)};
1
+ "use strict";var e=require("vue"),t=require("./store-DxpQZiWF.js");const s=Symbol("stan"),r=()=>e.inject(s,{store:e.computed((()=>t.DEFAULT_STORE))}),a=e.defineComponent({name:"StanProvider",props:{store:{type:Object,default:void 0}},setup(r,{slots:a}){let o;return e.provide(s,{store:e.computed((()=>r.store??(o??=t.makeStore())))}),()=>a.default?.()}}),o=t=>e.isRef(t)?t.value:t,u=t=>{const{store:s}=r(),a=e.computed((()=>o(t)(s.value))),u=e.shallowRef(a.value.get());return e.watch(a,((e,t,s)=>{u.value=e.get();s(e.subscribe((e=>{u.value=e})))}),{immediate:!0,flush:"sync"}),e.readonly(u)};exports.StanProvider=a,exports.provideStan=r=>{const a=r??t.makeStore();e.provide(s,{store:e.computed((()=>a))})},exports.useStan=t=>{const{store:s}=r(),a=e.computed((()=>o(t)(s.value))),u=e.shallowRef(a.value.get());return e.watch(a,((e,t,s)=>{u.value=e.get();s(e.subscribe((e=>{u.value=e})))}),{immediate:!0,flush:"sync"}),e.computed({get:()=>u.value,set:e=>{a.value.set(e)}})},exports.useStanCallback=e=>{const{store:s}=r();return(...r)=>e({get:e=>e(s.value).get(),set:(e,t)=>{e(s.value).set(t)},reset:e=>{t.reset(e(s.value))},refresh:e=>{t.refresh(e(s.value))}})(...r)},exports.useStanRefresh=e=>{const{store:s}=r();return()=>{t.refresh(o(e)(s.value))}},exports.useStanReset=e=>{const{store:s}=r();return()=>{t.reset(o(e)(s.value))}},exports.useStanStore=r,exports.useStanValue=u,exports.useStanValueAsync=t=>{const s=u(t),r=e.shallowRef({type:"loading"});return e.watch(s,((e,t,s)=>{r.value={type:"loading"};let a=!0;s((()=>{a=!1})),e.then((e=>{a&&(r.value={type:"ready",value:e})}),(e=>{a&&(r.value={type:"error",reason:e})}))}),{immediate:!0,flush:"sync"}),e.readonly(r)};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rkrupinski/stan",
3
3
  "description": "Minimal, type-safe state management",
4
- "version": "1.7.3",
4
+ "version": "2.0.0",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.esm.js",
7
7
  "types": "./dist/index.d.ts",
@@ -1 +0,0 @@
1
- "use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,r;var n=e(r?t:(r=1,t=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var r,n="boolean"==typeof t.cycles&&t.cycles,o=t.cmp&&(r=t.cmp,function(e){return function(t,n){var o={key:t,value:e[t]},s={key:n,value:e[n]};return r(o,s)}}),s=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var r,i;if(Array.isArray(t)){for(i="[",r=0;r<t.length;r++)r&&(i+=","),i+=e(t[r])||"null";return i+"]"}if(null===t)return"null";if(-1!==s.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var u=s.push(t)-1,c=Object.keys(t).sort(o&&o(t));for(i="",r=0;r<c.length;r++){var l=c[r],p=e(t[l]);p&&(i&&(i+=","),i+=JSON.stringify(l)+":"+p)}return s.splice(u,1),"{"+i+"}"}}(e)}));const o=Symbol("@@refresh"),s=Symbol("@@reset"),i=Symbol("@@erase"),u=Symbol("@@mount"),c=Symbol("@@unmount"),l=["[object Function]","[object AsyncFunction]","[object GeneratorFunction]","[object AsyncGeneratorFunction]"],p=(e,t)=>{const r=e.deps.get(t);if(!r||!r.size)return!1;for(const[t,n]of r.entries())if(e.version.get(t)!==n)return!0;for(const t of r.keys())if(p(e,t))return!0;return!1};class a extends Map{#e;constructor(e){super(),this.#e=e}set(e,t){return super.set(e,t),this.#e({type:"SET",key:e,value:t}),this}delete(e){const t=super.delete(e);return this.#e({type:"DELETE",key:e}),t}}let d=0;class f{key;libVersion="1.7.3";deps=new Map;value=new Map;version=new Map;mounted=new Map;initialized=new Map;constructor({tag:e}={}){this.key=`@@store${e?`[${e}]`:""}-${d++}`,"production"!==process.env.NODE_ENV&&(this.value=new a((e=>{window.__STAN_DEVTOOLS__?.send(this.key,e)})),window.__STAN_DEVTOOLS__?.register(this))}destroy(){this.deps.clear(),this.value.clear(),this.version.clear(),this.mounted.clear(),this.initialized.clear(),"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.unregister(this)}erase(e){this.deps.delete(e),this.value.delete(e),this.version.delete(e),this.mounted.delete(e),this.initialized.delete(e)}}const y=e=>new f(e),_=y({tag:"Default"});exports.DEFAULT_STORE=_,exports.ERASE_TAG=i,exports.MOUNT_TAG=u,exports.REFRESH_TAG=o,exports.RESET_TAG=s,exports.Store=f,exports.UNMOUNT_TAG=c,exports.dejaVu=(e,t)=>e===t,exports.depsChanged=p,exports.identity=e=>e,exports.isFunction=e=>l.includes(Object.prototype.toString.call(e)),exports.makeStore=y,exports.refresh=e=>{e[o]()},exports.reset=e=>{e[s]()},exports.stableStringify=n;
@@ -1 +0,0 @@
1
- function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,n;var r=e(n?t:(n=1,t=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,r="boolean"==typeof t.cycles&&t.cycles,s=t.cmp&&(n=t.cmp,function(e){return function(t,r){var s={key:t,value:e[t]},o={key:r,value:e[r]};return n(s,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,i;if(Array.isArray(t)){for(i="[",n=0;n<t.length;n++)n&&(i+=","),i+=e(t[n])||"null";return i+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=o.push(t)-1,u=Object.keys(t).sort(s&&s(t));for(i="",n=0;n<u.length;n++){var c=u[n],l=e(t[c]);l&&(i&&(i+=","),i+=JSON.stringify(c)+":"+l)}return o.splice(a,1),"{"+i+"}"}}(e)}));const s=Symbol("@@refresh"),o=Symbol("@@reset"),i=Symbol("@@erase"),a=Symbol("@@mount"),u=Symbol("@@unmount"),c=(e,t)=>e===t,l=e=>e,p=["[object Function]","[object AsyncFunction]","[object GeneratorFunction]","[object AsyncGeneratorFunction]"],d=e=>p.includes(Object.prototype.toString.call(e)),f=(e,t)=>{const n=e.deps.get(t);if(!n||!n.size)return!1;for(const[t,r]of n.entries())if(e.version.get(t)!==r)return!0;for(const t of n.keys())if(f(e,t))return!0;return!1},y=e=>{e[s]()},h=e=>{e[o]()};class _ extends Map{#e;constructor(e){super(),this.#e=e}set(e,t){return super.set(e,t),this.#e({type:"SET",key:e,value:t}),this}delete(e){const t=super.delete(e);return this.#e({type:"DELETE",key:e}),t}}let v=0;class S{key;libVersion="1.7.3";deps=new Map;value=new Map;version=new Map;mounted=new Map;initialized=new Map;constructor({tag:e}={}){this.key=`@@store${e?`[${e}]`:""}-${v++}`,"production"!==process.env.NODE_ENV&&(this.value=new _((e=>{window.__STAN_DEVTOOLS__?.send(this.key,e)})),window.__STAN_DEVTOOLS__?.register(this))}destroy(){this.deps.clear(),this.value.clear(),this.version.clear(),this.mounted.clear(),this.initialized.clear(),"production"!==process.env.NODE_ENV&&window.__STAN_DEVTOOLS__?.unregister(this)}erase(e){this.deps.delete(e),this.value.delete(e),this.version.delete(e),this.mounted.delete(e),this.initialized.delete(e)}}const O=e=>new S(e),b=O({tag:"Default"});export{b as D,i as E,a as M,o as R,S,u as U,d as a,s as b,f as c,c as d,h as e,l as i,O as m,y as r,r as s};