xstate 5.0.0-alpha.6 → 5.0.0-beta.11

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 (94) hide show
  1. package/actions/dist/xstate-actions.cjs.d.mts +2 -0
  2. package/actions/dist/xstate-actions.cjs.d.mts.map +1 -0
  3. package/actions/dist/xstate-actions.cjs.d.ts +1 -0
  4. package/actions/dist/xstate-actions.cjs.d.ts.map +1 -0
  5. package/actions/dist/xstate-actions.cjs.js +29 -5
  6. package/actions/dist/xstate-actions.cjs.mjs +24 -0
  7. package/actions/dist/{xstate-actions.cjs.dev.js → xstate-actions.development.cjs.js} +3 -3
  8. package/actions/dist/xstate-actions.development.esm.js +2 -0
  9. package/actions/dist/xstate-actions.esm.js +2 -2
  10. package/actions/dist/xstate-actions.umd.min.js +1 -1
  11. package/actions/dist/xstate-actions.umd.min.js.map +1 -1
  12. package/actors/dist/xstate-actors.cjs.d.mts +2 -0
  13. package/actors/dist/xstate-actors.cjs.d.mts.map +1 -0
  14. package/actors/dist/xstate-actors.cjs.d.ts +1 -0
  15. package/actors/dist/xstate-actors.cjs.d.ts.map +1 -0
  16. package/actors/dist/xstate-actors.cjs.js +20 -5
  17. package/actors/dist/xstate-actors.cjs.mjs +15 -0
  18. package/actors/dist/{xstate-actors.cjs.dev.js → xstate-actors.development.cjs.js} +3 -2
  19. package/actors/dist/xstate-actors.development.esm.js +2 -0
  20. package/actors/dist/xstate-actors.esm.js +2 -2
  21. package/actors/dist/xstate-actors.umd.min.js +1 -1
  22. package/actors/dist/xstate-actors.umd.min.js.map +1 -1
  23. package/dev/dist/xstate-dev.cjs.d.mts +2 -0
  24. package/dev/dist/xstate-dev.cjs.d.mts.map +1 -0
  25. package/dev/dist/xstate-dev.cjs.d.ts +1 -0
  26. package/dev/dist/xstate-dev.cjs.d.ts.map +1 -0
  27. package/dev/dist/xstate-dev.cjs.js +45 -4
  28. package/dev/dist/xstate-dev.cjs.mjs +5 -0
  29. package/{dist/index-ebaab3c9.cjs.dev.js → dev/dist/xstate-dev.development.cjs.js} +6 -7
  30. package/{dist/index-50bd0aff.esm.js → dev/dist/xstate-dev.development.esm.js} +6 -8
  31. package/dev/dist/xstate-dev.esm.js +42 -1
  32. package/dev/dist/xstate-dev.umd.min.js +1 -1
  33. package/dev/dist/xstate-dev.umd.min.js.map +1 -1
  34. package/dist/actions-26f9aa9d.cjs.js +3388 -0
  35. package/dist/actions-acbe7aa1.development.cjs.js +3423 -0
  36. package/dist/actions-b82e841e.esm.js +3306 -0
  37. package/dist/actions-cff79077.development.esm.js +3341 -0
  38. package/dist/declarations/src/State.d.ts +2 -3
  39. package/dist/declarations/src/StateMachine.d.ts +6 -6
  40. package/dist/declarations/src/StateNode.d.ts +3 -9
  41. package/dist/declarations/src/actions/send.d.ts +0 -7
  42. package/dist/declarations/src/actions.d.ts +9 -8
  43. package/dist/declarations/src/actors/index.d.ts +2 -1
  44. package/dist/declarations/src/actors/observable.d.ts +1 -2
  45. package/dist/declarations/src/actors/promise.d.ts +1 -2
  46. package/dist/declarations/src/guards.d.ts +2 -2
  47. package/dist/declarations/src/index.d.ts +13 -29
  48. package/dist/declarations/src/interpreter.d.ts +5 -4
  49. package/dist/declarations/src/stateUtils.d.ts +9 -14
  50. package/dist/declarations/src/typegenTypes.d.ts +7 -1
  51. package/dist/declarations/src/types.d.ts +18 -92
  52. package/dist/declarations/src/utils.d.ts +3 -6
  53. package/dist/declarations/src/waitFor.d.ts +33 -0
  54. package/dist/xstate.cjs.d.mts +2 -0
  55. package/dist/xstate.cjs.d.mts.map +1 -0
  56. package/dist/xstate.cjs.d.ts +1 -0
  57. package/dist/xstate.cjs.d.ts.map +1 -0
  58. package/dist/xstate.cjs.js +802 -4
  59. package/dist/xstate.cjs.mjs +38 -0
  60. package/dist/xstate.development.cjs.js +808 -0
  61. package/dist/xstate.development.esm.js +770 -0
  62. package/dist/xstate.esm.js +594 -706
  63. package/dist/xstate.umd.min.js +1 -1
  64. package/dist/xstate.umd.min.js.map +1 -1
  65. package/guards/dist/xstate-guards.cjs.d.mts +2 -0
  66. package/guards/dist/xstate-guards.cjs.d.mts.map +1 -0
  67. package/guards/dist/xstate-guards.cjs.d.ts +1 -0
  68. package/guards/dist/xstate-guards.cjs.d.ts.map +1 -0
  69. package/guards/dist/xstate-guards.cjs.js +13 -5
  70. package/guards/dist/xstate-guards.cjs.mjs +8 -0
  71. package/guards/dist/{xstate-guards.cjs.dev.js → xstate-guards.development.cjs.js} +2 -2
  72. package/guards/dist/xstate-guards.development.esm.js +2 -0
  73. package/guards/dist/xstate-guards.esm.js +2 -2
  74. package/guards/dist/xstate-guards.umd.min.js +1 -1
  75. package/guards/dist/xstate-guards.umd.min.js.map +1 -1
  76. package/package.json +58 -1
  77. package/actions/dist/xstate-actions.cjs.prod.js +0 -31
  78. package/actors/dist/xstate-actors.cjs.prod.js +0 -21
  79. package/dev/dist/xstate-dev.cjs.dev.js +0 -11
  80. package/dev/dist/xstate-dev.cjs.prod.js +0 -48
  81. package/dist/actions-41b74cdc.esm.js +0 -4287
  82. package/dist/actions-bf7bb1c5.cjs.dev.js +0 -4342
  83. package/dist/actions-c46e4911.cjs.prod.js +0 -4304
  84. package/dist/declarations/actions/dynamicAction.d.ts +0 -5
  85. package/dist/declarations/src/Mailbox.d.ts +0 -12
  86. package/dist/declarations/src/actions/invoke.d.ts +0 -3
  87. package/dist/declarations/src/environment.d.ts +0 -1
  88. package/dist/declarations/src/memo.d.ts +0 -2
  89. package/dist/declarations/src/schema.d.ts +0 -2
  90. package/dist/declarations/src/spawn.d.ts +0 -2
  91. package/dist/declarations/src/system.d.ts +0 -2
  92. package/dist/xstate.cjs.dev.js +0 -921
  93. package/dist/xstate.cjs.prod.js +0 -921
  94. package/guards/dist/xstate-guards.cjs.prod.js +0 -15
