xstate 6.0.0-alpha.5 → 6.0.0-alpha.50

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 (136) hide show
  1. package/README.md +35 -4
  2. package/bin/xstate.js +36 -0
  3. package/dist/StateMachine-1e6ee14a.cjs.js +1236 -0
  4. package/dist/StateMachine-70df737c.development.cjs.js +1268 -0
  5. package/dist/StateMachine-8cea8974.esm.js +1233 -0
  6. package/dist/StateMachine-bc28e207.development.esm.js +1265 -0
  7. package/dist/createActor-27fd819f.cjs.js +5927 -0
  8. package/dist/createActor-74e185ee.development.esm.js +5866 -0
  9. package/dist/createActor-ad3a1abe.esm.js +5827 -0
  10. package/dist/createActor-ea9a560c.development.cjs.js +5966 -0
  11. package/dist/declarations/src/State.d.ts +17 -4
  12. package/dist/declarations/src/StateMachine.d.ts +45 -20
  13. package/dist/declarations/src/StateNode.d.ts +5 -2
  14. package/dist/declarations/src/actions.d.ts +10 -7
  15. package/dist/declarations/src/actors/callback.d.ts +2 -0
  16. package/dist/declarations/src/actors/logic.d.ts +7 -24
  17. package/dist/declarations/src/actors/observable.d.ts +3 -0
  18. package/dist/declarations/src/actors/promise.d.ts +6 -2
  19. package/dist/declarations/src/createActor.d.ts +63 -20
  20. package/dist/declarations/src/createMachine.d.ts +23 -15
  21. package/dist/declarations/src/createMachineFromConfig.d.ts +67 -105
  22. package/dist/declarations/src/durable/index.d.ts +185 -0
  23. package/dist/declarations/src/effectDescriptor.d.ts +90 -0
  24. package/dist/declarations/src/fsm/createFSMActor.d.ts +67 -0
  25. package/dist/declarations/src/fsm/index.d.ts +2 -0
  26. package/dist/declarations/src/fsm.d.ts +78 -0
  27. package/dist/declarations/src/index.d.ts +15 -8
  28. package/dist/declarations/src/inspection.d.ts +29 -2
  29. package/dist/declarations/src/inspectionAmbient.d.ts +1 -0
  30. package/dist/declarations/src/machineVersion.types.d.ts +38 -0
  31. package/dist/declarations/src/machineVersions.d.ts +100 -0
  32. package/dist/declarations/src/runtimeHelpers.d.ts +43 -0
  33. package/dist/declarations/src/schema.types.d.ts +7 -0
  34. package/dist/declarations/src/scxml/index.d.ts +1 -0
  35. package/dist/declarations/src/scxml/runtime.d.ts +251 -0
  36. package/dist/declarations/src/scxml/scxml.d.ts +19 -0
  37. package/dist/declarations/src/serialize.d.ts +9 -22
  38. package/dist/declarations/src/setup.d.ts +385 -70
  39. package/dist/declarations/src/spawn.d.ts +5 -5
  40. package/dist/declarations/src/stateUtils.d.ts +19 -7
  41. package/dist/declarations/src/system.d.ts +135 -12
  42. package/dist/declarations/src/transitionActions.d.ts +14 -2
  43. package/dist/declarations/src/types.d.ts +382 -152
  44. package/dist/declarations/src/types.v6.d.ts +353 -58
  45. package/dist/declarations/src/utils.d.ts +5 -3
  46. package/dist/declarations/src/validation/index.d.ts +37 -0
  47. package/dist/declarations/src/validation.types.d.ts +22 -0
  48. package/dist/effectDescriptor-16b6f3b4.cjs.js +289 -0
  49. package/dist/effectDescriptor-38598bd3.development.esm.js +282 -0
  50. package/dist/effectDescriptor-40ca302f.development.cjs.js +289 -0
  51. package/dist/effectDescriptor-7dac431a.esm.js +282 -0
  52. package/dist/fsm-25f10f50.development.esm.js +775 -0
  53. package/dist/fsm-697ffd89.development.cjs.js +777 -0
  54. package/dist/fsm-7adaf0ea.cjs.js +777 -0
  55. package/dist/fsm-dc1bb88b.esm.js +775 -0
  56. package/dist/types-a14db10c.development.cjs.js +194 -0
  57. package/dist/types-a313e7e2.esm.js +190 -0
  58. package/dist/types-bc22b358.cjs.js +194 -0
  59. package/dist/types-c37714eb.development.esm.js +190 -0
  60. package/dist/validation-05f1d517.esm.js +8 -0
  61. package/dist/validation-4561b43c.cjs.js +10 -0
  62. package/dist/validation-e69470ad.development.esm.js +8 -0
  63. package/dist/validation-f2714a35.development.cjs.js +10 -0
  64. package/dist/xstate-actors.cjs.js +947 -12
  65. package/dist/xstate-actors.development.cjs.js +947 -12
  66. package/dist/xstate-actors.development.esm.js +941 -1
  67. package/dist/xstate-actors.esm.js +941 -1
  68. package/dist/xstate-actors.umd.min.js +1 -1
  69. package/dist/xstate-actors.umd.min.js.map +1 -1
  70. package/dist/xstate-durable.cjs.d.mts +2 -0
  71. package/dist/xstate-durable.cjs.d.ts +2 -0
  72. package/dist/xstate-durable.cjs.js +400 -0
  73. package/dist/xstate-durable.cjs.mjs +5 -0
  74. package/dist/xstate-durable.development.cjs.js +400 -0
  75. package/dist/xstate-durable.development.cjs.mjs +5 -0
  76. package/dist/xstate-durable.development.esm.js +394 -0
  77. package/dist/xstate-durable.esm.js +394 -0
  78. package/dist/xstate-durable.umd.min.js +2 -0
  79. package/dist/xstate-durable.umd.min.js.map +1 -0
  80. package/dist/xstate-fsm.cjs.d.mts +2 -0
  81. package/dist/xstate-fsm.cjs.d.ts +2 -0
  82. package/dist/xstate-fsm.cjs.js +409 -0
  83. package/dist/xstate-fsm.cjs.mjs +5 -0
  84. package/dist/xstate-fsm.development.cjs.js +409 -0
  85. package/dist/xstate-fsm.development.cjs.mjs +5 -0
  86. package/dist/xstate-fsm.development.esm.js +403 -0
  87. package/dist/xstate-fsm.esm.js +403 -0
  88. package/dist/xstate-fsm.umd.min.js +2 -0
  89. package/dist/xstate-fsm.umd.min.js.map +1 -0
  90. package/dist/xstate-graph.cjs.js +17 -19
  91. package/dist/xstate-graph.development.cjs.js +17 -19
  92. package/dist/xstate-graph.development.esm.js +14 -16
  93. package/dist/xstate-graph.esm.js +14 -16
  94. package/dist/xstate-graph.umd.min.js +1 -1
  95. package/dist/xstate-graph.umd.min.js.map +1 -1
  96. package/dist/xstate-scxml.cjs.d.mts +2 -0
  97. package/dist/xstate-scxml.cjs.d.ts +2 -0
  98. package/dist/xstate-scxml.cjs.js +2387 -0
  99. package/dist/xstate-scxml.cjs.mjs +3 -0
  100. package/dist/xstate-scxml.development.cjs.js +2387 -0
  101. package/dist/xstate-scxml.development.cjs.mjs +3 -0
  102. package/dist/xstate-scxml.development.esm.js +2383 -0
  103. package/dist/xstate-scxml.esm.js +2383 -0
  104. package/dist/xstate-scxml.umd.min.js +26 -0
  105. package/dist/xstate-scxml.umd.min.js.map +1 -0
  106. package/dist/xstate-validation.cjs.d.mts +2 -0
  107. package/dist/xstate-validation.cjs.d.ts +2 -0
  108. package/dist/xstate-validation.cjs.js +295 -0
  109. package/dist/xstate-validation.cjs.mjs +5 -0
  110. package/dist/xstate-validation.development.cjs.js +295 -0
  111. package/dist/xstate-validation.development.cjs.mjs +5 -0
  112. package/dist/xstate-validation.development.esm.js +289 -0
  113. package/dist/xstate-validation.esm.js +289 -0
  114. package/dist/xstate-validation.umd.min.js +2 -0
  115. package/dist/xstate-validation.umd.min.js.map +1 -0
  116. package/dist/xstate.cjs.js +929 -1215
  117. package/dist/xstate.cjs.mjs +9 -0
  118. package/dist/xstate.development.cjs.js +929 -1215
  119. package/dist/xstate.development.cjs.mjs +9 -0
  120. package/dist/xstate.development.esm.js +896 -1190
  121. package/dist/xstate.esm.js +896 -1190
  122. package/dist/xstate.umd.min.js +1 -1
  123. package/dist/xstate.umd.min.js.map +1 -1
  124. package/durable/package.json +8 -0
  125. package/fsm/package.json +8 -0
  126. package/package.json +74 -4
  127. package/scxml/package.json +8 -0
  128. package/validation/package.json +8 -0
  129. package/dist/StateMachine-445a8480.cjs.js +0 -732
  130. package/dist/StateMachine-4deb4090.development.esm.js +0 -746
  131. package/dist/StateMachine-f310bc72.esm.js +0 -729
  132. package/dist/StateMachine-f83f01f9.development.cjs.js +0 -749
  133. package/dist/index-918ab496.cjs.js +0 -4397
  134. package/dist/index-9cce3480.esm.js +0 -4342
  135. package/dist/index-ccbe7c0b.development.esm.js +0 -4381
  136. package/dist/index-ebaf6fd8.development.cjs.js +0 -4436
