@barnum/barnum 0.0.0-main-54c41bbb → 0.0.0-main-57736a4e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/artifacts/linux-arm64/barnum +0 -0
  2. package/artifacts/linux-x64/barnum +0 -0
  3. package/artifacts/macos-arm64/barnum +0 -0
  4. package/artifacts/macos-x64/barnum +0 -0
  5. package/artifacts/win-x64/barnum.exe +0 -0
  6. package/dist/all.d.ts +1 -0
  7. package/dist/all.d.ts.map +1 -0
  8. package/dist/all.js +1 -1
  9. package/dist/ast.d.ts +148 -61
  10. package/dist/ast.d.ts.map +1 -0
  11. package/dist/ast.js +225 -42
  12. package/dist/bind.d.ts +7 -10
  13. package/dist/bind.d.ts.map +1 -0
  14. package/dist/bind.js +8 -8
  15. package/dist/builtins/array.d.ts +28 -0
  16. package/dist/builtins/array.d.ts.map +1 -0
  17. package/dist/builtins/array.js +74 -0
  18. package/dist/builtins/index.d.ts +6 -0
  19. package/dist/builtins/index.d.ts.map +1 -0
  20. package/dist/builtins/index.js +5 -0
  21. package/dist/builtins/scalar.d.ts +12 -0
  22. package/dist/builtins/scalar.d.ts.map +1 -0
  23. package/dist/builtins/scalar.js +41 -0
  24. package/dist/builtins/struct.d.ts +25 -0
  25. package/dist/builtins/struct.d.ts.map +1 -0
  26. package/dist/builtins/struct.js +67 -0
  27. package/dist/builtins/tagged-union.d.ts +54 -0
  28. package/dist/builtins/tagged-union.d.ts.map +1 -0
  29. package/dist/builtins/tagged-union.js +81 -0
  30. package/dist/builtins/with-resource.d.ts +23 -0
  31. package/dist/builtins/with-resource.d.ts.map +1 -0
  32. package/dist/builtins/with-resource.js +35 -0
  33. package/dist/chain.d.ts +1 -0
  34. package/dist/chain.d.ts.map +1 -0
  35. package/dist/chain.js +3 -3
  36. package/dist/effect-id.d.ts +1 -0
  37. package/dist/effect-id.d.ts.map +1 -0
  38. package/dist/handler.d.ts +7 -6
  39. package/dist/handler.d.ts.map +1 -0
  40. package/dist/handler.js +3 -3
  41. package/dist/index.d.ts +9 -5
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +4 -2
  44. package/dist/iterator.d.ts +18 -0
  45. package/dist/iterator.d.ts.map +1 -0
  46. package/dist/iterator.js +71 -0
  47. package/dist/option.d.ts +74 -0
  48. package/dist/option.d.ts.map +1 -0
  49. package/dist/option.js +141 -0
  50. package/dist/pipe.d.ts +2 -1
  51. package/dist/pipe.d.ts.map +1 -0
  52. package/dist/pipe.js +3 -2
  53. package/dist/race.d.ts +4 -3
  54. package/dist/race.d.ts.map +1 -0
  55. package/dist/race.js +10 -9
  56. package/dist/recursive.d.ts +9 -3
  57. package/dist/recursive.d.ts.map +1 -0
  58. package/dist/recursive.js +16 -10
  59. package/dist/result.d.ts +50 -0
  60. package/dist/result.d.ts.map +1 -0
  61. package/dist/result.js +117 -0
  62. package/dist/run.d.ts +2 -1
  63. package/dist/run.d.ts.map +1 -0
  64. package/dist/run.js +9 -5
  65. package/dist/runtime.d.ts +6 -0
  66. package/dist/runtime.d.ts.map +1 -0
  67. package/dist/runtime.js +7 -0
  68. package/dist/schema.d.ts +1 -0
  69. package/dist/schema.d.ts.map +1 -0
  70. package/dist/schemas.d.ts +5 -0
  71. package/dist/schemas.d.ts.map +1 -0
  72. package/dist/schemas.js +13 -0
  73. package/dist/try-catch.d.ts +1 -0
  74. package/dist/try-catch.d.ts.map +1 -0
  75. package/dist/try-catch.js +6 -6
  76. package/dist/values.d.ts +6 -0
  77. package/dist/values.d.ts.map +1 -0
  78. package/dist/values.js +12 -0
  79. package/dist/worker.d.ts +1 -0
  80. package/dist/worker.d.ts.map +1 -0
  81. package/package.json +7 -3
  82. package/src/all.ts +1 -1
  83. package/src/ast.ts +608 -132
  84. package/src/bind.ts +24 -23
  85. package/src/builtins/array.ts +96 -0
  86. package/src/builtins/index.ts +10 -0
  87. package/src/builtins/scalar.ts +49 -0
  88. package/src/builtins/struct.ts +111 -0
  89. package/src/builtins/tagged-union.ts +142 -0
  90. package/src/builtins/with-resource.ts +69 -0
  91. package/src/chain.ts +4 -4
  92. package/src/handler.ts +10 -13
  93. package/src/index.ts +18 -15
  94. package/src/iterator.ts +125 -0
  95. package/src/option.ts +199 -0
  96. package/src/pipe.ts +10 -4
  97. package/src/race.ts +32 -22
  98. package/src/recursive.ts +46 -22
  99. package/src/result.ts +168 -0
  100. package/src/run.ts +14 -6
  101. package/src/runtime.ts +16 -0
  102. package/src/schemas.ts +21 -0
  103. package/src/try-catch.ts +8 -9
  104. package/src/values.ts +21 -0
  105. package/dist/builtins.d.ts +0 -229
  106. package/dist/builtins.js +0 -486
  107. package/src/builtins.ts +0 -703
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/all.d.ts CHANGED
@@ -40,3 +40,4 @@ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TO
40
40
  TOut9,
