@barnum/barnum 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) 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 +41 -10
  7. package/dist/all.d.ts.map +1 -0
  8. package/dist/all.js +1 -1
  9. package/dist/ast.d.ts +199 -98
  10. package/dist/ast.d.ts.map +1 -0
  11. package/dist/ast.js +271 -233
  12. package/dist/bind.d.ts +9 -12
  13. package/dist/bind.d.ts.map +1 -0
  14. package/dist/bind.js +14 -51
  15. package/dist/builtins/array.d.ts +36 -0
  16. package/dist/builtins/array.d.ts.map +1 -0
  17. package/dist/builtins/array.js +93 -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 +5 -21
  41. package/dist/index.d.ts +10 -6
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +4 -2
  44. package/dist/iterator.d.ts +32 -0
  45. package/dist/iterator.d.ts.map +1 -0
  46. package/dist/iterator.js +123 -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 +11 -10
  51. package/dist/pipe.d.ts.map +1 -0
  52. package/dist/pipe.js +5 -4
  53. package/dist/race.d.ts +5 -4
  54. package/dist/race.d.ts.map +1 -0
  55. package/dist/race.js +17 -42
  56. package/dist/recursive.d.ts +9 -3
  57. package/dist/recursive.d.ts.map +1 -0
  58. package/dist/recursive.js +18 -13
  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 +9 -2
  63. package/dist/run.d.ts.map +1 -0
  64. package/dist/run.js +37 -20
  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 +2 -1
  74. package/dist/try-catch.d.ts.map +1 -0
  75. package/dist/try-catch.js +10 -9
  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 +5 -1
  80. package/dist/worker.d.ts.map +1 -0
  81. package/dist/worker.js +15 -3
  82. package/package.json +8 -6
  83. package/src/all.ts +118 -74
  84. package/src/ast.ts +773 -350
  85. package/src/bind.ts +32 -62
  86. package/src/builtins/array.ts +121 -0
  87. package/src/builtins/index.ts +17 -0
  88. package/src/builtins/scalar.ts +49 -0
  89. package/src/builtins/struct.ts +111 -0
  90. package/src/builtins/tagged-union.ts +142 -0
  91. package/src/builtins/with-resource.ts +69 -0
  92. package/src/chain.ts +4 -4
  93. package/src/handler.ts +12 -28
  94. package/src/index.ts +24 -17
  95. package/src/iterator.ts +243 -0
  96. package/src/option.ts +199 -0
  97. package/src/pipe.ts +123 -78
  98. package/src/race.ts +41 -51
  99. package/src/recursive.ts +44 -27
  100. package/src/result.ts +168 -0
  101. package/src/run.ts +53 -25
  102. package/src/runtime.ts +16 -0
  103. package/src/schemas.ts +21 -0
  104. package/src/try-catch.ts +14 -10
  105. package/src/values.ts +21 -0
  106. package/src/worker.ts +17 -2
  107. package/dist/builtins.d.ts +0 -257
  108. package/dist/builtins.js +0 -600
  109. package/src/builtins.ts +0 -804
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/all.d.ts CHANGED
@@ -1,12 +1,43 @@
1
1
  import { type Pipeable, type TypedAction } from "./ast.js";
2
2
  export declare function all(): TypedAction<any, []>;
