@fncts/io 0.0.34 → 0.0.36

Sign up to get free protection for your applications and to get access to all the features.
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
package/_cjs/Push/api.cjs CHANGED
@@ -5,10 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Multicast = exports.Hold = void 0;
7
7
  exports.as = as;
8
- exports.combineLatest = void 0;
8
+ exports.async = async;
9
+ exports.combineLatest = exports.asyncInterrupt = void 0;
9
10
  exports.combineLatestWith = combineLatestWith;
10
11
  exports.debounce = debounce;
11
12
  exports.defer = defer;
13
+ exports.exhaustMap = void 0;
14
+ exports.exhaustMapIO = exhaustMapIO;
15
+ exports.filter = filter;
16
+ exports.filterIO = filterIO;
17
+ exports.filterMap = filterMap;
18
+ exports.filterMapIO = filterMapIO;
12
19
  exports.flatMap = void 0;
13
20
  exports.flatMapConcurrent = flatMapConcurrent;
14
21
  exports.flatten = exports.flatMapConcurrentUnbounded = exports.flatMapConcurrentBounded = void 0;
@@ -23,13 +30,14 @@ exports.mapIO = void 0;
23
30
  exports.merge = merge;
24
31
  exports.mergeAll = void 0;
25
32
  exports.multicast = multicast;
26
- exports.never = void 0;
33
+ exports.observe = exports.never = void 0;
27
34
  exports.repeatIOMaybe = repeatIOMaybe;
28
35
  exports.runCollect = runCollect;
29
36
  exports.runDrain = runDrain;
30
37
  exports.scoped = void 0;
31
38
  exports.succeed = succeed;
32
- exports.switchMap = switchMap;
39
+ exports.switchMapIO = exports.switchMap = void 0;
40
+ exports.tap = tap;
33
41
  exports.transform = void 0;
34
42
  exports.unfold = unfold;
35
43
  exports.unfoldIO = void 0;
@@ -37,48 +45,53 @@ exports.untilFuture = untilFuture;
37
45
  exports.untilPush = untilPush;
38
46
  exports.unwrap = void 0;
39
47
  exports.unwrapScoped = unwrapScoped;
40
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
41
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Push/definition"));
42
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkScoped"));
43
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/CountdownLatch"));
44
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/Iterable/api"));
45
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/delay"));
46
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/acquireRelease"));
47
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interrupt"));
48
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Ref/Synchronized/api"));
49
- var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Ref/Synchronized/constructors"));
50
- var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/TSemaphore/api"));
51
- var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/TSemaphore/constructors"));
52
- var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/STM/api/atomically"));
53
- var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
54
- var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/concurrency"));
55
- var tsplus_module_16 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/function/api"));
56
- var tsplus_module_17 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/api"));
57
- var tsplus_module_18 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Schedule/api"));
58
- var tsplus_module_19 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/schedule"));
59
- var tsplus_module_20 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/constructors"));
60
- var tsplus_module_21 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/environment"));
61
- var tsplus_module_22 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/fulfill"));
62
- var tsplus_module_23 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
63
- var tsplus_module_24 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
64
- var tsplus_module_25 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/FiberId/constructors"));
65
- var tsplus_module_26 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interruptAs"));
48
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/api"));
49
+ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
50
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/destructors"));
51
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
52
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkIn"));
53
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/fulfill"));
54
+ var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/runtime"));
55
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/scope"));
56
+ var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/constructors"));
57
+ var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/scoped"));
58
+ var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Push/definition"));
59
+ var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/constructors"));
60
+ var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/Iterable/api"));
61
+ var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/foreachConcurrent"));
62
+ var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/delay"));
63
+ var tsplus_module_16 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
64
+ var tsplus_module_17 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Semaphore"));
65
+ var tsplus_module_18 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/concurrency"));
66
+ var tsplus_module_19 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/function/api"));
67
+ var tsplus_module_20 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/asyncIO"));
68
+ var tsplus_module_21 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkDaemon"));
69
+ var tsplus_module_22 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/await"));
70
+ var tsplus_module_23 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/environment"));
71
+ var tsplus_module_24 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interrupt"));
72
+ var tsplus_module_25 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
73
+ var tsplus_module_26 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
66
74
  var tsplus_module_27 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
67
- var tsplus_module_28 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/foreachConcurrent"));
68
- var tsplus_module_29 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Conc/definition"));
69
- var tsplus_module_30 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/scoped"));
70
- var tsplus_module_31 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Ref/api/set"));
71
- var tsplus_module_32 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/joinAll"));
75
+ var tsplus_module_28 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interruptFork"));
76
+ var tsplus_module_29 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkScoped"));
77
+ var tsplus_module_30 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/Conc/definition"));
78
+ var tsplus_module_31 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/joinAll"));
79
+ var tsplus_module_32 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/fork"));
72
80
  var tsplus_module_33 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/asyncInterrupt"));
73
81
  var _AtomicReference = /*#__PURE__*/require("@fncts/base/internal/AtomicReference");
82
+ var _IO = /*#__PURE__*/require("@fncts/io/IO");
83
+ var _internal = /*#__PURE__*/require("@fncts/io/Push/internal");
74
84
  var _definition4 = /*#__PURE__*/require("./definition.cjs");
75
- var _internal = /*#__PURE__*/require("./internal.cjs");
76
85
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
77
86
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
78
87
  var _a;
79
88
  const fileName_1 = "(@fncts/io) src/Push/api.ts";
89
+ const asyncInterrupt = asyncInterrupt_1;
90
+ exports.asyncInterrupt = asyncInterrupt;
80
91
  const combineLatest = combineLatest_1;
81
92
  exports.combineLatest = combineLatest;
93
+ const exhaustMap = exhaustMap_1;
94
+ exports.exhaustMap = exhaustMap;
82
95
  const flatMapConcurrentBounded = flatMapConcurrentBounded_1;
83
96
  exports.flatMapConcurrentBounded = flatMapConcurrentBounded;
84
97
  const flatMapConcurrentUnbounded = flatMapConcurrentUnbounded_1;
@@ -95,8 +108,14 @@ const mapIO = mapIO_1;
95
108
  exports.mapIO = mapIO;
96
109
  const mergeAll = mergeAll_1;
97
110
  exports.mergeAll = mergeAll;
111
+ const observe = observe_1;
112
+ exports.observe = observe;
98
113
  const scoped = scoped_1;
99
114
  exports.scoped = scoped;
