xstate 6.0.0-alpha.17 → 6.0.0-alpha.19

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 (29) hide show
  1. package/README.md +1 -1
  2. package/dist/{StateMachine-a10528bb.cjs.js → StateMachine-20b7d63b.cjs.js} +1 -1
  3. package/dist/{StateMachine-4d17c47e.development.cjs.js → StateMachine-9e72e36d.development.cjs.js} +1 -1
  4. package/dist/{StateMachine-c2d32ddd.esm.js → StateMachine-bb722e90.esm.js} +1 -1
  5. package/dist/{StateMachine-114b1598.development.esm.js → StateMachine-f777a374.development.esm.js} +1 -1
  6. package/dist/declarations/src/setup.d.ts +10 -7
  7. package/dist/declarations/src/types.d.ts +5 -1
  8. package/dist/declarations/src/types.v6.d.ts +9 -9
  9. package/dist/{index-addc01a2.esm.js → index-0842e9fd.esm.js} +22 -8
  10. package/dist/{index-1ac35571.cjs.js → index-626fe0b0.cjs.js} +22 -8
  11. package/dist/{index-415cdd3a.development.cjs.js → index-792d3638.development.cjs.js} +22 -8
  12. package/dist/{index-31e8ad34.development.esm.js → index-b5a6f830.development.esm.js} +22 -8
  13. package/dist/xstate-actors.cjs.js +1 -1
  14. package/dist/xstate-actors.development.cjs.js +1 -1
  15. package/dist/xstate-actors.development.esm.js +1 -1
  16. package/dist/xstate-actors.esm.js +1 -1
  17. package/dist/xstate-graph.cjs.js +2 -2
  18. package/dist/xstate-graph.development.cjs.js +2 -2
  19. package/dist/xstate-graph.development.esm.js +2 -2
  20. package/dist/xstate-graph.esm.js +2 -2
  21. package/dist/xstate-graph.umd.min.js +1 -1
  22. package/dist/xstate-graph.umd.min.js.map +1 -1
  23. package/dist/xstate.cjs.js +6 -3
  24. package/dist/xstate.development.cjs.js +6 -3
  25. package/dist/xstate.development.esm.js +8 -5
  26. package/dist/xstate.esm.js +8 -5
  27. package/dist/xstate.umd.min.js +1 -1
  28. package/dist/xstate.umd.min.js.map +1 -1
  29. package/package.json +1 -1
package/README.md CHANGED
@@ -166,7 +166,7 @@ toggleActor.send({ type: 'TOGGLE' });
166
166
  - Deploy to Stately Sky
167
167
  - Generate & modify machines with Stately AI
168
168
 
169
- <a href="stately.ai/registry/new?ref=github" title="Stately Studio">
169
+ <a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
170
170
  <img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
171
171
  </a>
172
172
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var dist_xstateActors = require('./index-1ac35571.cjs.js');
3
+ var dist_xstateActors = require('./index-626fe0b0.cjs.js');
4
4
 
