@fncts/io 0.0.49 → 0.0.50

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 (226) hide show
  1. package/IO/api/foreachExec.d.ts +18 -0
  2. package/Push/Bounds.d.ts +4 -0
  3. package/Push/FlattenStrategy.d.ts +47 -0
  4. package/Push/IndexedBuffer.d.ts +19 -0
  5. package/Push/MergeStrategy.d.ts +19 -0
  6. package/Push/Operator/IOLoopOperator.d.ts +61 -0
  7. package/Push/Operator/IOOperator.d.ts +63 -0
  8. package/Push/Operator/LoopOperator.d.ts +50 -0
  9. package/Push/Operator/SyncOperator.d.ts +41 -0
  10. package/Push/Operator.d.ts +4 -0
  11. package/Push/Producer/IOProducer.d.ts +41 -0
  12. package/Push/Producer/SyncProducer.d.ts +61 -0
  13. package/Push/Producer.d.ts +1 -0
  14. package/Push/Sink.d.ts +65 -0
  15. package/Push/api.d.ts +78 -161
  16. package/Push/definition.d.ts +92 -19
  17. package/Push/internal.d.ts +3 -0
  18. package/Push.d.ts +6 -0
  19. package/Ref/Synchronized/definition.d.ts +32 -9
  20. package/Ref/definition.d.ts +12 -0
  21. package/Scope/api.d.ts +16 -1
  22. package/Sink/definition.d.ts +5 -6
  23. package/Subject/Atomic.d.ts +19 -9
  24. package/Subject/DeferredRef.d.ts +17 -0
  25. package/Subject/Hold.d.ts +19 -0
  26. package/Subject/RefSubject/Atomic.d.ts +41 -0
  27. package/Subject/RefSubject/Derived.d.ts +43 -0
  28. package/Subject/RefSubject/RefSubject.d.ts +27 -0
  29. package/Subject/definition.d.ts +14 -2
  30. package/Subject.d.ts +2 -0
  31. package/SubscriptionRef.d.ts +0 -1
  32. package/_cjs/IO/api/foreachExec.cjs +29 -4
  33. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  34. package/_cjs/Push/Bounds.cjs +2 -0
  35. package/_cjs/Push/Bounds.cjs.map +1 -0
  36. package/_cjs/Push/FlattenStrategy.cjs +95 -0
  37. package/_cjs/Push/FlattenStrategy.cjs.map +1 -0
  38. package/_cjs/Push/IndexedBuffer.cjs +70 -0
  39. package/_cjs/Push/IndexedBuffer.cjs.map +1 -0
  40. package/_cjs/Push/MergeStrategy.cjs +45 -0
  41. package/_cjs/Push/MergeStrategy.cjs.map +1 -0
  42. package/_cjs/Push/Operator/IOLoopOperator.cjs +225 -0
  43. package/_cjs/Push/Operator/IOLoopOperator.cjs.map +1 -0
  44. package/_cjs/Push/Operator/IOOperator.cjs +104 -0
  45. package/_cjs/Push/Operator/IOOperator.cjs.map +1 -0
  46. package/_cjs/Push/Operator/LoopOperator.cjs +165 -0
  47. package/_cjs/Push/Operator/LoopOperator.cjs.map +1 -0
  48. package/_cjs/Push/Operator/SyncOperator.cjs +78 -0
  49. package/_cjs/Push/Operator/SyncOperator.cjs.map +1 -0
  50. package/_cjs/Push/Operator.cjs +2 -0
  51. package/_cjs/Push/Operator.cjs.map +1 -0
  52. package/_cjs/Push/Producer/IOProducer.cjs +67 -0
  53. package/_cjs/Push/Producer/IOProducer.cjs.map +1 -0
  54. package/_cjs/Push/Producer/SyncProducer.cjs +107 -0
  55. package/_cjs/Push/Producer/SyncProducer.cjs.map +1 -0
  56. package/_cjs/Push/Producer.cjs +2 -0
  57. package/_cjs/Push/Producer.cjs.map +1 -0
  58. package/_cjs/Push/Sink.cjs +219 -0
  59. package/_cjs/Push/Sink.cjs.map +1 -0
  60. package/_cjs/Push/api.cjs +339 -383
  61. package/_cjs/Push/api.cjs.map +1 -1
  62. package/_cjs/Push/definition.cjs +79 -22
  63. package/_cjs/Push/definition.cjs.map +1 -1
  64. package/_cjs/Push/internal.cjs +31 -26
  65. package/_cjs/Push/internal.cjs.map +1 -1
  66. package/_cjs/Push.cjs +66 -0
  67. package/_cjs/Push.cjs.map +1 -1
  68. package/_cjs/Ref/Synchronized/definition.cjs +12 -12
  69. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  70. package/_cjs/Ref/definition.cjs.map +1 -1
  71. package/_cjs/Scope/api.cjs +28 -7
  72. package/_cjs/Scope/api.cjs.map +1 -1
  73. package/_cjs/Sink/definition.cjs +2 -3
  74. package/_cjs/Sink/definition.cjs.map +1 -1
  75. package/_cjs/Stream/definition.cjs.map +1 -1
  76. package/_cjs/Subject/Atomic.cjs +45 -10
  77. package/_cjs/Subject/Atomic.cjs.map +1 -1
  78. package/_cjs/Subject/DeferredRef.cjs +53 -0
  79. package/_cjs/Subject/DeferredRef.cjs.map +1 -0
  80. package/_cjs/Subject/Hold.cjs +41 -0
  81. package/_cjs/Subject/Hold.cjs.map +1 -0
  82. package/_cjs/Subject/RefSubject/Atomic.cjs +130 -0
  83. package/_cjs/Subject/RefSubject/Atomic.cjs.map +1 -0
  84. package/_cjs/Subject/RefSubject/Derived.cjs +98 -0
  85. package/_cjs/Subject/RefSubject/Derived.cjs.map +1 -0
  86. package/_cjs/Subject/RefSubject/RefSubject.cjs +19 -0
  87. package/_cjs/Subject/RefSubject/RefSubject.cjs.map +1 -0
  88. package/_cjs/Subject/definition.cjs +16 -1
  89. package/_cjs/Subject/definition.cjs.map +1 -1
  90. package/_cjs/Subject.cjs +22 -0
  91. package/_cjs/Subject.cjs.map +1 -1
  92. package/_cjs/SubscriptionRef.cjs +0 -1
  93. package/_cjs/SubscriptionRef.cjs.map +1 -1
  94. package/_mjs/IO/api/foreachExec.mjs +27 -4
  95. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  96. package/_mjs/Push/Bounds.mjs +2 -0
  97. package/_mjs/Push/Bounds.mjs.map +1 -0
  98. package/_mjs/Push/FlattenStrategy.mjs +86 -0
  99. package/_mjs/Push/FlattenStrategy.mjs.map +1 -0
  100. package/_mjs/Push/IndexedBuffer.mjs +61 -0
  101. package/_mjs/Push/IndexedBuffer.mjs.map +1 -0
  102. package/_mjs/Push/MergeStrategy.mjs +34 -0
  103. package/_mjs/Push/MergeStrategy.mjs.map +1 -0
  104. package/_mjs/Push/Operator/IOLoopOperator.mjs +208 -0
  105. package/_mjs/Push/Operator/IOLoopOperator.mjs.map +1 -0
  106. package/_mjs/Push/Operator/IOOperator.mjs +91 -0
  107. package/_mjs/Push/Operator/IOOperator.mjs.map +1 -0
  108. package/_mjs/Push/Operator/LoopOperator.mjs +151 -0
  109. package/_mjs/Push/Operator/LoopOperator.mjs.map +1 -0
  110. package/_mjs/Push/Operator/SyncOperator.mjs +67 -0
  111. package/_mjs/Push/Operator/SyncOperator.mjs.map +1 -0
  112. package/_mjs/Push/Operator.mjs +2 -0
  113. package/_mjs/Push/Operator.mjs.map +1 -0
  114. package/_mjs/Push/Producer/IOProducer.mjs +55 -0
  115. package/_mjs/Push/Producer/IOProducer.mjs.map +1 -0
  116. package/_mjs/Push/Producer/SyncProducer.mjs +90 -0
  117. package/_mjs/Push/Producer/SyncProducer.mjs.map +1 -0
  118. package/_mjs/Push/Producer.mjs +2 -0
  119. package/_mjs/Push/Producer.mjs.map +1 -0
  120. package/_mjs/Push/Sink.mjs +206 -0
  121. package/_mjs/Push/Sink.mjs.map +1 -0
  122. package/_mjs/Push/api.mjs +311 -344
  123. package/_mjs/Push/api.mjs.map +1 -1
  124. package/_mjs/Push/definition.mjs +73 -18
  125. package/_mjs/Push/definition.mjs.map +1 -1
  126. package/_mjs/Push/internal.mjs +30 -26
  127. package/_mjs/Push/internal.mjs.map +1 -1
  128. package/_mjs/Push.mjs +7 -1
  129. package/_mjs/Push.mjs.map +1 -1
  130. package/_mjs/Ref/Synchronized/definition.mjs +12 -12
  131. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  132. package/_mjs/Ref/definition.mjs.map +1 -1
  133. package/_mjs/Scope/api.mjs +22 -4
  134. package/_mjs/Scope/api.mjs.map +1 -1
  135. package/_mjs/Sink/definition.mjs +2 -3
  136. package/_mjs/Sink/definition.mjs.map +1 -1
  137. package/_mjs/Stream/definition.mjs.map +1 -1
  138. package/_mjs/Subject/Atomic.mjs +46 -10
  139. package/_mjs/Subject/Atomic.mjs.map +1 -1
  140. package/_mjs/Subject/DeferredRef.mjs +45 -0
  141. package/_mjs/Subject/DeferredRef.mjs.map +1 -0
  142. package/_mjs/Subject/Hold.mjs +33 -0
  143. package/_mjs/Subject/Hold.mjs.map +1 -0
  144. package/_mjs/Subject/RefSubject/Atomic.mjs +122 -0
  145. package/_mjs/Subject/RefSubject/Atomic.mjs.map +1 -0
  146. package/_mjs/Subject/RefSubject/Derived.mjs +90 -0
  147. package/_mjs/Subject/RefSubject/Derived.mjs.map +1 -0
  148. package/_mjs/Subject/RefSubject/RefSubject.mjs +12 -0
  149. package/_mjs/Subject/RefSubject/RefSubject.mjs.map +1 -0
  150. package/_mjs/Subject/definition.mjs +14 -0
  151. package/_mjs/Subject/definition.mjs.map +1 -1
  152. package/_mjs/Subject.mjs +2 -0
  153. package/_mjs/Subject.mjs.map +1 -1
  154. package/_mjs/SubscriptionRef.mjs +0 -1
  155. package/_mjs/SubscriptionRef.mjs.map +1 -1
  156. package/_src/IO/api/foreachExec.ts +47 -0
  157. package/_src/Push/Bounds.ts +4 -0
  158. package/_src/Push/FlattenStrategy.ts +137 -0
  159. package/_src/Push/IndexedBuffer.ts +79 -0
  160. package/_src/Push/MergeStrategy.ts +59 -0
  161. package/_src/Push/Operator/IOLoopOperator.ts +413 -0
  162. package/_src/Push/Operator/IOOperator.ts +173 -0
  163. package/_src/Push/Operator/LoopOperator.ts +242 -0
  164. package/_src/Push/Operator/SyncOperator.ts +107 -0
  165. package/_src/Push/Operator.ts +7 -0
  166. package/_src/Push/Producer/IOProducer.ts +83 -0
  167. package/_src/Push/Producer/SyncProducer.ts +105 -0
  168. package/_src/Push/Producer.ts +0 -0
  169. package/_src/Push/Sink.ts +302 -0
  170. package/_src/Push/api.ts +387 -513
  171. package/_src/Push/definition.ts +216 -23
  172. package/_src/Push/internal.ts +11 -0
  173. package/_src/Push.ts +7 -1
  174. package/_src/Ref/Synchronized/definition.ts +81 -37
  175. package/_src/Ref/definition.ts +26 -0
  176. package/_src/Scope/api.ts +22 -0
  177. package/_src/Sink/definition.ts +4 -5
  178. package/_src/Stream/definition.ts +0 -1
  179. package/_src/Subject/Atomic.ts +68 -11
  180. package/_src/Subject/DeferredRef.ts +44 -0
  181. package/_src/Subject/Hold.ts +48 -0
  182. package/_src/Subject/RefSubject/Atomic.ts +193 -0
  183. package/_src/Subject/RefSubject/Derived.ts +179 -0
  184. package/_src/Subject/RefSubject/RefSubject.ts +90 -0
  185. package/_src/Subject/definition.ts +21 -3
  186. package/_src/Subject.ts +5 -3
  187. package/_src/SubscriptionRef.ts +1 -1
  188. package/_src/index.ts +49 -50
  189. package/index.d.ts +0 -1
  190. package/package.json +4 -4
  191. package/RefSubject/Atomic.d.ts +0 -34
  192. package/RefSubject/Synchronized/api.d.ts +0 -9
  193. package/RefSubject/Synchronized/definition.d.ts +0 -39
  194. package/RefSubject/api.d.ts +0 -120
  195. package/RefSubject/definition.d.ts +0 -52
  196. package/RefSubject.d.ts +0 -3
  197. package/_cjs/RefSubject/Atomic.cjs +0 -107
  198. package/_cjs/RefSubject/Atomic.cjs.map +0 -1
  199. package/_cjs/RefSubject/Synchronized/api.cjs +0 -22
  200. package/_cjs/RefSubject/Synchronized/api.cjs.map +0 -1
  201. package/_cjs/RefSubject/Synchronized/definition.cjs +0 -55
  202. package/_cjs/RefSubject/Synchronized/definition.cjs.map +0 -1
  203. package/_cjs/RefSubject/api.cjs +0 -251
  204. package/_cjs/RefSubject/api.cjs.map +0 -1
  205. package/_cjs/RefSubject/definition.cjs +0 -26
  206. package/_cjs/RefSubject/definition.cjs.map +0 -1
  207. package/_cjs/RefSubject.cjs +0 -39
  208. package/_cjs/RefSubject.cjs.map +0 -1
  209. package/_mjs/RefSubject/Atomic.mjs +0 -99
  210. package/_mjs/RefSubject/Atomic.mjs.map +0 -1
  211. package/_mjs/RefSubject/Synchronized/api.mjs +0 -15
  212. package/_mjs/RefSubject/Synchronized/api.mjs.map +0 -1
  213. package/_mjs/RefSubject/Synchronized/definition.mjs +0 -47
  214. package/_mjs/RefSubject/Synchronized/definition.mjs.map +0 -1
  215. package/_mjs/RefSubject/api.mjs +0 -229
  216. package/_mjs/RefSubject/api.mjs.map +0 -1
  217. package/_mjs/RefSubject/definition.mjs +0 -19
  218. package/_mjs/RefSubject/definition.mjs.map +0 -1
  219. package/_mjs/RefSubject.mjs +0 -5
  220. package/_mjs/RefSubject.mjs.map +0 -1
  221. package/_src/RefSubject/Atomic.ts +0 -129
  222. package/_src/RefSubject/Synchronized/api.ts +0 -14
  223. package/_src/RefSubject/Synchronized/definition.ts +0 -76
  224. package/_src/RefSubject/api.ts +0 -253
  225. package/_src/RefSubject/definition.ts +0 -70
  226. package/_src/RefSubject.ts +0 -5
