@fncts/io 0.0.34 → 0.0.36

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 (230) hide show
  1. package/Fiber/FiberRuntime.d.ts +7 -7
  2. package/Fiber/constructors.d.ts +5 -0
  3. package/IO/api/all.d.ts +41 -0
  4. package/IO/api/concurrency.d.ts +11 -0
  5. package/IO/api/interrupt.d.ts +1 -1
  6. package/IO/api/raceWith.d.ts +2 -1
  7. package/IO/api.d.ts +7 -2
  8. package/IO/definition.d.ts +103 -127
  9. package/IO.d.ts +1 -0
  10. package/Push/api.d.ts +86 -36
  11. package/Push/definition.d.ts +28 -13
  12. package/Push/internal.d.ts +7 -11
  13. package/RefSubject/Atomic.d.ts +8 -11
  14. package/RefSubject/Synchronized/definition.d.ts +4 -6
  15. package/RefSubject/api.d.ts +0 -1
  16. package/RefSubject/definition.d.ts +6 -8
  17. package/STM/definition.d.ts +19 -2
  18. package/Sink/api.d.ts +24 -24
  19. package/Subject/Atomic.d.ts +4 -6
  20. package/Subject/definition.d.ts +2 -2
  21. package/_cjs/Channel/api/runScoped.cjs +1 -1
  22. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  23. package/_cjs/Channel/api.cjs +2 -2
  24. package/_cjs/Channel/api.cjs.map +1 -1
  25. package/_cjs/Fiber/FiberRuntime.cjs +110 -98
  26. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  27. package/_cjs/Fiber/constructors.cjs +10 -2
  28. package/_cjs/Fiber/constructors.cjs.map +1 -1
  29. package/_cjs/Future/api.cjs +1 -1
  30. package/_cjs/Future/api.cjs.map +1 -1
  31. package/_cjs/IO/api/all.cjs +33 -0
  32. package/_cjs/IO/api/all.cjs.map +1 -0
  33. package/_cjs/IO/api/asyncIO.cjs +1 -1
  34. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  35. package/_cjs/IO/api/bracketExit.cjs +1 -1
  36. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  37. package/_cjs/IO/api/concurrency.cjs +25 -4
  38. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  39. package/_cjs/IO/api/disconnect.cjs +1 -1
  40. package/_cjs/IO/api/disconnect.cjs.map +1 -1
  41. package/_cjs/IO/api/foreachConcurrent.cjs +1 -1
  42. package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
  43. package/_cjs/IO/api/foreachExec.cjs +1 -1
  44. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  45. package/_cjs/IO/api/forkIn.cjs +1 -1
  46. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  47. package/_cjs/IO/api/forkScoped.cjs +1 -1
  48. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  49. package/_cjs/IO/api/fulfill.cjs +1 -1
  50. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  51. package/_cjs/IO/api/interrupt.cjs +18 -6
  52. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  53. package/_cjs/IO/api/raceWith.cjs +4 -4
  54. package/_cjs/IO/api/raceWith.cjs.map +1 -1
  55. package/_cjs/IO/api/timeout.cjs +8 -5
  56. package/_cjs/IO/api/timeout.cjs.map +1 -1
  57. package/_cjs/IO/api/zipConcurrent.cjs +1 -1
  58. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  59. package/_cjs/IO/api.cjs +78 -20
  60. package/_cjs/IO/api.cjs.map +1 -1
  61. package/_cjs/IO/definition.cjs +14 -191
  62. package/_cjs/IO/definition.cjs.map +1 -1
  63. package/_cjs/IO.cjs +11 -0
  64. package/_cjs/IO.cjs.map +1 -1
  65. package/_cjs/Layer/MemoMap.cjs +1 -1
  66. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  67. package/_cjs/Layer/api.cjs.map +1 -1
  68. package/_cjs/Push/api.cjs +238 -168
  69. package/_cjs/Push/api.cjs.map +1 -1
  70. package/_cjs/Push/definition.cjs +12 -13
  71. package/_cjs/Push/definition.cjs.map +1 -1
  72. package/_cjs/Push/internal.cjs +37 -29
  73. package/_cjs/Push/internal.cjs.map +1 -1
  74. package/_cjs/RefSubject/Atomic.cjs +15 -19
  75. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  76. package/_cjs/RefSubject/Synchronized/definition.cjs +9 -10
  77. package/_cjs/RefSubject/Synchronized/definition.cjs.map +1 -1
  78. package/_cjs/RefSubject/api.cjs +5 -6
  79. package/_cjs/RefSubject/api.cjs.map +1 -1
  80. package/_cjs/RefSubject/definition.cjs.map +1 -1
  81. package/_cjs/STM/api/atomically.cjs +1 -1
  82. package/_cjs/STM/api/atomically.cjs.map +1 -1
  83. package/_cjs/STM/api.cjs +2 -2
  84. package/_cjs/STM/api.cjs.map +1 -1
  85. package/_cjs/STM/definition.cjs +1 -1
  86. package/_cjs/STM/definition.cjs.map +1 -1
  87. package/_cjs/ScopedRef/api.cjs +2 -2
  88. package/_cjs/ScopedRef/api.cjs.map +1 -1
  89. package/_cjs/Semaphore.cjs +1 -1
  90. package/_cjs/Semaphore.cjs.map +1 -1
  91. package/_cjs/Sink/api.cjs +13 -13
  92. package/_cjs/Sink/api.cjs.map +1 -1
  93. package/_cjs/Subject/Atomic.cjs +4 -5
  94. package/_cjs/Subject/Atomic.cjs.map +1 -1
  95. package/_cjs/TReentrantLock/api.cjs +2 -2
  96. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  97. package/_cjs/TSemaphore/api.cjs +1 -1
  98. package/_cjs/TSemaphore/api.cjs.map +1 -1
  99. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +12 -17
  100. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
  101. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +12 -17
  102. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
  103. package/_cjs/collection/immutable/Conc/filterIO.cjs +2 -12
  104. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
  105. package/_cjs/collection/immutable/Conc/mapIO.cjs +3 -9
  106. package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
  107. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +11 -27
  108. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
  109. package/_mjs/Channel/api/runScoped.mjs +1 -1
  110. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  111. package/_mjs/Channel/api.mjs +2 -2
  112. package/_mjs/Channel/api.mjs.map +1 -1
  113. package/_mjs/Fiber/FiberRuntime.mjs +111 -100
  114. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  115. package/_mjs/Fiber/constructors.mjs +7 -1
  116. package/_mjs/Fiber/constructors.mjs.map +1 -1
  117. package/_mjs/Future/api.mjs +1 -1
  118. package/_mjs/Future/api.mjs.map +1 -1
  119. package/_mjs/IO/api/all.mjs +24 -0
  120. package/_mjs/IO/api/all.mjs.map +1 -0
  121. package/_mjs/IO/api/asyncIO.mjs +1 -1
  122. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  123. package/_mjs/IO/api/bracketExit.mjs +1 -1
  124. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  125. package/_mjs/IO/api/concurrency.mjs +19 -2
  126. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  127. package/_mjs/IO/api/disconnect.mjs +1 -1
  128. package/_mjs/IO/api/disconnect.mjs.map +1 -1
  129. package/_mjs/IO/api/foreachConcurrent.mjs +1 -1
  130. package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
  131. package/_mjs/IO/api/foreachExec.mjs +1 -1
  132. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  133. package/_mjs/IO/api/forkIn.mjs +1 -1
  134. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  135. package/_mjs/IO/api/forkScoped.mjs +1 -1
  136. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  137. package/_mjs/IO/api/fulfill.mjs +1 -1
  138. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  139. package/_mjs/IO/api/interrupt.mjs +19 -7
  140. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  141. package/_mjs/IO/api/raceWith.mjs +4 -4
  142. package/_mjs/IO/api/raceWith.mjs.map +1 -1
  143. package/_mjs/IO/api/timeout.mjs +8 -5
  144. package/_mjs/IO/api/timeout.mjs.map +1 -1
  145. package/_mjs/IO/api/zipConcurrent.mjs +1 -1
  146. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  147. package/_mjs/IO/api.mjs +78 -23
  148. package/_mjs/IO/api.mjs.map +1 -1
  149. package/_mjs/IO/definition.mjs +12 -181
  150. package/_mjs/IO/definition.mjs.map +1 -1
  151. package/_mjs/IO.mjs +1 -0
  152. package/_mjs/IO.mjs.map +1 -1
  153. package/_mjs/Layer/MemoMap.mjs +1 -1
  154. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  155. package/_mjs/Layer/api.mjs.map +1 -1
  156. package/_mjs/Push/api.mjs +223 -166
  157. package/_mjs/Push/api.mjs.map +1 -1
  158. package/_mjs/Push/definition.mjs +9 -10
  159. package/_mjs/Push/definition.mjs.map +1 -1
  160. package/_mjs/Push/internal.mjs +33 -22
  161. package/_mjs/Push/internal.mjs.map +1 -1
  162. package/_mjs/RefSubject/Atomic.mjs +15 -19
  163. package/_mjs/RefSubject/Atomic.mjs.map +1 -1
  164. package/_mjs/RefSubject/Synchronized/definition.mjs +9 -10
  165. package/_mjs/RefSubject/Synchronized/definition.mjs.map +1 -1
  166. package/_mjs/RefSubject/api.mjs +6 -7
  167. package/_mjs/RefSubject/api.mjs.map +1 -1
  168. package/_mjs/RefSubject/definition.mjs.map +1 -1
  169. package/_mjs/STM/api/atomically.mjs +1 -1
  170. package/_mjs/STM/api/atomically.mjs.map +1 -1
  171. package/_mjs/STM/api.mjs +2 -2
  172. package/_mjs/STM/api.mjs.map +1 -1
  173. package/_mjs/STM/definition.mjs +1 -1
  174. package/_mjs/STM/definition.mjs.map +1 -1
  175. package/_mjs/ScopedRef/api.mjs +2 -2
  176. package/_mjs/ScopedRef/api.mjs.map +1 -1
  177. package/_mjs/Semaphore.mjs +1 -1
  178. package/_mjs/Semaphore.mjs.map +1 -1
  179. package/_mjs/Sink/api.mjs +10 -10
  180. package/_mjs/Sink/api.mjs.map +1 -1
  181. package/_mjs/Subject/Atomic.mjs +4 -5
  182. package/_mjs/Subject/Atomic.mjs.map +1 -1
  183. package/_mjs/TReentrantLock/api.mjs +2 -2
  184. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  185. package/_mjs/TSemaphore/api.mjs +1 -1
  186. package/_mjs/TSemaphore/api.mjs.map +1 -1
  187. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +12 -17
  188. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
  189. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +12 -17
  190. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
  191. package/_mjs/collection/immutable/Conc/filterIO.mjs +2 -12
  192. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
  193. package/_mjs/collection/immutable/Conc/mapIO.mjs +3 -9
  194. package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
  195. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +11 -27
  196. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
  197. package/_src/Channel/api.ts +3 -3
  198. package/_src/Fiber/FiberRuntime.ts +76 -75
  199. package/_src/Fiber/constructors.ts +5 -0
  200. package/_src/IO/api/all.ts +64 -0
  201. package/_src/IO/api/concurrency.ts +33 -0
  202. package/_src/IO/api/foreachExec.ts +2 -2
  203. package/_src/IO/api/interrupt.ts +20 -7
  204. package/_src/IO/api/raceWith.ts +4 -2
  205. package/_src/IO/api/timeout.ts +21 -1
  206. package/_src/IO/api.ts +79 -27
  207. package/_src/IO/definition.ts +155 -200
  208. package/_src/IO.ts +1 -0
  209. package/_src/Layer/api.ts +0 -1
  210. package/_src/Push/api.ts +305 -304
  211. package/_src/Push/definition.ts +19 -17
  212. package/_src/Push/internal.ts +63 -31
  213. package/_src/RefSubject/Atomic.ts +16 -22
  214. package/_src/RefSubject/Synchronized/definition.ts +6 -9
  215. package/_src/RefSubject/api.ts +9 -12
  216. package/_src/RefSubject/definition.ts +6 -8
  217. package/_src/STM/api.ts +0 -5
  218. package/_src/STM/definition.ts +8 -2
  219. package/_src/Sink/api.ts +9 -9
  220. package/_src/Subject/Atomic.ts +6 -8
  221. package/_src/Subject/definition.ts +2 -2
  222. package/_src/collection/immutable/Conc/dropUntilIO.ts +18 -15
  223. package/_src/collection/immutable/Conc/dropWhileIO.ts +18 -17
  224. package/_src/collection/immutable/Conc/filterIO.ts +1 -11
  225. package/_src/collection/immutable/Conc/mapIO.ts +2 -9
  226. package/_src/collection/immutable/Conc/takeWhileIO.ts +19 -28
  227. package/collection/immutable/Conc/filterIO.d.ts +1 -1
  228. package/collection/immutable/Conc/mapIO.d.ts +1 -1
  229. package/collection/immutable/Conc/takeWhileIO.d.ts +1 -1
  230. package/package.json +2 -2