3
- export declare function all<In, O1>(a1: Pipeable<In, O1>): TypedAction<In, [O1]>;
4
- export declare function all<In, O1, O2>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>): TypedAction<In, [O1, O2]>;
5
- export declare function all<In, O1, O2, O3>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>): TypedAction<In, [O1, O2, O3]>;
6
- export declare function all<In, O1, O2, O3, O4>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>): TypedAction<In, [O1, O2, O3, O4]>;
7
- export declare function all<In, O1, O2, O3, O4, O5>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>): TypedAction<In, [O1, O2, O3, O4, O5]>;
8
- export declare function all<In, O1, O2, O3, O4, O5, O6>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>, a6: Pipeable<In, O6>): TypedAction<In, [O1, O2, O3, O4, O5, O6]>;
9
- export declare function all<In, O1, O2, O3, O4, O5, O6, O7>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>, a6: Pipeable<In, O6>, a7: Pipeable<In, O7>): TypedAction<In, [O1, O2, O3, O4, O5, O6, O7]>;
10
- export declare function all<In, O1, O2, O3, O4, O5, O6, O7, O8>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>, a6: Pipeable<In, O6>, a7: Pipeable<In, O7>, a8: Pipeable<In, O8>): TypedAction<In, [O1, O2, O3, O4, O5, O6, O7, O8]>;
11
- export declare function all<In, O1, O2, O3, O4, O5, O6, O7, O8, O9>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>, a6: Pipeable<In, O6>, a7: Pipeable<In, O7>, a8: Pipeable<In, O8>, a9: Pipeable<In, O9>): TypedAction<In, [O1, O2, O3, O4, O5, O6, O7, O8, O9]>;
12
- export declare function all<In, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10>(a1: Pipeable<In, O1>, a2: Pipeable<In, O2>, a3: Pipeable<In, O3>, a4: Pipeable<In, O4>, a5: Pipeable<In, O5>, a6: Pipeable<In, O6>, a7: Pipeable<In, O7>, a8: Pipeable<In, O8>, a9: Pipeable<In, O9>, a10: Pipeable<In, O10>): TypedAction<In, [O1, O2, O3, O4, O5, O6, O7, O8, O9, O10]>;
3
+ export declare function all<TInput, TOut1>(a1: Pipeable<TInput, TOut1>): TypedAction<TInput, [TOut1]>;
4
+ export declare function all<TInput, TOut1, TOut2>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>): TypedAction<TInput, [TOut1, TOut2]>;
5
+ export declare function all<TInput, TOut1, TOut2, TOut3>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>): TypedAction<TInput, [TOut1, TOut2, TOut3]>;
6
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>): TypedAction<TInput, [TOut1, TOut2, TOut3, TOut4]>;
7
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>): TypedAction<TInput, [TOut1, TOut2, TOut3, TOut4, TOut5]>;
8
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>, a6: Pipeable<TInput, TOut6>): TypedAction<TInput, [TOut1, TOut2, TOut3, TOut4, TOut5, TOut6]>;
9
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TOut7>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>, a6: Pipeable<TInput, TOut6>, a7: Pipeable<TInput, TOut7>): TypedAction<TInput, [TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TOut7]>;
10
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TOut7, TOut8>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>, a6: Pipeable<TInput, TOut6>, a7: Pipeable<TInput, TOut7>, a8: Pipeable<TInput, TOut8>): TypedAction<TInput, [
11
+ TOut1,
12
+ TOut2,
13
+ TOut3,
14
+ TOut4,
15
+ TOut5,
16
+ TOut6,
17
+ TOut7,
18
+ TOut8
19
+ ]>;
20
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TOut7, TOut8, TOut9>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>, a6: Pipeable<TInput, TOut6>, a7: Pipeable<TInput, TOut7>, a8: Pipeable<TInput, TOut8>, a9: Pipeable<TInput, TOut9>): TypedAction<TInput, [
21
+ TOut1,
22
+ TOut2,
23
+ TOut3,
24
+ TOut4,
25
+ TOut5,
26
+ TOut6,
27
+ TOut7,
28
+ TOut8,
29
+ TOut9
30
+ ]>;
31
+ export declare function all<TInput, TOut1, TOut2, TOut3, TOut4, TOut5, TOut6, TOut7, TOut8, TOut9, TOut10>(a1: Pipeable<TInput, TOut1>, a2: Pipeable<TInput, TOut2>, a3: Pipeable<TInput, TOut3>, a4: Pipeable<TInput, TOut4>, a5: Pipeable<TInput, TOut5>, a6: Pipeable<TInput, TOut6>, a7: Pipeable<TInput, TOut7>, a8: Pipeable<TInput, TOut8>, a9: Pipeable<TInput, TOut9>, a10: Pipeable<TInput, TOut10>): TypedAction<TInput, [
32
+ TOut1,
33
+ TOut2,
34
+ TOut3,
35
+ TOut4,
36
+ TOut5,
37
+ TOut6,
38
+ TOut7,
39
+ TOut8,
40
+ TOut9,
41
+ TOut10
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";
@@ -60,33 +61,46 @@ export type BuiltinKind = {
60
61
  kind: "Identity";
61
62
  } | {
62
63
  kind: "Drop";
63
- } | {
64
- kind: "Tag";
65
- value: string;
66
64
  } | {
67
65
  kind: "Merge";
68
66
  } | {
69
67
  kind: "Flatten";
70
68
  } | {
71
- kind: "ExtractField";
72
- value: string;
73
- } | {
74
- kind: "ExtractIndex";
75
- value: number;
69
+ kind: "GetField";
70
+ field: string;
76
71
  } | {
77
- kind: "Pick";
78
- value: string[];
72
+ kind: "GetIndex";
73
+ index: number;
79
74
  } | {
80
75
  kind: "CollectSome";
76
+ } | {
77
+ kind: "AsOption";
78
+ } | {
79
+ kind: "SplitFirst";
80
+ } | {
81
+ kind: "SplitLast";
82
+ } | {
83
+ kind: "WrapInField";
84
+ field: string;
81
85
  } | {
82
86
  kind: "Sleep";
83
- value: number;
87
+ ms: number;
88
+ } | {
89
+ kind: "Panic";
90
+ message: string;
91
+ } | {
92
+ kind: "ExtractPrefix";
93
+ } | {
94
+ kind: "Slice";
95
+ start: number;
96
+ end?: number;
84
97
  };
85
98
  /**
86
- * When TIn is `never` (handler ignores input), produce `any` so the
87
- * combinator/pipe can sit in any pipeline position.
99
+ * When T is `never` or `void` (handler ignores input / recur doesn't
100
+ * thread state), produce `any` so the combinator can sit in any
101
+ * pipeline position.
88
102
  */
89
- export type PipeIn<T> = [T] extends [never] ? any : T;
103
+ export type PipeIn<T> = [T] extends [never] ? any : [T] extends [void] ? any : T;
90
104
  export interface Config {
91
105
  workflow: Action;
92
106
  }
@@ -94,97 +108,160 @@ type UnionToIntersection<TUnion> = (TUnion extends any ? (x: TUnion) => void : n
94
108
  /** Merge a tuple of objects into a single intersection type. */
95
109
  export type MergeTuple<TTuple> = TTuple extends unknown[] ? UnionToIntersection<TTuple[number]> : never;
96
110
  /**
97
- * An action with tracked input/output types. Phantom fields enforce invariance
111
+ * An action with tracked input/output types. Phantom fields enforce variance
98
112
  * and are never set at runtime — they exist only for the TypeScript compiler.
99
113
  *
100
- * Each type variable gets a contravariant + covariant field pair:
101
114
  * In: __in (contravariant) + __in_co (covariant) → invariant
102
- * Out: __out (covariant) + __out_contra (contravariant) → invariant
115
+ * Out: __out (covariant only)
103
116
  *
104
- * This ensures exact type matching at every pipeline connection point.
117
+ * Input invariance ensures exact type matching at pipeline connection points.
105
118
  * Data crosses serialization boundaries to handlers in arbitrary languages
106
119
  * (Rust, Python, etc.), so extra/missing fields are runtime errors.
120
+ *
121
+ * Output covariance is safe — a step producing Dog where Animal is expected
122
+ * downstream works. `never` (throwError, recur, done) is assignable to any
123
+ * output slot via standard subtyping.
107
124
  */
108
- export type TypedAction<In = unknown, Out = unknown, Refs extends string = never> = Action & {
125
+ export type TypedAction<In = unknown, Out = unknown> = Action & {
109
126
  __in?: (input: In) => void;
110
127
  __in_co?: In;
111
128
  __out?: () => Out;
112
- __out_contra?: (output: Out) => void;
113
- __refs?: {
114
- _brand: Refs;
115
- };
116
129
  /** Chain this action with another. `a.then(b)` ≡ `chain(a, b)`. */
117
- then<TNext>(next: Pipeable<Out, TNext>): TypedAction<In, TNext, Refs>;
118
- /** Apply an action to each element of an array output. `a.forEach(b)` ≡ `a.then(forEach(b))`. */
119
- forEach<TIn, TElement, TNext, TRefs extends string>(this: TypedAction<TIn, TElement[], TRefs>, action: Pipeable<TElement, TNext>): TypedAction<TIn, TNext[], TRefs>;
130
+ then<TNext>(next: Pipeable<Out, TNext>): TypedAction<In, TNext>;
120
131
  /** Dispatch on a tagged union output. Auto-unwraps `value` before each case handler. */
121
132
  branch<TCases extends {
122
133
  [K in BranchKeys<Out>]: CaseHandler<BranchPayload<Out, K>, unknown>;
123
- }>(cases: [BranchKeys<Out>] extends [never] ? never : TCases): TypedAction<In, ExtractOutput<TCases[keyof TCases & string]>, Refs>;
124
- /** Flatten a nested array output. `a.flatten()` `pipe(a, flatten())`. */
125
- flatten(): TypedAction<In, Out extends (infer TElement)[][] ? TElement[] : Out, Refs>;
134
+ }>(cases: [BranchKeys<Out>] extends [never] ? never : TCases): TypedAction<In, ExtractOutput<TCases[keyof TCases & string]>>;
135
+ /** Flatten one level of array nesting. `TElement[][] TElement[]` */
136
+ flatten<TIn, TElement>(this: TypedAction<TIn, TElement[][]>): TypedAction<TIn, TElement[]>;
126
137
  /** Discard output. `a.drop()` ≡ `pipe(a, drop)`. */
127
- drop(): TypedAction<In, never, Refs>;
138
+ drop(): TypedAction<In, void>;
128
139
  /** Wrap output as a tagged union member. Requires full variant map TDef so __def is carried. */
129
- tag<TDef extends Record<string, unknown>, TKind extends keyof TDef & string>(kind: TKind): TypedAction<In, TaggedUnion<TDef>, Refs>;
130
- /** Extract a field from the output object. `a.get("name")` `pipe(a, extractField("name"))`. */
131
- get<TField extends keyof Out & string>(field: TField): TypedAction<In, Out[TField], Refs>;
132
- /**
133
- * Run this sub-pipeline, then merge its output back into the original input.
134
- * `pipe(extractField("x"), transform).augment()` takes `In`, runs the
135
- * sub-pipeline to get `Out`, and returns `In & Out`.
136
- *
137
- * Unlike the standalone `augment()` function, the postfix form has access
138
- * to `In` so the intersection types correctly.
139
- */
140
- augment(): TypedAction<In, In & Out, Refs>;
141
- /** Merge a tuple of objects into a single object. `a.merge()` `pipe(a, merge())`. */
142
- merge(): TypedAction<In, MergeTuple<Out>, Refs>;
140
+ tag<TEnumName extends string, TDef extends Record<string, unknown>, TKind extends keyof TDef & string>(kind: TKind, enumName: TEnumName): TypedAction<In, TaggedUnion<TEnumName, TDef>>;
141
+ /** Wrap output as `Option.Some`. `T Option<T>` */
142
+ some(): TypedAction<In, Option<Out>>;
143
+ /** Wrap output as `Result.Ok`. `T → Result<T, never>` */
144
+ ok(): TypedAction<In, Result<Out, never>>;
145
+ /** Wrap output as `Result.Err`. `T Result<never, T>` */
146
+ err(): TypedAction<In, Result<never, Out>>;
147
+ /** Extract a field from the output object. `a.getField("name")` ≡ `pipe(a, getField("name"))`. */
148
+ getField<TField extends keyof Out & string>(field: TField): TypedAction<In, Out[TField]>;
149
+ /** Extract an element from the output array by index. Returns Option. */
150
+ getIndex<TIn, TTuple extends unknown[], TIndex extends number>(this: TypedAction<TIn, TTuple>, index: TIndex): TypedAction<TIn, Option<TTuple[TIndex]>>;
151
+ /** Wrap output in an object under a field name. `a.wrapInField("foo")` ≡ `pipe(a, wrapInField("foo"))`. */
152
+ wrapInField<TField extends string>(field: TField): TypedAction<In, Record<TField, Out>>;
143
153
  /** Select fields from the output. `a.pick("x", "y")` ≡ `pipe(a, pick("x", "y"))`. */
144
- pick<TKeys extends (keyof Out & string)[]>(...keys: TKeys): TypedAction<In, Pick<Out, TKeys[number]>, Refs>;
154
+ pick<TKeys extends (keyof Out & string)[]>(...keys: TKeys): TypedAction<In, Pick<Out, TKeys[number]>>;
155
+ /** Head/tail decomposition for Iterator. `Iterator<T> → Option<[T, Iterator<T>]>` */
156
+ splitFirst<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>): TypedAction<TIn, Option<[TElement, Iterator<TElement>]>>;
157
+ /** Head/tail decomposition. Only callable when Out is TElement[]. */
158
+ splitFirst<TIn, TElement>(this: TypedAction<TIn, TElement[]>): TypedAction<TIn, Option<[TElement, TElement[]]>>;
159
+ /** Init/last decomposition for Iterator. `Iterator<T> → Option<[Iterator<T>, T]>` */
160
+ splitLast<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>): TypedAction<TIn, Option<[Iterator<TElement>, TElement]>>;
161
+ /** Init/last decomposition. Only callable when Out is TElement[]. */
162
+ splitLast<TIn, TElement>(this: TypedAction<TIn, TElement[]>): TypedAction<TIn, Option<[TElement[], TElement]>>;
145
163
  /**
146
- * Transform the Some value inside an Option output. Only callable when
147
- * Out is Option<T>. Uses `this` parameter constraint to gate availability.
164
+ * Transform the inner value. Dispatches: Option.map, Result.map.
148
165
  */
149
- mapOption<TIn, T, U, TRefs extends string>(this: TypedAction<TIn, Option<T>, TRefs>, action: Pipeable<T, U>): TypedAction<TIn, Option<U>, TRefs>;
166
+ map<TIn, T, U>(this: TypedAction<TIn, Option<T>>, action: Pipeable<T, U>): TypedAction<TIn, Option<U>>;
167
+ map<TIn, TValue, TOut, TError>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TValue, TOut>): TypedAction<TIn, Result<TOut, TError>>;
168
+ /** Transform each element in Iterator. `Iterator<T> → Iterator<U>` */
169
+ map<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, TOut>): TypedAction<TIn, Iterator<TOut>>;
150
170
  /**
151
171
  * Transform the Err value of a Result output.
152
172
  * `Result<TValue, TError> → Result<TValue, TErrorOut>`
153
- *
154
- * Only callable when Out is Result<TValue, TError>.
155
173
  */
