xstate 6.0.0-alpha.5 → 6.0.0-alpha.51
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.
- package/README.md +40 -4
- package/bin/xstate.js +36 -0
- package/dist/StateMachine-559e0140.development.cjs.js +1268 -0
- package/dist/StateMachine-c3c54551.cjs.js +1236 -0
- package/dist/StateMachine-c6e2cb9e.esm.js +1233 -0
- package/dist/StateMachine-df7199a8.development.esm.js +1265 -0
- package/dist/createActor-5d4780c4.esm.js +5828 -0
- package/dist/createActor-67a1cda3.development.esm.js +5867 -0
- package/dist/createActor-a0610101.cjs.js +5926 -0
- package/dist/createActor-ae612b26.development.cjs.js +5965 -0
- package/dist/declarations/src/State.d.ts +17 -4
- package/dist/declarations/src/StateMachine.d.ts +45 -20
- package/dist/declarations/src/StateNode.d.ts +5 -2
- package/dist/declarations/src/actions.d.ts +10 -7
- package/dist/declarations/src/actors/callback.d.ts +2 -0
- package/dist/declarations/src/actors/logic.d.ts +7 -24
- package/dist/declarations/src/actors/observable.d.ts +3 -0
- package/dist/declarations/src/actors/promise.d.ts +6 -2
- package/dist/declarations/src/createActor.d.ts +63 -20
- package/dist/declarations/src/createMachine.d.ts +23 -15
- package/dist/declarations/src/createMachineFromConfig.d.ts +67 -105
- package/dist/declarations/src/durable/index.d.ts +185 -0
- package/dist/declarations/src/effectDescriptor.d.ts +90 -0
- package/dist/declarations/src/fsm/index.d.ts +2 -0
- package/dist/declarations/src/fsm.d.ts +134 -0
- package/dist/declarations/src/index.d.ts +15 -8
- package/dist/declarations/src/inspection.d.ts +29 -2
- package/dist/declarations/src/inspectionAmbient.d.ts +1 -0
- package/dist/declarations/src/machineVersion.types.d.ts +38 -0
- package/dist/declarations/src/machineVersions.d.ts +100 -0
- package/dist/declarations/src/runtimeHelpers.d.ts +43 -0
- package/dist/declarations/src/schema.types.d.ts +8 -0
- package/dist/declarations/src/scxml/index.d.ts +1 -0
- package/dist/declarations/src/scxml/runtime.d.ts +251 -0
- package/dist/declarations/src/scxml/scxml.d.ts +19 -0
- package/dist/declarations/src/serialize.d.ts +9 -22
- package/dist/declarations/src/setup.d.ts +902 -84
- package/dist/declarations/src/spawn.d.ts +5 -5
- package/dist/declarations/src/stateUtils.d.ts +19 -7
- package/dist/declarations/src/system.d.ts +135 -12
- package/dist/declarations/src/transitionActions.d.ts +14 -2
- package/dist/declarations/src/types.d.ts +385 -153
- package/dist/declarations/src/types.v6.d.ts +360 -63
- package/dist/declarations/src/utils.d.ts +5 -3
- package/dist/declarations/src/validation/index.d.ts +37 -0
- package/dist/declarations/src/validation.types.d.ts +22 -0
- package/dist/effectDescriptor-0399a5cc.development.esm.js +282 -0
- package/dist/effectDescriptor-143d3c39.development.cjs.js +289 -0
- package/dist/effectDescriptor-727e5012.esm.js +282 -0
- package/dist/effectDescriptor-f5237352.cjs.js +289 -0
- package/dist/schema.types-6c3a61af.development.esm.js +106 -0
- package/dist/schema.types-7a48b14e.cjs.js +111 -0
- package/dist/schema.types-9a23aaa8.esm.js +106 -0
- package/dist/schema.types-e396f88c.development.cjs.js +111 -0
- package/dist/types-47bec2b3.development.cjs.js +194 -0
- package/dist/types-846ceef0.cjs.js +194 -0
- package/dist/types-c59c4824.esm.js +190 -0
- package/dist/types-cfdb878a.development.esm.js +190 -0
- package/dist/validation-05f1d517.esm.js +8 -0
- package/dist/validation-4561b43c.cjs.js +10 -0
- package/dist/validation-e69470ad.development.esm.js +8 -0
- package/dist/validation-f2714a35.development.cjs.js +10 -0
- package/dist/xstate-actors.cjs.js +947 -12
- package/dist/xstate-actors.development.cjs.js +947 -12
- package/dist/xstate-actors.development.esm.js +941 -1
- package/dist/xstate-actors.esm.js +941 -1
- package/dist/xstate-actors.umd.min.js +1 -1
- package/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/xstate-durable.cjs.d.mts +2 -0
- package/dist/xstate-durable.cjs.d.ts +2 -0
- package/dist/xstate-durable.cjs.js +400 -0
- package/dist/xstate-durable.cjs.mjs +5 -0
- package/dist/xstate-durable.development.cjs.js +400 -0
- package/dist/xstate-durable.development.cjs.mjs +5 -0
- package/dist/xstate-durable.development.esm.js +394 -0
- package/dist/xstate-durable.esm.js +394 -0
- package/dist/xstate-durable.umd.min.js +2 -0
- package/dist/xstate-durable.umd.min.js.map +1 -0
- package/dist/xstate-fsm.cjs.d.mts +2 -0
- package/dist/xstate-fsm.cjs.d.ts +2 -0
- package/dist/xstate-fsm.cjs.js +11 -0
- package/dist/xstate-fsm.cjs.mjs +5 -0
- package/dist/xstate-fsm.development.cjs.js +11 -0
- package/dist/xstate-fsm.development.cjs.mjs +5 -0
- package/dist/xstate-fsm.development.esm.js +1 -0
- package/dist/xstate-fsm.esm.js +1 -0
- package/dist/xstate-fsm.umd.min.js +2 -0
- package/dist/xstate-fsm.umd.min.js.map +1 -0
- package/dist/xstate-graph.cjs.js +17 -19
- package/dist/xstate-graph.development.cjs.js +17 -19
- package/dist/xstate-graph.development.esm.js +14 -16
- package/dist/xstate-graph.esm.js +14 -16
- package/dist/xstate-graph.umd.min.js +1 -1
- package/dist/xstate-graph.umd.min.js.map +1 -1
- package/dist/xstate-scxml.cjs.d.mts +2 -0
- package/dist/xstate-scxml.cjs.d.ts +2 -0
- package/dist/xstate-scxml.cjs.js +2387 -0
- package/dist/xstate-scxml.cjs.mjs +3 -0
- package/dist/xstate-scxml.development.cjs.js +2387 -0
- package/dist/xstate-scxml.development.cjs.mjs +3 -0
- package/dist/xstate-scxml.development.esm.js +2383 -0
- package/dist/xstate-scxml.esm.js +2383 -0
- package/dist/xstate-scxml.umd.min.js +26 -0
- package/dist/xstate-scxml.umd.min.js.map +1 -0
- package/dist/xstate-validation.cjs.d.mts +2 -0
- package/dist/xstate-validation.cjs.d.ts +2 -0
- package/dist/xstate-validation.cjs.js +295 -0
- package/dist/xstate-validation.cjs.mjs +5 -0
- package/dist/xstate-validation.development.cjs.js +295 -0
- package/dist/xstate-validation.development.cjs.mjs +5 -0
- package/dist/xstate-validation.development.esm.js +289 -0
- package/dist/xstate-validation.esm.js +289 -0
- package/dist/xstate-validation.umd.min.js +2 -0
- package/dist/xstate-validation.umd.min.js.map +1 -0
- package/dist/xstate.cjs.js +968 -1257
- package/dist/xstate.cjs.mjs +9 -0
- package/dist/xstate.development.cjs.js +968 -1257
- package/dist/xstate.development.cjs.mjs +9 -0
- package/dist/xstate.development.esm.js +933 -1230
- package/dist/xstate.esm.js +933 -1230
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/durable/package.json +8 -0
- package/fsm/package.json +8 -0
- package/package.json +74 -4
- package/scxml/package.json +8 -0
- package/validation/package.json +8 -0
- package/dist/StateMachine-445a8480.cjs.js +0 -732
- package/dist/StateMachine-4deb4090.development.esm.js +0 -746
- package/dist/StateMachine-f310bc72.esm.js +0 -729
- package/dist/StateMachine-f83f01f9.development.cjs.js +0 -749
- package/dist/index-918ab496.cjs.js +0 -4397
- package/dist/index-9cce3480.esm.js +0 -4342
- package/dist/index-ccbe7c0b.development.esm.js +0 -4381
- package/dist/index-ebaf6fd8.development.cjs.js +0 -4436
package/README.md
CHANGED
|
@@ -11,10 +11,40 @@
|
|
|
11
11
|
<br />
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
|
-
|
|
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 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
|
+
For typed context, event payloads, or state-specific context snapshots, use
|
|
41
|
+
`setup` and `types` from `xstate/fsm`. These schemas are type-only in this
|
|
42
|
+
subpath; use root `xstate` for runtime schema validation.
|
|
43
|
+
|
|
44
|
+
See the [exact supported surface](https://stately.ai/docs/fsm). Use the root `xstate`
|
|
45
|
+
entry point for compound or parallel statecharts, invocation, named sources,
|
|
46
|
+
runtime schemas, serialization and inspection.
|
|
47
|
+
|
|
18
48
|
### ✨ Create state machines visually in Stately Studio → [state.new](https://state.new)
|
|
19
49
|
|
|
20
50
|
---
|
|
@@ -27,6 +57,10 @@ It uses event-driven programming, state machines, statecharts, and the actor mod
|
|
|
27
57
|
|
|
28
58
|
📑 Inspired by the [SCXML specification](https://www.w3.org/TR/scxml/)
|
|
29
59
|
|
|
60
|
+
<!-- public SCXML entry point from src/scxml/index.ts -->
|
|
61
|
+
|
|
62
|
+
Create machines from SCXML documents with the opt-in `xstate/scxml` entry point. See the [SCXML guide](../../docs/scxml.md).
|
|
63
|
+
|
|
30
64
|
💬 Chat on the [Stately Discord Community](https://discord.gg/xstate)
|
|
31
65
|
|
|
32
66
|
✍️ Browse through the many [XState examples](https://github.com/statelyai/xstate/tree/main/examples)
|
|
@@ -119,7 +153,7 @@ npm install xstate
|
|
|
119
153
|
```
|
|
120
154
|
|
|
121
155
|
```ts
|
|
122
|
-
import { createMachine, createActor
|
|
156
|
+
import { createMachine, createActor } from 'xstate';
|
|
123
157
|
|
|
124
158
|
// State machine
|
|
125
159
|
const toggleMachine = createMachine({
|
|
@@ -135,7 +169,9 @@ const toggleMachine = createMachine({
|
|
|
135
169
|
}
|
|
136
170
|
},
|
|
137
171
|
active: {
|
|
138
|
-
entry:
|
|
172
|
+
entry: ({ context }) => ({
|
|
173
|
+
context: { count: context.count + 1 }
|
|
174
|
+
}),
|
|
139
175
|
on: {
|
|
140
176
|
TOGGLE: { target: 'inactive' }
|
|
141
177
|
}
|
|
@@ -164,7 +200,7 @@ toggleActor.send({ type: 'TOGGLE' });
|
|
|
164
200
|
- Deploy to Stately Sky
|
|
165
201
|
- Generate & modify machines with Stately AI
|
|
166
202
|
|
|
167
|
-
<a href="stately.ai/registry/new?ref=github" title="Stately Studio">
|
|
203
|
+
<a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
|
|
168
204
|
<img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
|
|
169
205
|
</a>
|
|
170
206
|
|
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
|
+
}
|