@lite-fsm/persist 1.0.4 → 1.0.6-alpha.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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var x=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var Q=(r,t)=>{for(var i in t)x(r,i,{get:t[i],enumerable:!0})},X=(r,t,i,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of q(t))!z.call(r,a)&&a!==i&&x(r,a,{get:()=>t[a],enumerable:!(d=G(t,a))||d.enumerable});return r};var Z=r=>X(x({},"__esModule",{value:!0}),r);var ie={};Q(ie,{createJsonStorage:()=>oe,persistManager:()=>ae});module.exports=Z(ie);var O=Symbol("lite-fsm.taskCancelled"),$=()=>Object.assign(new Error("[lite-fsm] task was cancelled."),{[O]:!0}),L=r=>r instanceof Error&&O in r,J=()=>{let r=0,t=new Set;return{latest:()=>{let d=0,a=-1,u=-1;t.add(()=>{a=-1,u=-1});let p=()=>a===r&&u===d,k=(l,o)=>{a=l,u=o},P=(l,o)=>{a!==l||u!==o||(a=-1,u=-1)};return{run:async l=>{let o=r,S=++d,y=()=>o===r&&S===d,h=()=>{if(!y())throw $()},w=async g=>{h();let M=await g();return h(),M};k(o,S);try{return await l({isCurrent:y,checkpoint:h,step:w})}finally{P(o,S)}},isActive:p}},cancelAll:()=>{r+=1;for(let d of t)d()}}};var ee="@@lite-fsm/HYDRATE",B={phase:"idle"},te={phase:"restoring"},N=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),re=r=>N(r)&&typeof r.timestamp=="number"&&N(r.snapshot),se=()=>new Error("[@lite-fsm/persist] restore: persisted record must be an object with numeric timestamp and object snapshot."),ne=(r,t)=>r.phase!==t.phase?!1:r.phase==="ready"&&t.phase==="ready"?r.restored===t.restored:r.phase==="error"&&t.phase==="error"?r.error===t.error:!0,ae=(r,t)=>{let i=t.throttleMs??0,d=t.strategy??"merge",a=B,u=[],p=0,k,P,f,l=!1,o,S=!1,y=J(),h=y.latest(),w=y.latest(),g=(e,s)=>{try{t.onError?.(e,s)}catch{}},M=e=>{try{t.onRestoreSettled?.(e)}catch{}},m=e=>{if(!ne(a,e)){a=e;for(let s of u)s()}},E=(e,s,n,c)=>{if(L(e))return;let T=s.isCurrent();if(!(!T&&n==="background")){if(T){let b={phase:"error",error:e};m(b),c==="restore"&&M(b)}if(g(e,c),n==="direct")throw e}},R=()=>{l=!1,f&&(clearTimeout(f),f=void 0)},V=()=>{y.cancelAll(),S=!1,o=void 0,R()},_=e=>w.run(async s=>{try{s.checkpoint();let n={timestamp:Date.now(),storageVersion:t.storageVersion,snapshot:r.dehydrate({machines:t.machines})};s.checkpoint(),await s.step(()=>t.storage.set(n))}catch(n){E(n,s,e,"save")}}),v=e=>{R();let s=_(e).finally(()=>{o===s&&(o=void 0)});return o=s,s},j=()=>{if(l=!0,i===0){v("background");return}f||(f=setTimeout(()=>{v("background")},i))},H=async(e,s,n)=>{let c=e||S;S=!1,!(!c||!s.isCurrent())&&await v(n)},Y=(e,s)=>{let n={phase:"ready",restored:e};return s.isCurrent()&&(m(n),M(n)),n},K=async e=>{if(e===void 0)return{kind:"skip"};if(!re(e))return{kind:"remove",error:se()};if(t.maxAge!==void 0&&Date.now()-e.timestamp>t.maxAge)return{kind:"remove"};if(e.storageVersion===t.storageVersion)return{kind:"hydrate",snapshot:e.snapshot,writeBack:!1};if(!t.migrate)return{kind:"remove"};let s=await t.migrate(e);return s?{kind:"hydrate",snapshot:s,writeBack:!0}:{kind:"remove"}},U=async e=>e.kind==="skip"?!1:e.kind==="remove"?(e.error!==void 0&&g(e.error,"restore"),await t.storage.remove(),!1):(r.hydrate(e.snapshot,{strategy:d}),!0),I=async e=>{let s=h.isActive();return h.run(async n=>{s||(S=!1),m(te);let c=!1,T=!1;try{let A=await n.step(()=>t.storage.get()),C=await n.step(()=>K(A));c=await n.step(()=>U(C)),T=C.kind==="hydrate"&&C.writeBack}catch(A){return E(A,n,e,"restore"),a}let b=Y(c,n);return await H(T,n,e),b})},D=()=>{I("background")},W=(e,s,n)=>{try{return t.shouldSave?.({prevState:e,currentState:s,action:n})??!0}catch(c){return m({phase:"error",error:c}),g(c,"save"),!1}},F=(e,s,n)=>{if(n.type!==ee&&W(e,s,n)){if(h.isActive()){S=!0;return}j()}};return{start:()=>{p+=1,p===1&&(k=r.onTransition((s,n,c)=>{F(s,n,c)}),P=t.storage.subscribe?.(D),D());let e=!1;return()=>{e||(e=!0,p-=1,!(p>0)&&(V(),k?.(),P?.(),k=void 0,P=void 0,m(B)))}},restore:()=>I("direct"),save:async()=>{R(),await v("direct")},flush:async()=>{if(l){await v("direct");return}await o},clear:async()=>{let e=o;V();try{await e?.catch(()=>{}),await t.storage.remove(),m({phase:"ready",restored:!1})}catch(s){throw m({phase:"error",error:s}),g(s,"clear"),s}},getStatus:()=>a,subscribeStatus:e=>(u.push(e),()=>{u=u.filter(s=>s!==e)})}},oe=({key:r,storage:t})=>({get:()=>{let i=t().getItem(r);return i==null?void 0:JSON.parse(i)},set:i=>{t().setItem(r,JSON.stringify(i))},remove:()=>{t().removeItem(r)}});0&&(module.exports={createJsonStorage,persistManager});
1
+ "use strict";var x=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var X=(r,t)=>{for(var i in t)x(r,i,{get:t[i],enumerable:!0})},Z=(r,t,i,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of z(t))!Q.call(r,a)&&a!==i&&x(r,a,{get:()=>t[a],enumerable:!(d=q(t,a))||d.enumerable});return r};var $=r=>Z(x({},"__esModule",{value:!0}),r);var ie={};X(ie,{createJsonStorage:()=>oe,persistManager:()=>ae});module.exports=$(ie);var _=require("@lite-fsm/core");var O=Symbol("lite-fsm.taskCancelled"),ee=()=>Object.assign(new Error("[lite-fsm] task was cancelled."),{[O]:!0}),L=r=>r instanceof Error&&O in r,J=()=>{let r=0,t=new Set;return{latest:()=>{let d=0,a=-1,u=-1;t.add(()=>{a=-1,u=-1});let m=()=>a===r&&u===d,k=(l,o)=>{a=l,u=o},P=(l,o)=>{a!==l||u!==o||(a=-1,u=-1)};return{run:async l=>{let o=r,S=++d,f=()=>o===r&&S===d,p=()=>{if(!f())throw ee()},w=async g=>{p();let M=await g();return p(),M};k(o,S);try{return await l({isCurrent:f,checkpoint:p,step:w})}finally{P(o,S)}},isActive:m}},cancelAll:()=>{r+=1;for(let d of t)d()}}};var B={phase:"idle"},te={phase:"restoring"},N=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),re=r=>N(r)&&typeof r.timestamp=="number"&&N(r.snapshot),se=()=>new Error("[@lite-fsm/persist] restore: persisted record must be an object with numeric timestamp and object snapshot."),ne=(r,t)=>r.phase!==t.phase?!1:r.phase==="ready"&&t.phase==="ready"?r.restored===t.restored:r.phase==="error"&&t.phase==="error"?r.error===t.error:!0,ae=(r,t)=>{let i=t.throttleMs??0,d=t.strategy??"merge",a=B,u=[],m=0,k,P,y,l=!1,o,S=!1,f=J(),p=f.latest(),w=f.latest(),g=(e,s)=>{try{t.onError?.(e,s)}catch{}},M=e=>{try{t.onRestoreSettled?.(e)}catch{}},h=e=>{if(!ne(a,e)){a=e;for(let s of u)s()}},E=(e,s,n,c)=>{if(L(e))return;let T=s.isCurrent();if(!(!T&&n==="background")){if(T){let b={phase:"error",error:e};h(b),c==="restore"&&M(b)}if(g(e,c),n==="direct")throw e}},R=()=>{l=!1,y&&(clearTimeout(y),y=void 0)},V=()=>{f.cancelAll(),S=!1,o=void 0,R()},j=e=>w.run(async s=>{try{s.checkpoint();let n={timestamp:Date.now(),storageVersion:t.storageVersion,snapshot:r.dehydrate({machines:t.machines})};s.checkpoint(),await s.step(()=>t.storage.set(n))}catch(n){E(n,s,e,"save")}}),v=e=>{R();let s=j(e).finally(()=>{o===s&&(o=void 0)});return o=s,s},H=()=>{if(l=!0,i===0){v("background");return}y||(y=setTimeout(()=>{v("background")},i))},K=async(e,s,n)=>{let c=e||S;S=!1,!(!c||!s.isCurrent())&&await v(n)},U=(e,s)=>{let n={phase:"ready",restored:e};return s.isCurrent()&&(h(n),M(n)),n},W=async e=>{if(e===void 0)return{kind:"skip"};if(!re(e))return{kind:"remove",error:se()};if(t.maxAge!==void 0&&Date.now()-e.timestamp>t.maxAge)return{kind:"remove"};if(e.storageVersion===t.storageVersion)return{kind:"hydrate",snapshot:e.snapshot,writeBack:!1};if(!t.migrate)return{kind:"remove"};let s=await t.migrate(e);return s?{kind:"hydrate",snapshot:s,writeBack:!0}:{kind:"remove"}},Y=async e=>e.kind==="skip"?!1:e.kind==="remove"?(e.error!==void 0&&g(e.error,"restore"),await t.storage.remove(),!1):(r.hydrate(e.snapshot,{strategy:d}),!0),I=async e=>{let s=p.isActive();return p.run(async n=>{s||(S=!1),h(te);let c=!1,T=!1;try{let A=await n.step(()=>t.storage.get()),C=await n.step(()=>W(A));c=await n.step(()=>Y(C)),T=C.kind==="hydrate"&&C.writeBack}catch(A){return E(A,n,e,"restore"),a}let b=U(c,n);return await K(T,n,e),b})},D=()=>{I("background")},F=(e,s,n)=>{try{return t.shouldSave?.({prevState:e,currentState:s,action:n})??!0}catch(c){return h({phase:"error",error:c}),g(c,"save"),!1}},G=(e,s,n)=>{if(n.type!==_.HYDRATE_ACTION_TYPE&&F(e,s,n)){if(p.isActive()){S=!0;return}H()}};return{start:()=>{m+=1,m===1&&(k=r.onTransition((s,n,c)=>{G(s,n,c)}),P=t.storage.subscribe?.(D),D());let e=!1;return()=>{e||(e=!0,m-=1,!(m>0)&&(V(),k?.(),P?.(),k=void 0,P=void 0,h(B)))}},restore:()=>I("direct"),save:async()=>{R(),await v("direct")},flush:async()=>{if(l){await v("direct");return}await o},clear:async()=>{let e=o;V();try{await e?.catch(()=>{}),await t.storage.remove(),h({phase:"ready",restored:!1})}catch(s){throw h({phase:"error",error:s}),g(s,"clear"),s}},getStatus:()=>a,subscribeStatus:e=>(u.push(e),()=>{u=u.filter(s=>s!==e)})}},oe=({key:r,storage:t})=>({get:()=>{let i=t().getItem(r);return i==null?void 0:JSON.parse(i)},set:i=>{t().setItem(r,JSON.stringify(i))},remove:()=>{t().removeItem(r)}});0&&(module.exports={createJsonStorage,persistManager});
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import type { DehydrateOptions, HydrateStrategy, IMachineManager, MachineManagerSnapshot, MachinesState, MachineStore, ManagerCommitAction } from "@lite-fsm/core";
1
+ import { type DehydrateOptions, type HydrateStrategy, type IMachineManager, type MachineManagerSnapshot, type MachinesState, type MachineStore, type ManagerCommitAction } from "@lite-fsm/core";
2
2
  export type MaybePromise<T> = T | Promise<T>;