115
+ const switchMap = switchMap_1;
116
+ exports.switchMap = switchMap;
117
+ const switchMapIO = switchMapIO_1;
118
+ exports.switchMapIO = switchMapIO;
100
119
  const transform = transform_1;
101
120
  exports.transform = transform;
102
121
  const unfoldIO = unfoldIO_1;
@@ -111,13 +130,34 @@ function as(b) {
111
130
  return map_1(b)(self);
112
131
  };
113
132
  }
133
+ /**
134
+ * @tsplus static fncts.io.PushOps asyncInterrupt
135
+ */
136
+ function asyncInterrupt_1(make) {
137
+ return tsplus_module_11.makePush(sink => tsplus_module_10.scoped(tsplus_module_4.flatMap(future => tsplus_module_4.flatMap(scope => tsplus_module_4.flatMap(runtime => {
138
+ const unsafeSink = {
139
+ event: value => runtime.unsafeRunOrFork(tsplus_module_5.forkIn(scope, fileName_1 + ":34:77")(sink.event(value)), fileName_1 + ":34:52"),
140
+ error: cause => runtime.unsafeRunOrFork(tsplus_module_5.forkIn(scope, fileName_1 + ":35:93")(tsplus_module_6.fulfill(future, fileName_1 + ":35:78")(sink.error(cause))), fileName_1 + ":35:52")
141
+ };
142
+ return tsplus_module_4.flatMap(eitherPush => tsplus_module_4.map(() => void 0, fileName_1 + ":38:10")(tsplus_module_3.match(canceller => tsplus_module_2.onInterrupt(() => canceller, fileName_1 + ":40:52")(tsplus_module_1.wait(future, fileName_1 + ":40:34")), push => push.run(sink))(eitherPush)), fileName_1 + ":37:29")(tsplus_module_4.succeed(() => make(unsafeSink), fileName_1 + ":37:32"));
143
+ }, fileName_1 + ":32:26")(tsplus_module_7.runtime(fileName_1 + ":32:37")), fileName_1 + ":31:26")(tsplus_module_8.scope), fileName_1 + ":30:26")(tsplus_module_9.make(fileName_1 + ":30:38")), fileName_1 + ":44:9"));
144
+ }
145
+ /**
146
+ * @tsplus static fncts.io.PushOps async
147
+ */
148
+ function async(make) {
149
+ return asyncInterrupt_1(sink => {
150
+ make(sink);
151
+ return tsplus_module_12.left(tsplus_module_4.unit, fileName_1 + ":54:23");
152
+ });
153
+ }
114
154
  function combineLatest_1(streams) {
115
- return tsplus_module_2.makePush(emitter => (() => {
116
- const size = tsplus_module_5.size(streams);
117
- return tsplus_module_1.flatMap(ref => tsplus_module_1.flatMap(latch => {
118
- const emitIfReady = tsplus_module_1.flatMap(as => as.length === size ? emitter.emit(as) : tsplus_module_1.unit, fileName_1 + ":30:69")(tsplus_module_1.succeed(() => ref.filter(a => a != null), fileName_1 + ":30:31"));
119
- return tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, fileName_1 + ":46:8")(tsplus_module_1.zipRight(emitter.end, fileName_1 + ":46:22")(latch.await)), fileName_1 + ":33:8")(tsplus_module_1.foreachWithIndex(streams, (i, stream) => tsplus_module_3.forkScoped(stream.run(tsplus_module_2.makeEmitter(value => tsplus_module_1.zipRight(emitIfReady, fileName_1 + ":39:50")(tsplus_module_1.succeed(() => ref[i] = value, fileName_1 + ":39:30")), cause => emitter.failCause(cause), latch.countDown)), fileName_1 + ":43:14"), fileName_1 + ":34:28"));
120
- }, fileName_1 + ":29:30")(tsplus_module_4.make(size)), fileName_1 + ":28:30")(tsplus_module_1.succeed(() => Array(size), fileName_1 + ":28:33"));
155
+ return tsplus_module_11.makePush(emitter => (() => {
156
+ const size = tsplus_module_13.size(streams);
157
+ return tsplus_module_4.flatMap(ref => {
158
+ const emitIfReady = tsplus_module_4.flatMap(as => as.length === size ? emitter.event(as) : tsplus_module_4.unit, fileName_1 + ":70:69")(tsplus_module_4.succeed(() => ref.filter(a => a != null), fileName_1 + ":70:31"));
159
+ return tsplus_module_4.map(() => void 0, fileName_1 + ":73:8")(tsplus_module_14.foreachConcurrent(tsplus_module_13.zipWithIndex(streams), ([i, stream]) => stream.run(tsplus_module_11.makeSink(value => tsplus_module_4.zipRight(emitIfReady, fileName_1 + ":77:48")(tsplus_module_4.succeed(() => ref[i] = value, fileName_1 + ":77:28")), cause => emitter.error(cause))), fileName_1 + ":74:29"));
160
+ }, fileName_1 + ":69:30")(tsplus_module_4.succeed(() => Array(size), fileName_1 + ":69:33"));
121
161
  })());
122
162
  }
123
163
  /**
@@ -133,21 +173,66 @@ function combineLatestWith(that, f) {
133
173
  */
134
174
  function debounce(duration) {
135
175
  return self => {
136
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(ref => tsplus_module_1.flatMap(latch => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, fileName_1 + ":84:10")(tsplus_module_1.zipRight(emitter.end, fileName_1 + ":84:24")(latch.await)), fileName_1 + ":69:10")(self.run(tsplus_module_2.makeEmitter(value => tsplus_module_9.updateIO(previous => tsplus_module_1.flatMap(() => tsplus_module_3.forkScoped(tsplus_module_7.acquireRelease(() => tsplus_module_6.delay(duration)(emitter.emit(value)), () => latch.countDown, fileName_1 + ":76:47"), fileName_1 + ":76:107"), fileName_1 + ":75:22")(tsplus_module_1.defer(() => previous ? tsplus_module_8.interrupt(previous) : latch.increment, fileName_1 + ":75:31")), fileName_1 + ":73:29")(ref), cause => emitter.failCause(cause), latch.countDown))), fileName_1 + ":68:24")(tsplus_module_4.make(1)), fileName_1 + ":67:24")(tsplus_module_10.makeSynchronized(() => null, fileName_1 + ":67:46")));
176
+ return switchMapIO_1(a => tsplus_module_15.delay(duration)(tsplus_module_4.succeedNow(a, fileName_1 + ":101:49")))(self);
137
177
  };