41
41
  TOut10
42
42
  ]>;
43
+ //# sourceMappingURL=all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../src/all.ts"],"names":[],"mappings":"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"}
package/dist/all.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { typedAction, } from "./ast.js";
2
- import { constant } from "./builtins.js";
2
+ import { constant } from "./builtins/index.js";
3
3
  export function all(...actions) {
4
4
  if (actions.length === 0) {
5
5
  return constant([]);
package/dist/ast.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
+ import { type VarRef, type InferVarRefs } from "./bind.js";
2
3
  export type Action = InvokeAction | ChainAction | ForEachAction | AllAction | BranchAction | ResumeHandleAction | ResumePerformAction | RestartHandleAction | RestartPerformAction;
3
4
  export interface InvokeAction {
4
5
  kind: "Invoke";
@@ -72,6 +73,8 @@ export type BuiltinKind = {
72
73
  index: number;
73
74
  } | {
74
75
  kind: "CollectSome";
76
+ } | {
77
+ kind: "AsOption";
75
78
  } | {
76
79
  kind: "SplitFirst";
77
80
  } | {
@@ -82,12 +85,18 @@ export type BuiltinKind = {
82
85
  } | {
83
86
  kind: "Sleep";
84
87
  ms: number;
88
+ } | {
89
+ kind: "Panic";
90
+ message: string;
91
+ } | {
92
+ kind: "ExtractPrefix";
85
93
  };
86
94
  /**
87
- * When TIn is `never` (handler ignores input), produce `any` so the
88
- * combinator/pipe can sit in any pipeline position.
95
+ * When T is `never` or `void` (handler ignores input / recur doesn't
96
+ * thread state), produce `any` so the combinator can sit in any
97
+ * pipeline position.
89
98
  */
90
- export type PipeIn<T> = [T] extends [never] ? any : T;
99
+ export type PipeIn<T> = [T] extends [never] ? any : [T] extends [void] ? any : T;
91
100
  export interface Config {
92
101
  workflow: Action;
93
102
  }
@@ -95,44 +104,48 @@ type UnionToIntersection<TUnion> = (TUnion extends any ? (x: TUnion) => void : n
95
104
  /** Merge a tuple of objects into a single intersection type. */
96
105
  export type MergeTuple<TTuple> = TTuple extends unknown[] ? UnionToIntersection<TTuple[number]> : never;
97
106
  /**
98
- * An action with tracked input/output types. Phantom fields enforce invariance
107
+ * An action with tracked input/output types. Phantom fields enforce variance
99
108
  * and are never set at runtime — they exist only for the TypeScript compiler.
100
109
  *
101
- * Each type variable gets a contravariant + covariant field pair:
102
110
  * In: __in (contravariant) + __in_co (covariant) → invariant
103
- * Out: __out (covariant) + __out_contra (contravariant) → invariant
111
+ * Out: __out (covariant only)
104
112
  *
105
- * This ensures exact type matching at every pipeline connection point.
113
+ * Input invariance ensures exact type matching at pipeline connection points.
106
114
  * Data crosses serialization boundaries to handlers in arbitrary languages
107
115
  * (Rust, Python, etc.), so extra/missing fields are runtime errors.
116
+ *
117
+ * Output covariance is safe — a step producing Dog where Animal is expected
118
+ * downstream works. `never` (throwError, recur, done) is assignable to any
119
+ * output slot via standard subtyping.
108
120
  */
109
121
  export type TypedAction<In = unknown, Out = unknown> = Action & {
110
122
  __in?: (input: In) => void;
111
123
  __in_co?: In;
112
124
  __out?: () => Out;
113
- __out_contra?: (output: Out) => void;
114
125
  /** Chain this action with another. `a.then(b)` ≡ `chain(a, b)`. */
115
126
  then<TNext>(next: Pipeable<Out, TNext>): TypedAction<In, TNext>;
116
- /** Apply an action to each element of an array output. `a.forEach(b)` ≡ `a.then(forEach(b))`. */
117
- forEach<TIn, TElement, TNext>(this: TypedAction<TIn, TElement[]>, action: Pipeable<TElement, TNext>): TypedAction<TIn, TNext[]>;
118
127
  /** Dispatch on a tagged union output. Auto-unwraps `value` before each case handler. */
119
128
  branch<TCases extends {
120
129
  [K in BranchKeys<Out>]: CaseHandler<BranchPayload<Out, K>, unknown>;
121
130
  }>(cases: [BranchKeys<Out>] extends [never] ? never : TCases): TypedAction<In, ExtractOutput<TCases[keyof TCases & string]>>;
122
- /** Flatten a nested array output. `a.flatten()` `pipe(a, flatten())`. */
123
- flatten(): TypedAction<In, Out extends (infer TElement)[][] ? TElement[] : Out>;
131
+ /** Flatten one level of array nesting. `TElement[][] TElement[]` */
132
+ flatten<TIn, TElement>(this: TypedAction<TIn, TElement[][]>): TypedAction<TIn, TElement[]>;
124
133
  /** Discard output. `a.drop()` ≡ `pipe(a, drop)`. */
125
- drop(): TypedAction<In, never>;
134
+ drop(): TypedAction<In, void>;
126
135
  /** Wrap output as a tagged union member. Requires full variant map TDef so __def is carried. */
127
- tag<TDef extends Record<string, unknown>, TKind extends keyof TDef & string>(kind: TKind): TypedAction<In, TaggedUnion<TDef>>;
136
+ tag<TEnumName extends string, TDef extends Record<string, unknown>, TKind extends keyof TDef & string>(kind: TKind, enumName: TEnumName): TypedAction<In, TaggedUnion<TEnumName, TDef>>;
137
+ /** Wrap output as `Option.Some`. `T → Option<T>` */
138
+ some(): TypedAction<In, Option<Out>>;
139
+ /** Wrap output as `Result.Ok`. `T → Result<T, never>` */
140
+ ok(): TypedAction<In, Result<Out, never>>;
141
+ /** Wrap output as `Result.Err`. `T → Result<never, T>` */
142
+ err(): TypedAction<In, Result<never, Out>>;
128
143
  /** Extract a field from the output object. `a.getField("name")` ≡ `pipe(a, getField("name"))`. */
129
144
  getField<TField extends keyof Out & string>(field: TField): TypedAction<In, Out[TField]>;
130
- /** Extract an element from the output tuple by index. `a.getIndex(0)` ≡ `pipe(a, getIndex(0))`. */
131
- getIndex<TIn, TTuple extends unknown[], TIndex extends number>(this: TypedAction<TIn, TTuple>, index: TIndex): TypedAction<TIn, TTuple[TIndex]>;
145
+ /** Extract an element from the output array by index. Returns Option. */
146
+ getIndex<TIn, TTuple extends unknown[], TIndex extends number>(this: TypedAction<TIn, TTuple>, index: TIndex): TypedAction<TIn, Option<TTuple[TIndex]>>;
132
147
  /** Wrap output in an object under a field name. `a.wrapInField("foo")` ≡ `pipe(a, wrapInField("foo"))`. */
133
148
  wrapInField<TField extends string>(field: TField): TypedAction<In, Record<TField, Out>>;
134
- /** Merge a tuple of objects into a single object. `a.merge()` ≡ `pipe(a, merge())`. */
135
- merge(): TypedAction<In, MergeTuple<Out>>;
136
149
  /** Select fields from the output. `a.pick("x", "y")` ≡ `pipe(a, pick("x", "y"))`. */
137
150
  pick<TKeys extends (keyof Out & string)[]>(...keys: TKeys): TypedAction<In, Pick<Out, TKeys[number]>>;
138
151
  /** Head/tail decomposition. Only callable when Out is TElement[]. */
@@ -140,44 +153,97 @@ export type TypedAction<In = unknown, Out = unknown> = Action & {
140
153
  /** Init/last decomposition. Only callable when Out is TElement[]. */
141
154
  splitLast<TIn, TElement>(this: TypedAction<TIn, TElement[]>): TypedAction<TIn, Option<[TElement[], TElement]>>;
142
155
  /**
143
- * Transform the Some value inside an Option output. Only callable when
144
- * Out is Option<T>. Uses `this` parameter constraint to gate availability.
156
+ * Transform the inner value. Dispatches: Option.map, Result.map.
145
157
  */
146
- mapOption<TIn, T, U>(this: TypedAction<TIn, Option<T>>, action: Pipeable<T, U>): TypedAction<TIn, Option<U>>;
158
+ map<TIn, T, U>(this: TypedAction<TIn, Option<T>>, action: Pipeable<T, U>): TypedAction<TIn, Option<U>>;
159
+ map<TIn, TValue, TOut, TError>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TValue, TOut>): TypedAction<TIn, Result<TOut, TError>>;
147
160
  /**
148
161
  * Transform the Err value of a Result output.
149
162
  * `Result<TValue, TError> → Result<TValue, TErrorOut>`
150
- *
151
- * Only callable when Out is Result<TValue, TError>.
152
163
  */
153
164
  mapErr<TIn, TValue, TError, TErrorOut>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TError, TErrorOut>): TypedAction<TIn, Result<TValue, TErrorOut>>;
154
165
  /**
155
- * Unwrap a Result output. If Ok, pass through the value. If Err, apply
156
- * the default action. Only callable when Out is Result<TValue, TError>.
166
+ * Unwrap or panic. Dispatches: Option.unwrap, Result.unwrap.
157
167
  *
158
- * The `this` constraint provides TValue from context, so throw tokens
159
- * (Out=never) work without explicit type parameters:
160
- * `handler.unwrapOr(throwError)`
168
+ * Option: If Some, pass through value. If None, panic.
169
+ * Result: If Ok, pass through value. If Err, panic.
170
+ */
171
+ unwrap<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, TValue>;
172
+ unwrap<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, TValue>;
173
+ /**
174
+ * Unwrap a union output. Dispatches: Option.unwrapOr, Result.unwrapOr.
175
+ *
176
+ * Option: If Some, pass through value. If None, apply default.
177
+ * Result: If Ok, pass through value. If Err, apply default.
161
178
  *
162
- * Uses CaseHandler for defaultAction (covariant output only) so that
163
- * `TypedAction<TError, never>` is assignable to `CaseHandler<TError, TValue>`.
179
+ * Covariant output makes throw tokens (Out=never) work:
180
+ * `handler.unwrapOr(throwError)`
164
181
  */
165
- unwrapOr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>, defaultAction: CaseHandler<TError, TValue>): TypedAction<TIn, TValue>;
182
+ unwrapOr<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>, defaultAction: Pipeable<void, TValue>): TypedAction<TIn, TValue>;
183
+ unwrapOr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>, defaultAction: Pipeable<TError, TValue>): TypedAction<TIn, TValue>;
184
+ /** Monadic bind. Option: `Option<T> → Option<U>`. Result: `Result<T,E> → Result<U,E>`. */
185
+ andThen<TIn, TValue, TOut>(this: TypedAction<TIn, Option<TValue>>, action: Pipeable<TValue, Option<TOut>>): TypedAction<TIn, Option<TOut>>;
186
+ andThen<TIn, TValue, TOut, TError>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TValue, Result<TOut, TError>>): TypedAction<TIn, Result<TOut, TError>>;
187
+ /** Conditional keep. If Some, apply predicate. If None, stay None. */
188
+ filter<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>, predicate: Pipeable<TValue, Option<TValue>>): TypedAction<TIn, Option<TValue>>;
189
+ /** Test if the value is Some. `Option<T> → boolean` */
190
+ isSome<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, boolean>;
191
+ /** Test if the value is None. `Option<T> → boolean` */
192
+ isNone<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, boolean>;
193
+ /** Collect Some values from an array, discarding Nones. `Option<T>[] → T[]` */
194
+ collect<TIn, TValue>(this: TypedAction<TIn, Option<TValue>[]>): TypedAction<TIn, TValue[]>;
195
+ /** Fallback on Err. `Result<T,E> → Result<T,F>` */
196
+ or<TIn, TValue, TError, TErrorOut>(this: TypedAction<TIn, Result<TValue, TError>>, fallback: Pipeable<TError, Result<TValue, TErrorOut>>): TypedAction<TIn, Result<TValue, TErrorOut>>;
197
+ /** Convert Ok to Some, Err to None. `Result<T,E> → Option<T>` */
198
+ asOkOption<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, Option<TValue>>;
199
+ /** Convert Err to Some, Ok to None. `Result<T,E> → Option<E>` */
200
+ asErrOption<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, Option<TError>>;
201
+ /** Convert boolean to Option<void>. `boolean → Option<void>` */
202
+ asOption<TIn>(this: TypedAction<TIn, boolean>): TypedAction<TIn, Option<void>>;
203
+ /** Test if the value is Ok. `Result<T,E> → boolean` */
204
+ isOk<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, boolean>;
205
+ /** Test if the value is Err. `Result<T,E> → boolean` */
206
+ isErr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, boolean>;
207
+ /** Swap nesting. `Option<Result<T,E>> → Result<Option<T>,E>` or `Result<Option<T>,E> → Option<Result<T,E>>`. */
208
+ transpose<TIn, TValue, TError>(this: TypedAction<TIn, Option<Result<TValue, TError>>>): TypedAction<TIn, Result<Option<TValue>, TError>>;
209
+ transpose<TIn, TValue, TError>(this: TypedAction<TIn, Result<Option<TValue>, TError>>): TypedAction<TIn, Option<Result<TValue, TError>>>;
210
+ /** Enter Iterator from Option. `Option<T> → Iterator<T>` */
211
+ iterate<TIn, TElement>(this: TypedAction<TIn, Option<TElement>>): TypedAction<TIn, Iterator<TElement>>;
212
+ /** Enter Iterator from Result. `Result<T,E> → Iterator<T>` */
213
+ iterate<TIn, TElement, TError>(this: TypedAction<TIn, Result<TElement, TError>>): TypedAction<TIn, Iterator<TElement>>;
214
+ /** Enter Iterator from array. `T[] → Iterator<T>` */
215
+ iterate<TIn, TElement>(this: TypedAction<TIn, TElement[]>): TypedAction<TIn, Iterator<TElement>>;
216
+ /** Transform each element in Iterator. `Iterator<T> → Iterator<U>` */
217
+ map<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, TOut>): TypedAction<TIn, Iterator<TOut>>;
218
+ /** Flat-map each element. `f` returns Iterator. `Iterator<T> → Iterator<U>` */
219
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Iterator<TOut>>): TypedAction<TIn, Iterator<TOut>>;
220
+ /** Flat-map each element. `f` returns Option. `Iterator<T> → Iterator<U>` */
221
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Option<TOut>>): TypedAction<TIn, Iterator<TOut>>;
222
+ /** Flat-map each element. `f` returns Result. `Iterator<T> → Iterator<U>` */
223
+ flatMap<TIn, TElement, TOut, TError>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Result<TOut, TError>>): TypedAction<TIn, Iterator<TOut>>;
224
+ /** Flat-map each element. `f` returns array. `Iterator<T> → Iterator<U>` */
225
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, TOut[]>): TypedAction<TIn, Iterator<TOut>>;
226
+ /** Keep elements where predicate returns true. `Iterator<T> → Iterator<T>` */
227
+ filter<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>, predicate: Pipeable<TElement, boolean>): TypedAction<TIn, Iterator<TElement>>;
228
+ /** Unwrap Iterator to array. `Iterator<T> → T[]` */
229
+ collect<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>): TypedAction<TIn, TElement[]>;
230
+ /** Bind concurrent values as VarRefs available throughout the body. */
231
+ bind<TBindings extends Action[], TOut>(bindings: [...TBindings], body: (vars: InferVarRefs<TBindings>) => Action & {
232
+ __out?: () => TOut;
233
+ }): TypedAction<In, TOut>;
234
+ /** Capture the pipeline input as a VarRef. */
235
+ bindInput<TOut>(body: (input: VarRef<Out>) => Action & {
236
+ __out?: () => TOut;
237
+ }): TypedAction<In, TOut>;
166
238
  };