@@ -1,5 +1,4 @@
1
1
  import { IO } from "@fncts/io/IO/definition";
2
- import { Scope } from "@fncts/io/Scope/definition";
3
2
  import { Cause } from "@fncts/base/data/Cause/definition";
4
3
  export declare const PushVariance: unique symbol;
5
4
  export type PushVariance = typeof PushVariance;
@@ -10,32 +9,48 @@ export type PushTypeId = typeof PushTypeId;
10
9
  * @tsplus companion fncts.io.PushOps
11
10
  */
12
11
  export declare class Push<R, E, A> {
13
- readonly run: <R1>(emitter: Emitter<R1, E, A>) => IO<R | R1 | Scope, never, unknown>;
12
+ readonly run: <R1>(emitter: Sink<R1, E, A>) => IO<R | R1, never, unknown>;
14
13
  readonly [PushTypeId]: PushTypeId;
15
14
  [PushVariance]: {
16
15
  readonly _R: (_: never) => R;
17
16
  readonly _E: (_: never) => E;
18
17
  readonly _A: (_: never) => A;
19
18
  };
20
- constructor(run: <R1>(emitter: Emitter<R1, E, A>) => IO<R | R1 | Scope, never, unknown>);
19
+ constructor(run: <R1>(emitter: Sink<R1, E, A>) => IO<R | R1, never, unknown>);
20
+ }
21
+ export declare namespace Push {
22
+ type EnvironmentOf<X> = [X] extends [{
23
+ [PushVariance]: {
24
+ readonly _R: (_: never) => infer R;
25
+ };
26
+ }] ? R : never;
27
+ type ErrorOf<X> = [X] extends [{
28
+ [PushVariance]: {
29
+ readonly _E: (_: never) => infer E;
30
+ };
31
+ }] ? E : never;
32
+ type ValueOf<X> = [X] extends [{
33
+ [PushVariance]: {
34
+ readonly _A: (_: never) => infer A;
35
+ };
36
+ }] ? A : never;
21
37
  }
