@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.
Files changed (150) hide show
  1. package/README.md +345 -42
  2. package/dist/Machine.d.ts +1273 -347
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +161 -426
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/activities.d.ts +57 -0
  7. package/dist/internal/machine/activities.d.ts.map +1 -0
  8. package/dist/internal/machine/activities.js +49 -0
  9. package/dist/internal/machine/activities.js.map +1 -0
  10. package/dist/internal/machine/atom.d.ts +69 -0
  11. package/dist/internal/machine/atom.d.ts.map +1 -0
  12. package/dist/{AtomMachine.js → internal/machine/atom.js} +19 -94
  13. package/dist/internal/machine/atom.js.map +1 -0
  14. package/dist/internal/machine/cluster.d.ts +63 -0
  15. package/dist/internal/machine/cluster.d.ts.map +1 -0
  16. package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
  17. package/dist/internal/machine/cluster.js.map +1 -0
  18. package/dist/internal/machine/command.d.ts +16 -0
  19. package/dist/internal/machine/command.d.ts.map +1 -0
  20. package/dist/internal/machine/command.js +45 -0
  21. package/dist/internal/machine/command.js.map +1 -0
  22. package/dist/internal/machine/commandRuntime.d.ts +13 -0
  23. package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
  24. package/dist/internal/machine/commandRuntime.js +16 -0
  25. package/dist/internal/machine/commandRuntime.js.map +1 -0
  26. package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +32 -38
  27. package/dist/internal/machine/configuration.d.ts.map +1 -0
  28. package/dist/internal/machine/configuration.js +965 -0
  29. package/dist/internal/machine/configuration.js.map +1 -0
  30. package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +3 -3
  31. package/dist/internal/machine/errors.d.ts.map +1 -0
  32. package/dist/internal/{machineErrors.js → machine/errors.js} +1 -1
  33. package/dist/internal/machine/errors.js.map +1 -0
  34. package/dist/internal/machine/executionPlan.d.ts +49 -0
  35. package/dist/internal/machine/executionPlan.d.ts.map +1 -0
  36. package/dist/internal/machine/executionPlan.js +667 -0
  37. package/dist/internal/machine/executionPlan.js.map +1 -0
  38. package/dist/internal/machine/invocation.d.ts +23 -0
  39. package/dist/internal/machine/invocation.d.ts.map +1 -0
  40. package/dist/internal/machine/invocation.js +77 -0
  41. package/dist/internal/machine/invocation.js.map +1 -0
  42. package/dist/internal/machine/machine.d.ts +183 -0
  43. package/dist/internal/machine/machine.d.ts.map +1 -0
  44. package/dist/internal/machine/machine.js +552 -0
  45. package/dist/internal/machine/machine.js.map +1 -0
  46. package/dist/internal/machine/planner.d.ts +182 -0
  47. package/dist/internal/machine/planner.d.ts.map +1 -0
  48. package/dist/internal/machine/planner.js +1082 -0
  49. package/dist/internal/machine/planner.js.map +1 -0
  50. package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +10 -4
  51. package/dist/internal/machine/process.d.ts.map +1 -0
  52. package/dist/internal/machine/process.js +446 -0
  53. package/dist/internal/machine/process.js.map +1 -0
  54. package/dist/internal/machine/protocol.d.ts +34 -0
  55. package/dist/internal/machine/protocol.d.ts.map +1 -0
  56. package/dist/internal/machine/protocol.js +182 -0
  57. package/dist/internal/machine/protocol.js.map +1 -0
  58. package/dist/internal/machine/readiness.d.ts +4 -0
  59. package/dist/internal/machine/readiness.d.ts.map +1 -0
  60. package/dist/internal/machine/readiness.js +2 -0
  61. package/dist/internal/machine/readiness.js.map +1 -0
  62. package/dist/internal/{machineRuntime.d.ts → machine/runtime.d.ts} +104 -2
  63. package/dist/internal/machine/runtime.d.ts.map +1 -0
  64. package/dist/internal/machine/runtime.js +1381 -0
  65. package/dist/internal/machine/runtime.js.map +1 -0
  66. package/dist/internal/machine/serialization.d.ts +14 -0
  67. package/dist/internal/machine/serialization.d.ts.map +1 -0
  68. package/dist/internal/machine/serialization.js +338 -0
  69. package/dist/internal/machine/serialization.js.map +1 -0
  70. package/dist/internal/machine/stateDefinition.d.ts +15 -0
  71. package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
  72. package/dist/internal/machine/stateDefinition.js +210 -0
  73. package/dist/internal/machine/stateDefinition.js.map +1 -0
  74. package/dist/internal/machine/symbols.d.ts +3 -0
  75. package/dist/internal/machine/symbols.d.ts.map +1 -0
  76. package/dist/internal/machine/symbols.js +3 -0
  77. package/dist/internal/machine/symbols.js.map +1 -0
  78. package/dist/internal/machine/topology.d.ts +98 -0
  79. package/dist/internal/machine/topology.d.ts.map +1 -0
  80. package/dist/internal/machine/topology.js +347 -0
  81. package/dist/internal/machine/topology.js.map +1 -0
  82. package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
  83. package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
  84. package/dist/internal/testing/machine/arbitrary.js +68 -0
  85. package/dist/internal/testing/machine/arbitrary.js.map +1 -0
  86. package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
  87. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
  88. package/dist/internal/testing/machine/finiteModel.js +976 -0
  89. package/dist/internal/testing/machine/finiteModel.js.map +1 -0
  90. package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
  91. package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
  92. package/dist/internal/testing/machine/referenceModel.js +1012 -0
  93. package/dist/internal/testing/machine/referenceModel.js.map +1 -0
  94. package/dist/internal/testing/machine/runtime.d.ts +328 -0
  95. package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
  96. package/dist/internal/testing/machine/runtime.js +437 -0
  97. package/dist/internal/testing/machine/runtime.js.map +1 -0
  98. package/dist/internal/testing/machine/verification.d.ts +33 -0
  99. package/dist/internal/testing/machine/verification.d.ts.map +1 -0
  100. package/dist/internal/testing/machine/verification.js +1446 -0
  101. package/dist/internal/testing/machine/verification.js.map +1 -0
  102. package/dist/testing/MachineTest.d.ts +606 -0
  103. package/dist/testing/MachineTest.d.ts.map +1 -0
  104. package/dist/testing/MachineTest.js +102 -0
  105. package/dist/testing/MachineTest.js.map +1 -0
  106. package/dist/testing/index.d.ts +7 -0
  107. package/dist/testing/index.d.ts.map +1 -0
  108. package/dist/testing/index.js +7 -0
  109. package/dist/testing/index.js.map +1 -0
  110. package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +22 -30
  111. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
  112. package/dist/unstable/cluster/ClusterMachine.js +126 -0
  113. package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
  114. package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
  115. package/dist/unstable/cluster/index.d.ts.map +1 -0
  116. package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
  117. package/dist/unstable/cluster/index.js.map +1 -0
  118. package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +40 -23
  119. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
  120. package/dist/unstable/reactivity/AtomMachine.js +113 -0
  121. package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
  122. package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
  123. package/dist/unstable/reactivity/index.d.ts.map +1 -0
  124. package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
  125. package/dist/unstable/reactivity/index.js.map +1 -0
  126. package/docs/agent-guide.md +271 -38
  127. package/package.json +23 -13
  128. package/dist/AtomMachine.d.ts.map +0 -1
  129. package/dist/AtomMachine.js.map +0 -1
  130. package/dist/ClusterMachine.d.ts.map +0 -1
  131. package/dist/ClusterMachine.js.map +0 -1
  132. package/dist/cluster.d.ts.map +0 -1
  133. package/dist/cluster.js.map +0 -1
  134. package/dist/internal/machineErrors.d.ts.map +0 -1
  135. package/dist/internal/machineErrors.js.map +0 -1
  136. package/dist/internal/machineModel.d.ts.map +0 -1
  137. package/dist/internal/machineModel.js +0 -766
  138. package/dist/internal/machineModel.js.map +0 -1
  139. package/dist/internal/machinePlanner.d.ts +0 -74
  140. package/dist/internal/machinePlanner.d.ts.map +0 -1
  141. package/dist/internal/machinePlanner.js +0 -621
  142. package/dist/internal/machinePlanner.js.map +0 -1
  143. package/dist/internal/machineProcess.d.ts.map +0 -1
  144. package/dist/internal/machineProcess.js +0 -181
  145. package/dist/internal/machineProcess.js.map +0 -1
  146. package/dist/internal/machineRuntime.d.ts.map +0 -1
  147. package/dist/internal/machineRuntime.js +0 -365
  148. package/dist/internal/machineRuntime.js.map +0 -1
  149. package/dist/reactivity.d.ts.map +0 -1
  150. package/dist/reactivity.js.map +0 -1
