xstate 4.31.0 → 5.0.0-alpha.0

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 (206) hide show
  1. package/CHANGELOG.md +526 -0
  2. package/actions/ExecutableAction.ts +58 -0
  3. package/actions/dist/xstate-actions.cjs.d.ts +1 -0
  4. package/actions/dist/xstate-actions.cjs.dev.js +32 -0
  5. package/actions/dist/xstate-actions.cjs.js +7 -0
  6. package/actions/dist/xstate-actions.cjs.prod.js +32 -0
  7. package/actions/dist/xstate-actions.esm.js +2 -0
  8. package/actions/dynamicAction.ts +34 -0
  9. package/actions/package.json +4 -0
  10. package/actors/dist/xstate-actors.cjs.d.ts +1 -0
  11. package/actors/dist/xstate-actors.cjs.dev.js +21 -0
  12. package/actors/dist/xstate-actors.cjs.js +7 -0
  13. package/actors/dist/xstate-actors.cjs.prod.js +21 -0
  14. package/actors/dist/xstate-actors.esm.js +2 -0
  15. package/actors/package.json +4 -0
  16. package/dev/dist/xstate-dev.cjs.d.ts +1 -0
  17. package/dev/dist/xstate-dev.cjs.dev.js +11 -0
  18. package/dev/dist/xstate-dev.cjs.js +7 -0
  19. package/{lib/devTools.js → dev/dist/xstate-dev.cjs.prod.js} +17 -10
  20. package/dev/dist/xstate-dev.esm.js +1 -0
  21. package/dev/package.json +4 -0
  22. package/dist/Machine-9ce74c11.cjs.dev.js +755 -0
  23. package/dist/Machine-dca041dc.cjs.prod.js +749 -0
  24. package/dist/Machine-fb2f47f5.esm.js +751 -0
  25. package/dist/actions-6b86876d.cjs.dev.js +4815 -0
  26. package/dist/actions-70094c93.cjs.prod.js +4765 -0
  27. package/dist/actions-ff512f16.esm.js +4757 -0
  28. package/dist/declarations/actions/ExecutableAction.d.ts +23 -0
  29. package/dist/declarations/actions/dynamicAction.d.ts +3 -0
  30. package/dist/declarations/src/Machine.d.ts +4 -0
  31. package/dist/declarations/src/Mailbox.d.ts +12 -0
  32. package/dist/declarations/src/ObservableActorRef.d.ts +25 -0
  33. package/{lib → dist/declarations/src}/SimulatedClock.d.ts +0 -1
  34. package/dist/declarations/src/State.d.ts +104 -0
  35. package/dist/declarations/src/StateMachine.d.ts +112 -0
  36. package/dist/declarations/src/StateNode.d.ts +127 -0
  37. package/{es → dist/declarations/src}/actionTypes.d.ts +0 -3
  38. package/dist/declarations/src/actions/assign.d.ts +7 -0
  39. package/dist/declarations/src/actions/cancel.d.ts +10 -0
  40. package/dist/declarations/src/actions/choose.d.ts +3 -0
  41. package/dist/declarations/src/actions/invoke.d.ts +3 -0
  42. package/dist/declarations/src/actions/log.d.ts +11 -0
  43. package/dist/declarations/src/actions/pure.d.ts +3 -0
  44. package/dist/declarations/src/actions/raise.d.ts +9 -0
  45. package/dist/declarations/src/actions/send.d.ts +55 -0
  46. package/dist/declarations/src/actions/stop.d.ts +8 -0
  47. package/dist/declarations/src/actions.d.ts +44 -0
  48. package/dist/declarations/src/actors.d.ts +38 -0
  49. package/dist/declarations/src/constants.d.ts +5 -0
  50. package/{lib/devTools.d.ts → dist/declarations/src/dev/index.d.ts} +2 -2
  51. package/{es → dist/declarations/src}/environment.d.ts +0 -1
  52. package/dist/declarations/src/guards.d.ts +9 -0
  53. package/dist/declarations/src/index.d.ts +47 -0
  54. package/dist/declarations/src/interpreter.d.ts +147 -0
  55. package/{es → dist/declarations/src}/mapState.d.ts +0 -1
  56. package/dist/declarations/src/match.d.ts +5 -0
  57. package/dist/declarations/src/memo.d.ts +1 -0
  58. package/dist/declarations/src/model.d.ts +5 -0
  59. package/{lib → dist/declarations/src}/model.types.d.ts +10 -9
  60. package/dist/declarations/src/registry.d.ts +8 -0
  61. package/{es → dist/declarations/src}/schema.d.ts +0 -1
  62. package/dist/declarations/src/spawn.d.ts +2 -0
  63. package/dist/declarations/src/stateUtils.d.ts +85 -0
  64. package/{lib → dist/declarations/src}/typegenTypes.d.ts +28 -26
  65. package/dist/declarations/src/types.d.ts +1026 -0
  66. package/dist/declarations/src/utils.d.ts +56 -0
  67. package/{es/devTools.js → dist/index-20b364c4.esm.js} +18 -6
  68. package/dist/index-2a564d03.cjs.dev.js +64 -0
  69. package/dist/xstate.cjs.d.ts +1 -0
  70. package/dist/xstate.cjs.dev.js +217 -0
  71. package/dist/xstate.cjs.js +7 -0
  72. package/dist/xstate.cjs.prod.js +217 -0
  73. package/dist/xstate.esm.js +172 -0
  74. package/guards/dist/xstate-guards.cjs.d.ts +1 -0
  75. package/guards/dist/xstate-guards.cjs.dev.js +15 -0
  76. package/guards/dist/xstate-guards.cjs.js +7 -0
  77. package/guards/dist/xstate-guards.cjs.prod.js +15 -0
  78. package/guards/dist/xstate-guards.esm.js +2 -0
  79. package/guards/package.json +4 -0
  80. package/invoke/package.json +4 -0
  81. package/model/dist/xstate-model.cjs.d.ts +1 -0
  82. package/model/dist/xstate-model.cjs.dev.js +41 -0
  83. package/model/dist/xstate-model.cjs.js +7 -0
  84. package/model/dist/xstate-model.cjs.prod.js +41 -0
  85. package/model/dist/xstate-model.esm.js +37 -0
  86. package/model/package.json +4 -0
  87. package/package.json +21 -30
  88. package/dist/xstate.interpreter.js +0 -15
  89. package/dist/xstate.js +0 -15
  90. package/dist/xstate.web.js +0 -15
  91. package/es/Actor.d.ts +0 -25
  92. package/es/Actor.js +0 -99
  93. package/es/Machine.d.ts +0 -12
  94. package/es/Machine.js +0 -14
  95. package/es/SimulatedClock.d.ts +0 -17
  96. package/es/SimulatedClock.js +0 -81
  97. package/es/State.d.ts +0 -123
  98. package/es/State.js +0 -274
  99. package/es/StateNode.d.ts +0 -287
  100. package/es/StateNode.js +0 -1566
  101. package/es/_virtual/_tslib.js +0 -78
  102. package/es/actionTypes.js +0 -22
  103. package/es/actions.d.ts +0 -154
  104. package/es/actions.js +0 -520
  105. package/es/behaviors.d.ts +0 -37
  106. package/es/behaviors.js +0 -131
  107. package/es/constants.d.ts +0 -6
  108. package/es/constants.js +0 -6
  109. package/es/devTools.d.ts +0 -14
  110. package/es/each.d.ts +0 -4
  111. package/es/each.js +0 -13
  112. package/es/environment.js +0 -3
  113. package/es/index.d.ts +0 -22
  114. package/es/index.js +0 -23
  115. package/es/interpreter.d.ts +0 -209
  116. package/es/interpreter.js +0 -1402
  117. package/es/invoke.d.ts +0 -11
  118. package/es/invokeUtils.d.ts +0 -7
  119. package/es/invokeUtils.js +0 -40
  120. package/es/json.d.ts +0 -31
  121. package/es/json.js +0 -86
  122. package/es/mapState.js +0 -32
  123. package/es/match.d.ts +0 -9
  124. package/es/match.js +0 -34
  125. package/es/model.d.ts +0 -5
  126. package/es/model.js +0 -50
  127. package/es/model.types.d.ts +0 -52
  128. package/es/patterns.d.ts +0 -14
  129. package/es/patterns.js +0 -48
  130. package/es/registry.d.ts +0 -9
  131. package/es/registry.js +0 -19
  132. package/es/scheduler.d.ts +0 -17
  133. package/es/scheduler.js +0 -79
  134. package/es/schema.js +0 -6
  135. package/es/scxml.d.ts +0 -6
  136. package/es/serviceScope.d.ts +0 -4
  137. package/es/serviceScope.js +0 -16
  138. package/es/stateUtils.d.ts +0 -17
  139. package/es/stateUtils.js +0 -259
  140. package/es/typegenTypes.d.ts +0 -130
  141. package/es/types.d.ts +0 -1037
  142. package/es/types.js +0 -33
  143. package/es/utils.d.ts +0 -72
  144. package/es/utils.js +0 -626
  145. package/es/waitFor.d.ts +0 -32
  146. package/es/waitFor.js +0 -66
  147. package/lib/Actor.d.ts +0 -25
  148. package/lib/Actor.js +0 -108
  149. package/lib/Machine.d.ts +0 -12
  150. package/lib/Machine.js +0 -19
  151. package/lib/SimulatedClock.js +0 -85
  152. package/lib/State.d.ts +0 -123
  153. package/lib/State.js +0 -282
  154. package/lib/StateNode.d.ts +0 -287
  155. package/lib/StateNode.js +0 -1570
  156. package/lib/_virtual/_tslib.js +0 -85
  157. package/lib/actionTypes.d.ts +0 -20
  158. package/lib/actionTypes.js +0 -43
  159. package/lib/actions.d.ts +0 -154
  160. package/lib/actions.js +0 -552
  161. package/lib/behaviors.d.ts +0 -37
  162. package/lib/behaviors.js +0 -137
  163. package/lib/constants.d.ts +0 -6
  164. package/lib/constants.js +0 -13
  165. package/lib/each.d.ts +0 -4
  166. package/lib/each.js +0 -17
  167. package/lib/environment.d.ts +0 -2
  168. package/lib/environment.js +0 -7
  169. package/lib/index.d.ts +0 -22
  170. package/lib/index.js +0 -60
  171. package/lib/interpreter.d.ts +0 -209
  172. package/lib/interpreter.js +0 -1408
  173. package/lib/invoke.d.ts +0 -11
  174. package/lib/invoke.js +0 -20
  175. package/lib/invokeUtils.d.ts +0 -7
  176. package/lib/invokeUtils.js +0 -45
  177. package/lib/json.d.ts +0 -31
  178. package/lib/json.js +0 -94
  179. package/lib/mapState.d.ts +0 -4
  180. package/lib/mapState.js +0 -36
  181. package/lib/match.d.ts +0 -9
  182. package/lib/match.js +0 -38
  183. package/lib/model.d.ts +0 -5
  184. package/lib/model.js +0 -54
  185. package/lib/model.types.js +0 -2
  186. package/lib/patterns.d.ts +0 -14
  187. package/lib/patterns.js +0 -53
  188. package/lib/registry.d.ts +0 -9
  189. package/lib/registry.js +0 -23
  190. package/lib/scheduler.d.ts +0 -17
  191. package/lib/scheduler.js +0 -83
  192. package/lib/schema.d.ts +0 -3
  193. package/lib/schema.js +0 -11
  194. package/lib/scxml.d.ts +0 -6
  195. package/lib/scxml.js +0 -350
  196. package/lib/serviceScope.d.ts +0 -4
  197. package/lib/serviceScope.js +0 -21
  198. package/lib/stateUtils.d.ts +0 -17
  199. package/lib/stateUtils.js +0 -273
  200. package/lib/typegenTypes.js +0 -2
  201. package/lib/types.d.ts +0 -1037
  202. package/lib/types.js +0 -35
  203. package/lib/utils.d.ts +0 -72
  204. package/lib/utils.js +0 -673
  205. package/lib/waitFor.d.ts +0 -32
  206. package/lib/waitFor.js +0 -70
