xstate 5.0.0-alpha.0 → 5.0.0-alpha.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 (83) hide show
  1. package/README.md +23 -13
  2. package/actions/dist/xstate-actions.cjs.dev.js +22 -24
  3. package/actions/dist/xstate-actions.cjs.prod.js +22 -24
  4. package/actions/dist/xstate-actions.esm.js +1 -1
  5. package/actions/dist/xstate-actions.umd.min.js +2 -0
  6. package/actions/dist/xstate-actions.umd.min.js.map +1 -0
  7. package/actions/dynamicAction.ts +4 -4
  8. package/actions/package.json +5 -1
  9. package/actors/dist/xstate-actors.cjs.dev.js +12 -13
  10. package/actors/dist/xstate-actors.cjs.prod.js +12 -13
  11. package/actors/dist/xstate-actors.esm.js +1 -1
  12. package/actors/dist/xstate-actors.umd.min.js +2 -0
  13. package/actors/dist/xstate-actors.umd.min.js.map +1 -0
  14. package/actors/package.json +5 -1
  15. package/dev/dist/xstate-dev.umd.min.js +2 -0
  16. package/dev/dist/xstate-dev.umd.min.js.map +1 -0
  17. package/dev/package.json +5 -1
  18. package/dist/{actions-70094c93.cjs.prod.js → actions-7ea9280f.cjs.prod.js} +3118 -3209
  19. package/dist/{actions-6b86876d.cjs.dev.js → actions-b08d0da8.cjs.dev.js} +3105 -3202
  20. package/dist/{actions-ff512f16.esm.js → actions-b673cb13.esm.js} +3092 -3189
  21. package/dist/declarations/actions/dynamicAction.d.ts +5 -3
  22. package/dist/declarations/src/Machine.d.ts +4 -4
  23. package/dist/declarations/src/Mailbox.d.ts +12 -12
  24. package/dist/declarations/src/SimulatedClock.d.ts +16 -16
  25. package/dist/declarations/src/State.d.ts +97 -104
  26. package/dist/declarations/src/StateMachine.d.ts +120 -112
  27. package/dist/declarations/src/StateNode.d.ts +127 -127
  28. package/dist/declarations/src/actionTypes.d.ts +16 -17
  29. package/dist/declarations/src/actions/assign.d.ts +7 -7
  30. package/dist/declarations/src/actions/cancel.d.ts +10 -10
  31. package/dist/declarations/src/actions/choose.d.ts +3 -3
  32. package/dist/declarations/src/actions/invoke.d.ts +3 -3
  33. package/dist/declarations/src/actions/log.d.ts +11 -11
  34. package/dist/declarations/src/actions/pure.d.ts +3 -3
  35. package/dist/declarations/src/actions/raise.d.ts +9 -9
  36. package/dist/declarations/src/actions/send.d.ts +51 -55
  37. package/dist/declarations/src/actions/stop.d.ts +7 -8
  38. package/dist/declarations/src/actions.d.ts +43 -44
  39. package/dist/declarations/src/actors.d.ts +37 -38
  40. package/dist/declarations/src/constants.d.ts +5 -5
  41. package/dist/declarations/src/dev/index.d.ts +14 -14
  42. package/dist/declarations/src/environment.d.ts +1 -1
  43. package/dist/declarations/src/guards.d.ts +8 -9
  44. package/dist/declarations/src/index.d.ts +44 -47
  45. package/dist/declarations/src/interpreter.d.ts +108 -147
  46. package/dist/declarations/src/mapState.d.ts +3 -3
  47. package/dist/declarations/src/memo.d.ts +2 -1
  48. package/dist/declarations/src/registry.d.ts +8 -8
  49. package/dist/declarations/src/schema.d.ts +2 -2
  50. package/dist/declarations/src/spawn.d.ts +2 -2
  51. package/dist/declarations/src/stateUtils.d.ts +70 -85
  52. package/dist/declarations/src/symbolObservable.d.ts +1 -0
  53. package/dist/declarations/src/typegenTypes.d.ts +132 -132
  54. package/dist/declarations/src/types.d.ts +1001 -1026
  55. package/dist/declarations/src/utils.d.ts +54 -56
  56. package/dist/xstate.cjs.dev.js +856 -80
  57. package/dist/xstate.cjs.prod.js +856 -80
  58. package/dist/xstate.esm.js +815 -35
  59. package/dist/xstate.umd.min.js +2 -0
  60. package/dist/xstate.umd.min.js.map +1 -0
  61. package/guards/dist/xstate-guards.cjs.dev.js +7 -7
  62. package/guards/dist/xstate-guards.cjs.prod.js +7 -7
  63. package/guards/dist/xstate-guards.esm.js +1 -1
  64. package/guards/dist/xstate-guards.umd.min.js +2 -0
  65. package/guards/dist/xstate-guards.umd.min.js.map +1 -0
  66. package/guards/package.json +5 -1
  67. package/package.json +25 -2
  68. package/CHANGELOG.md +0 -1986
  69. package/actions/ExecutableAction.ts +0 -58
  70. package/dist/Machine-9ce74c11.cjs.dev.js +0 -755
  71. package/dist/Machine-dca041dc.cjs.prod.js +0 -749
  72. package/dist/Machine-fb2f47f5.esm.js +0 -751
  73. package/dist/declarations/actions/ExecutableAction.d.ts +0 -23
  74. package/dist/declarations/src/ObservableActorRef.d.ts +0 -25
  75. package/dist/declarations/src/match.d.ts +0 -5
  76. package/dist/declarations/src/model.d.ts +0 -5
  77. package/dist/declarations/src/model.types.d.ts +0 -53
  78. package/model/dist/xstate-model.cjs.d.ts +0 -1
  79. package/model/dist/xstate-model.cjs.dev.js +0 -41
  80. package/model/dist/xstate-model.cjs.js +0 -7
  81. package/model/dist/xstate-model.cjs.prod.js +0 -41
  82. package/model/dist/xstate-model.esm.js +0 -37
  83. package/model/package.json +0 -4
