xstate 4.30.0 → 4.30.3

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
@@ -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>;
@@ -90,7 +92,7 @@ export declare type SimpleEventsOf<TEvent extends EventObject> = ExtractWithSimp
90
92
  export declare type BaseAction<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SimpleActionsOf<TAction>['type'] | TAction | RaiseAction<any> | SendAction<TContext, TEvent, any> | AssignAction<TContext, TEvent> | LogAction<TContext, TEvent> | CancelAction | StopAction<TContext, TEvent> | ChooseAction<TContext, TEvent> | ActionFunction<TContext, TEvent>;
91
93
  export declare type BaseActions<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SingleOrArray<BaseAction<TContext, TEvent, TAction>>;
92
94
  export declare type Actions<TContext, TEvent extends EventObject> = SingleOrArray<Action<TContext, TEvent>>;
93
- export declare type StateKey = string | State<any>;
95
+ export declare type StateKey = string | AnyState;
94
96
  export interface StateValueMap {
95
97
  [key: string]: StateValue;
96
98
  }
@@ -268,7 +270,7 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
268
270
  /**
269
271
  * The source of the machine to be invoked, or the machine itself.
270
272
  */
271
- src: string | InvokeSourceDefinition | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent, any>;
273
+ src: string | InvokeSourceDefinition | AnyStateMachine | InvokeCreator<TContext, TEvent, any>;
272
274
  /**
273
275
  * If `true`, events sent to the parent service will be forwarded to the invoked service.
274
276
  *
@@ -338,7 +340,7 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
338
340
  /**
339
341
  * The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
340
342
  */
341
- invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> | StateMachine<any, any, any>>;
343
+ invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> | AnyStateMachine>;
342
344
  /**
343
345
  * The mapping of event types to their potential transition(s).
344
346
  */
@@ -458,6 +460,8 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
458
460
  tags: string[];
459
461
  }
460
462
  export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
463
+ export declare type AnyState = State<any, any, any, any, any>;
464
+ export declare type AnyStateMachine = StateMachine<any, any, any, any, any, any, any>;
461
465
  export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
462
466
  initial?: undefined;
463
467
  parallel?: false | undefined;
@@ -483,7 +487,7 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
483
487
  } ? TAction : never>;
484
488
  };
485
489
  export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
486
- export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
490
+ export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | AnyStateMachine | InvokeCreator<TContext, TEvent>;
487
491
  export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
488
492
  declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
489
493
  [K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
@@ -495,7 +499,7 @@ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGu
495
499
  [K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
496
500
  };
497
501
  declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
498
- [K in keyof TEventsCausingServices]?: StateMachine<any, any, any, any, any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
502
+ [K in keyof TEventsCausingServices]?: AnyStateMachine | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
499
503
  };
500
504
  declare type MakeKeysRequired<T extends string> = {
501
505
  [K in T]: unknown;
@@ -522,11 +526,11 @@ export declare type InternalMachineOptions<TContext, TEvent extends EventObject,
522
526
  activities?: Record<string, ActivityConfig<TContext, TEvent>>;
523
527
  };
