@lite-fsm/react 2.0.3 → 2.0.4
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/FSMProvider.d.cts +1 -1
- package/dist/FSMProvider.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/persistContext.d.cts +5 -4
- package/dist/persistContext.d.ts +5 -4
- package/package.json +2 -2
package/dist/FSMProvider.d.cts
CHANGED
|
@@ -5,6 +5,6 @@ export type { FSMPersistLifecycle } from "./persistContext";
|
|
|
5
5
|
export type FSMContextProviderProps<S extends MachineStore, P extends AnyEvent = AnyEvent> = React.PropsWithChildren<{
|
|
6
6
|
machineManager: IMachineManager<S, P>;
|
|
7
7
|
getServerSnapshot?: () => MachinesState<S>;
|
|
8
|
-
persist?:
|
|
8
|
+
persist?: readonly FSMPersistLifecycle[];
|
|
9
9
|
}>;
|
|
10
10
|
export declare const FSMContextProvider: <S extends MachineStore, P extends AnyEvent = AnyEvent>({ children, getServerSnapshot, machineManager, persist, }: FSMContextProviderProps<S, P>) => import("react/jsx-runtime").JSX.Element;
|
package/dist/FSMProvider.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export type { FSMPersistLifecycle } from "./persistContext";
|
|
|
5
5
|
export type FSMContextProviderProps<S extends MachineStore, P extends AnyEvent = AnyEvent> = React.PropsWithChildren<{
|
|
6
6
|
machineManager: IMachineManager<S, P>;
|
|
7
7
|
getServerSnapshot?: () => MachinesState<S>;
|
|
8
|
-
persist?:
|
|
8
|
+
persist?: readonly FSMPersistLifecycle[];
|
|
9
9
|
}>;
|
|
10
10
|
export declare const FSMContextProvider: <S extends MachineStore, P extends AnyEvent = AnyEvent>({ children, getServerSnapshot, machineManager, persist, }: FSMContextProviderProps<S, P>) => import("react/jsx-runtime").JSX.Element;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var Me=Object.create;var v=Object.defineProperty;var me=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,Pe=Object.prototype.hasOwnProperty;var xe=(e,r)=>{for(var t in r)v(e,t,{get:r[t],enumerable:!0})},V=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of fe(r))!Pe.call(e,n)&&n!==t&&v(e,n,{get:()=>r[n],enumerable:!(o=me(r,n))||o.enumerable});return e};var c=(e,r,t)=>(t=e!=null?Me(he(e)):{},V(r||!e||!e.__esModule?v(t,"default",{value:e,enumerable:!0}):t,e)),ve=e=>V(v({},"__esModule",{value:!0}),e);var Oe={};xe(Oe,{FSMContext:()=>d,FSMContextProvider:()=>$,FSMHydrationBoundary:()=>z,defineMachine:()=>ie,useHydrateSnapshot:()=>te,useManager:()=>a,useSelector:()=>ne,useTransition:()=>oe});module.exports=ve(Oe);var B=c(require("react"),1),U="Hooks from @lite-fsm/react must be used within FSMContextProvider.",d=B.default.createContext(null);var i=c(require("react"),1);var P=c(require("react"),1),q=P.default.createContext(null),N=q.Provider,g=()=>P.default.useContext(q),W=P.default.createContext(null),E=W.Provider,F=()=>P.default.useContext(W);var Y=c(require("react"),1);var a=()=>{let e=Y.default.useContext(d);if(!e)throw new Error(U);return e};var b=c(require("react"),1),C=typeof window>"u"?b.default.useEffect:b.default.useLayoutEffect;var L=require("react/jsx-runtime"),j=(e,r,t,o)=>o!==null&&e!==null&&e.snapshot===r&&e.strategy===t&&e.actions===o,z=({snapshot:e,strategy:r,transitionAfterHydrate:t,children:o})=>{let n=a(),S=g(),M=F(),s=r??"merge",x=i.default.useRef(null),[u,m]=i.default.useState(null),w=i.default.useRef(null),[Se,ce]=i.default.useState(null),l=i.default.useMemo(()=>{if(!t)return null;let f=Array.isArray(t)?t:[t];return f.length>0?f:null},[t]),y=S?.getState()??n.getState(),A=i.default.useMemo(()=>n.getHydratedState(e,{baseState:y,strategy:s}),[y,s,n,e]),ye=j(Se,e,s,l),le=u!==null&&u.committedState===y&&u.snapshot===e&&u.strategy===s,T=A!==y&&!ye&&!le,D=M?.getState()??y,I=i.default.useMemo(()=>n.getHydratedState(e,{baseState:D,strategy:s}),[s,n,D,e]);C(()=>{let f=j(w.current,e,s,l),_=l!==null&&!f,k=T&&!f;if(!k&&!_)return;let O=x.current;if(k&&!(O?.baseState===y&&O.snapshot===e&&O.strategy===s)){n.hydrate(e,{strategy:s});let h={baseState:y,committedState:n.getState(),snapshot:e,strategy:s};x.current=h,m(h)}if(_&&l!==null){for(let de of l)n.transition(de);let h={snapshot:e,strategy:s,actions:l};w.current=h,ce(h)}},[y,T,s,n,e,l]);let pe=i.default.useMemo(()=>({getState:()=>A}),[A]),ue=i.default.useMemo(()=>({getState:()=>I}),[I]);return(0,L.jsx)(E,{value:ue,children:T?(0,L.jsx)(N,{value:pe,children:o}):o})};var p=c(require("react"),1);var G=c(require("react"),1),K=globalThis,X=Symbol.for("@lite-fsm/react.persistStatusesContext"),R=[],ge=[],J=K[X]??(K[X]=G.default.createContext(null)),Ee=e=>{let r=e;return e!==null&&typeof e=="object"&&typeof r.getStatus=="function"&&typeof r.subscribeStatus=="function"},Q=(e,r)=>{if(e.length!==r.length)return!1;for(let t=0;t<e.length;t+=1)if(e[t]!==r[t])return!1;return!0},Z=e=>e===void 0||e.length===0?ge:e.map(r=>Ee(r)?r:null);var H=require("react/jsx-runtime"),Fe=()=>({snapshot:R}),Ce=e=>e===void 0||e.length===0?R:e,Re=(e,r)=>{let t=Ce(r);return Q(e.snapshot,t)||(e.snapshot=t.length===0?R:[...t]),e.snapshot},He=e=>{let r=p.default.useMemo(()=>Fe(),[]);return Re(r,e)},$=({children:e,getServerSnapshot:r,machineManager:t,persist:o})=>{let n=p.default.useMemo(()=>t,[t]),S=p.default.useMemo(()=>t.getState(),[t]),M=p.default.useMemo(()=>({getState:r??(()=>S)}),[r,S]),s=He(o),x=p.default.useMemo(()=>Z(s),[s]);return p.default.useEffect(()=>{if(s.length===0)return;let u=s.map(m=>m.start());return()=>{for(let m of u)m()}},[s]),(0,H.jsx)(d.Provider,{value:n,children:(0,H.jsx)(J.Provider,{value:x,children:(0,H.jsx)(E,{value:M,children:e})})})};var ee=require("react");var te=(e,r)=>{let t=a(),o=r?.strategy??"merge",n=(0,ee.useRef)(null);C(()=>{n.current?.snapshot===e&&n.current.strategy===o||(t.hydrate(e,{strategy:o}),n.current={snapshot:e,strategy:o})},[t,e,o])};var re=c(require("use-sync-external-store/shim/with-selector"),1);var{useSyncExternalStoreWithSelector:Ae}=re.default;function ne(e,r){let t=a(),o=g(),n=F(),S=o?.getState??t.getState,M=n?.getState??S;return Ae(t.onTransition,S,M,e,r)}var oe=()=>a().transition;var se=c(require("use-sync-external-store/shim/with-selector"),1),ae=require("@lite-fsm/core"),{useSyncExternalStoreWithSelector:Te}=se.default,ie=(e={})=>({create:r=>{let t=(0,ae.defineMachine)(e).create(r),o=(n,S)=>Te(t.onTransition,t.getState,t.getState,n,S);return Object.assign(o,t),o}});0&&(module.exports={FSMContext,FSMContextProvider,FSMHydrationBoundary,defineMachine,useHydrateSnapshot,useManager,useSelector,useTransition});
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import
|
|
1
|
+
"use client";import $ from"react";var D="Hooks from @lite-fsm/react must be used within FSMContextProvider.",f=$.createContext(null);import S from"react";import P from"react";var I=P.createContext(null),_=I.Provider,x=()=>P.useContext(I),k=P.createContext(null),v=k.Provider,g=()=>P.useContext(k);import ee from"react";var i=()=>{let e=ee.useContext(f);if(!e)throw new Error(D);return e};import V from"react";var E=typeof window>"u"?V.useEffect:V.useLayoutEffect;import{jsx as U}from"react/jsx-runtime";var B=(e,r,t,s)=>s!==null&&e!==null&&e.snapshot===r&&e.strategy===t&&e.actions===s,te=({snapshot:e,strategy:r,transitionAfterHydrate:t,children:s})=>{let n=i(),a=x(),u=g(),o=r??"merge",h=S.useRef(null),[l,d]=S.useState(null),T=S.useRef(null),[z,K]=S.useState(null),y=S.useMemo(()=>{if(!t)return null;let M=Array.isArray(t)?t:[t];return M.length>0?M:null},[t]),c=a?.getState()??n.getState(),C=S.useMemo(()=>n.getHydratedState(e,{baseState:c,strategy:o}),[c,o,n,e]),X=B(z,e,o,y),G=l!==null&&l.committedState===c&&l.snapshot===e&&l.strategy===o,R=C!==c&&!X&&!G,O=u?.getState()??c,b=S.useMemo(()=>n.getHydratedState(e,{baseState:O,strategy:o}),[o,n,O,e]);E(()=>{let M=B(T.current,e,o,y),L=y!==null&&!M,w=R&&!M;if(!w&&!L)return;let H=h.current;if(w&&!(H?.baseState===c&&H.snapshot===e&&H.strategy===o)){n.hydrate(e,{strategy:o});let m={baseState:c,committedState:n.getState(),snapshot:e,strategy:o};h.current=m,d(m)}if(L&&y!==null){for(let Z of y)n.transition(Z);let m={snapshot:e,strategy:o,actions:y};T.current=m,K(m)}},[c,R,o,n,e,y]);let J=S.useMemo(()=>({getState:()=>C}),[C]),Q=S.useMemo(()=>({getState:()=>b}),[b]);return U(v,{value:Q,children:R?U(_,{value:J,children:s}):s})};import p from"react";import re from"react";var q=globalThis,N=Symbol.for("@lite-fsm/react.persistStatusesContext"),F=[],ne=[],W=q[N]??(q[N]=re.createContext(null)),oe=e=>{let r=e;return e!==null&&typeof e=="object"&&typeof r.getStatus=="function"&&typeof r.subscribeStatus=="function"},Y=(e,r)=>{if(e.length!==r.length)return!1;for(let t=0;t<e.length;t+=1)if(e[t]!==r[t])return!1;return!0},j=e=>e===void 0||e.length===0?ne:e.map(r=>oe(r)?r:null);import{jsx as A}from"react/jsx-runtime";var se=()=>({snapshot:F}),ae=e=>e===void 0||e.length===0?F:e,ie=(e,r)=>{let t=ae(r);return Y(e.snapshot,t)||(e.snapshot=t.length===0?F:[...t]),e.snapshot},Se=e=>{let r=p.useMemo(()=>se(),[]);return ie(r,e)},ce=({children:e,getServerSnapshot:r,machineManager:t,persist:s})=>{let n=p.useMemo(()=>t,[t]),a=p.useMemo(()=>t.getState(),[t]),u=p.useMemo(()=>({getState:r??(()=>a)}),[r,a]),o=Se(s),h=p.useMemo(()=>j(o),[o]);return p.useEffect(()=>{if(o.length===0)return;let l=o.map(d=>d.start());return()=>{for(let d of l)d()}},[o]),A(f.Provider,{value:n,children:A(W.Provider,{value:h,children:A(v,{value:u,children:e})})})};import{useRef as ye}from"react";var le=(e,r)=>{let t=i(),s=r?.strategy??"merge",n=ye(null);E(()=>{n.current?.snapshot===e&&n.current.strategy===s||(t.hydrate(e,{strategy:s}),n.current={snapshot:e,strategy:s})},[t,e,s])};import pe from"use-sync-external-store/shim/with-selector";var{useSyncExternalStoreWithSelector:ue}=pe;function de(e,r){let t=i(),s=x(),n=g(),a=s?.getState??t.getState,u=n?.getState??a;return ue(t.onTransition,a,u,e,r)}var Me=()=>i().transition;import me from"use-sync-external-store/shim/with-selector";import{defineMachine as fe}from"@lite-fsm/core";var{useSyncExternalStoreWithSelector:he}=me,Pe=(e={})=>({create:r=>{let t=fe(e).create(r),s=(n,a)=>he(t.onTransition,t.getState,t.getState,n,a);return Object.assign(s,t),s}});export{f as FSMContext,ce as FSMContextProvider,te as FSMHydrationBoundary,Pe as defineMachine,le as useHydrateSnapshot,i as useManager,de as useSelector,Me as useTransition};
|
|
@@ -6,7 +6,8 @@ export type FSMPersistStatusSource = {
|
|
|
6
6
|
export type FSMPersistLifecycle = {
|
|
7
7
|
start(): () => void;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
10
|
-
export declare const
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
export type FSMPersistStatusEntry = FSMPersistStatusSource | null;
|
|
10
|
+
export declare const EMPTY_PERSIST_ENTRIES: readonly FSMPersistLifecycle[];
|
|
11
|
+
export declare const FSMPersistStatusesContext: React.Context<readonly FSMPersistStatusEntry[] | null>;
|
|
12
|
+
export declare const arePersistLifecycleSequencesEqual: (prev: readonly FSMPersistLifecycle[], next: readonly FSMPersistLifecycle[]) => boolean;
|
|
13
|
+
export declare const resolvePersistStatusSources: (persist: readonly FSMPersistLifecycle[] | undefined) => readonly FSMPersistStatusEntry[];
|
package/dist/persistContext.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ export type FSMPersistStatusSource = {
|
|
|
6
6
|
export type FSMPersistLifecycle = {
|
|
7
7
|
start(): () => void;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
10
|
-
export declare const
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
export type FSMPersistStatusEntry = FSMPersistStatusSource | null;
|
|
10
|
+
export declare const EMPTY_PERSIST_ENTRIES: readonly FSMPersistLifecycle[];
|
|
11
|
+
export declare const FSMPersistStatusesContext: React.Context<readonly FSMPersistStatusEntry[] | null>;
|
|
12
|
+
export declare const arePersistLifecycleSequencesEqual: (prev: readonly FSMPersistLifecycle[], next: readonly FSMPersistLifecycle[]) => boolean;
|
|
13
|
+
export declare const resolvePersistStatusSources: (persist: readonly FSMPersistLifecycle[] | undefined) => readonly FSMPersistStatusEntry[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lite-fsm/react",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React bindings for lite-fsm",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"use-sync-external-store": ">=1.2.0",
|
|
59
|
-
"@lite-fsm/core": "2.0.
|
|
59
|
+
"@lite-fsm/core": "2.0.4"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"react": ">=18.0.0"
|