@fncts/io 0.0.49 → 0.0.51

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 (635) hide show
  1. package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
  2. package/CountdownLatch.d.ts +5 -5
  3. package/Fiber/FiberRuntime.d.ts +1 -1
  4. package/Hub/api.d.ts +7 -7
  5. package/IO/api/foreachExec.d.ts +18 -0
  6. package/IO/api.d.ts +1 -1
  7. package/Push/Bounds.d.ts +4 -0
  8. package/Push/FlattenStrategy.d.ts +47 -0
  9. package/Push/IndexedBuffer.d.ts +19 -0
  10. package/Push/MergeStrategy.d.ts +19 -0
  11. package/Push/Operator/IOLoopOperator.d.ts +61 -0
  12. package/Push/Operator/IOOperator.d.ts +63 -0
  13. package/Push/Operator/LoopOperator.d.ts +50 -0
  14. package/Push/Operator/SyncOperator.d.ts +41 -0
  15. package/Push/Operator.d.ts +4 -0
  16. package/Push/Producer/IOProducer.d.ts +41 -0
  17. package/Push/Producer/SyncProducer.d.ts +61 -0
  18. package/Push/Producer.d.ts +1 -0
  19. package/Push/Sink.d.ts +65 -0
  20. package/Push/api.d.ts +80 -163
  21. package/Push/definition.d.ts +92 -19
  22. package/Push/internal.d.ts +3 -0
  23. package/Push.d.ts +6 -0
  24. package/Queue/api/dimapIO.d.ts +12 -12
  25. package/Ref/Synchronized/definition.d.ts +32 -9
  26. package/Ref/definition.d.ts +12 -0
  27. package/STM/api.d.ts +1 -1
  28. package/Scope/api.d.ts +16 -1
  29. package/Semaphore/definition.d.ts +1 -1
  30. package/Sink/definition.d.ts +5 -6
  31. package/Subject/Atomic.d.ts +19 -9
  32. package/Subject/DeferredRef.d.ts +17 -0
  33. package/Subject/Hold.d.ts +19 -0
  34. package/Subject/RefSubject/Atomic.d.ts +43 -0
  35. package/Subject/RefSubject/Derived.d.ts +43 -0
  36. package/Subject/RefSubject/RefSubject.d.ts +37 -0
  37. package/Subject/RefSubject/constructors.d.ts +15 -0
  38. package/Subject/RefSubject.d.ts +4 -0
  39. package/Subject/definition.d.ts +14 -2
  40. package/Subject.d.ts +3 -0
  41. package/SubscriptionRef.d.ts +0 -1
  42. package/Supervisor/definition.d.ts +1 -1
  43. package/_cjs/Cached/api.cjs +8 -2
  44. package/_cjs/Cached/api.cjs.map +1 -1
  45. package/_cjs/Cached/definition.cjs +2 -6
  46. package/_cjs/Cached/definition.cjs.map +1 -1
  47. package/_cjs/CancellerState.cjs +4 -7
  48. package/_cjs/CancellerState.cjs.map +1 -1
  49. package/_cjs/Channel/UpstreamPullRequest/definition.cjs +4 -2
  50. package/_cjs/Channel/UpstreamPullRequest/definition.cjs.map +1 -1
  51. package/_cjs/Channel/api.cjs +2 -3
  52. package/_cjs/Channel/api.cjs.map +1 -1
  53. package/_cjs/Channel/definition.cjs +22 -16
  54. package/_cjs/Channel/definition.cjs.map +1 -1
  55. package/_cjs/Channel/internal/ChannelExecutor.cjs +35 -11
  56. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  57. package/_cjs/Channel/internal/ChannelState.cjs +15 -8
  58. package/_cjs/Channel/internal/ChannelState.cjs.map +1 -1
  59. package/_cjs/Channel/internal/MergeDecision.cjs +6 -8
  60. package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
  61. package/_cjs/Channel/internal/MergeState.cjs +7 -3
  62. package/_cjs/Channel/internal/MergeState.cjs.map +1 -1
  63. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +49 -42
  64. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  65. package/_cjs/Clock/live.cjs +1 -4
  66. package/_cjs/Clock/live.cjs.map +1 -1
  67. package/_cjs/CountdownLatch.cjs +22 -12
  68. package/_cjs/CountdownLatch.cjs.map +1 -1
  69. package/_cjs/Differ/api.cjs +3 -12
  70. package/_cjs/Differ/api.cjs.map +1 -1
  71. package/_cjs/Differ/definition.cjs +1 -5
  72. package/_cjs/Differ/definition.cjs.map +1 -1
  73. package/_cjs/Fiber/FiberMessage.cjs +6 -3
  74. package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
  75. package/_cjs/Fiber/FiberRuntime.cjs +66 -61
  76. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  77. package/_cjs/Fiber/definition.cjs +10 -6
  78. package/_cjs/Fiber/definition.cjs.map +1 -1
  79. package/_cjs/FiberDescriptor.cjs +3 -0
  80. package/_cjs/FiberDescriptor.cjs.map +1 -1
  81. package/_cjs/FiberRef/definition.cjs +9 -6
  82. package/_cjs/FiberRef/definition.cjs.map +1 -1
  83. package/_cjs/FiberRefs/Patch.cjs +13 -13
  84. package/_cjs/FiberRefs/Patch.cjs.map +1 -1
  85. package/_cjs/FiberScope/definition.cjs +2 -0
  86. package/_cjs/FiberScope/definition.cjs.map +1 -1
  87. package/_cjs/FiberSet.cjs +4 -3
  88. package/_cjs/FiberSet.cjs.map +1 -1
  89. package/_cjs/FiberStatus/definition.cjs +12 -9
  90. package/_cjs/FiberStatus/definition.cjs.map +1 -1
  91. package/_cjs/Future/State.cjs +8 -7
  92. package/_cjs/Future/State.cjs.map +1 -1
  93. package/_cjs/Future/definition.cjs +3 -3
  94. package/_cjs/Future/definition.cjs.map +1 -1
  95. package/_cjs/Hub/api.cjs +61 -44
  96. package/_cjs/Hub/api.cjs.map +1 -1
  97. package/_cjs/Hub/definition.cjs +4 -8
  98. package/_cjs/Hub/definition.cjs.map +1 -1
  99. package/_cjs/Hub/internal.cjs +130 -110
  100. package/_cjs/Hub/internal.cjs.map +1 -1
  101. package/_cjs/IO/api/foreachExec.cjs +29 -4
  102. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  103. package/_cjs/IO/api/transplant.cjs +8 -7
  104. package/_cjs/IO/api/transplant.cjs.map +1 -1
  105. package/_cjs/IO/api.cjs +9 -4
  106. package/_cjs/IO/api.cjs.map +1 -1
  107. package/_cjs/IO/definition.cjs +8 -12
  108. package/_cjs/IO/definition.cjs.map +1 -1
  109. package/_cjs/IO/runtime.cjs +64 -61
  110. package/_cjs/IO/runtime.cjs.map +1 -1
  111. package/_cjs/InterruptStatus/definition.cjs +1 -0
  112. package/_cjs/InterruptStatus/definition.cjs.map +1 -1
  113. package/_cjs/Layer/MemoMap.cjs +25 -24
  114. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  115. package/_cjs/Layer/definition.cjs +30 -13
  116. package/_cjs/Layer/definition.cjs.map +1 -1
  117. package/_cjs/LogLevel.cjs +3 -0
  118. package/_cjs/LogLevel.cjs.map +1 -1
  119. package/_cjs/LogSpan.cjs +2 -0
  120. package/_cjs/LogSpan.cjs.map +1 -1
  121. package/_cjs/Logger/definition.cjs +1 -0
  122. package/_cjs/Logger/definition.cjs.map +1 -1
  123. package/_cjs/MVar/definition.cjs +3 -4
  124. package/_cjs/MVar/definition.cjs.map +1 -1
  125. package/_cjs/Push/Bounds.cjs +2 -0
  126. package/_cjs/Push/Bounds.cjs.map +1 -0
  127. package/_cjs/Push/FlattenStrategy.cjs +96 -0
  128. package/_cjs/Push/FlattenStrategy.cjs.map +1 -0
  129. package/_cjs/Push/IndexedBuffer.cjs +74 -0
  130. package/_cjs/Push/IndexedBuffer.cjs.map +1 -0
  131. package/_cjs/Push/MergeStrategy.cjs +47 -0
  132. package/_cjs/Push/MergeStrategy.cjs.map +1 -0
  133. package/_cjs/Push/Operator/IOLoopOperator.cjs +225 -0
  134. package/_cjs/Push/Operator/IOLoopOperator.cjs.map +1 -0
  135. package/_cjs/Push/Operator/IOOperator.cjs +104 -0
  136. package/_cjs/Push/Operator/IOOperator.cjs.map +1 -0
  137. package/_cjs/Push/Operator/LoopOperator.cjs +165 -0
  138. package/_cjs/Push/Operator/LoopOperator.cjs.map +1 -0
  139. package/_cjs/Push/Operator/SyncOperator.cjs +78 -0
  140. package/_cjs/Push/Operator/SyncOperator.cjs.map +1 -0
  141. package/_cjs/Push/Operator.cjs +2 -0
  142. package/_cjs/Push/Operator.cjs.map +1 -0
  143. package/_cjs/Push/Producer/IOProducer.cjs +72 -0
  144. package/_cjs/Push/Producer/IOProducer.cjs.map +1 -0
  145. package/_cjs/Push/Producer/SyncProducer.cjs +111 -0
  146. package/_cjs/Push/Producer/SyncProducer.cjs.map +1 -0
  147. package/_cjs/Push/Producer.cjs +2 -0
  148. package/_cjs/Push/Producer.cjs.map +1 -0
  149. package/_cjs/Push/Sink.cjs +238 -0
  150. package/_cjs/Push/Sink.cjs.map +1 -0
  151. package/_cjs/Push/api.cjs +369 -387
  152. package/_cjs/Push/api.cjs.map +1 -1
  153. package/_cjs/Push/definition.cjs +82 -26
  154. package/_cjs/Push/definition.cjs.map +1 -1
  155. package/_cjs/Push/internal.cjs +31 -26
  156. package/_cjs/Push/internal.cjs.map +1 -1
  157. package/_cjs/Push.cjs +66 -0
  158. package/_cjs/Push.cjs.map +1 -1
  159. package/_cjs/Queue/api/dimapIO.cjs +74 -32
  160. package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
  161. package/_cjs/Queue/api/filterInputIO.cjs +51 -25
  162. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  163. package/_cjs/Queue/api/filterOutputIO.cjs +60 -30
  164. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  165. package/_cjs/Queue/api/zipWithIO.cjs +27 -10
  166. package/_cjs/Queue/api/zipWithIO.cjs.map +1 -1
  167. package/_cjs/Queue/definition.cjs +3 -7
  168. package/_cjs/Queue/definition.cjs.map +1 -1
  169. package/_cjs/Queue/internal.cjs +73 -62
  170. package/_cjs/Queue/internal.cjs.map +1 -1
  171. package/_cjs/Queue/strategy.cjs +1 -3
  172. package/_cjs/Queue/strategy.cjs.map +1 -1
  173. package/_cjs/Random/live.cjs +4 -3
  174. package/_cjs/Random/live.cjs.map +1 -1
  175. package/_cjs/Ref/Atomic.cjs +2 -3
  176. package/_cjs/Ref/Atomic.cjs.map +1 -1
  177. package/_cjs/Ref/Derived.cjs +2 -3
  178. package/_cjs/Ref/Derived.cjs.map +1 -1
  179. package/_cjs/Ref/DerivedAll.cjs +2 -3
  180. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  181. package/_cjs/Ref/Synchronized/definition.cjs +17 -16
  182. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  183. package/_cjs/Ref/definition.cjs +2 -6
  184. package/_cjs/Ref/definition.cjs.map +1 -1
  185. package/_cjs/Reloadable/definition.cjs +2 -0
  186. package/_cjs/Reloadable/definition.cjs.map +1 -1
  187. package/_cjs/STM/definition.cjs +30 -25
  188. package/_cjs/STM/definition.cjs.map +1 -1
  189. package/_cjs/STM/driver.cjs +5 -0
  190. package/_cjs/STM/driver.cjs.map +1 -1
  191. package/_cjs/STM/internal/Entry.cjs +9 -6
  192. package/_cjs/STM/internal/Entry.cjs.map +1 -1
  193. package/_cjs/STM/internal/TryCommit.cjs +6 -7
  194. package/_cjs/STM/internal/TryCommit.cjs.map +1 -1
  195. package/_cjs/STM/internal/Versioned.cjs +2 -3
  196. package/_cjs/STM/internal/Versioned.cjs.map +1 -1
  197. package/_cjs/Schedule/Decision.cjs +3 -4
  198. package/_cjs/Schedule/Decision.cjs.map +1 -1
  199. package/_cjs/Schedule/Driver.cjs +4 -0
  200. package/_cjs/Schedule/Driver.cjs.map +1 -1
  201. package/_cjs/Schedule/api.cjs +2 -5
  202. package/_cjs/Schedule/api.cjs.map +1 -1
  203. package/_cjs/Schedule/definition.cjs +3 -1
  204. package/_cjs/Schedule/definition.cjs.map +1 -1
  205. package/_cjs/Scope/ReleaseMap/definition.cjs +8 -2
  206. package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
  207. package/_cjs/Scope/api.cjs +29 -11
  208. package/_cjs/Scope/api.cjs.map +1 -1
  209. package/_cjs/Scope/definition.cjs +3 -7
  210. package/_cjs/Scope/definition.cjs.map +1 -1
  211. package/_cjs/ScopedRef/api.cjs +8 -3
  212. package/_cjs/ScopedRef/api.cjs.map +1 -1
  213. package/_cjs/ScopedRef/definition.cjs +1 -5
  214. package/_cjs/ScopedRef/definition.cjs.map +1 -1
  215. package/_cjs/Semaphore/Reservation.cjs +2 -0
  216. package/_cjs/Semaphore/Reservation.cjs.map +1 -1
  217. package/_cjs/Semaphore/definition.cjs +42 -38
  218. package/_cjs/Semaphore/definition.cjs.map +1 -1
  219. package/_cjs/Sink/definition.cjs +3 -3
  220. package/_cjs/Sink/definition.cjs.map +1 -1
  221. package/_cjs/State/api.cjs +1 -4
  222. package/_cjs/State/api.cjs.map +1 -1
  223. package/_cjs/State/definition.cjs +2 -6
  224. package/_cjs/State/definition.cjs.map +1 -1
  225. package/_cjs/State/internal.cjs +1 -5
  226. package/_cjs/State/internal.cjs.map +1 -1
  227. package/_cjs/Stream/api/zipAllWith.cjs +7 -11
  228. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  229. package/_cjs/Stream/api/zipWithChunks.cjs +5 -5
  230. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  231. package/_cjs/Stream/api.cjs +8 -7
  232. package/_cjs/Stream/api.cjs.map +1 -1
  233. package/_cjs/Stream/definition.cjs +3 -4
  234. package/_cjs/Stream/definition.cjs.map +1 -1
  235. package/_cjs/Stream/internal/DebounceState.cjs +5 -5
  236. package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
  237. package/_cjs/Stream/internal/Handoff.cjs +18 -17
  238. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  239. package/_cjs/Stream/internal/SinkEndReason.cjs +5 -12
  240. package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
  241. package/_cjs/Stream/internal/Take.cjs +3 -0
  242. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  243. package/_cjs/Subject/Atomic.cjs +45 -15
  244. package/_cjs/Subject/Atomic.cjs.map +1 -1
  245. package/_cjs/Subject/DeferredRef.cjs +56 -0
  246. package/_cjs/Subject/DeferredRef.cjs.map +1 -0
  247. package/_cjs/Subject/Hold.cjs +38 -0
  248. package/_cjs/Subject/Hold.cjs.map +1 -0
  249. package/_cjs/Subject/RefSubject/Atomic.cjs +171 -0
  250. package/_cjs/Subject/RefSubject/Atomic.cjs.map +1 -0
  251. package/_cjs/Subject/RefSubject/Derived.cjs +103 -0
  252. package/_cjs/Subject/RefSubject/Derived.cjs.map +1 -0
  253. package/_cjs/Subject/RefSubject/RefSubject.cjs +18 -0
  254. package/_cjs/Subject/RefSubject/RefSubject.cjs.map +1 -0
  255. package/_cjs/Subject/RefSubject/constructors.cjs +30 -0
  256. package/_cjs/Subject/RefSubject/constructors.cjs.map +1 -0
  257. package/_cjs/Subject/RefSubject.cjs +2 -0
  258. package/_cjs/Subject/RefSubject.cjs.map +1 -0
  259. package/_cjs/Subject/definition.cjs +11 -1
  260. package/_cjs/Subject/definition.cjs.map +1 -1
  261. package/_cjs/Subject.cjs +33 -0
  262. package/_cjs/Subject.cjs.map +1 -1
  263. package/_cjs/SubscriptionRef.cjs +4 -5
  264. package/_cjs/SubscriptionRef.cjs.map +1 -1
  265. package/_cjs/Supervisor/constructors.cjs +3 -11
  266. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  267. package/_cjs/Supervisor/definition.cjs +10 -4
  268. package/_cjs/Supervisor/definition.cjs.map +1 -1
  269. package/_cjs/SupervisorPatch.cjs +9 -12
  270. package/_cjs/SupervisorPatch.cjs.map +1 -1
  271. package/_cjs/TExit/definition.cjs +19 -18
  272. package/_cjs/TExit/definition.cjs.map +1 -1
  273. package/_cjs/TReentrantLock/definition.cjs +8 -3
  274. package/_cjs/TReentrantLock/definition.cjs.map +1 -1
  275. package/_cjs/TRef/definition.cjs +6 -6
  276. package/_cjs/TRef/definition.cjs.map +1 -1
  277. package/_cjs/internal/BackgroundScheduler.cjs +16 -16
  278. package/_cjs/internal/BackgroundScheduler.cjs.map +1 -1
  279. package/_cjs/internal/HashedPair.cjs +2 -0
  280. package/_cjs/internal/HashedPair.cjs.map +1 -1
  281. package/_cjs/internal/Hub.cjs +39 -15
  282. package/_cjs/internal/Hub.cjs.map +1 -1
  283. package/_cjs/internal/IsFatal.cjs +7 -11
  284. package/_cjs/internal/IsFatal.cjs.map +1 -1
  285. package/_cjs/internal/MutableQueue.cjs +14 -11
  286. package/_cjs/internal/MutableQueue.cjs.map +1 -1
  287. package/_cjs/internal/Scheduler.cjs +4 -8
  288. package/_cjs/internal/Scheduler.cjs.map +1 -1
  289. package/_cjs/internal/StackTraceBuilder.cjs +2 -4
  290. package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
  291. package/_mjs/Cached/api.mjs +8 -2
  292. package/_mjs/Cached/api.mjs.map +1 -1
  293. package/_mjs/Cached/definition.mjs +1 -5
  294. package/_mjs/Cached/definition.mjs.map +1 -1
  295. package/_mjs/CancellerState.mjs +4 -7
  296. package/_mjs/CancellerState.mjs.map +1 -1
  297. package/_mjs/Channel/UpstreamPullRequest/definition.mjs +4 -2
  298. package/_mjs/Channel/UpstreamPullRequest/definition.mjs.map +1 -1
  299. package/_mjs/Channel/api.mjs +2 -3
  300. package/_mjs/Channel/api.mjs.map +1 -1
  301. package/_mjs/Channel/definition.mjs +21 -15
  302. package/_mjs/Channel/definition.mjs.map +1 -1
  303. package/_mjs/Channel/internal/ChannelExecutor.mjs +35 -11
  304. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  305. package/_mjs/Channel/internal/ChannelState.mjs +15 -8
  306. package/_mjs/Channel/internal/ChannelState.mjs.map +1 -1
  307. package/_mjs/Channel/internal/MergeDecision.mjs +5 -7
  308. package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
  309. package/_mjs/Channel/internal/MergeState.mjs +7 -3
  310. package/_mjs/Channel/internal/MergeState.mjs.map +1 -1
  311. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +49 -42
  312. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  313. package/_mjs/Clock/live.mjs +1 -4
  314. package/_mjs/Clock/live.mjs.map +1 -1
  315. package/_mjs/CountdownLatch.mjs +21 -11
  316. package/_mjs/CountdownLatch.mjs.map +1 -1
  317. package/_mjs/Differ/api.mjs +3 -12
  318. package/_mjs/Differ/api.mjs.map +1 -1
  319. package/_mjs/Differ/definition.mjs +1 -5
  320. package/_mjs/Differ/definition.mjs.map +1 -1
  321. package/_mjs/Fiber/FiberMessage.mjs +6 -3
  322. package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
  323. package/_mjs/Fiber/FiberRuntime.mjs +66 -61
  324. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  325. package/_mjs/Fiber/definition.mjs +9 -5
  326. package/_mjs/Fiber/definition.mjs.map +1 -1
  327. package/_mjs/FiberDescriptor.mjs +3 -0
  328. package/_mjs/FiberDescriptor.mjs.map +1 -1
  329. package/_mjs/FiberRef/definition.mjs +9 -6
  330. package/_mjs/FiberRef/definition.mjs.map +1 -1
  331. package/_mjs/FiberRefs/Patch.mjs +13 -13
  332. package/_mjs/FiberRefs/Patch.mjs.map +1 -1
  333. package/_mjs/FiberScope/definition.mjs +2 -0
  334. package/_mjs/FiberScope/definition.mjs.map +1 -1
  335. package/_mjs/FiberSet.mjs +4 -3
  336. package/_mjs/FiberSet.mjs.map +1 -1
  337. package/_mjs/FiberStatus/definition.mjs +12 -9
  338. package/_mjs/FiberStatus/definition.mjs.map +1 -1
  339. package/_mjs/Future/State.mjs +8 -7
  340. package/_mjs/Future/State.mjs.map +1 -1
  341. package/_mjs/Future/definition.mjs +3 -3
  342. package/_mjs/Future/definition.mjs.map +1 -1
  343. package/_mjs/Hub/api.mjs +61 -44
  344. package/_mjs/Hub/api.mjs.map +1 -1
  345. package/_mjs/Hub/definition.mjs +3 -7
  346. package/_mjs/Hub/definition.mjs.map +1 -1
  347. package/_mjs/Hub/internal.mjs +130 -110
  348. package/_mjs/Hub/internal.mjs.map +1 -1
  349. package/_mjs/IO/api/foreachExec.mjs +27 -4
  350. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  351. package/_mjs/IO/api/transplant.mjs +8 -7
  352. package/_mjs/IO/api/transplant.mjs.map +1 -1
  353. package/_mjs/IO/api.mjs +9 -4
  354. package/_mjs/IO/api.mjs.map +1 -1
  355. package/_mjs/IO/definition.mjs +7 -11
  356. package/_mjs/IO/definition.mjs.map +1 -1
  357. package/_mjs/IO/runtime.mjs +64 -61
  358. package/_mjs/IO/runtime.mjs.map +1 -1
  359. package/_mjs/InterruptStatus/definition.mjs +1 -0
  360. package/_mjs/InterruptStatus/definition.mjs.map +1 -1
  361. package/_mjs/Layer/MemoMap.mjs +25 -24
  362. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  363. package/_mjs/Layer/definition.mjs +29 -12
  364. package/_mjs/Layer/definition.mjs.map +1 -1
  365. package/_mjs/LogLevel.mjs +3 -0
  366. package/_mjs/LogLevel.mjs.map +1 -1
  367. package/_mjs/LogSpan.mjs +2 -0
  368. package/_mjs/LogSpan.mjs.map +1 -1
  369. package/_mjs/Logger/definition.mjs +1 -0
  370. package/_mjs/Logger/definition.mjs.map +1 -1
  371. package/_mjs/MVar/definition.mjs +2 -3
  372. package/_mjs/MVar/definition.mjs.map +1 -1
  373. package/_mjs/Push/Bounds.mjs +2 -0
  374. package/_mjs/Push/Bounds.mjs.map +1 -0
  375. package/_mjs/Push/FlattenStrategy.mjs +87 -0
  376. package/_mjs/Push/FlattenStrategy.mjs.map +1 -0
  377. package/_mjs/Push/IndexedBuffer.mjs +65 -0
  378. package/_mjs/Push/IndexedBuffer.mjs.map +1 -0
  379. package/_mjs/Push/MergeStrategy.mjs +36 -0
  380. package/_mjs/Push/MergeStrategy.mjs.map +1 -0
  381. package/_mjs/Push/Operator/IOLoopOperator.mjs +208 -0
  382. package/_mjs/Push/Operator/IOLoopOperator.mjs.map +1 -0
  383. package/_mjs/Push/Operator/IOOperator.mjs +91 -0
  384. package/_mjs/Push/Operator/IOOperator.mjs.map +1 -0
  385. package/_mjs/Push/Operator/LoopOperator.mjs +151 -0
  386. package/_mjs/Push/Operator/LoopOperator.mjs.map +1 -0
  387. package/_mjs/Push/Operator/SyncOperator.mjs +67 -0
  388. package/_mjs/Push/Operator/SyncOperator.mjs.map +1 -0
  389. package/_mjs/Push/Operator.mjs +2 -0
  390. package/_mjs/Push/Operator.mjs.map +1 -0
  391. package/_mjs/Push/Producer/IOProducer.mjs +60 -0
  392. package/_mjs/Push/Producer/IOProducer.mjs.map +1 -0
  393. package/_mjs/Push/Producer/SyncProducer.mjs +94 -0
  394. package/_mjs/Push/Producer/SyncProducer.mjs.map +1 -0
  395. package/_mjs/Push/Producer.mjs +2 -0
  396. package/_mjs/Push/Producer.mjs.map +1 -0
  397. package/_mjs/Push/Sink.mjs +225 -0
  398. package/_mjs/Push/Sink.mjs.map +1 -0
  399. package/_mjs/Push/api.mjs +340 -348
  400. package/_mjs/Push/api.mjs.map +1 -1
  401. package/_mjs/Push/definition.mjs +75 -21
  402. package/_mjs/Push/definition.mjs.map +1 -1
  403. package/_mjs/Push/internal.mjs +30 -26
  404. package/_mjs/Push/internal.mjs.map +1 -1
  405. package/_mjs/Push.mjs +7 -1
  406. package/_mjs/Push.mjs.map +1 -1
  407. package/_mjs/Queue/api/dimapIO.mjs +74 -32
  408. package/_mjs/Queue/api/dimapIO.mjs.map +1 -1
  409. package/_mjs/Queue/api/filterInputIO.mjs +51 -25
  410. package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
  411. package/_mjs/Queue/api/filterOutputIO.mjs +60 -30
  412. package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
  413. package/_mjs/Queue/api/zipWithIO.mjs +27 -10
  414. package/_mjs/Queue/api/zipWithIO.mjs.map +1 -1
  415. package/_mjs/Queue/definition.mjs +3 -7
  416. package/_mjs/Queue/definition.mjs.map +1 -1
  417. package/_mjs/Queue/internal.mjs +73 -62
  418. package/_mjs/Queue/internal.mjs.map +1 -1
  419. package/_mjs/Queue/strategy.mjs +1 -3
  420. package/_mjs/Queue/strategy.mjs.map +1 -1
  421. package/_mjs/Random/live.mjs +4 -3
  422. package/_mjs/Random/live.mjs.map +1 -1
  423. package/_mjs/Ref/Atomic.mjs +2 -3
  424. package/_mjs/Ref/Atomic.mjs.map +1 -1
  425. package/_mjs/Ref/Derived.mjs +2 -3
  426. package/_mjs/Ref/Derived.mjs.map +1 -1
  427. package/_mjs/Ref/DerivedAll.mjs +2 -3
  428. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  429. package/_mjs/Ref/Synchronized/definition.mjs +16 -15
  430. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  431. package/_mjs/Ref/definition.mjs +1 -5
  432. package/_mjs/Ref/definition.mjs.map +1 -1
  433. package/_mjs/Reloadable/definition.mjs +2 -0
  434. package/_mjs/Reloadable/definition.mjs.map +1 -1
  435. package/_mjs/STM/definition.mjs +29 -24
  436. package/_mjs/STM/definition.mjs.map +1 -1
  437. package/_mjs/STM/driver.mjs +5 -0
  438. package/_mjs/STM/driver.mjs.map +1 -1
  439. package/_mjs/STM/internal/Entry.mjs +8 -5
  440. package/_mjs/STM/internal/Entry.mjs.map +1 -1
  441. package/_mjs/STM/internal/TryCommit.mjs +6 -7
  442. package/_mjs/STM/internal/TryCommit.mjs.map +1 -1
  443. package/_mjs/STM/internal/Versioned.mjs +2 -3
  444. package/_mjs/STM/internal/Versioned.mjs.map +1 -1
  445. package/_mjs/Schedule/Decision.mjs +3 -4
  446. package/_mjs/Schedule/Decision.mjs.map +1 -1
  447. package/_mjs/Schedule/Driver.mjs +4 -0
  448. package/_mjs/Schedule/Driver.mjs.map +1 -1
  449. package/_mjs/Schedule/api.mjs +2 -5
  450. package/_mjs/Schedule/api.mjs.map +1 -1
  451. package/_mjs/Schedule/definition.mjs +3 -1
  452. package/_mjs/Schedule/definition.mjs.map +1 -1
  453. package/_mjs/Scope/ReleaseMap/definition.mjs +8 -2
  454. package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
  455. package/_mjs/Scope/api.mjs +23 -8
  456. package/_mjs/Scope/api.mjs.map +1 -1
  457. package/_mjs/Scope/definition.mjs +2 -6
  458. package/_mjs/Scope/definition.mjs.map +1 -1
  459. package/_mjs/ScopedRef/api.mjs +8 -3
  460. package/_mjs/ScopedRef/api.mjs.map +1 -1
  461. package/_mjs/ScopedRef/definition.mjs +1 -5
  462. package/_mjs/ScopedRef/definition.mjs.map +1 -1
  463. package/_mjs/Semaphore/Reservation.mjs +2 -0
  464. package/_mjs/Semaphore/Reservation.mjs.map +1 -1
  465. package/_mjs/Semaphore/definition.mjs +42 -38
  466. package/_mjs/Semaphore/definition.mjs.map +1 -1
  467. package/_mjs/Sink/definition.mjs +3 -3
  468. package/_mjs/Sink/definition.mjs.map +1 -1
  469. package/_mjs/State/api.mjs +1 -4
  470. package/_mjs/State/api.mjs.map +1 -1
  471. package/_mjs/State/definition.mjs +1 -5
  472. package/_mjs/State/definition.mjs.map +1 -1
  473. package/_mjs/State/internal.mjs +1 -5
  474. package/_mjs/State/internal.mjs.map +1 -1
  475. package/_mjs/Stream/api/zipAllWith.mjs +7 -11
  476. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  477. package/_mjs/Stream/api/zipWithChunks.mjs +5 -5
  478. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  479. package/_mjs/Stream/api.mjs +8 -7
  480. package/_mjs/Stream/api.mjs.map +1 -1
  481. package/_mjs/Stream/definition.mjs +2 -3
  482. package/_mjs/Stream/definition.mjs.map +1 -1
  483. package/_mjs/Stream/internal/DebounceState.mjs +5 -5
  484. package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
  485. package/_mjs/Stream/internal/Handoff.mjs +17 -16
  486. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  487. package/_mjs/Stream/internal/SinkEndReason.mjs +4 -11
  488. package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
  489. package/_mjs/Stream/internal/Take.mjs +3 -0
  490. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  491. package/_mjs/Subject/Atomic.mjs +46 -15
  492. package/_mjs/Subject/Atomic.mjs.map +1 -1
  493. package/_mjs/Subject/DeferredRef.mjs +48 -0
  494. package/_mjs/Subject/DeferredRef.mjs.map +1 -0
  495. package/_mjs/Subject/Hold.mjs +30 -0
  496. package/_mjs/Subject/Hold.mjs.map +1 -0
  497. package/_mjs/Subject/RefSubject/Atomic.mjs +163 -0
  498. package/_mjs/Subject/RefSubject/Atomic.mjs.map +1 -0
  499. package/_mjs/Subject/RefSubject/Derived.mjs +95 -0
  500. package/_mjs/Subject/RefSubject/Derived.mjs.map +1 -0
  501. package/_mjs/Subject/RefSubject/RefSubject.mjs +11 -0
  502. package/_mjs/Subject/RefSubject/RefSubject.mjs.map +1 -0
  503. package/_mjs/Subject/RefSubject/constructors.mjs +23 -0
  504. package/_mjs/Subject/RefSubject/constructors.mjs.map +1 -0
  505. package/_mjs/Subject/RefSubject.mjs +2 -0
  506. package/_mjs/Subject/RefSubject.mjs.map +1 -0
  507. package/_mjs/Subject/definition.mjs +9 -0
  508. package/_mjs/Subject/definition.mjs.map +1 -1
  509. package/_mjs/Subject.mjs +3 -0
  510. package/_mjs/Subject.mjs.map +1 -1
  511. package/_mjs/SubscriptionRef.mjs +4 -5
  512. package/_mjs/SubscriptionRef.mjs.map +1 -1
  513. package/_mjs/Supervisor/constructors.mjs +3 -11
  514. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  515. package/_mjs/Supervisor/definition.mjs +10 -4
  516. package/_mjs/Supervisor/definition.mjs.map +1 -1
  517. package/_mjs/SupervisorPatch.mjs +9 -12
  518. package/_mjs/SupervisorPatch.mjs.map +1 -1
  519. package/_mjs/TExit/definition.mjs +19 -18
  520. package/_mjs/TExit/definition.mjs.map +1 -1
  521. package/_mjs/TReentrantLock/definition.mjs +8 -3
  522. package/_mjs/TReentrantLock/definition.mjs.map +1 -1
  523. package/_mjs/TRef/definition.mjs +6 -6
  524. package/_mjs/TRef/definition.mjs.map +1 -1
  525. package/_mjs/internal/BackgroundScheduler.mjs +16 -16
  526. package/_mjs/internal/BackgroundScheduler.mjs.map +1 -1
  527. package/_mjs/internal/HashedPair.mjs +2 -0
  528. package/_mjs/internal/HashedPair.mjs.map +1 -1
  529. package/_mjs/internal/Hub.mjs +39 -15
  530. package/_mjs/internal/Hub.mjs.map +1 -1
  531. package/_mjs/internal/IsFatal.mjs +7 -11
  532. package/_mjs/internal/IsFatal.mjs.map +1 -1
  533. package/_mjs/internal/MutableQueue.mjs +14 -11
  534. package/_mjs/internal/MutableQueue.mjs.map +1 -1
  535. package/_mjs/internal/Scheduler.mjs +4 -8
  536. package/_mjs/internal/Scheduler.mjs.map +1 -1
  537. package/_mjs/internal/StackTraceBuilder.mjs +2 -4
  538. package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
  539. package/_src/Cached/api.ts +8 -2
  540. package/_src/Channel/internal/SingleProducerAsyncInput.ts +6 -4
  541. package/_src/CountdownLatch.ts +24 -13
  542. package/_src/Fiber/FiberRuntime.ts +4 -2
  543. package/_src/FiberRef/definition.ts +1 -1
  544. package/_src/Hub/api.ts +85 -54
  545. package/_src/Hub/internal.ts +36 -20
  546. package/_src/IO/api/foreachExec.ts +47 -0
  547. package/_src/IO/api.ts +0 -5
  548. package/_src/Push/Bounds.ts +4 -0
  549. package/_src/Push/FlattenStrategy.ts +137 -0
  550. package/_src/Push/IndexedBuffer.ts +79 -0
  551. package/_src/Push/MergeStrategy.ts +59 -0
  552. package/_src/Push/Operator/IOLoopOperator.ts +413 -0
  553. package/_src/Push/Operator/IOOperator.ts +173 -0
  554. package/_src/Push/Operator/LoopOperator.ts +242 -0
  555. package/_src/Push/Operator/SyncOperator.ts +107 -0
  556. package/_src/Push/Operator.ts +7 -0
  557. package/_src/Push/Producer/IOProducer.ts +83 -0
  558. package/_src/Push/Producer/SyncProducer.ts +105 -0
  559. package/_src/Push/Producer.ts +0 -0
  560. package/_src/Push/Sink.ts +302 -0
  561. package/_src/Push/api.ts +389 -515
  562. package/_src/Push/definition.ts +216 -23
  563. package/_src/Push/internal.ts +11 -0
  564. package/_src/Push.ts +7 -1
  565. package/_src/Queue/api/dimapIO.ts +57 -19
  566. package/_src/Queue/api/filterInputIO.ts +36 -12
  567. package/_src/Queue/api/filterOutputIO.ts +42 -18
  568. package/_src/Queue/api/zipWithIO.ts +23 -11
  569. package/_src/Queue/internal.ts +9 -3
  570. package/_src/Ref/Synchronized/definition.ts +81 -37
  571. package/_src/Ref/definition.ts +26 -0
  572. package/_src/Schedule/api.ts +1 -1
  573. package/_src/Scope/api.ts +22 -0
  574. package/_src/ScopedRef/api.ts +6 -2
  575. package/_src/Semaphore/definition.ts +4 -2
  576. package/_src/Sink/definition.ts +4 -5
  577. package/_src/Stream/api.ts +0 -2
  578. package/_src/Stream/definition.ts +0 -1
  579. package/_src/Subject/Atomic.ts +68 -11
  580. package/_src/Subject/DeferredRef.ts +44 -0
  581. package/_src/Subject/Hold.ts +48 -0
  582. package/_src/Subject/RefSubject/Atomic.ts +233 -0
  583. package/_src/Subject/RefSubject/Derived.ts +184 -0
  584. package/_src/Subject/RefSubject/RefSubject.ts +100 -0
  585. package/_src/Subject/RefSubject/constructors.ts +27 -0
  586. package/_src/Subject/RefSubject.ts +7 -0
  587. package/_src/Subject/definition.ts +21 -3
  588. package/_src/Subject.ts +6 -3
  589. package/_src/SubscriptionRef.ts +1 -1
  590. package/_src/Supervisor/constructors.ts +0 -2
  591. package/_src/Supervisor/definition.ts +2 -1
  592. package/_src/TReentrantLock/api.ts +1 -1
  593. package/_src/global.ts +8 -0
  594. package/_src/index.ts +49 -50
  595. package/_src/internal/MutableQueue.ts +5 -3
  596. package/global.d.ts +8 -0
  597. package/index.d.ts +0 -1
  598. package/internal/MutableQueue.d.ts +2 -2
  599. package/package.json +4 -4
  600. package/RefSubject/Atomic.d.ts +0 -34
  601. package/RefSubject/Synchronized/api.d.ts +0 -9
  602. package/RefSubject/Synchronized/definition.d.ts +0 -39
  603. package/RefSubject/api.d.ts +0 -120
  604. package/RefSubject/definition.d.ts +0 -52
  605. package/RefSubject.d.ts +0 -3
  606. package/_cjs/RefSubject/Atomic.cjs +0 -107
  607. package/_cjs/RefSubject/Atomic.cjs.map +0 -1
  608. package/_cjs/RefSubject/Synchronized/api.cjs +0 -22
  609. package/_cjs/RefSubject/Synchronized/api.cjs.map +0 -1
  610. package/_cjs/RefSubject/Synchronized/definition.cjs +0 -55
  611. package/_cjs/RefSubject/Synchronized/definition.cjs.map +0 -1
  612. package/_cjs/RefSubject/api.cjs +0 -251
  613. package/_cjs/RefSubject/api.cjs.map +0 -1
  614. package/_cjs/RefSubject/definition.cjs +0 -26
  615. package/_cjs/RefSubject/definition.cjs.map +0 -1
  616. package/_cjs/RefSubject.cjs +0 -39
  617. package/_cjs/RefSubject.cjs.map +0 -1
  618. package/_mjs/RefSubject/Atomic.mjs +0 -99
  619. package/_mjs/RefSubject/Atomic.mjs.map +0 -1
  620. package/_mjs/RefSubject/Synchronized/api.mjs +0 -15
  621. package/_mjs/RefSubject/Synchronized/api.mjs.map +0 -1
  622. package/_mjs/RefSubject/Synchronized/definition.mjs +0 -47
  623. package/_mjs/RefSubject/Synchronized/definition.mjs.map +0 -1
  624. package/_mjs/RefSubject/api.mjs +0 -229
  625. package/_mjs/RefSubject/api.mjs.map +0 -1
  626. package/_mjs/RefSubject/definition.mjs +0 -19
  627. package/_mjs/RefSubject/definition.mjs.map +0 -1
  628. package/_mjs/RefSubject.mjs +0 -5
  629. package/_mjs/RefSubject.mjs.map +0 -1
  630. package/_src/RefSubject/Atomic.ts +0 -129
  631. package/_src/RefSubject/Synchronized/api.ts +0 -14
  632. package/_src/RefSubject/Synchronized/definition.ts +0 -76
  633. package/_src/RefSubject/api.ts +0 -253
  634. package/_src/RefSubject/definition.ts +0 -70
  635. package/_src/RefSubject.ts +0 -5
