@nicolastoulemont/std 0.9.0 → 0.11.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 (217) hide show
  1. package/README.md +406 -69
  2. package/dist/brand/index.d.mts +1 -1
  3. package/dist/brand/index.mjs +1 -1
  4. package/dist/{brand-DZgGDrAe.mjs → brand-DP-C92GS.mjs} +2 -2
  5. package/dist/{brand-DZgGDrAe.mjs.map → brand-DP-C92GS.mjs.map} +1 -1
  6. package/dist/{brand.types-B3NDX1vo.d.mts → brand.types-Cqkibdlt.d.mts} +1 -1
  7. package/dist/{brand.types-B3NDX1vo.d.mts.map → brand.types-Cqkibdlt.d.mts.map} +1 -1
  8. package/dist/context/index.d.mts +1 -1
  9. package/dist/context/index.mjs +1 -1
  10. package/dist/{context-0xDbwtpx.mjs → context-7oKePrBY.mjs} +2 -2
  11. package/dist/{context-0xDbwtpx.mjs.map → context-7oKePrBY.mjs.map} +1 -1
  12. package/dist/{context-B2dWloPl.d.mts → context-C9UX6GJo.d.mts} +2 -2
  13. package/dist/{context-B2dWloPl.d.mts.map → context-C9UX6GJo.d.mts.map} +1 -1
  14. package/dist/data/index.d.mts +1 -1
  15. package/dist/data/index.mjs +1 -1
  16. package/dist/data-W10ldR5l.mjs +2 -0
  17. package/dist/data-W10ldR5l.mjs.map +1 -0
  18. package/dist/{dual-fN6OUwN_.mjs → dual-CZhzZslG.mjs} +1 -1
  19. package/dist/{dual-fN6OUwN_.mjs.map → dual-CZhzZslG.mjs.map} +1 -1
  20. package/dist/duration/index.d.mts +1 -1
  21. package/dist/duration/index.mjs +1 -1
  22. package/dist/{duration-Bas3mi1N.mjs → duration-Dwtjy95Z.mjs} +2 -2
  23. package/dist/{duration-Bas3mi1N.mjs.map → duration-Dwtjy95Z.mjs.map} +1 -1
  24. package/dist/either/index.d.mts +1 -1
  25. package/dist/either/index.mjs +1 -1
  26. package/dist/{either-G7uOu4Ar.mjs → either-B2TvVY_j.mjs} +2 -2
  27. package/dist/{either-G7uOu4Ar.mjs.map → either-B2TvVY_j.mjs.map} +1 -1
  28. package/dist/exit-D5zZVlCn.d.mts +67 -0
  29. package/dist/exit-D5zZVlCn.d.mts.map +1 -0
  30. package/dist/fiber/index.d.mts +2 -0
  31. package/dist/fiber/index.mjs +1 -0
  32. package/dist/fiber-CZsyrDdd.mjs +2 -0
  33. package/dist/fiber-CZsyrDdd.mjs.map +1 -0
  34. package/dist/{flow-CNyLsPGb.mjs → flow-D8_tllWl.mjs} +1 -1
  35. package/dist/{flow-CNyLsPGb.mjs.map → flow-D8_tllWl.mjs.map} +1 -1
  36. package/dist/functions/index.d.mts +1 -1
  37. package/dist/functions/index.mjs +1 -1
  38. package/dist/functions-DmOZ7O4j.mjs +2 -0
  39. package/dist/{functions-ByAk682_.mjs.map → functions-DmOZ7O4j.mjs.map} +1 -1
  40. package/dist/fx/index.d.mts +1 -1
  41. package/dist/fx/index.mjs +1 -1
  42. package/dist/fx-DXBw4iYX.mjs +2 -0
  43. package/dist/fx-DXBw4iYX.mjs.map +1 -0
  44. package/dist/fx.runtime-B2_rL7h_.mjs +2 -0
  45. package/dist/fx.runtime-B2_rL7h_.mjs.map +1 -0
  46. package/dist/fx.runtime-q661ckFI.d.mts +16 -0
  47. package/dist/fx.runtime-q661ckFI.d.mts.map +1 -0
  48. package/dist/{fx.types-DyQVgTS8.mjs → fx.types-Bg-Mmdm5.mjs} +1 -1
  49. package/dist/{fx.types-DyQVgTS8.mjs.map → fx.types-Bg-Mmdm5.mjs.map} +1 -1
  50. package/dist/{fx.types-BdN1EWxr.d.mts → fx.types-CpFKa-Jj.d.mts} +1 -1
  51. package/dist/{fx.types-BdN1EWxr.d.mts.map → fx.types-CpFKa-Jj.d.mts.map} +1 -1
  52. package/dist/{index-DfAqfnY0.d.mts → index-BJiD1-T_.d.mts} +4 -4
  53. package/dist/{index-DfAqfnY0.d.mts.map → index-BJiD1-T_.d.mts.map} +1 -1
  54. package/dist/{index-DR7hzXU4.d.mts → index-BR6lwlNv.d.mts} +137 -29
  55. package/dist/index-BR6lwlNv.d.mts.map +1 -0
  56. package/dist/index-BfQSp6pV.d.mts +226 -0
  57. package/dist/index-BfQSp6pV.d.mts.map +1 -0
  58. package/dist/{index-uE3S3Krx.d.mts → index-Bo6pkkVO.d.mts} +5 -5
  59. package/dist/{index-uE3S3Krx.d.mts.map → index-Bo6pkkVO.d.mts.map} +1 -1
  60. package/dist/{index-D8rDE60Y.d.mts → index-BsCrdweM.d.mts} +1 -1
  61. package/dist/index-BsCrdweM.d.mts.map +1 -0
  62. package/dist/{index-D7mFNjot.d.mts → index-BtPFPfja.d.mts} +1 -1
  63. package/dist/{index-D7mFNjot.d.mts.map → index-BtPFPfja.d.mts.map} +1 -1
  64. package/dist/{index-BA0EsFxS.d.mts → index-C7uSldLA.d.mts} +3 -3
  65. package/dist/{index-BA0EsFxS.d.mts.map → index-C7uSldLA.d.mts.map} +1 -1
  66. package/dist/{index-CVmgBpDt.d.mts → index-CBtUJ94I.d.mts} +3 -3
  67. package/dist/{index-CVmgBpDt.d.mts.map → index-CBtUJ94I.d.mts.map} +1 -1
  68. package/dist/{index-BD-els5J.d.mts → index-CIEdspey.d.mts} +83 -59
  69. package/dist/index-CIEdspey.d.mts.map +1 -0
  70. package/dist/{index-dCRymj_g.d.mts → index-CXz5Z5MP.d.mts} +5 -5
  71. package/dist/{index-dCRymj_g.d.mts.map → index-CXz5Z5MP.d.mts.map} +1 -1
  72. package/dist/{index-D8gcYvR9.d.mts → index-DDdSA1Rs.d.mts} +5 -5
  73. package/dist/{index-D8gcYvR9.d.mts.map → index-DDdSA1Rs.d.mts.map} +1 -1
  74. package/dist/{index-BqJ1GWAF.d.mts → index-D_JbOTtg.d.mts} +2 -2
  75. package/dist/index-D_JbOTtg.d.mts.map +1 -0
  76. package/dist/index-DzGXoCV1.d.mts +433 -0
  77. package/dist/index-DzGXoCV1.d.mts.map +1 -0
  78. package/dist/{index-CNTYbcY9.d.mts → index-Pma2THAy.d.mts} +10 -3
  79. package/dist/index-Pma2THAy.d.mts.map +1 -0
  80. package/dist/{index-CIvNgjsx.d.mts → index-hrn4s4Vn.d.mts} +2 -2
  81. package/dist/{index-CIvNgjsx.d.mts.map → index-hrn4s4Vn.d.mts.map} +1 -1
  82. package/dist/{index-D6pjHqlK.d.mts → index-lYxaV6H7.d.mts} +49 -70
  83. package/dist/index-lYxaV6H7.d.mts.map +1 -0
  84. package/dist/index-xY9km50k.d.mts +59 -0
  85. package/dist/index-xY9km50k.d.mts.map +1 -0
  86. package/dist/index.d.mts +24 -21
  87. package/dist/index.mjs +1 -1
  88. package/dist/layer/index.d.mts +1 -1
  89. package/dist/layer/index.mjs +1 -1
  90. package/dist/layer-BmrPWBkT.mjs +2 -0
  91. package/dist/layer-BmrPWBkT.mjs.map +1 -0
  92. package/dist/{layer.types-BB0MrvLg.d.mts → layer.types-smjitsoN.d.mts} +4 -4
  93. package/dist/{layer.types-BB0MrvLg.d.mts.map → layer.types-smjitsoN.d.mts.map} +1 -1
  94. package/dist/log/index.d.mts +2 -0
  95. package/dist/log/index.mjs +1 -0
  96. package/dist/log-Bh8G5umo.mjs +2 -0
  97. package/dist/log-Bh8G5umo.mjs.map +1 -0
  98. package/dist/multithread/index.d.mts +1 -1
  99. package/dist/multithread/index.mjs +1 -1
  100. package/dist/multithread-CovZ2ioL.mjs +21 -0
  101. package/dist/multithread-CovZ2ioL.mjs.map +1 -0
  102. package/dist/option/index.d.mts +1 -1
  103. package/dist/option/index.mjs +1 -1
  104. package/dist/{option-C2iCxAuJ.mjs → option-BlyP5LA2.mjs} +2 -2
  105. package/dist/{option-C2iCxAuJ.mjs.map → option-BlyP5LA2.mjs.map} +1 -1
  106. package/dist/{option.types-D9hrKcfa.d.mts → option.types-Po1qwxiW.d.mts} +3 -3
  107. package/dist/{option.types-D9hrKcfa.d.mts.map → option.types-Po1qwxiW.d.mts.map} +1 -1
  108. package/dist/{option.types-CbY_swma.mjs → option.types-bFFSErJ-.mjs} +1 -1
  109. package/dist/{option.types-CbY_swma.mjs.map → option.types-bFFSErJ-.mjs.map} +1 -1
  110. package/dist/order/index.d.mts +1 -1
  111. package/dist/order/index.mjs +1 -1
  112. package/dist/{order-BXOBEKvB.mjs → order-VTXpppmI.mjs} +2 -2
  113. package/dist/{order-BXOBEKvB.mjs.map → order-VTXpppmI.mjs.map} +1 -1
  114. package/dist/{pipeable-BIrevC0D.d.mts → pipeable-BY9yPsNK.d.mts} +1 -1
  115. package/dist/{pipeable-BIrevC0D.d.mts.map → pipeable-BY9yPsNK.d.mts.map} +1 -1
  116. package/dist/pipeable-COGyGMUV.mjs +2 -0
  117. package/dist/{pipeable-Dp1_23zH.mjs.map → pipeable-COGyGMUV.mjs.map} +1 -1
  118. package/dist/predicate/index.d.mts +1 -1
  119. package/dist/predicate/index.mjs +1 -1
  120. package/dist/predicate-CvH7cY_J.mjs +2 -0
  121. package/dist/predicate-CvH7cY_J.mjs.map +1 -0
  122. package/dist/provide/index.d.mts +1 -1
  123. package/dist/provide/index.mjs +1 -1
  124. package/dist/provide-K-6oXtLm.mjs +2 -0
  125. package/dist/provide-K-6oXtLm.mjs.map +1 -0
  126. package/dist/queue/index.d.mts +1 -1
  127. package/dist/queue/index.mjs +1 -1
  128. package/dist/{queue-GYVrD39q.mjs → queue-CeEIUHcY.mjs} +2 -2
  129. package/dist/{queue-GYVrD39q.mjs.map → queue-CeEIUHcY.mjs.map} +1 -1
  130. package/dist/{queue.types-B-l5XYbU.d.mts → queue.types-Bj63N2ab.d.mts} +1 -1
  131. package/dist/{queue.types-B-l5XYbU.d.mts.map → queue.types-Bj63N2ab.d.mts.map} +1 -1
  132. package/dist/result/index.d.mts +1 -1
  133. package/dist/result/index.mjs +1 -1
  134. package/dist/{result-D3VY0qBG.mjs → result-C74pRN2x.mjs} +2 -2
  135. package/dist/{result-D3VY0qBG.mjs.map → result-C74pRN2x.mjs.map} +1 -1
  136. package/dist/{result.types-BKzChyWY.d.mts → result.types-JEcowzYH.d.mts} +6 -27
  137. package/dist/result.types-JEcowzYH.d.mts.map +1 -0
  138. package/dist/schedule/index.d.mts +1 -1
  139. package/dist/schedule/index.mjs +1 -1
  140. package/dist/{schedule-B7qV60tO.mjs → schedule-ChcIgvd5.mjs} +2 -2
  141. package/dist/{schedule-B7qV60tO.mjs.map → schedule-ChcIgvd5.mjs.map} +1 -1
  142. package/dist/{schedule-BzPjvMXc.d.mts → schedule-ap6y014J.d.mts} +3 -3
  143. package/dist/{schedule-BzPjvMXc.d.mts.map → schedule-ap6y014J.d.mts.map} +1 -1
  144. package/dist/schema/index.d.mts +1 -1
  145. package/dist/schema/index.mjs +1 -1
  146. package/dist/schema-CjON86AZ.mjs +2 -0
  147. package/dist/schema-CjON86AZ.mjs.map +1 -0
  148. package/dist/scope/index.d.mts +1 -1
  149. package/dist/scope/index.mjs +1 -1
  150. package/dist/{scope-CuM3CzwG.d.mts → scope-BQEFiS_2.d.mts} +4 -4
  151. package/dist/scope-BQEFiS_2.d.mts.map +1 -0
  152. package/dist/scope-D2AqJy7j.mjs +2 -0
  153. package/dist/scope-D2AqJy7j.mjs.map +1 -0
  154. package/dist/service/index.d.mts +1 -1
  155. package/dist/service/index.mjs +1 -1
  156. package/dist/{service-CWAIEH46.mjs → service-DHkeorS3.mjs} +2 -2
  157. package/dist/{service-CWAIEH46.mjs.map → service-DHkeorS3.mjs.map} +1 -1
  158. package/dist/{service-D8mr0wwg.d.mts → service-DIKUYHda.d.mts} +2 -2
  159. package/dist/{service-D8mr0wwg.d.mts.map → service-DIKUYHda.d.mts.map} +1 -1
  160. package/dist/trace/index.d.mts +2 -0
  161. package/dist/trace/index.mjs +1 -0
  162. package/dist/trace-ByjppUes.mjs +2 -0
  163. package/dist/trace-ByjppUes.mjs.map +1 -0
  164. package/dist/trace-NETIRDfA.d.mts +375 -0
  165. package/dist/trace-NETIRDfA.d.mts.map +1 -0
  166. package/dist/type-utils.types-CnPpsvt5.d.mts +30 -0
  167. package/dist/type-utils.types-CnPpsvt5.d.mts.map +1 -0
  168. package/package.json +15 -5
  169. package/dist/adt/index.d.mts +0 -2
  170. package/dist/adt/index.mjs +0 -1
  171. package/dist/adt-CY8wLJJI.mjs +0 -2
  172. package/dist/adt-CY8wLJJI.mjs.map +0 -1
  173. package/dist/data-DqACNS_g.mjs +0 -2
  174. package/dist/data-DqACNS_g.mjs.map +0 -1
  175. package/dist/discriminator.types-C-ygT2S1.d.mts +0 -7
  176. package/dist/discriminator.types-C-ygT2S1.d.mts.map +0 -1
  177. package/dist/functions-ByAk682_.mjs +0 -2
  178. package/dist/fx-C_RTDEpv.mjs +0 -2
  179. package/dist/fx-C_RTDEpv.mjs.map +0 -1
  180. package/dist/fx.runtime-jQxh77s3.mjs +0 -2
  181. package/dist/fx.runtime-jQxh77s3.mjs.map +0 -1
  182. package/dist/index-BD-els5J.d.mts.map +0 -1
  183. package/dist/index-BaRJVkLo.d.mts +0 -458
  184. package/dist/index-BaRJVkLo.d.mts.map +0 -1
  185. package/dist/index-BipW0MC3.d.mts +0 -64
  186. package/dist/index-BipW0MC3.d.mts.map +0 -1
  187. package/dist/index-BqJ1GWAF.d.mts.map +0 -1
  188. package/dist/index-CNTYbcY9.d.mts.map +0 -1
  189. package/dist/index-D6pjHqlK.d.mts.map +0 -1
  190. package/dist/index-D8rDE60Y.d.mts.map +0 -1
  191. package/dist/index-DR7hzXU4.d.mts.map +0 -1
  192. package/dist/is-plain-object-BoFjRafL.mjs +0 -2
  193. package/dist/is-plain-object-BoFjRafL.mjs.map +0 -1
  194. package/dist/layer-C5A-EM0h.mjs +0 -2
  195. package/dist/layer-C5A-EM0h.mjs.map +0 -1
  196. package/dist/multithread-Cyc8Bz45.mjs +0 -19
  197. package/dist/multithread-Cyc8Bz45.mjs.map +0 -1
  198. package/dist/pipeable-Dp1_23zH.mjs +0 -2
  199. package/dist/predicate-D_1SsIi4.mjs +0 -2
  200. package/dist/predicate-D_1SsIi4.mjs.map +0 -1
  201. package/dist/provide-CuccogWx.mjs +0 -2
  202. package/dist/provide-CuccogWx.mjs.map +0 -1
  203. package/dist/result.types-BKzChyWY.d.mts.map +0 -1
  204. package/dist/schema-DstB1_VK.mjs +0 -2
  205. package/dist/schema-DstB1_VK.mjs.map +0 -1
  206. package/dist/schema.shared-Bjyroa6b.mjs +0 -2
  207. package/dist/schema.shared-Bjyroa6b.mjs.map +0 -1
  208. package/dist/schema.types-w1WK4kGS.d.mts +0 -62
  209. package/dist/schema.types-w1WK4kGS.d.mts.map +0 -1
  210. package/dist/scope-CuM3CzwG.d.mts.map +0 -1
  211. package/dist/scope-gVt4PESc.mjs +0 -2
  212. package/dist/scope-gVt4PESc.mjs.map +0 -1
  213. package/dist/service-resolution-BefYr4nR.mjs +0 -2
  214. package/dist/service-resolution-BefYr4nR.mjs.map +0 -1
  215. /package/dist/{chunk-oQKkju2G.mjs → chunk-6rpU2rUb.mjs} +0 -0
  216. /package/dist/{option-CXXiA1w-.mjs → option-BqAUkJ8e.mjs} +0 -0
  217. /package/dist/{result-xFLfwriM.mjs → result-B5WbPg8C.mjs} +0 -0