package/_cjs/Push/api.cjs CHANGED
@@ -3,525 +3,481 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Multicast = exports.Hold = void 0;
7
- exports.as = as;
8
- exports.async = async;
9
- exports.combineLatest = exports.asyncInterrupt = void 0;
10
- exports.combineLatestWith = combineLatestWith;
11
- exports.debounce = debounce;
6
+ exports.bracketExit = bracketExit;
7
+ exports.combineLatest = combineLatest;
8
+ exports.contramapEnvironment = void 0;
12
9
  exports.defer = defer;
13
- exports.exhaustMap = void 0;
14
- exports.exhaustMapIO = exhaustMapIO;
10
+ exports.failCauseNow = exports.failCause = void 0;
11
+ exports.failNow = failNow;
15
12
  exports.filter = filter;
16
- exports.filterIO = filterIO;
17
13
  exports.filterMap = filterMap;
18
- exports.filterMapIO = filterMapIO;
19
- exports.flatMap = void 0;
20
- exports.flatMapConcurrent = flatMapConcurrent;
21
- exports.flatten = exports.flatMapConcurrentUnbounded = exports.flatMapConcurrentBounded = void 0;
22
- exports.fromAsyncIterable = fromAsyncIterable;
23
- exports.fromIO = void 0;
14
+ exports.flatMap = flatMap;
15
+ exports.flatMapUnbounded = flatMapUnbounded;
16
+ exports.flatMapWithStrategy = void 0;
17
+ exports.fromArray = fromArray;
18
+ exports.fromIOProducer = exports.fromIO = void 0;
24
19
  exports.fromIterable = fromIterable;