138
178
  }
139
179
  /**
140
180
  * @tsplus static fncts.io.PushOps defer
141
181
  */
142
182
  function defer(self) {
143
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(push => push.run(emitter), fileName_1 + ":94:44")(tsplus_module_1.succeed(self, fileName_1 + ":94:30")));
183
+ return tsplus_module_11.makePush(emitter => tsplus_module_4.flatMap(push => push.run(emitter), fileName_1 + ":109:44")(tsplus_module_4.succeed(self, fileName_1 + ":109:30")));
184
+ }
185
+ /**
186
+ * @tsplus pipeable fncts.io.Push exhaustMap
187
+ */
188
+ function exhaustMap_1(f) {
189
+ return self => {
190
+ return tsplus_module_11.makePush(sink => (0, _internal.withExhaust)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
191
+ };
192
+ }
193
+ /**
194
+ * @tsplus pipeable fncts.io.Push exhaustMapIO
195
+ */
196
+ function exhaustMapIO(f) {
197
+ return self => {
198
+ return exhaustMap_1(a => fromIO_1(() => f(a)))(self);
199
+ };
200
+ }
201
+ /**
202
+ * @tsplus pipeable fncts.io.Push filterIO
203
+ */
204
+ function filterIO(predicate) {
205
+ return self => {
206
+ return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => tsplus_module_4.catchAllCause(sink.error, fileName_1 + ":141:29")(tsplus_module_4.flatMap(b => b ? sink.event(a) : tsplus_module_4.unit, fileName_1 + ":140:23")(predicate(a))), sink.error)));
207
+ };
208
+ }
209
+ /**
210
+ * @tsplus pipeable fncts.io.Push filterMapIO
211
+ */
212
+ function filterMapIO(f) {
213
+ return self => {
214
+ return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => tsplus_module_4.catchAllCause(sink.error, fileName_1 + ":160:29")(tsplus_module_4.flatMap(mb => tsplus_module_16.match(() => tsplus_module_4.unit, sink.event)(mb), fileName_1 + ":159:23")(f(a))), sink.error)));
215
+ };
216
+ }
217
+ function filter(predicate) {
218
+ return self => {
219
+ return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => predicate(a) ? sink.event(a) : tsplus_module_4.unit, sink.error)));
220
+ };
221
+ }
222
+ /**
223
+ * @tsplus pipeable fncts.io.Push filterMap
224
+ */
225
+ function filterMap(f) {
226
+ return self => {
227
+ return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => tsplus_module_16.match(() => tsplus_module_4.unit, sink.event)(f(a)), sink.error)));
228
+ };
144
229
  }
145
230
  /**
146
231
  * @tsplus pipeable fncts.io.Push flatMapConcurrentBounded
147
232
  */
148
233
  function flatMapConcurrentBounded_1(f, concurrency) {
149
234
  return self => {
150
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(semaphore => tsplus_module_1.map(() => void 0, fileName_1 + ":105:10")(flatMapConcurrentUnbounded_1(a => transform_1(io => tsplus_module_11.withPermit(semaphore, fileName_1 + ":105:82")(io))(f(a)))(self).run(emitter)), fileName_1 + ":104:28")(tsplus_module_13.atomically(tsplus_module_12.make(concurrency, fileName_1 + ":104:39"), fileName_1 + ":104:52")));
235
+ return tsplus_module_11.makePush(emitter => tsplus_module_4.flatMap(semaphore => tsplus_module_4.map(() => void 0, fileName_1 + ":196:10")(flatMapConcurrentUnbounded_1(a => transform_1(io => semaphore.withPermit(io))(f(a)))(self).run(emitter)), fileName_1 + ":195:28")(tsplus_module_17.makeSemaphore(concurrency, fileName_1 + ":195:38")));
151
236
  };
152
237
  }
153
238
  /**
@@ -155,7 +240,7 @@ function flatMapConcurrentBounded_1(f, concurrency) {
155
240
  */
156
241
  function flatMapConcurrentUnbounded_1(f) {
157
242
  return self => {
158
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(latch => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, fileName_1 + ":129:10")(tsplus_module_1.zipRight(emitter.end, fileName_1 + ":129:24")(latch.await)), fileName_1 + ":119:10")(self.run(tsplus_module_2.makeEmitter(value => tsplus_module_1.zipRight(tsplus_module_3.forkScoped(f(value).run(tsplus_module_2.makeEmitter(emitter.emit, emitter.failCause, latch.countDown)), fileName_1 + ":123:106"), fileName_1 + ":123:34")(latch.increment), emitter.failCause, latch.countDown))), fileName_1 + ":118:24")(tsplus_module_4.make(1)));
243
+ return tsplus_module_11.makePush(sink => (0, _internal.withUnboundedConcurrency)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
159
244
  };
160
245
  }
161
246
  /**
@@ -163,7 +248,7 @@ function flatMapConcurrentUnbounded_1(f) {
163
248
  */
164
249
  function flatMapConcurrent(f) {
165
250
  return self => {
166
- return unwrap_1(tsplus_module_1.map(concurrency => tsplus_module_14.match(() => flatMapConcurrentUnbounded_1(f)(self), n => flatMapConcurrentBounded_1(f, n)(self))(concurrency), fileName_1 + ":141:25")(tsplus_module_15.concurrency));
251
+ return unwrap_1(tsplus_module_4.map(concurrency => tsplus_module_16.match(() => flatMapConcurrentUnbounded_1(f)(self), n => flatMapConcurrentBounded_1(f, n)(self))(concurrency), fileName_1 + ":217:25")(tsplus_module_18.concurrency));
167
252
  };
168
253
  }
169
254
  /**
@@ -178,34 +263,34 @@ function flatMap_1(f) {
178
263
  * @tsplus getter fncts.io.Push flatten
179
264
  */
180
265
  function flatten_1(self) {
181
- return flatMap_1(tsplus_module_16.identity)(self);
266
+ return flatMap_1(tsplus_module_19.identity)(self);
182
267
  }
183
268
  /**
184
269
  * @tsplus static fncts.io.PushOps fromIO
185
270
  */