@@ -1,6 +1,6 @@
1
1
  import type { StateNode } from './StateNode.ts';
2
2
  import { TypegenDisabled, TypegenEnabled } from './typegenTypes.ts';
3
- import type { ActorRef, AnyState, AnyStateMachine, BaseActionObject, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, SCXML, StateConfig, StateValue, TransitionDefinition } from './types.ts';
3
+ import type { ActorRef, AnyState, AnyStateMachine, BaseActionObject, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TransitionDefinition } from './types.ts';
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.
@@ -22,8 +22,7 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
22
22
  historyValue: Readonly<HistoryValue<TContext, TEvent>>;
23
23
  actions: BaseActionObject[];
24
24
  event: TEvent;
25
- _internalQueue: Array<SCXML.Event<TEvent>>;
26
- _event: SCXML.Event<TEvent>;
25
+ _internalQueue: Array<TEvent>;
27
26
  _initial: boolean;
28
27
  /**
29
28
  * Indicates whether the state has changed from the previous state. A state is considered "changed" if:
@@ -1,11 +1,11 @@
1
1
  import { State } from './State.ts';
2
2
  import { StateNode } from './StateNode.ts';
3
3
  import type { AreAllImplementationsAssumedToBeProvided, MarkAllImplementationsAsProvided, ResolveTypegenMeta, TypegenDisabled } from './typegenTypes.ts';
4
- import type { ActorContext, ActorMap, ActorBehavior, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineSchema, NoInfer, SCXML, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext } from './types.ts';
4
+ import type { ActorContext, ActorMap, ActorBehavior, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineTypes, NoInfer, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext } from './types.ts';
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 | SCXML.Event<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 ActorBehavior<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
  */
@@ -21,7 +21,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
21
21
  */
22
22
  delimiter: string;
23
23
  options: MachineImplementationsSimplified<TContext, TEvent>;
24
- schema: MachineSchema<TContext, TEvent>;
24
+ types: MachineTypes<TContext, TEvent>;
25
25
  __xstatenode: true;
26
26
  idMap: Map<string, StateNode<TContext, TEvent>>;
27
27
  root: StateNode<TContext, TEvent>;