5
5
  function createSpawner(actorScope, {
6
6
  machine,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var dist_xstateActors = require('./index-415cdd3a.development.cjs.js');
3
+ var dist_xstateActors = require('./index-792d3638.development.cjs.js');
4
4
 
5
5
  function createSpawner(actorScope, {
6
6
  machine,
@@ -1,4 +1,4 @@
1
- import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-addc01a2.esm.js';
1
+ import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-0842e9fd.esm.js';
2
2
 
3
3
  function createSpawner(actorScope, {
4
4
  machine,
@@ -1,4 +1,4 @@
1
- import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-31e8ad34.development.esm.js';
1
+ import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-b5a6f830.development.esm.js';
2
2
 
3
3
  function createSpawner(actorScope, {
4
4
  machine,
@@ -259,15 +259,15 @@ type StateNodeConfigWithNestedInput<TSiblingStateSchemas extends Record<string,
259
259
  target: string;
260
260
  input?: Record<string, unknown>;
261
261
  } | undefined;
262
- on?: StateTransitions<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
263
- always?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
262
+ on?: StateTransitions<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
263
+ always?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
264
264
  invoke?: SingleOrArray<SetupInvokeConfig<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>>;
265
- onDone?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, DoneStateEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
265
+ onDone?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, DoneStateEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
266
266
  }, 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> : {
267
267
  [K in string]?: Next_StateNodeConfig<TContext, TEvent, TDelays, TTag, TOutput, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, undefined, Record<string, unknown>, TSystemRegistry>;
268
268
  }>;
269
- 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> = {
270
- [K in EventDescriptor<TEvent>]?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, ExtractEvent<TEvent, K>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
269
+ 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, TInput = undefined> = {
270
+ [K in EventDescriptor<TEvent>]?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, ExtractEvent<TEvent, K>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, TInput>;
271
271
  };
272
272
  type InvokeDoneEvent<TInvoke> = TInvoke extends {
273
273
  onDone?: Next_TransitionConfigOrTarget<infer _TContext, infer TDoneEvent, infer _TEvent, infer _TEmitted, infer _TActionMap, infer _TActorMap, infer _TGuardMap, infer _TDelayMap, infer _TMeta>;
@@ -278,7 +278,7 @@ type SetupInvokeConfig<TStateSchemas extends Record<string, SetupStateSchema>, T
278
278
  onSnapshot?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, SnapshotEvent<any>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
279
279
  onTimeout?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
280
280
  } : never : never;
281
- 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>;
281
+ 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, TInput = undefined> = 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, TInput>;
282
282
  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> & {
283
283
  description?: string;
284
284
  }) | {
@@ -307,7 +307,7 @@ type StateTransitionContextMapper<TContext extends MachineContext, TContextShape
307
307
  } & OutputArg<TExpressionEvent>) => ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext>;
308
308
  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>;
309
309
  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>;
310
- 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: {
310
+ 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, TInput = undefined> = (args: {
311
311
  context: TContext;
312
312
  event: TExpressionEvent;
313
313
  self: AnyActorRef;
@@ -319,6 +319,7 @@ type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSche
319
319
  actorSources: TActorMap;
320
320
  guards: TGuardMap;
321
321
  delays: TDelayMap;
322
+ input: TInput;
322
323
  } & OutputArg<TExpressionEvent>, enq: EnqueueObject<TEvent, TEmitted, TSystemRegistry>) => StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, false> | void;
323
324
  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> = {
324
325
  target?: never;
@@ -403,6 +404,8 @@ export interface SetupReturn<TStates extends Record<string, SetupStateSchema> =
403
404
  createStateConfig<const TConfig extends SetupStateNodeConfig<TStates, SetupStateSchema, TSchemas, TSetupActionMap, TSetupActorMap, TSetupGuardMap, TSetupDelayMap, TSystemRegistry>>(config: TConfig): TConfig;
404
405
  /** State input schemas from setup config */
405
406
  states: TStates;
407
+ /** Schemas from setup config */
408
+ schemas: TSchemas;
406
409
  }
407
410
  type SetupConfigSchemas<TConfig> = TConfig extends {
408
411
  schemas?: infer TSchemas;
@@ -204,7 +204,9 @@ export type StateNodesConfig<TContext extends MachineContext, TEvent extends Eve
204
204
  };
205
205
  export type TransitionConfigTarget = string | undefined;
206
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>>;
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>) => {
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, TInput = undefined, _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap> & {
208
+ input: TInput;
209
+ }, enq: EnqueueObject<TEvent, TEmitted>) => {
208
210
  target?: string | string[];
209
211
  context?: TransitionContextPatch<_TCtx>;
210
212
  reenter?: boolean;
@@ -962,6 +964,8 @@ export type StateSchema = {
962
964
  exit?: unknown;
963
965
  onDone?: unknown;
964
966
  onError?: unknown;
967
+ timeout?: unknown;
968
+ onTimeout?: unknown;
965
969
  after?: unknown;
966
970
  always?: unknown;
967
971
  choice?: unknown;
@@ -229,7 +229,8 @@ type Next_ChoiceTarget<TMeta extends MetaObject> = {
229
229
  event: any;
230
230
  }) => Record<string, unknown>);
231
231
  };
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];
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, undefined, // TInput
233
+ _TCtx>>[0];
233
234
  /**
234
235
  * Route config: either a static config object, or a transition-style function
235
236
  * that acts as the route's guard and resolver — returning `undefined`/`false`
@@ -325,7 +326,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
325
326
  invoke?: SingleOrArray<Next_InvokeConfig<TContext, TEvent, TEmitted, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TSystemRegistry>>;
326
327
  /** The mapping of event types to their potential transition(s). */
327
328
  on?: {
328
- [K in EventDescriptor<TEvent>]?: Next_TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
329
+ [K in EventDescriptor<TEvent>]?: Next_TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
329
330
  };
330
331
  /**
331
332
  * Enables routing to this state via `{ type: 'xstate.route', to: '#id' }`.
@@ -356,7 +357,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
356
357
  [K in NoInfer<TDelays> | number]?: {
357
358
  target: string;
358
359
  } | TransitionConfigFunction<TContext, TEvent, TEvent, TODO, // TEmitted
359
- TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
360
+ TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
360
361
  };
361
362
  /**
362
363
  * The duration (in ms) after which this state will transition via `onTimeout`
@@ -371,9 +372,10 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
371
372
  context: TContext;
372
373
  event: TEvent;
373
374
  stateNode: AnyStateNode;
375
+ input: TInput;
374
376
  }) => number);
375
377
  /** Transition taken when `timeout` expires. Required when `timeout` is set. */
376
- onTimeout?: Next_TransitionConfigOrTarget<TContext, TEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
378
+ onTimeout?: Next_TransitionConfigOrTarget<TContext, TEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
377
379
  /**
378
380
  * An eventless transition that is always taken when this state node is
379
381
  * active.
@@ -413,7 +415,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
413
415
  /** A default target for a history state */
414
416
  target?: string | undefined;
415
417
  }
416
- 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 | {
418
+ 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, TInput = undefined> = undefined | {
417
419
  target?: string | string[];
418
420
  context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
419
421
  description?: string;
@@ -424,7 +426,7 @@ export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpr
424
426
  event: any;
425
427
  }) => Record<string, unknown>);
426
428
  } | {
427
- to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
429
+ to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
428
430
  context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
429
431
  description?: string;
430
432
  reenter?: boolean;
@@ -433,7 +435,7 @@ export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpr
433
435
  context: any;
434
436
  event: any;
435
437
  }) => Record<string, unknown>);
