@typeonce/effect-machine 0.16.0 → 0.17.0

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 (61) hide show
  1. package/README.md +98 -106
  2. package/dist/Machine.d.ts +324 -367
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +61 -96
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/atom.d.ts +7 -7
  7. package/dist/internal/machine/atom.d.ts.map +1 -1
  8. package/dist/internal/machine/atom.js.map +1 -1
  9. package/dist/internal/machine/cluster.d.ts +2 -2
  10. package/dist/internal/machine/cluster.d.ts.map +1 -1
  11. package/dist/internal/machine/cluster.js +6 -5
  12. package/dist/internal/machine/cluster.js.map +1 -1
  13. package/dist/internal/machine/executionPlan.d.ts.map +1 -1
  14. package/dist/internal/machine/executionPlan.js +10 -3
  15. package/dist/internal/machine/executionPlan.js.map +1 -1
  16. package/dist/internal/machine/machine.d.ts +8 -6
  17. package/dist/internal/machine/machine.d.ts.map +1 -1
  18. package/dist/internal/machine/machine.js +191 -25
  19. package/dist/internal/machine/machine.js.map +1 -1
  20. package/dist/internal/machine/planner.d.ts +19 -4
  21. package/dist/internal/machine/planner.d.ts.map +1 -1
  22. package/dist/internal/machine/planner.js +56 -20
  23. package/dist/internal/machine/planner.js.map +1 -1
  24. package/dist/internal/machine/stateDefinition.d.ts.map +1 -1
  25. package/dist/internal/machine/stateDefinition.js +14 -0
  26. package/dist/internal/machine/stateDefinition.js.map +1 -1
  27. package/dist/internal/machine/topology.d.ts +9 -0
  28. package/dist/internal/machine/topology.d.ts.map +1 -1
  29. package/dist/internal/machine/topology.js +16 -0
  30. package/dist/internal/machine/topology.js.map +1 -1
  31. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -1
  32. package/dist/internal/testing/machine/finiteModel.js +15 -20
  33. package/dist/internal/testing/machine/finiteModel.js.map +1 -1
  34. package/dist/internal/testing/machine/transitionCoverage.d.ts.map +1 -1
  35. package/dist/internal/testing/machine/transitionCoverage.js +2 -0
  36. package/dist/internal/testing/machine/transitionCoverage.js.map +1 -1
  37. package/dist/testing/MachineTest.d.ts +11 -11
  38. package/dist/testing/MachineTest.d.ts.map +1 -1
  39. package/dist/testing/MachineTest.js +5 -8
  40. package/dist/testing/MachineTest.js.map +1 -1
  41. package/dist/unstable/cluster/ClusterMachine.d.ts +2 -2
  42. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -1
  43. package/dist/unstable/cluster/ClusterMachine.js.map +1 -1
  44. package/dist/unstable/reactivity/AtomMachine.d.ts +12 -12
  45. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
  46. package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
  47. package/docs/agent-guide.md +144 -147
  48. package/package.json +1 -1
  49. package/src/Machine.ts +1118 -1178
  50. package/src/internal/machine/atom.ts +20 -15
  51. package/src/internal/machine/cluster.ts +14 -9
  52. package/src/internal/machine/executionPlan.ts +8 -3
  53. package/src/internal/machine/machine.ts +301 -40
  54. package/src/internal/machine/planner.ts +89 -27
  55. package/src/internal/machine/stateDefinition.ts +39 -0
  56. package/src/internal/machine/topology.ts +28 -0
  57. package/src/internal/testing/machine/finiteModel.ts +18 -21
  58. package/src/internal/testing/machine/transitionCoverage.ts +2 -0
  59. package/src/testing/MachineTest.ts +14 -11
  60. package/src/unstable/cluster/ClusterMachine.ts +8 -4
  61. package/src/unstable/reactivity/AtomMachine.ts +19 -12
@@ -159,11 +159,11 @@ export interface MachineAtom<State, Event, Error = never, Output = never, StartE
159
159
  ) => ChildMachineAtom<Child, StartError>
160
160
  }
161
161
 
162
- type RefState<Ref> = Ref extends Machine.MachineRef<infer State, any, any, any> ? State : never
162
+ type RefState<Ref> = Ref extends Machine.MachineRef<infer State, any, any, any, any> ? State : never
163
163
 
164
- type RefError<Ref> = Ref extends Machine.MachineRef<any, any, infer Error, any> ? Error : never
164
+ type RefError<Ref> = Ref extends Machine.MachineRef<any, any, infer Error, any, any> ? Error : never
165
165
 
166
- type RefOutput<Ref> = Ref extends Machine.MachineRef<any, any, any, infer Output> ? Output : never
166
+ type RefOutput<Ref> = Ref extends Machine.MachineRef<any, any, any, infer Output, any> ? Output : never
167
167
  type RefEmitted<Ref> = Ref extends Machine.MachineRef<any, any, any, any, infer Emitted> ? Emitted : never
168
168
 
