xstate 5.0.0-beta.15 → 5.0.0-beta.17

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 (51) hide show
  1. package/actions/dist/xstate-actions.cjs.js +2 -7
  2. package/actions/dist/xstate-actions.cjs.mjs +2 -7
  3. package/actions/dist/xstate-actions.development.cjs.js +2 -7
  4. package/actions/dist/xstate-actions.development.esm.js +1 -1
  5. package/actions/dist/xstate-actions.esm.js +1 -1
  6. package/actions/dist/xstate-actions.umd.min.js +1 -1
  7. package/actions/dist/xstate-actions.umd.min.js.map +1 -1
  8. package/actors/dist/xstate-actors.cjs.js +1 -1
  9. package/actors/dist/xstate-actors.development.cjs.js +1 -1
  10. package/actors/dist/xstate-actors.development.esm.js +1 -1
  11. package/actors/dist/xstate-actors.esm.js +1 -1
  12. package/actors/dist/xstate-actors.umd.min.js +1 -1
  13. package/actors/dist/xstate-actors.umd.min.js.map +1 -1
  14. package/dist/{actions-98f362b9.development.esm.js → actions-13190b25.development.esm.js} +1335 -1537
  15. package/dist/{actions-d71ac253.development.cjs.js → actions-40bd643f.development.cjs.js} +1336 -1546
  16. package/dist/{actions-6884fae8.esm.js → actions-4d6514d2.esm.js} +1310 -1539
  17. package/dist/{actions-81cc7f2b.cjs.js → actions-5fb9f10d.cjs.js} +1311 -1548
  18. package/dist/declarations/src/State.d.ts +1 -1
  19. package/dist/declarations/src/StateMachine.d.ts +2 -4
  20. package/dist/declarations/src/StateNode.d.ts +4 -4
  21. package/dist/declarations/src/actions/assign.d.ts +11 -2
  22. package/dist/declarations/src/actions/cancel.d.ts +14 -3
  23. package/dist/declarations/src/actions/choose.d.ts +11 -3
  24. package/dist/declarations/src/actions/log.d.ts +22 -3
  25. package/dist/declarations/src/actions/pure.d.ts +17 -3
  26. package/dist/declarations/src/actions/raise.d.ts +5 -2
  27. package/dist/declarations/src/actions/send.d.ts +64 -22
  28. package/dist/declarations/src/actions/stop.d.ts +14 -2
  29. package/dist/declarations/src/actions.d.ts +5 -11
  30. package/dist/declarations/src/constantPrefixes.d.ts +6 -0
  31. package/dist/declarations/src/interpreter.d.ts +8 -3
  32. package/dist/declarations/src/stateUtils.d.ts +4 -8
  33. package/dist/declarations/src/types.d.ts +38 -223
  34. package/dist/declarations/src/utils.d.ts +1 -6
  35. package/dist/xstate.cjs.js +61 -52
  36. package/dist/xstate.cjs.mjs +1 -1
  37. package/dist/xstate.development.cjs.js +61 -52
  38. package/dist/xstate.development.esm.js +61 -52
  39. package/dist/xstate.esm.js +61 -52
  40. package/dist/xstate.umd.min.js +1 -1
  41. package/dist/xstate.umd.min.js.map +1 -1
  42. package/guards/dist/xstate-guards.cjs.js +1 -1
  43. package/guards/dist/xstate-guards.development.cjs.js +1 -1
  44. package/guards/dist/xstate-guards.development.esm.js +1 -1
  45. package/guards/dist/xstate-guards.esm.js +1 -1
  46. package/guards/dist/xstate-guards.umd.min.js +1 -1
  47. package/guards/dist/xstate-guards.umd.min.js.map +1 -1
  48. package/package.json +1 -1
  49. package/actions/dynamicAction.ts +0 -42
  50. package/dist/declarations/src/actionTypes.d.ts +0 -16
  51. package/dist/declarations/src/constants.d.ts +0 -5