25
- exports.hold = hold;
26
- exports.map = void 0;
27
- exports.mapError = mapError;
28
- exports.mapErrorCause = mapErrorCause;
29
- exports.mapIO = void 0;
30
- exports.merge = merge;
31
- exports.mergeAll = void 0;
32
- exports.multicast = multicast;
33
- exports.observe = exports.never = void 0;
34
- exports.repeatIOMaybe = repeatIOMaybe;
35
- exports.runCollect = runCollect;
36
- exports.runDrain = runDrain;
37
- exports.scoped = void 0;
20
+ exports.fromScheduled = fromScheduled;
21
+ exports.fromSyncProducer = void 0;
22
+ exports.haltNow = haltNow;
23
+ exports.makePush = makePush;
24
+ exports.map = map;
25
+ exports.mapAccum = mapAccum;
26
+ exports.mapIO = mapIO;
27
+ exports.mapIOWithStrategy = mapIOWithStrategy;
28
+ exports.mergeWithStrategy = mergeWithStrategy;
29
+ exports.observe = observe;
30
+ exports.orElseCause = orElseCause;
31
+ exports.provideEnvironment = provideEnvironment;
32
+ exports.provideLayer = provideLayer;
33
+ exports.provideSomeEnvironment = void 0;
34
+ exports.schedule = schedule;
38
35
  exports.succeed = succeed;
