@typeonce/effect-machine 0.3.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 +203 -16
- package/dist/Machine.d.ts +784 -289
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +158 -528
- 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} +14 -118
- 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} +11 -60
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/{machineModel.js → machine/configuration.js} +249 -544
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +1 -1
- 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} +19 -27
- 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} +35 -20
- 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 +169 -31
- package/package.json +19 -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.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
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machine schema protocol and boundary decoders.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
import type { Machine } from "../../Machine.js";
|
|
9
|
+
import { MachineSchemaDecodeError } from "./errors.js";
|
|
10
|
+
export interface DecodeBoundaryOptions {
|
|
11
|
+
readonly boundary: "input" | "event" | "emit" | "state" | "output" | "history" | "configuration";
|
|
12
|
+
readonly state?: string;
|
|
13
|
+
readonly event?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const setProtocol: (machine: Machine.Any) => void;
|
|
16
|
+
export declare const copyProtocol: (source: Machine.Any, target: Machine.Any) => void;
|
|
17
|
+
export declare const getEventName: (event: unknown) => string | undefined;
|
|
18
|
+
export declare const decodeBoundary: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => Effect.Effect<A, MachineSchemaDecodeError>;
|
|
19
|
+
export declare const decodeBoundarySync: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => A;
|
|
20
|
+
/** Constructs an event through one of the machine protocol's own schemas and
|
|
21
|
+
* records the decoded value as trusted by that protocol. Machine clones share
|
|
22
|
+
* the protocol record, while unrelated machines retain independent trust. */
|
|
23
|
+
export declare const makeEvent: <Schema extends Machine.TaggedSchema>(machine: Machine.Any, schema: Schema, input: unknown) => Schema["Type"];
|
|
24
|
+
export declare const decodeInput: <Input extends Schema.Top>(machine: Machine.Any, schema: Input, value: unknown) => Effect.Effect<Input["Type"], MachineSchemaDecodeError>;
|
|
25
|
+
export declare const decodeEvent: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EventOf<Events>, MachineSchemaDecodeError>;
|
|
26
|
+
export declare const decodeEventSync: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Machine.EventOf<Events>;
|
|
27
|
+
export declare const decodeEmit: <const Emits extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EmitOf<Emits>, MachineSchemaDecodeError>;
|
|
28
|
+
export declare const decodeEmitSync: <const Emits extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Machine.EmitOf<Emits>;
|
|
29
|
+
export declare const decodeInputSync: <Input extends Schema.Top>(machine: Machine.Any, schema: Input, value: unknown) => Input["Type"];
|
|
30
|
+
export declare const decodeStateValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
31
|
+
export declare const decodeStateValueSync: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => unknown;
|
|
32
|
+
export declare const decodeOutputValue: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => Effect.Effect<unknown, MachineSchemaDecodeError>;
|
|
33
|
+
export declare const decodeOutputValueSync: (machine: Machine.Any, node: Machine.StateNode, value: unknown) => unknown;
|
|
34
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal machine schema protocol and boundary decoders.
|
|
3
|
+
*
|
|
4
|
+
* @since 4.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Cause from "effect/Cause";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { hasProperty } from "effect/Predicate";
|
|
9
|
+
import * as Result from "effect/Result";
|
|
10
|
+
import * as Schema from "effect/Schema";
|
|
11
|
+
import { MachineSchemaDecodeError } from "./errors.js";
|
|
12
|
+
import { getStateNodeSchema, isStateInput } from "./topology.js";
|
|
13
|
+
const boundaryDecoderCache = new WeakMap();
|
|
14
|
+
const boundaryResultDecoderCache = new WeakMap();
|
|
15
|
+
const getBoundaryDecoder = (schema) => {
|
|
16
|
+
const key = schema;
|
|
17
|
+
const cached = boundaryDecoderCache.get(key);
|
|
18
|
+
if (cached !== undefined) {
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
21
|
+
const decoder = Schema.decodeUnknownEffect(Schema.toType(schema));
|
|
22
|
+
boundaryDecoderCache.set(key, decoder);
|
|
23
|
+
return decoder;
|
|
24
|
+
};
|
|
25
|
+
const getBoundaryResultDecoder = (schema) => {
|
|
26
|
+
const key = schema;
|
|
27
|
+
const cached = boundaryResultDecoderCache.get(key);
|
|
28
|
+
if (cached !== undefined) {
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
const decoder = Schema.decodeUnknownResult(Schema.toType(schema));
|
|
32
|
+
boundaryResultDecoderCache.set(key, decoder);
|
|
33
|
+
return decoder;
|
|
34
|
+
};
|
|
35
|
+
const MachineProtocolTypeId = Symbol.for("effect/Machine/protocol");
|
|
36
|
+
const getProtocolSchemas = (machine) => {
|
|
37
|
+
const protocol = machine[MachineProtocolTypeId];
|
|
38
|
+
if (protocol === undefined) {
|
|
39
|
+
throw new Error("Machine protocol is unavailable");
|
|
40
|
+
}
|
|
41
|
+
return protocol;
|
|
42
|
+
};
|
|
43
|
+
const setProtocolSchemas = (machine, protocol) => {
|
|
44
|
+
Object.defineProperty(machine, MachineProtocolTypeId, {
|
|
45
|
+
value: protocol,
|
|
46
|
+
enumerable: false
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const collectEventConstructors = (schemas) => {
|
|
50
|
+
const constructors = new Set();
|
|
51
|
+
const add = (schema) => {
|
|
52
|
+
const key = schema;
|
|
53
|
+
if (constructors.has(key))
|
|
54
|
+
return;
|
|
55
|
+
constructors.add(key);
|
|
56
|
+
if (!hasProperty(schema, "cases") || typeof schema.cases !== "object" || schema.cases === null)
|
|
57
|
+
return;
|
|
58
|
+
for (const candidate of Object.values(schema.cases)) {
|
|
59
|
+
if (((typeof candidate === "object" && candidate !== null) || typeof candidate === "function") &&
|
|
60
|
+
hasProperty(candidate, "make")) {
|
|
61
|
+
add(candidate);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
for (const schema of schemas)
|
|
66
|
+
add(schema);
|
|
67
|
+
return constructors;
|
|
68
|
+
};
|
|
69
|
+
export const setProtocol = (machine) => {
|
|
70
|
+
const events = [...machine.events, ...machine.internalEvents];
|
|
71
|
+
setProtocolSchemas(machine, {
|
|
72
|
+
event: Schema.Union(events),
|
|
73
|
+
emit: Schema.Union(machine.emits),
|
|
74
|
+
eventConstructors: collectEventConstructors(events),
|
|
75
|
+
trustedEvents: new WeakSet()
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
export const copyProtocol = (source, target) => setProtocolSchemas(target, getProtocolSchemas(source));
|
|
79
|
+
export const getEventName = (event) => hasProperty(event, "_tag") ? String(event._tag) : undefined;
|
|
80
|
+
export const decodeBoundary = (machine, schema, value, options) => getBoundaryDecoder(schema)(value).pipe(Effect.mapError((cause) => new MachineSchemaDecodeError({
|
|
81
|
+
machineId: machine.id,
|
|
82
|
+
boundary: options.boundary,
|
|
83
|
+
cause,
|
|
84
|
+
...(options.state === undefined ? {} : { state: options.state }),
|
|
85
|
+
...(options.event === undefined ? {} : { event: options.event })
|
|
86
|
+
})));
|
|
87
|
+
export const decodeBoundarySync = (machine, schema, value, options) => {
|
|
88
|
+
const decoded = getBoundaryResultDecoder(schema)(value);
|
|
89
|
+
if (Result.isFailure(decoded)) {
|
|
90
|
+
throw new MachineSchemaDecodeError({
|
|
91
|
+
machineId: machine.id,
|
|
92
|
+
boundary: options.boundary,
|
|
93
|
+
cause: decoded.failure,
|
|
94
|
+
...(options.state === undefined ? {} : { state: options.state }),
|
|
95
|
+
...(options.event === undefined ? {} : { event: options.event })
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return decoded.success;
|
|
99
|
+
};
|
|
100
|
+
const makeBoundarySync = (machine, schema, input, options) => {
|
|
101
|
+
try {
|
|
102
|
+
return schema.make(input);
|
|
103
|
+
}
|
|
104
|
+
catch (cause) {
|
|
105
|
+
const issue = cause instanceof Error ? cause.cause : undefined;
|
|
106
|
+
throw new MachineSchemaDecodeError({
|
|
107
|
+
machineId: machine.id,
|
|
108
|
+
boundary: options.boundary,
|
|
109
|
+
cause: Schema.isSchemaError(cause)
|
|
110
|
+
? cause
|
|
111
|
+
: hasProperty(issue, "~effect/SchemaIssue/Issue")
|
|
112
|
+
? new Schema.SchemaError(issue)
|
|
113
|
+
: Cause.die(cause),
|
|
114
|
+
...(options.state === undefined ? {} : { state: options.state }),
|
|
115
|
+
...(options.event === undefined ? {} : { event: options.event })
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
/** Constructs an event through one of the machine protocol's own schemas and
|
|
120
|
+
* records the decoded value as trusted by that protocol. Machine clones share
|
|
121
|
+
* the protocol record, while unrelated machines retain independent trust. */
|
|
122
|
+
export const makeEvent = (machine, schema, input) => {
|
|
123
|
+
const protocol = getProtocolSchemas(machine);
|
|
124
|
+
if (!protocol.eventConstructors.has(schema)) {
|
|
125
|
+
throw new Error("Machine.event expected a schema from the machine event protocol");
|
|
126
|
+
}
|
|
127
|
+
const inputName = getEventName(input);
|
|
128
|
+
const event = makeBoundarySync(machine, schema, input, inputName === undefined ? { boundary: "event" } : { boundary: "event", event: inputName });
|
|
129
|
+
protocol.trustedEvents.add(event);
|
|
130
|
+
return event;
|
|
131
|
+
};
|
|
132
|
+
const isTrustedEvent = (protocol, event) => typeof event === "object" && event !== null && protocol.trustedEvents.has(event);
|
|
133
|
+
export const decodeInput = (machine, schema, value) => decodeBoundary(machine, schema, value, { boundary: "input" });
|
|
134
|
+
export const decodeEvent = (machine, event) => {
|
|
135
|
+
const protocol = getProtocolSchemas(machine);
|
|
136
|
+
if (isTrustedEvent(protocol, event)) {
|
|
137
|
+
return Effect.succeed(event);
|
|
138
|
+
}
|
|
139
|
+
const eventName = getEventName(event);
|
|
140
|
+
return decodeBoundary(machine, protocol.event, event, eventName === undefined ? { boundary: "event" } : { boundary: "event", event: eventName });
|
|
141
|
+
};
|
|
142
|
+
export const decodeEventSync = (machine, event) => {
|
|
143
|
+
const protocol = getProtocolSchemas(machine);
|
|
144
|
+
if (isTrustedEvent(protocol, event)) {
|
|
145
|
+
return event;
|
|
146
|
+
}
|
|
147
|
+
const eventName = getEventName(event);
|
|
148
|
+
return decodeBoundarySync(machine, protocol.event, event, eventName === undefined ? { boundary: "event" } : { boundary: "event", event: eventName });
|
|
149
|
+
};
|
|
150
|
+
export const decodeEmit = (machine, event) => {
|
|
151
|
+
const eventName = getEventName(event);
|
|
152
|
+
return decodeBoundary(machine, getProtocolSchemas(machine).emit, event, eventName === undefined ? { boundary: "emit" } : { boundary: "emit", event: eventName });
|
|
153
|
+
};
|
|
154
|
+
export const decodeEmitSync = (machine, event) => {
|
|
155
|
+
const eventName = getEventName(event);
|
|
156
|
+
return decodeBoundarySync(machine, getProtocolSchemas(machine).emit, event, eventName === undefined ? { boundary: "emit" } : { boundary: "emit", event: eventName });
|
|
157
|
+
};
|
|
158
|
+
export const decodeInputSync = (machine, schema, value) => decodeBoundarySync(machine, schema, value, { boundary: "input" });
|
|
159
|
+
export const decodeStateValue = (machine, node, value) => isStateInput(value)
|
|
160
|
+
? getStateNodeSchema(node).makeEffect(value.input).pipe(Effect.mapError((cause) => new MachineSchemaDecodeError({
|
|
161
|
+
machineId: machine.id,
|
|
162
|
+
boundary: "state",
|
|
163
|
+
state: node.path,
|
|
164
|
+
cause: new Schema.SchemaError(cause)
|
|
165
|
+
})))
|
|
166
|
+
: decodeBoundary(machine, getStateNodeSchema(node), value, { boundary: "state", state: node.path });
|
|
167
|
+
export const decodeStateValueSync = (machine, node, value) => {
|
|
168
|
+
if (!isStateInput(value)) {
|
|
169
|
+
return decodeBoundarySync(machine, getStateNodeSchema(node), value, { boundary: "state", state: node.path });
|
|
170
|
+
}
|
|
171
|
+
return makeBoundarySync(machine, getStateNodeSchema(node), value.input, {
|
|
172
|
+
boundary: "state",
|
|
173
|
+
state: node.path
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
export const decodeOutputValue = (machine, node, value) => node.output === undefined
|
|
177
|
+
? Effect.succeed(value)
|
|
178
|
+
: decodeBoundary(machine, node.output, value, { boundary: "output", state: node.path });
|
|
179
|
+
export const decodeOutputValueSync = (machine, node, value) => node.output === undefined
|
|
180
|
+
? value
|
|
181
|
+
: decodeBoundarySync(machine, node.output, value, { boundary: "output", state: node.path });
|
|
182
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/internal/machine/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type * as Machine from "../../Machine.js";
|
|
2
|
+
/** Canonical proof required before a machine can be planned or executed. */
|
|
3
|
+
export type EnsureExecutable<States extends Machine.Machine.StateSchemas, UnhandledStates extends Machine.Machine.StateIdentifier<States>, OutputStates extends Machine.Machine.StateIdentifier<States>> = Machine.Machine.EnsureOutputImplementations<States, OutputStates> & Machine.Machine.EnsureHistoryImplementations<States, UnhandledStates>;
|
|
4
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAEhD,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,OAAO,CAAC,OAAO,CAAC,YAAY,EAC3C,eAAe,SAAS,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAC/D,YAAY,SAAS,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAE1D,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,MAAM,EAAE,YAAY,CAAC,GACjE,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../src/internal/machine/readiness.ts"],"names":[],"mappings":""}
|
|
@@ -7,14 +7,19 @@ import * as Cause from "effect/Cause";
|
|
|
7
7
|
import * as Context from "effect/Context";
|
|
8
8
|
import * as Effect from "effect/Effect";
|
|
9
9
|
import * as Option from "effect/Option";
|
|
10
|
+
import * as Queue from "effect/Queue";
|
|
10
11
|
import * as Scope from "effect/Scope";
|
|
11
12
|
import * as Stream from "effect/Stream";
|
|
12
|
-
import { ChildAlreadyExistsError, StoppedError } from "./
|
|
13
|
+
import { ChildAlreadyExistsError, StoppedError } from "./errors.js";
|
|
13
14
|
type ChildDescriptor = {
|
|
14
15
|
readonly id: string;
|
|
15
16
|
readonly machine: object;
|
|
16
17
|
};
|
|
17
18
|
type ChildSelector = string | ChildDescriptor;
|
|
19
|
+
/** @internal */
|
|
20
|
+
export declare const activeSnapshotObserver: unique symbol;
|
|
21
|
+
/** @internal */
|
|
22
|
+
export declare const sendParentOverride: unique symbol;
|
|
18
23
|
export type RuntimeSnapshot<State, Error = never, Output = never> = {
|
|
19
24
|
readonly status: "active";
|
|
20
25
|
readonly state: State;
|
|
@@ -98,11 +103,79 @@ export interface ProcessScope<Event> {
|
|
|
98
103
|
}
|
|
99
104
|
export interface ProcessContext<State, Event> extends ProcessScope<Event> {
|
|
100
105
|
readonly receive: Effect.Effect<Event>;
|
|
106
|
+
/** @internal */
|
|
107
|
+
readonly mailbox?: Queue.Dequeue<Event>;
|
|
108
|
+
/** @internal */
|
|
109
|
+
readonly poll?: Effect.Effect<Option.Option<Event>>;
|
|
101
110
|
readonly state: Effect.Effect<State>;
|
|
102
111
|
readonly setState: (state: State) => Effect.Effect<void>;
|
|
103
112
|
readonly updateState: <E, R>(f: (state: State) => Effect.Effect<State, E, R>) => Effect.Effect<void, E, R>;
|
|
113
|
+
/** Present only when a compiled statechart is forced through the generic runtime. @internal */
|
|
114
|
+
readonly ownedChildren?: OwnedChildRuntime;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Owner-local execution context for compiled statecharts.
|
|
118
|
+
*
|
|
119
|
+
* Unlike `ProcessContext`, synchronous mailbox and state operations do not
|
|
120
|
+
* introduce an Effect boundary. The compiled drain still returns an Effect so
|
|
121
|
+
* actor commands, invokes, observation callbacks, interruption, and the Effect
|
|
122
|
+
* scheduler remain explicit at their actual boundaries.
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
export interface CompiledProcessContext<State, Event> {
|
|
127
|
+
readonly scope: ProcessScope<Event>;
|
|
128
|
+
readonly ownedChildren: OwnedChildRuntime;
|
|
129
|
+
readonly poll: () => Option.Option<Event>;
|
|
130
|
+
readonly state: () => State;
|
|
131
|
+
readonly commit: (state: State) => Effect.Effect<void> | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Publishes the current synchronous segment before continuing with work that
|
|
134
|
+
* may suspend, run user effects, or make the committed state observable.
|
|
135
|
+
*/
|
|
136
|
+
readonly runAfterChanges: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
137
|
+
executionState: unknown;
|
|
138
|
+
}
|
|
139
|
+
type CompiledProcessInitial<State, Output> = {
|
|
140
|
+
readonly state: State;
|
|
141
|
+
readonly done: false;
|
|
142
|
+
readonly output: undefined;
|
|
143
|
+
} | {
|
|
144
|
+
readonly state: State;
|
|
145
|
+
readonly done: true;
|
|
146
|
+
readonly output: Output;
|
|
147
|
+
} | {
|
|
148
|
+
readonly state: State;
|
|
149
|
+
readonly done: boolean;
|
|
150
|
+
readonly output: Output | undefined;
|
|
151
|
+
readonly executionState: unknown;
|
|
152
|
+
};
|
|
153
|
+
export type CompiledProcessDrain<State, Event, Error, Requirements, Output> = {
|
|
154
|
+
readonly _tag: "Process";
|
|
155
|
+
readonly run: (context: ProcessContext<State, Event>) => Effect.Effect<Option.Option<Output>, Error, Requirements>;
|
|
156
|
+
} | {
|
|
157
|
+
readonly _tag: "Owned";
|
|
158
|
+
readonly run: (context: CompiledProcessContext<State, Event>) => Effect.Effect<Option.Option<Output>, Error, Requirements>;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* The complete capability descriptor consumed by the compact process runtime.
|
|
162
|
+
* Generic process logic omits this field entirely.
|
|
163
|
+
*
|
|
164
|
+
* @internal
|
|
165
|
+
*/
|
|
166
|
+
export interface CompiledProcessExecution<State, Event, Error, Requirements, Output, InitialError> {
|
|
167
|
+
readonly _tag: "Compiled";
|
|
168
|
+
readonly childless: boolean;
|
|
169
|
+
readonly initial?: (scope: ProcessScope<Event>) => Effect.Effect<CompiledProcessInitial<State, Output>, InitialError, Requirements>;
|
|
170
|
+
readonly initialSync?: (scope: ProcessScope<Event>) => CompiledProcessInitial<State, Output>;
|
|
171
|
+
readonly drain: CompiledProcessDrain<State, Event, Error, Requirements, Output>;
|
|
104
172
|
}
|
|
173
|
+
export type ProcessExecution<State, Event, Error, Requirements, Output, InitialError> = {
|
|
174
|
+
readonly _tag: "Childless";
|
|
175
|
+
} | CompiledProcessExecution<State, Event, Error, Requirements, Output, InitialError>;
|
|
105
176
|
export interface ProcessLogic<State, Event, out Error = never, out Requirements = never, out Output = never, out InitialError = never> {
|
|
177
|
+
/** @internal */
|
|
178
|
+
readonly execution?: ProcessExecution<State, Event, Error, Requirements, Output, InitialError>;
|
|
106
179
|
initial(scope: ProcessScope<Event>): Effect.Effect<State, InitialError, Requirements>;
|
|
107
180
|
run(context: ProcessContext<State, Event>): Effect.Effect<Output, Error, Requirements>;
|
|
108
181
|
}
|
|
@@ -111,6 +184,11 @@ export interface ProcessSpawn {
|
|
|
111
184
|
<ChildState, ChildEvent, ChildError, ChildRequirements, ChildOutput, ChildInitialError = never>(logic: ProcessLogic<ChildState, ChildEvent, ChildError, ChildRequirements, ChildOutput, ChildInitialError>, options: {
|
|
112
185
|
readonly id: string;
|
|
113
186
|
readonly descriptor?: ChildDescriptor;
|
|
187
|
+
readonly onOutcome?: (outcome: RuntimeOutcome<ChildState, ChildError, ChildOutput>) => Effect.Effect<void>;
|
|
188
|
+
readonly [activeSnapshotObserver]?: (snapshot: Extract<RuntimeSnapshot<ChildState, ChildError, ChildOutput>, {
|
|
189
|
+
readonly status: "active";
|
|
190
|
+
}>) => Effect.Effect<void>;
|
|
191
|
+
readonly [sendParentOverride]?: (event: unknown) => Effect.Effect<void, StoppedError>;
|
|
114
192
|
}): Effect.Effect<MachineRef<ChildState, ChildEvent, ChildError, ChildOutput>, ChildAlreadyExistsError | ChildInitialError, Exclude<ChildRequirements, Scope.Scope>>;
|
|
115
193
|
}
|
|
116
194
|
declare const MachineRuntime_base: Context.ServiceClass<MachineRuntime, "effect/Machine/MachineRuntime", ProcessScope<any>>;
|
|
@@ -118,8 +196,32 @@ export declare class MachineRuntime extends MachineRuntime_base {
|
|
|
118
196
|
}
|
|
119
197
|
export declare const provideMachineRuntime: <A, E, R, Event>(effect: Effect.Effect<A, E, R>, scope: ProcessScope<Event>) => Effect.Effect<A, E, Exclude<R, MachineRuntime>>;
|
|
120
198
|
export declare const watch: <State, Event, Error = never, Output = never>(ref: MachineRef<State, Event, Error, Output>) => Stream.Stream<RuntimeOutcome<State, Error, Output>>;
|
|
199
|
+
/** @internal */
|
|
200
|
+
export interface OwnedChildSpawnOptions {
|
|
201
|
+
readonly key: string;
|
|
202
|
+
readonly path: string;
|
|
203
|
+
readonly id: string;
|
|
204
|
+
readonly duplicateId: string;
|
|
205
|
+
readonly descriptor?: ChildDescriptor;
|
|
206
|
+
readonly onOutcome: (isCurrent: () => boolean, outcome: RuntimeOutcome<any, any, any>) => Effect.Effect<void>;
|
|
207
|
+
readonly onSnapshot?: (isCurrent: () => boolean, snapshot: Extract<RuntimeSnapshot<any, any, any>, {
|
|
208
|
+
readonly status: "active";
|
|
209
|
+
}>) => Effect.Effect<void>;
|
|
210
|
+
readonly sendParent: (isCurrent: () => boolean, event: unknown) => Effect.Effect<void, StoppedError>;
|
|
211
|
+
}
|
|
212
|
+
/** @internal */
|
|
213
|
+
export interface OwnedChildRuntime {
|
|
214
|
+
readonly spawn: (makeLogic: () => ProcessLogic<any, any, any, any, any, any>, options: OwnedChildSpawnOptions) => Effect.Effect<void, any, any>;
|
|
215
|
+
readonly stopAll: () => Effect.Effect<void>;
|
|
216
|
+
readonly stopPaths: (paths: ReadonlyArray<string>) => Effect.Effect<void> | undefined;
|
|
217
|
+
}
|
|
218
|
+
export type ProcessRuntimeStrategy = "generic" | "compiled" | "auto";
|
|
219
|
+
/** @internal Test-only startup strategy selection. */
|
|
220
|
+
export declare const startProcessWithStrategyForTesting: <State, Event, Error = never, Requirements = never, Output = never, InitialError = never>(logic: ProcessLogic<State, Event, Error, Requirements, Output, InitialError>, strategy: ProcessRuntimeStrategy, options?: {
|
|
221
|
+
readonly id?: string;
|
|
222
|
+
}) => Effect.Effect<MachineRef<State, Event, Error, Output>, InitialError, Requirements>;
|
|
121
223
|
export declare const startProcess: <State, Event, Error = never, Requirements = never, Output = never, InitialError = never>(logic: ProcessLogic<State, Event, Error, Requirements, Output, InitialError>, options?: {
|
|
122
224
|
readonly id?: string;
|
|
123
225
|
}) => Effect.Effect<MachineRef<State, Event, Error, Output>, InitialError, Requirements>;
|
|
124
226
|
export {};
|
|
125
|
-
//# sourceMappingURL=
|
|
227
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/runtime.ts"],"names":[],"mappings":"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"}
|