xstate 4.30.1 → 4.30.4
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 +38 -0
- package/dist/xstate.interpreter.js +1 -1
- package/dist/xstate.js +1 -1
- package/dist/xstate.web.js +2 -2
- package/es/Actor.d.ts +1 -1
- package/es/Actor.js +15 -6
- package/es/Machine.d.ts +1 -2
- package/es/State.d.ts +3 -2
- package/es/State.js +5 -10
- package/es/StateNode.js +19 -19
- package/es/actions.js +3 -3
- package/es/behaviors.js +2 -2
- package/es/index.d.ts +12 -10
- package/es/index.js +5 -3
- package/es/interpreter.d.ts +6 -3
- package/es/interpreter.js +37 -23
- package/es/invokeUtils.js +2 -2
- package/es/mapState.js +2 -2
- package/es/stateUtils.js +2 -2
- package/es/types.d.ts +14 -9
- package/es/utils.d.ts +2 -5
- package/es/utils.js +13 -28
- package/lib/Actor.d.ts +1 -1
- package/lib/Actor.js +14 -5
- package/lib/Machine.d.ts +1 -2
- package/lib/State.d.ts +3 -2
- package/lib/State.js +4 -9
- package/lib/StateNode.js +18 -18
- package/lib/actions.js +2 -2
- package/lib/behaviors.js +2 -2
- package/lib/index.d.ts +12 -10
- package/lib/index.js +15 -8
- package/lib/interpreter.d.ts +6 -3
- package/lib/interpreter.js +37 -23
- package/lib/invokeUtils.js +2 -2
- package/lib/mapState.js +1 -1
- package/lib/scxml.js +1 -1
- package/lib/stateUtils.js +1 -1
- package/lib/types.d.ts +14 -9
- package/lib/utils.d.ts +2 -5
- package/lib/utils.js +11 -27
- package/package.json +1 -1
package/es/interpreter.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray,
|
|
1
|
+
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription, StateConfig, InteropSubscribable } from './types';
|
|
2
2
|
import { State } from './State';
|
|
3
|
+
import { symbolObservable } from './utils';
|
|
3
4
|
import { AreAllImplementationsAssumedToBeProvided, TypegenDisabled } from './typegenTypes';
|
|
4
5
|
export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
5
6
|
value: any;
|
|
@@ -22,6 +23,7 @@ export declare enum InterpreterStatus {
|
|
|
22
23
|
Running = 1,
|
|
23
24
|
Stopped = 2
|
|
24
25
|
}
|
|
26
|
+
/** @ts-ignore [symbolObservable] creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
|
|
25
27
|
export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
|
|
26
28
|
value: any;
|
|
27
29
|
context: TContext;
|
|
@@ -92,8 +94,8 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
92
94
|
execute(state: State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>, actionsConfig?: MachineOptions<TContext, TEvent>['actions']): void;
|
|
93
95
|
private update;
|
|
94
96
|
onTransition(listener: StateListener<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>): this;
|
|
95
|
-
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
96
97
|
subscribe(observer: Observer<State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>>): Subscription;
|
|
98
|
+
subscribe(nextListener?: (state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
97
99
|
/**
|
|
98
100
|
* Adds an event listener that is notified whenever an event is sent to the running interpreter.
|
|
99
101
|
* @param listener The event listener
|
|
@@ -188,7 +190,8 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
|
|
|
188
190
|
toJSON(): {
|
|
189
191
|
id: string;
|
|
190
192
|
};
|
|
191
|
-
|
|
193
|
+
/** @ts-ignore this creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
|
|
194
|
+
[symbolObservable](): InteropSubscribable<State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>>;
|
|
192
195
|
getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
|
|
193
196
|
}
|
|
194
197
|
export declare function spawn<T extends Behavior<any, any>>(entity: T, nameOrOptions?: string | SpawnOptions): ActorRefFrom<T>;
|
package/es/interpreter.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';
|
|
2
|
-
import { IS_PRODUCTION } from './environment.js';
|
|
3
|
-
import { warn, mapContext, isFunction, keys, toSCXMLEvent, toInvokeSource, isMachine, isPromiseLike, isObservable, isBehavior, reportUnhandledExceptionOnInvocation, interopSymbols, symbolObservable, isArray, toEventObject, isString, isActor, toObserver, uniqueId } from './utils.js';
|
|
4
2
|
import { ActionTypes, SpecialTargets } from './types.js';
|
|
5
|
-
import { isInFinalState } from './stateUtils.js';
|
|
6
3
|
import { errorPlatform, log, stop, start, cancel, send, update, error as error$1 } from './actionTypes.js';
|
|
4
|
+
import { IS_PRODUCTION } from './environment.js';
|
|
5
|
+
import { warn, mapContext, isFunction, toSCXMLEvent, toInvokeSource, isMachine, isPromiseLike, isObservable, isBehavior, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, isActor, uniqueId, toObserver } from './utils.js';
|
|
7
6
|
import { doneInvoke, initEvent, getActionFunction, error } from './actions.js';
|
|
8
|
-
import { isStateConfig, State, bindActionToState } from './State.js';
|
|
9
7
|
import { provide, consume } from './serviceScope.js';
|
|
10
8
|
import { isSpawnedActor, createDeferredActor } from './Actor.js';
|
|
9
|
+
import { isInFinalState } from './stateUtils.js';
|
|
10
|
+
import { isStateConfig, State, bindActionToState } from './State.js';
|
|
11
11
|
import { Scheduler } from './scheduler.js';
|
|
12
12
|
import { registry } from './registry.js';
|
|
13
13
|
import { registerService, getGlobal } from './devTools.js';
|
|
@@ -24,6 +24,8 @@ var InterpreterStatus;
|
|
|
24
24
|
InterpreterStatus[InterpreterStatus["Running"] = 1] = "Running";
|
|
25
25
|
InterpreterStatus[InterpreterStatus["Stopped"] = 2] = "Stopped";
|
|
26
26
|
})(InterpreterStatus || (InterpreterStatus = {}));
|
|
27
|
+
/** @ts-ignore [symbolObservable] creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
|
|
28
|
+
|
|
27
29
|
|
|
28
30
|
var Interpreter =
|
|
29
31
|
/*#__PURE__*/
|
|
@@ -591,7 +593,7 @@ function () {
|
|
|
591
593
|
|
|
592
594
|
try {
|
|
593
595
|
// Cancel all delayed events
|
|
594
|
-
for (var _p = __values(keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
596
|
+
for (var _p = __values(Object.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
595
597
|
var key = _q.value;
|
|
596
598
|
this.clock.clearTimeout(this.delayedEventsMap[key]);
|
|
597
599
|
}
|
|
@@ -997,6 +999,8 @@ function () {
|
|
|
997
999
|
};
|
|
998
1000
|
|
|
999
1001
|
Interpreter.prototype.spawnPromise = function (promise, id) {
|
|
1002
|
+
var _a;
|
|
1003
|
+
|
|
1000
1004
|
var _this = this;
|
|
1001
1005
|
|
|
1002
1006
|
var canceled = false;
|
|
@@ -1039,8 +1043,7 @@ function () {
|
|
|
1039
1043
|
}
|
|
1040
1044
|
}
|
|
1041
1045
|
});
|
|
1042
|
-
|
|
1043
|
-
var actor = __assign({
|
|
1046
|
+
var actor = (_a = {
|
|
1044
1047
|
id: id,
|
|
1045
1048
|
send: function () {
|
|
1046
1049
|
return void 0;
|
|
@@ -1084,13 +1087,16 @@ function () {
|
|
|
1084
1087
|
getSnapshot: function () {
|
|
1085
1088
|
return resolvedData;
|
|
1086
1089
|
}
|
|
1087
|
-
},
|
|
1088
|
-
|
|
1090
|
+
}, _a[symbolObservable] = function () {
|
|
1091
|
+
return this;
|
|
1092
|
+
}, _a);
|
|
1089
1093
|
this.children.set(id, actor);
|
|
1090
1094
|
return actor;
|
|
1091
1095
|
};
|
|
1092
1096
|
|
|
1093
1097
|
Interpreter.prototype.spawnCallback = function (callback, id) {
|
|
1098
|
+
var _a;
|
|
1099
|
+
|
|
1094
1100
|
var _this = this;
|
|
1095
1101
|
|
|
1096
1102
|
var canceled = false;
|
|
@@ -1129,7 +1135,7 @@ function () {
|
|
|
1129
1135
|
return this.spawnPromise(callbackStop, id);
|
|
1130
1136
|
}
|
|
1131
1137
|
|
|
1132
|
-
var actor =
|
|
1138
|
+
var actor = (_a = {
|
|
1133
1139
|
id: id,
|
|
1134
1140
|
send: function (event) {
|
|
1135
1141
|
return receivers.forEach(function (receiver) {
|
|
@@ -1137,10 +1143,11 @@ function () {
|
|
|
1137
1143
|
});
|
|
1138
1144
|
},
|
|
1139
1145
|
subscribe: function (next) {
|
|
1140
|
-
|
|
1146
|
+
var observer = toObserver(next);
|
|
1147
|
+
listeners.add(observer.next);
|
|
1141
1148
|
return {
|
|
1142
1149
|
unsubscribe: function () {
|
|
1143
|
-
listeners.delete(next);
|
|
1150
|
+
listeners.delete(observer.next);
|
|
1144
1151
|
}
|
|
1145
1152
|
};
|
|
1146
1153
|
},
|
|
@@ -1159,13 +1166,16 @@ function () {
|
|
|
1159
1166
|
getSnapshot: function () {
|
|
1160
1167
|
return emitted;
|
|
1161
1168
|
}
|
|
1162
|
-
},
|
|
1163
|
-
|
|
1169
|
+
}, _a[symbolObservable] = function () {
|
|
1170
|
+
return this;
|
|
1171
|
+
}, _a);
|
|
1164
1172
|
this.children.set(id, actor);
|
|
1165
1173
|
return actor;
|
|
1166
1174
|
};
|
|
1167
1175
|
|
|
1168
1176
|
Interpreter.prototype.spawnObservable = function (source, id) {
|
|
1177
|
+
var _a;
|
|
1178
|
+
|
|
1169
1179
|
var _this = this;
|
|
1170
1180
|
|
|
1171
1181
|
var emitted;
|
|
@@ -1188,8 +1198,7 @@ function () {
|
|
|
1188
1198
|
origin: id
|
|
1189
1199
|
}));
|
|
1190
1200
|
});
|
|
1191
|
-
|
|
1192
|
-
var actor = __assign({
|
|
1201
|
+
var actor = (_a = {
|
|
1193
1202
|
id: id,
|
|
1194
1203
|
send: function () {
|
|
1195
1204
|
return void 0;
|
|
@@ -1208,8 +1217,9 @@ function () {
|
|
|
1208
1217
|
id: id
|
|
1209
1218
|
};
|
|
1210
1219
|
}
|
|
1211
|
-
},
|
|
1212
|
-
|
|
1220
|
+
}, _a[symbolObservable] = function () {
|
|
1221
|
+
return this;
|
|
1222
|
+
}, _a);
|
|
1213
1223
|
this.children.set(id, actor);
|
|
1214
1224
|
return actor;
|
|
1215
1225
|
};
|
|
@@ -1237,7 +1247,9 @@ function () {
|
|
|
1237
1247
|
};
|
|
1238
1248
|
|
|
1239
1249
|
Interpreter.prototype.spawnEffect = function (id, dispose) {
|
|
1240
|
-
|
|
1250
|
+
var _a;
|
|
1251
|
+
|
|
1252
|
+
this.children.set(id, (_a = {
|
|
1241
1253
|
id: id,
|
|
1242
1254
|
send: function () {
|
|
1243
1255
|
return void 0;
|
|
@@ -1258,7 +1270,9 @@ function () {
|
|
|
1258
1270
|
id: id
|
|
1259
1271
|
};
|
|
1260
1272
|
}
|
|
1261
|
-
},
|
|
1273
|
+
}, _a[symbolObservable] = function () {
|
|
1274
|
+
return this;
|
|
1275
|
+
}, _a));
|
|
1262
1276
|
};
|
|
1263
1277
|
|
|
1264
1278
|
Interpreter.prototype.attachDev = function () {
|
|
@@ -1296,12 +1310,12 @@ function () {
|
|
|
1296
1310
|
id: this.id
|
|
1297
1311
|
};
|
|
1298
1312
|
};
|
|
1313
|
+
/** @ts-ignore this creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
|
|
1314
|
+
|
|
1299
1315
|
|
|
1300
1316
|
Interpreter.prototype[symbolObservable] = function () {
|
|
1301
1317
|
return this;
|
|
1302
|
-
};
|
|
1303
|
-
// it has to be here to be included in the generated .d.ts
|
|
1304
|
-
|
|
1318
|
+
};
|
|
1305
1319
|
|
|
1306
1320
|
Interpreter.prototype.getSnapshot = function () {
|
|
1307
1321
|
if (this.status === InterpreterStatus.NotStarted) {
|
package/es/invokeUtils.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __assign, __rest } from './_virtual/_tslib.js';
|
|
2
|
-
import './environment.js';
|
|
3
|
-
import './utils.js';
|
|
4
2
|
import './types.js';
|
|
5
3
|
import { invoke } from './actionTypes.js';
|
|
4
|
+
import './environment.js';
|
|
5
|
+
import './utils.js';
|
|
6
6
|
|
|
7
7
|
function toInvokeSource(src) {
|
|
8
8
|
if (typeof src === 'string') {
|
package/es/mapState.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __values } from './_virtual/_tslib.js';
|
|
2
|
-
import {
|
|
2
|
+
import { matchesState } from './utils.js';
|
|
3
3
|
|
|
4
4
|
function mapState(stateMap, stateId) {
|
|
5
5
|
var e_1, _a;
|
|
@@ -7,7 +7,7 @@ function mapState(stateMap, stateId) {
|
|
|
7
7
|
var foundStateId;
|
|
8
8
|
|
|
9
9
|
try {
|
|
10
|
-
for (var _b = __values(keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
10
|
+
for (var _b = __values(Object.keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
11
11
|
var mappedStateId = _c.value;
|
|
12
12
|
|
|
13
13
|
if (matchesState(mappedStateId, stateId) && (!foundStateId || stateId.length > foundStateId.length)) {
|
package/es/stateUtils.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __values, __spreadArray, __read } from './_virtual/_tslib.js';
|
|
2
|
-
import { flatten
|
|
2
|
+
import { flatten } from './utils.js';
|
|
3
3
|
|
|
4
4
|
var isLeafNode = function (stateNode) {
|
|
5
5
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
6
6
|
};
|
|
7
7
|
function getChildren(stateNode) {
|
|
8
|
-
return keys(stateNode.states).map(function (key) {
|
|
8
|
+
return Object.keys(stateNode.states).map(function (key) {
|
|
9
9
|
return stateNode.states[key];
|
|
10
10
|
});
|
|
11
11
|
}
|
package/es/types.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export declare type IndexByType<T extends {
|
|
|
22
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
23
|
export declare type IsAny<T> = Equals<T, any>;
|
|
24
24
|
export declare type Cast<A, B> = A extends B ? A : B;
|
|
25
|
+
export declare type NoInfer<T> = [T][T extends any ? 0 : any];
|
|
26
|
+
export declare type LowInfer<T> = T & {};
|
|
25
27
|
export declare type EventType = string;
|
|
26
28
|
export declare type ActionType = string;
|
|
27
29
|
export declare type MetaObject = Record<string, any>;
|
|
@@ -524,11 +526,11 @@ export declare type InternalMachineOptions<TContext, TEvent extends EventObject,
|
|
|
524
526
|
activities?: Record<string, ActivityConfig<TContext, TEvent>>;
|
|
525
527
|
};
|
|
526
528
|
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>>;
|
|
527
|
-
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext
|
|
529
|
+
export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<NoInfer<TContext>, TStateSchema, TEvent, TAction> {
|
|
528
530
|
/**
|
|
529
531
|
* The initial context (extended state)
|
|
530
532
|
*/
|
|
531
|
-
context?: TContext | (() => TContext)
|
|
533
|
+
context?: LowInfer<TContext | (() => TContext)>;
|
|
532
534
|
/**
|
|
533
535
|
* The machine's own version.
|
|
534
536
|
*/
|
|
@@ -570,7 +572,7 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
|
|
|
570
572
|
export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
|
|
571
573
|
value: any;
|
|
572
574
|
context: TContext;
|
|
573
|
-
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled
|
|
575
|
+
}, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, TEvent, TAction, TServiceMap>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
|
|
574
576
|
id: string;
|
|
575
577
|
states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>['states'];
|
|
576
578
|
withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, TServiceMap, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>;
|
|
@@ -976,11 +978,14 @@ export interface Subscription {
|
|
|
976
978
|
unsubscribe(): void;
|
|
977
979
|
}
|
|
978
980
|
export interface InteropObservable<T> {
|
|
979
|
-
[Symbol.observable]: () =>
|
|
981
|
+
[Symbol.observable]: () => InteropSubscribable<T>;
|
|
980
982
|
}
|
|
981
|
-
export interface
|
|
982
|
-
subscribe(
|
|
983
|
+
export interface InteropSubscribable<T> {
|
|
984
|
+
subscribe(observer: Observer<T>): Subscription;
|
|
985
|
+
}
|
|
986
|
+
export interface Subscribable<T> extends InteropSubscribable<T> {
|
|
983
987
|
subscribe(observer: Observer<T>): Subscription;
|
|
988
|
+
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
984
989
|
}
|
|
985
990
|
export declare type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
|
|
986
991
|
export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
|
|
@@ -1006,7 +1011,7 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
|
|
|
1006
1011
|
*/
|
|
1007
1012
|
state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
|
|
1008
1013
|
};
|
|
1009
|
-
export declare type ActorRefFrom<T> = T extends
|
|
1014
|
+
export declare type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : R extends Promise<infer U> ? ActorRef<never, U> : R extends Behavior<infer TEvent, infer TEmitted> ? ActorRef<TEvent, TEmitted> : never : never;
|
|
1010
1015
|
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
1011
1016
|
export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = 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;
|
|
1012
1017
|
export declare type MachineOptionsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
@@ -1023,10 +1028,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
|
|
|
1023
1028
|
start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
|
|
1024
1029
|
}
|
|
1025
1030
|
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;
|
|
1026
|
-
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
|
|
1031
|
+
declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ___, infer ____, infer _____, infer ______> ? TEvent : R extends Model<infer _, infer TEvent, infer __, infer ___> ? TEvent : R extends State<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ___, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1027
1032
|
export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
|
|
1028
1033
|
type: K;
|
|
1029
1034
|
}>;
|
|
1030
|
-
export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___> ? TContext : never : never;
|
|
1035
|
+
export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : never : never;
|
|
1031
1036
|
export {};
|
|
1032
1037
|
//# sourceMappingURL=types.d.ts.map
|
package/es/utils.d.ts
CHANGED
|
@@ -11,9 +11,7 @@ export declare function toStatePath(stateId: string | string[], delimiter: strin
|
|
|
11
11
|
export declare function isStateLike(state: any): state is StateLike<any>;
|
|
12
12
|
export declare function toStateValue(stateValue: StateLike<any> | StateValue | string[], delimiter: string): StateValue;
|
|
13
13
|
export declare function pathToStateValue(statePath: string[]): StateValue;
|
|
14
|
-
export declare function mapValues<
|
|
15
|
-
[key: string]: T;
|
|
16
|
-
}>(collection: O, iteratee: (item: O[keyof O], key: keyof O, collection: O, i: number) => P): {
|
|
14
|
+
export declare function mapValues<P, O extends Record<string, unknown>>(collection: O, iteratee: (item: O[keyof O], key: keyof O, collection: O, i: number) => P): {
|
|
17
15
|
[key in keyof O]: P;
|
|
18
16
|
};
|
|
19
17
|
export declare function mapFilterValues<T, P>(collection: {
|
|
@@ -53,9 +51,8 @@ export declare function isFunction(value: any): value is Function;
|
|
|
53
51
|
export declare function isString(value: any): value is string;
|
|
54
52
|
export declare function toGuard<TContext, TEvent extends EventObject>(condition?: Condition<TContext, TEvent>, guardMap?: Record<string, ConditionPredicate<TContext, TEvent>>): Guard<TContext, TEvent> | undefined;
|
|
55
53
|
export declare function isObservable<T>(value: any): value is Subscribable<T>;
|
|
56
|
-
export declare const symbolObservable:
|
|
54
|
+
export declare const symbolObservable: typeof Symbol.observable;
|
|
57
55
|
export declare const interopSymbols: {
|
|
58
|
-
[x: string]: () => any;
|
|
59
56
|
[Symbol.observable]: () => any;
|
|
60
57
|
};
|
|
61
58
|
export declare function isMachine(value: any): value is AnyStateMachine;
|
package/es/utils.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { __spreadArray, __read, __values
|
|
1
|
+
import { __assign, __spreadArray, __read, __values } from './_virtual/_tslib.js';
|
|
2
2
|
import { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';
|
|
3
3
|
import { IS_PRODUCTION } from './environment.js';
|
|
4
4
|
|
|
5
5
|
var _a;
|
|
6
|
-
function keys(value) {
|
|
7
|
-
return Object.keys(value);
|
|
8
|
-
}
|
|
9
6
|
function matchesState(parentStateId, childStateId, delimiter) {
|
|
10
7
|
if (delimiter === void 0) {
|
|
11
8
|
delimiter = STATE_DELIMITER;
|
|
@@ -27,7 +24,7 @@ function matchesState(parentStateId, childStateId, delimiter) {
|
|
|
27
24
|
return parentStateValue in childStateValue;
|
|
28
25
|
}
|
|
29
26
|
|
|
30
|
-
return keys(parentStateValue).every(function (key) {
|
|
27
|
+
return Object.keys(parentStateValue).every(function (key) {
|
|
31
28
|
if (!(key in childStateValue)) {
|
|
32
29
|
return false;
|
|
33
30
|
}
|
|
@@ -93,7 +90,7 @@ function pathToStateValue(statePath) {
|
|
|
93
90
|
}
|
|
94
91
|
function mapValues(collection, iteratee) {
|
|
95
92
|
var result = {};
|
|
96
|
-
var collectionKeys = keys(collection);
|
|
93
|
+
var collectionKeys = Object.keys(collection);
|
|
97
94
|
|
|
98
95
|
for (var i = 0; i < collectionKeys.length; i++) {
|
|
99
96
|
var key = collectionKeys[i];
|
|
@@ -108,7 +105,7 @@ function mapFilterValues(collection, iteratee, predicate) {
|
|
|
108
105
|
var result = {};
|
|
109
106
|
|
|
110
107
|
try {
|
|
111
|
-
for (var _b = __values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
108
|
+
for (var _b = __values(Object.keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
112
109
|
var key = _c.value;
|
|
113
110
|
var item = collection[key];
|
|
114
111
|
|
|
@@ -203,7 +200,7 @@ function toStatePaths(stateValue) {
|
|
|
203
200
|
return [[stateValue]];
|
|
204
201
|
}
|
|
205
202
|
|
|
206
|
-
var result = flatten(keys(stateValue).map(function (key) {
|
|
203
|
+
var result = flatten(Object.keys(stateValue).map(function (key) {
|
|
207
204
|
var subStateValue = stateValue[key];
|
|
208
205
|
|
|
209
206
|
if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {
|
|
@@ -362,7 +359,7 @@ function updateContext(context, _event, assignActions, state) {
|
|
|
362
359
|
partialUpdate = assignment(acc, _event.data, meta);
|
|
363
360
|
} else {
|
|
364
361
|
try {
|
|
365
|
-
for (var _b = __values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
362
|
+
for (var _b = __values(Object.keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
366
363
|
var key = _c.value;
|
|
367
364
|
var propAssignment = assignment[key];
|
|
368
365
|
partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;
|
|
@@ -416,18 +413,7 @@ function isFunction(value) {
|
|
|
416
413
|
}
|
|
417
414
|
function isString(value) {
|
|
418
415
|
return typeof value === 'string';
|
|
419
|
-
}
|
|
420
|
-
// o: TP,
|
|
421
|
-
// property: string,
|
|
422
|
-
// getter: () => T
|
|
423
|
-
// ): void {
|
|
424
|
-
// Object.defineProperty(o.prototype, property, {
|
|
425
|
-
// get: getter,
|
|
426
|
-
// enumerable: false,
|
|
427
|
-
// configurable: false
|
|
428
|
-
// });
|
|
429
|
-
// }
|
|
430
|
-
|
|
416
|
+
}
|
|
431
417
|
function toGuard(condition, guardMap) {
|
|
432
418
|
if (!condition) {
|
|
433
419
|
return undefined;
|
|
@@ -460,16 +446,15 @@ function isObservable(value) {
|
|
|
460
446
|
}
|
|
461
447
|
var symbolObservable = /*#__PURE__*/function () {
|
|
462
448
|
return typeof Symbol === 'function' && Symbol.observable || '@@observable';
|
|
463
|
-
}();
|
|
449
|
+
}(); // TODO: to be removed in v5, left it out just to minimize the scope of the change and maintain compatibility with older versions of integration paackages
|
|
450
|
+
|
|
464
451
|
var interopSymbols = (_a = {}, _a[symbolObservable] = function () {
|
|
465
452
|
return this;
|
|
453
|
+
}, _a[Symbol.observable] = function () {
|
|
454
|
+
return this;
|
|
466
455
|
}, _a);
|
|
467
456
|
function isMachine(value) {
|
|
468
|
-
|
|
469
|
-
return '__xstatenode' in value;
|
|
470
|
-
} catch (e) {
|
|
471
|
-
return false;
|
|
472
|
-
}
|
|
457
|
+
return !!value && '__xstatenode' in value;
|
|
473
458
|
}
|
|
474
459
|
function isActor(value) {
|
|
475
460
|
return !!value && typeof value.send === 'function';
|
|
@@ -588,4 +573,4 @@ function createInvokeId(stateNodeId, index) {
|
|
|
588
573
|
return "".concat(stateNodeId, ":invocation[").concat(index, "]");
|
|
589
574
|
}
|
|
590
575
|
|
|
591
|
-
export { createInvokeId, evaluateGuard, flatten, getEventType, interopSymbols, isActor, isArray, isBehavior, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString,
|
|
576
|
+
export { createInvokeId, evaluateGuard, flatten, getEventType, interopSymbols, isActor, isArray, isBehavior, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toInvokeSource, toObserver, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };
|
package/lib/Actor.d.ts
CHANGED
|
@@ -21,5 +21,5 @@ export declare function createInvocableActor<TC, TE extends EventObject>(invokeD
|
|
|
21
21
|
export declare function createDeferredActor(entity: Spawnable, id: string, data?: any): ActorRef<any, undefined>;
|
|
22
22
|
export declare function isActor(item: any): item is ActorRef<any>;
|
|
23
23
|
export declare function isSpawnedActor(item: any): item is ActorRef<any>;
|
|
24
|
-
export declare function toActorRef<TEvent extends EventObject, TEmitted = any, TActorRefLike extends BaseActorRef<TEvent> = BaseActorRef<TEvent>>(actorRefLike: TActorRefLike): ActorRef<TEvent, TEmitted
|
|
24
|
+
export declare function toActorRef<TEvent extends EventObject, TEmitted = any, TActorRefLike extends BaseActorRef<TEvent> = BaseActorRef<TEvent>>(actorRefLike: TActorRefLike): ActorRef<TEvent, TEmitted> & Omit<TActorRefLike, keyof ActorRef<any, any>>;
|
|
25
25
|
//# sourceMappingURL=Actor.d.ts.map
|
package/lib/Actor.js
CHANGED
|
@@ -7,7 +7,9 @@ var utils = require('./utils.js');
|
|
|
7
7
|
var serviceScope = require('./serviceScope.js');
|
|
8
8
|
|
|
9
9
|
function createNullActor(id) {
|
|
10
|
-
|
|
10
|
+
var _a;
|
|
11
|
+
|
|
12
|
+
return _a = {
|
|
11
13
|
id: id,
|
|
12
14
|
send: function () {
|
|
13
15
|
return void 0;
|
|
@@ -27,7 +29,9 @@ function createNullActor(id) {
|
|
|
27
29
|
id: id
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
|
-
}, utils.
|
|
32
|
+
}, _a[utils.symbolObservable] = function () {
|
|
33
|
+
return this;
|
|
34
|
+
}, _a;
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
33
37
|
* Creates a deferred actor that is able to be invoked given the provided
|
|
@@ -74,9 +78,12 @@ function isActor(item) {
|
|
|
74
78
|
}
|
|
75
79
|
function isSpawnedActor(item) {
|
|
76
80
|
return isActor(item) && 'id' in item;
|
|
77
|
-
}
|
|
81
|
+
} // TODO: refactor the return type, this could be written in a better way but it's best to avoid unneccessary breaking changes now
|
|
82
|
+
|
|
78
83
|
function toActorRef(actorRefLike) {
|
|
79
|
-
|
|
84
|
+
var _a;
|
|
85
|
+
|
|
86
|
+
return _tslib.__assign((_a = {
|
|
80
87
|
subscribe: function () {
|
|
81
88
|
return {
|
|
82
89
|
unsubscribe: function () {
|
|
@@ -88,7 +95,9 @@ function toActorRef(actorRefLike) {
|
|
|
88
95
|
getSnapshot: function () {
|
|
89
96
|
return undefined;
|
|
90
97
|
}
|
|
91
|
-
}, utils.
|
|
98
|
+
}, _a[utils.symbolObservable] = function () {
|
|
99
|
+
return this;
|
|
100
|
+
}, _a), actorRefLike);
|
|
92
101
|
}
|
|
93
102
|
|
|
94
103
|
exports.createDeferredActor = createDeferredActor;
|
package/lib/Machine.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Model } from './model.types';
|
|
2
1
|
import { AnyEventObject, BaseActionObject, DefaultContext, EventObject, MachineConfig, InternalMachineOptions, StateMachine, StateSchema, Typestate, ServiceMap } from './types';
|
|
3
2
|
import { TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
|
|
4
3
|
/**
|
|
@@ -9,5 +8,5 @@ export declare function Machine<TContext = DefaultContext, TStateSchema extends
|
|
|
9
8
|
export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
|
|
10
9
|
value: any;
|
|
11
10
|
context: TContext;
|
|
12
|
-
}, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config:
|
|
11
|
+
}, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, any, TEvent, BaseActionObject, TServiceMap, TTypesMeta>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject, TServiceMap>>): StateMachine<TContext, any, TEvent, TTypestate, BaseActionObject, TServiceMap, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject, TServiceMap>>;
|
|
13
12
|
//# sourceMappingURL=Machine.d.ts.map
|
package/lib/State.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
71
71
|
* @param stateValue
|
|
72
72
|
* @param context
|
|
73
73
|
*/
|
|
74
|
-
static inert<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE> | StateValue, context: TC): State<TC, TE>;
|
|
74
|
+
static inert<TC, TE extends EventObject = EventObject>(stateValue: State<TC, TE, any, any, any> | StateValue, context: TC): State<TC, TE>;
|
|
75
75
|
/**
|
|
76
76
|
* Creates a new State instance.
|
|
77
77
|
* @param value The state value
|
|
@@ -98,7 +98,8 @@ export declare class State<TContext, TEvent extends EventObject = EventObject, T
|
|
|
98
98
|
* Whether the current state value is a subset of the given parent state value.
|
|
99
99
|
* @param parentStateValue
|
|
100
100
|
*/
|
|
101
|
-
matches<TSV extends TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'matchesStates'> :
|
|
101
|
+
matches<TSV extends TResolvedTypesMeta extends TypegenEnabled ? Prop<TResolvedTypesMeta, 'matchesStates'> : never>(parentStateValue: TSV): boolean;
|
|
102
|
+
matches<TSV extends TResolvedTypesMeta extends TypegenDisabled ? TTypestate['value'] : never>(parentStateValue: TSV): this is State<(TTypestate extends any ? {
|
|
102
103
|
value: TSV;
|
|
103
104
|
context: any;
|
|
104
105
|
} extends TTypestate ? TTypestate : never : never)['context'], TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> & {
|
package/lib/State.js
CHANGED
|
@@ -6,8 +6,8 @@ var _tslib = require('./_virtual/_tslib.js');
|
|
|
6
6
|
var constants = require('./constants.js');
|
|
7
7
|
var environment = require('./environment.js');
|
|
8
8
|
var utils = require('./utils.js');
|
|
9
|
-
var stateUtils = require('./stateUtils.js');
|
|
10
9
|
var actions = require('./actions.js');
|
|
10
|
+
var stateUtils = require('./stateUtils.js');
|
|
11
11
|
|
|
12
12
|
function stateValuesEqual(a, b) {
|
|
13
13
|
if (a === b) {
|
|
@@ -22,8 +22,8 @@ function stateValuesEqual(a, b) {
|
|
|
22
22
|
return a === b;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
var aKeys =
|
|
26
|
-
var bKeys =
|
|
25
|
+
var aKeys = Object.keys(a);
|
|
26
|
+
var bKeys = Object.keys(b);
|
|
27
27
|
return aKeys.length === bKeys.length && aKeys.every(function (key) {
|
|
28
28
|
return stateValuesEqual(a[key], b[key]);
|
|
29
29
|
});
|
|
@@ -210,7 +210,7 @@ function () {
|
|
|
210
210
|
return [stateValue];
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
var valueKeys =
|
|
213
|
+
var valueKeys = Object.keys(stateValue);
|
|
214
214
|
return valueKeys.concat.apply(valueKeys, _tslib.__spreadArray([], _tslib.__read(valueKeys.map(function (key) {
|
|
215
215
|
return _this.toStrings(stateValue[key], delimiter).map(function (s) {
|
|
216
216
|
return key + delimiter + s;
|
|
@@ -230,11 +230,6 @@ function () {
|
|
|
230
230
|
tags: Array.from(tags)
|
|
231
231
|
});
|
|
232
232
|
};
|
|
233
|
-
/**
|
|
234
|
-
* Whether the current state value is a subset of the given parent state value.
|
|
235
|
-
* @param parentStateValue
|
|
236
|
-
*/
|
|
237
|
-
|
|
238
233
|
|
|
239
234
|
State.prototype.matches = function (parentStateValue) {
|
|
240
235
|
return utils.matchesState(parentStateValue, this.value);
|