@fncts/io 0.0.47 → 0.0.49

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 (685) hide show
  1. package/Cached/api.d.ts +1 -1
  2. package/Channel/api.d.ts +80 -80
  3. package/Channel/core-api.d.ts +26 -26
  4. package/Console/definition.d.ts +1 -0
  5. package/CountdownLatch.d.ts +1 -0
  6. package/Fiber/FiberMessage.d.ts +6 -28
  7. package/Fiber/FiberRuntime.d.ts +108 -77
  8. package/Fiber/api/interruptAs.d.ts +2 -2
  9. package/Fiber/definition.d.ts +2 -0
  10. package/FiberScope/definition.d.ts +3 -0
  11. package/FiberSet.d.ts +2 -1
  12. package/Future/State.d.ts +59 -0
  13. package/Future/api.d.ts +8 -3
  14. package/Future/constructors.d.ts +1 -1
  15. package/Future/definition.d.ts +1 -17
  16. package/Future.d.ts +1 -0
  17. package/Hub/api.d.ts +15 -15
  18. package/IO/api/array.d.ts +22 -0
  19. package/IO/api/awaitAllChildren.d.ts +6 -0
  20. package/IO/api/cachedInvalidate.d.ts +15 -0
  21. package/IO/api/forkDaemon.d.ts +1 -1
  22. package/IO/api/onTermination.d.ts +1 -2
  23. package/IO/api/transplant.d.ts +11 -1
  24. package/IO/api.d.ts +247 -225
  25. package/IO/definition.d.ts +12 -25
  26. package/IO.d.ts +3 -1
  27. package/Random/definition.d.ts +1 -0
  28. package/Ref/Synchronized/api.d.ts +1 -1
  29. package/Semaphore/Reservation.d.ts +15 -0
  30. package/Semaphore/constructors.d.ts +13 -0
  31. package/Semaphore/definition.d.ts +29 -0
  32. package/Semaphore.d.ts +3 -40
  33. package/Stream/api.d.ts +164 -164
  34. package/_cjs/Cached/api.cjs +1 -2
  35. package/_cjs/Cached/api.cjs.map +1 -1
  36. package/_cjs/Cached/internal.cjs +1 -2
  37. package/_cjs/Cached/internal.cjs.map +1 -1
  38. package/_cjs/Channel/api/interruptWhen.cjs +1 -2
  39. package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
  40. package/_cjs/Channel/api/mapOutConcurrentIO.cjs +2 -3
  41. package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
  42. package/_cjs/Channel/api/mergeAll.cjs +1 -2
  43. package/_cjs/Channel/api/mergeAll.cjs.map +1 -1
  44. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs +1 -2
  45. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs.map +1 -1
  46. package/_cjs/Channel/api/mergeAllWith.cjs +2 -3
  47. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  48. package/_cjs/Channel/api/mergeMap.cjs +1 -2
  49. package/_cjs/Channel/api/mergeMap.cjs.map +1 -1
  50. package/_cjs/Channel/api/mergeWith.cjs +1 -2
  51. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  52. package/_cjs/Channel/api/run.cjs +1 -2
  53. package/_cjs/Channel/api/run.cjs.map +1 -1
  54. package/_cjs/Channel/api/runCollect.cjs +1 -2
  55. package/_cjs/Channel/api/runCollect.cjs.map +1 -1
  56. package/_cjs/Channel/api/runDrain.cjs +1 -2
  57. package/_cjs/Channel/api/runDrain.cjs.map +1 -1
  58. package/_cjs/Channel/api/runScoped.cjs +3 -4
  59. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  60. package/_cjs/Channel/api/toPull.cjs +2 -3
  61. package/_cjs/Channel/api/toPull.cjs.map +1 -1
  62. package/_cjs/Channel/api/zipConcurrent.cjs +1 -2
  63. package/_cjs/Channel/api/zipConcurrent.cjs.map +1 -1
  64. package/_cjs/Channel/api.cjs +206 -207
  65. package/_cjs/Channel/api.cjs.map +1 -1
  66. package/_cjs/Channel/core-api.cjs +43 -42
  67. package/_cjs/Channel/core-api.cjs.map +1 -1
  68. package/_cjs/Channel/internal/AsyncInputConsumer.cjs +0 -4
  69. package/_cjs/Channel/internal/AsyncInputProducer.cjs +0 -4
  70. package/_cjs/Channel/internal/ChannelExecutor.cjs +4 -5
  71. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  72. package/_cjs/Channel/internal/ChannelState.cjs +1 -2
  73. package/_cjs/Channel/internal/ChannelState.cjs.map +1 -1
  74. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +1 -2
  75. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  76. package/_cjs/Clock/api.cjs +1 -2
  77. package/_cjs/Clock/api.cjs.map +1 -1
  78. package/_cjs/Clock/definition.cjs +1 -2
  79. package/_cjs/Clock/definition.cjs.map +1 -1
  80. package/_cjs/Clock/live.cjs +1 -2
  81. package/_cjs/Clock/live.cjs.map +1 -1
  82. package/_cjs/Console/api.cjs +1 -2
  83. package/_cjs/Console/api.cjs.map +1 -1
  84. package/_cjs/Console/definition.cjs +2 -2
  85. package/_cjs/Console/definition.cjs.map +1 -1
  86. package/_cjs/Console/live.cjs +1 -2
  87. package/_cjs/Console/live.cjs.map +1 -1
  88. package/_cjs/CountdownLatch.cjs +3 -3
  89. package/_cjs/CountdownLatch.cjs.map +1 -1
  90. package/_cjs/Differ/api.cjs +1 -2
  91. package/_cjs/Differ/api.cjs.map +1 -1
  92. package/_cjs/Fiber/FiberMessage.cjs +3 -24
  93. package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
  94. package/_cjs/Fiber/FiberRuntime.cjs +879 -636
  95. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  96. package/_cjs/Fiber/api/awaitAll.cjs +1 -2
  97. package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
  98. package/_cjs/Fiber/api/collectAll.cjs +2 -3
  99. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  100. package/_cjs/Fiber/api/fromIO.cjs +1 -2
  101. package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
  102. package/_cjs/Fiber/api/interrupt.cjs +2 -3
  103. package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
  104. package/_cjs/Fiber/api/interruptAll.cjs +2 -3
  105. package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
  106. package/_cjs/Fiber/api/interruptAs.cjs +5 -10
  107. package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
  108. package/_cjs/Fiber/api/interruptFork.cjs +2 -3
  109. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  110. package/_cjs/Fiber/api/join.cjs +1 -2
  111. package/_cjs/Fiber/api/join.cjs.map +1 -1
  112. package/_cjs/Fiber/api/joinAll.cjs +1 -2
  113. package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
  114. package/_cjs/Fiber/api/mapFiber.cjs +1 -2
  115. package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
  116. package/_cjs/Fiber/api/mapIO.cjs +2 -3
  117. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  118. package/_cjs/Fiber/api/zipWith.cjs +2 -3
  119. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  120. package/_cjs/Fiber/constructors.cjs +2 -3
  121. package/_cjs/Fiber/constructors.cjs.map +1 -1
  122. package/_cjs/Fiber/definition.cjs +6 -4
  123. package/_cjs/Fiber/definition.cjs.map +1 -1
  124. package/_cjs/FiberRef/api/locallyScoped.cjs +1 -2
  125. package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
  126. package/_cjs/FiberRef/api/locallyScopedWith.cjs +1 -2
  127. package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
  128. package/_cjs/FiberRef/constructors.cjs +1 -2
  129. package/_cjs/FiberRef/constructors.cjs.map +1 -1
  130. package/_cjs/FiberRef/definition.cjs +1 -2
  131. package/_cjs/FiberRef/definition.cjs.map +1 -1
  132. package/_cjs/FiberRef/operations.cjs +1 -2
  133. package/_cjs/FiberRef/operations.cjs.map +1 -1
  134. package/_cjs/FiberRef/unsafe.cjs +1 -2
  135. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  136. package/_cjs/FiberRefs/Patch.cjs +1 -2
  137. package/_cjs/FiberRefs/Patch.cjs.map +1 -1
  138. package/_cjs/FiberRefs/api.cjs +1 -2
  139. package/_cjs/FiberRefs/api.cjs.map +1 -1
  140. package/_cjs/FiberRefs/definition.cjs +1 -2
  141. package/_cjs/FiberRefs/definition.cjs.map +1 -1
  142. package/_cjs/FiberScope/definition.cjs +29 -6
  143. package/_cjs/FiberScope/definition.cjs.map +1 -1
  144. package/_cjs/FiberSet.cjs +16 -15
  145. package/_cjs/FiberSet.cjs.map +1 -1
  146. package/_cjs/FiberStatus/definition.cjs +1 -2
  147. package/_cjs/FiberStatus/definition.cjs.map +1 -1
  148. package/_cjs/Future/State.cjs +108 -0
  149. package/_cjs/Future/State.cjs.map +1 -0
  150. package/_cjs/Future/api.cjs +71 -64
  151. package/_cjs/Future/api.cjs.map +1 -1
  152. package/_cjs/Future/constructors.cjs +3 -4
  153. package/_cjs/Future/constructors.cjs.map +1 -1
  154. package/_cjs/Future/definition.cjs +1 -15
  155. package/_cjs/Future/definition.cjs.map +1 -1
  156. package/_cjs/Future.cjs +11 -0
  157. package/_cjs/Future.cjs.map +1 -1
  158. package/_cjs/Hub/api.cjs +56 -57
  159. package/_cjs/Hub/api.cjs.map +1 -1
  160. package/_cjs/Hub/internal.cjs +1 -2
  161. package/_cjs/Hub/internal.cjs.map +1 -1
  162. package/_cjs/IO/api/acquireRelease.cjs +1 -2
  163. package/_cjs/IO/api/acquireRelease.cjs.map +1 -1
  164. package/_cjs/IO/api/acquireReleaseExit.cjs +1 -2
  165. package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
  166. package/_cjs/IO/api/acquireReleaseInterruptible.cjs +1 -2
  167. package/_cjs/IO/api/acquireReleaseInterruptible.cjs.map +1 -1
  168. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -2
  169. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
  170. package/_cjs/IO/api/addFinalizer.cjs +1 -2
  171. package/_cjs/IO/api/addFinalizer.cjs.map +1 -1
  172. package/_cjs/IO/api/addFinalizerExit.cjs +1 -2
  173. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  174. package/_cjs/IO/api/all.cjs +1 -2
  175. package/_cjs/IO/api/all.cjs.map +1 -1
  176. package/_cjs/IO/api/array.cjs +51 -0
  177. package/_cjs/IO/api/array.cjs.map +1 -0
  178. package/_cjs/IO/api/asyncIO.cjs +1 -2
  179. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  180. package/_cjs/IO/api/asyncInterrupt.cjs +1 -2
  181. package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
  182. package/_cjs/IO/api/awaitAllChildren.cjs +17 -0
  183. package/_cjs/IO/api/awaitAllChildren.cjs.map +1 -0
  184. package/_cjs/IO/api/blocking.cjs +1 -2
  185. package/_cjs/IO/api/blocking.cjs.map +1 -1
  186. package/_cjs/IO/api/bracket.cjs +1 -2
  187. package/_cjs/IO/api/bracket.cjs.map +1 -1
  188. package/_cjs/IO/api/bracketExit.cjs +1 -2
  189. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  190. package/_cjs/IO/api/cachedInvalidate.cjs +47 -0
  191. package/_cjs/IO/api/cachedInvalidate.cjs.map +1 -0
  192. package/_cjs/IO/api/clockWith.cjs +1 -2
  193. package/_cjs/IO/api/clockWith.cjs.map +1 -1
  194. package/_cjs/IO/api/concurrency.cjs +1 -2
  195. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  196. package/_cjs/IO/api/concurrentFinalizers.cjs +1 -2
  197. package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
  198. package/_cjs/IO/api/consoleWith.cjs +1 -2
  199. package/_cjs/IO/api/consoleWith.cjs.map +1 -1
  200. package/_cjs/IO/api/daemonChildren.cjs +1 -2
  201. package/_cjs/IO/api/daemonChildren.cjs.map +1 -1
  202. package/_cjs/IO/api/delay.cjs +1 -2
  203. package/_cjs/IO/api/delay.cjs.map +1 -1
  204. package/_cjs/IO/api/descriptor.cjs +1 -2
  205. package/_cjs/IO/api/descriptor.cjs.map +1 -1
  206. package/_cjs/IO/api/diffFiberRefs.cjs +1 -2
  207. package/_cjs/IO/api/diffFiberRefs.cjs.map +1 -1
  208. package/_cjs/IO/api/disconnect.cjs +2 -3
  209. package/_cjs/IO/api/disconnect.cjs.map +1 -1
  210. package/_cjs/IO/api/ensuringChildren.cjs +1 -2
  211. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  212. package/_cjs/IO/api/environment.cjs +1 -2
  213. package/_cjs/IO/api/environment.cjs.map +1 -1
  214. package/_cjs/IO/api/foreachConcurrent.cjs +36 -30
  215. package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
  216. package/_cjs/IO/api/foreachExec.cjs +1 -2
  217. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  218. package/_cjs/IO/api/fork.cjs +2 -3
  219. package/_cjs/IO/api/fork.cjs.map +1 -1
  220. package/_cjs/IO/api/forkAll.cjs +1 -2
  221. package/_cjs/IO/api/forkAll.cjs.map +1 -1
  222. package/_cjs/IO/api/forkDaemon.cjs +5 -6
  223. package/_cjs/IO/api/forkDaemon.cjs.map +1 -1
  224. package/_cjs/IO/api/forkIn.cjs +1 -2
  225. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  226. package/_cjs/IO/api/forkScoped.cjs +1 -2
  227. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  228. package/_cjs/IO/api/fulfill.cjs +1 -2
  229. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  230. package/_cjs/IO/api/interrupt.cjs +4 -5
  231. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  232. package/_cjs/IO/api/memoize.cjs +1 -2
  233. package/_cjs/IO/api/memoize.cjs.map +1 -1
  234. package/_cjs/IO/api/onTermination.cjs +2 -3
  235. package/_cjs/IO/api/onTermination.cjs.map +1 -1
  236. package/_cjs/IO/api/once.cjs +1 -2
  237. package/_cjs/IO/api/once.cjs.map +1 -1
  238. package/_cjs/IO/api/patchFiberRefs.cjs +1 -2
  239. package/_cjs/IO/api/patchFiberRefs.cjs.map +1 -1
  240. package/_cjs/IO/api/provideLayer.cjs +1 -2
  241. package/_cjs/IO/api/provideLayer.cjs.map +1 -1
  242. package/_cjs/IO/api/provideScope.cjs +1 -2
  243. package/_cjs/IO/api/provideScope.cjs.map +1 -1
  244. package/_cjs/IO/api/provideSomeLayer.cjs +1 -2
  245. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  246. package/_cjs/IO/api/provideSomeRuntime.cjs +1 -2
  247. package/_cjs/IO/api/provideSomeRuntime.cjs.map +1 -1
  248. package/_cjs/IO/api/race.cjs +2 -3
  249. package/_cjs/IO/api/race.cjs.map +1 -1
  250. package/_cjs/IO/api/raceFirst.cjs +1 -2
  251. package/_cjs/IO/api/raceFirst.cjs.map +1 -1
  252. package/_cjs/IO/api/raceWith.cjs +1 -2
  253. package/_cjs/IO/api/raceWith.cjs.map +1 -1
  254. package/_cjs/IO/api/randomWith.cjs +1 -2
  255. package/_cjs/IO/api/randomWith.cjs.map +1 -1
  256. package/_cjs/IO/api/repeat.cjs +1 -2
  257. package/_cjs/IO/api/repeat.cjs.map +1 -1
  258. package/_cjs/IO/api/retry.cjs +1 -2
  259. package/_cjs/IO/api/retry.cjs.map +1 -1
  260. package/_cjs/IO/api/schedule.cjs +1 -2
  261. package/_cjs/IO/api/schedule.cjs.map +1 -1
  262. package/_cjs/IO/api/scope.cjs +1 -2
  263. package/_cjs/IO/api/scope.cjs.map +1 -1
  264. package/_cjs/IO/api/scopeWith.cjs +1 -2
  265. package/_cjs/IO/api/scopeWith.cjs.map +1 -1
  266. package/_cjs/IO/api/scoped.cjs +1 -2
  267. package/_cjs/IO/api/scoped.cjs.map +1 -1
  268. package/_cjs/IO/api/sleep.cjs +1 -2
  269. package/_cjs/IO/api/sleep.cjs.map +1 -1
  270. package/_cjs/IO/api/stateful.cjs +1 -2
  271. package/_cjs/IO/api/stateful.cjs.map +1 -1
  272. package/_cjs/IO/api/supervised.cjs +1 -2
  273. package/_cjs/IO/api/supervised.cjs.map +1 -1
  274. package/_cjs/IO/api/timeout.cjs +9 -11
  275. package/_cjs/IO/api/timeout.cjs.map +1 -1
  276. package/_cjs/IO/api/transplant.cjs +22 -7
  277. package/_cjs/IO/api/transplant.cjs.map +1 -1
  278. package/_cjs/IO/api/whenFiberRef.cjs +1 -2
  279. package/_cjs/IO/api/whenFiberRef.cjs.map +1 -1
  280. package/_cjs/IO/api/whenRef.cjs +1 -2
  281. package/_cjs/IO/api/whenRef.cjs.map +1 -1
  282. package/_cjs/IO/api/withChildren.cjs +1 -2
  283. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  284. package/_cjs/IO/api/withEarlyRelease.cjs +1 -2
  285. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  286. package/_cjs/IO/api/withFinalizer.cjs +1 -2
  287. package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
  288. package/_cjs/IO/api/withFinalizerExit.cjs +1 -2
  289. package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
  290. package/_cjs/IO/api/zipConcurrent.cjs +5 -6
  291. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  292. package/_cjs/IO/api.cjs +522 -473
  293. package/_cjs/IO/api.cjs.map +1 -1
  294. package/_cjs/IO/definition.cjs +2 -3
  295. package/_cjs/IO/definition.cjs.map +1 -1
  296. package/_cjs/IO/runtime.cjs +9 -10
  297. package/_cjs/IO/runtime.cjs.map +1 -1
  298. package/_cjs/IO.cjs +33 -11
  299. package/_cjs/IO.cjs.map +1 -1
  300. package/_cjs/IOEnv/definition.cjs +1 -2
  301. package/_cjs/IOEnv/definition.cjs.map +1 -1
  302. package/_cjs/IOEnv/live.cjs +1 -2
  303. package/_cjs/IOEnv/live.cjs.map +1 -1
  304. package/_cjs/IOEnv/services.cjs +1 -2
  305. package/_cjs/IOEnv/services.cjs.map +1 -1
  306. package/_cjs/Layer/MemoMap.cjs +1 -2
  307. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  308. package/_cjs/Layer/api.cjs +1 -2
  309. package/_cjs/Layer/api.cjs.map +1 -1
  310. package/_cjs/Logger/api.cjs +1 -2
  311. package/_cjs/Logger/api.cjs.map +1 -1
  312. package/_cjs/Logger/constructors.cjs +1 -2
  313. package/_cjs/Logger/constructors.cjs.map +1 -1
  314. package/_cjs/MVar/api.cjs +1 -2
  315. package/_cjs/MVar/api.cjs.map +1 -1
  316. package/_cjs/Push/api.cjs +2 -3
  317. package/_cjs/Push/api.cjs.map +1 -1
  318. package/_cjs/Push/internal.cjs +1 -2
  319. package/_cjs/Push/internal.cjs.map +1 -1
  320. package/_cjs/Queue/api/dimapIO.cjs +1 -2
  321. package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
  322. package/_cjs/Queue/api/filterInputIO.cjs +1 -2
  323. package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
  324. package/_cjs/Queue/api/filterOutputIO.cjs +1 -2
  325. package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
  326. package/_cjs/Queue/api/poll.cjs +1 -2
  327. package/_cjs/Queue/api/poll.cjs.map +1 -1
  328. package/_cjs/Queue/api/takeBetween.cjs +1 -2
  329. package/_cjs/Queue/api/takeBetween.cjs.map +1 -1
  330. package/_cjs/Queue/api/takeN.cjs +1 -2
  331. package/_cjs/Queue/api/takeN.cjs.map +1 -1
  332. package/_cjs/Queue/api/zipWithIO.cjs +1 -2
  333. package/_cjs/Queue/api/zipWithIO.cjs.map +1 -1
  334. package/_cjs/Queue/constructors.cjs +1 -2
  335. package/_cjs/Queue/constructors.cjs.map +1 -1
  336. package/_cjs/Queue/internal.cjs +1 -2
  337. package/_cjs/Queue/internal.cjs.map +1 -1
  338. package/_cjs/Queue/strategy.cjs +1 -2
  339. package/_cjs/Queue/strategy.cjs.map +1 -1
  340. package/_cjs/Random/api.cjs +1 -2
  341. package/_cjs/Random/api.cjs.map +1 -1
  342. package/_cjs/Random/definition.cjs +2 -2
  343. package/_cjs/Random/definition.cjs.map +1 -1
  344. package/_cjs/Random/live.cjs +1 -2
  345. package/_cjs/Random/live.cjs.map +1 -1
  346. package/_cjs/Ref/Atomic.cjs +1 -2
  347. package/_cjs/Ref/Atomic.cjs.map +1 -1
  348. package/_cjs/Ref/Derived.cjs +1 -2
  349. package/_cjs/Ref/Derived.cjs.map +1 -1
  350. package/_cjs/Ref/DerivedAll.cjs +1 -2
  351. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  352. package/_cjs/Ref/Synchronized/api.cjs +2 -3
  353. package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
  354. package/_cjs/Ref/Synchronized/constructors.cjs +2 -3
  355. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  356. package/_cjs/Ref/Synchronized/definition.cjs +2 -3
  357. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  358. package/_cjs/Ref/api/collect.cjs +1 -2
  359. package/_cjs/Ref/api/collect.cjs.map +1 -1
  360. package/_cjs/Ref/api/dimap.cjs +1 -2
  361. package/_cjs/Ref/api/dimap.cjs.map +1 -1
  362. package/_cjs/Ref/api/filter.cjs +1 -2
  363. package/_cjs/Ref/api/filter.cjs.map +1 -1
  364. package/_cjs/Ref/api/modify.cjs +1 -2
  365. package/_cjs/Ref/api/modify.cjs.map +1 -1
  366. package/_cjs/Ref/api.cjs +1 -2
  367. package/_cjs/Ref/api.cjs.map +1 -1
  368. package/_cjs/Ref/constructors.cjs +1 -2
  369. package/_cjs/Ref/constructors.cjs.map +1 -1
  370. package/_cjs/RefSubject/Atomic.cjs +1 -2
  371. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  372. package/_cjs/RefSubject/Synchronized/api.cjs +1 -2
  373. package/_cjs/RefSubject/Synchronized/api.cjs.map +1 -1
  374. package/_cjs/RefSubject/Synchronized/definition.cjs +1 -2
  375. package/_cjs/RefSubject/Synchronized/definition.cjs.map +1 -1
  376. package/_cjs/RefSubject/api.cjs +1 -2
  377. package/_cjs/RefSubject/api.cjs.map +1 -1
  378. package/_cjs/Reloadable/api.cjs +1 -2
  379. package/_cjs/Reloadable/api.cjs.map +1 -1
  380. package/_cjs/Reloadable/constructors.cjs +1 -2
  381. package/_cjs/Reloadable/constructors.cjs.map +1 -1
  382. package/_cjs/Reloadable/definition.cjs +1 -2
  383. package/_cjs/Reloadable/definition.cjs.map +1 -1
  384. package/_cjs/RuntimeFlag.cjs +0 -4
  385. package/_cjs/RuntimeFlags/Patch.cjs +1 -2
  386. package/_cjs/RuntimeFlags/Patch.cjs.map +1 -1
  387. package/_cjs/RuntimeFlags/RuntimeFlags.cjs +1 -2
  388. package/_cjs/RuntimeFlags/RuntimeFlags.cjs.map +1 -1
  389. package/_cjs/STM/api/atomically.cjs +1 -2
  390. package/_cjs/STM/api/atomically.cjs.map +1 -1
  391. package/_cjs/STM/api/core-api.cjs +1 -2
  392. package/_cjs/STM/api/core-api.cjs.map +1 -1
  393. package/_cjs/STM/api.cjs +1 -2
  394. package/_cjs/STM/api.cjs.map +1 -1
  395. package/_cjs/STM/definition.cjs +2 -3
  396. package/_cjs/STM/definition.cjs.map +1 -1
  397. package/_cjs/STM/driver.cjs +1 -2
  398. package/_cjs/STM/driver.cjs.map +1 -1
  399. package/_cjs/STM/internal/CommitState.cjs +1 -2
  400. package/_cjs/STM/internal/CommitState.cjs.map +1 -1
  401. package/_cjs/STM/internal/Journal.cjs +1 -2
  402. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  403. package/_cjs/Schedule/Decision.cjs +1 -2
  404. package/_cjs/Schedule/Decision.cjs.map +1 -1
  405. package/_cjs/Schedule/api/driver.cjs +1 -2
  406. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  407. package/_cjs/Schedule/api.cjs +1 -2
  408. package/_cjs/Schedule/api.cjs.map +1 -1
  409. package/_cjs/Scope/Finalizer/definition.cjs +1 -2
  410. package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
  411. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -2
  412. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  413. package/_cjs/Scope/ReleaseMap/api.cjs +1 -2
  414. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  415. package/_cjs/Scope/ReleaseMap/constructors.cjs +1 -2
  416. package/_cjs/Scope/ReleaseMap/constructors.cjs.map +1 -1
  417. package/_cjs/Scope/ReleaseMap/definition.cjs +1 -2
  418. package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
  419. package/_cjs/Scope/api.cjs +1 -2
  420. package/_cjs/Scope/api.cjs.map +1 -1
  421. package/_cjs/Scope/definition.cjs +1 -2
  422. package/_cjs/Scope/definition.cjs.map +1 -1
  423. package/_cjs/ScopedRef/api.cjs +2 -3
  424. package/_cjs/ScopedRef/api.cjs.map +1 -1
  425. package/_cjs/Semaphore/Reservation.cjs +24 -0
  426. package/_cjs/Semaphore/Reservation.cjs.map +1 -0
  427. package/_cjs/Semaphore/constructors.cjs +25 -0
  428. package/_cjs/Semaphore/constructors.cjs.map +1 -0
  429. package/_cjs/Semaphore/definition.cjs +149 -0
  430. package/_cjs/Semaphore/definition.cjs.map +1 -0
  431. package/_cjs/Semaphore.cjs +31 -138
  432. package/_cjs/Semaphore.cjs.map +1 -1
  433. package/_cjs/Sink/api.cjs +1 -2
  434. package/_cjs/Sink/api.cjs.map +1 -1
  435. package/_cjs/State/api.cjs +1 -2
  436. package/_cjs/State/api.cjs.map +1 -1
  437. package/_cjs/Stream/api/zipAllWith.cjs +1 -2
  438. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  439. package/_cjs/Stream/api/zipWith.cjs +1 -2
  440. package/_cjs/Stream/api/zipWith.cjs.map +1 -1
  441. package/_cjs/Stream/api/zipWithChunks.cjs +1 -2
  442. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  443. package/_cjs/Stream/api.cjs +702 -703
  444. package/_cjs/Stream/api.cjs.map +1 -1
  445. package/_cjs/Stream/internal/Handoff.cjs +1 -2
  446. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  447. package/_cjs/Stream/internal/Pull.cjs +1 -2
  448. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  449. package/_cjs/Stream/internal/Take.cjs +1 -2
  450. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  451. package/_cjs/Stream/internal/util.cjs +1 -2
  452. package/_cjs/Stream/internal/util.cjs.map +1 -1
  453. package/_cjs/Subject/Atomic.cjs +1 -2
  454. package/_cjs/Subject/Atomic.cjs.map +1 -1
  455. package/_cjs/Subject/api.cjs +1 -2
  456. package/_cjs/Subject/api.cjs.map +1 -1
  457. package/_cjs/SubscriptionRef.cjs +2 -3
  458. package/_cjs/SubscriptionRef.cjs.map +1 -1
  459. package/_cjs/Supervisor/api.cjs +1 -2
  460. package/_cjs/Supervisor/api.cjs.map +1 -1
  461. package/_cjs/Supervisor/constructors.cjs +1 -2
  462. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  463. package/_cjs/Supervisor/definition.cjs +1 -2
  464. package/_cjs/Supervisor/definition.cjs.map +1 -1
  465. package/_cjs/SupervisorPatch.cjs +1 -2
  466. package/_cjs/SupervisorPatch.cjs.map +1 -1
  467. package/_cjs/TExit/definition.cjs +1 -2
  468. package/_cjs/TExit/definition.cjs.map +1 -1
  469. package/_cjs/TFuture/api.cjs +1 -2
  470. package/_cjs/TFuture/api.cjs.map +1 -1
  471. package/_cjs/TFuture/constructors.cjs +1 -2
  472. package/_cjs/TFuture/constructors.cjs.map +1 -1
  473. package/_cjs/TFuture/definition.cjs +1 -2
  474. package/_cjs/TFuture/definition.cjs.map +1 -1
  475. package/_cjs/TReentrantLock/api.cjs +1 -2
  476. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  477. package/_cjs/TReentrantLock/definition.cjs +1 -2
  478. package/_cjs/TReentrantLock/definition.cjs.map +1 -1
  479. package/_cjs/TRef/api.cjs +1 -2
  480. package/_cjs/TRef/api.cjs.map +1 -1
  481. package/_cjs/TRef/constructors.cjs +1 -2
  482. package/_cjs/TRef/constructors.cjs.map +1 -1
  483. package/_cjs/TRef/definition.cjs +1 -2
  484. package/_cjs/TRef/definition.cjs.map +1 -1
  485. package/_cjs/TSemaphore/api.cjs +1 -2
  486. package/_cjs/TSemaphore/api.cjs.map +1 -1
  487. package/_cjs/TSemaphore/constructors.cjs +1 -2
  488. package/_cjs/TSemaphore/constructors.cjs.map +1 -1
  489. package/_cjs/TSemaphore/definition.cjs +1 -2
  490. package/_cjs/TSemaphore/definition.cjs.map +1 -1
  491. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +1 -2
  492. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
  493. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +1 -2
  494. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
  495. package/_cjs/collection/immutable/Conc/filterIO.cjs +1 -2
  496. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
  497. package/_cjs/collection/immutable/Conc/findIO.cjs +1 -2
  498. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  499. package/_cjs/collection/immutable/Conc/mapIO.cjs +1 -2
  500. package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
  501. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +1 -2
  502. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
  503. package/_cjs/data/Exit/foreachIO.cjs +1 -2
  504. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  505. package/_cjs/global.cjs +0 -4
  506. package/_cjs/index.cjs +0 -4
  507. package/_cjs/internal/HashedPair.cjs +1 -2
  508. package/_cjs/internal/HashedPair.cjs.map +1 -1
  509. package/_cjs/internal/Hub.cjs +1 -2
  510. package/_cjs/internal/Hub.cjs.map +1 -1
  511. package/_cjs/internal/MutableQueue.cjs +1 -2
  512. package/_cjs/internal/MutableQueue.cjs.map +1 -1
  513. package/_cjs/internal/Scheduler.cjs +1 -2
  514. package/_cjs/internal/Scheduler.cjs.map +1 -1
  515. package/_cjs/internal/StackTraceBuilder.cjs +1 -2
  516. package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
  517. package/_mjs/Cached/api.mjs.map +1 -1
  518. package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
  519. package/_mjs/Channel/api/mergeAllWith.mjs +1 -1
  520. package/_mjs/Channel/api/runScoped.mjs +2 -2
  521. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  522. package/_mjs/Channel/api/toPull.mjs +1 -1
  523. package/_mjs/Channel/api/toPull.mjs.map +1 -1
  524. package/_mjs/Channel/api.mjs +205 -205
  525. package/_mjs/Channel/api.mjs.map +1 -1
  526. package/_mjs/Channel/core-api.mjs +43 -42
  527. package/_mjs/Channel/core-api.mjs.map +1 -1
  528. package/_mjs/Channel/internal/AsyncInputConsumer.mjs +1 -1
  529. package/_mjs/Channel/internal/AsyncInputProducer.mjs +1 -1
  530. package/_mjs/Channel/internal/ChannelExecutor.mjs +3 -3
  531. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  532. package/_mjs/Console/definition.mjs +1 -0
  533. package/_mjs/Console/definition.mjs.map +1 -1
  534. package/_mjs/CountdownLatch.mjs +2 -1
  535. package/_mjs/CountdownLatch.mjs.map +1 -1
  536. package/_mjs/Fiber/FiberMessage.mjs +2 -20
  537. package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
  538. package/_mjs/Fiber/FiberRuntime.mjs +877 -633
  539. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  540. package/_mjs/Fiber/api/collectAll.mjs +1 -1
  541. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  542. package/_mjs/Fiber/api/interrupt.mjs +1 -1
  543. package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
  544. package/_mjs/Fiber/api/interruptAll.mjs +1 -1
  545. package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
  546. package/_mjs/Fiber/api/interruptAs.mjs +4 -7
  547. package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
  548. package/_mjs/Fiber/api/interruptFork.mjs +1 -1
  549. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  550. package/_mjs/Fiber/api/mapIO.mjs +1 -1
  551. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  552. package/_mjs/Fiber/api/zipWith.mjs +1 -1
  553. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  554. package/_mjs/Fiber/constructors.mjs +1 -1
  555. package/_mjs/Fiber/constructors.mjs.map +1 -1
  556. package/_mjs/Fiber/definition.mjs +5 -2
  557. package/_mjs/Fiber/definition.mjs.map +1 -1
  558. package/_mjs/FiberScope/definition.mjs +28 -4
  559. package/_mjs/FiberScope/definition.mjs.map +1 -1
  560. package/_mjs/FiberSet.mjs +14 -12
  561. package/_mjs/FiberSet.mjs.map +1 -1
  562. package/_mjs/Future/State.mjs +96 -0
  563. package/_mjs/Future/State.mjs.map +1 -0
  564. package/_mjs/Future/api.mjs +67 -61
  565. package/_mjs/Future/api.mjs.map +1 -1
  566. package/_mjs/Future/constructors.mjs +3 -3
  567. package/_mjs/Future/constructors.mjs.map +1 -1
  568. package/_mjs/Future/definition.mjs +0 -12
  569. package/_mjs/Future/definition.mjs.map +1 -1
  570. package/_mjs/Future.mjs +1 -0
  571. package/_mjs/Future.mjs.map +1 -1
  572. package/_mjs/Hub/api.mjs +55 -55
  573. package/_mjs/Hub/api.mjs.map +1 -1
  574. package/_mjs/IO/api/array.mjs +42 -0
  575. package/_mjs/IO/api/array.mjs.map +1 -0
  576. package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
  577. package/_mjs/IO/api/awaitAllChildren.mjs +10 -0
  578. package/_mjs/IO/api/awaitAllChildren.mjs.map +1 -0
  579. package/_mjs/IO/api/cachedInvalidate.mjs +39 -0
  580. package/_mjs/IO/api/cachedInvalidate.mjs.map +1 -0
  581. package/_mjs/IO/api/disconnect.mjs +1 -1
  582. package/_mjs/IO/api/disconnect.mjs.map +1 -1
  583. package/_mjs/IO/api/foreachConcurrent.mjs +35 -28
  584. package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
  585. package/_mjs/IO/api/fork.mjs +1 -1
  586. package/_mjs/IO/api/fork.mjs.map +1 -1
  587. package/_mjs/IO/api/forkDaemon.mjs +4 -4
  588. package/_mjs/IO/api/forkDaemon.mjs.map +1 -1
  589. package/_mjs/IO/api/interrupt.mjs +3 -3
  590. package/_mjs/IO/api/onTermination.mjs +1 -1
  591. package/_mjs/IO/api/onTermination.mjs.map +1 -1
  592. package/_mjs/IO/api/race.mjs +1 -1
  593. package/_mjs/IO/api/race.mjs.map +1 -1
  594. package/_mjs/IO/api/timeout.mjs +8 -9
  595. package/_mjs/IO/api/timeout.mjs.map +1 -1
  596. package/_mjs/IO/api/transplant.mjs +19 -5
  597. package/_mjs/IO/api/transplant.mjs.map +1 -1
  598. package/_mjs/IO/api/zipConcurrent.mjs +4 -4
  599. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  600. package/_mjs/IO/api.mjs +515 -468
  601. package/_mjs/IO/api.mjs.map +1 -1
  602. package/_mjs/IO/definition.mjs +1 -1
  603. package/_mjs/IO/definition.mjs.map +1 -1
  604. package/_mjs/IO/runtime.mjs +8 -8
  605. package/_mjs/IO/runtime.mjs.map +1 -1
  606. package/_mjs/IO.mjs +3 -1
  607. package/_mjs/IO.mjs.map +1 -1
  608. package/_mjs/IOEnv/definition.mjs.map +1 -1
  609. package/_mjs/Push/api.mjs +1 -1
  610. package/_mjs/Random/definition.mjs +1 -0
  611. package/_mjs/Random/definition.mjs.map +1 -1
  612. package/_mjs/Ref/Synchronized/api.mjs +1 -1
  613. package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
  614. package/_mjs/Ref/Synchronized/constructors.mjs +1 -1
  615. package/_mjs/Ref/Synchronized/definition.mjs +1 -1
  616. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  617. package/_mjs/RuntimeFlag.mjs +1 -1
  618. package/_mjs/STM/definition.mjs +1 -1
  619. package/_mjs/ScopedRef/api.mjs +1 -1
  620. package/_mjs/ScopedRef/api.mjs.map +1 -1
  621. package/_mjs/Semaphore/Reservation.mjs +16 -0
  622. package/_mjs/Semaphore/Reservation.mjs.map +1 -0
  623. package/_mjs/Semaphore/constructors.mjs +17 -0
  624. package/_mjs/Semaphore/constructors.mjs.map +1 -0
  625. package/_mjs/Semaphore/definition.mjs +141 -0
  626. package/_mjs/Semaphore/definition.mjs.map +1 -0
  627. package/_mjs/Semaphore.mjs +4 -133
  628. package/_mjs/Semaphore.mjs.map +1 -1
  629. package/_mjs/Stream/api.mjs +701 -701
  630. package/_mjs/Stream/api.mjs.map +1 -1
  631. package/_mjs/SubscriptionRef.mjs +1 -1
  632. package/_mjs/global.mjs +1 -1
  633. package/_mjs/index.mjs +1 -1
  634. package/_src/Cached/api.ts +3 -3
  635. package/_src/Channel/api/toPull.ts +1 -1
  636. package/_src/Channel/api.ts +273 -272
  637. package/_src/Channel/core-api.ts +57 -55
  638. package/_src/Channel/internal/ChannelExecutor.ts +3 -3
  639. package/_src/Console/definition.ts +1 -0
  640. package/_src/CountdownLatch.ts +2 -0
  641. package/_src/Fiber/FiberMessage.ts +3 -28
  642. package/_src/Fiber/FiberRuntime.ts +988 -616
  643. package/_src/Fiber/api/interruptAs.ts +4 -3
  644. package/_src/Fiber/constructors.ts +1 -1
  645. package/_src/Fiber/definition.ts +4 -0
  646. package/_src/FiberScope/definition.ts +40 -2
  647. package/_src/FiberSet.ts +6 -2
  648. package/_src/Future/State.ts +128 -0
  649. package/_src/Future/api.ts +62 -51
  650. package/_src/Future/constructors.ts +4 -2
  651. package/_src/Future/definition.ts +2 -17
  652. package/_src/Future.ts +4 -3
  653. package/_src/Hub/api.ts +61 -61
  654. package/_src/IO/api/addFinalizerExit.ts +4 -4
  655. package/_src/IO/api/array.ts +49 -0
  656. package/_src/IO/api/asyncInterrupt.ts +1 -1
  657. package/_src/IO/api/awaitAllChildren.ts +6 -0
  658. package/_src/IO/api/cachedInvalidate.ts +42 -0
  659. package/_src/IO/api/foreachConcurrent.ts +39 -23
  660. package/_src/IO/api/fork.ts +1 -1
  661. package/_src/IO/api/forkDaemon.ts +2 -2
  662. package/_src/IO/api/memoize.ts +3 -3
  663. package/_src/IO/api/onTermination.ts +2 -2
  664. package/_src/IO/api/transplant.ts +26 -3
  665. package/_src/IO/api/zipConcurrent.ts +2 -2
  666. package/_src/IO/api.ts +547 -525
  667. package/_src/IO/definition.ts +4 -28
  668. package/_src/IO/runtime.ts +0 -1
  669. package/_src/IO.ts +65 -63
  670. package/_src/IOEnv/definition.ts +1 -4
  671. package/_src/Random/definition.ts +1 -0
  672. package/_src/Ref/Synchronized/api.ts +2 -2
  673. package/_src/Ref/Synchronized/definition.ts +1 -1
  674. package/_src/Semaphore/Reservation.ts +15 -0
  675. package/_src/Semaphore/constructors.ts +14 -0
  676. package/_src/Semaphore/definition.ts +180 -0
  677. package/_src/Semaphore.ts +5 -159
  678. package/_src/Stream/api.ts +679 -679
  679. package/package.json +4 -4
  680. package/IO/api/sequenceT.d.ts +0 -26
  681. package/_cjs/IO/api/sequenceT.cjs +0 -18
  682. package/_cjs/IO/api/sequenceT.cjs.map +0 -1
  683. package/_mjs/IO/api/sequenceT.mjs +0 -10
  684. package/_mjs/IO/api/sequenceT.mjs.map +0 -1
  685. package/_src/IO/api/sequenceT.ts +0 -16