@@ -1,5 +1,6 @@
1
- import { i as Fx } from "./fx.types-BdN1EWxr.mjs";
2
- import { t as Result } from "./result.types-BKzChyWY.mjs";
1
+ import { i as Fx, t as AsyncFx } from "./fx.types-CpFKa-Jj.mjs";
2
+ import { t as Result } from "./result.types-JEcowzYH.mjs";
3
+ import { n as Layer } from "./layer.types-smjitsoN.mjs";
3
4
 
4
5
  //#region src/multithread/multithread.types.d.ts
5
6
 
@@ -10,11 +11,21 @@ import { t as Result } from "./result.types-BKzChyWY.mjs";
10
11
  * - When present, `Atomics.load(signal, 0) === 1` indicates cancellation.
11
12
  */
12
13
  type MultithreadSignal = Int32Array<SharedArrayBuffer> | null;
14
+ type MultithreadRuntimeSnapshot = {
15
+ readonly fiberId: number | undefined;
16
+ readonly logFields: Record<string, unknown>;
17
+ readonly trace: {
18
+ readonly traceId: string;
19
+ readonly spanId: string;
20
+ readonly traceFlags?: number;
21
+ } | undefined;
22
+ };
13
23
  /**
14
24
  * Cooperative cancellation context injected as the last argument in worker callbacks.
15
25
  */
