xstate 5.32.1 → 6.0.0-alpha.2

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 (119) hide show
  1. package/README.md +7 -8
  2. package/dist/StateMachine-2dcdb1f5.esm.js +720 -0
  3. package/dist/StateMachine-2ea0a7fa.development.esm.js +737 -0
  4. package/dist/StateMachine-64813f46.cjs.js +723 -0
  5. package/dist/StateMachine-8d22a79c.development.cjs.js +740 -0
  6. package/dist/declarations/src/State.d.ts +11 -13
  7. package/dist/declarations/src/StateMachine.d.ts +27 -21
  8. package/dist/declarations/src/StateNode.d.ts +18 -54
  9. package/dist/declarations/src/actions.d.ts +14 -9
  10. package/dist/declarations/src/actors/callback.d.ts +42 -16
  11. package/dist/declarations/src/actors/index.d.ts +9 -6
  12. package/dist/declarations/src/actors/listener.d.ts +18 -0
  13. package/dist/declarations/src/actors/logic.d.ts +105 -0
  14. package/dist/declarations/src/actors/observable.d.ts +72 -27
  15. package/dist/declarations/src/actors/promise.d.ts +133 -48
  16. package/dist/declarations/src/actors/subscription.d.ts +22 -0
  17. package/dist/declarations/src/atom.d.ts +81 -0
  18. package/dist/declarations/src/createActor.d.ts +31 -33
  19. package/dist/declarations/src/createMachine.d.ts +35 -7
  20. package/dist/declarations/src/createMachineFromConfig.d.ts +176 -0
  21. package/dist/declarations/src/graph/graph.d.ts +4 -2
  22. package/dist/declarations/src/index.d.ts +12 -8
  23. package/dist/declarations/src/inspection.d.ts +84 -30
  24. package/dist/declarations/src/mapState.d.ts +4 -2
  25. package/dist/declarations/src/schema.types.d.ts +90 -0
  26. package/dist/declarations/src/serialize.d.ts +44 -0
  27. package/dist/declarations/src/setup.d.ts +251 -135
  28. package/dist/declarations/src/spawn.d.ts +6 -31
  29. package/dist/declarations/src/stateUtils.d.ts +21 -19
  30. package/dist/declarations/src/system.d.ts +8 -7
  31. package/dist/declarations/src/transition.d.ts +5 -5
  32. package/dist/declarations/src/types.d.ts +405 -405
  33. package/dist/declarations/src/types.v6.d.ts +392 -0
  34. package/dist/declarations/src/utils.d.ts +4 -3
  35. package/dist/index-93edd3bd.esm.js +4909 -0
  36. package/dist/index-9cb3b3a0.cjs.js +4968 -0
  37. package/dist/index-e61170ba.development.esm.js +4948 -0
  38. package/dist/index-f6ef20d1.development.cjs.js +5007 -0
  39. package/dist/xstate-actors.cjs.js +12 -838
  40. package/dist/xstate-actors.cjs.mjs +10 -5
  41. package/dist/xstate-actors.development.cjs.js +12 -838
  42. package/dist/xstate-actors.development.cjs.mjs +10 -5
  43. package/dist/xstate-actors.development.esm.js +1 -836
  44. package/dist/xstate-actors.esm.js +1 -836
  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 +18 -29
  48. package/dist/xstate-graph.development.cjs.js +18 -29
  49. package/dist/xstate-graph.development.esm.js +15 -26
  50. package/dist/xstate-graph.esm.js +15 -26
  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.cjs.js +1316 -112
  54. package/dist/xstate.cjs.mjs +22 -22
  55. package/dist/xstate.development.cjs.js +1316 -112
  56. package/dist/xstate.development.cjs.mjs +22 -22
  57. package/dist/xstate.development.esm.js +1278 -76
  58. package/dist/xstate.esm.js +1278 -76
  59. package/dist/xstate.umd.min.js +1 -1
  60. package/dist/xstate.umd.min.js.map +1 -1
  61. package/package.json +3 -47
  62. package/dist/StateMachine-45e79c35.esm.js +0 -560
  63. package/dist/StateMachine-be2e51a3.development.cjs.js +0 -569
  64. package/dist/StateMachine-e0178d48.development.esm.js +0 -566
  65. package/dist/StateMachine-e6732977.cjs.js +0 -563
  66. package/dist/assign-2aa58daa.esm.js +0 -127
  67. package/dist/assign-927227d6.development.cjs.js +0 -135
  68. package/dist/assign-e8f2bd75.cjs.js +0 -129
  69. package/dist/assign-f338cee3.development.esm.js +0 -133
  70. package/dist/declarations/src/actions/assign.d.ts +0 -45
  71. package/dist/declarations/src/actions/cancel.d.ts +0 -39
  72. package/dist/declarations/src/actions/emit.d.ts +0 -44
  73. package/dist/declarations/src/actions/enqueueActions.d.ts +0 -57
  74. package/dist/declarations/src/actions/log.d.ts +0 -16
  75. package/dist/declarations/src/actions/raise.d.ts +0 -21
  76. package/dist/declarations/src/actions/send.d.ts +0 -42
  77. package/dist/declarations/src/actions/spawnChild.d.ts +0 -34
  78. package/dist/declarations/src/actions/stopChild.d.ts +0 -19
  79. package/dist/declarations/src/actors/transition.d.ts +0 -143
  80. package/dist/declarations/src/dev/index.d.ts +0 -14
  81. package/dist/declarations/src/guards.d.ts +0 -128
  82. package/dist/log-410e5e55.development.esm.js +0 -429
  83. package/dist/log-7776fcf2.cjs.js +0 -409
  84. package/dist/log-c2e11c01.development.cjs.js +0 -437
  85. package/dist/log-fa75ec2d.esm.js +0 -401
  86. package/dist/raise-74097812.development.esm.js +0 -2823
  87. package/dist/raise-7c948725.cjs.js +0 -2816
  88. package/dist/raise-964cd4e9.development.cjs.js +0 -2878
  89. package/dist/raise-e974d1c9.esm.js +0 -2761
  90. package/dist/xstate-actions.cjs.d.mts +0 -2
  91. package/dist/xstate-actions.cjs.d.ts +0 -2
  92. package/dist/xstate-actions.cjs.js +0 -23
  93. package/dist/xstate-actions.cjs.mjs +0 -14
  94. package/dist/xstate-actions.development.cjs.js +0 -23
  95. package/dist/xstate-actions.development.cjs.mjs +0 -14
  96. package/dist/xstate-actions.development.esm.js +0 -4
  97. package/dist/xstate-actions.esm.js +0 -4
  98. package/dist/xstate-actions.umd.min.js +0 -2
  99. package/dist/xstate-actions.umd.min.js.map +0 -1
  100. package/dist/xstate-dev.cjs.d.mts +0 -2
  101. package/dist/xstate-dev.cjs.d.ts +0 -2
  102. package/dist/xstate-dev.cjs.js +0 -48
  103. package/dist/xstate-dev.cjs.mjs +0 -5
  104. package/dist/xstate-dev.development.cjs.js +0 -51
  105. package/dist/xstate-dev.development.cjs.mjs +0 -5
  106. package/dist/xstate-dev.development.esm.js +0 -45
  107. package/dist/xstate-dev.esm.js +0 -42
  108. package/dist/xstate-dev.umd.min.js +0 -2
  109. package/dist/xstate-dev.umd.min.js.map +0 -1
  110. package/dist/xstate-guards.cjs.d.mts +0 -2
  111. package/dist/xstate-guards.cjs.d.ts +0 -2
  112. package/dist/xstate-guards.cjs.js +0 -14
  113. package/dist/xstate-guards.cjs.mjs +0 -7
  114. package/dist/xstate-guards.development.cjs.js +0 -14
  115. package/dist/xstate-guards.development.cjs.mjs +0 -7
  116. package/dist/xstate-guards.development.esm.js +0 -2
  117. package/dist/xstate-guards.esm.js +0 -2
  118. package/dist/xstate-guards.umd.min.js +0 -2
  119. package/dist/xstate-guards.umd.min.js.map +0 -1