@@ -44,36 +44,14 @@ export interface ParameterizedObject {
44
44
  type: string;
45
45
  params?: Record<string, any>;
46
46
  }
47
- export interface BaseActionObject extends ParameterizedObject {
48
- execute?: (actorCtx: AnyActorContext) => void;
49
- }
50
- export interface BuiltInActionObject extends ParameterizedObject {
51
- type: `xstate.${string}`;
52
- params: Record<string, any>;
53
- }
54
47
  export interface UnifiedArg<TContext extends MachineContext, TEvent extends EventObject> {
55
48
  context: TContext;
56
49
  event: TEvent;
57
- }
58
- export interface BaseDynamicActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TResolvedAction extends BaseActionObject, TDynamicParams extends Record<string, any>> {
59
- type: `xstate.${string}`;
60
- params: TDynamicParams;
61
- resolve: (event: TExpressionEvent, extra: {
62
- state: State<TContext, TEvent>;
63
- /**
64
- * The original action object
65
- */
66
- action: ParameterizedObject;
67
- actorContext: AnyActorContext | undefined;
68
- }) => [AnyState, TResolvedAction];
69
- /** @deprecated an internal signature that doesn't exist at runtime. Its existence helps TS to choose a better code path in the inference algorithm */
70
- (args: {
71
- context: TContext;
72
- event: TExpressionEvent;
73
- } & ActionMeta<TEvent, ParameterizedObject>): void;
50
+ self: ActorRef<TEvent>;
51
+ system: ActorSystem<any>;
74
52
  }
75
53
  export type MachineContext = Record<string, any>;
