@rkrupinski/stan 1.3.4 → 1.4.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/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{i as e,d as t,R as s,a,s as i,e as n,b as o,c,E as l,M as h,U as u}from"./store-BdWcwmvf.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,f as reset}from"./store-BdWcwmvf.js";class d extends Error{}class g{#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 v=(t,{cachePolicy:s={type:"keep-all"},keyMaker:r=e}={})=>{const a=(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 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 k=0;const z=(e,{tag:r,effects:i,areValuesEqual:n=t}={})=>{const o=e,c=`a${r?`-${r}`:""}-${k++}`;return v((e=>()=>{const t=new Set,r=new Set;e.value.set(c,o),e.version.set(c,1);const l=(s=!1)=>i=>{if(!e.initialized.get(c))return;const o=e.value.get(c),l=a(i)?i(o):i;n(o,l)||((()=>{const t=e.version.get(c)??0;e.version.set(c,t+1)})(),e.value.set(c,l),[...t].forEach((e=>e(l))),s||r.forEach((e=>e(l))))},h=l(),u=l(!0);return{key:c,get:()=>(e.initialized.get(c)||(e.value.set(c,o),i?.forEach((t=>t({init(t){e.initialized.get(c)||e.value.set(c,t)},set:u,onSet(e){r.add(e)}}))),e.initialized.set(c,!0)),e.value.get(c)),set:h,subscribe:e=>(t.add(e),()=>{t.delete(e)}),[s](){h(o)}}}))},p=(e,{tag:t,...s}={})=>v((r=>()=>z(a(e)?e(r):e,{tag:a(t)?t(r):t,...s})),{keyMaker:i});let w=0;const y=(e,{tag:s,areValuesEqual:r=t}={},{[l]:a,[h]:i,[u]:f}={})=>{const g=`s${s?`-${s}`:""}-${w++}`;return v((t=>()=>{const s=new Map;t.deps.set(g,s);const l=new Set,h=new Set;a?.addEventListener("abort",(()=>{n(t,g)}),{once:!0});let u=null;const v=new Set,k=e=>{const s=t.deps.get(e);if(!s||!s.size)return!1;for(const[e,r]of s.entries())if(t.version.get(e)!==r)return!0;for(const e of s.keys())if(k(e))return!0;return!1};let z=0;const p=()=>{s.clear(),l.clear(),h.forEach((e=>e())),h.clear(),u?.abort(new d),u=new AbortController;const a=e({get:(i=++z,e=>{const r=e(t),a=r.get();if(!s.has(r.key)&&i===z){s.set(r.key,t.version.get(r.key)??0);const e=()=>r.subscribe((()=>{m()}));l.add(e),t.mounted.get(g)&&h.add(e())}return a}),signal:u.signal});var i;if(!(!t.value.has(g)||!r(t.value.get(g),a)))return;if((()=>{const e=t.version.get(g)??0;t.version.set(g,e+1)})(),t.value.set(g,a),[...v].forEach((e=>e(t.value.get(g)))),!c(a))return;const n=t.version.get(g);a.then(void 0,(()=>{n===t.version.get(g)&&t.initialized.set(g,!1)}))},m=()=>{t.mounted.get(g)?p():t.initialized.set(g,!1)};return{key:g,get(){switch(!0){case!t.initialized.get(g):p(),t.initialized.set(g,!0);break;case k(g):p()}return t.value.get(g)},subscribe:e=>(0===v.size&&(l.forEach((e=>{h.add(e())})),t.mounted.set(g,!0),i?.()),v.add(e),function(){v.delete(e),0===v.size&&(h.forEach((e=>{e()})),h.clear(),t.mounted.set(g,!1),f?.())}),[o](){m()}}}))},E=(e,{cachePolicy:t,tag:s,...r}={})=>v(((t,{retain:i,release:n})=>o=>y(e(t),{tag:a(s)?s(t):s,...r},{[l]:o,[h]:i,[u]:n})),{cachePolicy:t,keyMaker:i});export{d as Aborted,z as atom,p as atomFamily,y as selector,E as selectorFamily};
1
+ import{i as e,d as t,R as s,a,s as i,e as n,b as c,c as o,E as l,M as h,U as u}from"./store-D_uSq-w8.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,f as reset}from"./store-D_uSq-w8.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 v=(t,{cachePolicy:s={type:"keep-all"},keyMaker:a=e}={})=>{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 e=>{const s=a(e);return r.has(s)||r.set(s,t(e,{retain:()=>r.retain(s),release:()=>r.release(s)})),r.get(s)}};let k=0;const w=(e,{tag:r,effects:i,areValuesEqual:n=t}={})=>{const c=e,o=`a${r?`-${r}`:""}-${k++}`;return v((e=>()=>{const t=new Set,r=new Set;e.value.set(o,c),e.version.set(o,1);const l=(s=!1)=>i=>{if(!e.initialized.get(o))return;const c=e.value.get(o),l=a(i)?i(c):i;n(c,l)||((()=>{const t=e.version.get(o)??0;e.version.set(o,t+1)})(),e.value.set(o,l),[...t].forEach((e=>e(l))),s||r.forEach((e=>e(l))))},h=l(),u=l(!0);return{key:o,get:()=>(e.initialized.get(o)||(e.value.set(o,c),i?.forEach((t=>t({init(t){e.initialized.get(o)||e.value.set(o,t)},set:u,onSet(e){r.add(e)}}))),e.initialized.set(o,!0)),e.value.get(o)),set:h,subscribe:e=>(t.add(e),()=>{t.delete(e)}),[s](){h(c)}}}))},p=(e,{tag:t,...s}={})=>v((r=>()=>w(a(e)?e(r):e,{tag:a(t)?t(r):t,...s})),{keyMaker:i});let z=0;const b=(e,{tag:s,areValuesEqual:a=t}={},{[l]:r,[h]:i,[u]:g}={})=>{const f=`s${s?`-${s}`:""}-${z++}`;return v((t=>()=>{const s=new Map;t.deps.set(f,s);const l=new Set,h=new Set;let u=null;r?.addEventListener("abort",(()=>{u?.abort(new d),n(t,f)}),{once:!0});const v=new Set;let k=0;const w=()=>{s.clear(),l.clear(),h.forEach((e=>e())),h.clear(),u?.abort(new d),u=new AbortController;const r=e({get:(i=++k,e=>{const a=e(t),r=a.get();if(!s.has(a.key)&&i===k){s.set(a.key,t.version.get(a.key)??0);const e=()=>a.subscribe((()=>{m()}));l.add(e),t.mounted.get(f)&&h.add(e())}return r}),signal:u.signal});var i;(!t.value.has(f)||!a(t.value.get(f),r))&&((()=>{const e=t.version.get(f)??0;t.version.set(f,e+1)})(),t.value.set(f,r),[...v].forEach((e=>e(t.value.get(f)))))},m=()=>{t.mounted.get(f)?w():t.initialized.set(f,!1)};return{key:f,get(){switch(!0){case!t.initialized.get(f):w(),t.initialized.set(f,!0);break;case o(t,f):w()}return t.value.get(f)},subscribe:e=>(0===v.size&&(l.forEach((e=>{h.add(e())})),t.mounted.set(f,!0),i?.()),v.add(e),function(){v.delete(e),0===v.size&&(h.forEach((e=>{e()})),h.clear(),t.mounted.set(f,!1),g?.())}),[c](){m()}}}))},y=(e,{cachePolicy:t,tag:s,...r}={})=>v(((t,{retain:i,release:n})=>c=>b(e(t),{tag:a(s)?s(t):s,...r},{[l]:c,[h]:i,[u]:n})),{cachePolicy:t,keyMaker:i});export{d as Aborted,w as atom,p as atomFamily,b as selector,y as selectorFamily};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./store-CEFia5bi.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))}#i(){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.#i();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.#i())}}const r=(t,{cachePolicy:r={type:"keep-all"},keyMaker:i=e.identity}={})=>{const n=(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=i(e);return n.has(s)||n.set(s,t(e,{retain:()=>n.retain(s),release:()=>n.release(s)})),n.get(s)}};let i=0;const n=(t,{tag:s,effects:n,areValuesEqual:a=e.dejaVu}={})=>{const o=t,c=`a${s?`-${s}`:""}-${i++}`;return r((t=>()=>{const s=new Set,r=new Set;t.value.set(c,o),t.version.set(c,1);const i=(i=!1)=>n=>{if(!t.initialized.get(c))return;const o=t.value.get(c),l=e.isFunction(n)?n(o):n;a(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))),i||r.forEach((e=>e(l))))},l=i(),u=i(!0);return{key:c,get:()=>(t.initialized.get(c)||(t.value.set(c,o),n?.forEach((e=>e({init(e){t.initialized.get(c)||t.value.set(c,e)},set:u,onSet(e){r.add(e)}}))),t.initialized.set(c,!0)),t.value.get(c)),set:l,subscribe:e=>(s.add(e),()=>{s.delete(e)}),[e.RESET_TAG](){l(o)}}}))};let a=0;const o=(s,{tag:i,areValuesEqual:n=e.dejaVu}={},{[e.ERASE_TAG]:o,[e.MOUNT_TAG]:c,[e.UNMOUNT_TAG]:l}={})=>{const u=`s${i?`-${i}`:""}-${a++}`;return r((r=>()=>{const i=new Map;r.deps.set(u,i);const a=new Set,h=new Set;o?.addEventListener("abort",(()=>{e.erase(r,u)}),{once:!0});let d=null;const f=new Set,g=e=>{const t=r.deps.get(e);if(!t||!t.size)return!1;for(const[e,s]of t.entries())if(r.version.get(e)!==s)return!0;for(const e of t.keys())if(g(e))return!0;return!1};let v=0;const p=()=>{i.clear(),a.clear(),h.forEach((e=>e())),h.clear(),d?.abort(new t),d=new AbortController;const o=s({get:(c=++v,e=>{const t=e(r),s=t.get();if(!i.has(t.key)&&c===v){i.set(t.key,r.version.get(t.key)??0);const e=()=>t.subscribe((()=>{E()}));a.add(e),r.mounted.get(u)&&h.add(e())}return s}),signal:d.signal});var c;if(!(!r.value.has(u)||!n(r.value.get(u),o)))return;if((()=>{const e=r.version.get(u)??0;r.version.set(u,e+1)})(),r.value.set(u,o),[...f].forEach((e=>e(r.value.get(u)))),!e.isPromiseLike(o))return;const l=r.version.get(u);o.then(void 0,(()=>{l===r.version.get(u)&&r.initialized.set(u,!1)}))},E=()=>{r.mounted.get(u)?p():r.initialized.set(u,!1)};return{key:u,get(){switch(!0){case!r.initialized.get(u):p(),r.initialized.set(u,!0);break;case g(u):p()}return r.value.get(u)},subscribe:e=>(0===f.size&&(a.forEach((e=>{h.add(e())})),r.mounted.set(u,!0),c?.()),f.add(e),function(){f.delete(e),0===f.size&&(h.forEach((e=>{e()})),h.clear(),r.mounted.set(u,!1),l?.())}),[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=n,exports.atomFamily=(t,{tag:s,...i}={})=>r((r=>()=>n(e.isFunction(t)?t(r):t,{tag:e.isFunction(s)?s(r):s,...i})),{keyMaker:e.stableStringify}),exports.selector=o,exports.selectorFamily=(t,{cachePolicy:s,tag:i,...n}={})=>r(((s,{retain:r,release:a})=>c=>o(t(s),{tag:e.isFunction(i)?i(s):i,...n},{[e.ERASE_TAG]:c,[e.MOUNT_TAG]:r,[e.UNMOUNT_TAG]:a})),{cachePolicy:s,keyMaker:e.stableStringify});
1
+ "use strict";var e=require("./store-DiTSwUBS.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=`a${s?`-${s}`:""}-${a++}`;return r((t=>()=>{const s=new Set,r=new Set;t.value.set(c,o),t.version.set(c,1);const a=(a=!1)=>i=>{if(!t.initialized.get(c))return;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);return{key:c,get:()=>(t.initialized.get(c)||(t.value.set(c,o),i?.forEach((e=>e({init(e){t.initialized.get(c)||t.value.set(c,e)},set:h,onSet(e){r.add(e)}}))),t.initialized.set(c,!0)),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=`s${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),e.erase(r,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});
@@ -9,5 +9,5 @@ export declare const dejaVu: <T>(a: T, b: T) => boolean;
9
9
  export declare const identity: <T>(arg: T) => T;
10
10
  export type TypedOmit<T, K extends keyof T> = Omit<T, K>;
11
11
  export declare const isFunction: (candidate: any) => candidate is (...args: any[]) => any;
12
- export declare const isPromiseLike: (candidate: any) => candidate is PromiseLike<any>;
13
12
  export declare const erase: (store: Store, key: string) => void;
13
+ 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 o,useRef as s,useState as n,useEffect as c,useCallback as u}from"react";import{D as a,m as i,r as m,f as p}from"./store-BdWcwmvf.js";const l=e({store:a}),d=({store:e,children:t})=>{const s=o((()=>({store:e??i()})),[e]);return r(l.Provider,{value:s,children:t})},g=()=>t(l),y=r=>{const{store:e}=g(),t=r(e),o=s(t),[u,a]=n((()=>t.get()));return c((()=>(t!==o.current&&(o.current=t,a(t.get())),t.subscribe(a))),[t]),u},f=r=>{const{store:e}=g();return r(e).set},h=r=>[y(r),f(r)],v=r=>{const e=y(r),[t,o]=n({type:"loading"});return c((()=>{let r=!0;return o({type:"loading"}),e.then((e=>{r&&o({type:"ready",value:e})}),(e=>{r&&o({type:"error",reason:e?.message??"unknown"})})),()=>{r=!1}}),[e]),t},b=r=>{const{store:e}=g(),t=r(e);return u((()=>{m(t)}),[t])},j=r=>{const{store:e}=g(),t=r(e);return u((()=>{p(t)}),[t])};export{d as StanProvider,f as useSetStanValue,h as useStan,g as useStanCtx,b as useStanRefresh,j as useStanReset,y as useStanValue,v as useStanValueAsync};
1
+ import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as t,useMemo as o,useRef as s,useState as n,useEffect as c,useCallback as u}from"react";import{D as a,m as i,r as m,f as p}from"./store-D_uSq-w8.js";const l=e({store:a}),d=({store:e,children:t})=>{const s=o((()=>({store:e??i()})),[e]);return r(l.Provider,{value:s,children:t})},g=()=>t(l),y=r=>{const{store:e}=g(),t=r(e),o=s(t),[u,a]=n((()=>t.get()));return c((()=>(t!==o.current&&(o.current=t,a(t.get())),t.subscribe(a))),[t]),u},f=r=>{const{store:e}=g();return r(e).set},h=r=>[y(r),f(r)],v=r=>{const e=y(r),[t,o]=n({type:"loading"});return c((()=>{let r=!0;return o({type:"loading"}),e.then((e=>{r&&o({type:"ready",value:e})}),(e=>{r&&o({type:"error",reason:e?.message??"unknown"})})),()=>{r=!1}}),[e]),t},b=r=>{const{store:e}=g(),t=r(e);return u((()=>{m(t)}),[t])},j=r=>{const{store:e}=g(),t=r(e);return u((()=>{p(t)}),[t])};export{d as StanProvider,f as useSetStanValue,h as useStan,g as useStanCtx,b as useStanRefresh,j as useStanReset,y 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-CEFia5bi.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()));return t.useEffect((()=>(s!==u.current&&(u.current=s,a(s.get())),s.subscribe(a))),[s]),o},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.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?.message??"unknown"})})),()=>{e=!1}}),[r]),s};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./store-DiTSwUBS.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()));return t.useEffect((()=>(s!==u.current&&(u.current=s,a(s.get())),s.subscribe(a))),[s]),o},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.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?.message??"unknown"})})),()=>{e=!1}}),[r]),s};
@@ -13,7 +13,7 @@ export type SelectorOptions = {
13
13
  tag?: string;
14
14
  areValuesEqual?: <T>(a: T, b: T) => boolean;
15
15
  };
