@rkrupinski/stan 1.7.0 → 1.7.2
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/README.md +25 -17
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/react.esm.js +1 -1
- package/dist/react.js +1 -1
- package/dist/{store-p67XsCXB.js → store-CACHACiO.js} +1 -1
- package/dist/store-DzNRw9xU.js +1 -0
- package/package.json +5 -6
- package/dist/store-VbZJVt7t.js +0 -1
package/README.md
CHANGED
|
@@ -8,28 +8,36 @@
|
|
|
8
8
|
|
|
9
9
|
Minimal, type-safe state management
|
|
10
10
|
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
11
|
+
- [Website](https://stan.party)
|
|
12
|
+
- [API docs](https://stan.party/docs/api/state)
|
|
13
|
+
- [Examples](https://stan.party/docs/getting-started/examples)
|
|
14
|
+
- [Devtools](https://chromewebstore.google.com/detail/stan-devtools/jioipgcofbmgbdfmdjjcmockkjkhagac)
|
|
15
|
+
- [Blog Post](https://rkrupinski.com/post/introducing-stan)
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
## Install
|
|
17
18
|
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
```sh
|
|
20
|
+
npm install @rkrupinski/stan
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Quick start
|
|
24
|
+
|
|
25
|
+
```jsx
|
|
26
|
+
import { atom, selector } from "@rkrupinski/stan";
|
|
27
|
+
import { useStan, useStanValue } from "@rkrupinski/stan/react";
|
|
21
28
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
);
|
|
29
|
+
const count = atom(0);
|
|
30
|
+
const doubled = selector(({ get }) => get(count) * 2);
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
const
|
|
32
|
+
function Counter() {
|
|
33
|
+
const [value, setValue] = useStan(count);
|
|
34
|
+
const double = useStanValue(doubled);
|
|
28
35
|
|
|
29
36
|
return (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
<>
|
|
38
|
+
<button onClick={() => setValue(v => v + 1)}>Count: {value}</button>
|
|
39
|
+
<p>Doubled: {double}</p>
|
|
40
|
+
</>
|
|
33
41
|
);
|
|
34
|
-
}
|
|
42
|
+
}
|
|
35
43
|
```
|
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-
|
|
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-DzNRw9xU.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,e as reset}from"./store-DzNRw9xU.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-CACHACiO.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/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-
|
|
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-DzNRw9xU.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-CACHACiO.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 +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 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
|
+
"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.2";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;
|
|
@@ -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.2";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};
|
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.
|
|
4
|
+
"version": "1.7.2",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -33,13 +33,13 @@
|
|
|
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",
|
|
@@ -52,8 +52,6 @@
|
|
|
52
52
|
"@types/jest": "29.5.14",
|
|
53
53
|
"@types/react": ">=19.0.0",
|
|
54
54
|
"@types/react-dom": ">=19.0.0",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
56
|
-
"@typescript-eslint/parser": "8.32.1",
|
|
57
55
|
"eslint": "9.27.0",
|
|
58
56
|
"eslint-import-resolver-typescript": "4.3.5",
|
|
59
57
|
"eslint-plugin-import": "2.31.0",
|
|
@@ -63,19 +61,20 @@
|
|
|
63
61
|
"globals": "^16.0.0",
|
|
64
62
|
"jest": "29.7.0",
|
|
65
63
|
"jest-environment-jsdom": "29.7.0",
|
|
64
|
+
"prettier": "^3.8.1",
|
|
66
65
|
"react": ">=19.0.0",
|
|
67
66
|
"react-dom": ">=19.0.0",
|
|
68
67
|
"rollup": "4.37.0",
|
|
69
68
|
"ts-jest": "29.3.0",
|
|
70
69
|
"tslib": "2.8.1",
|
|
71
70
|
"typescript": "5.9.3",
|
|
72
|
-
"typescript-eslint": "
|
|
71
|
+
"typescript-eslint": "8.32.1"
|
|
73
72
|
},
|
|
74
73
|
"peerDependencies": {
|
|
75
74
|
"react": ">=19.0.0"
|
|
76
75
|
},
|
|
77
76
|
"author": "Rafał Krupiński <rkrupinski.npm@gmail.com> (https://github.com/rkrupinski)",
|
|
78
|
-
"homepage": "https://
|
|
77
|
+
"homepage": "https://stan.party",
|
|
79
78
|
"repository": {
|
|
80
79
|
"type": "git",
|
|
81
80
|
"url": "git+https://github.com/rkrupinski/stan.git"
|
package/dist/store-VbZJVt7t.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
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,s=t.cmp&&(r=t.cmp,function(e){return function(t,n){var s={key:t,value:e[t]},o={key:n,value:e[n]};return r(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 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!==o.indexOf(t)){if(n)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="",r=0;r<u.length;r++){var c=u[r],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 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(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.0";deps=new Map;value="production"!==process.env.NODE_ENV?new _((e=>(window.__STAN_DEVTOOLS__?.register(e),t=>{window.__STAN_DEVTOOLS__?.send(e.key,t)}))(this)):new Map;version=new Map;mounted=new Map;initialized=new Map;constructor({tag:e}={}){this.key=`@@store${e?`[${e}]`:""}-${v++}`}destroy(){var e;this.deps.clear(),this.value.clear(),this.version.clear(),this.mounted.clear(),this.initialized.clear(),"production"!==process.env.NODE_ENV&&(e=this,window.__STAN_DEVTOOLS__?.unregister(e))}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,n as s};
|