xstate 5.11.0 → 5.12.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/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/declarations/src/State.d.ts +12 -11
- package/dist/declarations/src/StateMachine.d.ts +16 -13
- package/dist/declarations/src/StateNode.d.ts +5 -1
- package/dist/declarations/src/createMachine.d.ts +5 -4
- package/dist/declarations/src/setup.d.ts +4 -4
- package/dist/declarations/src/stateUtils.d.ts +3 -3
- package/dist/declarations/src/types.d.ts +76 -54
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
15
15
|
TODO, // delays
|
|
16
16
|
TODO, // tags
|
|
17
17
|
TODO, // output
|
|
18
|
+
TODO, // emitted
|
|
18
19
|
TODO>;
|
|
19
20
|
/**
|
|
20
21
|
* The relative key of the state node, which represents its location in the overall state value.
|
|
@@ -73,6 +74,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
73
74
|
any, // input
|
|
74
75
|
any, // output
|
|
75
76
|
any, // emitted
|
|
77
|
+
any, // TMeta
|
|
76
78
|
any>;
|
|
77
79
|
/**
|
|
78
80
|
* The meta data associated with this state node, which will be returned in State instances.
|
|
@@ -100,6 +102,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
100
102
|
TODO, // delays
|
|
101
103
|
TODO, // tags
|
|
102
104
|
TODO, // output
|
|
105
|
+
TODO, // emitted
|
|
103
106
|
TODO>, options: StateNodeOptions<TContext, TEvent>);
|
|
104
107
|
/**
|
|
105
108
|
* The well-structured state node definition.
|
|
@@ -108,7 +111,8 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
108
111
|
/**
|
|
109
112
|
* The logic invoked as actors by this state node.
|
|
110
113
|
*/
|
|
111
|
-
get invoke(): Array<InvokeDefinition<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string
|
|
114
|
+
get invoke(): Array<InvokeDefinition<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string, TODO, // TEmitted
|
|
115
|
+
TODO>>;
|
|
112
116
|
/**
|
|
113
117
|
* The mapping of events to transitions.
|
|
114
118
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StateMachine } from "./StateMachine.js";
|
|
2
2
|
import { ResolveTypegenMeta, TypegenConstraint, TypegenDisabled } from "./typegenTypes.js";
|
|
3
|
-
import { AnyActorRef, EventObject, AnyEventObject, Cast, InternalMachineImplementations, IsNever, MachineConfig, MachineContext, MachineTypes, NonReducibleUnknown, ParameterizedObject, Prop, ProvidedActor, StateValue, ToChildren } from "./types.js";
|
|
3
|
+
import { AnyActorRef, EventObject, AnyEventObject, Cast, InternalMachineImplementations, IsNever, MachineConfig, MachineContext, MachineTypes, NonReducibleUnknown, ParameterizedObject, Prop, ProvidedActor, StateValue, ToChildren, MetaObject } from "./types.js";
|
|
4
4
|
type TestValue = string | {
|
|
5
5
|
[k: string]: TestValue | undefined;
|
|
6
6
|
};
|
|
@@ -56,8 +56,9 @@ type ToStateValue<TTestValue extends string | TestValue> = FilterLeafValues<Grou
|
|
|
56
56
|
```
|
|
57
57
|
*/
|
|
58
58
|
export declare function createMachine<TContext extends MachineContext, TEvent extends AnyEventObject, // TODO: consider using a stricter `EventObject` here
|
|
59
|
-
TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput extends NonReducibleUnknown, TEmitted extends EventObject, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: {
|
|
60
|
-
types?: MachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TEmitted, TTypesMeta>;
|
|
59
|
+
TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput extends NonReducibleUnknown, TEmitted extends EventObject, TMeta extends MetaObject, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: {
|
|
60
|
+
types?: MachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TEmitted, TMeta, TTypesMeta>;
|
|
61
61
|
schemas?: unknown;
|
|
62
|
-
} & MachineConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TEmitted, TTypesMeta>, implementations?: InternalMachineImplementations<TContext, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>>): StateMachine<TContext, TEvent, Cast<ToChildren<TActor>, Record<string, AnyActorRef | undefined>>, TActor, TAction, TGuard, TDelay, 'matchesStates' extends keyof TTypesMeta ? ToStateValue<Cast<TTypesMeta['matchesStates'], TestValue>> : StateValue, Prop<ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>['resolved'], 'tags'> & string, TInput, TOutput, TEmitted,
|
|
62
|
+
} & MachineConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TEmitted, TMeta, TTypesMeta>, implementations?: InternalMachineImplementations<TContext, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>>): StateMachine<TContext, TEvent, Cast<ToChildren<TActor>, Record<string, AnyActorRef | undefined>>, TActor, TAction, TGuard, TDelay, 'matchesStates' extends keyof TTypesMeta ? ToStateValue<Cast<TTypesMeta['matchesStates'], TestValue>> : StateValue, Prop<ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>['resolved'], 'tags'> & string, TInput, TOutput, TEmitted, TMeta, // TMeta
|
|
63
|
+
ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>>;
|
|
63
64
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StateMachine } from "./StateMachine.js";
|
|
2
2
|
import { GuardPredicate } from "./guards.js";
|
|
3
3
|
import { ResolveTypegenMeta, TypegenDisabled } from "./typegenTypes.js";
|
|
4
|
-
import { ActionFunction, AnyActorRef, AnyEventObject, Cast, ConditionalRequired, DelayConfig, EventObject, Invert, IsNever, MachineConfig, MachineContext, NonReducibleUnknown, ParameterizedObject, SetupTypes, StateSchema, ToChildren, UnknownActorLogic, Values } from "./types.js";
|
|
4
|
+
import { ActionFunction, AnyActorRef, AnyEventObject, Cast, ConditionalRequired, DelayConfig, EventObject, Invert, IsNever, MachineConfig, MachineContext, MetaObject, NonReducibleUnknown, ParameterizedObject, SetupTypes, StateSchema, ToChildren, UnknownActorLogic, Values } from "./types.js";
|
|
5
5
|
type ToParameterizedObject<TParameterizedMap extends Record<string, ParameterizedObject['params'] | undefined>> = IsNever<TParameterizedMap> extends true ? never : Values<{
|
|
6
6
|
[K in keyof TParameterizedMap & string]: {
|
|
7
7
|
type: K;
|
|
@@ -33,9 +33,9 @@ type ToStateValue<T extends StateSchema> = T extends {
|
|
|
33
33
|
} ? true : false> : never) : {};
|
|
34
34
|
type RequiredSetupKeys<TChildrenMap> = IsNever<keyof TChildrenMap> extends true ? never : 'actors';
|
|
35
35
|
export declare function setup<TContext extends MachineContext, TEvent extends AnyEventObject, // TODO: consider using a stricter `EventObject` here
|
|
36
|
-
TActors extends Record<string, UnknownActorLogic> = {}, TChildrenMap extends Record<string, string> = {}, TActions extends Record<string, ParameterizedObject['params'] | undefined> = {}, TGuards extends Record<string, ParameterizedObject['params'] | undefined> = {}, TDelay extends string = never, TTag extends string = string, TInput = NonReducibleUnknown, TOutput extends NonReducibleUnknown = NonReducibleUnknown, TEmitted extends EventObject = EventObject>({ schemas, actors, actions, guards, delays }: {
|
|
36
|
+
TActors extends Record<string, UnknownActorLogic> = {}, TChildrenMap extends Record<string, string> = {}, TActions extends Record<string, ParameterizedObject['params'] | undefined> = {}, TGuards extends Record<string, ParameterizedObject['params'] | undefined> = {}, TDelay extends string = never, TTag extends string = string, TInput = NonReducibleUnknown, TOutput extends NonReducibleUnknown = NonReducibleUnknown, TEmitted extends EventObject = EventObject, TMeta extends MetaObject = MetaObject>({ schemas, actors, actions, guards, delays }: {
|
|
37
37
|
schemas?: unknown;
|
|
38
|
-
types?: SetupTypes<TContext, TEvent, TChildrenMap, TTag, TInput, TOutput, TEmitted>;
|
|
38
|
+
types?: SetupTypes<TContext, TEvent, TChildrenMap, TTag, TInput, TOutput, TEmitted, TMeta>;
|
|
39
39
|
actors?: {
|
|
40
40
|
[K in keyof TActors | Values<TChildrenMap>]: K extends keyof TActors ? TActors[K] : never;
|
|
41
41
|
};
|
|
@@ -51,6 +51,6 @@ TActors extends Record<string, UnknownActorLogic> = {}, TChildrenMap extends Rec
|
|
|
51
51
|
} & {
|
|
52
52
|
[K in RequiredSetupKeys<TChildrenMap>]: unknown;
|
|
53
53
|
}): {
|
|
54
|
-
createMachine: <const TConfig extends MachineConfig<TContext, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TInput, TOutput, TEmitted, ResolveTypegenMeta<TypegenDisabled, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TEmitted>>>(config: TConfig) => StateMachine<TContext, TEvent, Cast<ToChildren<ToProvidedActor<TChildrenMap, TActors>>, Record<string, AnyActorRef | undefined>>, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, ToStateValue<TConfig>, TTag, TInput, TOutput, TEmitted, ResolveTypegenMeta<TypegenDisabled, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TEmitted>>;
|
|
54
|
+
createMachine: <const TConfig extends MachineConfig<TContext, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TInput, TOutput, TEmitted, TMeta, ResolveTypegenMeta<TypegenDisabled, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TEmitted>>>(config: TConfig) => StateMachine<TContext, TEvent, Cast<ToChildren<ToProvidedActor<TChildrenMap, TActors>>, Record<string, AnyActorRef | undefined>>, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, ToStateValue<TConfig>, TTag, TInput, TOutput, TEmitted, TMeta, ResolveTypegenMeta<TypegenDisabled, TEvent, ToProvidedActor<TChildrenMap, TActors>, ToParameterizedObject<TActions>, ToParameterizedObject<TGuards>, TDelay, TTag, TEmitted>>;
|
|
55
55
|
};
|
|
56
56
|
export {};
|
|
@@ -37,9 +37,9 @@ export declare function getStateNodeByPath(stateNode: AnyStateNode, statePath: s
|
|
|
37
37
|
* @param stateValue The state value or State instance
|
|
38
38
|
*/
|
|
39
39
|
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue): Array<AnyStateNode>;
|
|
40
|
-
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
41
|
-
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
42
|
-
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
40
|
+
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
41
|
+
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
42
|
+
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
43
43
|
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, snapshot: MachineSnapshot<TContext, TEvent, any, any, any, any, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
44
44
|
export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, stateNodeSet: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
|
|
45
45
|
/**
|
|
@@ -86,13 +86,13 @@ export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent ex
|
|
|
86
86
|
context: TContext;
|
|
87
87
|
event: TExpressionEvent;
|
|
88
88
|
self: ActorRef<MachineSnapshot<TContext, TEvent, Record<string, AnyActorRef | undefined>, // TODO: this should be replaced with `TChildren`
|
|
89
|
-
StateValue, string, unknown>, TEvent>;
|
|
89
|
+
StateValue, string, unknown, TODO>, TEvent>;
|
|
90
90
|
system: AnyActorSystem;
|
|
91
91
|
}
|
|
92
92
|
export type MachineContext = Record<string, any>;
|
|
93
93
|
export interface ActionArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> extends UnifiedArg<TContext, TExpressionEvent, TEvent> {
|
|
94
94
|
}
|
|
95
|
-
export type InputFrom<T> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TSnapshot, infer _TEvent, infer TInput, infer _TSystem, infer _TEmitted> ? TInput : never;
|
|
95
|
+
export type InputFrom<T> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TSnapshot, infer _TEvent, infer TInput, infer _TSystem, infer _TEmitted> ? TInput : never;
|
|
96
96
|
export type OutputFrom<T> = T extends ActorLogic<infer TSnapshot, infer _TEvent, infer _TInput, infer _TSystem, infer _TEmitted> ? (TSnapshot & {
|
|
97
97
|
status: 'done';
|
|
98
98
|
})['output'] : T extends ActorRef<infer TSnapshot, infer _TEvent> ? (TSnapshot & {
|
|
@@ -134,19 +134,28 @@ export interface StateValueMap {
|
|
|
134
134
|
*/
|
|
135
135
|
export type StateValue = string | StateValueMap;
|
|
136
136
|
export type TransitionTarget = SingleOrArray<string>;
|
|
137
|
-
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject = EventObject> {
|
|
137
|
+
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject = EventObject, TMeta extends MetaObject = MetaObject> {
|
|
138
138
|
guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
|
|
139
139
|
actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
140
140
|
reenter?: boolean;
|
|
141
141
|
target?: TransitionTarget | undefined;
|
|
142
|
-
meta?:
|
|
142
|
+
meta?: TMeta;
|
|
143
143
|
description?: string;
|
|
144
144
|
}
|
|
145
|
-
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay
|
|
145
|
+
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TODO, // TEmitted
|
|
146
|
+
TODO> {
|
|
146
147
|
target: string;
|
|
147
148
|
}
|
|
148
|
-
export type AnyTransitionConfig = TransitionConfig<any,
|
|
149
|
-
|
|
149
|
+
export type AnyTransitionConfig = TransitionConfig<any, // TContext
|
|
150
|
+
any, // TExpressionEvent
|
|
151
|
+
any, // TEvent
|
|
152
|
+
any, // TActor
|
|
153
|
+
any, // TAction
|
|
154
|
+
any, // TGuard
|
|
155
|
+
any, // TDelay
|
|
156
|
+
any, // TEmitted
|
|
157
|
+
any>;
|
|
158
|
+
export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> {
|
|
150
159
|
id: string;
|
|
151
160
|
systemId: string | undefined;
|
|
152
161
|
/**
|
|
@@ -157,39 +166,40 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
|
|
|
157
166
|
/**
|
|
158
167
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
159
168
|
*/
|
|
160
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
169
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
161
170
|
/**
|
|
162
171
|
* The transition to take upon the invoked child machine sending an error event.
|
|
163
172
|
*/
|
|
164
|
-
onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
165
|
-
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
166
|
-
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
|
|
173
|
+
onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
174
|
+
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
175
|
+
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>, 'onDone' | 'onError' | 'toJSON'>;
|
|
167
176
|
}
|
|
168
177
|
type Delay<TDelay extends string> = TDelay | number;
|
|
169
178
|
export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
170
|
-
[K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay
|
|
179
|
+
[K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TODO, // TEmitted
|
|
180
|
+
TODO>>;
|
|
171
181
|
};
|
|
172
182
|
export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
|
|
173
183
|
export type SingleOrArray<T> = readonly T[] | T;
|
|
174
184
|
export type StateNodesConfig<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
175
185
|
[K in string]: StateNode<TContext, TEvent>;
|
|
176
186
|
};
|
|
177
|
-
export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject> = {
|
|
178
|
-
[K in string]: StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput, TEmitted>;
|
|
187
|
+
export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> = {
|
|
188
|
+
[K in string]: StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput, TEmitted, TMeta>;
|
|
179
189
|
};
|
|
180
190
|
export type StatesDefinition<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
181
191
|
[K in string]: StateNodeDefinition<TContext, TEvent>;
|
|
182
192
|
};
|
|
183
193
|
export type TransitionConfigTarget = string | undefined;
|
|
184
|
-
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
185
|
-
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject> = {
|
|
186
|
-
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
194
|
+
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
195
|
+
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = {
|
|
196
|
+
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
|
|
187
197
|
};
|
|
188
198
|
type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
|
|
189
199
|
export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
|
|
190
200
|
type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
|
|
191
201
|
export type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
192
|
-
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
|
|
202
|
+
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
|
|
193
203
|
src: infer TSrc;
|
|
194
204
|
} ? Compute<{
|
|
195
205
|
systemId?: string;
|
|
@@ -206,12 +216,12 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
206
216
|
/**
|
|
207
217
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
208
218
|
*/
|
|
209
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
219
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
210
220
|
/**
|
|
211
221
|
* The transition to take upon the invoked child machine sending an error event.
|
|
212
222
|
*/
|
|
213
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
214
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
223
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
224
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
215
225
|
} & {
|
|
216
226
|
[K in RequiredActorOptions<TSpecificActor>]: unknown;
|
|
217
227
|
}> | {
|
|
@@ -219,11 +229,11 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
219
229
|
systemId?: string;
|
|
220
230
|
src: AnyActorLogic;
|
|
221
231
|
input?: Mapper<TContext, TEvent, NonReducibleUnknown, TEvent> | NonReducibleUnknown;
|
|
222
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
223
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
224
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
232
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
233
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
234
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
225
235
|
} : never;
|
|
226
|
-
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TActor> : {
|
|
236
|
+
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta, TActor> : {
|
|
227
237
|
/**
|
|
228
238
|
* The unique identifier for the invoked machine. If not specified, this
|
|
229
239
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -239,15 +249,15 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
|
|
|
239
249
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
240
250
|
*/
|
|
241
251
|
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<any>, // TODO: consider replacing with `unknown`
|
|
242
|
-
TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
252
|
+
TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
243
253
|
/**
|
|
244
254
|
* The transition to take upon the invoked child machine sending an error event.
|
|
245
255
|
*/
|
|
246
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
247
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
256
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
257
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
248
258
|
};
|
|
249
|
-
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any, any>;
|
|
250
|
-
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject> {
|
|
259
|
+
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any, any, any>;
|
|
260
|
+
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> {
|
|
251
261
|
/**
|
|
252
262
|
* The initial state transition.
|
|
253
263
|
*/
|
|
@@ -271,15 +281,15 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
271
281
|
/**
|
|
272
282
|
* The mapping of state node keys to their state node configurations (recursive).
|
|
273
283
|
*/
|
|
274
|
-
states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, NonReducibleUnknown, TEmitted> | undefined;
|
|
284
|
+
states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, NonReducibleUnknown, TEmitted, TMeta> | undefined;
|
|
275
285
|
/**
|
|
276
286
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
277
287
|
*/
|
|
278
|
-
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
288
|
+
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
279
289
|
/**
|
|
280
290
|
* The mapping of event types to their potential transition(s).
|
|
281
291
|
*/
|
|
282
|
-
on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
292
|
+
on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
|
|
283
293
|
/**
|
|
284
294
|
* The action(s) to be executed upon entering the state node.
|
|
285
295
|
*/
|
|
@@ -293,7 +303,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
293
303
|
*
|
|
294
304
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
295
305
|
*/
|
|
296
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay>> | undefined;
|
|
306
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>> | undefined;
|
|
297
307
|
/**
|
|
298
308
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
299
309
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
@@ -302,12 +312,12 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
302
312
|
/**
|
|
303
313
|
* An eventless transition that is always taken when this state node is active.
|
|
304
314
|
*/
|
|
305
|
-
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
315
|
+
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
|
|
306
316
|
parent?: StateNode<TContext, TEvent>;
|
|
307
317
|
/**
|
|
308
318
|
* The meta data associated with this state node, which will be returned in State instances.
|
|
309
319
|
*/
|
|
310
|
-
meta?:
|
|
320
|
+
meta?: TMeta;
|
|
311
321
|
/**
|
|
312
322
|
* The output data sent with the "xstate.done.state._id_" event if this is a final state node.
|
|
313
323
|
*
|
|
@@ -337,7 +347,8 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
337
347
|
*/
|
|
338
348
|
target?: string;
|
|
339
349
|
}
|
|
340
|
-
export type AnyStateNodeConfig = StateNodeConfig<any, any, any, any, any, any, any, any, any
|
|
350
|
+
export type AnyStateNodeConfig = StateNodeConfig<any, any, any, any, any, any, any, any, any, // emitted
|
|
351
|
+
any>;
|
|
341
352
|
export interface StateNodeDefinition<TContext extends MachineContext, TEvent extends EventObject> {
|
|
342
353
|
id: string;
|
|
343
354
|
version?: string | undefined;
|
|
@@ -352,8 +363,10 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
|
|
|
352
363
|
exit: UnknownAction[];
|
|
353
364
|
meta: any;
|
|
354
365
|
order: number;
|
|
355
|
-
output?: StateNodeConfig<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string, string, unknown, EventObject
|
|
356
|
-
|
|
366
|
+
output?: StateNodeConfig<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string, string, unknown, EventObject, // TEmitted
|
|
367
|
+
any>['output'];
|
|
368
|
+
invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, // TEmitted
|
|
369
|
+
TODO>>;
|
|
357
370
|
description?: string;
|
|
358
371
|
tags: string[];
|
|
359
372
|
}
|
|
@@ -376,9 +389,11 @@ any, // tag
|
|
|
376
389
|
any, // input
|
|
377
390
|
any, // output
|
|
378
391
|
any, // emitted
|
|
392
|
+
any, // TMeta
|
|
379
393
|
any>;
|
|
380
394
|
export type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
381
|
-
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO, TODO
|
|
395
|
+
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO, TODO, // emitted
|
|
396
|
+
TODO> {
|
|
382
397
|
initial?: undefined;
|
|
383
398
|
parallel?: false | undefined;
|
|
384
399
|
states?: undefined;
|
|
@@ -388,7 +403,8 @@ export interface HistoryStateNodeConfig<TContext extends MachineContext, TEvent
|
|
|
388
403
|
history: 'shallow' | 'deep' | true;
|
|
389
404
|
target: string | undefined;
|
|
390
405
|
}
|
|
391
|
-
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO, TODO
|
|
406
|
+
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO, TODO, // emitted
|
|
407
|
+
TODO>;
|
|
392
408
|
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TEmitted extends EventObject = EventObject> = {
|
|
393
409
|
[K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, GetParameterizedParams<TAction extends {
|
|
394
410
|
type: K;
|
|
@@ -451,9 +467,9 @@ export type ContextFactory<TContext extends MachineContext, TActor extends Provi
|
|
|
451
467
|
spawn: Spawner<TActor>;
|
|
452
468
|
input: TInput;
|
|
453
469
|
self: ActorRef<MachineSnapshot<TContext, TEvent, Record<string, AnyActorRef | undefined>, // TODO: this should be replaced with `TChildren`
|
|
454
|
-
StateValue, string, unknown>, TEvent>;
|
|
470
|
+
StateValue, string, unknown, TODO>, TEvent>;
|
|
455
471
|
}) => TContext;
|
|
456
|
-
export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TInput = any, TOutput = unknown, TEmitted extends EventObject = EventObject, TTypesMeta = TypegenDisabled> = (Omit<StateNodeConfig<DoNotInfer<TContext>, DoNotInfer<TEvent>, DoNotInfer<TActor>, DoNotInfer<TAction>, DoNotInfer<TGuard>, DoNotInfer<TDelay>, DoNotInfer<TTag>, DoNotInfer<TOutput>, DoNotInfer<TEmitted>>, 'output'> & {
|
|
472
|
+
export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TInput = any, TOutput = unknown, TEmitted extends EventObject = EventObject, TMeta extends MetaObject = MetaObject, TTypesMeta = TypegenDisabled> = (Omit<StateNodeConfig<DoNotInfer<TContext>, DoNotInfer<TEvent>, DoNotInfer<TActor>, DoNotInfer<TAction>, DoNotInfer<TGuard>, DoNotInfer<TDelay>, DoNotInfer<TTag>, DoNotInfer<TOutput>, DoNotInfer<TEmitted>, DoNotInfer<TMeta>>, 'output'> & {
|
|
457
473
|
/**
|
|
458
474
|
* The initial context (extended state)
|
|
459
475
|
*/
|
|
@@ -473,7 +489,7 @@ export interface ProvidedActor {
|
|
|
473
489
|
logic: UnknownActorLogic;
|
|
474
490
|
id?: string;
|
|
475
491
|
}
|
|
476
|
-
export interface SetupTypes<TContext extends MachineContext, TEvent extends EventObject, TChildrenMap extends Record<string, string>, TTag extends string, TInput, TOutput, TEmitted extends EventObject> {
|
|
492
|
+
export interface SetupTypes<TContext extends MachineContext, TEvent extends EventObject, TChildrenMap extends Record<string, string>, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> {
|
|
477
493
|
context?: TContext;
|
|
478
494
|
events?: TEvent;
|
|
479
495
|
children?: TChildrenMap;
|
|
@@ -481,13 +497,15 @@ export interface SetupTypes<TContext extends MachineContext, TEvent extends Even
|
|
|
481
497
|
input?: TInput;
|
|
482
498
|
output?: TOutput;
|
|
483
499
|
emitted?: TEmitted;
|
|
500
|
+
meta?: TMeta;
|
|
484
501
|
}
|
|
485
|
-
export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TTypesMeta = TypegenDisabled> extends SetupTypes<TContext, TEvent, never, TTag, TInput, TOutput, TEmitted> {
|
|
502
|
+
export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TMeta extends MetaObject, TTypesMeta = TypegenDisabled> extends SetupTypes<TContext, TEvent, never, TTag, TInput, TOutput, TEmitted, TMeta> {
|
|
486
503
|
actors?: TActor;
|
|
487
504
|
actions?: TAction;
|
|
488
505
|
guards?: TGuard;
|
|
489
506
|
delays?: TDelay;
|
|
490
507
|
typegen?: TTypesMeta;
|
|
508
|
+
meta?: TMeta;
|
|
491
509
|
}
|
|
492
510
|
export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
|
|
493
511
|
history: 'shallow' | 'deep';
|
|
@@ -541,9 +559,10 @@ export type Mapper<TContext extends MachineContext, TExpressionEvent extends Eve
|
|
|
541
559
|
context: TContext;
|
|
542
560
|
event: TExpressionEvent;
|
|
543
561
|
self: ActorRef<MachineSnapshot<TContext, TEvent, Record<string, AnyActorRef>, // TODO: this should be replaced with `TChildren`
|
|
544
|
-
StateValue, string, unknown>, TEvent>;
|
|
562
|
+
StateValue, string, unknown, TODO>, TEvent>;
|
|
545
563
|
}) => TResult;
|
|
546
|
-
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO
|
|
564
|
+
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO, TODO, // TEmitted
|
|
565
|
+
TODO>, 'target' | 'guard'> {
|
|
547
566
|
target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
|
|
548
567
|
source: StateNode<TContext, TEvent>;
|
|
549
568
|
actions: readonly UnknownAction[];
|
|
@@ -582,7 +601,8 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
582
601
|
status: 'active' | 'done' | 'error' | 'stopped';
|
|
583
602
|
output?: any;
|
|
584
603
|
error?: unknown;
|
|
585
|
-
machine?: StateMachine<TContext, TEvent, any, any, any, any, any, any, any, any, any, any
|
|
604
|
+
machine?: StateMachine<TContext, TEvent, any, any, any, any, any, any, any, any, any, any, // TMeta
|
|
605
|
+
any>;
|
|
586
606
|
}
|
|
587
607
|
export interface ActorOptions<TLogic extends AnyActorLogic> {
|
|
588
608
|
/**
|
|
@@ -772,14 +792,15 @@ export interface ActorRef<TSnapshot extends Snapshot<unknown>, TEvent extends Ev
|
|
|
772
792
|
}) => void) => Subscription;
|
|
773
793
|
}
|
|
774
794
|
export type AnyActorRef = ActorRef<any, any, any>;
|
|
775
|
-
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any, any, any, any, any
|
|
776
|
-
|
|
795
|
+
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any, any, any, any, any, // TMeta
|
|
796
|
+
any> ? R : R extends Promise<infer U> ? PromiseActorLogic<U> : never : never;
|
|
797
|
+
export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer _TInput, infer TOutput, infer TEmitted, infer TMeta, infer _TResolvedTypesMeta> ? ActorRef<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta>, TEvent, TEmitted> : R extends Promise<infer U> ? ActorRefFrom<PromiseActorLogic<U>> : R extends ActorLogic<infer TSnapshot, infer TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? ActorRef<TSnapshot, TEvent, TEmitted> : never : never;
|
|
777
798
|
export type DevToolsAdapter = (service: AnyActor) => void;
|
|
778
799
|
/**
|
|
779
800
|
* @deprecated Use `Actor<T>` instead.
|
|
780
801
|
*/
|
|
781
|
-
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer TInput, infer TOutput, infer TEmitted, infer _TResolvedTypesMeta> ? Actor<ActorLogic<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput>, TEvent, TInput, AnyActorSystem, TEmitted>> : never;
|
|
782
|
-
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
802
|
+
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer TInput, infer TOutput, infer TEmitted, infer TMeta, infer _TResolvedTypesMeta> ? Actor<ActorLogic<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta>, TEvent, TInput, AnyActorSystem, TEmitted>> : never;
|
|
803
|
+
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
783
804
|
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, // context
|
|
784
805
|
any, // event
|
|
785
806
|
any, // children
|
|
@@ -792,6 +813,7 @@ any, // tag
|
|
|
792
813
|
any, // input
|
|
793
814
|
any, // output
|
|
794
815
|
any, // emitted
|
|
816
|
+
any, // TMeta
|
|
795
817
|
infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
796
818
|
export interface ActorScope<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TSystem extends AnyActorSystem = AnyActorSystem, TEmitted extends EventObject = EventObject> {
|
|
797
819
|
self: ActorRef<TSnapshot, TEvent, TEmitted>;
|
|
@@ -886,9 +908,9 @@ AnyActorSystem, any>;
|
|
|
886
908
|
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer TSnapshot, infer _> ? TSnapshot : R extends Actor<infer TLogic> ? SnapshotFrom<TLogic> : R extends ActorLogic<infer _TSnapshot, infer _TEvent, infer _TInput, infer _TEmitted, infer _TSystem> ? ReturnType<R['transition']> : R extends ActorScope<infer TSnapshot, infer _TEvent, infer _TEmitted, infer _TSystem> ? TSnapshot : never : never;
|
|
887
909
|
export type EventFromLogic<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer TEvent, infer _TInput, infer _TEmitted, infer _TSystem> ? TEvent : never;
|
|
888
910
|
export type EmittedFrom<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer _TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? TEmitted : never;
|
|
889
|
-
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TResolvedTypesMeta> ? TEvent : R extends MachineSnapshot<infer _TContext, infer TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput> ? TEvent : R extends ActorRef<infer _, infer TEvent> ? TEvent : never : never;
|
|
911
|
+
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TResolvedTypesMeta> ? TEvent : R extends MachineSnapshot<infer _TContext, infer TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta> ? TEvent : R extends ActorRef<infer _, infer TEvent> ? TEvent : never : never;
|
|
890
912
|
export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
891
|
-
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TResolvedTypesMeta> ? TContext : R extends MachineSnapshot<infer TContext, infer _TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput> ? TContext : R extends Actor<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TResolvedTypesMeta> ? TContext : never : never : never;
|
|
913
|
+
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TResolvedTypesMeta> ? TContext : R extends MachineSnapshot<infer TContext, infer _TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta> ? TContext : R extends Actor<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TResolvedTypesMeta> ? TContext : never : never : never;
|
|
892
914
|
export type InferEvent<E extends EventObject> = {
|
|
893
915
|
[T in E['type']]: {
|
|
894
916
|
type: T;
|