524
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>>;
525
- export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
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> {
526
530
  /**
527
531
  * The initial context (extended state)
528
532
  */
529
- context?: TContext | (() => TContext);
533
+ context?: LowInfer<TContext | (() => TContext)>;
530
534
  /**
531
535
  * The machine's own version.
532
536
  */
@@ -568,7 +572,7 @@ export interface HistoryStateNode<TContext> extends StateNode<TContext> {
568
572
  export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TTypestate extends Typestate<TContext> = {
569
573
  value: any;
570
574
  context: TContext;
571
- }, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
575
+ }, TAction extends BaseActionObject = BaseActionObject, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, TEvent, TAction, TServiceMap>> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta> {
572
576
  id: string;
573
577
  states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>['states'];
574
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>;
@@ -588,7 +592,7 @@ export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent
588
592
  /** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
589
593
  __TResolvedTypesMeta: TResolvedTypesMeta;
590
594
  }
591
- export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
595
+ export declare type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
592
596
  export interface ActionMap<TContext, TEvent extends EventObject> {
593
597
  onEntry: Array<Action<TContext, TEvent>>;
594
598
  actions: Array<Action<TContext, TEvent>>;
@@ -668,7 +672,7 @@ export interface DoneEventObject extends EventObject {
668
672
  }
669
673
  export interface UpdateObject extends EventObject {
670
674
  id: string | number;
671
- state: State<any, any>;
675
+ state: AnyState;
672
676
  }
673
677
  export declare type DoneEvent = DoneEventObject & string;
674
678
  export interface NullEvent {
@@ -868,6 +872,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
868
872
  tags?: Set<string>;
869
873
  machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
870
874
  }
875
+ export declare type AnyStateConfig = StateConfig<any, AnyEventObject>;
871
876
  export interface StateSchema<TC = any> {
872
877
  meta?: any;
873
878
  context?: Partial<TC>;
@@ -973,13 +978,16 @@ export interface Subscription {
973
978
  unsubscribe(): void;
974
979
  }
975
980
  export interface InteropObservable<T> {
976
- [Symbol.observable]: () => Subscribable<T>;
981
+ [Symbol.observable]: () => InteropSubscribable<T>;
977
982
  }
978
- export interface Subscribable<T> {
979
- subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
983
+ export interface InteropSubscribable<T> {
984
+ subscribe(observer: Observer<T>): Subscription;
985
+ }
986
+ export interface Subscribable<T> extends InteropSubscribable<T> {
980
987
  subscribe(observer: Observer<T>): Subscription;
988
+ subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
981
989
  }
982
- export declare type Spawnable = StateMachine<any, any, any> | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
990
+ export declare type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
983
991
  export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
984
992
  type: TEventType;
985
993
  } ? TEvent : never;
@@ -1003,10 +1011,10 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
1003
1011
  */
1004
1012
  state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
1005
1013
  };
1006
- export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, any> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
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;
1007
1015
  export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
1008
- export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>)> = 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;
1009
- export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
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;
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;
1010
1018
  export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
1011
1019
  export interface ActorContext<TEvent extends EventObject, TEmitted> {
1012
1020
  parent?: ActorRef<any, any>;
package/lib/utils.d.ts CHANGED
@@ -1,8 +1,8 @@
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, Observer, Behavior } from './types';
1
+ import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable, ConditionPredicate, SCXML, StateLike, EventData, TransitionConfig, TransitionConfigTarget, NullEvent, SingleOrArray, Guard, InvokeSourceDefinition, Observer, Behavior } from './types';
2
2
  import { StateNode } from './StateNode';
3
3
  import { State } from './State';
4
4
  import { Actor } from './Actor';
5
- export declare function keys<T extends object>(value: T): Array<keyof T & string>;
5
+ import { AnyStateMachine } from '.';
6
6
  export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean;
7
7
  export declare function getEventType<TEvent extends EventObject = EventObject>(event: Event<TEvent>): TEvent['type'];
8
8
  export declare function getActionType(action: Action<any, any>): ActionType;