186
271
  function fromIO_1(io) {
187
- return tsplus_module_2.makePush(emitter => tsplus_module_1.zipRight(emitter.end, fileName_1 + ":176:10")(tsplus_module_1.matchCauseIO(cause => emitter.failCause(cause), value => emitter.emit(value), fileName_1 + ":173:32")(tsplus_module_1.defer(io, fileName_1 + ":173:15"))));
272
+ return tsplus_module_11.makePush(emitter => tsplus_module_4.matchCauseIO(cause => emitter.error(cause), value => emitter.event(value), fileName_1 + ":248:30")(tsplus_module_4.defer(io, fileName_1 + ":248:13")));
188
273
  }
189
274
  /**
190
275
  * @tsplus static fncts.io.PushOps fromAsyncIterable
191
276
  */
192
277
  function fromAsyncIterable(iterable) {
193
- return tsplus_module_2.makePush(emitter => tsplus_module_1.defer(() => fromAsyncIterableLoop(iterable[Symbol.asyncIterator](), emitter, fileName_1 + ":184:58"), fileName_1 + ":184:36"));
278
+ return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => tsplus_module_4.defer(() => fromAsyncIterableLoop(iterable[Symbol.asyncIterator](), sink, cb, fileName_1 + ":260:70"), fileName_1 + ":260:48"), fileName_1 + ":260:15"));
194
279
  }
195
- function fromAsyncIterableLoop(iterator, emitter, __tsplusTrace) {
196
- return tsplus_module_1.matchCauseIO(cause => tsplus_module_1.zipRight(emitter.end, __tsplusTrace)(emitter.failCause(cause)), result => result.done ? emitter.end : tsplus_module_1.zipRight(fromAsyncIterableLoop(iterator, emitter, __tsplusTrace), __tsplusTrace)(emitter.emit(result.value)), __tsplusTrace)(tsplus_module_1.fromPromiseHalt(iterator.next, __tsplusTrace));
280
+ function fromAsyncIterableLoop(iterator, sink, cb, __tsplusTrace) {
281
+ return tsplus_module_4.matchCauseIO(cause => sink.error(cause), result => result.done ? tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), __tsplusTrace) : tsplus_module_4.zipRight(fromAsyncIterableLoop(iterator, sink, cb, __tsplusTrace), __tsplusTrace)(sink.event(result.value)), __tsplusTrace)(tsplus_module_4.fromPromiseHalt(iterator.next, __tsplusTrace));
197
282
  }
198
283
  /**
199
284
  * @tsplus static fncts.io.PushOps fromIterable
200
285
  */
201
286
  function fromIterable(iterable) {
202
- return tsplus_module_2.makePush(emitter => tsplus_module_1.defer(() => fromIterableLoop(iterable[Symbol.iterator](), emitter), fileName_1 + ":202:36"));
287
+ return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => tsplus_module_4.defer(() => fromIterableLoop(iterable[Symbol.iterator](), sink, cb), fileName_1 + ":281:48"), fileName_1 + ":281:15"));
203
288
  }
204
- function fromIterableLoop(iterator, emitter) {
205
- return tsplus_module_1.defer(() => {
289
+ function fromIterableLoop(iterator, sink, cb) {
290
+ return tsplus_module_4.defer(() => {
206
291
  const value = iterator.next();
207
- return value.done ? emitter.end : tsplus_module_1.zipRight(fromIterableLoop(iterator, emitter), fileName_1 + ":208:66")(emitter.emit(value.value));
208
- }, fileName_1 + ":206:18");
292
+ return value.done ? tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), fileName_1 + ":292:27") : tsplus_module_4.zipRight(fromIterableLoop(iterator, sink, cb), fileName_1 + ":292:68")(sink.event(value.value));
293
+ }, fileName_1 + ":290:18");
209
294
  }
