xstate 5.32.6 → 5.33.1

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 (50) hide show
  1. package/dist/{StateMachine-3f520def.cjs.js → StateMachine-385ea6e2.cjs.js} +8 -6
  2. package/dist/{StateMachine-28a9f50e.esm.js → StateMachine-521e1f66.esm.js} +8 -6
  3. package/dist/{StateMachine-3778f5e0.development.cjs.js → StateMachine-d4a4d688.development.cjs.js} +8 -6
  4. package/dist/{StateMachine-fffbf42d.development.esm.js → StateMachine-e5453556.development.esm.js} +8 -6
  5. package/dist/{assign-c349a5e8.development.esm.js → assign-08205f93.development.esm.js} +1 -1
  6. package/dist/{assign-f03a9bed.development.cjs.js → assign-22c2f2aa.development.cjs.js} +1 -1
  7. package/dist/{assign-54f9e2d3.esm.js → assign-b4b1f28f.esm.js} +1 -1
  8. package/dist/{assign-d3f33159.cjs.js → assign-b8c7b733.cjs.js} +1 -1
  9. package/dist/declarations/src/StateMachine.d.ts +17 -15
  10. package/dist/declarations/src/StateNode.d.ts +18 -18
  11. package/dist/declarations/src/createMachine.d.ts +4 -4
  12. package/dist/declarations/src/graph/types.d.ts +2 -3
  13. package/dist/declarations/src/setup.d.ts +8 -8
  14. package/dist/declarations/src/stateUtils.d.ts +2 -2
  15. package/dist/declarations/src/types.d.ts +87 -77
  16. package/dist/{log-66075555.esm.js → log-64b4a2b9.esm.js} +2 -2
  17. package/dist/{log-3beea04f.cjs.js → log-aca8da4c.cjs.js} +2 -2
  18. package/dist/{log-140dec60.development.esm.js → log-ccf9f9e1.development.esm.js} +2 -2
  19. package/dist/{log-0ed3e43f.development.cjs.js → log-dc444aec.development.cjs.js} +2 -2
  20. package/dist/{raise-c90786ef.development.esm.js → raise-4d6182c1.development.esm.js} +2 -0
  21. package/dist/{raise-53e20da7.development.cjs.js → raise-6dbf7d60.development.cjs.js} +2 -0
  22. package/dist/{raise-8dd8aaec.esm.js → raise-97446fd4.esm.js} +2 -0
  23. package/dist/{raise-a26997bd.cjs.js → raise-ad56cf14.cjs.js} +2 -0
  24. package/dist/xstate-actions.cjs.js +3 -3
  25. package/dist/xstate-actions.development.cjs.js +3 -3
  26. package/dist/xstate-actions.development.esm.js +3 -3
  27. package/dist/xstate-actions.esm.js +3 -3
  28. package/dist/xstate-actions.umd.min.js.map +1 -1
  29. package/dist/xstate-actors.cjs.js +1 -1
  30. package/dist/xstate-actors.development.cjs.js +1 -1
  31. package/dist/xstate-actors.development.esm.js +1 -1
  32. package/dist/xstate-actors.esm.js +1 -1
  33. package/dist/xstate-graph.cjs.js +3 -3
  34. package/dist/xstate-graph.development.cjs.js +3 -3
  35. package/dist/xstate-graph.development.esm.js +3 -3
  36. package/dist/xstate-graph.esm.js +3 -3
  37. package/dist/xstate-graph.umd.min.js +1 -1
  38. package/dist/xstate-graph.umd.min.js.map +1 -1
  39. package/dist/xstate-guards.cjs.js +1 -1
  40. package/dist/xstate-guards.development.cjs.js +1 -1
  41. package/dist/xstate-guards.development.esm.js +1 -1
  42. package/dist/xstate-guards.esm.js +1 -1
  43. package/dist/xstate-guards.umd.min.js.map +1 -1
  44. package/dist/xstate.cjs.js +4 -4
  45. package/dist/xstate.development.cjs.js +4 -4
  46. package/dist/xstate.development.esm.js +8 -8
  47. package/dist/xstate.esm.js +8 -8
  48. package/dist/xstate.umd.min.js +1 -1
  49. package/dist/xstate.umd.min.js.map +1 -1
  50. package/package.json +1 -1
@@ -90,7 +90,7 @@ export interface UnifiedArg<TContext extends MachineContext, TExpressionEvent ex
90
90
  export type MachineContext = Record<string, any>;
91
91
  export interface ActionArgs<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> extends UnifiedArg<TContext, TExpressionEvent, TEvent> {
92
92
  }
