@typeonce/effect-machine 0.3.0 → 0.5.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 (170) hide show
  1. package/README.md +410 -17
  2. package/dist/Machine.d.ts +1191 -510
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +371 -565
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/activities.d.ts +57 -0
  7. package/dist/internal/machine/activities.d.ts.map +1 -0
  8. package/dist/internal/machine/activities.js +49 -0
  9. package/dist/internal/machine/activities.js.map +1 -0
  10. package/dist/internal/machine/atom.d.ts +69 -0
  11. package/dist/internal/machine/atom.d.ts.map +1 -0
  12. package/dist/{AtomMachine.js → internal/machine/atom.js} +20 -95
  13. package/dist/internal/machine/atom.js.map +1 -0
  14. package/dist/internal/machine/cluster.d.ts +63 -0
  15. package/dist/internal/machine/cluster.d.ts.map +1 -0
  16. package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
  17. package/dist/internal/machine/cluster.js.map +1 -0
  18. package/dist/internal/machine/command.d.ts +16 -0
  19. package/dist/internal/machine/command.d.ts.map +1 -0
  20. package/dist/internal/machine/command.js +45 -0
  21. package/dist/internal/machine/command.js.map +1 -0
  22. package/dist/internal/machine/commandRuntime.d.ts +13 -0
  23. package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
  24. package/dist/internal/machine/commandRuntime.js +16 -0
  25. package/dist/internal/machine/commandRuntime.js.map +1 -0
  26. package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +12 -61
  27. package/dist/internal/machine/configuration.d.ts.map +1 -0
  28. package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
  29. package/dist/internal/machine/configuration.js.map +1 -0
  30. package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
  31. package/dist/internal/machine/errors.d.ts.map +1 -0
  32. package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
  33. package/dist/internal/machine/errors.js.map +1 -0
  34. package/dist/internal/machine/executionPlan.d.ts +49 -0
  35. package/dist/internal/machine/executionPlan.d.ts.map +1 -0
  36. package/dist/internal/machine/executionPlan.js +676 -0
  37. package/dist/internal/machine/executionPlan.js.map +1 -0
  38. package/dist/internal/machine/invocation.d.ts +23 -0
  39. package/dist/internal/machine/invocation.d.ts.map +1 -0
  40. package/dist/internal/machine/invocation.js +77 -0
  41. package/dist/internal/machine/invocation.js.map +1 -0
  42. package/dist/internal/machine/machine.d.ts +183 -0
  43. package/dist/internal/machine/machine.d.ts.map +1 -0
  44. package/dist/internal/machine/machine.js +552 -0
  45. package/dist/internal/machine/machine.js.map +1 -0
  46. package/dist/internal/machine/planner.d.ts +182 -0
  47. package/dist/internal/machine/planner.d.ts.map +1 -0
  48. package/dist/internal/machine/planner.js +1082 -0
  49. package/dist/internal/machine/planner.js.map +1 -0
  50. package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +11 -5
  51. package/dist/internal/machine/process.d.ts.map +1 -0
  52. package/dist/internal/machine/process.js +498 -0
  53. package/dist/internal/machine/process.js.map +1 -0
  54. package/dist/internal/machine/protocol.d.ts +34 -0
  55. package/dist/internal/machine/protocol.d.ts.map +1 -0
  56. package/dist/internal/machine/protocol.js +182 -0
  57. package/dist/internal/machine/protocol.js.map +1 -0
  58. package/dist/internal/machine/readiness.d.ts +4 -0
  59. package/dist/internal/machine/readiness.d.ts.map +1 -0
  60. package/dist/internal/machine/readiness.js +2 -0
  61. package/dist/internal/machine/readiness.js.map +1 -0
  62. package/dist/internal/machine/runtime.d.ts +255 -0
  63. package/dist/internal/machine/runtime.d.ts.map +1 -0
  64. package/dist/internal/machine/runtime.js +1489 -0
  65. package/dist/internal/machine/runtime.js.map +1 -0
  66. package/dist/internal/machine/serialization.d.ts +14 -0
  67. package/dist/internal/machine/serialization.d.ts.map +1 -0
  68. package/dist/internal/machine/serialization.js +338 -0
  69. package/dist/internal/machine/serialization.js.map +1 -0
  70. package/dist/internal/machine/stateDefinition.d.ts +15 -0
  71. package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
  72. package/dist/internal/machine/stateDefinition.js +210 -0
  73. package/dist/internal/machine/stateDefinition.js.map +1 -0
  74. package/dist/internal/machine/symbols.d.ts +3 -0
  75. package/dist/internal/machine/symbols.d.ts.map +1 -0
  76. package/dist/internal/machine/symbols.js +3 -0
  77. package/dist/internal/machine/symbols.js.map +1 -0
  78. package/dist/internal/machine/topology.d.ts +98 -0
  79. package/dist/internal/machine/topology.d.ts.map +1 -0
  80. package/dist/internal/machine/topology.js +347 -0
  81. package/dist/internal/machine/topology.js.map +1 -0
  82. package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
  83. package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
  84. package/dist/internal/testing/machine/arbitrary.js +68 -0
  85. package/dist/internal/testing/machine/arbitrary.js.map +1 -0
  86. package/dist/internal/testing/machine/exploration.d.ts +30 -0
  87. package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
  88. package/dist/internal/testing/machine/exploration.js +237 -0
  89. package/dist/internal/testing/machine/exploration.js.map +1 -0
  90. package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
  91. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
  92. package/dist/internal/testing/machine/finiteModel.js +976 -0
  93. package/dist/internal/testing/machine/finiteModel.js.map +1 -0
  94. package/dist/internal/testing/machine/invariant.d.ts +31 -0
  95. package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
  96. package/dist/internal/testing/machine/invariant.js +214 -0
  97. package/dist/internal/testing/machine/invariant.js.map +1 -0
  98. package/dist/internal/testing/machine/probe.d.ts +26 -0
  99. package/dist/internal/testing/machine/probe.d.ts.map +1 -0
  100. package/dist/internal/testing/machine/probe.js +45 -0
  101. package/dist/internal/testing/machine/probe.js.map +1 -0
  102. package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
  103. package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
  104. package/dist/internal/testing/machine/referenceModel.js +1012 -0
  105. package/dist/internal/testing/machine/referenceModel.js.map +1 -0
  106. package/dist/internal/testing/machine/runtime.d.ts +631 -0
  107. package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
  108. package/dist/internal/testing/machine/runtime.js +726 -0
  109. package/dist/internal/testing/machine/runtime.js.map +1 -0
  110. package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
  111. package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
  112. package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
  113. package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
  114. package/dist/internal/testing/machine/trace.d.ts +17 -0
  115. package/dist/internal/testing/machine/trace.d.ts.map +1 -0
  116. package/dist/internal/testing/machine/trace.js +94 -0
  117. package/dist/internal/testing/machine/trace.js.map +1 -0
  118. package/dist/internal/testing/machine/verification.d.ts +36 -0
  119. package/dist/internal/testing/machine/verification.d.ts.map +1 -0
  120. package/dist/internal/testing/machine/verification.js +1375 -0
  121. package/dist/internal/testing/machine/verification.js.map +1 -0
  122. package/dist/testing/MachineTest.d.ts +1588 -0
  123. package/dist/testing/MachineTest.d.ts.map +1 -0
  124. package/dist/testing/MachineTest.js +406 -0
  125. package/dist/testing/MachineTest.js.map +1 -0
  126. package/dist/testing/index.d.ts +7 -0
  127. package/dist/testing/index.d.ts.map +1 -0
  128. package/dist/testing/index.js +7 -0
  129. package/dist/testing/index.js.map +1 -0
  130. package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +56 -45
  131. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
  132. package/dist/unstable/cluster/ClusterMachine.js +144 -0
  133. package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
  134. package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
  135. package/dist/unstable/cluster/index.d.ts.map +1 -0
  136. package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
  137. package/dist/unstable/cluster/index.js.map +1 -0
  138. package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +116 -50
  139. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
  140. package/dist/unstable/reactivity/AtomMachine.js +164 -0
  141. package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
  142. package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
  143. package/dist/unstable/reactivity/index.d.ts.map +1 -0
  144. package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
  145. package/dist/unstable/reactivity/index.js.map +1 -0
  146. package/docs/agent-guide.md +316 -31
  147. package/package.json +28 -10
  148. package/dist/AtomMachine.d.ts.map +0 -1
  149. package/dist/AtomMachine.js.map +0 -1
  150. package/dist/ClusterMachine.d.ts.map +0 -1
  151. package/dist/ClusterMachine.js.map +0 -1
  152. package/dist/cluster.d.ts.map +0 -1
  153. package/dist/cluster.js.map +0 -1
  154. package/dist/internal/machineErrors.d.ts.map +0 -1
  155. package/dist/internal/machineErrors.js.map +0 -1
  156. package/dist/internal/machineModel.d.ts.map +0 -1
  157. package/dist/internal/machineModel.js.map +0 -1
  158. package/dist/internal/machinePlanner.d.ts +0 -74
  159. package/dist/internal/machinePlanner.d.ts.map +0 -1
  160. package/dist/internal/machinePlanner.js +0 -797
  161. package/dist/internal/machinePlanner.js.map +0 -1
  162. package/dist/internal/machineProcess.d.ts.map +0 -1
  163. package/dist/internal/machineProcess.js +0 -181
  164. package/dist/internal/machineProcess.js.map +0 -1
  165. package/dist/internal/machineRuntime.d.ts +0 -125
  166. package/dist/internal/machineRuntime.d.ts.map +0 -1
  167. package/dist/internal/machineRuntime.js +0 -365
  168. package/dist/internal/machineRuntime.js.map +0 -1
  169. package/dist/reactivity.d.ts.map +0 -1
  170. package/dist/reactivity.js.map +0 -1
