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
package/lib/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/lib/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/lib/utils.js
CHANGED
|
@@ -556,7 +556,7 @@ function evaluateGuard(machine, guard, context, _event, state) {
|
|
|
556
556
|
return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);
|
|
557
557
|
}
|
|
558
558
|
|
|
559
|
-
var condFn = guards[guard.type];
|
|
559
|
+
var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];
|
|
560
560
|
|
|
561
561
|
if (!condFn) {
|
|
562
562
|
throw new Error("Guard '".concat(guard.type, "' is not implemented on machine '").concat(machine.id, "'."));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xstate",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.29.0",
|
|
4
4
|
"description": "Finite State Machines and Statecharts for the Modern Web.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -30,18 +30,18 @@
|
|
|
30
30
|
"clean": "rm -rf lib es dist tsconfig.tsbuildinfo",
|
|
31
31
|
"test": "jest",
|
|
32
32
|
"build": "rollup -c",
|
|
33
|
-
"
|
|
33
|
+
"prepare": "npm run build"
|
|
34
34
|
},
|
|
35
35
|
"repository": {
|
|
36
36
|
"type": "git",
|
|
37
|
-
"url": "git+https://github.com/
|
|
37
|
+
"url": "git+https://github.com/statelyai/xstate.git"
|
|
38
38
|
},
|
|
39
39
|
"author": "David Khourshid <davidkpiano@gmail.com>",
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"bugs": {
|
|
42
|
-
"url": "https://github.com/
|
|
42
|
+
"url": "https://github.com/statelyai/xstate/issues"
|
|
43
43
|
},
|
|
44
|
-
"homepage": "https://github.com/
|
|
44
|
+
"homepage": "https://github.com/statelyai/xstate/tree/main/packages/core#readme",
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@babel/cli": "^7.10.5",
|
|
47
47
|
"@babel/core": "^7.10.5",
|