93
- export type InputFrom<T> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema> ? TInput : T extends ActorLogic<infer _TSnapshot, infer _TEvent, infer TInput, infer _TSystem, infer _TEmitted> ? TInput : never;
93
+ export type InputFrom<T> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? TInput : T extends ActorLogic<infer _TSnapshot, infer _TEvent, infer TInput, infer _TSystem, infer _TEmitted> ? TInput : never;
94
94
  export type OutputFrom<T> = T extends ActorLogic<infer TSnapshot, infer _TEvent, infer _TInput, infer _TSystem, infer _TEmitted> ? (TSnapshot & {
95
95
  status: 'done';
96
96
  })['output'] : T extends ActorRef<infer TSnapshot, infer _TEvent, infer _TEmitted> ? (TSnapshot & {
@@ -140,8 +140,7 @@ export interface TransitionConfig<TContext extends MachineContext, TExpressionEv
140
140
  meta?: TMeta;
141
141
  description?: string;
142
142
  }
143
- export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TODO, // TEmitted
144
- TODO> {
143
+ export interface InitialTransitionConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject = EventObject, TTransitionMeta extends MetaObject = MetaObject> extends TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta> {
145
144
  target: string;
146
145
  }
147
146
  export type AnyTransitionConfig = TransitionConfig<any, // TContext
@@ -153,7 +152,7 @@ any, // TGuard
153
152
  any, // TDelay
154
153
  any, // TEmitted
155
154
  any>;
156
- export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> {
155
+ export interface InvokeDefinition<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject> {
157
156
  id: string;
158
157
  systemId: string | undefined;
159
158
  /** The source of the actor logic to be invoked */
@@ -163,41 +162,40 @@ export interface InvokeDefinition<TContext extends MachineContext, TEvent extend
163
162
  * The transition to take upon the invoked child machine reaching its final
164
163
  * top-level state.
165
164
  */
166
- onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
165
+ onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
167
166
  /**
168
167
  * The transition to take upon the invoked child machine sending an error
169
168
  * event.
170
169
  */
171
- onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
172
- onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
173
- toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>, 'onDone' | 'onError' | 'toJSON'>;
170
+ onError?: string | SingleOrArray<TransitionConfig<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
171
+ onSnapshot?: string | SingleOrArray<TransitionConfig<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
172
+ toJSON: () => Omit<InvokeDefinition<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>, 'onDone' | 'onError' | 'toJSON'>;
174
173
  }
175
174
  type Delay<TDelay extends string> = TDelay | number;
176
- export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = {
177
- [K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TODO, // TEmitted
178
- TODO>>;
175
+ export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject = EventObject, TTransitionMeta extends MetaObject = MetaObject> = {
176
+ [K in Delay<TDelay>]?: string | SingleOrArray<TransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
179
177
  };
180
178
  export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | ({} & string);
181
179
  export type SingleOrArray<T> = readonly T[] | T;
182
- export type StateNodesConfig<TContext extends MachineContext, TEvent extends EventObject> = {
183
- [K in string]: StateNode<TContext, TEvent>;
180
+ export type StateNodesConfig<TContext extends MachineContext, TEvent extends EventObject, TStateMeta extends MetaObject = MetaObject, TTransitionMeta extends MetaObject = TStateMeta> = {
181
+ [K in string]: StateNode<TContext, TEvent, TStateMeta, TTransitionMeta>;
184
182
  };
185
- export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> = {
186
- [K in string]: StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput, TEmitted, TMeta>;
183
+ export type StatesConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TOutput, TEmitted extends EventObject, TStateMeta extends MetaObject, TTransitionMeta extends MetaObject = TStateMeta> = {
184
+ [K in string]: StateNodeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TOutput, TEmitted, TStateMeta, TTransitionMeta>;
187
185
  };
188
- export type StatesDefinition<TContext extends MachineContext, TEvent extends EventObject> = {
189
- [K in string]: StateNodeDefinition<TContext, TEvent>;
186
+ export type StatesDefinition<TContext extends MachineContext, TEvent extends EventObject, TStateMeta extends MetaObject = MetaObject, TTransitionMeta extends MetaObject = TStateMeta> = {
187
+ [K in string]: StateNodeDefinition<TContext, TEvent, TStateMeta, TTransitionMeta>;
190
188
  };
191
189
  export type TransitionConfigTarget = string | undefined;
192
- export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
193
- export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = {
194
- [K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
190
+ export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
191
+ export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject> = {
192
+ [K in EventDescriptor<TEvent>]?: TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>;
195
193
  };
196
194
  type PartialEventDescriptor<TEventType extends string> = TEventType extends `${infer TLeading}.${infer TTail}` ? `${TLeading}.*` | `${TLeading}.${PartialEventDescriptor<TTail>}` : never;
197
195
  export type EventDescriptor<TEvent extends EventObject> = TEvent['type'] | PartialEventDescriptor<TEvent['type']> | '*';
198
196
  type NormalizeDescriptor<TDescriptor extends string> = TDescriptor extends '*' ? string : TDescriptor extends `${infer TLeading}.*` ? `${TLeading}.${string}` : TDescriptor;
199
197
  export type IsLiteralString<T extends string> = string extends T ? false : true;
200
- type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
198
+ type DistributeActors<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject, TSpecificActor extends ProvidedActor> = TSpecificActor extends {
201
199
  src: infer TSrc;
202
200
  } ? Compute<{
203
201
  systemId?: string;
@@ -213,13 +211,13 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
213
211
  * The transition to take upon the invoked child machine reaching
214
212
  * its final top-level state.
215
213
  */
216
- onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
214
+ onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<OutputFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
217
215
  /**
218
216
  * The transition to take upon the invoked child machine sending an
219
217
  * error event.
220
218
  */
221
- onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
222
- onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
219
+ onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
220
+ onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
223
221
  } & {
224
222
  [K in RequiredActorOptions<TSpecificActor>]: unknown;
225
223
  }> | {
@@ -227,11 +225,11 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
227
225
  systemId?: string;
228
226
  src: AnyActorLogic;
229
227
  input?: Mapper<TContext, TEvent, NonReducibleUnknown, TEvent> | NonReducibleUnknown;
230
- onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
231
- onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
232
- onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
228
+ onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<unknown>, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
229
+ onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
230
+ onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
233
231
  } : never;
234
- export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TMeta extends MetaObject> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta, TActor> : {
232
+ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta, TActor> : {
235
233
  /**
236
234
  * The unique identifier for the invoked machine. If not specified, this
237
235
  * will be the machine's own `id`, or the URL (from `src`).
@@ -246,18 +244,18 @@ export type InvokeConfig<TContext extends MachineContext, TEvent extends EventOb
246
244
  * final top-level state.
247
245
  */
248
246
  onDone?: string | SingleOrArray<TransitionConfigOrTarget<TContext, DoneActorEvent<any>, // TODO: consider replacing with `unknown`
249
- TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
247
+ TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
250
248
  /**
251
249
  * The transition to take upon the invoked child machine sending an
252
250
  * error event.
253
251
  */
254
- onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
255
- onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
252
+ onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
253
+ onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
256
254
  };
257
255
  export type AnyInvokeConfig = InvokeConfig<any, any, any, any, any, any, any, any>;
258
- export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, _TOutput, TEmitted extends EventObject, TMeta extends MetaObject> {
256
+ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, _TOutput, TEmitted extends EventObject, TStateMeta extends MetaObject, TTransitionMeta extends MetaObject = TStateMeta> {
259
257
  /** The initial state transition. */
260
- initial?: InitialTransitionConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay> | string | undefined;
258
+ initial?: InitialTransitionConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta> | string | undefined;
261
259
  /**
262
260
  * The type of this state node:
263
261
  *
@@ -277,14 +275,14 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
277
275
  * The mapping of state node keys to their state node configurations
278
276
  * (recursive).
279
277
  */
280
- states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, NonReducibleUnknown, TEmitted, TMeta> | undefined;
278
+ states?: StatesConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, NonReducibleUnknown, TEmitted, TStateMeta, TTransitionMeta> | undefined;
281
279
  /**
282
280
  * The services to invoke upon entering this state node. These services will
283
281
  * be stopped upon exiting this state node.
284
282
  */
285
- invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>>;
283
+ invoke?: SingleOrArray<InvokeConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>>;
286
284
  /** The mapping of event types to their potential transition(s). */
287
- on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
285
+ on?: TransitionsConfig<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>;
288
286
  /** The action(s) to be executed upon entering the state node. */
289
287
  entry?: Actions<TContext, TEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay, TEmitted>;
290
288
  /** The action(s) to be executed upon exiting the state node. */
@@ -296,24 +294,24 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
296
294
  * This is equivalent to defining a `[done(id)]` transition on this state
297
295
  * node's `on` property.
298
296
  */
299
- onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>> | undefined;
297
+ onDone?: string | SingleOrArray<TransitionConfig<TContext, DoneStateEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>> | undefined;
300
298
  /**
301
299
  * The mapping (or array) of delays (in milliseconds) to their potential
302
300
  * transition(s). The delayed transitions are taken after the specified delay
303
301
  * in an interpreter.
304
302
  */
305
- after?: DelayedTransitions<TContext, TEvent, TActor, TAction, TGuard, TDelay>;
303
+ after?: DelayedTransitions<TContext, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>;
306
304
  /**
307
305
  * An eventless transition that is always taken when this state node is
308
306
  * active.
309
307
  */
310
- always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TMeta>;
311
- parent?: StateNode<TContext, TEvent>;
308
+ always?: TransitionConfigOrTarget<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>;
309
+ parent?: StateNode<TContext, TEvent, TStateMeta, TTransitionMeta>;
312
310
  /**
313
311
  * The meta data associated with this state node, which will be returned in
314
312
  * State instances.
315
313
  */
316
- meta?: TMeta;
314
+ meta?: TStateMeta;
317
315
  /**
318
316
  * The output data sent with the "xstate.done.state._id_" event if this is a
319
317
  * final state node.
@@ -341,41 +339,43 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
341
339
  description?: string;
342
340
  /** A default target for a history state */
343
341
  target?: string | undefined;
344
- route?: RouteTransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted>;
342
+ route?: RouteTransitionConfig<TContext, TEvent, TEvent, TActor, TAction, TGuard, TDelay, TEmitted, TTransitionMeta>;
345
343
  }
346
- export interface RouteTransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject> {
344
+ export interface RouteTransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TEmitted extends EventObject, TTransitionMeta extends MetaObject = MetaObject> {
347
345
  guard?: Guard<TContext, TExpressionEvent, undefined, TGuard>;
348
346
  actions?: Actions<TContext, TExpressionEvent, TEvent, undefined, TActor, TAction, TGuard, TDelay, TEmitted>;
349
- meta?: Record<string, any>;
347
+ meta?: TTransitionMeta;
350
348
  description?: string;
351
349
  }
352
350
  export type AnyStateNodeConfig = StateNodeConfig<any, any, any, any, any, any, any, any, any, // emitted
351
+ any, // state meta
353
352
  any>;
354
- export interface StateNodeDefinition<TContext extends MachineContext, TEvent extends EventObject> {
353
+ export interface StateNodeDefinition<TContext extends MachineContext, TEvent extends EventObject, TStateMeta extends MetaObject = MetaObject, TTransitionMeta extends MetaObject = TStateMeta> {
355
354
  id: string;
356
355
  version?: string | undefined;
357
356
  key: string;
358
357
  type: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';
359
- initial: InitialTransitionDefinition<TContext, TEvent> | undefined;
358
+ initial: InitialTransitionDefinition<TContext, TEvent, TTransitionMeta> | undefined;
360
359
  history: boolean | 'shallow' | 'deep' | undefined;
361
- states: StatesDefinition<TContext, TEvent>;
362
- on: TransitionDefinitionMap<TContext, TEvent>;
363
- transitions: Array<TransitionDefinition<TContext, TEvent>>;
360
+ states: StatesDefinition<TContext, TEvent, TStateMeta, TTransitionMeta>;
361
+ on: TransitionDefinitionMap<TContext, TEvent, TTransitionMeta>;
362
+ transitions: Array<TransitionDefinition<TContext, TEvent, TTransitionMeta>>;
364
363
  entry: UnknownAction[];
365
364
  exit: UnknownAction[];
366
- meta: any;
365
+ meta: TStateMeta | undefined;
367
366
  order: number;
368
367
  output?: StateNodeConfig<TContext, TEvent, ProvidedActor, ParameterizedObject, ParameterizedObject, string, string, unknown, EventObject, // TEmitted
368
+ any, // TStateMeta
369
369
  any>['output'];
370
370
  invoke: Array<InvokeDefinition<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, // TEmitted
371
- TODO>>;
371
+ TTransitionMeta>>;
372
372
  description?: string;
373
373
  tags: string[];
374
374
  }
375
- export interface StateMachineDefinition<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeDefinition<TContext, TEvent> {
375
+ export interface StateMachineDefinition<TContext extends MachineContext, TEvent extends EventObject, TStateMeta extends MetaObject = MetaObject, TTransitionMeta extends MetaObject = TStateMeta> extends StateNodeDefinition<TContext, TEvent, TStateMeta, TTransitionMeta> {
376
376
  }
377
- export type AnyStateNode = StateNode<any, any>;
378
- export type AnyStateNodeDefinition = StateNodeDefinition<any, any>;
377
+ export type AnyStateNode = StateNode<any, any, any, any>;
378
+ export type AnyStateNodeDefinition = StateNodeDefinition<any, any, any, any>;
379
379
  export type AnyMachineSnapshot = MachineSnapshot<any, any, any, any, any, any, any, any>;
380
380
  /** @deprecated Use `AnyMachineSnapshot` instead */
381
381
  export type AnyState = AnyMachineSnapshot;
@@ -392,6 +392,7 @@ any, // input
392
392
  any, // output
393
393
  any, // emitted
394
394
  any, // TMeta
395
+ any, // TStateSchema
395
396
  any>;
396
397
  export type AnyStateConfig = StateConfig<any, AnyEventObject>;
397
398
  export interface AtomicStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeConfig<TContext, TEvent, TODO, TODO, TODO, TODO, TODO, TODO, TODO, // emitted
@@ -480,7 +481,7 @@ export interface MachineOptions {
480
481
  */
481
482
  maxIterations?: number;
482
483
  }
483
- export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TInput = any, TOutput = unknown, TEmitted extends EventObject = EventObject, TMeta extends MetaObject = MetaObject> = (Omit<StateNodeConfig<DoNotInfer<TContext>, DoNotInfer<TEvent>, DoNotInfer<TActor>, DoNotInfer<TAction>, DoNotInfer<TGuard>, DoNotInfer<TDelay>, DoNotInfer<TTag>, DoNotInfer<TOutput>, DoNotInfer<TEmitted>, DoNotInfer<TMeta>>, 'output'> & {
484
+ export type MachineConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject, TDelay extends string = string, TTag extends string = string, TInput = any, TOutput = unknown, TEmitted extends EventObject = EventObject, TStateMeta extends MetaObject = MetaObject, TTransitionMeta extends MetaObject = TStateMeta> = (Omit<StateNodeConfig<DoNotInfer<TContext>, DoNotInfer<TEvent>, DoNotInfer<TActor>, DoNotInfer<TAction>, DoNotInfer<TGuard>, DoNotInfer<TDelay>, DoNotInfer<TTag>, DoNotInfer<TOutput>, DoNotInfer<TEmitted>, DoNotInfer<TStateMeta>, DoNotInfer<TTransitionMeta>>, 'output'> & {
484
485
  /** The initial context (extended state) */
485
486
  /** The machine's own version. */
486
487
  version?: string;
@@ -498,7 +499,7 @@ export interface ProvidedActor {
498
499
  logic: UnknownActorLogic;
499
500
  id?: string | undefined;
500
501
  }
501
- export interface SetupTypes<TContext extends MachineContext, TEvent extends EventObject, TChildrenMap extends Record<string, string>, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> {
502
+ export interface SetupTypes<TContext extends MachineContext, TEvent extends EventObject, TChildrenMap extends Record<string, string>, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TStateMeta extends MetaObject, TTransitionMeta extends MetaObject = TStateMeta> {
502
503
  context?: TContext;
503
504
  events?: TEvent;
504
505
  children?: TChildrenMap;
@@ -506,14 +507,21 @@ export interface SetupTypes<TContext extends MachineContext, TEvent extends Even
506
507
  input?: TInput;
507
508
  output?: TOutput;
508
509
  emitted?: TEmitted;
509
- meta?: TMeta;
510
+ /**
511
+ * State-node metadata. Also used for transition metadata when
512
+ * `transitionMeta` is not specified.
513
+ */
514
+ meta?: TStateMeta;
515
+ /** Transition metadata. */
516
+ transitionMeta?: TTransitionMeta;
510
517
  }
511
- export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TMeta extends MetaObject> extends SetupTypes<TContext, TEvent, never, TTag, TInput, TOutput, TEmitted, TMeta> {
518
+ export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string, TTag extends string, TInput, TOutput, TEmitted extends EventObject, TStateMeta extends MetaObject, TTransitionMeta extends MetaObject = TStateMeta> extends SetupTypes<TContext, TEvent, never, TTag, TInput, TOutput, TEmitted, TStateMeta, TTransitionMeta> {
512
519
  actors?: TActor;
513
520
  actions?: TAction;
514
521
  guards?: TGuard;
515
522
  delays?: TDelay;
516
- meta?: TMeta;
523
+ meta?: TStateMeta;
524
+ transitionMeta?: TTransitionMeta;
517
525
  }
518
526
  export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
519
527
  history: 'shallow' | 'deep';
@@ -575,10 +583,10 @@ export type Mapper<TContext extends MachineContext, TExpressionEvent extends Eve
575
583
  StateValue, string, unknown, TODO, // TMeta
576
584
  TODO>, TEvent, AnyEventObject>;
577
585
  }) => TResult;
578
- export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO, TODO, // TEmitted
579
- TODO>, 'target' | 'guard'> {
580
- target: ReadonlyArray<StateNode<TContext, TEvent>> | undefined;
581
- source: StateNode<TContext, TEvent>;
586
+ export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject, TTransitionMeta extends MetaObject = MetaObject> extends Omit<TransitionConfig<TContext, TEvent, TEvent, TODO, TODO, TODO, TODO, TODO, // TEmitted
587
+ TTransitionMeta>, 'target' | 'guard'> {
588
+ target: ReadonlyArray<StateNode<TContext, TEvent, any, TTransitionMeta>> | undefined;
589
+ source: StateNode<TContext, TEvent, any, TTransitionMeta>;
582
590
  actions: readonly UnknownAction[];
583
591
  reenter: boolean;
584
592
  guard?: UnknownGuard;
@@ -589,18 +597,18 @@ TODO>, 'target' | 'guard'> {
589
597
  actions: readonly UnknownAction[];
590
598
  guard?: UnknownGuard;
591
599
  eventType: EventDescriptor<TEvent>;
592
- meta?: Record<string, any>;
600
+ meta?: TTransitionMeta;
593
601
  };
594
602
  }
595
- export type AnyTransitionDefinition = TransitionDefinition<any, any>;
596
- export interface InitialTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
597
- target: ReadonlyArray<StateNode<TContext, TEvent>>;
603
+ export type AnyTransitionDefinition = TransitionDefinition<any, any, any>;
604
+ export interface InitialTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject, TTransitionMeta extends MetaObject = MetaObject> extends TransitionDefinition<TContext, TEvent, TTransitionMeta> {
605
+ target: ReadonlyArray<StateNode<TContext, TEvent, any, TTransitionMeta>>;
598
606
  guard?: never;
599
607
  }
600
- export type TransitionDefinitionMap<TContext extends MachineContext, TEvent extends EventObject> = {
601
- [K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>>>;
608
+ export type TransitionDefinitionMap<TContext extends MachineContext, TEvent extends EventObject, TTransitionMeta extends MetaObject = MetaObject> = {
609
+ [K in EventDescriptor<TEvent>]: Array<TransitionDefinition<TContext, ExtractEvent<TEvent, K>, TTransitionMeta>>;
602
610
  };
603
- export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends TransitionDefinition<TContext, TEvent> {
611
+ export interface DelayedTransitionDefinition<TContext extends MachineContext, TEvent extends EventObject, TTransitionMeta extends MetaObject = MetaObject> extends TransitionDefinition<TContext, TEvent, TTransitionMeta> {
604
612
  delay: number | string | DelayExpr<TContext, TEvent, undefined, TEvent>;
605
613
  }
606
614
  export interface StateLike<TContext extends MachineContext> {
@@ -616,6 +624,7 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
616
624
  output?: any;
617
625
  error?: unknown;
618
626
  machine?: StateMachine<TContext, TEvent, any, any, any, any, any, any, any, any, any, any, any, // TMeta
627
+ any, // TStateSchema
619
628
  any>;
620
629
  }
621
630
  export interface ActorOptions<TLogic extends AnyActorLogic> {
@@ -807,13 +816,14 @@ any>;
807
816
  export type ActorRefLike = Pick<AnyActorRef, 'sessionId' | 'send' | 'getSnapshot'>;
808
817
  export type UnknownActorRef = ActorRef<Snapshot<unknown>, EventObject>;
809
818
  export type ActorLogicFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<any, any, any, any, any, any, any, any, any, any, any, any, any, // TMeta
819
+ any, // TStateSchema
810
820
  any> ? R : R extends Promise<infer U> ? PromiseActorLogic<U> : never : never;
811
- export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer _TInput, infer TOutput, infer TEmitted, infer TMeta, infer TStateSchema> ? ActorRef<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, TStateSchema>, TEvent, TEmitted> : R extends Promise<infer U> ? ActorRefFrom<PromiseActorLogic<U>> : R extends ActorLogic<infer TSnapshot, infer TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? ActorRef<TSnapshot, TEvent, TEmitted> : never : never;
821
+ export type ActorRefFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer _TInput, infer TOutput, infer TEmitted, infer TMeta, infer TStateSchema, infer _TTransitionMeta> ? ActorRef<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, TStateSchema>, TEvent, TEmitted> : R extends Promise<infer U> ? ActorRefFrom<PromiseActorLogic<U>> : R extends ActorLogic<infer TSnapshot, infer TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? ActorRef<TSnapshot, TEvent, TEmitted> : never : never;
812
822
  export type ActorRefFromLogic<T extends AnyActorLogic> = ActorRef<SnapshotFrom<T>, EventFromLogic<T>, EmittedFrom<T>>;
813
823
  export type DevToolsAdapter = (service: AnyActor) => void;
814
824
  /** @deprecated Use `Actor<T>` instead. */
815
- export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer TInput, infer TOutput, infer TEmitted, infer TMeta, infer TStateSchema> ? Actor<ActorLogic<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, TStateSchema>, TEvent, TInput, AnyActorSystem, TEmitted>> : never;
816
- export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer _TChildren, infer TActor, infer TAction, infer TGuard, infer TDelay, infer _TStateValue, infer TTag, infer _TInput, infer _TOutput, infer TEmitted, infer _TMeta, infer _TStateSchema> ? InternalMachineImplementations<ResolvedStateMachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>> : never;
825
+ export type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer TStateValue, infer TTag, infer TInput, infer TOutput, infer TEmitted, infer TMeta, infer TStateSchema, infer _TTransitionMeta> ? Actor<ActorLogic<MachineSnapshot<TContext, TEvent, TChildren, TStateValue, TTag, TOutput, TMeta, TStateSchema>, TEvent, TInput, AnyActorSystem, TEmitted>> : never;
826
+ export type MachineImplementationsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, infer TEvent, infer _TChildren, infer TActor, infer TAction, infer TGuard, infer TDelay, infer _TStateValue, infer TTag, infer _TInput, infer _TOutput, infer TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? InternalMachineImplementations<ResolvedStateMachineTypes<TContext, TEvent, TActor, TAction, TGuard, TDelay, TTag, TEmitted>> : never;
817
827
  export interface ActorScope<TSnapshot extends Snapshot<unknown>, TEvent extends EventObject, TSystem extends AnyActorSystem = AnyActorSystem, TEmitted extends EventObject = EventObject> {
818
828
  self: ActorRef<TSnapshot, TEvent, TEmitted>;
819
829
  id: string;
@@ -915,9 +925,9 @@ AnyActorSystem, any>;
915
925
  export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer TSnapshot, infer _, infer __> ? TSnapshot : R extends Actor<infer TLogic> ? SnapshotFrom<TLogic> : R extends ActorLogic<infer _TSnapshot, infer _TEvent, infer _TInput, infer _TEmitted, infer _TSystem> ? ReturnType<R['transition']> : R extends ActorScope<infer TSnapshot, infer _TEvent, infer _TEmitted, infer _TSystem> ? TSnapshot : never : never;
916
926
  export type EventFromLogic<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer TEvent, infer _TInput, infer _TEmitted, infer _TSystem> ? TEvent : never;
917
927
  export type EmittedFrom<TLogic extends AnyActorLogic> = TLogic extends ActorLogic<infer _TSnapshot, infer _TEvent, infer _TInput, infer _TSystem, infer TEmitted> ? TEmitted : never;
918
- type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema> ? TEvent : R extends MachineSnapshot<infer _TContext, infer TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta, infer _TStateSchema> ? TEvent : R extends ActorRef<infer _TSnapshot, infer TEvent, infer _TEmitted> ? TEvent : never : never;
928
+ type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _TContext, infer TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? TEvent : R extends MachineSnapshot<infer _TContext, infer TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta, infer _TStateSchema> ? TEvent : R extends ActorRef<infer _TSnapshot, infer TEvent, infer _TEmitted> ? TEvent : never : never;
919
929
  export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
920
- export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema> ? TContext : R extends MachineSnapshot<infer TContext, infer _TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta, infer _TStateSchema> ? TContext : R extends Actor<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema> ? TContext : never : never : never;
930
+ export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? TContext : R extends MachineSnapshot<infer TContext, infer _TEvent, infer _TChildren, infer _TStateValue, infer _TTag, infer _TOutput, infer _TMeta, infer _TStateSchema> ? TContext : R extends Actor<infer TActorLogic> ? TActorLogic extends StateMachine<infer TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? TContext : never : never : never;
921
931
  export type InferEvent<E extends EventObject> = {
922
932
  [T in E['type']]: {
923
933
  type: T;
@@ -961,7 +971,7 @@ export type StateSchema = {
961
971
  tags?: unknown;
962
972
  description?: unknown;
963
973
  };
964
- export type StateSchemaFrom<T extends AnyStateMachine> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer TStateSchema> ? TStateSchema : never;
974
+ export type StateSchemaFrom<T extends AnyStateMachine> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer _TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer TStateSchema, infer _TTransitionMeta> ? TStateSchema : never;
965
975
  export type StateId<TSchema extends StateSchema, TKey extends string = '(machine)', TParentKey extends string | null = null> = (TSchema extends {
966
976
  id: string;
967
977
  } ? TSchema['id'] : TParentKey extends null ? TKey : `${TParentKey}.${TKey}`) | (TSchema['states'] extends Record<string, any> ? Values<{
@@ -1036,7 +1046,7 @@ export interface ExecutableSpawnAction extends ExecutableActionObject {
1036
1046
  };
1037
1047
  }
1038
1048
  export type SpecialExecutableAction = ExecutableSpawnAction | ExecutableRaiseAction | ExecutableSendToAction;
1039
- export type ExecutableActionsFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema> ? SpecialExecutableAction | (string extends TAction['type'] ? never : ToExecutableAction<TAction>) : never;
1049
+ export type ExecutableActionsFrom<T extends AnyActorLogic> = T extends StateMachine<infer _TContext, infer _TEvent, infer _TChildren, infer _TActor, infer TAction, infer _TGuard, infer _TDelay, infer _TStateValue, infer _TTag, infer _TInput, infer _TOutput, infer _TEmitted, infer _TMeta, infer _TStateSchema, infer _TTransitionMeta> ? SpecialExecutableAction | (string extends TAction['type'] ? never : ToExecutableAction<TAction>) : never;
1040
1050
  export type ActionExecutor = (actionToExecute: ExecutableActionObject) => void;
1041
1051
  export type BuiltinActionResolution = [
1042
1052
  AnyMachineSnapshot,
@@ -1,5 +1,5 @@
1
- import { Z as XSTATE_ERROR, _ as createErrorActorEvent, E as evaluateGuard, b as cancel, r as raise, d as spawnChild, s as stopChild } from './raise-8dd8aaec.esm.js';
2
- import { a as assign } from './assign-54f9e2d3.esm.js';
1
+ import { Z as XSTATE_ERROR, _ as createErrorActorEvent, E as evaluateGuard, b as cancel, r as raise, d as spawnChild, s as stopChild } from './raise-97446fd4.esm.js';
2
+ import { a as assign } from './assign-b4b1f28f.esm.js';
3
3
 
4
4
  function resolveEmit(_, snapshot, args, actionParams, {
5
5
  event: eventOrExpr
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var dist_xstateGuards = require('./raise-a26997bd.cjs.js');
4
- var assign = require('./assign-d3f33159.cjs.js');
3
+ var dist_xstateGuards = require('./raise-ad56cf14.cjs.js');
4
+ var assign = require('./assign-b8c7b733.cjs.js');
5
5
 
6
6
  function resolveEmit(_, snapshot, args, actionParams, {
7
7
  event: eventOrExpr
@@ -1,5 +1,5 @@
1
- import { Z as executingCustomAction, _ as XSTATE_ERROR, a0 as createErrorActorEvent, E as evaluateGuard, b as cancel, r as raise, d as spawnChild, s as stopChild } from './raise-c90786ef.development.esm.js';
2
- import { a as assign } from './assign-c349a5e8.development.esm.js';
1
+ import { Z as executingCustomAction, _ as XSTATE_ERROR, a0 as createErrorActorEvent, E as evaluateGuard, b as cancel, r as raise, d as spawnChild, s as stopChild } from './raise-4d6182c1.development.esm.js';
2
+ import { a as assign } from './assign-08205f93.development.esm.js';
3
3
 
4
4
  function resolveEmit(_, snapshot, args, actionParams, {
5
5
  event: eventOrExpr
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var dist_xstateGuards = require('./raise-53e20da7.development.cjs.js');
4
- var assign = require('./assign-f03a9bed.development.cjs.js');
3
+ var dist_xstateGuards = require('./raise-6dbf7d60.development.cjs.js');
4
+ var assign = require('./assign-22c2f2aa.development.cjs.js');
5
5
 
6
6
  function resolveEmit(_, snapshot, args, actionParams, {
7
7
  event: eventOrExpr
@@ -1860,6 +1860,8 @@ function formatInitialTransition(stateNode, _target) {
1860
1860
  eventType: null,
1861
1861
  reenter: false,
1862
1862
  target: resolvedTarget ? [resolvedTarget] : [],
1863
+ meta: typeof _target === 'object' ? _target.meta : undefined,
1864
+ description: typeof _target === 'object' ? _target.description : undefined,
1863
1865
  toJSON: () => ({
1864
1866
  ...transition,
1865
1867
  source: `#${stateNode.id}`,
@@ -1862,6 +1862,8 @@ function formatInitialTransition(stateNode, _target) {
1862
1862
  eventType: null,
1863
1863
  reenter: false,
1864
1864
  target: resolvedTarget ? [resolvedTarget] : [],
1865
+ meta: typeof _target === 'object' ? _target.meta : undefined,
1866
+ description: typeof _target === 'object' ? _target.description : undefined,
1865
1867
  toJSON: () => ({
1866
1868
  ...transition,
1867
1869
  source: `#${stateNode.id}`,
@@ -1808,6 +1808,8 @@ function formatInitialTransition(stateNode, _target) {
1808
1808
  eventType: null,
1809
1809
  reenter: false,
1810
1810
  target: resolvedTarget ? [resolvedTarget] : [],
1811
+ meta: typeof _target === 'object' ? _target.meta : undefined,
1812
+ description: typeof _target === 'object' ? _target.description : undefined,
1811
1813
  toJSON: () => ({
1812
1814
  ...transition,
1813
1815
  source: `#${stateNode.id}`,
@@ -1810,6 +1810,8 @@ function formatInitialTransition(stateNode, _target) {
1810
1810
  eventType: null,
1811
1811
  reenter: false,
1812
1812
  target: resolvedTarget ? [resolvedTarget] : [],
1813
+ meta: typeof _target === 'object' ? _target.meta : undefined,
1814
+ description: typeof _target === 'object' ? _target.description : undefined,
1813
1815
  toJSON: () => ({
1814
1816
  ...transition,
1815
1817
  source: `#${stateNode.id}`,
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var assign = require('./assign-d3f33159.cjs.js');
6
- var dist_xstateGuards = require('./raise-a26997bd.cjs.js');
7
- var log = require('./log-3beea04f.cjs.js');
5
+ var assign = require('./assign-b8c7b733.cjs.js');
6
+ var dist_xstateGuards = require('./raise-ad56cf14.cjs.js');
7
+ var log = require('./log-aca8da4c.cjs.js');
8
8
  require('./xstate-dev.cjs.js');
9
9
 
10
10
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var assign = require('./assign-f03a9bed.development.cjs.js');
6
- var dist_xstateGuards = require('./raise-53e20da7.development.cjs.js');
7
- var log = require('./log-0ed3e43f.development.cjs.js');
5
+ var assign = require('./assign-22c2f2aa.development.cjs.js');
6
+ var dist_xstateGuards = require('./raise-6dbf7d60.development.cjs.js');
7
+ var log = require('./log-dc444aec.development.cjs.js');
8
8
  require('./xstate-dev.development.cjs.js');
9
9
 
10
10
 
@@ -1,4 +1,4 @@
1
- export { a as assign } from './assign-c349a5e8.development.esm.js';
2
- export { b as cancel, r as raise, d as spawnChild, y as stop, s as stopChild } from './raise-c90786ef.development.esm.js';
3
- export { a as emit, e as enqueueActions, f as forwardTo, l as log, b as sendParent, s as sendTo } from './log-140dec60.development.esm.js';
1
+ export { a as assign } from './assign-08205f93.development.esm.js';
2
+ export { b as cancel, r as raise, d as spawnChild, y as stop, s as stopChild } from './raise-4d6182c1.development.esm.js';
3
+ export { a as emit, e as enqueueActions, f as forwardTo, l as log, b as sendParent, s as sendTo } from './log-ccf9f9e1.development.esm.js';
4
4
  import './xstate-dev.development.esm.js';
@@ -1,4 +1,4 @@
1
- export { a as assign } from './assign-54f9e2d3.esm.js';
2
- export { b as cancel, r as raise, d as spawnChild, y as stop, s as stopChild } from './raise-8dd8aaec.esm.js';
3
- export { a as emit, e as enqueueActions, f as forwardTo, l as log, b as sendParent, s as sendTo } from './log-66075555.esm.js';
1
+ export { a as assign } from './assign-b4b1f28f.esm.js';
2
+ export { b as cancel, r as raise, d as spawnChild, y as stop, s as stopChild } from './raise-97446fd4.esm.js';
3
+ export { a as emit, e as enqueueActions, f as forwardTo, l as log, b as sendParent, s as sendTo } from './log-64b4a2b9.esm.js';
4
4
  import './xstate-dev.esm.js';