xstate 5.0.0-beta.13 → 5.0.0-beta.14

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.
Files changed (40) hide show
  1. package/actions/dist/xstate-actions.cjs.js +1 -1
  2. package/actions/dist/xstate-actions.development.cjs.js +1 -1
  3. package/actions/dist/xstate-actions.development.esm.js +1 -1
  4. package/actions/dist/xstate-actions.esm.js +1 -1
  5. package/actions/dist/xstate-actions.umd.min.js +1 -1
  6. package/actions/dist/xstate-actions.umd.min.js.map +1 -1
  7. package/actors/dist/xstate-actors.cjs.js +1 -1
  8. package/actors/dist/xstate-actors.development.cjs.js +1 -1
  9. package/actors/dist/xstate-actors.development.esm.js +1 -1
  10. package/actors/dist/xstate-actors.esm.js +1 -1
  11. package/actors/dist/xstate-actors.umd.min.js +1 -1
  12. package/actors/dist/xstate-actors.umd.min.js.map +1 -1
  13. package/dist/{actions-e4c704f3.cjs.js → actions-17c3bcfa.cjs.js} +803 -853
  14. package/dist/{actions-b34f6ce7.esm.js → actions-444a17c3.esm.js} +804 -854
  15. package/dist/{actions-c8b9504d.development.esm.js → actions-60622c0c.development.esm.js} +829 -879
  16. package/dist/{actions-d9c19f35.development.cjs.js → actions-73b8d456.development.cjs.js} +828 -878
  17. package/dist/declarations/src/State.d.ts +2 -8
  18. package/dist/declarations/src/StateMachine.d.ts +5 -10
  19. package/dist/declarations/src/StateNode.d.ts +1 -1
  20. package/dist/declarations/src/actors/callback.d.ts +2 -2
  21. package/dist/declarations/src/actors/index.d.ts +1 -1
  22. package/dist/declarations/src/actors/observable.d.ts +8 -6
  23. package/dist/declarations/src/actors/promise.d.ts +4 -3
  24. package/dist/declarations/src/actors/transition.d.ts +4 -4
  25. package/dist/declarations/src/interpreter.d.ts +15 -15
  26. package/dist/declarations/src/stateUtils.d.ts +4 -6
  27. package/dist/declarations/src/types.d.ts +23 -33
  28. package/dist/declarations/src/utils.d.ts +7 -7
  29. package/dist/xstate.cjs.js +13 -37
  30. package/dist/xstate.development.cjs.js +13 -37
  31. package/dist/xstate.development.esm.js +14 -38
  32. package/dist/xstate.esm.js +14 -38
  33. package/dist/xstate.umd.min.js +1 -1
  34. package/dist/xstate.umd.min.js.map +1 -1
  35. package/guards/dist/xstate-guards.cjs.js +1 -1
  36. package/guards/dist/xstate-guards.development.cjs.js +1 -1
  37. package/guards/dist/xstate-guards.development.esm.js +1 -1
  38. package/guards/dist/xstate-guards.esm.js +1 -1
  39. package/guards/dist/xstate-guards.umd.min.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { StateNode } from "./StateNode.js";
2
2
  import { TypegenDisabled, TypegenEnabled } from "./typegenTypes.js";
3
- import type { ActorRef, AnyState, AnyStateMachine, BaseActionObject, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TransitionDefinition } from "./types.js";
3
+ import type { ActorRef, AnyState, AnyStateMachine, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue } from "./types.js";
4
4
  export declare function isStateConfig<TContext extends MachineContext, TEvent extends EventObject>(state: any): state is StateConfig<TContext, TEvent>;
5
5
  /**
6
6
  * @deprecated Use `isStateConfig(object)` or `state instanceof State` instead.
@@ -20,8 +20,6 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
20
20
  output: any;
21
21
  context: TContext;
22
22
  historyValue: Readonly<HistoryValue<TContext, TEvent>>;
23
- actions: BaseActionObject[];
24
- event: TEvent;
25
23
  _internalQueue: Array<TEvent>;
26
24
  _initial: boolean;
27
25
  /**
@@ -37,10 +35,6 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
37
35
  * The enabled state nodes representative of the state value.
38
36
  */
39
37
  configuration: Array<StateNode<TContext, TEvent>>;
40
- /**
41
- * The transition definitions that resulted in this state.
42
- */
43
- transitions: Array<TransitionDefinition<TContext, TEvent>>;
44
38
  /**
45
39
  * An object mapping actor names to spawned/invoked actors.
46
40
  */