156
- mapErr<TIn, TValue, TError, TErrorOut>(this: TypedAction<TIn, Result<TValue, TError>, any>, action: Pipeable<TError, TErrorOut>): TypedAction<TIn, Result<TValue, TErrorOut>, Refs>;
174
+ mapErr<TIn, TValue, TError, TErrorOut>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TError, TErrorOut>): TypedAction<TIn, Result<TValue, TErrorOut>>;
157
175
  /**
158
- * Unwrap a Result output. If Ok, pass through the value. If Err, apply
159
- * the default action. Only callable when Out is Result<TValue, TError>.
176
+ * Unwrap or panic. Dispatches: Option.unwrap, Result.unwrap.
160
177
  *
161
- * The `this` constraint provides TValue from context, so throw tokens
162
- * (Out=never) work without explicit type parameters:
163
- * `handler.unwrapOr(throwError)`
178
+ * Option: If Some, pass through value. If None, panic.
179
+ * Result: If Ok, pass through value. If Err, panic.
180
+ */
181
+ unwrap<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, TValue>;
182
+ unwrap<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, TValue>;
183
+ /**
184
+ * Unwrap a union output. Dispatches: Option.unwrapOr, Result.unwrapOr.
164
185
  *
165
- * Uses CaseHandler for defaultAction (covariant output only) so that
166
- * `TypedAction<TError, never>` is assignable to `CaseHandler<TError, TValue>`.
186
+ * Option: If Some, pass through value. If None, apply default.
187
+ * Result: If Ok, pass through value. If Err, apply default.
167
188
  *
168
- * Refs position uses `any` in the `this` constraint to avoid TS
169
- * falling back to the constraint bound `string` when Refs = never.
170
- * The return type uses the enclosing TypedAction's `Refs` directly.
189
+ * Covariant output makes throw tokens (Out=never) work:
190
+ * `handler.unwrapOr(throwError)`
171
191
  */
