@typeonce/effect-machine 0.16.0 → 0.18.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 (68) hide show
  1. package/README.md +157 -150
  2. package/dist/Machine.d.ts +416 -592
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +55 -136
  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/invocation.d.ts.map +1 -1
  17. package/dist/internal/machine/invocation.js +1 -1
  18. package/dist/internal/machine/invocation.js.map +1 -1
  19. package/dist/internal/machine/machine.d.ts +8 -6
  20. package/dist/internal/machine/machine.d.ts.map +1 -1
  21. package/dist/internal/machine/machine.js +239 -35
  22. package/dist/internal/machine/machine.js.map +1 -1
  23. package/dist/internal/machine/planner.d.ts +19 -4
  24. package/dist/internal/machine/planner.d.ts.map +1 -1
  25. package/dist/internal/machine/planner.js +56 -20
  26. package/dist/internal/machine/planner.js.map +1 -1
  27. package/dist/internal/machine/stateDefinition.d.ts.map +1 -1
  28. package/dist/internal/machine/stateDefinition.js +14 -0
  29. package/dist/internal/machine/stateDefinition.js.map +1 -1
  30. package/dist/internal/machine/topology.d.ts +9 -0
  31. package/dist/internal/machine/topology.d.ts.map +1 -1
  32. package/dist/internal/machine/topology.js +16 -0
  33. package/dist/internal/machine/topology.js.map +1 -1
  34. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -1
  35. package/dist/internal/testing/machine/finiteModel.js +15 -20
  36. package/dist/internal/testing/machine/finiteModel.js.map +1 -1
  37. package/dist/internal/testing/machine/transitionCoverage.d.ts.map +1 -1
  38. package/dist/internal/testing/machine/transitionCoverage.js +2 -0
  39. package/dist/internal/testing/machine/transitionCoverage.js.map +1 -1
  40. package/dist/testing/MachineTest.d.ts +15 -15
  41. package/dist/testing/MachineTest.d.ts.map +1 -1
  42. package/dist/testing/MachineTest.js +5 -8
  43. package/dist/testing/MachineTest.js.map +1 -1
  44. package/dist/unstable/cluster/ClusterMachine.d.ts +2 -2
  45. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -1
  46. package/dist/unstable/cluster/ClusterMachine.js.map +1 -1
  47. package/dist/unstable/reactivity/AtomMachine.d.ts +13 -13
  48. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
  49. package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
  50. package/docs/agent-guide.md +229 -193
  51. package/package.json +1 -1
  52. package/src/Machine.ts +1686 -2234
  53. package/src/internal/machine/atom.ts +20 -15
  54. package/src/internal/machine/cluster.ts +14 -9
  55. package/src/internal/machine/executionPlan.ts +8 -3
  56. package/src/internal/machine/invocation.ts +1 -1
  57. package/src/internal/machine/machine.ts +365 -48
  58. package/src/internal/machine/planner.ts +89 -27
  59. package/src/internal/machine/stateDefinition.ts +39 -0
  60. package/src/internal/machine/topology.ts +28 -0
  61. package/src/internal/testing/machine/exploration.ts +1 -1
  62. package/src/internal/testing/machine/finiteModel.ts +18 -21
  63. package/src/internal/testing/machine/trace.ts +1 -1
  64. package/src/internal/testing/machine/transitionCoverage.ts +2 -0
  65. package/src/internal/testing/machine/verification.ts +1 -1
  66. package/src/testing/MachineTest.ts +18 -15
  67. package/src/unstable/cluster/ClusterMachine.ts +8 -4
  68. package/src/unstable/reactivity/AtomMachine.ts +20 -13
@@ -342,7 +342,8 @@ export const make: <
342
342
  Output,
343
343
  Emits extends ReadonlyArray<Machine.Machine.TaggedSchema>,
344
344
  OutputStates extends Machine.Machine.StateIdentifier<States>,
345
- InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events
345
+ InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events,
346
+ ParentEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = readonly []
346
347
  >(
347
348
  type: Type,
348
349
  machine:
@@ -359,9 +360,11 @@ export const make: <
359
360
  Output,
360
361
  Emits,
361
362
  OutputStates,
362
- InputEvents
363
+ InputEvents,
364
+ ParentEvents
363
365
  >
364
- & EnsureExecutable<States, UnhandledStates, OutputStates>,
366
+ & EnsureExecutable<States, UnhandledStates, OutputStates>
367
+ & Machine.Machine.RootCompatible<ParentEvents>,
365
368
  options: {
366
369
  readonly version: string
367
370
  },
@@ -381,7 +384,8 @@ export const make: <
381
384
  Output,
382
385
  Emits,
383
386
  OutputStates,
384
- InputEvents
387
+ InputEvents,
388
+ ParentEvents
385
389
  >,
386
390
  | ExcludeCompatibleRuntime<
387
391
  Machine.ExecutionServices<R | InitialR>,
@@ -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
 
@@ -579,7 +582,7 @@ type EnsureMachineExecutable<M extends Machine.Machine.Any> = IsAny<Machine.Mach
579
582
  >
580
583
 
581
584
  type MachineInputArgsOf<M extends Machine.Machine.Any> = [
582
- ...Machine.Machine.InputArgs<Machine.Machine.Input<M>>
585
+ ...Machine.Machine.InputArgs<Machine.Machine.InputSchema<M>>
583
586
  ]
584
587
 
585
588
  type MachineAtomOf<M extends Machine.Machine.Any, RuntimeError> = MachineAtom<
@@ -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