@@ -63,7 +57,7 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
63
57
  * @param delimiter The character(s) that separate each subpath in the string state node path.
64
58
  */
65
59
  toStrings(stateValue?: StateValue, delimiter?: string): string[];
66
- toJSON(): Omit<this, "meta" | "toJSON" | "configuration" | "transitions" | "tags" | "machine" | "toStrings" | "matches" | "hasTag" | "can" | "nextEvents"> & {
60
+ toJSON(): Omit<this, "meta" | "toJSON" | "configuration" | "tags" | "machine" | "toStrings" | "matches" | "hasTag" | "can" | "nextEvents"> & {
67
61
  tags: string[];
68
62
  meta: Record<string, any>;
69
63
  };
@@ -1,11 +1,11 @@
1
1
  import { State } from "./State.js";
2
2
  import { StateNode } from "./StateNode.js";
3
3
  import type { AreAllImplementationsAssumedToBeProvided, MarkAllImplementationsAsProvided, ResolveTypegenMeta, TypegenDisabled } from "./typegenTypes.js";
4
- import type { ActorContext, ActorMap, ActorBehavior, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineTypes, NoInfer, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext } from "./types.js";
4
+ import type { ActorContext, ActorLogic, ActorMap, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineTypes, NoInfer, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext } from "./types.js";
5
5
  export declare const NULL_EVENT = "";
6
6
  export declare const STATE_IDENTIFIER = "#";
7
7
  export declare const WILDCARD = "*";
8
- export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActorMap extends ActorMap = ActorMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TActorMap>> implements ActorBehavior<TEvent, State<TContext, TEvent, TResolvedTypesMeta>, State<TContext, TEvent, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>> {
8
+ export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActorMap extends ActorMap = ActorMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TActorMap>> implements ActorLogic<TEvent, State<TContext, TEvent, TResolvedTypesMeta>, State<TContext, TEvent, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>> {
9
9
  /**
10
10
  * The raw config used to create the machine.
11
11
  */
@@ -59,7 +59,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
59
59
  * @param state The current State instance or state value
60
60
  * @param event The received event
61
61
  */
62
- transition(state: StateValue | State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent, actorCtx?: ActorContext<TEvent, State<TContext, TEvent, any>>): State<TContext, TEvent, TResolvedTypesMeta>;
62
+ transition(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent, actorCtx: ActorContext<TEvent, State<TContext, TEvent, any>>): State<TContext, TEvent, TResolvedTypesMeta>;
63
63
  /**
64
64
  * Determines the next state given the current `state` and `event`.
65
65
  * Calculates a microstep.
@@ -67,22 +67,17 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
67
67
  * @param state The current state
68
68
  * @param event The received event
69
69
  */
70
- microstep(state: State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent, actorCtx?: AnyActorContext | undefined): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
70
+ microstep(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent, actorCtx: AnyActorContext): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
71
71
  getTransitionData(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>>;
72
72
  /**
73
73
  * The initial state _before_ evaluating any microsteps.
74
74
  * This "pre-initial" state is provided to initial actions executed in the initial state.
75
75
  */
76
76
  private getPreInitialState;
77
- /**
78
- * The initial State instance, which includes all actions to be executed from
79
- * entering the initial state.
80
- */
81
- get initialState(): State<TContext, TEvent, TResolvedTypesMeta>;
82
77
  /**
83
78
  * Returns the initial `State` instance, with reference to `self` as an `ActorRef`.
84
79
  */
85
- getInitialState(actorCtx?: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>, input?: any): State<TContext, TEvent, TResolvedTypesMeta>;
80
+ getInitialState(actorCtx: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>, input?: any): State<TContext, TEvent, TResolvedTypesMeta>;
86
81
  start(state: State<TContext, TEvent, TResolvedTypesMeta>, actorCtx: ActorContext<TEvent, State<TContext, TEvent, TResolvedTypesMeta>>): void;
87
82
  getStateNodeById(stateId: string): StateNode<TContext, TEvent>;
88
83
  get definition(): StateMachineDefinition<TContext, TEvent>;
@@ -88,7 +88,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
88
88
  get definition(): StateNodeDefinition<TContext, TEvent>;
89
89
  toJSON(): StateNodeDefinition<TContext, TEvent>;
90
90
  /**
91
- * The behaviors invoked as actors by this state node.
91
+ * The logic invoked as actors by this state node.
92
92
  */
93
93
  get invoke(): Array<InvokeDefinition<TContext, TEvent>>;
94
94
  /**
@@ -1,8 +1,8 @@
1
- import { InvokeCallback, ActorBehavior, EventObject } from "../types.js";
1
+ import { InvokeCallback, ActorLogic, EventObject } from "../types.js";
2
2
  export interface CallbackInternalState {
3
3
  canceled: boolean;
4
4
  receivers: Set<(e: EventObject) => void>;
5
5
  dispose: void | (() => void) | Promise<any>;
6
6
  input?: any;
7
7
  }
8
- export declare function fromCallback<TEvent extends EventObject>(invokeCallback: InvokeCallback): ActorBehavior<TEvent, undefined>;
8
+ export declare function fromCallback<TEvent extends EventObject>(invokeCallback: InvokeCallback): ActorLogic<TEvent, undefined, CallbackInternalState>;
@@ -16,7 +16,7 @@ export interface StopSignal {
16
16
  export type LifecycleSignal = StartSignal | StopSignal;
17
17
  export type LifecycleSignalType = typeof startSignalType | typeof stopSignalType;
18
18
  /**
19
- * An object that expresses the behavior of an actor in reaction to received events,
19
+ * An object that expresses the actor logic in reaction to received events,
20
20
  * as well as an optionally emitted stream of values.
21
21
  *
22
22
  * @template TReceived The received event
@@ -1,4 +1,4 @@
1
- import { Subscribable, ActorBehavior, EventObject, Subscription } from "../types.js";
1
+ import { Subscribable, ActorLogic, EventObject, Subscription, AnyActorSystem } from "../types.js";
2
2
  export interface ObservableInternalState<T> {
3
3
  subscription: Subscription | undefined;
4
4
  status: 'active' | 'done' | 'error' | 'canceled';
@@ -6,17 +6,19 @@ export interface ObservableInternalState<T> {
6
6
  input?: any;
7
7
  }
8
8
  export type ObservablePersistedState<T> = Omit<ObservableInternalState<T>, 'subscription'>;
9
- export declare function fromObservable<T, TEvent extends EventObject>(observableCreator: ({ input }: {
9
+ export declare function fromObservable<T, TEvent extends EventObject>(observableCreator: ({ input, system }: {
10
10
  input: any;
11
- }) => Subscribable<T>): ActorBehavior<TEvent, T | undefined, ObservableInternalState<T>, ObservablePersistedState<T>>;
11
+ system: AnyActorSystem;
12
+ }) => Subscribable<T>): ActorLogic<TEvent, T | undefined, ObservableInternalState<T>, ObservablePersistedState<T>>;
12
13
  /**
13
- * Creates an event observable behavior that listens to an observable
14
+ * Creates event observable logic that listens to an observable
14
15
  * that delivers event objects.
15
16
  *
16
17
  *
17
18
  * @param lazyObservable A function that creates an observable
18
- * @returns An event observable behavior
19
+ * @returns Event observable logic
19
20
  */
20
21
  export declare function fromEventObservable<T extends EventObject>(lazyObservable: ({ input }: {
21
22
  input: any;
22
- }) => Subscribable<T>): ActorBehavior<EventObject, T | undefined>;
23
+ system: AnyActorSystem;
24
+ }) => Subscribable<T>): ActorLogic<EventObject, T | undefined, ObservableInternalState<T>, ObservablePersistedState<T>>;
@@ -1,11 +1,12 @@
1
- import { ActorBehavior } from "../types.js";
1
+ import { ActorLogic, AnyActorSystem } from "../types.js";
2
2
  export interface PromiseInternalState<T> {
3
3
  status: 'active' | 'error' | 'done' | 'canceled';
4
4
  data: T | undefined;
5
5
  input?: any;
6
6
  }
7
- export declare function fromPromise<T>(promiseCreator: ({ input }: {
7
+ export declare function fromPromise<T>(promiseCreator: ({ input, system }: {
8
8
  input: any;
9
- }) => PromiseLike<T>): ActorBehavior<{
9
+ system: AnyActorSystem;
10
+ }) => PromiseLike<T>): ActorLogic<{
10
11
  type: string;
11
12
  }, T | undefined, PromiseInternalState<T>>;
@@ -1,13 +1,13 @@
1
- import { ActorBehavior, ActorContext, ActorSystem, EventObject } from "../types.js";
1
+ import { ActorLogic, ActorContext, ActorSystem, EventObject } from "../types.js";
2
2
  /**
3
- * Returns an actor behavior from a transition function and its initial state.
3
+ * Returns actor logic from a transition function and its initial state.
4
4
  *
5
5
  * A transition function is a function that takes the current state and an event and returns the next state.
6
6
  *
7
7
  * @param transition The transition function that returns the next state given the current state and event.
8
8
  * @param initialState The initial state of the transition function.
9
- * @returns An actor behavior
9
+ * @returns Actor logic
10
10
  */
11
11
  export declare function fromTransition<TState, TEvent extends EventObject, TSystem extends ActorSystem<any>>(transition: (state: TState, event: TEvent, actorContext: ActorContext<TEvent, TState, TSystem>) => TState, initialState: TState | (({ input }: {
12
12
  input: any;
13
- }) => TState)): ActorBehavior<TEvent, TState, TState>;
13
+ }) => TState)): ActorLogic<TEvent, TState, TState>;
@@ -1,8 +1,8 @@
1
1
  import { symbolObservable } from "./symbolObservable.js";