210
295
  /**
211
296
  * @tsplus getter fncts.io.Push multicast
@@ -219,45 +304,46 @@ class Multicast {
219
304
  this[_a] = _definition4.PushTypeId;
220
305
  this.observers = [];
221
306
  }
222
- run(emitter) {
223
- return tsplus_module_1.flatMap(environment => tsplus_module_1.flatMap(future => tsplus_module_1.flatMap(() => tsplus_module_17.wait(future, fileName_1 + ":253:22"), fileName_1 + ":240:8")(tsplus_module_1.defer(() => {
224
- this.observers.push({
225
- emitter,
226
- environment,
227
- future
228
- });
229
- if (this.fiber) {
230
- return tsplus_module_1.unit;
231
- } else {
232
- return tsplus_module_1.tap(fiber => tsplus_module_1.succeed(() => this.fiber = fiber, fileName_1 + ":249:44"), fileName_1 + ":249:30")(tsplus_module_3.forkScoped(tsplus_module_19.schedule(() => tsplus_module_18.asap, fileName_1 + ":248:24")(this.push.run(this)), fileName_1 + ":248:39"));
307
+ run(sink) {
308
+ return tsplus_module_4.flatMap(environment => tsplus_module_4.map(() => void 0, fileName_1 + ":322:8")(tsplus_module_4.defer(() => {
309
+ let io = tsplus_module_4.unit;
310
+ if (this.observers.push({
311
+ sink: sink,
312
+ environment
313
+ }) === 1) {
314
+ io = tsplus_module_4.flatMap(fiber => tsplus_module_4.succeed(() => this.fiber = fiber, fileName_1 + ":326:70"), fileName_1 + ":326:56")(tsplus_module_21.forkDaemon(this.push.run(this), fileName_1 + ":326:37"));
233
315
  }
234
- }, fileName_1 + ":241:17")), fileName_1 + ":239:28")(tsplus_module_20.make(fileName_1 + ":239:40")), fileName_1 + ":238:28")(tsplus_module_21.environment(fileName_1 + ":238:43"));
235
- }
236
- emit(value) {
237
- return tsplus_module_1.defer(() => tsplus_module_1.foreachDiscard(this.observers.slice(), observer => this.runEvent(value, observer), fileName_1 + ":258:38"), fileName_1 + ":258:20");
238
- }
239
- failCause(cause) {
240
- return tsplus_module_1.zipRight(tsplus_module_1.defer(() => this.cleanup(), fileName_1 + ":264:15"), fileName_1 + ":263:110")(tsplus_module_1.defer(() => tsplus_module_1.foreachDiscard(this.observers.slice(), observer => this.runFailCause(cause, observer), fileName_1 + ":263:33"), fileName_1 + ":263:15"));
316
+ return tsplus_module_4.zipRight(tsplus_module_2.ensuring(this.removeSink(sink), fileName_1 + ":328:49")(tsplus_module_22.wait(this.fiber, fileName_1 + ":328:34")), fileName_1 + ":328:22")(io);
317
+ }, fileName_1 + ":323:17")), fileName_1 + ":321:28")(tsplus_module_23.environment(fileName_1 + ":321:43"));
241
318
  }
242
- get end() {
243
- return tsplus_module_1.zipRight(tsplus_module_1.defer(() => this.cleanup(), fileName_1 + ":271:15"), fileName_1 + ":270:97")(tsplus_module_1.defer(() => tsplus_module_1.foreachDiscard(this.observers.slice(), observer => this.runEnd(observer), fileName_1 + ":270:33"), fileName_1 + ":270:15"));
319
+ event(value) {
320
+ return tsplus_module_4.defer(() => tsplus_module_4.foreachDiscard(this.observers.slice(), observer => this.runValue(value, observer), fileName_1 + ":335:38"), fileName_1 + ":335:20");
244
321
  }
245
- runEvent(value, observer) {
246
- return tsplus_module_21.provideEnvironment(observer.environment, fileName_1 + ":279:26")(tsplus_module_1.tapErrorCause(cause => this.runFailCause(cause, observer), fileName_1 + ":278:21")(observer.emitter.emit(value)));
322
+ error(cause) {
323
+ return tsplus_module_4.defer(() => tsplus_module_4.foreachDiscard(this.observers.slice(), observer => this.runError(cause, observer), fileName_1 + ":339:38"), fileName_1 + ":339:20");
247
324
  }
248
- runFailCause(cause, observer) {
249
- this.observers.splice(this.observers.indexOf(observer), 1);
250
- return tsplus_module_21.provideEnvironment(observer.environment, fileName_1 + ":284:89")(tsplus_module_22.fulfill(observer.future, fileName_1 + ":284:53")(observer.emitter.failCause(cause)));
325
+ runValue(value, observer) {
326
+ return tsplus_module_4.catchAllCause(() => this.removeSink(observer.sink), fileName_1 + ":346:21")(tsplus_module_23.provideEnvironment(observer.environment, fileName_1 + ":345:26")(observer.sink.event(value)));
251
327
  }
252
- runEnd(observer) {
253
- this.observers.splice(this.observers.indexOf(observer), 1);
254
- return tsplus_module_21.provideEnvironment(observer.environment, fileName_1 + ":289:76")(tsplus_module_22.fulfill(observer.future, fileName_1 + ":289:40")(observer.emitter.end));
328
+ runError(cause, observer) {
329
+ return tsplus_module_4.catchAllCause(() => this.removeSink(observer.sink), fileName_1 + ":353:21")(tsplus_module_23.provideEnvironment(observer.environment, fileName_1 + ":352:26")(observer.sink.error(cause)));
255
330
  }
256
- cleanup() {
257
- if (this.fiber) {
258
- return tsplus_module_1.zipRight(tsplus_module_1.succeed(() => this.fiber = undefined, fileName_1 + ":294:39"), fileName_1 + ":294:36")(tsplus_module_8.interrupt(this.fiber));
259
- }
260
- return tsplus_module_1.unit;
331
+ removeSink(sink) {
332
+ return tsplus_module_4.defer(() => {
333
+ if (this.observers.length === 0) {
334
+ return tsplus_module_4.unit;
335
+ }
336
+ const index = this.observers.findIndex(observer => observer.sink === sink);
337
+ if (index > -1) {
338
+ this.observers.splice(index, 1);
339
+ if (this.observers.length === 0) {
340
+ const interrupt = tsplus_module_24.interrupt(this.fiber);
341
+ this.fiber = undefined;
342
+ return interrupt;
343
+ }
344
+ }
345
+ return tsplus_module_4.unit;
346
+ }, fileName_1 + ":357:20");
261
347
  }
262
348
  }
263
349
  exports.Multicast = Multicast;
@@ -272,63 +358,20 @@ class Hold extends Multicast {
272
358
  constructor(push) {
273
359
  super(push);
274
360
  this.push = push;
275
- this.value = new _AtomicReference.AtomicReference(tsplus_module_23.nothing(fileName_1 + ":308:47"));
276
- this.pendingEmitters = [];
277
- this.scheduledFiber = null;
361
+ this.current = new _AtomicReference.AtomicReference(tsplus_module_25.nothing(fileName_1 + ":383:49"));
278
362
  }
279
- run(emitter) {
280
- if (this.shouldScheduleFlush()) {
281
- return tsplus_module_1.flatMap(() => super.run(emitter), fileName_1 + ":318:49")(this.scheduleFlush(emitter));
363
+ run(sink) {
364
+ const current = this.current.get;
365
+ if (tsplus_module_26.isJust(current)) {
366
+ return tsplus_module_4.zipRight(super.run(sink), fileName_1 + ":393:41")(sink.event(current.value));
282
367
  }
283
- const value = this.value.get;
284
- if (tsplus_module_24.isJust(value) && this.observers.length === 0) {
285
- return tsplus_module_1.flatMap(() => super.run(emitter), fileName_1 + ":323:47")(emitter.emit(value.value));
286
- }
287
- return super.run(emitter);
288
- }
289
- emit(value) {
290
- return tsplus_module_1.defer(() => {
291
- this.addValue(value);
292
- return tsplus_module_1.flatMap(() => super.emit(value), fileName_1 + ":332:41")(this.flushPending());
293
- }, fileName_1 + ":330:20");
294
- }
295
- failCause(cause) {
296
- return tsplus_module_1.defer(() => tsplus_module_1.flatMap(() => super.failCause(cause), fileName_1 + ":337:48")(this.flushPending()), fileName_1 + ":337:20");
297
- }
298
- get end() {
299
- return tsplus_module_1.defer(() => tsplus_module_1.flatMap(() => super.end, fileName_1 + ":341:48")(this.flushPending()), fileName_1 + ":341:20");
368
+ return super.run(sink);
300
369
  }
301
- shouldScheduleFlush() {
302
- return tsplus_module_24.isJust(this.value.get) && this.observers.length > 0;
303
- }
304
- scheduleFlush(observer) {
305
- this.pendingEmitters.push([observer, tsplus_module_14.match(() => [], a => [a])(this.value.get)]);
306
- const interrupt = this.scheduledFiber ? tsplus_module_26.interruptAsFork(this.scheduledFiber, tsplus_module_25.none) : tsplus_module_1.unit;
307
- this.scheduledFiber = null;
308
- return tsplus_module_1.tap(fiber => tsplus_module_1.succeed(() => this.scheduledFiber = fiber, fileName_1 + ":361:9"), fileName_1 + ":360:87")(tsplus_module_3.forkScoped(tsplus_module_1.zipRight(tsplus_module_1.flatMap(() => this.flushPending(), fileName_1 + ":360:44")(interrupt), fileName_1 + ":360:26")(tsplus_module_1.yieldNow), fileName_1 + ":360:72"));
309
- }
310
- flushPending() {
311
- if (this.pendingEmitters.length === 0) {
312
- return tsplus_module_1.unit;
313
- }
314
- const emitters = this.pendingEmitters;
315
- this.pendingEmitters = [];
316
- return tsplus_module_1.foreachDiscard(emitters, pendingEmitter => {
317
- return tsplus_module_1.defer(() => {
318
- const [emitter, values] = pendingEmitter;
319
- const observer = this.observers.find(observer => observer.emitter === emitter);
320
- if (!observer) {
321
- return tsplus_module_1.unit;
322
- }
323
- return tsplus_module_1.foreachDiscard(values, value => this.runEvent(value, observer), fileName_1 + ":380:33");
324
- }, fileName_1 + ":374:22");
325
- }, fileName_1 + ":373:29");
326
- }
327
- addValue(value) {
328
- this.value.set(tsplus_module_23.just(value, fileName_1 + ":386:24"));
329
- this.pendingEmitters.forEach(([, values]) => {
330
- values.push(value);
331
- });
370
+ event(value) {
371
+ return tsplus_module_4.defer(() => {
372
+ this.current.set(tsplus_module_25.just(value, fileName_1 + ":401:28"));
373
+ return super.event(value);
374
+ }, fileName_1 + ":400:20");
332
375
  }
333
376
  }
334
377
  /**
@@ -337,7 +380,7 @@ class Hold extends Multicast {
337
380
  exports.Hold = Hold;
338
381
  function map_1(f) {
339
382
  return self => {
340
- return mapIO_1(a => tsplus_module_1.succeedNow(f(a), fileName_1 + ":398:43"))(self);
383
+ return mapIO_1(a => tsplus_module_4.succeedNow(f(a), fileName_1 + ":412:43"))(self);
341
384
  };
342
385
  }
343
386
  /**
@@ -345,7 +388,7 @@ function map_1(f) {
345
388
  */
