xstate 5.10.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/actions/spawnChild.d.ts +7 -2
- package/dist/declarations/src/createMachine.d.ts +5 -4
- package/dist/declarations/src/setup.d.ts +4 -4
- package/dist/declarations/src/spawn.d.ts +9 -1
- package/dist/declarations/src/stateUtils.d.ts +3 -3
- package/dist/declarations/src/types.d.ts +82 -52
- 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
|
*/
|
|
@@ -10,12 +10,17 @@ interface SpawnActionOptions<TContext extends MachineContext, TExpressionEvent e
|
|
|
10
10
|
input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>, TEvent> | InputFrom<TActor['logic']>;
|
|
11
11
|
syncSnapshot?: boolean;
|
|
12
12
|
}
|
|
13
|
-
type DistributeActors<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = TActor extends any ? ConditionalRequired<[
|
|
13
|
+
type DistributeActors<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = (TActor extends any ? ConditionalRequired<[
|
|
14
14
|
src: TActor['src'],
|
|
15
15
|
options?: SpawnActionOptions<TContext, TExpressionEvent, TEvent, TActor> & {
|
|
16
16
|
[K in RequiredActorOptions<TActor>]: unknown;
|
|
17
17
|
}
|
|
18
|
-
], IsNotNever<RequiredActorOptions<TActor>>> : never
|
|
18
|
+
], IsNotNever<RequiredActorOptions<TActor>>> : never) | [
|
|
19
|
+
src: AnyActorLogic,
|
|
20
|
+
options?: SpawnActionOptions<TContext, TExpressionEvent, TEvent, ProvidedActor> & {
|
|
21
|
+
id?: never;
|
|
22
|
+
}
|
|
23
|
+
];
|
|
19
24
|
type SpawnArguments<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TExpressionEvent, TEvent, TActor> : [
|
|
20
25
|
src: string | AnyActorLogic,
|
|
21
26
|
options?: {
|
|
@@ -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 {};
|
|
@@ -14,7 +14,15 @@ type SpawnOptions<TActor extends ProvidedActor, TSrc extends TActor['src']> = TA
|
|
|
14
14
|
type GetConcreteLogic<TActor extends ProvidedActor, TSrc extends TActor['src']> = Extract<TActor, {
|
|
15
15
|
src: TSrc;
|
|
16
16
|
}>['logic'];
|
|
17
|
-
export type Spawner<TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ?
|
|
17
|
+
export type Spawner<TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? {
|
|
18
|
+
<TSrc extends TActor['src']>(logic: TSrc, ...[options]: SpawnOptions<TActor, TSrc>): ActorRefFrom<GetConcreteLogic<TActor, TSrc>>;
|
|
19
|
+
<TLogic extends AnyActorLogic>(src: TLogic, options?: {
|
|
20
|
+
id?: never;
|
|
21
|
+
systemId?: string;
|
|
22
|
+
input?: InputFrom<TLogic>;
|
|
23
|
+
syncSnapshot?: boolean;
|
|
24
|
+
}): ActorRefFrom<TLogic>;
|
|
25
|
+
} : <TLogic extends AnyActorLogic | string>(src: TLogic, options?: {
|
|
18
26
|
id?: string;
|
|
19
27
|
systemId?: string;
|
|
20
28
|
input?: TLogic extends string ? unknown : InputFrom<TLogic>;
|
|
@@ -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,16 +216,24 @@ 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
|
-
}>
|
|
218
|
-
|
|
227
|
+
}> | {
|
|
228
|
+
id?: never;
|
|
229
|
+
systemId?: string;
|
|
230
|
+
src: AnyActorLogic;
|
|
231
|
+
input?: Mapper<TContext, TEvent, NonReducibleUnknown, TEvent> | NonReducibleUnknown;
|
|
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>>;
|
|
235
|
+
} : never;
|
|
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> : {
|
|
219
237
|
/**
|
|
220
238
|
* The unique identifier for the invoked machine. If not specified, this
|
|
221
239
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -231,15 +249,15 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
|
|
|
231
249
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
232
250
|
*/
|
|
233
251
|
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<any>, // TODO: consider replacing with `unknown`
|
|
234
|
-
TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
252
|
+
TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
235
253
|
/**
|
|
236
254
|
* The transition to take upon the invoked child machine sending an error event.
|
|
237
255
|
*/
|
|
238
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
239
|
-
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>>;
|
|
240
258
|
};
|
|
241
|
-
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any, any>;
|
|
242
|
-
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> {
|
|
243
261
|
/**
|
|
244
262
|
* The initial state transition.
|
|
245
263
|
*/
|
|
@@ -263,15 +281,15 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
263
281
|
/**
|
|
264
282
|
* The mapping of state node keys to their state node configurations (recursive).
|
|
265
283
|
*/
|
|
266
|
-
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;
|
|
267
285
|
/**
|
|
268
286
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
269
287
|
*/
|
|
270
|
-
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>>;
|
|
288
|
+
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
|
|
271
289
|
/**
|
|
272
290
|
* The mapping of event types to their potential transition(s).
|
|
273
291
|
*/
|
|
274
|
-
on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
292
|
+
on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
|
|
275
293
|
/**
|
|
276
294
|
* The action(s) to be executed upon entering the state node.
|
|
277
295
|
*/
|
|
@@ -285,7 +303,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
285
303
|
*
|
|
286
304
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
287
305
|
*/
|
|
288
|
-
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;
|
|
289
307
|
/**
|
|
290
308
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
291
309
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
@@ -294,12 +312,12 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
294
312
|
/**
|
|
295
313
|
* An eventless transition that is always taken when this state node is active.
|
|
296
314
|
*/
|
|
297
|
-
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
|
|
315
|
+
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
|
|
298
316
|
parent?: StateNode<TContext, TEvent>;
|
|
299
317
|
/**
|
|
300
318
|
* The meta data associated with this state node, which will be returned in State instances.
|
|
301
319
|
*/
|
|
302
|
-
meta?:
|
|
320
|
+
meta?: TMeta;
|
|
303
321
|
/**
|
|
304
322
|
* The output data sent with the "xstate.done.state._id_" event if this is a final state node.
|
|
305
323
|
*
|
|
@@ -329,7 +347,8 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
329
347
|
*/
|
|
330
348
|
target?: string;
|
|
331
349
|
}
|
|
332
|
-
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>;
|
|
333
352
|
export interface StateNodeDefinition<TContext extends MachineContext, TEvent extends EventObject> {
|
|
334
353
|
id: string;
|
|
335
354
|
version?: string | undefined;
|
|
@@ -344,8 +363,10 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
|
|
|
344
363
|
exit: UnknownAction[];
|
|
345
364
|
meta: any;
|
|
346
365
|
order: number;
|
|
347
|
-
output?: StateNodeConfig<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string, string, unknown, EventObject
|
|
348
|
-
|
|
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>>;
|
|
349
370
|
description?: string;
|
|
350
371
|
tags: string[];
|
|
351
372
|
}
|
|
@@ -368,9 +389,11 @@ any, // tag
|
|
|
368
389
|
any, // input
|
|
369
390
|
any, // output
|
|
370
391
|
any, // emitted
|
|
392
|
+
any, // TMeta
|
|
371
393
|
any>;
|
|
372
394
|
export type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
373
|
-
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> {
|
|
374
397
|
initial?: undefined;
|
|
375
398
|
parallel?: false | undefined;
|
|
376
399
|
states?: undefined;
|
|
@@ -380,7 +403,8 @@ export interface HistoryStateNodeConfig<TContext extends MachineContext, TEvent
|
|
|
380
403
|
history: 'shallow' | 'deep' | true;
|
|
381
404
|
target: string | undefined;
|
|
382
405
|
}
|
|
383
|
-
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>;
|
|
384
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> = {
|
|
385
409
|
[K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, GetParameterizedParams<TAction extends {
|
|
386
410
|
type: K;
|
|
@@ -443,9 +467,9 @@ export type ContextFactory<TContext extends MachineContext, TActor extends Provi
|
|
|
443
467
|
spawn: Spawner<TActor>;
|
|
444
468
|
input: TInput;
|
|
445
469
|
self: ActorRef<MachineSnapshot<TContext, TEvent, Record<string, AnyActorRef | undefined>, // TODO: this should be replaced with `TChildren`
|
|
446
|
-
StateValue, string, unknown>, TEvent>;
|
|
470
|
+
StateValue, string, unknown, TODO>, TEvent>;
|
|
447
471
|
}) => TContext;
|
|
448
|
-
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'> & {
|
|
449
473
|
/**
|
|
450
474
|
* The initial context (extended state)
|
|
451
475
|
*/
|
|
@@ -465,7 +489,7 @@ export interface ProvidedActor {
|
|
|
465
489
|
logic: UnknownActorLogic;
|
|
466
490
|
id?: string;
|
|
467
491
|
}
|
|
468
|
-
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> {
|
|
469
493
|
context?: TContext;
|
|
470
494
|
events?: TEvent;
|
|
471
495
|
children?: TChildrenMap;
|
|
@@ -473,13 +497,15 @@ export interface SetupTypes<TContext extends MachineContext, TEvent extends Even
|
|
|
473
497
|
input?: TInput;
|
|
474
498
|
output?: TOutput;
|
|
475
499
|
emitted?: TEmitted;
|
|
500
|
+
meta?: TMeta;
|
|
476
501
|
}
|
|
477
|
-
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> {
|
|
478
503
|
actors?: TActor;
|
|
479
504
|
actions?: TAction;
|
|
480
505
|
guards?: TGuard;
|
|
481
506
|
delays?: TDelay;
|
|
482
507
|
typegen?: TTypesMeta;
|
|
508
|
+
meta?: TMeta;
|
|
483
509
|
}
|
|
484
510
|
export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
|
|
485
511
|
history: 'shallow' | 'deep';
|
|
@@ -533,9 +559,10 @@ export type Mapper<TContext extends MachineContext, TExpressionEvent extends Eve
|
|
|
533
559
|
context: TContext;
|
|
534
560
|
event: TExpressionEvent;
|
|
535
561
|
self: ActorRef<MachineSnapshot<TContext, TEvent, Record<string, AnyActorRef>, // TODO: this should be replaced with `TChildren`
|
|
536
|
-
StateValue, string, unknown>, TEvent>;
|
|
562
|
+
StateValue, string, unknown, TODO>, TEvent>;
|
|
537
563
|
}) => TResult;
|
|
538
|
-
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'> {
|
|
539
566
|
target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
|
|
540
567
|
source: StateNode<TContext, TEvent>;
|
|
541
568
|
actions: readonly UnknownAction[];
|
|
@@ -574,7 +601,8 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
574
601
|
status: 'active' | 'done' | 'error' | 'stopped';
|
|
575
602
|
output?: any;
|
|
576
603
|
error?: unknown;
|
|
577
|
-
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>;
|
|
578
606
|
}
|
|
579
607
|
export interface ActorOptions<TLogic extends AnyActorLogic> {
|
|
580
608
|
/**
|
|
@@ -764,14 +792,15 @@ export interface ActorRef<TSnapshot extends Snapshot<unknown>, TEvent extends Ev
|
|
|
764
792
|
}) => void) => Subscription;
|
|
765
793
|
}
|
|
766
794
|
export type AnyActorRef = ActorRef<any, any, any>;
|
|
767
|
-
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any, any, any, any, any
|
|
768
|
-
|
|
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;
|
|
769
798
|
export type DevToolsAdapter = (service: AnyActor) => void;
|
|
770
799
|
/**
|
|
771
800
|
* @deprecated Use `Actor<T>` instead.
|
|
772
801
|
*/
|
|
773
|
-
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;
|
|
774
|
-
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;
|
|
775
804
|
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, // context
|
|
776
805
|
any, // event
|
|
777
806
|
any, // children
|
|
@@ -784,6 +813,7 @@ any, // tag
|
|
|
784
813
|
any, // input
|
|
785
814
|
any, // output
|
|
786
815
|
any, // emitted
|
|
816
|
+
any, // TMeta
|
|
787
817
|
infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
788
818
|
export interface ActorScope<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TSystem extends AnyActorSystem = AnyActorSystem, TEmitted extends EventObject = EventObject> {
|
|
789
819
|
self: ActorRef<TSnapshot, TEvent, TEmitted>;
|
|
@@ -878,9 +908,9 @@ AnyActorSystem, any>;
|
|
|
878
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;
|
|
879
909
|
export type EventFromLogic<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer TEvent, infer _TInput, infer _TEmitted, infer _TSystem> ? TEvent : never;
|
|
880
910
|
export type EmittedFrom<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer _TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? TEmitted : never;
|
|
881
|
-
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;
|
|
882
912
|
export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
883
|
-
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;
|
|
884
914
|
export type InferEvent<E extends EventObject> = {
|
|
885
915
|
[T in E['type']]: {
|
|
886
916
|
type: T;
|