xstate 6.0.0-alpha.11 → 6.0.0-alpha.13

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/dist/{StateMachine-0aa98f54.development.esm.js → StateMachine-193c2d4d.development.esm.js} +43 -2
  2. package/dist/{StateMachine-aef700df.cjs.js → StateMachine-1b26c5de.cjs.js} +43 -2
  3. package/dist/{StateMachine-da872dde.development.cjs.js → StateMachine-3120a7ff.development.cjs.js} +43 -2
  4. package/dist/{StateMachine-d4931336.esm.js → StateMachine-614c0f36.esm.js} +43 -2
  5. package/dist/declarations/src/StateMachine.d.ts +1 -0
  6. package/dist/declarations/src/actors/promise.d.ts +4 -2
  7. package/dist/declarations/src/createActor.d.ts +2 -8
  8. package/dist/declarations/src/createMachineFromConfig.d.ts +56 -25
  9. package/dist/declarations/src/fsm.d.ts +74 -0
  10. package/dist/declarations/src/index.d.ts +2 -1
  11. package/dist/declarations/src/serialize.d.ts +8 -22
  12. package/dist/declarations/src/setup.d.ts +54 -23
  13. package/dist/declarations/src/stateUtils.d.ts +3 -1
  14. package/dist/declarations/src/transitionActions.d.ts +1 -1
  15. package/dist/declarations/src/types.d.ts +17 -7
  16. package/dist/declarations/src/types.v6.d.ts +25 -6
  17. package/dist/{index-219cb621.development.cjs.js → index-08d86676.development.cjs.js} +48 -27
  18. package/dist/{index-559ceab3.cjs.js → index-32631949.cjs.js} +48 -27
  19. package/dist/{index-8828376f.esm.js → index-603c1cda.esm.js} +45 -28
  20. package/dist/{index-2f2fbd9b.development.esm.js → index-7081e0c9.development.esm.js} +45 -28
  21. package/dist/xstate-actors.cjs.js +1 -1
  22. package/dist/xstate-actors.development.cjs.js +1 -1
  23. package/dist/xstate-actors.development.esm.js +1 -1
  24. package/dist/xstate-actors.esm.js +1 -1
  25. package/dist/xstate-actors.umd.min.js.map +1 -1
  26. package/dist/xstate-graph.cjs.js +2 -2
  27. package/dist/xstate-graph.development.cjs.js +2 -2
  28. package/dist/xstate-graph.development.esm.js +2 -2
  29. package/dist/xstate-graph.esm.js +2 -2
  30. package/dist/xstate-graph.umd.min.js +1 -1
  31. package/dist/xstate-graph.umd.min.js.map +1 -1
  32. package/dist/xstate.cjs.js +835 -144
  33. package/dist/xstate.cjs.mjs +1 -0
  34. package/dist/xstate.development.cjs.js +835 -144
  35. package/dist/xstate.development.cjs.mjs +1 -0
  36. package/dist/xstate.development.esm.js +838 -148
  37. package/dist/xstate.esm.js +838 -148
  38. package/dist/xstate.umd.min.js +1 -1
  39. package/dist/xstate.umd.min.js.map +1 -1
  40. package/package.json +1 -1
@@ -4,7 +4,7 @@ import { type Actor, type RequiredActorOptionsKeys } from "./createActor.js";
4
4
  import { AnyActorRef, AnyActorLogic, ActorRefFromLogic, AnyStateNode, EventObject, AnyEventObject, EventDescriptor, ExtractEvent, MachineContext, ProvidedActor, RoutableStateId, StateSchema, StateValue, ToChildren, MetaObject, Cast, Compute, EnqueueObject, SystemRegistry, RegistryKeyForLogic, ActorOptions, Observer, Subscription, OutputArg } from "./types.js";
5
5
  import { AnyActorSystem } from "./system.js";
6
6
  import { InspectionEvent } from "./inspection.js";
7
- import { DelayMapFromNames, InferChildren, Implementations, InferOutput, InferEvents, Next_MachineConfig, Next_StateNodeConfig, WithDefault } from "./types.v6.js";
7
+ import { ActionSchemas, DelayMapFromNames, GuardSchemas, InferChildren, InferActions, InferGuards, Implementations, InferOutput, InferEvents, Next_MachineConfig, Next_StateNodeConfig, WithDefault } from "./types.v6.js";
8
8
  export type SetupConfig<TSchemas extends SetupSchemas, TStates extends Record<string, SetupStateSchema>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays']> = {
9
9
  schemas?: TSchemas & SetupSchemas;
10
10
  states?: TStates;
