xstate 4.32.1 → 4.33.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/lib/stateUtils.js CHANGED
@@ -8,10 +8,13 @@ var utils = require('./utils.js');
8
8
  var isLeafNode = function (stateNode) {
9
9
  return stateNode.type === 'atomic' || stateNode.type === 'final';
10
10
  };
11
- function getChildren(stateNode) {
11
+ function getAllChildren(stateNode) {
12
12
  return Object.keys(stateNode.states).map(function (key) {
13
13
  return stateNode.states[key];
14
- }).filter(function (sn) {
14
+ });
15
+ }
16
+ function getChildren(stateNode) {
17
+ return getAllChildren(stateNode).filter(function (sn) {
15
18
  return sn.type !== 'history';
16
19
  });
17
20
  }
@@ -261,6 +264,7 @@ function getTagsFromConfiguration(configuration) {
261
264
  }
262
265
 
263
266
  exports.getAdjList = getAdjList;
267
+ exports.getAllChildren = getAllChildren;
264
268
  exports.getAllStateNodes = getAllStateNodes;
265
269
  exports.getChildren = getChildren;
266
270
  exports.getConfiguration = getConfiguration;
package/lib/types.d.ts CHANGED
@@ -422,6 +422,12 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
422
422
  * @default false
423
423
  */
424
424
  preserveActionOrder?: boolean;
425
+ /**
426
+ * Whether XState calls actions with the event directly responsible for the related transition.
427
+ *
428
+ * @default false
429
+ */
430
+ predictableActionArguments?: boolean;
425
431
  /**
426
432
  * A text description of the state node
427
433
  */
@@ -856,6 +862,9 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
856
862
  */
857
863
  activities?: ActivityMap;
858
864
  meta?: any;
865
+ /**
866
+ * @deprecated
867
+ */
859
868
  events?: TEvent[];
860
869
  configuration: Array<StateNode<TContext, any, TEvent>>;
861
870
  transitions: Array<TransitionDefinition<TContext, TEvent>>;
@@ -1027,5 +1036,6 @@ declare type Matches<TypegenEnabledArg, TypegenDisabledArg> = {
1027
1036
  (stateValue: TypegenDisabledArg): any;
1028
1037
  };
1029
1038
  export declare type StateValueFrom<TMachine extends AnyStateMachine> = StateFrom<TMachine>['matches'] extends Matches<infer TypegenEnabledArg, infer TypegenDisabledArg> ? TMachine['__TResolvedTypesMeta'] extends TypegenEnabled ? TypegenEnabledArg : TypegenDisabledArg : never;
1039
+ export declare type PredictableActionArgumentsExec = (action: ActionObject<unknown, EventObject>, context: unknown, _event: SCXML.Event<EventObject>) => void;
1030
1040
  export {};
1031
1041
  //# sourceMappingURL=types.d.ts.map
package/lib/utils.d.ts CHANGED
@@ -67,6 +67,6 @@ export declare function normalizeTarget<TContext, TEvent extends EventObject>(ta
67
67
  export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
68
68
  export declare function evaluateGuard<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, guard: Guard<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
69
69
  export declare function toInvokeSource(src: string | InvokeSourceDefinition): InvokeSourceDefinition;
70
- export declare function toObserver<T>(nextHandler: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
70
+ export declare function toObserver<T>(nextHandler?: Partial<Observer<T>> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
71
71
  export declare function createInvokeId(stateNodeId: string, index: number): string;
72
72
  //# sourceMappingURL=utils.d.ts.map
package/lib/utils.js CHANGED
@@ -609,18 +609,14 @@ function toInvokeSource(src) {
609
609
  return src;
610
610
  }
611
611
  function toObserver(nextHandler, errorHandler, completionHandler) {
612
- if (typeof nextHandler === 'object') {
613
- return nextHandler;
614
- }
615
-
616
- var noop = function () {
617
- return void 0;
618
- };
612
+ var noop = function () {};
619
613
 
614
+ var isObserver = typeof nextHandler === 'object';
615
+ var self = isObserver ? nextHandler : null;
620
616
  return {
621
- next: nextHandler,
622
- error: errorHandler || noop,
623
- complete: completionHandler || noop
617
+ next: ((isObserver ? nextHandler.next : nextHandler) || noop).bind(self),
618
+ error: ((isObserver ? nextHandler.error : errorHandler) || noop).bind(self),
619
+ complete: ((isObserver ? nextHandler.complete : completionHandler) || noop).bind(self)
624
620
  };
625
621
  }
626
622
  function createInvokeId(stateNodeId, index) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xstate",
3
- "version": "4.32.1",
3
+ "version": "4.33.0",
4
4
  "description": "Finite State Machines and Statecharts for the Modern Web.",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",