169
169
  /**
@@ -305,7 +305,7 @@ export interface ChildMachineAtom<Child extends Machine.ChildMachine.Any, StartE
305
305
  ) => ChildMachineAtom<Nested, StartError>
306
306
  }
307
307
 
308
- type BridgeStartError<Bridge> = Bridge extends MachineAtom<any, any, any, any, infer StartError> ? StartError
308
+ type BridgeStartError<Bridge> = Bridge extends MachineAtom<any, never, any, any, infer StartError, any> ? StartError
309
309
  : Bridge extends ChildMachineAtom<any, infer StartError> ? StartError
310
310
  : never
311
311
 
@@ -317,7 +317,7 @@ type BridgeStartError<Bridge> = Bridge extends MachineAtom<any, any, any, any, i
317
317
  * @since 0.4.0
318
318
  */
319
319
  export type ChildOf<
320
- Parent extends MachineAtom<any, any, any, any, any> | ChildMachineAtom<any, any>,
320
+ Parent extends MachineAtom<any, never, any, any, any, any> | ChildMachineAtom<any, any>,
321
321
  Child extends Machine.ChildMachine.Any
322
322
  > = ChildMachineAtom<Child, BridgeStartError<Parent>>
323
323
 
@@ -389,8 +389,9 @@ export const select: <
389
389
  Error,
390
390
  Output,
391
391
  StartError,
392
+ Emitted,
392
393
  const Path extends ValuedSnapshotIdentifier<State>
393
- >(self: MachineAtom<State, Event, Error, Output, StartError>, path: Path) => Atom.Atom<
394
+ >(self: MachineAtom<State, Event, Error, Output, StartError, Emitted>, path: Path) => Atom.Atom<
394
395
  AsyncResult.AsyncResult<Option.Option<SnapshotValueByIdentifier<State, Path>>, StartError | Error>
395
396
  > = internal.select
396
397
 
@@ -410,8 +411,9 @@ export const selectSnapshot: <
410
411
  Error,
411
412
  Output,
412
413
  StartError,
414
+ Emitted,
413
415
  const Path extends SnapshotIdentifier<State>
414
- >(self: MachineAtom<State, Event, Error, Output, StartError>, path: Path) => Atom.Atom<
416
+ >(self: MachineAtom<State, Event, Error, Output, StartError, Emitted>, path: Path) => Atom.Atom<
415
417
  AsyncResult.AsyncResult<Option.Option<SnapshotByIdentifier<State, Path>>, StartError | Error>
416
418
  > = internal.selectSnapshot
417
419
 
@@ -503,9 +505,10 @@ export const matches: <
503
505
  Error,
504
506
  Output,
505
507
  StartError,
508
+ Emitted,
506
509
  const Path extends SnapshotIdentifier<State>
507
510
  >(
508
- self: MachineAtom<State, Event, Error, Output, StartError>,
511
+ self: MachineAtom<State, Event, Error, Output, StartError, Emitted>,
509
512
  path: Path
510
513
  ) => Atom.Atom<AsyncResult.AsyncResult<boolean, StartError | Error>> = internal.matches
511
514
 
@@ -625,7 +628,8 @@ export interface Bound<Services, RuntimeError = never> {
625
628
  machine:
626
629
  & M
627
630
  & EnsureBoundRequirements<Services, NoInfer<M>>
628
- & EnsureMachineExecutable<NoInfer<M>>,
631
+ & EnsureMachineExecutable<NoInfer<M>>
632
+ & Machine.Machine.RootCompatible<Machine.Machine.ParentEvents<NoInfer<M>>>,
629
633
  ...args: MachineInputArgsOf<M>
630
634
  ) => MachineAtomOf<M, RuntimeError>
631
635
 
@@ -634,7 +638,8 @@ export interface Bound<Services, RuntimeError = never> {
634
638
  machine:
635
639
  & M
636
640
  & EnsureBoundResumeRequirements<Services, NoInfer<M>>
637
- & EnsureMachineExecutable<NoInfer<M>>,
641
+ & EnsureMachineExecutable<NoInfer<M>>
642
+ & Machine.Machine.RootCompatible<Machine.Machine.ParentEvents<NoInfer<M>>>,
638
643
  snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>
639
644
  ) => ResumedMachineAtomOf<M, RuntimeError>
640
645
  }
@@ -711,7 +716,8 @@ export const make: {
711
716
  Machine.Machine.EmitOf<Emits>
712
717
  >
713
718
  >
714
- & EnsureExecutable<States, UnhandledStates, OutputStates>,
719
+ & EnsureExecutable<States, UnhandledStates, OutputStates>
720
+ & Machine.Machine.RootCompatible<ParentEvents>,
715
721
  ...args: [...Machine.Machine.InputArgs<Input>]
716
722
  ): MachineAtom<
717
723
  Machine.Machine.Snapshot<States>,
@@ -738,7 +744,8 @@ export const resume: {
738
744
  machine:
739
745
  & M
740
746
  & EnsureNoExternalRequirements<MachineResumeRequirementsOf<NoInfer<M>>>
741
- & EnsureMachineExecutable<NoInfer<M>>,
747
+ & EnsureMachineExecutable<NoInfer<M>>
748
+ & Machine.Machine.RootCompatible<Machine.Machine.ParentEvents<NoInfer<M>>>,
742
749
  snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>
743
750
  ): ResumedMachineAtomOf<M, never>
744
751
  } = internal.resume