@@ -57,6 +57,8 @@ export type SetupStateSchemas = {
57
57
  export type SetupSchemas = {
58
58
  context?: StandardSchemaV1;
59
59
  events?: Record<string, StandardSchemaV1>;
60
+ actions?: ActionSchemas;
61
+ guards?: GuardSchemas;
60
62
  emitted?: Record<string, StandardSchemaV1>;
61
63
  input?: StandardSchemaV1;
62
64
  output?: StandardSchemaV1;
@@ -71,7 +73,9 @@ export interface SetupStateSchema {
71
73
  }
72
74
  type SetupSchema<TSchemas, TKey extends keyof SetupSchemas> = TKey extends keyof TSchemas ? TSchemas[TKey] extends StandardSchemaV1 ? TSchemas[TKey] : never : never;
73
75
  type SetupSchemaMap<TSchemas, TKey extends 'events' | 'emitted' | 'children'> = TKey extends keyof TSchemas ? TSchemas[TKey] extends Record<string, StandardSchemaV1> ? TSchemas[TKey] : never : never;
74
- type SetupOrConfigSchema<TSchemas, TKey extends Exclude<keyof SetupSchemas, 'events' | 'emitted'>, TConfigSchema extends StandardSchemaV1> = [SetupSchema<TSchemas, TKey>] extends [never] ? TConfigSchema : SetupSchema<TSchemas, TKey>;
76
+ type SetupActionSchemaMap<TSchemas> = 'actions' extends keyof TSchemas ? TSchemas['actions'] extends ActionSchemas ? TSchemas['actions'] : never : never;
77
+ type SetupGuardSchemaMap<TSchemas> = 'guards' extends keyof TSchemas ? TSchemas['guards'] extends GuardSchemas ? TSchemas['guards'] : never : never;
78
+ type SetupOrConfigSchema<TSchemas, TKey extends Exclude<keyof SetupSchemas, 'events' | 'actions' | 'guards' | 'emitted' | 'children'>, TConfigSchema extends StandardSchemaV1> = [SetupSchema<TSchemas, TKey>] extends [never] ? TConfigSchema : SetupSchema<TSchemas, TKey>;
75
79
  type SetupOrConfigSchemaMap<TSchemas, TKey extends 'events' | 'emitted' | 'children', TConfigSchemaMap extends Record<string, StandardSchemaV1>> = [SetupSchemaMap<TSchemas, TKey>] extends [never] ? TConfigSchemaMap : SetupSchemaMap<TSchemas, TKey>;
76
80
  type SetupStateKeys<TStateSchemas extends Record<string, SetupStateSchema>> = keyof TStateSchemas & string;
77
81
  type SetupStateKey<TStateSchemas extends Record<string, SetupStateSchema>> = string extends SetupStateKeys<TStateSchemas> ? string : [SetupStateKeys<TStateSchemas>] extends [never] ? string : SetupStateKeys<TStateSchemas>;
@@ -115,6 +119,12 @@ type SetupMeta<TSchemas, TMetaSchema extends StandardSchemaV1> = [
115
119
  SetupSchema<TSchemas, 'meta'>
116
120
  ] extends [never] ? InferOutput<TMetaSchema, MetaObject> : InferOutput<SetupSchema<TSchemas, 'meta'>, MetaObject>;
117
121
  type SetupChildren<TSchemas, TChildrenSchemaMap extends Record<string, StandardSchemaV1>> = [SetupSchemaMap<TSchemas, 'children'>] extends [never] ? InferChildren<TChildrenSchemaMap> : InferChildren<SetupSchemaMap<TSchemas, 'children'>>;
122
+ type SetupActions<TSchemas, TActionMap extends Implementations['actions']> = [
123
+ SetupActionSchemaMap<TSchemas>
124
+ ] extends [never] ? TActionMap : MergeImplementationMaps<InferActions<SetupActionSchemaMap<TSchemas>>, TActionMap>;
125
+ type SetupGuards<TSchemas, TGuardMap extends Implementations['guards']> = [
126
+ SetupGuardSchemaMap<TSchemas>
127
+ ] extends [never] ? TGuardMap : MergeImplementationMaps<InferGuards<SetupGuardSchemaMap<TSchemas>>, TGuardMap>;
118
128
  type MergeChildren<TChildren extends Record<string, AnyActorRef | undefined>, TActor extends ProvidedActor> = [keyof TChildren] extends [never] ? Compute<ToChildren<TActor>> : Compute<TChildren>;
119
129
  type MergeImplementationMaps<TBase extends Record<string, unknown>, TExtension extends Record<string, unknown>> = Compute<TBase & TExtension>;
120
130
  type DelayNamesFromConfigOrString<TConfig> = TConfig extends {
@@ -212,32 +222,32 @@ type SetupMachineConfig<TStateSchemas extends Record<string, SetupStateSchema>,
212
222
  initial?: SetupStateKey<TStateSchemas> | InitialTransitionWithInput<TStateSchemas, TContext, TEvent> | undefined;
213
223
  on?: StateTransitions<TStateSchemas, TContext, SetupContextShape<TSchemas, TContextSchema, TContext>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
214
224
  always?: StateTransitionConfigOrTarget<TStateSchemas, TContext, SetupContextShape<TSchemas, TContextSchema, TContext>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
215
- states?: StatesWithInput<TStateSchemas, TStateSchemas, TContext, SetupContextShape<TSchemas, TContextSchema, TContext>, TEvent, TChildren, TDelays, TTag, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
225
+ states?: StatesWithInput<TStateSchemas, TStateSchemas, TContext, SetupContextShape<TSchemas, TContextSchema, TContext>, TEvent, TChildren, TDelays, TTag, SetupOutput<TSchemas, TOutputSchema>, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
216
226
  };
217
227
  /** States config type that provides typed input for known states */
218
- type StatesWithInput<TRootStateSchemas extends Record<string, SetupStateSchema>, TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TDelays extends string, TTag extends string, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = {
219
- [K in keyof TStateSchemas & string]?: StateNodeConfigWithNestedInput<TRootStateSchemas, TStateSchemas[K], TContext, TContextShape, TEvent, TChildren, TDelays, TTag, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
228
+ type StatesWithInput<TRootStateSchemas extends Record<string, SetupStateSchema>, TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TDelays extends string, TTag extends string, TOutput, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = {
229
+ [K in keyof TStateSchemas & string]?: StateNodeConfigWithNestedInput<TRootStateSchemas, TStateSchemas[K], TContext, TContextShape, TEvent, TChildren, TDelays, TTag, TOutput, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
220
230
  };
221
231
  /** State node config that recursively applies typed input for nested states */
222
- type StateNodeConfigWithNestedInput<TSiblingStateSchemas extends Record<string, SetupStateSchema>, TStateSchema extends SetupStateSchema, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TDelays extends string, TTag extends string, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = WithNestedStates<Omit<Next_StateNodeConfig<StateContext<TStateSchema, TContext>, TEvent, TDelays, TTag, any, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, StateInput<TStateSchema>, Record<string, unknown>, TSystemRegistry>, 'on' | 'always' | 'initial'> & {
232
+ type StateNodeConfigWithNestedInput<TSiblingStateSchemas extends Record<string, SetupStateSchema>, TStateSchema extends SetupStateSchema, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TDelays extends string, TTag extends string, TOutput, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = WithNestedStates<Omit<Next_StateNodeConfig<StateContext<TStateSchema, TContext>, TEvent, TDelays, TTag, TOutput, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, StateInput<TStateSchema>, Record<string, unknown>, TSystemRegistry>, 'on' | 'always' | 'initial'> & {
223
233
  initial?: TStateSchema['states'] extends Record<string, SetupStateSchema> ? SetupStateKey<TStateSchema['states']> | InitialTransitionWithInput<TStateSchema['states'], StateContext<TStateSchema, TContext>, TEvent> : string | {
224
234
  target: string;
225
235
  input?: Record<string, unknown>;
226
236
  } | undefined;
227
237
  on?: StateTransitions<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
228
238
  always?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
229
- }, TStateSchema['states'] extends Record<string, SetupStateSchema> ? StatesWithInput<TStateSchema['states'], TStateSchema['states'], TContext, StateContextShape<TStateSchema, TContextShape>, TEvent, TChildren, TDelays, TTag, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> : {
230
- [K in string]?: Next_StateNodeConfig<TContext, TEvent, TDelays, TTag, any, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, undefined, Record<string, unknown>, TSystemRegistry>;
239
+ }, TStateSchema['states'] extends Record<string, SetupStateSchema> ? StatesWithInput<TStateSchema['states'], TStateSchema['states'], TContext, StateContextShape<TStateSchema, TContextShape>, TEvent, TChildren, TDelays, TTag, TOutput, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> : {
240
+ [K in string]?: Next_StateNodeConfig<TContext, TEvent, TDelays, TTag, TOutput, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, undefined, Record<string, unknown>, TSystemRegistry>;
231
241
  }>;
232
242
  type StateTransitions<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = {
233
243
  [K in EventDescriptor<TEvent>]?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, ExtractEvent<TEvent, K>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
234
244
  };
235
- type StateTransitionConfigOrTarget<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = undefined | StateTransitionObjectConfig<TStateSchemas, TContext, TContextShape, TExpressionEvent, TMeta> | StateTransitionFunction<TStateSchemas, TContext, TContextShape, TExpressionEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
236
- type StateTransitionObjectConfig<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TMeta extends MetaObject> = (StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta> & {
245
+ type StateTransitionConfigOrTarget<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = undefined | StateTransitionObjectConfig<TStateSchemas, TContext, TContextShape, TExpressionEvent, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> | StateTransitionFunction<TStateSchemas, TContext, TContextShape, TExpressionEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
246
+ type StateTransitionObjectConfig<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = (StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, true> & {
237
247
  description?: string;
238
248
  }) | {
239
249
  target: SetupStateTarget<TStateSchemas>[];
240
- context?: ContextPatch<TContextShape, TContextShape, TContext>;
250
+ context?: StateTransitionContext<true, TContext, TContextShape, TContextShape, TContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
241
251
  description?: string;
242
252
  reenter?: boolean;
243
253
  meta?: TMeta;
@@ -246,6 +256,21 @@ type StateTransitionObjectConfig<TStateSchemas extends Record<string, SetupState
246
256
  event: TExpressionEvent;
247
257
  } & OutputArg<TExpressionEvent>) => Record<string, unknown>);
248
258
  };
259
+ type StateTransitionContextMapper<TContext extends MachineContext, TContextShape, TTargetContextShape, TResolvedTargetContext extends MachineContext, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = (args: {
260
+ context: TContext;
261
+ event: TExpressionEvent;
262
+ self: AnyActorRef;
263
+ parent: AnyActorRef | undefined;
264
+ value: StateValue;
265
+ children: TChildren;
266
+ system: SystemRuntime<TSystemRegistry>;
267
+ actions: TActionMap;
268
+ actorSources: TActorMap;
269
+ guards: TGuardMap;
270
+ delays: TDelayMap;
271
+ } & OutputArg<TExpressionEvent>) => ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext>;
272
+ type StateTransitionContextOrMapper<TContext extends MachineContext, TContextShape, TTargetContextShape, TResolvedTargetContext extends MachineContext, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext> | StateTransitionContextMapper<TContext, TContextShape, TTargetContextShape, TResolvedTargetContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
273
+ type StateTransitionContext<TAllowMapper extends boolean, TContext extends MachineContext, TContextShape, TTargetContextShape, TResolvedTargetContext extends MachineContext, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = TAllowMapper extends true ? StateTransitionContextOrMapper<TContext, TContextShape, TTargetContextShape, TResolvedTargetContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> : ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext>;
249
274
  type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = (args: {
250
275
  context: TContext;
251
276
  event: TExpressionEvent;
@@ -258,10 +283,10 @@ type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSche
258
283
  actorSources: TActorMap;
259
284
  guards: TGuardMap;
260
285
  delays: TDelayMap;
261
- } & OutputArg<TExpressionEvent>, enq: EnqueueObject<TEvent, TEmitted, TSystemRegistry>) => StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta> | void;
262
- type StateTransitionResult<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TMeta extends MetaObject> = {
286
+ } & OutputArg<TExpressionEvent>, enq: EnqueueObject<TEvent, TEmitted, TSystemRegistry>) => StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, false> | void;
287
+ type StateTransitionResult<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TMeta extends MetaObject, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry, TAllowContextMapper extends boolean> = {
263
288
  target?: never;
264
- context?: ContextPatch<TContextShape, TContextShape, TContext>;
289
+ context?: StateTransitionContext<TAllowContextMapper, TContext, TContextShape, TContextShape, TContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
265
290
  reenter?: boolean;
266
291
  meta?: TMeta;
267
292
  } | {
@@ -276,17 +301,21 @@ type StateTransitionResult<TStateSchemas extends Record<string, SetupStateSchema
276
301
  } & ([TContextShape] extends [
277
302
  StateContextShape<TStateSchemas[K], TContextShape>
278
303
  ] ? {
279
- context?: ContextPatch<TContextShape, StateContextShape<TStateSchemas[K], TContextShape>, StateContext<TStateSchemas[K], TContext>>;
304
+ context?: StateTransitionContext<TAllowContextMapper, TContext, TContextShape, StateContextShape<TStateSchemas[K], TContextShape>, StateContext<TStateSchemas[K], TContext>, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
280
305
  } : {
281
- context: ContextPatch<TContextShape, StateContextShape<TStateSchemas[K], TContextShape>, StateContext<TStateSchemas[K], TContext>>;
306
+ context: StateTransitionContext<TAllowContextMapper, TContext, TContextShape, StateContextShape<TStateSchemas[K], TContextShape>, StateContext<TStateSchemas[K], TContext>, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
282
307
  });
283
308
  }[keyof TStateSchemas & string] | {
284
309
  target: Exclude<SetupStateTarget<TStateSchemas>, keyof TStateSchemas & string>;
285
- context?: ContextPatch<TContextShape, TContextShape, TContext>;
310
+ context?: StateTransitionContext<TAllowContextMapper, TContext, TContextShape, TContextShape, TContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
286
311
  reenter?: boolean;
287
312
  meta?: TMeta;
288
313
  };
289
- type ContextPatch<TCurrentContext, TTargetContext, TResolvedTargetContext extends MachineContext> = Compute<Partial<TResolvedTargetContext> & Pick<TResolvedTargetContext, Extract<RequiredContextKeys<TCurrentContext, TTargetContext>, string>>>;
314
+ type ContextPatch<TCurrentContext, TTargetContext, TResolvedTargetContext extends MachineContext> = Compute<Partial<TResolvedTargetContext> & Pick<TResolvedTargetContext, Extract<RequiredContextKeys<TCurrentContext, TTargetContext>, string>> & {
315
+ call?: never;
316
+ apply?: never;
317
+ bind?: never;
318
+ }>;
290
319
  type RequiredContextKeys<TCurrentContext, TTargetContext> = {
291
320
  [K in keyof TTargetContext]-?: K extends keyof TCurrentContext ? [TCurrentContext[K]] extends [TTargetContext[K]] ? never : K : K;
292
321
  }[keyof TTargetContext];
@@ -305,11 +334,13 @@ export interface SetupReturn<TStates extends Record<string, SetupStateSchema> =
305
334
  /** Extends the setup configuration */
306
335
  extend<const TExtendSchemas extends SetupSchemas = {}, const TExtendStates extends Record<string, SetupStateSchema> = {}, TExtendActionMap extends Implementations['actions'] = {}, TExtendActorMap extends Implementations['actorSources'] = {}, TExtendGuardMap extends Implementations['guards'] = {}, TExtendDelayMap extends Implementations['delays'] = {}>(config: SetupConfig<TExtendSchemas, TExtendStates, TExtendActionMap, TExtendActorMap, TExtendGuardMap, TExtendDelayMap>): SetupReturn<MergeImplementationMaps<TStates, TExtendStates>, MergeImplementationMaps<TSchemas, TExtendSchemas>, MergeImplementationMaps<TSetupActionMap, TExtendActionMap>, MergeImplementationMaps<TSetupActorMap, TExtendActorMap>, MergeImplementationMaps<TSetupGuardMap, TExtendGuardMap>, MergeImplementationMaps<TSetupDelayMap, TExtendDelayMap>, TSetupDelays | Extract<keyof TExtendDelayMap, string>, TSystemRegistry>;
307
336
  /** Creates a state machine with the setup configuration */
308
- createMachine<TContextSchema extends StandardSchemaV1 = StandardSchemaV1, const TEventSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, TEmittedSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, TInputSchema extends StandardSchemaV1 = StandardSchemaV1, TOutputSchema extends StandardSchemaV1 = StandardSchemaV1, TMetaSchema extends StandardSchemaV1 = StandardSchemaV1, TTagSchema extends StandardSchemaV1 = StandardSchemaV1, const TChildrenSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, _TEvent extends EventObject = EventObject, TActor extends ProvidedActor = ProvidedActor, TActionMap extends Implementations['actions'] = {}, TActorMap extends Implementations['actorSources'] = {}, TGuardMap extends Implementations['guards'] = {}, TDelayMap extends Implementations['delays'] = {}, TDelays extends string = Extract<keyof TDelayMap, string>, TTag extends SetupTags<TSchemas, TTagSchema> = SetupTags<TSchemas, TTagSchema>, TInput = unknown, TConfig extends SetupMachineConfig<TStates, TSchemas, TContextSchema, TEventSchemaMap, TEmittedSchemaMap, TInputSchema, TOutputSchema, TMetaSchema, TTagSchema, TChildrenSchemaMap, SetupContext<TSchemas, TContextSchema>, SetupEvents<TSchemas, TEventSchemaMap>, Cast<MergeChildren<SetupChildren<TSchemas, TChildrenSchemaMap>, TActor>, Record<string, AnyActorRef | undefined>>, TSetupDelays | TDelays, TTag, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeImplementationMaps<TSetupActionMap, TActionMap>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<TSetupGuardMap, TGuardMap>, MergeImplementationMaps<TSetupDelayMap, TDelayMap>, TSystemRegistry, SetupContextRequired<TSchemas, TContextSchema>, TDelays, TActionMap, TActorMap, TGuardMap> = SetupMachineConfig<TStates, TSchemas, TContextSchema, TEventSchemaMap, TEmittedSchemaMap, TInputSchema, TOutputSchema, TMetaSchema, TTagSchema, TChildrenSchemaMap, SetupContext<TSchemas, TContextSchema>, SetupEvents<TSchemas, TEventSchemaMap>, Cast<MergeChildren<SetupChildren<TSchemas, TChildrenSchemaMap>, TActor>, Record<string, AnyActorRef | undefined>>, TSetupDelays | TDelays, TTag, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeImplementationMaps<TSetupActionMap, TActionMap>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<TSetupGuardMap, TGuardMap>, MergeImplementationMaps<TSetupDelayMap, TDelayMap>, TSystemRegistry, SetupContextRequired<TSchemas, TContextSchema>, TDelays, TActionMap, TActorMap, TGuardMap>>(config: {
337
+ createMachine<TContextSchema extends StandardSchemaV1 = StandardSchemaV1, const TEventSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, TEmittedSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, TInputSchema extends StandardSchemaV1 = StandardSchemaV1, TOutputSchema extends StandardSchemaV1 = StandardSchemaV1, TMetaSchema extends StandardSchemaV1 = StandardSchemaV1, TTagSchema extends StandardSchemaV1 = StandardSchemaV1, const TChildrenSchemaMap extends Record<string, StandardSchemaV1> = Record<string, StandardSchemaV1>, const TActionSchemaMap extends ActionSchemas = {}, const TGuardSchemaMap extends GuardSchemas = {}, _TEvent extends EventObject = EventObject, TActor extends ProvidedActor = ProvidedActor, TActionMap extends Implementations['actions'] = {}, TActorMap extends Implementations['actorSources'] = {}, TGuardMap extends Implementations['guards'] = {}, TDelayMap extends Implementations['delays'] = {}, TDelays extends string = Extract<keyof TDelayMap, string>, TTag extends SetupTags<TSchemas, TTagSchema> = SetupTags<TSchemas, TTagSchema>, TInput = unknown, TConfig extends SetupMachineConfig<TStates, TSchemas, TContextSchema, TEventSchemaMap, TEmittedSchemaMap, TInputSchema, TOutputSchema, TMetaSchema, TTagSchema, TChildrenSchemaMap, SetupContext<TSchemas, TContextSchema>, SetupEvents<TSchemas, TEventSchemaMap>, Cast<MergeChildren<SetupChildren<TSchemas, TChildrenSchemaMap>, TActor>, Record<string, AnyActorRef | undefined>>, TSetupDelays | TDelays, TTag, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeImplementationMaps<SetupActions<TSchemas, TSetupActionMap>, MergeImplementationMaps<InferActions<TActionSchemaMap>, TActionMap>>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<SetupGuards<TSchemas, TSetupGuardMap>, MergeImplementationMaps<InferGuards<TGuardSchemaMap>, TGuardMap>>, MergeImplementationMaps<TSetupDelayMap, TDelayMap>, TSystemRegistry, SetupContextRequired<TSchemas, TContextSchema>, TDelays, TActionMap, TActorMap, TGuardMap> = SetupMachineConfig<TStates, TSchemas, TContextSchema, TEventSchemaMap, TEmittedSchemaMap, TInputSchema, TOutputSchema, TMetaSchema, TTagSchema, TChildrenSchemaMap, SetupContext<TSchemas, TContextSchema>, SetupEvents<TSchemas, TEventSchemaMap>, Cast<MergeChildren<SetupChildren<TSchemas, TChildrenSchemaMap>, TActor>, Record<string, AnyActorRef | undefined>>, TSetupDelays | TDelays, TTag, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeImplementationMaps<SetupActions<TSchemas, TSetupActionMap>, MergeImplementationMaps<InferActions<TActionSchemaMap>, TActionMap>>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<SetupGuards<TSchemas, TSetupGuardMap>, MergeImplementationMaps<InferGuards<TGuardSchemaMap>, TGuardMap>>, MergeImplementationMaps<TSetupDelayMap, TDelayMap>, TSystemRegistry, SetupContextRequired<TSchemas, TContextSchema>, TDelays, TActionMap, TActorMap, TGuardMap>>(config: {
309
338
  schemas?: {
310
339
  events?: TEventSchemaMap;
311
340
  context?: TContextSchema;
312
341
  emitted?: TEmittedSchemaMap;
342
+ actions?: TActionSchemaMap;
343
+ guards?: TGuardSchemaMap;
313
344
  input?: TInputSchema;
314
345
  output?: TOutputSchema;
315
346
  meta?: TMetaSchema;
@@ -325,9 +356,9 @@ export interface SetupReturn<TStates extends Record<string, SetupStateSchema> =
325
356
  to: RoutableStateId<Cast<TConfig, StateSchema>>;
326
357
  }), Cast<MergeChildren<SetupChildren<TSchemas, TChildrenSchemaMap>, TActor>, Record<string, AnyActorRef | undefined>>, StateValue, TTag & string, [
327
358
  SetupSchema<TSchemas, 'input'>
328
- ] extends [never] ? TInput : SetupInput<TSchemas, TInputSchema>, SetupOutput<TSchemas, TOutputSchema>, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeStateSchema<Cast<TConfig, StateSchema>, SetupStatesToStateSchema<TStates>>, MergeImplementationMaps<TSetupActionMap, TActionMap>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<TSetupGuardMap, TGuardMap>, DelayMapFromNames<TSetupDelays | TDelays, MergeImplementationMaps<TSetupDelayMap, TDelayMap>>>;
359
+ ] extends [never] ? TInput : SetupInput<TSchemas, TInputSchema>, SetupOutput<TSchemas, TOutputSchema>, SetupEmitted<TSchemas, TEmittedSchemaMap>, SetupMeta<TSchemas, TMetaSchema>, MergeStateSchema<Cast<TConfig, StateSchema>, SetupStatesToStateSchema<TStates>>, MergeImplementationMaps<SetupActions<TSchemas, TSetupActionMap>, MergeImplementationMaps<InferActions<TActionSchemaMap>, TActionMap>>, MergeImplementationMaps<TSetupActorMap, TActorMap>, MergeImplementationMaps<SetupGuards<TSchemas, TSetupGuardMap>, MergeImplementationMaps<InferGuards<TGuardSchemaMap>, TGuardMap>>, DelayMapFromNames<TSetupDelays | TDelays, MergeImplementationMaps<TSetupDelayMap, TDelayMap>>>;
329
360
  /** Creates a state node config with the setup configuration */
330
- createStateConfig<const TConfig extends StateNodeConfigWithNestedInput<TStates, SetupStateSchema, SetupContext<TSchemas, StandardSchemaV1>, SetupContextShape<TSchemas, StandardSchemaV1, SetupContext<TSchemas, StandardSchemaV1>>, SetupEvents<TSchemas, Record<string, StandardSchemaV1>>, Cast<SetupChildren<TSchemas, Record<string, StandardSchemaV1>>, Record<string, AnyActorRef | undefined>>, string, SetupTags<TSchemas, StandardSchemaV1>, SetupEmitted<TSchemas, Record<string, StandardSchemaV1>>, SetupMeta<TSchemas, StandardSchemaV1>, TSetupActionMap, TSetupActorMap, TSetupGuardMap, TSetupDelayMap, TSystemRegistry>>(config: TConfig): TConfig;
361
+ createStateConfig<const TConfig extends StateNodeConfigWithNestedInput<TStates, SetupStateSchema, SetupContext<TSchemas, StandardSchemaV1>, SetupContextShape<TSchemas, StandardSchemaV1, SetupContext<TSchemas, StandardSchemaV1>>, SetupEvents<TSchemas, Record<string, StandardSchemaV1>>, Cast<SetupChildren<TSchemas, Record<string, StandardSchemaV1>>, Record<string, AnyActorRef | undefined>>, string, SetupTags<TSchemas, StandardSchemaV1>, SetupOutput<TSchemas, StandardSchemaV1>, SetupEmitted<TSchemas, Record<string, StandardSchemaV1>>, SetupMeta<TSchemas, StandardSchemaV1>, SetupActions<TSchemas, TSetupActionMap>, TSetupActorMap, SetupGuards<TSchemas, TSetupGuardMap>, TSetupDelayMap, TSystemRegistry>>(config: TConfig): TConfig;
331
362
  /** State input schemas from setup config */
332
363
  states: TStates;
333
364
  }
@@ -339,13 +370,13 @@ type SetupConfigStates<TConfig> = TConfig extends {
339
370
  } ? TStates extends Record<string, SetupStateSchema> ? TStates : Record<string, SetupStateSchema> : Record<string, SetupStateSchema>;
340
371
  type SetupConfigActions<TConfig> = TConfig extends {
341
372
  actions?: infer TActions;
342
- } ? TActions extends Implementations['actions'] ? TActions : {} : {};
373
+ } ? TActions extends Implementations['actions'] ? MergeImplementationMaps<SetupActions<SetupConfigSchemas<TConfig>, {}>, TActions> : SetupActions<SetupConfigSchemas<TConfig>, {}> : SetupActions<SetupConfigSchemas<TConfig>, {}>;
343
374
  type SetupConfigActorSources<TConfig> = TConfig extends {
344
375
  actorSources?: infer TActorSources;
345
376
  } ? TActorSources extends Implementations['actorSources'] ? TActorSources : {} : {};
346
377
  type SetupConfigGuards<TConfig> = TConfig extends {
347
378
  guards?: infer TGuards;
348
- } ? TGuards extends Implementations['guards'] ? TGuards : {} : {};
379
+ } ? TGuards extends Implementations['guards'] ? MergeImplementationMaps<SetupGuards<SetupConfigSchemas<TConfig>, {}>, TGuards> : SetupGuards<SetupConfigSchemas<TConfig>, {}> : SetupGuards<SetupConfigSchemas<TConfig>, {}>;
349
380
  type SetupConfigDelays<TConfig> = TConfig extends {
350
381
  delays?: infer TDelays;
351
382
  } ? TDelays extends Implementations['delays'] ? TDelays : {} : {};