@@ -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 | SCXML.Event<TEvent>, actorCtx?: ActorContext<TEvent, State<TContext, TEvent, any>>): State<TContext, TEvent, TResolvedTypesMeta>;
62
+ transition(state: StateValue | State<TContext, TEvent, TResolvedTypesMeta> | undefined, 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,8 +67,8 @@ 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 | SCXML.Event<TEvent>, actorCtx?: AnyActorContext | undefined): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
71
- getTransitionData(state: State<TContext, TEvent, TResolvedTypesMeta>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>>;
70
+ microstep(state: State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent, actorCtx?: AnyActorContext | undefined): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
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.
@@ -1,4 +1,4 @@
1
- import type { EventObject, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, StateNodeConfig, StateNodesConfig, InvokeDefinition, Mapper, PropertyMapper, SCXML, TransitionDefinitionMap, InitialTransitionDefinition, MachineContext, BaseActionObject } from './types.ts';
1
+ import type { EventObject, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, StateNodeConfig, StateNodesConfig, InvokeDefinition, Mapper, PropertyMapper, TransitionDefinitionMap, InitialTransitionDefinition, MachineContext, BaseActionObject } from './types.ts';
2
2
  import type { State } from './State.ts';
3
3
  import type { StateMachine } from './StateMachine.ts';
4
4
  interface StateNodeOptions<TContext extends MachineContext, TEvent extends EventObject> {
@@ -69,7 +69,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
69
69
  */
70
70
  output?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
71
71
  /**
72
- * The order this state node appears. Corresponds to the implicit SCXML document order.
72
+ * The order this state node appears. Corresponds to the implicit document order.
73
73
  */
74
74
  order: number;
75
75
  description?: string;
@@ -97,13 +97,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
97
97
  get on(): TransitionDefinitionMap<TContext, TEvent>;
98
98
  get after(): Array<DelayedTransitionDefinition<TContext, TEvent>>;
99
99
  get initial(): InitialTransitionDefinition<TContext, TEvent>;
100
- /**
101
- * Returns `true` if this state node explicitly handles the given event.
102
- *
103
- * @param event The event in question
104
- */
105
- handles(event: TEvent): boolean;
106
- next(state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): TransitionDefinition<TContext, TEvent>[] | undefined;
100
+ next(state: State<TContext, TEvent>, event: TEvent): TransitionDefinition<TContext, TEvent>[] | undefined;
107
101
  /**
108
102
  * The target state value of the history state node, if it exists. This represents the
109
103
  * default state value to transition to if no history value exists yet.
@@ -20,13 +20,6 @@ export declare function send<TContext extends MachineContext, TEvent extends Eve
20
20
  * @param options Options to pass into the send event.
21
21
  */
22
22
  export declare function sendParent<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): BaseDynamicActionObject<TContext, TEvent, TEvent, SendActionObject<AnyEventObject>, SendActionParams<TContext, TEvent, EventObject>>;
23
- /**
24
- * Sends an event back to the sender of the original event.
25
- *
26
- * @param event The event to send back to the sender
27
- * @param options Options to pass into the send event
28
- */
29
- export declare function respond<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: TEvent | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): BaseDynamicActionObject<TContext, TEvent, TEvent, SendActionObject<AnyEventObject>, SendActionParams<TContext, TEvent, EventObject>>;
30
23
  /**
31
24
  * Forwards (sends) an event to a specified service.
32
25
  *
@@ -1,16 +1,17 @@
1
- import { Action, EventObject, SingleOrArray, ActionFunction, ActionFunctionMap, ActionTypes, DoneEvent, ErrorPlatformEvent, DoneEventObject, MachineContext, BaseActionObject, SCXML } from './types.ts';
1
+ import { Action, EventObject, SingleOrArray, ActionFunction, ActionFunctionMap, ActionTypes, DoneEvent, ErrorPlatformEvent, DoneEventObject, MachineContext, BaseActionObject } from './types.ts';
2
2
  import * as actionTypes from './actionTypes.ts';
3
- export { send, sendTo, sendParent, respond, forwardTo, escalate } from './actions/send.ts';
3
+ export { send, sendTo, sendParent, forwardTo, escalate } from './actions/send.ts';
4
4
  export { stop } from './actions/stop.ts';
5
5
  export { log } from './actions/log.ts';
6
6
  export { cancel } from './actions/cancel.ts';
7
7
  export { assign } from './actions/assign.ts';
8
8
  export { raise } from './actions/raise.ts';
9
9
  export { choose } from './actions/choose.ts';
10
+ export { pure } from './actions/pure.ts';
10
11
  export { actionTypes };
11
- export declare const initEvent: SCXML.Event<{
12
+ export declare const initEvent: {
12
13
  type: ActionTypes;
13
- }>;
14
+ };
14
15
  export declare function resolveActionObject(actionObject: BaseActionObject, actionFunctionMap: ActionFunctionMap<any, any>): BaseActionObject;
15
16
  export declare function toActionObject<TContext extends MachineContext, TEvent extends EventObject>(action: BaseActionObject | ActionFunction<TContext, TEvent> | string): BaseActionObject;
16
17
  export declare const toActionObjects: <TContext extends MachineContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined) => BaseActionObject[];
@@ -41,7 +42,7 @@ export declare function done(id: string, output?: any): DoneEventObject;
41
42
  */
42
43
  export declare function doneInvoke(invokeId: string, output?: any): DoneEvent;
43
44
  export declare function error(id: string, data?: any): ErrorPlatformEvent & string;
44
- export declare function createInitEvent(input: any): SCXML.Event<{
45
- type: ActionTypes.Init;
46
- input: any;
47
- }>;
45
+ export declare function createInitEvent(input: any): {
46
+ readonly type: ActionTypes.Init;
47
+ readonly input: any;
48
+ };
@@ -1,4 +1,4 @@
1
- import type { EventObject, ActorRef, BaseActorRef } from '../types.ts';
1
+ import type { EventObject, ActorRef, BaseActorRef, AnyEventObject } from '../types.ts';
2
2
  export { fromTransition } from './transition.ts';