39
- exports.switchMapIO = exports.switchMap = void 0;
40
- exports.tap = tap;
41
- exports.transform = void 0;
42
- exports.unfold = unfold;
43
- exports.unfoldIO = void 0;
44
- exports.untilFuture = untilFuture;
45
- exports.untilPush = untilPush;
46
- exports.unwrap = void 0;
47
- exports.unwrapScoped = unwrapScoped;
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/constructors"));
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"));
74
- var tsplus_module_27 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Cause/api"));
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"));
80
- var tsplus_module_33 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/asyncInterrupt"));
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");
84
- var _definition4 = /*#__PURE__*/require("./definition.cjs");
36
+ exports.succeedNow = void 0;
37
+ exports.switchMap = switchMap;
38
+ exports.transform = transform;
39
+ exports.unwrap = unwrap;
40
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api"));
41
+ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/bracketExit"));
42
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/Iterable/api"));
43
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Push/Sink"));
44
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/CountdownLatch"));
45
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/environment"));
46
+ var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Cause/api"));
47
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
48
+ var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Push/FlattenStrategy"));
49
+ var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/ExecutionStrategy"));
50
+ var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Push/Producer/SyncProducer"));
51
+ var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/definition"));
52
+ var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Scope/api"));
53
+ var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Layer/MemoMap"));
54
+ var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Environment/api"));
55
+ var _Push = /*#__PURE__*/require("@fncts/io/Push");
56
+ var _IOProducer = /*#__PURE__*/require("./Producer/IOProducer.cjs");
85
57
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
86
- var _a;
87
58
  const fileName_1 = "(@fncts/io) src/Push/api.ts";
88
- const asyncInterrupt = exports.asyncInterrupt = asyncInterrupt_1;
89
- const combineLatest = exports.combineLatest = combineLatest_1;
90
- const exhaustMap = exports.exhaustMap = exhaustMap_1;
91
- const flatMapConcurrentBounded = exports.flatMapConcurrentBounded = flatMapConcurrentBounded_1;
92
- const flatMapConcurrentUnbounded = exports.flatMapConcurrentUnbounded = flatMapConcurrentUnbounded_1;
93
- const flatMap = exports.flatMap = flatMap_1;
94
- const flatten = exports.flatten = flatten_1;
59
+ const contramapEnvironment = exports.contramapEnvironment = contramapEnvironment_1;
60
+ const failCause = exports.failCause = failCause_1;
61
+ const failCauseNow = exports.failCauseNow = failCauseNow_1;
62
+ const flatMapWithStrategy = exports.flatMapWithStrategy = flatMapWithStrategy_1;
95
63
  const fromIO = exports.fromIO = fromIO_1;