167
239
  /**
168
- * Parameter type for pipe and combinators. Contains the same phantom fields
169
- * as TypedAction but without methods.
170
- *
171
- * Invariance: Both In and Out are invariant, matching TypedAction:
172
- * In: __in (contravariant) + __in_co (covariant) → invariant
173
- * Out: __out (covariant) + __out_contra (contravariant) → invariant
240
+ * Parameter type for pipe and combinators. Same phantom fields as TypedAction
241
+ * but without methods.
174
242
  *
175
243
  * Why no methods: TypedAction's methods (then, branch, etc.) participate in
176
244
  * TS assignability checks in complex, recursive ways that interfere with
177
245
  * generic inference in pipe overloads. Pipeable strips methods so that only
178
- * phantom fields drive inference — predictable covariant/contravariant
179
- * resolution, with invariance enforced when TS checks candidates from
180
- * both sides of a connection.
246
+ * phantom fields drive inference.
181
247
  *
182
248
  * TypedAction (with methods) is assignable to Pipeable because Pipeable
183
249
  * only requires a subset of properties.
@@ -186,24 +252,26 @@ export type Pipeable<In = unknown, Out = unknown> = Action & {
186
252
  __in?: (input: In) => void;
187
253
  __in_co?: In;
188
254
  __out?: () => Out;
189
- __out_contra?: (output: Out) => void;
190
255
  };
191
256
  /**
192
- * Contravariant-only input checking for branch case handler positions.
257
+ * Strip phantom types from a Pipeable, returning a plain Action.
258
+ *
259
+ * Replaces `x as Action` casts throughout the codebase. The constraint
260
+ * ensures the argument is structurally a Pipeable — unlike a bare cast,
261
+ * `toAction(123)` is a type error.
262
+ */
263
+ export declare function toAction<TIn, TOut>(pipeable: Pipeable<TIn, TOut>): Action;
264
+ /**
265
+ * Contravariant input + covariant output for branch case handler positions.
193
266
  *
194
- * Omits __in_co (covariant input) and __out_contra (contravariant output)
195
- * compared to TypedAction/Pipeable. This gives:
267
+ * Omits __in_co (covariant input) compared to Pipeable. This gives:
196
268
  * In: contravariant only (via __in)
197
269
  * Out: covariant only (via __out)
198
270
  *
199
271
  * Why contravariant input: a handler that accepts `unknown` (like drop)
200
272
  * can handle any variant. (input: unknown) => void is assignable to
201
273
  * (input: HasErrors) => void because HasErrors extends unknown.
202
- *
203
- * Why covariant output: the constraint doesn't restrict output types —
204
- * they're inferred from the actual case handlers via ExtractOutput.
205
- * TypedAction's invariant __out_contra with Out=unknown would
206
- * reject any handler with a specific output type, so we omit it.
274
+ * Pipeable's invariant input (__in_co) would reject this.
207
275
  *
208
276
  * TypedAction is assignable to CaseHandler because CaseHandler only
209
277
  * requires a subset of TypedAction's phantom fields.
@@ -225,9 +293,9 @@ type CaseHandler<TIn = unknown, TOut = unknown> = Action & {
225
293
  * serializes as `null`. Use `z.null()` in Zod schemas for void variants.
226
294
  */