@@ -56,13 +56,13 @@ export type State<Err, Elem, Done> = StateEmpty | StateEmit<Err, Elem, Done> | S
56
56
  export declare class SingleProducerAsyncInput<Err, Elem, Done> implements AsyncInputProducer<Err, Elem, Done>, AsyncInputConsumer<Err, Elem, Done> {
57
57
  readonly ref: Ref<State<Err, Elem, Done>>;
58
58
  constructor(ref: Ref<State<Err, Elem, Done>>);
59
+ get awaitRead(): UIO<void>;
59
60
  emit(el: Elem): UIO<unknown>;
60
61
  done(a: Done): UIO<unknown>;
61
62
  error(cause: Cause<Err>): UIO<unknown>;
62
63
  takeWith<X>(onError: (cause: Cause<Err>) => X, onElement: (element: Elem) => X, onDone: (done: Done) => X): UIO<X>;
63
64
  take: import("../../IO").UIO<import("@fncts/base/data/Exit").Exit<import("@fncts/base/data/Either").Either<Err, Done>, Elem>>;
64
65
  close: import("../../IO").IO<never, never, unknown>;
65
- awaitRead: UIO<void>;
66
66
  }
67
67
  /**
68
68
  * Creates a SingleProducerAsyncInput
@@ -12,11 +12,11 @@ export declare class CountdownLatch {
12
12
  private _waiters;
13
13
  readonly [CountdownLatchTypeId]: CountdownLatchTypeId;
14
14
  constructor(_count: Ref<number>, _waiters: Future<never, void>);
15
- readonly await: UIO<void>;
16
- readonly countDown: UIO<void>;
17
- readonly count: UIO<number>;
18
- readonly increment: UIO<void>;
19
- readonly isOpen: UIO<boolean>;
15
+ get await(): UIO<void>;
16
+ get countDown(): UIO<void>;
17
+ get count(): UIO<number>;
18
+ get increment(): UIO<void>;
19
+ get isOpen(): UIO<boolean>;
20
20
  }
21
21
  /**
22
22
  * @tsplus static fncts.io.CountdownLatchOps make
@@ -35,12 +35,12 @@ export declare class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
35
35
  readonly _E: (_: never) => E;
36
36
  readonly _A: (_: never) => A;
37
37
  };
38
- location: string | undefined;
39
38
  get await(): UIO<Exit<E, A>>;
40
39
  get children(): UIO<Conc<FiberRuntime<any, any>>>;
41
40
  get fiberRefs(): UIO<FiberRefs>;
42
41
  get id(): FiberId.Runtime;
43
42
  get inheritAll(): UIO<void>;
43
+ get location(): string | undefined;
44
44
  get poll(): UIO<Maybe<Exit<E, A>>>;
45
45
  get runtimeFlags(): UIO<RuntimeFlags>;
46
46
  get scope(): import("../FiberScope.js").FiberScope;
package/Hub/api.d.ts CHANGED
@@ -30,6 +30,13 @@ export declare function contramapIO<A, RC, EC, C>(f: (c: C) => IO<RC, EC, A>, __
30
30
  * @tsplus location "@fncts/io/Hub/api"
31
31
  */