436
- } | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
438
+ } | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
437
439
  export type WithDefault<T, Default> = IsNever<T> extends true ? Default : T;
438
440
  export interface Implementations {
439
441
  actions: Record<string, (...args: any[]) => void | {
@@ -453,8 +455,6 @@ type DelayNamesFromConfig<TConfig> = TConfig extends {
453
455
  type InvalidDelayReferences<TConfig, TDelays extends string> = (TConfig extends {
454
456
  after: infer TAfter;
455
457
  } ? Exclude<Extract<keyof TAfter, string>, TDelays> : never) | (TConfig extends {
456
- timeout: infer TTimeout;
457
- } ? TTimeout extends string ? TTimeout extends TDelays ? never : TTimeout : never : never) | (TConfig extends {
458
458
  states: infer TStates;
459
459
  } ? TStates extends Record<string, unknown> ? {
460
460
  [K in keyof TStates]: InvalidDelayReferences<TStates[K], TDelays>;
@@ -673,6 +673,9 @@ function resolveDelay(delay, delaySource, args) {
673
673
  }
674
674
  return configuredDelay;
675
675
  }
676
+ function getStateInput(snapshot, stateNodeId) {
677
+ return snapshot._stateInputs?.[stateNodeId];
678
+ }
676
679
  function isAtomicStateNode(stateNode) {
677
680
  return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
678
681
  }
@@ -869,7 +872,8 @@ function getDelayedTransitions(stateNode) {
869
872
  const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
870
873
  context: x.context,
871
874
  event: x.event,
872
- stateNode
875
+ stateNode,
876
+ input: x.input
873
877
  }));
874
878
  for (const transition of toTransitionConfigArray(transitions)) {
875
879
  delayedTransitions.push({
@@ -994,6 +998,14 @@ function resolveTarget(stateNode, targets) {
994
998
  function resolveHistoryDefaultTransition(stateNode) {
995
999
  const normalizedTarget = normalizeTarget(stateNode.config.target);
996
1000
  if (!normalizedTarget) {
1001
+ if (stateNode.parent.type === 'parallel') {
1002
+ return {
1003
+ target: [stateNode.parent],
1004
+ source: stateNode,
1005
+ reenter: false,
1006
+ eventType: ''
1007
+ };
1008
+ }
997
1009
  return stateNode.parent.initial;
998
1010
  }
999
1011
  return {
@@ -1375,7 +1387,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1375
1387
  }
1376
1388
  }
1377
1389
  for (const exitStateNode of statesToExit) {
1378
- const stateInput = currentSnapshot._stateInputs?.[exitStateNode.id];
1390
+ const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
1379
1391
  const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
1380
1392
  if (internalEvents?.length) {
1381
1393
  internalQueue.push(...internalEvents);
@@ -1709,7 +1721,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1709
1721
  const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
1710
1722
  nextStateNodesToExit.forEach(stateNode => {
1711
1723
  if (stateNode.exit) {
1712
- const stateInput = nextState._stateInputs?.[stateNode.id];
1724
+ const stateInput = getStateInput(nextState, stateNode.id);
1713
1725
  const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
1714
1726
  allExitActions.push(...exitActions);
1715
1727
  if (nextInternalEvents?.length) {
@@ -1753,7 +1765,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
1753
1765
  actions: snapshot.machine.implementations.actions,
1754
1766
  actorSources: snapshot.machine.implementations.actorSources,
1755
1767
  guards: snapshot.machine.implementations.guards,
1756
- delays: snapshot.machine.implementations.delays
1768
+ delays: snapshot.machine.implementations.delays,
1769
+ input: getStateInput(snapshot, transition.source.id)
1757
1770
  };
1758
1771
  if (transition.to) {
1759
1772
  const actions = [];
@@ -1894,11 +1907,11 @@ function resolveStateValue(rootNode, stateValue) {
1894
1907
  }
1895
1908
  function hasEffect(transition, context, event, snapshot, self) {
1896
1909
  if (transition.to) {
1897
- return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
1910
+ return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
1898
1911
  }
1899
1912
  return false;
1900
1913
  }
1901
- function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
1914
+ function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
1902
1915
  let hasEffect = false;
1903
1916
  let res;
1904
1917
  try {
@@ -1920,7 +1933,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
1920
1933
  actions: implementations.actions,
1921
1934
  actorSources: implementations.actorSources,
1922
1935
  guards: implementations.guards,
1923
- delays: implementations.delays
1936
+ delays: implementations.delays,
1937
+ input: getStateInput(snapshot, sourceId)
1924
1938
  }, createEnqueueObject({
1925
1939
  emit: triggerEffect,
1926
1940
  cancel: triggerEffect,
@@ -1988,7 +2002,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
1988
2002
  }
1989
2003
  }
1990
2004
  if (candidate.to) {
1991
- return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
2005
+ return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
1992
2006
  }
1993
2007
  return true;
1994
2008
  }
@@ -675,6 +675,9 @@ function resolveDelay(delay, delaySource, args) {
675
675
  }
676
676
  return configuredDelay;
677
677
  }
678
+ function getStateInput(snapshot, stateNodeId) {
679
+ return snapshot._stateInputs?.[stateNodeId];
680
+ }
678
681
  function isAtomicStateNode(stateNode) {
679
682
  return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
680
683
  }
@@ -871,7 +874,8 @@ function getDelayedTransitions(stateNode) {
871
874
  const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
872
875
  context: x.context,
873
876
  event: x.event,
874
- stateNode
877
+ stateNode,
878
+ input: x.input
875
879
  }));
876
880
  for (const transition of toTransitionConfigArray(transitions)) {
877
881
  delayedTransitions.push({
@@ -996,6 +1000,14 @@ function resolveTarget(stateNode, targets) {
996
1000
  function resolveHistoryDefaultTransition(stateNode) {
997
1001
  const normalizedTarget = normalizeTarget(stateNode.config.target);
998
1002
  if (!normalizedTarget) {
1003
+ if (stateNode.parent.type === 'parallel') {
1004
+ return {
1005
+ target: [stateNode.parent],
1006
+ source: stateNode,
1007
+ reenter: false,
1008
+ eventType: ''
1009
+ };
1010
+ }
999
1011
  return stateNode.parent.initial;
1000
1012
  }
1001
1013
  return {
@@ -1377,7 +1389,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1377
1389
  }
1378
1390
  }
1379
1391
  for (const exitStateNode of statesToExit) {
1380
- const stateInput = currentSnapshot._stateInputs?.[exitStateNode.id];
1392
+ const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
1381
1393
  const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
1382
1394
  if (internalEvents?.length) {
1383
1395
  internalQueue.push(...internalEvents);
@@ -1711,7 +1723,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1711
1723
  const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
1712
1724
  nextStateNodesToExit.forEach(stateNode => {
1713
1725
  if (stateNode.exit) {
1714
- const stateInput = nextState._stateInputs?.[stateNode.id];
1726
+ const stateInput = getStateInput(nextState, stateNode.id);
1715
1727
  const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
1716
1728
  allExitActions.push(...exitActions);
1717
1729
  if (nextInternalEvents?.length) {
@@ -1755,7 +1767,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
1755
1767
  actions: snapshot.machine.implementations.actions,
1756
1768
  actorSources: snapshot.machine.implementations.actorSources,
1757
1769
  guards: snapshot.machine.implementations.guards,
1758
- delays: snapshot.machine.implementations.delays
1770
+ delays: snapshot.machine.implementations.delays,
1771
+ input: getStateInput(snapshot, transition.source.id)
1759
1772
  };
1760
1773
  if (transition.to) {
1761
1774
  const actions = [];
@@ -1896,11 +1909,11 @@ function resolveStateValue(rootNode, stateValue) {
1896
1909
  }
1897
1910
  function hasEffect(transition, context, event, snapshot, self) {
1898
1911
  if (transition.to) {
1899
- return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
1912
+ return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
1900
1913
  }
1901
1914
  return false;
1902
1915
  }
1903
- function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
1916
+ function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
1904
1917
  let hasEffect = false;
1905
1918
  let res;
1906
1919
  try {
@@ -1922,7 +1935,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
1922
1935
  actions: implementations.actions,
1923
1936
  actorSources: implementations.actorSources,
1924
1937
  guards: implementations.guards,
1925
- delays: implementations.delays
1938
+ delays: implementations.delays,
1939
+ input: getStateInput(snapshot, sourceId)
1926
1940
  }, createEnqueueObject({
1927
1941
  emit: triggerEffect,
1928
1942
  cancel: triggerEffect,
@@ -1990,7 +2004,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
1990
2004
  }
1991
2005
  }
1992
2006
  if (candidate.to) {
1993
- return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
2007
+ return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
1994
2008
  }
1995
2009
  return true;
1996
2010
  }
@@ -676,6 +676,9 @@ function resolveDelay(delay, delaySource, args) {
676
676
  }
677
677
  return configuredDelay;
678
678
  }
679
+ function getStateInput(snapshot, stateNodeId) {
680
+ return snapshot._stateInputs?.[stateNodeId];
681
+ }
679
682
  function isAtomicStateNode(stateNode) {
680
683
  return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
681
684
  }
@@ -882,7 +885,8 @@ function getDelayedTransitions(stateNode) {
882
885
  const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
883
886
  context: x.context,
884
887
  event: x.event,
885
- stateNode
888
+ stateNode,
889
+ input: x.input
886
890
  }));
887
891
  for (const transition of toTransitionConfigArray(transitions)) {
888
892
  delayedTransitions.push({
@@ -1007,6 +1011,14 @@ function resolveTarget(stateNode, targets) {
1007
1011
  function resolveHistoryDefaultTransition(stateNode) {
1008
1012
  const normalizedTarget = normalizeTarget(stateNode.config.target);
1009
1013
  if (!normalizedTarget) {
1014
+ if (stateNode.parent.type === 'parallel') {
1015
+ return {
1016
+ target: [stateNode.parent],
1017
+ source: stateNode,
1018
+ reenter: false,
1019
+ eventType: ''
1020
+ };
1021
+ }
1010
1022
  return stateNode.parent.initial;
1011
1023
  }
1012
1024
  return {
@@ -1388,7 +1400,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1388
1400
  }
1389
1401
  }
1390
1402
  for (const exitStateNode of statesToExit) {
1391
- const stateInput = currentSnapshot._stateInputs?.[exitStateNode.id];
1403
+ const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
1392
1404
  const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
1393
1405
  if (internalEvents?.length) {
1394
1406
  internalQueue.push(...internalEvents);
@@ -1722,7 +1734,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1722
1734
  const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
1723
1735
  nextStateNodesToExit.forEach(stateNode => {
1724
1736
  if (stateNode.exit) {
1725
- const stateInput = nextState._stateInputs?.[stateNode.id];
1737
+ const stateInput = getStateInput(nextState, stateNode.id);
1726
1738
  const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
1727
1739
  allExitActions.push(...exitActions);
1728
1740
  if (nextInternalEvents?.length) {
@@ -1766,7 +1778,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
1766
1778
  actions: snapshot.machine.implementations.actions,
1767
1779
  actorSources: snapshot.machine.implementations.actorSources,
1768
1780
  guards: snapshot.machine.implementations.guards,
1769
- delays: snapshot.machine.implementations.delays
1781
+ delays: snapshot.machine.implementations.delays,
1782
+ input: getStateInput(snapshot, transition.source.id)
1770
1783
  };
1771
1784
  if (transition.to) {
1772
1785
  const actions = [];
@@ -1907,11 +1920,11 @@ function resolveStateValue(rootNode, stateValue) {
1907
1920
  }
1908
1921
  function hasEffect(transition, context, event, snapshot, self) {
1909
1922
  if (transition.to) {
1910
- return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
1923
+ return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
1911
1924
  }
1912
1925
  return false;
1913
1926
  }
1914
- function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
1927
+ function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
1915
1928
  let hasEffect = false;
1916
1929
  let res;
1917
1930
  try {
@@ -1933,7 +1946,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
1933
1946
  actions: implementations.actions,
1934
1947
  actorSources: implementations.actorSources,
1935
1948
  guards: implementations.guards,
1936
- delays: implementations.delays
1949
+ delays: implementations.delays,
1950
+ input: getStateInput(snapshot, sourceId)
1937
1951
  }, createEnqueueObject({
1938
1952
  emit: triggerEffect,
1939
1953
  cancel: triggerEffect,
@@ -2001,7 +2015,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
2001
2015
  }
2002
2016
  }
2003
2017
  if (candidate.to) {
2004
- return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
2018
+ return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
2005
2019
  }
2006
2020
  return true;
2007
2021
  }
@@ -674,6 +674,9 @@ function resolveDelay(delay, delaySource, args) {
674
674
  }
675
675
  return configuredDelay;
676
676
  }
677
+ function getStateInput(snapshot, stateNodeId) {
678
+ return snapshot._stateInputs?.[stateNodeId];
679
+ }
677
680
  function isAtomicStateNode(stateNode) {
678
681
  return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
679
682
  }
@@ -880,7 +883,8 @@ function getDelayedTransitions(stateNode) {
880
883
  const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
881
884
  context: x.context,
882
885
  event: x.event,
883
- stateNode
886
+ stateNode,
887
+ input: x.input
884
888
  }));
885
889
  for (const transition of toTransitionConfigArray(transitions)) {
886
890
  delayedTransitions.push({
@@ -1005,6 +1009,14 @@ function resolveTarget(stateNode, targets) {
1005
1009
  function resolveHistoryDefaultTransition(stateNode) {
1006
1010
  const normalizedTarget = normalizeTarget(stateNode.config.target);
1007
1011
  if (!normalizedTarget) {
1012
+ if (stateNode.parent.type === 'parallel') {
1013
+ return {
1014
+ target: [stateNode.parent],
1015
+ source: stateNode,
1016
+ reenter: false,
1017
+ eventType: ''
1018
+ };
1019
+ }
1008
1020
  return stateNode.parent.initial;
1009
1021
  }
1010
1022
  return {
@@ -1386,7 +1398,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1386
1398
  }
1387
1399
  }
1388
1400
  for (const exitStateNode of statesToExit) {
1389
- const stateInput = currentSnapshot._stateInputs?.[exitStateNode.id];
1401
+ const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
1390
1402
  const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
1391
1403
  if (internalEvents?.length) {
1392
1404
  internalQueue.push(...internalEvents);
@@ -1720,7 +1732,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
1720
1732
  const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
1721
1733
  nextStateNodesToExit.forEach(stateNode => {
1722
1734
  if (stateNode.exit) {
1723
- const stateInput = nextState._stateInputs?.[stateNode.id];
1735
+ const stateInput = getStateInput(nextState, stateNode.id);
1724
1736
  const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
1725
1737
  allExitActions.push(...exitActions);
1726
1738
  if (nextInternalEvents?.length) {
@@ -1764,7 +1776,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
1764
1776
  actions: snapshot.machine.implementations.actions,
1765
1777
  actorSources: snapshot.machine.implementations.actorSources,
1766
1778
  guards: snapshot.machine.implementations.guards,
1767
- delays: snapshot.machine.implementations.delays
1779
+ delays: snapshot.machine.implementations.delays,
1780
+ input: getStateInput(snapshot, transition.source.id)
1768
1781
  };
1769
1782
  if (transition.to) {
1770
1783
  const actions = [];
@@ -1905,11 +1918,11 @@ function resolveStateValue(rootNode, stateValue) {
1905
1918
  }
1906
1919
  function hasEffect(transition, context, event, snapshot, self) {
1907
1920
  if (transition.to) {
1908
- return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
1921
+ return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
1909
1922
  }
1910
1923
  return false;
1911
1924
  }
1912
- function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
1925
+ function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
1913
1926
  let hasEffect = false;
1914
1927
  let res;
1915
1928
  try {
@@ -1931,7 +1944,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
1931
1944
  actions: implementations.actions,
1932
1945
  actorSources: implementations.actorSources,
1933
1946
  guards: implementations.guards,
1934
- delays: implementations.delays
1947
+ delays: implementations.delays,
1948
+ input: getStateInput(snapshot, sourceId)
1935
1949
  }, createEnqueueObject({
1936
1950
  emit: triggerEffect,
1937
1951
  cancel: triggerEffect,
@@ -1999,7 +2013,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
1999
2013
  }
2000
2014
  }
2001
2015
  if (candidate.to) {
2002
- return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
2016
+ return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
2003
2017
  }
2004
2018
  return true;
2005
2019
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dist_xstateActors = require('./index-1ac35571.cjs.js');
5
+ var dist_xstateActors = require('./index-626fe0b0.cjs.js');
6
6
 
7
7
 
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dist_xstateActors = require('./index-415cdd3a.development.cjs.js');
5
+ var dist_xstateActors = require('./index-792d3638.development.cjs.js');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-31e8ad34.development.esm.js';
1
+ export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-b5a6f830.development.esm.js';
@@ -1 +1 @@
1
- export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-addc01a2.esm.js';
1
+ export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-0842e9fd.esm.js';
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dist_xstateActors = require('./index-1ac35571.cjs.js');
6
- var StateMachine = require('./StateMachine-a10528bb.cjs.js');
5
+ var dist_xstateActors = require('./index-626fe0b0.cjs.js');
6
+ var StateMachine = require('./StateMachine-20b7d63b.cjs.js');
7
7
 
8
8
  function simpleStringify(value) {
9
9
  return JSON.stringify(value);