3
3
  export type PersistedRecord<S extends MachineStore> = {
4
4
  timestamp: number;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { DehydrateOptions, HydrateStrategy, IMachineManager, MachineManagerSnapshot, MachinesState, MachineStore, ManagerCommitAction } from "@lite-fsm/core";
1
+ import { type DehydrateOptions, type HydrateStrategy, type IMachineManager, type MachineManagerSnapshot, type MachinesState, type MachineStore, type ManagerCommitAction } from "@lite-fsm/core";
2
2
  export type MaybePromise<T> = T | Promise<T>;
3
3
  export type PersistedRecord<S extends MachineStore> = {
4
4
  timestamp: number;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var D=Symbol("lite-fsm.taskCancelled"),F=()=>Object.assign(new Error("[lite-fsm] task was cancelled."),{[D]:!0}),O=s=>s instanceof Error&&D in s,L=()=>{let s=0,r=new Set;return{latest:()=>{let S=0,i=-1,c=-1;r.add(()=>{i=-1,c=-1});let p=()=>i===s&&c===S,k=(d,a)=>{i=d,c=a},P=(d,a)=>{i!==d||c!==a||(i=-1,c=-1)};return{run:async d=>{let a=s,u=++S,y=()=>a===s&&u===S,h=()=>{if(!y())throw F()},w=async g=>{h();let M=await g();return h(),M};k(a,u);try{return await d({isCurrent:y,checkpoint:h,step:w})}finally{P(a,u)}},isActive:p}},cancelAll:()=>{s+=1;for(let S of r)S()}}};var G="@@lite-fsm/HYDRATE",J={phase:"idle"},q={phase:"restoring"},B=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),z=s=>B(s)&&typeof s.timestamp=="number"&&B(s.snapshot),Q=()=>new Error("[@lite-fsm/persist] restore: persisted record must be an object with numeric timestamp and object snapshot."),X=(s,r)=>s.phase!==r.phase?!1:s.phase==="ready"&&r.phase==="ready"?s.restored===r.restored:s.phase==="error"&&r.phase==="error"?s.error===r.error:!0,ae=(s,r)=>{let l=r.throttleMs??0,S=r.strategy??"merge",i=J,c=[],p=0,k,P,f,d=!1,a,u=!1,y=L(),h=y.latest(),w=y.latest(),g=(e,t)=>{try{r.onError?.(e,t)}catch{}},M=e=>{try{r.onRestoreSettled?.(e)}catch{}},m=e=>{if(!X(i,e)){i=e;for(let t of c)t()}},x=(e,t,n,o)=>{if(O(e))return;let T=t.isCurrent();if(!(!T&&n==="background")){if(T){let b={phase:"error",error:e};m(b),o==="restore"&&M(b)}if(g(e,o),n==="direct")throw e}},R=()=>{d=!1,f&&(clearTimeout(f),f=void 0)},E=()=>{y.cancelAll(),u=!1,a=void 0,R()},N=e=>w.run(async t=>{try{t.checkpoint();let n={timestamp:Date.now(),storageVersion:r.storageVersion,snapshot:s.dehydrate({machines:r.machines})};t.checkpoint(),await t.step(()=>r.storage.set(n))}catch(n){x(n,t,e,"save")}}),v=e=>{R();let t=N(e).finally(()=>{a===t&&(a=void 0)});return a=t,t},_=()=>{if(d=!0,l===0){v("background");return}f||(f=setTimeout(()=>{v("background")},l))},j=async(e,t,n)=>{let o=e||u;u=!1,!(!o||!t.isCurrent())&&await v(n)},H=(e,t)=>{let n={phase:"ready",restored:e};return t.isCurrent()&&(m(n),M(n)),n},Y=async e=>{if(e===void 0)return{kind:"skip"};if(!z(e))return{kind:"remove",error:Q()};if(r.maxAge!==void 0&&Date.now()-e.timestamp>r.maxAge)return{kind:"remove"};if(e.storageVersion===r.storageVersion)return{kind:"hydrate",snapshot:e.snapshot,writeBack:!1};if(!r.migrate)return{kind:"remove"};let t=await r.migrate(e);return t?{kind:"hydrate",snapshot:t,writeBack:!0}:{kind:"remove"}},K=async e=>e.kind==="skip"?!1:e.kind==="remove"?(e.error!==void 0&&g(e.error,"restore"),await r.storage.remove(),!1):(s.hydrate(e.snapshot,{strategy:S}),!0),V=async e=>{let t=h.isActive();return h.run(async n=>{t||(u=!1),m(q);let o=!1,T=!1;try{let A=await n.step(()=>r.storage.get()),C=await n.step(()=>Y(A));o=await n.step(()=>K(C)),T=C.kind==="hydrate"&&C.writeBack}catch(A){return x(A,n,e,"restore"),i}let b=H(o,n);return await j(T,n,e),b})},I=()=>{V("background")},U=(e,t,n)=>{try{return r.shouldSave?.({prevState:e,currentState:t,action:n})??!0}catch(o){return m({phase:"error",error:o}),g(o,"save"),!1}},W=(e,t,n)=>{if(n.type!==G&&U(e,t,n)){if(h.isActive()){u=!0;return}_()}};return{start:()=>{p+=1,p===1&&(k=s.onTransition((t,n,o)=>{W(t,n,o)}),P=r.storage.subscribe?.(I),I());let e=!1;return()=>{e||(e=!0,p-=1,!(p>0)&&(E(),k?.(),P?.(),k=void 0,P=void 0,m(J)))}},restore:()=>V("direct"),save:async()=>{R(),await v("direct")},flush:async()=>{if(d){await v("direct");return}await a},clear:async()=>{let e=a;E();try{await e?.catch(()=>{}),await r.storage.remove(),m({phase:"ready",restored:!1})}catch(t){throw m({phase:"error",error:t}),g(t,"clear"),t}},getStatus:()=>i,subscribeStatus:e=>(c.push(e),()=>{c=c.filter(t=>t!==e)})}},oe=({key:s,storage:r})=>({get:()=>{let l=r().getItem(s);return l==null?void 0:JSON.parse(l)},set:l=>{r().setItem(s,JSON.stringify(l))},remove:()=>{r().removeItem(s)}});export{oe as createJsonStorage,ae as persistManager};
1
+ import{HYDRATE_ACTION_TYPE as G}from"@lite-fsm/core";var D=Symbol("lite-fsm.taskCancelled"),F=()=>Object.assign(new Error("[lite-fsm] task was cancelled."),{[D]:!0}),O=s=>s instanceof Error&&D in s,L=()=>{let s=0,r=new Set;return{latest:()=>{let S=0,i=-1,c=-1;r.add(()=>{i=-1,c=-1});let m=()=>i===s&&c===S,k=(d,a)=>{i=d,c=a},P=(d,a)=>{i!==d||c!==a||(i=-1,c=-1)};return{run:async d=>{let a=s,u=++S,f=()=>a===s&&u===S,p=()=>{if(!f())throw F()},w=async g=>{p();let M=await g();return p(),M};k(a,u);try{return await d({isCurrent:f,checkpoint:p,step:w})}finally{P(a,u)}},isActive:m}},cancelAll:()=>{s+=1;for(let S of r)S()}}};var J={phase:"idle"},q={phase:"restoring"},B=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),z=s=>B(s)&&typeof s.timestamp=="number"&&B(s.snapshot),Q=()=>new Error("[@lite-fsm/persist] restore: persisted record must be an object with numeric timestamp and object snapshot."),X=(s,r)=>s.phase!==r.phase?!1:s.phase==="ready"&&r.phase==="ready"?s.restored===r.restored:s.phase==="error"&&r.phase==="error"?s.error===r.error:!0,oe=(s,r)=>{let l=r.throttleMs??0,S=r.strategy??"merge",i=J,c=[],m=0,k,P,y,d=!1,a,u=!1,f=L(),p=f.latest(),w=f.latest(),g=(e,t)=>{try{r.onError?.(e,t)}catch{}},M=e=>{try{r.onRestoreSettled?.(e)}catch{}},h=e=>{if(!X(i,e)){i=e;for(let t of c)t()}},x=(e,t,n,o)=>{if(O(e))return;let T=t.isCurrent();if(!(!T&&n==="background")){if(T){let b={phase:"error",error:e};h(b),o==="restore"&&M(b)}if(g(e,o),n==="direct")throw e}},R=()=>{d=!1,y&&(clearTimeout(y),y=void 0)},E=()=>{f.cancelAll(),u=!1,a=void 0,R()},N=e=>w.run(async t=>{try{t.checkpoint();let n={timestamp:Date.now(),storageVersion:r.storageVersion,snapshot:s.dehydrate({machines:r.machines})};t.checkpoint(),await t.step(()=>r.storage.set(n))}catch(n){x(n,t,e,"save")}}),v=e=>{R();let t=N(e).finally(()=>{a===t&&(a=void 0)});return a=t,t},_=()=>{if(d=!0,l===0){v("background");return}y||(y=setTimeout(()=>{v("background")},l))},j=async(e,t,n)=>{let o=e||u;u=!1,!(!o||!t.isCurrent())&&await v(n)},H=(e,t)=>{let n={phase:"ready",restored:e};return t.isCurrent()&&(h(n),M(n)),n},K=async e=>{if(e===void 0)return{kind:"skip"};if(!z(e))return{kind:"remove",error:Q()};if(r.maxAge!==void 0&&Date.now()-e.timestamp>r.maxAge)return{kind:"remove"};if(e.storageVersion===r.storageVersion)return{kind:"hydrate",snapshot:e.snapshot,writeBack:!1};if(!r.migrate)return{kind:"remove"};let t=await r.migrate(e);return t?{kind:"hydrate",snapshot:t,writeBack:!0}:{kind:"remove"}},U=async e=>e.kind==="skip"?!1:e.kind==="remove"?(e.error!==void 0&&g(e.error,"restore"),await r.storage.remove(),!1):(s.hydrate(e.snapshot,{strategy:S}),!0),V=async e=>{let t=p.isActive();return p.run(async n=>{t||(u=!1),h(q);let o=!1,T=!1;try{let A=await n.step(()=>r.storage.get()),C=await n.step(()=>K(A));o=await n.step(()=>U(C)),T=C.kind==="hydrate"&&C.writeBack}catch(A){return x(A,n,e,"restore"),i}let b=H(o,n);return await j(T,n,e),b})},I=()=>{V("background")},W=(e,t,n)=>{try{return r.shouldSave?.({prevState:e,currentState:t,action:n})??!0}catch(o){return h({phase:"error",error:o}),g(o,"save"),!1}},Y=(e,t,n)=>{if(n.type!==G&&W(e,t,n)){if(p.isActive()){u=!0;return}_()}};return{start:()=>{m+=1,m===1&&(k=s.onTransition((t,n,o)=>{Y(t,n,o)}),P=r.storage.subscribe?.(I),I());let e=!1;return()=>{e||(e=!0,m-=1,!(m>0)&&(E(),k?.(),P?.(),k=void 0,P=void 0,h(J)))}},restore:()=>V("direct"),save:async()=>{R(),await v("direct")},flush:async()=>{if(d){await v("direct");return}await a},clear:async()=>{let e=a;E();try{await e?.catch(()=>{}),await r.storage.remove(),h({phase:"ready",restored:!1})}catch(t){throw h({phase:"error",error:t}),g(t,"clear"),t}},getStatus:()=>i,subscribeStatus:e=>(c.push(e),()=>{c=c.filter(t=>t!==e)})}},ie=({key:s,storage:r})=>({get:()=>{let l=r().getItem(s);return l==null?void 0:JSON.parse(l)},set:l=>{r().setItem(s,JSON.stringify(l))},remove:()=>{r().removeItem(s)}});export{ie as createJsonStorage,oe as persistManager};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lite-fsm/persist",
3
- "version": "1.0.4",
3
+ "version": "1.0.6-alpha.0",
4
4
  "type": "module",
5
5
  "description": "Persistence helpers for lite-fsm",
6
6
  "license": "MIT",
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "use-sync-external-store": ">=1.2.0",
73
- "@lite-fsm/core": "2.0.4"
73
+ "@lite-fsm/core": "2.1.0-alpha.0"
74
74
  },
75
75
  "peerDependencies": {
76
76
  "react": ">=18.0.0"