@@ -1,37 +1,29 @@
1
1
  /**
2
2
  * Atom bridge for running machines.
3
3
  *
4
- * @since 4.0.0
4
+ * @since 0.4.0
5
5
  */
6
- import * as Option from "effect/Option";
6
+ import type * as Option from "effect/Option";
7
7
  import type * as Schema from "effect/Schema";
8
8
  import type * as Scope from "effect/Scope";
9
- import { AsyncResult, Atom, type AtomRegistry } from "effect/unstable/reactivity";
10
- import * as Machine from "./Machine.js";
11
- declare const NotReadyError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
12
- readonly _tag: "NotReadyError";
13
- } & Readonly<A>;
9
+ import type { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
10
+ import type { ChildNotActiveError, NotReadyError } from "../../internal/machine/atom.js";
11
+ import type { EnsureExecutable } from "../../internal/machine/readiness.js";
12
+ import type * as Machine from "../../Machine.js";
14
13
  /**
15
14
  * Error returned when a machine command is issued before startup completes.
16
15
  *
17
16
  * @category errors
18
- * @since 4.0.0
17
+ * @since 0.4.0
19
18
  */
20
- export declare class NotReadyError extends NotReadyError_base {
21
- }
22
- declare const ChildNotActiveError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
23
- readonly _tag: "ChildNotActiveError";
24
- } & Readonly<A>;
19
+ export { NotReadyError } from "../../internal/machine/atom.js";
25
20
  /**
26
21
  * Error returned when a command targets a child machine that is not active.
27
22
  *
28
23
  * @category errors
29
- * @since 4.0.0
24
+ * @since 0.4.0
30
25
  */