346
389
  function mapError(f) {
347
390
  return self => {
348
- return tsplus_module_2.makePush(emitter => self.run(tsplus_module_2.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(tsplus_module_27.map(f)(cause)), emitter.end)));
391
+ return tsplus_module_11.makePush(emitter => self.run(tsplus_module_11.makeSink(value => emitter.event(value), cause => emitter.error(tsplus_module_27.map(f)(cause)))));
349
392
  };
350
393
  }
351
394
  /**
@@ -353,14 +396,14 @@ function mapError(f) {
353
396
  */
354
397
  function mapErrorCause(f) {
355
398
  return self => {
356
- return tsplus_module_2.makePush(emitter => self.run(tsplus_module_2.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(f(cause)), emitter.end)));
399
+ return tsplus_module_11.makePush(emitter => self.run(tsplus_module_11.makeSink(value => emitter.event(value), cause => emitter.error(f(cause)))));
357
400
  };
358
401
  }
359
402
  /**
360
403
  * @tsplus pipeable fncts.io.Push mapIO
361
404
  */
362
405
  function mapIO_1(f) {
363
- return self => tsplus_module_2.makePush(emitter => self.run(tsplus_module_2.makeEmitter(value => tsplus_module_1.matchCauseIO(cause => emitter.failCause(cause), b => emitter.emit(b), fileName_1 + ":445:34")(f(value)), cause => emitter.failCause(cause), emitter.end)));
406
+ return self => tsplus_module_11.makePush(emitter => self.run(tsplus_module_11.makeSink(value => tsplus_module_4.matchCauseIO(cause => emitter.error(cause), b => emitter.event(b), fileName_1 + ":457:34")(f(value)), cause => emitter.error(cause))));
364
407
  }
365
408
  /**
366
409
  * @tsplus pipeable fncts.io.Push merge
@@ -371,82 +414,106 @@ function merge(that) {
371
414
  };
372
415
  }
373
416
  function mergeAll_1(streams) {
374
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(latch => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, fileName_1 + ":488:8")(tsplus_module_1.zipRight(emitter.end, fileName_1 + ":488:22")(latch.await)), fileName_1 + ":476:8")(tsplus_module_28.foreachConcurrent(streams, stream => tsplus_module_3.forkScoped(stream.run(tsplus_module_2.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(cause), latch.countDown)), fileName_1 + ":485:14"), fileName_1 + ":477:37")), fileName_1 + ":475:22")(tsplus_module_4.make(tsplus_module_5.size(streams))));
417
+ return tsplus_module_11.makePush(sink => tsplus_module_14.foreachConcurrentDiscard(streams, stream => stream.run(tsplus_module_11.makeSink(sink.event, cause => tsplus_module_27.isInterruptedOnly(cause) ? tsplus_module_4.unit : sink.error(cause))), fileName_1 + ":485:32"));
418
+ }
419
+ /**
420
+ * @tsplus pipeable fncts.io.Push observe
421
+ */
422
+ function observe_1(f, __tsplusTrace) {
423
+ return self => {
424
+ return tsplus_module_4.flatMap(future => tsplus_module_4.flatMap(fiber => tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, __tsplusTrace)(tsplus_module_28.interruptFork(fiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.wait(future, __tsplusTrace)), __tsplusTrace)(tsplus_module_29.forkScoped(tsplus_module_4.flatMap(() => tsplus_module_1.succeed_(undefined, __tsplusTrace)(future), __tsplusTrace)(self.run(tsplus_module_11.makeSink(a => tsplus_module_4.catchAllCause(cause => tsplus_module_1.failCause(cause, __tsplusTrace)(future), __tsplusTrace)(f(a)), cause => tsplus_module_1.failCause(cause, __tsplusTrace)(future)))), __tsplusTrace)), __tsplusTrace)(tsplus_module_9.make(__tsplusTrace));
425
+ };
375
426
  }
376
427
  /**
377
428
  * @tsplus static fncts.io.PushOps repeatIOMaybe
378
429
  */