22
38
  /**
23
- * @tsplus type fncts.io.Push.Emitter
24
- * @tsplus companion fncts.io.Push.EmitterOps
39
+ * @tsplus type fncts.io.Push.Sink
40
+ * @tsplus companion fncts.io.Push.SinkOps
25
41
  */
26
- export declare class Emitter<R, E, A> {
27
- readonly emit: (value: A) => IO<R, never, unknown>;
28
- readonly failCause: (cause: Cause<E>) => IO<R, never, void>;
29
- readonly end: IO<R, never, void>;
30
- constructor(emit: (value: A) => IO<R, never, unknown>, failCause: (cause: Cause<E>) => IO<R, never, void>, end: IO<R, never, void>);
42
+ export declare class Sink<R, E, A> {
43
+ readonly event: (value: A) => IO<R, never, void>;
44
+ readonly error: (cause: Cause<E>) => IO<R, never, void>;
45
+ constructor(event: (value: A) => IO<R, never, void>, error: (cause: Cause<E>) => IO<R, never, void>);
31
46
  }
32
47
  /**
33
48
  * @tsplus static fncts.io.PushOps __call
34
49
  * @tsplus location "@fncts/io/Push/definition"
35
50
  */
36
- export declare function makePush<R, E, A>(run: <R1>(emitter: Emitter<R1, E, A>) => IO<R | R1 | Scope, never, unknown>): Push<R, E, A>;
51
+ export declare function makePush<R, E, A>(run: <R1>(sink: Sink<R1, E, A>) => IO<R | R1, never, unknown>): Push<R, E, A>;
37
52
  /**
38
- * @tsplus static fncts.io.Push.EmitterOps __call
53
+ * @tsplus static fncts.io.Push.SinkOps __call
39
54
  * @tsplus location "@fncts/io/Push/definition"
40
55
  */
41
- export declare function makeEmitter<R, E, A>(emit: (value: A) => IO<R, never, unknown>, failCause: (cause: Cause<E>) => IO<R, never, unknown>, end: IO<R, never, unknown>): Emitter<R, E, A>;
56
+ export declare function makeSink<R, E, A>(value: (value: A) => IO<R, never, unknown>, error: (cause: Cause<E>) => IO<R, never, unknown>): Sink<R, E, A>;
@@ -1,11 +1,7 @@
1
- import { CountdownLatch } from "@fncts/io/CountdownLatch";
2
- import { IO } from "@fncts/io/IO/definition";
3
- export declare function withCountdownLatch<R, E, A, R1, E1, B>(n: number, f: (latch: CountdownLatch) => IO<R, E, A>, onEnd: IO<R1, E1, B>): IO<R | R1, E | E1, B>;
4
- export declare const EarlyExitTypeId: unique symbol;
5
- export type EarlyExitTypeId = typeof EarlyExitTypeId;
6
- export declare class EarlyExit {
7
- readonly [EarlyExitTypeId]: EarlyExitTypeId;
8
- }
9
- export declare function isEarlyExit(u: unknown): u is EarlyExit;
10
- export declare const earlyExit: import("../IO").UIO<never>;
11
- export declare function onEarlyExit<R1, E1, B>(onEarlyExit: IO<R1, E1, B>): <R, E, A>(self: import("../IO").IO<R, E, A>) => import("../IO").IO<R1 | R, E1 | E, B | A>;
1
+ import { IO, URIO } from "@fncts/io/IO/definition";
2
+ import { Fiber } from "@fncts/io/Fiber/definition";
3
+ import type { RuntimeFiber } from "@fncts/io/Fiber";
4
+ export declare function withScopedFork<R, E, A>(f: (fork: <R, E, A>(io: IO<R, E, A>) => IO<R, never, RuntimeFiber<E, A>>) => IO<R, E, A>): IO<R, E, A>;
5
+ export declare function withSwitch<R, E, A>(f: (fork: <R>(io: URIO<R, void>) => URIO<R, void>) => IO<R, E, A>): import("../IO").IO<R, E, void>;
6
+ export declare function withUnboundedConcurrency<R, E, A>(f: (fork: <R>(io: URIO<R, void>) => URIO<R, RuntimeFiber<never, void>>) => IO<R, E, A>): import("../IO").IO<R, E, void>;
7
+ export declare function withExhaust<R, E, A>(f: (fork: <R>(io: URIO<R, void>) => URIO<R, void>) => IO<R, E, A>): import("../IO").IO<R, E, void>;
@@ -1,8 +1,7 @@
1
1
  import { Just } from "@fncts/base/data/Maybe/definition";
2
2
  import { IO } from "@fncts/io/IO/definition";
3
- import { Scope } from "@fncts/io/Scope/definition";
4
3
  import { Cause } from "@fncts/base/data/Cause/definition";
5
- import type { Emitter } from "@fncts/io/Push";
4
+ import type { Sink } from "@fncts/io/Push";
6
5
  import { Hold } from "@fncts/io/Push";
7
6
  import { Atomic } from "@fncts/io/Ref";
8
7
  import { RefSubjectInternal } from "@fncts/io/RefSubject/definition";
@@ -15,19 +14,17 @@ export declare class AtomicRefSubject<E, A> extends RefSubjectInternal<never, E,
15
14
  get get(): import("../IO").UIO<A>;
16
15
  set(value: A, __tsplusTrace?: string): import("../IO").IO<never, never, void>;
17
16
  modify<E, A, B>(this: AtomicRefSubject<E, A>, f: (a: A) => readonly [B, A], __tsplusTrace?: string): IO<never, never, B>;
18
- run<R>(emitter: Emitter<R, E, A>): IO<Scope | R, never, unknown>;
19
- emit(value: A): IO<never, never, void>;
20
- failCause(cause: Cause<E>): IO<never, never, void>;
21
- end: IO<never, never, void>;
22
- unsafeEmit(value: A): void;
23
- unsafeFailCause(cause: Cause<E>): void;
24
- unsafeEnd(): void;
17
+ run<R>(emitter: Sink<R, E, A>): IO<R, never, unknown>;
18
+ event(value: A): IO<never, never, void>;
19
+ error(cause: Cause<E>): IO<never, never, void>;
20
+ unsafeEvent(value: A): void;
21
+ unsafeError(cause: Cause<E>): void;
25
22
  get unsafeGet(): A;
26
23
  }