2
2
  import { AreAllImplementationsAssumedToBeProvided, MissingImplementationsError } from "./typegenTypes.js";
3
- import type { ActorSystem, AnyActorBehavior, AnyStateMachine, EventFromBehavior, InterpreterFrom, PersistedStateFrom, RaiseActionObject, SnapshotFrom } from "./types.js";
3
+ import type { ActorSystem, AnyActorLogic, AnyStateMachine, EventFromLogic, InterpreterFrom, PersistedStateFrom, RaiseActionObject, SnapshotFrom } from "./types.js";
4
4
  import { ActorRef, EventObject, InteropSubscribable, InterpreterOptions, Observer, SendActionObject, Subscription } from "./types.js";
5
- export type SnapshotListener<TBehavior extends AnyActorBehavior> = (state: SnapshotFrom<TBehavior>) => void;
5
+ export type SnapshotListener<TLogic extends AnyActorLogic> = (state: SnapshotFrom<TLogic>) => void;
6
6
  export type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
7
7
  export type Listener = () => void;
8
8
  export type ErrorListener = (error: any) => void;
@@ -15,17 +15,17 @@ export declare enum ActorStatus {
15
15
  Running = 1,
16
16
  Stopped = 2
17
17
  }
18
- export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent extends EventObject = EventFromBehavior<TBehavior>> implements ActorRef<TEvent, SnapshotFrom<TBehavior>> {
19
- behavior: TBehavior;
18
+ export declare class Interpreter<TLogic extends AnyActorLogic, TEvent extends EventObject = EventFromLogic<TLogic>> implements ActorRef<TEvent, SnapshotFrom<TLogic>> {
19
+ logic: TLogic;
20
20
  /**
21
- * The current state of the interpreted behavior.
21
+ * The current state of the interpreted logic.
22
22
  */
23
23
  private _state;
24
24
  /**
25
25
  * The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions.
26
26
  */
27
27
  clock: Clock;
28
- options: Readonly<InterpreterOptions<TBehavior>>;
28
+ options: Readonly<InterpreterOptions<TLogic>>;
29
29
  /**
30
30
  * The unique identifier for this actor relative to its parent.
31
31
  */
@@ -50,17 +50,17 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
50
50
  private _doneEvent?;
51
51
  src?: string;
52
52
  /**
53
- * Creates a new Interpreter instance (i.e., service) for the given behavior with the provided options, if any.
53
+ * Creates a new Interpreter instance (i.e., service) for the given logic with the provided options, if any.
54
54
  *
55
- * @param behavior The behavior to be interpreted
55
+ * @param logic The logic to be interpreted
56
56
  * @param options Interpreter options
57
57
  */
58
- constructor(behavior: TBehavior, options?: InterpreterOptions<TBehavior>);
58
+ constructor(logic: TLogic, options?: InterpreterOptions<TLogic>);
59
59
  private _initState;
60
60
  private _deferred;
61
61
  private update;
62
- subscribe(observer: Observer<SnapshotFrom<TBehavior>>): Subscription;
63
- subscribe(nextListener?: (state: SnapshotFrom<TBehavior>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
62
+ subscribe(observer: Observer<SnapshotFrom<TLogic>>): Subscription;
63
+ subscribe(nextListener?: (state: SnapshotFrom<TLogic>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
64
64
  /**
65
65
  * Starts the interpreter from the initial state
66
66
  */
@@ -86,9 +86,9 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
86
86
  toJSON(): {
87
87
  id: string;
88
88
  };
89
- getPersistedState(): PersistedStateFrom<TBehavior> | undefined;
90
- [Symbol.observable](): InteropSubscribable<SnapshotFrom<TBehavior>>;
91
- getSnapshot(): SnapshotFrom<TBehavior>;
89
+ getPersistedState(): PersistedStateFrom<TLogic> | undefined;
90
+ [Symbol.observable](): InteropSubscribable<SnapshotFrom<TLogic>>;
91
+ getSnapshot(): SnapshotFrom<TLogic>;
92
92
  }
93
93
  /**
94
94
  * Creates a new Interpreter instance for the given machine with the provided options, if any.
@@ -97,4 +97,4 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
97
97
  * @param options Interpreter options
98
98
  */
99
99
  export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : MissingImplementationsError<TMachine['__TResolvedTypesMeta']>, options?: InterpreterOptions<TMachine>): InterpreterFrom<TMachine>;
100
- export declare function interpret<TBehavior extends AnyActorBehavior>(behavior: TBehavior, options?: InterpreterOptions<TBehavior>): Interpreter<TBehavior>;
100
+ export declare function interpret<TLogic extends AnyActorLogic>(logic: TLogic, options?: InterpreterOptions<TLogic>): Interpreter<TLogic>;
@@ -2,7 +2,7 @@ import { BaseActionObject, EventObject, StateValue, TransitionConfig, Transition
2
2
  import { State } from "./State.js";
3
3
  import { NULL_EVENT } from "./constants.js";
4
4
  import type { StateNode } from "./StateNode.js";
5
- import { AnyActorContext, AnyHistoryValue, AnyState, AnyStateMachine, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, InitialTransitionDefinition, StateFromMachine } from "./index.js";
5
+ import { AnyActorContext, AnyHistoryValue, AnyState, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, InitialTransitionDefinition } from "./index.js";
6
6
  type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
7
7
  type AnyConfiguration = Configuration<any, any>;
8
8
  type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
@@ -52,11 +52,9 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
52
52
  * @param currentState
53
53
  * @param mutConfiguration
54
54
  */
55
- export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined, event: TEvent): State<TContext, TEvent, any>;
56
- export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], event: TEvent, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined): {
57
- nextState: AnyState;
58
- };
59
- export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, event: TMachine['__TEvent'], actorCtx: AnyActorContext | undefined): {
55
+ export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext, event: TEvent): State<TContext, TEvent, any>;
56
+ export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], event: TEvent, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined): [AnyState, BaseActionObject[]];
57
+ export declare function macrostep(state: AnyState, event: EventObject, actorCtx: AnyActorContext): {
60
58
  state: typeof state;
61
59
  microstates: Array<typeof state>;
62
60
  };