379
430
  function repeatIOMaybe(io, __tsplusTrace) {
380
- return unfoldIO_1(undefined, () => tsplus_module_1.catchAll(maybeError => tsplus_module_14.match(() => tsplus_module_1.succeedNow(tsplus_module_23.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_1.failNow)(maybeError), __tsplusTrace)(tsplus_module_1.map(a => tsplus_module_23.just([a, undefined], __tsplusTrace), __tsplusTrace)(io)));
431
+ return unfoldIO_1(undefined, () => tsplus_module_4.catchAll(maybeError => tsplus_module_16.match(() => tsplus_module_4.succeedNow(tsplus_module_25.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_4.failNow)(maybeError), __tsplusTrace)(tsplus_module_4.map(a => tsplus_module_25.just([a, undefined], __tsplusTrace), __tsplusTrace)(io)));
381
432
  }
382
433
  /**
383
434
  * @tsplus getter fncts.io.Push runCollect
384
435
  */
385
436
  function runCollect(self) {
386
- return tsplus_module_1.defer(() => {
437
+ return tsplus_module_4.defer(() => {
387
438
  const out = [];
388
- return tsplus_module_1.flatMap(future => tsplus_module_1.zipRight(tsplus_module_1.succeed(() => tsplus_module_29.fromArray(out), fileName_1 + ":520:11"), fileName_1 + ":519:23")(tsplus_module_1.zipRight(tsplus_module_17.wait(future, fileName_1 + ":519:15"), fileName_1 + ":518:12")(self.run(tsplus_module_2.makeEmitter(value => tsplus_module_1.succeed(() => out.push(value), fileName_1 + ":514:26"), cause => tsplus_module_17.failCause(cause, fileName_1 + ":515:40")(future), tsplus_module_17.succeed_(undefined, fileName_1 + ":516:27")(future))))), fileName_1 + ":510:42")(tsplus_module_20.make(fileName_1 + ":510:23"));
389
- }, fileName_1 + ":508:18");
439
+ return tsplus_module_4.as(() => tsplus_module_30.fromArray(out), fileName_1 + ":532:51")(observe_1(a => tsplus_module_4.succeed(() => out.push(a), fileName_1 + ":532:34"), fileName_1 + ":532:24")(self));
440
+ }, fileName_1 + ":530:18");
390
441
  }
391
442
  /**
392
443
  * @tsplus getter fncts.io.Push runDrain
393
444
  */
394
445
  function runDrain(self) {
395
- return tsplus_module_1.flatMap(future => tsplus_module_1.zipRight(tsplus_module_17.wait(future, fileName_1 + ":537:17"), fileName_1 + ":537:10")(self.run(tsplus_module_2.makeEmitter(() => tsplus_module_1.unit, cause => tsplus_module_17.failCause(cause, fileName_1 + ":534:38")(future), tsplus_module_17.succeed_(undefined, fileName_1 + ":535:25")(future)))), fileName_1 + ":529:40")(tsplus_module_20.make(fileName_1 + ":529:21"));
446
+ return observe_1(() => tsplus_module_4.unit, fileName_1 + ":540:22")(self);
396
447
  }
397
448
  /**
398
449
  * @tsplus static fncts.io.PushOps scoped
399
450
  */
400
451
  function scoped_1(io, __tsplusTrace) {
401
- return tsplus_module_2.makePush(emitter => tsplus_module_1.zipRight(emitter.end, __tsplusTrace)(tsplus_module_1.matchCauseIO(cause => emitter.failCause(cause), value => emitter.emit(value), __tsplusTrace)(tsplus_module_30.scoped(tsplus_module_1.defer(io, __tsplusTrace), __tsplusTrace))));
452
+ return tsplus_module_11.makePush(emitter => tsplus_module_4.matchCauseIO(cause => emitter.error(cause), value => emitter.event(value), __tsplusTrace)(tsplus_module_10.scoped(tsplus_module_4.defer(io, __tsplusTrace), __tsplusTrace)));
402
453
  }
403
454
  /**
404
455
  * @tsplus static fncts.io.PushOps succeed
405
456
  */
406
457
  function succeed(value) {
407
- return fromIO_1(() => tsplus_module_1.succeed(value, fileName_1 + ":558:32"));
458
+ return fromIO_1(() => tsplus_module_4.succeed(value, fileName_1 + ":559:32"));
459
+ }
460
+ /**
461
+ * @tsplus pipeable fncts.io.Push switchMap
462
+ */
463
+ function switchMap_1(f) {
464
+ return self => {
465
+ return tsplus_module_11.makePush(sink => (0, _internal.withSwitch)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
466
+ };
467
+ }
468
+ /**
469
+ * @tsplus pipeable fncts.io.Push switchMapIO
470
+ */
471
+ function switchMapIO_1(f) {
472
+ return self => {
473
+ return switchMap_1(a => fromIO_1(() => f(a)))(self);
474
+ };
408
475
  }
409
476
  /**
410
- * @tsplus pipeable fncts.io.PushOps switchMap
477
+ * @tsplus pipeable fncts.io.Push tap
411
478
  */
412
- function switchMap(f) {
479
+ function tap(f) {
413
480
  return self => {
414
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(current => tsplus_module_1.flatMap(latch => {
415
- const innerEmitter = tsplus_module_2.makeEmitter(value => emitter.emit(value), cause => tsplus_module_1.zipRight(emitter.failCause(cause), fileName_1 + ":572:41")(tsplus_module_31.set(null, fileName_1 + ":572:33")(current)), latch.countDown);
416
- return tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, fileName_1 + ":587:10")(tsplus_module_1.zipRight(emitter.end, fileName_1 + ":587:24")(latch.await)), fileName_1 + ":575:10")(self.run(tsplus_module_2.makeEmitter(value => tsplus_module_9.updateIO(fiber => tsplus_module_1.zipRight(tsplus_module_3.forkScoped(f(value).run(innerEmitter), fileName_1 + ":580:98"), fileName_1 + ":580:71")(fiber ? tsplus_module_8.interrupt(fiber) : latch.increment), fileName_1 + ":579:33")(current), cause => emitter.failCause(cause), latch.countDown)));
417
- }, fileName_1 + ":569:31")(tsplus_module_4.make(1)), fileName_1 + ":568:31")(tsplus_module_10.makeSynchronized(() => null, fileName_1 + ":568:53")));
481
+ return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => tsplus_module_4.matchCauseIO(sink.error, () => sink.event(a), fileName_1 + ":585:65")(f(a)), sink.error)));
418
482
  };