27
24
  declare class AtomicEmitRef<E, A> extends Atomic<A> {
28
25
  readonly ref: Atomic<A>;
29
- readonly emitter: Emitter<never, E, A>;
30
- constructor(ref: Atomic<A>, emitter: Emitter<never, E, A>);
26
+ readonly sink: Sink<never, E, A>;
27
+ constructor(ref: Atomic<A>, sink: Sink<never, E, A>);
31
28
  get get(): import("../IO").UIO<A>;
32
29
  get unsafeGet(): A;
33
30
  unsafeSet(value: A): void;
@@ -1,8 +1,7 @@
1
1
  import { TSemaphore } from "@fncts/io/TSemaphore/definition";
2
2
  import type { RefSubject } from "../definition.js";
3
3
  import type { Cause } from "@fncts/base/data/Cause";
4
- import type { Emitter } from "@fncts/io/Push";
5
- import type { Scope } from "@fncts/io/Scope";
4
+ import type { Sink } from "@fncts/io/Push";
6
5
  import { IO } from "@fncts/io/IO";
7
6
  import { RefSubjectInternal } from "../definition.js";
8
7
  export declare const SynchronizedRefSubjectTypeId: unique symbol;
@@ -30,12 +29,11 @@ export declare class SynchronizedRefSubjectInternal<R, E, A, B> extends RefSubje
30
29
  constructor(semaphore: TSemaphore, ref: RefSubjectInternal<R, E, A, B>);
31
30
  get get(): IO<R, never, B>;
32
31
  set(a: A, __tsplusTrace?: string | undefined): IO<R, never, void>;
33
- run<R1>(emitter: Emitter<R1, E, B>): IO<Scope | R | R1, never, void>;
32
+ run<R1>(emitter: Sink<R1, E, B>): IO<R | R1, never, void>;
34
33
  modify<C>(f: (b: B) => readonly [C, A], __tsplusTrace?: string | undefined): IO<R, never, C>;
35
34
  modifyIO<R1, E1, C>(f: (b: B) => IO<R1, E1, readonly [C, A]>, __tsplusTrace?: string): IO<R | R1, E1, C>;
36
- emit(value: A): IO<R, never, void>;
37
- failCause(cause: Cause<E>): IO<R, never, void>;
38
- end: IO<R, never, void>;
35
+ event(value: A): IO<R, never, void>;
36
+ error(cause: Cause<E>): IO<R, never, void>;
39
37
  withPermit<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
40
38
  get unsafeGet(): B;
41
39
  }
@@ -1,6 +1,5 @@
1
1
  import { Lazy } from "@fncts/base/data/function/definition";
2
2
  import { UIO, IO } from "@fncts/io/IO/definition";
3
- import { Scope } from "@fncts/io/Scope/definition";
4
3
  import { Cause } from "@fncts/base/data/Cause/definition";
5
4
  import { Maybe } from "@fncts/base/data/Maybe/definition";
6
5
  import { RefSubject } from "./definition.js";
@@ -1,7 +1,6 @@
1
1
  import { IO } from "@fncts/io/IO/definition";
2
- import { Scope } from "@fncts/io/Scope/definition";
3
2
  import { Cause } from "@fncts/base/data/Cause/definition";
4
- import type { Emitter } from "../Push.js";
3
+ import type { Sink } from "../Push.js";
5
4
  import type { Push } from "../Push.js";
6
5
  import type { ModifiableRef, ReadableRef, WritableRef } from "../Ref.js";
7
6
  import type { SynchronizedRefSubject } from "@fncts/io/RefSubject/Synchronized/definition";
@@ -11,7 +10,7 @@ import { RefVariance } from "../Ref.js";
11
10
  /**
12
11
  * @tsplus type fncts.io.Push.RefSubject
13
12
  */