16
26
  type MultithreadCtx = {
17
27
  readonly signal: MultithreadSignal;
28
+ readonly runtime: MultithreadRuntimeSnapshot;
18
29
  isCancelled(): boolean;
19
30
  throwIfCancelled(): void;
20
31
  };
@@ -79,6 +90,13 @@ type MultithreadTask = {
79
90
  <A, E = never>(worker: (ctx: MultithreadCtx) => WorkerReturn<A, E>): () => MultithreadOp<A, E | MultithreadError>;
80
91
  <Args extends readonly unknown[], A, E = never>(worker: WorkerWithCtx<Args, A, E>): (...args: Args) => MultithreadOp<A, E | MultithreadError>;
81
92
  };
93
+ type MultithreadFx = {
94
+ <A, E = never>(worker: (ctx: MultithreadCtx) => WorkerReturn<A, E>): AsyncFx<A, E | MultithreadError>;
95
+ <Args extends readonly unknown[], A, E = never>(worker: WorkerWithCtx<Args, A, E>, ...args: Args): AsyncFx<A, E | MultithreadError>;
96
+ };
97
+ type MultithreadLayer = (config: {
98
+ readonly maxWorkers: number;
99
+ }) => Layer<never, MultithreadError, never, false>;
82
100
  type MultithreadMapWorker<A, B, E> = (value: A, index: number, ctx: MultithreadCtx) => WorkerReturn<B, E>;