76
- export interface ActionMeta<TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> extends StateMeta<TEvent> {
54
+ export interface ActionArgs<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> extends UnifiedArg<TContext, TEvent> {
77
55
  action: TAction;
78
56
  }
79
57
  export type Spawner = <T extends ActorLogic<any, any> | string>(// TODO: read string from machine logic keys
@@ -82,28 +60,19 @@ logic: T, options?: Partial<{
82
60
  systemId?: string;
83
61
  input: any;
84
62
  }>) => T extends ActorLogic<infer TActorEvent, infer TActorEmitted, infer _, infer __, infer ___> ? ActorRef<TActorEvent, TActorEmitted> : ActorRef<any, any>;
85
- export interface AssignMeta<TExpressionEvent extends EventObject, _TEvent extends EventObject> extends StateMeta<TExpressionEvent> {
86
- action: BaseActionObject;
87
- event: TExpressionEvent;
63
+ export interface AssignArgs<TContext extends MachineContext, TExpressionEvent extends EventObject> extends ActionArgs<TContext, TExpressionEvent> {
88
64
  spawn: Spawner;
89
65
  }
90
- export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TEvent extends EventObject = TExpressionEvent> = (args: {
91
- context: TContext;
92
- event: TExpressionEvent;
93
- } & ActionMeta<TEvent, TAction>) => void;
94
- export interface ChooseCondition<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> {
66
+ export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> = {
67
+ (args: ActionArgs<TContext, TExpressionEvent, TAction>): void;
68
+ _out_TEvent?: TEvent;
69
+ };
70
+ export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> {
95
71
  guard?: GuardConfig<TContext, TExpressionEvent>;
96
72
  actions: Actions<TContext, TExpressionEvent, TEvent>;
97
73
  }
98
- export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = ActionType | ParameterizedObject | ActionFunction<TContext, TExpressionEvent, ParameterizedObject, TEvent> | BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, any, any>;
99
- /**
100
- * Extracts action objects that have no extra properties.
101
- */
102
- type SimpleActionsFrom<T extends ParameterizedObject> = ParameterizedObject extends T ? T : ExtractWithSimpleSupport<T>;
103
- export type BaseAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TAction extends ParameterizedObject, TEvent extends EventObject> = BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, any, // TODO: at the very least this should include TAction, but probably at a covariant position or something, we really need to rethink how action objects are typed
104
- any> | TAction | SimpleActionsFrom<TAction>['type'] | ActionFunction<TContext, TExpressionEvent, TAction, TEvent>;
105
- export type BaseActions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TAction extends ParameterizedObject> = SingleOrArray<BaseAction<TContext, TExpressionEvent, TAction, TEvent>>;
106
- export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = SingleOrArray<Action<TContext, TEvent>>;
74
+ export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = ActionType | ParameterizedObject | ActionFunction<TContext, TExpressionEvent, TEvent, ParameterizedObject>;
75
+ export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent>>;
107
76
  export type StateKey = string | AnyState;
108
77
  export interface StateValueMap {
109
78
  [key: string]: StateValue;
@@ -118,7 +87,7 @@ export type StateValue = string | StateValueMap;
118
87
  export type GuardPredicate<TContext extends MachineContext, TEvent extends EventObject> = (args: {
119
88
  context: TContext;
120
89
  event: TEvent;
121
- } & GuardMeta<TContext, TEvent>) => boolean;
90
+ } & GuardArgs<TContext, TEvent>) => boolean;
122
91
  export interface DefaultGuardObject<TContext extends MachineContext, TEvent extends EventObject> extends ParameterizedObject {
123
92
  /**
124
93
  * Nested guards
@@ -127,7 +96,7 @@ export interface DefaultGuardObject<TContext extends MachineContext, TEvent exte
127
96
  predicate?: GuardPredicate<TContext, TEvent>;
128
97
  }
129
98
  export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>) => boolean;
130
- export interface GuardMeta<TContext extends MachineContext, TEvent extends EventObject> {
99
+ export interface GuardArgs<TContext extends MachineContext, TEvent extends EventObject> {
131
100
  state: State<TContext, TEvent, any>;
132
101
  guard: GuardDefinition<TContext, TEvent>;
133
102
  evaluate: GuardEvaluator<TContext, TEvent>;
@@ -159,7 +128,7 @@ export interface BooleanGuardDefinition<TContext extends MachineContext, TEvent
159
128
  export type TransitionTarget = SingleOrArray<string>;
160
129
  export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject> {
161
130
  guard?: GuardConfig<TContext, TExpressionEvent>;
162
- actions?: BaseActions<TContext, TExpressionEvent, TEvent, TAction>;
131
+ actions?: Actions<TContext, TExpressionEvent, TEvent>;
163
132
  reenter?: boolean;
164
133
  target?: TransitionTarget | undefined;
165
134
  meta?: Record<string, any>;
@@ -174,11 +143,6 @@ export interface InitialTransitionConfig<TContext extends MachineContext, TEvent
174
143
  target: TransitionTarget;
175
144
  }
176
145
  export type Transition<TContext extends MachineContext, TEvent extends EventObject = EventObject> = string | TransitionConfig<TContext, TEvent> | ConditionalTransitionConfig<TContext, TEvent>;
177
- type ExtractWithSimpleSupport<T extends {
178
- type: string;
179
- }> = T extends any ? {
180
- type: T['type'];
181
- } extends T ? T : never : never;
182
146
  export type Receiver<TEvent extends EventObject> = (listener: {
183
147
  bivarianceHack(event: TEvent): void;
184
148
  }['bivarianceHack']) => void;
@@ -218,7 +182,7 @@ export interface Delay {
218
182
  delay: number;
219
183
  }
220
184
  export type DelayedTransitions<TContext extends MachineContext, TEvent extends EventObject> = Record<string | number, string | SingleOrArray<TransitionConfig<TContext, TEvent>>> | Array<TransitionConfig<TContext, TEvent> & {
221
- delay: number | string | Expr<TContext, TEvent, number>;
185
+ delay: number | string | ((args: UnifiedArg<TContext, TEvent>) => number);
222
186
  }>;
223
187
  export type StateTypes = 'atomic' | 'compound' | 'parallel' | 'final' | 'history' | string;
224
188
  export type SingleOrArray<T> = T[] | T;
@@ -233,15 +197,9 @@ export type StatesDefinition<TContext extends MachineContext, TEvent extends Eve
233
197
  };
234
198
  export type TransitionConfigTarget = string | undefined;
235
199
  export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent>>;
236
- export type TransitionsConfigMap<TContext extends MachineContext, TEvent extends EventObject> = {
237
- [K in TEvent['type'] | '' | '*']?: K extends '' | '*' ? TransitionConfigOrTarget<TContext, TEvent> : TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent>;
200
+ export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject> = {
201
+ [K in TEvent['type'] | '*']?: K extends '*' ? TransitionConfigOrTarget<TContext, TEvent> : TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent>;
238
202
  };
239
- type TransitionsConfigArray<TContext extends MachineContext, TEvent extends EventObject> = Array<(TEvent extends EventObject ? TransitionConfig<TContext, TEvent> & {
240
- event: TEvent['type'];
241
- } : never) | (TransitionConfig<TContext, TEvent> & {
242
- event: '*';
243
- })>;
244
- export type TransitionsConfig<TContext extends MachineContext, TEvent extends EventObject> = TransitionsConfigMap<TContext, TEvent> | TransitionsConfigArray<TContext, TEvent>;
245
203
  export interface InvokeConfig<TContext extends MachineContext, TEvent extends EventObject> {
246
204
  /**
247
205
  * The unique identifier for the invoked machine. If not specified, this
@@ -304,11 +262,11 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
304
262
  /**
305
263
  * The action(s) to be executed upon entering the state node.
306
264
  */
307
- entry?: BaseActions<TContext, TEvent, TEvent, TAction>;
265
+ entry?: Actions<TContext, TEvent, TEvent>;
308
266
  /**
309
267
  * The action(s) to be executed upon exiting the state node.
310
268
  */
311
- exit?: BaseActions<TContext, TEvent, TEvent, TAction>;
269
+ exit?: Actions<TContext, TEvent, TEvent>;
312
270
  /**
313
271
  * The potential transition(s) to be taken upon reaching a final child state node.
314
272
  *
@@ -371,8 +329,8 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
371
329
  states: StatesDefinition<TContext, TEvent>;
372
330
  on: TransitionDefinitionMap<TContext, TEvent>;
373
331
  transitions: Array<TransitionDefinition<TContext, TEvent>>;
374
- entry: BaseActionObject[];
375
- exit: BaseActionObject[];
332
+ entry: Action<any, any, any>[];
333
+ exit: Action<any, any, any>[];
376
334
  meta: any;
377
335
  order: number;
378
336
  output?: FinalStateNodeConfig<TContext, TEvent>['output'];
@@ -381,7 +339,6 @@ export interface StateNodeDefinition<TContext extends MachineContext, TEvent ext
381
339
  tags: string[];
382
340
  }
383
341
  export interface StateMachineDefinition<TContext extends MachineContext, TEvent extends EventObject> extends StateNodeDefinition<TContext, TEvent> {
384
- context: TContext;
385
342
  }
386
343
  export type AnyStateNode = StateNode<any, any>;
387
344
  export type AnyStateNodeDefinition = StateNodeDefinition<any, any>;
@@ -408,7 +365,7 @@ export interface FinalStateNodeConfig<TContext extends MachineContext, TEvent ex
408
365
  }
409
366
  export type SimpleOrStateNodeConfig<TContext extends MachineContext, TEvent extends EventObject> = AtomicStateNodeConfig<TContext, TEvent> | StateNodeConfig<TContext, TEvent>;
410
367
  export type ActionFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> = {
411
- [K in TAction['type']]?: BaseDynamicActionObject<TContext, TEvent, TEvent, TAction, any> | ActionFunction<TContext, TEvent, TAction extends {
368
+ [K in TAction['type']]?: ActionFunction<TContext, TEvent, TEvent, TAction extends {
412
369
  type: K;
413
370
  } ? TAction : never>;
414
371
  };
@@ -424,9 +381,7 @@ export interface MachineImplementationsSimplified<TContext extends MachineContex
424
381
  delays: DelayFunctionMap<TContext, TEvent>;
425
382
  }
426
383
  type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
427
- [K in keyof TEventsCausingActions]?: BaseDynamicActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, any, // TODO: this should receive something like `Cast<Prop<TIndexedActions, K>, ParameterizedObject>`, but at the moment builtin actions expect Resolved*Action here and this should be simplified somehow
428
- any> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, ParameterizedObject, // TODO: when bringing back parametrized actions this should accept something like `Cast<Prop<TIndexedActions, K>, ParameterizedObject>`. At the moment we need to keep this type argument consistent with what is provided to the fake callable signature within `BaseDynamicActionObject`
429
- Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>>;
384
+ [K in keyof TEventsCausingActions]?: ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, ParameterizedObject>;
430
385
  };
431
386
  type MachineImplementationsDelays<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingDelays'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>> = {
432
387
  [K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
@@ -501,32 +456,14 @@ export type HistoryValue<TContext extends MachineContext, TEvent extends EventOb
501
456
  export type AnyHistoryValue = HistoryValue<any, any>;
502
457
  export type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
503
458
  export type Transitions<TContext extends MachineContext, TEvent extends EventObject> = Array<TransitionDefinition<TContext, TEvent>>;
504
- export declare enum ActionTypes {
505
- Stop = "xstate.stop",
506
- Raise = "xstate.raise",
507
- Send = "xstate.send",
508
- Cancel = "xstate.cancel",
509
- Assign = "xstate.assign",
459
+ export declare enum ConstantPrefix {
510
460
  After = "xstate.after",
511
461
  DoneState = "done.state",
512
462
  DoneInvoke = "done.invoke",
513
- Log = "xstate.log",
514
- Init = "xstate.init",
515
- Invoke = "xstate.invoke",
516
463
  ErrorExecution = "error.execution",
517
464
  ErrorCommunication = "error.communication",
518
465
  ErrorPlatform = "error.platform",
519
- ErrorCustom = "xstate.error",
520
- Pure = "xstate.pure",
521
- Choose = "xstate.choose"
522
- }
523
- export interface RaiseActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> extends BaseActionObject {
524
- type: ActionTypes.Raise;
525
- params: {
526
- event: TEvent;
527
- delay: RaiseActionOptions<TContext, TExpressionEvent>['delay'];
528
- id: string | number;
529
- };
466
+ ErrorCustom = "xstate.error"
530
467
  }
531
468
  export interface DoneInvokeEvent<TData> extends EventObject {
532
469
  type: `done.invoke.${string}`;
@@ -542,7 +479,7 @@ export interface SnapshotEvent<TData> {
542
479
  }
543
480
  export interface ErrorExecutionEvent extends EventObject {
544
481
  src: string;
545
- type: ActionTypes.ErrorExecution;
482
+ type: ConstantPrefix.ErrorExecution;
546
483
  data: any;
547
484
  }
548
485
  export interface ErrorPlatformEvent extends EventObject {
@@ -553,106 +490,29 @@ export interface DoneEventObject extends EventObject {
553
490
  toString(): string;
554
491
  }
555
492
  export type DoneEvent = DoneEventObject & string;
556
- export interface InvokeAction {
557
- type: ActionTypes.Invoke;
558
- src: string | ActorRef<any>;
559
- id: string;
560
- exec?: undefined;
561
- meta: MetaObject | undefined;
562
- }
563
- export interface DynamicInvokeActionObject<TContext extends MachineContext, TEvent extends EventObject> {
564
- type: ActionTypes.Invoke;
565
- params: InvokeDefinition<TContext, TEvent>;
566
- }
567
- export interface InvokeActionObject extends BaseActionObject {
568
- type: ActionTypes.Invoke;
569
- params: {
570
- src: string | ActorRef<any>;
571
- id: string;
572
- exec?: undefined;
573
- ref?: ActorRef<any>;
574
- meta: MetaObject | undefined;
575
- };
576
- }
577
- export interface DynamicStopActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject> {
578
- type: ActionTypes.Stop;
579
- params: {
580
- actor: string | ActorRef<any> | Expr<TContext, TExpressionEvent, ActorRef<any> | string>;
581
- };
582
- }
583
- export interface StopActionObject {
584
- type: ActionTypes.Stop;
585
- params: {
586
- actor: ActorRef<any>;
587
- };
588
- }
589
- export type DelayExpr<TContext extends MachineContext, TEvent extends EventObject> = ExprWithMeta<TContext, TEvent, number>;
590
- export type LogExpr<TContext extends MachineContext, TEvent extends EventObject> = ExprWithMeta<TContext, TEvent, any>;
591
- export interface DynamicLogAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> extends BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, LogActionObject, {
592
- label: string | undefined;
593
- expr: string | LogExpr<TContext, TExpressionEvent>;
594
- }> {
595
- type: ActionTypes.Log;
596
- }
597
- export interface LogActionObject extends BuiltInActionObject {
598
- type: ActionTypes.Log;
599
- params: {
600
- label: string | undefined;
601
- value: any;
602
- };
603
- }
604
- export interface SendActionObject<TSentEvent extends EventObject = AnyEventObject> extends BaseActionObject {
605
- type: 'xstate.send';
606
- params: {
607
- to: ActorRef<TSentEvent> | undefined;
608
- event: TSentEvent;
609
- delay?: number;
610
- id: string | number;
611
- internal: boolean;
612
- };
613
- }
614
- export type Expr<TContext extends MachineContext, TEvent extends EventObject, T> = (arg: UnifiedArg<TContext, TEvent>) => T;
615
- export type ExprWithMeta<TContext extends MachineContext, TEvent extends EventObject, T> = (args: UnifiedArg<TContext, TEvent> & StateMeta<TEvent>) => T;
616
- export type SendExpr<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> = ExprWithMeta<TContext, TEvent, TSentEvent>;
493
+ export type DelayExpr<TContext extends MachineContext, TEvent extends EventObject> = (args: UnifiedArg<TContext, TEvent>) => number;
494
+ export type LogExpr<TContext extends MachineContext, TEvent extends EventObject> = (args: UnifiedArg<TContext, TEvent>) => unknown;
495
+ export type SendExpr<TContext extends MachineContext, TExpressionEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject> = (args: UnifiedArg<TContext, TExpressionEvent>) => TSentEvent;
617
496
  export declare enum SpecialTargets {
618
497
  Parent = "#_parent",
619
498
  Internal = "#_internal"
620
499
  }
621
- export interface SendActionOptions<TContext extends MachineContext, TEvent extends EventObject> extends RaiseActionOptions<TContext, TEvent> {
622
- to?: string | ActorRef<any, any> | ExprWithMeta<TContext, TEvent, string | ActorRef<any, any>>;
500
+ export interface SendToActionOptions<TContext extends MachineContext, TEvent extends EventObject> extends RaiseActionOptions<TContext, TEvent> {
623
501
  }
624
502
  export interface RaiseActionOptions<TContext extends MachineContext, TEvent extends EventObject> {
625
- id?: string | number;
503
+ id?: string;
626
504
  delay?: number | string | DelayExpr<TContext, TEvent>;
627
505
  }
628
506
  export interface RaiseActionParams<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject> extends RaiseActionOptions<TContext, TExpressionEvent> {
629
507
  event: TEvent | SendExpr<TContext, TExpressionEvent, TEvent>;
630
508
  }
631
- export interface SendActionParams<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = EventObject> extends SendActionOptions<TContext, TEvent> {
509
+ export interface SendToActionParams<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = EventObject> extends SendToActionOptions<TContext, TEvent> {
632
510
  event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>;
633
511
  }
634
- export interface DynamicCancelActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject> {
635
- type: ActionTypes.Cancel;
636
- params: {
637
- sendId: string | ExprWithMeta<TContext, TExpressionEvent, string>;
638
- };
639
- }
640
- export interface CancelActionObject extends BaseActionObject {
641
- type: ActionTypes.Cancel;
642
- params: {
643
- sendId: string;
644
- };
645
- }
646
- export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = (args: {
647
- context: TContext;
648
- event: TExpressionEvent;
649
- } & AssignMeta<TExpressionEvent, TEvent>) => Partial<TContext>;
650
- export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TKey extends keyof TContext> = (args: {
651
- context: TContext;
652
- event: TExpressionEvent;
653
- } & AssignMeta<TExpressionEvent, TEvent>) => TContext[TKey];
654
- export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = {
655
- [K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, TEvent, K> | TContext[K];
512
+ export type Assigner<TContext extends MachineContext, TExpressionEvent extends EventObject> = (args: AssignArgs<TContext, TExpressionEvent>) => Partial<TContext>;
513
+ export type PartialAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject, TKey extends keyof TContext> = (args: AssignArgs<TContext, TExpressionEvent>) => TContext[TKey];
514
+ export type PropertyAssigner<TContext extends MachineContext, TExpressionEvent extends EventObject> = {
515
+ [K in keyof TContext]?: PartialAssigner<TContext, TExpressionEvent, K> | TContext[K];
656
516
  };
657
517
  export type Mapper<TContext extends MachineContext, TEvent extends EventObject, TParams extends {}> = (args: {
658
518
  context: TContext;
@@ -664,58 +524,17 @@ export type PropertyMapper<TContext extends MachineContext, TEvent extends Event
664
524
  event: TEvent;
665
525
  }) => TParams[K]) | TParams[K];
666
526
  };
667
- export interface AnyAssignAction extends BaseActionObject {
668
- type: ActionTypes.Assign;
669
- assignment: any;
670
- }
671
- export type DynamicAssignAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, AssignActionObject<TContext> | RaiseActionObject<TContext, TExpressionEvent>, {
672
- assignment: Assigner<TContext, TExpressionEvent, TEvent> | PropertyAssigner<TContext, TExpressionEvent, TEvent>;
673
- }>;
674
- export interface AssignActionObject<TContext extends MachineContext> extends BaseActionObject {
675
- type: ActionTypes.Assign;
676
- params: {
677
- context: TContext;
678
- actions: BaseActionObject[];
679
- };
680
- }
681
- export interface DynamicPureActionObject<TContext extends MachineContext, TEvent extends EventObject> {
682
- type: ActionTypes.Pure;
683
- params: {
684
- get: (args: {
685
- context: TContext;
686
- event: TEvent;
687
- }) => SingleOrArray<BaseActionObject | BaseActionObject['type']> | undefined;
688
- };
689
- }
690
- export interface PureActionObject extends BaseActionObject {
691
- type: ActionTypes.Pure;
692
- params: {
693
- actions: BaseActionObject[];
694
- };
695
- }
696
- export interface ChooseAction<TContext extends MachineContext, TEvent extends EventObject> extends BaseActionObject {
697
- type: ActionTypes.Choose;
698
- params: {
699
- guards: Array<ChooseCondition<TContext, TEvent>>;
700
- };
701
- }
702
- export interface ResolvedChooseAction extends BaseActionObject {
703
- type: ActionTypes.Choose;
704
- params: {
705
- actions: BaseActionObject[];
706
- };
707
- }
708
527
  export interface TransitionDefinition<TContext extends MachineContext, TEvent extends EventObject> extends Omit<TransitionConfig<TContext, TEvent>, 'target'> {
709
528
  target: Array<StateNode<TContext, TEvent>> | undefined;
710
529
  source: StateNode<TContext, TEvent>;
711
- actions: BaseActionObject[];
530
+ actions: Action<any, any, any>[];
712
531
  reenter: boolean;
713
532
  guard?: GuardDefinition<TContext, TEvent>;
714
533
  eventType: TEvent['type'] | '*';
715
534
  toJSON: () => {
716
535
  target: string[] | undefined;
717
536
  source: string;
718
- actions: BaseActionObject[];
537
+ actions: Action<any, any, any>[];
719
538
  guard?: GuardDefinition<TContext, TEvent>;
720
539
  eventType: TEvent['type'] | '*';
721
540
  meta?: Record<string, any>;
@@ -759,10 +578,6 @@ export interface Segment<TContext extends MachineContext, TEvent extends EventOb
759
578
  */
760
579
  event: TEvent;
761
580
  }
762
- export interface StateMeta<TEvent extends EventObject> {
763
- self: ActorRef<TEvent>;
764
- system: ActorSystem<any>;
765
- }
766
581
  export interface StateLike<TContext extends MachineContext> {
767
582
  value: StateValue;
768
583
  context: TContext;
@@ -1,5 +1,4 @@
1
1
  import { AnyActorLogic, AnyState } from "./index.js";
2
- import { NULL_EVENT } from "./constants.js";
3
2
  import type { StateNode } from "./StateNode.js";
4
3
  import type { ActorLogic, AnyEventObject, EventObject, EventType, InvokeConfig, MachineContext, Mapper, Observer, PropertyMapper, ErrorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfig, TransitionConfigTarget } from "./types.js";
5
4
  export declare function keys<T extends object>(value: T): Array<keyof T & string>;
@@ -33,14 +32,10 @@ export declare function isPromiseLike(value: any): value is PromiseLike<any>;
33
32
  export declare function isActorLogic(value: any): value is ActorLogic<any, any>;
34
33
  export declare function partition<T, A extends T, B extends T>(items: T[], predicate: (item: T) => item is A): [A[], B[]];
35
34
  export declare function isArray(value: any): value is any[];
36
- export declare function isFunction(value: any): value is Function;
37
- export declare function isString(value: any): value is string;
38
35
  export declare function isObservable<T>(value: any): value is Subscribable<T>;
39
36
  export declare const uniqueId: () => string;
40
37
  export declare function isErrorEvent(event: AnyEventObject): event is ErrorEvent<any>;
41
- export declare function toTransitionConfigArray<TContext extends MachineContext, TEvent extends EventObject>(event: TEvent['type'] | typeof NULL_EVENT | '*', configLike: SingleOrArray<TransitionConfig<TContext, TEvent> | TransitionConfigTarget>): Array<TransitionConfig<TContext, TEvent> & {
42
- event: TEvent['type'] | typeof NULL_EVENT | '*';
43
- }>;
38
+ export declare function toTransitionConfigArray<TContext extends MachineContext, TEvent extends EventObject>(configLike: SingleOrArray<TransitionConfig<TContext, TEvent> | TransitionConfigTarget>): Array<TransitionConfig<TContext, TEvent>>;
44
39
  export declare function normalizeTarget<TContext extends MachineContext, TEvent extends EventObject>(target: SingleOrArray<string | StateNode<TContext, TEvent>> | undefined): Array<string | StateNode<TContext, TEvent>> | undefined;
45
40
  export declare function reportUnhandledExceptionOnInvocation(originalError: any, currentError: any, id: string): void;
46
41
  export declare function toInvokeConfig<TContext extends MachineContext, TEvent extends EventObject>(invocable: InvokeConfig<TContext, TEvent> | string | ActorLogic<any, any>, id: string): InvokeConfig<TContext, TEvent>;