@@ -76,12 +76,12 @@ export type MachineContext = Record<string, any>;
76
76
  export interface ActionMeta<TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> extends StateMeta<TEvent> {
77
77
  action: TAction;
78
78
  }
79
- export type Spawner = <T extends ActorBehavior<any, any> | string>(// TODO: read string from machine behavior keys
80
- behavior: T, options?: Partial<{
79
+ export type Spawner = <T extends ActorLogic<any, any> | string>(// TODO: read string from machine logic keys
80
+ logic: T, options?: Partial<{
81
81
  id: string;
82
82
  systemId?: string;
83
83
  input: any;
84
- }>) => T extends ActorBehavior<infer TActorEvent, infer TActorEmitted> ? ActorRef<TActorEvent, TActorEmitted> : ActorRef<any, any>;
84
+ }>) => T extends ActorLogic<infer TActorEvent, infer TActorEmitted, infer _, infer __, infer ___> ? ActorRef<TActorEvent, TActorEmitted> : ActorRef<any, any>;
85
85
  export interface AssignMeta<TExpressionEvent extends EventObject, _TEvent extends EventObject> extends StateMeta<TExpressionEvent> {
86
86
  action: BaseActionObject;
87
87
  event: TExpressionEvent;
@@ -182,17 +182,10 @@ type ExtractWithSimpleSupport<T extends {
182
182
  export type Receiver<TEvent extends EventObject> = (listener: {
183
183
  bivarianceHack(event: TEvent): void;
184
184
  }['bivarianceHack']) => void;
185
- export type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (sendBack: (event: TSentEvent) => void, onReceive: Receiver<TEvent>, { input }: {
185
+ export type InvokeCallback<TEvent extends EventObject = AnyEventObject, TSentEvent extends EventObject = AnyEventObject> = (sendBack: (event: TSentEvent) => void, onReceive: Receiver<TEvent>, { input, system }: {
186
186
  input: any;
187
+ system: AnyActorSystem;
187
188
  }) => (() => void) | Promise<any> | void;
188
- export type ActorBehaviorCreator<TContext extends MachineContext, TEvent extends EventObject, TActorBehavior extends AnyActorBehavior = AnyActorBehavior> = (context: TContext, event: TEvent, meta: {
189
- id: string;
190
- data?: any;
191
- src: string;
192
- event: TEvent;
193
- meta: MetaObject | undefined;
194
- input: any;
195
- }) => TActorBehavior;
196
189
  export interface InvokeMeta {
197
190
  src: string;
198
191
  meta: MetaObject | undefined;
@@ -201,7 +194,7 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
201
194
  id: string;
202
195
  systemId: string | undefined;
203
196
  /**
204
- * The source of the actor's behavior to be invoked
197
+ * The source of the actor logic to be invoked
205
198
  */
206
199
  src: string;
207
200
  input?: Mapper<TContext, TEvent, any> | any;
@@ -259,7 +252,7 @@ export interface InvokeConfig<TContext extends MachineContext, TEvent extends Ev
259
252
  /**
260
253
  * The source of the machine to be invoked, or the machine itself.
261
254
  */
262
- src: string | ActorBehavior<any, any>;
255
+ src: string | ActorLogic<any, any>;
263
256
  input?: Mapper<TContext, TEvent, any> | any;
264
257
  /**
265
258
  * The transition to take upon the invoked child machine reaching its final top-level state.
@@ -428,8 +421,8 @@ export type DelayConfig<TContext extends MachineContext, TEvent extends EventObj
428
421
  export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> {
429
422
  guards: Record<string, GuardPredicate<TContext, TEvent>>;
430
423
  actions: ActionFunctionMap<TContext, TEvent, TAction>;
431
- actors: Record<string, AnyActorBehavior | {
432
- src: AnyActorBehavior;
424
+ actors: Record<string, AnyActorLogic | {
425
+ src: AnyActorLogic;
433
426
  input: Mapper<TContext, TEvent, any> | any;
434
427
  }>;
435
428
  delays: DelayFunctionMap<TContext, TEvent>;
@@ -446,8 +439,8 @@ type MachineImplementationsGuards<TContext extends MachineContext, TResolvedType
446
439
  [K in keyof TEventsCausingGuards]?: GuardPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
447
440
  };
448
441
  type MachineImplementationsActors<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActors'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, _TInvokeSrcNameMap = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'invokeSrcNameMap'>> = {
449
- [K in keyof TEventsCausingActors]?: AnyActorBehavior | {
450
- src: AnyActorBehavior;
442
+ [K in keyof TEventsCausingActors]?: AnyActorLogic | {
443
+ src: AnyActorLogic;
451
444
  input: Mapper<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActors[K]>, EventObject>, any> | any;
452
445
  };
453
446
  };
@@ -782,9 +775,7 @@ export interface StateLike<TContext extends MachineContext> {
782
775
  export interface StateConfig<TContext extends MachineContext, TEvent extends EventObject> {
783
776
  value: StateValue;
784
777
  context: TContext;
785
- event: TEvent;
786
778
  historyValue?: HistoryValue<TContext, TEvent>;
787
- actions?: BaseActionObject[];
788
779
  meta?: any;
789
780
  configuration?: Array<StateNode<TContext, TEvent>>;
790
781
  transitions?: Array<TransitionDefinition<TContext, TEvent>>;
@@ -795,7 +786,7 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
795
786
  machine?: StateMachine<TContext, TEvent, any, any, any>;
796
787
  _internalQueue?: Array<TEvent>;
797
788
  }
798
- export interface InterpreterOptions<_TActorBehavior extends AnyActorBehavior> {
789
+ export interface InterpreterOptions<_TActorLogic extends AnyActorLogic> {
799
790
  /**
800
791
  * Whether state actions should be executed immediately upon transition. Defaults to `true`.
801
792
  */
@@ -855,7 +846,6 @@ export interface Subscribable<T> extends InteropSubscribable<T> {
855
846
  subscribe(observer: Observer<T>): Subscription;
856
847
  subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
857
848
  }
858
- export type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | ActorBehavior<any, any>;
859
849
  export type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends any ? TEventType extends TEvent['type'] ? TEvent : never : never;
860
850
  export interface BaseActorRef<TEvent extends EventObject> {
861
851
  send: (event: TEvent) => void;
@@ -883,9 +873,9 @@ export interface ActorRef<TEvent extends EventObject, TSnapshot = any> extends S
883
873
  export type AnyActorRef = ActorRef<any, any>;
884
874
  export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, any, any, infer TResolvedTypesMeta> ? ActorRef<TEvent, State<TContext, TEvent, AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta> extends false ? MarkAllImplementationsAsProvided<TResolvedTypesMeta> : TResolvedTypesMeta>> : R extends Promise<infer U> ? ActorRef<{
885
875
  type: string;
886
- }, U | undefined> : R extends ActorBehavior<infer TEvent, infer TSnapshot> ? ActorRef<TEvent, TSnapshot> : never : never;
876
+ }, U | undefined> : R extends ActorLogic<infer TEvent, infer TSnapshot> ? ActorRef<TEvent, TSnapshot> : never : never;
887
877
  export type DevToolsAdapter = (service: AnyInterpreter) => void;
888
- export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, any, any, infer TResolvedTypesMeta> ? Interpreter<ActorBehavior<TEvent, State<TContext, TEvent, TResolvedTypesMeta>, State<TContext, TEvent, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>>> : never;
878
+ export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, any, any, infer TResolvedTypesMeta> ? Interpreter<ActorLogic<TEvent, State<TContext, TEvent, TResolvedTypesMeta>, State<TContext, TEvent, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>>> : never;
889
879
  export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, any, any, infer TResolvedTypesMeta> ? InternalMachineImplementations<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
890
880
  export type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
891
881
  export type EventOfMachine<TMachine extends AnyStateMachine> = TMachine extends StateMachine<any, infer E, any, any, any> ? E : never;
@@ -899,7 +889,7 @@ export interface ActorContext<TEvent extends EventObject, TSnapshot, TSystem ext
899
889
  stopChild: (child: AnyActorRef) => void;
900
890
  }
901
891
  export type AnyActorContext = ActorContext<any, any, any>;
902
- export interface ActorBehavior<TEvent extends EventObject, TSnapshot = any, TInternalState = any,
892
+ export interface ActorLogic<TEvent extends EventObject, TSnapshot = any, TInternalState = TSnapshot,
903
893
  /**
904
894
  * Serialized internal state used for persistence & restoration
905
895
  */
@@ -919,14 +909,14 @@ TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>
919
909
  */
920
910
  getPersistedState?: (state: TInternalState) => TPersisted;
921
911
  }
922
- export type AnyActorBehavior = ActorBehavior<any, any, any, any>;
923
- export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Interpreter<infer TBehavior> ? SnapshotFrom<TBehavior> : R extends StateMachine<infer _, infer __, infer ___, infer ____, infer _____> ? StateFrom<R> : R extends ActorBehavior<infer _, infer TSnapshot, infer __, infer ___, infer ____> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
924
- export type EventFromBehavior<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer TEvent, infer _> ? TEvent : never;
925
- export type PersistedStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
926
- export type InternalStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
912
+ export type AnyActorLogic = ActorLogic<any, any, any, any>;
913
+ export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Interpreter<infer TLogic> ? SnapshotFrom<TLogic> : R extends StateMachine<infer _, infer __, infer ___, infer ____, infer _____> ? StateFrom<R> : R extends ActorLogic<infer _, infer TSnapshot, infer __, infer ___, infer ____> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
914
+ export type EventFromLogic<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer TEvent, infer _, infer __, infer ___, infer ____> ? TEvent : never;
915
+ export type PersistedStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
916
+ export type InternalStateFrom<TLogic extends ActorLogic<any, any>> = TLogic extends ActorLogic<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
927
917
  type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer __> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
928
918
  export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
929
- export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends State<infer TContext, infer _, infer __> ? TContext : R extends Interpreter<infer TBehavior> ? TBehavior extends StateMachine<infer TContext, infer _> ? TContext : never : never : never;
919
+ export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends State<infer TContext, infer _, infer __> ? TContext : R extends Interpreter<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _> ? TContext : never : never : never;
930
920
  export type InferEvent<E extends EventObject> = {
931
921
  [T in E['type']]: {
932
922
  type: T;
@@ -937,7 +927,6 @@ export type InferEvent<E extends EventObject> = {
937
927
  export type TODO = any;
938
928
  export type StateValueFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['matches']>[0];
939
929
  export type TagsFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['hasTag']>[0];
940
- export type StateFromMachine<TMachine extends AnyStateMachine> = TMachine['initialState'];
941
930
  export interface ActorSystemInfo {
942
931
  actors: Record<string, AnyActorRef>;
943
932
  }
@@ -948,7 +937,8 @@ export interface ActorSystem<T extends ActorSystemInfo> {
948
937
  _set: <K extends keyof T['actors']>(key: K, actorRef: T['actors'][K]) => void;
949
938
  get: <K extends keyof T['actors']>(key: K) => T['actors'][K] | undefined;
950
939
  }
951
- export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | 'event' | 'done' | 'historyValue'> & {
940
+ export type AnyActorSystem = ActorSystem<any>;
941
+ export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | 'done' | 'historyValue'> & {
952
942
  children: {
953
943
  [K in keyof TState['children']]: {
954
944
  state: any;
@@ -1,7 +1,7 @@
1
- import { AnyActorBehavior, AnyState } from "./index.js";
1
+ import { AnyActorLogic, AnyState } from "./index.js";
2
2
  import { NULL_EVENT } from "./constants.js";
3
3
  import type { StateNode } from "./StateNode.js";
4
- import type { ActorBehavior, AnyEventObject, EventObject, EventType, InvokeConfig, MachineContext, Mapper, Observer, PropertyMapper, ErrorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfig, TransitionConfigTarget } from "./types.js";
4
+ import type { ActorLogic, AnyEventObject, EventObject, EventType, InvokeConfig, MachineContext, Mapper, Observer, PropertyMapper, ErrorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfig, TransitionConfigTarget } from "./types.js";
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;
7
7
  export declare function toStatePath(stateId: string | string[], delimiter: string): string[];
@@ -30,7 +30,7 @@ export declare function toArray<T>(value: T[] | T | undefined): T[];
30
30
  export declare function mapContext<TContext extends MachineContext, TEvent extends EventObject>(mapper: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>, context: TContext, event: TEvent): any;
31
31
  export declare function isBuiltInEvent(eventType: EventType): boolean;
32
32
  export declare function isPromiseLike(value: any): value is PromiseLike<any>;
33
- export declare function isBehavior(value: any): value is ActorBehavior<any, any>;
33
+ export declare function isActorLogic(value: any): value is ActorLogic<any, any>;
34
34
  export declare function partition<T, A extends T, B extends T>(items: T[], predicate: (item: T) => item is A): [A[], B[]];
35
35
  export declare function isArray(value: any): value is any[];
36
36
  export declare function isFunction(value: any): value is Function;
@@ -43,13 +43,13 @@ export declare function toTransitionConfigArray<TContext extends MachineContext,
43
43
  }>;
44
44
  export declare function normalizeTarget<TContext extends MachineContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, TEvent>> | undefined): Array<string | StateNode<TContext, TEvent>> | undefined;
45
45
  export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
46
- export declare function toInvokeConfig<TContext extends MachineContext, TEvent extends EventObject>(invocable: InvokeConfig<TContext, TEvent> | string | ActorBehavior<any, any>, id: string): InvokeConfig<TContext, TEvent>;
46
+ export declare function toInvokeConfig<TContext extends MachineContext, TEvent extends EventObject>(invocable: InvokeConfig<TContext, TEvent> | string | ActorLogic<any, any>, id: string): InvokeConfig<TContext, TEvent>;
47
47
  export declare function toObserver<T>(nextHandler?: Observer<T> | ((value: T) => void), errorHandler?: (error: any) => void, completionHandler?: () => void): Observer<T>;
48
48
  export declare function createInvokeId(stateNodeId: string, index: number): string;
49
- export declare function resolveReferencedActor(referenced: AnyActorBehavior | {
50
- src: AnyActorBehavior;
49
+ export declare function resolveReferencedActor(referenced: AnyActorLogic | {
50
+ src: AnyActorLogic;
51
51
  input: Mapper<any, any, any> | any;
52
52
  } | undefined): {
53
- src: AnyActorBehavior;
53
+ src: AnyActorLogic;
54
54
  input: Mapper<any, any, any> | any;
55
55
  } | undefined;