32
32
  export declare function dimap<A, B, C, D>(f: (c: C) => A, g: (b: B) => D, __tsplusTrace?: string): <RA, RB, EA, EB>(self: PHub<RA, RB, EA, EB, A, B>) => PHub<RA, RB, EA, EB, C, D>;
33
+ /**
34
+ * Transforms messages taken from the hub using the specified effectual
35
+ * function.
36
+ * @tsplus pipeable fncts.io.Hub mapIO
37
+ * @tsplus location "@fncts/io/Hub/api"
38
+ */
39
+ export declare function mapIO<B, RC, EC, C>(f: (b: B) => IO<RC, EC, C>, __tsplusTrace?: string): <RA, RB, EA, EB, A>(self: PHub<RA, RB, EA, EB, A, B>) => PHub<RA, RC | RB, EA, EB | EC, A, C>;
33
40
  /**
34
41
  * Transforms messages published to and taken from the hub using the
35
42
  * specified effectual functions.
@@ -109,13 +116,6 @@ export declare function makeUnbounded<A>(__tsplusTrace?: string): UIO<Hub<A>>;
109
116
  * @tsplus location "@fncts/io/Hub/api"
110
117
  */
111
118
  export declare function map<B, C>(f: (b: B) => C, __tsplusTrace?: string): <RA, RB, EA, EB, A>(self: PHub<RA, RB, EA, EB, A, B>) => PHub<RA, RB, EA, EB, A, C>;