96
- const map = exports.map = map_1;
97
- const mapIO = exports.mapIO = mapIO_1;
98
- const mergeAll = exports.mergeAll = mergeAll_1;
99
- const observe = exports.observe = observe_1;
100
- const scoped = exports.scoped = scoped_1;
101
- const switchMap = exports.switchMap = switchMap_1;
102
- const switchMapIO = exports.switchMapIO = switchMapIO_1;
103
- const transform = exports.transform = transform_1;
104
- const unfoldIO = exports.unfoldIO = unfoldIO_1;
105
- const unwrap = exports.unwrap = unwrap_1;
106
- /**
107
- * @tsplus pipeable fncts.io.Push as
108
- */
109
- function as(b) {
110
- return self => {
111
- return map_1(b)(self);
112
- };
64
+ const fromIOProducer = exports.fromIOProducer = fromIOProducer_1;
65
+ const fromSyncProducer = exports.fromSyncProducer = fromSyncProducer_1;
66
+ const provideSomeEnvironment = exports.provideSomeEnvironment = provideSomeEnvironment_1;
67
+ const succeedNow = exports.succeedNow = succeedNow_1;
68
+ class BracketExit extends _Push.Push {
69
+ constructor(acquire, use, release) {
70
+ super();
71
+ this.acquire = acquire;
72
+ this.use = use;
73
+ this.release = release;
74
+ }
75
+ run(sink) {
76
+ return tsplus_module_1.catchAllCause(sink.onFailure, fileName_1 + ":27:20")(tsplus_module_2.bracketExit(() => this.acquire, a => this.use(a).run(sink), (a, exit) => tsplus_module_1.catchAllCause(sink.onFailure, fileName_1 + ":26:55")(this.release(a, exit)), fileName_1 + ":23:26"));
77
+ }
113
78
  }
114
79
  /**
115
- * @tsplus static fncts.io.PushOps asyncInterrupt
80
+ * @tsplus static fncts.io.PushOps bracketExit
116
81
  */
117
- function asyncInterrupt_1(make) {
118
- 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 => {
119
- const unsafeSink = {
120
- event: value => runtime.unsafeRunOrFork(tsplus_module_5.forkIn(scope, fileName_1 + ":34:77")(sink.event(value)), fileName_1 + ":34:52"),
121
- 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")
122
- };
123
- 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"));
124
- }, 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"));
82
+ function bracketExit(acquire, use, release) {
83
+ return new BracketExit(acquire, use, release);
125
84
  }
126
- /**
127
- * @tsplus static fncts.io.PushOps async
128
- */
129
- function async(make) {
130
- return asyncInterrupt_1(sink => {
131
- make(sink);
132
- return tsplus_module_12.left(tsplus_module_4.unit, fileName_1 + ":54:23");
133
- });
85
+ class CombineLatest extends _Push.Push {
86
+ constructor(streams) {
87
+ super();
88
+ this.streams = streams;
89
+ }
90
+ run(sink) {
91
+ return _Push.UnboundedStrategy.withFork(fork => (() => {
92
+ const size = tsplus_module_3.size(this.streams);
93
+ return tsplus_module_1.flatMap(latch => {
94
+ const ref = Array(size).fill(CombineLatest.UNSET, 0, size);
95
+ const emitIfReady = tsplus_module_1.whenIO(latch.isOpen, fileName_1 + ":55:67")(tsplus_module_1.defer(() => sink.onSuccess(ref), fileName_1 + ":55:39"));
96
+ return tsplus_module_1.map(() => void 0, fileName_1 + ":57:10")(tsplus_module_1.foreach(tsplus_module_3.zipWithIndex(this.streams), ([i, stream]) => fork(stream.run(tsplus_module_4.unsafeMakeSink(value => tsplus_module_1.zipRight(emitIfReady, fileName_1 + ":73:25")(tsplus_module_1.defer(() => {
97
+ const indexEmpty = ref[i] === CombineLatest.UNSET;
98
+ ref[i] = value;
99
+ if (indexEmpty) {
100
+ return latch.countDown;
101
+ } else {
102
+ return tsplus_module_1.unit;
103
+ }
104
+ }, fileName_1 + ":63:29")), cause => sink.onFailure(cause)))), fileName_1 + ":58:21"));
105
+ }, fileName_1 + ":53:32")(tsplus_module_5.make(size));
106
+ })());
107
+ }
134
108
  }
135
- function combineLatest_1(streams) {
136
- return tsplus_module_11.makePush(emitter => (() => {
137
- const size = tsplus_module_13.size(streams);
138
- return tsplus_module_4.flatMap(ref => {
139
- 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"));
140
- 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"));
141
- }, fileName_1 + ":69:30")(tsplus_module_4.succeed(() => Array(size), fileName_1 + ":69:33"));
142
- })());
109
+ CombineLatest.UNSET = /*#__PURE__*/Symbol();
110
+ function combineLatest(streams) {
111
+ return new CombineLatest(streams);
143
112
  }
144
- /**
145
- * @tsplus pipeable fncts.io.PushOps combineLatestWith
146
- */
147
- function combineLatestWith(that, f) {
148
- return self => {
149
- return map_1(([a, b]) => f(a, b))(combineLatest_1([self, that]));
150
- };
113
+ class ContramapEnvironment extends _Push.Push {
114
+ constructor(self, f) {
115
+ super();
116
+ this.self = self;
117
+ this.f = f;
118
+ }
119
+ run(sink) {
120
+ return tsplus_module_6.contramapEnvironment(this.f, fileName_1 + ":105:52")(this.self.run(sink));
121
+ }
151
122
  }
152
123
  /**
153
- * @tsplus pipeable fncts.io.Push debounce
124
+ * @tsplus pipeable fncts.io.Push contramapEnvironment
154
125
  */
155
- function debounce(duration) {
156
- return self => {
157
- return switchMapIO_1(a => tsplus_module_15.delay(duration)(tsplus_module_4.succeedNow(a, fileName_1 + ":101:49")))(self);
158
- };
126
+ function contramapEnvironment_1(f) {
127
+ return self => new ContramapEnvironment(self, f);
128
+ }
129
+ class Defer extends _Push.Push {
130
+ constructor(self) {
131
+ super();
132
+ this.self = self;
133
+ }
134
+ run(sink) {
135
+ return tsplus_module_1.defer(() => this.self().run(sink), fileName_1 + ":121:20");
136
+ }
159
137
  }
160
138
  /**
161
139
  * @tsplus static fncts.io.PushOps defer
162
140
  */
163
141
  function defer(self) {
164
- 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")));
142
+ return new Defer(self);
165
143
  }
166
144
  /**
167
- * @tsplus pipeable fncts.io.Push exhaustMap
145
+ * @tsplus static fncts.io.PushOps failCause
168
146
  */
169
- function exhaustMap_1(f) {
170
- return self => {
171
- return tsplus_module_11.makePush(sink => (0, _internal.withExhaust)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
172
- };
147
+ function failCause_1(cause) {
148
+ const op = new _Push.PushPrimitive(3 /* PushTag.FailCause */);
149
+ op.i0 = cause;
150
+ return op;
173
151
  }
174
152
  /**
175
- * @tsplus pipeable fncts.io.Push exhaustMapIO
153
+ * @tsplus static fncts.io.PushOps failCauseNow
176
154
  */
177
- function exhaustMapIO(f) {
178
- return self => {
179
- return exhaustMap_1(a => fromIO_1(() => f(a)))(self);
180
- };
155
+ function failCauseNow_1(cause) {
156
+ const op = new _Push.PushPrimitive(3 /* PushTag.FailCause */);
157
+ op.i0 = () => cause;
158
+ return op;
181
159
  }
182
160
  /**
183
- * @tsplus pipeable fncts.io.Push filterIO
161
+ * @tsplus static fncts.io.PushOps failNow
184
162
  */
185
- function filterIO(predicate) {
186
- return self => {
187
- 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)));
188
- };
163
+ function failNow(error) {
164
+ return failCauseNow_1(tsplus_module_7.fail(error));
189
165
  }
190
- /**
191
- * @tsplus pipeable fncts.io.Push filterMapIO
192
- */
193
- function filterMapIO(f) {
194
- return self => {
195
- 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)));
196
- };
166
+ class Filter extends _Push.Push {
167
+ constructor(self, p) {
168
+ super();
169
+ this.self = self;
170
+ this.p = p;
171
+ }
172
+ run(sink) {
173
+ return this.self.run(tsplus_module_4.unsafeMakeSink(value => {
174
+ if (this.p(value)) {
175
+ return sink.onSuccess(value);
176
+ } else {
177
+ return tsplus_module_1.unit;
178
+ }
179
+ }, cause => sink.onFailure(cause)));
180
+ }
197
181
  }
198
- function filter(predicate) {
199
- return self => {
200
- return tsplus_module_11.makePush(sink => self.run(tsplus_module_11.makeSink(a => predicate(a) ? sink.event(a) : tsplus_module_4.unit, sink.error)));
201
- };
182
+ function filter(p) {
183
+ return self => new Filter(self, p);
184
+ }
185
+ class FilterMap extends _Push.Push {
186
+ constructor(self, f) {
187
+ super();
188
+ this.self = self;
189
+ this.f = f;
190
+ }
191
+ run(sink) {
192
+ return this.self.run(tsplus_module_4.unsafeMakeSink(value => tsplus_module_8.match(() => tsplus_module_1.unit, b => sink.onSuccess(b))(this.f(value)), cause => sink.onFailure(cause)));
193
+ }
202
194
  }
203
195
  /**
204
196
  * @tsplus pipeable fncts.io.Push filterMap
205
197
  */
206
198
  function filterMap(f) {
207
- return self => {
208
- 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)));
209
- };
210
- }
211
- /**
212
- * @tsplus pipeable fncts.io.Push flatMapConcurrentBounded
213
- */
214
- function flatMapConcurrentBounded_1(f, concurrency) {
215
- return self => {
216
- 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")));
217
- };
199
+ return self => new FilterMap(self, f);
218
200
  }
219
201
  /**
220
- * @tsplus pipeable fncts.io.Push flatMapConcurrentUnbounded
202
+ * @tsplus pipeable fncts.io.Push flatMap
221
203
  */
222
- function flatMapConcurrentUnbounded_1(f) {
204
+ function flatMap(f) {
223
205
  return self => {
224
- return tsplus_module_11.makePush(sink => (0, _internal.withUnboundedConcurrency)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
206
+ const op = new _Push.PushPrimitive(4 /* PushTag.OnSuccess */);
207
+ op.i0 = self;
208
+ op.i1 = f;
209
+ return op;
225
210
  };
226
211
  }
227
212
  /**
228
- * @tsplus pipeable fncts.io.Push flatMapConcurrent
213
+ * @tsplus pipeable fncts.io.Push flatMapUnbounded
229
214
  */
230
- function flatMapConcurrent(f) {
231
- return self => {
232
- 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));
233
- };
215
+ function flatMapUnbounded(f) {
216
+ return self => flatMapWithStrategy_1(f, tsplus_module_9.UnboundedStrategy, tsplus_module_10.concurrent)(self);
234
217
  }
235
218
  /**
236
- * @tsplus pipeable fncts.io.Push flatMap
219
+ * @tsplus pipeable fncts.io.Push flatMapWithStrategy
237
220
  */
238
- function flatMap_1(f) {
221
+ function flatMapWithStrategy_1(f, flattenStrategy, executionStrategy) {
239
222
  return self => {
240
- return flatMapConcurrentBounded_1(f, 1)(self);
223
+ const op = new _Push.PushPrimitive(5 /* PushTag.OnSuccessWithStrategy */);
224
+ op.i0 = self;
225
+ op.i1 = f;
226
+ op.i2 = flattenStrategy;
227
+ op.i3 = executionStrategy;
228
+ return op;
241
229
  };
242
230
  }
243
231
  /**
244
- * @tsplus getter fncts.io.Push flatten
232
+ * @tsplus static fncts.io.PushOps fromArray
245
233
  */
246
- function flatten_1(self) {
247
- return flatMap_1(tsplus_module_19.identity)(self);
234
+ function fromArray(array) {
235
+ return fromSyncProducer_1(tsplus_module_11.fromArray(array));
248
236
  }
249
237
  /**
250
238
  * @tsplus static fncts.io.PushOps fromIO
251
239
  */
252
240
  function fromIO_1(io) {
253
- 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")));
241
+ const concrete = io;
242
+ switch (concrete._ioOpCode) {
243
+ case 0 /* IOTag.SucceedNow */:
244
+ {
245
+ return succeedNow_1(concrete.i0);
246
+ }
247
+ case 1 /* IOTag.Fail */:
248
+ {
249
+ return failCause_1(concrete.i0);
250
+ }
251
+ case 2 /* IOTag.Sync */:
252
+ {
253
+ return fromSyncProducer_1(tsplus_module_11.fromSync(concrete.i0));
254
+ }
255
+ default:
256
+ {
257
+ return fromIOProducer_1(new _IOProducer.FromIO(io));
258
+ }
259
+ }
254
260
  }
255
261
  /**
256
- * @tsplus static fncts.io.PushOps fromAsyncIterable
262
+ * @tsplus static fncts.io.PushOps fromIOProducer
257
263
  */
258
- function fromAsyncIterable(iterable) {
259
- 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"));
260
- }
261
- function fromAsyncIterableLoop(iterator, sink, cb, __tsplusTrace) {
262
- 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));
264
+ function fromIOProducer_1(producer) {
265
+ const op = new _Push.PushPrimitive(2 /* PushTag.ProducerIO */);
266
+ op.i0 = producer;
267
+ return op;
263
268
  }
264
269
  /**
265
270
  * @tsplus static fncts.io.PushOps fromIterable
266
271
  */
267
272
  function fromIterable(iterable) {
268
- 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"));
273
+ return fromSyncProducer_1(tsplus_module_11.fromIterable(iterable));
269
274
  }
270
- function fromIterableLoop(iterator, sink, cb) {
271
- return tsplus_module_4.defer(() => {
272
- const value = iterator.next();
273
- 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));
274
- }, fileName_1 + ":290:18");
275
+ /**
276
+ * @tsplus static fncts.io.PushOps fromScheduled
277
+ */
278
+ function fromScheduled(io, schedule) {
279
+ return fromIOProducer_1(new _IOProducer.FromScheduled(io, schedule));
280
+ }
281
+ /**
282
+ * @tsplus static fncts.io.PushOps fromSyncProducer
283
+ */
284
+ function fromSyncProducer_1(producer) {
285
+ const op = new _Push.PushPrimitive(1 /* PushTag.ProducerSync */);
286
+ op.i0 = producer;
287
+ return op;
275
288
  }
276
289
  /**
277
- * @tsplus getter fncts.io.Push multicast
290
+ * @tsplus static fncts.io.PushOps haltNow
278
291
  */
279
- function multicast(self) {
280
- return new Multicast(self);
292
+ function haltNow(error) {
293
+ return failCauseNow_1(tsplus_module_7.halt(error));
281
294
  }
282
- class Multicast {
283
- constructor(push) {
284
- this.push = push;
285
- this[_a] = _definition4.PushTypeId;
286
- this.observers = [];
295
+ /**
296
+ * @tsplus static fncts.io.PushOps __call
297
+ */
298
+ function makePush(run) {
299
+ const op = new _Push.PushPrimitive(8 /* PushTag.FromPush */);
300
+ op.i0 = run;
301
+ return op;
302
+ }
303
+ class Map extends _Push.Push {
304
+ constructor(self, f) {
305
+ super();
306
+ this.self = self;
307
+ this.f = f;
287
308
  }
288
309
  run(sink) {
289
- return tsplus_module_4.flatMap(environment => tsplus_module_4.map(() => void 0, fileName_1 + ":322:8")(tsplus_module_4.defer(() => {
290
- let io = tsplus_module_4.unit;
291
- if (this.observers.push({
292
- sink: sink,
293
- environment
294
- }) === 1) {
295
- 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"));
296
- }
297
- 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);
298
- }, fileName_1 + ":323:17")), fileName_1 + ":321:28")(tsplus_module_23.environment(fileName_1 + ":321:43"));
299
- }
300
- event(value) {
301
- 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");
302
- }
303
- error(cause) {
304
- 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");
305
- }
306
- runValue(value, observer) {
307
- 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)));
308
- }
309
- runError(cause, observer) {
310
- 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)));
311
- }
312
- removeSink(sink) {
313
- return tsplus_module_4.defer(() => {
314
- if (this.observers.length === 0) {
315
- return tsplus_module_4.unit;
316
- }
317
- const index = this.observers.findIndex(observer => observer.sink === sink);
318
- if (index > -1) {
319
- this.observers.splice(index, 1);
320
- if (this.observers.length === 0) {
321
- const interrupt = tsplus_module_24.interrupt(this.fiber);
322
- this.fiber = undefined;
323
- return interrupt;
324
- }
325
- }
326
- return tsplus_module_4.unit;
327
- }, fileName_1 + ":357:20");
310
+ return this.self.run(tsplus_module_4.unsafeMakeSink(value => sink.onSuccess(this.f(value)), cause => sink.onFailure(cause)));
328
311
  }
329
312
  }
