@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
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
  /**