xstate 4.30.2 → 4.30.5

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/es/behaviors.js CHANGED
@@ -1,9 +1,75 @@
1
- import './environment.js';
2
- import { toObserver } from './utils.js';
3
- import './types.js';
4
- import './actionTypes.js';
1
+ import { error, doneInvoke } from './actions.js';
5
2
  import { toActorRef } from './Actor.js';
3
+ import { toObserver } from './utils.js';
4
+
5
+ /**
6
+ * Returns an actor behavior from a reducer and its initial state.
7
+ *
8
+ * @param transition The pure reducer that returns the next state given the current state and event.
9
+ * @param initialState The initial state of the reducer.
10
+ * @returns An actor behavior
11
+ */
12
+
13
+ function fromReducer(transition, initialState) {
14
+ return {
15
+ transition: transition,
16
+ initialState: initialState
17
+ };
18
+ }
19
+ function fromPromise(promiseFn) {
20
+ var initialState = {
21
+ error: undefined,
22
+ data: undefined,
23
+ status: 'pending'
24
+ };
25
+ return {
26
+ transition: function (state, event, _a) {
27
+ var parent = _a.parent,
28
+ id = _a.id,
29
+ observers = _a.observers;
6
30
 
31
+ switch (event.type) {
32
+ case 'fulfill':
33
+ parent === null || parent === void 0 ? void 0 : parent.send(doneInvoke(id, event.data));
34
+ return {
35
+ error: undefined,
36
+ data: event.data,
37
+ status: 'fulfilled'
38
+ };
39
+
40
+ case 'reject':
41
+ parent === null || parent === void 0 ? void 0 : parent.send(error(id, event.error));
42
+ observers.forEach(function (observer) {
43
+ observer.error(event.error);
44
+ });
45
+ return {
46
+ error: event.error,
47
+ data: undefined,
48
+ status: 'rejected'
49
+ };
50
+
51
+ default:
52
+ return state;
53
+ }
54
+ },
55
+ initialState: initialState,
56
+ start: function (_a) {
57
+ var self = _a.self;
58
+ promiseFn().then(function (data) {
59
+ self.send({
60
+ type: 'fulfill',
61
+ data: data
62
+ });
63
+ }, function (reason) {
64
+ self.send({
65
+ type: 'reject',
66
+ error: reason
67
+ });
68
+ });
69
+ return initialState;
70
+ }
71
+ };
72
+ }
7
73
  function spawnBehavior(behavior, options) {
8
74
  if (options === void 0) {
9
75
  options = {};
@@ -62,4 +128,4 @@ function spawnBehavior(behavior, options) {
62
128
  return actor;
63
129
  }
64
130
 
65
- export { spawnBehavior };
131
+ export { fromPromise, fromReducer, spawnBehavior };
package/es/each.js ADDED
@@ -0,0 +1,13 @@
1
+ function each(collection, item, indexOrActions, maybeActions) {
2
+ var actions = maybeActions || indexOrActions;
3
+ var index = maybeActions ? indexOrActions : undefined;
4
+ return {
5
+ type: 'xstate.foreach',
6
+ collection: collection,
7
+ item: item,
8
+ index: index,
9
+ actions: actions
10
+ };
11
+ }
12
+
13
+ export { each };
package/es/index.d.ts CHANGED
@@ -1,17 +1,19 @@
1
- import { matchesState } from './utils';
2
- import { mapState } from './mapState';
3
- import { StateNode } from './StateNode';
4
- import { State } from './State';
5
- import { Machine, createMachine } from './Machine';
6
- import { Actor, toActorRef } from './Actor';
7
1
  import * as actions from './actions';
8
- import { interpret, Interpreter, spawn, InterpreterStatus } from './interpreter';
2
+ import { Actor, toActorRef } from './Actor';
3
+ import { interpret, Interpreter, InterpreterStatus, spawn } from './interpreter';
4
+ import { createMachine, Machine } from './Machine';
5
+ import { mapState } from './mapState';
9
6
  import { matchState } from './match';
10
7
  import { createSchema, t } from './schema';
11
- declare const assign: <TContext, TEvent extends import("./types").EventObject = import("./types").EventObject>(assignment: import("./types").Assigner<TContext, TEvent> | import("./types").PropertyAssigner<TContext, TEvent>) => import("./types").AssignAction<TContext, TEvent>, send: typeof actions.send, sendParent: typeof actions.sendParent, sendUpdate: typeof actions.sendUpdate, forwardTo: typeof actions.forwardTo, doneInvoke: typeof actions.doneInvoke;
12
- export { Actor, toActorRef, Machine, StateNode, State, matchesState, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema, t };
13
- export * from './types';
8
+ import { State } from './State';
9
+ import { StateNode } from './StateNode';
10
+ export { spawnBehavior } from './behaviors';
11
+ export { XStateDevInterface } from './devTools';
14
12
  export * from './typegenTypes';
13
+ export * from './types';
14
+ export { matchesState, toEventObject, toObserver, toSCXMLEvent } from './utils';
15
+ export { Actor, toActorRef, Machine, StateNode, State, mapState, actions, assign, send, sendParent, sendUpdate, forwardTo, interpret, Interpreter, InterpreterStatus, matchState, spawn, doneInvoke, createMachine, createSchema, t };
16
+ declare const assign: <TContext, TEvent extends import("./types").EventObject = import("./types").EventObject>(assignment: import("./types").Assigner<TContext, TEvent> | import("./types").PropertyAssigner<TContext, TEvent>) => import("./types").AssignAction<TContext, TEvent>, send: typeof actions.send, sendParent: typeof actions.sendParent, sendUpdate: typeof actions.sendUpdate, forwardTo: typeof actions.forwardTo, doneInvoke: typeof actions.doneInvoke;
15
17
  declare global {
16
18
  interface SymbolConstructor {
17
19
  readonly observable: symbol;
package/es/index.js CHANGED
@@ -1,16 +1,17 @@
1
- export { matchesState } from './utils.js';
2
- export { mapState } from './mapState.js';
3
- export { ActionTypes, SpecialTargets } from './types.js';
4
1
  import { assign as assign$1, send as send$1, sendParent as sendParent$1, sendUpdate as sendUpdate$1, forwardTo as forwardTo$1, doneInvoke as doneInvoke$1 } from './actions.js';
5
2
  import * as actions from './actions.js';
6
3
  export { actions };
7
- export { State } from './State.js';
8
4
  export { toActorRef } from './Actor.js';
9
- export { StateNode } from './StateNode.js';
10
- export { Machine, createMachine } from './Machine.js';
11
5
  export { Interpreter, InterpreterStatus, interpret, spawn } from './interpreter.js';
6
+ export { Machine, createMachine } from './Machine.js';
7
+ export { mapState } from './mapState.js';
12
8
  export { matchState } from './match.js';
13
9
  export { createSchema, t } from './schema.js';
10
+ export { State } from './State.js';
11
+ export { StateNode } from './StateNode.js';
12
+ export { spawnBehavior } from './behaviors.js';
13
+ export { ActionTypes, SpecialTargets } from './types.js';
14
+ export { matchesState, toEventObject, toObserver, toSCXMLEvent } from './utils.js';
14
15
 
15
16
  var assign = assign$1,
16
17
  send = send$1,
@@ -23,6 +23,7 @@ export declare enum InterpreterStatus {
23
23
  Running = 1,
24
24
  Stopped = 2
25
25
  }
26
+ /** @ts-ignore [symbolObservable] creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
26
27
  export declare class Interpreter<TContext, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
27
28
  value: any;
28
29
  context: TContext;
@@ -189,6 +190,7 @@ export declare class Interpreter<TContext, TStateSchema extends StateSchema = an
189
190
  toJSON(): {
190
191
  id: string;
191
192
  };
193
+ /** @ts-ignore this creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
192
194
  [symbolObservable](): InteropSubscribable<State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>>;
193
195
  getSnapshot(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
194
196
  }
package/es/interpreter.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';
2
- import { IS_PRODUCTION } from './environment.js';
3
- import { warn, mapContext, isFunction, keys, toSCXMLEvent, toInvokeSource, isMachine, isPromiseLike, isObservable, isBehavior, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, isActor, uniqueId, toObserver } from './utils.js';
4
2
  import { ActionTypes, SpecialTargets } from './types.js';
5
- import { isInFinalState } from './stateUtils.js';
3
+ import { isStateConfig, State, bindActionToState } from './State.js';
6
4
  import { errorPlatform, log, stop, start, cancel, send, update, error as error$1 } from './actionTypes.js';
7
5
  import { doneInvoke, initEvent, getActionFunction, error } from './actions.js';
8
- import { isStateConfig, State, bindActionToState } from './State.js';
9
- import { provide, consume } from './serviceScope.js';
10
- import { isSpawnedActor, createDeferredActor } from './Actor.js';
6
+ import { IS_PRODUCTION } from './environment.js';
7
+ import { warn, mapContext, isFunction, toSCXMLEvent, toInvokeSource, isMachine, isPromiseLike, isObservable, isBehavior, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, isActor, uniqueId, toObserver } from './utils.js';
11
8
  import { Scheduler } from './scheduler.js';
9
+ import { isSpawnedActor, createDeferredActor } from './Actor.js';
10
+ import { isInFinalState } from './stateUtils.js';
12
11
  import { registry } from './registry.js';
13
12
  import { registerService, getGlobal } from './devTools.js';
13
+ import { provide, consume } from './serviceScope.js';
14
14
  import { spawnBehavior } from './behaviors.js';
15
15
 
16
16
  var DEFAULT_SPAWN_OPTIONS = {
@@ -24,6 +24,8 @@ var InterpreterStatus;
24
24
  InterpreterStatus[InterpreterStatus["Running"] = 1] = "Running";
25
25
  InterpreterStatus[InterpreterStatus["Stopped"] = 2] = "Stopped";
26
26
  })(InterpreterStatus || (InterpreterStatus = {}));
27
+ /** @ts-ignore [symbolObservable] creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
28
+
27
29
 
28
30
  var Interpreter =
29
31
  /*#__PURE__*/
@@ -591,7 +593,7 @@ function () {
591
593
 
592
594
  try {
593
595
  // Cancel all delayed events
594
- for (var _p = __values(keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {
596
+ for (var _p = __values(Object.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {
595
597
  var key = _q.value;
596
598
  this.clock.clearTimeout(this.delayedEventsMap[key]);
597
599
  }
@@ -1308,6 +1310,8 @@ function () {
1308
1310
  id: this.id
1309
1311
  };
1310
1312
  };
1313
+ /** @ts-ignore this creates problems for people without `skipLibCheck` who are on older versions of TS, remove this comment when we drop support for TS@<4.3 */
1314
+
1311
1315
 
1312
1316
  Interpreter.prototype[symbolObservable] = function () {
1313
1317
  return this;
package/es/invokeUtils.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { __assign, __rest } from './_virtual/_tslib.js';
2
- import './environment.js';
3
- import './utils.js';
4
2
  import './types.js';
5
3
  import { invoke } from './actionTypes.js';
4
+ import './utils.js';
5
+ import './environment.js';
6
6
 
7
7
  function toInvokeSource(src) {
8
8
  if (typeof src === 'string') {
@@ -25,9 +25,9 @@ function toInvokeDefinition(invokeConfig) {
25
25
  type: invoke
26
26
  }, invokeConfig), {
27
27
  toJSON: function () {
28
- var onDone = invokeConfig.onDone,
29
- onError = invokeConfig.onError,
30
- invokeDef = __rest(invokeConfig, ["onDone", "onError"]);
28
+ invokeConfig.onDone;
29
+ invokeConfig.onError;
30
+ var invokeDef = __rest(invokeConfig, ["onDone", "onError"]);
31
31
 
32
32
  return __assign(__assign({}, invokeDef), {
33
33
  type: invoke,
package/es/json.js ADDED
@@ -0,0 +1,86 @@
1
+ import { mapValues, isFunction } from './utils.js';
2
+
3
+ function stringifyFunction(fn) {
4
+ return {
5
+ $function: fn.toString()
6
+ };
7
+ }
8
+
9
+ function getStateNodeId(stateNode) {
10
+ return "#".concat(stateNode.id);
11
+ } // derive config from machine
12
+
13
+
14
+ function machineToJSON(stateNode) {
15
+ var config = {
16
+ type: stateNode.type,
17
+ initial: stateNode.initial === undefined ? undefined : String(stateNode.initial),
18
+ id: stateNode.id,
19
+ key: stateNode.key,
20
+ entry: stateNode.onEntry,
21
+ exit: stateNode.onExit,
22
+ on: mapValues(stateNode.on, function (transition) {
23
+ return transition.map(function (t) {
24
+ return {
25
+ target: t.target ? t.target.map(getStateNodeId) : [],
26
+ source: getStateNodeId(t.source),
27
+ actions: t.actions,
28
+ cond: t.cond,
29
+ eventType: t.eventType
30
+ };
31
+ });
32
+ }),
33
+ invoke: stateNode.invoke,
34
+ states: {}
35
+ };
36
+ Object.values(stateNode.states).forEach(function (sn) {
37
+ config.states[sn.key] = machineToJSON(sn);
38
+ });
39
+ return config;
40
+ }
41
+ function stringify(machine) {
42
+ return JSON.stringify(machineToJSON(machine), function (_, value) {
43
+ if (isFunction(value)) {
44
+ return {
45
+ $function: value.toString()
46
+ };
47
+ }
48
+
49
+ return value;
50
+ });
51
+ }
52
+ function parse(machineString) {
53
+ var config = JSON.parse(machineString, function (_, value) {
54
+ if (typeof value === 'object' && '$function' in value) {
55
+ return new Function(value.value);
56
+ }
57
+
58
+ return value;
59
+ });
60
+ return config;
61
+ }
62
+ function jsonify(value) {
63
+ Object.defineProperty(value, 'toJSON', {
64
+ value: function () {
65
+ return mapValues(value, function (subValue) {
66
+ if (isFunction(subValue)) {
67
+ return stringifyFunction(subValue);
68
+ } else if (typeof subValue === 'object' && !Array.isArray(subValue)) {
69
+ // mostly for assignments
70
+ return mapValues(subValue, function (subSubValue) {
71
+ if (isFunction(subSubValue)) {
72
+ return stringifyFunction(subSubValue);
73
+ }
74
+
75
+ return subSubValue;
76
+ });
77
+ }
78
+
79
+ return subValue;
80
+ });
81
+ }
82
+ });
83
+ return value;
84
+ }
85
+
86
+ export { jsonify, machineToJSON, parse, stringify, stringifyFunction };
package/es/mapState.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { __values } from './_virtual/_tslib.js';
2
- import { keys, matchesState } from './utils.js';
2
+ import { matchesState } from './utils.js';
3
3
 
4
4
  function mapState(stateMap, stateId) {
5
5
  var e_1, _a;
@@ -7,7 +7,7 @@ function mapState(stateMap, stateId) {
7
7
  var foundStateId;
8
8
 
9
9
  try {
10
- for (var _b = __values(keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
10
+ for (var _b = __values(Object.keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {
11
11
  var mappedStateId = _c.value;
12
12
 
13
13
  if (matchesState(mappedStateId, stateId) && (!foundStateId || stateId.length > foundStateId.length)) {
package/es/model.js ADDED
@@ -0,0 +1,50 @@
1
+ import { __assign, __spreadArray, __read } from './_virtual/_tslib.js';
2
+ import { assign } from './actions.js';
3
+ import { createMachine } from './Machine.js';
4
+ import { mapValues } from './utils.js';
5
+
6
+ function createModel(initialContext, creators) {
7
+ var eventCreators = creators === null || creators === void 0 ? void 0 : creators.events;
8
+ var actionCreators = creators === null || creators === void 0 ? void 0 : creators.actions;
9
+ var model = {
10
+ initialContext: initialContext,
11
+ assign: assign,
12
+ events: eventCreators ? mapValues(eventCreators, function (fn, eventType) {
13
+ return function () {
14
+ var args = [];
15
+
16
+ for (var _i = 0; _i < arguments.length; _i++) {
17
+ args[_i] = arguments[_i];
18
+ }
19
+
20
+ return __assign(__assign({}, fn.apply(void 0, __spreadArray([], __read(args), false))), {
21
+ type: eventType
22
+ });
23
+ };
24
+ }) : undefined,
25
+ actions: actionCreators ? mapValues(actionCreators, function (fn, actionType) {
26
+ return function () {
27
+ var args = [];
28
+
29
+ for (var _i = 0; _i < arguments.length; _i++) {
30
+ args[_i] = arguments[_i];
31
+ }
32
+
33
+ return __assign(__assign({}, fn.apply(void 0, __spreadArray([], __read(args), false))), {
34
+ type: actionType
35
+ });
36
+ };
37
+ }) : undefined,
38
+ reset: function () {
39
+ return assign(initialContext);
40
+ },
41
+ createMachine: function (config, implementations) {
42
+ return createMachine('context' in config ? config : __assign(__assign({}, config), {
43
+ context: initialContext
44
+ }), implementations);
45
+ }
46
+ };
47
+ return model;
48
+ }
49
+
50
+ export { createModel };
package/es/patterns.js ADDED
@@ -0,0 +1,48 @@
1
+ import { __assign } from './_virtual/_tslib.js';
2
+ import { toEventObject } from './utils.js';
3
+
4
+ function toggle(onState, offState, eventType) {
5
+ var _a, _b, _c;
6
+
7
+ return _a = {}, _a[onState] = {
8
+ on: (_b = {}, _b[eventType] = offState, _b)
9
+ }, _a[offState] = {
10
+ on: (_c = {}, _c[eventType] = onState, _c)
11
+ }, _a;
12
+ }
13
+ var defaultSequencePatternOptions = {
14
+ nextEvent: 'NEXT',
15
+ prevEvent: 'PREV'
16
+ };
17
+ function sequence(items, options) {
18
+ var resolvedOptions = __assign(__assign({}, defaultSequencePatternOptions), options);
19
+
20
+ var states = {};
21
+ var nextEventObject = resolvedOptions.nextEvent === undefined ? undefined : toEventObject(resolvedOptions.nextEvent);
22
+ var prevEventObject = resolvedOptions.prevEvent === undefined ? undefined : toEventObject(resolvedOptions.prevEvent);
23
+ items.forEach(function (item, i) {
24
+ var state = {
25
+ on: {}
26
+ };
27
+
28
+ if (i + 1 === items.length) {
29
+ state.type = 'final';
30
+ }
31
+
32
+ if (nextEventObject && i + 1 < items.length) {
33
+ state.on[nextEventObject.type] = items[i + 1];
34
+ }
35
+
36
+ if (prevEventObject && i > 0) {
37
+ state.on[prevEventObject.type] = items[i - 1];
38
+ }
39
+
40
+ states[item] = state;
41
+ });
42
+ return {
43
+ initial: items[0],
44
+ states: states
45
+ };
46
+ }
47
+
48
+ export { sequence, toggle };
package/es/stateUtils.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { __values, __spreadArray, __read } from './_virtual/_tslib.js';
2
- import { flatten, keys } from './utils.js';
2
+ import { flatten } from './utils.js';
3
3
 
4
4
  var isLeafNode = function (stateNode) {
5
5
  return stateNode.type === 'atomic' || stateNode.type === 'final';
6
6
  };
7
7
  function getChildren(stateNode) {
8
- return keys(stateNode.states).map(function (key) {
8
+ return Object.keys(stateNode.states).map(function (key) {
9
9
  return stateNode.states[key];
10
10
  });
11
11
  }
package/es/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>;
@@ -524,11 +526,11 @@ export declare type InternalMachineOptions<TContext, TEvent extends EventObject,
524
526
  activities?: Record<string, ActivityConfig<TContext, TEvent>>;
525
527
  };
526
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>>;
527
- 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> {
528
530
  /**
529
531
  * The initial context (extended state)
530
532
  */
531
- context?: TContext | (() => TContext);
533
+ context?: LowInfer<TContext | (() => TContext)>;
532
534
  /**
533
535
  * The machine's own version.
534
536
  */
@@ -1009,7 +1011,7 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
1009
1011
  */
1010
1012
  state: State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>;
1011
1013
  };
1012
- 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;
1013
1015
  export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
1014
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;
1015
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;
@@ -1026,10 +1028,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
1026
1028
  start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
1027
1029
  }
1028
1030
  export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
1029
- declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
1031
+ declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ___, infer ____, infer _____, infer ______> ? TEvent : R extends Model<infer _, infer TEvent, infer __, infer ___> ? TEvent : R extends State<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ___, infer ____> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
1030
1032
  export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
1031
1033
  type: K;
1032
1034
  }>;
1033
- export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___> ? TContext : never : never;
1035
+ export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____, infer _____, infer ______> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : never : never;
1034
1036
  export {};
1035
1037
  //# sourceMappingURL=types.d.ts.map
package/es/utils.d.ts CHANGED
@@ -11,9 +11,7 @@ export declare function toStatePath(stateId: string | string[], delimiter: strin
11
11
  export declare function isStateLike(state: any): state is StateLike<any>;
12
12
  export declare function toStateValue(stateValue: StateLike<any> | StateValue | string[], delimiter: string): StateValue;
13
13
  export declare function pathToStateValue(statePath: string[]): StateValue;
14
- export declare function mapValues<T, P, O extends {
15
- [key: string]: T;
16
- }>(collection: O, iteratee: (item: O[keyof O], key: keyof O, collection: O, i: number) => P): {
14
+ 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): {
17
15
  [key in keyof O]: P;
18
16
  };
19
17
  export declare function mapFilterValues<T, P>(collection: {