xstate 5.32.2 → 6.0.0-alpha.10

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 (121) hide show
  1. package/README.md +25 -24
  2. package/dist/StateMachine-0aa98f54.development.esm.js +746 -0
  3. package/dist/StateMachine-aef700df.cjs.js +732 -0
  4. package/dist/StateMachine-d4931336.esm.js +729 -0
  5. package/dist/StateMachine-da872dde.development.cjs.js +749 -0
  6. package/dist/declarations/src/State.d.ts +11 -13
  7. package/dist/declarations/src/StateMachine.d.ts +40 -26
  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/createActor.d.ts +33 -34
  18. package/dist/declarations/src/createMachine.d.ts +38 -7
  19. package/dist/declarations/src/createMachineFromConfig.d.ts +177 -0
  20. package/dist/declarations/src/graph/graph.d.ts +6 -4
  21. package/dist/declarations/src/graph/shortestPaths.d.ts +2 -2
  22. package/dist/declarations/src/graph/simplePaths.d.ts +2 -2
  23. package/dist/declarations/src/index.d.ts +13 -9
  24. package/dist/declarations/src/inspection.d.ts +84 -30
  25. package/dist/declarations/src/mapState.d.ts +4 -2
  26. package/dist/declarations/src/schema.types.d.ts +90 -0
  27. package/dist/declarations/src/serialize.d.ts +50 -0
  28. package/dist/declarations/src/setup.d.ts +396 -136
  29. package/dist/declarations/src/spawn.d.ts +7 -32
  30. package/dist/declarations/src/stateUtils.d.ts +22 -19
  31. package/dist/declarations/src/system.d.ts +8 -7
  32. package/dist/declarations/src/transition.d.ts +8 -5
  33. package/dist/declarations/src/transitionActions.d.ts +4 -0
  34. package/dist/declarations/src/types.d.ts +494 -429
  35. package/dist/declarations/src/types.v6.d.ts +423 -0
  36. package/dist/declarations/src/utils.d.ts +5 -3
  37. package/dist/index-219cb621.development.cjs.js +4476 -0
  38. package/dist/index-2f2fbd9b.development.esm.js +4421 -0
  39. package/dist/index-559ceab3.cjs.js +4437 -0
  40. package/dist/index-8828376f.esm.js +4382 -0
  41. package/dist/xstate-actors.cjs.js +12 -838
  42. package/dist/xstate-actors.cjs.mjs +10 -5
  43. package/dist/xstate-actors.development.cjs.js +12 -838
  44. package/dist/xstate-actors.development.cjs.mjs +10 -5
  45. package/dist/xstate-actors.development.esm.js +1 -836
  46. package/dist/xstate-actors.esm.js +1 -836
  47. package/dist/xstate-actors.umd.min.js +1 -1
  48. package/dist/xstate-actors.umd.min.js.map +1 -1
  49. package/dist/xstate-graph.cjs.js +18 -29
  50. package/dist/xstate-graph.development.cjs.js +18 -29
  51. package/dist/xstate-graph.development.esm.js +15 -26
  52. package/dist/xstate-graph.esm.js +15 -26
  53. package/dist/xstate-graph.umd.min.js +1 -1
  54. package/dist/xstate-graph.umd.min.js.map +1 -1
  55. package/dist/xstate.cjs.js +1477 -122
  56. package/dist/xstate.cjs.mjs +19 -22
  57. package/dist/xstate.development.cjs.js +1477 -122
  58. package/dist/xstate.development.cjs.mjs +19 -22
  59. package/dist/xstate.development.esm.js +1442 -86
  60. package/dist/xstate.esm.js +1442 -86
  61. package/dist/xstate.umd.min.js +1 -1
  62. package/dist/xstate.umd.min.js.map +1 -1
  63. package/package.json +3 -47
  64. package/dist/StateMachine-23c204bb.development.esm.js +0 -566
  65. package/dist/StateMachine-67a0f463.development.cjs.js +0 -569
  66. package/dist/StateMachine-94d215e3.cjs.js +0 -563
  67. package/dist/StateMachine-d1d80308.esm.js +0 -560
  68. package/dist/assign-43b1b558.development.esm.js +0 -133
  69. package/dist/assign-54b312bc.esm.js +0 -127
  70. package/dist/assign-b5bc78f7.cjs.js +0 -129
  71. package/dist/assign-f8f66278.development.cjs.js +0 -135
  72. package/dist/declarations/src/actions/assign.d.ts +0 -45
  73. package/dist/declarations/src/actions/cancel.d.ts +0 -39
  74. package/dist/declarations/src/actions/emit.d.ts +0 -44
  75. package/dist/declarations/src/actions/enqueueActions.d.ts +0 -57
  76. package/dist/declarations/src/actions/log.d.ts +0 -16
  77. package/dist/declarations/src/actions/raise.d.ts +0 -21
  78. package/dist/declarations/src/actions/send.d.ts +0 -42
  79. package/dist/declarations/src/actions/spawnChild.d.ts +0 -34
  80. package/dist/declarations/src/actions/stopChild.d.ts +0 -19
  81. package/dist/declarations/src/actors/transition.d.ts +0 -143
  82. package/dist/declarations/src/dev/index.d.ts +0 -14
  83. package/dist/declarations/src/guards.d.ts +0 -128
  84. package/dist/log-9b02c355.esm.js +0 -401
  85. package/dist/log-c94995c7.cjs.js +0 -409
  86. package/dist/log-d9f3f459.development.cjs.js +0 -437
  87. package/dist/log-db444cad.development.esm.js +0 -429
  88. package/dist/raise-235108c6.esm.js +0 -2762
  89. package/dist/raise-45f11c00.development.esm.js +0 -2824
  90. package/dist/raise-c445379d.cjs.js +0 -2817
  91. package/dist/raise-eca73993.development.cjs.js +0 -2879
  92. package/dist/xstate-actions.cjs.d.mts +0 -2
  93. package/dist/xstate-actions.cjs.d.ts +0 -2
  94. package/dist/xstate-actions.cjs.js +0 -23
  95. package/dist/xstate-actions.cjs.mjs +0 -14
  96. package/dist/xstate-actions.development.cjs.js +0 -23
  97. package/dist/xstate-actions.development.cjs.mjs +0 -14
  98. package/dist/xstate-actions.development.esm.js +0 -4
  99. package/dist/xstate-actions.esm.js +0 -4
  100. package/dist/xstate-actions.umd.min.js +0 -2
  101. package/dist/xstate-actions.umd.min.js.map +0 -1
  102. package/dist/xstate-dev.cjs.d.mts +0 -2
  103. package/dist/xstate-dev.cjs.d.ts +0 -2
  104. package/dist/xstate-dev.cjs.js +0 -48
  105. package/dist/xstate-dev.cjs.mjs +0 -5
  106. package/dist/xstate-dev.development.cjs.js +0 -51
  107. package/dist/xstate-dev.development.cjs.mjs +0 -5
  108. package/dist/xstate-dev.development.esm.js +0 -45
  109. package/dist/xstate-dev.esm.js +0 -42
  110. package/dist/xstate-dev.umd.min.js +0 -2
  111. package/dist/xstate-dev.umd.min.js.map +0 -1
  112. package/dist/xstate-guards.cjs.d.mts +0 -2
  113. package/dist/xstate-guards.cjs.d.ts +0 -2
  114. package/dist/xstate-guards.cjs.js +0 -14
  115. package/dist/xstate-guards.cjs.mjs +0 -7
  116. package/dist/xstate-guards.development.cjs.js +0 -14
  117. package/dist/xstate-guards.development.cjs.mjs +0 -7
  118. package/dist/xstate-guards.development.esm.js +0 -2
  119. package/dist/xstate-guards.esm.js +0 -2
  120. package/dist/xstate-guards.umd.min.js +0 -2
  121. 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-94d215e3.cjs.js');
