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/lib/StateNode.js
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
+
var types = require('./types.js');
|
|
7
|
+
var actionTypes = require('./actionTypes.js');
|
|
6
8
|
var constants = require('./constants.js');
|
|
7
9
|
var environment = require('./environment.js');
|
|
8
10
|
var utils = require('./utils.js');
|
|
9
|
-
var types = require('./types.js');
|
|
10
|
-
var stateUtils = require('./stateUtils.js');
|
|
11
|
-
var actionTypes = require('./actionTypes.js');
|
|
12
11
|
var actions = require('./actions.js');
|
|
13
|
-
var State = require('./State.js');
|
|
14
12
|
var Actor = require('./Actor.js');
|
|
13
|
+
var stateUtils = require('./stateUtils.js');
|
|
14
|
+
var State = require('./State.js');
|
|
15
15
|
var invokeUtils = require('./invokeUtils.js');
|
|
16
16
|
|
|
17
17
|
var NULL_EVENT = '';
|
|
@@ -92,7 +92,7 @@ function () {
|
|
|
92
92
|
this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : constants.STATE_DELIMITER);
|
|
93
93
|
this.id = this.config.id || _tslib.__spreadArray([this.machine.key], _tslib.__read(this.path), false).join(this.delimiter);
|
|
94
94
|
this.version = this.parent ? this.parent.version : this.config.version;
|
|
95
|
-
this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states &&
|
|
95
|
+
this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && Object.keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');
|
|
96
96
|
this.schema = this.parent ? this.machine.schema : (_a = this.config.schema) !== null && _a !== void 0 ? _a : {};
|
|
97
97
|
this.description = this.config.description;
|
|
98
98
|
|
|
@@ -369,7 +369,7 @@ function () {
|
|
|
369
369
|
return _tslib.__assign(_tslib.__assign({}, transition), {
|
|
370
370
|
event: eventType
|
|
371
371
|
});
|
|
372
|
-
}) : utils.flatten(
|
|
372
|
+
}) : utils.flatten(Object.keys(afterConfig).map(function (delay, i) {
|
|
373
373
|
var configTransition = afterConfig[delay];
|
|
374
374
|
var resolvedTransition = utils.isString(configTransition) ? {
|
|
375
375
|
target: configTransition
|
|
@@ -413,7 +413,7 @@ function () {
|
|
|
413
413
|
return initialStateValue !== undefined ? this.getStateNodes((_a = {}, _a[stateValue] = initialStateValue, _a)) : [this, this.states[stateValue]];
|
|
414
414
|
}
|
|
415
415
|
|
|
416
|
-
var subStateKeys =
|
|
416
|
+
var subStateKeys = Object.keys(stateValue);
|
|
417
417
|
var subStateNodes = [this];
|
|
418
418
|
subStateNodes.push.apply(subStateNodes, _tslib.__spreadArray([], _tslib.__read(utils.flatten(subStateKeys.map(function (subStateKey) {
|
|
419
419
|
return _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);
|
|
@@ -463,7 +463,7 @@ function () {
|
|
|
463
463
|
};
|
|
464
464
|
|
|
465
465
|
StateNode.prototype.transitionCompoundNode = function (stateValue, state, _event) {
|
|
466
|
-
var subStateKeys =
|
|
466
|
+
var subStateKeys = Object.keys(stateValue);
|
|
467
467
|
var stateNode = this.getStateNode(subStateKeys[0]);
|
|
468
468
|
|
|
469
469
|
var next = stateNode._transition(stateValue[subStateKeys[0]], state, _event);
|
|
@@ -481,7 +481,7 @@ function () {
|
|
|
481
481
|
var transitionMap = {};
|
|
482
482
|
|
|
483
483
|
try {
|
|
484
|
-
for (var _b = _tslib.__values(
|
|
484
|
+
for (var _b = _tslib.__values(Object.keys(stateValue)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
485
485
|
var subStateKey = _c.value;
|
|
486
486
|
var subStateValue = stateValue[subStateKey];
|
|
487
487
|
|
|
@@ -509,7 +509,7 @@ function () {
|
|
|
509
509
|
}
|
|
510
510
|
}
|
|
511
511
|
|
|
512
|
-
var stateTransitions =
|
|
512
|
+
var stateTransitions = Object.keys(transitionMap).map(function (key) {
|
|
513
513
|
return transitionMap[key];
|
|
514
514
|
});
|
|
515
515
|
var enabledTransitions = utils.flatten(stateTransitions.map(function (st) {
|
|
@@ -526,7 +526,7 @@ function () {
|
|
|
526
526
|
var entryNodes = utils.flatten(stateTransitions.map(function (t) {
|
|
527
527
|
return t.entrySet;
|
|
528
528
|
}));
|
|
529
|
-
var configuration = utils.flatten(
|
|
529
|
+
var configuration = utils.flatten(Object.keys(transitionMap).map(function (key) {
|
|
530
530
|
return transitionMap[key].configuration;
|
|
531
531
|
}));
|
|
532
532
|
return {
|
|
@@ -537,7 +537,7 @@ function () {
|
|
|
537
537
|
})),
|
|
538
538
|
configuration: configuration,
|
|
539
539
|
source: state,
|
|
540
|
-
actions: utils.flatten(
|
|
540
|
+
actions: utils.flatten(Object.keys(transitionMap).map(function (key) {
|
|
541
541
|
return transitionMap[key].actions;
|
|
542
542
|
}))
|
|
543
543
|
};
|
|
@@ -550,7 +550,7 @@ function () {
|
|
|
550
550
|
} // hierarchical node
|
|
551
551
|
|
|
552
552
|
|
|
553
|
-
if (
|
|
553
|
+
if (Object.keys(stateValue).length === 1) {
|
|
554
554
|
return this.transitionCompoundNode(stateValue, state, _event);
|
|
555
555
|
} // orthogonal node
|
|
556
556
|
|
|
@@ -1084,7 +1084,7 @@ function () {
|
|
|
1084
1084
|
return stateValue;
|
|
1085
1085
|
}
|
|
1086
1086
|
|
|
1087
|
-
if (!
|
|
1087
|
+
if (!Object.keys(stateValue).length) {
|
|
1088
1088
|
return this.initialStateValue || {};
|
|
1089
1089
|
}
|
|
1090
1090
|
|
|
@@ -1275,7 +1275,7 @@ function () {
|
|
|
1275
1275
|
};
|
|
1276
1276
|
|
|
1277
1277
|
StateNode.prototype.historyValue = function (relativeStateValue) {
|
|
1278
|
-
if (!
|
|
1278
|
+
if (!Object.keys(this.states).length) {
|
|
1279
1279
|
return undefined;
|
|
1280
1280
|
}
|
|
1281
1281
|
|
|
@@ -1335,7 +1335,7 @@ function () {
|
|
|
1335
1335
|
get: function () {
|
|
1336
1336
|
var _this = this;
|
|
1337
1337
|
|
|
1338
|
-
var childStateIds = utils.flatten(
|
|
1338
|
+
var childStateIds = utils.flatten(Object.keys(this.states).map(function (stateKey) {
|
|
1339
1339
|
return _this.states[stateKey].stateIds;
|
|
1340
1340
|
}));
|
|
1341
1341
|
return [this.id].concat(childStateIds);
|
|
@@ -1359,7 +1359,7 @@ function () {
|
|
|
1359
1359
|
|
|
1360
1360
|
if (states) {
|
|
1361
1361
|
try {
|
|
1362
|
-
for (var _c = _tslib.__values(
|
|
1362
|
+
for (var _c = _tslib.__values(Object.keys(states)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
1363
1363
|
var stateId = _d.value;
|
|
1364
1364
|
var state = states[stateId];
|
|
1365
1365
|
|
|
@@ -1502,7 +1502,7 @@ function () {
|
|
|
1502
1502
|
wildcardConfigs = _d === void 0 ? [] : _d,
|
|
1503
1503
|
strictTransitionConfigs_1 = _tslib.__rest(_b, [typeof _c === "symbol" ? _c : _c + ""]);
|
|
1504
1504
|
|
|
1505
|
-
onConfig = utils.flatten(
|
|
1505
|
+
onConfig = utils.flatten(Object.keys(strictTransitionConfigs_1).map(function (key) {
|
|
1506
1506
|
if (!environment.IS_PRODUCTION && key === NULL_EVENT) {
|
|
1507
1507
|
utils.warn(false, "Empty string transition configs (e.g., `{ on: { '': ... }}`) for transient transitions are deprecated. Specify the transition in the `{ always: ... }` property instead. " + "Please check the `on` configuration for \"#".concat(_this.id, "\"."));
|
|
1508
1508
|
}
|
package/lib/actions.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
-
var environment = require('./environment.js');
|
|
7
|
-
var utils = require('./utils.js');
|
|
8
6
|
var types = require('./types.js');
|
|
9
7
|
var actionTypes = require('./actionTypes.js');
|
|
8
|
+
var environment = require('./environment.js');
|
|
9
|
+
var utils = require('./utils.js');
|
|
10
10
|
|
|
11
11
|
var initEvent = /*#__PURE__*/utils.toSCXMLEvent({
|
|
12
12
|
type: actionTypes.init
|
package/lib/behaviors.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('./environment.js');
|
|
6
|
-
var utils = require('./utils.js');
|
|
7
5
|
require('./types.js');
|
|
8
6
|
require('./actionTypes.js');
|
|
7
|
+
require('./environment.js');
|
|
8
|
+
var utils = require('./utils.js');
|
|
9
9
|
var Actor = require('./Actor.js');
|
|
10
10
|
|
|
11
11
|
function spawnBehavior(behavior, options) {
|
package/lib/index.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { matchesState } from './utils';
|
|
2
|
-
import { mapState } from './mapState';
|
|
3
|
-
import { StateNode } from './StateNode';
|
|
4
|
-
import { State } from './State';
|
|
5
|
-
import { Machine, createMachine } from './Machine';
|
|
6
|
-
import { Actor } from './Actor';
|
|
7
1
|
import * as actions from './actions';
|
|
8
|
-
import {
|
|
2
|
+
import { Actor, toActorRef } from './Actor';
|
|
3
|
+
import { interpret, Interpreter, InterpreterStatus, spawn } from './interpreter';
|
|
4
|
+
import { createMachine, Machine } from './Machine';
|
|
5
|
+
import { mapState } from './mapState';
|
|
9
6
|
import { matchState } from './match';
|
|
10
7
|
import { createSchema, t } from './schema';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export
|
|
8
|
+
import { State } from './State';
|
|
9
|
+
import { StateNode } from './StateNode';
|
|
10
|
+
export { spawnBehavior } from './behaviors';
|
|
11
|
+
export { XStateDevInterface } from './devTools';
|
|
14
12
|
export * from './typegenTypes';
|
|
13
|
+
export * from './types';
|
|
14
|
+
export { matchesState, toEventObject, toObserver, toSCXMLEvent } from './utils';
|
|
15
|
+
export { Actor, toActorRef, Machine, StateNode, State, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema, t };
|
|
16
|
+
declare const assign: <TContext, TEvent extends import("./types").EventObject = import("./types").EventObject>(assignment: import("./types").Assigner<TContext, TEvent> | import("./types").PropertyAssigner<TContext, TEvent>) => import("./types").AssignAction<TContext, TEvent>, send: typeof actions.send, sendParent: typeof actions.sendParent, sendUpdate: typeof actions.sendUpdate, forwardTo: typeof actions.forwardTo, doneInvoke: typeof actions.doneInvoke;
|
|
15
17
|
declare global {
|
|
16
18
|
interface SymbolConstructor {
|
|
17
19
|
readonly observable: symbol;
|
package/lib/index.js
CHANGED
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var utils = require('./utils.js');
|
|
6
|
-
var mapState = require('./mapState.js');
|
|
7
5
|
var types = require('./types.js');
|
|
6
|
+
var utils = require('./utils.js');
|
|
8
7
|
var actions = require('./actions.js');
|
|
8
|
+
var Actor = require('./Actor.js');
|
|
9
9
|
var State = require('./State.js');
|
|
10
|
+
var behaviors = require('./behaviors.js');
|
|
11
|
+
var interpreter = require('./interpreter.js');
|
|
10
12
|
var StateNode = require('./StateNode.js');
|
|
11
13
|
var Machine = require('./Machine.js');
|
|
12
|
-
var
|
|
14
|
+
var mapState = require('./mapState.js');
|
|
13
15
|
var match = require('./match.js');
|
|
14
16
|
var schema = require('./schema.js');
|
|
15
17
|
|
|
@@ -20,8 +22,6 @@ var assign = actions.assign,
|
|
|
20
22
|
forwardTo = actions.forwardTo,
|
|
21
23
|
doneInvoke = actions.doneInvoke;
|
|
22
24
|
|
|
23
|
-
exports.matchesState = utils.matchesState;
|
|
24
|
-
exports.mapState = mapState.mapState;
|
|
25
25
|
Object.defineProperty(exports, 'ActionTypes', {
|
|
26
26
|
enumerable: true,
|
|
27
27
|
get: function () {
|
|
@@ -34,11 +34,14 @@ Object.defineProperty(exports, 'SpecialTargets', {
|
|
|
34
34
|
return types.SpecialTargets;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
+
exports.matchesState = utils.matchesState;
|
|
38
|
+
exports.toEventObject = utils.toEventObject;
|
|
39
|
+
exports.toObserver = utils.toObserver;
|
|
40
|
+
exports.toSCXMLEvent = utils.toSCXMLEvent;
|
|
37
41
|
exports.actions = actions;
|
|
42
|
+
exports.toActorRef = Actor.toActorRef;
|
|
38
43
|
exports.State = State.State;
|
|
39
|
-
exports.
|
|
40
|
-
exports.Machine = Machine.Machine;
|
|
41
|
-
exports.createMachine = Machine.createMachine;
|
|
44
|
+
exports.spawnBehavior = behaviors.spawnBehavior;
|
|
42
45
|
exports.Interpreter = interpreter.Interpreter;
|
|
43
46
|
Object.defineProperty(exports, 'InterpreterStatus', {
|
|
44
47
|
enumerable: true,
|
|
@@ -48,6 +51,10 @@ Object.defineProperty(exports, 'InterpreterStatus', {
|
|
|
48
51
|
});
|
|
49
52
|
exports.interpret = interpreter.interpret;
|
|
50
53
|
exports.spawn = interpreter.spawn;
|
|
54
|
+
exports.StateNode = StateNode.StateNode;
|
|
55
|
+
exports.Machine = Machine.Machine;
|
|
56
|
+
exports.createMachine = Machine.createMachine;
|
|
57
|
+
exports.mapState = mapState.mapState;
|
|
51
58
|
exports.matchState = match.matchState;
|
|
52
59
|
exports.createSchema = schema.createSchema;
|
|
53
60
|
exports.t = schema.t;
|
package/lib/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/lib/interpreter.js
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
-
var environment = require('./environment.js');
|
|
7
|
-
var utils = require('./utils.js');
|
|
8
6
|
var types = require('./types.js');
|
|
9
|
-
var stateUtils = require('./stateUtils.js');
|
|
10
7
|
var actionTypes = require('./actionTypes.js');
|
|
8
|
+
var environment = require('./environment.js');
|
|
9
|
+
var utils = require('./utils.js');
|
|
11
10
|
var actions = require('./actions.js');
|
|
12
|
-
var State = require('./State.js');
|
|
13
11
|
var serviceScope = require('./serviceScope.js');
|
|
14
12
|
var Actor = require('./Actor.js');
|
|
13
|
+
var stateUtils = require('./stateUtils.js');
|
|
14
|
+
var State = require('./State.js');
|
|
15
15
|
var scheduler = require('./scheduler.js');
|
|
16
16
|
var registry = require('./registry.js');
|
|
17
17
|
var devTools = require('./devTools.js');
|
|
@@ -27,6 +27,8 @@ var DEFAULT_SPAWN_OPTIONS = {
|
|
|
27
27
|
InterpreterStatus[InterpreterStatus["Running"] = 1] = "Running";
|
|
28
28
|
InterpreterStatus[InterpreterStatus["Stopped"] = 2] = "Stopped";
|
|
29
29
|
})(exports.InterpreterStatus || (exports.InterpreterStatus = {}));
|
|
30
|
+
/** @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 */
|
|
31
|
+
|
|
30
32
|
|
|
31
33
|
var Interpreter =
|
|
32
34
|
/*#__PURE__*/
|
|
@@ -594,7 +596,7 @@ function () {
|
|
|
594
596
|
|
|
595
597
|
try {
|
|
596
598
|
// Cancel all delayed events
|
|
597
|
-
for (var _p = _tslib.__values(
|
|
599
|
+
for (var _p = _tslib.__values(Object.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
598
600
|
var key = _q.value;
|
|
599
601
|
this.clock.clearTimeout(this.delayedEventsMap[key]);
|
|
600
602
|
}
|
|
@@ -1000,6 +1002,8 @@ function () {
|
|
|
1000
1002
|
};
|
|
1001
1003
|
|
|
1002
1004
|
Interpreter.prototype.spawnPromise = function (promise, id) {
|
|
1005
|
+
var _a;
|
|
1006
|
+
|
|
1003
1007
|
var _this = this;
|
|
1004
1008
|
|
|
1005
1009
|
var canceled = false;
|
|
@@ -1042,8 +1046,7 @@ function () {
|
|
|
1042
1046
|
}
|
|
1043
1047
|
}
|
|
1044
1048
|
});
|
|
1045
|
-
|
|
1046
|
-
var actor = _tslib.__assign({
|
|
1049
|
+
var actor = (_a = {
|
|
1047
1050
|
id: id,
|
|
1048
1051
|
send: function () {
|
|
1049
1052
|
return void 0;
|
|
@@ -1087,13 +1090,16 @@ function () {
|
|
|
1087
1090
|
getSnapshot: function () {
|
|
1088
1091
|
return resolvedData;
|
|
1089
1092
|
}
|
|
1090
|
-
}, utils.
|
|
1091
|
-
|
|
1093
|
+
}, _a[utils.symbolObservable] = function () {
|
|
1094
|
+
return this;
|
|
1095
|
+
}, _a);
|
|
1092
1096
|
this.children.set(id, actor);
|
|
1093
1097
|
return actor;
|
|
1094
1098
|
};
|
|
1095
1099
|
|
|
1096
1100
|
Interpreter.prototype.spawnCallback = function (callback, id) {
|
|
1101
|
+
var _a;
|
|
1102
|
+
|
|
1097
1103
|
var _this = this;
|
|
1098
1104
|
|
|
1099
1105
|
var canceled = false;
|
|
@@ -1132,7 +1138,7 @@ function () {
|
|
|
1132
1138
|
return this.spawnPromise(callbackStop, id);
|
|
1133
1139
|
}
|
|
1134
1140
|
|
|
1135
|
-
var actor =
|
|
1141
|
+
var actor = (_a = {
|
|
1136
1142
|
id: id,
|
|
1137
1143
|
send: function (event) {
|
|
1138
1144
|
return receivers.forEach(function (receiver) {
|
|
@@ -1140,10 +1146,11 @@ function () {
|
|
|
1140
1146
|
});
|
|
1141
1147
|
},
|
|
1142
1148
|
subscribe: function (next) {
|
|
1143
|
-
|
|
1149
|
+
var observer = utils.toObserver(next);
|
|
1150
|
+
listeners.add(observer.next);
|
|
1144
1151
|
return {
|
|
1145
1152
|
unsubscribe: function () {
|
|
1146
|
-
listeners.delete(next);
|
|
1153
|
+
listeners.delete(observer.next);
|
|
1147
1154
|
}
|
|
1148
1155
|
};
|
|
1149
1156
|
},
|
|
@@ -1162,13 +1169,16 @@ function () {
|
|
|
1162
1169
|
getSnapshot: function () {
|
|
1163
1170
|
return emitted;
|
|
1164
1171
|
}
|
|
1165
|
-
}, utils.
|
|
1166
|
-
|
|
1172
|
+
}, _a[utils.symbolObservable] = function () {
|
|
1173
|
+
return this;
|
|
1174
|
+
}, _a);
|
|
1167
1175
|
this.children.set(id, actor);
|
|
1168
1176
|
return actor;
|
|
1169
1177
|
};
|
|
1170
1178
|
|
|
1171
1179
|
Interpreter.prototype.spawnObservable = function (source, id) {
|
|
1180
|
+
var _a;
|
|
1181
|
+
|
|
1172
1182
|
var _this = this;
|
|
1173
1183
|
|
|
1174
1184
|
var emitted;
|
|
@@ -1191,8 +1201,7 @@ function () {
|
|
|
1191
1201
|
origin: id
|
|
1192
1202
|
}));
|
|
1193
1203
|
});
|
|
1194
|
-
|
|
1195
|
-
var actor = _tslib.__assign({
|
|
1204
|
+
var actor = (_a = {
|
|
1196
1205
|
id: id,
|
|
1197
1206
|
send: function () {
|
|
1198
1207
|
return void 0;
|
|
@@ -1211,8 +1220,9 @@ function () {
|
|
|
1211
1220
|
id: id
|
|
1212
1221
|
};
|
|
1213
1222
|
}
|
|
1214
|
-
}, utils.
|
|
1215
|
-
|
|
1223
|
+
}, _a[utils.symbolObservable] = function () {
|
|
1224
|
+
return this;
|
|
1225
|
+
}, _a);
|
|
1216
1226
|
this.children.set(id, actor);
|
|
1217
1227
|
return actor;
|
|
1218
1228
|
};
|
|
@@ -1240,7 +1250,9 @@ function () {
|
|
|
1240
1250
|
};
|
|
1241
1251
|
|
|
1242
1252
|
Interpreter.prototype.spawnEffect = function (id, dispose) {
|
|
1243
|
-
|
|
1253
|
+
var _a;
|
|
1254
|
+
|
|
1255
|
+
this.children.set(id, (_a = {
|
|
1244
1256
|
id: id,
|
|
1245
1257
|
send: function () {
|
|
1246
1258
|
return void 0;
|
|
@@ -1261,7 +1273,9 @@ function () {
|
|
|
1261
1273
|
id: id
|
|
1262
1274
|
};
|
|
1263
1275
|
}
|
|
1264
|
-
}, utils.
|
|
1276
|
+
}, _a[utils.symbolObservable] = function () {
|
|
1277
|
+
return this;
|
|
1278
|
+
}, _a));
|
|
1265
1279
|
};
|
|
1266
1280
|
|
|
1267
1281
|
Interpreter.prototype.attachDev = function () {
|
|
@@ -1299,12 +1313,12 @@ function () {
|
|
|
1299
1313
|
id: this.id
|
|
1300
1314
|
};
|
|
1301
1315
|
};
|
|
1316
|
+
/** @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 */
|
|
1317
|
+
|
|
1302
1318
|
|
|
1303
1319
|
Interpreter.prototype[utils.symbolObservable] = function () {
|
|
1304
1320
|
return this;
|
|
1305
|
-
};
|
|
1306
|
-
// it has to be here to be included in the generated .d.ts
|
|
1307
|
-
|
|
1321
|
+
};
|
|
1308
1322
|
|
|
1309
1323
|
Interpreter.prototype.getSnapshot = function () {
|
|
1310
1324
|
if (this.status === exports.InterpreterStatus.NotStarted) {
|
package/lib/invokeUtils.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _tslib = require('./_virtual/_tslib.js');
|
|
6
|
-
require('./environment.js');
|
|
7
|
-
require('./utils.js');
|
|
8
6
|
require('./types.js');
|
|
9
7
|
var actionTypes = require('./actionTypes.js');
|
|
8
|
+
require('./environment.js');
|
|
9
|
+
require('./utils.js');
|
|
10
10
|
|
|
11
11
|
function toInvokeSource(src) {
|
|
12
12
|
if (typeof src === 'string') {
|
package/lib/mapState.js
CHANGED
|
@@ -11,7 +11,7 @@ function mapState(stateMap, stateId) {
|
|
|
11
11
|
var foundStateId;
|
|
12
12
|
|
|
13
13
|
try {
|
|
14
|
-
for (var _b = _tslib.__values(
|
|
14
|
+
for (var _b = _tslib.__values(Object.keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
15
15
|
var mappedStateId = _c.value;
|
|
16
16
|
|
|
17
17
|
if (utils.matchesState(mappedStateId, stateId) && (!foundStateId || stateId.length > foundStateId.length)) {
|
package/lib/scxml.js
CHANGED
|
@@ -108,7 +108,7 @@ function delayToMs(delay) {
|
|
|
108
108
|
}
|
|
109
109
|
var evaluateExecutableContent = function (context, _ev, meta, body) {
|
|
110
110
|
var datamodel = context
|
|
111
|
-
?
|
|
111
|
+
? Object.keys(context)
|
|
112
112
|
.map(function (key) { return "const ".concat(key, " = context['").concat(key, "'];"); })
|
|
113
113
|
.join('\n')
|
|
114
114
|
: '';
|
package/lib/stateUtils.js
CHANGED
|
@@ -9,7 +9,7 @@ var isLeafNode = function (stateNode) {
|
|
|
9
9
|
return stateNode.type === 'atomic' || stateNode.type === 'final';
|
|
10
10
|
};
|
|
11
11
|
function getChildren(stateNode) {
|
|
12
|
-
return
|
|
12
|
+
return Object.keys(stateNode.states).map(function (key) {
|
|
13
13
|
return stateNode.states[key];
|
|
14
14
|
});
|
|
15
15
|
}
|
package/lib/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/lib/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;
|