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/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 declare type InvokeConfig<TContext, TEvent extends EventObject> = {
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 | Actor | ExprWithMeta<TContext, TEvent, string | number | Actor> | undefined;
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 | Actor | undefined;
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 | Actor>;
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, Actor>;
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
- exports.path = function (props) { return function (object) {
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.14.0",
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.0.3",
69
+ "typescript": "^4.1.2",
70
70
  "xml-js": "^1.6.11"
71
71
  }
72
72
  }