@typeonce/effect-machine 0.1.0 → 0.2.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/dist/Machine.js CHANGED
@@ -121,6 +121,7 @@ const cloneWithHandlers = (self, handlers) => {
121
121
  const machine = Object.create(Proto);
122
122
  machine.states = self.states;
123
123
  machine.events = self.events;
124
+ machine.internalEvents = self.internalEvents;
124
125
  machine.emits = self.emits;
125
126
  machine.input = self.input;
126
127
  machine.id = self.id;
@@ -129,6 +130,7 @@ const cloneWithHandlers = (self, handlers) => {
129
130
  machine.makeTargetBuilder = self.makeTargetBuilder;
130
131
  machine.handlers = handlers;
131
132
  machine.handle = makeHandle(machine);
133
+ Model.copyProtocol(self, machine);
132
134
  return machine;
133
135
  };
134
136
  const flattenHandlers = (handlers, states, prefix, config) => {
@@ -342,31 +344,6 @@ const makeTargetBuilder = (states, stateNodes) => {
342
344
  full
343
345
  });
344
346
  };
345
- const getSnapshotByPath = (snapshot, path, parents) => {
346
- if (snapshot.path === path) {
347
- return Option.some(snapshot);
348
- }
349
- if (!path.startsWith(`${snapshot.path}.`)) {
350
- return Option.none();
351
- }
352
- if (parents !== undefined) {
353
- parents[snapshot.path] = snapshot.value;
354
- }
355
- if (hasProperty(snapshot, "state") && Model.isSnapshot(snapshot.state)) {
356
- return getSnapshotByPath(snapshot.state, path, parents);
357
- }
358
- if (hasProperty(snapshot, "states") && typeof snapshot.states === "object" && snapshot.states !== null) {
359
- for (const child of Object.values(snapshot.states)) {
360
- if (Model.isSnapshot(child)) {
361
- const result = getSnapshotByPath(child, path, parents);
362
- if (Option.isSome(result)) {
363
- return result;
364
- }
365
- }
366
- }
367
- }
368
- return Option.none();
369
- };
370
347
  /**
371
348
  * Defines a state tree while preserving literal state paths.
372
349
  *
@@ -385,7 +362,7 @@ const getSnapshotByPath = (snapshot, path, parents) => {
385
362
  *
386
363
  * ```ts
387
364
  * import { Schema } from "effect"
388
- * import { Machine } from "effect/unstable/machine"
365
+ * import { Machine } from "@typeonce/effect-machine"
389
366
  *
390
367
  * class Idle extends Schema.TaggedClass<Idle>("Idle")("Idle", {}) {}
391
368
  *
@@ -404,13 +381,13 @@ const getSnapshotByPath = (snapshot, path, parents) => {
404
381
  export const defineStates = (states, ..._validation) => ({
405
382
  states: states,
406
383
  initial: makeSnapshotBuilder(states, { mode: "initial", prefix: "" }),
407
- get: ((snapshot, path) => getSnapshotByPath(snapshot, path).pipe(Option.map((snapshot) => snapshot.value))),
384
+ get: ((snapshot, path) => Model.getSnapshotByPath(snapshot, path).pipe(Option.map((snapshot) => snapshot.value))),
408
385
  getWithParents: ((snapshot, path) => {
409
386
  const parents = {};
410
- return getSnapshotByPath(snapshot, path, parents).pipe(Option.map((snapshot) => ({ value: snapshot.value, parents })));
387
+ return Model.getSnapshotByPath(snapshot, path, parents).pipe(Option.map((snapshot) => ({ value: snapshot.value, parents })));
411
388
  }),
412
- getSnapshot: getSnapshotByPath,
413
- matches: (snapshot, path) => Option.isSome(getSnapshotByPath(snapshot, path))
389
+ getSnapshot: Model.getSnapshotByPath,
390
+ matches: (snapshot, path) => Option.isSome(Model.getSnapshotByPath(snapshot, path))
414
391
  });
415
392
  /**
416
393
  * Creates a schema-first machine definition.
@@ -423,11 +400,16 @@ export const defineStates = (states, ..._validation) => ({
423
400
  * `defineStates` or is passed inline. Call `handle` on the returned definition
424
401
  * to implement state behavior with ordinary TypeScript control flow.
425
402
  *
403
+ * Schemas in `events` define the public input protocol. Schemas in
404
+ * `internalEvents` are added to the complete handler protocol for invoke
405
+ * results, child emissions, and other machine-local deliveries. Their tags
406
+ * must be disjoint.
407
+ *
426
408
  * **Example** (Typed counter machine)
427
409
  *
428
410
  * ```ts
429
411
  * import { Schema } from "effect"
430
- * import { Machine } from "effect/unstable/machine"
412
+ * import { Machine } from "@typeonce/effect-machine"
431
413
  *
432
414
  * class Count extends Schema.TaggedClass<Count>("Count")("Count", {
433
415
  * value: Schema.Number
@@ -461,6 +443,7 @@ export const make = (config, ..._validation) => {
461
443
  const self = Object.create(Proto);
462
444
  self.states = config.states;
463
445
  self.events = config.events;
446
+ self.internalEvents = config.internalEvents ?? [];
464
447
  self.emits = config.emits ?? [];
465
448
  self.input = config.input;
466
449
  self.id = config.id;
@@ -469,6 +452,7 @@ export const make = (config, ..._validation) => {
469
452
  self.makeTargetBuilder = makeTargetBuilder(config.states, self.stateNodes);
470
453
  self.handlers = Object.create(null);
471
454
  self.handle = makeHandle(self);
455
+ Model.setProtocol(self);
472
456
  return self;
473
457
  };
474
458
  /**
@@ -538,6 +522,8 @@ export const decodeSnapshot = Model.decodeSnapshot;
538
522
  * Invoked child processes run while their owning state is active and are
539
523
  * stopped before the state exits. An unrecovered child failure fails the owning
540
524
  * machine; recover inside the child Effect when failure should become an event.
525
+ * The `id` is a state-local lifecycle key, not a communication address. To
526
+ * send events to the invocation, pass a typed `childAddress` as `address`.
541
527
  * The `src` callback is intentionally independent from its parent state. When
542
528
  * construction depends on the typed state, lifecycle event, or runtime, use
543
529
  * the state config factory form `invoke: (context) => Machine.invoke(...)` and
@@ -547,7 +533,7 @@ export const decodeSnapshot = Model.decodeSnapshot;
547
533
  *
548
534
  * ```ts
549
535
  * import { Effect, Schema } from "effect"
550
- * import { Machine } from "effect/unstable/machine"
536
+ * import { Machine } from "@typeonce/effect-machine"
551
537
  *
552
538
  * class Loaded extends Schema.TaggedClass<Loaded>("Loaded")("Loaded", {
553
539
  * value: Schema.String
@@ -565,6 +551,64 @@ export const decodeSnapshot = Model.decodeSnapshot;
565
551
  * @since 4.0.0
566
552
  */
