@typeonce/effect-machine 0.2.0 → 0.4.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.
- package/README.md +345 -42
- package/dist/Machine.d.ts +1273 -347
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +161 -426
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/activities.d.ts +57 -0
- package/dist/internal/machine/activities.d.ts.map +1 -0
- package/dist/internal/machine/activities.js +49 -0
- package/dist/internal/machine/activities.js.map +1 -0
- package/dist/internal/machine/atom.d.ts +69 -0
- package/dist/internal/machine/atom.d.ts.map +1 -0
- package/dist/{AtomMachine.js → internal/machine/atom.js} +19 -94
- package/dist/internal/machine/atom.js.map +1 -0
- package/dist/internal/machine/cluster.d.ts +63 -0
- package/dist/internal/machine/cluster.d.ts.map +1 -0
- package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
- package/dist/internal/machine/cluster.js.map +1 -0
- package/dist/internal/machine/command.d.ts +16 -0
- package/dist/internal/machine/command.d.ts.map +1 -0
- package/dist/internal/machine/command.js +45 -0
- package/dist/internal/machine/command.js.map +1 -0
- package/dist/internal/machine/commandRuntime.d.ts +13 -0
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
- package/dist/internal/machine/commandRuntime.js +16 -0
- package/dist/internal/machine/commandRuntime.js.map +1 -0
- package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +32 -38
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/machine/configuration.js +965 -0
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +3 -3
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +1 -1
- package/dist/internal/machine/errors.js.map +1 -0
- package/dist/internal/machine/executionPlan.d.ts +49 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -0
- package/dist/internal/machine/executionPlan.js +667 -0
- package/dist/internal/machine/executionPlan.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +23 -0
- package/dist/internal/machine/invocation.d.ts.map +1 -0
- package/dist/internal/machine/invocation.js +77 -0
- package/dist/internal/machine/invocation.js.map +1 -0
- package/dist/internal/machine/machine.d.ts +183 -0
- package/dist/internal/machine/machine.d.ts.map +1 -0
- package/dist/internal/machine/machine.js +552 -0
- package/dist/internal/machine/machine.js.map +1 -0
- package/dist/internal/machine/planner.d.ts +182 -0
- package/dist/internal/machine/planner.d.ts.map +1 -0
- package/dist/internal/machine/planner.js +1082 -0
- package/dist/internal/machine/planner.js.map +1 -0
- package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +10 -4
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +446 -0
- package/dist/internal/machine/process.js.map +1 -0
- package/dist/internal/machine/protocol.d.ts +34 -0
- package/dist/internal/machine/protocol.d.ts.map +1 -0
- package/dist/internal/machine/protocol.js +182 -0
- package/dist/internal/machine/protocol.js.map +1 -0
- package/dist/internal/machine/readiness.d.ts +4 -0
- package/dist/internal/machine/readiness.d.ts.map +1 -0
- package/dist/internal/machine/readiness.js +2 -0
- package/dist/internal/machine/readiness.js.map +1 -0
- package/dist/internal/{machineRuntime.d.ts → machine/runtime.d.ts} +104 -2
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1381 -0
- package/dist/internal/machine/runtime.js.map +1 -0
- package/dist/internal/machine/serialization.d.ts +14 -0
- package/dist/internal/machine/serialization.d.ts.map +1 -0
- package/dist/internal/machine/serialization.js +338 -0
- package/dist/internal/machine/serialization.js.map +1 -0
- package/dist/internal/machine/stateDefinition.d.ts +15 -0
- package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
- package/dist/internal/machine/stateDefinition.js +210 -0
- package/dist/internal/machine/stateDefinition.js.map +1 -0
- package/dist/internal/machine/symbols.d.ts +3 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -0
- package/dist/internal/machine/symbols.js +3 -0
- package/dist/internal/machine/symbols.js.map +1 -0
- package/dist/internal/machine/topology.d.ts +98 -0
- package/dist/internal/machine/topology.d.ts.map +1 -0
- package/dist/internal/machine/topology.js +347 -0
- package/dist/internal/machine/topology.js.map +1 -0
- package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
- package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
- package/dist/internal/testing/machine/arbitrary.js +68 -0
- package/dist/internal/testing/machine/arbitrary.js.map +1 -0
- package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/finiteModel.js +976 -0
- package/dist/internal/testing/machine/finiteModel.js.map +1 -0
- package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
- package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/referenceModel.js +1012 -0
- package/dist/internal/testing/machine/referenceModel.js.map +1 -0
- package/dist/internal/testing/machine/runtime.d.ts +328 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +437 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +33 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1446 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +606 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +102 -0
- package/dist/testing/MachineTest.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +22 -30
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +126 -0
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
- package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
- package/dist/unstable/cluster/index.d.ts.map +1 -0
- package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
- package/dist/unstable/cluster/index.js.map +1 -0
- package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +40 -23
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +113 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
- package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
- package/dist/unstable/reactivity/index.d.ts.map +1 -0
- package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -0
- package/docs/agent-guide.md +271 -38
- package/package.json +23 -13
- package/dist/AtomMachine.d.ts.map +0 -1
- package/dist/AtomMachine.js.map +0 -1
- package/dist/ClusterMachine.d.ts.map +0 -1
- package/dist/ClusterMachine.js.map +0 -1
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js.map +0 -1
- package/dist/internal/machineErrors.d.ts.map +0 -1
- package/dist/internal/machineErrors.js.map +0 -1
- package/dist/internal/machineModel.d.ts.map +0 -1
- package/dist/internal/machineModel.js +0 -766
- package/dist/internal/machineModel.js.map +0 -1
- package/dist/internal/machinePlanner.d.ts +0 -74
- package/dist/internal/machinePlanner.d.ts.map +0 -1
- package/dist/internal/machinePlanner.js +0 -621
- package/dist/internal/machinePlanner.js.map +0 -1
- package/dist/internal/machineProcess.d.ts.map +0 -1
- package/dist/internal/machineProcess.js +0 -181
- package/dist/internal/machineProcess.js.map +0 -1
- package/dist/internal/machineRuntime.d.ts.map +0 -1
- package/dist/internal/machineRuntime.js +0 -365
- package/dist/internal/machineRuntime.js.map +0 -1
- package/dist/reactivity.d.ts.map +0 -1
- package/dist/reactivity.js.map +0 -1
|
@@ -9,57 +9,17 @@ import * as Effect from "effect/Effect";
|
|
|
9
9
|
import * as Layer from "effect/Layer";
|
|
10
10
|
import * as Option from "effect/Option";
|
|
11
11
|
import * as Schema from "effect/Schema";
|
|
12
|
-
import * as Machine from "./Machine.js";
|
|
13
|
-
import { Rpc } from "effect/unstable/rpc";
|
|
14
12
|
import { ClusterError, ClusterSchema, Entity, EntityAddress, MessageStorage, Snowflake } from "effect/unstable/cluster";
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* @category models
|
|
19
|
-
* @since 4.0.0
|
|
20
|
-
*/
|
|
13
|
+
import { Rpc } from "effect/unstable/rpc";
|
|
14
|
+
import * as internalMachine from "./machine.js";
|
|
21
15
|
export const CommitResult = {
|
|
22
16
|
Committed: () => ({ _tag: "Committed" }),
|
|
23
17
|
Duplicate: () => ({ _tag: "Duplicate" })
|
|
24
18
|
};
|
|
25
|
-
/**
|
|
26
|
-
* Checkpoint persistence service used by Cluster machines.
|
|
27
|
-
*
|
|
28
|
-
* **When to use**
|
|
29
|
-
*
|
|
30
|
-
* Use to connect `ClusterMachine` to a durable checkpoint store that can
|
|
31
|
-
* atomically deduplicate request ids and replace the current checkpoint.
|
|
32
|
-
*
|
|
33
|
-
* **Gotchas**
|
|
34
|
-
*
|
|
35
|
-
* For checkpoint and emitted-message persistence to commit atomically, this
|
|
36
|
-
* service must join the transaction opened through the configured
|
|
37
|
-
* `MessageStorage`. The reply is persisted after that transaction; storing the
|
|
38
|
-
* request id with the checkpoint makes a redelivery recover that reply without
|
|
39
|
-
* applying the transition again. A separate transaction or database cannot
|
|
40
|
-
* provide checkpoint-and-emission atomicity.
|
|
41
|
-
*
|
|
42
|
-
* @category services
|
|
43
|
-
* @since 4.0.0
|
|
44
|
-
*/
|
|
45
19
|
export class Storage extends Context.Service()("effect/cluster/ClusterMachine/Storage") {
|
|
46
20
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Successful result returned after a Cluster machine request is committed or
|
|
49
|
-
* recognized as a redelivery.
|
|
50
|
-
*
|
|
51
|
-
* @category models
|
|
52
|
-
* @since 4.0.0
|
|
53
|
-
*/
|
|
54
21
|
export class Accepted extends Schema.TaggedClass("effect/cluster/ClusterMachine/Accepted")("Accepted", {}) {
|
|
55
22
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Schema for reasons a Cluster machine request can be rejected without
|
|
58
|
-
* advancing its checkpoint.
|
|
59
|
-
*
|
|
60
|
-
* @category models
|
|
61
|
-
* @since 4.0.0
|
|
62
|
-
*/
|
|
63
23
|
export const RejectionReason = Schema.Literals([
|
|
64
24
|
"MachineIdMismatch",
|
|
65
25
|
"VersionMismatch",
|
|
@@ -69,24 +29,11 @@ export const RejectionReason = Schema.Literals([
|
|
|
69
29
|
"PersistenceFailure",
|
|
70
30
|
"EmissionFailure"
|
|
71
31
|
]);
|
|
72
|
-
/**
|
|
73
|
-
* Rejected Cluster machine request. Transaction-participating durable storage
|
|
74
|
-
* leaves the previous checkpoint in place and suppresses emitted events.
|
|
75
|
-
*
|
|
76
|
-
* @category models
|
|
77
|
-
* @since 4.0.0
|
|
78
|
-
*/
|
|
79
32
|
export class Rejected extends Schema.TaggedClass("effect/cluster/ClusterMachine/Rejected")("Rejected", {
|
|
80
33
|
reason: RejectionReason,
|
|
81
34
|
message: Schema.String
|
|
82
35
|
}) {
|
|
83
36
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Schema for Cluster machine request outcomes.
|
|
86
|
-
*
|
|
87
|
-
* @category schemas
|
|
88
|
-
* @since 4.0.0
|
|
89
|
-
*/
|
|
90
37
|
export const SendResult = Schema.Union([Accepted, Rejected]);
|
|
91
38
|
const hasInvokes = (machine) => Reflect.ownKeys(machine.handlers).some((key) => machine.handlers[key]?.invoke !== undefined);
|
|
92
39
|
const reject = (reason, message) => new Rejected({ reason, message });
|
|
@@ -100,28 +47,12 @@ const rejectionFromCause = (cause) => {
|
|
|
100
47
|
if (Option.isSome(error) && error.value instanceof Rejected) {
|
|
101
48
|
return error.value;
|
|
102
49
|
}
|
|
103
|
-
if (Option.isSome(error) && error.value instanceof
|
|
50
|
+
if (Option.isSome(error) && error.value instanceof internalMachine.ProcessLocalError) {
|
|
104
51
|
return reject("UnsupportedProcessLocal", `${error.value.operation} is process-local and is not supported`);
|
|
105
52
|
}
|
|
106
53
|
return reject("TransitionFailure", messageFromCause(cause));
|
|
107
54
|
};
|
|
108
55
|
const addressKey = (address) => `${address.entityType}\u0000${address.entityId}`;
|
|
109
|
-
/**
|
|
110
|
-
* Creates an in-memory Cluster machine checkpoint store.
|
|
111
|
-
*
|
|
112
|
-
* **When to use**
|
|
113
|
-
*
|
|
114
|
-
* Use when you test or run a local process that does not require checkpoints
|
|
115
|
-
* to survive a restart.
|
|
116
|
-
*
|
|
117
|
-
* **Gotchas**
|
|
118
|
-
*
|
|
119
|
-
* This store is not durable and does not provide rollback with the in-memory
|
|
120
|
-
* `MessageStorage` transaction marker.
|
|
121
|
-
*
|
|
122
|
-
* @category constructors
|
|
123
|
-
* @since 4.0.0
|
|
124
|
-
*/
|
|
125
56
|
export const makeMemory = Effect.sync(() => {
|
|
126
57
|
const entries = new Map();
|
|
127
58
|
return Storage.of({
|
|
@@ -152,40 +83,7 @@ export const makeMemory = Effect.sync(() => {
|
|
|
152
83
|
})
|
|
153
84
|
});
|
|
154
85
|
});
|
|
155
|
-
/**
|
|
156
|
-
* Layer providing the in-memory Cluster machine checkpoint store.
|
|
157
|
-
*
|
|
158
|
-
* @category layers
|
|
159
|
-
* @since 4.0.0
|
|
160
|
-
*/
|
|
161
86
|
export const layerMemory = Layer.effect(Storage, makeMemory);
|
|
162
|
-
/**
|
|
163
|
-
* Creates a persisted Cluster entity adapter for a machine.
|
|
164
|
-
*
|
|
165
|
-
* **When to use**
|
|
166
|
-
*
|
|
167
|
-
* Use when each Cluster entity id should own one durable machine snapshot and
|
|
168
|
-
* accept schema-validated machine events through a persisted `send` RPC.
|
|
169
|
-
*
|
|
170
|
-
* **Details**
|
|
171
|
-
*
|
|
172
|
-
* A missing checkpoint runs initial planning before the first event. Existing
|
|
173
|
-
* checkpoints are identity-checked, version-checked, decoded, and resumed
|
|
174
|
-
* without rerunning initial entry behavior. Final checkpoints accept later
|
|
175
|
-
* requests as no-ops. The stable bridge identity is `machine.id` when present,
|
|
176
|
-
* otherwise the Cluster entity type.
|
|
177
|
-
*
|
|
178
|
-
* **Gotchas**
|
|
179
|
-
*
|
|
180
|
-
* Invoked processes, spawned children, action-time `runtime.raise`, timers,
|
|
181
|
-
* subscriptions, and other process-local state are not durable and are
|
|
182
|
-
* rejected. Planning-time raised events remain part of the current macrostep.
|
|
183
|
-
* Arbitrary action effects may run again after a crash before checkpoint
|
|
184
|
-
* commit, so the bridge does not provide exactly-once external effects.
|
|
185
|
-
*
|
|
186
|
-
* @category constructors
|
|
187
|
-
* @since 4.0.0
|
|
188
|
-
*/
|
|
189
87
|
export const make = (type, machine, options, ...input) => {
|
|
190
88
|
const eventSchema = Schema.Union(machine.events);
|
|
191
89
|
const rpc = Rpc.make("send", {
|
|
@@ -216,30 +114,28 @@ export const make = (type, machine, options, ...input) => {
|
|
|
216
114
|
if (checkpoint.version !== options.version) {
|
|
217
115
|
return yield* fail("VersionMismatch", `Expected version ${options.version}, received ${checkpoint.version}`);
|
|
218
116
|
}
|
|
219
|
-
current = yield*
|
|
117
|
+
current = yield* internalMachine.decodeSnapshot(machine, checkpoint.snapshot).pipe(Effect.mapError((error) => reject("InvalidCheckpoint", String(error.cause))));
|
|
220
118
|
}
|
|
221
119
|
else if (loaded.processed) {
|
|
222
120
|
return yield* fail("InvalidCheckpoint", "The request was recorded without a checkpoint");
|
|
223
121
|
}
|
|
224
|
-
const runtime = {
|
|
225
|
-
raise: () => Effect.die(new Machine.ProcessLocalError({ operation: "runtime.raise" })),
|
|
226
|
-
sendParent: (event) => Effect.sync(() => {
|
|
227
|
-
emitted.push(event);
|
|
228
|
-
})
|
|
229
|
-
};
|
|
230
122
|
if (current === undefined) {
|
|
231
|
-
const initial = yield*
|
|
232
|
-
|
|
123
|
+
const initial = yield* internalMachine.planInitial(machine, ...input);
|
|
124
|
+
if (initial.commands.length > 0) {
|
|
125
|
+
return yield* fail("UnsupportedProcessLocal", "Machine actor commands require a managed local process");
|
|
126
|
+
}
|
|
233
127
|
current = initial.state;
|
|
234
128
|
emitted.push(...initial.emittedEvents);
|
|
235
129
|
}
|
|
236
|
-
if (!
|
|
237
|
-
const planned = yield*
|
|
238
|
-
|
|
130
|
+
if (!internalMachine.isFinal(machine, current)) {
|
|
131
|
+
const planned = yield* internalMachine.plan(machine, current, request.payload);
|
|
132
|
+
if (planned.commands.length > 0) {
|
|
133
|
+
return yield* fail("UnsupportedProcessLocal", "Machine actor commands require a managed local process");
|
|
134
|
+
}
|
|
239
135
|
current = planned.next;
|
|
240
136
|
emitted.push(...planned.emittedEvents);
|
|
241
137
|
}
|
|
242
|
-
const encoded = yield*
|
|
138
|
+
const encoded = yield* internalMachine.encodeSnapshot(machine, current);
|
|
243
139
|
if (emitted.length > 0 && layerOptions?.enqueue === undefined) {
|
|
244
140
|
return yield* fail("EmissionFailure", "No durable enqueue handler was configured");
|
|
245
141
|
}
|
|
@@ -277,4 +173,4 @@ export const make = (type, machine, options, ...input) => {
|
|
|
277
173
|
toLayer
|
|
278
174
|
};
|
|
279
175
|
};
|
|
280
|
-
//# sourceMappingURL=
|
|
176
|
+
//# sourceMappingURL=cluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../src/internal/machine/cluster.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machine command collection.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Command, Enqueue, Machine } from "../../Machine.js";
|
|
7
|
+
export type RuntimeCommand = Command;
|
|
8
|
+
export interface Collected<Event> {
|
|
9
|
+
readonly enqueue: Enqueue<Event, unknown>;
|
|
10
|
+
readonly commands: Array<RuntimeCommand>;
|
|
11
|
+
readonly raisedEvents: Array<Event>;
|
|
12
|
+
readonly emittedEvents: Array<unknown>;
|
|
13
|
+
}
|
|
14
|
+
export declare const getTargetBuilder: (machine: Machine.Any, path: string) => any;
|
|
15
|
+
export declare const makeCollector: <Event>(machine: Machine.Any) => Collected<Event>;
|
|
16
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAGjE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAA;AAEpC,MAAM,WAAW,SAAS,CAAC,KAAK;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IACxC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CACvC;AAID,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,MAAM,KAAG,GAYrE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,EAAE,SAAS,OAAO,CAAC,GAAG,KAAG,SAAS,CAAC,KAAK,CAuB1E,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machine command collection.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import { decodeEmitSync, decodeEventSync } from "./protocol.js";
|
|
7
|
+
const targetBuilderCache = new WeakMap();
|
|
8
|
+
export const getTargetBuilder = (machine, path) => {
|
|
9
|
+
let byPath = targetBuilderCache.get(machine);
|
|
10
|
+
if (byPath === undefined) {
|
|
11
|
+
byPath = new Map();
|
|
12
|
+
targetBuilderCache.set(machine, byPath);
|
|
13
|
+
}
|
|
14
|
+
if (byPath.has(path)) {
|
|
15
|
+
return byPath.get(path);
|
|
16
|
+
}
|
|
17
|
+
const builder = machine.makeTargetBuilder(path);
|
|
18
|
+
byPath.set(path, builder);
|
|
19
|
+
return builder;
|
|
20
|
+
};
|
|
21
|
+
export const makeCollector = (machine) => {
|
|
22
|
+
const commands = [];
|
|
23
|
+
const raisedEvents = [];
|
|
24
|
+
const emittedEvents = [];
|
|
25
|
+
return {
|
|
26
|
+
commands,
|
|
27
|
+
raisedEvents,
|
|
28
|
+
emittedEvents,
|
|
29
|
+
enqueue: {
|
|
30
|
+
raise: (event) => {
|
|
31
|
+
raisedEvents.push(decodeEventSync(machine, event));
|
|
32
|
+
},
|
|
33
|
+
emit: (event) => {
|
|
34
|
+
emittedEvents.push(decodeEmitSync(machine, event));
|
|
35
|
+
},
|
|
36
|
+
sendTo: (child, event) => {
|
|
37
|
+
commands.push({ _tag: "SendTo", child: child, event });
|
|
38
|
+
},
|
|
39
|
+
stop: (child) => {
|
|
40
|
+
commands.push({ _tag: "Stop", child: child });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/internal/machine/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAW/D,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAgC,CAAA;AAEtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAE,IAAY,EAAO,EAAE;IAC1E,IAAI,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAClB,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAW,CAAC,CAAA;IACtD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzB,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAQ,OAAoB,EAAoB,EAAE;IAC7E,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAiB,EAAE,CAAA;IACrC,MAAM,aAAa,GAAmB,EAAE,CAAA;IACxC,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,OAAO,EAAE;YACP,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAU,CAAC,CAAA;YAC7D,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;YACpD,CAAC;YACD,MAAM,EAAE,CAAC,KAAc,EAAE,KAAc,EAAE,EAAE;gBACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAY,EAAE,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,EAAE,CAAC,KAAc,EAAE,EAAE;gBACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAY,EAAE,CAAC,CAAA;YACtD,CAAC;SACF;KACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal process-side machine command execution.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import type { Machine, Runtime } from "../../Machine.js";
|
|
8
|
+
import type { RuntimeCommand } from "./command.js";
|
|
9
|
+
import type { ProcessScope } from "./runtime.js";
|
|
10
|
+
export declare const makeLiveRuntime: <Events, Emits>(machine: Machine.Any, scope: ProcessScope<Events>) => Runtime<Events, Emits>;
|
|
11
|
+
export declare const runCommands: <Event>(commands: Iterable<RuntimeCommand>, scope: ProcessScope<Event>) => Effect.Effect<void, import("./errors.js").StoppedError, never>;
|
|
12
|
+
export declare const runEmittedEvents: <Events, Emits>(events: Iterable<Emits>, runtime: Runtime<Events, Emits>) => Effect.Effect<void, import("./errors.js").MachineSchemaDecodeError | import("./errors.js").StoppedError, never>;
|
|
13
|
+
//# sourceMappingURL=commandRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandRuntime.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/commandRuntime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,eAAe,GAAI,MAAM,EAAE,KAAK,EAC3C,SAAS,OAAO,CAAC,GAAG,EACpB,OAAO,YAAY,CAAC,MAAM,CAAC,KAC1B,OAAO,CAAC,MAAM,EAAE,KAAK,CAStB,CAAA;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,EAC/B,UAAU,QAAQ,CAAC,cAAc,CAAC,EAClC,OAAO,YAAY,CAAC,KAAK,CAAC,mEAKuC,CAAA;AAEnE,eAAO,MAAM,gBAAgB,GAAI,MAAM,EAAE,KAAK,EAC5C,QAAQ,QAAQ,CAAC,KAAK,CAAC,EACvB,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,oHAK9B,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal process-side machine command execution.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import { decodeEmit, decodeEvent } from "./protocol.js";
|
|
8
|
+
export const makeLiveRuntime = (machine, scope) => ({
|
|
9
|
+
raise: (event) => decodeEvent(machine, event).pipe(Effect.flatMap((event) => scope.self.send(event))),
|
|
10
|
+
sendParent: (event) => decodeEmit(machine, event).pipe(Effect.flatMap((event) => scope.sendParent(event)))
|
|
11
|
+
});
|
|
12
|
+
export const runCommands = (commands, scope) => Effect.forEach(commands, (command) => command._tag === "SendTo"
|
|
13
|
+
? scope.sendTo(command.child, command.event)
|
|
14
|
+
: scope.stopChild(command.child), { discard: true });
|
|
15
|
+
export const runEmittedEvents = (events, runtime) => Effect.all(Array.from(events, (event) => runtime.sendParent(event)), { discard: true });
|
|
16
|
+
//# sourceMappingURL=commandRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandRuntime.js","sourceRoot":"","sources":["../../../src/internal/machine/commandRuntime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAoB,EACpB,KAA2B,EACH,EAAE,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,CAC5D;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACpB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACnD;CACJ,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAkC,EAClC,KAA0B,EAC1B,EAAE,CACF,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,IAAI,KAAK,QAAQ;IACvB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAc,EAAE,OAAO,CAAC,KAAK,CAAC;IACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAc,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAuB,EACvB,OAA+B,EAC/B,EAAE,CACF,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACxD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA"}
|
|
@@ -1,55 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Internal
|
|
2
|
+
* Internal active-configuration, history, and completion helpers.
|
|
3
3
|
*
|
|
4
4
|
* @since 4.0.0
|
|
5
5
|
*/
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
readonly
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly initial: string | undefined;
|
|
17
|
-
readonly states: Machine.StateTree | undefined;
|
|
18
|
-
};
|
|
19
|
-
export declare const compileStateNodes: (states: Machine.StateSchemas) => Machine.StateNodes;
|
|
20
|
-
export declare const makeTarget: <const States extends Machine.StateSchemas, const StateId extends Machine.StateIdentifier<States>>(path: StateId, value: Machine.StateByIdentifier<States, StateId>, options?: {
|
|
21
|
-
readonly values?: Partial<{ readonly [AncestorStateId in Machine.StateIdentifier<States>]: Machine.StateByIdentifier<States, AncestorStateId>; }>;
|
|
22
|
-
}) => Machine.Target<States, StateId>;
|
|
23
|
-
export declare const isTarget: (u: unknown) => u is Machine.Target<any, any>;
|
|
24
|
-
export declare const isSnapshot: (u: unknown) => u is Machine.AtomicSnapshot<string, unknown>;
|
|
25
|
-
export declare const getSnapshotByPath: (snapshot: Machine.AtomicSnapshot<string, unknown>, path: string, parents?: Record<string, unknown>) => Option.Option<Machine.AtomicSnapshot<string, unknown>>;
|
|
7
|
+
import type { Machine } from "../../Machine.js";
|
|
8
|
+
import { MachineSchemaDecodeError } from "./errors.js";
|
|
9
|
+
export interface HistoryRecord {
|
|
10
|
+
readonly mode: "shallow" | "deep";
|
|
11
|
+
readonly parent: string;
|
|
12
|
+
readonly active: ReadonlySet<string>;
|
|
13
|
+
readonly values: ReadonlyMap<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export declare const validateHistoryRecordControl: (machine: Machine.Any, record: HistoryRecord) => void;
|
|
26
16
|
export interface ActiveConfiguration {
|
|
27
17
|
readonly active: ReadonlySet<string>;
|
|
28
18
|
readonly values: ReadonlyMap<string, unknown>;
|
|
29
19
|
readonly outputs: ReadonlyMap<string, unknown>;
|
|
20
|
+
readonly history: ReadonlyMap<string, HistoryRecord>;
|
|
30
21
|
}
|
|
31
22
|
export interface FinalCompletion {
|
|
32
23
|
readonly path: string;
|
|
33
24
|
readonly output: unknown;
|
|
34
25
|
}
|
|
35
|
-
export interface DecodeBoundaryOptions {
|
|
36
|
-
readonly boundary: "input" | "event" | "emit" | "state" | "output" | "configuration";
|
|
37
|
-
readonly state?: string;
|
|
38
|
-
readonly event?: string;
|
|
39
|
-
}
|
|
40
26
|
interface CompletionResult extends FinalCompletion {
|
|
41
27
|
readonly isNew: boolean;
|
|
42
28
|
}
|
|
43
|
-
export declare const setProtocol: (machine: Machine.Any) => void;
|
|
44
|
-
export declare const copyProtocol: (source: Machine.Any, target: Machine.Any) => void;
|
|
45
|
-
export declare const getEventName: (event: unknown) => string | undefined;
|
|
46
|
-
export declare const decodeBoundary: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => Effect.Effect<A, MachineSchemaDecodeError>;
|
|
47
|
-
export declare const decodeInput: <Input extends Schema.Top>(machine: Machine.Any, schema: Input, value: unknown) => Effect.Effect<Input["Type"], MachineSchemaDecodeError>;
|
|
48
|
-
export declare const decodeEvent: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EventOf<Events>, MachineSchemaDecodeError>;
|
|
49
|
-
export declare const decodeEmit: <const Emits extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EmitOf<Emits>, MachineSchemaDecodeError>;
|
|
50
|
-
export declare const decodeStateValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
51
|
-
export declare const decodeOutputValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
52
|
-
export declare const getNode: (machine: Machine.Any, path: string) => Machine.StateNode;
|
|
53
29
|
export declare const hasOwn: (u: object, key: string) => boolean;
|
|
54
30
|
export declare const isDescendantOf: (path: string, ancestor: string) => boolean;
|
|
55
31
|
export declare const isPathInSubtree: (path: string, ancestor: string) => boolean;
|
|
@@ -67,13 +43,29 @@ export declare const getParentValue: (machine: Machine.Any, configuration: Activ
|
|
|
67
43
|
export declare const getInitialEntryPaths: (machine: Machine.Any, configuration: ActiveConfiguration) => ReadonlyArray<string>;
|
|
68
44
|
export declare const snapshotFromPath: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration, path: string) => Machine.SnapshotByIdentifier<States, Machine.StateIdentifier<States>>;
|
|
69
45
|
export declare const snapshotFromConfiguration: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration) => Machine.Snapshot<States>;
|
|
46
|
+
/** Creates a targetable subtree snapshot while carrying machine-level history
|
|
47
|
+
* metadata on that subtree root. This is used when a nested history target
|
|
48
|
+
* must preserve active ancestors and unaffected parallel regions. */
|
|
49
|
+
export declare const snapshotFromConfigurationAtPath: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration, path: string) => Machine.SnapshotByIdentifier<States, Machine.StateIdentifier<States>>;
|
|
70
50
|
export declare const configurationFromSnapshot: (machine: Machine.Any, snapshot: Machine.AtomicSnapshot<string, unknown>) => ActiveConfiguration;
|
|
71
51
|
export declare const normalizeConfiguration: <const States extends Machine.StateSchemas>(machine: Machine.Any, state: Machine.Snapshot<States>) => ActiveConfiguration;
|
|
52
|
+
export declare const normalizeConfigurationSync: <const States extends Machine.StateSchemas>(machine: Machine.Any, state: Machine.Snapshot<States>) => ActiveConfiguration;
|
|
72
53
|
export declare const configurationFromSnapshotEffect: (machine: Machine.Any, snapshot: Machine.AtomicSnapshot<string, unknown>) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError, never>;
|
|
73
54
|
export declare const normalizeConfigurationEffect: <const States extends Machine.StateSchemas>(machine: Machine.Any, state: Machine.Snapshot<States>) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError>;
|
|
74
55
|
export declare const validateInitialConfiguration: (machine: Machine.Any, configuration: ActiveConfiguration) => void;
|
|
56
|
+
/** Capture every history register whose owning parent exits in this microstep.
|
|
57
|
+
* The control record is deliberately independent from effects/actions: it is
|
|
58
|
+
* part of the logical snapshot and is therefore preserved by pure planning. */
|
|
59
|
+
export declare const captureHistory: (machine: Machine.Any, current: ActiveConfiguration, next: ActiveConfiguration, exitPaths: ReadonlyArray<string>) => ActiveConfiguration;
|
|
60
|
+
export declare const getHistoryRecord: (configuration: ActiveConfiguration, path: string) => HistoryRecord | undefined;
|
|
61
|
+
/** Builds the remembered portion of a configuration. Shallow records are
|
|
62
|
+
* intentionally incomplete below their direct child; the planner completes
|
|
63
|
+
* them by invoking only the required typed initializers. */
|
|
64
|
+
export declare const configurationFromHistoryRecord: (machine: Machine.Any, current: ActiveConfiguration, record: HistoryRecord) => ActiveConfiguration;
|
|
75
65
|
export declare const configurationFromTargetPathEffect: (machine: Machine.Any, current: ActiveConfiguration, path: string, value: unknown, providedValues: Readonly<Record<string, unknown>> | undefined) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError, never>;
|
|
66
|
+
export declare const configurationFromTargetSnapshotEffect: (machine: Machine.Any, current: ActiveConfiguration, snapshot: Machine.AtomicSnapshot<string, unknown>, providedValues: Readonly<Record<string, unknown>> | undefined) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError, never>;
|
|
76
67
|
export declare const normalizeTargetConfigurationEffect: <const States extends Machine.StateSchemas>(machine: Machine.Any, current: ActiveConfiguration, target: Machine.Snapshot<States> | Machine.Target<States, Machine.StateIdentifier<States>>) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError>;
|
|
68
|
+
export declare const normalizeTargetConfigurationSync: <const States extends Machine.StateSchemas>(machine: Machine.Any, current: ActiveConfiguration, target: Machine.Snapshot<States> | Machine.Target<States, Machine.StateIdentifier<States>>) => ActiveConfiguration;
|
|
77
69
|
export declare const getStateConfigByPath: (machine: Machine.Any, path: string) => Machine.AnyStateConfig | undefined;
|
|
78
70
|
export declare const getActiveChildPath: (machine: Machine.Any, configuration: ActiveConfiguration, path: string) => string | undefined;
|
|
79
71
|
export declare const isDirectFinalPath: (machine: Machine.Any, path: string) => boolean;
|
|
@@ -87,7 +79,9 @@ export declare const completeConfigurationEffect: <const Events extends Readonly
|
|
|
87
79
|
readonly configuration: ActiveConfiguration;
|
|
88
80
|
readonly completions: ReadonlyArray<FinalCompletion>;
|
|
89
81
|
}, MachineSchemaDecodeError>;
|
|
90
|
-
export declare const
|
|
91
|
-
|
|
82
|
+
export declare const completeConfigurationSync: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, configuration: ActiveConfiguration, event: Machine.LifecycleEvent<Events>) => {
|
|
83
|
+
readonly configuration: ActiveConfiguration;
|
|
84
|
+
readonly completions: ReadonlyArray<FinalCompletion>;
|
|
85
|
+
};
|
|
92
86
|
export {};
|
|
93
|
-
//# sourceMappingURL=
|
|
87
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/configuration.ts"],"names":[],"mappings":"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"}
|