330
- exports.Multicast = Multicast;
331
- _a = _definition4.PushTypeId;
332
313
  /**
333
- * @tsplus getter fncts.io.Push hold
314
+ * @tsplus pipeable fncts.io.Push map
334
315
  */
335
- function hold(self) {
336
- return new Hold(self);
316
+ function map(f) {
317
+ return self => new Map(self, f);
337
318
  }
338
- class Hold extends Multicast {
339
- constructor(push) {
340
- super(push);
341
- this.push = push;
342
- this.current = new _AtomicReference.AtomicReference(tsplus_module_25.nothing(fileName_1 + ":383:49"));
319
+ class MapAccum extends _Push.Push {
320
+ constructor(self, seed, f) {
321
+ super();
322
+ this.self = self;
323
+ this.seed = seed;
324
+ this.f = f;
343
325
  }
344
326
  run(sink) {
345
- const current = this.current.get;
346
- if (tsplus_module_26.isJust(current)) {
347
- return tsplus_module_4.zipRight(super.run(sink), fileName_1 + ":393:41")(sink.event(current.value));
348
- }
349
- return super.run(sink);
350
- }
351
- event(value) {
352
- return tsplus_module_4.defer(() => {
353
- this.current.set(tsplus_module_25.just(value, fileName_1 + ":401:28"));
354
- return super.event(value);
355
- }, fileName_1 + ":400:20");
327
+ return tsplus_module_1.defer(() => {
328
+ let acc = this.seed;
329
+ return this.self.run(tsplus_module_4.unsafeMakeSink(value => {
330
+ const [s, b] = this.f(acc, value);
331
+ acc = s;
332
+ return sink.onSuccess(b);
333
+ }, cause => sink.onFailure(cause)));
334
+ }, fileName_1 + ":364:20");
356
335
  }
357
336
  }
358
337
  /**
359
- * @tsplus pipeable fncts.io.Push map 1
338
+ * @tsplus pipeable fncts.io.Push mapAccum
360
339
  */
361
- exports.Hold = Hold;
362
- function map_1(f) {
363
- return self => {
364
- return mapIO_1(a => tsplus_module_4.succeedNow(f(a), fileName_1 + ":412:43"))(self);
365
- };
340
+ function mapAccum(seed, f) {
341
+ return self => new MapAccum(self, seed, f);
366
342
  }
367
- /**
368
- * @tsplus pipeable fncts.io.Push mapError
369
- */
370
- function mapError(f) {
371
- return self => {
372
- 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)))));
373
- };
343
+ class MapIO extends _Push.Push {
344
+ constructor(self, f) {
345
+ super();
346
+ this.self = self;
347
+ this.f = f;
348
+ }
349
+ run(sink) {
350
+ return this.self.run(tsplus_module_4.unsafeMakeSink(value => tsplus_module_1.matchCauseIO(sink.onFailure, sink.onSuccess, fileName_1 + ":398:46")(this.f(value)), cause => sink.onFailure(cause)));
351
+ }
374
352
  }