@@ -40,7 +40,9 @@ export declare function getTransitionResult(transition: Pick<AnyTransitionDefini
40
40
  reenter?: AnyTransitionDefinition['reenter'];
41
41
  input?: AnyTransitionDefinition['input'];
42
42
  context?: AnyTransitionDefinition['context'];
43
- }, snapshot: AnyMachineSnapshot, event: AnyEventObject, actorScope: AnyActorScope): {
43
+ }, snapshot: AnyMachineSnapshot, event: AnyEventObject, actorScope: AnyActorScope, options?: {
44
+ resolveActions?: boolean;
45
+ }): {
44
46
  targets: Readonly<AnyStateNode[]> | undefined;
45
47
  context: MachineContext | undefined;
46
48
  actions: AnyAction[] | undefined;
@@ -1,4 +1,4 @@
1
1
  import type { AnyAction, AnyActorScope, AnyEventObject, AnyMachineSnapshot, EnqueueObject, EventObject, ExecutableActionObject, SpecialExecutableAction } from "./types.js";
2
- export declare function createTransitionEnqueue(actorScope: AnyActorScope, actions: any[], internalEvents: EventObject[], actorSubscriptions?: boolean): EnqueueObject<any, any>;
2
+ export declare function createTransitionEnqueue(actorScope: AnyActorScope, actions: any[], internalEvents: EventObject[], actorSubscriptions?: boolean, createActors?: boolean): EnqueueObject<any, any>;
3
3
  export declare function isBuiltInExecutableAction(action: ExecutableActionObject): action is SpecialExecutableAction;
4
4
  export declare function resolveActionsWithContext(currentSnapshot: AnyMachineSnapshot, event: AnyEventObject, actorScope: AnyActorScope, actions: AnyAction[]): [AnyMachineSnapshot, ExecutableActionObject[]];
@@ -130,12 +130,18 @@ export interface StateValueMap {
130
130
  */
131
131
  export type StateValue = string | StateValueMap;
132
132
  export type TransitionTarget = SingleOrArray<string>;
133
+ export type TransitionContextPatch<TContext extends MachineContext> = Partial<TContext> & {
134
+ call?: never;
135
+ apply?: never;
136
+ bind?: never;
137
+ };
138
+ export type TransitionContextMapper<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>) => TransitionContextPatch<_TCtx>;
133
139
  export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays']> {
134
140
  actions?: never;
135
141
  guard?: unknown;
136
142
  reenter?: boolean;
137
143
  target?: TransitionTarget | undefined;
138
- context?: Partial<TContext>;
144
+ context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
139
145
  to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
140
146
  meta?: TMeta;
141
147
  description?: string;
@@ -198,9 +204,9 @@ export type StateNodesConfig<TContext extends MachineContext, TEvent extends Eve
198
204
  };