@@ -0,0 +1,96 @@
1
+ export class Pending {}
2
+ /**
3
+ * @tsplus fluent fncts.io.Future.State concrete
4
+ * @tsplus macro remove
5
+ */
6
+ export function concrete(self) {}
7
+ /**
8
+ * @tsplus fluent fncts.io.Future.State concretePending
9
+ * @tsplus macro remove
10
+ */
11
+ export function concretePending(self) {}
12
+ export class Empty extends Pending {
13
+ constructor() {
14
+ super(...arguments);
15
+ this._tag = 1 /* FutureStateTag.Empty */;
16
+ this.size = 0;
17
+ }
18
+ complete(_) {
19
+ return;
20
+ }
21
+ add(waiter) {
22
+ return new Link(waiter, this, 1);
23
+ }
24
+ remove(_) {
25
+ return this;
26
+ }
27
+ }
28
+ /**
29
+ * @tsplus static fncts.io.Future.State Empty
30
+ */
31
+ const _Empty_1 = /*#__PURE__*/new Empty();
32
+ export const _Empty = _Empty_1;
33
+ export class Link extends Pending {
34
+ constructor(waiter, ws, size) {
35
+ super();
36
+ this.waiter = waiter;
37
+ this.ws = ws;
38
+ this.size = size;
39
+ this._tag = 0 /* FutureStateTag.Link */;
40
+ }
41
+ add(waiter) {
42
+ return new Link(waiter, this, this.size + 1);
43
+ }
44
+ complete(io) {
45
+ if (this.size === 1) {
46
+ return this.waiter(io);
47
+ } else {
48
+ let current = this;
49
+ while (current._tag !== 1 /* FutureStateTag.Empty */) {
50
+ current.waiter(io);
51
+ current = current.ws;
52
+ }
53
+ }
54
+ }
55
+ remove(waiter) {
56
+ if (this.size === 1) {
57
+ if (waiter === this.waiter) {
58
+ return this.ws;
59
+ } else {
60
+ return this;
61
+ }
62
+ } else {
63
+ const arr = materialize(this, this.size);
64
+ let i = this.size - 1;
65
+ let acc = _Empty_1;
66
+ while (i >= 0) {
67
+ if (arr[i] !== this.waiter) {
68
+ acc = acc.add(arr[i]);
69
+ }
70
+ i -= 1;
71
+ }
72
+ return acc;
73
+ }
74
+ }
75
+ }
76
+ function materialize(self, size) {
77
+ const array = new Array(size);
78
+ let current = self;
79
+ let i = size - 1;
80
+ while (i >= 0) {
81
+ void 0;
82
+ if (current._tag === 0 /* FutureStateTag.Link */) {
83
+ array[i] = current.waiter;
84
+ current = current.ws;
85
+ }
86
+ i -= 1;
87
+ }
88
+ return array;
89
+ }
90
+ export class Done {
91
+ constructor(value) {
92
+ this.value = value;
93
+ this._tag = 2 /* FutureStateTag.Done */;
94
+ }
95
+ }
96
+ //# sourceMappingURL=State.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.mjs","names":["Pending","concrete","self","concretePending","Empty","constructor","_tag","size","complete","_","add","waiter","Link","remove","_Empty_1","_Empty","ws","io","current","arr","materialize","i","acc","array","Array","Done","value"],"sources":["../../_src/Future/State.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,13 @@
1
1
  import * as tsplus_module_1 from "@fncts/io/IO/api";