375
353
  /**
376
- * @tsplus pipeable fncts.io.Push mapErrorCause
354
+ * @tsplus pipeable fncts.io.Push mapIO
377
355
  */
378
- function mapErrorCause(f) {
379
- return self => {
380
- return tsplus_module_11.makePush(emitter => self.run(tsplus_module_11.makeSink(value => emitter.event(value), cause => emitter.error(f(cause)))));
381
- };
356
+ function mapIO(f) {
357
+ return self => new MapIO(self, f);
382
358
  }
383
359
  /**
384
- * @tsplus pipeable fncts.io.Push mapIO
360
+ * @tsplus pipeable fncts.io.Push mapIOWithStrategy
385
361
  */
386
- function mapIO_1(f) {
387
- 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))));
362
+ function mapIOWithStrategy(f, flattenStrategy, executionStrategy) {
363
+ return self => flatMapWithStrategy_1(a => fromIO_1(f(a)), flattenStrategy, executionStrategy)(self);
364
+ }
365
+ class MergeWithStrategy extends _Push.Push {
366
+ constructor(ps, mergeStrategy) {
367
+ super();
368
+ this.ps = ps;
369
+ this.mergeStrategy = mergeStrategy;
370
+ }
371
+ run(sink) {
372
+ return this.mergeStrategy.runMerge(this.ps, sink);
373
+ }
388
374
  }
389
375
  /**
390
- * @tsplus pipeable fncts.io.Push merge
376
+ * @tsplus static fncts.io.PushOps mergeWithStrategy
391
377
  */
392
- function merge(that) {
393
- return self => {
394
- return mergeAll_1([self, that]);
395
- };
396
- }
397
- function mergeAll_1(streams) {
398
- 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"));
378
+ function mergeWithStrategy(streams, mergeStrategy) {
379
+ return new MergeWithStrategy(streams, mergeStrategy);
399
380
  }
400
381
  /**
401
382
  * @tsplus pipeable fncts.io.Push observe
402
383
  */
403
- function observe_1(f, __tsplusTrace) {
384
+ function observe(f) {
404
385
  return self => {
405
- 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));
386
+ return self.run(tsplus_module_4.unsafeMakeSink(f, cause => tsplus_module_1.orHalt(tsplus_module_1.failCause(() => cause, fileName_1 + ":458:63"), fileName_1 + ":458:70")));
406
387
  };
407
388
  }
408
- /**
409
- * @tsplus static fncts.io.PushOps repeatIOMaybe
410
- */
411
- function repeatIOMaybe(io, __tsplusTrace) {
412
- 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)));
413
- }
414
- /**
415
- * @tsplus getter fncts.io.Push runCollect
416
- */
417
- function runCollect(self) {
418
- return tsplus_module_4.defer(() => {
419
- const out = [];
420
- 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));
421
- }, fileName_1 + ":530:18");
389
+ class OrElseCause extends _Push.Push {
390
+ constructor(self, that) {
391
+ super();
392
+ this.self = self;
393
+ this.that = that;
394
+ }
395
+ run(sink) {
396
+ return this.self.run(tsplus_module_4.unsafeMakeSink(sink.onSuccess, cause => this.that(cause).run(sink)));
397
+ }
422
398
  }
423
399
  /**
424
- * @tsplus getter fncts.io.Push runDrain
400
+ * @tsplus pipeable fncts.io.Push orElseCause
425
401
  */
426
- function runDrain(self) {
427
- return observe_1(() => tsplus_module_4.unit, fileName_1 + ":540:22")(self);
402
+ function orElseCause(that) {
403
+ return self => new OrElseCause(self, that);
428
404
  }
429
405
  /**
430
- * @tsplus static fncts.io.PushOps scoped
406
+ * @tsplus pipeable fncts.io.Push provideEnvironment
431
407
  */
432
- function scoped_1(io, __tsplusTrace) {
433
- 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)));
408
+ function provideEnvironment(environment) {
409
+ return self => provideSomeEnvironment_1(environment)(self);
434
410
  }