@@ -1,85 +1,70 @@
1
- import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, DelayedTransitionDefinition, SingleOrArray, SCXML, Transitions, StateValueMap, HistoryValue, InitialTransitionConfig, InitialTransitionDefinition, Event, MachineContext } from './types';
2
- import { State } from './State';
3
- import { NULL_EVENT } from './constants';
4
- import type { StateMachine } from './StateMachine';
5
- import type { StateNode } from './StateNode';
6
- import { AnyStateMachine } from '.';
7
- declare type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
8
- declare type AdjList<TContext extends MachineContext, TE extends EventObject> = Map<StateNode<TContext, TE>, Array<StateNode<TContext, TE>>>;
9
- export declare const isAtomicStateNode: (stateNode: StateNode<any, any>) => boolean;
10
- export declare function getChildren<TContext extends MachineContext, TE extends EventObject>(stateNode: StateNode<TContext, TE>): Array<StateNode<TContext, TE>>;
11
- export declare function getProperAncestors<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, toStateNode: StateNode<TContext, TEvent> | null): Array<typeof stateNode>;
12
- export declare function getAllStateNodes<TContext extends MachineContext, TE extends EventObject>(stateNode: StateNode<TContext, TE>): Array<StateNode<TContext, TE>>;
13
- export declare function getConfiguration<TC extends MachineContext, TE extends EventObject>(stateNodes: Iterable<StateNode<TC, TE>>): Set<StateNode<TC, TE>>;
14
- export declare function getAdjList<TContext extends MachineContext, TE extends EventObject>(configuration: Configuration<TContext, TE>): AdjList<TContext, TE>;
15
- export declare function getStateValue<TContext extends MachineContext, TE extends EventObject>(rootNode: StateNode<TContext, TE>, configuration: Configuration<TContext, TE>): StateValue;
16
- export declare function has<T>(iterable: Iterable<T>, item: T): boolean;
17
- export declare function nextEvents<TContext extends MachineContext, TE extends EventObject>(configuration: Array<StateNode<TContext, TE>>): Array<TE['type']>;
18
- export declare function isInFinalState<TContext extends MachineContext, TE extends EventObject>(configuration: Array<StateNode<TContext, TE>>, stateNode?: StateNode<TContext, TE>): boolean;
19
- export declare const isStateId: (str: string) => boolean;
20
- export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
21
- /**
22
- * If `true`, will use SCXML event partial token matching semantics
23
- * without the need for the ".*" suffix
24
- */
25
- partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
26
- /**
27
- * All delayed transitions from the config.
28
- */
29
- export declare function getDelayedTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<DelayedTransitionDefinition<TContext, TEvent>>;
30
- export declare function formatTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, transitionConfig: TransitionConfig<TContext, TEvent> & {
31
- event: TEvent['type'] | typeof NULL_EVENT | '*';
32
- }): TransitionDefinition<TContext, TEvent>;
33
- export declare function formatTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<TransitionDefinition<TContext, TEvent>>;
34
- export declare function formatInitialTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, _target: SingleOrArray<string> | InitialTransitionConfig<TContext, TEvent>): InitialTransitionDefinition<TContext, TEvent>;
35
- export declare function resolveTarget<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, _target: Array<string | StateNode<TContext, TEvent>> | undefined): Array<StateNode<TContext, TEvent>> | undefined;
36
- export declare function getInitialStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>): Array<StateNode<TContext, TEvent>>;
37
- /**
38
- * Returns the child state node from its relative `stateKey`, or throws.
39
- */
40
- export declare function getStateNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateKey: string): StateNode<TContext, TEvent>;
41
- /**
42
- * Returns the state nodes represented by the current state value.
43
- *
44
- * @param state The state value or State instance
45
- */
46
- export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, state: StateValue | State<TContext, TEvent>): Array<StateNode<TContext, TEvent>>;
47
- export declare function transitionLeafNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: string, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
48
- export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
49
- export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
50
- export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: StateNode<TContext, TEvent>, stateValue: StateValue, state: State<TContext, TEvent, any>, _event: SCXML.Event<TEvent>): Transitions<TContext, TEvent> | undefined;
51
- export declare function removeConflictingTransitions<TContext extends MachineContext, TEvent extends EventObject>(enabledTransitions: Array<TransitionDefinition<TContext, TEvent>>, configuration: Set<StateNode<TContext, TEvent>>, state: State<TContext, TEvent>): Array<TransitionDefinition<TContext, TEvent>>;
52
- export declare function enterStates<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, mutConfiguration: Set<StateNode<TContext, TEvent>>, state: State<TContext, TEvent>): {
53
- statesToInvoke: Set<StateNode<TContext, TEvent>>;
54
- internalQueue: SCXML.Event<TEvent>[];
55
- actions: BaseActionObject[];
56
- };
57
- /**
58
- * https://www.w3.org/TR/scxml/#microstepProcedure
59
- *
60
- * @private
61
- * @param transitions
62
- * @param currentState
63
- * @param mutConfiguration
64
- */
65
- export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent>, context: TContext, mutConfiguration: Set<StateNode<TContext, TEvent>>, machine: StateMachine<TContext, TEvent>, _event: SCXML.Event<TEvent>): {
66
- actions: BaseActionObject[];
67
- configuration: typeof mutConfiguration;
68
- historyValue: HistoryValue<TContext, TEvent>;
69
- internalQueue: Array<SCXML.Event<TEvent>>;
70
- context: TContext;
71
- };
72
- export declare function resolveMicroTransition<TContext extends MachineContext, TEvent extends EventObject>(machine: StateMachine<TContext, TEvent, any, any, any>, transitions: Transitions<TContext, TEvent>, currentState: State<TContext, TEvent, any>, _event?: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
73
- declare type StateFromMachine<TMachine extends AnyStateMachine> = TMachine['initialState'];
74
- export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, event: Event<TMachine['__TEvent']> | SCXML.Event<TMachine['__TEvent']> | null, machine: TMachine): typeof state;
75
- /**
76
- * Resolves a partial state value with its full representation in the state node's machine.
77
- *
78
- * @param stateValue The partial state value to resolve.
79
- */
80
- export declare function resolveStateValue<TContext extends MachineContext, TEvent extends EventObject>(rootNode: StateNode<TContext, TEvent>, stateValue: StateValue): StateValue;
81
- export declare function toState<TMachine extends AnyStateMachine>(state: StateValue | TMachine['initialState'], machine: TMachine): StateFromMachine<TMachine>;
82
- export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
83
- export declare function getMeta(configuration?: Array<StateNode<any, any>>): Record<string, any>;
84
- export declare function getTagsFromConfiguration(configuration: Array<StateNode<any, any>>): Set<string>;
85
- export {};
1
+ import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, SCXML, StateValueMap, InitialTransitionConfig, MachineContext } from './types';
2
+ import { State } from './State';
3
+ import { NULL_EVENT } from './constants';
4
+ import type { StateNode } from './StateNode';
5
+ import { ActorContext, AnyHistoryValue, AnyState, AnyStateMachine, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, InitialTransitionDefinition, StateFromMachine } from '.';
6
+ declare type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
7
+ declare type AnyConfiguration = Configuration<any, any>;
8
+ declare type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
9
+ export declare function getConfiguration(stateNodes: Iterable<AnyStateNode>): Set<AnyStateNode>;
10
+ export declare function getAdjList<TContext extends MachineContext, TE extends EventObject>(configuration: Configuration<TContext, TE>): AdjList;
11
+ export declare function getStateValue(rootNode: AnyStateNode, configuration: AnyConfiguration): StateValue;
12
+ export declare function isInFinalState(configuration: Array<AnyStateNode>, stateNode?: AnyStateNode): boolean;
13
+ export declare const isStateId: (str: string) => boolean;
14
+ export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
15
+ /**
16
+ * If `true`, will use SCXML event partial token matching semantics
17
+ * without the need for the ".*" suffix
18
+ */
19
+ partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
20
+ /**
21
+ * All delayed transitions from the config.
22
+ */
23
+ export declare function getDelayedTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode): Array<DelayedTransitionDefinition<TContext, TEvent>>;
24
+ export declare function formatTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, transitionConfig: TransitionConfig<TContext, TEvent> & {
25
+ event: TEvent['type'] | typeof NULL_EVENT | '*';
26
+ }): AnyTransitionDefinition;
27
+ export declare function formatTransitions<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode): Array<AnyTransitionDefinition>;
28
+ export declare function formatInitialTransition<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, _target: SingleOrArray<string> | InitialTransitionConfig<TContext, TEvent>): InitialTransitionDefinition<TContext, TEvent>;
29
+ export declare function resolveTarget(stateNode: AnyStateNode, targets: Array<string | AnyStateNode> | undefined): Array<AnyStateNode> | undefined;
30
+ export declare function getInitialStateNodes(stateNode: AnyStateNode): Array<AnyStateNode>;
31
+ /**
32
+ * Returns the child state node from its relative `stateKey`, or throws.
33
+ */
34
+ export declare function getStateNode(stateNode: AnyStateNode, stateKey: string): AnyStateNode;
35
+ /**
36
+ * Returns the state nodes represented by the current state value.
37
+ *
38
+ * @param state The state value or State instance
39
+ */
40
+ export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent>): Array<AnyStateNode>;
41
+ export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
42
+ export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
43
+ export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
44
+ export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, _event: SCXML.Event<TEvent>): Array<TransitionDefinition<TContext, TEvent>> | undefined;
45
+ export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, configuration: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
46
+ /**
47
+ * https://www.w3.org/TR/scxml/#microstepProcedure
48
+ *
49
+ * @private
50
+ * @param transitions
51
+ * @param currentState
52
+ * @param mutConfiguration
53
+ */
54
+ export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: ActorContext<any, any> | undefined, scxmlEvent: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
55
+ export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], scxmlEvent: SCXML.Event<TEvent>, currentState: State<TContext, TEvent, any>, actorCtx: ActorContext<any, any> | undefined): {
56
+ nextState: AnyState;
57
+ };
58
+ export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, scxmlEvent: SCXML.Event<TMachine['__TEvent']>, actorCtx: ActorContext<any, any> | undefined): {
59
+ state: typeof state;
60
+ microstates: Array<typeof state>;
61
+ };
62
+ /**
63
+ * Resolves a partial state value with its full representation in the state node's machine.
64
+ *
65
+ * @param stateValue The partial state value to resolve.
66
+ */
67
+ export declare function resolveStateValue(rootNode: AnyStateNode, stateValue: StateValue): StateValue;
68
+ export declare function stateValuesEqual(a: StateValue | undefined, b: StateValue | undefined): boolean;
69
+ export declare function getInitialConfiguration(rootNode: AnyStateNode): AnyStateNode[];
70
+ export {};
@@ -0,0 +1 @@
1
+ export declare const symbolObservable: typeof Symbol.observable;
@@ -1,132 +1,132 @@
1
- import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast } from './types';
2
- export interface TypegenDisabled {
3
- '@@xstate/typegen': false;
4
- }
5
- export interface TypegenEnabled {
6
- '@@xstate/typegen': true;
7
- }
8
- export interface TypegenMeta extends TypegenEnabled {
9
- /**
10
- * Allows you to specify all the results of state.matches
11
- */
12
- matchesStates: string | {};
13
- /**
14
- * Allows you to specify all tags used by the machine
15
- */
16
- tags: string;
17
- /**
18
- * Allows you to specify all the missing implementations
19
- * of the machine
20
- */
21
- missingImplementations: {
22
- actions: string;
23
- actors: string;
24
- delays: string;
25
- guards: string;
26
- };
27
- /**
28
- * A map for the internal events of the machine.
29
- *
30
- * key: 'done.invoke.myActor'
31
- * value: {
32
- * type: 'done.invoke.myActor';
33
- * data: unknown;
34
- * __tip: 'Declare the type in event types!';
35
- * }
36
- */
37
- internalEvents: {};
38
- /**
39
- * Maps the name of the actor to the event type
40
- * of the done.invoke action
41
- *
42
- * key: 'invokeSrc'
43
- * value: 'done.invoke.invokeName'
44
- */
45
- invokeSrcNameMap: Record<string, string>;
46
- /**
47
- * Keeps track of which events lead to which
48
- * actions.
49
- *
50
- * Key: 'EVENT_NAME'
51
- * Value: 'actionName' | 'otherActionName'
52
- */
53
- eventsCausingActions: Record<string, string>;
54
- /**
55
- * Keeps track of which events lead to which
56
- * delays.
57
- *
58
- * Key: 'EVENT_NAME'
59
- * Value: 'delayName' | 'otherDelayName'
60
- */
61
- eventsCausingDelays: Record<string, string>;
62
- /**
63
- * Keeps track of which events lead to which
64
- * guards.
65
- *
66
- * Key: 'EVENT_NAME'
67
- * Value: 'guardName' | 'otherGuardName'
68
- */
69
- eventsCausingGuards: Record<string, string>;
70
- /**
71
- * Keeps track of which events lead to which
72
- * actors.
73
- *
74
- * Key: 'EVENT_NAME'
75
- * Value: 'actorName' | 'otherActorName'
76
- */
77
- eventsCausingActors: Record<string, string>;
78
- }
79
- export interface ResolvedTypegenMeta extends TypegenMeta {
80
- resolved: TypegenMeta & {
81
- indexedActions: Record<string, BaseActionObject>;
82
- indexedEvents: Record<string, EventObject>;
83
- };
84
- }
85
- export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
86
- export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
87
- [K in keyof TMissingImplementations]: TMissingImplementations[K];
88
- }>> extends true ? true : false : true;
89
- interface AllImplementationsProvided {
90
- missingImplementations: {
91
- actions: never;
92
- actors: never;
93
- delays: never;
94
- guards: never;
95
- };
96
- }
97
- export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
98
- '@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
99
- resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
100
- }
101
- declare type GenerateActorEvent<TActorName, TEventType, TActorMap extends ActorMap> = TEventType extends any ? {
102
- type: TEventType;
103
- } & Prop<TActorMap, TActorName> : never;
104
- declare type GenerateActorEvents<TActorMap extends ActorMap, TInvokeSrcNameMap> = string extends keyof TActorMap ? never : Cast<{
105
- [K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
106
- }[keyof TInvokeSrcNameMap], EventObject>;
107
- declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
108
- declare type AllowAllEvents = {
109
- eventsCausingActions: Record<string, string>;
110
- eventsCausingActors: Record<string, string>;
111
- eventsCausingDelays: Record<string, string>;
112
- eventsCausingGuards: Record<string, string>;
113
- };
114
- export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TActorMap extends ActorMap> {
115
- '@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
116
- resolved: {
117
- enabled: TTypesMeta & {
118
- indexedActions: IndexByType<TAction>;
119
- indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateActorEvents<TActorMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
120
- };
121
- disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & {
122
- indexedActions: IndexByType<TAction>;
123
- indexedEvents: Record<string, TEvent> & {
124
- __XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
125
- data: any;
126
- };
127
- };
128
- invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
129
- };
130
- }[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
131
- }
132
- export {};
1
+ import { BaseActionObject, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast } from './types';
2
+ export interface TypegenDisabled {
3
+ '@@xstate/typegen': false;
4
+ }
5
+ export interface TypegenEnabled {
6
+ '@@xstate/typegen': true;
7
+ }
8
+ export interface TypegenMeta extends TypegenEnabled {
9
+ /**
10
+ * Allows you to specify all the results of state.matches
11
+ */
12
+ matchesStates: string | {};
13
+ /**
14
+ * Allows you to specify all tags used by the machine
15
+ */
16
+ tags: string;
17
+ /**
18
+ * Allows you to specify all the missing implementations
19
+ * of the machine
20
+ */
21
+ missingImplementations: {
22
+ actions: string;
23
+ actors: string;
24
+ delays: string;
25
+ guards: string;
26
+ };
27
+ /**
28
+ * A map for the internal events of the machine.
29
+ *
30
+ * key: 'done.invoke.myActor'
31
+ * value: {
32
+ * type: 'done.invoke.myActor';
33
+ * data: unknown;
34
+ * __tip: 'Declare the type in event types!';
35
+ * }
36
+ */
37
+ internalEvents: {};
38
+ /**
39
+ * Maps the name of the actor to the event type
40
+ * of the done.invoke action
41
+ *
42
+ * key: 'invokeSrc'
43
+ * value: 'done.invoke.invokeName'
44
+ */
45
+ invokeSrcNameMap: Record<string, string>;
46
+ /**
47
+ * Keeps track of which events lead to which
48
+ * actions.
49
+ *
50
+ * Key: 'EVENT_NAME'
51
+ * Value: 'actionName' | 'otherActionName'
52
+ */
53
+ eventsCausingActions: Record<string, string>;
54
+ /**
55
+ * Keeps track of which events lead to which
56
+ * delays.
57
+ *
58
+ * Key: 'EVENT_NAME'
59
+ * Value: 'delayName' | 'otherDelayName'
60
+ */
61
+ eventsCausingDelays: Record<string, string>;
62
+ /**
63
+ * Keeps track of which events lead to which
64
+ * guards.
65
+ *
66
+ * Key: 'EVENT_NAME'
67
+ * Value: 'guardName' | 'otherGuardName'
68
+ */
69
+ eventsCausingGuards: Record<string, string>;
70
+ /**
71
+ * Keeps track of which events lead to which
72
+ * actors.
73
+ *
74
+ * Key: 'EVENT_NAME'
75
+ * Value: 'actorName' | 'otherActorName'
76
+ */
77
+ eventsCausingActors: Record<string, string>;
78
+ }
79
+ export interface ResolvedTypegenMeta extends TypegenMeta {
80
+ resolved: TypegenMeta & {
81
+ indexedActions: Record<string, BaseActionObject>;
82
+ indexedEvents: Record<string, EventObject>;
83
+ };
84
+ }
85
+ export declare type TypegenConstraint = TypegenEnabled | TypegenDisabled;
86
+ export declare type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
87
+ [K in keyof TMissingImplementations]: TMissingImplementations[K];
88
+ }>> extends true ? true : false : true;
89
+ interface AllImplementationsProvided {
90
+ missingImplementations: {
91
+ actions: never;
92
+ actors: never;
93
+ delays: never;
94
+ guards: never;
95
+ };
96
+ }
97
+ export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
98
+ '@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
99
+ resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
100
+ }
101
+ declare type GenerateActorEvent<TActorName, TEventType, TActorMap extends ActorMap> = TEventType extends any ? {
102
+ type: TEventType;
103
+ } & Prop<TActorMap, TActorName> : never;
104
+ declare type GenerateActorEvents<TActorMap extends ActorMap, TInvokeSrcNameMap> = string extends keyof TActorMap ? never : Cast<{
105
+ [K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
106
+ }[keyof TInvokeSrcNameMap], EventObject>;
107
+ declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
108
+ declare type AllowAllEvents = {
109
+ eventsCausingActions: Record<string, string>;
110
+ eventsCausingActors: Record<string, string>;
111
+ eventsCausingDelays: Record<string, string>;
112
+ eventsCausingGuards: Record<string, string>;
113
+ };
114
+ export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject, TActorMap extends ActorMap> {
115
+ '@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
116
+ resolved: {
117
+ enabled: TTypesMeta & {
118
+ indexedActions: IndexByType<TAction>;
119
+ indexedEvents: MergeWithInternalEvents<IndexByType<(string extends TEvent['type'] ? never : TEvent) | GenerateActorEvents<TActorMap, Prop<TTypesMeta, 'invokeSrcNameMap'>>>, Prop<TTypesMeta, 'internalEvents'>>;
120
+ };
121
+ disabled: TypegenDisabled & AllImplementationsProvided & AllowAllEvents & {
122
+ indexedActions: IndexByType<TAction>;
123
+ indexedEvents: Record<string, TEvent> & {
124
+ __XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
125
+ data: any;
126
+ };
127
+ };
128
+ invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
129
+ };
130
+ }[IsNever<TTypesMeta> extends true ? 'disabled' : TTypesMeta extends TypegenEnabled ? 'enabled' : 'disabled'];
131
+ }
132
+ export {};