199
205
  export type TransitionConfigTarget = string | undefined;
200
206
  export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays']> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap> | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>>;
201
- export type TransitionConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, _TCtx = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>, enq: EnqueueObject<TEvent, TEmitted>) => {
207
+ export type TransitionConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>, enq: EnqueueObject<TEvent, TEmitted>) => {
202
208
  target?: string | string[];
203
- context?: Partial<_TCtx>;
209
+ context?: TransitionContextPatch<_TCtx>;
204
210
  reenter?: boolean;
205
211
  meta?: TMeta;
206
212
  } | void;
@@ -679,6 +685,10 @@ export interface ActorRef<TSnapshot extends Snapshot<unknown>, TEvent extends Ev
679
685
  type: TType;
680
686
  })) => void) => Subscription;
681
687
  }
688
+ type EventPayload<TEvent extends EventObject, TType extends TEvent['type']> = HomomorphicOmit<ExtractEvent<TEvent, TType>, 'type'>;
689
+ export type ActorTrigger<TEvent extends EventObject> = {
690
+ [K in TEvent['type']]: {} extends EventPayload<TEvent, K> ? () => void : (payload: EventPayload<TEvent, K>) => void;
691
+ };
682
692
  /**
683
693
  * Runtime-only actor capabilities.
684
694
  *
@@ -687,7 +697,7 @@ export interface ActorRef<TSnapshot extends Snapshot<unknown>, TEvent extends Ev
687
697
  * genuinely need lifecycle control such as starting, stopping, or accessing
688
698
  * system-owned runtime state.
689
699
  */
