xstate 5.0.0-beta.24 → 5.0.0-beta.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/dist/xstate-actions.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.esm.js +1 -1
- package/actions/dist/xstate-actions.esm.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.esm.js +1 -1
- package/actors/dist/xstate-actors.esm.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/{actions-43f7d40e.development.cjs.js → actions-0971b43d.development.cjs.js} +4 -5
- package/dist/{actions-6a8cda73.cjs.js → actions-319cefe7.cjs.js} +4 -5
- package/dist/{actions-7b182232.esm.js → actions-5943a9db.esm.js} +4 -5
- package/dist/{actions-194e6dcc.development.esm.js → actions-cf69419d.development.esm.js} +4 -5
- package/dist/declarations/src/Machine.d.ts +2 -2
- package/dist/declarations/src/State.d.ts +9 -5
- package/dist/declarations/src/StateMachine.d.ts +20 -16
- package/dist/declarations/src/StateNode.d.ts +21 -5
- package/dist/declarations/src/actions/choose.d.ts +3 -1
- package/dist/declarations/src/actions/pure.d.ts +5 -3
- package/dist/declarations/src/actions/raise.d.ts +2 -1
- package/dist/declarations/src/actions/send.d.ts +11 -55
- package/dist/declarations/src/guards.d.ts +5 -2
- package/dist/declarations/src/stateUtils.d.ts +7 -6
- package/dist/declarations/src/typegenTypes.d.ts +12 -4
- package/dist/declarations/src/types.d.ts +103 -91
- package/dist/xstate.cjs.js +3 -1
- package/dist/xstate.development.cjs.js +3 -1
- package/dist/xstate.development.esm.js +4 -2
- package/dist/xstate.esm.js +4 -2
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.esm.js +1 -1
- package/guards/dist/xstate-guards.esm.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ export type MachineContext = Record<string, any>;
|
|
|
66
66
|
export interface ActionArgs<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject | undefined> extends UnifiedArg<TContext, TEvent> {
|
|
67
67
|
action: TAction;
|
|
68
68
|
}
|
|
69
|
-
export type InputFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer TInput> ? TInput : never;
|
|
69
|
+
export type InputFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TInput : T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer TInput> ? TInput : never;
|
|
70
70
|
export type OutputFrom<T extends AnyActorLogic> = T extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer _TPersisted, infer _TSystem, infer _TInput, infer TOutput> ? TOutput : never;
|
|
71
71
|
export type Spawner = <T extends AnyActorLogic | string>(// TODO: read string from machine logic keys
|
|
72
72
|
logic: T, options?: Partial<{
|
|
@@ -77,21 +77,23 @@ logic: T, options?: Partial<{
|
|
|
77
77
|
export interface AssignArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> extends ActionArgs<TContext, TExpressionEvent, TExpressionAction> {
|
|
78
78
|
spawn: Spawner;
|
|
79
79
|
}
|
|
80
|
-
export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject> = {
|
|
80
|
+
export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
81
81
|
(args: ActionArgs<TContext, TExpressionEvent, TExpressionAction>): void;
|
|
82
82
|
_out_TEvent?: TEvent;
|
|
83
83
|
_out_TAction?: TAction;
|
|
84
|
+
_out_TGuard?: TGuard;
|
|
85
|
+
_out_TDelay?: TDelay;
|
|
84
86
|
};
|
|
85
|
-
export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject,
|
|
86
|
-
guard?: Guard<TContext, TExpressionEvent,
|
|
87
|
-
actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction>;
|
|
87
|
+
export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> {
|
|
88
|
+
guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
|
|
89
|
+
actions: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
88
90
|
}
|
|
89
91
|
export type NoRequiredParams<T extends ParameterizedObject> = T extends any ? {
|
|
90
92
|
type: T['type'];
|
|
91
93
|
} extends T ? T['type'] : never : never;
|
|
92
|
-
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject> = NoRequiredParams<TAction> | TAction | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction>;
|
|
93
|
-
export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ParameterizedObject>;
|
|
94
|
-
export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction>>;
|
|
94
|
+
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | TAction | ActionFunction<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>;
|
|
95
|
+
export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject | undefined, ParameterizedObject, ParameterizedObject, string>;
|
|
96
|
+
export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TExpressionAction, TAction, TGuard, TDelay>>;
|
|
95
97
|
export type StateKey = string | AnyState;
|
|
96
98
|
export interface StateValueMap {
|
|
97
99
|
[key: string]: StateValue;
|
|
@@ -104,23 +106,23 @@ export interface StateValueMap {
|
|
|
104
106
|
*/
|
|
105
107
|
export type StateValue = string | StateValueMap;
|
|
106
108
|
export type TransitionTarget = SingleOrArray<string>;
|
|
107
|
-
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> {
|
|
109
|
+
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
108
110
|
guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
|
|
109
|
-
actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction>;
|
|
111
|
+
actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
110
112
|
reenter?: boolean;
|
|
111
113
|
target?: TransitionTarget | undefined;
|
|
112
114
|
meta?: Record<string, any>;
|
|
113
115
|
description?: string;
|
|
114
116
|
}
|
|
115
|
-
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> extends TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard> {
|
|
117
|
+
export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> {
|
|
116
118
|
target: TransitionTarget;
|
|
117
119
|
}
|
|
118
|
-
export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any>;
|
|
120
|
+
export type AnyTransitionConfig = TransitionConfig<any, any, any, any, any, any>;
|
|
119
121
|
export interface InvokeMeta {
|
|
120
122
|
src: string;
|
|
121
123
|
meta: MetaObject | undefined;
|
|
122
124
|
}
|
|
123
|
-
export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> {
|
|
125
|
+
export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> {
|
|
124
126
|
id: string;
|
|
125
127
|
systemId: string | undefined;
|
|
126
128
|
/**
|
|
@@ -131,43 +133,42 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
|
|
|
131
133
|
/**
|
|
132
134
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
133
135
|
*/
|
|
134
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>, DoneInvokeEvent<any>, TAction, TGuard>>;
|
|
136
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>, DoneInvokeEvent<any>, TAction, TGuard, TDelay>>;
|
|
135
137
|
/**
|
|
136
138
|
* The transition to take upon the invoked child machine sending an error event.
|
|
137
139
|
*/
|
|
138
|
-
onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorEvent<any>, ErrorEvent<any>, TAction, TGuard>>;
|
|
139
|
-
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<any>, SnapshotEvent<any>, TAction, TGuard>>;
|
|
140
|
-
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TAction, TGuard>, 'onDone' | 'onError' | 'toJSON'>;
|
|
140
|
+
onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorEvent<any>, ErrorEvent<any>, TAction, TGuard, TDelay>>;
|
|
141
|
+
onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent<any>, SnapshotEvent<any>, TAction, TGuard, TDelay>>;
|
|
142
|
+
toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TAction, TGuard, TDelay>, 'onDone' | 'onError' | 'toJSON'>;
|
|
141
143
|
meta: MetaObject | undefined;
|
|
142
144
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
delay: number;
|
|
149
|
-
}
|
|
150
|
-
export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> = Record<string | number, string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard>>> | Array<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard> & {
|
|
151
|
-
delay: number | string | ((args: UnifiedArg<TContext, TEvent>) => number);
|
|
145
|
+
type Delay<TDelay extends string> = TDelay | number;
|
|
146
|
+
export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
147
|
+
[K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay>>;
|
|
148
|
+
} | Array<TransitionConfig<TContext, TEvent, TEvent, TAction, TGuard, TDelay> & {
|
|
149
|
+
delay: Delay<TDelay> | ((args: UnifiedArg<TContext, TEvent>) => Delay<TDelay>);
|
|
152
150
|
}>;
|
|
153
151
|
export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
|
|
154
152
|
export type SingleOrArray<T> = readonly T[] | T;
|
|
155
153
|
export type StateNodesConfig<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
156
154
|
[K in string]: StateNode<TContext, TEvent>;
|
|
157
155
|
};
|
|
158
|
-
export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject,
|
|
159
|
-
[K in string]: StateNodeConfig<TContext, TEvent, TAction, TGuard,
|
|
156
|
+
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> = {
|
|
157
|
+
[K in string]: StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput>;
|
|
160
158
|
};
|
|
161
159
|
export type StatesDefinition<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
162
160
|
[K in string]: StateNodeDefinition<TContext, TEvent>;
|
|
163
161
|
};
|
|
164
162
|
export type TransitionConfigTarget = string | undefined;
|
|
165
|
-
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TAction, TGuard>>;
|
|
166
|
-
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> = {
|
|
167
|
-
[K in TEvent
|
|
163
|
+
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TAction, TGuard, TDelay>>;
|
|
164
|
+
export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
|
|
165
|
+
[K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TAction, TGuard, TDelay>;
|
|
168
166
|
};
|
|
167
|
+
type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
|
|
168
|
+
export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
|
|
169
|
+
type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
|
|
169
170
|
type IsLiteralString<T extends string> = string extends T ? false : true;
|
|
170
|
-
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> = TActor extends {
|
|
171
|
+
type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = TActor extends {
|
|
171
172
|
src: infer TSrc;
|
|
172
173
|
} ? Compute<{
|
|
173
174
|
systemId?: string;
|
|
@@ -179,12 +180,12 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
179
180
|
/**
|
|
180
181
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
181
182
|
*/
|
|
182
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<OutputFrom<TActor['logic']>>, TEvent, TAction, TGuard>>;
|
|
183
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<OutputFrom<TActor['logic']>>, TEvent, TAction, TGuard, TDelay>>;
|
|
183
184
|
/**
|
|
184
185
|
* The transition to take upon the invoked child machine sending an error event.
|
|
185
186
|
*/
|
|
186
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard>>;
|
|
187
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard>>;
|
|
187
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard, TDelay>>;
|
|
188
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard, TDelay>>;
|
|
188
189
|
/**
|
|
189
190
|
* Meta data related to this invocation
|
|
190
191
|
*/
|
|
@@ -202,7 +203,7 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
202
203
|
*/
|
|
203
204
|
id?: string;
|
|
204
205
|
})> : never;
|
|
205
|
-
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard> : {
|
|
206
|
+
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay> : {
|
|
206
207
|
/**
|
|
207
208
|
* The unique identifier for the invoked machine. If not specified, this
|
|
208
209
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -217,23 +218,23 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
|
|
|
217
218
|
/**
|
|
218
219
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
219
220
|
*/
|
|
220
|
-
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<any>, TEvent, TAction, TGuard>>;
|
|
221
|
+
onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneInvokeEvent<any>, TEvent, TAction, TGuard, TDelay>>;
|
|
221
222
|
/**
|
|
222
223
|
* The transition to take upon the invoked child machine sending an error event.
|
|
223
224
|
*/
|
|
224
|
-
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard>>;
|
|
225
|
-
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard>>;
|
|
225
|
+
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorEvent<any>, TEvent, TAction, TGuard, TDelay>>;
|
|
226
|
+
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<any>, TEvent, TAction, TGuard, TDelay>>;
|
|
226
227
|
/**
|
|
227
228
|
* Meta data related to this invocation
|
|
228
229
|
*/
|
|
229
230
|
meta?: MetaObject;
|
|
230
231
|
};
|
|
231
|
-
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any>;
|
|
232
|
-
export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject,
|
|
232
|
+
export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any>;
|
|
233
|
+
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> {
|
|
233
234
|
/**
|
|
234
235
|
* The initial state transition.
|
|
235
236
|
*/
|
|
236
|
-
initial?: InitialTransitionConfig<TContext, TEvent, TAction, TGuard> | SingleOrArray<string> | undefined;
|
|
237
|
+
initial?: InitialTransitionConfig<TContext, TEvent, TAction, TGuard, TDelay> | SingleOrArray<string> | undefined;
|
|
237
238
|
/**
|
|
238
239
|
* The type of this state node:
|
|
239
240
|
*
|
|
@@ -253,38 +254,38 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
253
254
|
/**
|
|
254
255
|
* The mapping of state node keys to their state node configurations (recursive).
|
|
255
256
|
*/
|
|
256
|
-
states?: StatesConfig<TContext, TEvent, TAction, TGuard,
|
|
257
|
+
states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, NonReducibleUnknown> | undefined;
|
|
257
258
|
/**
|
|
258
259
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
259
260
|
*/
|
|
260
|
-
invoke?: SingleOrArray<TActor['src'] | InvokeConfig<TContext, TEvent, TActor, TAction, TGuard>>;
|
|
261
|
+
invoke?: SingleOrArray<TActor['src'] | InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
261
262
|
/**
|
|
262
263
|
* The mapping of event types to their potential transition(s).
|
|
263
264
|
*/
|
|
264
|
-
on?: TransitionsConfig<TContext, TEvent, TAction, TGuard>;
|
|
265
|
+
on?: TransitionsConfig<TContext, TEvent, TAction, TGuard, TDelay>;
|
|
265
266
|
/**
|
|
266
267
|
* The action(s) to be executed upon entering the state node.
|
|
267
268
|
*/
|
|
268
|
-
entry?: Actions<TContext, TEvent, TEvent, undefined, TAction>;
|
|
269
|
+
entry?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
269
270
|
/**
|
|
270
271
|
* The action(s) to be executed upon exiting the state node.
|
|
271
272
|
*/
|
|
272
|
-
exit?: Actions<TContext, TEvent, TEvent, undefined, TAction>;
|
|
273
|
+
exit?: Actions<TContext, TEvent, TEvent, undefined, TAction, TGuard, TDelay>;
|
|
273
274
|
/**
|
|
274
275
|
* The potential transition(s) to be taken upon reaching a final child state node.
|
|
275
276
|
*
|
|
276
277
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
277
278
|
*/
|
|
278
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject, DoneEventObject, TAction, TGuard>> | undefined;
|
|
279
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject, DoneEventObject, TAction, TGuard, TDelay>> | undefined;
|
|
279
280
|
/**
|
|
280
281
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
281
282
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
282
283
|
*/
|
|
283
|
-
after?: DelayedTransitions<TContext, TEvent, TAction, TGuard>;
|
|
284
|
+
after?: DelayedTransitions<TContext, TEvent, TAction, TGuard, TDelay>;
|
|
284
285
|
/**
|
|
285
286
|
* An eventless transition that is always taken when this state node is active.
|
|
286
287
|
*/
|
|
287
|
-
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TAction, TGuard>;
|
|
288
|
+
always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TAction, TGuard, TDelay>;
|
|
288
289
|
/**
|
|
289
290
|
* @private
|
|
290
291
|
*/
|
|
@@ -312,7 +313,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
312
313
|
/**
|
|
313
314
|
* The tags for this state node, which are accumulated into the `state.tags` property.
|
|
314
315
|
*/
|
|
315
|
-
tags?: SingleOrArray<
|
|
316
|
+
tags?: SingleOrArray<TTag>;
|
|
316
317
|
/**
|
|
317
318
|
* A text description of the state node
|
|
318
319
|
*/
|
|
@@ -322,7 +323,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
322
323
|
*/
|
|
323
324
|
target?: string;
|
|
324
325
|
}
|
|
325
|
-
export type AnyStateNodeConfig = StateNodeConfig<any, any, any, any, any, any>;
|
|
326
|
+
export type AnyStateNodeConfig = StateNodeConfig<any, any, any, any, any, any, any, any>;
|
|
326
327
|
export interface StateNodeDefinition<TContext extends MachineContext, TEvent extends EventObject> {
|
|
327
328
|
id: string;
|
|
328
329
|
version?: string | undefined;
|
|
@@ -338,7 +339,7 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
|
|
|
338
339
|
meta: any;
|
|
339
340
|
order: number;
|
|
340
341
|
output?: FinalStateNodeConfig<TContext, TEvent>['output'];
|
|
341
|
-
invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO>>;
|
|
342
|
+
invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO>>;
|
|
342
343
|
description?: string;
|
|
343
344
|
tags: string[];
|
|
344
345
|
}
|
|
@@ -346,10 +347,12 @@ export interface StateMachineDefinition<TContext extends MachineContext, TEvent
|
|
|
346
347
|
}
|
|
347
348
|
export type AnyStateNode = StateNode<any, any>;
|
|
348
349
|
export type AnyStateNodeDefinition = StateNodeDefinition<any, any>;
|
|
349
|
-
export type AnyState = State<any, any, any, any, any
|
|
350
|
-
|
|
350
|
+
export type AnyState = State<any, any, any, any, any, // delays
|
|
351
|
+
any>;
|
|
352
|
+
export type AnyStateMachine = StateMachine<any, any, any, any, any, any, any, any, any, // delays
|
|
353
|
+
any>;
|
|
351
354
|
export type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
352
|
-
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO> {
|
|
355
|
+
export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO> {
|
|
353
356
|
initial?: undefined;
|
|
354
357
|
parallel?: false | undefined;
|
|
355
358
|
states?: undefined;
|
|
@@ -367,11 +370,11 @@ export interface FinalStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
367
370
|
*/
|
|
368
371
|
output?: Mapper<TContext, TEvent, any>;
|
|
369
372
|
}
|
|
370
|
-
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO>;
|
|
371
|
-
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> = {
|
|
373
|
+
export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO>;
|
|
374
|
+
export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string> = {
|
|
372
375
|
[K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, TAction extends {
|
|
373
376
|
type: K;
|
|
374
|
-
} ? TAction : never, TAction>;
|
|
377
|
+
} ? TAction : never, TAction, TGuard, TDelay>;
|
|
375
378
|
};
|
|
376
379
|
type GuardMap<TContext extends MachineContext, TEvent extends EventObject, TGuard extends ParameterizedObject> = {
|
|
377
380
|
[K in TGuard['type']]?: GuardPredicate<TContext, TEvent, TGuard extends {
|
|
@@ -390,8 +393,8 @@ export interface MachineImplementationsSimplified<TContext extends MachineContex
|
|
|
390
393
|
delays: DelayFunctionMap<TContext, TEvent, TAction>;
|
|
391
394
|
}
|
|
392
395
|
type MaybeNarrowedEvent<TIndexedEvents, TCausingLookup, K> = Cast<Prop<TIndexedEvents, K extends keyof TCausingLookup ? TCausingLookup[K] : TIndexedEvents[keyof TIndexedEvents]>, EventObject>;
|
|
393
|
-
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>> = {
|
|
394
|
-
[K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject
|
|
396
|
+
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
397
|
+
[K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, Cast<TIndexedActions[K], ParameterizedObject>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
|
|
395
398
|
};
|
|
396
399
|
type MachineImplementationsActors<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActors'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, _TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
|
|
397
400
|
[K in keyof TIndexedActors]?: Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic> | {
|
|
@@ -399,8 +402,8 @@ type MachineImplementationsActors<TContext extends MachineContext, TResolvedType
|
|
|
399
402
|
input: Mapper<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActors, K>, InputFrom<Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic>>> | InputFrom<Cast<Prop<TIndexedActors[K], 'logic'>, AnyActorLogic>>;
|
|
400
403
|
};
|
|
401
404
|
};
|
|
402
|
-
type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
|
|
403
|
-
[K in keyof
|
|
405
|
+
type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
406
|
+
[K in keyof TIndexedDelays]?: DelayConfig<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingDelays, K>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject> | undefined>;
|
|
404
407
|
};
|
|
405
408
|
type MachineImplementationsGuards<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingGuards'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>> = {
|
|
406
409
|
[K in keyof TIndexedGuards]?: Guard<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingGuards, K>, Cast<TIndexedGuards[K], ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>>;
|
|
@@ -423,17 +426,17 @@ type GenerateDelaysImplementationsPart<TContext extends MachineContext, TResolve
|
|
|
423
426
|
type GenerateGuardsImplementationsPart<TContext extends MachineContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = Compute<MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
424
427
|
guards?: MachineImplementationsGuards<TContext, TResolvedTypesMeta>;
|
|
425
428
|
}>;
|
|
426
|
-
export type InternalMachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<GenerateActionsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateActorsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>>;
|
|
427
|
-
export type MachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineImplementations<TContext, TEvent, TActor, TAction, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard>>;
|
|
429
|
+
export type InternalMachineImplementations<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TDelay extends string, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<GenerateActionsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateActorsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsImplementationsPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>>;
|
|
430
|
+
export type MachineImplementations<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, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineImplementations<TContext, TEvent, TActor, TAction, TDelay, ResolveTypegenMeta<TTypesMeta, TEvent, TActor, TAction, TGuard, TDelay, TTag>>;
|
|
428
431
|
type InitialContext<TContext extends MachineContext, TInput> = TContext | ContextFactory<TContext, TInput>;
|
|
429
432
|
export type ContextFactory<TContext extends MachineContext, TInput> = ({ spawn, input }: {
|
|
430
433
|
spawn: Spawner;
|
|
431
434
|
input: TInput;
|
|
432
435
|
}) => TContext;
|
|
433
|
-
type RootStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject,
|
|
434
|
-
states?: StatesConfig<TContext, TEvent, TAction, TGuard,
|
|
436
|
+
type RootStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput> = Omit<StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput>, 'states'> & {
|
|
437
|
+
states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput> | undefined;
|
|
435
438
|
};
|
|
436
|
-
export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject,
|
|
439
|
+
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, TTypesMeta = TypegenDisabled> = (RootStateNodeConfig<NoInfer<TContext>, NoInfer<TEvent>, NoInfer<TActor>, NoInfer<TAction>, NoInfer<TGuard>, NoInfer<TDelay>, NoInfer<TTag>, NoInfer<TOutput>> & {
|
|
437
440
|
/**
|
|
438
441
|
* The initial context (extended state)
|
|
439
442
|
*/
|
|
@@ -441,7 +444,7 @@ export type MachineConfig<TContext extends MachineContext, TEvent extends EventO
|
|
|
441
444
|
* The machine's own version.
|
|
442
445
|
*/
|
|
443
446
|
version?: string;
|
|
444
|
-
types?: MachineTypes<TContext, TEvent, TAction, TGuard,
|
|
447
|
+
types?: MachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TInput, TOutput, TTypesMeta>;
|
|
445
448
|
}) & (Equals<TContext, MachineContext> extends true ? {
|
|
446
449
|
context?: InitialContext<LowInfer<TContext>, TInput>;
|
|
447
450
|
} : {
|
|
@@ -452,12 +455,14 @@ export interface ProvidedActor {
|
|
|
452
455
|
logic: AnyActorLogic;
|
|
453
456
|
id?: string;
|
|
454
457
|
}
|
|
455
|
-
export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject, TGuard extends ParameterizedObject,
|
|
458
|
+
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, TTypesMeta = TypegenDisabled> {
|
|
456
459
|
context?: TContext;
|
|
457
460
|
events?: TEvent;
|
|
458
461
|
actors?: TActor;
|
|
459
462
|
actions?: TAction;
|
|
460
463
|
guards?: TGuard;
|
|
464
|
+
delays?: TDelay;
|
|
465
|
+
tags?: TTag;
|
|
461
466
|
input?: TInput;
|
|
462
467
|
output?: TOutput;
|
|
463
468
|
typegen?: TTypesMeta;
|
|
@@ -511,16 +516,16 @@ export declare enum SpecialTargets {
|
|
|
511
516
|
Parent = "#_parent",
|
|
512
517
|
Internal = "#_internal"
|
|
513
518
|
}
|
|
514
|
-
export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction> {
|
|
519
|
+
export interface SendToActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
515
520
|
}
|
|
516
|
-
export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> {
|
|
521
|
+
export interface RaiseActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TDelay extends string> {
|
|
517
522
|
id?: string;
|
|
518
|
-
delay?:
|
|
523
|
+
delay?: Delay<TDelay> | DelayExpr<TContext, TExpressionEvent, TExpressionAction>;
|
|
519
524
|
}
|
|
520
|
-
export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction> {
|
|
525
|
+
export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TEvent extends EventObject, TDelay extends string> extends RaiseActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
521
526
|
event: TEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TEvent>;
|
|
522
527
|
}
|
|
523
|
-
export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction> {
|
|
528
|
+
export interface SendToActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined, TSentEvent extends EventObject, TDelay extends string> extends SendToActionOptions<TContext, TExpressionEvent, TExpressionAction, TDelay> {
|
|
524
529
|
event: TSentEvent | SendExpr<TContext, TExpressionEvent, TExpressionAction, TSentEvent>;
|
|
525
530
|
}
|
|
526
531
|
export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TExpressionAction extends ParameterizedObject | undefined> = (args: AssignArgs<TContext, TExpressionEvent, TExpressionAction>) => Partial<TContext>;
|
|
@@ -536,19 +541,19 @@ export type Mapper<TContext extends MachineContext, TEvent extends EventObject,
|
|
|
536
541
|
export type PropertyMapper<TContext extends MachineContext, TEvent extends EventObject, TParams extends {}> = {
|
|
537
542
|
[K in keyof TParams]?: Mapper<TContext, TEvent, TParams[K]> | TParams[K];
|
|
538
543
|
};
|
|
539
|
-
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO>, 'target' | 'guard'> {
|
|
544
|
+
export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO>, 'target' | 'guard'> {
|
|
540
545
|
target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
|
|
541
546
|
source: StateNode<TContext, TEvent>;
|
|
542
547
|
actions: readonly UnknownAction[];
|
|
543
548
|
reenter: boolean;
|
|
544
549
|
guard?: UnknownGuard;
|
|
545
|
-
eventType: TEvent
|
|
550
|
+
eventType: EventDescriptor<TEvent>;
|
|
546
551
|
toJSON: () => {
|
|
547
552
|
target: string[] | undefined;
|
|
548
553
|
source: string;
|
|
549
554
|
actions: readonly UnknownAction[];
|
|
550
555
|
guard?: UnknownGuard;
|
|
551
|
-
eventType: TEvent
|
|
556
|
+
eventType: EventDescriptor<TEvent>;
|
|
552
557
|
meta?: Record<string, any>;
|
|
553
558
|
};
|
|
554
559
|
}
|
|
@@ -558,9 +563,7 @@ export interface InitialTransitionDefinition<TContext extends MachineContext, TE
|
|
|
558
563
|
guard?: never;
|
|
559
564
|
}
|
|
560
565
|
export type TransitionDefinitionMap<TContext extends MachineContext, TEvent extends EventObject> = {
|
|
561
|
-
[K in TEvent
|
|
562
|
-
type: K;
|
|
563
|
-
}> : EventObject>>;
|
|
566
|
+
[K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>>>;
|
|
564
567
|
};
|
|
565
568
|
export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
|
|
566
569
|
delay: number | string | DelayExpr<TContext, TEvent, undefined>;
|
|
@@ -581,7 +584,7 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
581
584
|
output?: any;
|
|
582
585
|
error?: unknown;
|
|
583
586
|
tags?: Set<string>;
|
|
584
|
-
machine?: StateMachine<TContext, TEvent, any, any, any, any, any, any>;
|
|
587
|
+
machine?: StateMachine<TContext, TEvent, any, any, any, any, any, any, any>;
|
|
585
588
|
_internalQueue?: Array<TEvent>;
|
|
586
589
|
}
|
|
587
590
|
export interface ActorOptions<TLogic extends AnyActorLogic> {
|
|
@@ -648,7 +651,7 @@ export interface Subscribable<T> extends InteropSubscribable<T> {
|
|
|
648
651
|
subscribe(observer: Observer<T>): Subscription;
|
|
649
652
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
650
653
|
}
|
|
651
|
-
export type ExtractEvent<TEvent extends EventObject,
|
|
654
|
+
export type ExtractEvent<TEvent extends EventObject, TDescriptor extends EventDescriptor<TEvent>> = string extends TEvent['type'] ? TEvent : NormalizeDescriptor<TDescriptor> extends infer TNormalizedDescriptor ? TEvent extends any ? TEvent['type'] extends TNormalizedDescriptor ? TEvent : never : never : never;
|
|
652
655
|
export interface BaseActorRef<TEvent extends EventObject> {
|
|
653
656
|
send: (event: TEvent) => void;
|
|
654
657
|
}
|
|
@@ -673,15 +676,24 @@ export interface ActorRef<TEvent extends EventObject, TSnapshot = any> extends S
|
|
|
673
676
|
src?: string;
|
|
674
677
|
}
|
|
675
678
|
export type AnyActorRef = ActorRef<any, any>;
|
|
676
|
-
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any> ? R : R extends Promise<infer U> ? PromiseActorLogic<U> : never : never;
|
|
677
|
-
export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, infer TActor, infer _TAction, infer _TGuard, infer
|
|
679
|
+
export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any, any> ? R : R extends Promise<infer U> ? PromiseActorLogic<U> : never : never;
|
|
680
|
+
export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, infer TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TTag, infer _TInput, infer TOutput, infer TResolvedTypesMeta> ? ActorRef<TEvent, State<TContext, TEvent, TActor, TTag, TOutput, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>> : R extends Promise<infer U> ? ActorRefFrom<PromiseActorLogic<U>> : R extends ActorLogic<infer TEvent, infer TSnapshot, infer _, infer __, infer ___, infer ____, infer _____> ? ActorRef<TEvent, TSnapshot> : never : never;
|
|
678
681
|
export type DevToolsAdapter = (service: AnyActor) => void;
|
|
679
682
|
/**
|
|
680
683
|
* @deprecated Use `Actor<T>` instead.
|
|
681
684
|
*/
|
|
682
|
-
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TActor, infer _TAction, infer _TGuard, infer TInput, infer TOutput, infer TResolvedTypesMeta> ? Actor<ActorLogic<TEvent, State<TContext, TEvent, TActor, TOutput, TResolvedTypesMeta>, State<TContext, TEvent, TActor, TOutput, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TActor, TOutput, TResolvedTypesMeta>>, ActorSystem<any>, TInput>> : never;
|
|
683
|
-
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TActor, infer TAction, infer _TGuard, infer _TInput, infer _TOutput, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TEvent, TActor, TAction, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
684
|
-
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any,
|
|
685
|
+
export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TTag, infer TInput, infer TOutput, infer TResolvedTypesMeta> ? Actor<ActorLogic<TEvent, State<TContext, TEvent, TActor, TTag, TOutput, TResolvedTypesMeta>, State<TContext, TEvent, TActor, TTag, TOutput, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TActor, TTag, TOutput, TResolvedTypesMeta>>, ActorSystem<any>, TInput>> : never;
|
|
686
|
+
export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TActor, infer TAction, infer _TGuard, infer TDelay, infer _TTag, infer _TInput, infer _TOutput, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TEvent, TActor, TAction, TDelay, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
687
|
+
export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, // context
|
|
688
|
+
any, // event
|
|
689
|
+
any, // actor
|
|
690
|
+
any, // action
|
|
691
|
+
any, // guard
|
|
692
|
+
any, // delay
|
|
693
|
+
any, // tag
|
|
694
|
+
any, // input
|
|
695
|
+
any, // output
|
|
696
|
+
infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
685
697
|
export interface ActorContext<TEvent extends EventObject, TSnapshot, TSystem extends ActorSystem<any> = ActorSystem<any>> {
|
|
686
698
|
self: ActorRef<TEvent, TSnapshot>;
|
|
687
699
|
id: string;
|
|
@@ -720,13 +732,13 @@ any, // persisted state
|
|
|
720
732
|
any, // system
|
|
721
733
|
any, // input
|
|
722
734
|
any>;
|
|
723
|
-
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Actor<infer TLogic> ? SnapshotFrom<TLogic> : R extends StateMachine<infer
|
|
735
|
+
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Actor<infer TLogic> ? SnapshotFrom<TLogic> : R extends StateMachine<infer _TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TResolvedTypesMeta> ? StateFrom<R> : R extends ActorLogic<infer _, infer TSnapshot, infer __, infer ___, infer ____> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
|
|
724
736
|
export type EventFromLogic<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer TEvent, infer _, infer __, infer ___, infer ____> ? TEvent : never;
|
|
725
737
|
export type PersistedStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
|
|
726
738
|
export type InternalStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
|
|
727
|
-
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TEvent : R extends State<infer _TContext, infer TEvent, infer _TActor, infer _TOutput, infer _TResolvedTypesMeta> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
739
|
+
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TResolvedTypesMeta> ? TEvent : R extends State<infer _TContext, infer TEvent, infer _TActor, infer _TOutput, infer _TResolvedTypesMeta> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
728
740
|
export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
729
|
-
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer
|
|
741
|
+
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TTypesMeta> ? TContext : R extends State<infer TContext, infer _TEvent, infer _TActor, infer _TOutput, infer _TResolvedTypesMeta> ? TContext : R extends Actor<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TTag, infer _TInput, infer _TOutput, infer _TTypesMeta> ? TContext : never : never : never;
|
|
730
742
|
export type InferEvent<E extends EventObject> = {
|
|
731
743
|
[T in E['type']]: {
|
|
732
744
|
type: T;
|
package/dist/xstate.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var actors_dist_xstateActors = require('./actions-
|
|
5
|
+
var actors_dist_xstateActors = require('./actions-319cefe7.cjs.js');
|
|
6
6
|
require('../dev/dist/xstate-dev.cjs.js');
|
|
7
7
|
|
|
8
8
|
const EMPTY_OBJECT = {};
|
|
@@ -366,6 +366,8 @@ class StateMachine {
|
|
|
366
366
|
this.__TActor = void 0;
|
|
367
367
|
this.__TAction = void 0;
|
|
368
368
|
this.__TGuard = void 0;
|
|
369
|
+
this.__TDelay = void 0;
|
|
370
|
+
this.__TTag = void 0;
|
|
369
371
|
this.__TInput = void 0;
|
|
370
372
|
this.__TOutput = void 0;
|
|
371
373
|
this.__TResolvedTypesMeta = void 0;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var actors_dist_xstateActors = require('./actions-
|
|
5
|
+
var actors_dist_xstateActors = require('./actions-0971b43d.development.cjs.js');
|
|
6
6
|
require('../dev/dist/xstate-dev.development.cjs.js');
|
|
7
7
|
|
|
8
8
|
const EMPTY_OBJECT = {};
|
|
@@ -366,6 +366,8 @@ class StateMachine {
|
|
|
366
366
|
this.__TActor = void 0;
|
|
367
367
|
this.__TAction = void 0;
|
|
368
368
|
this.__TGuard = void 0;
|
|
369
|
+
this.__TDelay = void 0;
|
|
370
|
+
this.__TTag = void 0;
|
|
369
371
|
this.__TInput = void 0;
|
|
370
372
|
this.__TOutput = void 0;
|
|
371
373
|
this.__TResolvedTypesMeta = void 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, c as memo, e as evaluateGuard, d as flatten, g as createInvokeId, h as getDelayedTransitions, i as formatInitialTransition, j as getCandidates, k as toInvokeConfig, l as getConfiguration, n as getStateNodes, r as resolveStateValue, o as isInFinalState, p as State, q as isErrorEvent, s as cloneState, u as macrostep, v as transitionNode, w as getInitialConfiguration, x as resolveActionsAndContext, y as assign, z as createInitEvent, A as microstep, B as isAtomicStateNode, C as isStateId, D as getStateNodeByPath, E as getPersistedState, F as resolveReferencedActor, G as createActor, H as matchesState } from './actions-
|
|
2
|
-
export { M as Actor, O as ActorStatus, a7 as ConstantPrefix, P as InterpreterStatus, a8 as SpecialTargets, p as State, a5 as and, y as assign, R as cancel, T as choose, G as createActor, Q as doneInvoke, K as forwardTo, a0 as fromCallback, a1 as fromEventObservable, $ as fromObservable, _ as fromPromise, a2 as fromTransition, n as getStateNodes, L as interpret, U as log, H as matchesState, a4 as not, a6 as or, Y as pathToStateValue, V as pure, W as raise, J as sendParent, I as sendTo, a3 as stateIn, X as stop, Z as toObserver } from './actions-
|
|
1
|
+
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, c as memo, e as evaluateGuard, d as flatten, g as createInvokeId, h as getDelayedTransitions, i as formatInitialTransition, j as getCandidates, k as toInvokeConfig, l as getConfiguration, n as getStateNodes, r as resolveStateValue, o as isInFinalState, p as State, q as isErrorEvent, s as cloneState, u as macrostep, v as transitionNode, w as getInitialConfiguration, x as resolveActionsAndContext, y as assign, z as createInitEvent, A as microstep, B as isAtomicStateNode, C as isStateId, D as getStateNodeByPath, E as getPersistedState, F as resolveReferencedActor, G as createActor, H as matchesState } from './actions-cf69419d.development.esm.js';
|
|
2
|
+
export { M as Actor, O as ActorStatus, a7 as ConstantPrefix, P as InterpreterStatus, a8 as SpecialTargets, p as State, a5 as and, y as assign, R as cancel, T as choose, G as createActor, Q as doneInvoke, K as forwardTo, a0 as fromCallback, a1 as fromEventObservable, $ as fromObservable, _ as fromPromise, a2 as fromTransition, n as getStateNodes, L as interpret, U as log, H as matchesState, a4 as not, a6 as or, Y as pathToStateValue, V as pure, W as raise, J as sendParent, I as sendTo, a3 as stateIn, X as stop, Z as toObserver } from './actions-cf69419d.development.esm.js';
|
|
3
3
|
import '../dev/dist/xstate-dev.development.esm.js';
|
|
4
4
|
|
|
5
5
|
const EMPTY_OBJECT = {};
|
|
@@ -363,6 +363,8 @@ class StateMachine {
|
|
|
363
363
|
this.__TActor = void 0;
|
|
364
364
|
this.__TAction = void 0;
|
|
365
365
|
this.__TGuard = void 0;
|
|
366
|
+
this.__TDelay = void 0;
|
|
367
|
+
this.__TTag = void 0;
|
|
366
368
|
this.__TInput = void 0;
|
|
367
369
|
this.__TOutput = void 0;
|
|
368
370
|
this.__TResolvedTypesMeta = void 0;
|
package/dist/xstate.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, c as memo, e as evaluateGuard, d as flatten, g as createInvokeId, h as getDelayedTransitions, i as formatInitialTransition, j as getCandidates, k as toInvokeConfig, l as getConfiguration, n as getStateNodes, r as resolveStateValue, o as isInFinalState, p as State, q as isErrorEvent, s as cloneState, u as macrostep, v as transitionNode, w as getInitialConfiguration, x as resolveActionsAndContext, y as assign, z as createInitEvent, A as microstep, B as isAtomicStateNode, C as isStateId, D as getStateNodeByPath, E as getPersistedState, F as resolveReferencedActor, G as createActor, H as matchesState } from './actions-
|
|
2
|
-
export { M as Actor, O as ActorStatus, a7 as ConstantPrefix, P as InterpreterStatus, a8 as SpecialTargets, p as State, a5 as and, y as assign, R as cancel, T as choose, G as createActor, Q as doneInvoke, K as forwardTo, a0 as fromCallback, a1 as fromEventObservable, $ as fromObservable, _ as fromPromise, a2 as fromTransition, n as getStateNodes, L as interpret, U as log, H as matchesState, a4 as not, a6 as or, Y as pathToStateValue, V as pure, W as raise, J as sendParent, I as sendTo, a3 as stateIn, X as stop, Z as toObserver } from './actions-
|
|
1
|
+
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, c as memo, e as evaluateGuard, d as flatten, g as createInvokeId, h as getDelayedTransitions, i as formatInitialTransition, j as getCandidates, k as toInvokeConfig, l as getConfiguration, n as getStateNodes, r as resolveStateValue, o as isInFinalState, p as State, q as isErrorEvent, s as cloneState, u as macrostep, v as transitionNode, w as getInitialConfiguration, x as resolveActionsAndContext, y as assign, z as createInitEvent, A as microstep, B as isAtomicStateNode, C as isStateId, D as getStateNodeByPath, E as getPersistedState, F as resolveReferencedActor, G as createActor, H as matchesState } from './actions-5943a9db.esm.js';
|
|
2
|
+
export { M as Actor, O as ActorStatus, a7 as ConstantPrefix, P as InterpreterStatus, a8 as SpecialTargets, p as State, a5 as and, y as assign, R as cancel, T as choose, G as createActor, Q as doneInvoke, K as forwardTo, a0 as fromCallback, a1 as fromEventObservable, $ as fromObservable, _ as fromPromise, a2 as fromTransition, n as getStateNodes, L as interpret, U as log, H as matchesState, a4 as not, a6 as or, Y as pathToStateValue, V as pure, W as raise, J as sendParent, I as sendTo, a3 as stateIn, X as stop, Z as toObserver } from './actions-5943a9db.esm.js';
|
|
3
3
|
import '../dev/dist/xstate-dev.esm.js';
|
|
4
4
|
|
|
5
5
|
const EMPTY_OBJECT = {};
|
|
@@ -363,6 +363,8 @@ class StateMachine {
|
|
|
363
363
|
this.__TActor = void 0;
|
|
364
364
|
this.__TAction = void 0;
|
|
365
365
|
this.__TGuard = void 0;
|
|
366
|
+
this.__TDelay = void 0;
|
|
367
|
+
this.__TTag = void 0;
|
|
366
368
|
this.__TInput = void 0;
|
|
367
369
|
this.__TOutput = void 0;
|
|
368
370
|
this.__TResolvedTypesMeta = void 0;
|