xstate 6.0.0-alpha.3 → 6.0.0-alpha.31

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 (75) hide show
  1. package/README.md +19 -17
  2. package/bin/xstate.js +36 -0
  3. package/dist/StateMachine-4e86e818.cjs.js +1079 -0
  4. package/dist/StateMachine-54d3cf7a.development.esm.js +1103 -0
  5. package/dist/{StateMachine-0770ac71.development.cjs.js → StateMachine-73b20de0.development.cjs.js} +491 -120
  6. package/dist/StateMachine-cc0c34dd.esm.js +1071 -0
  7. package/dist/declarations/src/State.d.ts +16 -3
  8. package/dist/declarations/src/StateMachine.d.ts +28 -15
  9. package/dist/declarations/src/StateNode.d.ts +4 -2
  10. package/dist/declarations/src/actions.d.ts +10 -7
  11. package/dist/declarations/src/actors/callback.d.ts +2 -0
  12. package/dist/declarations/src/actors/logic.d.ts +7 -21
  13. package/dist/declarations/src/actors/observable.d.ts +3 -0
  14. package/dist/declarations/src/actors/promise.d.ts +6 -2
  15. package/dist/declarations/src/createActor.d.ts +21 -14
  16. package/dist/declarations/src/createMachine.d.ts +24 -13
  17. package/dist/declarations/src/createMachineFromConfig.d.ts +64 -30
  18. package/dist/declarations/src/fsm.d.ts +76 -0
  19. package/dist/declarations/src/graph/graph.d.ts +3 -3
  20. package/dist/declarations/src/graph/shortestPaths.d.ts +2 -2
  21. package/dist/declarations/src/graph/simplePaths.d.ts +2 -2
  22. package/dist/declarations/src/index.d.ts +9 -4
  23. package/dist/declarations/src/machineVersions.d.ts +51 -0
  24. package/dist/declarations/src/schema.types.d.ts +5 -0
  25. package/dist/declarations/src/serialize.d.ts +9 -22
  26. package/dist/declarations/src/setup.d.ts +361 -70
  27. package/dist/declarations/src/spawn.d.ts +5 -5
  28. package/dist/declarations/src/stateUtils.d.ts +8 -3
  29. package/dist/declarations/src/system.d.ts +38 -11
  30. package/dist/declarations/src/transition.d.ts +8 -5
  31. package/dist/declarations/src/transitionActions.d.ts +16 -0
  32. package/dist/declarations/src/types.d.ts +346 -144
  33. package/dist/declarations/src/types.v6.d.ts +294 -58
  34. package/dist/declarations/src/utils.d.ts +5 -3
  35. package/dist/declarations/src/validation/index.d.ts +37 -0
  36. package/dist/declarations/src/validation.types.d.ts +22 -0
  37. package/dist/{index-269d256d.development.cjs.js → index-0317dbd5.development.cjs.js} +2220 -1041
  38. package/dist/{index-a7e3d8b3.esm.js → index-2b16671f.esm.js} +2195 -1038
  39. package/dist/{index-dda021d5.cjs.js → index-85c48a0a.cjs.js} +2218 -1039
  40. package/dist/{index-66ff64a6.development.esm.js → index-fbe9e986.development.esm.js} +2197 -1040
  41. package/dist/xstate-actors.cjs.js +1 -1
  42. package/dist/xstate-actors.development.cjs.js +1 -1
  43. package/dist/xstate-actors.development.esm.js +1 -1
  44. package/dist/xstate-actors.esm.js +1 -1
  45. package/dist/xstate-actors.umd.min.js +1 -1
  46. package/dist/xstate-actors.umd.min.js.map +1 -1
  47. package/dist/xstate-graph.cjs.js +10 -14
  48. package/dist/xstate-graph.development.cjs.js +10 -14
  49. package/dist/xstate-graph.development.esm.js +10 -14
  50. package/dist/xstate-graph.esm.js +10 -14
  51. package/dist/xstate-graph.umd.min.js +1 -1
  52. package/dist/xstate-graph.umd.min.js.map +1 -1
  53. package/dist/xstate-validation.cjs.d.mts +2 -0
  54. package/dist/xstate-validation.cjs.d.ts +2 -0
  55. package/dist/xstate-validation.cjs.js +277 -0
  56. package/dist/xstate-validation.cjs.mjs +5 -0
  57. package/dist/xstate-validation.development.cjs.js +277 -0
  58. package/dist/xstate-validation.development.cjs.mjs +5 -0
  59. package/dist/xstate-validation.development.esm.js +271 -0
  60. package/dist/xstate-validation.esm.js +271 -0
  61. package/dist/xstate-validation.umd.min.js +2 -0
  62. package/dist/xstate-validation.umd.min.js.map +1 -0
  63. package/dist/xstate.cjs.js +1299 -294
  64. package/dist/xstate.cjs.mjs +6 -0
  65. package/dist/xstate.development.cjs.js +1299 -294
  66. package/dist/xstate.development.cjs.mjs +6 -0
  67. package/dist/xstate.development.esm.js +1293 -294
  68. package/dist/xstate.esm.js +1293 -294
  69. package/dist/xstate.umd.min.js +1 -1
  70. package/dist/xstate.umd.min.js.map +1 -1
  71. package/package.json +23 -3
  72. package/validation/package.json +8 -0
  73. package/dist/StateMachine-8249d511.esm.js +0 -720
  74. package/dist/StateMachine-e1048cd6.cjs.js +0 -723
  75. package/dist/StateMachine-e6ad61d0.development.esm.js +0 -737