690
- export interface ActorRuntime<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, _TEmitted extends EventObject = EventObject> {
700
+ export interface ActorRuntime<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, _TEmitted extends EventObject = EventObject, TSendEvent extends EventObject = TEvent> {
691
701
  /** The unique identifier for this actor relative to its parent. */
692
702
  id: string;
693
703
  /**
@@ -704,7 +714,7 @@ export interface ActorRuntime<TSnapshot extends Snapshot<unknown>, TEvent extend
704
714
  _parent?: any;
705
715
  system: any;
706
716
  src: string | AnyActorLogic;
707
- trigger: any;
717
+ trigger: ActorTrigger<TSendEvent>;
708
718
  select<TSelected>(selector: (snapshot: TSnapshot) => TSelected, equalityFn?: (a: TSelected, b: TSelected) => boolean): Readable<TSelected>;
709
719
  }
710
720
  /**
@@ -714,7 +724,7 @@ export interface ActorRuntime<TSnapshot extends Snapshot<unknown>, TEvent extend
714
724
  * lifecycle capabilities. Values returned by `createActor(...)` and
715
725
  * `spawn(...)` naturally satisfy narrower `ActorRef` contracts.
716
726
  */
717
- export interface ActorInstance<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TEmitted extends EventObject = EventObject, TSendEvent extends EventObject = TEvent> extends ActorRuntime<TSnapshot, TEvent, TEmitted>, ActorRef<TSnapshot, TEvent, TEmitted, TSendEvent> {
727
+ export interface ActorInstance<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TEmitted extends EventObject = EventObject, TSendEvent extends EventObject = TEvent> extends ActorRuntime<TSnapshot, TEvent, TEmitted, TSendEvent>, ActorRef<TSnapshot, TEvent, TEmitted, TSendEvent> {
718
728
  }
719
729
  /**
720
730
  * The actor's own full self handle.
@@ -723,7 +733,7 @@ export interface ActorInstance<TSnapshot extends Snapshot<unknown>, TEvent exten
723
733
  * can participate in runtime-owned behavior while still being usable wherever
724
734
  * an `ActorRef` is expected.
725
735
  */
726
- export type ActorSelf<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TEmitted extends EventObject = EventObject, TSendEvent extends EventObject = TEvent> = ActorRuntime<TSnapshot, TEvent, TEmitted> & ActorRef<TSnapshot, TEvent, TEmitted, TSendEvent>;
736
+ export type ActorSelf<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TEmitted extends EventObject = EventObject, TSendEvent extends EventObject = TEvent> = ActorRuntime<TSnapshot, TEvent, TEmitted, TSendEvent> & ActorRef<TSnapshot, TEvent, TEmitted, TSendEvent>;
727
737
  export type ActorRefFrom<T> = T extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer TStateValue, infer TTag, infer _TInput, infer TOutput, infer TEmitted, infer TMeta, infer TConfig, infer _TActionMap, infer _TActorMap, infer _TGuardMap, infer _TDelayMap> ? TConfig extends {
728
738
  internalEvents?: readonly EventDescriptor<TEvent>[];
729
739
  } ? ActorRef<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, any>, TEvent, TEmitted, ExcludeInternalEvents<TEvent, TConfig['internalEvents'] extends readonly EventDescriptor<TEvent>[] ? TConfig['internalEvents'] extends readonly (infer TDesc)[] ? Extract<TDesc, string> : never : never>> : ActorRef<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, any>, TEvent, TEmitted> : T extends Promise<infer U> ? ActorRefFrom<AsyncActorLogic<U>> : T extends ActorLogic<infer TSnapshot, infer TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? ActorRef<TSnapshot, TEvent, TEmitted> : never;
@@ -1,6 +1,6 @@
1
1
  import { StandardSchemaV1 } from "./schema.types.js";
2
2
  import { MachineSnapshot } from "./State.js";
3
- import { Action, ActorLogic, ActorRef, ActorRefFromLogic, ActorSelf, AnyActorLogic, AnyActorRef, Compute, DoneActorEvent, DoNotInfer, EventDescriptor, EventObject, ExtractEvent, InitialContext, InputFrom, IsNever, MetaObject, NonReducibleUnknown, OutputFrom, SingleOrArray, SnapshotEvent, StateValue, TODO, TransitionConfigFunction, Values, AnyStateNode, SystemRegistry } from "./types.js";
3
+ import { Action, ActorLogic, ActorRef, ActorRefFromLogic, ActorSelf, AnyActorLogic, AnyActorRef, Compute, DoneActorEvent, DoNotInfer, EventDescriptor, EventObject, ExtractEvent, InitialContext, InputFrom, IsNever, MetaObject, NonReducibleUnknown, OutputFrom, SingleOrArray, SnapshotEvent, StateValue, TODO, TransitionContextMapper, TransitionContextPatch, TransitionConfigFunction, Values, AnyStateNode, SystemRegistry } from "./types.js";
4
4
  import { MachineContext, Mapper } from "./types.js";
5
5
  import { LowInfer } from "./types.js";
6
6
  import { DoneStateEvent } from "./types.js";
@@ -11,7 +11,9 @@ export type InferOutput<T extends StandardSchemaV1, U> = Compute<StandardSchemaV
11
11
  * are required on the event.
12
12
  */
13
13
  export type InferEvents<TEventSchemaMap extends Record<string, StandardSchemaV1>> = Values<{
14
- [K in keyof TEventSchemaMap & string]: StandardSchemaV1.InferOutput<TEventSchemaMap[K]> extends infer O ? unknown extends O ? O & {
14
+ [K in keyof TEventSchemaMap & string]: StandardSchemaV1.InferOutput<TEventSchemaMap[K]> extends infer O ? [O] extends [never] ? never : unknown extends O ? O & {
15
+ type: K;
16
+ } : [O] extends [void] ? {
15
17
  type: K;
16
18
  } : string extends keyof O ? [O[string]] extends [never] ? {
17
19
  type: K;
@@ -24,6 +26,21 @@ export type InferEvents<TEventSchemaMap extends Record<string, StandardSchemaV1>
24
26
  export type InferChildren<TChildrenSchemaMap extends Record<string, StandardSchemaV1>> = string extends keyof TChildrenSchemaMap ? {} : {
25
27
  [K in keyof TChildrenSchemaMap & string]?: StandardSchemaV1.InferOutput<TChildrenSchemaMap[K]> extends AnyActorRef ? NormalizeActorRef<StandardSchemaV1.InferOutput<TChildrenSchemaMap[K]>> : never;
26
28
  };
29
+ export type ActionSchemas = Record<string, {
30
+ params: StandardSchemaV1;
31
+ }>;
32
+ export type GuardSchemas = Record<string, {
33
+ params: StandardSchemaV1;
34
+ }>;
35
+ export type InferActions<TActionSchemaMap extends ActionSchemas> = string extends keyof TActionSchemaMap ? {} : {
36
+ [K in keyof TActionSchemaMap & string]: (params: StandardSchemaV1.InferOutput<TActionSchemaMap[K]['params']>) => void | {
37
+ context?: any;
38
+ children?: any;
39
+ };
40
+ };
41
+ export type InferGuards<TGuardSchemaMap extends GuardSchemas> = string extends keyof TGuardSchemaMap ? {} : {
42
+ [K in keyof TGuardSchemaMap & string]: (params: StandardSchemaV1.InferOutput<TGuardSchemaMap[K]['params']>) => boolean;
43
+ };
27
44
  type OutputConfig<TContext extends MachineContext, TEvent extends EventObject, TOutput> = unknown extends TOutput ? Mapper<TContext, TEvent, NonReducibleUnknown, TEvent> | NonReducibleUnknown : Mapper<TContext, TEvent, TOutput, TEvent> | TOutput;
28
45
  export type ValidateTopLevelFinalOutputs<TConfig, TContext extends MachineContext, TEvent extends EventObject> = TConfig extends {
29
46
  schemas: {
@@ -71,6 +88,8 @@ export interface MachineOptions {
71
88
  }
72
89
  type MachineSchemas<TContextSchema extends StandardSchemaV1, TEventSchemaMap extends Record<string, StandardSchemaV1>, TEmittedSchemaMap extends Record<string, StandardSchemaV1>, TInputSchema extends StandardSchemaV1, TOutputSchema extends StandardSchemaV1, TMetaSchema extends StandardSchemaV1, TTagSchema extends StandardSchemaV1, TChildrenSchemaMap extends Record<string, StandardSchemaV1>> = {
73
90
  events?: TEventSchemaMap;
91
+ actions?: ActionSchemas;
92
+ guards?: GuardSchemas;
74
93
  context?: TContextSchema;
75
94
  emitted?: TEmittedSchemaMap;
76
95
  input?: TInputSchema;
@@ -210,7 +229,7 @@ type Next_ChoiceTarget<TMeta extends MetaObject> = {
210
229
  event: any;
211
230
  }) => Record<string, unknown>);
212
231
  };
213
- type Next_ChoiceArgs<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], _TCtx = [TContext] extends [never] ? any : TContext> = Parameters<TransitionConfigFunction<TContext, TCurrentEvent, TEvent, EventObject, TActionMap, TActorMap, TGuardMap, TDelayMap, MetaObject, _TCtx>>[0];
232
+ type Next_ChoiceArgs<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = Parameters<TransitionConfigFunction<TContext, TCurrentEvent, TEvent, EventObject, TActionMap, TActorMap, TGuardMap, TDelayMap, MetaObject, _TCtx>>[0];
214
233
  /**
215
234
  * Route config: either a static config object, or a transition-style function
216
235
  * that acts as the route's guard and resolver — returning `undefined`/`false`
@@ -237,7 +256,7 @@ type Next_RouteConfig<TContext extends MachineContext, TEvent extends EventObjec
237
256
  event: any;
238
257
  }) => Record<string, unknown>);
239
258
  });
240
- type Next_ChoiceConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, _TCtx = [TContext] extends [never] ? any : TContext> = (args: Next_ChoiceArgs<TContext, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap, _TCtx>) => Next_ChoiceTarget<TMeta>;
259
+ type Next_ChoiceConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: Next_ChoiceArgs<TContext, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap, _TCtx>) => Next_ChoiceTarget<TMeta>;
241
260
  export type Next_StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TDelays extends string, TTag extends string, _TOutput, TEmitted extends EventObject, TMeta extends MetaObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TInput = Record<string, unknown> | undefined, TInputMap extends Record<string, unknown> = Record<string, unknown>, TSystemRegistry extends SystemRegistry = SystemRegistry, TChildOutput = unknown> = Next_RegularStateNodeConfig<TContext, TEvent, TDelays, TTag, _TOutput, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TInput, TInputMap, TSystemRegistry, TChildOutput> | Next_ChoiceStateNodeConfig<TContext, TEvent, TTag, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap>;
242
261
  interface Next_ChoiceStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TTag extends string, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays']> {
243
262
  contextSchema?: StandardSchemaV1;
@@ -390,7 +409,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
390
409
  }
391
410
  export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject> = undefined | {
392
411
  target?: string | string[];
393
- context?: Partial<TContext>;
412
+ context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
394
413
  description?: string;
395
414
  reenter?: boolean;
396
415
  meta?: TMeta;
@@ -400,7 +419,7 @@ export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpr
400
419
  }) => Record<string, unknown>);
401
420
  } | {
402
421
  to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
403
- context?: Partial<TContext>;
422
+ context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
404
423
  description?: string;
405
424
  reenter?: boolean;
406
425
  meta?: TMeta;
@@ -385,7 +385,7 @@ function pushStartedChild(actions, actor, id) {
385
385
  pushBuiltInAction(actions, builtInActions['@xstate.start'], actor);
386
386
  actions.push(registerSpawnedChild(actor, id ?? actor.id));
387
387
  }
388
- function createTransitionEnqueue(actorScope, actions, internalEvents, actorSubscriptions = false) {
388
+ function createTransitionEnqueue(actorScope, actions, internalEvents, actorSubscriptions = false, createActors = true) {
389
389
  const props = {
390
390
  cancel: id => {
391
391
  pushBuiltInAction(actions, builtInActions['@xstate.cancel'], actorScope, id);
@@ -407,6 +407,12 @@ function createTransitionEnqueue(actorScope, actions, internalEvents, actorSubsc
407
407
  }
408
408
  },
409
409
  spawn: (logic, options) => {
410
+ if (!createActors) {
411
+ // TODO: replace this speculative placeholder with a typed inert actor ref.
412
+ return {
413
+ id: options?.id ?? options?.registryKey ?? logic.id
414
+ };
415
+ }
410
416
  const actor = createActor(logic, {
411
417
  ...options,
412
418
  parent: actorScope.self
@@ -931,9 +937,6 @@ function formatRouteTransitions(rootStateNode) {
931
937
  }
932
938
  return;
933
939
  }
934
- if ('$unserializable' in routeConfig) {
935
- throw new Error(`State "${sn.id}" has a route that is not serializable. Re-provide the route function when reviving this machine.`);
936
- }
937
940
  const {
938
941
  guard: _guard,
939
942
  ...routeOptions
@@ -1195,7 +1198,9 @@ function getEffectiveTargetStates(transition, snapshot, event, actorScope) {
1195
1198
  const historyValue = snapshot.historyValue;
1196
1199
  const {
1197
1200
  targets
1198
- } = getTransitionResult(transition, snapshot, event, actorScope);
1201
+ } = getTransitionResult(transition, snapshot, event, actorScope, {
1202
+ resolveActions: false
1203
+ });
1199
1204
  if (!targets) {
1200
1205
  return [];
1201
1206
  }
@@ -1221,7 +1226,9 @@ function getTransitionDomain(transition, snapshot, event, actorScope) {
1221
1226
  const targetStates = getEffectiveTargetStates(transition, snapshot, event, actorScope);
1222
1227
  const {
1223
1228
  reenter
1224
- } = getTransitionResult(transition, snapshot, event, actorScope);
1229
+ } = getTransitionResult(transition, snapshot, event, actorScope, {
1230
+ resolveActions: false
1231
+ });
1225
1232
  if (!reenter && targetStates.every(target => target === transition.source || isDescendant(target, transition.source))) {
1226
1233
  return transition.source;
1227
1234
  }
@@ -1244,7 +1251,9 @@ function computeExitSet(transitions, stateNodeSet, snapshot, event, actorScope)
1244
1251
  for (const transition of transitions) {
1245
1252
  const {
1246
1253
  targets
1247
- } = getTransitionResult(transition, snapshot, event, actorScope);
1254
+ } = getTransitionResult(transition, snapshot, event, actorScope, {
1255
+ resolveActions: false
1256
+ });
1248
1257
  if (targets?.length) {
1249
1258
  const domain = getTransitionDomain(transition, snapshot, event, actorScope);
1250
1259
  if (transition.reenter && transition.source === domain) {
@@ -1484,7 +1493,9 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1484
1493
  const {
1485
1494
  targets,
1486
1495
  reenter
1487
- } = getCurrentTransitionResult(transition);
1496
+ } = getTransitionResult(transition, currentSnapshot, event, actorScope, {
1497
+ resolveActions: false
1498
+ });
1488
1499
  for (const targetNode of targets ?? []) {
1489
1500
  if (!isHistoryNode(targetNode) && (transition.source !== targetNode || transition.source !== domain || reenter)) {
1490
1501
  statesToEnter.add(targetNode);
@@ -1511,7 +1522,9 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1511
1522
  const {
1512
1523
  targets,
1513
1524
  input
1514
- } = getCurrentTransitionResult(transition);
1525
+ } = getTransitionResult(transition, currentSnapshot, event, actorScope, {
1526
+ resolveActions: false
1527
+ });
1515
1528
  if (input && targets) {
1516
1529
  for (const targetNode of targets) {
1517
1530
  stateInputMap[targetNode.id] = input;
@@ -1696,25 +1709,26 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1696
1709
  * Gets the transition result for a given transition without executing the
1697
1710
  * transition.
1698
1711
  */
1699
- function getTransitionResult(transition, snapshot, event, actorScope) {
1712
+ function getTransitionResult(transition, snapshot, event, actorScope, options) {
1713
+ const transitionArgs = {
1714
+ context: snapshot.context,
1715
+ event,
1716
+ output: getEventOutput(event),
1717
+ value: snapshot.value,
1718
+ children: snapshot.children,
1719
+ system: actorScope.system,
1720
+ parent: actorScope.self._parent,
1721
+ self: actorScope.self,
1722
+ actions: snapshot.machine.implementations.actions,
1723
+ actorSources: snapshot.machine.implementations.actorSources,
1724
+ guards: snapshot.machine.implementations.guards,
1725
+ delays: snapshot.machine.implementations.delays
1726
+ };
1700
1727
  if (transition.to) {
1701
1728
  const actions = [];
1702
1729
  const internalEvents = [];
1703
- const enqueue = createTransitionEnqueue(actorScope, actions, internalEvents);
1704
- const res = transition.to({
1705
- context: snapshot.context,
1706
- event,
1707
- output: getEventOutput(event),
1708
- value: snapshot.value,
1709
- children: snapshot.children,
1710
- system: actorScope.system,
1711
- parent: actorScope.self._parent,
1712
- self: actorScope.self,
1713
- actions: snapshot.machine.implementations.actions,
1714
- actorSources: snapshot.machine.implementations.actorSources,
1715
- guards: snapshot.machine.implementations.guards,
1716
- delays: snapshot.machine.implementations.delays
1717
- }, enqueue);
1730
+ const enqueue = createTransitionEnqueue(actorScope, actions, internalEvents, false, options?.resolveActions ?? true);
1731
+ const res = transition.to(transitionArgs, enqueue);
1718
1732
  const targets = res?.target ? resolveTarget(transition.source, toArray(res.target)) : undefined;
1719
1733
  // Resolve input for .to transitions
1720
1734
  const resolvedInput = typeof transition.input === 'function' ? transition.input({
@@ -1738,9 +1752,10 @@ function getTransitionResult(transition, snapshot, event, actorScope) {
1738
1752
  event,
1739
1753
  output: getEventOutput(event)
1740
1754
  }) : transition.input;
1755
+ const resolvedContext = typeof transition.context === 'function' ? transition.context(transitionArgs) : transition.context;
1741
1756
  return {
1742
1757
  targets: transition.target,
1743
- context: transition.context,
1758
+ context: resolvedContext,
1744
1759
  reenter: transition.reenter,
1745
1760
  actions: undefined,
1746
1761
  internalEvents: undefined,
@@ -2014,7 +2029,9 @@ const machineSnapshotCan = function can(event) {
2014
2029
  if (transition.target !== undefined) {
2015
2030
  return true;
2016
2031
  }
2017
- const res = getTransitionResult(transition, this, event, emptyActorScope);
2032
+ const res = getTransitionResult(transition, this, event, emptyActorScope, {
2033
+ resolveActions: false
2034
+ });
2018
2035
  if (res.targets?.length || res.context || hasEffect(transition, this.context, event, this, emptyActor)) {
2019
2036
  return true;
2020
2037
  }
@@ -4427,7 +4444,10 @@ exports.ProcessingStatus = ProcessingStatus;
4427
4444
  exports.STATE_DELIMITER = STATE_DELIMITER;
4428
4445
  exports.TimeoutError = TimeoutError;
4429
4446
  exports.XSTATE_INIT = XSTATE_INIT;
4447
+ exports.XSTATE_STOP = XSTATE_STOP;
4448
+ exports.builtInActions = builtInActions;
4430
4449
  exports.checkStateIn = checkStateIn;
4450
+ exports.cloneMachineSnapshot = cloneMachineSnapshot;
4431
4451
  exports.createActor = createActor;
4432
4452
  exports.createAsyncLogic = createAsyncLogic;
4433
4453
  exports.createCallbackLogic = createCallbackLogic;
@@ -4441,6 +4461,7 @@ exports.createLogic = createLogic;
4441
4461
  exports.createMachineSnapshot = createMachineSnapshot;
4442
4462
  exports.createObservableLogic = createObservableLogic;
4443
4463
  exports.createSubscriptionLogic = createSubscriptionLogic;
4464
+ exports.createTransitionEnqueue = createTransitionEnqueue;
4444
4465
  exports.evaluateCandidate = evaluateCandidate;
4445
4466
  exports.formatRouteTransitions = formatRouteTransitions;
4446
4467
  exports.formatTransition = formatTransition;