16
- export type SelectorCtx = {
16
+ type SelectorCtx = {
17
17
  [ERASE_TAG]?: AbortSignal;
18
18
  [MOUNT_TAG]?: () => void;
19
19
  [UNMOUNT_TAG]?: () => void;
@@ -25,3 +25,4 @@ export type SelectorFamilyOptions<P extends SerializableParam> = TypedOmit<Selec
25
25
  cachePolicy?: CachePolicy;
26
26
  };
27
27
  export declare const selectorFamily: <T, P extends SerializableParam>(selectorFamilyFn: SelectorFamilyFn<T, P>, { cachePolicy, tag, ...other }?: SelectorFamilyOptions<P>) => (arg: P) => Scoped<ReadonlyState<T>>;
28
+ export {};
@@ -0,0 +1 @@
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,o=t.cmp&&(n=t.cmp,function(e){return function(t,r){var o={key:t,value:e[t]},s={key:r,value:e[r]};return n(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 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!==s.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=s.push(t)-1,u=Object.keys(t).sort(o&&o(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 s.splice(a,1),"{"+i+"}"}}(e)}));const o=Symbol("@@refresh@@"),s=Symbol("@@reset@@"),i=Symbol("@@erase@@"),a=Symbol("@@mount@@"),u=Symbol("@@unmount@@"),c=(e,t)=>e===t,l=e=>e,f=["[object Function]","[object AsyncFunction]","[object GeneratorFunction]","[object AsyncGeneratorFunction]"],y=e=>f.includes(Object.prototype.toString.call(e)),p=(e,t)=>{e.deps.delete(t),e.value.delete(t),e.version.delete(t),e.mounted.delete(t),e.initialized.delete(t)},d=(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(d(e,t))return!0;return!1},b=e=>{e[o]()},v=e=>{e[s]()};class m{value=new Map;version=new Map;mounted=new Map;initialized=new Map;deps=new Map}const S=()=>new m,O=S();export{O as D,i as E,a as M,s as R,m as S,u as U,y as a,o as b,d as c,c as d,p as e,v as f,l as i,S as m,b as r,r 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,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 f{value=new Map;version=new Map;mounted=new Map;initialized=new Map;deps=new Map}const a=()=>new f,y=a();exports.DEFAULT_STORE=y,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.erase=(e,t)=>{e.deps.delete(t),e.value.delete(t),e.version.delete(t),e.mounted.delete(t),e.initialized.delete(t)},exports.identity=e=>e,exports.isFunction=e=>l.includes(Object.prototype.toString.call(e)),exports.makeStore=a,exports.refresh=e=>{e[o]()},exports.reset=e=>{e[s]()},exports.stableStringify=n;
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.3.4",
4
+ "version": "1.4.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
- 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,o=t.cmp&&(n=t.cmp,function(e){return function(t,r){var o={key:t,value:e[t]},a={key:r,value:e[r]};return n(o,a)}}),a=[];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!==a.indexOf(t)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=a.push(t)-1,u=Object.keys(t).sort(o&&o(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 a.splice(s,1),"{"+i+"}"}}(e)}));const o=Symbol("@@refresh@@"),a=Symbol("@@reset@@"),i=Symbol("@@erase@@"),s=Symbol("@@mount@@"),u=Symbol("@@unmount@@"),c=(e,t)=>e===t,l=e=>e,f=["[object AsyncFunction]","[object AsyncGeneratorFunction]","[object GeneratorFunction]","[object Function]"],y=e=>f.includes(Object.prototype.toString.call(e)),p=e=>!!e&&y(e.then),d=(e,t)=>{e.deps.delete(t),e.value.delete(t),e.version.delete(t),e.mounted.delete(t),e.initialized.delete(t)},b=e=>{e[o]()},v=e=>{e[a]()};class m{value=new Map;version=new Map;mounted=new Map;initialized=new Map;deps=new Map}const S=()=>new m,O=S();export{O as D,i as E,s as M,a as R,m as S,u as U,y as a,o as b,p as c,c as d,d as e,v as f,l as i,S as m,b as r,r as s};
@@ -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]},i={key:n,value:e[n]};return r(o,i)}}),i=[];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,s;if(Array.isArray(t)){for(s="[",r=0;r<t.length;r++)r&&(s+=","),s+=e(t[r])||"null";return s+"]"}if(null===t)return"null";if(-1!==i.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var u=i.push(t)-1,c=Object.keys(t).sort(o&&o(t));for(s="",r=0;r<c.length;r++){var l=c[r],p=e(t[l]);p&&(s&&(s+=","),s+=JSON.stringify(l)+":"+p)}return i.splice(u,1),"{"+s+"}"}}(e)}));const o=Symbol("@@refresh@@"),i=Symbol("@@reset@@"),s=Symbol("@@erase@@"),u=Symbol("@@mount@@"),c=Symbol("@@unmount@@"),l=["[object AsyncFunction]","[object AsyncGeneratorFunction]","[object GeneratorFunction]","[object Function]"],p=e=>l.includes(Object.prototype.toString.call(e));class a{value=new Map;version=new Map;mounted=new Map;initialized=new Map;deps=new Map}const f=()=>new a,y=f();exports.DEFAULT_STORE=y,exports.ERASE_TAG=s,exports.MOUNT_TAG=u,exports.REFRESH_TAG=o,exports.RESET_TAG=i,exports.Store=a,exports.UNMOUNT_TAG=c,exports.dejaVu=(e,t)=>e===t,exports.erase=(e,t)=>{e.deps.delete(t),e.value.delete(t),e.version.delete(t),e.mounted.delete(t),e.initialized.delete(t)},exports.identity=e=>e,exports.isFunction=p,exports.isPromiseLike=e=>!!e&&p(e.then),exports.makeStore=f,exports.refresh=e=>{e[o]()},exports.reset=e=>{e[i]()},exports.stableStringify=n;