14
- export interface RefSubject<out R, in out E, in A, out B> extends Push<R, E, B>, Emitter<R, E, A> {
13
+ export interface RefSubject<out R, in out E, in A, out B> extends Push<R, E, B>, Sink<R, E, A> {
15
14
  }
16
15
  /**
17
16
  * @tsplus type fncts.io.Push.RefSubjectOps
@@ -22,7 +21,7 @@ export declare const RefSubject: RefSubjectOps;
22
21
  export declare namespace RefSubject {
23
22
  type Synchronized<R, E, A, B> = SynchronizedRefSubject<R, E, A, B>;
24
23
  }
25
- export declare abstract class RefSubjectInternal<R, E, A, B> implements ReadableRef<R, never, B>, WritableRef<R, never, A>, ModifiableRef<R, R, never, never, A, B>, Push<R, E, B>, Emitter<R, E, A> {
24
+ export declare abstract class RefSubjectInternal<R, E, A, B> implements ReadableRef<R, never, B>, WritableRef<R, never, A>, ModifiableRef<R, R, never, never, A, B>, Push<R, E, B>, Sink<R, E, A> {
26
25
  readonly [PushTypeId]: PushTypeId;
27
26
  [RefVariance]: {
28
27
  readonly _RA: (_: never) => R;
@@ -40,10 +39,9 @@ export declare abstract class RefSubjectInternal<R, E, A, B> implements Readable
40
39
  abstract get get(): IO<R, never, B>;
41
40
  abstract set(value: A): IO<R, never, void>;
42
41
  abstract modify<C>(f: (b: B) => readonly [C, A], __tsplusTrace?: string): IO<R, never, C>;
43
- abstract run<R1>(emitter: Emitter<R1, E, B>): IO<Scope | R | R1, never, void>;
44
- abstract failCause(cause: Cause<E>): IO<R, never, void>;
45
- abstract emit(value: A): IO<R, never, void>;
46
- abstract end: IO<R, never, void>;
42
+ abstract run<R1>(emitter: Sink<R1, E, B>): IO<R | R1, never, void>;
43
+ abstract error(cause: Cause<E>): IO<R, never, void>;
44
+ abstract event(value: A): IO<R, never, void>;
47
45
  abstract get unsafeGet(): B;
48
46
  }
49
47
  /**
@@ -2,7 +2,7 @@ import { FiberId } from "@fncts/base/data/FiberId/definition";
2
2
  import { Environment } from "@fncts/base/data/Environment/definition";
3
3
  import type { Journal } from "./internal/Journal.js";
4
4
  import type { _A, _E, _R } from "@fncts/base/types";
5
- import { IOOpCode, IOTypeId, IOVariance } from "@fncts/io/IO/definition";
5
+ import { IOTag, IOTypeId, IOVariance } from "@fncts/io/IO/definition";
6
6
  export declare const enum STMTag {
7
7
  Effect = "Effect",
8
8
  OnFailure = "OnFailure",
@@ -22,7 +22,7 @@ export type STMTypeId = typeof STMTypeId;
22
22
  */
23
23
  export declare abstract class STM<R, E, A> {
24
24
  readonly [IOTypeId]: IOTypeId;
25
- readonly _tag = IOOpCode.Commit;
25
+ readonly _tag = IOTag.Commit;
26
26
  readonly trace?: string;
27
27
  readonly [STMTypeId]: STMTypeId;
28
28
  [IOVariance]: {
@@ -36,6 +36,23 @@ export declare abstract class STM<R, E, A> {
36
36
  _A: () => A;
37
37
  };
38
38
  }
39
+ export declare namespace STM {
40
+ type EnvironmentOf<X> = [X] extends [{
41
+ [STMVariance]: {
42
+ _R: () => infer R;
43
+ };
44
+ }] ? R : never;
45
+ type ErrorOf<X> = [X] extends [{
46
+ [STMVariance]: {
47
+ _E: () => infer E;
48
+ };
49
+ }] ? E : never;
50
+ type ValueOf<X> = [X] extends [{
51
+ [STMVariance]: {
52
+ _A: () => infer A;
53
+ };
54
+ }] ? A : never;
55
+ }
39
56
  /**
40
57
  * @tsplus unify fncts.io.STM
41
58
  */
package/Sink/api.d.ts CHANGED
@@ -21,37 +21,37 @@ import { MergeDecision } from "../Channel/internal/MergeDecision.js";
21
21
  * @tsplus pipeable fncts.io.Sink zipLeft
22
22
  * @tsplus location "@fncts/io/Sink/api"
23
23
  */
24
- export declare function zipLeft<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z_1>;
24
+ export declare function zipLeft<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z>;
25
25
  /**
26
- * Like {@link zipC }, but keeps only the result from this sink
26
+ * Like {@link zipConcurrent }, but keeps only the result from this sink
27
27
  * @tsplus pipeable fncts.io.Sink zipLeftC
28
28
  * @tsplus location "@fncts/io/Sink/api"
29
29
  */
30
- export declare function zipLeftC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z_1>;
30
+ export declare function zipLeftC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z>;
31
31
  /**
32
32
  * Like {@link zip }, but keeps only the result from the `that` sink
33
33
  * @tsplus pipeable fncts.io.Sink zipRight
34
34
  * @tsplus location "@fncts/io/Sink/api"
35
35
  */
36
- export declare function zipRight<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>;
36
+ export declare function zipRight<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>;
37
37
  /**
38
- * Like {@link zipC }, but keeps only the result from the `that` sink
38
+ * Like {@link zipConcurrent }, but keeps only the result from the `that` sink
39
39
  * @tsplus pipeable fncts.io.Sink zipRightC
40
40
  * @tsplus location "@fncts/io/Sink/api"
41
41
  */
42
- export declare function zipRightC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>;
42
+ export declare function zipRightC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>;
43
43
  /**
44
44
  * Replaces this sink's result with the provided value.
45
45
  * @tsplus pipeable fncts.io.Sink as
46
46
  * @tsplus location "@fncts/io/Sink/api"
47
47
  */
48
- export declare function as<Z1>(z: Lazy<Z1>, __tsplusTrace?: string): <R, E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E, In, L, Z1>;
48
+ export declare function as<Z1>(z: Lazy<Z1>, __tsplusTrace?: string): <R, E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E, In, L, Z1>;
49
49
  /**
50
50
  * Repeatedly runs the sink and accumulates its results into a chunk
51
51
  * @tsplus pipeable fncts.io.Sink collectAll
52
52
  * @tsplus location "@fncts/io/Sink/api"
53
53
  */
54
- export declare function collectAll(__tsplusTrace?: string): <R, E, In extends L, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E, In, L, import("@fncts/base/collection/immutable/Conc.js").Conc<Z_1>>;
54
+ export declare function collectAll(__tsplusTrace?: string): <R, E, In extends L, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E, In, L, import("@fncts/base/collection/immutable/Conc.js").Conc<Z>>;
55
55
  /**
56
56
  * Repeatedly runs the sink for as long as its results satisfy the predicate
57
57
  * `p`. The sink's results will be accumulated using the stepping function
@@ -72,26 +72,26 @@ export declare function collectLeftover<R, E, In, L, Z>(self: Sink<R, E, In, L,
72
72
  * @tsplus pipeable fncts.io.Sink contramap
73
73
  * @tsplus location "@fncts/io/Sink/api"
74
74
  */
75
- export declare function contramap<In, In1>(f: (inp: In1) => In, __tsplusTrace?: string): <R, E, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E, In1, L, Z_1>;
75
+ export declare function contramap<In, In1>(f: (inp: In1) => In, __tsplusTrace?: string): <R, E, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E, In1, L, Z>;
76
76
  /**
77
77
  * Transforms this sink's input chunks. `f` must preserve chunking-invariance
78
78
  * @tsplus pipeable fncts.io.Sink contramapChunks
79
79
  * @tsplus location "@fncts/io/Sink/api"
80
80
  */
81
- export declare function contramapChunks<In, In1>(f: (chunk: Conc<In1>) => Conc<In>, __tsplusTrace?: string): <R, E, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E, In1, L, Z_1>;
81
+ export declare function contramapChunks<In, In1>(f: (chunk: Conc<In1>) => Conc<In>, __tsplusTrace?: string): <R, E, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E, In1, L, Z>;
82
82
  /**
83
83
  * Effectfully transforms this sink's input chunks. `f` must preserve
84
84
  * chunking-invariance
85
85
  * @tsplus pipeable fncts.io.Sink contramapChunksIO
86
86
  * @tsplus location "@fncts/io/Sink/api"
87
87
  */
88
- export declare function contramapChunksIO<In, R1, E1, In1>(f: (chunk: Conc<In1>) => IO<R1, E1, Conc<In>>, __tsplusTrace?: string): <R, E, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In1, L, Z_1>;
88
+ export declare function contramapChunksIO<In, R1, E1, In1>(f: (chunk: Conc<In1>) => IO<R1, E1, Conc<In>>, __tsplusTrace?: string): <R, E, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In1, L, Z>;
89
89
  /**
90
90
  * Effectfully transforms this sink's input elements.
91
91
  * @tsplus pipeable fncts.io.Sink contramapIO
92
92
  * @tsplus location "@fncts/io/Sink/api"
93
93
  */
94
- export declare function contramapIO<In, R1, E1, In1>(f: (inp: In1) => IO<R1, E1, In>, __tsplusTrace?: string): <R, E, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In1, L, Z_1>;
94
+ export declare function contramapIO<In, R1, E1, In1>(f: (inp: In1) => IO<R1, E1, In>, __tsplusTrace?: string): <R, E, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In1, L, Z>;
95
95
  /**
96
96
  * Transforms both inputs and result of this sink using the provided
97
97
  * functions.
@@ -507,7 +507,7 @@ export declare function map<Z, Z1>(f: (z: Z) => Z1, __tsplusTrace?: string): <R,
507
507
  * @tsplus pipeable fncts.io.Sink mapError
508
508
  * @tsplus location "@fncts/io/Sink/api"
509
509
  */
510
- export declare function mapError<E, E1>(f: (e: E) => E1, __tsplusTrace?: string): <R, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E1, In, L, Z_1>;
510
+ export declare function mapError<E, E1>(f: (e: E) => E1, __tsplusTrace?: string): <R, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E1, In, L, Z>;
511
511
  /**
512
512
  * Effectfully transforms this sink's result.
513
513
  * @tsplus pipeable fncts.io.Sink mapIO
@@ -529,28 +529,28 @@ export declare function matchSink<E, In, Z, R1, E1, In1 extends In, L1, Z1, R2,
529
529
  * @tsplus pipeable fncts.io.Sink orElse
530
530
  * @tsplus location "@fncts/io/Sink/api"
531
531
  */
532
- export declare function orElse<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z_1>;
532
+ export declare function orElse<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z>;
533
533
  /**
534
534
  * Provides the sink with its required environment, which eliminates its
535
535
  * dependency on `R`.
536
536
  * @tsplus pipeable fncts.io.Sink provideEnvironment
537
537
  * @tsplus location "@fncts/io/Sink/api"
538
538
  */
539
- export declare function provideEnvironment<R>(r: Lazy<Environment<R>>, __tsplusTrace?: string): <E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<never, E, In, L, Z_1>;
539
+ export declare function provideEnvironment<R>(r: Lazy<Environment<R>>, __tsplusTrace?: string): <E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<never, E, In, L, Z>;
540
540
  /**
541
541
  * Runs both sinks in parallel on the input, returning the result or the
542
542
  * error from the one that finishes first.
543
543
  * @tsplus pipeable fncts.io.Sink race
544
544
  * @tsplus location "@fncts/io/Sink/api"
545
545
  */
546
- export declare function race<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z_1>;
546
+ export declare function race<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z>;
547
547
  /**
548
548
  * Runs both sinks in parallel on the input, returning the result or the error
549
549
  * from the one that finishes first.
550
550
  * @tsplus pipeable fncts.io.Sink raceBoth
551
551
  * @tsplus location "@fncts/io/Sink/api"
552
552
  */
553
- export declare function raceBoth<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, capacity?: Lazy<number>, __tsplusTrace?: string): <R, E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, import("@fncts/base/data/Either.js").Either<Z_1, Z1>>;
553
+ export declare function raceBoth<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, capacity?: Lazy<number>, __tsplusTrace?: string): <R, E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, import("@fncts/base/data/Either.js").Either<Z, Z1>>;
554
554
  /**
555
555
  * Runs both sinks in parallel on the input, using the specified merge
556
556
  * function as soon as one result or the other has been computed.
@@ -594,7 +594,7 @@ export declare function serviceWithSink<S, R, E, In, L, Z>(f: (service: S) => Si
594
594
  * @tsplus pipeable fncts.io.Sink splitWhere
595
595
  * @tsplus location "@fncts/io/Sink/api"
596
596
  */