567
553
  export const invoke = (config) => ({ ...config, [InvokeTypeId]: undefined });
554
+ /**
555
+ * Invokes one Effect and maps its typed outcome into machine-local events.
556
+ *
557
+ * **Details**
558
+ *
559
+ * This is the high-level one-shot counterpart to `invoke`. Success and typed
560
+ * failure values are mapped independently, so callers do not need to recover
561
+ * an Effect into a common event union by hand. Defects and interruption remain
562
+ * failures of the owning machine.
563
+ *
564
+ * Declare mapped outcomes in `internalEvents` unless they are also legitimate
565
+ * public commands.
566
+ *
567
+ * @see {@link invoke} for arbitrary child process logic.
568
+ * @see {@link after} for a state-scoped delayed event.
569
+ * @category constructors
570
+ * @since 4.0.0
571
+ */
572
+ export const invokeEffect = (config) => ((config) => invoke({
573
+ id: config.id,
574
+ src: () => effect(config.onFailure === undefined
575
+ ? Effect.map(config.effect, config.onSuccess)
576
+ : Effect.matchEffect(config.effect, {
577
+ onFailure: (error) => Effect.succeed(config.onFailure(error)),
578
+ onSuccess: (value) => Effect.succeed(config.onSuccess(value))
579
+ }))
580
+ }))(config);
581
+ /**
582
+ * Creates a cancellable state-scoped delayed event.
583
+ *
584
+ * The timer starts when its owning state is entered and is interrupted when
585
+ * that state exits. The delayed value should normally be declared in
586
+ * `internalEvents`.
587
+ *
588
+ * @category constructors
589
+ * @since 4.0.0
590
+ */
591
+ export const after = (duration, event, options) => invoke({
592
+ id: options?.id ?? `Machine.after:${String(event._tag)}`,
593
+ src: () => effect(Effect.as(Effect.sleep(duration), event))
594
+ });
595
+ /**
596
+ * Constructs another tagged case from compatible source fields.
597
+ *
598
+ * The target must be one tagged struct or tagged class whose discriminator is
599
+ * supplied by its constructor. Union wrappers are rejected because their
600
+ * `make` operation cannot select a member after the source discriminator has
601
+ * been discarded. Missing or incompatible required target fields must be
602
+ * supplied by the patch, and the target schema's normal `make` validation
603
+ * remains authoritative at runtime.
604
+ *
605
+ * @category constructors
606
+ * @since 4.0.0
607
+ */
608
+ export const retag = (target, source, ...args) => {
609
+ const { _tag: _, ...fields } = source;
610
+ return target.make({ ...fields, ...(args[0] ?? {}) });
611
+ };
568
612
  /**
569
613
  * Creates an invoked child process from a complete statechart machine.
570
614
  *
@@ -594,7 +638,8 @@ export const invokeMachine = ((config) => {
594
638
  const machine = config.child.machine;
595
639
  return {
596
640
  id: config.child.id,
597
- addressable: true,
641
+ address: config.child.id,
642
+ descriptor: config.child,
598
643
  src: () => machine.input === undefined
599
644
  ? internalProcess.toProcessLogic(machine)
600
645
  : internalProcess.toProcessLogic(machine, config.input),
@@ -664,13 +709,14 @@ export const plan = internalPlanner.plan;
664
709
  * The action's error and service requirements are retained in the machine
665
710
  * type without becoming requirements of `plan` or `planInitial`. The managed
666
711
  * runtime executes staged actions sequentially before publishing the planned
667
- * state.
712
+ * state. Pass a second argument when the planning Effect should return that
713
+ * value after staging.
668
714
  *
669
715
  * **Example** (Typed staged action)
670
716
  *
671
717
  * ```ts
672
718
  * import { Context, Effect } from "effect"
673
- * import { Machine } from "effect/unstable/machine"
719
+ * import { Machine } from "@typeonce/effect-machine"
674
720
  *
675
721
  * class Audit extends Context.Service<Audit, {
676
722
  * readonly write: Effect.Effect<void, "AuditError">
@@ -685,7 +731,10 @@ export const plan = internalPlanner.plan;
685
731
  * @category combinators
686
732
  * @since 4.0.0
687
733
  */