@@ -0,0 +1,210 @@
1
+ import * as Schema from "effect/Schema";
2
+ import * as SchemaAST from "effect/SchemaAST";
3
+ export const StateNodePropertyPolicy = {
4
+ atomic: ["schema", "type"],
5
+ final: ["schema", "type", "output"],
6
+ compound: ["schema", "type", "initial", "states"],
7
+ parallel: ["schema", "type", "output", "states"],
8
+ history: ["type", "history", "annotations"],
9
+ choice: ["type", "annotations"]
10
+ };
11
+ export const PseudoStateAnnotationProperties = ["title", "description", "documentation"];
12
+ const hasOwn = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
13
+ const displayPath = (parent, key) => {
14
+ const segment = typeof key === "symbol" ? `[${String(key)}]` : key === "" ? "<empty>" : String(key);
15
+ return parent === "" ? segment : `${parent}.${segment}`;
16
+ };
17
+ const fail = (boundary, path, message) => {
18
+ throw new Error(`${boundary} invalid state definition at "${path}": ${message}`);
19
+ };
20
+ const isNumericForm = (key) => Number.isFinite(Number(key));
21
+ const unionEvidence = (evidence) => evidence.length === 0 || evidence.some((result) => result === "untagged")
22
+ ? "untagged"
23
+ : evidence.every((result) => result === "tagged")
24
+ ? "tagged"
25
+ : "opaque";
26
+ const propertyKeyEvidence = (ast, seen) => {
27
+ if (seen.has(ast))
28
+ return "opaque";
29
+ if (SchemaAST.isString(ast) || SchemaAST.isNumber(ast) || SchemaAST.isSymbol(ast))
30
+ return "tagged";
31
+ if (SchemaAST.isTemplateLiteral(ast) || SchemaAST.isUniqueSymbol(ast) || SchemaAST.isEnum(ast))
32
+ return "tagged";
33
+ if (SchemaAST.isLiteral(ast)) {
34
+ return typeof ast.literal === "string" || typeof ast.literal === "number" ? "tagged" : "untagged";
35
+ }
36
+ const nextSeen = new Set(seen).add(ast);
37
+ if (SchemaAST.isUnion(ast))
38
+ return unionEvidence(ast.types.map((member) => propertyKeyEvidence(member, nextSeen)));
39
+ if (SchemaAST.isSuspend(ast))
40
+ return propertyKeyEvidence(ast.thunk(), nextSeen);
41
+ if (SchemaAST.isDeclaration(ast))
42
+ return "opaque";
43
+ return "untagged";
44
+ };
45
+ const taggedSchemaEvidence = (ast, seen = new Set()) => {
46
+ if (seen.has(ast))
47
+ return "opaque";
48
+ if (SchemaAST.isObjects(ast)) {
49
+ const tag = ast.propertySignatures.find(({ name }) => name === "_tag")?.type;
50
+ if (tag === undefined || SchemaAST.isOptional(tag))
51
+ return "untagged";
52
+ return propertyKeyEvidence(tag, new Set(seen).add(ast));
53
+ }
54
+ const nextSeen = new Set(seen).add(ast);
55
+ if (SchemaAST.isUnion(ast))
56
+ return unionEvidence(ast.types.map((member) => taggedSchemaEvidence(member, nextSeen)));
57
+ if (SchemaAST.isSuspend(ast))
58
+ return taggedSchemaEvidence(ast.thunk(), nextSeen);
59
+ // A declaration's decoded Type is intentionally opaque at runtime. Its type
60
+ // parameters describe values contained by the declaration, not its outer
61
+ // shape, so neither they nor private sentinel metadata can prove the public
62
+ // structural TaggedSchema contract without rejecting valid Schema.declare
63
+ // schemas or relying on an undocumented Effect export.
64
+ if (SchemaAST.isDeclaration(ast))
65
+ return "opaque";
66
+ return "untagged";
67
+ };
68
+ /**
69
+ * Rejects schemas whose decoded AST proves they cannot satisfy the structural
70
+ * `_tag: PropertyKey` contract of `Machine.TaggedSchema`. Declarations without
71
+ * sentinel metadata stay opaque: their Type is unavailable at runtime, so
72
+ * rejecting them would reject valid `Schema.declare` schemas. Consequently an
73
+ * unsafe cast or JavaScript caller can pass an opaque untagged declaration;
74
+ * this boundary only promises to reject schemas whose mismatch is provable.
75
+ */
76
+ const isTaggedSchema = (value) => Schema.isSchema(value) && taggedSchemaEvidence(SchemaAST.toType(value.ast)) !== "untagged";
77
+ const validateStateKey = (boundary, parent, key) => {
78
+ const path = displayPath(parent, key);
79
+ if (typeof key === "symbol") {
80
+ return fail(boundary, path, "state keys must be strings, not symbols");
81
+ }
82
+ if (typeof key === "number") {
83
+ return fail(boundary, path, "state keys cannot use numeric forms");
84
+ }
85
+ if (key === "") {
86
+ return fail(boundary, path, "state keys cannot be empty");
87
+ }
88
+ if (key === "__proto__") {
89
+ return fail(boundary, path, "the state key \"__proto__\" is not allowed");
90
+ }
91
+ if (key.includes(".")) {
92
+ return fail(boundary, path, "state keys cannot contain \".\"");
93
+ }
94
+ if (isNumericForm(key)) {
95
+ return fail(boundary, path, "state keys cannot use numeric forms");
96
+ }
97
+ return path;
98
+ };
99
+ const assertPlainRecord = (boundary, path, value, description) => {
100
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
101
+ fail(boundary, path, `${description} must be a plain record`);
102
+ }
103
+ const prototype = Object.getPrototypeOf(value);
104
+ if (prototype !== Object.prototype && prototype !== null) {
105
+ fail(boundary, displayPath(path === "<root>" ? "" : path, "__proto__"), `${description} must not declare an implicit "__proto__" state key`);
106
+ }
107
+ };
108
+ const assertAllowedProperties = (boundary, path, node, kind) => {
109
+ const allowed = StateNodePropertyPolicy[kind];
110
+ for (const property of Reflect.ownKeys(node)) {
111
+ if (!allowed.includes(property)) {
112
+ fail(boundary, path, `${kind} states cannot declare property "${String(property)}"`);
113
+ }
114
+ }
115
+ };
116
+ const validatePseudoAnnotations = (boundary, path, annotations) => {
117
+ assertPlainRecord(boundary, `${path}.annotations`, annotations, "pseudo-state annotations");
118
+ for (const property of Reflect.ownKeys(annotations)) {
119
+ if (!PseudoStateAnnotationProperties.includes(property)) {
120
+ fail(boundary, `${path}.annotations`, `pseudo-state annotations cannot declare property "${String(property)}"`);
121
+ }
122
+ if (typeof annotations[property] !== "string") {
123
+ fail(boundary, `${path}.annotations.${String(property)}`, "pseudo-state annotation values must be strings");
124
+ }
125
+ }
126
+ };
127
+ const validateStateTree = (boundary, states, parent, allowPseudoStates) => {
128
+ const treePath = parent === "" ? "<root>" : parent;
129
+ assertPlainRecord(boundary, treePath, states, "state trees");
130
+ for (const key of Reflect.ownKeys(states)) {
131
+ const path = validateStateKey(boundary, parent, key);
132
+ const node = states[key];
133
+ // Effect schemas have their own runtime properties. They are complete
134
+ // atomic node definitions and must be recognized before config validation.
135
+ if (Schema.isSchema(node)) {
136
+ if (!isTaggedSchema(node)) {
137
+ fail(boundary, path, "state schemas must decode to an object with a required PropertyKey _tag");
138
+ }
139
+ continue;
140
+ }
141
+ assertPlainRecord(boundary, path, node, "state nodes");
142
+ const type = node.type;
143
+ const kind = type === "history" ?
144
+ "history"
145
+ : type === "choice" ?
146
+ "choice"
147
+ : type === "parallel" ?
148
+ "parallel"
149
+ : type === "final" ?
150
+ "final"
151
+ : hasOwn(node, "states") ?
152
+ "compound"
153
+ : "atomic";
154
+ assertAllowedProperties(boundary, path, node, kind);
155
+ if (kind === "history" || kind === "choice") {
156
+ if (!allowPseudoStates) {
157
+ fail(boundary, path, `${kind} states must be declared below an active parent state`);
158
+ }
159
+ if (hasOwn(node, "annotations")) {
160
+ validatePseudoAnnotations(boundary, path, node.annotations);
161
+ }
162
+ if (kind === "history" && hasOwn(node, "history") && node.history !== "shallow" && node.history !== "deep") {
163
+ fail(boundary, `${path}.history`, "history must be \"shallow\" or \"deep\"");
164
+ }
165
+ continue;
166
+ }
167
+ if (!hasOwn(node, "schema") || !isTaggedSchema(node.schema)) {
168
+ fail(boundary, `${path}.schema`, "active states must declare an Effect Schema with a required PropertyKey _tag");
169
+ }
170
+ if (kind === "atomic" && hasOwn(node, "type") && node.type !== "active") {
171
+ fail(boundary, `${path}.type`, "atomic state type must be \"active\"");
172
+ }
173
+ if (kind === "final" && node.type !== "final") {
174
+ fail(boundary, `${path}.type`, "final state type must be \"final\"");
175
+ }
176
+ if (kind === "compound" && hasOwn(node, "type") && node.type !== "active") {
177
+ fail(boundary, `${path}.type`, "compound state type must be \"active\"");
178
+ }
179
+ if (kind === "parallel" && node.type !== "parallel") {
180
+ fail(boundary, `${path}.type`, "parallel state type must be \"parallel\"");
181
+ }
182
+ if ((kind === "final" || kind === "parallel") && hasOwn(node, "output") && !Schema.isSchema(node.output)) {
183
+ fail(boundary, `${path}.output`, "state output must be an Effect Schema");
184
+ }
185
+ if (kind === "compound") {
186
+ if (typeof node.initial !== "string") {
187
+ fail(boundary, `${path}.initial`, "compound states must declare an initial child key");
188
+ }
189
+ const initialKey = node.initial;
190
+ validateStateTree(boundary, node.states, path, true);
191
+ if (!hasOwn(node.states, initialKey)) {
192
+ fail(boundary, `${path}.initial`, `compound initial child "${initialKey}" does not exist`);
193
+ }
194
+ const initial = node.states[initialKey];
195
+ if (!Schema.isSchema(initial) && typeof initial === "object" && initial !== null &&
196
+ initial.type === "history") {
197
+ fail(boundary, `${path}.initial`, "compound initial children cannot be history states");
198
+ }
199
+ continue;
200
+ }
201
+ if (kind === "parallel") {
202
+ if (!hasOwn(node, "states")) {
203
+ fail(boundary, `${path}.states`, "parallel states must declare child regions");
204
+ }
205
+ validateStateTree(boundary, node.states, path, true);
206
+ }
207
+ }
208
+ };
209
+ export const validateStateDefinitions = (states, boundary) => validateStateTree(boundary, states, "", false);
210
+ //# sourceMappingURL=stateDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateDefinition.js","sourceRoot":"","sources":["../../../src/internal/machine/stateDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** @internal */
2
+ export declare const InitialEventTypeId: unique symbol;
3
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/symbols.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAA8C,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** @internal */
2
+ export const InitialEventTypeId = Symbol("effect/Machine/InitialEvent");
3
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/internal/machine/symbols.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,6BAA6B,CAAC,CAAA"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Internal machine topology and target helpers.
3
+ *
4
+ * @since 4.0.0
5
+ */
6
+ import * as Option from "effect/Option";
7
+ import * as Schema from "effect/Schema";
8
+ import type { Machine } from "../../Machine.js";
9
+ export declare const TargetTypeId = "~effect/Machine/Target";
10
+ export declare const TargetSnapshotTypeId: unique symbol;
11
+ export declare const StateInputTypeId: unique symbol;
12
+ export declare const StateConstructionTypeId: unique symbol;
13
+ export declare const HistoryTargetTypeId: unique symbol;
14
+ export declare const ChoiceTargetTypeId: unique symbol;
15
+ interface StateInput {
16
+ readonly [StateInputTypeId]: typeof StateInputTypeId;
17
+ readonly input: unknown;
18
+ }
19
+ /** Internal target produced by the history target builder. History nodes are
20
+ * routing instructions and are never part of an active configuration. */
21
+ export interface HistoryTarget {
22
+ readonly [HistoryTargetTypeId]: typeof HistoryTargetTypeId;
23
+ readonly path: string;
24
+ readonly parent: string;
25
+ }
26
+ /** Internal target produced by a choice target builder. */
27
+ export interface ChoiceTarget {
28
+ readonly [ChoiceTargetTypeId]: typeof ChoiceTargetTypeId;
29
+ readonly path: string;
30
+ readonly parent: string;
31
+ readonly values?: Readonly<Record<string, unknown>>;
32
+ }
33
+ export declare const makeHistoryTarget: (path: string, parent: string) => HistoryTarget;
34
+ export declare const isHistoryTarget: (u: unknown) => u is HistoryTarget;
35
+ export declare const makeChoiceTarget: (path: string, parent: string, values?: Readonly<Record<string, unknown>>) => ChoiceTarget;
36
+ export declare const isChoiceTarget: (u: unknown) => u is ChoiceTarget;
37
+ interface NormalizedStateNodeDefinitionBase {
38
+ readonly annotations: Readonly<Machine.StateNodeAnnotations> | undefined;
39
+ }
40
+ type NormalizedStateNodeDefinition = (NormalizedStateNodeDefinitionBase & {
41
+ readonly type: "atomic";
42
+ readonly schema: Machine.TaggedSchema;
43
+ readonly output: undefined;
44
+ readonly history: undefined;
45
+ readonly initial: undefined;
46
+ readonly states: undefined;
47
+ }) | (NormalizedStateNodeDefinitionBase & {
48
+ readonly type: "compound";
49
+ readonly schema: Machine.TaggedSchema;
50
+ readonly output: undefined;
51
+ readonly history: undefined;
52
+ readonly initial: string;
53
+ readonly states: Machine.StateTree;
54
+ }) | (NormalizedStateNodeDefinitionBase & {
55
+ readonly type: "parallel";
56
+ readonly schema: Machine.TaggedSchema;
57
+ readonly output: Schema.Top | undefined;
58
+ readonly history: undefined;
59
+ readonly initial: undefined;
60
+ readonly states: Machine.StateTree;
61
+ }) | (NormalizedStateNodeDefinitionBase & {
62
+ readonly type: "final";
63
+ readonly schema: Machine.TaggedSchema;
64
+ readonly output: Schema.Top | undefined;
65
+ readonly history: undefined;
66
+ readonly initial: undefined;
67
+ readonly states: undefined;
68
+ }) | (NormalizedStateNodeDefinitionBase & {
69
+ readonly type: "history";
70
+ readonly schema: undefined;
71
+ readonly output: undefined;
72
+ readonly history: "shallow" | "deep";
73
+ readonly initial: undefined;
74
+ readonly states: undefined;
75
+ }) | (NormalizedStateNodeDefinitionBase & {
76
+ readonly type: "choice";
77
+ readonly schema: undefined;
78
+ readonly output: undefined;
79
+ readonly history: undefined;
80
+ readonly initial: undefined;
81
+ readonly states: undefined;
82
+ });
83
+ export declare const getStateNodeDefinition: (path: string, definition: Machine.TaggedSchema | Machine.StateNodeConfig) => NormalizedStateNodeDefinition;
84
+ export declare const compileStateNodes: (states: Machine.StateSchemas) => Machine.StateNodes;
85
+ export declare const transitionDefinitions: (machine: Machine.Any) => ReadonlyArray<Machine.TransitionDefinition>;
86
+ export declare const makeTarget: <const States extends Machine.StateSchemas, const StateId extends Machine.StateIdentifier<States>>(path: StateId, value: Machine.StateByIdentifier<States, StateId>, options?: {
87
+ readonly snapshot?: Machine.SnapshotByIdentifier<States, StateId>;
88
+ readonly values?: Partial<{ readonly [AncestorStateId in Machine.StateIdentifier<States>]: Machine.StateByIdentifier<States, AncestorStateId>; }>;
89
+ }) => Machine.Target<States, StateId>;
90
+ export declare const isTarget: (u: unknown) => u is Machine.Target<any, any>;
91
+ export declare const makeStateInput: (input: unknown) => StateInput;
92
+ export declare const isStateInput: (u: unknown) => u is StateInput;
93
+ export declare const isSnapshot: (u: unknown) => u is Machine.AtomicSnapshot<string, unknown>;
94
+ export declare const getSnapshotByPath: (snapshot: Machine.AtomicSnapshot<string, unknown>, path: string, parents?: Record<string, unknown>) => Option.Option<Machine.AtomicSnapshot<string, unknown>>;
95
+ export declare const getNode: (machine: Machine.Any, path: string) => Machine.StateNode;
96
+ export declare const getStateNodeSchema: (node: Machine.StateNode) => Machine.TaggedSchema;
97
+ export {};
98
+ //# sourceMappingURL=topology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/topology.ts"],"names":[],"mappings":"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"}