172
- unwrapOr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>, any>, defaultAction: CaseHandler<TError, TValue>): TypedAction<TIn, TValue, Refs>;
192
+ unwrapOr<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>, defaultAction: Pipeable<void, TValue>): TypedAction<TIn, TValue>;
193
+ unwrapOr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>, defaultAction: Pipeable<TError, TValue>): TypedAction<TIn, TValue>;
194
+ /** Monadic bind. Option: `Option<T> → Option<U>`. Result: `Result<T,E> → Result<U,E>`. */
195
+ andThen<TIn, TValue, TOut>(this: TypedAction<TIn, Option<TValue>>, action: Pipeable<TValue, Option<TOut>>): TypedAction<TIn, Option<TOut>>;
196
+ andThen<TIn, TValue, TOut, TError>(this: TypedAction<TIn, Result<TValue, TError>>, action: Pipeable<TValue, Result<TOut, TError>>): TypedAction<TIn, Result<TOut, TError>>;
197
+ /** Conditional keep. If Some, apply predicate. If None, stay None. */
198
+ filter<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>, predicate: Pipeable<TValue, Option<TValue>>): TypedAction<TIn, Option<TValue>>;
199
+ /** Keep elements where predicate returns true. `Iterator<T> → Iterator<T>` */
200
+ filter<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>, predicate: Pipeable<TElement, boolean>): TypedAction<TIn, Iterator<TElement>>;
201
+ /** Test if the value is Some. `Option<T> → boolean` */
202
+ isSome<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, boolean>;
203
+ /** Test if the value is None. `Option<T> → boolean` */
204
+ isNone<TIn, TValue>(this: TypedAction<TIn, Option<TValue>>): TypedAction<TIn, boolean>;
205
+ /** Collect Some values from an array, discarding Nones. `Option<T>[] → T[]` */
206
+ collect<TIn, TValue>(this: TypedAction<TIn, Option<TValue>[]>): TypedAction<TIn, TValue[]>;
207
+ /** Unwrap Iterator to array. `Iterator<T> → T[]` */
208
+ collect<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>): TypedAction<TIn, TElement[]>;
209
+ /** Fallback on Err. `Result<T,E> → Result<T,F>` */
210
+ or<TIn, TValue, TError, TErrorOut>(this: TypedAction<TIn, Result<TValue, TError>>, fallback: Pipeable<TError, Result<TValue, TErrorOut>>): TypedAction<TIn, Result<TValue, TErrorOut>>;
211
+ /** Convert Ok to Some, Err to None. `Result<T,E> → Option<T>` */
212
+ asOkOption<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, Option<TValue>>;
213
+ /** Convert Err to Some, Ok to None. `Result<T,E> → Option<E>` */
214
+ asErrOption<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, Option<TError>>;
215
+ /** Convert boolean to Option<void>. `boolean → Option<void>` */
216
+ asOption<TIn>(this: TypedAction<TIn, boolean>): TypedAction<TIn, Option<void>>;
217
+ /** Test if the value is Ok. `Result<T,E> → boolean` */
218
+ isOk<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, boolean>;
219
+ /** Test if the value is Err. `Result<T,E> → boolean` */
220
+ isErr<TIn, TValue, TError>(this: TypedAction<TIn, Result<TValue, TError>>): TypedAction<TIn, boolean>;
221
+ /** Swap nesting. `Option<Result<T,E>> → Result<Option<T>,E>` or `Result<Option<T>,E> → Option<Result<T,E>>`. */
222
+ transpose<TIn, TValue, TError>(this: TypedAction<TIn, Option<Result<TValue, TError>>>): TypedAction<TIn, Result<Option<TValue>, TError>>;
223
+ transpose<TIn, TValue, TError>(this: TypedAction<TIn, Result<Option<TValue>, TError>>): TypedAction<TIn, Option<Result<TValue, TError>>>;
224
+ /** Enter Iterator from Option. `Option<T> → Iterator<T>` */
225
+ iterate<TIn, TElement>(this: TypedAction<TIn, Option<TElement>>): TypedAction<TIn, Iterator<TElement>>;
226
+ /** Enter Iterator from Result. `Result<T,E> → Iterator<T>` */
227
+ iterate<TIn, TElement, TError>(this: TypedAction<TIn, Result<TElement, TError>>): TypedAction<TIn, Iterator<TElement>>;
228
+ /** Enter Iterator from array. `T[] → Iterator<T>` */
229
+ iterate<TIn, TElement>(this: TypedAction<TIn, TElement[]>): TypedAction<TIn, Iterator<TElement>>;
230
+ /** Flat-map each element. `f` returns Iterator. `Iterator<T> → Iterator<U>` */
231
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Iterator<TOut>>): TypedAction<TIn, Iterator<TOut>>;
232
+ /** Flat-map each element. `f` returns Option. `Iterator<T> → Iterator<U>` */
233
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Option<TOut>>): TypedAction<TIn, Iterator<TOut>>;
234
+ /** Flat-map each element. `f` returns Result. `Iterator<T> → Iterator<U>` */
235
+ flatMap<TIn, TElement, TOut, TError>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, Result<TOut, TError>>): TypedAction<TIn, Iterator<TOut>>;
236
+ /** Flat-map each element. `f` returns array. `Iterator<T> → Iterator<U>` */
237
+ flatMap<TIn, TElement, TOut>(this: TypedAction<TIn, Iterator<TElement>>, action: Pipeable<TElement, TOut[]>): TypedAction<TIn, Iterator<TOut>>;
238
+ /** Fold elements with accumulator. `Iterator<T> → TAcc` */
239
+ fold<TIn, TElement, TAcc>(this: TypedAction<TIn, Iterator<TElement>>, init: Pipeable<void, TAcc>, body: Pipeable<[TAcc, TElement], TAcc>): TypedAction<TIn, TAcc>;
240
+ /** Check if iterator is empty. `Iterator<T> → boolean` */
241
+ isEmpty<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>): TypedAction<TIn, boolean>;
242
+ /** Slice elements from start to end. `Iterator<T> → Iterator<T>` */
243
+ slice<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>, start: number, end?: number): TypedAction<TIn, Iterator<TElement>>;
244
+ /** First n elements. `Iterator<T> → Iterator<T>` */
245
+ take<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>, n: number): TypedAction<TIn, Iterator<TElement>>;
246
+ /** Drop first n elements. `Iterator<T> → Iterator<T>` */
247
+ skip<TIn, TElement>(this: TypedAction<TIn, Iterator<TElement>>, n: number): TypedAction<TIn, Iterator<TElement>>;
248
+ /** Bind concurrent values as VarRefs available throughout the body. */
249
+ bind<TBindings extends Action[], TOut>(bindings: [...TBindings], body: (vars: InferVarRefs<TBindings>) => Action & {
250
+ __out?: () => TOut;
251
+ }): TypedAction<In, TOut>;
252
+ /** Capture the pipeline input as a VarRef. */
253
+ bindInput<TOut>(body: (input: VarRef<Out>) => Action & {
254
+ __out?: () => TOut;
255
+ }): TypedAction<In, TOut>;
173
256
  };