688
- export const action = (effect) => internalPlanner.action(effect);
734
+ export const action = ((effect, ...next) => {
735
+ const staged = internalPlanner.action(effect);
736
+ return next.length === 0 ? staged : Effect.as(staged, next[0]);
737
+ });
689
738
  const processLocal = (operation) => Effect.die(new ProcessLocalErrorValue({ operation }));
690
739
  const standaloneProcessRuntime = internalRuntime.MachineRuntime.of({
691
740
  self: {
@@ -756,7 +805,7 @@ export const runtime = () => internalPlanner.runtime();
756
805
  *
757
806
  * ```ts
758
807
  * import { Effect, Schema } from "effect"
759
- * import { Machine } from "effect/unstable/machine"
808
+ * import { Machine } from "@typeonce/effect-machine"
760
809
  *
761
810
  * class LoadFailed extends Schema.TaggedClass<LoadFailed>("LoadFailed")("LoadFailed", {
762
811
  * reason: Schema.String
@@ -835,20 +884,29 @@ export const transition = (initial, transition) => logic({
835
884
  run: ({ receive, updateState }) => receive.pipe(Effect.flatMap((event) => updateState((state) => transition(state, event))), Effect.forever)
836
885
  });
837
886
  /**
838
- * Creates a typed parent-local child address or complete machine descriptor.
887
+ * Creates a typed descriptor for a complete child machine.
839
888
  *
840
- * **When to use**
889
+ * Descriptors identify a child by id and machine identity, so independently
890
+ * constructed descriptors for the same pair address the same invoked child.
891
+ *
892
+ * @category constructors
893
+ * @since 4.0.0
894
+ */
895
+ export const child = (id, machine) => ({
896
+ [ChildMachineTypeId]: ChildMachineTypeId,
897
+ id,
898
+ machine
899
+ });
900
+ /**
901
+ * Creates a typed parent-local address for lower-level child process logic.
841
902
  *
842
- * Use with a complete machine to create the descriptor shared by
843
- * `invokeMachine`, `sendTo`, and child lookup APIs. The one-argument form
844
- * creates an event-only address for lower-level process logic.
903
+ * The default event protocol is `never`; provide an event type before using
904
+ * the address with `spawn`, `invoke`, or `sendTo`.
845
905
  *
846
906
  * @category constructors
847
907
  * @since 4.0.0
848
908
  */
849
- export const child = ((id, machine) => machine === undefined
850
- ? id
851
- : { [ChildMachineTypeId]: ChildMachineTypeId, id, machine });
909
+ export const childAddress = (id) => id;
852
910
  /**
853
911
  * Spawns a child process owned by the currently running machine.
854
912
  *
@@ -876,14 +934,14 @@ export const spawn = ((logic, options) => Effect.flatMap(internalRuntime.Machine
876
934
  * @category runtime
877
935
  * @since 4.0.0
878
936
  */
879
- export const sendTo = ((child, event) => Effect.flatMap(internalRuntime.MachineRuntime, (runtime) => runtime.sendTo(typeof child === "string" ? child : child.id, event)));
937
+ export const sendTo = ((child, event) => Effect.flatMap(internalRuntime.MachineRuntime, (runtime) => runtime.sendTo(child, event)));
880
938
  /**
881
939
  * Stops a named child process of the running machine.
882
940
  *
883
941
  * @category runtime
884
942
  * @since 4.0.0
885
943
  */
886
- export const stopChild = ((child) => Effect.flatMap(internalRuntime.MachineRuntime, (runtime) => runtime.stopChild(typeof child === "string" ? child : child.id)));
944
+ export const stopChild = ((child) => Effect.flatMap(internalRuntime.MachineRuntime, (runtime) => runtime.stopChild(child)));
887
945
  /**
888
946
  * Returns a stream of terminal lifecycle outcomes for a running machine.
889
947
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Machine.js","sourceRoot":"","sources":["../src/Machine.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * @since 4.0.0
5
5
  */
6
6
  import * as Effect from "effect/Effect";
7
+ import * as Option from "effect/Option";
7
8
  import * as Schema from "effect/Schema";
8
9
  import type { Machine } from "../Machine.js";
9
10
  import { MachineSchemaDecodeError, MachineSchemaEncodeError } from "./machineErrors.js";
@@ -21,6 +22,7 @@ export declare const makeTarget: <const States extends Machine.StateSchemas, con
21
22
  }) => Machine.Target<States, StateId>;
22
23
  export declare const isTarget: (u: unknown) => u is Machine.Target<any, any>;
23
24
  export declare const isSnapshot: (u: unknown) => u is Machine.AtomicSnapshot<string, unknown>;
25
+ export declare const getSnapshotByPath: (snapshot: Machine.AtomicSnapshot<string, unknown>, path: string, parents?: Record<string, unknown>) => Option.Option<Machine.AtomicSnapshot<string, unknown>>;
24
26
  export interface ActiveConfiguration {
25
27
  readonly active: ReadonlySet<string>;
26
28
  readonly values: ReadonlyMap<string, unknown>;
@@ -38,8 +40,10 @@ export interface DecodeBoundaryOptions {
38
40
  interface CompletionResult extends FinalCompletion {
39
41
  readonly isNew: boolean;
40
42
  }
43
+ export declare const setProtocol: (machine: Machine.Any) => void;
44
+ export declare const copyProtocol: (source: Machine.Any, target: Machine.Any) => void;
41
45
  export declare const getEventName: (event: unknown) => string | undefined;
42
- export declare const decodeBoundary: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => Effect.Effect<A, MachineSchemaDecodeError, never>;
46
+ export declare const decodeBoundary: <A>(machine: Machine.Any, schema: Schema.Top, value: unknown, options: DecodeBoundaryOptions) => Effect.Effect<A, MachineSchemaDecodeError>;
43
47
  export declare const decodeInput: <Input extends Schema.Top>(machine: Machine.Any, schema: Input, value: unknown) => Effect.Effect<Input["Type"], MachineSchemaDecodeError>;
44
48
  export declare const decodeEvent: <const Events extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EventOf<Events>, MachineSchemaDecodeError>;
45
49
  export declare const decodeEmit: <const Emits extends ReadonlyArray<Machine.TaggedSchema>>(machine: Machine.Any, event: unknown) => Effect.Effect<Machine.EmitOf<Emits>, MachineSchemaDecodeError>;
@@ -59,6 +63,7 @@ export declare const getActiveLeafPathFrom: (machine: Machine.Any, configuration
59
63
  export declare const getRootPath: (machine: Machine.Any, configuration: ActiveConfiguration) => string;
60
64
  export declare const getActiveValue: (configuration: ActiveConfiguration, path: string) => unknown;
61
65
  export declare const getParentValues: (machine: Machine.Any, configuration: ActiveConfiguration, path: string) => Readonly<Record<string, unknown>>;
66
+ export declare const getParentValue: (machine: Machine.Any, configuration: ActiveConfiguration, path: string) => unknown;
62
67
  export declare const getInitialEntryPaths: (machine: Machine.Any, configuration: ActiveConfiguration) => ReadonlyArray<string>;
63
68
  export declare const snapshotFromPath: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration, path: string) => Machine.SnapshotByIdentifier<States, Machine.StateIdentifier<States>>;
64
69
  export declare const snapshotFromConfiguration: <const States extends Machine.StateSchemas>(machine: Machine.Any, configuration: ActiveConfiguration) => Machine.Snapshot<States>;
@@ -1 +1 @@
1
- {"version":3,"file":"machineModel.d.ts","sourceRoot":"","sources":["../../src/internal/machineModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machineModel.d.ts","sourceRoot":"","sources":["../../src/internal/machineModel.ts"],"names":[],"mappings":"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"}
@@ -107,24 +107,68 @@ export const makeTarget = (path, value, options) => ({
107
107
  });
108
108
  export const isTarget = (u) => hasProperty(u, TargetTypeId);
109
109
  export const isSnapshot = (u) => hasProperty(u, "path") && hasProperty(u, "value");
110
+ export const getSnapshotByPath = (snapshot, path, parents) => {
111
+ if (snapshot.path === path) {
112
+ return Option.some(snapshot);
113
+ }
114
+ if (!path.startsWith(`${snapshot.path}.`)) {
115
+ return Option.none();
116
+ }
117
+ if (parents !== undefined) {
118
+ parents[snapshot.path] = snapshot.value;
119
+ }
120
+ if (hasProperty(snapshot, "state") && isSnapshot(snapshot.state)) {
121
+ return getSnapshotByPath(snapshot.state, path, parents);
122
+ }
123
+ if (hasProperty(snapshot, "states") && typeof snapshot.states === "object" && snapshot.states !== null) {
124
+ for (const child of Object.values(snapshot.states)) {
125
+ if (isSnapshot(child)) {
126
+ const result = getSnapshotByPath(child, path, parents);
127
+ if (Option.isSome(result)) {
128
+ return result;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ return Option.none();
134
+ };
135
+ const MachineProtocolTypeId = Symbol.for("effect/Machine/protocol");
136
+ const getProtocolSchemas = (machine) => {
137
+ const protocol = machine[MachineProtocolTypeId];
138
+ if (protocol === undefined) {
139
+ throw new Error("Machine protocol is unavailable");
140
+ }
141
+ return protocol;
142
+ };
143
+ const setProtocolSchemas = (machine, protocol) => {
144
+ Object.defineProperty(machine, MachineProtocolTypeId, {
145
+ value: protocol,
146
+ enumerable: false
147
+ });
148
+ };
149
+ export const setProtocol = (machine) => {
150
+ setProtocolSchemas(machine, {
151
+ event: Schema.Union([...machine.events, ...machine.internalEvents]),
152
+ emit: Schema.Union(machine.emits)
153
+ });
154
+ };
155
+ export const copyProtocol = (source, target) => setProtocolSchemas(target, getProtocolSchemas(source));
110
156
  export const getEventName = (event) => hasProperty(event, "_tag") ? String(event._tag) : undefined;
111
- export const decodeBoundary = Effect.fnUntraced(function* (machine, schema, value, options) {
112
- return yield* Schema.decodeUnknownEffect(Schema.toType(schema))(value).pipe(Effect.mapError((cause) => new MachineSchemaDecodeError({
113
- machineId: machine.id,
114
- boundary: options.boundary,
115
- cause,
116
- ...(options.state === undefined ? {} : { state: options.state }),
117
- ...(options.event === undefined ? {} : { event: options.event })
118
- })));
119
- });
157
+ export const decodeBoundary = (machine, schema, value, options) => Schema.decodeUnknownEffect(Schema.toType(schema))(value).pipe(Effect.mapError((cause) => new MachineSchemaDecodeError({
158
+ machineId: machine.id,
159
+ boundary: options.boundary,
160
+ cause,
161
+ ...(options.state === undefined ? {} : { state: options.state }),
162
+ ...(options.event === undefined ? {} : { event: options.event })
163
+ })));
120
164
  export const decodeInput = (machine, schema, value) => decodeBoundary(machine, schema, value, { boundary: "input" });
121
165
  export const decodeEvent = (machine, event) => {
122
166
  const eventName = getEventName(event);
123
- return decodeBoundary(machine, Schema.Union(machine.events), event, eventName === undefined ? { boundary: "event" } : { boundary: "event", event: eventName });
167
+ return decodeBoundary(machine, getProtocolSchemas(machine).event, event, eventName === undefined ? { boundary: "event" } : { boundary: "event", event: eventName });
124
168
  };
125
169
  export const decodeEmit = (machine, event) => {
126
170
  const eventName = getEventName(event);
127
- return decodeBoundary(machine, Schema.Union(machine.emits), event, eventName === undefined ? { boundary: "emit" } : { boundary: "emit", event: eventName });
171
+ return decodeBoundary(machine, getProtocolSchemas(machine).emit, event, eventName === undefined ? { boundary: "emit" } : { boundary: "emit", event: eventName });
128
172
  };
129
173
  export const decodeStateValue = (machine, node, value) => decodeBoundary(machine, node.schema, value, { boundary: "state", state: node.path });
130
174
  export const decodeOutputValue = (machine, node, value) => node.output === undefined
@@ -193,6 +237,10 @@ export const getParentValues = (machine, configuration, path) => {
193
237
  }
194
238
  return parents;
195
239
  };
240
+ export const getParentValue = (machine, configuration, path) => {
241
+ const parent = getNode(machine, path).parent;
242
+ return parent === undefined ? undefined : getActiveValue(configuration, parent);
243
+ };
196
244
  export const getInitialEntryPaths = (machine, configuration) => {
197
245
  const visit = (path) => {
198
246
  if (!configuration.active.has(path)) {
@@ -234,10 +282,7 @@ export const snapshotFromPath = (machine, configuration, path) => {
234
282
  };
235
283
  export const snapshotFromConfiguration = (machine, configuration) => {
236
284
  const snapshot = snapshotFromPath(machine, configuration, getRootPath(machine, configuration));
237
- const root = getRootPath(machine, configuration);
238
- const retainPartialOutputs = !isActiveFinalNode(machine, configuration, root);
239
285
  const completed = Array.from(configuration.outputs)
240
- .filter(([path]) => retainPartialOutputs || hasCompletionHandler(machine, path))
241
286
  .map(([path, output]) => ({ path, output }));
242
287
  if (completed.length > 0) {
243
288
  ;
@@ -434,7 +479,7 @@ export const normalizeTargetConfigurationEffect = (machine, current, target) =>
434
479
  };
435
480
  export const getStateConfigByPath = (machine, path) => machine.handlers[path];
436
481
  export const getActiveChildPath = (machine, configuration, path) => getNode(machine, path).children.find((child) => configuration.active.has(child));
437
- export const isDirectFinalPath = (machine, path) => getNode(machine, path).type === "final" || getStateConfigByPath(machine, path)?.type === "final";
482
+ export const isDirectFinalPath = (machine, path) => getNode(machine, path).type === "final";
438
483
  export const hasCompletionHandler = (machine, path) => getStateConfigByPath(machine, path)?.onDone !== undefined;
439
484
  export const isActiveFinalNode = (machine, configuration, path) => {
440
485
  if (!configuration.active.has(path)) {
@@ -478,6 +523,7 @@ export const resolveFinalOutputEffect = Effect.fnUntraced(function* (machine, co
478
523
  const node = getNode(machine, path);
479
524
  const output = getStateConfigByPath(machine, path)?.output?.({
480
525
  state: getActiveValue(configuration, path),
526
+ parent: getParentValue(machine, configuration, path),
481
527
  parents: getParentValues(machine, configuration, path),
482
528
  event,
483
529
  outputs
@@ -488,6 +534,13 @@ export const completeActiveFinalNodeEffect = Effect.fnUntraced(function* (machin
488
534
  if (!configuration.active.has(path)) {
489
535
  return undefined;
490
536
  }
537
+ if (outputs.has(path)) {
538
+ return {
539
+ path,
540
+ output: outputs.get(path),
541
+ isNew: false
542
+ };
543
+ }
491
544
  const node = getNode(machine, path);
492
545
  if (node.type === "compound") {
493
546
  const child = getActiveChildPath(machine, configuration, path);