package/README.md CHANGED
@@ -119,7 +119,7 @@ npm install xstate
119
119
  ```
120
120
 
121
121
  ```ts
122
- import { createMachine, createActor, assign } from 'xstate';
122
+ import { createMachine, createActor } from 'xstate';
123
123
 
124
124
  // State machine
125
125
  const toggleMachine = createMachine({
@@ -135,7 +135,9 @@ const toggleMachine = createMachine({
135
135
  }
136
136
  },
137
137
  active: {
138
- entry: assign({ count: ({ context }) => context.count + 1 }),
138
+ entry: ({ context }) => ({
139
+ context: { count: context.count + 1 }
140
+ }),
139
141
  on: {
140
142
  TOGGLE: { target: 'inactive' }
141
143
  }
@@ -164,7 +166,7 @@ toggleActor.send({ type: 'TOGGLE' });
164
166
  - Deploy to Stately Sky
165
167
  - Generate & modify machines with Stately AI
166
168
 
167
- <a href="stately.ai/registry/new?ref=github" title="Stately Studio">
169
+ <a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
168
170
  <img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
169
171
  </a>
170
172
 
@@ -365,10 +367,10 @@ const wordMachine = createMachine({
365
367
  initial: 'off',
366
368
  states: {
367
369
  on: {
368
- on: { TOGGLE_BOLD: 'off' }
370
+ on: { TOGGLE_BOLD: { target: 'off' } }
369
371
  },
370
372
  off: {
371
- on: { TOGGLE_BOLD: 'on' }
373
+ on: { TOGGLE_BOLD: { target: 'on' } }
372
374
  }
373
375
  }
374
376
  },
@@ -376,10 +378,10 @@ const wordMachine = createMachine({
376
378
  initial: 'off',
377
379
  states: {
378
380
  on: {
379
- on: { TOGGLE_UNDERLINE: 'off' }
381
+ on: { TOGGLE_UNDERLINE: { target: 'off' } }
380
382
  },
381
383
  off: {
382
- on: { TOGGLE_UNDERLINE: 'on' }
384
+ on: { TOGGLE_UNDERLINE: { target: 'on' } }
383
385
  }
384
386
  }
385
387
  },
@@ -387,10 +389,10 @@ const wordMachine = createMachine({
387
389
  initial: 'off',
388
390
  states: {
389
391
  on: {
390
- on: { TOGGLE_ITALICS: 'off' }
392
+ on: { TOGGLE_ITALICS: { target: 'off' } }
391
393
  },
392
394
  off: {
393
- on: { TOGGLE_ITALICS: 'on' }
395
+ on: { TOGGLE_ITALICS: { target: 'on' } }
394
396
  }
395
397
  }
396
398
  },
@@ -399,20 +401,20 @@ const wordMachine = createMachine({
399
401
  states: {
400
402
  none: {
401
403
  on: {
402
- BULLETS: 'bullets',
403
- NUMBERS: 'numbers'
404
+ BULLETS: { target: 'bullets' },
405
+ NUMBERS: { target: 'numbers' }
404
406
  }
405
407
  },
406
408
  bullets: {
407
409
  on: {
408
- NONE: 'none',
409
- NUMBERS: 'numbers'
410
+ NONE: { target: 'none' },
411
+ NUMBERS: { target: 'numbers' }
410
412
  }
411
413
  },
412
414
  numbers: {
413
415
  on: {
414
- BULLETS: 'bullets',
415
- NONE: 'none'
416
+ BULLETS: { target: 'bullets' },
417
+ NONE: { target: 'none' }
416
418
  }
417
419
  }
418
420
  }
@@ -493,10 +495,10 @@ const paymentMachine = createMachine({
493
495
  },
494
496
  hist: { type: 'history' }
495
497
  },
496
- on: { NEXT: 'review' }
498
+ on: { NEXT: { target: 'review' } }
497
499
  },
498
500
  review: {
499
- on: { PREVIOUS: 'method.hist' }
501
+ on: { PREVIOUS: { target: 'method.hist' } }
500
502
  }
501
503
  }
502
504
  });
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
+ }