227
295
  type VoidToNull<T> = 0 extends 1 & T ? T : [T] extends [never] ? never : [T] extends [void] ? null : T;
228
- export type TaggedUnion<TDef extends Record<string, unknown>> = {
296
+ export type TaggedUnion<TEnumName extends string, TDef extends Record<string, unknown>> = {
229
297
  [K in keyof TDef & string]: {
230
- kind: K;
298
+ kind: `${TEnumName}.${K}`;
231
299
  value: VoidToNull<TDef[K]>;
232
300
  __def?: TDef;
233
301
  };
@@ -240,32 +308,41 @@ export type OptionDef<T> = {
240
308
  Some: T;
241
309
  None: void;
242
310
  };
243
- export type Option<T> = TaggedUnion<OptionDef<T>>;
311
+ export type Option<T> = TaggedUnion<"Option", OptionDef<T>>;
244
312
  export type ResultDef<TValue, TError> = {
245
313
  Ok: TValue;
246
314
  Err: TError;
247
315
  };
248
- export type Result<TValue, TError> = TaggedUnion<ResultDef<TValue, TError>>;
316
+ export type Result<TValue, TError> = TaggedUnion<"Result", ResultDef<TValue, TError>>;
317
+ export type IteratorDef<TElement> = {
318
+ Iterator: TElement[];
319
+ };
320
+ export type Iterator<TElement> = TaggedUnion<"Iterator", IteratorDef<TElement>>;
249
321
  /** Extract all `kind` string literals from a discriminated union. */
250
322
  type KindOf<T> = T extends {
251
323
  kind: infer K extends string;
252
324
  } ? K : never;
325
+ /** Strip a `"Prefix."` namespace from a dotted kind string. `"Nat.Zero"` → `"Zero"`. */
326
+ type StripKindPrefix<K extends string> = K extends `${string}.${infer Bare}` ? Bare : K;
253
327
  /** Extract the `value` field from a `{ kind, value }` variant. Falls back to T if no `value` field. */
254
328
  type UnwrapVariant<T> = T extends {
255
329
  value: infer V;
256
330
  } ? V : T;
257
331
  /**
258
332
  * Branch case keys: prefer ExtractDef (simple keyof indexing) when the
259
- * output carries __def. Falls back to KindOf (conditional type) for
260
- * outputs without __def.
333
+ * output carries __def. Falls back to KindOf with prefix stripping for
334
+ * outputs without __def (namespaced kinds like "Nat.Zero" → "Zero").
261
335
  */
262
- type BranchKeys<Out> = [ExtractDef<Out>] extends [never] ? KindOf<Out> : keyof ExtractDef<Out> & string;
336
+ type BranchKeys<Out> = [ExtractDef<Out>] extends [never] ? StripKindPrefix<KindOf<Out>> : keyof ExtractDef<Out> & string;
263
337
  /**
264
338
  * Branch case payload: prefer ExtractDef[K] (simple indexing) when available.
265
- * Falls back to UnwrapVariant<Extract<Out, { kind: K }>> for outputs without __def.
339
+ * Falls back to UnwrapVariant<Extract<Out, { kind: ... }>> for outputs without __def.
340
+ * In the fallback, matches namespaced kinds (`"Prefix.K"`) against the bare key K.
266
341
  */
267
342
  type BranchPayload<Out, K extends string> = [ExtractDef<Out>] extends [never] ? UnwrapVariant<Extract<Out, {
268
343
  kind: K;
344
+ } | {
345
+ kind: `${string}.${K}`;
269
346
  }>> : K extends keyof ExtractDef<Out> ? VoidToNull<ExtractDef<Out>[K]> : never;
270
347
  /**
271
348
  * Attach `.then()` and `.forEach()` methods to a plain Action object.
@@ -319,11 +396,20 @@ export type BranchInput<TCases> = {
319
396
  };
320
397
  }[keyof TCases & string];
321
398
  export declare function branch<TCases extends Record<string, Action>>(cases: TCases): TypedAction<BranchInput<TCases>, ExtractOutput<TCases[keyof TCases & string]>>;
399
+ /**
400
+ * Two-level dispatch: extract the enum prefix from a tagged value's `kind`,
401
+ * then branch on that prefix. Used by postfix methods (`.map()`, `.unwrapOr()`,
402
+ * etc.) to dispatch across union families (Option, Result) without runtime
403
+ * metadata.
404
+ *
405
+ * `branchFamily({ Result: ..., Option: ... })` ≡ `chain(extractPrefix(), branch(cases))`
406
+ */
407
+ export declare function branchFamily(cases: Record<string, Action>): TypedAction;
322
408
  type LoopResultDef<TContinue, TBreak> = {
323
409
  Continue: TContinue;
324
410
  Break: TBreak;
325
411
  };
326
- export type LoopResult<TContinue, TBreak> = TaggedUnion<LoopResultDef<TContinue, TBreak>>;
412
+ export type LoopResult<TContinue, TBreak> = TaggedUnion<"LoopResult", LoopResultDef<TContinue, TBreak>>;
327
413
  /**
328
414
  * Restartable scope. The body callback receives `restart`, a TypedAction that
329
415
  * re-executes the body from the beginning with a new input value.
@@ -333,7 +419,7 @@ export type LoopResult<TContinue, TBreak> = TaggedUnion<LoopResultDef<TContinue,
333
419
  *
334
420
  * Compiled form: `RestartHandle(id, GetIndex(0), body)`
335
421
  */
336
- export declare function recur<TIn = never, TOut = any>(bodyFn: (restart: TypedAction<TIn, never>) => Pipeable<TIn, TOut>): TypedAction<PipeIn<TIn>, TOut>;
422
+ export declare function recur<TIn = void, TOut = any>(bodyFn: (restart: TypedAction<TIn, never>) => Pipeable<TIn, TOut>): TypedAction<PipeIn<TIn>, TOut>;
337
423
  /**
338
424
  * Early return scope. The body callback receives `earlyReturn`, a TypedAction
339
425
  * that exits the scope immediately with the returned value.
@@ -346,7 +432,7 @@ export declare function recur<TIn = never, TOut = any>(bodyFn: (restart: TypedAc
346
432
  * a Branch. earlyReturn tags with Break and performs — the handler restarts
347
433
  * the body, Branch takes the Break path, and the value exits.
348
434
  */
349
- export declare function earlyReturn<TEarlyReturn = never, TIn = any, TOut = any>(bodyFn: (earlyReturn: TypedAction<TEarlyReturn, never>) => Pipeable<TIn, TOut>): TypedAction<TIn, TEarlyReturn | TOut>;
435
+ export declare function earlyReturn<TEarlyReturn = void, TIn = any, TOut = any>(bodyFn: (earlyReturn: TypedAction<TEarlyReturn, never>) => Pipeable<TIn, TOut>): TypedAction<TIn, TEarlyReturn | TOut>;
350
436
  /**
351
437
  * Build the restart+branch compiled form:
352
438
  * `Chain(Tag("Continue"), RestartHandle(id, GetIndex(0), Branch({ Continue: continueArm, Break: breakArm })))`
@@ -366,6 +452,7 @@ export declare function buildRestartBranchAction(restartHandlerId: RestartHandle
366
452
  *
367
453
  * Compiles to `RestartHandle`/`RestartPerform`/Branch — same effect substrate as tryCatch and earlyReturn.
368
454
  */
369
- export declare function loop<TBreak = never, TIn = never>(bodyFn: (recur: TypedAction<TIn, never>, done: TypedAction<VoidToNull<TBreak>, never>) => Pipeable<TIn, never>): TypedAction<PipeIn<TIn>, VoidToNull<TBreak>>;
455
+ export declare function loop<TBreak = void, TRecur = void>(bodyFn: (recur: TypedAction<TRecur, never>, done: TypedAction<VoidToNull<TBreak>, never>) => Pipeable<TRecur, never>): TypedAction<PipeIn<TRecur>, VoidToNull<TBreak>>;
370
456
  /** Simple config factory. */
371
457
  export declare function config(workflow: Action): Config;
458
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}