@@ -2,11 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dist_xstateActors = require('./xstate-actors.cjs.js');
6
- var StateMachine = require('./StateMachine-e6732977.cjs.js');
7
- var dist_xstateGuards = require('./raise-7c948725.cjs.js');
8
- require('./xstate-dev.cjs.js');
9
- require('./assign-e8f2bd75.cjs.js');
5
+ var dist_xstateActors = require('./index-9cb3b3a0.cjs.js');
6
+ var StateMachine = require('./StateMachine-64813f46.cjs.js');
10
7
 
11
8
  function simpleStringify(value) {
12
9
  return JSON.stringify(value);
@@ -120,23 +117,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
120
117
  return paths;
121
118
  };
122
119
 
123
- const validateState = state => {
124
- if (state.invoke.length > 0) {
125
- throw new Error('Invocations on test machines are not supported');
126
- }
127
- if (state.after.length > 0) {
128
- throw new Error('After events on test machines are not supported');
129
- }
130
- // TODO: this doesn't account for always transitions
131
- [...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
132
- // TODO: this doesn't check referenced actions, only the inline ones
133
- if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
134
- throw new Error('Delayed actions on test machines are not supported');
135
- }
136
- });
137
- for (const child of Object.values(state.states)) {
138
- validateState(child);
139
- }
120
+ const validateState = _state => {
121
+ // TODO
140
122
  };
