xstate 6.0.0-alpha.6 → 6.0.0-alpha.61

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 (140) hide show
  1. package/README.md +42 -4
  2. package/bin/xstate.js +36 -0
  3. package/dist/createActor-0d08a5f3.development.esm.js +6326 -0
  4. package/dist/createActor-3347cc32.cjs.js +6285 -0
  5. package/dist/createActor-81470538.development.cjs.js +6425 -0
  6. package/dist/createActor-f4b06bda.esm.js +6186 -0
  7. package/dist/declarations/src/SimulatedClock.d.ts +1 -0
  8. package/dist/declarations/src/State.d.ts +19 -4
  9. package/dist/declarations/src/StateMachine.d.ts +83 -23
  10. package/dist/declarations/src/StateNode.d.ts +20 -16
  11. package/dist/declarations/src/actions.d.ts +10 -7
  12. package/dist/declarations/src/actors/callback.d.ts +8 -0
  13. package/dist/declarations/src/actors/index.d.ts +2 -1
  14. package/dist/declarations/src/actors/listener.d.ts +7 -0
  15. package/dist/declarations/src/actors/logic.d.ts +18 -24
  16. package/dist/declarations/src/actors/observable.d.ts +12 -0
  17. package/dist/declarations/src/actors/promise.d.ts +56 -9
  18. package/dist/declarations/src/actors/subscription.d.ts +8 -0
  19. package/dist/declarations/src/assert.d.ts +1 -0
  20. package/dist/declarations/src/base.types.d.ts +102 -0
  21. package/dist/declarations/src/createActor.d.ts +105 -23
  22. package/dist/declarations/src/createMachine.d.ts +33 -15
  23. package/dist/declarations/src/createMachineFromConfig.d.ts +74 -105
  24. package/dist/declarations/src/delay.d.ts +8 -0
  25. package/dist/declarations/src/durable/index.d.ts +198 -0
  26. package/dist/declarations/src/effectDescriptor.d.ts +90 -0
  27. package/dist/declarations/src/fsm/index.d.ts +2 -0
  28. package/dist/declarations/src/fsm.d.ts +169 -0
  29. package/dist/declarations/src/graph/adjacency.d.ts +2 -0
  30. package/dist/declarations/src/graph/graph.d.ts +6 -3
  31. package/dist/declarations/src/graph/index.d.ts +1 -3
  32. package/dist/declarations/src/graph/pathFromEvents.d.ts +1 -0
  33. package/dist/declarations/src/graph/shortestPaths.d.ts +1 -0
  34. package/dist/declarations/src/graph/simplePaths.d.ts +1 -0
  35. package/dist/declarations/src/graph/types.d.ts +17 -56
  36. package/dist/declarations/src/hotSwap.d.ts +18 -0
  37. package/dist/declarations/src/index.d.ts +22 -16
  38. package/dist/declarations/src/inspection.d.ts +24 -1
  39. package/dist/declarations/src/machineVersion.types.d.ts +54 -0
  40. package/dist/declarations/src/machineVersions.d.ts +105 -0
  41. package/dist/declarations/src/mapState.d.ts +2 -0
  42. package/dist/declarations/src/runtimeHelpers.d.ts +43 -0
  43. package/dist/declarations/src/schema.types.d.ts +31 -4
  44. package/dist/declarations/src/serialize.d.ts +14 -22
  45. package/dist/declarations/src/setup.d.ts +963 -113
  46. package/dist/declarations/src/spawn.d.ts +6 -5
  47. package/dist/declarations/src/stateUtils.d.ts +43 -8
  48. package/dist/declarations/src/system.d.ts +160 -15
  49. package/dist/declarations/src/toPromise.d.ts +1 -0
  50. package/dist/declarations/src/transition.d.ts +45 -4
  51. package/dist/declarations/src/transitionActions.d.ts +19 -2
  52. package/dist/declarations/src/types.d.ts +735 -216
  53. package/dist/declarations/src/types.v6.d.ts +479 -91
  54. package/dist/declarations/src/utils.d.ts +12 -3
  55. package/dist/declarations/src/validation/index.d.ts +49 -0
  56. package/dist/declarations/src/validation.types.d.ts +29 -0
  57. package/dist/declarations/src/waitFor.d.ts +1 -0
  58. package/dist/effectDescriptor-31a53206.development.esm.js +318 -0
  59. package/dist/effectDescriptor-a1ea3f94.development.cjs.js +326 -0
  60. package/dist/effectDescriptor-dbd6ef85.esm.js +318 -0
  61. package/dist/effectDescriptor-f4708cf3.cjs.js +326 -0
  62. package/dist/index-1e523796.development.esm.js +1031 -0
  63. package/dist/index-2384b028.development.cjs.js +1040 -0
  64. package/dist/index-eee6a6a1.cjs.js +1040 -0
  65. package/dist/index-ff1d8226.esm.js +1031 -0
  66. package/dist/schema.types-0ecd17b8.esm.js +71 -0
  67. package/dist/schema.types-15a68ddc.cjs.js +74 -0
  68. package/dist/schema.types-1c16f035.development.cjs.js +74 -0
  69. package/dist/schema.types-1cd4652e.development.esm.js +71 -0
  70. package/dist/xstate-actors.cjs.js +6 -5
  71. package/dist/xstate-actors.development.cjs.js +6 -5
  72. package/dist/xstate-actors.development.esm.js +2 -1
  73. package/dist/xstate-actors.esm.js +2 -1
  74. package/dist/xstate-actors.umd.min.js +1 -1
  75. package/dist/xstate-actors.umd.min.js.map +1 -1
  76. package/dist/xstate-durable.cjs.d.mts +2 -0
  77. package/dist/xstate-durable.cjs.d.ts +2 -0
  78. package/dist/xstate-durable.cjs.js +418 -0
  79. package/dist/xstate-durable.cjs.mjs +5 -0
  80. package/dist/xstate-durable.development.cjs.js +418 -0
  81. package/dist/xstate-durable.development.cjs.mjs +5 -0
  82. package/dist/xstate-durable.development.esm.js +412 -0
  83. package/dist/xstate-durable.esm.js +412 -0
  84. package/dist/xstate-durable.umd.min.js +2 -0
  85. package/dist/xstate-durable.umd.min.js.map +1 -0
  86. package/dist/xstate-fsm.cjs.d.mts +2 -0
  87. package/dist/xstate-fsm.cjs.d.ts +2 -0
  88. package/dist/xstate-fsm.cjs.js +111 -0
  89. package/dist/xstate-fsm.cjs.mjs +5 -0
  90. package/dist/xstate-fsm.development.cjs.js +111 -0
  91. package/dist/xstate-fsm.development.cjs.mjs +5 -0
  92. package/dist/xstate-fsm.development.esm.js +105 -0
  93. package/dist/xstate-fsm.esm.js +105 -0
  94. package/dist/xstate-fsm.umd.min.js +2 -0
  95. package/dist/xstate-fsm.umd.min.js.map +1 -0
  96. package/dist/xstate-graph.cjs.js +87 -438
  97. package/dist/xstate-graph.cjs.mjs +1 -5
  98. package/dist/xstate-graph.development.cjs.js +87 -438
  99. package/dist/xstate-graph.development.cjs.mjs +1 -5
  100. package/dist/xstate-graph.development.esm.js +85 -432
  101. package/dist/xstate-graph.esm.js +85 -432
  102. package/dist/xstate-graph.umd.min.js +1 -1
  103. package/dist/xstate-graph.umd.min.js.map +1 -1
  104. package/dist/xstate-validation.cjs.d.mts +2 -0
  105. package/dist/xstate-validation.cjs.d.ts +2 -0
  106. package/dist/xstate-validation.cjs.js +313 -0
  107. package/dist/xstate-validation.cjs.mjs +5 -0
  108. package/dist/xstate-validation.development.cjs.js +313 -0
  109. package/dist/xstate-validation.development.cjs.mjs +5 -0
  110. package/dist/xstate-validation.development.esm.js +307 -0
  111. package/dist/xstate-validation.esm.js +307 -0
  112. package/dist/xstate-validation.umd.min.js +2 -0
  113. package/dist/xstate-validation.umd.min.js.map +1 -0
  114. package/dist/xstate.cjs.js +2989 -1109
  115. package/dist/xstate.cjs.mjs +13 -2
  116. package/dist/xstate.development.cjs.js +3167 -1107
  117. package/dist/xstate.development.cjs.mjs +13 -2
  118. package/dist/xstate.development.esm.js +3130 -1081
  119. package/dist/xstate.esm.js +2952 -1083
  120. package/dist/xstate.umd.min.js +1 -1
  121. package/dist/xstate.umd.min.js.map +1 -1
  122. package/durable/package.json +8 -0
  123. package/fsm/package.json +8 -0
  124. package/package.json +55 -10
  125. package/validation/package.json +8 -0
  126. package/actions/package.json +0 -8
  127. package/dev/package.json +0 -8
  128. package/dist/StateMachine-445a8480.cjs.js +0 -732
  129. package/dist/StateMachine-4deb4090.development.esm.js +0 -746
  130. package/dist/StateMachine-f310bc72.esm.js +0 -729
  131. package/dist/StateMachine-f83f01f9.development.cjs.js +0 -749
  132. package/dist/declarations/src/getNextSnapshot.d.ts +0 -37
  133. package/dist/declarations/src/graph/TestModel.d.ts +0 -70
  134. package/dist/declarations/src/graph/pathGenerators.d.ts +0 -4
  135. package/dist/index-918ab496.cjs.js +0 -4397
  136. package/dist/index-9cce3480.esm.js +0 -4342
  137. package/dist/index-ccbe7c0b.development.esm.js +0 -4381
  138. package/dist/index-ebaf6fd8.development.cjs.js +0 -4436
  139. package/guards/package.json +0 -8
  140. package/invoke/package.json +0 -4