2
2
  import * as tsplus_module_2 from "@fncts/io/IO/api/interrupt";
3
- import * as tsplus_module_3 from "@fncts/base/collection/immutable/List/api";
4
- import * as tsplus_module_4 from "@fncts/base/data/Maybe/constructors";
5
- import * as tsplus_module_5 from "@fncts/base/data/Either/constructors";
6
- import * as tsplus_module_6 from "@fncts/io/IO/api/asyncInterrupt";
3
+ import * as tsplus_module_3 from "@fncts/base/data/Maybe/constructors";
4
+ import * as tsplus_module_4 from "@fncts/base/data/Either/constructors";
5
+ import * as tsplus_module_5 from "@fncts/io/IO/api/asyncInterrupt";
7
6
  export const done = done_1;
8
7
  export const fulfillWith = fulfillWith_1;
9
8
  export const succeed_ = succeed_1;
10
- export const unsafeDone = unsafeDone_1;
11
- import { Done, Pending } from "@fncts/io/Future/definition";
9
+ export const unsafeFulfill = unsafeFulfill_1;
10
+ import { Done } from "./State.mjs";
12
11
  /**
13
12
  * Exits the future with the specified exit, which will be propagated to all
14
13
  * fibers waiting on the value of the future.
@@ -46,7 +45,7 @@ export function failCause(cause, __tsplusTrace) {
46
45
  * Completes the future with the result of the specified effect. If the
47
46
  * future has already been completed, the method will produce false.
48
47
  *
49
- * Note that `Future.completeWith` will be much faster, so consider using
48
+ * Note that `Future.fulfillWith` will be much faster, so consider using
50
49
  * that if you do not need to memoize the result of the specified effect.
51
50
  *
52
51
  * @tsplus pipeable fncts.io.Future fulfill
@@ -67,29 +66,13 @@ export function fulfill(io, __tsplusTrace) {
67
66
  * case te meaning of the "exactly once" guarantee of `Future` is that the
68
67
  * future can be completed with exactly one effect. For a version that
69
68
  * completes the future with the result of an IO see
70
- * `Future.complete`.
69
+ * `Future.fulfill`.
71
70
  *
72
71
  * @tsplus pipeable fncts.io.Future fulfillWith
73
72
  */