597
- export declare function splitWhere<In>(p: Predicate<In>, __tsplusTrace?: string): <R, E, L extends In, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R, E, In, In, Z_1>;
597
+ export declare function splitWhere<In>(p: Predicate<In>, __tsplusTrace?: string): <R, E, L extends In, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R, E, In, In, Z>;
598
598
  /**
599
599
  * A sink that immediately ends with the specified value.
600
600
  * @tsplus static fncts.io.SinkOps succeed
@@ -613,7 +613,7 @@ export declare function succeedNow<Z>(z: Z, __tsplusTrace?: string): Sink<never,
613
613
  * @tsplus pipeable fncts.io.Sink summarized
614
614
  * @tsplus location "@fncts/io/Sink/api"
615
615
  */
616
- export declare function summarized<R1, E1, B, C>(summary: Lazy<IO<R1, E1, B>>, f: (b1: B, b2: B) => C, __tsplusTrace?: string): <R, E, In, L, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In, L, readonly [Z_1, C]>;
616
+ export declare function summarized<R1, E1, B, C>(summary: Lazy<IO<R1, E1, B>>, f: (b1: B, b2: B) => C, __tsplusTrace?: string): <R, E, In, L, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In, L, readonly [Z, C]>;
617
617
  /**
618
618
  * @tsplus getter fncts.io.Sink timed
619
619
  * @tsplus location "@fncts/io/Sink/api"
@@ -638,14 +638,14 @@ export declare function unwrapScoped<R, E, R1, E1, In, L, Z>(scoped: Lazy<IO<R,
638
638
  * @tsplus pipeable fncts.io.Sink zip
639
639
  * @tsplus location "@fncts/io/Sink/api"
640
640
  */