7
- var dist_xstateGuards = require('./raise-c445379d.cjs.js');
8
- require('./xstate-dev.cjs.js');
9
- require('./assign-b5bc78f7.cjs.js');
5
+ var dist_xstateActors = require('./index-559ceab3.cjs.js');
6
+ var StateMachine = require('./StateMachine-aef700df.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-67a0f463.development.cjs.js');
7
- var dist_xstateGuards = require('./raise-eca73993.development.cjs.js');
8
- require('./xstate-dev.development.cjs.js');
9
- require('./assign-f8f66278.development.cjs.js');
5
+ var dist_xstateActors = require('./index-219cb621.development.cjs.js');
6
+ var StateMachine = require('./StateMachine-da872dde.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-23c204bb.development.esm.js';
3
- import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-45f11c00.development.esm.js';
4
- import './xstate-dev.development.esm.js';
5
- import './assign-43b1b558.development.esm.js';
1
+ import { e as isMachineSnapshot, h as getAllOwnEventDescriptors, q as createEmptyActor, _ as XSTATE_INIT } from './index-2f2fbd9b.development.esm.js';
2
+ import { S as StateMachine } from './StateMachine-0aa98f54.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-d1d80308.esm.js';
3
- import { l as isMachineSnapshot, q as getAllOwnEventDescriptors } from './raise-235108c6.esm.js';
4
- import './xstate-dev.esm.js';
5
- import './assign-54b312bc.esm.js';
1
+ import { e as isMachineSnapshot, h as getAllOwnEventDescriptors, q as createEmptyActor, _ as XSTATE_INIT } from './index-8828376f.esm.js';
2
+ import { S as StateMachine } from './StateMachine-d4931336.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,