74
73
  function fulfillWith_1(io, __tsplusTrace) {
75
74
  return future => {
76
- return tsplus_module_1.succeed(() => {
77
- switch (future.state._tag) {
78
- case 0 /* FutureStateTag.Done */:
79
- {
80
- return false;
81
- }
82
- case 1 /* FutureStateTag.Pending */:
83
- {
84
- const state = future.state;
85
- future.state = new Done(io);
86
- tsplus_module_3.forEach(f => {
87
- f(io);
88
- })(tsplus_module_3.reverse(state.joiners));
89
- return true;
90
- }
91
- }
92
- }, __tsplusTrace);
75
+ return tsplus_module_1.succeed(() => unsafeFulfill_1(io)(future), __tsplusTrace);
93
76
  };
94
77
  }
95
78
  /**
@@ -123,6 +106,22 @@ export function interruptAs(id, __tsplusTrace) {
123
106
  return fulfillWith_1(tsplus_module_2.interruptAs(id, __tsplusTrace), __tsplusTrace)(future);
124
107
  };
125
108
  }
109
+ function interruptJoiner(future, joiner, __tsplusTrace) {
110
+ return tsplus_module_1.succeed(() => {
111
+ void 0;
112
+ switch (future.state._tag) {
113
+ case 2 /* FutureStateTag.Done */:
114
+ {
115
+ break;
116
+ }
117
+ default:
118
+ {
119
+ future.state = future.state.remove(joiner);
120
+ break;
121
+ }
122
+ }
123
+ }, __tsplusTrace);
124
+ }
126
125
  /**
127
126
  * Checks for completion of this Future. Produces true if this future has
128
127
  * already been completed with a value or an error and false otherwise.
@@ -130,7 +129,8 @@ export function interruptAs(id, __tsplusTrace) {
130
129
  * @tsplus getter fncts.io.Future isDone
131
130
  */
