@rkrupinski/stan 1.6.0 → 1.7.1
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 +1 -1
- package/dist/index.js +1 -1
- package/dist/internal.d.ts +0 -1
- package/dist/react.d.ts +1 -0
- package/dist/react.esm.js +1 -1
- package/dist/react.js +1 -1
- package/dist/store-BPHddQXx.js +1 -0
- package/dist/{store-CCFoiVXY.js → store-DrkzTGeL.js} +1 -1
- package/dist/store.d.ts +28 -2
- package/package.json +9 -9
- package/dist/store-_qrBrIqS.js +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as
|
|
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-BPHddQXx.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,e as reset}from"./store-BPHddQXx.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};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./store-
|
|
1
|
+
"use strict";var e=require("./store-DrkzTGeL.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});
|
package/dist/internal.d.ts
CHANGED
|
@@ -9,5 +9,4 @@ 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 erase: (store: Store, key: string) => void;
|
|
13
12
|
export declare const depsChanged: (store: Store, key: string) => boolean;
|
package/dist/react.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare const useStanValueAsync: <T, E = unknown>(scopedState: Scoped<Sta
|
|
|
26
26
|
export declare const useStanRefresh: <T>(scopedState: Scoped<ReadonlyState<T>>) => () => void;
|
|
27
27
|
export declare const useStanReset: <T>(scopedState: Scoped<WritableState<T>>) => () => void;
|
|
28
28
|
export type StanCallbackHelpers = {
|
|
29
|
+
get: <T>(scopedState: Scoped<State<T>>) => T;
|
|
29
30
|
set: <T>(scopedState: Scoped<WritableState<T>>, valueOrUpdater: T | ((currentValue: T) => T)) => void;
|
|
30
31
|
reset: <T>(scopedState: Scoped<WritableState<T>>) => void;
|
|
31
32
|
refresh: <T>(scopedState: Scoped<ReadonlyState<T>>) => void;
|
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,
|
|
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-BPHddQXx.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-
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./store-DrkzTGeL.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,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.1";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};
|
|
@@ -1 +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;
|
|
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.1";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;
|
package/dist/store.d.ts
CHANGED
|
@@ -1,11 +1,37 @@
|
|
|
1
|
+
type StoreEvent = {
|
|
2
|
+
type: 'SET';
|
|
3
|
+
key: string;
|
|
4
|
+
value: any;
|
|
5
|
+
} | {
|
|
6
|
+
type: 'DELETE';
|
|
7
|
+
key: string;
|
|
8
|
+
};
|
|
9
|
+
type DevToolsHook = {
|
|
10
|
+
register(store: Store): void;
|
|
11
|
+
unregister(store: Store): void;
|
|
12
|
+
send(storeKey: string, event: StoreEvent): void;
|
|
13
|
+
};
|
|
14
|
+
declare global {
|
|
15
|
+
interface Window {
|
|
16
|
+
__STAN_DEVTOOLS__?: DevToolsHook;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
1
19
|
type Deps = Map<string, number>;
|
|
20
|
+
export type StoreOptions = {
|
|
21
|
+
tag?: string;
|
|
22
|
+
};
|
|
2
23
|
export declare class Store {
|
|
24
|
+
key: string;
|
|
25
|
+
libVersion: string;
|
|
26
|
+
deps: Map<string, Deps>;
|
|
3
27
|
value: Map<string, any>;
|
|
4
28
|
version: Map<string, number>;
|
|
5
29
|
mounted: Map<string, boolean>;
|
|
6
30
|
initialized: Map<string, boolean>;
|
|
7
|
-
|
|
31
|
+
constructor({ tag }?: StoreOptions);
|
|
32
|
+
destroy(): void;
|
|
33
|
+
erase(key: string): void;
|
|
8
34
|
}
|
|
9
|
-
export declare const makeStore: () => Store;
|
|
35
|
+
export declare const makeStore: (options?: StoreOptions) => Store;
|
|
10
36
|
export declare const DEFAULT_STORE: Store;
|
|
11
37
|
export {};
|
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.
|
|
4
|
+
"version": "1.7.1",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -33,26 +33,25 @@
|
|
|
33
33
|
"lint": "eslint --cache --max-warnings=0",
|
|
34
34
|
"test": "jest",
|
|
35
35
|
"build": "rm -rf dist && rollup --config",
|
|
36
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
36
37
|
"prepublishOnly": "yarn typecheck && yarn lint && yarn test && yarn build"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
40
|
"fast-json-stable-stringify": "2.1.0"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@eslint/eslintrc": "3.3.1",
|
|
43
43
|
"@eslint/js": "9.27.0",
|
|
44
44
|
"@rkrupinski/prettierconfig": "1.0.1",
|
|
45
45
|
"@rollup/plugin-commonjs": "28.0.3",
|
|
46
46
|
"@rollup/plugin-node-resolve": "16.0.1",
|
|
47
|
+
"@rollup/plugin-replace": "6.0.3",
|
|
47
48
|
"@rollup/plugin-terser": "0.4.4",
|
|
48
49
|
"@rollup/plugin-typescript": "12.1.2",
|
|
49
50
|
"@testing-library/dom": "10.4.0",
|
|
50
51
|
"@testing-library/react": "16.2.0",
|
|
51
52
|
"@types/jest": "29.5.14",
|
|
52
|
-
"@types/react": ">=
|
|
53
|
-
"@types/react-dom": ">=
|
|
54
|
-
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
55
|
-
"@typescript-eslint/parser": "8.32.1",
|
|
53
|
+
"@types/react": ">=19.0.0",
|
|
54
|
+
"@types/react-dom": ">=19.0.0",
|
|
56
55
|
"eslint": "9.27.0",
|
|
57
56
|
"eslint-import-resolver-typescript": "4.3.5",
|
|
58
57
|
"eslint-plugin-import": "2.31.0",
|
|
@@ -62,19 +61,20 @@
|
|
|
62
61
|
"globals": "^16.0.0",
|
|
63
62
|
"jest": "29.7.0",
|
|
64
63
|
"jest-environment-jsdom": "29.7.0",
|
|
64
|
+
"prettier": "^3.8.1",
|
|
65
65
|
"react": ">=19.0.0",
|
|
66
66
|
"react-dom": ">=19.0.0",
|
|
67
67
|
"rollup": "4.37.0",
|
|
68
68
|
"ts-jest": "29.3.0",
|
|
69
69
|
"tslib": "2.8.1",
|
|
70
|
-
"typescript": "5.
|
|
71
|
-
"typescript-eslint": "
|
|
70
|
+
"typescript": "5.9.3",
|
|
71
|
+
"typescript-eslint": "8.32.1"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
74
|
"react": ">=19.0.0"
|
|
75
75
|
},
|
|
76
76
|
"author": "Rafał Krupiński <rkrupinski.npm@gmail.com> (https://github.com/rkrupinski)",
|
|
77
|
-
"homepage": "https://
|
|
77
|
+
"homepage": "https://stan.party",
|
|
78
78
|
"repository": {
|
|
79
79
|
"type": "git",
|
|
80
80
|
"url": "git+https://github.com/rkrupinski/stan.git"
|
package/dist/store-_qrBrIqS.js
DELETED
|
@@ -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]},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};
|