112
- /**
113
- * Transforms messages taken from the hub using the specified effectual
114
- * function.
115
- * @tsplus pipeable fncts.io.Hub mapIO
116
- * @tsplus location "@fncts/io/Hub/api"
117
- */
118
- export declare function mapIO<B, RC, EC, C>(f: (b: B) => IO<RC, EC, C>, __tsplusTrace?: string): <RA, RB, EA, EB, A>(self: PHub<RA, RB, EA, EB, A, B>) => PHub<RA, RC | RB, EA, EB | EC, A, C>;
119
119
  /**
120
120
  * Publishes a message to the hub, returning whether the message was
121
121
  * published to the hub.
@@ -1,6 +1,15 @@
1
1
  import { ExecutionStrategy } from "@fncts/base/data/ExecutionStrategy";
2
2
  import { IO } from "@fncts/io/IO/definition";
3
3
  import { Conc } from "@fncts/base/collection/immutable/Conc";
4
+ /**
5
+ * Applies the function `f` to each element of the `Iterable<A>` in parallel,
6
+ * and returns the results in a new `Conc<B>`.
7
+ *
8
+ * For a sequential version of this method, see `foreach`.
9
+ * @tsplus static fncts.io.IOOps foreachWithIndexDiscardExec
10
+ * @tsplus location "@fncts/io/IO/api/foreachExec"
11
+ */
12
+ export declare function foreachWithIndexDiscardExec<R, E, A, B>(as: Iterable<A>, es: ExecutionStrategy, f: (index: number, a: A) => IO<R, E, B>, __tsplusTrace?: string): IO<R, E, void>;
4
13
  /**
5
14
  * Applies the function `f` to each element of the `Iterable<A>` in parallel,
6
15
  * and returns the results in a new `Conc<B>`.
@@ -10,3 +19,12 @@ import { Conc } from "@fncts/base/collection/immutable/Conc";
10
19
  * @tsplus location "@fncts/io/IO/api/foreachExec"
11
20
  */