@@ -1,287 +0,0 @@
1
- import { Event, StateValue, StateTransition, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema, InternalMachineOptions, ServiceMap, StateConfig } from './types';
2
- import { State } from './State';
3
- import { TypegenDisabled } from './typegenTypes';
4
- declare class StateNode<TContext = any, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
5
- value: any;
6
- context: TContext;
7
- }, TServiceMap extends ServiceMap = ServiceMap, TResolvedTypesMeta = TypegenDisabled> {
8
- /**
9
- * The raw config used to create the machine.
10
- */
11
- config: StateNodeConfig<TContext, TStateSchema, TEvent>;
12
- /**
13
- * The initial extended state
14
- */
15
- private _context;
16
- /**
17
- * The relative key of the state node, which represents its location in the overall state value.
18
- */
19
- key: string;
20
- /**
21
- * The unique ID of the state node.
22
- */
23
- id: string;
24
- /**
25
- * The machine's own version.
26
- */
27
- version?: string;
28
- /**
29
- * The type of this state node:
30
- *
31
- * - `'atomic'` - no child state nodes
32
- * - `'compound'` - nested child state nodes (XOR)
33
- * - `'parallel'` - orthogonal nested child state nodes (AND)
34
- * - `'history'` - history state node
35
- * - `'final'` - final state node
36
- */
37
- type: 'atomic' | 'compound' | 'parallel' | 'final' | 'history';
38
- /**
39
- * The string path from the root machine node to this node.
40
- */
41
- path: string[];
42
- /**
43
- * The initial state node key.
44
- */
45
- initial?: keyof TStateSchema['states'];
46
- /**
47
- * (DEPRECATED) Whether the state node is a parallel state node.
48
- *
49
- * Use `type: 'parallel'` instead.
50
- */
51
- parallel?: boolean;
52
- /**
53
- * Whether the state node is "transient". A state node is considered transient if it has
54
- * an immediate transition from a "null event" (empty string), taken upon entering the state node.
55
- */
56
- private _transient;
57
- /**
58
- * The child state nodes.
59
- */
60
- states: StateNodesConfig<TContext, TStateSchema, TEvent>;
61
- /**
62
- * The type of history on this state node. Can be:
63
- *
64
- * - `'shallow'` - recalls only top-level historical state value
65
- * - `'deep'` - recalls historical state value at all levels
66
- */
67
- history: false | 'shallow' | 'deep';
68
- /**
69
- * The action(s) to be executed upon entering the state node.
70
- */
71
- onEntry: Array<ActionObject<TContext, TEvent>>;
72
- /**
73
- * The action(s) to be executed upon exiting the state node.
74
- */
75
- onExit: Array<ActionObject<TContext, TEvent>>;
76
- /**
77
- * The activities to be started upon entering the state node,
78
- * and stopped upon exiting the state node.
79
- */
80
- activities: Array<ActivityDefinition<TContext, TEvent>>;
81
- strict: boolean;
82
- /**
83
- * The parent state node.
84
- */
85
- parent?: StateNode<TContext, any, TEvent, any, any, any>;
86
- /**
87
- * The root machine node.
88
- */
89
- machine: StateNode<TContext, any, TEvent, TTypestate>;
90
- /**
91
- * The meta data associated with this state node, which will be returned in State instances.
92
- */
93
- meta?: TStateSchema extends {
94
- meta: infer D;
95
- } ? D : any;
96
- /**
97
- * The data sent with the "done.state._id_" event if this is a final state node.
98
- */
99
- doneData?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
100
- /**
101
- * The string delimiter for serializing the path to a string. The default is "."
102
- */
103
- delimiter: string;
104
- /**
105
- * The order this state node appears. Corresponds to the implicit SCXML document order.
106
- */
107
- order: number;
108
- /**
109
- * The services invoked by this state node.
110
- */
111
- invoke: Array<InvokeDefinition<TContext, TEvent>>;
112
- options: MachineOptions<TContext, TEvent>;
113
- schema: MachineSchema<TContext, TEvent>;
114
- __xstatenode: true;
115
- description?: string;
116
- private __cache;
117
- private idMap;
118
- tags: string[];
119
- constructor(
120
- /**
121
- * The raw config used to create the machine.
122
- */
123
- config: StateNodeConfig<TContext, TStateSchema, TEvent>, options?: MachineOptions<TContext, TEvent>,
124
- /**
125
- * The initial extended state
126
- */
127
- _context?: Readonly<TContext> | (() => Readonly<TContext>), // TODO: this is unsafe, but we're removing it in v5 anyway
128
- _stateInfo?: {
129
- parent: StateNode<any, any, any, any, any, any>;
130
- key: string;
131
- });
132
- private _init;
133
- /**
134
- * Clones this state machine with custom options and context.
135
- *
136
- * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.
137
- * @param context Custom context (will override predefined context)
138
- */
139
- withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>;
140
- /**
141
- * Clones this state machine with custom context.
142
- *
143
- * @param context Custom context (will override predefined context, not recursive)
144
- */
145
- withContext(context: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate>;
146
- get context(): TContext;
147
- /**
148
- * The well-structured state node definition.
149
- */
150
- get definition(): StateNodeDefinition<TContext, TStateSchema, TEvent>;
151
- toJSON(): StateNodeDefinition<TContext, TStateSchema, TEvent>;
152
- /**
153
- * The mapping of events to transitions.
154
- */
155
- get on(): TransitionDefinitionMap<TContext, TEvent>;
156
- get after(): Array<DelayedTransitionDefinition<TContext, TEvent>>;
157
- /**
158
- * All the transitions that can be taken from this state node.
159
- */
160
- get transitions(): Array<TransitionDefinition<TContext, TEvent>>;
161
- private getCandidates;
162
- /**
163
- * All delayed transitions from the config.
164
- */
165
- private getDelayedTransitions;
166
- /**
167
- * Returns the state nodes represented by the current state value.
168
- *
169
- * @param state The state value or State instance
170
- */
171
- getStateNodes(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta>): Array<StateNode<TContext, any, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>>;
172
- /**
173
- * Returns `true` if this state node explicitly handles the given event.
174
- *
175
- * @param event The event in question
176
- */
177
- handles(event: Event<TEvent>): boolean;
178
- /**
179
- * Resolves the given `state` to a new `State` instance relative to this machine.
180
- *
181
- * This ensures that `.events` and `.nextEvents` represent the correct values.
182
- *
183
- * @param state The state to resolve
184
- */
185
- resolveState(state: State<TContext, TEvent, any, any> | StateConfig<TContext, TEvent>): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
186
- private transitionLeafNode;
187
- private transitionCompoundNode;
188
- private transitionParallelNode;
189
- private _transition;
190
- getTransitionData(state: State<TContext, TEvent, any, any, any>, event: Event<TEvent> | SCXML.Event<TEvent>): StateTransition<TContext, TEvent> | undefined;
191
- private next;
192
- private nodesFromChild;
193
- /**
194
- * Whether the given state node "escapes" this state node. If the `stateNode` is equal to or the parent of
195
- * this state node, it does not escape.
196
- */
197
- private escapes;
198
- private getActions;
199
- /**
200
- * Determines the next state given the current `state` and sent `event`.
201
- *
202
- * @param state The current State instance or state value
203
- * @param event The event that was sent at the current state
204
- * @param context The current context (extended state) of the current state
205
- */
206
- transition(state: StateValue | State<TContext, TEvent, any, TTypestate, TResolvedTypesMeta> | undefined, event: Event<TEvent> | SCXML.Event<TEvent>, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
207
- private resolveRaisedTransition;
208
- private resolveTransition;
209
- /**
210
- * Returns the child state node from its relative `stateKey`, or throws.
211
- */
212
- getStateNode(stateKey: string): StateNode<TContext, any, TEvent, TTypestate, TServiceMap, TResolvedTypesMeta>;
213
- /**
214
- * Returns the state node with the given `stateId`, or throws.
215
- *
216
- * @param stateId The state ID. The prefix "#" is removed.
217
- */
218
- getStateNodeById(stateId: string): StateNode<TContext, any, TEvent, any, TServiceMap, TResolvedTypesMeta>;
219
- /**
220
- * Returns the relative state node from the given `statePath`, or throws.
221
- *
222
- * @param statePath The string or string array relative path to the state node.
223
- */
224
- getStateNodeByPath(statePath: string | string[]): StateNode<TContext, any, TEvent, any, any, any>;
225
- /**
226
- * Resolves a partial state value with its full representation in this machine.
227
- *
228
- * @param stateValue The partial state value to resolve.
229
- */
230
- resolve(stateValue: StateValue): StateValue;
231
- private getResolvedPath;
232
- private get initialStateValue();
233
- getInitialState(stateValue: StateValue, context?: TContext): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
234
- /**
235
- * The initial State instance, which includes all actions to be executed from
236
- * entering the initial state.
237
- */
238
- get initialState(): State<TContext, TEvent, TStateSchema, TTypestate, TResolvedTypesMeta>;
239
- /**
240
- * The target state value of the history state node, if it exists. This represents the
241
- * default state value to transition to if no history value exists yet.
242
- */
243
- get target(): StateValue | undefined;
244
- /**
245
- * Returns the leaf nodes from a state path relative to this state node.
246
- *
247
- * @param relativeStateId The relative state path to retrieve the state nodes
248
- * @param history The previous state to retrieve history
249
- * @param resolve Whether state nodes should resolve to initial child state nodes
250
- */
251
- getRelativeStateNodes(relativeStateId: StateNode<TContext, any, TEvent>, historyValue?: HistoryValue, resolve?: boolean): Array<StateNode<TContext, any, TEvent>>;
252
- get initialStateNodes(): Array<StateNode<TContext, any, TEvent, any, any, any>>;
253
- /**
254
- * Retrieves state nodes from a relative path to this state node.
255
- *
256
- * @param relativePath The relative path from this state node
257
- * @param historyValue
258
- */
259
- getFromRelativePath(relativePath: string[]): Array<StateNode<TContext, any, TEvent, any, any, any>>;
260
- private historyValue;
261
- /**
262
- * Resolves to the historical value(s) of the parent state node,
263
- * represented by state nodes.
264
- *
265
- * @param historyValue
266
- */
267
- private resolveHistory;
268
- /**
269
- * All the state node IDs of this state node and its descendant state nodes.
270
- */
271
- get stateIds(): string[];
272
- /**
273
- * All the event types accepted by this state node and its descendants.
274
- */
275
- get events(): Array<TEvent['type']>;
276
- /**
277
- * All the events that have transitions directly from this state node.
278
- *
279
- * Excludes any inert events.
280
- */
281
- get ownEvents(): Array<TEvent['type']>;
282
- private resolveTarget;
283
- private formatTransition;
284
- private formatTransitions;
285
- }
286
- export { StateNode };
287
- //# sourceMappingURL=StateNode.d.ts.map