141
123
  const validateMachine = machine => {
142
124
  validateState(machine.root);
@@ -182,7 +164,7 @@ class TestModel {
182
164
  return {
183
165
  ...statePath,
184
166
  test: params => this.testPath(statePath, params),
185
- description: dist_xstateGuards.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
167
+ description: dist_xstateActors.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
186
168
  };
187
169
  };
188
170
  this.options = {
@@ -385,7 +367,7 @@ function createTestModel(machine, options) {
385
367
  },
386
368
  events: state => {
387
369
  const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
388
- return dist_xstateGuards.getAllOwnEventDescriptors(state).flatMap(eventType => {
370
+ return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(eventType => {
389
371
  if (events.some(e => e.type === eventType)) {
390
372
  return events.filter(e => e.type === eventType);
391
373
  }
@@ -464,7 +446,7 @@ function createDefaultMachineOptions(machine, options) {
464
446
  serializeEvent,
465
447
  events: state => {
466
448
  const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
467
- return dist_xstateGuards.getAllOwnEventDescriptors(state).flatMap(type => {
449
+ return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(type => {
468
450
  const matchingEvents = events.filter(ev => ev.type === type);
469
451
  if (matchingEvents.length) {
470
452
  return matchingEvents;
@@ -571,7 +553,11 @@ function joinPaths(headPath, tailPath) {
571
553
  };
572
554
  }
573
555
 
556
+ function resolveTransitionSnapshot(result) {
557
+ return Array.isArray(result) ? result[0] : result;
558
+ }
574
559
  function getAdjacencyMap(logic, options) {
560
+
575
561
  const {
576
562
  transition
577
563
  } = logic;
@@ -622,7 +608,7 @@ function getAdjacencyMap(logic, options) {
622
608
  if (filterEvents && !filterEvents(state, nextEvent)) {
623
609
  continue;
624
610
  }
625
- const nextSnapshot = transition(state, nextEvent, actorScope);
611
+ const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
626
612
  adj[serializedState].transitions[serializeEvent(nextEvent)] = {
627
613
  event: nextEvent,
628
614
  state: nextSnapshot
@@ -657,7 +643,7 @@ function alterPath(path) {
657
643
  steps = [{
658
644
  state: path.state,
659
645
  event: {
660
- type: 'xstate.init'
646
+ type: dist_xstateActors.XSTATE_INIT
661
647
  }
662
648
  }];
663
649
  } else {
@@ -666,7 +652,7 @@ function alterPath(path) {
666
652
  steps.push({
667
653
  state: step.state,
668
654
  event: i === 0 ? {
669
- type: 'xstate.init'
655
+ type: dist_xstateActors.XSTATE_INIT
670
656
  } : path.steps[i - 1].event
671
657
  });
672
658
  }
@@ -682,7 +668,7 @@ function alterPath(path) {
682
668
  }
683
669
 
684
670
  function isMachine(value) {
685
- return !!value && '__xstatenode' in value;
671
+ return !!value && value instanceof StateMachine.StateMachine;
686
672
  }
687
673
  function getPathsFromEvents(logic, events, options) {
688
674
  const resolvedOptions = resolveTraversalOptions(logic, {
@@ -855,6 +841,9 @@ function getSimplePaths(logic, options) {
855
841
  };
856
842
  toStatePlan.paths.push(path2);
857
843
  } else {
844
+ if (!adjacency[fromStateSerial]) {
845
+ return;
846
+ }
858
847
  for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
859
848
  const {
860
849
  state: nextState,
@@ -2,11 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dist_xstateActors = require('./xstate-actors.development.cjs.js');
6
- var StateMachine = require('./StateMachine-be2e51a3.development.cjs.js');
7
- var dist_xstateGuards = require('./raise-964cd4e9.development.cjs.js');
8
- require('./xstate-dev.development.cjs.js');
9
- require('./assign-927227d6.development.cjs.js');
5
+ var dist_xstateActors = require('./index-f6ef20d1.development.cjs.js');
6
+ var StateMachine = require('./StateMachine-8d22a79c.development.cjs.js');
10
7
 
11
8
  function simpleStringify(value) {
12
9
  return JSON.stringify(value);
@@ -120,23 +117,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
120
117
  return paths;
121
118
  };
122
119
 
123
- const validateState = state => {
124
- if (state.invoke.length > 0) {
125
- throw new Error('Invocations on test machines are not supported');
126
- }
127
- if (state.after.length > 0) {
128
- throw new Error('After events on test machines are not supported');
129
- }
130
- // TODO: this doesn't account for always transitions
131
- [...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
132
- // TODO: this doesn't check referenced actions, only the inline ones
133
- if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
134
- throw new Error('Delayed actions on test machines are not supported');
135
- }
136
- });
137
- for (const child of Object.values(state.states)) {
138
- validateState(child);
139
- }
120
+ const validateState = _state => {
121
+ // TODO
140
122
  };
141
123
  const validateMachine = machine => {
142
124
  validateState(machine.root);
@@ -182,7 +164,7 @@ class TestModel {
182
164
  return {
183
165
  ...statePath,
184
166
  test: params => this.testPath(statePath, params),
185
- description: dist_xstateGuards.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
167
+ description: dist_xstateActors.isMachineSnapshot(statePath.state) ? `Reaches ${getDescription(statePath.state).trim()}: ${eventsString}` : JSON.stringify(statePath.state)
186
168
  };
187
169
  };
188
170
  this.options = {
@@ -385,7 +367,7 @@ function createTestModel(machine, options) {
385
367
  },
386
368
  events: state => {
387
369
  const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
388
- return dist_xstateGuards.getAllOwnEventDescriptors(state).flatMap(eventType => {
370
+ return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(eventType => {
389
371
  if (events.some(e => e.type === eventType)) {
390
372
  return events.filter(e => e.type === eventType);
391
373
  }
@@ -464,7 +446,7 @@ function createDefaultMachineOptions(machine, options) {
464
446
  serializeEvent,
465
447
  events: state => {
466
448
  const events = typeof getEvents === 'function' ? getEvents(state) : getEvents ?? [];
467
- return dist_xstateGuards.getAllOwnEventDescriptors(state).flatMap(type => {
449
+ return dist_xstateActors.getAllOwnEventDescriptors(state).flatMap(type => {
468
450
  const matchingEvents = events.filter(ev => ev.type === type);
469
451
  if (matchingEvents.length) {
470
452
  return matchingEvents;
@@ -571,7 +553,11 @@ function joinPaths(headPath, tailPath) {
571
553
  };
572
554
  }
573
555
 
556
+ function resolveTransitionSnapshot(result) {
557
+ return Array.isArray(result) ? result[0] : result;
558
+ }
574
559
  function getAdjacencyMap(logic, options) {
560
+
575
561
  const {
576
562
  transition
577
563
  } = logic;
@@ -622,7 +608,7 @@ function getAdjacencyMap(logic, options) {
622
608
  if (filterEvents && !filterEvents(state, nextEvent)) {
623
609
  continue;
624
610
  }
625
- const nextSnapshot = transition(state, nextEvent, actorScope);
611
+ const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
626
612
  adj[serializedState].transitions[serializeEvent(nextEvent)] = {
627
613
  event: nextEvent,
628
614
  state: nextSnapshot
@@ -657,7 +643,7 @@ function alterPath(path) {
657
643
  steps = [{
658
644
  state: path.state,
659
645
  event: {
660
- type: 'xstate.init'
646
+ type: dist_xstateActors.XSTATE_INIT
661
647
  }
662
648
  }];
663
649
  } else {
@@ -666,7 +652,7 @@ function alterPath(path) {
666
652
  steps.push({
667
653
  state: step.state,
668
654
  event: i === 0 ? {
669
- type: 'xstate.init'
655
+ type: dist_xstateActors.XSTATE_INIT
670
656
  } : path.steps[i - 1].event
671
657
  });
672
658
  }
@@ -682,7 +668,7 @@ function alterPath(path) {
682
668
  }
683
669
 
684
670
  function isMachine(value) {
685
- return !!value && '__xstatenode' in value;
671
+ return !!value && value instanceof StateMachine.StateMachine;
686
672
  }
687
673
  function getPathsFromEvents(logic, events, options) {
688
674
  const resolvedOptions = resolveTraversalOptions(logic, {
@@ -855,6 +841,9 @@ function getSimplePaths(logic, options) {
855
841
  };
856
842
  toStatePlan.paths.push(path2);
857
843
  } else {
844
+ if (!adjacency[fromStateSerial]) {
845
+ return;
846
+ }
858
847
  for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
859
848
  const {
860
849
  state: nextState,
@@ -1,8 +1,5 @@
1
- import { createEmptyActor } from './xstate-actors.development.esm.js';
2
- import { S as StateMachine } from './StateMachine-e0178d48.development.esm.js';
3
- import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-74097812.development.esm.js';
4
- import './xstate-dev.development.esm.js';
5
- import './assign-f338cee3.development.esm.js';
1
+ import { l as isMachineSnapshot, o as getAllOwnEventDescriptors, v as createEmptyActor, a3 as XSTATE_INIT } from './index-e61170ba.development.esm.js';
2
+ import { S as StateMachine } from './StateMachine-2ea0a7fa.development.esm.js';
6
3
 
7
4
  function simpleStringify(value) {
8
5
  return JSON.stringify(value);
@@ -116,23 +113,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
116
113
  return paths;
117
114
  };
118
115
 
119
- const validateState = state => {
120
- if (state.invoke.length > 0) {
121
- throw new Error('Invocations on test machines are not supported');
122
- }
123
- if (state.after.length > 0) {
124
- throw new Error('After events on test machines are not supported');
125
- }
126
- // TODO: this doesn't account for always transitions
127
- [...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
128
- // TODO: this doesn't check referenced actions, only the inline ones
129
- if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
130
- throw new Error('Delayed actions on test machines are not supported');
131
- }
132
- });
133
- for (const child of Object.values(state.states)) {
134
- validateState(child);
135
- }
116
+ const validateState = _state => {
117
+ // TODO
136
118
  };
137
119
  const validateMachine = machine => {
138
120
  validateState(machine.root);
@@ -567,7 +549,11 @@ function joinPaths(headPath, tailPath) {
567
549
  };
568
550
  }
569
551
 
552
+ function resolveTransitionSnapshot(result) {
553
+ return Array.isArray(result) ? result[0] : result;
554
+ }
570
555
  function getAdjacencyMap(logic, options) {
556
+
571
557
  const {
572
558
  transition
573
559
  } = logic;
@@ -618,7 +604,7 @@ function getAdjacencyMap(logic, options) {
618
604
  if (filterEvents && !filterEvents(state, nextEvent)) {
619
605
  continue;
620
606
  }
621
- const nextSnapshot = transition(state, nextEvent, actorScope);
607
+ const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
622
608
  adj[serializedState].transitions[serializeEvent(nextEvent)] = {
623
609
  event: nextEvent,
624
610
  state: nextSnapshot
@@ -653,7 +639,7 @@ function alterPath(path) {
653
639
  steps = [{
654
640
  state: path.state,
655
641
  event: {
656
- type: 'xstate.init'
642
+ type: XSTATE_INIT
657
643
  }
658
644
  }];
659
645
  } else {
@@ -662,7 +648,7 @@ function alterPath(path) {
662
648
  steps.push({
663
649
  state: step.state,
664
650
  event: i === 0 ? {
665
- type: 'xstate.init'
651
+ type: XSTATE_INIT
666
652
  } : path.steps[i - 1].event
667
653
  });
668
654
  }
@@ -678,7 +664,7 @@ function alterPath(path) {
678
664
  }
679
665
 
680
666
  function isMachine(value) {
681
- return !!value && '__xstatenode' in value;
667
+ return !!value && value instanceof StateMachine;
682
668
  }
683
669
  function getPathsFromEvents(logic, events, options) {
684
670
  const resolvedOptions = resolveTraversalOptions(logic, {
@@ -851,6 +837,9 @@ function getSimplePaths(logic, options) {
851
837
  };
852
838
  toStatePlan.paths.push(path2);
853
839
  } else {
840
+ if (!adjacency[fromStateSerial]) {
841
+ return;
842
+ }
854
843
  for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
855
844
  const {
856
845
  state: nextState,
@@ -1,8 +1,5 @@
1
- import { createEmptyActor } from './xstate-actors.esm.js';
2
- import { S as StateMachine } from './StateMachine-45e79c35.esm.js';
3
- import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-e974d1c9.esm.js';
4
- import './xstate-dev.esm.js';
5
- import './assign-2aa58daa.esm.js';
1
+ import { l as isMachineSnapshot, o as getAllOwnEventDescriptors, v as createEmptyActor, a3 as XSTATE_INIT } from './index-93edd3bd.esm.js';
2
+ import { S as StateMachine } from './StateMachine-2dcdb1f5.esm.js';
6
3
 
7
4
  function simpleStringify(value) {
8
5
  return JSON.stringify(value);
@@ -116,23 +113,8 @@ const createSimplePathsGen = () => (logic, defaultOptions) => {
116
113
  return paths;
117
114
  };
118
115
 
119
- const validateState = state => {
120
- if (state.invoke.length > 0) {
121
- throw new Error('Invocations on test machines are not supported');
122
- }
123
- if (state.after.length > 0) {
124
- throw new Error('After events on test machines are not supported');
125
- }
126
- // TODO: this doesn't account for always transitions
127
- [...state.entry, ...state.exit, ...[...state.transitions.values()].flatMap(t => t.flatMap(t => t.actions))].forEach(action => {
128
- // TODO: this doesn't check referenced actions, only the inline ones
129
- if (typeof action === 'function' && 'resolve' in action && typeof action.delay === 'number') {
130
- throw new Error('Delayed actions on test machines are not supported');
131
- }
132
- });
133
- for (const child of Object.values(state.states)) {
134
- validateState(child);
135
- }
116
+ const validateState = _state => {
117
+ // TODO
136
118
  };
137
119
  const validateMachine = machine => {
138
120
  validateState(machine.root);
@@ -567,7 +549,11 @@ function joinPaths(headPath, tailPath) {
567
549
  };
568
550
  }
569
551
 
552
+ function resolveTransitionSnapshot(result) {
553
+ return Array.isArray(result) ? result[0] : result;
554
+ }
570
555
  function getAdjacencyMap(logic, options) {
556
+
571
557
  const {
572
558
  transition
573
559
  } = logic;
@@ -618,7 +604,7 @@ function getAdjacencyMap(logic, options) {
618
604
  if (filterEvents && !filterEvents(state, nextEvent)) {
619
605
  continue;
620
606
  }
621
- const nextSnapshot = transition(state, nextEvent, actorScope);
607
+ const nextSnapshot = resolveTransitionSnapshot(transition(state, nextEvent, actorScope));
622
608
  adj[serializedState].transitions[serializeEvent(nextEvent)] = {
623
609
  event: nextEvent,
624
610
  state: nextSnapshot
@@ -653,7 +639,7 @@ function alterPath(path) {
653
639
  steps = [{
654
640
  state: path.state,
655
641
  event: {
656
- type: 'xstate.init'
642
+ type: XSTATE_INIT
657
643
  }
658
644
  }];
659
645
  } else {
@@ -662,7 +648,7 @@ function alterPath(path) {
662
648
  steps.push({
663
649
  state: step.state,
664
650
  event: i === 0 ? {
665
- type: 'xstate.init'
651
+ type: XSTATE_INIT
666
652
  } : path.steps[i - 1].event
667
653
  });
668
654
  }
@@ -678,7 +664,7 @@ function alterPath(path) {
678
664
  }
679
665
 
680
666
  function isMachine(value) {
681
- return !!value && '__xstatenode' in value;
667
+ return !!value && value instanceof StateMachine;
682
668
  }
683
669
  function getPathsFromEvents(logic, events, options) {
684
670
  const resolvedOptions = resolveTraversalOptions(logic, {
@@ -851,6 +837,9 @@ function getSimplePaths(logic, options) {
851
837
  };
852
838
  toStatePlan.paths.push(path2);
853
839
  } else {
840
+ if (!adjacency[fromStateSerial]) {
841
+ return;
842
+ }
854
843
  for (const serializedEvent of Object.keys(adjacency[fromStateSerial].transitions)) {
855
844
  const {
856
845
  state: nextState,