132
131
  export function isDone(future, __tsplusTrace) {
133
- return tsplus_module_1.succeed(() => future.state._tag === 0 /* FutureStateTag.Done */, __tsplusTrace);
132
+ void 0;
133
+ return tsplus_module_1.succeed(() => future.state._tag === 2 /* FutureStateTag.Done */, __tsplusTrace);
134
134
  }
135
135
  /**
136
136
  * Checks for completion of this Future. Returns the result effect if this
@@ -140,14 +140,15 @@ export function isDone(future, __tsplusTrace) {
140
140
  */
141
141
  export function poll(future, __tsplusTrace) {
142
142
  return tsplus_module_1.succeed(() => {
143
+ void 0;
143
144
  switch (future.state._tag) {
144
- case 0 /* FutureStateTag.Done */:
145
+ case 2 /* FutureStateTag.Done */:
145
146
  {
146
- return tsplus_module_4.just(future.state.value, __tsplusTrace);
147
+ return tsplus_module_3.just(future.state.value, __tsplusTrace);
147
148
  }
148
- case 1 /* FutureStateTag.Pending */:
149
+ default:
149
150
  {
150
- return tsplus_module_4.nothing(__tsplusTrace);
151
+ return tsplus_module_3.nothing(__tsplusTrace);
151
152
  }
152
153
  }
153
154
  }, __tsplusTrace);
@@ -174,14 +175,30 @@ export function succeedVoid_(a, __tsplusTrace) {
174
175
  *
175
176
  * @tsplus pipeable fncts.io.Future unsafeDone
176
177
  */
177
- function unsafeDone_1(io, __tsplusTrace) {
178
+ export function unsafeDone(io, __tsplusTrace) {
179
+ return future => {
180
+ unsafeFulfill_1(io)(future);
181
+ };
182
+ }
183
+ /**
184
+ * @tsplus pipeable fncts.io.Future unsafeFulfill
185
+ */
186
+ function unsafeFulfill_1(io) {
178
187
  return future => {
179
- if (future.state._tag === 1 /* FutureStateTag.Pending */) {
180
- const state = future.state;
181
- future.state = new Done(io);
182
- tsplus_module_3.forEach(f => {
183
- f(io);
184
- })(tsplus_module_3.reverse(state.joiners));
188
+ void 0;
189
+ switch (future.state._tag) {
190
+ case 0 /* FutureStateTag.Link */:
191
+ case 1 /* FutureStateTag.Empty */:
192
+ {
193
+ const pending = future.state;
194
+ future.state = new Done(io);
195
+ pending.complete(io);
196
+ return true;
197
+ }
198
+ default:
199
+ {
200
+ return false;
201
+ }
185
202
  }
186
203
  };
187
204
  }
@@ -190,7 +207,7 @@ function unsafeDone_1(io, __tsplusTrace) {
190
207
  */
191
208
  export function unsafeSucceed(a, __tsplusTrace) {
192
209
  return future => {
193
- unsafeDone_1(tsplus_module_1.succeedNow(a, __tsplusTrace), __tsplusTrace)(future);
210
+ return unsafeFulfill_1(tsplus_module_1.succeedNow(a, __tsplusTrace))(future);
194
211
  };
195
212
  }
196
213
  /**
@@ -201,43 +218,32 @@ export function unsafeSucceed(a, __tsplusTrace) {
201
218
  */
202
219
  export function wait(future, __tsplusTrace) {
203
220
  return tsplus_module_1.defer(() => {
221
+ void 0;
204
222
  switch (future.state._tag) {
205
- case 0 /* FutureStateTag.Done */:
223
+ case 2 /* FutureStateTag.Done */:
206
224
  {
207
225
  return future.state.value;
208
226
  }
209
- case 1 /* FutureStateTag.Pending */:
227
+ default:
210
228
  {
211
- return tsplus_module_6.asyncInterrupt(k => {
229
+ return tsplus_module_5.asyncInterrupt(k => {
230
+ void 0;
212
231
  switch (future.state._tag) {
213
- case 0 /* FutureStateTag.Done */:
232
+ case 2 /* FutureStateTag.Done */:
214
233
  {
215
- return tsplus_module_5.right(future.state.value, __tsplusTrace);
234
+ k(future.state.value);
235
+ break;
216
236
  }
217
- case 1 /* FutureStateTag.Pending */:
237
+ default:
218
238
  {
219
- future.state = new Pending(tsplus_module_3.prepend(k)(future.state.joiners));
220
- return tsplus_module_5.left(interruptJoiner(future, k, __tsplusTrace), __tsplusTrace);
239
+ future.state = future.state.add(k);
240
+ break;
221
241
  }
222
242
  }
243
+ return tsplus_module_4.left(interruptJoiner(future, k, __tsplusTrace), __tsplusTrace);
223
244
  }, future.blockingOn, __tsplusTrace);
224
245
  }
225
246
  }
226
247
  }, __tsplusTrace);
227
248
  }
228
- function interruptJoiner(future, joiner, __tsplusTrace) {
229
- return tsplus_module_1.succeed(() => {
230
- switch (future.state._tag) {
231
- case 1 /* FutureStateTag.Pending */:
232
- {
233
- future.state = new Pending(tsplus_module_3.filter(j => j !== joiner)(future.state.joiners));
234
- break;
235
- }
236
- case 0 /* FutureStateTag.Done */:
237
- {
238
- break;
239
- }
240
- }
241
- }, __tsplusTrace);
242
- }
243
249
  //# sourceMappingURL=api.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","names":["done","done_1","fulfillWith","fulfillWith_1","succeed_","succeed_1","unsafeDone","unsafeDone_1","Done","Pending","exit","__tsplusTrace","future","tsplus_module_1","fromExitNow","fail","e","failNow","failCause","cause","failCauseNow","fulfill","io","tsplus_module_2","uninterruptibleMask","restore","flatMap","result","succeed","state","_tag","tsplus_module_3","forEach","f","reverse","joiners","halt","defect","haltNow","interrupt","id","interruptAs","fiberId","isDone","poll","tsplus_module_4","just","value","nothing","a","succeedNow","succeedVoid_","unsafeSucceed","wait","defer","tsplus_module_6","asyncInterrupt","k","tsplus_module_5","right","prepend","left","interruptJoiner","blockingOn","joiner","filter","j"],"sources":["../../_src/Future/api.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"api.mjs","names":["done","done_1","fulfillWith","fulfillWith_1","succeed_","succeed_1","unsafeFulfill","unsafeFulfill_1","Done","exit","__tsplusTrace","future","tsplus_module_1","fromExitNow","fail","e","failNow","failCause","cause","failCauseNow","fulfill","io","tsplus_module_2","uninterruptibleMask","restore","flatMap","result","succeed","halt","defect","haltNow","interrupt","id","interruptAs","fiberId","interruptJoiner","joiner","state","_tag","remove","isDone","poll","tsplus_module_3","just","value","nothing","a","succeedNow","succeedVoid_","unsafeDone","pending","complete","unsafeSucceed","wait","defer","tsplus_module_5","asyncInterrupt","k","add","tsplus_module_4","left","blockingOn"],"sources":["../../_src/Future/api.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import * as tsplus_module_1 from "@fncts/io/IO/api";
2
- import * as tsplus_module_2 from "@fncts/base/collection/immutable/List/constructors";
2
+ import * as tsplus_module_2 from "@fncts/io/Future/State";
3
3
  export const makeAs = makeAs_1;
4
4
  export const unsafeMake = unsafeMake_1;
5
- import { Future, Pending } from "@fncts/io/Future/definition";
5
+ import { Future } from "@fncts/io/Future/definition";
6
6
  /**
7
7
  * Makes a new future to be completed by the fiber creating the future.
8
8
  *
@@ -25,6 +25,6 @@ function makeAs_1(fiberId, __tsplusTrace) {
25
25
  * @tsplus static fncts.io.FutureOps unsafeMake
26
26
  */
27
27
  function unsafeMake_1(fiberId) {
28
- return new Future(new Pending(tsplus_module_2.empty()), fiberId);
28
+ return new Future(tsplus_module_2._Empty, fiberId);
29
29
  }
30
30
  //# sourceMappingURL=constructors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constructors.mjs","names":["makeAs","makeAs_1","unsafeMake","unsafeMake_1","Future","Pending","make","__tsplusTrace","tsplus_module_1","flatMap","id","fiberId","succeed","tsplus_module_2","empty"],"sources":["../../_src/Future/constructors.ts"],"sourcesContent":[null],"mappings":";;aAgBgBA,MAAM,GAAAC,QAAA;aASNC,UAAU,GAAAC,YAAA;AAzB1B,SAASC,MAAM,EAAEC,OAAO,QAAQ,6BAA6B;AAE7D;;;;;AAKA,OAAM,SAAUC,IAAIA,CAAOC,aAAsB;EAC/C,OAAOC,eAAA,CAAAC,OAAA,CAAoBC,EAAE,IAAKT,QAAA,CAAoBS,EAAE,EAD/BH,aAAA,CACgC,EADhCA,aAAA,EAAAC,eAAA,CAAAG,OAAA,CACiC;AAC5D;AAEA;;;;;AAKA,SAAAV,SAA6BU,OAAgB,EAAEJ,aAAsB;EACnE,OAAOC,eAAA,CAAAI,OAAA,OAAWT,YAAA,CAAiBQ,OAAO,CAAC,EADEJ,aAAA,CACD;AAC9C;AAEA;;;;;AAKA,SAAAJ,aAAiCQ,OAAgB;EAC/C,OAAO,IAAIP,MAAM,CAAO,IAAIC,OAAO,CAACQ,eAAA,CAAAC,KAAA,EAAY,CAAC,EAAEH,OAAO,CAAC;AAC7D","ignoreList":[]}
1
+ {"version":3,"file":"constructors.mjs","names":["makeAs","makeAs_1","unsafeMake","unsafeMake_1","Future","make","__tsplusTrace","tsplus_module_1","flatMap","id","fiberId","succeed","tsplus_module_2","_Empty"],"sources":["../../_src/Future/constructors.ts"],"sourcesContent":[null],"mappings":";;aAkBgBA,MAAM,GAAAC,QAAA;aASNC,UAAU,GAAAC,YAAA;AA3B1B,SAASC,MAAM,QAAQ,6BAA6B;AAIpD;;;;;AAKA,OAAM,SAAUC,IAAIA,CAAOC,aAAsB;EAC/C,OAAOC,eAAA,CAAAC,OAAA,CAAoBC,EAAE,IAAKR,QAAA,CAAoBQ,EAAE,EAD/BH,aAAA,CACgC,EADhCA,aAAA,EAAAC,eAAA,CAAAG,OAAA,CACiC;AAC5D;AAEA;;;;;AAKA,SAAAT,SAA6BS,OAAgB,EAAEJ,aAAsB;EACnE,OAAOC,eAAA,CAAAI,OAAA,OAAWR,YAAA,CAAiBO,OAAO,CAAC,EADEJ,aAAA,CACD;AAC9C;AAEA;;;;;AAKA,SAAAH,aAAiCO,OAAgB;EAC/C,OAAO,IAAIN,MAAM,CAAAQ,eAAA,CAAAC,MAAA,EAAoBH,OAAO,CAAC;AAC/C","ignoreList":[]}
@@ -13,16 +13,4 @@ export class Future {
13
13
  }
14
14
  }
15
15
  _a = FutureTypeId;
16
- export class Pending {
17
- constructor(joiners) {
18
- this.joiners = joiners;
19
- this._tag = 1 /* FutureStateTag.Pending */;
20
- }
21
- }
22
- export class Done {
23
- constructor(value) {
24
- this.value = value;
25
- this._tag = 0 /* FutureStateTag.Done */;
26
- }
27
- }
28
16
  //# sourceMappingURL=definition.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","names":["FutureTypeId","Symbol","for","FutureVariance","Future","constructor","state","blockingOn","_a","Pending","joiners","_tag","Done","value"],"sources":["../../_src/Future/definition.ts"],"sourcesContent":[null],"mappings":";AAAA,OAAO,MAAMA,YAAY,gBAAGC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;AAGzD,OAAO,MAAMC,cAAc,gBAAGF,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAGpE;;;;AAIA,OAAM,MAAOE,MAAM;EAMjBC,YACSC,KAAkB,EAChBC,UAAmB;IADrB,KAAAD,KAAK,GAALA,KAAK;IACH,KAAAC,UAAU,GAAVA,UAAU;IAPZ,KAAAC,EAAA,CAAc,GAAiBR,YAAY;EAQjD;;KAROA,YAAY;AAqBxB,OAAM,MAAOS,OAAO;EAElBJ,YAAqBK,OAAqC;IAArC,KAAAA,OAAO,GAAPA,OAAO;IADnB,KAAAC,IAAI;EACgD;;AAG/D,OAAM,MAAOC,IAAI;EAEfP,YAAqBQ,KAAgB;IAAhB,KAAAA,KAAK,GAALA,KAAK;IADjB,KAAAF,IAAI;EAC2B","ignoreList":[]}
1
+ {"version":3,"file":"definition.mjs","names":["FutureTypeId","Symbol","for","FutureVariance","Future","constructor","state","blockingOn","_a"],"sources":["../../_src/Future/definition.ts"],"sourcesContent":[null],"mappings":";AAEA,OAAO,MAAMA,YAAY,gBAAGC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;AAGzD,OAAO,MAAMC,cAAc,gBAAGF,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAGpE;;;;AAIA,OAAM,MAAOE,MAAM;EAMjBC,YACSC,KAAkB,EAChBC,UAAmB;IADrB,KAAAD,KAAK,GAALA,KAAK;IACH,KAAAC,UAAU,GAAVA,UAAU;IAPZ,KAAAC,EAAA,CAAc,GAAiBR,YAAY;EAQjD;;KAROA,YAAY","ignoreList":[]}
package/_mjs/Future.mjs CHANGED
@@ -2,4 +2,5 @@
2
2
  export * from "./Future/api.mjs";
3
3
  export * from "./Future/constructors.mjs";
4
4
  export * from "./Future/definition.mjs";
5
+ export * from "./Future/State.mjs";
5
6
  //# sourceMappingURL=Future.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Future.mjs","names":[],"sources":["../_src/Future.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,cAAc,kBAAiB;AAC/B,cAAc,2BAA0B;AACxC,cAAc,yBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"Future.mjs","names":[],"sources":["../_src/Future.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,cAAc,kBAAiB;AAC/B,cAAc,2BAA0B;AACxC,cAAc,yBAAwB;AACtC,cAAc,oBAAmB","ignoreList":[]}
package/_mjs/Hub/api.mjs CHANGED
@@ -47,6 +47,17 @@ export function contramapIO(f, __tsplusTrace) {
47
47
  return dimapIO_1(f, tsplus_module_1.succeedNow, __tsplusTrace)(self);
48
48
  };
49
49
  }
50
+ /**
51
+ * Transforms messages published to and taken from the hub using the
52
+ * specified functions.
53
+ *
54
+ * @tsplus pipeable fncts.io.Hub dimap
55
+ */
56
+ export function dimap(f, g, __tsplusTrace) {
57
+ return self => {
58
+ return dimapIO_1(c => tsplus_module_1.succeedNow(f(c), __tsplusTrace), b => tsplus_module_1.succeedNow(g(b), __tsplusTrace), __tsplusTrace)(self);
59
+ };
60
+ }
50
61
  class DimapIO extends PHubInternal {
51
62
  constructor(source, f, g) {
52
63
  super();
@@ -58,25 +69,14 @@ class DimapIO extends PHubInternal {
58
69
  this.isShutdown = this.source.isShutdown;
59
70
  this.shutdown = this.source.shutdown;
60
71
  this.size = this.source.size;
61
- this.subscribe = tsplus_module_1.map(queue => tsplus_module_3.mapDequeueIO(this.g, fileName_1 + ":75:53")(queue), fileName_1 + ":75:30")(this.source.subscribe);
62
- this.publish = c => tsplus_module_1.flatMap(a => this.source.publish(a), fileName_1 + ":77:43")(this.f(c));
63
- this.publishAll = cs => tsplus_module_1.flatMap(as => this.source.publishAll(as), fileName_1 + ":78:67")(tsplus_module_1.foreach(cs, this.f, fileName_1 + ":78:47"));
72
+ this.subscribe = tsplus_module_1.map(queue => tsplus_module_3.mapDequeueIO(this.g, fileName_1 + ":90:53")(queue), fileName_1 + ":90:30")(this.source.subscribe);
73
+ this.publish = c => tsplus_module_1.flatMap(a => this.source.publish(a), fileName_1 + ":92:43")(this.f(c));
74
+ this.publishAll = cs => tsplus_module_1.flatMap(as => this.source.publishAll(as), fileName_1 + ":93:67")(tsplus_module_1.foreach(cs, this.f, fileName_1 + ":93:47"));
64
75
  }
65
76
  get unsafeSize() {
66
77
  return this.source.unsafeSize;
67
78
  }
68
79
  }
69
- /**
70
- * Transforms messages published to and taken from the hub using the
71
- * specified functions.
72
- *
73
- * @tsplus pipeable fncts.io.Hub dimap
74
- */
75
- export function dimap(f, g, __tsplusTrace) {
76
- return self => {
77
- return dimapIO_1(c => tsplus_module_1.succeedNow(f(c), __tsplusTrace), b => tsplus_module_1.succeedNow(g(b), __tsplusTrace), __tsplusTrace)(self);
78
- };
79
- }
80
80
  /**
81
81
  * Transforms messages published to and taken from the hub using the
82
82
  * specified effectual functions.
@@ -89,6 +89,16 @@ function dimapIO_1(f, g, __tsplusTrace) {
89
89
  return new DimapIO(source, f, g);
90
90
  };
91
91
  }
92
+ /**
93
+ * Filters messages published to the hub using the specified function.
94
+ *
95
+ * @tsplus pipeable fncts.io.Hub filterInput
96
+ */
97
+ export function filterInput(f, __tsplusTrace) {
98
+ return self => {
99
+ return filterInputIO_1(a => tsplus_module_1.succeedNow(f(a), __tsplusTrace), __tsplusTrace)(self);
100
+ };
101
+ }
92
102
  class FilterInputIO extends PHubInternal {
93
103
  constructor(source, f) {
94
104
  super();
@@ -100,8 +110,8 @@ class FilterInputIO extends PHubInternal {
100
110
  this.shutdown = this.source.shutdown;
101
111
  this.size = this.source.size;
102
112
  this.subscribe = this.source.subscribe;
103
- this.publish = a => tsplus_module_1.flatMap(b => b ? this.source.publish(a) : tsplus_module_1.succeedNow(false, fileName_1 + ":129:94"), fileName_1 + ":129:43")(this.f(a));
104
- this.publishAll = as => tsplus_module_1.flatMap(as => tsplus_module_4.isNonEmpty(as) ? this.source.publishAll(as) : tsplus_module_1.succeedNow(false, fileName_1 + ":131:102"), fileName_1 + ":131:34")(tsplus_module_1.filter(as, this.f, fileName_1 + ":131:14"));
113
+ this.publish = a => tsplus_module_1.flatMap(b => b ? this.source.publish(a) : tsplus_module_1.succeedNow(false, fileName_1 + ":140:94"), fileName_1 + ":140:43")(this.f(a));
114
+ this.publishAll = as => tsplus_module_1.flatMap(as => tsplus_module_4.isNonEmpty(as) ? this.source.publishAll(as) : tsplus_module_1.succeedNow(false, fileName_1 + ":142:102"), fileName_1 + ":142:34")(tsplus_module_1.filter(as, this.f, fileName_1 + ":142:14"));
105
115
  }
106
116
  get unsafeSize() {
107
117
  return this.source.unsafeSize;
@@ -120,13 +130,13 @@ function filterInputIO_1(f, __tsplusTrace) {
120
130
  };
121
131
  }
122
132
  /**
123
- * Filters messages published to the hub using the specified function.
133
+ * Filters messages taken from the hub using the specified function.
124
134
  *
125
- * @tsplus pipeable fncts.io.Hub filterInput
135
+ * @tsplus pipeable fncts.io.Hub filterOutput
126
136
  */
127
- export function filterInput(f, __tsplusTrace) {
137
+ export function filterOutput(f, __tsplusTrace) {
128
138
  return self => {
129
- return filterInputIO_1(a => tsplus_module_1.succeedNow(f(a), __tsplusTrace), __tsplusTrace)(self);
139
+ return filterOutputIO_1(b => tsplus_module_1.succeedNow(f(b), __tsplusTrace), __tsplusTrace)(self);
130
140
  };
131
141
  }
132
142
  class FilterOutputIO extends PHubInternal {
@@ -139,7 +149,7 @@ class FilterOutputIO extends PHubInternal {
139
149
  this.isShutdown = this.source.isShutdown;
140
150
  this.shutdown = this.source.shutdown;
141
151
  this.size = this.source.size;
142
- this.subscribe = tsplus_module_1.map(queue => tsplus_module_5.filterOutputDequeueIO(this.f, fileName_1 + ":173:73")(queue), fileName_1 + ":173:41")(this.source.subscribe);
152
+ this.subscribe = tsplus_module_1.map(queue => tsplus_module_5.filterOutputDequeueIO(this.f, fileName_1 + ":184:73")(queue), fileName_1 + ":184:41")(this.source.subscribe);
143
153
  this.publish = a => this.source.publish(a);
144
154
  this.publishAll = as => this.source.publishAll(as);
145
155
  }
@@ -159,16 +169,6 @@ function filterOutputIO_1(f, __tsplusTrace) {
159
169
  return new FilterOutputIO(source, f);
160
170
  };
161
171
  }
162
- /**
163
- * Filters messages taken from the hub using the specified function.
164
- *
165
- * @tsplus pipeable fncts.io.Hub filterOutput
166
- */
167
- export function filterOutput(f, __tsplusTrace) {
168
- return self => {
169
- return filterOutputIO_1(b => tsplus_module_1.succeedNow(f(b), __tsplusTrace), __tsplusTrace)(self);
170
- };
171
- }
172
172
  /**
173
173
  * Checks whether the hub is shut down.
174
174
  *
@@ -241,22 +241,6 @@ function mapIO_1(f, __tsplusTrace) {
241
241
  return dimapIO_1(tsplus_module_1.succeedNow, f, __tsplusTrace)(self);
242
242
  };
243
243
  }
244
- class ToQueue {
245
- constructor(source) {
246
- this.source = source;
247
- this[_a] = QueueTypeId;
248
- this[_b] = EnqueueTypeId;
249
- this.awaitShutdown = this.source.awaitShutdown;
250
- this.capacity = this.source.capacity;
251
- this.isShutdown = this.source.isShutdown;
252
- this.shutdown = this.source.shutdown;
253
- this.size = this.source.size;
254
- this.offer = a => this.source.publish(a);
255
- this.offerAll = as => this.source.publishAll(as);
256
- this.takeUpTo = () => tsplus_module_1.succeedNow(tsplus_module_7.empty(), fileName_1 + ":309:69");
257
- }
258
- }
259
- _a = QueueTypeId, _b = EnqueueTypeId;
260
244
  /**
261
245
  * Publishes a message to the hub, returning whether the message was
262
246
  * published to the hub.
@@ -290,6 +274,15 @@ export function shutdown(self, __tsplusTrace) {
290
274
  void 0;
291
275
  return self.shutdown;
292
276
  }
277
+ /**
278
+ * The current number of messages in the hub.
279
+ *
280
+ * @tsplus getter fncts.io.Hub size
281
+ */
282
+ export function size(self, __tsplusTrace) {
283
+ void 0;
284
+ return self.size;
285
+ }
293
286
  /**
294
287
  * Subscribes to receive messages from the hub. The resulting subscription
295
288
  * can be evaluated multiple times within the scope of the managed to take a
@@ -301,15 +294,22 @@ export function subscribe(self, __tsplusTrace) {
301
294
  void 0;
302
295
  return self.subscribe;
303
296
  }
304
- /**
305
- * The current number of messages in the hub.
306
- *
307
- * @tsplus getter fncts.io.Hub size
308
- */
309
- export function size(self, __tsplusTrace) {
310
- void 0;
311
- return self.size;
297
+ class ToQueue {
298
+ constructor(source) {
299
+ this.source = source;
300
+ this[_a] = QueueTypeId;
301
+ this[_b] = EnqueueTypeId;
302
+ this.awaitShutdown = this.source.awaitShutdown;
303
+ this.capacity = this.source.capacity;
304
+ this.isShutdown = this.source.isShutdown;
305
+ this.shutdown = this.source.shutdown;
306
+ this.size = this.source.size;
307
+ this.offer = a => this.source.publish(a);
308
+ this.offerAll = as => this.source.publishAll(as);
309
+ this.takeUpTo = () => tsplus_module_1.succeedNow(tsplus_module_7.empty(), fileName_1 + ":370:69");
310
+ }
312
311
  }
312
+ _a = QueueTypeId, _b = EnqueueTypeId;
313
313
  /**
314
314
  * Views the hub as a queue that can only be written to.
315
315
  *