3
3
  export { fromPromise } from './promise.ts';
4
4
  export { fromObservable, fromEventObservable } from './observable.ts';
@@ -25,3 +25,4 @@ export type LifecycleSignalType = typeof startSignalType | typeof stopSignalType
25
25
  export declare function isSignal(eventType: string): eventType is LifecycleSignalType;
26
26
  export declare function isActorRef(item: any): item is ActorRef<any>;
27
27
  export declare function toActorRef<TEvent extends EventObject, TSnapshot = any, TActorRefLike extends BaseActorRef<TEvent> = BaseActorRef<TEvent>>(actorRefLike: TActorRefLike): ActorRef<TEvent, TSnapshot> & Omit<TActorRefLike, keyof ActorRef<any, any>>;
28
+ export declare function createEmptyActor(): ActorRef<AnyEventObject, undefined>;
@@ -1,8 +1,7 @@
1
1
  import { Subscribable, ActorBehavior, EventObject, Subscription } from '../types';
2
2
  export interface ObservableInternalState<T> {
3
3
  subscription: Subscription | undefined;
4
- canceled: boolean;
5
- status: 'active' | 'done' | 'error';
4
+ status: 'active' | 'done' | 'error' | 'canceled';
6
5
  data: T | undefined;
7
6
  input?: any;
8
7
  }
@@ -1,7 +1,6 @@
1
1
  import { ActorBehavior } from '../types';
2
2
  export interface PromiseInternalState<T> {
3
- status: 'active' | 'error' | 'done';
4
- canceled: boolean;
3
+ status: 'active' | 'error' | 'done' | 'canceled';
5
4
  data: T | undefined;
6
5
  input?: any;
7
6
  }
@@ -1,8 +1,8 @@
1
- import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, SCXML, GuardPredicate, MachineContext } from './types.ts';
1
+ import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, GuardPredicate, MachineContext } from './types.ts';
2
2
  import type { State } from './State.ts';
3
3
  export declare function stateIn<TContext extends MachineContext, TEvent extends EventObject>(stateValue: StateValue): GuardDefinition<TContext, TEvent>;
4
4
  export declare function not<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardConfig<TContext, TEvent>): BooleanGuardDefinition<TContext, TEvent>;
5
5
  export declare function and<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
6
6
  export declare function or<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
7
- export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>): boolean;
7
+ export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>): boolean;
8
8
  export declare function toGuardDefinition<TContext extends MachineContext, TEvent extends EventObject>(guardConfig: GuardConfig<TContext, TEvent>, getPredicate?: (guardType: string) => GuardPredicate<TContext, TEvent>): GuardDefinition<TContext, TEvent>;
@@ -1,42 +1,26 @@
1
- import { after, done, doneInvoke, escalate, forwardTo, respond, sendParent, sendTo } from './actions.ts';
2
- import { assign } from './actions/assign.ts';
3
- import { cancel } from './actions/cancel.ts';
4
- import { choose } from './actions/choose.ts';
5
- import { log } from './actions/log.ts';
6
- import { pure } from './actions/pure.ts';
7
- import { raise } from './actions/raise.ts';
8
- import { send } from './actions/send.ts';
9
- import { stop } from './actions/stop.ts';
1
+ import { doneInvoke, forwardTo, sendParent, sendTo } from './actions.ts';
2
+ export { assign } from './actions/assign.ts';
3
+ export { cancel } from './actions/cancel.ts';
4
+ export { choose } from './actions/choose.ts';
5
+ export { log } from './actions/log.ts';
6
+ export { pure } from './actions/pure.ts';
7
+ export { raise } from './actions/raise.ts';
8
+ export { stop } from './actions/stop.ts';
10
9
  import { interpret, Interpreter, ActorStatus } from './interpreter.ts';
11
10
  import { createMachine } from './Machine.ts';
12
11
  import { mapState } from './mapState.ts';
13
12
  import { State } from './State.ts';
14
13
  import { StateNode } from './StateNode.ts';
15
- export { createSchema, t } from './schema.ts';
16
14
  export { SimulatedClock } from './SimulatedClock.ts';
17
15
  export { StateMachine } from './StateMachine.ts';
18
16
  export { getStateNodes } from './stateUtils.ts';
17
+ export { waitFor } from './waitFor.ts';
19
18
  export * from './typegenTypes.ts';
20
19
  export * from './types.ts';
