@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.
- package/README.md +410 -17
- package/dist/Machine.d.ts +1191 -510
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +371 -565
- 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} +20 -95
- 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} +12 -61
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
- 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 +676 -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} +11 -5
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +498 -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/machine/runtime.d.ts +255 -0
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1489 -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/exploration.d.ts +30 -0
- package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
- package/dist/internal/testing/machine/exploration.js +237 -0
- package/dist/internal/testing/machine/exploration.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/invariant.d.ts +31 -0
- package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/invariant.js +214 -0
- package/dist/internal/testing/machine/invariant.js.map +1 -0
- package/dist/internal/testing/machine/probe.d.ts +26 -0
- package/dist/internal/testing/machine/probe.d.ts.map +1 -0
- package/dist/internal/testing/machine/probe.js +45 -0
- package/dist/internal/testing/machine/probe.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 +631 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +726 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
- package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
- package/dist/internal/testing/machine/trace.d.ts +17 -0
- package/dist/internal/testing/machine/trace.d.ts.map +1 -0
- package/dist/internal/testing/machine/trace.js +94 -0
- package/dist/internal/testing/machine/trace.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +36 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1375 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +1588 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +406 -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} +56 -45
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +144 -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} +116 -50
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +164 -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 +316 -31
- package/package.json +28 -10
- 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.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 -797
- 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 +0 -125
- 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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Runs Effect machines as persisted Cluster entities.
|
|
3
3
|
*
|
|
4
|
-
* @since 4.0
|
|
4
|
+
* @since 0.4.0
|
|
5
5
|
*/
|
|
6
6
|
import * as Cause from "effect/Cause";
|
|
7
7
|
import * as Context from "effect/Context";
|
|
@@ -11,55 +11,15 @@ import * as Option from "effect/Option";
|
|
|
11
11
|
import * as Schema from "effect/Schema";
|
|
12
12
|
import { ClusterError, ClusterSchema, Entity, EntityAddress, MessageStorage, Snowflake } from "effect/unstable/cluster";
|
|
13
13
|
import { Rpc } from "effect/unstable/rpc";
|
|
14
|
-
import * as
|
|
15
|
-
/**
|
|
16
|
-
* Constructors and types for Cluster machine commit results.
|
|
17
|
-
*
|
|
18
|
-
* @category models
|
|
19
|
-
* @since 4.0.0
|
|
20
|
-
*/
|
|
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 0.4.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 0.4.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 0.4.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 0.4.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,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Internal
|
|
2
|
+
* Internal active-configuration, history, and completion helpers.
|
|
3
3
|
*
|
|
4
|
-
* @since 4.0
|
|
4
|
+
* @since 0.4.0
|
|
5
5
|
*/
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import type { Machine } from "../Machine.js";
|
|
10
|
-
import { MachineSchemaDecodeError, MachineSchemaEncodeError } from "./machineErrors.js";
|
|
11
|
-
export declare const TargetTypeId = "~effect/Machine/Target";
|
|
12
|
-
export declare const TargetSnapshotTypeId: unique symbol;
|
|
13
|
-
export declare const StateInputTypeId: unique symbol;
|
|
14
|
-
export declare const StateConstructionTypeId: unique symbol;
|
|
15
|
-
export declare const HistoryTargetTypeId: unique symbol;
|
|
16
|
-
interface StateInput {
|
|
17
|
-
readonly [StateInputTypeId]: typeof StateInputTypeId;
|
|
18
|
-
readonly input: unknown;
|
|
19
|
-
}
|
|
20
|
-
/** Internal target produced by the history target builder. History nodes are
|
|
21
|
-
* routing instructions and are never part of an active configuration. */
|
|
22
|
-
export interface HistoryTarget {
|
|
23
|
-
readonly [HistoryTargetTypeId]: typeof HistoryTargetTypeId;
|
|
24
|
-
readonly path: string;
|
|
25
|
-
readonly parent: string;
|
|
26
|
-
}
|
|
7
|
+
import type { Machine } from "../../Machine.js";
|
|
8
|
+
import { MachineSchemaDecodeError } from "./errors.js";
|
|
27
9
|
export interface HistoryRecord {
|
|
28
10
|
readonly mode: "shallow" | "deep";
|
|
29
11
|
readonly parent: string;
|
|
30
12
|
readonly active: ReadonlySet<string>;
|
|
31
13
|
readonly values: ReadonlyMap<string, unknown>;
|
|
32
14
|
}
|
|
33
|
-
export declare const
|
|
34
|
-
export declare const isHistoryTarget: (u: unknown) => u is HistoryTarget;
|
|
35
|
-
export declare const getStateNodeDefinition: (path: string, definition: Machine.TaggedSchema | Machine.StateNodeConfig) => {
|
|
36
|
-
readonly schema: Machine.TaggedSchema | undefined;
|
|
37
|
-
readonly output: Schema.Top | undefined;
|
|
38
|
-
readonly type: "atomic" | "compound" | "parallel" | "final" | "history";
|
|
39
|
-
readonly initial: string | undefined;
|
|
40
|
-
readonly states: Machine.StateTree | undefined;
|
|
41
|
-
};
|
|
42
|
-
export declare const compileStateNodes: (states: Machine.StateSchemas) => Machine.StateNodes;
|
|
43
|
-
export declare const makeTarget: <const States extends Machine.StateSchemas, const StateId extends Machine.StateIdentifier<States>>(path: StateId, value: Machine.StateByIdentifier<States, StateId>, options?: {
|
|
44
|
-
readonly snapshot?: Machine.SnapshotByIdentifier<States, StateId>;
|
|
45
|
-
readonly values?: Partial<{ readonly [AncestorStateId in Machine.StateIdentifier<States>]: Machine.StateByIdentifier<States, AncestorStateId>; }>;
|
|
46
|
-
}) => Machine.Target<States, StateId>;
|
|
47
|
-
export declare const isTarget: (u: unknown) => u is Machine.Target<any, any>;
|
|
48
|
-
export declare const makeStateInput: (input: unknown) => StateInput;
|
|
49
|
-
export declare const markStateConstruction: <A>(value: A) => A;
|
|
50
|
-
export declare const isStateConstruction: (u: unknown) => boolean;
|
|
51
|
-
export declare const isSnapshot: (u: unknown) => u is Machine.AtomicSnapshot<string, unknown>;
|
|
52
|
-
export declare const getSnapshotByPath: (snapshot: Machine.AtomicSnapshot<string, unknown>, path: string, parents?: Record<string, unknown>) => Option.Option<Machine.AtomicSnapshot<string, unknown>>;
|
|
15
|
+
export declare const validateHistoryRecordControl: (machine: Machine.Any, record: HistoryRecord) => void;
|
|
53
16
|
export interface ActiveConfiguration {
|
|
54
17
|
readonly active: ReadonlySet<string>;
|
|
55
18
|
readonly values: ReadonlyMap<string, unknown>;
|
|
@@ -60,25 +23,9 @@ export interface FinalCompletion {
|
|
|
60
23
|
readonly path: string;
|
|
61
24
|
readonly output: unknown;
|
|
62
25
|
}
|
|
63
|
-
export interface DecodeBoundaryOptions {
|
|
64
|
-
readonly boundary: "input" | "event" | "emit" | "state" | "output" | "history" | "configuration";
|
|
65
|
-
readonly state?: string;
|
|
66
|
-
readonly event?: string;
|
|
67
|
-
}
|
|
68
26
|
interface CompletionResult extends FinalCompletion {
|
|
69
27
|
readonly isNew: boolean;
|
|
70
28
|
}
|
|
71
|
-
export declare const setProtocol: (machine: Machine.Any) => void;
|
|
72
|
-
export declare const copyProtocol: (source: Machine.Any, target: Machine.Any) => void;
|
|
73
|
-
export declare const getEventName: (event: unknown) => string | undefined;
|
|
74
|
-
export declare const decodeBoundary: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => Effect.Effect<A, MachineSchemaDecodeError>;
|
|
75
|
-
export declare const decodeInput: <Input extends Schema.Top>(machine: Machine.Any, schema: Input, value: unknown) => Effect.Effect<Input["Type"], MachineSchemaDecodeError>;
|
|
76
|
-
export declare const decodeEvent: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EventOf<Events>, MachineSchemaDecodeError>;
|
|
77
|
-
export declare const decodeEmit: <const Emits extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EmitOf<Emits>, MachineSchemaDecodeError>;
|
|
78
|
-
export declare const decodeStateValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
79
|
-
export declare const decodeOutputValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
80
|
-
export declare const getNode: (machine: Machine.Any, path: string) => Machine.StateNode;
|
|
81
|
-
export declare const getStateNodeSchema: (node: Machine.StateNode) => Machine.TaggedSchema;
|
|
82
29
|
export declare const hasOwn: (u: object, key: string) => boolean;
|
|
83
30
|
export declare const isDescendantOf: (path: string, ancestor: string) => boolean;
|
|
84
31
|
export declare const isPathInSubtree: (path: string, ancestor: string) => boolean;
|
|
@@ -102,6 +49,7 @@ export declare const snapshotFromConfiguration: <const States extends Machine.St
|
|
|
102
49
|
export declare const snapshotFromConfigurationAtPath: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration, path: string) => Machine.SnapshotByIdentifier<States, Machine.StateIdentifier<States>>;
|
|
103
50
|
export declare const configurationFromSnapshot: (machine: Machine.Any, snapshot: Machine.AtomicSnapshot<string, unknown>) => ActiveConfiguration;
|
|
104
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;
|
|
105
53
|
export declare const configurationFromSnapshotEffect: (machine: Machine.Any, snapshot: Machine.AtomicSnapshot<string, unknown>) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError, never>;
|
|
106
54
|
export declare const normalizeConfigurationEffect: <const States extends Machine.StateSchemas>(machine: Machine.Any, state: Machine.Snapshot<States>) => Effect.Effect<ActiveConfiguration, MachineSchemaDecodeError>;
|
|
107
55
|
export declare const validateInitialConfiguration: (machine: Machine.Any, configuration: ActiveConfiguration) => void;
|
|
@@ -117,6 +65,7 @@ export declare const configurationFromHistoryRecord: (machine: Machine.Any, curr
|
|
|
117
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>;
|
|
118
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>;
|
|
119
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;
|
|
120
69
|
export declare const getStateConfigByPath: (machine: Machine.Any, path: string) => Machine.AnyStateConfig | undefined;
|
|
121
70
|
export declare const getActiveChildPath: (machine: Machine.Any, configuration: ActiveConfiguration, path: string) => string | undefined;
|
|
122
71
|
export declare const isDirectFinalPath: (machine: Machine.Any, path: string) => boolean;
|
|
@@ -130,7 +79,9 @@ export declare const completeConfigurationEffect: <const Events extends Readonly
|
|
|
130
79
|
readonly configuration: ActiveConfiguration;
|
|
131
80
|
readonly completions: ReadonlyArray<FinalCompletion>;
|
|
132
81
|
}, MachineSchemaDecodeError>;
|
|
133
|
-
export declare const
|
|
134
|
-
|
|
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
|
+
};
|
|
135
86
|
export {};
|
|
136
|
-
//# 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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"}
|