package/README.md CHANGED
@@ -11,10 +11,42 @@
11
11
  <br />
12
12
  </p>
13
13
 
14
- XState is a state management and orchestration solution for JavaScript and TypeScript apps. It has _zero_ dependencies, and is useful for frontend and backend application logic.
14
+ <!-- runtime dependencies and public entry points from package.json -->
15
+
16
+ XState is a state management and orchestration solution for JavaScript and TypeScript apps. The `xstate` package has _zero_ runtime dependencies. XState is useful for frontend and backend application logic.
15
17
 
16
18
  It uses event-driven programming, state machines, statecharts, and the actor model to handle complex logic in predictable, robust, and visual ways. XState provides a powerful and flexible way to manage application and workflow state by allowing developers to model logic as actors and state machines.
17
19
 
20
+ For flat finite state machines, `xstate/fsm` provides a tiny pure transition
21
+ table with context and TypeScript support:
22
+
23
+ <!-- public exports from packages/core/src/fsm/index.ts; exact capabilities documented in docs/fsm.md -->
24
+
25
+ ```ts
26
+ import { createFSM } from 'xstate/fsm';
27
+
28
+ const machine = createFSM({
29
+ initial: 'inactive',
30
+ states: {
31
+ inactive: { on: { toggle: 'active' } },
32
+ active: { on: { toggle: 'inactive' } }
33
+ }
34
+ });
35
+
36
+ let state = machine.initialState;
37
+ [state] = machine.transition(state, { type: 'toggle' });
38
+ ```
39
+
40
+ The FSM is also actor logic, so `createActor(machine)` from `xstate` runs it.
41
+
42
+ For typed context, event payloads, or state-specific context snapshots, use
43
+ `setup` and `types` from `xstate/fsm`. These schemas are type-only in this
44
+ subpath; use root `xstate` for runtime schema validation.
45
+
46
+ See the [exact supported surface](https://stately.ai/docs/fsm). Use the root `xstate`
47
+ entry point for compound or parallel statecharts, invocation, named sources,
48
+ runtime schemas, serialization and inspection.
49
+
18
50
  ### ✨ Create state machines visually in Stately Studio → [state.new](https://state.new)
19
51
 
20
52
  ---
@@ -27,6 +59,10 @@ It uses event-driven programming, state machines, statecharts, and the actor mod
27
59
 
28
60
  📑 Inspired by the [SCXML specification](https://www.w3.org/TR/scxml/)
29
61
 
62
+ <!-- public SCXML entry point from packages/xstate-scxml/src/index.ts -->
63
+
64
+ Create machines from SCXML documents with the separate [`@xstate/scxml`](../xstate-scxml) package. See the [SCXML guide](../../docs/scxml.md).
65
+
30
66
  💬 Chat on the [Stately Discord Community](https://discord.gg/xstate)
31
67
 
32
68
  ✍️ Browse through the many [XState examples](https://github.com/statelyai/xstate/tree/main/examples)
@@ -119,7 +155,7 @@ npm install xstate
119
155
  ```
120
156
 
121
157
  ```ts
122
- import { createMachine, createActor, assign } from 'xstate';
158
+ import { createMachine, createActor } from 'xstate';
123
159
 
124
160
  // State machine
125
161
  const toggleMachine = createMachine({
@@ -135,7 +171,9 @@ const toggleMachine = createMachine({
135
171
  }
136
172
  },
137
173
  active: {
138
- entry: assign({ count: ({ context }) => context.count + 1 }),
174
+ entry: ({ context }) => ({
175
+ context: { count: context.count + 1 }
176
+ }),
139
177
  on: {
140
178
  TOGGLE: { target: 'inactive' }
141
179
  }
@@ -164,7 +202,7 @@ toggleActor.send({ type: 'TOGGLE' });
164
202
  - Deploy to Stately Sky
165
203
  - Generate & modify machines with Stately AI
166
204
 
167
- <a href="stately.ai/registry/new?ref=github" title="Stately Studio">
205
+ <a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
168
206
  <img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
169
207
  </a>
170
208
 
package/bin/xstate.js ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ // Lightweight `xstate` CLI. Heavy commands are delegated to dedicated
3
+ // packages fetched on demand so the core package stays dependency-free.
4
+ const { spawnSync } = require('child_process');
5
+
6
+ const [command, ...rest] = process.argv.slice(2);
7
+
8
+ switch (command) {
9
+ case 'migrate': {
10
+ // Delegates to @xstate/codemod (ts-morph based v5 → v6 codemods).
11
+ const result = spawnSync(
12
+ process.platform === 'win32' ? 'npx.cmd' : 'npx',
13
+ ['-y', '@xstate/codemod', 'migrate', ...rest],
14
+ { stdio: 'inherit' }
15
+ );
16
+ process.exit(result.status ?? 1);
17
+ break;
18
+ }
19
+ case '--help':
20
+ case 'help':
21
+ case undefined:
22
+ console.log(
23
+ [
24
+ 'Usage: xstate <command>',
25
+ '',
26
+ 'Commands:',
27
+ ' migrate [globs...] [--dry] Migrate source files to the current XState version',
28
+ ' (delegates to @xstate/codemod)'
29
+ ].join('\n')
30
+ );
31
+ process.exit(command ? 0 : 1);
32
+ break;
33
+ default:
34
+ console.error(`Unknown command: ${command}`);
35
+ process.exit(1);
36
+ }