xstate 4.14.0 → 4.15.2
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 +61 -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 +3 -1
- package/es/Actor.js +5 -1
- package/es/State.d.ts +2 -3
- package/es/StateNode.js +0 -1
- package/es/devTools.d.ts +9 -0
- package/es/devTools.js +2 -4
- package/es/interpreter.d.ts +9 -8
- package/es/interpreter.js +59 -55
- package/es/types.d.ts +25 -13
- package/es/utils.d.ts +2 -1
- package/es/utils.js +21 -1
- package/lib/Actor.d.ts +3 -1
- package/lib/Actor.js +5 -1
- package/lib/State.d.ts +2 -3
- package/lib/StateNode.js +0 -1
- package/lib/actions.js +8 -4
- package/lib/devTools.d.ts +9 -0
- package/lib/devTools.js +2 -3
- package/lib/interpreter.d.ts +9 -8
- package/lib/interpreter.js +41 -38
- package/lib/serviceScope.js +4 -2
- package/lib/stateUtils.js +2 -1
- package/lib/types.d.ts +25 -13
- package/lib/utils.d.ts +2 -1
- package/lib/utils.js +15 -2
- package/package.json +2 -2
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { StateNode } from './StateNode';
|
|
2
2
|
import { State } from './State';
|
|
3
3
|
import { Interpreter, Clock } from './interpreter';
|
|
4
|
-
import { Actor } from './Actor';
|
|
5
4
|
export declare type EventType = string;
|
|
6
5
|
export declare type ActionType = string;
|
|
7
6
|
export declare type MetaObject = Record<string, any>;
|
|
@@ -223,7 +222,7 @@ export interface InvokeSourceDefinition {
|
|
|
223
222
|
[key: string]: any;
|
|
224
223
|
type: string;
|
|
225
224
|
}
|
|
226
|
-
export
|
|
225
|
+
export interface InvokeConfig<TContext, TEvent extends EventObject> {
|
|
227
226
|
/**
|
|
228
227
|
* The unique identifier for the invoked machine. If not specified, this
|
|
229
228
|
* will be the machine's own `id`, or the URL (from `src`).
|
|
@@ -260,7 +259,7 @@ export declare type InvokeConfig<TContext, TEvent extends EventObject> = {
|
|
|
260
259
|
* The transition to take upon the invoked child machine sending an error event.
|
|
261
260
|
*/
|
|
262
261
|
onError?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
|
|
263
|
-
}
|
|
262
|
+
}
|
|
264
263
|
export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject> {
|
|
265
264
|
/**
|
|
266
265
|
* The relative key of the state node, which represents its location in the overall state value.
|
|
@@ -575,13 +574,13 @@ export interface LogActionObject<TContext, TEvent extends EventObject> extends L
|
|
|
575
574
|
value: any;
|
|
576
575
|
}
|
|
577
576
|
export interface SendAction<TContext, TEvent extends EventObject, TSentEvent extends EventObject> extends ActionObject<TContext, TEvent> {
|
|
578
|
-
to: string | number |
|
|
577
|
+
to: string | number | ActorRef<any> | ExprWithMeta<TContext, TEvent, string | number | ActorRef<any>> | undefined;
|
|
579
578
|
event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>;
|
|
580
579
|
delay?: number | string | DelayExpr<TContext, TEvent>;
|
|
581
580
|
id: string | number;
|
|
582
581
|
}
|
|
583
582
|
export interface SendActionObject<TContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> extends SendAction<TContext, TEvent, TSentEvent> {
|
|
584
|
-
to: string | number |
|
|
583
|
+
to: string | number | ActorRef<any> | undefined;
|
|
585
584
|
_event: SCXML.Event<TSentEvent>;
|
|
586
585
|
event: TSentEvent;
|
|
587
586
|
delay?: number;
|
|
@@ -611,7 +610,7 @@ export declare enum SpecialTargets {
|
|
|
611
610
|
export interface SendActionOptions<TContext, TEvent extends EventObject> {
|
|
612
611
|
id?: string | number;
|
|
613
612
|
delay?: number | string | DelayExpr<TContext, TEvent>;
|
|
614
|
-
to?: string | ExprWithMeta<TContext, TEvent, string | number |
|
|
613
|
+
to?: string | ExprWithMeta<TContext, TEvent, string | number | ActorRef<any>>;
|
|
615
614
|
}
|
|
616
615
|
export interface CancelAction extends ActionObject<any, any> {
|
|
617
616
|
sendId: string | number;
|
|
@@ -652,6 +651,7 @@ export interface TransitionDefinition<TContext, TEvent extends EventObject> exte
|
|
|
652
651
|
actions: Array<ActionObject<TContext, TEvent>>;
|
|
653
652
|
cond?: Guard<TContext, TEvent>;
|
|
654
653
|
eventType: TEvent['type'] | NullEvent['type'] | '*';
|
|
654
|
+
meta?: Record<string, any>;
|
|
655
655
|
};
|
|
656
656
|
}
|
|
657
657
|
export declare type TransitionDefinitionMap<TContext, TEvent extends EventObject> = {
|
|
@@ -741,7 +741,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
741
741
|
events?: TEvent[];
|
|
742
742
|
configuration: Array<StateNode<TContext, any, TEvent>>;
|
|
743
743
|
transitions: Array<TransitionDefinition<TContext, TEvent>>;
|
|
744
|
-
children: Record<string,
|
|
744
|
+
children: Record<string, ActorRef<any>>;
|
|
745
745
|
done?: boolean;
|
|
746
746
|
}
|
|
747
747
|
export interface StateSchema<TC = any> {
|
|
@@ -841,17 +841,29 @@ export declare namespace SCXML {
|
|
|
841
841
|
$$type: 'scxml';
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
|
-
export interface Unsubscribable {
|
|
845
|
-
unsubscribe(): void;
|
|
846
|
-
}
|
|
847
|
-
export interface Subscribable<T> {
|
|
848
|
-
subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
|
|
849
|
-
}
|
|
850
844
|
export interface Observer<T> {
|
|
851
845
|
next: (value: T) => void;
|
|
852
846
|
error: (err: any) => void;
|
|
853
847
|
complete: () => void;
|
|
854
848
|
}
|
|
849
|
+
export interface Subscription {
|
|
850
|
+
unsubscribe(): void;
|
|
851
|
+
}
|
|
852
|
+
export interface Subscribable<T> {
|
|
853
|
+
subscribe(observer: Observer<T>): Subscription;
|
|
854
|
+
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
855
|
+
}
|
|
855
856
|
export declare type Spawnable = StateMachine<any, any, any> | Promise<any> | InvokeCallback | Subscribable<any>;
|
|
857
|
+
export interface ActorRef<TEvent extends EventObject, TEmitted = any> extends Subscribable<TEmitted> {
|
|
858
|
+
send: Sender<TEvent>;
|
|
859
|
+
}
|
|
860
|
+
export interface SpawnedActorRef<TEvent extends EventObject, TEmitted = any> extends ActorRef<TEvent, TEmitted> {
|
|
861
|
+
id: string;
|
|
862
|
+
stop?: () => void;
|
|
863
|
+
toJSON?: () => any;
|
|
864
|
+
}
|
|
865
|
+
export declare type ActorRefFrom<T extends StateMachine<any, any, any>> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? SpawnedActorRef<TEvent, State<TContext, TEvent, any, TTypestate>> & {
|
|
866
|
+
state: State<TContext, TEvent, any, TTypestate>;
|
|
867
|
+
} : never;
|
|
856
868
|
export {};
|
|
857
869
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable, StateMachine, ConditionPredicate, SCXML, StateLike, EventData, TransitionConfig, TransitionConfigTarget, NullEvent, SingleOrArray, Guard, InvokeSourceDefinition } from './types';
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
|
-
import { State } from '.';
|
|
3
|
+
import { Observer, State } from '.';
|
|
4
4
|
import { Actor } from './Actor';
|
|
5
5
|
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
6
6
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean;
|
|
@@ -66,4 +66,5 @@ export declare function normalizeTarget<TContext, TEvent extends EventObject>(ta
|
|
|
66
66
|
export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
|
|
67
67
|
export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
|
|
68
68
|
export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
|
|
69
|
+
export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
|
|
69
70
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
CHANGED
|
@@ -42,7 +42,7 @@ var __spread = (this && this.__spread) || function () {
|
|
|
42
42
|
return ar;
|
|
43
43
|
};
|
|
44
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.toInvokeSource = exports.evaluateGuard = exports.reportUnhandledExceptionOnInvocation = exports.normalizeTarget = exports.toTransitionConfigArray = exports.toSCXMLEvent = exports.toEventObject = exports.uniqueId = exports.isActor = exports.isMachine = exports.symbolObservable = exports.isObservable = exports.toGuard = exports.isString = exports.isFunction = exports.isArray = exports.warn = exports.updateContext = exports.updateHistoryValue = exports.updateHistoryStates = exports.partition = exports.isPromiseLike = exports.isBuiltInEvent = exports.mapContext = exports.toArray = exports.toArrayStrict = exports.flatten = exports.pathsToStateValue = exports.toStatePaths = exports.nestedPath = exports.path = exports.mapFilterValues = exports.mapValues = exports.pathToStateValue = exports.toStateValue = exports.isStateLike = exports.toStatePath = exports.getActionType = exports.getEventType = exports.matchesState = exports.keys = void 0;
|
|
45
|
+
exports.toObserver = exports.toInvokeSource = exports.evaluateGuard = exports.reportUnhandledExceptionOnInvocation = exports.normalizeTarget = exports.toTransitionConfigArray = exports.toSCXMLEvent = exports.toEventObject = exports.uniqueId = exports.isActor = exports.isMachine = exports.symbolObservable = exports.isObservable = exports.toGuard = exports.isString = exports.isFunction = exports.isArray = exports.warn = exports.updateContext = exports.updateHistoryValue = exports.updateHistoryStates = exports.partition = exports.isPromiseLike = exports.isBuiltInEvent = exports.mapContext = exports.toArray = exports.toArrayStrict = exports.flatten = exports.pathsToStateValue = exports.toStatePaths = exports.nestedPath = exports.path = exports.mapFilterValues = exports.mapValues = exports.pathToStateValue = exports.toStateValue = exports.isStateLike = exports.toStatePath = exports.getActionType = exports.getEventType = exports.matchesState = exports.keys = void 0;
|
|
46
46
|
var constants_1 = require("./constants");
|
|
47
47
|
var environment_1 = require("./environment");
|
|
48
48
|
function keys(value) {
|
|
@@ -184,7 +184,7 @@ exports.mapFilterValues = mapFilterValues;
|
|
|
184
184
|
* Retrieves a value at the given path.
|
|
185
185
|
* @param props The deep path to the prop of the desired value
|
|
186
186
|
*/
|
|
187
|
-
|
|
187
|
+
var path = function (props) { return function (object) {
|
|
188
188
|
var e_2, _a;
|
|
189
189
|
var result = object;
|
|
190
190
|
try {
|
|
@@ -202,6 +202,7 @@ exports.path = function (props) { return function (object) {
|
|
|
202
202
|
}
|
|
203
203
|
return result;
|
|
204
204
|
}; };
|
|
205
|
+
exports.path = path;
|
|
205
206
|
/**
|
|
206
207
|
* Retrieves a value at the given path via the nested accessor prop.
|
|
207
208
|
* @param props The deep path to the prop of the desired value
|
|
@@ -609,3 +610,15 @@ function toInvokeSource(src) {
|
|
|
609
610
|
return src;
|
|
610
611
|
}
|
|
611
612
|
exports.toInvokeSource = toInvokeSource;
|
|
613
|
+
function toObserver(nextHandler, errorHandler, completionHandler) {
|
|
614
|
+
if (typeof nextHandler === 'object') {
|
|
615
|
+
return nextHandler;
|
|
616
|
+
}
|
|
617
|
+
var noop = function () { return void 0; };
|
|
618
|
+
return {
|
|
619
|
+
next: nextHandler,
|
|
620
|
+
error: errorHandler || noop,
|
|
621
|
+
complete: completionHandler || noop
|
|
622
|
+
};
|
|
623
|
+
}
|
|
624
|
+
exports.toObserver = toObserver;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xstate",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.15.2",
|
|
4
4
|
"description": "Finite State Machines and Statecharts for the Modern Web.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"rxjs": "^6.5.1",
|
|
67
67
|
"ts-jest": "^26.4.0",
|
|
68
68
|
"tslib": "^1.10.0",
|
|
69
|
-
"typescript": "^4.
|
|
69
|
+
"typescript": "^4.1.2",
|
|
70
70
|
"xml-js": "^1.6.11"
|
|
71
71
|
}
|
|
72
72
|
}
|