641
- export declare function zip<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, readonly [Z_1, Z1]>;
641
+ export declare function zip<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, readonly [Z, Z1]>;
642
642
  /**
643
643
  * Runs both sinks in parallel on the input and combines the results in a
644
644
  * tuple.
645
- * @tsplus pipeable fncts.io.Sink zipC
645
+ * @tsplus pipeable fncts.io.Sink zipConcurrent
646
646
  * @tsplus location "@fncts/io/Sink/api"
647
647
  */
648
- export declare function zipC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z_1>(self: import("./definition.js").Sink<R, E, In, L, Z_1>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, readonly [Z_1, Z1]>;
648
+ export declare function zipConcurrent<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string): <R, E, Z>(self: import("./definition.js").Sink<R, E, In, L, Z>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L | L1, readonly [Z, Z1]>;
649
649
  /**
650
650
  * Feeds inputs to this sink until it yields a result, then switches over to
651
651
  * the provided sink until it yields a result, finally combining the two
@@ -657,7 +657,7 @@ export declare function zipWith<In, L, Z, R1, E1, In1 extends In, L1 extends L,
657
657
  /**
658
658
  * Runs both sinks in parallel on the input and combines the results using the
659
659
  * provided function.
660
- * @tsplus pipeable fncts.io.Sink zipWithC
660
+ * @tsplus pipeable fncts.io.Sink zipWithConcurrent
661
661
  * @tsplus location "@fncts/io/Sink/api"
662
662
  */
663
- export declare function zipWithC<Z, R1, E1, In1, L1, Z1, Z2>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, f: (z: Z, z1: Z1) => Z2, __tsplusTrace?: string): <R, E, In, L>(self: import("@fncts/base/data/function.js").Lazy<import("./definition.js").Sink<R, E, In, L, Z>>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z2>;
663
+ export declare function zipWithConcurrent<Z, R1, E1, In1, L1, Z1, Z2>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, f: (z: Z, z1: Z1) => Z2, __tsplusTrace?: string): <R, E, In, L>(self: import("@fncts/base/data/function.js").Lazy<import("./definition.js").Sink<R, E, In, L, Z>>) => import("./definition.js").Sink<R1 | R, E1 | E, In & In1, L1 | L, Z2>;
@@ -1,7 +1,6 @@
1
1
  import { IO } from "@fncts/io/IO/definition";
2
- import { Scope } from "@fncts/io/Scope/definition";
3
2
  import { Cause } from "@fncts/base/data/Cause/definition";
4
- import type { Emitter } from "@fncts/io/Push/definition";
3
+ import type { Sink } from "@fncts/io/Push/definition";
5
4
  import type { Subject } from "@fncts/io/Subject/definition";
6
5
  import { Multicast } from "@fncts/io/Push";
7
6
  import { PushTypeId, PushVariance } from "@fncts/io/Push/definition";
@@ -15,8 +14,7 @@ export declare class AtomicSubject<E, A> implements Subject<never, E, A> {
15
14
  readonly _A: (_: never) => A;
16
15
  };
17
16
  readonly stream: Multicast<never, E, A>;
18
- run<R>(emitter: Emitter<R, E, A>): IO<R | Scope, never, unknown>;
19
- emit(value: A): IO<never, never, void>;
20
- failCause(cause: Cause<E>): IO<never, never, void>;
21
- end: import("../IO").IO<never, never, void>;
17
+ run<R>(emitter: Sink<R, E, A>): IO<R, never, unknown>;
18
+ event(value: A): IO<never, never, void>;
19
+ error(cause: Cause<E>): IO<never, never, void>;
22
20
  }
@@ -1,10 +1,10 @@
1
- import type { Emitter, Push } from "../Push.js";
1
+ import type { Push, Sink } from "../Push.js";
2
2
  export declare const SubjectTypeId: unique symbol;
3
3
  export type SubjectTypeId = typeof SubjectTypeId;
4
4
  /**
5
5
  * @tsplus type fncts.io.Push.Subject
6
6
  */