31
- export declare class ChildNotActiveError extends ChildNotActiveError_base<{
32
- readonly id: string;
33
- }> {
34
- }
26
+ export { ChildNotActiveError } from "../../internal/machine/atom.js";
35
27
  type AtomSupportedRequirements = Scope.Scope | AtomRegistry.AtomRegistry;
36
28
  type ExternalRequirements<Requirements> = Exclude<Requirements, AtomSupportedRequirements>;
37
29
  declare const ExternalRequirementsTypeId = "~effect/reactivity/AtomMachine/ExternalRequirements";
@@ -41,6 +33,7 @@ type EnsureNoExternalRequirements<Requirements> = [ExternalRequirements<Requirem
41
33
  type IsAny<A> = 0 extends (1 & A) ? true : false;
42
34
  type ExcludeCompatibleMachineRuntime<Requirements, Events, Emits> = Requirements extends Machine.Runtime.Requirement<infer RequiredEvents, infer RequiredEmits> ? IsAny<Requirements> extends true ? Requirements : [RequiredEvents] extends [Events] ? [RequiredEmits] extends [Emits] ? never : Requirements : Requirements : Requirements;
43
35
  type MachineRequirements<InitialR, R, Events, Emits> = ExcludeCompatibleMachineRuntime<Machine.ExecutionServices<InitialR | R>, Events, Emits>;
36
+ type MachineResumeRequirements<R, Events, Emits> = ExcludeCompatibleMachineRuntime<Machine.ExecutionServices<R>, Events, Emits>;
44
37
  type MachineRuntimeError<E, R> = E | Machine.ActionError<R> | Machine.InfiniteTransitionError | Machine.MachineSchemaDecodeError | Machine.StoppedError;
45
38
  type MachineStartError<InitialE, E, InitialR, R, RuntimeError = never> = InitialE | E | Machine.ActionError<InitialR | R> | Machine.InfiniteTransitionError | Machine.MachineSchemaDecodeError | Machine.StartupError | Machine.StoppedError | RuntimeError;
46
39
  /**
@@ -53,19 +46,19 @@ type MachineStartError<InitialE, E, InitialR, R, RuntimeError = never> = Initial
53
46
  * same atom values share one running machine per registry.
54
47
  *
55
48
  * @category models
56
- * @since 4.0.0
49
+ * @since 0.4.0
57
50
  */
58
51
  export interface MachineAtom<State, Event, Error = never, Output = never, StartError = never> {
59
52
  /**
60
53
  * Atom containing the running machine handle once startup succeeds.
61
54
  *
62
- * @since 4.0.0
55
+ * @since 0.4.0
63
56
  */
64
57
  readonly ref: Atom.Atom<AsyncResult.AsyncResult<Machine.MachineRef<State, Event, Error, Output>, StartError>>;
65
58
  /**
66
59
  * Atom containing the latest machine lifecycle snapshot.
67
60
  *
68
- * @since 4.0.0
61
+ * @since 0.4.0
69
62
  */
70
63
  readonly snapshot: Atom.Atom<AsyncResult.AsyncResult<Machine.RuntimeSnapshot<State, Error, Output>, StartError>>;
71
64
  /**
@@ -75,28 +68,28 @@ export interface MachineAtom<State, Event, Error = never, Output = never, StartE
75
68
  * runtime snapshot reports a terminal error. Use `result` when runtime
76
69
  * failures must be represented in the atom failure channel.
77
70
  *
78
- * @since 4.0.0
71
+ * @since 0.4.0
79
72
  */
80
73
  readonly state: Atom.Atom<AsyncResult.AsyncResult<State, StartError>>;
81
74
  /**
82
75
  * Atom containing the current state, with startup and runtime failures in
83
76
  * one typed failure channel.
84
77
  *
85
- * @since 4.0.0
78
+ * @since 0.4.0
86
79
  */
87
80
  readonly result: Atom.Atom<AsyncResult.AsyncResult<State, StartError | Error>>;
88
81
  /**
89
82
  * Writable atom that sends events to the machine. Writes before startup
90
83
  * completes fail with `NotReadyError`.
91
84
  *
92
- * @since 4.0.0
85
+ * @since 0.4.0
93
86
  */
94
87
  readonly send: Atom.Writable<AsyncResult.AsyncResult<void, StartError | NotReadyError | Machine.StoppedError>, Event>;
95
88
  /**
96
89
  * Writable atom that stops the machine. Writes before startup completes fail
97
90
  * with `NotReadyError`.
98
91
  *
99
- * @since 4.0.0
92
+ * @since 0.4.0
100
93
  */
101
94
  readonly stop: Atom.Writable<AsyncResult.AsyncResult<void, StartError | NotReadyError>, void>;
102
95
  /**
@@ -104,7 +97,7 @@ export interface MachineAtom<State, Event, Error = never, Output = never, StartE
104
97
  * Reusing the same descriptor returns the same live bridge while it remains
105
98
  * referenced.
106
99
  *
107
- * @since 4.0.0
100
+ * @since 0.4.0
108
101
  */
109
102
  readonly child: <Child extends Machine.ChildMachine.Any>(child: Child) => ChildMachineAtom<Child, StartError>;
110
103
  }
@@ -126,19 +119,19 @@ type RefOutput<Ref> = Ref extends Machine.MachineRef<any, any, any, infer Output
126
119
  * machine invoked by the selected child.
127
120
  *
128
121
  * @category models
129
- * @since 4.0.0
122
+ * @since 0.4.0
130
123
  */
131
124
  export interface ChildMachineAtom<Child extends Machine.ChildMachine.Any, StartError = unknown> {
132
125
  /**
133
126
  * Atom containing the current child reference when the child is active.
134
127
  *
135
- * @since 4.0.0
128
+ * @since 0.4.0
136
129
  */
137
130
  readonly ref: Atom.Atom<AsyncResult.AsyncResult<Option.Option<Machine.ChildMachine.Ref<Child>>, StartError>>;
138
131
  /**
139
132
  * Atom containing the current child lifecycle snapshot when active.
140
133
  *
141
- * @since 4.0.0
134
+ * @since 0.4.0
142
135
  */
143
136
  readonly snapshot: Atom.Atom<AsyncResult.AsyncResult<Option.Option<Machine.RuntimeSnapshot<RefState<Machine.ChildMachine.Ref<Child>>, RefError<Machine.ChildMachine.Ref<Child>>, RefOutput<Machine.ChildMachine.Ref<Child>>>>, StartError>>;
144
137
  /**
@@ -147,14 +140,14 @@ export interface ChildMachineAtom<Child extends Machine.ChildMachine.Any, StartE
147
140
  * Runtime failures retain the last successful state. Use `result` when they
148
141
  * must be represented in the atom failure channel.
149
142
  *
150
- * @since 4.0.0
143
+ * @since 0.4.0
151
144
  */
152
145
  readonly state: Atom.Atom<AsyncResult.AsyncResult<Option.Option<RefState<Machine.ChildMachine.Ref<Child>>>, StartError>>;
153
146
  /**
154
147
  * Atom containing the current child state when active, with startup and
155
148
  * runtime failures in one typed failure channel.
156
149
  *
157
- * @since 4.0.0
150
+ * @since 0.4.0
158
151
  */
159
152
  readonly result: Atom.Atom<AsyncResult.AsyncResult<Option.Option<RefState<Machine.ChildMachine.Ref<Child>>>, StartError | RefError<Machine.ChildMachine.Ref<Child>>>>;
160
153
  /**
@@ -162,7 +155,7 @@ export interface ChildMachineAtom<Child extends Machine.ChildMachine.Any, StartE
162
155
  *
163
156
  * Writes fail with `ChildNotActiveError` while the child is inactive.
164
157
  *
165
- * @since 4.0.0
158
+ * @since 0.4.0
166
159
  */
167
160
  readonly send: Atom.Writable<AsyncResult.AsyncResult<void, StartError | NotReadyError | ChildNotActiveError | Machine.StoppedError>, Machine.ChildMachine.Event<Child>>;
168
161
  /**
@@ -170,14 +163,14 @@ export interface ChildMachineAtom<Child extends Machine.ChildMachine.Any, StartE
170
163
  *
171
164
  * Writes fail with `ChildNotActiveError` while the child is inactive.
172
165
  *
173
- * @since 4.0.0
166
+ * @since 0.4.0
174
167
  */
175
168
  readonly stop: Atom.Writable<AsyncResult.AsyncResult<void, StartError | NotReadyError | ChildNotActiveError>, void>;
176
169
  /**
177
170
  * Creates a reactive bridge for a directly owned nested child. Reusing the
178
171
  * same descriptor returns the same live bridge while it remains referenced.
179
172
  *
180
- * @since 4.0.0
173
+ * @since 0.4.0
181
174
  */
182
175
  readonly child: <Nested extends Machine.ChildMachine.Any>(child: Nested) => ChildMachineAtom<Nested, StartError>;
183
176
  }
@@ -187,7 +180,7 @@ type BridgeStartError<Bridge> = Bridge extends MachineAtom<any, any, any, any, i
187
180
  * descriptor.
188
181
  *
189
182
  * @category utility types
190
- * @since 4.0.0
183
+ * @since 0.4.0
191
184
  */
192
185
  export type ChildOf<Parent extends MachineAtom<any, any, any, any, any> | ChildMachineAtom<any, any>, Child extends Machine.ChildMachine.Any> = ChildMachineAtom<Child, BridgeStartError<Parent>>;
193
186
  type SnapshotNode<State> = State extends Machine.Machine.AtomicSnapshot<string, unknown> ? State | (State extends {
@@ -213,12 +206,26 @@ type ChildState<Child extends Machine.ChildMachine.Any> = RefState<Machine.Child
213
206
  * **Example**
214
207
  *
215
208
  * ```ts
216
- * const readyAtom = AtomMachine.select(machineAtom, "Ready")
217
- * // Atom<AsyncResult<Option<Ready>, StartError | RuntimeError>>
209
+ * import { Schema } from "effect"
210
+ * import { Machine } from "@typeonce/effect-machine"
211
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
212
+ *
213
+ * class Count extends Schema.TaggedClass<Count>("Count")("Count", {
214
+ * value: Schema.Number
215
+ * }) {}
216
+ * const States = Machine.defineStates({ Count })
217
+ * const machine = Machine.make({
218
+ * states: States.states,
219
+ * events: [],
220
+ * initial: () => States.initial.Count(new Count({ value: 0 }))
221
+ * }).handle({ Count: {} })
222
+ * const machineAtom = AtomMachine.make(machine)
223
+ *
224
+ * const countAtom = AtomMachine.select(machineAtom, "Count")
218
225
  * ```
219
226
  *
220
227
  * @category combinators
221
- * @since 4.0.0
228
+ * @since 0.4.0
222
229
  */
223
230
  export declare const select: <State extends Machine.Machine.AtomicSnapshot<string, unknown>, Event, Error, Output, StartError, const Path extends SnapshotIdentifier<State>>(self: MachineAtom<State, Event, Error, Output, StartError>, path: Path) => Atom.Atom<AsyncResult.AsyncResult<Option.Option<SnapshotValueByIdentifier<State, Path>>, StartError | Error>>;
224
231
  /**
@@ -236,7 +243,7 @@ export declare const select: <State extends Machine.Machine.AtomicSnapshot<strin
236
243
  * ```
237
244
  *
238
245
  * @category combinators
239
- * @since 4.0.0
246
+ * @since 0.4.0
240
247
  */
241
248
  export declare const selectChild: <Child extends Machine.ChildMachine.Any, StartError, const Path extends SnapshotIdentifier<ChildState<Child>>>(self: ChildMachineAtom<Child, StartError>, path: Path) => Atom.Atom<AsyncResult.AsyncResult<Option.Option<SnapshotValueByIdentifier<ChildState<Child>, Path>>, StartError | RefError<Machine.ChildMachine.Ref<Child>>>>;
242
249
  /**
@@ -246,8 +253,27 @@ export declare const selectChild: <Child extends Machine.ChildMachine.Any, Start
246
253
  * The derived atom suppresses equal updates. Runtime failures remain in the
247
254
  * typed failure channel.
248
255
  *
256
+ * **Example**
257
+ *
258
+ * ```ts
259
+ * import { Schema } from "effect"
260
+ * import { Machine } from "@typeonce/effect-machine"
261
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
262
+ *
263
+ * class Idle extends Schema.TaggedClass<Idle>("Idle")("Idle", {}) {}
264
+ * const States = Machine.defineStates({ Idle })
265
+ * const machine = Machine.make({
266
+ * states: States.states,
267
+ * events: [],
268
+ * initial: () => States.initial.Idle.from()
269
+ * }).handle({ Idle: {} })
270
+ * const machineAtom = AtomMachine.make(machine)
271
+ *
272
+ * const isIdleAtom = AtomMachine.matches(machineAtom, "Idle")
273
+ * ```
274
+ *
249
275
  * @category combinators
250
- * @since 4.0.0
276
+ * @since 0.4.0
251
277
  */
252
278
  export declare const matches: <State extends Machine.Machine.AtomicSnapshot<string, unknown>, Event, Error, Output, StartError, const Path extends SnapshotIdentifier<State>>(self: MachineAtom<State, Event, Error, Output, StartError>, path: Path) => Atom.Atom<AsyncResult.AsyncResult<boolean, StartError | Error>>;
253
279
  /**
@@ -258,7 +284,7 @@ export declare const matches: <State extends Machine.Machine.AtomicSnapshot<stri
258
284
  * constructing it inside a component.
259
285
  *
260
286
  * @category combinators
261
- * @since 4.0.0
287
+ * @since 0.4.0
262
288
  */
263
289
  export declare const matchesChild: <Child extends Machine.ChildMachine.Any, StartError, const Path extends SnapshotIdentifier<ChildState<Child>>>(self: ChildMachineAtom<Child, StartError>, path: Path) => Atom.Atom<AsyncResult.AsyncResult<boolean, StartError | RefError<Machine.ChildMachine.Ref<Child>>>>;
264
290
  declare const BoundRequirementsTypeId = "~effect/reactivity/AtomMachine/BoundRequirements";
@@ -269,18 +295,26 @@ type EnsureBoundRequirements<Services, M extends Machine.Machine.Any> = IsAny<Ma
269
295
  } : [MissingBoundRequirements<Services, M>] extends [never] ? unknown : {
270
296
  readonly [BoundRequirementsTypeId]: MissingBoundRequirements<Services, M>;
271
297
  };
272
- type EnsureMachineOutputImplementations<M extends Machine.Machine.Any> = IsAny<Machine.Machine.States<M>> extends true ? {
298
+ type MachineResumeRequirementsOf<M extends Machine.Machine.Any> = MachineResumeRequirements<Machine.Machine.Services<M>, Machine.Machine.Event<M>, Machine.Machine.Emit<M>>;
299
+ type MissingBoundResumeRequirements<Services, M extends Machine.Machine.Any> = Exclude<ExternalRequirements<MachineResumeRequirementsOf<M>>, Services>;
300
+ type EnsureBoundResumeRequirements<Services, M extends Machine.Machine.Any> = IsAny<MachineResumeRequirementsOf<M>> extends true ? {
301
+ readonly [BoundRequirementsTypeId]: MachineResumeRequirementsOf<M>;
302
+ } : [MissingBoundResumeRequirements<Services, M>] extends [never] ? unknown : {
303
+ readonly [BoundRequirementsTypeId]: MissingBoundResumeRequirements<Services, M>;
304
+ };
305
+ type EnsureMachineExecutable<M extends Machine.Machine.Any> = IsAny<Machine.Machine.States<M>> extends true ? {
273
306
  readonly "~effect/reactivity/AtomMachine/ConcreteMachineRequired": M;
274
- } : Machine.Machine.EnsureOutputImplementations<Machine.Machine.States<M>, Machine.Machine.OutputStates<M>>;
307
+ } : EnsureExecutable<Machine.Machine.States<M>, Machine.Machine.UnhandledStates<M>, Machine.Machine.OutputStates<M>>;
275
308
  type MachineInputArgsOf<M extends Machine.Machine.Any> = [
276
309
  ...Machine.Machine.InputArgs<Machine.Machine.Input<M>>
277
310
  ];
278
311
  type MachineAtomOf<M extends Machine.Machine.Any, RuntimeError> = MachineAtom<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Machine.Machine.InputEvent<M>, MachineRuntimeError<Machine.Machine.Error<M>, Machine.Machine.Services<M>>, Machine.Machine.Output<M>, MachineStartError<Machine.Machine.InitialError<M>, Machine.Machine.Error<M>, Machine.Machine.InitialServices<M>, Machine.Machine.Services<M>, RuntimeError>>;
312
+ type ResumedMachineAtomOf<M extends Machine.Machine.Any, RuntimeError> = MachineAtom<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Machine.Machine.InputEvent<M>, MachineRuntimeError<Machine.Machine.Error<M>, Machine.Machine.Services<M>>, Machine.Machine.Output<M>, Machine.MachineSchemaDecodeError | RuntimeError>;
279
313
  /**
280
314
  * An `AtomMachine` factory with one owned Effect runtime.
281
315
  *
282
316
  * @category models
283
- * @since 4.0.0
317
+ * @since 0.4.0
284
318
  */
285
319
  export interface Bound<Services, RuntimeError = never> {
286
320
  /**
@@ -289,9 +323,11 @@ export interface Bound<Services, RuntimeError = never> {
289
323
  * The machine's external service requirements must be provided by the
290
324
  * runtime. Machine-native runtime requirements are supplied automatically.
291
325
  *
292
- * @since 4.0.0
326
+ * @since 0.4.0
293
327
  */
294
- readonly make: <M extends Machine.Machine.Any>(machine: M & EnsureBoundRequirements<Services, NoInfer<M>> & EnsureMachineOutputImplementations<NoInfer<M>>, ...args: MachineInputArgsOf<M>) => MachineAtomOf<M, RuntimeError>;
328
+ readonly make: <M extends Machine.Machine.Any>(machine: M & EnsureBoundRequirements<Services, NoInfer<M>> & EnsureMachineExecutable<NoInfer<M>>, ...args: MachineInputArgsOf<M>) => MachineAtomOf<M, RuntimeError>;
329
+ /** Creates a lazy bridge from a decoded logical snapshot. */
330
+ readonly resume: <M extends Machine.Machine.Any>(machine: M & EnsureBoundResumeRequirements<Services, NoInfer<M>> & EnsureMachineExecutable<NoInfer<M>>, snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>) => ResumedMachineAtomOf<M, RuntimeError>;
295
331
  }
296
332
  /**
297
333
  * Creates atoms backed by a running machine.
@@ -299,11 +335,42 @@ export interface Bound<Services, RuntimeError = never> {
299
335
  * Use `bind(runtime).make(machine)` when the machine requires external
300
336
  * services.
301
337
  *
338
+ * **Example**
339
+ *
340
+ * ```ts
341
+ * import { Schema } from "effect"
342
+ * import { Machine } from "@typeonce/effect-machine"
343
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
344
+ *
345
+ * class Idle extends Schema.TaggedClass<Idle>("Idle")("Idle", {}) {}
346
+ * const States = Machine.defineStates({ Idle })
347
+ * const machine = Machine.make({
348
+ * states: States.states,
349
+ * events: [],
350
+ * initial: () => States.initial.Idle.from()
351
+ * }).handle({ Idle: {} })
352
+ *
353
+ * const machineAtom = AtomMachine.make(machine)
354
+ * ```
355
+ *
302
356
  * @category constructors
303
- * @since 4.0.0
357
+ * @since 0.4.0
304
358
  */
305
359
  export declare const make: {
306
- <const States extends Machine.Machine.StateSchemas, const Events extends ReadonlyArray<Machine.Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.Machine.TaggedSchema> = any, const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.Machine.StateIdentifier<States> = Machine.Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.Machine.StateIdentifier<States> = never, Output = never, OutputStates extends Machine.Machine.StateIdentifier<States> = never, InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events>(machine: Machine.Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits, OutputStates, InputEvents> & EnsureNoExternalRequirements<MachineRequirements<InitialR, R, Machine.Machine.EventOf<Events>, Machine.Machine.EmitOf<Emits>>> & Machine.Machine.EnsureOutputImplementations<States, OutputStates>, ...args: [...Machine.Machine.InputArgs<Input>]): MachineAtom<Machine.Machine.Snapshot<States>, Machine.Machine.EventOf<InputEvents>, MachineRuntimeError<E, R>, Output, MachineStartError<InitialE, E, InitialR, R>>;
360
+ <const States extends Machine.Machine.StateSchemas, const Events extends ReadonlyArray<Machine.Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.Machine.TaggedSchema> = any, const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.Machine.StateIdentifier<States> = Machine.Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.Machine.StateIdentifier<States> = never, Output = never, OutputStates extends Machine.Machine.StateIdentifier<States> = never, InputEvents extends ReadonlyArray<Machine.Machine.TaggedSchema> = Events>(machine: Machine.Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits, OutputStates, InputEvents> & EnsureNoExternalRequirements<MachineRequirements<InitialR, R, Machine.Machine.EventOf<Events>, Machine.Machine.EmitOf<Emits>>> & EnsureExecutable<States, UnhandledStates, OutputStates>, ...args: [...Machine.Machine.InputArgs<Input>]): MachineAtom<Machine.Machine.Snapshot<States>, Machine.Machine.EventOf<InputEvents>, MachineRuntimeError<E, R>, Output, MachineStartError<InitialE, E, InitialR, R>>;
361
+ };
362
+ /**
363
+ * Creates a lazy atom bridge from a decoded logical snapshot.
364
+ *
365
+ * The bridge owns one freshly resumed runtime per `AtomRegistry`, with the same
366
+ * lazy start and disposal semantics as {@link make}. The machine initial
367
+ * function and its input, errors, and services are not involved.
368
+ *
369
+ * @category constructors
370
+ * @since 0.4.0
371
+ */
372
+ export declare const resume: {
373
+ <M extends Machine.Machine.Any>(machine: M & EnsureNoExternalRequirements<MachineResumeRequirementsOf<NoInfer<M>>> & EnsureMachineExecutable<NoInfer<M>>, snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>): ResumedMachineAtomOf<M, never>;
307
374
  };
308
375
  /**
309
376
  * Creates an `AtomMachine` factory that owns a shared Effect runtime.
@@ -313,8 +380,7 @@ export declare const make: {
313
380
  * while every call to `make` still creates an independent machine bridge.
314
381
  *
315
382
  * @category constructors
316
- * @since 4.0.0
383
+ * @since 0.4.0
317
384
  */
318
385
  export declare const bind: <Services, RuntimeError>(runtime: Atom.AtomRuntime<Services, RuntimeError>) => Bound<Services, RuntimeError>;
319
- export {};
320
386
  //# sourceMappingURL=AtomMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomMachine.d.ts","sourceRoot":"","sources":["../../../src/unstable/reactivity/AtomMachine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Atom bridge for running machines.
3
+ *
4
+ * @since 0.4.0
5
+ */
6
+ import * as internal from "../../internal/machine/atom.js";
7
+ /**
8
+ * Error returned when a machine command is issued before startup completes.
9
+ *
10
+ * @category errors
11
+ * @since 0.4.0
12
+ */
13
+ export { NotReadyError } from "../../internal/machine/atom.js";
14
+ /**
15
+ * Error returned when a command targets a child machine that is not active.
16
+ *
17
+ * @category errors
18
+ * @since 0.4.0
19
+ */
20
+ export { ChildNotActiveError } from "../../internal/machine/atom.js";
21
+ const ExternalRequirementsTypeId = "~effect/reactivity/AtomMachine/ExternalRequirements";
22
+ /**
23
+ * Selects the typed value for an active state path.
24
+ *
25
+ * Valid paths and their selected value types are inferred from the bridge.
26
+ * The derived atom suppresses structurally equal updates. Keep the returned
27
+ * atom stable when constructing it inside a component.
28
+ *
29
+ * **Example**
30
+ *
31
+ * ```ts
32
+ * import { Schema } from "effect"
33
+ * import { Machine } from "@typeonce/effect-machine"
34
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
35
+ *
36
+ * class Count extends Schema.TaggedClass<Count>("Count")("Count", {
37
+ * value: Schema.Number
38
+ * }) {}
39
+ * const States = Machine.defineStates({ Count })
40
+ * const machine = Machine.make({
41
+ * states: States.states,
42
+ * events: [],
43
+ * initial: () => States.initial.Count(new Count({ value: 0 }))
44
+ * }).handle({ Count: {} })
45
+ * const machineAtom = AtomMachine.make(machine)
46
+ *
47
+ * const countAtom = AtomMachine.select(machineAtom, "Count")
48
+ * ```
49
+ *
50
+ * @category combinators
51
+ * @since 0.4.0
52
+ */
53
+ export const select = internal.select;
54
+ /**
55
+ * Selects the typed value for an active state path in an invoked child.
56
+ *
57
+ * Valid paths and their selected value types are inferred from the child
58
+ * bridge. An inactive child produces `Option.none()`. Keep the returned atom
59
+ * stable when constructing it inside a component.
60
+ *
61
+ * **Example**
62
+ *
63
+ * ```ts
64
+ * const editingAtom = AtomMachine.selectChild(editorAtom, "Editing")
65
+ * // Atom<AsyncResult<Option<Editing>, StartError | ChildRuntimeError>>
66
+ * ```
67
+ *
68
+ * @category combinators
69
+ * @since 0.4.0
70
+ */
71
+ export const selectChild = internal.selectChild;
72
+ /**
73
+ * Returns whether a state path is active.
74
+ *
75
+ * Valid paths are inferred from the bridge snapshot.
76
+ * The derived atom suppresses equal updates. Runtime failures remain in the
77
+ * typed failure channel.
78
+ *
79
+ * **Example**
80
+ *
81
+ * ```ts
82
+ * import { Schema } from "effect"
83
+ * import { Machine } from "@typeonce/effect-machine"
84
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
85
+ *
86
+ * class Idle extends Schema.TaggedClass<Idle>("Idle")("Idle", {}) {}
87
+ * const States = Machine.defineStates({ Idle })
88
+ * const machine = Machine.make({
89
+ * states: States.states,
90
+ * events: [],
91
+ * initial: () => States.initial.Idle.from()
92
+ * }).handle({ Idle: {} })
93
+ * const machineAtom = AtomMachine.make(machine)
94
+ *
95
+ * const isIdleAtom = AtomMachine.matches(machineAtom, "Idle")
96
+ * ```
97
+ *
98
+ * @category combinators
99
+ * @since 0.4.0
100
+ */
101
+ export const matches = internal.matches;
102
+ /**
103
+ * Returns whether a state path is active in an invoked child.
104
+ *
105
+ * Valid paths are inferred from the child bridge snapshot.
106
+ * An inactive child produces `false`. Keep the returned atom stable when
107
+ * constructing it inside a component.
108
+ *
109
+ * @category combinators
110
+ * @since 0.4.0
111
+ */
112
+ export const matchesChild = internal.matchesChild;
113
+ const BoundRequirementsTypeId = "~effect/reactivity/AtomMachine/BoundRequirements";
114
+ /**
115
+ * Creates atoms backed by a running machine.
116
+ *
117
+ * Use `bind(runtime).make(machine)` when the machine requires external
118
+ * services.
119
+ *
120
+ * **Example**
121
+ *
122
+ * ```ts
123
+ * import { Schema } from "effect"
124
+ * import { Machine } from "@typeonce/effect-machine"
125
+ * import { AtomMachine } from "@typeonce/effect-machine/reactivity"
126
+ *
127
+ * class Idle extends Schema.TaggedClass<Idle>("Idle")("Idle", {}) {}
128
+ * const States = Machine.defineStates({ Idle })
129
+ * const machine = Machine.make({
130
+ * states: States.states,
131
+ * events: [],
132
+ * initial: () => States.initial.Idle.from()
133
+ * }).handle({ Idle: {} })
134
+ *
135
+ * const machineAtom = AtomMachine.make(machine)
136
+ * ```
137
+ *
138
+ * @category constructors
139
+ * @since 0.4.0
140
+ */
141
+ export const make = internal.make;
142
+ /**
143
+ * Creates a lazy atom bridge from a decoded logical snapshot.
144
+ *
145
+ * The bridge owns one freshly resumed runtime per `AtomRegistry`, with the same
146
+ * lazy start and disposal semantics as {@link make}. The machine initial
147
+ * function and its input, errors, and services are not involved.
148
+ *
149
+ * @category constructors
150
+ * @since 0.4.0
151
+ */
152
+ export const resume = internal.resume;
153
+ /**
154
+ * Creates an `AtomMachine` factory that owns a shared Effect runtime.
155
+ *
156
+ * Use this when an application runs many machines from the same service layer.
157
+ * The returned factory keeps runtime provisioning at the composition boundary,
158
+ * while every call to `make` still creates an independent machine bridge.
159
+ *
160
+ * @category constructors
161
+ * @since 0.4.0
162
+ */
163
+ export const bind = internal.bind;
164
+ //# sourceMappingURL=AtomMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomMachine.js","sourceRoot":"","sources":["../../../src/unstable/reactivity/AtomMachine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAA;AAK1D;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAMpE,MAAM,0BAA0B,GAAG,qDAAqD,CAAA;AAwQxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,MAAM,GASf,QAAQ,CAAC,MAAM,CAAA;AAEnB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,WAAW,GASpB,QAAQ,CAAC,WAAW,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,OAAO,GAUmD,QAAQ,CAAC,OAAO,CAAA;AAEvF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAMrB,QAAQ,CAAC,YAAY,CAAA;AAEzB,MAAM,uBAAuB,GAAG,kDAAkD,CAAA;AA8GlF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,IAAI,GAiDb,QAAQ,CAAC,IAAI,CAAA;AAEjB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAQf,QAAQ,CAAC,MAAM,CAAA;AAEnB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAEoB,QAAQ,CAAC,IAAI,CAAA"}
@@ -1,2 +1,2 @@
1
1
  export * as AtomMachine from "./AtomMachine.js";
2
- //# sourceMappingURL=reactivity.js.map
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unstable/reactivity/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
@@ -1,2 +1,2 @@
1
1
  export * as AtomMachine from "./AtomMachine.js";
2
- //# sourceMappingURL=reactivity.d.ts.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/unstable/reactivity/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}