xstate 4.28.1 → 4.29.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/CHANGELOG.md +139 -91
- package/README.md +5 -5
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Actor.d.ts +1 -2
- package/es/Machine.d.ts +5 -4
- package/es/State.d.ts +13 -11
- package/es/StateNode.d.ts +22 -17
- package/es/StateNode.js +7 -7
- package/es/actions.d.ts +3 -4
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +3 -4
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +3 -2
- package/es/index.js +1 -1
- package/es/interpreter.d.ts +37 -26
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +8 -9
- package/es/schema.d.ts +1 -0
- package/es/schema.js +2 -1
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +6 -5
- package/es/typegenTypes.d.ts +121 -0
- package/es/types.d.ts +105 -55
- package/es/utils.d.ts +1 -1
- package/es/utils.js +1 -1
- package/lib/Actor.d.ts +1 -2
- package/lib/Machine.d.ts +5 -4
- package/lib/State.d.ts +13 -11
- package/lib/StateNode.d.ts +22 -17
- package/lib/StateNode.js +7 -7
- package/lib/actions.d.ts +3 -4
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +3 -4
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.js +1 -0
- package/lib/interpreter.d.ts +37 -26
- package/lib/model.d.ts +2 -2
- package/lib/model.types.d.ts +8 -9
- package/lib/schema.d.ts +1 -0
- package/lib/schema.js +2 -0
- package/lib/scxml.d.ts +2 -2
- package/lib/stateUtils.d.ts +6 -5
- package/lib/typegenTypes.d.ts +121 -0
- package/lib/typegenTypes.js +2 -0
- package/lib/types.d.ts +105 -55
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ServiceMap, Cast } from './types';
|
|
2
|
+
export interface TypegenDisabled {
|
|
3
|
+
'@@xstate/typegen': false;
|
|
4
|
+
}
|
|
5
|
+
export interface TypegenEnabled {
|
|
6
|
+
'@@xstate/typegen': true;
|
|
7
|
+
}
|
|
8
|
+
export interface TypegenMeta extends TypegenEnabled {
|
|
9
|
+
/**
|
|
10
|
+
* Allows you to specify all the results of state.matches
|
|
11
|
+
*/
|
|
12
|
+
matchesStates: string | {};
|
|
13
|
+
/**
|
|
14
|
+
* Allows you to specify all tags used by the machine
|
|
15
|
+
*/
|
|
16
|
+
tags: string;
|
|
17
|
+
/**
|
|
18
|
+
* Allows you to specify all the missing implementations
|
|
19
|
+
* of the machine
|
|
20
|
+
*/
|
|
21
|
+
missingImplementations: {
|
|
22
|
+
actions: string;
|
|
23
|
+
delays: string;
|
|
24
|
+
guards: string;
|
|
25
|
+
services: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A map for the internal events of the machine.
|
|
29
|
+
*
|
|
30
|
+
* key: 'done.invoke.myService'
|
|
31
|
+
* value: {
|
|
32
|
+
* type: 'done.invoke.myService';
|
|
33
|
+
* data: unknown;
|
|
34
|
+
* __tip: 'Declare the type in event types!';
|
|
35
|
+
* }
|
|
36
|
+
*/
|
|
37
|
+
internalEvents: {};
|
|
38
|
+
/**
|
|
39
|
+
* Maps the name of the service to the event type
|
|
40
|
+
* of the done.invoke action
|
|
41
|
+
*
|
|
42
|
+
* key: 'invokeSrc'
|
|
43
|
+
* value: 'done.invoke.invokeName'
|
|
44
|
+
*/
|
|
45
|
+
invokeSrcNameMap: Record<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Keeps track of which events lead to which
|
|
48
|
+
* actions.
|
|
49
|
+
*
|
|
50
|
+
* Key: 'EVENT_NAME'
|
|
51
|
+
* Value: 'actionName' | 'otherActionName'
|
|
52
|
+
*/
|
|
53
|
+
eventsCausingActions: Record<string, string>;
|
|
54
|
+
/**
|
|
55
|
+
* Keeps track of which events lead to which
|
|
56
|
+
* delays.
|
|
57
|
+
*
|
|
58
|
+
* Key: 'EVENT_NAME'
|
|
59
|
+
* Value: 'delayName' | 'otherDelayName'
|
|
60
|
+
*/
|
|
61
|
+
eventsCausingDelays: Record<string, string>;
|
|
62
|
+
/**
|
|
63
|
+
* Keeps track of which events lead to which
|
|
64
|
+
* guards.
|
|
65
|
+
*
|
|
66
|
+
* Key: 'EVENT_NAME'
|
|
67
|
+
* Value: 'guardName' | 'otherGuardName'
|
|
68
|
+
*/
|
|
69
|
+
eventsCausingGuards: Record<string, string>;
|
|
70
|
+
/**
|
|
71
|
+
* Keeps track of which events lead to which
|
|
72
|
+
* services.
|
|
73
|
+
*
|
|
74
|
+
* Key: 'EVENT_NAME'
|
|
75
|
+
* Value: 'serviceName' | 'otherServiceName'
|
|
76
|
+
*/
|
|
77
|
+
eventsCausingServices: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
|
+
indexedActions: Record<string, BaseActionObject>;
|
|
81
|
+
indexedEvents: Record<string, EventObject>;
|
|
82
|
+
}
|
|
83
|
+
export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
84
|
+
export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
85
|
+
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
86
|
+
}>> extends true ? true : false : true;
|
|
87
|
+
export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TResolvedTypesMeta & {
|
|
88
|
+
missingImplementations: {
|
|
89
|
+
actions: never;
|
|
90
|
+
delays: never;
|
|
91
|
+
guards: never;
|
|
92
|
+
services: never;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
declare type GenerateServiceEvent<TServiceName, TEventType, TServiceMap extends ServiceMap> = TEventType extends any ? {
|
|
96
|
+
type: TEventType;
|
|
97
|
+
} & Prop<TServiceMap, TServiceName> : never;
|
|
98
|
+
declare type GenerateServiceEvents<TServiceMap extends ServiceMap, TInvokeSrcNameMap> = string extends keyof TServiceMap ? never : Cast<{
|
|
99
|
+
[K in keyof TInvokeSrcNameMap]: GenerateServiceEvent<K, TInvokeSrcNameMap[K], TServiceMap>;
|
|
100
|
+
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
101
|
+
declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
102
|
+
declare type AllowAllEvents = {
|
|
103
|
+
eventsCausingActions: Record<string, string>;
|
|
104
|
+
eventsCausingDelays: Record<string, string>;
|
|
105
|
+
eventsCausingGuards: Record<string, string>;
|
|
106
|
+
eventsCausingServices: Record<string, string>;
|
|
107
|
+
};
|
|
108
|
+
export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TServiceMap extends ServiceMap> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
|
|
109
|
+
indexedActions: IndexByType<TAction>;
|
|
110
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateServiceEvents<TServiceMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
111
|
+
} : MarkAllImplementationsAsProvided<TypegenDisabled> & AllowAllEvents & {
|
|
112
|
+
indexedActions: IndexByType<TAction>;
|
|
113
|
+
indexedEvents: Record<string, TEvent> & {
|
|
114
|
+
__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
|
|
115
|
+
data: any;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
119
|
+
};
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=typegenTypes.d.ts.map
|
package/es/types.d.ts
CHANGED
|
@@ -1,9 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Clock, Interpreter } from './interpreter';
|
|
2
|
+
import { Model } from './model.types';
|
|
2
3
|
import { State } from './State';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
declare type AnyFunction = (...args: any[]) => any;
|
|
4
|
+
import { StateNode } from './StateNode';
|
|
5
|
+
import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, AreAllImplementationsAssumedToBeProvided } from './typegenTypes';
|
|
6
|
+
export declare type AnyFunction = (...args: any[]) => any;
|
|
6
7
|
declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
8
|
+
export declare type IsNever<T> = [T] extends [never] ? true : false;
|
|
9
|
+
export declare type Compute<A extends any> = {
|
|
10
|
+
[K in keyof A]: A[K];
|
|
11
|
+
} & unknown;
|
|
12
|
+
export declare type Prop<T, K> = K extends keyof T ? T[K] : never;
|
|
13
|
+
export declare type Values<T> = T[keyof T];
|
|
14
|
+
export declare type Merge<M, N> = Omit<M, keyof N> & N;
|
|
15
|
+
export declare type IndexByType<T extends {
|
|
16
|
+
type: string;
|
|
17
|
+
}> = {
|
|
18
|
+
[K in T['type']]: Extract<T, {
|
|
19
|
+
type: K;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
export declare type Equals<A1 extends any, A2 extends any> = (<A>() => A extends A2 ? true : false) extends <A>() => A extends A1 ? true : false ? true : false;
|
|
23
|
+
export declare type IsAny<T> = Equals<T, any>;
|
|
7
24
|
export declare type Cast<A, B> = A extends B ? A : B;
|
|
8
25
|
export declare type EventType = string;
|
|
9
26
|
export declare type ActionType = string;
|
|
@@ -45,7 +62,7 @@ export declare type EventData = Record<string, any> & {
|
|
|
45
62
|
* The specified string event types or the specified event objects.
|
|
46
63
|
*/
|
|
47
64
|
export declare type Event<TEvent extends EventObject> = TEvent['type'] | TEvent;
|
|
48
|
-
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends
|
|
65
|
+
export interface ActionMeta<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> extends StateMeta<TContext, TEvent> {
|
|
49
66
|
action: TAction;
|
|
50
67
|
_event: SCXML.Event<TEvent>;
|
|
51
68
|
}
|
|
@@ -54,7 +71,9 @@ export interface AssignMeta<TContext, TEvent extends EventObject> {
|
|
|
54
71
|
action: AssignAction<TContext, TEvent>;
|
|
55
72
|
_event: SCXML.Event<TEvent>;
|
|
56
73
|
}
|
|
57
|
-
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends
|
|
74
|
+
export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
|
75
|
+
bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
|
|
76
|
+
}['bivarianceHack'];
|
|
58
77
|
export interface ChooseCondition<TContext, TEvent extends EventObject> {
|
|
59
78
|
cond?: Condition<TContext, TEvent>;
|
|
60
79
|
actions: Actions<TContext, TEvent>;
|
|
@@ -146,7 +165,9 @@ export interface PayloadSender<TEvent extends EventObject> {
|
|
|
146
165
|
*/
|
|
147
166
|
<K extends TEvent['type']>(eventType: K, payload: NeverIfEmpty<ExtractExtraParameters<TEvent, K>>): void;
|
|
148
167
|
}
|
|
149
|
-
export declare type Receiver<TEvent extends EventObject> = (listener:
|
|
168
|
+
export declare type Receiver<TEvent extends EventObject> = (listener: {
|
|
169
|
+
bivarianceHack(event: TEvent): void;
|
|
170
|
+
}['bivarianceHack']) => void;
|
|
150
171
|
export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (callback: Sender<TSentEvent>, onReceive: Receiver<TEvent>) => (() => void) | Promise<any> | void;
|
|
151
172
|
export interface InvokeMeta {
|
|
152
173
|
data: any;
|
|
@@ -166,7 +187,8 @@ export interface InvokeMeta {
|
|
|
166
187
|
* @param context The current machine `context`
|
|
167
188
|
* @param event The event that invoked the service
|
|
168
189
|
*/
|
|
169
|
-
export declare type InvokeCreator<TContext,
|
|
190
|
+
export declare type InvokeCreator<TContext, TSourceEvent extends EventObject, TFinalContext = any, TInputEvent extends EventObject = any, // keeping a slot for it here, but it's actually not used right now to ensure that the communication contract between actors is satisfied
|
|
191
|
+
TOutputEvent extends EventObject = TSourceEvent> = (context: TContext, event: TSourceEvent, meta: InvokeMeta) => PromiseLike<TFinalContext> | StateMachine<TFinalContext, any, any, any, any, any, any> | Subscribable<EventObject> | InvokeCallback<TInputEvent, TOutputEvent> | Behavior<any>;
|
|
170
192
|
export interface InvokeDefinition<TContext, TEvent extends EventObject> extends ActivityDefinition<TContext, TEvent> {
|
|
171
193
|
/**
|
|
172
194
|
* The source of the machine to be invoked, or the machine itself.
|
|
@@ -455,7 +477,7 @@ export interface FinalStateNodeConfig<TContext, TEvent extends EventObject> exte
|
|
|
455
477
|
data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
|
456
478
|
}
|
|
457
479
|
export declare type SimpleOrStateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TStateSchema, TEvent>;
|
|
458
|
-
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends
|
|
480
|
+
export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
|
|
459
481
|
[K in TAction['type']]?: ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent, TAction extends {
|
|
460
482
|
type: K;
|
|
461
483
|
} ? TAction : never>;
|
|
@@ -463,25 +485,44 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
|
|
|
463
485
|
export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
|
464
486
|
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
|
|
465
487
|
export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
488
|
+
declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
489
|
+
[K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
|
|
490
|
+
};
|
|
491
|
+
declare type MachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
492
|
+
[K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
|
493
|
+
};
|
|
494
|
+
declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
495
|
+
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
496
|
+
};
|
|
497
|
+
declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
498
|
+
[K in keyof TEventsCausingServices]?: StateMachine<any, any, any, any, any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
|
|
499
|
+
};
|
|
500
|
+
declare type MakeKeysRequired<T extends string> = {
|
|
501
|
+
[K in T]: unknown;
|
|
502
|
+
};
|
|
503
|
+
declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
|
|
504
|
+
[K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
|
|
505
|
+
} : {};
|
|
506
|
+
declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
|
|
507
|
+
actions?: MachineOptionsActions<TContext, TResolvedTypesMeta>;
|
|
508
|
+
};
|
|
509
|
+
declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
|
|
510
|
+
delays?: MachineOptionsDelays<TContext, TResolvedTypesMeta>;
|
|
511
|
+
};
|
|
512
|
+
declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
513
|
+
guards?: MachineOptionsGuards<TContext, TResolvedTypesMeta>;
|
|
514
|
+
};
|
|
515
|
+
declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
|
|
516
|
+
services?: MachineOptionsServices<TContext, TResolvedTypesMeta>;
|
|
517
|
+
};
|
|
518
|
+
export declare type InternalMachineOptions<TContext, TEvent extends EventObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & {
|
|
469
519
|
/**
|
|
470
520
|
* @deprecated Use `services` instead.
|
|
471
521
|
*/
|
|
472
|
-
activities
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
* @private
|
|
477
|
-
*/
|
|
478
|
-
_parent?: StateNode<TContext, any, TEvent, any>;
|
|
479
|
-
/**
|
|
480
|
-
* @private
|
|
481
|
-
*/
|
|
482
|
-
_key?: string;
|
|
483
|
-
}
|
|
484
|
-
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = ActionObject<TContext, TEvent>> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
522
|
+
activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
523
|
+
};
|
|
524
|
+
export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction, TServiceMap>>;
|
|
525
|
+
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
485
526
|
/**
|
|
486
527
|
* The initial context (extended state)
|
|
487
528
|
*/
|
|
@@ -490,9 +531,13 @@ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEven
|
|
|
490
531
|
* The machine's own version.
|
|
491
532
|
*/
|
|
492
533
|
version?: string;
|
|
493
|
-
schema?: MachineSchema<TContext, TEvent>;
|
|
534
|
+
schema?: MachineSchema<TContext, TEvent, TServiceMap>;
|
|
535
|
+
tsTypes?: TTypesMeta;
|
|
494
536
|
}
|
|
495
|
-
export
|
|
537
|
+
export declare type ServiceMap = Record<string, {
|
|
538
|
+
data: any;
|
|
539
|
+
}>;
|
|
540
|
+
export interface MachineSchema<TContext, TEvent extends EventObject, TServiceMap extends ServiceMap = ServiceMap> {
|
|
496
541
|
context?: TContext;
|
|
497
542
|
events?: TEvent;
|
|
498
543
|
actions?: {
|
|
@@ -503,10 +548,7 @@ export interface MachineSchema<TContext, TEvent extends EventObject> {
|
|
|
503
548
|
type: string;
|
|
504
549
|
[key: string]: any;
|
|
505
550
|
};
|
|
506
|
-
services?:
|
|
507
|
-
type: string;
|
|
508
|
-
[key: string]: any;
|
|
509
|
-
};
|
|
551
|
+
services?: TServiceMap;
|
|
510
552
|
}
|
|
511
553
|
export interface StandardMachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> extends StateNodeConfig<TContext, TStateSchema, TEvent> {
|
|
512
554
|
}
|
|
@@ -525,13 +567,20 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
525
567
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
526
568
|
value: any;
|
|
527
569
|
context: TContext;
|
|
528
|
-
},
|
|
570
|
+
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
|
|
529
571
|
id: string;
|
|
530
|
-
states: StateNode<TContext, TStateSchema, TEvent>['states'];
|
|
531
|
-
withConfig(options:
|
|
532
|
-
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate>;
|
|
533
|
-
|
|
534
|
-
|
|
572
|
+
states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>['states'];
|
|
573
|
+
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>;
|
|
574
|
+
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, TResolvedTypesMeta>;
|
|
575
|
+
__TContext: TContext;
|
|
576
|
+
__TStateSchema: TStateSchema;
|
|
577
|
+
__TEvent: TEvent;
|
|
578
|
+
__TTypestate: TTypestate;
|
|
579
|
+
__TAction: TAction;
|
|
580
|
+
__TServiceMap: TServiceMap;
|
|
581
|
+
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
582
|
+
}
|
|
583
|
+
export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
|
|
535
584
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
536
585
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
537
586
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -550,13 +599,13 @@ export interface ActivityMap {
|
|
|
550
599
|
}
|
|
551
600
|
export interface StateTransition<TContext, TEvent extends EventObject> {
|
|
552
601
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
553
|
-
configuration: Array<StateNode<TContext, any, TEvent, any>>;
|
|
554
|
-
entrySet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
555
|
-
exitSet: Array<StateNode<TContext, any, TEvent, any>>;
|
|
602
|
+
configuration: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
|
603
|
+
entrySet: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
|
604
|
+
exitSet: Array<StateNode<TContext, any, TEvent, any, any, any>>;
|
|
556
605
|
/**
|
|
557
606
|
* The source state that preceded the transition.
|
|
558
607
|
*/
|
|
559
|
-
source: State<TContext, any, any, any> | undefined;
|
|
608
|
+
source: State<TContext, any, any, any, any> | undefined;
|
|
560
609
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
561
610
|
}
|
|
562
611
|
export interface TransitionData<TContext, TEvent extends EventObject> {
|
|
@@ -777,7 +826,7 @@ export interface SCXMLEventMeta<TEvent extends EventObject> {
|
|
|
777
826
|
_event: SCXML.Event<TEvent>;
|
|
778
827
|
}
|
|
779
828
|
export interface StateMeta<TContext, TEvent extends EventObject> {
|
|
780
|
-
state: State<TContext, TEvent, any, any>;
|
|
829
|
+
state: State<TContext, TEvent, any, any, any>;
|
|
781
830
|
_event: SCXML.Event<TEvent>;
|
|
782
831
|
}
|
|
783
832
|
export interface Typestate<TContext> {
|
|
@@ -796,7 +845,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
796
845
|
_event: SCXML.Event<TEvent>;
|
|
797
846
|
_sessionid: string | null;
|
|
798
847
|
historyValue?: HistoryValue | undefined;
|
|
799
|
-
history?: State<TContext, TEvent>;
|
|
848
|
+
history?: State<TContext, TEvent, any, any, any>;
|
|
800
849
|
actions?: Array<ActionObject<TContext, TEvent>>;
|
|
801
850
|
/**
|
|
802
851
|
* @deprecated
|
|
@@ -809,7 +858,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
809
858
|
children: Record<string, ActorRef<any>>;
|
|
810
859
|
done?: boolean;
|
|
811
860
|
tags?: Set<string>;
|
|
812
|
-
machine?: StateMachine<TContext, any, TEvent, any>;
|
|
861
|
+
machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
|
|
813
862
|
}
|
|
814
863
|
export interface StateSchema<TC = any> {
|
|
815
864
|
meta?: any;
|
|
@@ -822,9 +871,9 @@ export interface InterpreterOptions {
|
|
|
822
871
|
/**
|
|
823
872
|
* Whether state actions should be executed immediately upon transition. Defaults to `true`.
|
|
824
873
|
*/
|
|
825
|
-
execute
|
|
826
|
-
clock
|
|
827
|
-
logger
|
|
874
|
+
execute?: boolean;
|
|
875
|
+
clock?: Clock;
|
|
876
|
+
logger?: (...args: any[]) => void;
|
|
828
877
|
parent?: AnyInterpreter;
|
|
829
878
|
/**
|
|
830
879
|
* If `true`, defers processing of sent events until the service
|
|
@@ -833,7 +882,7 @@ export interface InterpreterOptions {
|
|
|
833
882
|
*
|
|
834
883
|
* Default: `true`
|
|
835
884
|
*/
|
|
836
|
-
deferEvents
|
|
885
|
+
deferEvents?: boolean;
|
|
837
886
|
/**
|
|
838
887
|
* The custom `id` for referencing this service.
|
|
839
888
|
*/
|
|
@@ -843,8 +892,7 @@ export interface InterpreterOptions {
|
|
|
843
892
|
*
|
|
844
893
|
* Default: `false`
|
|
845
894
|
*/
|
|
846
|
-
devTools
|
|
847
|
-
[option: string]: any;
|
|
895
|
+
devTools?: boolean | object;
|
|
848
896
|
}
|
|
849
897
|
export declare namespace SCXML {
|
|
850
898
|
interface Event<TEvent extends EventObject> {
|
|
@@ -941,15 +989,17 @@ export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Su
|
|
|
941
989
|
* @deprecated Use `ActorRef` instead.
|
|
942
990
|
*/
|
|
943
991
|
export declare type SpawnedActorRef<TEvent extends EventObject, TEmitted = any> = ActorRef<TEvent, TEmitted>;
|
|
944
|
-
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext
|
|
992
|
+
export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventObject, TTypestate extends Typestate<TContext>, TResolvedTypesMeta = TypegenDisabled> = ActorRef<TEvent, State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>> & {
|
|
945
993
|
/**
|
|
946
994
|
* @deprecated Use `.getSnapshot()` instead.
|
|
947
995
|
*/
|
|
948
|
-
state: State<TContext, TEvent, any, TTypestate>;
|
|
996
|
+
state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
|
949
997
|
};
|
|
950
|
-
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
951
|
-
export declare type AnyInterpreter = Interpreter<any, any, any, any>;
|
|
952
|
-
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate> : never;
|
|
998
|
+
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, any> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
999
|
+
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
1000
|
+
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
|
|
1001
|
+
export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1002
|
+
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
953
1003
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
954
1004
|
parent?: ActorRef<any, any>;
|
|
955
1005
|
self: ActorRef<TEvent, TEmitted>;
|
package/es/utils.d.ts
CHANGED
|
@@ -67,7 +67,7 @@ export declare function toTransitionConfigArray<TContext, TEvent extends EventOb
|
|
|
67
67
|
}>;
|
|
68
68
|
export declare function normalizeTarget<TContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, any, TEvent>> | undefined): Array<string | StateNode<TContext, any, TEvent>> | undefined;
|
|
69
69
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|
|
70
|
-
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
70
|
+
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
71
71
|
export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
|
|
72
72
|
export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
73
73
|
export declare function createInvokeId(stateNodeId: string, index: number): string;
|
package/es/utils.js
CHANGED
|
@@ -552,7 +552,7 @@ function evaluateGuard(machine, guard, context, _event, state) {
|
|
|
552
552
|
return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);
|
|
553
553
|
}
|
|
554
554
|
|
|
555
|
-
var condFn = guards[guard.type];
|
|
555
|
+
var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];
|
|
556
556
|
|
|
557
557
|
if (!condFn) {
|
|
558
558
|
throw new Error("Guard '".concat(guard.type, "' is not implemented on machine '").concat(machine.id, "'."));
|
package/lib/Actor.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML } from './types';
|
|
2
|
-
import { ActorRef, BaseActorRef } from '.';
|
|
1
|
+
import { EventObject, Subscribable, InvokeDefinition, AnyEventObject, StateMachine, Spawnable, SCXML, ActorRef, BaseActorRef } from './types';
|
|
3
2
|
export interface Actor<TContext = any, TEvent extends EventObject = AnyEventObject> extends Subscribable<TContext> {
|
|
4
3
|
id: string;
|
|
5
4
|
send: (event: TEvent) => any;
|
package/lib/Machine.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Model } from './model.types';
|
|
2
|
-
import { AnyEventObject, DefaultContext, EventObject, MachineConfig,
|
|
2
|
+
import { AnyEventObject, BaseActionObject, DefaultContext, EventObject, MachineConfig, InternalMachineOptions, StateMachine, StateSchema, Typestate, ServiceMap } from './types';
|
|
3
|
+
import { TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
|
|
3
4
|
/**
|
|
4
5
|
* @deprecated Use `createMachine(...)` instead.
|
|
5
6
|
*/
|
|
6
|
-
export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?:
|
|
7
|
-
export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?:
|
|
7
|
+
export declare function Machine<TContext = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, any, TEvent>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TypegenDisabled, TEvent, BaseActionObject, ServiceMap>>, initialContext?: TContext): StateMachine<TContext, any, TEvent, any, BaseActionObject, ServiceMap, ResolveTypegenMeta<TypegenDisabled, TEvent, BaseActionObject, ServiceMap>>;
|
|
8
|
+
export declare function Machine<TContext = DefaultContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = AnyEventObject>(config: MachineConfig<TContext, TStateSchema, TEvent>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TypegenDisabled, TEvent, BaseActionObject, ServiceMap>>, initialContext?: TContext): StateMachine<TContext, TStateSchema, TEvent, any, BaseActionObject, ServiceMap, ResolveTypegenMeta<TypegenDisabled, TEvent, BaseActionObject, ServiceMap>>;
|
|
8
9
|
export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
|
|
9
10
|
value: any;
|
|
10
11
|
context: TContext;
|
|
11
|
-
}>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent>, options?:
|
|
12
|
+
}, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent, BaseActionObject, TServiceMap, TTypesMeta>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject, TServiceMap>>): StateMachine<TContext, any, TEvent, any, BaseActionObject, TServiceMap, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject, TServiceMap>>;
|
|
12
13
|
//# sourceMappingURL=Machine.d.ts.map
|
package/lib/State.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { StateValue, ActivityMap, EventObject, HistoryValue, ActionObject, EventType, StateConfig, SCXML, StateSchema, TransitionDefinition, Typestate, ActorRef, StateMachine, SimpleEventsOf } from './types';
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
|
+
import { TypegenDisabled, TypegenEnabled } from './typegenTypes';
|
|
4
|
+
import { BaseActionObject, Prop } from './types';
|
|
3
5
|
export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
|
|
4
6
|
export declare function isState<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
5
7
|
value: any;
|
|
6
8
|
context: TContext;
|
|
7
|
-
}>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
8
|
-
export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any>): ActionObject<TC, TE>;
|
|
9
|
+
}, TResolvedTypesMeta = TypegenDisabled>(state: object | string): state is State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
10
|
+
export declare function bindActionToState<TC, TE extends EventObject>(action: ActionObject<TC, TE>, state: State<TC, TE, any, any, any>): ActionObject<TC, TE>;
|
|
9
11
|
export declare class State<TContext, TEvent extends EventObject = EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
10
12
|
value: any;
|
|
11
13
|
context: TContext;
|
|
12
|
-
}> {
|
|
14
|
+
}, TResolvedTypesMeta = TypegenDisabled> {
|
|
13
15
|
value: StateValue;
|
|
14
16
|
context: TContext;
|
|
15
17
|
historyValue?: HistoryValue | undefined;
|
|
16
|
-
history?: State<TContext, TEvent, TStateSchema, TTypestate>;
|
|
18
|
+
history?: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
17
19
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
18
20
|
activities: ActivityMap;
|
|
19
21
|
meta: any;
|
|
@@ -37,7 +39,7 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
37
39
|
/**
|
|
38
40
|
* The enabled state nodes representative of the state value.
|
|
39
41
|
*/
|
|
40
|
-
configuration: Array<StateNode<TContext, any, TEvent, any>>;
|
|
42
|
+
configuration: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
41
43
|
/**
|
|
42
44
|
* The next events that will cause a transition from the current state.
|
|
43
45
|
*/
|
|
@@ -51,18 +53,18 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
51
53
|
*/
|
|
52
54
|
children: Record<string, ActorRef<any>>;
|
|
53
55
|
tags: Set<string>;
|
|
54
|
-
machine: StateMachine<TContext, any, TEvent, TTypestate> | undefined;
|
|
56
|
+
machine: StateMachine<TContext, any, TEvent, TTypestate, BaseActionObject, any, TResolvedTypesMeta> | undefined;
|
|
55
57
|
/**
|
|
56
58
|
* Creates a new State instance for the given `stateValue` and `context`.
|
|
57
59
|
* @param stateValue
|
|
58
60
|
* @param context
|
|
59
61
|
*/
|
|
60
|
-
static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any> | StateValue, context?: TC | undefined): State<TC, TE, any, any>;
|
|
62
|
+
static from<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any, any> | StateValue, context?: TC | undefined): State<TC, TE, any, any, any>;
|
|
61
63
|
/**
|
|
62
64
|
* Creates a new State instance for the given `config`.
|
|
63
65
|
* @param config The state config
|
|
64
66
|
*/
|
|
65
|
-
static create<TC, TE extends EventObject = EventObject>(config: StateConfig<TC, TE>): State<TC, TE>;
|
|
67
|
+
static create<TC, TE extends EventObject = EventObject>(config: StateConfig<TC, TE>): State<TC, TE, any, any, any>;
|
|
66
68
|
/**
|
|
67
69
|
* Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).
|
|
68
70
|
* @param stateValue
|
|
@@ -95,17 +97,17 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
95
97
|
* Whether the current state value is a subset of the given parent state value.
|
|
96
98
|
* @param parentStateValue
|
|
97
99
|
*/
|
|
98
|
-
matches<TSV extends TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends any ? {
|
|
100
|
+
matches<TSV extends TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'matchesStates'> : TTypestate['value']>(parentStateValue: TSV): this is State<(TTypestate extends any ? {
|
|
99
101
|
value: TSV;
|
|
100
102
|
context: any;
|
|
101
|
-
} extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate> & {
|
|
103
|
+
} extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> & {
|
|
102
104
|
value: TSV;
|
|
103
105
|
};
|
|
104
106
|
/**
|
|
105
107
|
* Whether the current state configuration has a state node with the specified `tag`.
|
|
106
108
|
* @param tag
|
|
107
109
|
*/
|
|
108
|
-
hasTag(tag: string): boolean;
|
|
110
|
+
hasTag(tag: TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'tags'> : string): boolean;
|
|
109
111
|
/**
|
|
110
112
|
* Determines whether sending the `event` will cause a non-forbidden transition
|
|
111
113
|
* to be selected, even if the transitions have no actions nor
|