419
483
  }
420
484
  /**
421
485
  * @tsplus pipeable fncts.io.Push transform
422
486
  */
423
487
  function transform_1(f) {
424
- return self => tsplus_module_2.makePush(emitter => f(self.run(emitter)));
488
+ return self => tsplus_module_11.makePush(emitter => f(self.run(emitter)));
425
489
  }
426
490
  function unfoldLoop(s, f, emitter) {
427
- return tsplus_module_14.match(() => emitter.end, ([a, s]) => tsplus_module_1.zipRight(unfoldLoop(s, f, emitter), fileName_1 + ":607:34")(emitter.emit(a)))(f(s));
491
+ return tsplus_module_16.match(() => tsplus_module_4.unit, ([a, s]) => tsplus_module_4.zipRight(unfoldLoop(s, f, emitter), fileName_1 + ":603:35")(emitter.event(a)))(f(s));
428
492
  }
429
493
  /**
430
494
  * @tsplus static fncts.io.PushOps unfold
431
495
  */
432
496
  function unfold(s, f) {
433
- return tsplus_module_2.makePush(emitter => unfoldLoop(s, f, emitter));
497
+ return tsplus_module_11.makePush(emitter => unfoldLoop(s, f, emitter));
434
498
  }
435
499
  function unfoldIOLoop(s, f, emitter) {
436
- return tsplus_module_1.catchAllCause(cause => emitter.failCause(cause), fileName_1 + ":630:19")(tsplus_module_1.flatMap(result => tsplus_module_14.match(() => emitter.end, ([a, s]) => tsplus_module_1.zipRight(unfoldIOLoop(s, f, emitter), fileName_1 + ":627:38")(emitter.emit(a)))(result), fileName_1 + ":624:13")(f(s)));
500
+ return tsplus_module_4.catchAllCause(cause => emitter.error(cause), fileName_1 + ":626:19")(tsplus_module_4.flatMap(result => tsplus_module_16.match(() => tsplus_module_4.unit, ([a, s]) => tsplus_module_4.zipRight(unfoldIOLoop(s, f, emitter), fileName_1 + ":623:39")(emitter.event(a)))(result), fileName_1 + ":620:13")(f(s)));
437
501
  }
438
502
  /**
439
503
  * @tsplus static fncts.io.PushOps unfoldIO
440
504
  */
441
505
  function unfoldIO_1(s, f) {
442
- return tsplus_module_2.makePush(emitter => unfoldIOLoop(s, f, emitter));
506
+ return tsplus_module_11.makePush(emitter => unfoldIOLoop(s, f, emitter));
443
507
  }
444
508
  /**
445
509
  * @tsplus pipeable fncts.io.Push untilFuture
446
510
  */
447
511
  function untilFuture(future) {
448
512
  return self => {
449
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(futureFiber => tsplus_module_1.flatMap(streamFiber => tsplus_module_1.map(() => void 0, fileName_1 + ":656:10")(tsplus_module_1.via(tsplus_module_32.joinAll([futureFiber, streamFiber], fileName_1 + ":656:24"), (0, _internal.onEarlyExit)(emitter.end))), fileName_1 + ":655:30")(tsplus_module_3.forkScoped(self.run(emitter), fileName_1 + ":655:48")), fileName_1 + ":647:30")(tsplus_module_3.forkScoped(tsplus_module_1.zipRight(_internal.earlyExit, fileName_1 + ":653:22")(tsplus_module_1.matchCauseIO(cause => emitter.failCause(cause), () => tsplus_module_1.unit, fileName_1 + ":649:26")(tsplus_module_17.wait(future, fileName_1 + ":648:17"))), fileName_1 + ":653:33")));
513
+ return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => {
514
+ const exit = tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), fileName_1 + ":643:24");
515
+ return tsplus_module_4.flatMap(streamFiber => tsplus_module_4.flatMap(futureFiber => tsplus_module_4.map(() => void 0, fileName_1 + ":654:12")(tsplus_module_31.joinAll([streamFiber, futureFiber], fileName_1 + ":654:26")), fileName_1 + ":646:32")(tsplus_module_32.fork(tsplus_module_4.zipRight(exit, fileName_1 + ":652:24")(tsplus_module_4.matchCauseIO(cause => sink.error(cause), () => tsplus_module_4.unit, fileName_1 + ":648:28")(tsplus_module_1.wait(future, fileName_1 + ":647:19"))), fileName_1 + ":652:30")), fileName_1 + ":645:32")(tsplus_module_32.fork(self.run(sink), fileName_1 + ":645:47"));
516
+ }, fileName_1 + ":642:17"));
450
517
  };
451
518
  }
452
519
  /**
@@ -454,7 +521,10 @@ function untilFuture(future) {
454
521
  */
455
522
  function untilPush(signal) {
456
523
  return self => {
457
- return tsplus_module_2.makePush(emitter => tsplus_module_1.flatMap(signalFiber => tsplus_module_1.flatMap(streamFiber => tsplus_module_1.map(() => void 0, fileName_1 + ":679:10")(tsplus_module_1.via(tsplus_module_32.joinAll([signalFiber, streamFiber], fileName_1 + ":679:24"), (0, _internal.onEarlyExit)(emitter.end))), fileName_1 + ":678:30")(tsplus_module_3.forkScoped(self.run(emitter), fileName_1 + ":678:48")), fileName_1 + ":669:30")(tsplus_module_3.forkScoped(signal.run(tsplus_module_2.makeEmitter(() => _internal.earlyExit, cause => emitter.failCause(cause), _internal.earlyExit)), fileName_1 + ":676:12")));
524
+ return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => {
525
+ const exit = tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), fileName_1 + ":668:24");
526
+ return tsplus_module_4.flatMap(signalFiber => tsplus_module_4.flatMap(streamFiber => tsplus_module_4.map(() => void 0, fileName_1 + ":679:12")(tsplus_module_31.joinAll([signalFiber, streamFiber], fileName_1 + ":679:26")), fileName_1 + ":678:32")(tsplus_module_32.fork(self.run(sink), fileName_1 + ":678:47")), fileName_1 + ":670:32")(tsplus_module_32.fork(signal.run(tsplus_module_11.makeSink(() => exit, cause => sink.error(cause))), fileName_1 + ":676:14"));
527
+ }, fileName_1 + ":667:17"));
458
528
  };
459
529
  }
460
530
  /**