21
- export { matchesState, pathToStateValue, toObserver, toSCXMLEvent } from './utils.ts';
22
- export { StateNode, State, mapState, actions, assign, send, sendTo, sendParent, forwardTo, interpret, Interpreter, ActorStatus as InterpreterStatus, doneInvoke, createMachine };
23
- declare const actions: {
24
- raise: typeof raise;
25
- send: typeof send;
26
- sendParent: typeof sendParent;
27
- sendTo: typeof sendTo;
28
- log: typeof log;
29
- cancel: typeof cancel;
30
- stop: typeof stop;
31
- assign: typeof assign;
32
- after: typeof after;
33
- done: typeof done;
34
- respond: typeof respond;
35
- forwardTo: typeof forwardTo;
36
- escalate: typeof escalate;
37
- choose: typeof choose;
38
- pure: typeof pure;
39
- };
20
+ export { matchesState, pathToStateValue, toObserver } from './utils.ts';
21
+ export { StateNode, State, mapState, sendTo, sendParent, forwardTo, interpret, Interpreter, ActorStatus as InterpreterStatus, doneInvoke, createMachine };
22
+ export { fromPromise, fromObservable, fromCallback, fromEventObservable, fromTransition } from './actors/index.ts';
23
+ export { stateIn, not, and, or } from './guards.ts';
40
24
  declare global {
41
25
  interface SymbolConstructor {
42
26
  readonly observable: symbol;
@@ -1,7 +1,7 @@
1
1
  import { symbolObservable } from './symbolObservable.ts';
2
- import { AreAllImplementationsAssumedToBeProvided } from './typegenTypes.ts';
2
+ import { AreAllImplementationsAssumedToBeProvided, MissingImplementationsError } from './typegenTypes.ts';
3
3
  import type { ActorSystem, AnyActorBehavior, AnyStateMachine, EventFromBehavior, InterpreterFrom, PersistedStateFrom, RaiseActionObject, SnapshotFrom } from './types.ts';
4
- import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer, SCXML, SendActionObject, Subscription } from './types.ts';
4
+ import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer, SendActionObject, Subscription } from './types.ts';
5
5
  export type SnapshotListener<TBehavior extends AnyActorBehavior> = (state: SnapshotFrom<TBehavior>) => void;
6
6
  export type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
7
7
  export type Listener = () => void;
@@ -77,13 +77,14 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
77
77
  */
78
78
  stop(): this;
79
79
  private _complete;
80
+ private _error;
80
81
  private _stopProcedure;
81
82
  /**
82
83
  * Sends an event to the running interpreter to trigger a transition.
83
84
  *
84
85
  * @param event The event to send
85
86
  */
86
- send(event: TEvent | SCXML.Event<TEvent>): void;
87
+ send(event: TEvent): void;
87
88
  delaySend(sendAction: SendActionObject | RaiseActionObject<any, any, any>): void;
88
89
  cancel(sendId: string | number): void;
89
90
  private attachDevTools;
@@ -100,5 +101,5 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
100
101
  * @param machine The machine to interpret
101
102
  * @param options Interpreter options
102
103
  */
103
- export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : 'Some implementations missing', options?: InterpreterOptions<TMachine>): InterpreterFrom<TMachine>;
104
+ export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : MissingImplementationsError<TMachine['__TResolvedTypesMeta']>, options?: InterpreterOptions<TMachine>): InterpreterFrom<TMachine>;
104
105
  export declare function interpret<TBehavior extends AnyActorBehavior>(behavior: TBehavior, options?: InterpreterOptions<TBehavior>): Interpreter<TBehavior>;
@@ -1,4 +1,4 @@
1
- import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, SCXML, StateValueMap, InitialTransitionConfig, MachineContext } from './types.ts';
1
+ import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, StateValueMap, InitialTransitionConfig, MachineContext } from './types.ts';
2
2
  import { State } from './State.ts';
3
3
  import { NULL_EVENT } from './constants.ts';
4
4
  import type { StateNode } from './StateNode.ts';
@@ -11,12 +11,7 @@ export declare function getAdjList<TContext extends MachineContext, TE extends E
11
11
  export declare function getStateValue(rootNode: AnyStateNode, configuration: AnyConfiguration): StateValue;
12
12
  export declare function isInFinalState(configuration: Array<AnyStateNode>, stateNode?: AnyStateNode): boolean;
13
13
  export declare const isStateId: (str: string) => boolean;
14
- export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
15
- /**
16
- * If `true`, will use SCXML event partial token matching semantics
17
- * without the need for the ".*" suffix
18
- */
19
- partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
14
+ export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type']): Array<TransitionDefinition<any, TEvent>>;
20
15
  /**
21
16
  * All delayed transitions from the config.
22
17
  */
@@ -44,10 +39,10 @@ export declare function getStateNodeByPath(stateNode: AnyStateNode, statePath: s
44
39
  * @param state The state value or State instance
45
40
  */
46
41
  export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent>): Array<AnyStateNode>;
47
- export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
48
- export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
49
- export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
50
- export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
42
+ export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
43
+ export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
44
+ export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
45
+ export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
51
46
  export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, configuration: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
52
47
  /**
53
48
  * https://www.w3.org/TR/scxml/#microstepProcedure
@@ -57,11 +52,11 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
57
52
  * @param currentState
58
53
  * @param mutConfiguration
59
54
  */
60
- export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined, scxmlEvent: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
61
- export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], scxmlEvent: SCXML.Event<TEvent>, currentState: State<TContext, TEvent, any>, 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 | 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): {
62
57
  nextState: AnyState;
63
58
  };
64
- export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, scxmlEvent: SCXML.Event<TMachine['__TEvent']>, actorCtx: AnyActorContext | undefined): {
59
+ export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, event: TMachine['__TEvent'], actorCtx: AnyActorContext | undefined): {
65
60
  state: typeof state;
66
61
  microstates: Array<typeof state>;
67
62
  };