83
101
  type MultithreadMap = {
84
102
  <A, B, E = never>(values: readonly A[], worker: MultithreadMapWorker<A, B, E>, options?: MultithreadParallelOptions): MultithreadOp<readonly B[], E | MultithreadError>;
@@ -117,54 +135,106 @@ type MultithreadFirstSuccess = {
117
135
  <Ops extends readonly MultithreadOp<unknown, unknown>[], InputE = never>(operations: Result<Ops, InputE>): Promise<Result<MultithreadValue<Ops[number]>, MultithreadOpError<Ops[number]> | InputE | MultithreadError>>;
118
136
  };
119
137
  declare namespace multithread_d_exports {
120
- export { MultithreadCtx, MultithreadError, MultithreadOp, configure, filter, firstSuccess, flatMap, forEach, map, race, run, shutdown, task };
138
+ export { MultithreadCtx, MultithreadError, MultithreadOp, MultithreadRuntimeSnapshot, configure, filter, firstSuccess, flatMap, forEach, fx, layer, map, race, run, shutdown, task };
121
139
  }
122
140
  /**
123
141
  * Execute one worker task as a cancelable `MultithreadOp`.
124
142
  *
143
+ * Use `run` when you need direct `result()`, `abort()`, `await op`, or explicit
144
+ * sharing of one memoized operation.
145
+ *
125
146
  * @example
126
147
  * ```ts
127
148
  * import { Multithread } from "@nicolastoulemont/std"
128
149
  *
129
- * const op = Multithread.run((ctx) => (ctx.isCancelled() ? 0 : 42))
130
- * // => cancelable operation with result() and abort()
150
+ * const op = Multithread.run((input: string, ctx) => {
151
+ * ctx.throwIfCancelled()
152
+ * return input.toUpperCase()
153
+ * }, "hello")
154
+ *
155
+ * const result = await op.result()
156
+ * // => { _tag: "Ok", value: "HELLO" }
131
157
  * ```
132
158
  */
133
159
  declare const run: MultithreadRun;
134
160
  /**
135
161
  * Create a reusable worker task factory.
136
162
  *
163
+ * Each call to the returned function creates a fresh `MultithreadOp`.
164
+ *
137
165
  * @example
138
166
  * ```ts
139
167
  * import { Multithread } from "@nicolastoulemont/std"
140
168
  *
141
- * const create = Multithread.task((ctx) => (ctx.isCancelled() ? 0 : 16))
142
- * const op = create()
143
- * // => operation that resolves to 16 when executed
169
+ * const uppercase = Multithread.task((input: string, ctx) => {
170
+ * ctx.throwIfCancelled()
171
+ * return input.toUpperCase()
172
+ * })
173
+ *
174
+ * const result = await uppercase("hello").result()
175
+ * // => { _tag: "Ok", value: "HELLO" }
144
176
  * ```
145
177
  */
146
178
  declare const task: MultithreadTask;
179
+ /**
180
+ * Create a fresh worker-backed Fx for each execution.
181
+ *
182
+ * Prefer this inside reusable `Fx.gen` programs. Use `run` when you need a
183
+ * lower-level operation handle, manual cancellation, or explicit sharing.
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * import { Fx, Multithread } from "@nicolastoulemont/std"
188
+ *
189
+ * const program = Fx.gen(async function* () {
190
+ * return yield* Multithread.fx((input: number, ctx) => {
191
+ * ctx.throwIfCancelled()
192
+ * return input * 2
193
+ * }, 21)
194
+ * })
195
+ *
196
+ * const exit = await Fx.run(program)
197
+ * // => { _tag: "Ok", value: 42 }
198
+ * ```
199
+ */
200
+ declare const fx: MultithreadFx;
147
201
  /**
148
202
  * Map a collection in parallel.
149
203
  *
204
+ * The `parallelism` option controls how many item operations this call keeps in
205
+ * flight. Runtime execution is still bounded by the configured worker count.
206
+ *
150
207
  * @example
151
208
  * ```ts
152
209
  * import { Multithread } from "@nicolastoulemont/std"
153
210
  *
154
- * const op = Multithread.map([1, 2, 3], (value) => value * 2)
155
- * // => operation that resolves to [2, 4, 6]
211
+ * const result = await Multithread.map(
212
+ * [1, 2, 3],
213
+ * (value, _index, ctx) => {
214
+ * ctx.throwIfCancelled()
215
+ * return value * 2
216
+ * },
217
+ * { parallelism: 2 },
218
+ * ).result()
219
+ * // => { _tag: "Ok", value: [2, 4, 6] }
156
220
  * ```
157
221
  */
158
222
  declare const map: MultithreadMap;
159
223
  /**
160
224
  * Run side-effecting parallel work for each item.
161
225
  *
226
+ * Use this when only completion matters. If you need collected values, use
227
+ * `map`.
228
+ *
162
229
  * @example
163
230
  * ```ts
164
231
  * import { Multithread } from "@nicolastoulemont/std"
165
232
  *
166
- * const op = Multithread.forEach(["a", "b"], (value) => value.toUpperCase())
167
- * // => operation that resolves to void after all items complete
233
+ * const result = await Multithread.forEach(["a", "b"], (value, _index, ctx) => {
234
+ * ctx.throwIfCancelled()
235
+ * return value.toUpperCase()
236
+ * }).result()
237
+ * // => { _tag: "Ok", value: undefined }
168
238
  * ```
169
239
  */
170
240
  declare const forEach: MultithreadForEach;
@@ -175,8 +245,11 @@ declare const forEach: MultithreadForEach;
175
245
  * ```ts
176
246
  * import { Multithread } from "@nicolastoulemont/std"
177
247
  *
178
- * const op = Multithread.filter([1, 2, 3, 4], (value) => value % 2 === 0)
179
- * // => operation that resolves to [2, 4]
248
+ * const result = await Multithread.filter([1, 2, 3, 4], (value, _index, ctx) => {
249
+ * ctx.throwIfCancelled()
250
+ * return value % 2 === 0
251
+ * }).result()
252
+ * // => { _tag: "Ok", value: [2, 4] }
180
253
  * ```
181
254
  */
182
255
  declare const filter: MultithreadFilter;
@@ -187,22 +260,34 @@ declare const filter: MultithreadFilter;
187
260
  * ```ts
188
261
  * import { Multithread } from "@nicolastoulemont/std"
189
262
  *
190
- * const op = Multithread.flatMap([1, 2], (value) => [value, value * 10])
191
- * // => operation that resolves to [1, 10, 2, 20]
263
+ * const result = await Multithread.flatMap([1, 2], (value, _index, ctx) => {
264
+ * ctx.throwIfCancelled()
265
+ * return [value, value * 10]
266
+ * }).result()
267
+ * // => { _tag: "Ok", value: [1, 10, 2, 20] }
192
268
  * ```
193
269
  */
194
270
  declare const flatMap: MultithreadFlatMap;
195
271
  /**
196
- * Resolve with the first successfully completed operation.
272
+ * Resolve with the first settled operation.
273
+ *
274
+ * The winner may be successful or failed. All remaining operations are aborted
275
+ * after the first operation settles.
197
276
  *
198
277
  * @example
199
278
  * ```ts
200
279
  * import { Multithread } from "@nicolastoulemont/std"
201
280
  *
202
- * const fast = Multithread.run(() => 1)
203
- * const slow = Multithread.run(() => 2)
204
- * const op = Multithread.race([fast, slow])
205
- * // => operation that resolves with the first finished result
281
+ * const fast = Multithread.run(() => "fast")
282
+ * const slow = Multithread.run(async () => {
283
+ * await new Promise((resolve) => {
284
+ * setTimeout(resolve, 50)
285
+ * })
286
+ * return "slow"
287
+ * })
288
+ *
289
+ * const result = await Multithread.race([fast, slow]).result()
290
+ * // => { _tag: "Ok", value: "fast" }
206
291
  * ```
207
292
  */
208
293
  declare const race: MultithreadRace;
@@ -211,14 +296,13 @@ declare const race: MultithreadRace;
211
296
  *
212
297
  * @example
213
298
  * ```ts
214
- * import { Multithread } from "@nicolastoulemont/std"
215
- *
216
- * import { Result } from "@nicolastoulemont/std"
299
+ * import { Multithread, Result } from "@nicolastoulemont/std"
217
300
  *
218
301
  * const fail = Multithread.run(() => Result.err("boom"))
219
302
  * const pass = Multithread.run(() => Result.ok(1))
220
- * const op = Multithread.firstSuccess([fail, pass])
221
- * // => operation that resolves with 1
303
+ *
304
+ * const result = await Multithread.firstSuccess([fail, pass]).result()
305
+ * // => { _tag: "Ok", value: 1 }
222
306
  * ```
223
307
  */
224
308
  declare const firstSuccess: MultithreadFirstSuccess;
@@ -226,6 +310,7 @@ declare const firstSuccess: MultithreadFirstSuccess;
226
310
  * Configure max worker count used by the underlying runtime.
227
311
  *
228
312
  * Must be called before first multithread operation starts.
313
+ * Use `layer` instead when the worker runtime should follow an `Fx` scope.
229
314
  *
230
315
  * @example
231
316
  * ```ts
@@ -238,20 +323,43 @@ declare const firstSuccess: MultithreadFirstSuccess;
238
323
  declare const configure: (config: {
239
324
  maxWorkers: number;
240
325
  }) => Result<void, MultithreadError>;
326
+ /**
327
+ * Create an Fx layer that configures and shuts down the shared worker runtime.
328
+ *
329
+ * The underlying `multithreading` runtime is process-global, so the layer makes
330
+ * that lifecycle visible to `Fx` scopes rather than creating a per-fiber pool.
331
+ *
332
+ * @example
333
+ * ```ts
334
+ * import { Fx, Multithread, Provide } from "@nicolastoulemont/std"
335
+ *
336
+ * const program = Provide.layer(Multithread.layer({ maxWorkers: 2 }))(
337
+ * Fx.gen(async function* () {
338
+ * return yield* Multithread.fx(() => 42)
339
+ * }),
340
+ * )
341
+ *
342
+ * const exit = await Fx.run(program)
343
+ * // => { _tag: "Ok", value: 42 }
344
+ * ```
345
+ */
346
+ declare const layer: MultithreadLayer;
241
347
  /**
242
348
  * Shutdown worker runtime.
243
349
  *
244
350
  * This function is idempotent.
351
+ * Direct users can call it in test cleanup or process teardown. `layer` calls it
352
+ * automatically when the owning scope closes.
245
353
  *
246
354
  * @example
247
355
  * ```ts
248
356
  * import { Multithread } from "@nicolastoulemont/std"
249
357
  *
250
- * const shutdownPromise = Multithread.shutdown()
251
- * // => Promise<Result<void, MultithreadError>>
358
+ * const result = await Multithread.shutdown()
359
+ * // => { _tag: "Ok", value: undefined }
252
360
  * ```
253
361
  */
254
362
  declare const shutdown: () => Promise<Result<void, MultithreadError>>;
255
363
  //#endregion
256
364
  export { multithread_d_exports as t };
257
- //# sourceMappingURL=index-DR7hzXU4.d.mts.map
365
+ //# sourceMappingURL=index-BR6lwlNv.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BR6lwlNv.d.mts","names":[],"sources":["../src/multithread/multithread.types.ts","../src/multithread/multithread.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAUA;AAEA;AAeA;AAOY,KAxBA,iBAAA,GAAoB,UAwBc,CAxBH,iBAwBG,CAAA,GAAA,IAAA;AAMlC,KA5BA,0BAAA,GA4BA;EAKA,SAAA,OAAA,EAAA,MAAA,GAAA,SAA+B;EAM/B,SAAA,SAAA,EArCU,MAqCV,CAAA,MAAyB,EAAA,OAAA,CAAA;EAKzB,SAAA,KAAA,EAAA;IASA,SAAA,OAAgB,EAAA,MAAA;IACxB,SAAA,MAAA,EAAA,MAAA;IACA,SAAA,UAAA,CAAA,EAAA,MAAA;EACA,CAAA,GAAA,SAAA;CACA;;;AAUJ;AAAiC,KApDrB,cAAA,GAoDqB;EAAe,SAAA,MAAA,EAnD7B,iBAmD6B;EAAG,SAAA,OAAA,EAlD/B,0BAkD+B;EAAd,WAAA,EAAA,EAAA,OAAA;EAA2B,gBAAA,EAAA,EAAA,IAAA;CAAR;AAAgC,KA7C5E,kCAAA,GA6C4E;EAAG,SAAA,IAAA,EAAA,oCAAA;EAAd,SAAA,OAAA,EAAA,MAAA;EAAR,SAAA,KAAA,CAAA,EAAA,OAAA;CAAO;AAShE,KAhDA,yCAAA,GAgDa;EAAY,SAAA,IAAA,EAAA,2CAAA;EAAG,SAAA,OAAA,EAAA,MAAA;CAAN;AAEH,KA7CnB,+BAAA,GA6CmB;EAAG,SAAA,IAAA,EAAA,iCAAA;EAAd,SAAA,OAAA,EAAA,MAAA;EAAR,SAAA,KAAA,EAAA,OAAA;CAEmB;AAAG,KAzCtB,yBAAA,GAyCsB;EAAd,SAAA,IAAA,EAAA,2BAAA;EAAZ,SAAA,OAAA,EAAA,MAAA;CACmC;AAAG,KArClC,yBAAA,GAqCkC;EAAlB,SAAA,IAAA,EAAA,2BAAA;EAAc,SAAA,OAAA,EAAA,MAAA;EAG9B,SAAA,MAAA,EAAA,SAAA,OAA0B,EAAA;AAErC,CAAA;;;;AAEmH,KAnCxG,gBAAA,GACR,kCAkCgH,GAjChH,yCAiCgH,GAhChH,+BAgCgH,GA/BhH,yBA+BgH,GA9BhH,yBA8BgH;;;AAEpH;;;;;AACqF,KAxBzE,YAwByE,CAAA,CAAA,EAAA,CAAA,CAAA,GAxBpD,CAwBoD,GAxBhD,MAwBgD,CAxBrC,CAwBqC,EAxBlC,CAwBkC,CAAA,GAxB7B,OAwB6B,CAxBrB,CAwBqB,CAAA,GAxBhB,OAwBgB,CAxBR,MAwBQ,CAxBG,CAwBH,EAxBM,CAwBN,CAAA,CAAA;;;;;;;;AAGxE,KAlBD,aAkBC,CAAA,CAAA,EAAA,CAAA,CAAA,GAlBqB,EAkBrB,CAlBwB,CAkBxB,EAlB2B,CAkB3B,CAAA,GAAA;EACM,SAAA,IAAA,EAAA,eAAA;EAAG,MAAA,EAAA,EAjBV,OAiBU,CAjBF,MAiBE,CAjBS,CAiBT,EAjBY,CAiBZ,CAAA,CAAA;EAAI,KAAA,EAAA,EAAA,IAAA;EAArB,IAAA,EAfG,WAeH,CAfe,MAef,CAf0B,CAe1B,EAf6B,CAe7B,CAAA,CAAA,CAAA,MAAA,CAAA;EAAa,CAAA,MAAA,CAAA,aAAA,GAAA,EAdU,cAcV,CAdyB,CAczB,EAd4B,CAc5B,EAAA,OAAA,CAAA;AAGlB,CAAA;AAC+B,KAfnB,0BAAA,GAemB;EAAgC,SAAA,WAAA,CAAA,EAAA,MAAA;CAAG;KAX7D,aAW6C,CAAA,aAAA,SAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAAA,CAAA,GAXwB,IAWxB,EAX8B,cAW9B,CAAA,EAAA,GAXkD,YAWlD,CAX+D,CAW/D,EAXkE,CAWlE,CAAA;AAAyC,KAT/E,cAAA,GAS+E;EAAG,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,CAAA,GAAA,EAR/D,cAQ+D,EAAA,GAR5C,YAQ4C,CAR/B,CAQ+B,EAR5B,CAQ4B,CAAA,CAAA,EARvB,aAQuB,CART,CAQS,EARN,CAQM,GARF,gBAQE,CAAA;EAAI,CAAA,aAAA,SAAA,OAAA,EAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EANtF,aAMsF,CANxE,IAMwE,EANlE,CAMkE,EAN/D,CAM+D,CAAA,EAAA,GAAA,IAAA,EALrF,IAKqF,CAAA,EAJ7F,aAI6F,CAJ/E,CAI+E,EAJ5E,CAI4E,GAJxE,gBAIwE,CAAA;CAArB;AAEnD,KAHd,eAAA,GAGc;EAAM,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,CAAA,GAAA,EAFD,cAEC,EAAA,GAFkB,YAElB,CAF+B,CAE/B,EAFkC,CAElC,CAAA,CAAA,EAAA,GAAA,GAF6C,aAE7C,CAF2D,CAE3D,EAF8D,CAE9D,GAFkE,gBAElE,CAAA;EAAG,CAAA,aAAA,SAAA,OAAA,EAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAvB,aAAuB,CAAT,IAAS,EAAH,CAAG,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,IAAA,EACpB,IADoB,EAAA,GACX,aADW,CACG,CADH,EACM,CADN,GACU,gBADV,CAAA;CAAvB;AACG,KAGH,aAAA,GAHG;EAAuB,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,CAAA,GAAA,EAIP,cAJO,EAAA,GAIY,YAJZ,CAIyB,CAJzB,EAI4B,CAJ5B,CAAA,CAAA,EAIiC,OAJjC,CAIyC,CAJzC,EAI4C,CAJ5C,GAIgD,gBAJhD,CAAA;EAAG,CAAA,aAAA,SAAA,OAAA,EAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAM7B,aAN6B,CAMf,IANe,EAMT,CANS,EAMN,CANM,CAAA,EAAA,GAAA,IAAA,EAO5B,IAP4B,CAAA,EAQpC,OARoC,CAQ5B,CAR4B,EAQzB,CARyB,GAQrB,gBARqB,CAAA;CAAI;AAArB,KAWZ,gBAAA,GAXY,CAAA,MAAA,EAAA;EAAa,SAAA,UAAA,EAAA,MAAA;AAGrC,CAAA,EAAA,GAQ4E,KARhE,CAAA,KAAA,EAQ6E,gBARhE,EAAA,KAAA,EAAA,KAAA,CAAA;AACM,KASnB,oBATmB,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,EASqB,CATrB,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAS4C,cAT5C,EAAA,GAS+D,YAT/D,CAS4E,CAT5E,EAS+E,CAT/E,CAAA;AAAgC,KAWnD,cAAA,GAXmD;EAAG,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,SAa7C,CAb6C,EAAA,EAAA,MAAA,EActD,oBAdsD,CAcjC,CAdiC,EAc9B,CAd8B,EAc3B,CAd2B,CAAA,EAAA,OAAA,CAAA,EAepD,0BAfoD,CAAA,EAgB7D,aAhB6D,CAAA,SAgBtC,CAhBsC,EAAA,EAgBjC,CAhBiC,GAgB7B,gBAhB6B,CAAA;EAAhB,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,EAAA,SAAA,KAAA,CAAA,CAAA,MAAA,EAkBtC,MAlBsC,CAAA,SAkBlB,CAlBkB,EAAA,EAkBb,MAlBa,CAAA,EAAA,MAAA,EAmBtC,oBAnBsC,CAmBjB,CAnBiB,EAmBd,CAnBc,EAmBX,CAnBW,CAAA,EAAA,OAAA,CAAA,EAoBpC,0BApBoC,CAAA,EAqB7C,OArB6C,CAqBrC,MArBqC,CAAA,SAqBjB,CArBiB,EAAA,EAqBZ,CArBY,GAqBR,MArBQ,GAqBC,gBArBD,CAAA,CAAA;EAA6B,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAuBnE,oBAvBmE,CAuB9C,CAvB8C,EAuB3C,CAvB2C,EAuBxC,CAvBwC,CAAA,EAAA,OAAA,CAAA,EAwBjE,0BAxBiE,CAAA,EAAA,CAAA,cAAA,SAyBlD,CAzBkD,EAAA,GAyB5C,MAzB4C,CAAA,SAyBxB,CAzBwB,EAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,EA0BnE,KA1BmE,EAAA,GA2BxE,KA3BwE,SA2B1D,MA3B0D,CAAA,SA2BtC,CA3BsC,EAAA,EAAA,KAAA,OAAA,CAAA,GA4BzE,OA5ByE,CA4BjE,MA5BiE,CAAA,SA4B7C,CA5B6C,EAAA,EA4BxC,CA5BwC,GA4BpC,MA5BoC,GA4B3B,gBA5B2B,CAAA,CAAA,GA6BzE,aA7ByE,CAAA,SA6BlD,CA7BkD,EAAA,EA6B7C,CA7B6C,GA6BzC,gBA7ByC,CAAA;CAAG;AAAI,KAgC1E,kBAAA,GAhC0E;EAAf,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,SAkClD,CAlCkD,EAAA,EAAA,MAAA,EAmC3D,oBAnC2D,CAmCtC,CAnCsC,EAAA,OAAA,EAmC1B,CAnC0B,CAAA,EAAA,OAAA,CAAA,EAoCzD,0BApCyD,CAAA,EAqClE,aArCkE,CAAA,IAAA,EAqC9C,CArC8C,GAqC1C,gBArC0C,CAAA;EAE7C,CAAA,CAAA,EAAA,IAAA,KAAA,EAAA,SAAA,KAAA,CAAA,CAAA,MAAA,EAqCd,MArCc,CAAA,SAqCM,CArCN,EAAA,EAqCW,MArCX,CAAA,EAAA,MAAA,EAsCd,oBAtCc,CAsCO,CAtCP,EAAA,OAAA,EAsCmB,CAtCnB,CAAA,EAAA,OAAA,CAAA,EAuCZ,0BAvCY,CAAA,EAwCrB,OAxCqB,CAwCb,MAxCa,CAAA,IAAA,EAwCI,CAxCJ,GAwCQ,MAxCR,GAwCiB,gBAxCjB,CAAA,CAAA;EAAM,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EA0CpB,oBA1CoB,CA0CC,CA1CD,EAAA,OAAA,EA0Ca,CA1Cb,CAAA,EAAA,OAAA,CAAA,EA2ClB,0BA3CkB,CAAA,EAAA,CAAA,cAAA,SA4CH,CA5CG,EAAA,GA4CG,MA5CH,CAAA,SA4CuB,CA5CvB,EAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,EA6CpB,KA7CoB,EAAA,GA8CzB,KA9CyB,SA8CX,MA9CW,CAAA,SA8CS,CA9CT,EAAA,EAAA,KAAA,OAAA,CAAA,GA+C1B,OA/C0B,CA+ClB,MA/CkB,CAAA,IAAA,EA+CD,CA/CC,GA+CG,MA/CH,GA+CY,gBA/CZ,CAAA,CAAA,GAgD1B,aAhD0B,CAAA,IAAA,EAgDN,CAhDM,GAgDF,gBAhDE,CAAA;CAAG;AAAvB,KAmDA,uBAnDA,CAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,EAmDwC,CAnDxC,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAmD+D,cAnD/D,EAAA,GAmDkF,YAnDlF,CAAA,OAAA,EAmDwG,CAnDxG,CAAA;AACC,KAoDD,iBAAA,GApDC;EACA,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAAA,SAqDQ,CArDR,EAAA,EAAA,MAAA,EAsDD,uBAtDC,CAsDuB,CAtDvB,EAsD0B,CAtD1B,CAAA,EAAA,OAAA,CAAA,EAuDC,0BAvDD,CAAA,EAwDR,aAxDQ,CAAA,SAwDe,CAxDf,EAAA,EAwDoB,CAxDpB,GAwDwB,gBAxDxB,CAAA;EAAG,CAAA,CAAA,EAAA,IAAA,KAAA,EAAA,SAAA,KAAA,CAAA,CAAA,MAAA,EA0DJ,MA1DI,CAAA,SA0DgB,CA1DhB,EAAA,EA0DqB,MA1DrB,CAAA,EAAA,MAAA,EA2DJ,uBA3DI,CA2DoB,CA3DpB,EA2DuB,CA3DvB,CAAA,EAAA,OAAA,CAAA,EA4DF,0BA5DE,CAAA,EA6DX,OA7DW,CA6DH,MA7DG,CAAA,SA6DiB,CA7DjB,EAAA,EA6DsB,CA7DtB,GA6D0B,MA7D1B,GA6DmC,gBA7DnC,CAAA,CAAA;EAAI,CAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EA+DR,uBA/DQ,CA+DgB,CA/DhB,EA+DmB,CA/DnB,CAAA,EAAA,OAAA,CAAA,EAgEN,0BAhEM,CAAA,EAAA,CAAA,cAAA,SAiES,CAjET,EAAA,GAiEe,MAjEf,CAAA,SAiEmC,CAjEnC,EAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,EAkER,KAlEQ,EAAA,GAmEb,KAnEa,SAmEC,MAnED,CAAA,SAmEqB,CAnErB,EAAA,EAAA,KAAA,OAAA,CAAA,GAoEd,OApEc,CAoEN,MApEM,CAAA,SAoEc,CApEd,EAAA,EAoEmB,CApEnB,GAoEuB,MApEvB,GAoEgC,gBApEhC,CAAA,CAAA,GAqEd,aArEc,CAAA,SAqES,CArET,EAAA,EAqEc,CArEd,GAqEkB,gBArElB,CAAA;CAAf;AAAO,KAwEA,wBAxEA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,EAyEH,CAzEG,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EA2EL,cA3EK,EAAA,GA4EP,YA5EO,CAAA,SA4Ee,CA5Ef,EAAA,GA4EqB,CA5ErB,EAAA,EA4E0B,CA5E1B,CAAA;AAGA,KA2EA,kBAAA,GA3EgB;EAEhB,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAoB,EAAA,SA2EX,CA3EW,EAAA,EAAA,MAAA,EA4EpB,wBA5EoB,CA4EK,CA5EL,EA4EQ,CA5ER,EA4EW,CA5EX,CAAA,EAAA,OAAA,CAAA,EA6ElB,0BA7EkB,CAAA,EA8E3B,aA9E2B,CAAA,SA8EJ,CA9EI,EAAA,EA8EC,CA9ED,GA8EK,gBA9EL,CAAA;EAAoB,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,EAAA,SAAA,KAAA,CAAA,CAAA,MAAA,EAgFxC,MAhFwC,CAAA,SAgFpB,CAhFoB,EAAA,EAgFf,MAhFe,CAAA,EAAA,MAAA,EAiFxC,wBAjFwC,CAiFf,CAjFe,EAiFZ,CAjFY,EAiFT,CAjFS,CAAA,EAAA,OAAA,CAAA,EAkFtC,0BAlFsC,CAAA,EAmF/C,OAnF+C,CAmFvC,MAnFuC,CAAA,SAmFnB,CAnFmB,EAAA,EAmFd,CAnFc,GAmFV,MAnFU,GAmFD,gBAnFC,CAAA,CAAA;EAAuB,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,KAAA,CAAA,CAAA,MAAA,EAqF/D,wBArF+D,CAqFtC,CArFsC,EAqFnC,CArFmC,EAqFhC,CArFgC,CAAA,EAAA,OAAA,CAAA,EAsF7D,0BAtF6D,CAAA,EAAA,CAAA,cAAA,SAuF9C,CAvF8C,EAAA,GAuFxC,MAvFwC,CAAA,SAuFpB,CAvFoB,EAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,EAwF/D,KAxF+D,EAAA,GAyFpE,KAzFoE,SAyFtD,MAzFsD,CAAA,SAyFlC,CAzFkC,EAAA,EAAA,KAAA,OAAA,CAAA,GA0FrE,OA1FqE,CA0F7D,MA1F6D,CAAA,SA0FzC,CA1FyC,EAAA,EA0FpC,CA1FoC,GA0FhC,MA1FgC,GA0FvB,gBA1FuB,CAAA,CAAA,GA2FrE,aA3FqE,CAAA,SA2F9C,CA3F8C,EAAA,EA2FzC,CA3FyC,GA2FrC,gBA3FqC,CAAA;CAAgC;KA8FtG,gBA9FyG,CAAA,CAAA,CAAA,GA8FnF,CA9FmF,SA8FzE,aA9FyE,CAAA,KAAA,EAAA,EAAA,OAAA,CAAA,GAAA,CAAA,GAAA,KAAA;KA+FzG,kBA/FyF,CAAA,CAAA,CAAA,GA+FjE,CA/FiE,SA+FvD,aA/FuD,CAAA,OAAA,EAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GAAA,KAAA;AAAY,KAiG9F,eAAA,GAjG8F;EAE9F,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,UAAc,EAAA,SAgGI,aAhGJ,CAgGkB,CAhGlB,EAgGqB,CAhGrB,CAAA,EAAA,CAAA,EAgG4B,aAhG5B,CAgG0C,CAhG1C,EAgG6C,CAhG7C,GAgGiD,gBAhGjD,CAAA;EAEL,CAAA,CAAA,EAAA,CAAA,EAAA,SAAA,KAAA,CAAA,CAAA,UAAA,EAgGL,MAhGK,CAAA,SAgGe,aAhGf,CAgG6B,CAhG7B,EAgGgC,CAhGhC,CAAA,EAAA,EAgGsC,MAhGtC,CAAA,CAAA,EAiGhB,OAjGgB,CAiGR,MAjGQ,CAiGG,CAjGH,EAiGM,CAjGN,GAiGU,MAjGV,GAiGmB,gBAjGnB,CAAA,CAAA;EACY,CAAA,YAAA,SAiGT,aAjGS,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,UAAA,EAkGjB,GAlGiB,CAAA,EAmG5B,aAnG4B,CAmGd,gBAnGc,CAmGG,GAnGH,CAAA,MAAA,CAAA,CAAA,EAmGiB,kBAnGjB,CAmGoC,GAnGpC,CAAA,MAAA,CAAA,CAAA,GAmGmD,gBAnGnD,CAAA;EAAG,CAAA,YAAA,SAoGZ,aApGY,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,SAAA,KAAA,CAAA,CAAA,UAAA,EAqGpB,MArGoB,CAqGT,GArGS,EAqGJ,MArGI,CAAA,CAAA,EAsG/B,OAtG+B,CAsGvB,MAtGuB,CAsGZ,gBAtGY,CAsGK,GAtGL,CAAA,MAAA,CAAA,CAAA,EAsGmB,kBAtGnB,CAsGsC,GAtGtC,CAAA,MAAA,CAAA,CAAA,GAsGqD,MAtGrD,GAsG8D,gBAtG9D,CAAA,CAAA;CAAG;AAA3B,KAyGA,uBAAA,GAzGA;EACE,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,UAAA,EAAA,SAyGgB,aAzGhB,CAyG8B,CAzG9B,EAyGiC,CAzGjC,CAAA,EAAA,CAAA,EAyGwC,aAzGxC,CAyGsD,CAzGtD,EAyGyD,CAzGzD,GAyG6D,gBAzG7D,CAAA;EACc,CAAA,CAAA,EAAA,CAAA,EAAA,SAAA,KAAA,CAAA,CAAA,UAAA,EA0GZ,MA1GY,CAAA,SA0GQ,aA1GR,CA0GsB,CA1GtB,EA0GyB,CA1GzB,CAAA,EAAA,EA0G+B,MA1G/B,CAAA,CAAA,EA2GvB,OA3GuB,CA2Gf,MA3Ge,CA2GJ,CA3GI,EA2GD,CA3GC,GA2GG,MA3GH,GA2GY,gBA3GZ,CAAA,CAAA;EAAK,CAAA,YAAA,SA4GT,aA5GS,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,UAAA,EA6GjB,GA7GiB,CAAA,EA8G5B,aA9G4B,CA8Gd,gBA9Gc,CA8GG,GA9GH,CAAA,MAAA,CAAA,CAAA,EA8GiB,kBA9GjB,CA8GoC,GA9GpC,CAAA,MAAA,CAAA,CAAA,GA8GmD,gBA9GnD,CAAA;EAAI,CAAA,YAAA,SA+Gb,aA/Ga,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,SAAA,KAAA,CAAA,CAAA,UAAA,EAgHrB,MAhHqB,CAgHV,GAhHU,EAgHL,MAhHK,CAAA,CAAA,EAiHhC,OAjHgC,CAiHxB,MAjHwB,CAiHb,gBAjHa,CAiHI,GAjHJ,CAAA,MAAA,CAAA,CAAA,EAiHkB,kBAjHlB,CAiHqC,GAjHrC,CAAA,MAAA,CAAA,CAAA,GAiHoD,MAjHpD,GAiH6D,gBAjH7D,CAAA,CAAA;CAAhC;AAAA;;;;;;;;;;;AAtCL;AAEC;;;;;;;AAID;;;AACkE,cCkgBrD,GDlgBqD,ECkgBhD,cDlgBgD;;;;;;;;;;;;;;;;AAOlE;;;AACkE,cC2hBrD,ID3hBqD,EC2hB/C,eD3hB+C;;;;;;;;;;;;;;;;AAMlE;;;;;;AACkF,cCkkBrE,EDlkBqE,ECkkBjE,aDlkBiE;;;;;;;;;;;;;AAOlF;AAEA;;;;;;;AAEA;AAEqB,cC0uBR,GD1uBQ,EC0uBH,cD1uBG;;;;;;;;;;;;;;;;;;AAQY,cCyzBpB,ODzzBoB,ECyzBX,kBDzzBW;;;;;;;;;;;;;;;AAM1B,cCi5BM,MDj5BN,ECi5Bc,iBDj5Bd;;;;;;;;;;;;;;AAKP;AAEqB,cCs+BR,ODt+BQ,ECs+BC,kBDt+BD;;;;;;;;;;;;;;;;;;;;;;;AAWP,cC+jCD,ID/jCC,EC+jCK,eD/jCL;;;;;;;;;;;;;;;AAKR,cC8rCO,YD9rCP,EC8rCqB,uBD9rCrB;;AAGN;;;;;;AAEA;;;;;;;AAKiC,cCosCpB,SDpsCoB,EAAA,CAAA,MAAA,EAAA;EAAI,UAAA,EAAA,MAAA;CAAhC,EAAA,GCosCsD,MDpsCtD,CAAA,IAAA,ECosCuE,gBDpsCvE,CAAA;;;;;;;;;;;;;;;;;;;;;AAUO,cCguCC,KDhuCD,ECguCQ,gBDhuCR;;;;;;;;;;;;;;;AAMZ;AACS,cCuxCI,QDvxCJ,EAAA,GAAA,GCuxCyB,ODvxCzB,CCuxCiC,MDvxCjC,CAAA,IAAA,ECuxCkD,gBDvxClD,CAAA,CAAA"}
@@ -0,0 +1,226 @@
1
+ import { f as RunnableFx, m as SyncFx } from "./fx.types-CpFKa-Jj.mjs";
2
+ import { n as Layer } from "./layer.types-smjitsoN.mjs";
3
+
4
+ //#region src/log/log.d.ts
5
+ declare namespace log_d_exports {
6
+ export { ContextualLogger, Event, Fields, Level, Logger, console, context, emit, json, layer, withFields, withSpan };
7
+ }
8
+ /**
9
+ * Supported log event levels.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import type { Log } from "@nicolastoulemont/std"
14
+ *
15
+ * const level: Log.Level = "info"
16
+ * ```
17
+ */
18
+ type Level = "debug" | "info" | "warn" | "error";
19
+ /**
20
+ * Structured fields attached to log events.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import type { Log } from "@nicolastoulemont/std"
25
+ *
26
+ * const fields: Log.Fields = { requestId: "req_1" }
27
+ * ```
28
+ */
29
+ type Fields = Record<string, unknown>;
30
+ /**
31
+ * Concrete event delivered to installed logger backends.
32
+ *
33
+ * Events include merged contextual fields, active log spans, trace correlation
34
+ * when a current span exists, and the current fiber id.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * import type { Log } from "@nicolastoulemont/std"
39
+ *
40
+ * const logger: Log.Logger = {
41
+ * log: (event) => {
42
+ * globalThis.console.log(event.level, event.message, event.fields)
43
+ * },
44
+ * }
45
+ * ```
46
+ */
47
+ type Event = {
48
+ readonly timestamp: Date;
49
+ readonly level: Level;
50
+ readonly message: string;
51
+ readonly fields: Fields;
52
+ readonly logSpans: ReadonlyArray<{
53
+ readonly label: string;
54
+ readonly elapsedMs: number;
55
+ }>;
56
+ readonly trace: {
57
+ readonly traceId: string;
58
+ readonly spanId: string;
59
+ readonly spanName: string;
60
+ } | undefined;
61
+ readonly fiberId: number | undefined;
62
+ };
63
+ /**
64
+ * Logger backend installed through `Log.layer`.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * import type { Log } from "@nicolastoulemont/std"
69
+ *
70
+ * const events: Log.Event[] = []
71
+ * const logger: Log.Logger = { log: (event) => events.push(event) }
72
+ * ```
73
+ */
74
+ type Logger = {
75
+ readonly log: (event: Event) => void;
76
+ };
77
+ /**
78
+ * Logger returned by `Log.context`.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { Fx, Log } from "@nicolastoulemont/std"
83
+ *
84
+ * const program = Fx.gen(function* () {
85
+ * const log = yield* Log.context({ requestId: "req_1" })
86
+ * yield* log.info("request received")
87
+ * })
88
+ * ```
89
+ */
90
+ type ContextualLogger = {
91
+ readonly debug: (message: string, fields?: Fields) => SyncFx<void>;
92
+ readonly info: (message: string, fields?: Fields) => SyncFx<void>;
93
+ readonly warn: (message: string, fields?: Fields) => SyncFx<void>;
94
+ readonly error: (message: string, fields?: Fields) => SyncFx<void>;
95
+ };
96
+ type LogContextOptions = {
97
+ readonly logSpan?: string;
98
+ };
99
+ /**
100
+ * Emit one log event at the given level.
101
+ *
102
+ * The event is delivered to every logger installed in the current runtime state.
103
+ * Logger failures are swallowed so logging cannot fail the user program.
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * import { Fx, Log, Provide } from "@nicolastoulemont/std"
108
+ *
109
+ * const program = Provide.layer(Log.layer(Log.console()))(
110
+ * Fx.gen(function* () {
111
+ * yield* Log.emit("info", "request received", { route: "/orders" })
112
+ * return "ok"
113
+ * }),
114
+ * )
115
+ *
116
+ * const exit = Fx.run(program)
117
+ * // => { _tag: "Ok", value: "ok" }
118
+ * ```
119
+ */
120
+ declare const emit: (level: Level, message: string, fields?: Fields) => SyncFx<void>;
121
+ /**
122
+ * Add log fields to the current runtime state and return a contextual logger.
123
+ *
124
+ * Fields are inherited by nested effects and merged into later log events.
125
+ * Passing `logSpan` also adds elapsed-time decoration to later log events.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { Fx, Log } from "@nicolastoulemont/std"
130
+ *
131
+ * const program = Fx.gen(function* () {
132
+ * const log = yield* Log.context({ requestId: "req_1" }, { logSpan: "request" })
133
+ * yield* log.info("loaded user", { userId: "user_1" })
134
+ * return "ok"
135
+ * })
136
+ * ```
137
+ */
138
+ declare const context: (fields: Fields, options?: LogContextOptions) => SyncFx<ContextualLogger>;
139
+ /**
140
+ * Run an effect with additional log fields.
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import { Fx, Log } from "@nicolastoulemont/std"
145
+ *
146
+ * const program = Log.withFields({ service: "checkout" })(
147
+ * Fx.gen(function* () {
148
+ * yield* Log.emit("info", "started")
149
+ * return "ok"
150
+ * }),
151
+ * )
152
+ * ```
153
+ */
154
+ declare const withFields: (fields: Fields) => <A, E, R>(fx: RunnableFx<A, E, R>) => RunnableFx<A, E, R>;
155
+ /**
156
+ * Run an effect with an active log span.
157
+ *
158
+ * Log spans decorate log events with elapsed time. Use `Trace.span` when you
159
+ * need a real tracing span.
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * import { Fx, Log } from "@nicolastoulemont/std"
164
+ *
165
+ * const program = Log.withSpan("load-user")(
166
+ * Fx.gen(function* () {
167
+ * yield* Log.emit("info", "loaded user")
168
+ * return "user_1"
169
+ * }),
170
+ * )
171
+ * ```
172
+ */
173
+ declare const withSpan: (label: string) => <A, E, R>(fx: RunnableFx<A, E, R>) => RunnableFx<A, E, R>;
174
+ /**
175
+ * Create a logger backend that writes events to `globalThis.console`.
176
+ *
177
+ * @example
178
+ * ```ts
179
+ * import { Fx, Log, Provide } from "@nicolastoulemont/std"
180
+ *
181
+ * const program = Provide.layer(Log.layer(Log.console()))(
182
+ * Fx.gen(function* () {
183
+ * yield* Log.emit("info", "hello")
184
+ * }),
185
+ * )
186
+ * ```
187
+ */
188
+ declare const console: () => Logger;
189
+ /**
190
+ * Create a logger backend that writes JSON events to `globalThis.console.log`.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * import { Fx, Log, Provide } from "@nicolastoulemont/std"
195
+ *
196
+ * const program = Provide.layer(Log.layer(Log.json()))(
197
+ * Fx.gen(function* () {
198
+ * yield* Log.emit("info", "hello")
199
+ * }),
200
+ * )
201
+ * ```
202
+ */
203
+ declare const json: () => Logger;
204
+ /**
205
+ * Install one or more logger backends in the current Fx runtime.
206
+ *
207
+ * @example
208
+ * ```ts
209
+ * import { Fx, Log, Provide } from "@nicolastoulemont/std"
210
+ *
211
+ * const events: Log.Event[] = []
212
+ * const program = Provide.layer(Log.layer({ log: (event) => events.push(event) }))(
213
+ * Fx.gen(function* () {
214
+ * yield* Log.emit("info", "stored")
215
+ * return events.length
216
+ * }),
217
+ * )
218
+ *
219
+ * const exit = Fx.run(program)
220
+ * // => { _tag: "Ok", value: 1 }
221
+ * ```
222
+ */
223
+ declare const layer: (loggers: Logger | ReadonlyArray<Logger>) => Layer<never, never, never, true>;
224
+ //#endregion
225
+ export { log_d_exports as t };
226
+ //# sourceMappingURL=index-BfQSp6pV.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BfQSp6pV.d.mts","names":[],"sources":["../src/log/log.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;KA6CY,KAAA;;;;;;;AAAZ;AAYA;AAmBA;;AAEkB,KArBN,MAAA,GAAS,MAqBH,CAAA,MAAA,EAAA,OAAA,CAAA;;;;AA4BlB;AAiBA;;;;;;;;;;AAKC;AA+CD;;AAA6D,KAnGjD,KAAA,GAmGiD;EAAS,SAAA,SAAA,EAlGhD,IAkGgD;EAAM,SAAA,KAAA,EAjG1D,KAiG0D;EAmE/D,SAAA,OA4BX,EAAA,MAAA;EA5B8B,SAAA,MAAA,EAlKb,MAkKa;EAAkB,SAAA,QAAA,EAjK7B,aAiK6B,CAAA;IAA2B,SAAA,KAAA,EAAA,MAAA;IAAP,SAAA,SAAA,EAAA,MAAA;EAAM,CAAA,CAAA;EA6C/D,SAAA,KASiB,EAAA;IARnB,SAAA,OAAA,EAAA,MAAA;IACgB,SAAA,MAAA,EAAA,MAAA;IAAG,SAAA,QAAA,EAAA,MAAA;EAAG,CAAA,GAAA,SAAA;EAAjB,SAAA,OAAA,EAAA,MAAA,GAAA,SAAA;CAAiC;;;;;AA2BjD;;;;;;;AAEuD,KApN3C,MAAA,GAoN2C;EAAjB,SAAA,GAAA,EAAA,CAAA,KAAA,EAnNd,KAmNc,EAAA,GAAA,IAAA;CAAU;AA0BhD;AAoBA;AAyBA;;;;;;;;;;;KA1QY,gBAAA;6CACiC,WAAW;4CACZ,WAAW;4CACX,WAAW;6CACV,WAAW;;KAGnD,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;cA6CQ,cAAe,iCAAiC,WAAS;;;;;;;;;;;;;;;;;;cAmEzD,kBAAmB,kBAAkB,sBAAoB,OAAO;;;;;;;;;;;;;;;;cA6ChE,qBACF,yBACK,WAAW,GAAG,GAAG,OAAK,WAAW,GAAG,GAAG;;;;;;;;;;;;;;;;;;;cA2B1C,2CAEG,WAAW,GAAG,GAAG,OAAK,WAAW,GAAG,GAAG;;;;;;;;;;;;;;;cA0B1C,eAAc;;;;;;;;;;;;;;;cAoBd,YAAW;;;;;;;;;;;;;;;;;;;;cAyBX,iBAAkB,SAAS,cAAc,YAAU"}
@@ -1,7 +1,7 @@
1
- import { f as RunnableFx, m as SyncFx, t as AsyncFx } from "./fx.types-BdN1EWxr.mjs";
2
- import { t as ServiceClass } from "./service-D8mr0wwg.mjs";
3
- import { n as ScopeService, t as ExcludeScope } from "./scope-CuM3CzwG.mjs";
4
- import { a as UnprovidedDeps, i as MergeROut, n as Layer, r as MergeError, t as AllSync } from "./layer.types-BB0MrvLg.mjs";
1
+ import { f as RunnableFx, m as SyncFx, t as AsyncFx } from "./fx.types-CpFKa-Jj.mjs";
2
+ import { t as ServiceClass } from "./service-DIKUYHda.mjs";
3
+ import { n as ScopeService, t as ExcludeScope } from "./scope-BQEFiS_2.mjs";
4
+ import { a as UnprovidedDeps, i as MergeROut, n as Layer, r as MergeError, t as AllSync } from "./layer.types-smjitsoN.mjs";
5
5
 
6
6
  //#region src/layer/layer.d.ts
7
7
  declare namespace layer_d_exports {
@@ -242,4 +242,4 @@ declare const provide: typeof layerProvide;
242
242
  declare const merge: typeof layerMerge;
243
243
  //#endregion
244
244
  export { layer_d_exports as t };
245
- //# sourceMappingURL=index-uE3S3Krx.d.mts.map
245
+ //# sourceMappingURL=index-Bo6pkkVO.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-uE3S3Krx.d.mts","names":[],"sources":["../src/layer/layer.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAuCuG;;;;;;;;;;iBAuE9F,OACsB,CAAA,CAAA,CAAA,CAAA,OAAA,EADF,YACE,CADW,CACX,CAAA,CAAA,EAAA;EACV,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EADR,MACQ,CADD,CACC,EADE,CACF,EADK,CACL,CAAA,CAAA,EADU,KACV,CADoB,CACpB,EADuB,CACvB,EAD0B,CAC1B,EAAA,IAAA,CAAA;EAAG,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAX,OAAW,CAAH,CAAG,EAAA,CAAA,EAAG,CAAH,CAAA,CAAA,EAAQ,KAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAAA,KAAA,CAAA;EAAG,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EACd,UADc,CACH,CADG,EACA,CADA,EACG,CADH,CAAA,CAAA,EACQ,KADR,CACkB,CADlB,EACqB,CADrB,EACwB,CADxB,CAAA;CAAd;;;;;;;;;;;;;;AAC+B;;;;;;;;;;;;;;;iBAgFnC,WAEkB,CAAA,CAAA,CAAA,CAAA,OAAA,EAFM,YAEN,CAFmB,CAEnB,CAAA,CAAA,EAAA;EAAI,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EADlB,MACkB,CADX,CACW,EADR,CACQ,EADL,CACK,GADD,YACC,CAAA,CAAA,EADe,KACf,CADyB,CACzB,EAD4B,CAC5B,EAD+B,YAC/B,CAD4C,CAC5C,CAAA,EAAA,IAAA,CAAA;EAAlB,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,GAAkB,YAAlB,CAAA,CAAA,EAAkC,KAAlC,CAA4C,CAA5C,EAA+C,CAA/C,EAAkD,YAAlD,CAA+D,CAA/D,CAAA,EAAA,KAAA,CAAA;EAA4C,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAC5C,UAD4C,CACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,GACvB,YADuB,CAAA,CAAA,EACP,KADO,CACG,CADH,EACM,CADN,EACS,YADT,CACsB,CADtB,CAAA,CAAA;CAAG;;;;;;;;;;;;;;;AACD;;;;;;;;;iBA4FlD,YAIqB,CAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,OAAA,CAAA,CAAA,IAAA,EAHtB,KAGsB,CAHZ,QAGY,EAHF,KAGE,EAHK,OAGL,EAHc,QAGd,CAAA,CAAA,EAAA;EAAK,CAAA,IAAA,EAAA,CAAA,EAAA,YADX,QACW,EAAA,kBAAA,OAAA,CAAA,CAAA,KAAA,EAAxB,KAAwB,CAAd,IAAc,EAAR,CAAQ,EAAL,GAAK,EAAA,SAAA,CAAA,CAAA,EAC9B,KAD8B,CACpB,IADoB,GACb,QADa,EACH,CADG,GACC,KADD,EACQ,OADR,EACiB,SADjB,SAAA,IAAA,GAC0C,QAD1C,GAAA,KAAA,CAAA;CAAxB;;;;;;;;;;AACG;;;;;;;;;;;;;AA6Pd;iBAvHS,UA7XiC,CAAA,UA6XZ,KA7XY,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,GAAA,MAAA,EA8X7B,CA9X6B,CAAA,EA+XvC,KA/XuC,CA+X7B,SA/X6B,CA+XnB,CA/XmB,CAAA,EA+Xf,UA/Xe,CA+XJ,CA/XI,CAAA,EA+XA,cA/XA,CA+Xe,CA/Xf,CAAA,EA+XmB,OA/XnB,CA+X2B,CA/X3B,CAAA,CAAA;;;;;;AAogB1C;;;;;AAoBA;AA6BA;AAwBA;AAwBA;;cAjHa,iBApfgB,aAAa,UAAU,MAAI,MAAU;;;;;;;;;;;;;;;cAogBrD,gBA7ee,MAAI,aAAiB;;;;;;;;;;;;;;;;;;;cAigBpC,WAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6BF,eAAM;;;;;;;;;;;;;;;;;;;;;;;cAwBN,gBAAO;;;;;;;;;;;;;;;;;;;;;;;cAwBP,cAAK"}
1
+ {"version":3,"file":"index-Bo6pkkVO.d.mts","names":[],"sources":["../src/layer/layer.ts"],"sourcesContent":[],"mappings":"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"}
@@ -456,4 +456,4 @@ declare const sortWith: {
456
456
  declare const sortBy: <A>(...orders: readonly Order$1<A>[]) => (input: Iterable<A>) => A[];
457
457
  //#endregion
458
458
  export { order_d_exports as t };
459
- //# sourceMappingURL=index-D8rDE60Y.d.mts.map
459
+ //# sourceMappingURL=index-BsCrdweM.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BsCrdweM.d.mts","names":[],"sources":["../src/order/order.types.ts","../src/order/order.ts"],"sourcesContent":[],"mappings":"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"}
@@ -122,4 +122,4 @@ declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(arg: A, f1: (
122
122
  declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(arg: A, f1: (arg: A) => B, f2: (arg: Awaited<B>) => C, f3: (arg: Awaited<C>) => D, f4: (arg: Awaited<D>) => E, f5: (arg: Awaited<E>) => F, f6: (arg: Awaited<F>) => G, f7: (arg: Awaited<G>) => H, f8: (arg: Awaited<H>) => I, f9: (arg: Awaited<I>) => J, f10: (arg: Awaited<J>) => K, f11: (arg: Awaited<K>) => L, f12: (arg: Awaited<L>) => M, f13: (arg: Awaited<M>) => N, f14: (arg: Awaited<N>) => O, f15: (arg: Awaited<O>) => P): PipeReturn<[typeof f1, typeof f2, typeof f3, typeof f4, typeof f5, typeof f6, typeof f7, typeof f8, typeof f9, typeof f10, typeof f11, typeof f12, typeof f13, typeof f14, typeof f15], A>;
123
123
  //#endregion
124
124
  export { flow as n, pipe as t };
125
- //# sourceMappingURL=index-D7mFNjot.d.mts.map
125
+ //# sourceMappingURL=index-BtPFPfja.d.mts.map