xstate 5.0.0-beta.19 → 5.0.0-beta.20
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/actions/dist/xstate-actions.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.esm.js +1 -1
- package/actions/dist/xstate-actions.esm.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.esm.js +1 -1
- package/actors/dist/xstate-actors.esm.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/{actions-2d912781.cjs.js → actions-069d9805.cjs.js} +307 -311
- package/dist/{actions-3b74fb92.esm.js → actions-a8a9433c.esm.js} +307 -311
- package/dist/{actions-72105f77.development.esm.js → actions-b299d008.development.esm.js} +307 -311
- package/dist/{actions-bce11b97.development.cjs.js → actions-d1c41ed3.development.cjs.js} +307 -311
- package/dist/declarations/src/Machine.d.ts +2 -2
- package/dist/declarations/src/State.d.ts +15 -4
- package/dist/declarations/src/StateMachine.d.ts +16 -16
- package/dist/declarations/src/StateNode.d.ts +4 -4
- package/dist/declarations/src/actions/send.d.ts +1 -1
- package/dist/declarations/src/actions/stop.d.ts +1 -1
- package/dist/declarations/src/actors/callback.d.ts +13 -3
- package/dist/declarations/src/actors/index.d.ts +4 -4
- package/dist/declarations/src/actors/observable.d.ts +8 -8
- package/dist/declarations/src/actors/promise.d.ts +12 -6
- package/dist/declarations/src/actors/transition.d.ts +6 -6
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/stateUtils.d.ts +8 -8
- package/dist/declarations/src/typegenTypes.d.ts +15 -17
- package/dist/declarations/src/types.d.ts +99 -59
- package/dist/declarations/src/utils.d.ts +2 -2
- package/dist/xstate.cjs.js +2 -3
- package/dist/xstate.development.cjs.js +2 -3
- package/dist/xstate.development.esm.js +3 -4
- package/dist/xstate.esm.js +3 -4
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.esm.js +1 -1
- package/guards/dist/xstate-guards.esm.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import type { StateNode } from "./StateNode.js";
|
|
2
2
|
import { TypegenDisabled, TypegenEnabled } from "./typegenTypes.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { ProvidedActor, ActorRefFrom, AnyState, AnyStateMachine, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TODO, AnyActorRef, Compute } from "./types.js";
|
|
4
|
+
type ComputeConcreteChildren<TActor extends Required<ProvidedActor>> = {
|
|
5
|
+
[K in TActor['id']]?: ActorRefFrom<(TActor & {
|
|
6
|
+
id: K;
|
|
7
|
+
})['logic']>;
|
|
8
|
+
};
|
|
9
|
+
type ComputeChildren<TActor extends ProvidedActor> = string extends TActor['src'] ? Record<string, AnyActorRef> : Compute<ComputeConcreteChildren<Extract<TActor, {
|
|
10
|
+
id: string;
|
|
11
|
+
}>> & (undefined extends TActor['id'] ? {
|
|
12
|
+
[id: string]: TActor extends any ? ActorRefFrom<TActor['logic']> | undefined : never;
|
|
13
|
+
} : {})>;
|
|
4
14
|
export declare function isStateConfig<TContext extends MachineContext, TEvent extends EventObject>(state: any): state is StateConfig<TContext, TEvent>;
|
|
5
15
|
/**
|
|
6
16
|
* @deprecated Use `isStateConfig(object)` or `state instanceof State` instead.
|
|
7
17
|
*/
|
|
8
18
|
export declare const isState: typeof isStateConfig;
|
|
9
|
-
export declare class State<TContext extends MachineContext, TEvent extends EventObject
|
|
19
|
+
export declare class State<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TResolvedTypesMeta = TypegenDisabled> {
|
|
10
20
|
machine: AnyStateMachine;
|
|
11
21
|
tags: Set<string>;
|
|
12
22
|
value: StateValue;
|
|
@@ -28,13 +38,13 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
|
|
|
28
38
|
/**
|
|
29
39
|
* An object mapping actor names to spawned/invoked actors.
|
|
30
40
|
*/
|
|
31
|
-
children:
|
|
41
|
+
children: ComputeChildren<TActor>;
|
|
32
42
|
/**
|
|
33
43
|
* Creates a new State instance for the given `stateValue` and `context`.
|
|
34
44
|
* @param stateValue
|
|
35
45
|
* @param context
|
|
36
46
|
*/
|
|
37
|
-
static from<TContext extends MachineContext, TEvent extends EventObject = EventObject>(stateValue: State<TContext, TEvent, any> | StateValue, context: TContext | undefined, machine: AnyStateMachine): State<TContext, TEvent, any>;
|
|
47
|
+
static from<TContext extends MachineContext, TEvent extends EventObject = EventObject>(stateValue: State<TContext, TEvent, TODO, any> | StateValue, context: TContext | undefined, machine: AnyStateMachine): State<TContext, TEvent, TODO, any>;
|
|
38
48
|
/**
|
|
39
49
|
* Creates a new `State` instance that represents the current state of a running machine.
|
|
40
50
|
*
|
|
@@ -78,3 +88,4 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
|
|
|
78
88
|
}
|
|
79
89
|
export declare function cloneState<TState extends AnyState>(state: TState, config?: Partial<StateConfig<any, any>>): TState;
|
|
80
90
|
export declare function getPersistedState<TState extends AnyState>(state: TState): PersistedMachineState<TState>;
|
|
91
|
+
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { State } from "./State.js";
|
|
2
2
|
import { StateNode } from "./StateNode.js";
|
|
3
3
|
import type { AreAllImplementationsAssumedToBeProvided, MarkAllImplementationsAsProvided, ResolveTypegenMeta, TypegenDisabled } from "./typegenTypes.js";
|
|
4
|
-
import type { ActorContext, ActorLogic,
|
|
4
|
+
import type { ActorContext, ActorLogic, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineTypes, NoInfer, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext, ProvidedActor, Equals } from "./types.js";
|
|
5
5
|
export declare const STATE_IDENTIFIER = "#";
|
|
6
6
|
export declare const WILDCARD = "*";
|
|
7
|
-
export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject,
|
|
7
|
+
export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActor extends ProvidedActor = ProvidedActor, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TActor>> implements ActorLogic<TEvent, State<TContext, TEvent, TActor, TResolvedTypesMeta>, State<TContext, TEvent, TActor, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TActor, TResolvedTypesMeta>>> {
|
|
8
8
|
/**
|
|
9
9
|
* The raw config used to create the machine.
|
|
10
10
|
*/
|
|
@@ -14,7 +14,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
14
14
|
*/
|
|
15
15
|
version?: string;
|
|
16
16
|
implementations: MachineImplementationsSimplified<TContext, TEvent>;
|
|
17
|
-
types: MachineTypes<TContext, TEvent>;
|
|
17
|
+
types: MachineTypes<TContext, TEvent, TActor>;
|
|
18
18
|
__xstatenode: true;
|
|
19
19
|
idMap: Map<string, StateNode<TContext, TEvent>>;
|
|
20
20
|
root: StateNode<TContext, TEvent>;
|
|
@@ -35,7 +35,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
35
35
|
*
|
|
36
36
|
* @returns A new `StateMachine` instance with the provided implementations.
|
|
37
37
|
*/
|
|
38
|
-
provide(implementations: InternalMachineImplementations<TContext, TEvent, TResolvedTypesMeta, true>): StateMachine<TContext, TEvent, TAction,
|
|
38
|
+
provide(implementations: InternalMachineImplementations<TContext, TEvent, TAction, TActor, TResolvedTypesMeta, true>): StateMachine<TContext, TEvent, TAction, TActor, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>;
|
|
39
39
|
/**
|
|
40
40
|
* Resolves the given `state` to a new `State` instance relative to this machine.
|
|
41
41
|
*
|
|
@@ -43,8 +43,8 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
43
43
|
*
|
|
44
44
|
* @param state The state to resolve
|
|
45
45
|
*/
|
|
46
|
-
resolveState(state: State<TContext, TEvent, TResolvedTypesMeta>): typeof state;
|
|
47
|
-
resolveStateValue(stateValue: StateValue, ...[context]: Equals<TContext, MachineContext> extends true ? [] : [TContext]): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
46
|
+
resolveState(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>): typeof state;
|
|
47
|
+
resolveStateValue(stateValue: StateValue, ...[context]: Equals<TContext, MachineContext> extends true ? [] : [TContext]): State<TContext, TEvent, TActor, TResolvedTypesMeta>;
|
|
48
48
|
/**
|
|
49
49
|
* Determines the next state given the current `state` and received `event`.
|
|
50
50
|
* Calculates a full macrostep from all microsteps.
|
|
@@ -52,7 +52,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
52
52
|
* @param state The current State instance or state value
|
|
53
53
|
* @param event The received event
|
|
54
54
|
*/
|
|
55
|
-
transition(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent, actorCtx: ActorContext<TEvent, State<TContext, TEvent, any>>): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
55
|
+
transition(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>, event: TEvent, actorCtx: ActorContext<TEvent, State<TContext, TEvent, TActor, any>>): State<TContext, TEvent, TActor, TResolvedTypesMeta>;
|
|
56
56
|
/**
|
|
57
57
|
* Determines the next state given the current `state` and `event`.
|
|
58
58
|
* Calculates a microstep.
|
|
@@ -60,8 +60,8 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
60
60
|
* @param state The current state
|
|
61
61
|
* @param event The received event
|
|
62
62
|
*/
|
|
63
|
-
microstep(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent, actorCtx: AnyActorContext): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
|
|
64
|
-
getTransitionData(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>>;
|
|
63
|
+
microstep(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>, event: TEvent, actorCtx: AnyActorContext): Array<State<TContext, TEvent, TActor, TResolvedTypesMeta>>;
|
|
64
|
+
getTransitionData(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>>;
|
|
65
65
|
/**
|
|
66
66
|
* The initial state _before_ evaluating any microsteps.
|
|
67
67
|
* This "pre-initial" state is provided to initial actions executed in the initial state.
|
|
@@ -70,21 +70,21 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
70
70
|
/**
|
|
71
71
|
* Returns the initial `State` instance, with reference to `self` as an `ActorRef`.
|
|
72
72
|
*/
|
|
73
|
-
getInitialState(actorCtx: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>, input?: any): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
74
|
-
start(state: State<TContext, TEvent, TResolvedTypesMeta>, actorCtx: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>): void;
|
|
73
|
+
getInitialState(actorCtx: ActorContext<TEvent, State<TContext, TEvent, TActor, TResolvedTypesMeta>>, input?: any): State<TContext, TEvent, TActor, TResolvedTypesMeta>;
|
|
74
|
+
start(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>, actorCtx: ActorContext<TEvent, State<TContext, TEvent, TActor, TResolvedTypesMeta>>): void;
|
|
75
75
|
getStateNodeById(stateId: string): StateNode<TContext, TEvent>;
|
|
76
76
|
get definition(): StateMachineDefinition<TContext, TEvent>;
|
|
77
77
|
toJSON(): StateMachineDefinition<TContext, TEvent>;
|
|
78
|
-
getPersistedState(state: State<TContext, TEvent, TResolvedTypesMeta>): PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>;
|
|
79
|
-
createState(stateConfig: State<TContext, TEvent, TResolvedTypesMeta> | StateConfig<TContext, TEvent>): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
80
|
-
getStatus(state: State<TContext, TEvent, TResolvedTypesMeta>): {
|
|
78
|
+
getPersistedState(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>): PersistedMachineState<State<TContext, TEvent, TActor, TResolvedTypesMeta>>;
|
|
79
|
+
createState(stateConfig: State<TContext, TEvent, TActor, TResolvedTypesMeta> | StateConfig<TContext, TEvent>): State<TContext, TEvent, TActor, TResolvedTypesMeta>;
|
|
80
|
+
getStatus(state: State<TContext, TEvent, TActor, TResolvedTypesMeta>): {
|
|
81
81
|
status: string;
|
|
82
82
|
data: any;
|
|
83
83
|
} | {
|
|
84
84
|
status: string;
|
|
85
85
|
data?: undefined;
|
|
86
86
|
};
|
|
87
|
-
restoreState(state: PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>, _actorCtx: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
87
|
+
restoreState(state: PersistedMachineState<State<TContext, TEvent, TActor, TResolvedTypesMeta>>, _actorCtx: ActorContext<TEvent, State<TContext, TEvent, TActor, TResolvedTypesMeta>>): State<TContext, TEvent, TActor, TResolvedTypesMeta>;
|
|
88
88
|
/**@deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
89
89
|
__TContext: TContext;
|
|
90
90
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
@@ -92,7 +92,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
92
92
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
93
93
|
__TAction: TAction;
|
|
94
94
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
95
|
-
|
|
95
|
+
__TActor: TActor;
|
|
96
96
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
97
97
|
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
98
98
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { State } from "./State.js";
|
|
2
2
|
import type { StateMachine } from "./StateMachine.js";
|
|
3
|
-
import type { Action, DelayedTransitionDefinition, EventObject, InitialTransitionDefinition, InvokeDefinition, MachineContext, Mapper, PropertyMapper, StateNodeConfig, StateNodeDefinition, StateNodesConfig, TransitionDefinition, TransitionDefinitionMap } from "./types.js";
|
|
3
|
+
import type { Action, DelayedTransitionDefinition, EventObject, InitialTransitionDefinition, InvokeDefinition, MachineContext, Mapper, PropertyMapper, StateNodeConfig, StateNodeDefinition, StateNodesConfig, TransitionDefinition, TransitionDefinitionMap, TODO } from "./types.js";
|
|
4
4
|
interface StateNodeOptions<TContext extends MachineContext, TEvent extends EventObject> {
|
|
5
5
|
_key: string;
|
|
6
6
|
_parent?: StateNode<TContext, TEvent>;
|
|
@@ -10,7 +10,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
10
10
|
/**
|
|
11
11
|
* The raw config used to create the machine.
|
|
12
12
|
*/
|
|
13
|
-
config: StateNodeConfig<TContext, TEvent>;
|
|
13
|
+
config: StateNodeConfig<TContext, TEvent, TODO, TODO>;
|
|
14
14
|
/**
|
|
15
15
|
* The relative key of the state node, which represents its location in the overall state value.
|
|
16
16
|
*/
|
|
@@ -80,7 +80,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
80
80
|
/**
|
|
81
81
|
* The raw config used to create the machine.
|
|
82
82
|
*/
|
|
83
|
-
config: StateNodeConfig<TContext, TEvent>, options: StateNodeOptions<TContext, TEvent>);
|
|
83
|
+
config: StateNodeConfig<TContext, TEvent, TODO, TODO>, options: StateNodeOptions<TContext, TEvent>);
|
|
84
84
|
_initialize(): void;
|
|
85
85
|
/**
|
|
86
86
|
* The well-structured state node definition.
|
|
@@ -97,7 +97,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
97
97
|
get on(): TransitionDefinitionMap<TContext, TEvent>;
|
|
98
98
|
get after(): Array<DelayedTransitionDefinition<TContext, TEvent>>;
|
|
99
99
|
get initial(): InitialTransitionDefinition<TContext, TEvent>;
|
|
100
|
-
next(state: State<TContext, TEvent>, event: TEvent): TransitionDefinition<TContext, TEvent>[] | undefined;
|
|
100
|
+
next(state: State<TContext, TEvent, TODO>, event: TEvent): TransitionDefinition<TContext, TEvent>[] | undefined;
|
|
101
101
|
/**
|
|
102
102
|
* The target state value of the history state node, if it exists. This represents the
|
|
103
103
|
* default state value to transition to if no history value exists yet.
|
|
@@ -29,7 +29,7 @@ export declare function sendTo<TContext extends MachineContext, TExpressionEvent
|
|
|
29
29
|
(_: ActionArgs<TContext, TExpressionEvent>): void;
|
|
30
30
|
type: string;
|
|
31
31
|
to: string | TActor | ((args: UnifiedArg<TContext, TExpressionEvent>) => TActor | string);
|
|
32
|
-
event: ((TActor extends import("../types.js").AnyFunction ? ReturnType<TActor> : TActor) extends infer R ? R extends import("../StateMachine.js").StateMachine<infer _ extends MachineContext, infer TEvent_1 extends EventObject, infer __ extends import("../types.js").ParameterizedObject, infer ___ extends import("../types.js").
|
|
32
|
+
event: ((TActor extends import("../types.js").AnyFunction ? ReturnType<TActor> : TActor) extends infer R ? R extends import("../StateMachine.js").StateMachine<infer _ extends MachineContext, infer TEvent_1 extends EventObject, infer __ extends import("../types.js").ParameterizedObject, infer ___ extends import("../types.js").ProvidedActor, infer ____> ? TEvent_1 : R extends import("../State.js").State<infer _TContext extends MachineContext, infer TEvent_2 extends EventObject, infer _TAction extends import("../types.js").ProvidedActor, infer _TActor> ? TEvent_2 : R extends ActorRef<infer TEvent_3 extends EventObject, infer __1> ? TEvent_3 : never : never) | SendExpr<TContext, TExpressionEvent, InferEvent<Cast<(TActor extends import("../types.js").AnyFunction ? ReturnType<TActor> : TActor) extends infer R ? R extends import("../StateMachine.js").StateMachine<infer _ extends MachineContext, infer TEvent_1 extends EventObject, infer __ extends import("../types.js").ParameterizedObject, infer ___ extends import("../types.js").ProvidedActor, infer ____> ? TEvent_1 : R extends import("../State.js").State<infer _TContext extends MachineContext, infer TEvent_2 extends EventObject, infer _TAction extends import("../types.js").ProvidedActor, infer _TActor> ? TEvent_2 : R extends ActorRef<infer TEvent_3 extends EventObject, infer __1> ? TEvent_3 : never : never, EventObject>>>;
|
|
33
33
|
id: string | undefined;
|
|
34
34
|
delay: string | number | DelayExpr<TContext, TExpressionEvent> | undefined;
|
|
35
35
|
resolve: typeof resolve;
|
|
@@ -2,7 +2,7 @@ import { ActionArgs, ActorRef, AnyActorContext, AnyState, EventObject, MachineCo
|
|
|
2
2
|
type ResolvableActorRef<TContext extends MachineContext, TExpressionEvent extends EventObject> = string | ActorRef<any> | ((args: UnifiedArg<TContext, TExpressionEvent>) => ActorRef<any> | string);
|
|
3
3
|
declare function resolve(_: AnyActorContext, state: AnyState, args: ActionArgs<any, any>, { actorRef }: {
|
|
4
4
|
actorRef: ResolvableActorRef<any, any>;
|
|
5
|
-
}): (
|
|
5
|
+
}): (ActorRef<any, any> | AnyState)[];
|
|
6
6
|
declare function execute(actorContext: AnyActorContext, actorRef: ActorRef<any, any> | undefined): void;
|
|
7
7
|
/**
|
|
8
8
|
* Stops an actor.
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActorLogic, EventObject, AnyActorSystem, AnyEventObject, ActorSystem, ActorRefFrom } from "../types.js";
|
|
2
2
|
export interface CallbackInternalState<TEvent extends EventObject> {
|
|
3
3
|
canceled: boolean;
|
|
4
4
|
receivers: Set<(e: TEvent) => void>;
|
|
5
5
|
dispose: void | (() => void) | Promise<any>;
|
|
6
6
|
input?: any;
|
|
7
7
|
}
|
|
8
|
-
export type CallbackActorLogic<TEvent extends EventObject> = ActorLogic<TEvent, undefined, CallbackInternalState<TEvent
|
|
8
|
+
export type CallbackActorLogic<TEvent extends EventObject, TInput = any> = ActorLogic<TEvent, undefined, CallbackInternalState<TEvent>, CallbackInternalState<TEvent>, ActorSystem<any>, TInput, any>;
|
|
9
9
|
export type CallbackActorRef<TEvent extends EventObject> = ActorRefFrom<CallbackActorLogic<TEvent>>;
|
|
10
|
-
export
|
|
10
|
+
export type Receiver<TEvent extends EventObject> = (listener: {
|
|
11
|
+
bivarianceHack(event: TEvent): void;
|
|
12
|
+
}['bivarianceHack']) => void;
|
|
13
|
+
export type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject, TInput = unknown> = ({ input, system, self, sendBack, receive }: {
|
|
14
|
+
input: TInput;
|
|
15
|
+
system: AnyActorSystem;
|
|
16
|
+
self: CallbackActorRef<TEvent>;
|
|
17
|
+
sendBack: (event: TSentEvent) => void;
|
|
18
|
+
receive: Receiver<TEvent>;
|
|
19
|
+
}) => (() => void) | Promise<any> | void;
|
|
20
|
+
export declare function fromCallback<TEvent extends EventObject, TInput>(invokeCallback: InvokeCallback<TEvent, AnyEventObject, TInput>): CallbackActorLogic<TEvent, TInput>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ActorRef, AnyEventObject, BaseActorRef, EventObject } from "../types.js";
|
|
2
|
+
export { fromCallback, type CallbackActorLogic } from "./callback.js";
|
|
3
|
+
export { fromEventObservable, fromObservable } from "./observable.js";
|
|
4
|
+
export { fromPromise, type PromiseActorLogic } from "./promise.js";
|
|
2
5
|
export { fromTransition } from "./transition.js";
|
|
3
|
-
export { fromPromise } from "./promise.js";
|
|
4
|
-
export { fromObservable, fromEventObservable } from "./observable.js";
|
|
5
|
-
export { fromCallback } from "./callback.js";
|
|
6
6
|
export declare const startSignalType = "xstate.init";
|
|
7
7
|
export declare const stopSignalType = "xstate.stop";
|
|
8
8
|
export declare const startSignal: StartSignal;
|
|
@@ -6,13 +6,13 @@ export interface ObservableInternalState<T> {
|
|
|
6
6
|
input?: any;
|
|
7
7
|
}
|
|
8
8
|
export type ObservablePersistedState<T> = Omit<ObservableInternalState<T>, 'subscription'>;
|
|
9
|
-
export type ObservableActorLogic<T> = ActorLogic<EventObject, T | undefined, ObservableInternalState<T>, ObservablePersistedState<T
|
|
10
|
-
export type ObservableActorRef<T> = ActorRefFrom<ObservableActorLogic<T>>;
|
|
11
|
-
export declare function fromObservable<T>(observableCreator: ({ input, system }: {
|
|
12
|
-
input:
|
|
9
|
+
export type ObservableActorLogic<T, TInput> = ActorLogic<EventObject, T | undefined, ObservableInternalState<T>, ObservablePersistedState<T>, AnyActorSystem, TInput>;
|
|
10
|
+
export type ObservableActorRef<T> = ActorRefFrom<ObservableActorLogic<T, any>>;
|
|
11
|
+
export declare function fromObservable<T, TInput>(observableCreator: ({ input, system }: {
|
|
12
|
+
input: TInput;
|
|
13
13
|
system: AnyActorSystem;
|
|
14
14
|
self: ObservableActorRef<T>;
|
|
15
|
-
}) => Subscribable<T>): ObservableActorLogic<T>;
|
|
15
|
+
}) => Subscribable<T>): ObservableActorLogic<T, TInput>;
|
|
16
16
|
/**
|
|
17
17
|
* Creates event observable logic that listens to an observable
|
|
18
18
|
* that delivers event objects.
|
|
@@ -21,8 +21,8 @@ export declare function fromObservable<T>(observableCreator: ({ input, system }:
|
|
|
21
21
|
* @param lazyObservable A function that creates an observable
|
|
22
22
|
* @returns Event observable logic
|
|
23
23
|
*/
|
|
24
|
-
export declare function fromEventObservable<T extends EventObject>(lazyObservable: ({ input }: {
|
|
25
|
-
input:
|
|
24
|
+
export declare function fromEventObservable<T extends EventObject, TInput>(lazyObservable: ({ input, system }: {
|
|
25
|
+
input: TInput;
|
|
26
26
|
system: AnyActorSystem;
|
|
27
27
|
self: ObservableActorRef<T>;
|
|
28
|
-
}) => Subscribable<T>): ObservableActorLogic<T>;
|
|
28
|
+
}) => Subscribable<T>): ObservableActorLogic<T, TInput>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActorLogic, ActorRefFrom, AnyActorSystem } from "../types.js";
|
|
1
|
+
import { ActorLogic, ActorRefFrom, ActorSystem, AnyActorSystem } from "../types.js";
|
|
2
2
|
export interface PromiseInternalState<T> {
|
|
3
3
|
status: 'active' | 'error' | 'done' | 'canceled';
|
|
4
4
|
data: T | undefined;
|
|
@@ -6,7 +6,7 @@ export interface PromiseInternalState<T> {
|
|
|
6
6
|
}
|
|
7
7
|
declare const resolveEventType = "$$xstate.resolve";
|
|
8
8
|
declare const rejectEventType = "$$xstate.reject";
|
|
9
|
-
export type
|
|
9
|
+
export type PromiseActorEvents<T> = {
|
|
10
10
|
type: typeof resolveEventType;
|
|
11
11
|
data: T;
|
|
12
12
|
} | {
|
|
@@ -15,11 +15,17 @@ export type PromiseEvent<T> = {
|
|
|
15
15
|
} | {
|
|
16
16
|
type: 'xstate.stop';
|
|
17
17
|
};
|
|
18
|
-
export type PromiseActorLogic<T> = ActorLogic<
|
|
18
|
+
export type PromiseActorLogic<T, TInput = unknown> = ActorLogic<{
|
|
19
|
+
type: string;
|
|
20
|
+
[k: string]: unknown;
|
|
21
|
+
}, T | undefined, PromiseInternalState<T>, // internal state
|
|
22
|
+
PromiseInternalState<T>, // persisted state
|
|
23
|
+
ActorSystem<any>, TInput, // input
|
|
24
|
+
T>;
|
|
19
25
|
export type PromiseActorRef<T> = ActorRefFrom<PromiseActorLogic<T>>;
|
|
20
|
-
export declare function fromPromise<T>(promiseCreator: ({ input, system }: {
|
|
21
|
-
input:
|
|
26
|
+
export declare function fromPromise<T, TInput>(promiseCreator: ({ input, system }: {
|
|
27
|
+
input: TInput;
|
|
22
28
|
system: AnyActorSystem;
|
|
23
29
|
self: PromiseActorRef<T>;
|
|
24
|
-
}) => PromiseLike<T>): PromiseActorLogic<T>;
|
|
30
|
+
}) => PromiseLike<T>): PromiseActorLogic<T, TInput>;
|
|
25
31
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ActorLogic, ActorContext, ActorSystem, EventObject, ActorRefFrom } from "../types.js";
|
|
2
|
-
export type TransitionActorLogic<TState, TEvent extends EventObject> = ActorLogic<TEvent, TState, TState>;
|
|
3
|
-
export type TransitionActorRef<TState, TEvent extends EventObject> = ActorRefFrom<TransitionActorLogic<TState, TEvent>>;
|
|
1
|
+
import { ActorLogic, ActorContext, ActorSystem, EventObject, ActorRefFrom, AnyActorSystem } from "../types.js";
|
|
2
|
+
export type TransitionActorLogic<TState, TEvent extends EventObject, TInput> = ActorLogic<TEvent, TState, TState, TState, AnyActorSystem, TInput>;
|
|
3
|
+
export type TransitionActorRef<TState, TEvent extends EventObject> = ActorRefFrom<TransitionActorLogic<TState, TEvent, unknown>>;
|
|
4
4
|
/**
|
|
5
5
|
* Returns actor logic from a transition function and its initial state.
|
|
6
6
|
*
|
|
@@ -10,7 +10,7 @@ export type TransitionActorRef<TState, TEvent extends EventObject> = ActorRefFro
|
|
|
10
10
|
* @param initialState The initial state of the transition function.
|
|
11
11
|
* @returns Actor logic
|
|
12
12
|
*/
|
|
13
|
-
export declare function fromTransition<TState, TEvent extends EventObject, TSystem extends ActorSystem<any
|
|
14
|
-
input:
|
|
13
|
+
export declare function fromTransition<TState, TEvent extends EventObject, TSystem extends ActorSystem<any>, TInput>(transition: (state: TState, event: TEvent, actorContext: ActorContext<TEvent, TState, TSystem>) => TState, initialState: TState | (({ input, self }: {
|
|
14
|
+
input: TInput;
|
|
15
15
|
self: TransitionActorRef<TState, TEvent>;
|
|
16
|
-
}) => TState)): TransitionActorLogic<TState, TEvent>;
|
|
16
|
+
}) => TState)): TransitionActorLogic<TState, TEvent, TInput>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, GuardPredicate, MachineContext } from "./types.js";
|
|
1
|
+
import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, GuardPredicate, MachineContext, TODO } from "./types.js";
|
|
2
2
|
import type { State } from "./State.js";
|
|
3
3
|
export declare function stateIn<TContext extends MachineContext, TEvent extends EventObject>(stateValue: StateValue): GuardDefinition<TContext, TEvent>;
|
|
4
4
|
export declare function not<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardConfig<TContext, TEvent>): BooleanGuardDefinition<TContext, TEvent>;
|
|
5
5
|
export declare function and<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
6
6
|
export declare function or<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
7
|
-
export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>): boolean;
|
|
7
|
+
export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent, TODO, TODO>): boolean;
|
|
8
8
|
export declare function toGuardDefinition<TContext extends MachineContext, TEvent extends EventObject>(guardConfig: GuardConfig<TContext, TEvent>, getPredicate?: (guardType: string) => GuardPredicate<TContext, TEvent> | GuardDefinition<TContext, TEvent>): GuardDefinition<TContext, TEvent>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { State } from "./State.js";
|
|
2
2
|
import type { StateNode } from "./StateNode.js";
|
|
3
|
-
import { Action, AnyActorContext, AnyHistoryValue, AnyState, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, EventObject, InitialTransitionConfig, InitialTransitionDefinition, MachineContext, SingleOrArray, StateValue, StateValueMap, TransitionConfig, TransitionDefinition } from "./types.js";
|
|
3
|
+
import { Action, AnyActorContext, AnyHistoryValue, AnyState, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, EventObject, InitialTransitionConfig, InitialTransitionDefinition, MachineContext, SingleOrArray, StateValue, StateValueMap, TransitionConfig, TransitionDefinition, TODO } from "./types.js";
|
|
4
4
|
type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
|
|
5
5
|
type AnyConfiguration = Configuration<any, any>;
|
|
6
6
|
type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
|
|
@@ -35,11 +35,11 @@ export declare function getStateNodeByPath(stateNode: AnyStateNode, statePath: s
|
|
|
35
35
|
*
|
|
36
36
|
* @param state The state value or State instance
|
|
37
37
|
*/
|
|
38
|
-
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent>): Array<AnyStateNode>;
|
|
39
|
-
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
40
|
-
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
41
|
-
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
42
|
-
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
38
|
+
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent, TODO>): Array<AnyStateNode>;
|
|
39
|
+
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent, TODO>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
40
|
+
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent, TODO>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
41
|
+
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent, TODO>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
42
|
+
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, TODO, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
43
43
|
export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, configuration: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
|
|
44
44
|
/**
|
|
45
45
|
* https://www.w3.org/TR/scxml/#microstepProcedure
|
|
@@ -49,8 +49,8 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
|
|
|
49
49
|
* @param currentState
|
|
50
50
|
* @param mutConfiguration
|
|
51
51
|
*/
|
|
52
|
-
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext, event: TEvent, isInitial: boolean): State<TContext, TEvent, any>;
|
|
53
|
-
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: Action<any, any, any>[], event: TEvent, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext): AnyState;
|
|
52
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, TODO, any>, actorCtx: AnyActorContext, event: TEvent, isInitial: boolean): State<TContext, TEvent, TODO, any>;
|
|
53
|
+
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: Action<any, any, any>[], event: TEvent, currentState: State<TContext, TEvent, TODO, any>, actorCtx: AnyActorContext): AnyState;
|
|
54
54
|
export declare function macrostep(state: AnyState, event: EventObject, actorCtx: AnyActorContext): {
|
|
55
55
|
state: typeof state;
|
|
56
56
|
microstates: Array<typeof state>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Compute, EventObject, IndexByType, IsNever, Prop, Values, IsAny,
|
|
1
|
+
import { Compute, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ParameterizedObject, ProvidedActor, OutputFrom, AnyActorLogic, IndexByProp } from "./types.js";
|
|
2
2
|
export interface TypegenDisabled {
|
|
3
3
|
'@@xstate/typegen': false;
|
|
4
4
|
}
|
|
@@ -36,8 +36,7 @@ export interface TypegenMeta extends TypegenEnabled {
|
|
|
36
36
|
*/
|
|
37
37
|
internalEvents: {};
|
|
38
38
|
/**
|
|
39
|
-
* Maps the
|
|
40
|
-
* of the done.invoke action
|
|
39
|
+
* Maps the src of the invoked actor to the event type that includes its known id
|
|
41
40
|
*
|
|
42
41
|
* key: 'invokeSrc'
|
|
43
42
|
* value: 'done.invoke.invokeName'
|
|
@@ -78,6 +77,7 @@ export interface TypegenMeta extends TypegenEnabled {
|
|
|
78
77
|
}
|
|
79
78
|
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
79
|
resolved: TypegenMeta & {
|
|
80
|
+
indexedActors: Record<string, ProvidedActor>;
|
|
81
81
|
indexedActions: Record<string, ParameterizedObject>;
|
|
82
82
|
indexedEvents: Record<string, EventObject>;
|
|
83
83
|
};
|
|
@@ -104,12 +104,10 @@ export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
|
|
|
104
104
|
'@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
|
|
105
105
|
resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
|
|
106
106
|
}
|
|
107
|
-
type
|
|
108
|
-
type:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
[K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
|
|
112
|
-
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
107
|
+
type GenerateActorEvents<TActor extends ProvidedActor, TInvokeSrcNameMap> = string extends TActor['src'] ? never : TActor extends any ? {
|
|
108
|
+
type: TActor['id'] extends string ? `done.invoke.${TActor['id']}` : TActor['src'] extends keyof TInvokeSrcNameMap ? `done.invoke.${TInvokeSrcNameMap[TActor['src']] & string}` : `done.invoke.${string}`;
|
|
109
|
+
output: OutputFrom<TActor['logic']>;
|
|
110
|
+
} : never;
|
|
113
111
|
type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
114
112
|
type AllowAllEvents = {
|
|
115
113
|
eventsCausingActions: Record<string, string>;
|
|
@@ -117,21 +115,21 @@ type AllowAllEvents = {
|
|
|
117
115
|
eventsCausingDelays: Record<string, string>;
|
|
118
116
|
eventsCausingGuards: Record<string, string>;
|
|
119
117
|
};
|
|
120
|
-
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends ParameterizedObject,
|
|
118
|
+
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends ParameterizedObject, TActor extends ProvidedActor> {
|
|
121
119
|
'@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
|
|
122
120
|
resolved: {
|
|
123
121
|
enabled: TTypesMeta & {
|
|
124
122
|
indexedActions: IndexByType<TAction>;
|
|
125
|
-
|
|
123
|
+
indexedActors: string extends TActor['src'] ? Record<keyof Prop<TTypesMeta, 'eventsCausingActors'>, {
|
|
124
|
+
logic: AnyActorLogic;
|
|
125
|
+
}> : IndexByProp<TActor, 'src'>;
|
|
126
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateActorEvents<TActor, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
126
127
|
};
|
|
127
128
|
disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & {
|
|
128
129
|
indexedActions: IndexByType<TAction>;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
};
|
|
133
|
-
};
|
|
134
|
-
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_OUTPUT_HACK__'>;
|
|
130
|
+
indexedActors: IndexByProp<TActor, 'src'>;
|
|
131
|
+
indexedEvents: Record<string, TEvent>;
|
|
132
|
+
invokeSrcNameMap: Record<string, string>;
|
|
135
133
|
};
|
|
136
134
|
}[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
|
|
137
135
|
}
|