@@ -1,4 +1,4 @@
1
- import { EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.ts';
1
+ import { Compute, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.ts';
2
2
  export interface TypegenDisabled {
3
3
  '@@xstate/typegen': false;
4
4
  }
@@ -86,6 +86,12 @@ export type TypegenConstraint = TypegenEnabled | TypegenDisabled;
86
86
  export type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
87
87
  [K in keyof TMissingImplementations]: TMissingImplementations[K];
88
88
  }>> extends true ? true : false : true;
89
+ export type MissingImplementationsError<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<[
90
+ 'Some implementations missing',
91
+ Values<{
92
+ [K in keyof TMissingImplementations]: TMissingImplementations[K];
93
+ }>
94
+ ]>;
89
95
  interface AllImplementationsProvided {
90
96
  missingImplementations: {
91
97
  actions: never;
@@ -58,7 +58,7 @@ export interface UnifiedArg<TContext extends MachineContext, TEvent extends Even
58
58
  export interface BaseDynamicActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TResolvedAction extends BaseActionObject, TDynamicParams extends Record<string, any>> {
59
59
  type: `xstate.${string}`;
60
60
  params: TDynamicParams;
61
- resolve: (_event: SCXML.Event<TExpressionEvent>, extra: {
61
+ resolve: (event: TExpressionEvent, extra: {
62
62
  state: State<TContext, TEvent>;
63
63
  /**
64
64
  * The original action object
@@ -75,7 +75,6 @@ export interface BaseDynamicActionObject<TContext extends MachineContext, TExpre
75
75
  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
- _event: SCXML.Event<TEvent>;
79
78
  }
80
79
  export type Spawner = <T extends ActorBehavior<any, any> | string>(// TODO: read string from machine behavior keys
81
80
  behavior: T, options?: Partial<{
@@ -84,7 +83,7 @@ behavior: T, options?: Partial<{
84
83
  }>) => T extends ActorBehavior<infer TActorEvent, infer TActorEmitted> ? ActorRef<TActorEvent, TActorEmitted> : ActorRef<any, any>;
85
84
  export interface AssignMeta<TExpressionEvent extends EventObject, _TEvent extends EventObject> extends StateMeta<TExpressionEvent> {
86
85
  action: BaseActionObject;
87
- _event: SCXML.Event<TExpressionEvent>;
86
+ event: TExpressionEvent;
88
87
  spawn: Spawner;
89
88
  }
90
89
  export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TEvent extends EventObject = TExpressionEvent> = (args: {
@@ -92,7 +91,7 @@ export type ActionFunction<TContext extends MachineContext, TExpressionEvent ext
92
91
  event: TExpressionEvent;
93
92
  } & ActionMeta<TEvent, TAction>) => void;
94
93
  export interface ChooseCondition<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> {
95
- guard?: GuardConfig<TContext, TEvent>;
94
+ guard?: GuardConfig<TContext, TExpressionEvent>;
96
95
  actions: Actions<TContext, TExpressionEvent, TEvent>;
97
96
  }
98
97
  export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = ActionType | ParameterizedObject | ActionFunction<TContext, TExpressionEvent, ParameterizedObject, TEvent> | BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, any, any>;
@@ -126,10 +125,9 @@ export interface DefaultGuardObject<TContext extends MachineContext, TEvent exte
126
125
  children?: Array<GuardObject<TContext, TEvent>>;
127
126
  predicate?: GuardPredicate<TContext, TEvent>;
128
127
  }
129
- export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, _event: SCXML.Event<TEvent>, state: State<TContext, TEvent>) => boolean;
128
+ export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>) => boolean;
130
129
  export interface GuardMeta<TContext extends MachineContext, TEvent extends EventObject> {
131
130
  state: State<TContext, TEvent, any>;
132
- _event: SCXML.Event<TEvent>;
133
131
  guard: GuardDefinition<TContext, TEvent>;
134
132
  evaluate: GuardEvaluator<TContext, TEvent>;
135
133
  }
@@ -161,7 +159,7 @@ export type TransitionTarget = SingleOrArray<string>;
161
159
  export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject> {
162
160
  guard?: GuardConfig<TContext, TExpressionEvent>;
163
161
  actions?: BaseActions<TContext, TExpressionEvent, TEvent, TAction>;
164
- external?: boolean;
162
+ reenter?: boolean;
165
163
  target?: TransitionTarget | undefined;
166
164
  meta?: Record<string, any>;
167
165
  description?: string;
@@ -190,7 +188,7 @@ export type ActorBehaviorCreator<TContext extends MachineContext, TEvent extends
190
188
  id: string;
191
189
  data?: any;
192
190
  src: string;
193
- _event: SCXML.Event<TEvent>;
191
+ event: TEvent;
194
192
  meta: MetaObject | undefined;
195
193
  input: any;
196
194
  }) => TActorBehavior;
@@ -357,7 +355,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
357
355
  */
358
356
  delimiter?: string;
359
357
  /**
360
- * The order this state node appears. Corresponds to the implicit SCXML document order.
358
+ * The order this state node appears. Corresponds to the implicit document order.
361
359
  */
362
360
  order?: number;
363
361
  /**
@@ -486,17 +484,12 @@ export interface MachineConfig<TContext extends MachineContext, TEvent extends E
486
484
  * The machine's own version.
487
485
  */
488
486
  version?: string;
489
- /**
490
- * If `true`, will use SCXML semantics, such as event token matching.
491
- */
492
- scxml?: boolean;
493
- schema?: MachineSchema<TContext, TEvent, TActorMap>;
494
- tsTypes?: TTypesMeta;
487
+ types?: MachineTypes<TContext, TEvent, TActorMap, TTypesMeta>;
495
488
  }
496
489
  export type ActorMap = Record<string, {
497
490
  output: any;
498
491
  }>;
499
- export interface MachineSchema<TContext extends MachineContext, TEvent extends EventObject, TActorMap extends ActorMap = ActorMap> {
492
+ export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActorMap extends ActorMap = ActorMap, TTypesMeta = TypegenDisabled> {
500
493
  context?: TContext;
501
494
  actions?: {
502
495
  type: string;
@@ -508,6 +501,7 @@ export interface MachineSchema<TContext extends MachineContext, TEvent extends E
508
501
  type: string;
509
502
  [key: string]: any;
510
503
  };
504
+ typegen?: TTypesMeta;
511
505
  }
512
506
  export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
513
507
  history: 'shallow' | 'deep';
@@ -540,7 +534,6 @@ export interface RaiseActionObject<TContext extends MachineContext, TExpressionE
540
534
  type: ActionTypes.Raise;
541
535
  params: {
542
536
  event: TEvent;
543
- _event: SCXML.Event<TEvent>;
544
537
  delay: RaiseActionOptions<TContext, TExpressionEvent>['delay'];
545
538
  id: string | number;
546
539
  };
@@ -565,10 +558,6 @@ export interface ErrorExecutionEvent extends EventObject {
565
558
  export interface ErrorPlatformEvent extends EventObject {
566
559
  data: any;
567
560
  }
568
- export interface SCXMLErrorEvent extends SCXML.Event<any> {
569
- name: ActionTypes.ErrorExecution | ActionTypes.ErrorPlatform | ActionTypes.ErrorCommunication;
570
- data: any;
571
- }
572
561
  export interface DoneEventObject extends EventObject {
573
562
  output?: any;
574
563
  toString(): string;
@@ -626,7 +615,6 @@ export interface SendActionObject<TSentEvent extends EventObject = AnyEventObjec
626
615
  type: 'xstate.send';
627
616
  params: {
628
617
  to: ActorRef<TSentEvent> | undefined;
629
- _event: SCXML.Event<TSentEvent>;
630
618
  event: TSentEvent;
631
619
  delay?: number;
632
620
  id: string | number;
@@ -731,7 +719,7 @@ export interface TransitionDefinition<TContext extends MachineContext, TEvent ex
731
719
  target: Array<StateNode<TContext, TEvent>> | undefined;
732
720
  source: StateNode<TContext, TEvent>;
733
721
  actions: BaseActionObject[];
734
- external: boolean;
722
+ reenter: boolean;
735
723
  guard?: GuardDefinition<TContext, TEvent>;
736
724
  eventType: TEvent['type'] | '*';
737
725
  toJSON: () => {
@@ -782,7 +770,6 @@ export interface Segment<TContext extends MachineContext, TEvent extends EventOb
782
770
  event: TEvent;
783
771
  }
784
772
  export interface StateMeta<TEvent extends EventObject> {
785
- _event: SCXML.Event<TEvent>;
786
773
  self: ActorRef<TEvent>;
787
774
  system: ActorSystem<any>;
788
775
  }
@@ -790,12 +777,11 @@ export interface StateLike<TContext extends MachineContext> {
790
777
  value: StateValue;
791
778
  context: TContext;
792
779
  event: EventObject;
793
- _event: SCXML.Event<EventObject>;
794
780
  }
795
781
  export interface StateConfig<TContext extends MachineContext, TEvent extends EventObject> {
796
782
  value: StateValue;
797
783
  context: TContext;
798
- _event: SCXML.Event<TEvent>;
784
+ event: TEvent;
799
785
  historyValue?: HistoryValue<TContext, TEvent>;
800
786
  actions?: BaseActionObject[];
801
787
  meta?: any;
@@ -806,7 +792,7 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
806
792
  output?: any;
807
793
  tags?: Set<string>;
808
794
  machine?: StateMachine<TContext, TEvent, any, any, any>;
809
- _internalQueue?: Array<SCXML.Event<TEvent>>;
795
+ _internalQueue?: Array<TEvent>;
810
796
  }
811
797
  export interface InterpreterOptions<_TActorBehavior extends AnyActorBehavior> {
812
798
  /**
@@ -850,68 +836,6 @@ export interface InterpreterOptions<_TActorBehavior extends AnyActorBehavior> {
850
836
  src?: string;
851
837
  }
852
838
  export type AnyInterpreter = Interpreter<any>;
853
- export declare namespace SCXML {
854
- interface Event<TEvent extends EventObject> {
855
- /**
856
- * This is a character string giving the name of the event.
857
- * The SCXML Processor must set the name field to the name of this event.
858
- * It is what is matched against the 'event' attribute of <transition>.
859
- * Note that transitions can do additional tests by using the value of this field
860
- * inside boolean expressions in the 'cond' attribute.
861
- */
862
- name: string;
863
- /**
864
- * This field describes the event type.
865
- * The SCXML Processor must set it to: "platform" (for events raised by the platform itself, such as error events),
866
- * "internal" (for events raised by <raise> and <send> with target '_internal')
867
- * or "external" (for all other events).
868
- */
869
- type: 'platform' | 'internal' | 'external';
870
- /**
871
- * If the sending entity has specified a value for this, the Processor must set this field to that value
872
- * (see C Event I/O Processors for details).
873
- * Otherwise, in the case of error events triggered by a failed attempt to send an event,
874
- * the Processor must set this field to the send id of the triggering <send> element.
875
- * Otherwise it must leave it blank.
876
- */
877
- sendid?: string;
878
- /**
879
- * This is a URI, equivalent to the 'target' attribute on the <send> element.
880
- * For external events, the SCXML Processor should set this field to a value which,
881
- * when used as the value of 'target', will allow the receiver of the event to <send>
882
- * a response back to the originating entity via the Event I/O Processor specified in 'origintype'.
883
- * For internal and platform events, the Processor must leave this field blank.
884
- */
885
- origin?: ActorRef<any>;
886
- /**
887
- * This is equivalent to the 'type' field on the <send> element.
888
- * For external events, the SCXML Processor should set this field to a value which,
889
- * when used as the value of 'type', will allow the receiver of the event to <send>
890
- * a response back to the originating entity at the URI specified by 'origin'.
891
- * For internal and platform events, the Processor must leave this field blank.
892
- */
893
- origintype?: string;
894
- /**
895
- * If this event is generated from an invoked child process, the SCXML Processor
896
- * must set this field to the invoke id of the invocation that triggered the child process.
897
- * Otherwise it must leave it blank.
898
- */
899
- invokeid?: string;
900
- /**
901
- * This field contains whatever data the sending entity chose to include in this event.
902
- * The receiving SCXML Processor should reformat this data to match its data model,
903
- * but must not otherwise modify it.
904
- *
905
- * If the conversion is not possible, the Processor must leave the field blank
906
- * and must place an error 'error.execution' in the internal event queue.
907
- */
908
- data: TEvent;
909
- /**
910
- * @private
911
- */
912
- $$type: 'scxml';
913
- }
914
- }
915
839
  export type Observer<T> = {
916
840
  next?: (value: T) => void;
917
841
  error?: (err: any) => void;
@@ -979,6 +903,7 @@ export interface ActorBehavior<TEvent extends EventObject, TSnapshot = any, TInt
979
903
  * Serialized internal state used for persistence & restoration
980
904
  */
981
905
  TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>> {
906
+ config?: unknown;
982
907
  transition: (state: TInternalState, message: TEvent | LifecycleSignal, ctx: ActorContext<TEvent, TSnapshot, TSystem>) => TInternalState;
983
908
  getInitialState: (actorCtx: ActorContext<TEvent, TSnapshot, any>, input: any) => TInternalState;
984
909
  restoreState?: (persistedState: TPersisted, actorCtx: ActorContext<TEvent, TSnapshot>) => TInternalState;
@@ -994,11 +919,11 @@ TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>
994
919
  getPersistedState?: (state: TInternalState) => TPersisted;
995
920
  }
996
921
  export type AnyActorBehavior = ActorBehavior<any, any, any, any>;
997
- 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 ActorBehavior<infer _, infer TSnapshot> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
922
+ 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;
998
923
  export type EventFromBehavior<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer TEvent, infer _> ? TEvent : never;
999
924
  export type PersistedStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
1000
925
  export type InternalStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
1001
- 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 Interpreter<infer _, infer TEvent> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
926
+ 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;
1002
927
  export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
1003
928
  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;
1004
929
  export type InferEvent<E extends EventObject> = {
@@ -1010,6 +935,7 @@ export type InferEvent<E extends EventObject> = {
1010
935
  }[E['type']];
1011
936
  export type TODO = any;
1012
937
  export type StateValueFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['matches']>[0];
938
+ export type TagsFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['hasTag']>[0];
1013
939
  export type StateFromMachine<TMachine extends AnyStateMachine> = TMachine['initialState'];
1014
940
  export interface ActorSystemInfo {
1015
941
  actors: Record<string, AnyActorRef>;
@@ -1021,7 +947,7 @@ export interface ActorSystem<T extends ActorSystemInfo> {
1021
947
  _set: <K extends keyof T['actors']>(key: K, actorRef: T['actors'][K]) => void;
1022
948
  get: <K extends keyof T['actors']>(key: K) => T['actors'][K] | undefined;
1023
949
  }
1024
- export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | '_event' | 'done' | 'historyValue'> & {
950
+ export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | 'event' | 'done' | 'historyValue'> & {
1025
951
  children: {
1026
952
  [K in keyof TState['children']]: {
1027
953
  state: any;