174
257
  /**
175
- * Parameter type for pipe and combinators. Contains the same phantom fields
176
- * as TypedAction but without methods.
177
- *
178
- * Invariance: Both In and Out are invariant, matching TypedAction:
179
- * In: __in (contravariant) + __in_co (covariant) → invariant
180
- * Out: __out (covariant) + __out_contra (contravariant) → invariant
258
+ * Parameter type for pipe and combinators. Same phantom fields as TypedAction
259
+ * but without methods.
181
260
  *
182
261
  * Why no methods: TypedAction's methods (then, branch, etc.) participate in
183
262
  * TS assignability checks in complex, recursive ways that interfere with
184
263
  * generic inference in pipe overloads. Pipeable strips methods so that only
185
- * phantom fields drive inference — predictable covariant/contravariant
186
- * resolution, with invariance enforced when TS checks candidates from
187
- * both sides of a connection.
264
+ * phantom fields drive inference.
188
265
  *
189
266
  * TypedAction (with methods) is assignable to Pipeable because Pipeable
190
267
  * only requires a subset of properties.
@@ -193,24 +270,26 @@ export type Pipeable<In = unknown, Out = unknown> = Action & {
193
270
  __in?: (input: In) => void;
194
271
  __in_co?: In;
195
272
  __out?: () => Out;
196
- __out_contra?: (output: Out) => void;
197
273
  };
198
274
  /**
199
- * Contravariant-only input checking for branch case handler positions.
275
+ * Strip phantom types from a Pipeable, returning a plain Action.
276
+ *
277
+ * Replaces `x as Action` casts throughout the codebase. The constraint
278
+ * ensures the argument is structurally a Pipeable — unlike a bare cast,
279
+ * `toAction(123)` is a type error.
280
+ */
281
+ export declare function toAction<TIn, TOut>(pipeable: Pipeable<TIn, TOut>): Action;
282
+ /**
283
+ * Contravariant input + covariant output for branch case handler positions.
200
284
  *
201
- * Omits __in_co (covariant input) and __out_contra (contravariant output)
202
- * compared to TypedAction/Pipeable. This gives:
285
+ * Omits __in_co (covariant input) compared to Pipeable. This gives:
203
286
  * In: contravariant only (via __in)
204
287
  * Out: covariant only (via __out)
205
288
  *
206
289
  * Why contravariant input: a handler that accepts `unknown` (like drop)
207
290
  * can handle any variant. (input: unknown) => void is assignable to
208
291
  * (input: HasErrors) => void because HasErrors extends unknown.
209
- *
210
- * Why covariant output: the constraint doesn't restrict output types —
211
- * they're inferred from the actual case handlers via ExtractOutput.
212
- * TypedAction's invariant __out_contra with Out=unknown would
213
- * reject any handler with a specific output type, so we omit it.
292
+ * Pipeable's invariant input (__in_co) would reject this.
214
293
  *
215
294
  * TypedAction is assignable to CaseHandler because CaseHandler only
216
295
  * requires a subset of TypedAction's phantom fields.
@@ -225,11 +304,16 @@ type CaseHandler<TIn = unknown, TOut = unknown> = Action & {
225
304
  * field enables `.branch()` to decompose the union via simple indexing
226
305
  * (`keyof ExtractDef<Out>` and `ExtractDef<Out>[K]`) instead of
227
306
  * conditional types (`KindOf<Out>` and `Extract<Out, { kind: K }>`).
307
+ *
308
+ * **Void → null mapping:** Variants with `void` payload (e.g. `{ None: void }`)
309
+ * become `{ kind: "None"; value: null }` at runtime. This is handled by
310
+ * `VoidToNull` below — `void` has no runtime representation in JSON, so it
311
+ * serializes as `null`. Use `z.null()` in Zod schemas for void variants.
228
312
  */
