@typeonce/effect-machine 0.12.0 → 0.14.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 +130 -30
- package/dist/Machine.d.ts +722 -262
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +130 -62
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/atom.d.ts +1 -0
- package/dist/internal/machine/atom.d.ts.map +1 -1
- package/dist/internal/machine/atom.js +23 -0
- package/dist/internal/machine/atom.js.map +1 -1
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -1
- package/dist/internal/machine/commandRuntime.js +2 -5
- package/dist/internal/machine/commandRuntime.js.map +1 -1
- package/dist/internal/machine/configuration.d.ts +5 -0
- package/dist/internal/machine/configuration.d.ts.map +1 -1
- package/dist/internal/machine/configuration.js +6 -2
- package/dist/internal/machine/configuration.js.map +1 -1
- package/dist/internal/machine/executionPlan.d.ts +1 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -1
- package/dist/internal/machine/executionPlan.js +57 -24
- package/dist/internal/machine/executionPlan.js.map +1 -1
- package/dist/internal/machine/initialization.d.ts +5 -0
- package/dist/internal/machine/initialization.d.ts.map +1 -0
- package/dist/internal/machine/initialization.js +61 -0
- package/dist/internal/machine/initialization.js.map +1 -0
- package/dist/internal/machine/inspectionRuntime.d.ts +25 -0
- package/dist/internal/machine/inspectionRuntime.d.ts.map +1 -0
- package/dist/internal/machine/inspectionRuntime.js +79 -0
- package/dist/internal/machine/inspectionRuntime.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +2 -1
- package/dist/internal/machine/invocation.d.ts.map +1 -1
- package/dist/internal/machine/invocation.js +17 -10
- package/dist/internal/machine/invocation.js.map +1 -1
- package/dist/internal/machine/machine.d.ts +4 -3
- package/dist/internal/machine/machine.d.ts.map +1 -1
- package/dist/internal/machine/machine.js +327 -32
- package/dist/internal/machine/machine.js.map +1 -1
- package/dist/internal/machine/planner.d.ts +28 -0
- package/dist/internal/machine/planner.d.ts.map +1 -1
- package/dist/internal/machine/planner.js +132 -51
- package/dist/internal/machine/planner.js.map +1 -1
- package/dist/internal/machine/process.d.ts.map +1 -1
- package/dist/internal/machine/process.js +4 -2
- package/dist/internal/machine/process.js.map +1 -1
- package/dist/internal/machine/runtime.d.ts +27 -3
- package/dist/internal/machine/runtime.d.ts.map +1 -1
- package/dist/internal/machine/runtime.js +440 -64
- package/dist/internal/machine/runtime.js.map +1 -1
- package/dist/internal/machine/symbols.d.ts +2 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -1
- package/dist/internal/machine/symbols.js +2 -0
- package/dist/internal/machine/symbols.js.map +1 -1
- package/dist/internal/machine/topology.d.ts +25 -0
- package/dist/internal/machine/topology.d.ts.map +1 -1
- package/dist/internal/machine/topology.js +26 -10
- package/dist/internal/machine/topology.js.map +1 -1
- package/dist/internal/testing/machine/exploration.d.ts.map +1 -1
- package/dist/internal/testing/machine/exploration.js +11 -2
- package/dist/internal/testing/machine/exploration.js.map +1 -1
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -1
- package/dist/internal/testing/machine/finiteModel.js +75 -69
- package/dist/internal/testing/machine/finiteModel.js.map +1 -1
- package/dist/internal/testing/machine/transitionCoverage.d.ts +20 -0
- package/dist/internal/testing/machine/transitionCoverage.d.ts.map +1 -0
- package/dist/internal/testing/machine/transitionCoverage.js +80 -0
- package/dist/internal/testing/machine/transitionCoverage.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -1
- package/dist/internal/testing/machine/verification.js +171 -33
- package/dist/internal/testing/machine/verification.js.map +1 -1
- package/dist/testing/MachineTest.d.ts +97 -22
- package/dist/testing/MachineTest.d.ts.map +1 -1
- package/dist/testing/MachineTest.js +58 -16
- package/dist/testing/MachineTest.js.map +1 -1
- package/dist/unstable/cluster/ClusterMachine.d.ts +4 -1
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterMachine.js +4 -1
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -1
- package/dist/unstable/reactivity/AtomMachine.d.ts +21 -3
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomMachine.js +21 -3
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
- package/docs/agent-guide.md +240 -65
- package/package.json +5 -5
- package/src/Machine.ts +1240 -495
- package/src/internal/machine/atom.ts +26 -0
- package/src/internal/machine/commandRuntime.ts +2 -9
- package/src/internal/machine/configuration.ts +28 -3
- package/src/internal/machine/executionPlan.ts +72 -24
- package/src/internal/machine/initialization.ts +73 -0
- package/src/internal/machine/inspectionRuntime.ts +102 -0
- package/src/internal/machine/invocation.ts +37 -12
- package/src/internal/machine/machine.ts +438 -39
- package/src/internal/machine/planner.ts +180 -55
- package/src/internal/machine/process.ts +4 -2
- package/src/internal/machine/runtime.ts +661 -89
- package/src/internal/machine/symbols.ts +3 -0
- package/src/internal/machine/topology.ts +65 -12
- package/src/internal/testing/machine/exploration.ts +10 -2
- package/src/internal/testing/machine/finiteModel.ts +114 -80
- package/src/internal/testing/machine/transitionCoverage.ts +116 -0
- package/src/internal/testing/machine/verification.ts +216 -58
- package/src/testing/MachineTest.ts +118 -28
- package/src/unstable/cluster/ClusterMachine.ts +4 -1
- package/src/unstable/reactivity/AtomMachine.ts +24 -3
|
@@ -10,6 +10,7 @@ import { type RuntimeCommand } from "./command.js";
|
|
|
10
10
|
import { type ActiveConfiguration } from "./configuration.js";
|
|
11
11
|
import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError } from "./errors.js";
|
|
12
12
|
import * as InvocationEvent from "./invocationEvent.js";
|
|
13
|
+
import { type InitialTarget as InitialTargetInstruction } from "./topology.js";
|
|
13
14
|
export type MicrostepPlan<State, Event, E, R> = {
|
|
14
15
|
readonly next: State;
|
|
15
16
|
readonly event: Event | MachineInitialEvent;
|
|
@@ -17,6 +18,7 @@ export type MicrostepPlan<State, Event, E, R> = {
|
|
|
17
18
|
readonly source: string;
|
|
18
19
|
readonly trigger: Machine.TransitionTrigger;
|
|
19
20
|
readonly reenter: boolean;
|
|
21
|
+
readonly branchIndex: number;
|
|
20
22
|
readonly target: string | undefined;
|
|
21
23
|
readonly resolvedTarget: string | undefined;
|
|
22
24
|
}>;
|
|
@@ -40,18 +42,32 @@ export type MacrostepPlan<State, Event, E, R, Output> = {
|
|
|
40
42
|
readonly output: undefined;
|
|
41
43
|
});
|
|
42
44
|
export type TransitionHandler<States extends Machine.StateSchemas, E, R, Context> = (context: Context, enqueue: Enqueue<any, any>) => Machine.HandlerResult<States, E, R>;
|
|
45
|
+
type TransitionEvaluation<States extends Machine.StateSchemas, E, R> = {
|
|
46
|
+
readonly result: Machine.HandlerResult<States, E, R>;
|
|
47
|
+
readonly branchIndex: number;
|
|
48
|
+
};
|
|
49
|
+
type TransitionEvaluator<States extends Machine.StateSchemas, E, R, Context> = (context: Context, enqueue: Enqueue<any, any>) => TransitionEvaluation<States, E, R>;
|
|
43
50
|
export declare const withMachineReferences: (machine: Machine.Any, machineReferences: MachineReferences<any, any>) => Machine.Any;
|
|
44
51
|
type EventTransition<States extends Machine.StateSchemas, E, R, Context> = TransitionHandler<States, E, R, Context> | {
|
|
45
52
|
readonly reenter?: boolean;
|
|
46
53
|
readonly targets?: ReadonlyArray<string>;
|
|
47
54
|
readonly transition: TransitionHandler<States, E, R, Context>;
|
|
55
|
+
readonly evaluate?: TransitionEvaluator<States, E, R, Context>;
|
|
48
56
|
};
|
|
49
57
|
export type MicrostepTransition<States extends Machine.StateSchemas, E, R, Context> = {
|
|
50
58
|
readonly reenter: boolean;
|
|
51
59
|
readonly targets: ReadonlyArray<string> | undefined;
|
|
52
60
|
readonly transition: TransitionHandler<States, E, R, Context>;
|
|
61
|
+
readonly evaluate: TransitionEvaluator<States, E, R, Context> | undefined;
|
|
53
62
|
};
|
|
54
63
|
export declare const normalizeTransition: <States extends Machine.StateSchemas, E, R, Context>(transition: EventTransition<States, E, R, Context> | undefined) => MicrostepTransition<States, E, R, Context> | undefined;
|
|
64
|
+
export declare function resolveInitialTarget(machine: Machine.Any, configuration: ActiveConfiguration, target: InitialTargetInstruction, event: unknown): {
|
|
65
|
+
target: Machine.Target<Readonly<Record<string, Machine.TaggedSchema | Machine.StateNodeConfig>>, any>;
|
|
66
|
+
commands: import("../../Machine.js").Command[];
|
|
67
|
+
raisedEvents: unknown[];
|
|
68
|
+
emittedEvents: unknown[];
|
|
69
|
+
transitions: ResolvedChoiceTransition[];
|
|
70
|
+
};
|
|
55
71
|
export type SelectedTransition<States extends Machine.StateSchemas, E, R, Context> = {
|
|
56
72
|
readonly sourcePath: string;
|
|
57
73
|
readonly leafPath: string;
|
|
@@ -61,6 +77,7 @@ export type SelectedTransition<States extends Machine.StateSchemas, E, R, Contex
|
|
|
61
77
|
};
|
|
62
78
|
export type EvaluatedTransition<States extends Machine.StateSchemas, Event, E, R, Context> = {
|
|
63
79
|
readonly selection: SelectedTransition<States, E, R, Context>;
|
|
80
|
+
readonly branchIndex: number;
|
|
64
81
|
readonly unresolvedTarget: Machine.Snapshot<States> | Machine.Target<States, Machine.StateIdentifier<States>> | Machine.HistoryTarget<States, Machine.HistoryIdentifier<States>> | Machine.ChoiceTarget<States, Machine.ChoiceIdentifier<States>> | undefined;
|
|
65
82
|
readonly target: Machine.Snapshot<States> | Machine.Target<States, Machine.StateIdentifier<States>> | undefined;
|
|
66
83
|
readonly commands: ReadonlyArray<RuntimeCommand>;
|
|
@@ -73,6 +90,7 @@ export type EvaluatedTransition<States extends Machine.StateSchemas, Event, E, R
|
|
|
73
90
|
readonly source: string;
|
|
74
91
|
readonly trigger: Machine.TransitionTrigger;
|
|
75
92
|
readonly reenter: false;
|
|
93
|
+
readonly branchIndex: number;
|
|
76
94
|
readonly target: string;
|
|
77
95
|
readonly resolvedTarget: string;
|
|
78
96
|
}>;
|
|
@@ -87,6 +105,14 @@ export declare const getTargetNodePath: <const States extends Machine.StateSchem
|
|
|
87
105
|
export declare const validateDeclaredTransitionTarget: (sourcePath: string, trigger: Machine.TransitionTrigger, declaredTargets: ReadonlyArray<string> | undefined, target: unknown) => void;
|
|
88
106
|
export declare const sortEvaluatedTransitions: <const States extends Machine.StateSchemas, Event, E, R, Context>(machine: Machine.Any, transitions: Iterable<EvaluatedTransition<States, Event, E, R, Context>>) => ReadonlyArray<EvaluatedTransition<States, Event, E, R, Context>>;
|
|
89
107
|
export declare const removeConflictingTransitions: <const States extends Machine.StateSchemas, Event, E, R, Context>(machine: Machine.Any, transitions: ReadonlyArray<EvaluatedTransition<States, Event, E, R, Context>>) => ReadonlyArray<EvaluatedTransition<States, Event, E, R, Context>>;
|
|
108
|
+
interface ResolvedChoiceTransition {
|
|
109
|
+
readonly source: string;
|
|
110
|
+
readonly trigger: Machine.TransitionTrigger;
|
|
111
|
+
readonly reenter: false;
|
|
112
|
+
readonly branchIndex: number;
|
|
113
|
+
readonly target: string;
|
|
114
|
+
readonly resolvedTarget: string;
|
|
115
|
+
}
|
|
90
116
|
export declare const MaxMacrostepIterations = 1000;
|
|
91
117
|
export declare const InitialEvent: MachineInitialEvent;
|
|
92
118
|
export declare const isFinalState: (machine: Machine.Any, state: Machine.Snapshot<any>) => boolean;
|
|
@@ -107,6 +133,7 @@ export declare const planInitialSync: <const States extends Machine.StateSchemas
|
|
|
107
133
|
readonly source: string;
|
|
108
134
|
readonly trigger: Machine.TransitionTrigger;
|
|
109
135
|
readonly reenter: boolean;
|
|
136
|
+
readonly branchIndex: number;
|
|
110
137
|
readonly target: string | undefined;
|
|
111
138
|
readonly resolvedTarget: string | undefined;
|
|
112
139
|
}[];
|
|
@@ -132,6 +159,7 @@ export declare const planInitialSync: <const States extends Machine.StateSchemas
|
|
|
132
159
|
readonly source: string;
|
|
133
160
|
readonly trigger: Machine.TransitionTrigger;
|
|
134
161
|
readonly reenter: boolean;
|
|
162
|
+
readonly branchIndex: number;
|
|
135
163
|
readonly target: string | undefined;
|
|
136
164
|
readonly resolvedTarget: string | undefined;
|
|
137
165
|
}[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/planner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EACV,OAAO,EACP,YAAY,IAAI,mBAAmB,EACnC,OAAO,EACP,iBAAiB,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EACL,KAAK,mBAAmB,EA2BzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAA;AAE3G,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAEL,KAAK,aAAa,IAAI,wBAAwB,EAU/C,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI;IAC9C,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,mBAAmB,CAAA;IAC3C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAA;QAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,CAAC,CAAA;IACF,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAChD;IACA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAC/C,GACC,CACE;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAC3B,CACF,CAAA;AAEH,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAClF,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KACvB,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAExC,KAAK,oBAAoB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI;IACrE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,mBAAmB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAC7E,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KACvB,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAKvC,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,CAAC,GAAG,EACpB,mBAAmB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,KAC7C,OAAO,CAAC,GAIV,CAAA;AAsBD,KAAK,eAAe,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IACnE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GACxC;IACA,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CAC/D,CAAA;AAEH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;IACpF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7D,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC1E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EACpF,YAAY,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,KAC7D,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,SAY/C,CAAA;AA4ND,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,CAAC,GAAG,EACpB,aAAa,EAAE,mBAAmB,EAClC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,OAAO;;;;;;EAef;AAgGD,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;IAC3F,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,EACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACvD,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAC9D,SAAS,CAAA;IACb,QAAQ,CAAC,MAAM,EACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACvD,SAAS,CAAA;IACb,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC;QACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAA;QAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;KAChC,CAAC,CAAA;CACH,CAAA;AAYD,eAAO,MAAM,sBAAsB,GACjC,SAAS,OAAO,CAAC,GAAG,EACpB,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,MAAM,GAAG,SAYX,CAAA;AAED,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,MAAM,GAAG,SAAS,EACnC,iBAAiB,MAAM,GAAG,SAAS,KAClC,MAAM,GAAG,SAKX,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,SAAS,OAAO,CAAC,GAAG,EACpB,eAAe,mBAAmB,EAClC,UAAU,MAAM,GAAG,SAAS,KAC3B,aAAa,CAAC,MAAM,CAKpB,CAAA;AAEH,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,CAAC,GAAG,EACpB,eAAe,mBAAmB,EAClC,UAAU,MAAM,GAAG,SAAS,KAC3B,aAAa,CAAC,MAAM,CAIpB,CAAA;AAKH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CAK5F,CAAA;AAEN,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CAK7F,CAAA;AAwWN,eAAO,MAAM,iBAAiB,GAAI,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzE,QACI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACvD,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KACjE,MAWF,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC3C,YAAY,MAAM,EAClB,SAAS,OAAO,CAAC,iBAAiB,EAClC,iBAAiB,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,EAClD,QAAQ,OAAO,KACd,IAeF,CAAA;AAWD,eAAO,MAAM,wBAAwB,GACnC,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,EACL,CAAC,EACD,CAAC,EACD,OAAO,EAEP,SAAS,OAAO,CAAC,GAAG,EACpB,aAAa,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,KACvE,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAE8C,CAAA;AAgBhH,eAAO,MAAM,4BAA4B,GACvC,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,EACL,CAAC,EACD,CAAC,EACD,OAAO,EAEP,SAAS,OAAO,CAAC,GAAG,EACpB,aAAa,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,KAC5E,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CA0BjE,CAAA;AAkDD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAiVD,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAC1C,eAAO,MAAM,YAAY,EAAE,mBAAkD,CAAA;AAE7E,eAAO,MAAM,YAAY,GACvB,SAAS,OAAO,CAAC,GAAG,EACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAC3B,OAAsF,CAAA;AAEzF,eAAO,MAAM,oBAAoB,GAC/B,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,MAAM,EAEN,SAAS,OAAO,CAAC,GAAG,EACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAe9C,CAAA;AAEH,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAE5D,SAAS,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,CACb,EACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC9B,KAAK,IAAI,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAiC,CAAA;AAEhG,eAAO,MAAM,eAAe,GAC1B,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EAEd,SAAS,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAC9G,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;;;;;;mBAkHI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;;;;6BA9kD3D,MAAM;8BACL,OAAO,CAAC,iBAAiB;8BACzB,OAAO;kCACH,MAAM;6BACX,MAAM,GAAG,SAAS;qCACV,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;mBAykDH,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;;;;6BA9kD3D,MAAM;8BACL,OAAO,CAAC,iBAAiB;8BACzB,OAAO;kCACH,MAAM;6BACX,MAAM,GAAG,SAAS;qCACV,MAAM,GAAG,SAAS;;;;;;;;;CAylD9C,CAAA;AAED,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAE5D,SAAS,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,CACb,EACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC9B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAgB7C,CAAA;AA0YD,eAAO,MAAM,QAAQ,SArBb,MAAM,SAAS,OAAO,CAAC,YAAY,QACnC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,QAClD,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,sBACjD,KAAK,SAAS,MAAM,CAAC,GAAG,gBAC9B,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,oCACvD,CAAC,UACD,CAAC,UACD,QAAQ,UACR,QAAQ,UACR,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,UACnD,MAAM,mBAEG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,SACvG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SACxB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,mFAOC,CAAA;AAEjC,eAAO,MAAM,iBAAiB,SAtHtB,MAAM,SAAS,OAAO,CAAC,YAAY,QACnC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,QAClD,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,sBACjD,KAAK,SAAS,MAAM,CAAC,GAAG,gBAC9B,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,oCACvD,CAAC,UACD,CAAC,UACD,QAAQ,UACR,QAAQ,UACR,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,UACnD,MAAM,mBAEG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,iBAC/F,mBAAmB,SAC3B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,eAAe;;;;;;;;;;;;;;CAwGX,CAAA;AAavD,eAAO,MAAM,IAAI,GAAI,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFAClB,CAAA;AAErE,eAAO,MAAM,WAAW,GACtB,SAAS,OAAO,CAAC,GAAG,EACpB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,GAAG,wBAAwB,GAAG,YAAY,CAQnF,CAAA"}
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
import * as Cause from "effect/Cause";
|
|
7
7
|
import * as Effect from "effect/Effect";
|
|
8
8
|
import { getTargetBuilder, makeCollector } from "./command.js";
|
|
9
|
-
import { captureHistory, compareDocumentOrder, completeConfigurationEffect, completeConfigurationSync, configurationFromHistoryRecord, getActiveLeafPathFrom, getActiveLeafPaths, getHistoryRecord, getInitialEntryPaths, getLeafPath, getParentValue, getParentValues, getPathToRoot, getRootPath, isActiveFinalConfiguration, isDescendantOf, isPathInSubtree, normalizeConfiguration, normalizeConfigurationEffect, normalizeConfigurationSync, normalizeTargetConfigurationSync, pathDepth, snapshotFromConfiguration, snapshotFromConfigurationAtPath, validateInitialConfiguration } from "./configuration.js";
|
|
9
|
+
import { captureHistory, compareDocumentOrder, completeConfigurationEffect, completeConfigurationSync, configurationFromHistoryRecord, configurationFromInitialTargetSync, getActiveLeafPathFrom, getActiveLeafPaths, getHistoryRecord, getInitialEntryPaths, getLeafPath, getParentValue, getParentValues, getPathToRoot, getRootPath, isActiveFinalConfiguration, isDescendantOf, isPathInSubtree, normalizeConfiguration, normalizeConfigurationEffect, normalizeConfigurationSync, normalizeTargetConfigurationSync, pathDepth, snapshotFromConfiguration, snapshotFromConfigurationAtPath, validateInitialConfiguration } from "./configuration.js";
|
|
10
10
|
import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError, StoppedError } from "./errors.js";
|
|
11
|
+
import { getStateInitializeValues, makeStateInitializeBuilder } from "./initialization.js";
|
|
11
12
|
import * as InvocationEvent from "./invocationEvent.js";
|
|
12
13
|
import { decodeEventSync, decodeInputSync, decodeStateValueSync } from "./protocol.js";
|
|
13
14
|
import { InitialEventTypeId } from "./symbols.js";
|
|
14
|
-
import { getNode, isChoiceTarget, isHistoryTarget, isNoTarget, isSnapshot, isTarget, makeChoiceTarget, makeTarget, TargetSnapshotTypeId } from "./topology.js";
|
|
15
|
+
import { getNode, isChoiceTarget, isHistoryTarget, isInitialTarget, isNoTarget, isSnapshot, isTarget, makeChoiceTarget, makeTarget, TargetSnapshotTypeId } from "./topology.js";
|
|
15
16
|
const rootMachineReferences = new WeakMap();
|
|
16
17
|
const scopedMachineReferences = new WeakMap();
|
|
17
18
|
export const withMachineReferences = (machine, machineReferences) => {
|
|
@@ -43,11 +44,12 @@ export const normalizeTransition = (transition) => {
|
|
|
43
44
|
return undefined;
|
|
44
45
|
}
|
|
45
46
|
return typeof transition === "function"
|
|
46
|
-
? { reenter: false, targets: undefined, transition }
|
|
47
|
+
? { reenter: false, targets: undefined, transition, evaluate: undefined }
|
|
47
48
|
: {
|
|
48
49
|
reenter: transition.reenter === true,
|
|
49
50
|
targets: transition.targets,
|
|
50
|
-
transition: transition.transition
|
|
51
|
+
transition: transition.transition,
|
|
52
|
+
evaluate: transition.evaluate
|
|
51
53
|
};
|
|
52
54
|
};
|
|
53
55
|
const collectStateAction = (machine, handler, context) => {
|
|
@@ -66,11 +68,14 @@ const collectStateAction = (machine, handler, context) => {
|
|
|
66
68
|
emittedEvents: collected.emittedEvents
|
|
67
69
|
};
|
|
68
70
|
};
|
|
69
|
-
const collectTransition = (machine, transition, context) => {
|
|
71
|
+
const collectTransition = (machine, transition, context, evaluate) => {
|
|
70
72
|
const collected = makeCollector(machine);
|
|
71
|
-
const
|
|
73
|
+
const evaluated = evaluate === undefined
|
|
74
|
+
? { result: transition(context, collected.enqueue), branchIndex: 0 }
|
|
75
|
+
: evaluate(context, collected.enqueue);
|
|
72
76
|
return {
|
|
73
|
-
state: isNoTarget(result) ? undefined : result,
|
|
77
|
+
state: isNoTarget(evaluated.result) ? undefined : evaluated.result,
|
|
78
|
+
branchIndex: evaluated.branchIndex,
|
|
74
79
|
commands: collected.commands,
|
|
75
80
|
raisedEvents: collected.raisedEvents,
|
|
76
81
|
emittedEvents: collected.emittedEvents
|
|
@@ -94,6 +99,7 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
94
99
|
const commands = [];
|
|
95
100
|
const raisedEvents = [];
|
|
96
101
|
const emittedEvents = [];
|
|
102
|
+
const transitions = [];
|
|
97
103
|
let changed = true;
|
|
98
104
|
while (changed) {
|
|
99
105
|
changed = false;
|
|
@@ -111,9 +117,40 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
111
117
|
history: configuration.history,
|
|
112
118
|
machineReferences: configuration.machineReferences
|
|
113
119
|
};
|
|
120
|
+
if (child.type === "choice") {
|
|
121
|
+
const choice = resolveChoiceTarget(machine, current, makeChoiceTarget(child.path, path, Object.fromEntries(values)), event);
|
|
122
|
+
let next = current;
|
|
123
|
+
for (const routed of [choice.target, ...choice.additionalTargets]) {
|
|
124
|
+
if (routed === undefined || isHistoryTarget(routed)) {
|
|
125
|
+
throw new Error(`Machine initial choice "${child.path}" must resolve to an active state target`);
|
|
126
|
+
}
|
|
127
|
+
const resolved = isInitialTarget(routed)
|
|
128
|
+
? resolveInitialTarget(machine, next, routed, event)
|
|
129
|
+
: undefined;
|
|
130
|
+
next = normalizeTargetConfigurationSync(machine, next, (resolved?.target ?? routed));
|
|
131
|
+
if (resolved !== undefined) {
|
|
132
|
+
commands.push(...resolved.commands);
|
|
133
|
+
raisedEvents.push(...resolved.raisedEvents);
|
|
134
|
+
emittedEvents.push(...resolved.emittedEvents);
|
|
135
|
+
transitions.push(...resolved.transitions);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
active.clear();
|
|
139
|
+
values.clear();
|
|
140
|
+
for (const activePath of next.active)
|
|
141
|
+
active.add(activePath);
|
|
142
|
+
for (const [valuePath, stateValue] of next.values)
|
|
143
|
+
values.set(valuePath, stateValue);
|
|
144
|
+
commands.push(...choice.commands);
|
|
145
|
+
raisedEvents.push(...choice.raisedEvents);
|
|
146
|
+
emittedEvents.push(...choice.emittedEvents);
|
|
147
|
+
transitions.push(...choice.transitions);
|
|
148
|
+
changed = true;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
114
151
|
active.add(child.path);
|
|
115
152
|
if (child.schema !== undefined) {
|
|
116
|
-
const initializer = machine.handlers[path]?.
|
|
153
|
+
const initializer = machine.handlers[path]?.initialize;
|
|
117
154
|
if (initializer === undefined) {
|
|
118
155
|
throw new Error(`Machine shallow history requires an initial value implementation for state "${path}"`);
|
|
119
156
|
}
|
|
@@ -122,9 +159,11 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
122
159
|
state: current.values.get(path),
|
|
123
160
|
containingState: getParentValue(machine, current, path),
|
|
124
161
|
ancestors: getParentValues(machine, current, path),
|
|
125
|
-
event
|
|
162
|
+
event,
|
|
163
|
+
builder: makeStateInitializeBuilder(machine, path)
|
|
126
164
|
});
|
|
127
|
-
|
|
165
|
+
const initializedValues = getStateInitializeValues(path, initialized.value);
|
|
166
|
+
values.set(child.path, decodeStateValueSync(machine, child, initializedValues[child.key]));
|
|
128
167
|
commands.push(...initialized.commands);
|
|
129
168
|
raisedEvents.push(...initialized.raisedEvents);
|
|
130
169
|
emittedEvents.push(...initialized.emittedEvents);
|
|
@@ -142,7 +181,7 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
142
181
|
history: configuration.history,
|
|
143
182
|
machineReferences: configuration.machineReferences
|
|
144
183
|
};
|
|
145
|
-
const initializer = valuedMissing.length === 0 ? undefined : machine.handlers[path]?.
|
|
184
|
+
const initializer = valuedMissing.length === 0 ? undefined : machine.handlers[path]?.initialize;
|
|
146
185
|
if (valuedMissing.length > 0 && initializer === undefined) {
|
|
147
186
|
throw new Error(`Machine shallow history requires an initial value implementation for state "${path}"`);
|
|
148
187
|
}
|
|
@@ -151,20 +190,21 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
151
190
|
state: current.values.get(path),
|
|
152
191
|
containingState: getParentValue(machine, current, path),
|
|
153
192
|
ancestors: getParentValues(machine, current, path),
|
|
154
|
-
event
|
|
193
|
+
event,
|
|
194
|
+
builder: makeStateInitializeBuilder(machine, path)
|
|
155
195
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
196
|
+
const initializedValues = initialized === undefined
|
|
197
|
+
? undefined
|
|
198
|
+
: getStateInitializeValues(path, initialized.value);
|
|
159
199
|
for (const childPath of missing) {
|
|
160
200
|
const child = getNode(machine, childPath);
|
|
161
201
|
active.add(child.path);
|
|
162
202
|
if (child.schema !== undefined) {
|
|
163
203
|
if (initialized === undefined ||
|
|
164
|
-
!Object.prototype.hasOwnProperty.call(
|
|
204
|
+
initializedValues === undefined || !Object.prototype.hasOwnProperty.call(initializedValues, child.key)) {
|
|
165
205
|
throw new Error(`Machine parallel state initializer for "${path}" must return region "${child.key}"`);
|
|
166
206
|
}
|
|
167
|
-
values.set(child.path, decodeStateValueSync(machine, child,
|
|
207
|
+
values.set(child.path, decodeStateValueSync(machine, child, initializedValues[child.key]));
|
|
168
208
|
}
|
|
169
209
|
}
|
|
170
210
|
if (initialized !== undefined) {
|
|
@@ -186,10 +226,26 @@ const completeHistoryConfiguration = (machine, configuration, event) => {
|
|
|
186
226
|
},
|
|
187
227
|
commands,
|
|
188
228
|
raisedEvents,
|
|
189
|
-
emittedEvents
|
|
229
|
+
emittedEvents,
|
|
230
|
+
transitions
|
|
190
231
|
};
|
|
191
232
|
};
|
|
192
|
-
|
|
233
|
+
export function resolveInitialTarget(machine, configuration, target, event) {
|
|
234
|
+
const partial = configurationFromInitialTargetSync(machine, configuration, target);
|
|
235
|
+
const completed = completeHistoryConfiguration(machine, partial, event);
|
|
236
|
+
const snapshot = snapshotFromConfigurationAtPath(machine, completed.configuration, target.path);
|
|
237
|
+
return {
|
|
238
|
+
target: makeTarget(target.path, snapshot.value, {
|
|
239
|
+
snapshot: snapshot,
|
|
240
|
+
values: Object.fromEntries(completed.configuration.values)
|
|
241
|
+
}),
|
|
242
|
+
commands: completed.commands,
|
|
243
|
+
raisedEvents: completed.raisedEvents,
|
|
244
|
+
emittedEvents: completed.emittedEvents,
|
|
245
|
+
transitions: completed.transitions
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
function resolveHistoryTarget(machine, configuration, target, event) {
|
|
193
249
|
const node = getNode(machine, target.path);
|
|
194
250
|
if (node.type !== "history" || node.parent !== target.parent) {
|
|
195
251
|
throw new Error(`Machine expected history target "${target.path}" to resolve to its declared parent`);
|
|
@@ -211,7 +267,7 @@ const resolveHistoryTarget = (machine, configuration, target, event) => {
|
|
|
211
267
|
commands: completed.commands,
|
|
212
268
|
raisedEvents: completed.raisedEvents,
|
|
213
269
|
emittedEvents: completed.emittedEvents,
|
|
214
|
-
transitions:
|
|
270
|
+
transitions: completed.transitions
|
|
215
271
|
};
|
|
216
272
|
}
|
|
217
273
|
const key = node.key;
|
|
@@ -262,7 +318,7 @@ const resolveHistoryTarget = (machine, configuration, target, event) => {
|
|
|
262
318
|
emittedEvents: [...collected.emittedEvents, ...(choiceResolution?.emittedEvents ?? [])],
|
|
263
319
|
transitions: choiceResolution?.transitions ?? []
|
|
264
320
|
};
|
|
265
|
-
}
|
|
321
|
+
}
|
|
266
322
|
const getCandidatePaths = (machine, configuration) => Array.from(configuration.active)
|
|
267
323
|
.sort((left, right) => {
|
|
268
324
|
const depth = pathDepth(machine, right) - pathDepth(machine, left);
|
|
@@ -563,7 +619,7 @@ const withChoiceValues = (target, values) => {
|
|
|
563
619
|
values: { ...values, ...(target.values ?? {}) }
|
|
564
620
|
});
|
|
565
621
|
};
|
|
566
|
-
|
|
622
|
+
function resolveChoiceTarget(machine, configuration, initialTarget, event) {
|
|
567
623
|
const pending = [initialTarget];
|
|
568
624
|
const resolvedTargets = [];
|
|
569
625
|
const commands = [];
|
|
@@ -614,7 +670,7 @@ const resolveChoiceTarget = (machine, configuration, initialTarget, event) => {
|
|
|
614
670
|
ancestors: getParentValues(machine, provisional, node.path),
|
|
615
671
|
event,
|
|
616
672
|
target: getTargetBuilder(machine, node.path)
|
|
617
|
-
});
|
|
673
|
+
}, choice.evaluate);
|
|
618
674
|
if (collected.state === undefined) {
|
|
619
675
|
throw new Error(`Machine choice resolver for "${node.path}" must return a target`);
|
|
620
676
|
}
|
|
@@ -626,6 +682,7 @@ const resolveChoiceTarget = (machine, configuration, initialTarget, event) => {
|
|
|
626
682
|
source: node.path,
|
|
627
683
|
trigger: { type: "choice" },
|
|
628
684
|
reenter: false,
|
|
685
|
+
branchIndex: collected.branchIndex,
|
|
629
686
|
target: returnedPath,
|
|
630
687
|
resolvedTarget: nested?.target.path ?? returnedPath
|
|
631
688
|
});
|
|
@@ -633,7 +690,7 @@ const resolveChoiceTarget = (machine, configuration, initialTarget, event) => {
|
|
|
633
690
|
raisedEvents.push(...collected.raisedEvents);
|
|
634
691
|
emittedEvents.push(...collected.emittedEvents);
|
|
635
692
|
}
|
|
636
|
-
if (!isTarget(current) && !isSnapshot(current) && !isHistoryTarget(current)) {
|
|
693
|
+
if (!isTarget(current) && !isSnapshot(current) && !isHistoryTarget(current) && !isInitialTarget(current)) {
|
|
637
694
|
throw new Error("Machine choice resolver must return a concrete typed target");
|
|
638
695
|
}
|
|
639
696
|
resolvedTargets.push(current);
|
|
@@ -646,10 +703,10 @@ const resolveChoiceTarget = (machine, configuration, initialTarget, event) => {
|
|
|
646
703
|
emittedEvents,
|
|
647
704
|
transitions
|
|
648
705
|
};
|
|
649
|
-
}
|
|
706
|
+
}
|
|
650
707
|
const collectEvaluatedTransition = (machine, state, selection) => {
|
|
651
708
|
const stateIdentifier = selection.leafPath;
|
|
652
|
-
const transitionResult = collectTransition(machine, selection.transition.transition, selection.context);
|
|
709
|
+
const transitionResult = collectTransition(machine, selection.transition.transition, selection.context, selection.transition.evaluate);
|
|
653
710
|
const unresolvedTarget = transitionResult.state === undefined
|
|
654
711
|
? undefined
|
|
655
712
|
: transitionResult.state;
|
|
@@ -658,45 +715,58 @@ const collectEvaluatedTransition = (machine, state, selection) => {
|
|
|
658
715
|
? undefined
|
|
659
716
|
: resolveChoiceTarget(machine, state, unresolvedTarget, selection.context.event);
|
|
660
717
|
const choiceResolvedTarget = choiceResolution?.target ?? unresolvedTarget;
|
|
718
|
+
const initialResolution = choiceResolvedTarget !== undefined && isInitialTarget(choiceResolvedTarget)
|
|
719
|
+
? resolveInitialTarget(machine, state, choiceResolvedTarget, selection.context.event)
|
|
720
|
+
: undefined;
|
|
721
|
+
const routedTarget = initialResolution?.target ?? choiceResolvedTarget;
|
|
661
722
|
let historyResolution;
|
|
662
|
-
const reenteredHistoryTarget = isHistoryTarget(
|
|
663
|
-
state.active.has(
|
|
664
|
-
?
|
|
723
|
+
const reenteredHistoryTarget = isHistoryTarget(routedTarget) && selection.transition.reenter &&
|
|
724
|
+
state.active.has(routedTarget.parent)
|
|
725
|
+
? routedTarget
|
|
665
726
|
: undefined;
|
|
666
|
-
if (
|
|
727
|
+
if (routedTarget !== undefined && isHistoryTarget(routedTarget)) {
|
|
667
728
|
// A reentering transition may exit the history node's own parent. SCXML
|
|
668
729
|
// history observes that same exit, so resolve against a provisional
|
|
669
730
|
// capture rather than an older record (or the default).
|
|
670
731
|
const provisionalBoundary = selection.transition.reenter
|
|
671
732
|
? getNode(machine, selection.sourcePath).parent
|
|
672
|
-
: getLeastCommonAncestor(machine, stateIdentifier,
|
|
733
|
+
: getLeastCommonAncestor(machine, stateIdentifier, routedTarget.parent);
|
|
673
734
|
const provisionalExitPaths = reenteredHistoryTarget !== undefined
|
|
674
|
-
? sortExitPaths(machine, Array.from(state.active).filter((path) => isPathInSubtree(path,
|
|
735
|
+
? sortExitPaths(machine, Array.from(state.active).filter((path) => isPathInSubtree(path, routedTarget.parent)))
|
|
675
736
|
: getExitPaths(machine, state, provisionalBoundary);
|
|
676
|
-
const stateAtHistoryResolution = provisionalExitPaths.includes(
|
|
737
|
+
const stateAtHistoryResolution = provisionalExitPaths.includes(routedTarget.parent)
|
|
677
738
|
? captureHistory(machine, state, state, provisionalExitPaths)
|
|
678
739
|
: state;
|
|
679
|
-
historyResolution = resolveHistoryTarget(machine, stateAtHistoryResolution,
|
|
740
|
+
historyResolution = resolveHistoryTarget(machine, stateAtHistoryResolution, routedTarget, selection.context.event);
|
|
680
741
|
}
|
|
681
742
|
const target = historyResolution === undefined
|
|
682
|
-
?
|
|
743
|
+
? routedTarget
|
|
683
744
|
: historyResolution.target;
|
|
684
|
-
const
|
|
685
|
-
const
|
|
686
|
-
const
|
|
687
|
-
const
|
|
745
|
+
const additionalTargetActions = [];
|
|
746
|
+
const additionalTargetRaisedEvents = [];
|
|
747
|
+
const additionalTargetEmittedEvents = [];
|
|
748
|
+
const additionalTargetChoiceTransitions = [];
|
|
688
749
|
const additionalChoiceTargets = [];
|
|
689
750
|
for (const additionalTarget of choiceResolution?.additionalTargets ?? []) {
|
|
751
|
+
if (isInitialTarget(additionalTarget)) {
|
|
752
|
+
const resolved = resolveInitialTarget(machine, state, additionalTarget, selection.context.event);
|
|
753
|
+
additionalChoiceTargets.push(resolved.target);
|
|
754
|
+
additionalTargetActions.push(...resolved.commands);
|
|
755
|
+
additionalTargetRaisedEvents.push(...resolved.raisedEvents);
|
|
756
|
+
additionalTargetEmittedEvents.push(...resolved.emittedEvents);
|
|
757
|
+
additionalTargetChoiceTransitions.push(...resolved.transitions);
|
|
758
|
+
continue;
|
|
759
|
+
}
|
|
690
760
|
if (!isHistoryTarget(additionalTarget)) {
|
|
691
761
|
additionalChoiceTargets.push(additionalTarget);
|
|
692
762
|
continue;
|
|
693
763
|
}
|
|
694
764
|
const resolved = resolveHistoryTarget(machine, state, additionalTarget, selection.context.event);
|
|
695
765
|
additionalChoiceTargets.push(resolved.target);
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
766
|
+
additionalTargetActions.push(...resolved.commands);
|
|
767
|
+
additionalTargetRaisedEvents.push(...resolved.raisedEvents);
|
|
768
|
+
additionalTargetEmittedEvents.push(...resolved.emittedEvents);
|
|
769
|
+
additionalTargetChoiceTransitions.push(...resolved.transitions);
|
|
700
770
|
}
|
|
701
771
|
const targetPath = target === undefined
|
|
702
772
|
? undefined
|
|
@@ -713,33 +783,38 @@ const collectEvaluatedTransition = (machine, state, selection) => {
|
|
|
713
783
|
if (!changed) {
|
|
714
784
|
return {
|
|
715
785
|
selection,
|
|
786
|
+
branchIndex: transitionResult.branchIndex,
|
|
716
787
|
unresolvedTarget,
|
|
717
788
|
target,
|
|
718
789
|
commands: [
|
|
719
790
|
...transitionResult.commands,
|
|
720
791
|
...(choiceResolution?.commands ?? []),
|
|
792
|
+
...(initialResolution?.commands ?? []),
|
|
721
793
|
...(historyResolution?.commands ?? []),
|
|
722
|
-
...
|
|
794
|
+
...additionalTargetActions
|
|
723
795
|
],
|
|
724
796
|
raisedEvents: [
|
|
725
797
|
...transitionResult.raisedEvents,
|
|
726
798
|
...(choiceResolution?.raisedEvents ?? []),
|
|
799
|
+
...(initialResolution?.raisedEvents ?? []),
|
|
727
800
|
...(historyResolution?.raisedEvents ?? []),
|
|
728
|
-
...
|
|
801
|
+
...additionalTargetRaisedEvents
|
|
729
802
|
],
|
|
730
803
|
emittedEvents: [
|
|
731
804
|
...transitionResult.emittedEvents,
|
|
732
805
|
...(choiceResolution?.emittedEvents ?? []),
|
|
806
|
+
...(initialResolution?.emittedEvents ?? []),
|
|
733
807
|
...(historyResolution?.emittedEvents ?? []),
|
|
734
|
-
...
|
|
808
|
+
...additionalTargetEmittedEvents
|
|
735
809
|
],
|
|
736
810
|
changed,
|
|
737
811
|
exitPaths: [],
|
|
738
812
|
entryPaths: [],
|
|
739
813
|
choiceTransitions: [
|
|
740
814
|
...(choiceResolution?.transitions ?? []),
|
|
815
|
+
...(initialResolution?.transitions ?? []),
|
|
741
816
|
...(historyResolution?.transitions ?? []),
|
|
742
|
-
...
|
|
817
|
+
...additionalTargetChoiceTransitions
|
|
743
818
|
]
|
|
744
819
|
};
|
|
745
820
|
}
|
|
@@ -752,25 +827,29 @@ const collectEvaluatedTransition = (machine, state, selection) => {
|
|
|
752
827
|
: naturalBoundary;
|
|
753
828
|
return {
|
|
754
829
|
selection,
|
|
830
|
+
branchIndex: transitionResult.branchIndex,
|
|
755
831
|
unresolvedTarget,
|
|
756
832
|
target,
|
|
757
833
|
commands: [
|
|
758
834
|
...transitionResult.commands,
|
|
759
835
|
...(choiceResolution?.commands ?? []),
|
|
836
|
+
...(initialResolution?.commands ?? []),
|
|
760
837
|
...(historyResolution?.commands ?? []),
|
|
761
|
-
...
|
|
838
|
+
...additionalTargetActions
|
|
762
839
|
],
|
|
763
840
|
raisedEvents: [
|
|
764
841
|
...transitionResult.raisedEvents,
|
|
765
842
|
...(choiceResolution?.raisedEvents ?? []),
|
|
843
|
+
...(initialResolution?.raisedEvents ?? []),
|
|
766
844
|
...(historyResolution?.raisedEvents ?? []),
|
|
767
|
-
...
|
|
845
|
+
...additionalTargetRaisedEvents
|
|
768
846
|
],
|
|
769
847
|
emittedEvents: [
|
|
770
848
|
...transitionResult.emittedEvents,
|
|
771
849
|
...(choiceResolution?.emittedEvents ?? []),
|
|
850
|
+
...(initialResolution?.emittedEvents ?? []),
|
|
772
851
|
...(historyResolution?.emittedEvents ?? []),
|
|
773
|
-
...
|
|
852
|
+
...additionalTargetEmittedEvents
|
|
774
853
|
],
|
|
775
854
|
changed,
|
|
776
855
|
exitPaths: reenteredHistoryTarget !== undefined
|
|
@@ -781,8 +860,9 @@ const collectEvaluatedTransition = (machine, state, selection) => {
|
|
|
781
860
|
: getEntryPaths(machine, stateAfterTransition, boundary),
|
|
782
861
|
choiceTransitions: [
|
|
783
862
|
...(choiceResolution?.transitions ?? []),
|
|
863
|
+
...(initialResolution?.transitions ?? []),
|
|
784
864
|
...(historyResolution?.transitions ?? []),
|
|
785
|
-
...
|
|
865
|
+
...additionalTargetChoiceTransitions
|
|
786
866
|
]
|
|
787
867
|
};
|
|
788
868
|
};
|
|
@@ -939,6 +1019,7 @@ const microstep = (machine, state, event, selections) => {
|
|
|
939
1019
|
source: transition.selection.sourcePath,
|
|
940
1020
|
trigger: transition.selection.trigger,
|
|
941
1021
|
reenter: transition.selection.transition.reenter,
|
|
1022
|
+
branchIndex: transition.branchIndex,
|
|
942
1023
|
target: transition.unresolvedTarget === undefined ? undefined : getTargetNodePath(transition.unresolvedTarget),
|
|
943
1024
|
resolvedTarget: transition.target === undefined ? undefined : getTargetNodePath(transition.target)
|
|
944
1025
|
},
|