xstate 4.27.0-pr2674-2021926101023 → 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 +210 -94
- package/README.md +5 -5
- package/dist/xstate.interpreter.js +1 -1
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Actor.js +5 -5
- package/es/Machine.d.ts +4 -4
- package/es/State.d.ts +9 -6
- package/es/State.js +10 -3
- package/es/StateNode.d.ts +12 -11
- package/es/StateNode.js +61 -71
- package/es/_virtual/_tslib.js +8 -4
- package/es/actions.d.ts +18 -2
- package/es/actions.js +22 -8
- package/es/devTools.d.ts +4 -6
- package/es/devTools.js +4 -0
- package/es/index.d.ts +9 -3
- package/es/index.js +3 -2
- package/es/interpreter.d.ts +6 -10
- package/es/interpreter.js +40 -27
- package/es/model.types.d.ts +3 -3
- package/es/registry.js +1 -1
- package/es/schema.d.ts +1 -0
- package/es/schema.js +2 -1
- package/es/scxml.d.ts +1 -1
- package/es/stateUtils.d.ts +4 -4
- package/es/stateUtils.js +1 -1
- package/es/typegenTypes.d.ts +66 -37
- package/es/types.d.ts +42 -41
- package/es/utils.d.ts +6 -1
- package/es/utils.js +17 -10
- package/lib/Actor.js +4 -4
- package/lib/Machine.d.ts +4 -4
- package/lib/SimulatedClock.js +9 -5
- package/lib/State.d.ts +9 -6
- package/lib/State.js +10 -3
- package/lib/StateNode.d.ts +12 -11
- package/lib/StateNode.js +59 -69
- package/lib/_virtual/_tslib.js +8 -4
- package/lib/actions.d.ts +18 -2
- package/lib/actions.js +22 -7
- package/lib/devTools.d.ts +4 -6
- package/lib/devTools.js +4 -0
- package/lib/index.d.ts +9 -3
- package/lib/index.js +2 -0
- package/lib/interpreter.d.ts +6 -10
- package/lib/interpreter.js +38 -25
- package/lib/json.js +7 -7
- package/lib/model.js +14 -10
- package/lib/model.types.d.ts +3 -3
- package/lib/patterns.js +2 -2
- package/lib/registry.js +1 -1
- package/lib/schema.d.ts +1 -0
- package/lib/schema.js +2 -0
- package/lib/scxml.d.ts +1 -1
- package/lib/scxml.js +29 -25
- package/lib/stateUtils.d.ts +4 -4
- package/lib/stateUtils.js +1 -1
- package/lib/typegenTypes.d.ts +66 -37
- package/lib/types.d.ts +42 -41
- package/lib/utils.d.ts +6 -1
- package/lib/utils.js +18 -9
- package/package.json +7 -11
- package/dist/xstate.cjs.d.ts +0 -11
- package/dist/xstate.cjs.js +0 -16
package/lib/stateUtils.d.ts
CHANGED
|
@@ -2,15 +2,15 @@ import { EventObject, StateValue } from './types';
|
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
3
|
declare type Configuration<TC, TE extends EventObject> = Iterable<StateNode<TC, any, TE>>;
|
|
4
4
|
declare type AdjList<TC, TE extends EventObject> = Map<StateNode<TC, any, TE>, Array<StateNode<TC, any, TE>>>;
|
|
5
|
-
export declare const isLeafNode: (stateNode: StateNode<any, any, any, any, any>) => boolean;
|
|
5
|
+
export declare const isLeafNode: (stateNode: StateNode<any, any, any, any, any, any>) => boolean;
|
|
6
6
|
export declare function getChildren<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE>): Array<StateNode<TC, any, TE>>;
|
|
7
|
-
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any, any>): Array<StateNode<TC, any, TE, any, any>>;
|
|
8
|
-
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any, any>>):
|
|
7
|
+
export declare function getAllStateNodes<TC, TE extends EventObject>(stateNode: StateNode<TC, any, TE, any, any, any>): Array<StateNode<TC, any, TE, any, any, any>>;
|
|
8
|
+
export declare function getConfiguration<TC, TE extends EventObject>(prevStateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>, stateNodes: Iterable<StateNode<TC, any, TE, any, any, any>>): Set<StateNode<TC, any, TE, any, any, any>>;
|
|
9
9
|
export declare function getAdjList<TC, TE extends EventObject>(configuration: Configuration<TC, TE>): AdjList<TC, TE>;
|
|
10
10
|
export declare function getValue<TC, TE extends EventObject>(rootNode: StateNode<TC, any, TE, any>, configuration: Configuration<TC, TE>): StateValue;
|
|
11
11
|
export declare function has<T>(iterable: Iterable<T>, item: T): boolean;
|
|
12
12
|
export declare function nextEvents<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE>>): Array<TE['type']>;
|
|
13
|
-
export declare function isInFinalState<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE, any, any>>, stateNode: StateNode<TC, any, TE, any, any>): boolean;
|
|
13
|
+
export declare function isInFinalState<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE, any, any, any>>, stateNode: StateNode<TC, any, TE, any, any, any>): boolean;
|
|
14
14
|
export declare function getMeta(configuration?: StateNode[]): Record<string, any>;
|
|
15
15
|
export declare function getTagsFromConfiguration(configuration: StateNode<any, any, any, any>[]): Set<string>;
|
|
16
16
|
export {};
|
package/lib/stateUtils.js
CHANGED
|
@@ -226,7 +226,7 @@ function has(iterable, item) {
|
|
|
226
226
|
function nextEvents(configuration) {
|
|
227
227
|
return _tslib.__spreadArray([], _tslib.__read(new Set(utils.flatten(_tslib.__spreadArray([], _tslib.__read(configuration.map(function (sn) {
|
|
228
228
|
return sn.ownEvents;
|
|
229
|
-
})))))));
|
|
229
|
+
})), false)))), false);
|
|
230
230
|
}
|
|
231
231
|
function isInFinalState(configuration, stateNode) {
|
|
232
232
|
if (stateNode.type === 'compound') {
|
package/lib/typegenTypes.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ServiceMap, Cast } from './types';
|
|
2
2
|
export interface TypegenDisabled {
|
|
3
3
|
'@@xstate/typegen': false;
|
|
4
4
|
}
|
|
@@ -6,19 +6,74 @@ export interface TypegenEnabled {
|
|
|
6
6
|
'@@xstate/typegen': true;
|
|
7
7
|
}
|
|
8
8
|
export interface TypegenMeta extends TypegenEnabled {
|
|
9
|
-
|
|
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
|
+
*/
|
|
10
16
|
tags: string;
|
|
17
|
+
/**
|
|
18
|
+
* Allows you to specify all the missing implementations
|
|
19
|
+
* of the machine
|
|
20
|
+
*/
|
|
11
21
|
missingImplementations: {
|
|
12
22
|
actions: string;
|
|
13
23
|
delays: string;
|
|
14
24
|
guards: string;
|
|
15
25
|
services: string;
|
|
16
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
|
+
*/
|
|
17
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
|
+
*/
|
|
18
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
|
+
*/
|
|
19
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
|
+
*/
|
|
20
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
|
+
*/
|
|
21
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
|
+
*/
|
|
22
77
|
eventsCausingServices: Record<string, string>;
|
|
23
78
|
}
|
|
24
79
|
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
@@ -26,7 +81,7 @@ export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
|
26
81
|
indexedEvents: Record<string, EventObject>;
|
|
27
82
|
}
|
|
28
83
|
export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
29
|
-
export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
84
|
+
export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
30
85
|
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
31
86
|
}>> extends true ? true : false : true;
|
|
32
87
|
export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TResolvedTypesMeta & {
|
|
@@ -37,6 +92,12 @@ export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TReso
|
|
|
37
92
|
services: never;
|
|
38
93
|
};
|
|
39
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>;
|
|
40
101
|
declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
41
102
|
declare type AllowAllEvents = {
|
|
42
103
|
eventsCausingActions: Record<string, string>;
|
|
@@ -44,9 +105,9 @@ declare type AllowAllEvents = {
|
|
|
44
105
|
eventsCausingGuards: Record<string, string>;
|
|
45
106
|
eventsCausingServices: Record<string, string>;
|
|
46
107
|
};
|
|
47
|
-
export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
|
|
108
|
+
export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TServiceMap extends ServiceMap> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
|
|
48
109
|
indexedActions: IndexByType<TAction>;
|
|
49
|
-
indexedEvents: MergeWithInternalEvents<IndexByType<TEvent
|
|
110
|
+
indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateServiceEvents<TServiceMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
|
|
50
111
|
} : MarkAllImplementationsAsProvided<TypegenDisabled> & AllowAllEvents & {
|
|
51
112
|
indexedActions: IndexByType<TAction>;
|
|
52
113
|
indexedEvents: Record<string, TEvent> & {
|
|
@@ -56,37 +117,5 @@ export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEv
|
|
|
56
117
|
};
|
|
57
118
|
invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
|
|
58
119
|
};
|
|
59
|
-
export declare type TypegenMachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
60
|
-
[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>>;
|
|
61
|
-
};
|
|
62
|
-
export declare type TypegenMachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
63
|
-
[K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
|
|
64
|
-
};
|
|
65
|
-
export declare type TypegenMachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
|
|
66
|
-
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
67
|
-
};
|
|
68
|
-
export declare type TypegenMachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
69
|
-
[K in keyof TEventsCausingServices]?: InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
|
|
70
|
-
};
|
|
71
|
-
declare type MakeKeysRequired<T extends string> = {
|
|
72
|
-
[K in T]: unknown;
|
|
73
|
-
};
|
|
74
|
-
declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
|
|
75
|
-
[K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
|
|
76
|
-
} : {};
|
|
77
|
-
declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
|
|
78
|
-
actions?: TypegenMachineOptionsActions<TContext, TResolvedTypesMeta>;
|
|
79
|
-
};
|
|
80
|
-
declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
|
|
81
|
-
delays?: TypegenMachineOptionsDelays<TContext, TResolvedTypesMeta>;
|
|
82
|
-
};
|
|
83
|
-
declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
|
|
84
|
-
guards?: TypegenMachineOptionsGuards<TContext, TResolvedTypesMeta>;
|
|
85
|
-
};
|
|
86
|
-
declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
|
|
87
|
-
services?: TypegenMachineOptionsServices<TContext, TResolvedTypesMeta>;
|
|
88
|
-
};
|
|
89
|
-
export declare type TypegenMachineOptions<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations>;
|
|
90
|
-
export declare type MaybeTypegenMachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled, TRequireMissingImplementations extends boolean = false> = TResolvedTypesMeta extends TypegenEnabled ? TypegenMachineOptions<TContext, TResolvedTypesMeta, TRequireMissingImplementations> : MachineOptions<TContext, TEvent, TAction>;
|
|
91
120
|
export {};
|
|
92
121
|
//# sourceMappingURL=typegenTypes.d.ts.map
|
package/lib/types.d.ts
CHANGED
|
@@ -2,11 +2,10 @@ import { Clock, Interpreter } from './interpreter';
|
|
|
2
2
|
import { Model } from './model.types';
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { StateNode } from './StateNode';
|
|
5
|
-
import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint } from './typegenTypes';
|
|
5
|
+
import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint, AreAllImplementationsAssumedToBeProvided } from './typegenTypes';
|
|
6
6
|
export declare type AnyFunction = (...args: any[]) => any;
|
|
7
7
|
declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
8
8
|
export declare type IsNever<T> = [T] extends [never] ? true : false;
|
|
9
|
-
export declare type Cast<T extends any, TCastType extends any> = T extends TCastType ? T : TCastType;
|
|
10
9
|
export declare type Compute<A extends any> = {
|
|
11
10
|
[K in keyof A]: A[K];
|
|
12
11
|
} & unknown;
|
|
@@ -20,6 +19,9 @@ export declare type IndexByType<T extends {
|
|
|
20
19
|
type: K;
|
|
21
20
|
}>;
|
|
22
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>;
|
|
24
|
+
export declare type Cast<A, B> = A extends B ? A : B;
|
|
23
25
|
export declare type EventType = string;
|
|
24
26
|
export declare type ActionType = string;
|
|
25
27
|
export declare type MetaObject = Record<string, any>;
|
|
@@ -50,7 +52,7 @@ export interface ActionObject<TContext, TEvent extends EventObject> extends Base
|
|
|
50
52
|
/**
|
|
51
53
|
* The implementation for executing the action.
|
|
52
54
|
*/
|
|
53
|
-
exec?: ActionFunction<TContext, TEvent
|
|
55
|
+
exec?: ActionFunction<TContext, TEvent> | undefined;
|
|
54
56
|
}
|
|
55
57
|
export declare type DefaultContext = Record<string, any> | undefined;
|
|
56
58
|
export declare type EventData = Record<string, any> & {
|
|
@@ -99,14 +101,6 @@ export interface StateValueMap {
|
|
|
99
101
|
* - For complex state nodes, this is an object, e.g., `{ success: "someChildState" }`.
|
|
100
102
|
*/
|
|
101
103
|
export declare type StateValue = string | StateValueMap;
|
|
102
|
-
declare type KeysWithStates<TStates extends Record<string, StateSchema> | undefined> = TStates extends object ? {
|
|
103
|
-
[K in keyof TStates]-?: TStates[K] extends {
|
|
104
|
-
states: object;
|
|
105
|
-
} ? K : never;
|
|
106
|
-
}[keyof TStates] : never;
|
|
107
|
-
export declare type ExtractStateValue<TSchema extends Required<Pick<StateSchema<any>, 'states'>>> = keyof TSchema['states'] | (KeysWithStates<TSchema['states']> extends never ? never : {
|
|
108
|
-
[K in KeysWithStates<TSchema['states']>]?: ExtractStateValue<TSchema['states'][K]>;
|
|
109
|
-
});
|
|
110
104
|
export interface HistoryValue {
|
|
111
105
|
states: Record<string, HistoryValue | undefined>;
|
|
112
106
|
current: StateValue | undefined;
|
|
@@ -132,7 +126,7 @@ export interface TransitionConfig<TContext, TEvent extends EventObject> {
|
|
|
132
126
|
actions?: Actions<TContext, TEvent>;
|
|
133
127
|
in?: StateValue;
|
|
134
128
|
internal?: boolean;
|
|
135
|
-
target?: TransitionTarget<TContext, TEvent
|
|
129
|
+
target?: TransitionTarget<TContext, TEvent> | undefined;
|
|
136
130
|
meta?: Record<string, any>;
|
|
137
131
|
description?: string;
|
|
138
132
|
}
|
|
@@ -171,7 +165,9 @@ export interface PayloadSender<TEvent extends EventObject> {
|
|
|
171
165
|
*/
|
|
172
166
|
<K extends TEvent['type']>(eventType: K, payload: NeverIfEmpty<ExtractExtraParameters<TEvent, K>>): void;
|
|
173
167
|
}
|
|
174
|
-
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;
|
|
175
171
|
export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (callback: Sender<TSentEvent>, onReceive: Receiver<TEvent>) => (() => void) | Promise<any> | void;
|
|
176
172
|
export interface InvokeMeta {
|
|
177
173
|
data: any;
|
|
@@ -191,7 +187,8 @@ export interface InvokeMeta {
|
|
|
191
187
|
* @param context The current machine `context`
|
|
192
188
|
* @param event The event that invoked the service
|
|
193
189
|
*/
|
|
194
|
-
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>;
|
|
195
192
|
export interface InvokeDefinition<TContext, TEvent extends EventObject> extends ActivityDefinition<TContext, TEvent> {
|
|
196
193
|
/**
|
|
197
194
|
* The source of the machine to be invoked, or the machine itself.
|
|
@@ -371,7 +368,7 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
371
368
|
*
|
|
372
369
|
* This is equivalent to defining a `[done(id)]` transition on this state node's `on` property.
|
|
373
370
|
*/
|
|
374
|
-
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject
|
|
371
|
+
onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneEventObject>> | undefined;
|
|
375
372
|
/**
|
|
376
373
|
* The mapping (or array) of delays (in milliseconds) to their potential transition(s).
|
|
377
374
|
* The delayed transitions are taken after the specified delay in an interpreter.
|
|
@@ -498,7 +495,7 @@ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGu
|
|
|
498
495
|
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
499
496
|
};
|
|
500
497
|
declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
501
|
-
[K in keyof TEventsCausingServices]?: StateMachine<any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
|
|
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>>;
|
|
502
499
|
};
|
|
503
500
|
declare type MakeKeysRequired<T extends string> = {
|
|
504
501
|
[K in T]: unknown;
|
|
@@ -524,8 +521,8 @@ export declare type InternalMachineOptions<TContext, TEvent extends EventObject,
|
|
|
524
521
|
*/
|
|
525
522
|
activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
526
523
|
};
|
|
527
|
-
export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
|
|
528
|
-
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
|
|
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> {
|
|
529
526
|
/**
|
|
530
527
|
* The initial context (extended state)
|
|
531
528
|
*/
|
|
@@ -534,10 +531,13 @@ export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEven
|
|
|
534
531
|
* The machine's own version.
|
|
535
532
|
*/
|
|
536
533
|
version?: string;
|
|
537
|
-
schema?: MachineSchema<TContext, TEvent>;
|
|
538
|
-
tsTypes?: TTypesMeta
|
|
534
|
+
schema?: MachineSchema<TContext, TEvent, TServiceMap>;
|
|
535
|
+
tsTypes?: TTypesMeta;
|
|
539
536
|
}
|
|
540
|
-
export
|
|
537
|
+
export declare type ServiceMap = Record<string, {
|
|
538
|
+
data: any;
|
|
539
|
+
}>;
|
|
540
|
+
export interface MachineSchema<TContext, TEvent extends EventObject, TServiceMap extends ServiceMap = ServiceMap> {
|
|
541
541
|
context?: TContext;
|
|
542
542
|
events?: TEvent;
|
|
543
543
|
actions?: {
|
|
@@ -548,10 +548,7 @@ export interface MachineSchema<TContext, TEvent extends EventObject> {
|
|
|
548
548
|
type: string;
|
|
549
549
|
[key: string]: any;
|
|
550
550
|
};
|
|
551
|
-
services?:
|
|
552
|
-
type: string;
|
|
553
|
-
[key: string]: any;
|
|
554
|
-
};
|
|
551
|
+
services?: TServiceMap;
|
|
555
552
|
}
|
|
556
553
|
export interface StandardMachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> extends StateNodeConfig<TContext, TStateSchema, TEvent> {
|
|
557
554
|
}
|
|
@@ -570,19 +567,20 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
570
567
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
571
568
|
value: any;
|
|
572
569
|
context: TContext;
|
|
573
|
-
}, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> {
|
|
570
|
+
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
|
|
574
571
|
id: string;
|
|
575
|
-
states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>['states'];
|
|
576
|
-
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, MarkAllImplementationsAsProvided<TResolvedTypesMeta
|
|
577
|
-
withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate,
|
|
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>;
|
|
578
575
|
__TContext: TContext;
|
|
579
576
|
__TStateSchema: TStateSchema;
|
|
580
577
|
__TEvent: TEvent;
|
|
581
578
|
__TTypestate: TTypestate;
|
|
582
579
|
__TAction: TAction;
|
|
580
|
+
__TServiceMap: TServiceMap;
|
|
583
581
|
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
584
582
|
}
|
|
585
|
-
export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
|
|
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;
|
|
586
584
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
587
585
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
588
586
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -601,9 +599,9 @@ export interface ActivityMap {
|
|
|
601
599
|
}
|
|
602
600
|
export interface StateTransition<TContext, TEvent extends EventObject> {
|
|
603
601
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
604
|
-
configuration: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
605
|
-
entrySet: Array<StateNode<TContext, any, TEvent, any, any>>;
|
|
606
|
-
exitSet: Array<StateNode<TContext, any, TEvent, any, 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>>;
|
|
607
605
|
/**
|
|
608
606
|
* The source state that preceded the transition.
|
|
609
607
|
*/
|
|
@@ -860,7 +858,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
860
858
|
children: Record<string, ActorRef<any>>;
|
|
861
859
|
done?: boolean;
|
|
862
860
|
tags?: Set<string>;
|
|
863
|
-
machine?: StateMachine<TContext, any, TEvent, any, any, any>;
|
|
861
|
+
machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
|
|
864
862
|
}
|
|
865
863
|
export interface StateSchema<TC = any> {
|
|
866
864
|
meta?: any;
|
|
@@ -966,18 +964,21 @@ export interface Observer<T> {
|
|
|
966
964
|
export interface Subscription {
|
|
967
965
|
unsubscribe(): void;
|
|
968
966
|
}
|
|
967
|
+
export interface InteropObservable<T> {
|
|
968
|
+
[Symbol.observable]: () => Subscribable<T>;
|
|
969
|
+
}
|
|
969
970
|
export interface Subscribable<T> {
|
|
970
971
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
971
972
|
subscribe(observer: Observer<T>): Subscription;
|
|
972
973
|
}
|
|
973
|
-
export declare type Spawnable = StateMachine<any, any, any> | PromiseLike<any> | InvokeCallback | Subscribable<any> | Behavior<any>;
|
|
974
|
+
export declare type Spawnable = StateMachine<any, any, any> | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
|
|
974
975
|
export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
|
|
975
976
|
type: TEventType;
|
|
976
977
|
} ? TEvent : never;
|
|
977
978
|
export interface BaseActorRef<TEvent extends EventObject> {
|
|
978
979
|
send: (event: TEvent) => void;
|
|
979
980
|
}
|
|
980
|
-
export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Subscribable<TEmitted> {
|
|
981
|
+
export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Subscribable<TEmitted>, InteropObservable<TEmitted> {
|
|
981
982
|
send: Sender<TEvent>;
|
|
982
983
|
id: string;
|
|
983
984
|
getSnapshot: () => TEmitted | undefined;
|
|
@@ -994,11 +995,11 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
|
|
|
994
995
|
*/
|
|
995
996
|
state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
|
996
997
|
};
|
|
997
|
-
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, 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;
|
|
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;
|
|
998
999
|
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
999
|
-
export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
|
|
1000
|
-
export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1001
|
-
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
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;
|
|
1002
1003
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
1003
1004
|
parent?: ActorRef<any, any>;
|
|
1004
1005
|
self: ActorRef<TEvent, TEmitted>;
|
|
@@ -1011,7 +1012,7 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
1011
1012
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
1012
1013
|
}
|
|
1013
1014
|
export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
|
|
1014
|
-
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
|
|
1015
|
+
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1015
1016
|
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
|
|
1016
1017
|
type: K;
|
|
1017
1018
|
}>;
|
package/lib/utils.d.ts
CHANGED
|
@@ -52,7 +52,11 @@ export declare function isFunction(value: any): value is Function;
|
|
|
52
52
|
export declare function isString(value: any): value is string;
|
|
53
53
|
export declare function toGuard<TContext, TEvent extends EventObject>(condition?: Condition<TContext, TEvent>, guardMap?: Record<string, ConditionPredicate<TContext, TEvent>>): Guard<TContext, TEvent> | undefined;
|
|
54
54
|
export declare function isObservable<T>(value: any): value is Subscribable<T>;
|
|
55
|
-
export declare const symbolObservable:
|
|
55
|
+
export declare const symbolObservable: string | typeof Symbol.observable;
|
|
56
|
+
export declare const interopSymbols: {
|
|
57
|
+
[x: string]: () => any;
|
|
58
|
+
[Symbol.observable]: () => any;
|
|
59
|
+
};
|
|
56
60
|
export declare function isMachine(value: any): value is StateMachine<any, any, any>;
|
|
57
61
|
export declare function isActor(value: any): value is Actor;
|
|
58
62
|
export declare const uniqueId: () => string;
|
|
@@ -66,4 +70,5 @@ export declare function reportUnhandledExceptionOnInvocation(originalError: any,
|
|
|
66
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;
|
|
67
71
|
export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
|
|
68
72
|
export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
73
|
+
export declare function createInvokeId(stateNodeId: string, index: number): string;
|
|
69
74
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
CHANGED
|
@@ -6,6 +6,7 @@ var _tslib = require('./_virtual/_tslib.js');
|
|
|
6
6
|
var constants = require('./constants.js');
|
|
7
7
|
var environment = require('./environment.js');
|
|
8
8
|
|
|
9
|
+
var _a;
|
|
9
10
|
function keys(value) {
|
|
10
11
|
return Object.keys(value);
|
|
11
12
|
}
|
|
@@ -40,7 +41,7 @@ function matchesState(parentStateId, childStateId, delimiter) {
|
|
|
40
41
|
}
|
|
41
42
|
function getEventType(event) {
|
|
42
43
|
try {
|
|
43
|
-
return isString(event) || typeof event === 'number' ? ""
|
|
44
|
+
return isString(event) || typeof event === 'number' ? "".concat(event) : event.type;
|
|
44
45
|
} catch (e) {
|
|
45
46
|
throw new Error('Events must be strings or objects with a string event.type property.');
|
|
46
47
|
}
|
|
@@ -53,7 +54,7 @@ function toStatePath(stateId, delimiter) {
|
|
|
53
54
|
|
|
54
55
|
return stateId.toString().split(delimiter);
|
|
55
56
|
} catch (e) {
|
|
56
|
-
throw new Error("'"
|
|
57
|
+
throw new Error("'".concat(stateId, "' is not a valid state path."));
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
function isStateLike(state) {
|
|
@@ -222,7 +223,7 @@ function toStatePaths(stateValue) {
|
|
|
222
223
|
function flatten(array) {
|
|
223
224
|
var _a;
|
|
224
225
|
|
|
225
|
-
return (_a = []).concat.apply(_a, _tslib.__spreadArray([], _tslib.__read(array)));
|
|
226
|
+
return (_a = []).concat.apply(_a, _tslib.__spreadArray([], _tslib.__read(array), false));
|
|
226
227
|
}
|
|
227
228
|
function toArrayStrict(value) {
|
|
228
229
|
if (isArray(value)) {
|
|
@@ -399,7 +400,7 @@ if (!environment.IS_PRODUCTION) {
|
|
|
399
400
|
}
|
|
400
401
|
|
|
401
402
|
if (console !== undefined) {
|
|
402
|
-
var args = ["Warning: "
|
|
403
|
+
var args = ["Warning: ".concat(message)];
|
|
403
404
|
|
|
404
405
|
if (error) {
|
|
405
406
|
args.push(error);
|
|
@@ -464,6 +465,9 @@ function isObservable(value) {
|
|
|
464
465
|
var symbolObservable = /*#__PURE__*/function () {
|
|
465
466
|
return typeof Symbol === 'function' && Symbol.observable || '@@observable';
|
|
466
467
|
}();
|
|
468
|
+
var interopSymbols = (_a = {}, _a[symbolObservable] = function () {
|
|
469
|
+
return this;
|
|
470
|
+
}, _a);
|
|
467
471
|
function isMachine(value) {
|
|
468
472
|
try {
|
|
469
473
|
return '__xstatenode' in value;
|
|
@@ -528,15 +532,15 @@ function normalizeTarget(target) {
|
|
|
528
532
|
}
|
|
529
533
|
function reportUnhandledExceptionOnInvocation(originalError, currentError, id) {
|
|
530
534
|
if (!environment.IS_PRODUCTION) {
|
|
531
|
-
var originalStackTrace = originalError.stack ? " Stacktrace was '"
|
|
535
|
+
var originalStackTrace = originalError.stack ? " Stacktrace was '".concat(originalError.stack, "'") : '';
|
|
532
536
|
|
|
533
537
|
if (originalError === currentError) {
|
|
534
538
|
// tslint:disable-next-line:no-console
|
|
535
|
-
console.error("Missing onError handler for invocation '"
|
|
539
|
+
console.error("Missing onError handler for invocation '".concat(id, "', error was '").concat(originalError, "'.").concat(originalStackTrace));
|
|
536
540
|
} else {
|
|
537
|
-
var stackTrace = currentError.stack ? " Stacktrace was '"
|
|
541
|
+
var stackTrace = currentError.stack ? " Stacktrace was '".concat(currentError.stack, "'") : ''; // tslint:disable-next-line:no-console
|
|
538
542
|
|
|
539
|
-
console.error("Missing onError handler and/or unhandled exception/promise rejection for invocation '"
|
|
543
|
+
console.error("Missing onError handler and/or unhandled exception/promise rejection for invocation '".concat(id, "'. ") + "Original error: '".concat(originalError, "'. ").concat(originalStackTrace, " Current error is '").concat(currentError, "'.").concat(stackTrace));
|
|
540
544
|
}
|
|
541
545
|
}
|
|
542
546
|
}
|
|
@@ -555,7 +559,7 @@ function evaluateGuard(machine, guard, context, _event, state) {
|
|
|
555
559
|
var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];
|
|
556
560
|
|
|
557
561
|
if (!condFn) {
|
|
558
|
-
throw new Error("Guard '"
|
|
562
|
+
throw new Error("Guard '".concat(guard.type, "' is not implemented on machine '").concat(machine.id, "'."));
|
|
559
563
|
}
|
|
560
564
|
|
|
561
565
|
return condFn(context, _event.data, guardMeta);
|
|
@@ -584,10 +588,15 @@ function toObserver(nextHandler, errorHandler, completionHandler) {
|
|
|
584
588
|
complete: completionHandler || noop
|
|
585
589
|
};
|
|
586
590
|
}
|
|
591
|
+
function createInvokeId(stateNodeId, index) {
|
|
592
|
+
return "".concat(stateNodeId, ":invocation[").concat(index, "]");
|
|
593
|
+
}
|
|
587
594
|
|
|
595
|
+
exports.createInvokeId = createInvokeId;
|
|
588
596
|
exports.evaluateGuard = evaluateGuard;
|
|
589
597
|
exports.flatten = flatten;
|
|
590
598
|
exports.getEventType = getEventType;
|
|
599
|
+
exports.interopSymbols = interopSymbols;
|
|
591
600
|
exports.isActor = isActor;
|
|
592
601
|
exports.isArray = isArray;
|
|
593
602
|
exports.isBehavior = isBehavior;
|
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,22 +30,18 @@
|
|
|
30
30
|
"clean": "rm -rf lib es dist tsconfig.tsbuildinfo",
|
|
31
31
|
"test": "jest",
|
|
32
32
|
"build": "rollup -c",
|
|
33
|
-
"
|
|
34
|
-
"version": "npm run build",
|
|
35
|
-
"postversion": "git push --follow-tags",
|
|
36
|
-
"prepublishOnly": "npm run build",
|
|
37
|
-
"publish:next": "npm version prerelease && npm publish --tag next"
|
|
33
|
+
"prepare": "npm run build"
|
|
38
34
|
},
|
|
39
35
|
"repository": {
|
|
40
36
|
"type": "git",
|
|
41
|
-
"url": "git+https://github.com/
|
|
37
|
+
"url": "git+https://github.com/statelyai/xstate.git"
|
|
42
38
|
},
|
|
43
39
|
"author": "David Khourshid <davidkpiano@gmail.com>",
|
|
44
40
|
"license": "MIT",
|
|
45
41
|
"bugs": {
|
|
46
|
-
"url": "https://github.com/
|
|
42
|
+
"url": "https://github.com/statelyai/xstate/issues"
|
|
47
43
|
},
|
|
48
|
-
"homepage": "https://github.com/
|
|
44
|
+
"homepage": "https://github.com/statelyai/xstate/tree/main/packages/core#readme",
|
|
49
45
|
"devDependencies": {
|
|
50
46
|
"@babel/cli": "^7.10.5",
|
|
51
47
|
"@babel/core": "^7.10.5",
|
|
@@ -65,8 +61,8 @@
|
|
|
65
61
|
"rollup-plugin-uglify": "^6.0.2",
|
|
66
62
|
"rxjs": "^7.1.0",
|
|
67
63
|
"ts-jest": "^26.5.6",
|
|
68
|
-
"tslib": "^2.
|
|
69
|
-
"typescript": "^4.
|
|
64
|
+
"tslib": "^2.3.1",
|
|
65
|
+
"typescript": "^4.5.2",
|
|
70
66
|
"xml-js": "^1.6.11"
|
|
71
67
|
}
|
|
72
68
|
}
|
package/dist/xstate.cjs.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// are you seeing an error that a default export doesn't exist but your source file has a default export?
|
|
2
|
-
// you should run `yarn` or `yarn preconstruct dev` if preconstruct dev isn't in your postinstall hook
|
|
3
|
-
|
|
4
|
-
// curious why you need to?
|
|
5
|
-
// this file exists so that you can import from the entrypoint normally
|
|
6
|
-
// except that it points to your source file and you don't need to run build constantly
|
|
7
|
-
// which means we need to re-export all of the modules from your source file
|
|
8
|
-
// and since export * doesn't include default exports, we need to read your source file
|
|
9
|
-
// to check for a default export and re-export it if it exists
|
|
10
|
-
// it's not ideal, but it works pretty well ¯\_(ツ)_/¯
|
|
11
|
-
export * from "../src/index";
|
package/dist/xstate.cjs.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// this file might look strange and you might be wondering what it's for
|
|
3
|
-
// it's lets you import your source files by importing this entrypoint
|
|
4
|
-
// as you would import it if it was built with preconstruct build
|
|
5
|
-
// this file is slightly different to some others though
|
|
6
|
-
// it has a require hook which compiles your code with Babel
|
|
7
|
-
// this means that you don't have to set up @babel/register or anything like that
|
|
8
|
-
// but you can still require this module and it'll be compiled
|
|
9
|
-
|
|
10
|
-
// this bit of code imports the require hook and registers it
|
|
11
|
-
let unregister = require("../../../node_modules/@preconstruct/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "../../..", "..");
|
|
12
|
-
|
|
13
|
-
// this re-exports the source file
|
|
14
|
-
module.exports = require("../src/index.ts");
|
|
15
|
-
|
|
16
|
-
unregister();
|