7
- export interface Subject<R, E, A> extends Push<R, E, A>, Emitter<R, E, A> {
7
+ export interface Subject<R, E, A> extends Push<R, E, A>, Sink<R, E, A> {
8
8
  readonly [SubjectTypeId]: SubjectTypeId;
9
9
  }
10
10
  /**
@@ -59,6 +59,6 @@ function runScoped(self) {
59
59
  return tsplus_module_1.unit;
60
60
  }
61
61
  }, fileName_1 + ":46:26"));
62
- return tsplus_module_10.uninterruptibleMask(restore => tsplus_module_1.flatMap(parent => tsplus_module_1.flatMap(child => tsplus_module_1.flatMap(channelFuture => tsplus_module_1.flatMap(scopeFuture => tsplus_module_1.flatMap(fiber => tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(done => tsplus_module_1.map(() => done, fileName_1 + ":66:8")(fiber.inheritAll), fileName_1 + ":65:21")(restore(tsplus_module_3.wait(channelFuture, fileName_1 + ":65:43"), fileName_1 + ":65:29")), fileName_1 + ":64:8")(tsplus_module_6.addFinalizer(() => tsplus_module_3.succeed_(undefined, fileName_1 + ":64:44")(scopeFuture), fileName_1 + ":64:24")), fileName_1 + ":63:30")(tsplus_module_7.forkScoped(restore(run(channelFuture, scopeFuture, child), fileName_1 + ":63:38"), fileName_1 + ":63:78")), fileName_1 + ":62:30")(tsplus_module_8.make(fileName_1 + ":62:42")), fileName_1 + ":61:30")(tsplus_module_8.make(fileName_1 + ":61:42")), fileName_1 + ":60:30")(parent.fork), fileName_1 + ":59:30")(tsplus_module_9.scope));
62
+ return tsplus_module_10.uninterruptibleMask(restore => tsplus_module_1.flatMap(parent => tsplus_module_1.flatMap(child => tsplus_module_1.flatMap(channelFuture => tsplus_module_1.flatMap(scopeFuture => tsplus_module_1.flatMap(fiber => tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(done => tsplus_module_1.map(() => done, fileName_1 + ":66:8")(fiber.inheritAll), fileName_1 + ":65:21")(restore(tsplus_module_3.wait(channelFuture, fileName_1 + ":65:43"), fileName_1 + ":65:29")), fileName_1 + ":64:8")(tsplus_module_6.addFinalizer(() => tsplus_module_3.succeed_(undefined, fileName_1 + ":64:44")(scopeFuture), fileName_1 + ":64:24")), fileName_1 + ":63:30")(tsplus_module_7.forkScoped(restore(run(channelFuture, scopeFuture, child), fileName_1 + ":63:38"), fileName_1 + ":63:78")), fileName_1 + ":62:30")(tsplus_module_8.make(fileName_1 + ":62:42")), fileName_1 + ":61:30")(tsplus_module_8.make(fileName_1 + ":61:42")), fileName_1 + ":60:30")(parent.fork), fileName_1 + ":59:30")(tsplus_module_9.scope), fileName_1 + ":57:32");
63
63
  }
64
64
  //# sourceMappingURL=runScoped.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runScoped.cjs","names":["_function","require","_ChannelExecutor","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","runScopedInterpret","channelState","exec","_tag","tsplus_module_1","flatMap","run","fileName_1","effect","fromExit","getDone","readUpstream","cause","refailCause","Error","runScoped","self","channelFuture","scopeFuture","scope","defer","zipLeft","tsplus_module_3","wait","zipRight","tsplus_module_2","fulfill","tsplus_module_5","acquireReleaseExit","succeed","ChannelExecutor","identity","exit","finalize","close","tapErrorCause","tsplus_module_4","addFinalizer","unit","tsplus_module_10","uninterruptibleMask","restore","parent","child","fiber","done","map","inheritAll","tsplus_module_6","succeed_","undefined","tsplus_module_7","forkScoped","tsplus_module_8","make","fork","tsplus_module_9"],"sources":["../../../_src/Channel/api/runScoped.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"runScoped.cjs","names":["_function","require","_ChannelExecutor","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","runScopedInterpret","channelState","exec","_tag","tsplus_module_1","flatMap","run","fileName_1","effect","fromExit","getDone","readUpstream","cause","refailCause","Error","runScoped","self","channelFuture","scopeFuture","scope","defer","zipLeft","tsplus_module_3","wait","zipRight","tsplus_module_2","fulfill","tsplus_module_5","acquireReleaseExit","succeed","ChannelExecutor","identity","exit","finalize","close","tapErrorCause","tsplus_module_4","addFinalizer","unit","tsplus_module_10","uninterruptibleMask","restore","parent","child","fiber","done","map","inheritAll","tsplus_module_6","succeed_","undefined","tsplus_module_7","forkScoped","tsplus_module_8","make","fork","tsplus_module_9"],"sources":["../../../_src/Channel/api/runScoped.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -553,7 +553,7 @@ function interrupt(fiberId) {
553
553
  * @tsplus static fncts.io.ChannelOps scoped
554
554
  */
555
555
  function scoped_1(io) {
556
- return unwrap_1(() => tsplus_module_6.uninterruptibleMask(restore => tsplus_module_4.map(scope => acquireReleaseOutExitWith_1(tsplus_module_4.tapErrorCause(cause => scope.close(() => tsplus_module_20.failCause(cause, fileName_1 + ":759:88")), fileName_1 + ":759:50")(restore(tsplus_module_21.extend(io, fileName_1 + ":759:31")(scope), fileName_1 + ":759:18")), (_, exit) => scope.close(() => exit)), fileName_1 + ":757:21")(tsplus_module_21.make)));
556
+ return unwrap_1(() => tsplus_module_6.uninterruptibleMask(restore => tsplus_module_4.map(scope => acquireReleaseOutExitWith_1(tsplus_module_4.tapErrorCause(cause => scope.close(() => tsplus_module_20.failCause(cause, fileName_1 + ":759:88")), fileName_1 + ":759:50")(restore(tsplus_module_21.extend(io, fileName_1 + ":759:31")(scope), fileName_1 + ":759:18")), (_, exit) => scope.close(() => exit)), fileName_1 + ":757:21")(tsplus_module_21.make), fileName_1 + ":756:27"));
557
557
  }
558
558
  /**
559
559
  * Returns a new channel, which is the same as this one, except the failure value of the returned
@@ -599,7 +599,7 @@ function mapOut(f) {
599
599
  return pipeTo_1(reader)(self);
600
600
  };
601
601
  }
602
- const mapOutIOReader = f => readWith_1(out => tsplus_module_1.zipRight(mapOutIOReader(f))(tsplus_module_1.flatMap(writeNow_1)(fromIO_1(() => f(out)))), failNow_1, tsplus_module_1.endNow);
602
+ const mapOutIOReader = f => readWithCause_1(out => tsplus_module_1.zipRight(mapOutIOReader(f))(tsplus_module_1.flatMap(writeNow_1)(fromIO_1(() => f(out)))), tsplus_module_1.failCauseNow, tsplus_module_1.succeedNow);
603
603
  /**
604
604
  * @tsplus pipeable fncts.io.Channel mapOutIO
605
605
  */