xstate 4.26.0-pr2674-202191175724 → 4.27.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 +60 -10
- 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 +2 -1
- package/es/Machine.d.ts +4 -5
- package/es/State.d.ts +14 -13
- package/es/State.js +10 -3
- package/es/StateNode.d.ts +15 -15
- package/es/StateNode.js +50 -56
- package/es/_virtual/_tslib.js +8 -4
- package/es/actions.d.ts +21 -4
- package/es/actions.js +7 -7
- package/es/behaviors.d.ts +1 -1
- package/es/devTools.d.ts +2 -3
- package/es/devTools.js +4 -0
- package/es/each.d.ts +1 -1
- package/es/index.d.ts +0 -1
- package/es/interpreter.d.ts +25 -35
- package/es/interpreter.js +23 -17
- package/es/model.d.ts +2 -2
- package/es/model.types.d.ts +9 -8
- package/es/registry.js +1 -1
- package/es/scxml.d.ts +2 -2
- package/es/stateUtils.d.ts +6 -6
- package/es/stateUtils.js +8 -3
- package/es/types.d.ts +55 -69
- package/es/utils.d.ts +1 -1
- package/es/utils.js +10 -10
- package/lib/Actor.d.ts +2 -1
- package/lib/Machine.d.ts +4 -5
- package/lib/SimulatedClock.js +9 -5
- package/lib/State.d.ts +14 -13
- package/lib/State.js +10 -3
- package/lib/StateNode.d.ts +15 -15
- package/lib/StateNode.js +47 -53
- package/lib/_virtual/_tslib.js +8 -4
- package/lib/actions.d.ts +21 -4
- package/lib/actions.js +7 -7
- package/lib/behaviors.d.ts +1 -1
- package/lib/devTools.d.ts +2 -3
- package/lib/devTools.js +4 -0
- package/lib/each.d.ts +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/interpreter.d.ts +25 -35
- package/lib/interpreter.js +23 -17
- package/lib/json.js +7 -7
- package/lib/model.d.ts +2 -2
- package/lib/model.js +14 -10
- package/lib/model.types.d.ts +9 -8
- package/lib/patterns.js +2 -2
- package/lib/registry.js +1 -1
- package/lib/scxml.d.ts +2 -2
- package/lib/scxml.js +29 -25
- package/lib/stateUtils.d.ts +6 -6
- package/lib/stateUtils.js +7 -1
- package/lib/types.d.ts +55 -69
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +10 -10
- package/package.json +4 -8
- package/dist/xstate.cjs.d.ts +0 -11
- package/dist/xstate.cjs.js +0 -16
- package/es/typegenTypes.d.ts +0 -78
- package/lib/typegenTypes.d.ts +0 -78
- package/lib/typegenTypes.js +0 -2
package/es/StateNode.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { __assign,
|
|
1
|
+
import { __assign, __spreadArray, __read, __values, __rest } from './_virtual/_tslib.js';
|
|
2
2
|
import { STATE_DELIMITER } from './constants.js';
|
|
3
3
|
import { IS_PRODUCTION } from './environment.js';
|
|
4
|
-
import { isFunction, mapValues, isArray, flatten, keys, toArray, toStateValue, isString, getEventType, matchesState, path, evaluateGuard, mapContext,
|
|
4
|
+
import { isFunction, mapValues, isArray, flatten, keys, toArray, toStateValue, isString, getEventType, toSCXMLEvent, matchesState, path, evaluateGuard, mapContext, pathToStateValue, isBuiltInEvent, partition, updateHistoryValue, toStatePath, mapFilterValues, warn, toStatePaths, nestedPath, normalizeTarget, toGuard, toTransitionConfigArray, isMachine } from './utils.js';
|
|
5
5
|
import { SpecialTargets } from './types.js';
|
|
6
|
-
import { getAllStateNodes, getConfiguration, isInFinalState, has, getChildren, getValue, isLeafNode } from './stateUtils.js';
|
|
6
|
+
import { getAllStateNodes, getConfiguration, isInFinalState, getTagsFromConfiguration, has, getChildren, getValue, isLeafNode } from './stateUtils.js';
|
|
7
7
|
import { start as start$1, stop as stop$1, invoke, update, nullEvent, raise as raise$1, send as send$1 } from './actionTypes.js';
|
|
8
8
|
import { done, start, raise, stop, toActionObjects, resolveActions, doneInvoke, error, toActionObject, toActivityDefinition, after, send, cancel, initEvent } from './actions.js';
|
|
9
9
|
import { State, stateValuesEqual } from './State.js';
|
|
@@ -33,8 +33,8 @@ var validateArrayifiedTransitions = function (stateNode, event, transitions) {
|
|
|
33
33
|
var hasNonLastUnguardedTarget = transitions.slice(0, -1).some(function (transition) {
|
|
34
34
|
return !('cond' in transition) && !('in' in transition) && (isString(transition.target) || isMachine(transition.target));
|
|
35
35
|
});
|
|
36
|
-
var eventText = event === NULL_EVENT ? 'the transient event' : "event '"
|
|
37
|
-
warn(!hasNonLastUnguardedTarget, "One or more transitions for "
|
|
36
|
+
var eventText = event === NULL_EVENT ? 'the transient event' : "event '".concat(event, "'");
|
|
37
|
+
warn(!hasNonLastUnguardedTarget, "One or more transitions for ".concat(eventText, " on state '").concat(stateNode.id, "' are unreachable. ") + "Make sure that the default transition is the last one defined.");
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
var StateNode =
|
|
@@ -86,14 +86,14 @@ function () {
|
|
|
86
86
|
this.machine = this.parent ? this.parent.machine : this;
|
|
87
87
|
this.path = this.parent ? this.parent.path.concat(this.key) : [];
|
|
88
88
|
this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : STATE_DELIMITER);
|
|
89
|
-
this.id = this.config.id || __spreadArray([this.machine.key], __read(this.path)).join(this.delimiter);
|
|
89
|
+
this.id = this.config.id || __spreadArray([this.machine.key], __read(this.path), false).join(this.delimiter);
|
|
90
90
|
this.version = this.parent ? this.parent.version : this.config.version;
|
|
91
91
|
this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');
|
|
92
92
|
this.schema = this.parent ? this.machine.schema : (_a = this.config.schema) !== null && _a !== void 0 ? _a : {};
|
|
93
93
|
this.description = this.config.description;
|
|
94
94
|
|
|
95
95
|
if (!IS_PRODUCTION) {
|
|
96
|
-
warn(!('parallel' in this.config), "The \"parallel\" property is deprecated and will be removed in version 4.1. "
|
|
96
|
+
warn(!('parallel' in this.config), "The \"parallel\" property is deprecated and will be removed in version 4.1. ".concat(this.config.parallel ? "Replace with `type: 'parallel'`" : "Use `type: '".concat(this.type, "'`"), " in the config for state node '").concat(this.id, "' instead."));
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
this.initial = this.config.initial;
|
|
@@ -166,7 +166,7 @@ function () {
|
|
|
166
166
|
src: invokeConfig.src
|
|
167
167
|
}));
|
|
168
168
|
} else if (isMachine(invokeConfig.src) || isFunction(invokeConfig.src)) {
|
|
169
|
-
var invokeSrc = _this.id
|
|
169
|
+
var invokeSrc = "".concat(_this.id, ":invocation[").concat(i, "]"); // TODO: util function
|
|
170
170
|
|
|
171
171
|
_this.machine.options.services = __assign((_b = {}, _b[invokeSrc] = invokeConfig.src, _b), _this.machine.options.services);
|
|
172
172
|
return toInvokeDefinition(__assign(__assign({
|
|
@@ -269,7 +269,8 @@ function () {
|
|
|
269
269
|
order: this.order || -1,
|
|
270
270
|
data: this.doneData,
|
|
271
271
|
invoke: this.invoke,
|
|
272
|
-
description: this.description
|
|
272
|
+
description: this.description,
|
|
273
|
+
tags: this.tags
|
|
273
274
|
};
|
|
274
275
|
},
|
|
275
276
|
enumerable: false,
|
|
@@ -346,7 +347,7 @@ function () {
|
|
|
346
347
|
}
|
|
347
348
|
|
|
348
349
|
var mutateEntryExit = function (delay, i) {
|
|
349
|
-
var delayRef = isFunction(delay) ? _this.id
|
|
350
|
+
var delayRef = isFunction(delay) ? "".concat(_this.id, ":delay[").concat(i, "]") : delay;
|
|
350
351
|
var eventType = after(delayRef, _this.id);
|
|
351
352
|
|
|
352
353
|
_this.onEntry.push(send(eventType, {
|
|
@@ -408,15 +409,11 @@ function () {
|
|
|
408
409
|
}
|
|
409
410
|
|
|
410
411
|
var subStateKeys = keys(stateValue);
|
|
411
|
-
var subStateNodes =
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
return subStateNodes
|
|
416
|
-
var subStateNode = _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);
|
|
417
|
-
|
|
418
|
-
return allSubStateNodes.concat(subStateNode);
|
|
419
|
-
}, []));
|
|
412
|
+
var subStateNodes = [this];
|
|
413
|
+
subStateNodes.push.apply(subStateNodes, __spreadArray([], __read(flatten(subStateKeys.map(function (subStateKey) {
|
|
414
|
+
return _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);
|
|
415
|
+
}))), false));
|
|
416
|
+
return subStateNodes;
|
|
420
417
|
};
|
|
421
418
|
/**
|
|
422
419
|
* Returns `true` if this state node explicitly handles the given event.
|
|
@@ -443,7 +440,8 @@ function () {
|
|
|
443
440
|
return new State(__assign(__assign({}, state), {
|
|
444
441
|
value: this.resolve(state.value),
|
|
445
442
|
configuration: configuration,
|
|
446
|
-
done: isInFinalState(configuration, this)
|
|
443
|
+
done: isInFinalState(configuration, this),
|
|
444
|
+
tags: getTagsFromConfiguration(configuration)
|
|
447
445
|
}));
|
|
448
446
|
};
|
|
449
447
|
|
|
@@ -554,6 +552,10 @@ function () {
|
|
|
554
552
|
return this.transitionParallelNode(stateValue, state, _event);
|
|
555
553
|
};
|
|
556
554
|
|
|
555
|
+
StateNode.prototype.getTransitionData = function (state, event) {
|
|
556
|
+
return this._transition(state.value, state, toSCXMLEvent(event));
|
|
557
|
+
};
|
|
558
|
+
|
|
557
559
|
StateNode.prototype.next = function (state, _event) {
|
|
558
560
|
var e_3, _a;
|
|
559
561
|
|
|
@@ -578,7 +580,7 @@ function () {
|
|
|
578
580
|
try {
|
|
579
581
|
guardPassed = !cond || evaluateGuard(this.machine, cond, resolvedContext, _event, state);
|
|
580
582
|
} catch (err) {
|
|
581
|
-
throw new Error("Unable to evaluate guard '"
|
|
583
|
+
throw new Error("Unable to evaluate guard '".concat(cond.name || cond.type, "' in transition for event '").concat(eventName, "' in state node '").concat(this.id, "':\n").concat(err.message));
|
|
582
584
|
}
|
|
583
585
|
|
|
584
586
|
if (guardPassed && isInState) {
|
|
@@ -586,7 +588,7 @@ function () {
|
|
|
586
588
|
nextStateNodes = candidate.target;
|
|
587
589
|
}
|
|
588
590
|
|
|
589
|
-
actions.push.apply(actions, __spreadArray([], __read(candidate.actions)));
|
|
591
|
+
actions.push.apply(actions, __spreadArray([], __read(candidate.actions), false));
|
|
590
592
|
selectedTransition = candidate;
|
|
591
593
|
break;
|
|
592
594
|
}
|
|
@@ -722,12 +724,6 @@ function () {
|
|
|
722
724
|
}
|
|
723
725
|
}
|
|
724
726
|
|
|
725
|
-
if (!transition.source) {
|
|
726
|
-
transition.exitSet = []; // Ensure that root StateNode (machine) is entered
|
|
727
|
-
|
|
728
|
-
transition.entrySet.push(this);
|
|
729
|
-
}
|
|
730
|
-
|
|
731
727
|
var doneEvents = flatten(transition.entrySet.map(function (sn) {
|
|
732
728
|
var events = [];
|
|
733
729
|
|
|
@@ -767,11 +763,11 @@ function () {
|
|
|
767
763
|
var _c = __read([flatten(Array.from(entryStates).map(function (stateNode) {
|
|
768
764
|
return __spreadArray(__spreadArray([], __read(stateNode.activities.map(function (activity) {
|
|
769
765
|
return start(activity);
|
|
770
|
-
}))), __read(stateNode.onEntry));
|
|
766
|
+
})), false), __read(stateNode.onEntry), false);
|
|
771
767
|
})).concat(doneEvents.map(raise)), flatten(Array.from(exitStates).map(function (stateNode) {
|
|
772
|
-
return __spreadArray(__spreadArray([], __read(stateNode.onExit)), __read(stateNode.activities.map(function (activity) {
|
|
768
|
+
return __spreadArray(__spreadArray([], __read(stateNode.onExit), false), __read(stateNode.activities.map(function (activity) {
|
|
773
769
|
return stop(activity);
|
|
774
|
-
})));
|
|
770
|
+
})), false);
|
|
775
771
|
}))], 2),
|
|
776
772
|
entryActions = _c[0],
|
|
777
773
|
exitActions = _c[1];
|
|
@@ -806,12 +802,12 @@ function () {
|
|
|
806
802
|
}
|
|
807
803
|
|
|
808
804
|
if (!IS_PRODUCTION && _event.name === WILDCARD) {
|
|
809
|
-
throw new Error("An event cannot have the wildcard type ('"
|
|
805
|
+
throw new Error("An event cannot have the wildcard type ('".concat(WILDCARD, "')"));
|
|
810
806
|
}
|
|
811
807
|
|
|
812
808
|
if (this.strict) {
|
|
813
809
|
if (!this.events.includes(_event.name) && !isBuiltInEvent(_event.name)) {
|
|
814
|
-
throw new Error("Machine '"
|
|
810
|
+
throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(_event.name, "'"));
|
|
815
811
|
}
|
|
816
812
|
}
|
|
817
813
|
|
|
@@ -825,7 +821,7 @@ function () {
|
|
|
825
821
|
};
|
|
826
822
|
var prevConfig = getConfiguration([], this.getStateNodes(currentState.value));
|
|
827
823
|
var resolvedConfig = stateTransition.configuration.length ? getConfiguration(prevConfig, stateTransition.configuration) : prevConfig;
|
|
828
|
-
stateTransition.configuration = __spreadArray([], __read(resolvedConfig));
|
|
824
|
+
stateTransition.configuration = __spreadArray([], __read(resolvedConfig), false);
|
|
829
825
|
return this.resolveTransition(stateTransition, currentState, _event);
|
|
830
826
|
};
|
|
831
827
|
|
|
@@ -839,7 +835,7 @@ function () {
|
|
|
839
835
|
state._event = originalEvent;
|
|
840
836
|
state.event = originalEvent.data;
|
|
841
837
|
|
|
842
|
-
(_a = state.actions).unshift.apply(_a, __spreadArray([], __read(currentActions)));
|
|
838
|
+
(_a = state.actions).unshift.apply(_a, __spreadArray([], __read(currentActions), false));
|
|
843
839
|
|
|
844
840
|
return state;
|
|
845
841
|
};
|
|
@@ -976,9 +972,7 @@ function () {
|
|
|
976
972
|
maybeNextState.changed = changed; // Preserve original history after raised events
|
|
977
973
|
|
|
978
974
|
maybeNextState.history = history;
|
|
979
|
-
maybeNextState.tags =
|
|
980
|
-
return sn.tags;
|
|
981
|
-
})));
|
|
975
|
+
maybeNextState.tags = getTagsFromConfiguration(maybeNextState.configuration);
|
|
982
976
|
return maybeNextState;
|
|
983
977
|
};
|
|
984
978
|
/**
|
|
@@ -992,13 +986,13 @@ function () {
|
|
|
992
986
|
}
|
|
993
987
|
|
|
994
988
|
if (!this.states) {
|
|
995
|
-
throw new Error("Unable to retrieve child state '"
|
|
989
|
+
throw new Error("Unable to retrieve child state '".concat(stateKey, "' from '").concat(this.id, "'; no child states exist."));
|
|
996
990
|
}
|
|
997
991
|
|
|
998
992
|
var result = this.states[stateKey];
|
|
999
993
|
|
|
1000
994
|
if (!result) {
|
|
1001
|
-
throw new Error("Child state '"
|
|
995
|
+
throw new Error("Child state '".concat(stateKey, "' does not exist on '").concat(this.id, "'"));
|
|
1002
996
|
}
|
|
1003
997
|
|
|
1004
998
|
return result;
|
|
@@ -1020,7 +1014,7 @@ function () {
|
|
|
1020
1014
|
var stateNode = this.machine.idMap[resolvedStateId];
|
|
1021
1015
|
|
|
1022
1016
|
if (!stateNode) {
|
|
1023
|
-
throw new Error("Child state node '#"
|
|
1017
|
+
throw new Error("Child state node '#".concat(resolvedStateId, "' does not exist on machine '").concat(this.id, "'"));
|
|
1024
1018
|
}
|
|
1025
1019
|
|
|
1026
1020
|
return stateNode;
|
|
@@ -1107,7 +1101,7 @@ function () {
|
|
|
1107
1101
|
var stateNode = this.machine.idMap[stateIdentifier.slice(STATE_IDENTIFIER.length)];
|
|
1108
1102
|
|
|
1109
1103
|
if (!stateNode) {
|
|
1110
|
-
throw new Error("Unable to find state node '"
|
|
1104
|
+
throw new Error("Unable to find state node '".concat(stateIdentifier, "'"));
|
|
1111
1105
|
}
|
|
1112
1106
|
|
|
1113
1107
|
return stateNode.path;
|
|
@@ -1134,7 +1128,7 @@ function () {
|
|
|
1134
1128
|
});
|
|
1135
1129
|
} else if (this.initial !== undefined) {
|
|
1136
1130
|
if (!this.states[this.initial]) {
|
|
1137
|
-
throw new Error("Initial state '"
|
|
1131
|
+
throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'"));
|
|
1138
1132
|
}
|
|
1139
1133
|
|
|
1140
1134
|
initialStateValue = isLeafNode(this.states[this.initial]) ? this.initial : (_a = {}, _a[this.initial] = this.states[this.initial].initialStateValue, _a);
|
|
@@ -1174,7 +1168,7 @@ function () {
|
|
|
1174
1168
|
var initialStateValue = this.initialStateValue;
|
|
1175
1169
|
|
|
1176
1170
|
if (!initialStateValue) {
|
|
1177
|
-
throw new Error("Cannot retrieve initial state from simple state '"
|
|
1171
|
+
throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'."));
|
|
1178
1172
|
}
|
|
1179
1173
|
|
|
1180
1174
|
return this.getInitialState(initialStateValue);
|
|
@@ -1232,7 +1226,7 @@ function () {
|
|
|
1232
1226
|
|
|
1233
1227
|
if (this.type === 'compound' && !this.initial) {
|
|
1234
1228
|
if (!IS_PRODUCTION) {
|
|
1235
|
-
warn(false, "Compound state node '"
|
|
1229
|
+
warn(false, "Compound state node '".concat(this.id, "' has no initial state."));
|
|
1236
1230
|
}
|
|
1237
1231
|
|
|
1238
1232
|
return [this];
|
|
@@ -1263,7 +1257,7 @@ function () {
|
|
|
1263
1257
|
childStatePath = _a.slice(1);
|
|
1264
1258
|
|
|
1265
1259
|
if (!this.states) {
|
|
1266
|
-
throw new Error("Cannot retrieve subPath '"
|
|
1260
|
+
throw new Error("Cannot retrieve subPath '".concat(stateKey, "' from node with no states"));
|
|
1267
1261
|
}
|
|
1268
1262
|
|
|
1269
1263
|
var childStateNode = this.getStateNode(stateKey);
|
|
@@ -1273,7 +1267,7 @@ function () {
|
|
|
1273
1267
|
}
|
|
1274
1268
|
|
|
1275
1269
|
if (!this.states[stateKey]) {
|
|
1276
|
-
throw new Error("Child state '"
|
|
1270
|
+
throw new Error("Child state '".concat(stateKey, "' does not exist on '").concat(this.id, "'"));
|
|
1277
1271
|
}
|
|
1278
1272
|
|
|
1279
1273
|
return this.states[stateKey].getFromRelativePath(childStatePath);
|
|
@@ -1372,7 +1366,7 @@ function () {
|
|
|
1372
1366
|
try {
|
|
1373
1367
|
for (var _e = (e_8 = void 0, __values(state.events)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
1374
1368
|
var event_1 = _f.value;
|
|
1375
|
-
events.add(""
|
|
1369
|
+
events.add("".concat(event_1));
|
|
1376
1370
|
}
|
|
1377
1371
|
} catch (e_8_1) {
|
|
1378
1372
|
e_8 = {
|
|
@@ -1451,7 +1445,7 @@ function () {
|
|
|
1451
1445
|
|
|
1452
1446
|
return targetStateNode;
|
|
1453
1447
|
} catch (err) {
|
|
1454
|
-
throw new Error("Invalid transition definition for state node '"
|
|
1448
|
+
throw new Error("Invalid transition definition for state node '".concat(_this.id, "':\n").concat(err.message));
|
|
1455
1449
|
}
|
|
1456
1450
|
} else {
|
|
1457
1451
|
return _this.getStateNodeByPath(resolvedTarget);
|
|
@@ -1479,9 +1473,9 @@ function () {
|
|
|
1479
1473
|
toJSON: function () {
|
|
1480
1474
|
return __assign(__assign({}, transition), {
|
|
1481
1475
|
target: transition.target ? transition.target.map(function (t) {
|
|
1482
|
-
return "#"
|
|
1476
|
+
return "#".concat(t.id);
|
|
1483
1477
|
}) : undefined,
|
|
1484
|
-
source: "#"
|
|
1478
|
+
source: "#".concat(_this.id)
|
|
1485
1479
|
});
|
|
1486
1480
|
}
|
|
1487
1481
|
});
|
|
@@ -1509,7 +1503,7 @@ function () {
|
|
|
1509
1503
|
|
|
1510
1504
|
onConfig = flatten(keys(strictTransitionConfigs_1).map(function (key) {
|
|
1511
1505
|
if (!IS_PRODUCTION && key === NULL_EVENT) {
|
|
1512
|
-
warn(false, "Empty string transition configs (e.g., `{ on: { '': ... }}`) for transient transitions are deprecated. Specify the transition in the `{ always: ... }` property instead. " +
|
|
1506
|
+
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, "\"."));
|
|
1513
1507
|
}
|
|
1514
1508
|
|
|
1515
1509
|
var transitionConfigArray = toTransitionConfigArray(key, strictTransitionConfigs_1[key]);
|
|
@@ -1526,24 +1520,24 @@ function () {
|
|
|
1526
1520
|
var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];
|
|
1527
1521
|
|
|
1528
1522
|
if (!IS_PRODUCTION) {
|
|
1529
|
-
warn(!(this.config.onDone && !this.parent), "Root nodes cannot have an \".onDone\" transition. Please check the config of \""
|
|
1523
|
+
warn(!(this.config.onDone && !this.parent), "Root nodes cannot have an \".onDone\" transition. Please check the config of \"".concat(this.id, "\"."));
|
|
1530
1524
|
}
|
|
1531
1525
|
|
|
1532
1526
|
var invokeConfig = flatten(this.invoke.map(function (invokeDef) {
|
|
1533
1527
|
var settleTransitions = [];
|
|
1534
1528
|
|
|
1535
1529
|
if (invokeDef.onDone) {
|
|
1536
|
-
settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone))));
|
|
1530
|
+
settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone)), false));
|
|
1537
1531
|
}
|
|
1538
1532
|
|
|
1539
1533
|
if (invokeDef.onError) {
|
|
1540
|
-
settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError))));
|
|
1534
|
+
settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError)), false));
|
|
1541
1535
|
}
|
|
1542
1536
|
|
|
1543
1537
|
return settleTransitions;
|
|
1544
1538
|
}));
|
|
1545
1539
|
var delayedTransitions = this.after;
|
|
1546
|
-
var formattedTransitions = flatten(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(doneConfig)), __read(invokeConfig)), __read(onConfig)), __read(eventlessConfig)).map(function (transitionConfig) {
|
|
1540
|
+
var formattedTransitions = flatten(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(doneConfig), false), __read(invokeConfig), false), __read(onConfig), false), __read(eventlessConfig), false).map(function (transitionConfig) {
|
|
1547
1541
|
return toArray(transitionConfig).map(function (transition) {
|
|
1548
1542
|
return _this.formatTransition(transition);
|
|
1549
1543
|
});
|
package/es/_virtual/_tslib.js
CHANGED
|
@@ -65,10 +65,14 @@ function __read(o, n) {
|
|
|
65
65
|
return ar;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
function __spreadArray(to, from) {
|
|
69
|
-
for (var i = 0,
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
function __spreadArray(to, from, pack) {
|
|
69
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
70
|
+
if (ar || !(i in from)) {
|
|
71
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
72
|
+
ar[i] = from[i];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
export { __assign, __read, __rest, __spreadArray, __values };
|
package/es/actions.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta,
|
|
1
|
+
import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseCondition, ChooseAction, AnyEventObject, Expr, Cast } from './types';
|
|
2
2
|
import * as actionTypes from './actionTypes';
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { StateNode } from './StateNode';
|
|
5
|
+
import { ActorRef, EventFrom, StopAction, StopActionObject } from '.';
|
|
5
6
|
export { actionTypes };
|
|
6
7
|
export declare const initEvent: SCXML.Event<{
|
|
7
8
|
type: ActionTypes;
|
|
8
9
|
}>;
|
|
9
10
|
export declare function getActionFunction<TContext, TEvent extends EventObject>(actionType: ActionType, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent> | ActionFunction<TContext, TEvent> | undefined;
|
|
10
11
|
export declare function toActionObject<TContext, TEvent extends EventObject>(action: Action<TContext, TEvent>, actionFunctionMap?: ActionFunctionMap<TContext, TEvent>): ActionObject<TContext, TEvent>;
|
|
11
|
-
export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined, actionFunctionMap?: ActionFunctionMap<TContext, TEvent,
|
|
12
|
+
export declare const toActionObjects: <TContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined, actionFunctionMap?: ActionFunctionMap<TContext, TEvent, ActionObject<TContext, TEvent>> | undefined) => ActionObject<TContext, TEvent>[];
|
|
12
13
|
export declare function toActivityDefinition<TContext, TEvent extends EventObject>(action: string | ActivityDefinition<TContext, TEvent>): ActivityDefinition<TContext, TEvent>;
|
|
13
14
|
/**
|
|
14
15
|
* Raises an event. This places the event in the internal event queue, so that
|
|
@@ -37,6 +38,22 @@ export declare function resolveSend<TContext, TEvent extends EventObject, TSentE
|
|
|
37
38
|
* @param options Options to pass into the send event.
|
|
38
39
|
*/
|
|
39
40
|
export declare function sendParent<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: Event<TSentEvent> | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, TSentEvent>;
|
|
41
|
+
declare type InferEvent<E extends EventObject> = {
|
|
42
|
+
[T in E['type']]: {
|
|
43
|
+
type: T;
|
|
44
|
+
} & Extract<E, {
|
|
45
|
+
type: T;
|
|
46
|
+
}>;
|
|
47
|
+
}[E['type']];
|
|
48
|
+
/**
|
|
49
|
+
* Sends an event to an actor.
|
|
50
|
+
*
|
|
51
|
+
* @param actor The `ActorRef` to send the event to.
|
|
52
|
+
* @param event The event to send, or an expression that evaluates to the event to send
|
|
53
|
+
* @param options Send action options
|
|
54
|
+
* @returns An XState send action object
|
|
55
|
+
*/
|
|
56
|
+
export declare function sendTo<TContext, TEvent extends EventObject, TActor extends ActorRef<EventObject>>(actor: (ctx: TContext) => TActor, event: EventFrom<TActor> | SendExpr<TContext, TEvent, InferEvent<Cast<EventFrom<TActor>, EventObject>>>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, any>;
|
|
40
57
|
/**
|
|
41
58
|
* Sends an update event to this machine's parent.
|
|
42
59
|
*/
|
|
@@ -133,6 +150,6 @@ export declare function forwardTo<TContext, TEvent extends EventObject>(target:
|
|
|
133
150
|
* @param options Options to pass into the send action creator.
|
|
134
151
|
*/
|
|
135
152
|
export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
|
|
136
|
-
export declare function choose<TContext, TEvent extends EventObject>(conds: Array<
|
|
137
|
-
export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any
|
|
153
|
+
export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseCondition<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
|
|
154
|
+
export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>, preserveActionOrder?: boolean): [Array<ActionObject<TContext, TEvent>>, TContext];
|
|
138
155
|
//# sourceMappingURL=actions.d.ts.map
|
package/es/actions.js
CHANGED
|
@@ -283,8 +283,8 @@ var assign = function (assignment) {
|
|
|
283
283
|
*/
|
|
284
284
|
|
|
285
285
|
function after(delayRef, id) {
|
|
286
|
-
var idSuffix = id ? "#"
|
|
287
|
-
return ActionTypes.After
|
|
286
|
+
var idSuffix = id ? "#".concat(id) : '';
|
|
287
|
+
return "".concat(ActionTypes.After, "(").concat(delayRef, ")").concat(idSuffix);
|
|
288
288
|
}
|
|
289
289
|
/**
|
|
290
290
|
* Returns an event that represents that a final state node
|
|
@@ -295,7 +295,7 @@ function after(delayRef, id) {
|
|
|
295
295
|
*/
|
|
296
296
|
|
|
297
297
|
function done(id, data) {
|
|
298
|
-
var type = ActionTypes.DoneState
|
|
298
|
+
var type = "".concat(ActionTypes.DoneState, ".").concat(id);
|
|
299
299
|
var eventObject = {
|
|
300
300
|
type: type,
|
|
301
301
|
data: data
|
|
@@ -318,7 +318,7 @@ function done(id, data) {
|
|
|
318
318
|
*/
|
|
319
319
|
|
|
320
320
|
function doneInvoke(id, data) {
|
|
321
|
-
var type = ActionTypes.DoneInvoke
|
|
321
|
+
var type = "".concat(ActionTypes.DoneInvoke, ".").concat(id);
|
|
322
322
|
var eventObject = {
|
|
323
323
|
type: type,
|
|
324
324
|
data: data
|
|
@@ -331,7 +331,7 @@ function doneInvoke(id, data) {
|
|
|
331
331
|
return eventObject;
|
|
332
332
|
}
|
|
333
333
|
function error(id, data) {
|
|
334
|
-
var type = ActionTypes.ErrorPlatform
|
|
334
|
+
var type = "".concat(ActionTypes.ErrorPlatform, ".").concat(id);
|
|
335
335
|
var eventObject = {
|
|
336
336
|
type: type,
|
|
337
337
|
data: data
|
|
@@ -413,7 +413,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions,
|
|
|
413
413
|
if (!IS_PRODUCTION) {
|
|
414
414
|
// warn after resolving as we can create better contextual message here
|
|
415
415
|
warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length
|
|
416
|
-
"No delay reference for delay expression '"
|
|
416
|
+
"No delay reference for delay expression '".concat(actionObject.delay, "' was found on machine '").concat(machine.id, "'"));
|
|
417
417
|
}
|
|
418
418
|
|
|
419
419
|
return sendAction;
|
|
@@ -485,7 +485,7 @@ function resolveActions(machine, currentState, currentContext, _event, actions,
|
|
|
485
485
|
args[_i - 1] = arguments[_i];
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
exec_1.apply(void 0, __spreadArray([preservedContexts[contextIndex_1]], __read(args)));
|
|
488
|
+
exec_1.apply(void 0, __spreadArray([preservedContexts[contextIndex_1]], __read(args), false));
|
|
489
489
|
}
|
|
490
490
|
});
|
|
491
491
|
}
|
package/es/behaviors.d.ts
CHANGED
package/es/devTools.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { Interpreter } from '.';
|
|
2
2
|
import { AnyInterpreter } from './types';
|
|
3
|
-
import { Interpreter } from './interpreter';
|
|
4
3
|
declare type ServiceListener = (service: AnyInterpreter) => void;
|
|
5
4
|
export interface XStateDevInterface {
|
|
6
5
|
register: (service: Interpreter<any>) => void;
|
|
@@ -10,7 +9,7 @@ export interface XStateDevInterface {
|
|
|
10
9
|
};
|
|
11
10
|
services: Set<Interpreter<any>>;
|
|
12
11
|
}
|
|
13
|
-
export declare function getGlobal():
|
|
12
|
+
export declare function getGlobal(): typeof globalThis | undefined;
|
|
14
13
|
export declare function registerService(service: AnyInterpreter): void;
|
|
15
14
|
export {};
|
|
16
15
|
//# sourceMappingURL=devTools.d.ts.map
|
package/es/devTools.js
CHANGED
package/es/each.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventObject, SingleOrArray, ActionObject } from '
|
|
1
|
+
import { EventObject, SingleOrArray, ActionObject } from '.';
|
|
2
2
|
export declare function each<TContext, TEvent extends EventObject>(collection: keyof TContext, item: keyof TContext, actions: SingleOrArray<ActionObject<TContext, TEvent>>): ActionObject<TContext, TEvent>;
|
|
3
3
|
export declare function each<TContext, TEvent extends EventObject>(collection: keyof TContext, item: keyof TContext, index: keyof TContext, actions: SingleOrArray<ActionObject<TContext, TEvent>>): ActionObject<TContext, TEvent>;
|
|
4
4
|
//# sourceMappingURL=each.d.ts.map
|
package/es/index.d.ts
CHANGED
|
@@ -28,5 +28,4 @@ declare const actions: {
|
|
|
28
28
|
};
|
|
29
29
|
export { Actor, Machine, StateNode, State, matchesState, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema };
|
|
30
30
|
export * from './types';
|
|
31
|
-
export * from './typegenTypes';
|
|
32
31
|
//# sourceMappingURL=index.d.ts.map
|