12
21
  export declare function foreachExec<R, E, A, B>(as: Iterable<A>, es: ExecutionStrategy, f: (a: A) => IO<R, E, B>, __tsplusTrace?: string): IO<R, E, Conc<B>>;
22
+ /**
23
+ * Applies the function `f` to each element of the `Iterable<A>` in parallel,
24
+ * and returns the results in a new `Conc<B>`.
25
+ *
26
+ * For a sequential version of this method, see `foreach`.
27
+ * @tsplus static fncts.io.IOOps foreachExecDiscard
28
+ * @tsplus location "@fncts/io/IO/api/foreachExec"
29
+ */
30
+ export declare function foreachDiscardExec<R, E, A, B>(as: Iterable<A>, es: ExecutionStrategy, f: (a: A) => IO<R, E, B>, __tsplusTrace?: string): IO<R, E, void>;
package/IO/api.d.ts CHANGED
@@ -944,7 +944,7 @@ export declare function tapCause<R, E, E2>(f: (e: Cause<E2>) => IO<R, E, any>, _
944
944
  * @tsplus pipeable fncts.io.IO tapError
945
945
  * @tsplus location "@fncts/io/IO/api"
946
946
  */
947
- export declare function tapError<E, R1, E1>(f: (e: E) => IO<R1, E1, any>, __tsplusTrace?: string): <R, A>(self: IO<R, E, A>) => IO<R1 | R, E | E1, A>;
947
+ export declare function tapError<E, R1, E1>(f: (e: E) => IO<R1, E1, any>, __tsplusTrace?: string): <R, A>(self: IO<R, E, A>) => IO<R | R1, E | E1, A>;
948
948
  /**
949
949
  * Returns an effect that effectually "peeks" at the cause of the failure of
950
950
  * this effect.
@@ -0,0 +1,4 @@
1
+ export interface Bounds {
2
+ readonly min: number;
3
+ readonly max: number;
4
+ }
@@ -0,0 +1,47 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { Scope } from "@fncts/io/Scope/definition";
3
+ import { Fiber } from "@fncts/io/Fiber/definition";
4
+ import { ExecutionStrategy } from "@fncts/base/data/ExecutionStrategy";
5
+ import { Ref } from "@fncts/io/Ref/definition";
6
+ import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
7
+ import { Semaphore } from "@fncts/io/Semaphore";
8
+ type Fork = <R>(io: IO<R, never, void>) => IO<R | Scope, never, void>;
9
+ /**
10
+ * @tsplus type fncts.io.Push.FlattenStrategy
11
+ * @tsplus companion fncts.io.Push.FlattenStrategyOps
12
+ */
13
+ export declare abstract class FlattenStrategy {
14
+ abstract withFork<R>(f: (fork: Fork, scope: Scope) => IO<R, never, void>, executionStrategy: ExecutionStrategy): IO<R | Scope, never, void>;
15
+ }
16
+ /**
17
+ * @tsplus static fncts.io.Push.FlattenStrategyOps Switch
18
+ * @tsplus location "@fncts/io/Push/FlattenStrategy"
19
+ */
20
+ export declare const SwitchStrategy: {
21
+ withFork<R>(f: (fork: Fork, scope: Scope) => IO<R, never, void>, executionStrategy: ExecutionStrategy): IO<R | Scope, never, void>;
22
+ };
23
+ /**
24
+ * @tsplus static fncts.io.Push.FlattenStrategyOps Exhaust
25
+ * @tsplus location "@fncts/io/Push/FlattenStrategy"
26
+ */
27
+ export declare const ExhaustStrategy: {
28
+ withFork<R>(f: (fork: Fork, scope: Scope) => IO<R, never, void>, executionStrategy: ExecutionStrategy): IO<R | Scope, never, void>;
29
+ };
30
+ /**
31
+ * @tsplus static fncts.io.Push.FlattenStrategyOps Unbounded
32
+ * @tsplus location "@fncts/io/Push/FlattenStrategy"
33
+ */
34
+ export declare const UnboundedStrategy: {
35
+ withFork<R>(f: (fork: Fork, scope: Scope) => IO<R, never, void>): IO<R | Scope, never, void>;
36
+ };
37
+ /**
38
+ * @tsplus static fncts.io.Push.FlattenStrategyOps Bounded
39
+ * @tsplus location "@fncts/io/Push/FlattenStrategy"
40
+ */
41
+ export declare function makeBounded(capacity: number): BoundedStrategy;
42
+ declare class BoundedStrategy extends FlattenStrategy {
43
+ readonly capacity: number;
44
+ constructor(capacity: number);
45
+ withFork<R>(f: (fork: Fork, scope: Scope) => IO<R, never, void>, executionStrategy: ExecutionStrategy): IO<R | Scope, never, void>;
46
+ }
47
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Future } from "@fncts/io/Future";
2
+ import { UIO, IO } from "@fncts/io/IO/definition";
3
+ import { FiberId } from "@fncts/base/data/FiberId/definition";
4
+ import type { Push } from "./definition.js";
5
+ export declare class IndexedBuffer<R, E, A> {
6
+ ready: boolean;
7
+ readonly future: Future<never, void>;
8
+ readonly sink: Push.UnsafeSink<R, E, A>;
9
+ readonly onDone: UIO<void>;
10
+ constructor(ready: boolean, future: Future<never, void>, sink: Push.UnsafeSink<R, E, A>, onDone: UIO<void>);
11
+ buffer: Array<A>;
12
+ onSuccess(value: A): import("../IO.js").IO<R, never, void>;
13
+ get onEnd(): import("../IO.js").IO<R, never, void>;
14
+ }
15
+ export declare const withBuffers: <R, E, A>(size: number, sink: Push.UnsafeSink<R, E, A>, id: FiberId) => {
16
+ onSuccess: (index: number, value: A) => IO<R, never, void>;
17
+ onEnd: (index: number) => IO<R, never, void>;
18
+ buffers: Map<number, IndexedBuffer<R, E, A>>;
19
+ };
@@ -0,0 +1,19 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { ExecutionStrategy } from "@fncts/base/data/ExecutionStrategy";
3
+ import type { Push } from "./definition.js";
4
+ export declare abstract class MergeStrategy {
5
+ abstract runMerge<Ps extends ReadonlyArray<Push<any, any, any>>, R>(ps: Ps, sink: Push.UnsafeSink<R, any, any>): IO<R | Push.EnvironmentOf<Ps[number]>, never, void>;
6
+ }
7
+ export declare class Unordered extends MergeStrategy {
8
+ readonly executionStrategy: ExecutionStrategy;
9
+ constructor(executionStrategy: ExecutionStrategy);
10
+ runMerge<Ps extends ReadonlyArray<Push<any, any, any>>, R>(ps: Ps, sink: Push.UnsafeSink<R, any, any>): IO<R | Push.EnvironmentOf<Ps[number]>, never, void>;
11
+ }
12
+ export declare class Ordered extends MergeStrategy {
13
+ readonly executionStrategy: ExecutionStrategy;
14
+ constructor(executionStrategy: ExecutionStrategy);
15
+ runMerge<Ps extends ReadonlyArray<Push<any, any, any>>, R>(ps: Ps, sink: Push.UnsafeSink<R, any, any>): IO<R | Push.EnvironmentOf<Ps[number]>, never, void>;
16
+ }
17
+ export declare class Switch extends MergeStrategy {
18
+ runMerge<Ps extends ReadonlyArray<Push<any, any, any>>, R>(ps: Ps, sink: Push.UnsafeSink<R, any, any>): IO<R | Push.EnvironmentOf<Ps[number]>, never, void>;
19
+ }
@@ -0,0 +1,61 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
3
+ import type { IOOperator } from "./IOOperator.js";
4
+ import type { SyncLoopOperator } from "@fncts/io/Push/Operator/LoopOperator";
5
+ import type { SyncOperator } from "@fncts/io/Push/Operator/SyncOperator";
6
+ export declare const enum IOLoopOperatorTag {
7
+ LoopIO = "LoopIO",
8
+ FilterMapLoopIO = "FilterMapLoopIO"
9
+ }
10
+ /**
11
+ * @tsplus type fncts.io.Push.IOLoopOperator
12
+ */
13
+ export type IOLoopOperator<B = any, A = any, R = any, E = any, C = any> = LoopIOOperator<B, A, R, E, C> | FilterMapLoopIOOperator<B, A, R, E, C>;
14
+ export interface LoopIOOperator<B, A, R, E, C> {
15
+ readonly _tag: IOLoopOperatorTag.LoopIO;
16
+ readonly seed: B;
17
+ readonly f: (acc: B, a: A) => IO<R, E, readonly [C, B]>;
18
+ }
19
+ export declare function LoopIOOperator<const B, A, R, E, C>(seed: B, f: (acc: B, a: A) => IO<R, E, readonly [C, B]>): LoopIOOperator<B, A, R, E, C>;
20
+ export interface FilterMapLoopIOOperator<B, A, R, E, C> {
21
+ readonly _tag: IOLoopOperatorTag.FilterMapLoopIO;
22
+ readonly seed: B;
23
+ readonly f: (acc: B, a: A) => IO<R, E, readonly [Maybe<C>, B]>;
24
+ }
25
+ export declare function FilterMapLoopIOOperator<const B, A, R, E, C>(seed: B, f: (acc: B, a: A) => IO<R, E, readonly [Maybe<C>, B]>): FilterMapLoopIOOperator<B, A, R, E, C>;
26
+ /**
27
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator match
28
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
29
+ */
30
+ export declare function match<B, A, R, E, C, D, F>(matchers: {
31
+ LoopIO: (op: LoopIOOperator<B, A, R, E, C>) => D;
32
+ FilterMapLoopIO: (op: FilterMapLoopIOOperator<B, A, R, E, C>) => F;
33
+ }): (self: IOLoopOperator<B, A, R, E, C>) => D | F;
34
+ /**
35
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator fuse
36
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
37
+ */
38
+ export declare function fuse<C, D, F, R2, E2>(that: IOLoopOperator<D, C, R2, E2, F>): <A, B, R1, E1>(self: IOLoopOperator<A, B, R1, E1, C>) => IOLoopOperator<readonly [A, D], B, R1 | R2, E1 | E2, F>;
39
+ /**
40
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator after
41
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
42
+ */
43
+ export declare function fuseSyncLoopOperatorBefore<A, B, C>(that: SyncLoopOperator<A, B, C>): <D, R, E, F>(self: IOLoopOperator<D, C, R, E, F>) => IOLoopOperator<readonly [A, D], B, R, E, F>;
44
+ /**
45
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator before
46
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
47
+ */
48
+ export declare function fuseSyncLoopOperatorAfter<D, C, F>(that: SyncLoopOperator<D, C, F>): <A, B, R, E>(self: IOLoopOperator<A, B, R, E, C>) => IOLoopOperator<readonly [A, D], B, R, E, F>;
49
+ /**
50
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator after
51
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
52
+ */
53
+ export declare function fuseSyncOperatorBefore(that: SyncOperator): (self: IOLoopOperator) => IOLoopOperator;
54
+ /**
55
+ * @tsplus pipeable fncts.io.Push.IOLoopOperator before
56
+ * @tsplus location "@fncts/io/Push/Operator/IOLoopOperator"
57
+ */
58
+ export declare function fuseSyncOperatorAfter(that: SyncOperator): (self: IOLoopOperator) => IOLoopOperator;
59
+ export declare function fuseIOOperatorBefore(that: IOOperator): (self: IOLoopOperator) => IOLoopOperator;
60
+ export declare function fuseIOOperatorAfter(that: IOOperator): (self: IOLoopOperator) => FilterMapLoopIOOperator<any, unknown, any, any, any> | LoopIOOperator<any, unknown, any, any, any>;
61
+ export declare function liftLoopOperator(self: SyncLoopOperator): IOLoopOperator;
@@ -0,0 +1,63 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
3
+ import type { SyncOperator } from "./SyncOperator.js";
4
+ export declare const enum IOOperatorTag {
5
+ MapIO = "MapIO",
6
+ TapIO = "TapIO",
7
+ FilterIO = "FilterIO",
8
+ FilterMapIO = "FilterMapIO"
9
+ }
10
+ /**
11
+ * @tsplus type fncts.io.Push.IOOperator
12
+ * @tsplus companion fncts.io.Push.IOOperatorOps
13
+ */
14
+ export type IOOperator = MapIO<any, any, any, any> | TapIO<any, any, any, any> | FilterIO<any, any, any> | FilterMapIO<any, any, any, any>;
15
+ export interface MapIO<R, E, A, B> {
16
+ readonly _tag: IOOperatorTag.MapIO;
17
+ readonly f: (a: A) => IO<R, E, B>;
18
+ }
19
+ export declare function MapIO<R, E, A, B>(f: (a: A) => IO<R, E, B>): MapIO<R, E, A, B>;
20
+ export interface TapIO<R, E, A, B> {
21
+ readonly _tag: IOOperatorTag.TapIO;
22
+ readonly f: (a: A) => IO<R, E, B>;
23
+ }
24
+ export declare function TapIO<R, E, A, B>(f: (a: A) => IO<R, E, B>): TapIO<R, E, A, B>;
25
+ export interface FilterIO<R, E, A> {
26
+ readonly _tag: IOOperatorTag.FilterIO;
27
+ readonly f: (a: A) => IO<R, E, boolean>;
28
+ }
29
+ export declare function FilterIO<R, E, A>(f: (a: A) => IO<R, E, boolean>): FilterIO<R, E, A>;
30
+ export interface FilterMapIO<R, E, A, B> {
31
+ readonly _tag: IOOperatorTag.FilterMapIO;
32
+ readonly f: (a: A) => IO<R, E, Maybe<B>>;
33
+ }
34
+ export declare function FilterMapIO<R, E, A, B>(f: (a: A) => IO<R, E, Maybe<B>>): FilterMapIO<R, E, A, B>;
35
+ export type IOOperatorFusionMap = {
36
+ readonly [K in IOOperator["_tag"]]: {
37
+ readonly [K2 in IOOperator["_tag"]]: (op1: Extract<IOOperator, {
38
+ readonly _tag: K;
39
+ }>, op2: Extract<IOOperator, {
40
+ readonly _tag: K2;
41
+ }>) => IOOperator;
42
+ };
43
+ };
44
+ /**
45
+ * @tsplus pipeable fncts.io.Push.IOOperator fuse
46
+ * @tsplus location "@fncts/io/Push/Operator/IOOperator"
47
+ */
48
+ export declare function fuse(that: IOOperator): (self: IOOperator) => IOOperator;
49
+ /**
50
+ * @tsplus static fncts.io.Push.IOOperatorOps fromSyncOperator
51
+ * @tsplus location "@fncts/io/Push/Operator/IOOperator"
52
+ */
53
+ export declare function fromSyncOperator(op: SyncOperator): IOOperator;
54
+ /**
55
+ * @tsplus pipeable fncts.io.Push.IOOperator match
56
+ * @tsplus location "@fncts/io/Push/Operator/IOOperator"
57
+ */
58
+ export declare function match<A, B, C, D>(cases: {
59
+ readonly MapIO: (f: MapIO<any, any, any, any>) => A;
60
+ readonly TapIO: (f: TapIO<any, any, any, any>) => B;
61
+ readonly FilterIO: (f: FilterIO<any, any, any>) => C;
62
+ readonly FilterMapIO: (f: FilterMapIO<any, any, any, any>) => D;
63
+ }): (self: IOOperator) => A | B | C | D;
@@ -0,0 +1,50 @@
1
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
2
+ import { Either } from "@fncts/base/data/Either/definition";
3
+ import type { Bounds } from "../Bounds.js";
4
+ import type { SyncOperator } from "./SyncOperator.js";
5
+ export declare const enum SyncLoopOperatorTag {
6
+ Loop = "Loop",
7
+ FilterMapLoop = "FilterMapLoop"
8
+ }
9
+ /**
10
+ * @tsplus type fncts.io.Push.SyncLoopOperator
11
+ */
12
+ export type SyncLoopOperator<B = any, A = any, C = any> = LoopOperator<B, A, C> | FilterMapLoopOperator<B, A, C>;
13
+ export interface LoopOperator<B, A, C> {
14
+ readonly _tag: SyncLoopOperatorTag.Loop;
15
+ readonly seed: B;
16
+ readonly f: (acc: B, a: A) => readonly [C, B];
17
+ }
18
+ export declare function LoopOperator<const B, A, C>(seed: B, f: (acc: B, a: A) => readonly [C, B]): LoopOperator<B, A, C>;
19
+ export interface FilterMapLoopOperator<B, A, C> {
20
+ readonly _tag: SyncLoopOperatorTag.FilterMapLoop;
21
+ readonly seed: B;
22
+ readonly f: (acc: B, a: A) => readonly [Maybe<C>, B];
23
+ }
24
+ export declare function FilterMapLoopOperator<const B, A, C>(seed: B, f: (acc: B, a: A) => readonly [Maybe<C>, B]): FilterMapLoopOperator<B, A, C>;
25
+ export declare const enum SliceOperatorTag {
26
+ SliceOperator = 0,
27
+ FilterMapSliceOperator = 1
28
+ }
29
+ export interface SliceOperator {
30
+ readonly _tag: SliceOperatorTag.SliceOperator;
31
+ readonly bounds: Bounds;
32
+ }
33
+ export declare function SliceOperator(bounds: Bounds): SliceOperator;
34
+ export interface FilterMapSliceOperator<A, B, C> {
35
+ readonly _tag: SliceOperatorTag.FilterMapSliceOperator;
36
+ readonly seed: B;
37
+ readonly f: (acc: B, a: A) => Either<readonly [Maybe<C>, B], Maybe<C>>;
38
+ }
39
+ export declare function FilterMapSliceOperator<const B, A, C>(seed: B, f: (acc: B, a: A) => Either<readonly [Maybe<C>, B], Maybe<C>>): FilterMapSliceOperator<A, B, C>;
40
+ /**
41
+ * @tsplus pipeable fncts.io.Push.SyncLoopOperator match
42
+ * @tsplus location "@fncts/io/Push/Operator/LoopOperator"
43
+ */
44
+ export declare function matchSyncLoopOperator<A, B, C, D, E>(matchers: {
45
+ Loop: (op: LoopOperator<A, B, C>) => D;
46
+ FilterMapLoop: (op: FilterMapLoopOperator<A, B, C>) => E;
47
+ }): (self: SyncLoopOperator<A, B, C>) => D | E;
48
+ export declare function fuseSyncOperatorBefore(that: SyncOperator): (self: SyncLoopOperator) => SyncLoopOperator;
49
+ export declare function fuseSyncOperatorAfter(that: SyncOperator): (self: SyncLoopOperator) => SyncLoopOperator;
50
+ export declare function fuse<C, D, E>(that: SyncLoopOperator<D, C, E>): <A, B>(self: SyncLoopOperator<A, B, C>) => SyncLoopOperator<readonly [A, D], B, E>;
@@ -0,0 +1,41 @@
1
+ import { Predicate } from "@fncts/base/data/Predicate/definition";
2
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
3
+ export declare const enum SyncOperatorTag {
4
+ Map = "Map",
5
+ Filter = "Filter",
6
+ FilterMap = "FilterMap"
7
+ }
8
+ export interface Map<A, B> {
9
+ readonly _tag: SyncOperatorTag.Map;
10
+ readonly f: (a: A) => B;
11
+ }
12
+ export declare function Map<A, B>(f: (a: A) => B): Map<A, B>;
13
+ export interface Filter<A> {
14
+ readonly _tag: SyncOperatorTag.Filter;
15
+ readonly f: Predicate<A>;
16
+ }
17
+ export declare function Filter<A>(f: Predicate<A>): Filter<A>;
18
+ export interface FilterMap<A, B> {
19
+ readonly _tag: SyncOperatorTag.FilterMap;
20
+ readonly f: (a: A) => Maybe<B>;
21
+ }
22
+ export declare function FilterMap<A, B>(f: (a: A) => Maybe<B>): FilterMap<A, B>;
23
+ /**
24
+ * @tsplus type fncts.io.Push.SyncOperator
25
+ * @tsplus companion fncts.io.Push.SyncOperatorOps
26
+ */
27
+ export type SyncOperator<A = any, B = any> = Map<A, B> | Filter<A> | FilterMap<A, B>;
28
+ /**
29
+ * @tsplus pipeable fncts.io.Push.SyncOperator fuse
30
+ * @tsplus location "@fncts/io/Push/Operator/SyncOperator"
31
+ */
32
+ export declare function fuse(that: SyncOperator): (self: SyncOperator) => SyncOperator<any, any>;
33
+ /**
34
+ * @tsplus pipeable fncts.io.Push.SyncOperator match
35
+ * @tsplus location "@fncts/io/Push/Operator/SyncOperator"
36
+ */
37
+ export declare function match<A, B, C, D, E>(cases: {
38
+ readonly Map: (f: Map<A, B>) => C;
39
+ readonly Filter: (f: Filter<A>) => D;
40
+ readonly FilterMap: (f: FilterMap<A, B>) => E;
41
+ }): (self: SyncOperator<A, B>) => C | D | E;
@@ -0,0 +1,4 @@
1
+ export type {} from "./Operator/SyncOperator.js";
2
+ export type {} from "./Operator/LoopOperator.js";
3
+ export type {} from "./Operator/IOOperator.js";
4
+ export type {} from "./Operator/IOLoopOperator.js";
@@ -0,0 +1,41 @@
1
+ import { IO } from "@fncts/io/IO/definition";
2
+ import { Schedule } from "@fncts/io/Schedule/definition";
3
+ import { Cause } from "@fncts/base/data/Cause/definition";
4
+ import type { Push } from "../definition.js";
5
+ export declare const enum IOProducerTag {
6
+ FromIO = 0,
7
+ FromScheduled = 1,
8
+ Scheduled = 2
9
+ }
10
+ export declare class FromIO<R, E, A> {
11
+ readonly source: IO<R, E, A>;
12
+ readonly _tag = IOProducerTag.FromIO;
13
+ constructor(source: IO<R, E, A>);
14
+ }
15
+ export declare class FromScheduled<R, E, I, R1, O> {
16
+ readonly input: IO<R, E, I>;
17
+ readonly schedule: Schedule<R1, I, O>;
18
+ readonly _tag = IOProducerTag.FromScheduled;
19
+ constructor(input: IO<R, E, I>, schedule: Schedule<R1, I, O>);
20
+ }
21
+ export declare class Scheduled<R, E, A, R1, O> {
22
+ readonly input: IO<R, E, A>;
23
+ readonly schedule: Schedule<R1, unknown, O>;
24
+ readonly _tag = IOProducerTag.Scheduled;
25
+ constructor(input: IO<R, E, A>, schedule: Schedule<R1, unknown, O>);
26
+ }
27
+ /**
28
+ * @tsplus type fncts.io.Push.IOProducer
29
+ * @tsplus companion fncts.io.Push.IOProducerOps
30
+ */
31
+ export type IOProducer<R, E, A> = FromIO<R, E, A> | FromScheduled<R, E, any, any, A> | Scheduled<R, E, A, any, any>;
32
+ /**
33
+ * @tsplus fluent fncts.io.Push.IOProducer runSink
34
+ * @tsplus location "@fncts/io/Push/Producer/IOProducer"
35
+ */
36
+ export declare function runSink<R, E, A, R1>(self: IOProducer<R, E, A>, sink: Push.UnsafeSink<R1, E, A>): IO<R | R1, never, unknown>;
37
+ /**
38
+ * @tsplus fluent fncts.io.Push.IOProducer runIO
39
+ * @tsplus location "@fncts/io/Push/Producer/IOProducer"
40
+ */
41
+ export declare function runIO<R, E, A, R1, E1, A1>(self: IOProducer<R, E, A>, f: (a: A) => IO<R1, E1, A1>): IO<R | R1, E | E1, unknown>;
@@ -0,0 +1,61 @@
1
+ import { Lazy } from "@fncts/base/data/function/definition";
2
+ import { UIO, IO } from "@fncts/io/IO/definition";
3
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
4
+ import type { Push } from "@fncts/io/Push/definition";
5
+ export declare const enum SyncProducerTag {
6
+ Success = 0,
7
+ FromSync = 1,
8
+ FromArray = 2,
9
+ FromIterable = 3
10
+ }
11
+ /**
12
+ * @tsplus type fncts.io.Push.SyncProducer
13
+ * @tsplus companion fncts.io.Push.SyncProducerOps
14
+ */
15
+ export type SyncProducer<A> = Success<A> | FromSync<A> | FromArray<A> | FromIterable<A>;
16
+ export declare class Success<A> {
17
+ readonly source: A;
18
+ readonly _tag = SyncProducerTag.Success;
19
+ constructor(source: A);
20
+ }
21
+ export declare class FromSync<A> {
22
+ readonly f: Lazy<A>;
23
+ readonly _tag = SyncProducerTag.FromSync;
24
+ constructor(f: Lazy<A>);
25
+ }
26
+ export declare class FromArray<A> {
27
+ readonly array: ReadonlyArray<A>;
28
+ readonly _tag = SyncProducerTag.FromArray;
29
+ constructor(array: ReadonlyArray<A>);
30
+ }
31
+ export declare class FromIterable<A> {
32
+ readonly iterable: Iterable<A>;
33
+ readonly _tag = SyncProducerTag.FromIterable;
34
+ constructor(iterable: Iterable<A>);
35
+ }
36
+ /**
37
+ * @tsplus static fncts.io.Push.SyncProducerOps Success
38
+ * @tsplus location "@fncts/io/Push/Producer/SyncProducer"
39
+ */
40
+ export declare function success<A>(source: A): SyncProducer<A>;
41
+ /**
42
+ * @tsplus static fncts.io.Push.SyncProducerOps fromSync
43
+ * @tsplus location "@fncts/io/Push/Producer/SyncProducer"
44
+ */
45
+ export declare function fromSync<A>(f: Lazy<A>): SyncProducer<A>;
46
+ /**
47
+ * @tsplus static fncts.io.Push.SyncProducerOps fromArray
48
+ * @tsplus location "@fncts/io/Push/Producer/SyncProducer"
49
+ */
50
+ export declare function fromArray<A extends ReadonlyArray<any>>(array: A): SyncProducer<A[number]>;
51
+ /**
52
+ * @tsplus static fncts.io.Push.SyncProducerOps fromIterable
53
+ * @tsplus location "@fncts/io/Push/Producer/SyncProducer"
54
+ */
55
+ export declare function fromIterable<A>(iterable: Iterable<A>): SyncProducer<A>;
56
+ export declare function syncOnce<A>(f: () => A): UIO<A>;
57
+ /**
58
+ * @tsplus fluent fncts.io.Push.SyncProducer runSink
59
+ * @tsplus location "@fncts/io/Push/Producer/SyncProducer"
60
+ */
61
+ export declare function runSink<R, E, A>(self: SyncProducer<A>, sink: Push.UnsafeSink<R, E, A>): IO<R, never, unknown>;
@@ -0,0 +1 @@
1
+ export {};
package/Push/Sink.d.ts ADDED
@@ -0,0 +1,65 @@
1
+ import { HKT } from "@fncts/typelevel/HKT";
2
+ import { Newtype, NewtypeIso } from "@fncts/base/data/Newtype";
3
+ import { URIO, UIO } from "@fncts/io/IO/definition";
4
+ import { Environment } from "@fncts/base/data/Environment/definition";
5
+ import { Predicate } from "@fncts/base/data/Predicate/definition";
6
+ import { Maybe } from "@fncts/base/data/Maybe/definition";
7
+ import type { Cause } from "@fncts/base/data/Cause";
8
+ import { IO } from "@fncts/io/IO";
9
+ interface SinkN extends HKT {
10
+ readonly type: Sink<this["I"], this["R"], this["E"], this["A"]>;
11
+ readonly variance: {
12
+ I: "+";
13
+ R: "+";
14
+ E: "-";
15
+ A: "-";
16
+ };
17
+ }
18
+ /**
19
+ * @tsplus type fncts.io.Push.Sink
20
+ */
21
+ export interface Sink<Env, R, E, A> extends Newtype<{
22
+ readonly Sink: unique symbol;
23
+ }, URIO<Env, UnsafeSink<R, E, A>>> {
24
+ }
25
+ /**
26
+ * @tsplus type fncts.io.Push.SinkOps
27
+ */
28
+ export interface SinkOps extends NewtypeIso<SinkN> {
29
+ }
30
+ export declare const Sink: SinkOps;
31
+ /**
32
+ * @tsplus type fncts.io.Push.Sink
33
+ * @tsplus companion fncts.io.Push.SinkOps
34
+ */
35
+ export declare abstract class UnsafeSink<R, in E, in A> {
36
+ abstract onSuccess(value: A): IO<R, never, void>;
37
+ abstract onFailure(cause: Cause<E>): IO<R, never, void>;
38
+ }
39
+ /**
40
+ * @tsplus static fncts.io.Push.SinkOps unsafeMake
41
+ * @tsplus location "@fncts/io/Push/Sink"
42
+ */
43
+ export declare function unsafeMakeSink<R, E, A>(onSuccess: (value: A) => IO<R, never, unknown>, onFailure: (cause: Cause<E>) => IO<R, never, unknown>): UnsafeSink<R, E, A>;
44
+ /**
45
+ * @tsplus static fncts.io.Push.SinkOps __call
46
+ * @tsplus location "@fncts/io/Push/Sink"
47
+ */
48
+ export declare function makeSink<R, E, A>(onSuccess: (value: A) => IO<R, never, unknown>, onFailure: (cause: Cause<E>) => IO<R, never, unknown>): Sink<never, R, E, A>;
49
+ export declare class WithEarlyExit<R, E, A> extends UnsafeSink<R, E, A> {
50
+ readonly onSuccess: (value: A) => IO<R, never, void>;
51
+ readonly onFailure: (cause: Cause<E>) => IO<R, never, void>;
52
+ readonly earlyExit: UIO<void>;
53
+ constructor(onSuccess: (value: A) => IO<R, never, void>, onFailure: (cause: Cause<E>) => IO<R, never, void>, earlyExit: UIO<void>);
54
+ }
55
+ /**
56
+ * @tsplus static fncts.io.Push.SinkOps withEarlyExit
57
+ * @tsplus location "@fncts/io/Push/Sink"
58
+ */
59
+ export declare function withEarlyExit<R, E, A, R1, B>(sink: UnsafeSink<R, E, A>, f: (sink: WithEarlyExit<R, E, A>) => IO<R1, E, B>): IO<R | R1, never, void>;
60
+ /**
61
+ * @tsplus pipeable fncts.io.Push.Sink provideSomeEnvironment
62
+ * @tsplus location "@fncts/io/Push/Sink"
63
+ */
64
+ export declare function provideSomeEnvironment<R1>(environment: Environment<R1>): <Env, R, E, A>(self: Sink<Env, R, E, A>) => Sink<Env, Exclude<R, R1>, E, A>;
65
+ export {};