435
- /**
436
- * @tsplus static fncts.io.PushOps succeed
437
- */
438
- function succeed(value) {
439
- return fromIO_1(() => tsplus_module_4.succeed(value, fileName_1 + ":559:32"));
411
+ class ProvideLayer extends _Push.Push {
412
+ constructor(self, layer) {
413
+ super();
414
+ this.self = self;
415
+ this.layer = layer;
416
+ }
417
+ run(sink) {
418
+ return tsplus_module_2.bracketExit(() => tsplus_module_13.make, scope => tsplus_module_1.matchCauseIO(sink.onFailure, environment => tsplus_module_6.provideSomeEnvironment(environment, fileName_1 + ":501:100")(this.self.run(sink)), fileName_1 + ":501:24")(tsplus_module_14.build_(scope, fileName_1 + ":500:17")(this.layer)), (scope, exit) => scope.close(() => exit), fileName_1 + ":496:26");
419
+ }
440
420
  }
441
421
  /**
442
- * @tsplus pipeable fncts.io.Push switchMap
422
+ * @tsplus pipeable fncts.io.Push provideLayer
443
423
  */
444
- function switchMap_1(f) {
445
- return self => {
446
- return tsplus_module_11.makePush(sink => (0, _internal.withSwitch)(fork => self.run(tsplus_module_11.makeSink(a => fork(f(a).run(sink)), sink.error))));
447
- };
424
+ function provideLayer(layer) {
425
+ return self => new ProvideLayer(self, layer);
448
426
  }
449
427
  /**
450
- * @tsplus pipeable fncts.io.Push switchMapIO
428
+ * @tsplus pipeable fncts.io.Push provideSomeEnvironment
451
429
  */
452
- function switchMapIO_1(f) {
453
- return self => {
454
- return switchMap_1(a => fromIO_1(() => f(a)))(self);
455
- };
430
+ function provideSomeEnvironment_1(environment) {
431
+ return self => contramapEnvironment_1(r => tsplus_module_15.union(environment)(r))(self);
456
432
  }
457
433
  /**
458
- * @tsplus pipeable fncts.io.Push tap
434
+ * @tsplus static fncts.io.PushOps schedule
459
435
  */
460
- function tap(f) {
461
- return self => {
462
- 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)));
463
- };
436
+ function schedule(io, schedule) {
437
+ return fromIOProducer_1(new _IOProducer.Scheduled(io, schedule));
464
438
  }
465
439
  /**
466
- * @tsplus pipeable fncts.io.Push transform
440
+ * @tsplus static fncts.io.PushOps succeed
467
441
  */
468
- function transform_1(f) {
469
- return self => tsplus_module_11.makePush(emitter => f(self.run(emitter)));
470
- }
471
- function unfoldLoop(s, f, emitter) {
472
- 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));
442
+ function succeed(value) {
443
+ return fromSyncProducer_1(tsplus_module_11.fromSync(value));
473
444
  }
474
445
  /**
475
- * @tsplus static fncts.io.PushOps unfold
446
+ * @tsplus static fncts.io.PushOps succeedNow
476
447
  */
477
- function unfold(s, f) {
478
- return tsplus_module_11.makePush(emitter => unfoldLoop(s, f, emitter));
479
- }
480
- function unfoldIOLoop(s, f, emitter) {
481
- 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)));
448
+ function succeedNow_1(value) {
449
+ return fromSyncProducer_1(tsplus_module_11.success(value));
482
450
  }
483
451
  /**
484
- * @tsplus static fncts.io.PushOps unfoldIO
452
+ * @tsplus pipeable fncts.io.Push switchMap
485
453
  */
486
- function unfoldIO_1(s, f) {
487
- return tsplus_module_11.makePush(emitter => unfoldIOLoop(s, f, emitter));
454
+ function switchMap(f, executionStrategy) {
455
+ return self => flatMapWithStrategy_1(f, tsplus_module_9.SwitchStrategy, executionStrategy ?? tsplus_module_10.sequential)(self);
488
456
  }
489
457
  /**
490
- * @tsplus pipeable fncts.io.Push untilFuture
458
+ * @tsplus pipeable fncts.io.Push transform
491
459
  */
492
- function untilFuture(future) {
460
+ function transform(f) {
493
461
  return self => {
494
- return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => {
495
- const exit = tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), fileName_1 + ":643:24");
496
- 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"));
497
- }, fileName_1 + ":642:17"));
462
+ const op = new _Push.PushPrimitive(9 /* PushTag.Transform */);
463
+ op.i0 = self;
464
+ op.i1 = f;
465
+ return op;
498
466
  };
499
467
  }
500
- /**
501
- * @tsplus pipeable fncts.io.Push untilPush
502
- */
503
- function untilPush(signal) {
504
- return self => {
505
- return tsplus_module_11.makePush(sink => tsplus_module_20.asyncIO(cb => {
506
- const exit = tsplus_module_4.succeed(() => cb(tsplus_module_4.unit), fileName_1 + ":668:24");
507
- 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"));
508
- }, fileName_1 + ":667:17"));
509
- };
468
+ class Unwrap extends _Push.Push {
469
+ constructor(io) {
470
+ super();
471
+ this.io = io;
472
+ }
473
+ run(sink) {
474
+ return tsplus_module_1.matchCauseIO(cause => sink.onFailure(cause), stream => stream.run(sink), fileName_1 + ":568:32")(this.io);
475
+ }
510
476
  }
511
477
  /**
512
478
  * @tsplus static fncts.io.PushOps unwrap
513
479
  */
514
- function unwrap_1(io) {
515
- return flatten_1(fromIO_1(() => io));
516
- }
517
- /**
518
- * @tsplus static fncts.io.PushOps unwrapScoped
519
- */
520
- function unwrapScoped(self, __tsplusTrace) {
521
- return flatten_1(scoped_1(() => self, __tsplusTrace));
480
+ function unwrap(io) {
481
+ return new Unwrap(io);
522
482
  }
523
- /**
524
- * @tsplus static fncts.io.PushOps never
525
- */
526
- const never = exports.never = /*#__PURE__*/fromIO_1(() => tsplus_module_33.never);
527
483
  //# sourceMappingURL=api.cjs.map