229
313
  type VoidToNull<T> = 0 extends 1 & T ? T : [T] extends [never] ? never : [T] extends [void] ? null : T;
230
- export type TaggedUnion<TDef extends Record<string, unknown>> = {
314
+ export type TaggedUnion<TEnumName extends string, TDef extends Record<string, unknown>> = {
231
315
  [K in keyof TDef & string]: {
232
- kind: K;
316
+ kind: `${TEnumName}.${K}`;
233
317
  value: VoidToNull<TDef[K]>;
234
318
  __def?: TDef;
235
319
  };
@@ -242,43 +326,52 @@ export type OptionDef<T> = {
242
326
  Some: T;
243
327
  None: void;
244
328
  };
245
- export type Option<T> = TaggedUnion<OptionDef<T>>;
329
+ export type Option<T> = TaggedUnion<"Option", OptionDef<T>>;
246
330
  export type ResultDef<TValue, TError> = {
247
331
  Ok: TValue;
248
332
  Err: TError;
249
333
  };
250
- export type Result<TValue, TError> = TaggedUnion<ResultDef<TValue, TError>>;
334
+ export type Result<TValue, TError> = TaggedUnion<"Result", ResultDef<TValue, TError>>;
335
+ export type IteratorDef<TElement> = {
336
+ Iterator: TElement[];
337
+ };
338
+ export type Iterator<TElement> = TaggedUnion<"Iterator", IteratorDef<TElement>>;
251
339
  /** Extract all `kind` string literals from a discriminated union. */
252
340
  type KindOf<T> = T extends {
253
341
  kind: infer K extends string;
254
342
  } ? K : never;
343
+ /** Strip a `"Prefix."` namespace from a dotted kind string. `"Nat.Zero"` → `"Zero"`. */
344
+ type StripKindPrefix<K extends string> = K extends `${string}.${infer Bare}` ? Bare : K;
255
345
  /** Extract the `value` field from a `{ kind, value }` variant. Falls back to T if no `value` field. */
256
346
  type UnwrapVariant<T> = T extends {
257
347
  value: infer V;
258
348
  } ? V : T;
259
349
  /**
260
350
  * Branch case keys: prefer ExtractDef (simple keyof indexing) when the
261
- * output carries __def. Falls back to KindOf (conditional type) for
262
- * outputs without __def.
351
+ * output carries __def. Falls back to KindOf with prefix stripping for
352
+ * outputs without __def (namespaced kinds like "Nat.Zero" → "Zero").
263
353
  */
264
- type BranchKeys<Out> = [ExtractDef<Out>] extends [never] ? KindOf<Out> : keyof ExtractDef<Out> & string;
354
+ type BranchKeys<Out> = [ExtractDef<Out>] extends [never] ? StripKindPrefix<KindOf<Out>> : keyof ExtractDef<Out> & string;
265
355
  /**
266
356
  * Branch case payload: prefer ExtractDef[K] (simple indexing) when available.
267
- * Falls back to UnwrapVariant<Extract<Out, { kind: K }>> for outputs without __def.
357
+ * Falls back to UnwrapVariant<Extract<Out, { kind: ... }>> for outputs without __def.
358
+ * In the fallback, matches namespaced kinds (`"Prefix.K"`) against the bare key K.
268
359
  */
269
360
  type BranchPayload<Out, K extends string> = [ExtractDef<Out>] extends [never] ? UnwrapVariant<Extract<Out, {
270
361
  kind: K;
362
+ } | {
363
+ kind: `${string}.${K}`;
271
364
  }>> : K extends keyof ExtractDef<Out> ? VoidToNull<ExtractDef<Out>[K]> : never;
272
365
  /**
273
366
  * Attach `.then()` and `.forEach()` methods to a plain Action object.
274
367
  * Methods are non-enumerable: invisible to JSON.stringify and toEqual.
275
368
  */
276
- export declare function typedAction<In = unknown, Out = unknown, Refs extends string = never>(action: Action): TypedAction<In, Out, Refs>;
369
+ export declare function typedAction<In = unknown, Out = unknown>(action: Action): TypedAction<In, Out>;
277
370
  /**
278
371
  * Extract the input type from a TypedAction.
279
372
  *
280
373
  * Uses direct phantom field extraction (not full TypedAction matching) to
281
- * avoid the `TypedAction<any, any, any>` constraint which fails for In=never
374
+ * avoid a full `TypedAction<any, any>` constraint which fails for In=never
282
375
  * due to __in contravariance.
283
376
  */
284
377
  export type ExtractInput<T> = T extends {
@@ -321,13 +414,20 @@ export type BranchInput<TCases> = {
321
414
  };
322
415
  }[keyof TCases & string];
323
416
  export declare function branch<TCases extends Record<string, Action>>(cases: TCases): TypedAction<BranchInput<TCases>, ExtractOutput<TCases[keyof TCases & string]>>;
417
+ /**
418
+ * Two-level dispatch: extract the enum prefix from a tagged value's `kind`,
419
+ * then branch on that prefix. Used by postfix methods (`.map()`, `.unwrapOr()`,
420
+ * etc.) to dispatch across union families (Option, Result) without runtime
421
+ * metadata.
422
+ *
423
+ * `branchFamily({ Result: ..., Option: ... })` ≡ `chain(extractPrefix(), branch(cases))`
424
+ */
425
+ export declare function branchFamily(cases: Record<string, Action>): TypedAction;
324
426
  type LoopResultDef<TContinue, TBreak> = {
325
427
  Continue: TContinue;
326
428
  Break: TBreak;
327
429
  };
328
- export type LoopResult<TContinue, TBreak> = TaggedUnion<LoopResultDef<TContinue, TBreak>>;
329
- export declare const TAG_BREAK: Action;
330
- export declare const IDENTITY: Action;
430
+ export type LoopResult<TContinue, TBreak> = TaggedUnion<"LoopResult", LoopResultDef<TContinue, TBreak>>;
331
431
  /**
332
432
  * Restartable scope. The body callback receives `restart`, a TypedAction that
333
433
  * re-executes the body from the beginning with a new input value.
@@ -335,9 +435,9 @@ export declare const IDENTITY: Action;
335
435
  * If the body completes normally → output is TOut.
336
436
  * If restart fires → body re-executes with the restarted value.
337
437
  *
338
- * Compiled form: `RestartHandle(id, ExtractIndex(0), body)`
438
+ * Compiled form: `RestartHandle(id, GetIndex(0), body)`
339
439
  */
340
- export declare function recur<TIn = never, TOut = any>(bodyFn: (restart: TypedAction<TIn, never>) => Pipeable<TIn, TOut>): TypedAction<PipeIn<TIn>, TOut>;
440
+ export declare function recur<TIn = void, TOut = any>(bodyFn: (restart: TypedAction<TIn, never>) => Pipeable<TIn, TOut>): TypedAction<PipeIn<TIn>, TOut>;
341
441
  /**
342
442
  * Early return scope. The body callback receives `earlyReturn`, a TypedAction
343
443
  * that exits the scope immediately with the returned value.
@@ -350,10 +450,10 @@ export declare function recur<TIn = never, TOut = any>(bodyFn: (restart: TypedAc
350
450
  * a Branch. earlyReturn tags with Break and performs — the handler restarts
351
451
  * the body, Branch takes the Break path, and the value exits.
352
452
  */
353
- export declare function earlyReturn<TEarlyReturn = never, TIn = any, TOut = any>(bodyFn: (earlyReturn: TypedAction<TEarlyReturn, never>) => Pipeable<TIn, TOut>): TypedAction<TIn, TEarlyReturn | TOut>;
453
+ export declare function earlyReturn<TEarlyReturn = void, TIn = any, TOut = any>(bodyFn: (earlyReturn: TypedAction<TEarlyReturn, never>) => Pipeable<TIn, TOut>): TypedAction<TIn, TEarlyReturn | TOut>;
354
454
  /**
355
455
  * Build the restart+branch compiled form:
356
- * `Chain(Tag("Continue"), RestartHandle(id, ExtractIndex(0), Branch({ Continue: continueArm, Break: breakArm })))`
456
+ * `Chain(Tag("Continue"), RestartHandle(id, GetIndex(0), Branch({ Continue: continueArm, Break: breakArm })))`
357
457
  *
358
458
  * Input is tagged Continue so the Branch enters the continueArm on first execution.
359
459
  * Continue tag → restart → re-enters continueArm. Break tag → restart → runs breakArm, exits `RestartHandle`.
@@ -370,6 +470,7 @@ export declare function buildRestartBranchAction(restartHandlerId: RestartHandle
370
470
  *
371
471
  * Compiles to `RestartHandle`/`RestartPerform`/Branch — same effect substrate as tryCatch and earlyReturn.
372
472
  */
373
- 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>>;
473
+ 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>>;
374
474
  /** Simple config factory. */
375
475
  export declare function config(workflow: Action): Config;
476
+ //# 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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"}