@typeonce/effect-machine 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +345 -42
- package/dist/Machine.d.ts +1273 -347
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +161 -426
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/activities.d.ts +57 -0
- package/dist/internal/machine/activities.d.ts.map +1 -0
- package/dist/internal/machine/activities.js +49 -0
- package/dist/internal/machine/activities.js.map +1 -0
- package/dist/internal/machine/atom.d.ts +69 -0
- package/dist/internal/machine/atom.d.ts.map +1 -0
- package/dist/{AtomMachine.js → internal/machine/atom.js} +19 -94
- package/dist/internal/machine/atom.js.map +1 -0
- package/dist/internal/machine/cluster.d.ts +63 -0
- package/dist/internal/machine/cluster.d.ts.map +1 -0
- package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
- package/dist/internal/machine/cluster.js.map +1 -0
- package/dist/internal/machine/command.d.ts +16 -0
- package/dist/internal/machine/command.d.ts.map +1 -0
- package/dist/internal/machine/command.js +45 -0
- package/dist/internal/machine/command.js.map +1 -0
- package/dist/internal/machine/commandRuntime.d.ts +13 -0
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
- package/dist/internal/machine/commandRuntime.js +16 -0
- package/dist/internal/machine/commandRuntime.js.map +1 -0
- package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +32 -38
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/machine/configuration.js +965 -0
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +3 -3
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +1 -1
- package/dist/internal/machine/errors.js.map +1 -0
- package/dist/internal/machine/executionPlan.d.ts +49 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -0
- package/dist/internal/machine/executionPlan.js +667 -0
- package/dist/internal/machine/executionPlan.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +23 -0
- package/dist/internal/machine/invocation.d.ts.map +1 -0
- package/dist/internal/machine/invocation.js +77 -0
- package/dist/internal/machine/invocation.js.map +1 -0
- package/dist/internal/machine/machine.d.ts +183 -0
- package/dist/internal/machine/machine.d.ts.map +1 -0
- package/dist/internal/machine/machine.js +552 -0
- package/dist/internal/machine/machine.js.map +1 -0
- package/dist/internal/machine/planner.d.ts +182 -0
- package/dist/internal/machine/planner.d.ts.map +1 -0
- package/dist/internal/machine/planner.js +1082 -0
- package/dist/internal/machine/planner.js.map +1 -0
- package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +10 -4
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +446 -0
- package/dist/internal/machine/process.js.map +1 -0
- package/dist/internal/machine/protocol.d.ts +34 -0
- package/dist/internal/machine/protocol.d.ts.map +1 -0
- package/dist/internal/machine/protocol.js +182 -0
- package/dist/internal/machine/protocol.js.map +1 -0
- package/dist/internal/machine/readiness.d.ts +4 -0
- package/dist/internal/machine/readiness.d.ts.map +1 -0
- package/dist/internal/machine/readiness.js +2 -0
- package/dist/internal/machine/readiness.js.map +1 -0
- package/dist/internal/{machineRuntime.d.ts → machine/runtime.d.ts} +104 -2
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1381 -0
- package/dist/internal/machine/runtime.js.map +1 -0
- package/dist/internal/machine/serialization.d.ts +14 -0
- package/dist/internal/machine/serialization.d.ts.map +1 -0
- package/dist/internal/machine/serialization.js +338 -0
- package/dist/internal/machine/serialization.js.map +1 -0
- package/dist/internal/machine/stateDefinition.d.ts +15 -0
- package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
- package/dist/internal/machine/stateDefinition.js +210 -0
- package/dist/internal/machine/stateDefinition.js.map +1 -0
- package/dist/internal/machine/symbols.d.ts +3 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -0
- package/dist/internal/machine/symbols.js +3 -0
- package/dist/internal/machine/symbols.js.map +1 -0
- package/dist/internal/machine/topology.d.ts +98 -0
- package/dist/internal/machine/topology.d.ts.map +1 -0
- package/dist/internal/machine/topology.js +347 -0
- package/dist/internal/machine/topology.js.map +1 -0
- package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
- package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
- package/dist/internal/testing/machine/arbitrary.js +68 -0
- package/dist/internal/testing/machine/arbitrary.js.map +1 -0
- package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/finiteModel.js +976 -0
- package/dist/internal/testing/machine/finiteModel.js.map +1 -0
- package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
- package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/referenceModel.js +1012 -0
- package/dist/internal/testing/machine/referenceModel.js.map +1 -0
- package/dist/internal/testing/machine/runtime.d.ts +328 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +437 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +33 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1446 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +606 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +102 -0
- package/dist/testing/MachineTest.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +22 -30
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +126 -0
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
- package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
- package/dist/unstable/cluster/index.d.ts.map +1 -0
- package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
- package/dist/unstable/cluster/index.js.map +1 -0
- package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +40 -23
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +113 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
- package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
- package/dist/unstable/reactivity/index.d.ts.map +1 -0
- package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -0
- package/docs/agent-guide.md +271 -38
- package/package.json +23 -13
- package/dist/AtomMachine.d.ts.map +0 -1
- package/dist/AtomMachine.js.map +0 -1
- package/dist/ClusterMachine.d.ts.map +0 -1
- package/dist/ClusterMachine.js.map +0 -1
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js.map +0 -1
- package/dist/internal/machineErrors.d.ts.map +0 -1
- package/dist/internal/machineErrors.js.map +0 -1
- package/dist/internal/machineModel.d.ts.map +0 -1
- package/dist/internal/machineModel.js +0 -766
- package/dist/internal/machineModel.js.map +0 -1
- package/dist/internal/machinePlanner.d.ts +0 -74
- package/dist/internal/machinePlanner.d.ts.map +0 -1
- package/dist/internal/machinePlanner.js +0 -621
- package/dist/internal/machinePlanner.js.map +0 -1
- package/dist/internal/machineProcess.d.ts.map +0 -1
- package/dist/internal/machineProcess.js +0 -181
- package/dist/internal/machineProcess.js.map +0 -1
- package/dist/internal/machineRuntime.d.ts.map +0 -1
- package/dist/internal/machineRuntime.js +0 -365
- package/dist/internal/machineRuntime.js.map +0 -1
- package/dist/reactivity.d.ts.map +0 -1
- package/dist/reactivity.js.map +0 -1
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finite hierarchical, parallel, history, choice, and automatic-transition
|
|
3
|
+
* statechart models used by the public testing module.
|
|
4
|
+
*
|
|
5
|
+
* This module intentionally compiles through the public Machine API. It must
|
|
6
|
+
* not share planner helpers with the implementation that later reference
|
|
7
|
+
* models are expected to check.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
import { FastCheck } from "effect/testing";
|
|
12
|
+
import * as Machine from "../../../Machine.js";
|
|
13
|
+
/**
|
|
14
|
+
* An atomic state in a finite generated model.
|
|
15
|
+
*
|
|
16
|
+
* @category models
|
|
17
|
+
* @since 4.0.0
|
|
18
|
+
*/
|
|
19
|
+
export interface FiniteAtomicState {
|
|
20
|
+
readonly _tag: "Atomic";
|
|
21
|
+
readonly key: string;
|
|
22
|
+
/** Deterministic payload accepted by this state's generated schema. */
|
|
23
|
+
readonly value: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A final state in a finite generated model.
|
|
27
|
+
*
|
|
28
|
+
* @category models
|
|
29
|
+
* @since 4.0.0
|
|
30
|
+
*/
|
|
31
|
+
export interface FiniteFinalState {
|
|
32
|
+
readonly _tag: "Final";
|
|
33
|
+
readonly key: string;
|
|
34
|
+
/** Deterministic payload accepted by this state's generated schema. */
|
|
35
|
+
readonly value: number;
|
|
36
|
+
/** Deterministic value returned by this state's output handler. */
|
|
37
|
+
readonly output: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A compound state in a finite generated model.
|
|
41
|
+
*
|
|
42
|
+
* @category models
|
|
43
|
+
* @since 4.0.0
|
|
44
|
+
*/
|
|
45
|
+
export interface FiniteCompoundState {
|
|
46
|
+
readonly _tag: "Compound";
|
|
47
|
+
readonly key: string;
|
|
48
|
+
/** Deterministic payload accepted by this state's generated schema. */
|
|
49
|
+
readonly value: number;
|
|
50
|
+
/** Key of the direct child entered by default. */
|
|
51
|
+
readonly initial: string;
|
|
52
|
+
readonly states: ReadonlyArray<FiniteState>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A parallel state in a finite generated model.
|
|
56
|
+
*
|
|
57
|
+
* Every direct child is an orthogonal region and is active whenever the
|
|
58
|
+
* parallel state is active. The output is deterministic so completion can be
|
|
59
|
+
* compared without sharing executable callbacks with the reference model.
|
|
60
|
+
*
|
|
61
|
+
* @category models
|
|
62
|
+
* @since 4.0.0
|
|
63
|
+
*/
|
|
64
|
+
export interface FiniteParallelState {
|
|
65
|
+
readonly _tag: "Parallel";
|
|
66
|
+
readonly key: string;
|
|
67
|
+
/** Deterministic payload accepted by this state's generated schema. */
|
|
68
|
+
readonly value: number;
|
|
69
|
+
/** Deterministic value returned after every region completes. */
|
|
70
|
+
readonly output: string;
|
|
71
|
+
/** Between two and three orthogonal region nodes. */
|
|
72
|
+
readonly states: ReadonlyArray<FiniteState>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A shallow or deep history pseudo-state in a finite generated model.
|
|
76
|
+
*
|
|
77
|
+
* History states never carry values, become active, or act as transition
|
|
78
|
+
* sources. `fallback` is a concrete descendant of the direct compound or
|
|
79
|
+
* parallel owner and is used only before that history register is captured.
|
|
80
|
+
*
|
|
81
|
+
* @category models
|
|
82
|
+
* @since 4.0.0
|
|
83
|
+
*/
|
|
84
|
+
export interface FiniteHistoryState {
|
|
85
|
+
readonly _tag: "History";
|
|
86
|
+
readonly key: string;
|
|
87
|
+
readonly history: "shallow" | "deep";
|
|
88
|
+
readonly fallback: string;
|
|
89
|
+
}
|
|
90
|
+
/** A deterministic transient choice pseudo-state in a finite model. */
|
|
91
|
+
export interface FiniteChoiceState {
|
|
92
|
+
readonly _tag: "Choice";
|
|
93
|
+
readonly key: string;
|
|
94
|
+
readonly targets: ReadonlyArray<string>;
|
|
95
|
+
readonly selected: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* A finite model state.
|
|
99
|
+
*
|
|
100
|
+
* @category models
|
|
101
|
+
* @since 4.0.0
|
|
102
|
+
*/
|
|
103
|
+
export type FiniteState = FiniteAtomicState | FiniteFinalState | FiniteCompoundState | FiniteParallelState | FiniteHistoryState | FiniteChoiceState;
|
|
104
|
+
/**
|
|
105
|
+
* The single trigger representation used by generated and hand-authored finite
|
|
106
|
+
* transitions. Event, always, and completion registrations therefore share the
|
|
107
|
+
* same validation, compilation, and reference interpretation path.
|
|
108
|
+
*
|
|
109
|
+
* @category models
|
|
110
|
+
* @since 4.0.0
|
|
111
|
+
*/
|
|
112
|
+
export type FiniteTransitionTrigger = {
|
|
113
|
+
readonly type: "event";
|
|
114
|
+
readonly event: string;
|
|
115
|
+
} | {
|
|
116
|
+
readonly type: "always";
|
|
117
|
+
} | {
|
|
118
|
+
readonly type: "done";
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* One deterministic transition in a finite generated model.
|
|
122
|
+
*
|
|
123
|
+
* @category models
|
|
124
|
+
* @since 4.0.0
|
|
125
|
+
*/
|
|
126
|
+
interface FiniteTransitionBase {
|
|
127
|
+
readonly source: string;
|
|
128
|
+
/** Omission represents a targetless transition. */
|
|
129
|
+
readonly target?: string;
|
|
130
|
+
/** Optional schema-valid value supplied for the declared target state. */
|
|
131
|
+
readonly targetValue?: number;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* A public event transition may explicitly request source reentry.
|
|
135
|
+
*
|
|
136
|
+
* @category models
|
|
137
|
+
* @since 4.0.0
|
|
138
|
+
*/
|
|
139
|
+
export type FiniteEventTransition = FiniteTransitionBase & {
|
|
140
|
+
readonly trigger: Extract<FiniteTransitionTrigger, {
|
|
141
|
+
readonly type: "event";
|
|
142
|
+
}>;
|
|
143
|
+
readonly reenter: boolean;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* An always or completion transition. Automatic transitions deliberately omit
|
|
147
|
+
* the event-only reentry option.
|
|
148
|
+
*
|
|
149
|
+
* @category models
|
|
150
|
+
* @since 4.0.0
|
|
151
|
+
*/
|
|
152
|
+
export type FiniteAutomaticTransition = FiniteTransitionBase & {
|
|
153
|
+
readonly trigger: Exclude<FiniteTransitionTrigger, {
|
|
154
|
+
readonly type: "event";
|
|
155
|
+
}>;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* One deterministic event or automatic transition in a finite model.
|
|
159
|
+
*
|
|
160
|
+
* @category models
|
|
161
|
+
* @since 4.0.0
|
|
162
|
+
*/
|
|
163
|
+
export type FiniteTransition = FiniteEventTransition | FiniteAutomaticTransition;
|
|
164
|
+
/**
|
|
165
|
+
* The exact generated transition that changes a value before history capture.
|
|
166
|
+
*
|
|
167
|
+
* The source and target are the same active atomic state. `value` is distinct
|
|
168
|
+
* from that state's generated default value.
|
|
169
|
+
*
|
|
170
|
+
* @category models
|
|
171
|
+
* @since 4.0.0
|
|
172
|
+
*/
|
|
173
|
+
export interface FiniteHistoryMutation {
|
|
174
|
+
readonly source: string;
|
|
175
|
+
readonly event: string;
|
|
176
|
+
readonly target: string;
|
|
177
|
+
readonly value: number;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* One exact transition in a generated history witness.
|
|
181
|
+
*
|
|
182
|
+
* @category models
|
|
183
|
+
* @since 4.0.0
|
|
184
|
+
*/
|
|
185
|
+
export interface FiniteHistoryTransfer {
|
|
186
|
+
readonly source: string;
|
|
187
|
+
readonly event: string;
|
|
188
|
+
readonly target: string;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* A replayable value-mutation, capture, and restoration witness generated for
|
|
192
|
+
* one history pseudo-state.
|
|
193
|
+
*
|
|
194
|
+
* `events` is exactly `[mutation.event, leave.event, resume.event]`. Replaying
|
|
195
|
+
* it changes a schema-valid atomic value, exits the history owner through its
|
|
196
|
+
* root, and restores the remembered non-default value through `history`.
|
|
197
|
+
*
|
|
198
|
+
* @category models
|
|
199
|
+
* @since 4.0.0
|
|
200
|
+
*/
|
|
201
|
+
export interface FiniteHistoryScenario {
|
|
202
|
+
readonly history: string;
|
|
203
|
+
readonly owner: string;
|
|
204
|
+
readonly historyType: "shallow" | "deep";
|
|
205
|
+
readonly mutation: FiniteHistoryMutation;
|
|
206
|
+
readonly leave: FiniteHistoryTransfer;
|
|
207
|
+
readonly resume: FiniteHistoryTransfer;
|
|
208
|
+
readonly events: readonly [mutation: string, leave: string, resume: string];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* A small immutable statechart model suitable for generation and shrinking.
|
|
212
|
+
*
|
|
213
|
+
* State paths use dot-separated state keys. Transitions are unique by
|
|
214
|
+
* source/event pair. A transition may target any state under its source root,
|
|
215
|
+
* or a different root as a complete configuration.
|
|
216
|
+
*
|
|
217
|
+
* @category models
|
|
218
|
+
* @since 4.0.0
|
|
219
|
+
*/
|
|
220
|
+
export interface FiniteModel {
|
|
221
|
+
readonly roots: ReadonlyArray<FiniteState>;
|
|
222
|
+
/** Key of the root entered during startup. */
|
|
223
|
+
readonly initial: string;
|
|
224
|
+
readonly events: ReadonlyArray<string>;
|
|
225
|
+
readonly transitions: ReadonlyArray<FiniteTransition>;
|
|
226
|
+
/** Exact value-sensitive history witnesses attached by `finiteModels`. */
|
|
227
|
+
readonly historyScenarios?: ReadonlyArray<FiniteHistoryScenario>;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Limits controlling finite model generation.
|
|
231
|
+
*
|
|
232
|
+
* @category models
|
|
233
|
+
* @since 4.0.0
|
|
234
|
+
*/
|
|
235
|
+
export interface FiniteModelOptions {
|
|
236
|
+
/** Maximum number of root states. Always between one and three. */
|
|
237
|
+
readonly maxRoots?: 1 | 2 | 3;
|
|
238
|
+
/** Maximum state-tree depth, counting a root as depth one. */
|
|
239
|
+
readonly maxDepth?: number;
|
|
240
|
+
/** Maximum number of direct children in a compound state. */
|
|
241
|
+
readonly maxChildren?: number;
|
|
242
|
+
/** Maximum number of regions in a parallel state. Always two or three. */
|
|
243
|
+
readonly maxParallelRegions?: 2 | 3;
|
|
244
|
+
/** Maximum number of distinct public event tags. */
|
|
245
|
+
readonly maxEvents?: number;
|
|
246
|
+
/** Maximum number of source/event transition registrations. */
|
|
247
|
+
readonly maxTransitions?: number;
|
|
248
|
+
/** Maximum number of history pseudo-states added to one generated model. */
|
|
249
|
+
readonly maxHistoryStates?: number;
|
|
250
|
+
/** Maximum number of deterministic choice witnesses added to a generated model. */
|
|
251
|
+
readonly maxChoiceStates?: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolved limits and structural guarantees for a finite model arbitrary.
|
|
255
|
+
*
|
|
256
|
+
* @category models
|
|
257
|
+
* @since 4.0.0
|
|
258
|
+
*/
|
|
259
|
+
export interface FiniteModelDiagnostics {
|
|
260
|
+
readonly limits: {
|
|
261
|
+
readonly maxRoots: 1 | 2 | 3;
|
|
262
|
+
readonly maxDepth: number;
|
|
263
|
+
readonly maxChildren: number;
|
|
264
|
+
readonly maxParallelRegions: 2 | 3;
|
|
265
|
+
readonly maxEvents: number;
|
|
266
|
+
readonly maxTransitions: number;
|
|
267
|
+
readonly maxHistoryStates: number;
|
|
268
|
+
readonly maxChoiceStates: number;
|
|
269
|
+
};
|
|
270
|
+
readonly guarantees: {
|
|
271
|
+
readonly compoundOnly: false;
|
|
272
|
+
readonly parallelStates: true;
|
|
273
|
+
readonly historyStates: true;
|
|
274
|
+
readonly historyLeaveResumeSequences: true;
|
|
275
|
+
readonly historyValueScenarios: true;
|
|
276
|
+
readonly choiceStates: true;
|
|
277
|
+
readonly choiceInitialWitnesses: true;
|
|
278
|
+
readonly structurallyValid: true;
|
|
279
|
+
readonly shrinkPreservesValidity: true;
|
|
280
|
+
readonly eventlessTransitions: true;
|
|
281
|
+
readonly acyclicAutomaticTransitions: true;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* A finite model arbitrary and the exact limits used to construct it.
|
|
286
|
+
*
|
|
287
|
+
* @category models
|
|
288
|
+
* @since 4.0.0
|
|
289
|
+
*/
|
|
290
|
+
export interface FiniteModels {
|
|
291
|
+
readonly arbitrary: FastCheck.Arbitrary<FiniteModel>;
|
|
292
|
+
readonly diagnostics: FiniteModelDiagnostics;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Generates bounded, structurally valid hierarchical statechart
|
|
296
|
+
* models.
|
|
297
|
+
*
|
|
298
|
+
* Generation is composed from shrinkable topology, initial-state, event, and
|
|
299
|
+
* transition decisions. Paths and transition candidates are rebuilt after a
|
|
300
|
+
* topology shrink, so a shrink can never retain a dangling source or target.
|
|
301
|
+
* Generated automatic transitions are acyclic by construction: `always`
|
|
302
|
+
* transitions leave atomic sources and completion transitions leave compound
|
|
303
|
+
* or parallel sources. Separate focused witnesses cover cyclic stabilization.
|
|
304
|
+
*
|
|
305
|
+
* @category constructors
|
|
306
|
+
* @since 4.0.0
|
|
307
|
+
*/
|
|
308
|
+
export declare const finiteModels: (options?: FiniteModelOptions) => FiniteModels;
|
|
309
|
+
/**
|
|
310
|
+
* Compiles a finite model into a real machine using only public definition,
|
|
311
|
+
* construction, and handler APIs.
|
|
312
|
+
*
|
|
313
|
+
* Hand-authored models are validated before compilation. This compiler is a
|
|
314
|
+
* testing adapter, not the independent reference interpreter used by later
|
|
315
|
+
* conformance stages.
|
|
316
|
+
*
|
|
317
|
+
* @category constructors
|
|
318
|
+
* @since 4.0.0
|
|
319
|
+
*/
|
|
320
|
+
export declare const compileModel: (model: FiniteModel) => Machine.Machine.Any;
|
|
321
|
+
export {};
|
|
322
|
+
//# sourceMappingURL=finiteModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finiteModel.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/finiteModel.ts"],"names":[],"mappings":"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"}
|