package/README.md CHANGED
@@ -11,10 +11,35 @@
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 main `xstate` entry point has _zero_ runtime dependencies; the optional `xstate/scxml` entry point uses an XML parser. 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 self-contained compact
21
+ runtime and a specialized actor:
22
+
23
+ <!-- public exports from packages/core/src/fsm/index.ts; exact capabilities documented in docs/fsm.md -->
24
+
25
+ ```ts
26
+ import { createFSM, createFSMActor } from 'xstate/fsm';
27
+
28
+ const logic = createFSM({
29
+ initial: 'inactive',
30
+ states: {
31
+ inactive: { on: { toggle: { target: 'active' } } },
32
+ active: { on: { toggle: { target: 'inactive' } } }
33
+ }
34
+ });
35
+
36
+ const actor = createFSMActor(logic).start();
37
+ ```
38
+
39
+ See the [exact supported surface](https://stately.ai/docs/fsm). Use the root `xstate`
40
+ entry point for compound or parallel statecharts, invocation, named sources,
41
+ schemas, serialization and inspection.
42
+
18
43
  ### ✨ Create state machines visually in Stately Studio → [state.new](https://state.new)
19
44
 
20
45
  ---
@@ -27,6 +52,10 @@ It uses event-driven programming, state machines, statecharts, and the actor mod
27
52
 
28
53
  📑 Inspired by the [SCXML specification](https://www.w3.org/TR/scxml/)
29
54
 
55
+ <!-- public SCXML entry point from src/scxml/index.ts -->
56
+
57
+ Create machines from SCXML documents with the opt-in `xstate/scxml` entry point. See the [SCXML guide](../../docs/scxml.md).
58
+
30
59
  💬 Chat on the [Stately Discord Community](https://discord.gg/xstate)
31
60
 
32
61
  ✍️ Browse through the many [XState examples](https://github.com/statelyai/xstate/tree/main/examples)
@@ -119,7 +148,7 @@ npm install xstate
119
148
  ```
120
149
 
121
150
  ```ts
122
- import { createMachine, createActor, assign } from 'xstate';
151
+ import { createMachine, createActor } from 'xstate';
123
152
 
124
153
  // State machine
125
154
  const toggleMachine = createMachine({
@@ -135,7 +164,9 @@ const toggleMachine = createMachine({
135
164
  }
136
165
  },
137
166
  active: {
138
- entry: assign({ count: ({ context }) => context.count + 1 }),
167
+ entry: ({ context }) => ({
168
+ context: { count: context.count + 1 }
169
+ }),
139
170
  on: {
140
171
  TOGGLE: { target: 'inactive' }
141
172
  }
@@ -164,7 +195,7 @@ toggleActor.send({ type: 'TOGGLE' });
164
195
  - Deploy to Stately Sky
165
196
  - Generate & modify machines with Stately AI
166
197
 
167
- <a href="stately.ai/registry/new?ref=github" title="Stately Studio">
198
+ <a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
168
199
  <img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
169
200
  </a>
170
201
 
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
+ }