@@ -10,9 +10,7 @@ export declare function toStatePath(stateId: string | string[], delimiter: strin
10
10
  export declare function isStateLike(state: any): state is StateLike<any>;
11
11
  export declare function toStateValue(stateValue: StateLike<any> | StateValue | string[], delimiter: string): StateValue;
12
12
  export declare function pathToStateValue(statePath: string[]): StateValue;
13
- export declare function mapValues<T, P, O extends {
14
- [key: string]: T;
15
- }>(collection: O, iteratee: (item: O[keyof O], key: keyof O, collection: O, i: number) => P): {
13
+ 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): {
16
14
  [key in keyof O]: P;
17
15
  };
18
16
  export declare function mapFilterValues<T, P>(collection: {
@@ -52,12 +50,11 @@ export declare function isFunction(value: any): value is Function;
52
50
  export declare function isString(value: any): value is string;
53
51
  export declare function toGuard<TContext, TEvent extends EventObject>(condition?: Condition<TContext, TEvent>, guardMap?: Record<string, ConditionPredicate<TContext, TEvent>>): Guard<TContext, TEvent> | undefined;
54
52
  export declare function isObservable<T>(value: any): value is Subscribable<T>;
55
- export declare const symbolObservable: string | typeof Symbol.observable;
53
+ export declare const symbolObservable: typeof Symbol.observable;
56
54
  export declare const interopSymbols: {
57
- [x: string]: () => any;
58
55
  [Symbol.observable]: () => any;
59
56
  };
60
- export declare function isMachine(value: any): value is StateMachine<any, any, any>;
57
+ export declare function isMachine(value: any): value is AnyStateMachine;
61
58
  export declare function isActor(value: any): value is Actor;
62
59
  export declare const uniqueId: () => string;
63
60
  export declare function toEventObject<TEvent extends EventObject>(event: Event<TEvent>, payload?: EventData): TEvent;
package/lib/utils.js CHANGED
@@ -7,9 +7,6 @@ var constants = require('./constants.js');
7
7
  var environment = require('./environment.js');
8
8
 
9
9
  var _a;
10
- function keys(value) {
11
- return Object.keys(value);
12
- }
13
10
  function matchesState(parentStateId, childStateId, delimiter) {
14
11
  if (delimiter === void 0) {
15
12
  delimiter = constants.STATE_DELIMITER;
@@ -31,7 +28,7 @@ function matchesState(parentStateId, childStateId, delimiter) {
31
28
  return parentStateValue in childStateValue;
32
29
  }
33
30
 
34
- return keys(parentStateValue).every(function (key) {
31
+ return Object.keys(parentStateValue).every(function (key) {
35
32
  if (!(key in childStateValue)) {
36
33
  return false;
37
34
  }
@@ -97,7 +94,7 @@ function pathToStateValue(statePath) {
97
94
  }
98
95
  function mapValues(collection, iteratee) {
99
96
  var result = {};
100
- var collectionKeys = keys(collection);
97
+ var collectionKeys = Object.keys(collection);
101
98
 
102
99
  for (var i = 0; i < collectionKeys.length; i++) {
103
100
  var key = collectionKeys[i];
@@ -112,7 +109,7 @@ function mapFilterValues(collection, iteratee, predicate) {
112
109
  var result = {};
113
110
 
114
111
  try {
115
- for (var _b = _tslib.__values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {
112
+ for (var _b = _tslib.__values(Object.keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {
116
113
  var key = _c.value;
117
114
  var item = collection[key];
118
115
 
@@ -207,7 +204,7 @@ function toStatePaths(stateValue) {
207
204
  return [[stateValue]];
208
205
  }
209
206
 
210
- var result = flatten(keys(stateValue).map(function (key) {
207
+ var result = flatten(Object.keys(stateValue).map(function (key) {
211
208
  var subStateValue = stateValue[key];
212
209
 
213
210
  if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {
@@ -366,7 +363,7 @@ function updateContext(context, _event, assignActions, state) {
366
363
  partialUpdate = assignment(acc, _event.data, meta);
367
364
  } else {
368
365
  try {
369
- for (var _b = _tslib.__values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {
366
+ for (var _b = _tslib.__values(Object.keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {
370
367
  var key = _c.value;
371
368
  var propAssignment = assignment[key];
372
369
  partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;
@@ -420,18 +417,7 @@ function isFunction(value) {
420
417
  }
421
418
  function isString(value) {
422
419
  return typeof value === 'string';
423
- } // export function memoizedGetter<T, TP extends { prototype: object }>(
424
- // o: TP,
425
- // property: string,
426
- // getter: () => T
427
- // ): void {
428
- // Object.defineProperty(o.prototype, property, {
429
- // get: getter,
430
- // enumerable: false,
431
- // configurable: false
432
- // });
433
- // }
434
-
420
+ }
435
421
  function toGuard(condition, guardMap) {
436
422
  if (!condition) {
437
423
  return undefined;
@@ -464,16 +450,15 @@ function isObservable(value) {
464
450
  }
465
451
  var symbolObservable = /*#__PURE__*/function () {
466
452
  return typeof Symbol === 'function' && Symbol.observable || '@@observable';
467
- }();
453
+ }(); // TODO: to be removed in v5, left it out just to minimize the scope of the change and maintain compatibility with older versions of integration paackages
454
+
468
455
  var interopSymbols = (_a = {}, _a[symbolObservable] = function () {
469
456
  return this;
457
+ }, _a[Symbol.observable] = function () {
458
+ return this;
470
459
  }, _a);
471
460
  function isMachine(value) {
472
- try {
473
- return '__xstatenode' in value;
474
- } catch (e) {
475
- return false;
476
- }
461
+ return !!value && '__xstatenode' in value;
477
462
  }
478
463
  function isActor(value) {
479
464
  return !!value && typeof value.send === 'function';
@@ -607,7 +592,6 @@ exports.isObservable = isObservable;
607
592
  exports.isPromiseLike = isPromiseLike;
608
593
  exports.isStateLike = isStateLike;
609
594
  exports.isString = isString;
610
- exports.keys = keys;
611
595
  exports.mapContext = mapContext;
612
596
  exports.mapFilterValues = mapFilterValues;
613
597
  exports.mapValues = mapValues;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xstate",
3
- "version": "4.30.0",
3
+ "version": "4.30.3",
4
4
  "description": "Finite State Machines and Statecharts for the Modern Web.",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",