@fncts/io 0.0.19 → 0.0.21

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 (1109) hide show
  1. package/Cached/api.d.ts +2 -2
  2. package/Channel/ChildExecutorDecision/api.d.ts +2 -2
  3. package/Channel/UpstreamPullRequest/api.d.ts +2 -2
  4. package/Channel/api/interruptWhen.d.ts +5 -5
  5. package/Channel/api/mapOutIOC.d.ts +3 -3
  6. package/Channel/api/mergeAll.d.ts +2 -2
  7. package/Channel/api/mergeAllUnboundedWith.d.ts +2 -2
  8. package/Channel/api/mergeAllWith.d.ts +2 -2
  9. package/Channel/api/mergeMap.d.ts +2 -2
  10. package/Channel/api/mergeWith.d.ts +2 -2
  11. package/Channel/api/zipC.d.ts +6 -6
  12. package/Channel/api.d.ts +64 -64
  13. package/Channel/core-api.d.ts +11 -11
  14. package/Channel/definition.d.ts +35 -21
  15. package/Differ/api.d.ts +24 -0
  16. package/Differ/definition.d.ts +15 -0
  17. package/Fiber/api/evalOn.d.ts +3 -3
  18. package/Fiber/api/evalOnIO.d.ts +3 -3
  19. package/Fiber/api/interruptAs.d.ts +3 -3
  20. package/Fiber/api/interruptAsFork.d.ts +3 -3
  21. package/Fiber/api/mapFiber.d.ts +2 -2
  22. package/Fiber/api/mapIO.d.ts +5 -5
  23. package/Fiber/api/zipWith.d.ts +2 -2
  24. package/Fiber.d.ts +1 -0
  25. package/FiberRef/api/locallyScoped.d.ts +2 -2
  26. package/FiberRef/api/locallyScopedWith.d.ts +2 -2
  27. package/FiberRef/api.d.ts +18 -18
  28. package/FiberRef/unsafe.d.ts +12 -6
  29. package/FiberRefs/api.d.ts +2 -2
  30. package/FiberRefs/join.d.ts +3 -3
  31. package/Future/api.d.ts +21 -21
  32. package/Hub/constructors.d.ts +49 -0
  33. package/Hub/definition.d.ts +37 -81
  34. package/Hub/internal.d.ts +4 -11
  35. package/Hub.d.ts +1 -1
  36. package/IO/api/acquireRelease.d.ts +1 -1
  37. package/IO/api/acquireReleaseExit.d.ts +1 -1
  38. package/IO/api/bracket.d.ts +1 -1
  39. package/IO/api/bracketExit.d.ts +1 -1
  40. package/IO/api/concurrency.d.ts +2 -2
  41. package/IO/api/core-scope.d.ts +5 -5
  42. package/IO/api/ensuringChildren.d.ts +3 -3
  43. package/IO/api/environment.d.ts +11 -15
  44. package/IO/api/foreachC.d.ts +2 -2
  45. package/IO/api/foreachExec.d.ts +1 -1
  46. package/IO/api/forkIn.d.ts +3 -3
  47. package/IO/api/fulfill.d.ts +3 -3
  48. package/IO/api/interrupt.d.ts +6 -6
  49. package/IO/api/onExit.d.ts +3 -3
  50. package/IO/api/onTermination.d.ts +4 -4
  51. package/IO/api/provideLayer.d.ts +3 -3
  52. package/IO/api/provideSomeLayer.d.ts +3 -7
  53. package/IO/api/race.d.ts +2 -2
  54. package/IO/api/raceFirst.d.ts +2 -2
  55. package/IO/api/repeat.d.ts +3 -3
  56. package/IO/api/retry.d.ts +7 -7
  57. package/IO/api/schedule.d.ts +5 -5
  58. package/IO/api/scoped.d.ts +2 -2
  59. package/IO/api/supervised.d.ts +3 -3
  60. package/IO/api/timeout.d.ts +5 -5
  61. package/IO/api/withFinalizer.d.ts +3 -3
  62. package/IO/api/withFinalizerExit.d.ts +3 -3
  63. package/IO/api/withRuntimeConfig.d.ts +3 -3
  64. package/IO/api/zipC.d.ts +4 -4
  65. package/IO/api.d.ts +179 -176
  66. package/IO/definition.d.ts +15 -9
  67. package/IOEnv/services.d.ts +2 -2
  68. package/Layer/MemoMap.d.ts +4 -4
  69. package/Layer/api.d.ts +28 -28
  70. package/LogLevel.d.ts +12 -12
  71. package/LogSpan.d.ts +2 -2
  72. package/Logger/api.d.ts +5 -5
  73. package/Queue/constructors.d.ts +2 -1
  74. package/Queue/definition.d.ts +91 -82
  75. package/Queue/internal.d.ts +7 -9
  76. package/Queue.d.ts +0 -2
  77. package/Ref/Atomic.d.ts +15 -2
  78. package/Ref/Synchronized.d.ts +72 -0
  79. package/Ref/constructors.d.ts +7 -0
  80. package/Ref/definition.d.ts +60 -58
  81. package/Ref.d.ts +1 -6
  82. package/STM/api/core-api.d.ts +10 -10
  83. package/STM/api.d.ts +61 -61
  84. package/STM/internal/Journal.d.ts +4 -4
  85. package/Schedule/Decision.d.ts +2 -2
  86. package/Schedule/api.d.ts +94 -94
  87. package/Scope/ReleaseMap/api/releaseAll.d.ts +2 -2
  88. package/Scope/ReleaseMap/api.d.ts +10 -10
  89. package/Scope/api.d.ts +8 -8
  90. package/Sink/api.d.ts +68 -68
  91. package/State/api.d.ts +4 -4
  92. package/State/internal.d.ts +1 -1
  93. package/Stream/api/zipAllWith.d.ts +2 -2
  94. package/Stream/api/zipWith.d.ts +2 -2
  95. package/Stream/api/zipWithChunks.d.ts +2 -2
  96. package/Stream/api.d.ts +216 -205
  97. package/Stream/internal/DebounceState.d.ts +3 -3
  98. package/Stream/internal/Handoff.d.ts +5 -5
  99. package/Stream/internal/Pull.d.ts +2 -2
  100. package/Stream/internal/SinkEndReason.d.ts +3 -3
  101. package/Stream/internal/Take.d.ts +8 -8
  102. package/SubscriptionRef.d.ts +29 -0
  103. package/Supervisor/api.d.ts +13 -7
  104. package/Supervisor/definition.d.ts +28 -0
  105. package/SupervisorPatch.d.ts +61 -0
  106. package/TFuture/api.d.ts +7 -7
  107. package/TReentrantLock/api.d.ts +4 -4
  108. package/TRef/api.d.ts +24 -24
  109. package/TSemaphore/api.d.ts +4 -4
  110. package/TSemaphore/constructors.d.ts +6 -0
  111. package/_cjs/Cached/api.cjs +9 -9
  112. package/_cjs/Cached/api.cjs.map +1 -1
  113. package/_cjs/Channel/ChildExecutorDecision/api.cjs +19 -17
  114. package/_cjs/Channel/ChildExecutorDecision/api.cjs.map +1 -1
  115. package/_cjs/Channel/UpstreamPullRequest/api.cjs +16 -14
  116. package/_cjs/Channel/UpstreamPullRequest/api.cjs.map +1 -1
  117. package/_cjs/Channel/api/interruptWhen.cjs +14 -10
  118. package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
  119. package/_cjs/Channel/api/mapOutIOC.cjs +25 -25
  120. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  121. package/_cjs/Channel/api/mergeAll.cjs +6 -4
  122. package/_cjs/Channel/api/mergeAll.cjs.map +1 -1
  123. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs +6 -4
  124. package/_cjs/Channel/api/mergeAllUnboundedWith.cjs.map +1 -1
  125. package/_cjs/Channel/api/mergeAllWith.cjs +48 -52
  126. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  127. package/_cjs/Channel/api/mergeMap.cjs +6 -4
  128. package/_cjs/Channel/api/mergeMap.cjs.map +1 -1
  129. package/_cjs/Channel/api/mergeWith.cjs +48 -46
  130. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  131. package/_cjs/Channel/api/run.cjs +1 -1
  132. package/_cjs/Channel/api/run.cjs.map +1 -1
  133. package/_cjs/Channel/api/runScoped.cjs +2 -2
  134. package/_cjs/Channel/api/runScoped.cjs.map +1 -1
  135. package/_cjs/Channel/api/toPull.cjs +3 -3
  136. package/_cjs/Channel/api/toPull.cjs.map +1 -1
  137. package/_cjs/Channel/api/zipC.cjs +20 -14
  138. package/_cjs/Channel/api/zipC.cjs.map +1 -1
  139. package/_cjs/Channel/api.cjs +264 -218
  140. package/_cjs/Channel/api.cjs.map +1 -1
  141. package/_cjs/Channel/core-api.cjs +34 -24
  142. package/_cjs/Channel/core-api.cjs.map +1 -1
  143. package/_cjs/Channel/definition.cjs +1 -1
  144. package/_cjs/Channel/definition.cjs.map +1 -1
  145. package/_cjs/Channel/internal/ChannelExecutor.cjs +83 -83
  146. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  147. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +22 -24
  148. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  149. package/_cjs/Differ/api.cjs +108 -0
  150. package/_cjs/Differ/api.cjs.map +1 -0
  151. package/_cjs/Differ/definition.cjs +23 -0
  152. package/_cjs/Differ/definition.cjs.map +1 -0
  153. package/_cjs/Fiber/FiberContext.cjs +48 -48
  154. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  155. package/_cjs/Fiber/api/awaitAll.cjs +1 -1
  156. package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
  157. package/_cjs/Fiber/api/collectAll.cjs +1 -1
  158. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  159. package/_cjs/Fiber/api/evalOn.cjs +12 -10
  160. package/_cjs/Fiber/api/evalOn.cjs.map +1 -1
  161. package/_cjs/Fiber/api/evalOnIO.cjs +6 -4
  162. package/_cjs/Fiber/api/evalOnIO.cjs.map +1 -1
  163. package/_cjs/Fiber/api/fromIO.cjs +1 -1
  164. package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
  165. package/_cjs/Fiber/api/interrupt.cjs +1 -1
  166. package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
  167. package/_cjs/Fiber/api/interruptAll.cjs +2 -2
  168. package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
  169. package/_cjs/Fiber/api/interruptAs.cjs +6 -4
  170. package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
  171. package/_cjs/Fiber/api/interruptAsFork.cjs +6 -4
  172. package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -1
  173. package/_cjs/Fiber/api/interruptFork.cjs +1 -1
  174. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  175. package/_cjs/Fiber/api/join.cjs +1 -1
  176. package/_cjs/Fiber/api/join.cjs.map +1 -1
  177. package/_cjs/Fiber/api/joinAll.cjs +1 -1
  178. package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
  179. package/_cjs/Fiber/api/mapFiber.cjs +6 -4
  180. package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
  181. package/_cjs/Fiber/api/mapIO.cjs +14 -10
  182. package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
  183. package/_cjs/Fiber/api/zipWith.cjs +6 -4
  184. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  185. package/_cjs/Fiber/definition.cjs.map +1 -1
  186. package/_cjs/Fiber.cjs +13 -0
  187. package/_cjs/Fiber.cjs.map +1 -1
  188. package/_cjs/FiberRef/api/locallyScoped.cjs +6 -4
  189. package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
  190. package/_cjs/FiberRef/api/locallyScopedWith.cjs +5 -3
  191. package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
  192. package/_cjs/FiberRef/api.cjs +64 -47
  193. package/_cjs/FiberRef/api.cjs.map +1 -1
  194. package/_cjs/FiberRef/constructors.cjs +1 -1
  195. package/_cjs/FiberRef/constructors.cjs.map +1 -1
  196. package/_cjs/FiberRef/unsafe.cjs +35 -21
  197. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  198. package/_cjs/FiberRef.cjs.map +1 -1
  199. package/_cjs/FiberRefs/api.cjs +15 -13
  200. package/_cjs/FiberRefs/api.cjs.map +1 -1
  201. package/_cjs/FiberRefs/join.cjs +37 -35
  202. package/_cjs/FiberRefs/join.cjs.map +1 -1
  203. package/_cjs/FiberState/definition.cjs.map +1 -1
  204. package/_cjs/Future/api.cjs +97 -79
  205. package/_cjs/Future/api.cjs.map +1 -1
  206. package/_cjs/Future/constructors.cjs +1 -1
  207. package/_cjs/Future/constructors.cjs.map +1 -1
  208. package/_cjs/Hub/constructors.cjs +93 -0
  209. package/_cjs/Hub/constructors.cjs.map +1 -0
  210. package/_cjs/Hub/definition.cjs +104 -13
  211. package/_cjs/Hub/definition.cjs.map +1 -1
  212. package/_cjs/Hub/internal.cjs +104 -129
  213. package/_cjs/Hub/internal.cjs.map +1 -1
  214. package/_cjs/Hub.cjs +4 -4
  215. package/_cjs/IO/api/acquireReleaseExit.cjs +1 -1
  216. package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
  217. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -1
  218. package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
  219. package/_cjs/IO/api/addFinalizerExit.cjs +1 -1
  220. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  221. package/_cjs/IO/api/asyncIO.cjs +4 -4
  222. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  223. package/_cjs/IO/api/bracket.cjs +3 -3
  224. package/_cjs/IO/api/bracket.cjs.map +1 -1
  225. package/_cjs/IO/api/bracketExit.cjs +3 -3
  226. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  227. package/_cjs/IO/api/clockWith.cjs +2 -2
  228. package/_cjs/IO/api/clockWith.cjs.map +1 -1
  229. package/_cjs/IO/api/concurrency.cjs +9 -7
  230. package/_cjs/IO/api/concurrency.cjs.map +1 -1
  231. package/_cjs/IO/api/concurrentFinalizers.cjs +1 -1
  232. package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
  233. package/_cjs/IO/api/consoleWith.cjs +2 -2
  234. package/_cjs/IO/api/consoleWith.cjs.map +1 -1
  235. package/_cjs/IO/api/core-scope.cjs +45 -41
  236. package/_cjs/IO/api/core-scope.cjs.map +1 -1
  237. package/_cjs/IO/api/ensuringChildren.cjs +5 -3
  238. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  239. package/_cjs/IO/api/environment.cjs +35 -35
  240. package/_cjs/IO/api/environment.cjs.map +1 -1
  241. package/_cjs/IO/api/foreachC.cjs +19 -23
  242. package/_cjs/IO/api/foreachC.cjs.map +1 -1
  243. package/_cjs/IO/api/foreachExec.cjs +3 -3
  244. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  245. package/_cjs/IO/api/forkAll.cjs +1 -1
  246. package/_cjs/IO/api/forkAll.cjs.map +1 -1
  247. package/_cjs/IO/api/forkIn.cjs +8 -6
  248. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  249. package/_cjs/IO/api/forkScoped.cjs +1 -1
  250. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  251. package/_cjs/IO/api/fulfill.cjs +8 -6
  252. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  253. package/_cjs/IO/api/interrupt.cjs +36 -30
  254. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  255. package/_cjs/IO/api/memoize.cjs +1 -1
  256. package/_cjs/IO/api/memoize.cjs.map +1 -1
  257. package/_cjs/IO/api/onExit.cjs +6 -4
  258. package/_cjs/IO/api/onExit.cjs.map +1 -1
  259. package/_cjs/IO/api/onTermination.cjs +5 -3
  260. package/_cjs/IO/api/onTermination.cjs.map +1 -1
  261. package/_cjs/IO/api/once.cjs +3 -5
  262. package/_cjs/IO/api/once.cjs.map +1 -1
  263. package/_cjs/IO/api/provideLayer.cjs +6 -4
  264. package/_cjs/IO/api/provideLayer.cjs.map +1 -1
  265. package/_cjs/IO/api/provideSomeLayer.cjs +5 -15
  266. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  267. package/_cjs/IO/api/race.cjs +6 -4
  268. package/_cjs/IO/api/race.cjs.map +1 -1
  269. package/_cjs/IO/api/raceFirst.cjs +6 -4
  270. package/_cjs/IO/api/raceFirst.cjs.map +1 -1
  271. package/_cjs/IO/api/randomWith.cjs +1 -1
  272. package/_cjs/IO/api/randomWith.cjs.map +1 -1
  273. package/_cjs/IO/api/repeat.cjs +12 -12
  274. package/_cjs/IO/api/repeat.cjs.map +1 -1
  275. package/_cjs/IO/api/retry.cjs +14 -14
  276. package/_cjs/IO/api/retry.cjs.map +1 -1
  277. package/_cjs/IO/api/schedule.cjs +15 -11
  278. package/_cjs/IO/api/schedule.cjs.map +1 -1
  279. package/_cjs/IO/api/scoped.cjs +6 -6
  280. package/_cjs/IO/api/scoped.cjs.map +1 -1
  281. package/_cjs/IO/api/sequenceT.cjs +1 -1
  282. package/_cjs/IO/api/sequenceT.cjs.map +1 -1
  283. package/_cjs/IO/api/stateful.cjs.map +1 -1
  284. package/_cjs/IO/api/supervised.cjs +6 -4
  285. package/_cjs/IO/api/supervised.cjs.map +1 -1
  286. package/_cjs/IO/api/timeout.cjs +10 -6
  287. package/_cjs/IO/api/timeout.cjs.map +1 -1
  288. package/_cjs/IO/api/withChildren.cjs +1 -1
  289. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  290. package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
  291. package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
  292. package/_cjs/IO/api/withFinalizer.cjs +6 -4
  293. package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
  294. package/_cjs/IO/api/withFinalizerExit.cjs +6 -4
  295. package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
  296. package/_cjs/IO/api/withRuntimeConfig.cjs +6 -4
  297. package/_cjs/IO/api/withRuntimeConfig.cjs.map +1 -1
  298. package/_cjs/IO/api/zipC.cjs +21 -17
  299. package/_cjs/IO/api/zipC.cjs.map +1 -1
  300. package/_cjs/IO/api.cjs +634 -509
  301. package/_cjs/IO/api.cjs.map +1 -1
  302. package/_cjs/IO/definition.cjs.map +1 -1
  303. package/_cjs/IO/runtime.cjs +7 -7
  304. package/_cjs/IO/runtime.cjs.map +1 -1
  305. package/_cjs/IO.cjs.map +1 -1
  306. package/_cjs/IOEnv/definition.cjs +1 -1
  307. package/_cjs/IOEnv/definition.cjs.map +1 -1
  308. package/_cjs/IOEnv/live.cjs +1 -1
  309. package/_cjs/IOEnv/live.cjs.map +1 -1
  310. package/_cjs/IOEnv/services.cjs.map +1 -1
  311. package/_cjs/Layer/MemoMap.cjs +86 -92
  312. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  313. package/_cjs/Layer/api.cjs +110 -81
  314. package/_cjs/Layer/api.cjs.map +1 -1
  315. package/_cjs/Layer/definition.cjs.map +1 -1
  316. package/_cjs/LogLevel.cjs +24 -16
  317. package/_cjs/LogLevel.cjs.map +1 -1
  318. package/_cjs/LogSpan.cjs +18 -16
  319. package/_cjs/LogSpan.cjs.map +1 -1
  320. package/_cjs/Logger/api.cjs +18 -14
  321. package/_cjs/Logger/api.cjs.map +1 -1
  322. package/_cjs/Logger/constructors.cjs +1 -1
  323. package/_cjs/Logger/constructors.cjs.map +1 -1
  324. package/_cjs/Queue/constructors.cjs +19 -5
  325. package/_cjs/Queue/constructors.cjs.map +1 -1
  326. package/_cjs/Queue/definition.cjs +191 -16
  327. package/_cjs/Queue/definition.cjs.map +1 -1
  328. package/_cjs/Queue/internal.cjs +27 -181
  329. package/_cjs/Queue/internal.cjs.map +1 -1
  330. package/_cjs/Queue/strategy.cjs +19 -19
  331. package/_cjs/Queue/strategy.cjs.map +1 -1
  332. package/_cjs/Queue.cjs +0 -26
  333. package/_cjs/Queue.cjs.map +1 -1
  334. package/_cjs/Random/live.cjs +2 -2
  335. package/_cjs/Random/live.cjs.map +1 -1
  336. package/_cjs/Ref/Atomic.cjs +47 -24
  337. package/_cjs/Ref/Atomic.cjs.map +1 -1
  338. package/_cjs/Ref/Synchronized.cjs +140 -0
  339. package/_cjs/Ref/Synchronized.cjs.map +1 -0
  340. package/_cjs/Ref/constructors.cjs +21 -2
  341. package/_cjs/Ref/constructors.cjs.map +1 -1
  342. package/_cjs/Ref/definition.cjs +105 -10
  343. package/_cjs/Ref/definition.cjs.map +1 -1
  344. package/_cjs/Ref.cjs +4 -69
  345. package/_cjs/Ref.cjs.map +1 -1
  346. package/_cjs/Reloadable/constructors.cjs +10 -10
  347. package/_cjs/Reloadable/constructors.cjs.map +1 -1
  348. package/_cjs/RuntimeConfig.cjs +2 -2
  349. package/_cjs/RuntimeConfig.cjs.map +1 -1
  350. package/_cjs/STM/api/core-api.cjs +36 -26
  351. package/_cjs/STM/api/core-api.cjs.map +1 -1
  352. package/_cjs/STM/api.cjs +217 -163
  353. package/_cjs/STM/api.cjs.map +1 -1
  354. package/_cjs/STM/driver.cjs +3 -3
  355. package/_cjs/STM/driver.cjs.map +1 -1
  356. package/_cjs/STM/internal/Entry.cjs.map +1 -1
  357. package/_cjs/STM/internal/Journal.cjs +33 -29
  358. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  359. package/_cjs/STM.cjs.map +1 -1
  360. package/_cjs/Schedule/Decision.cjs +16 -14
  361. package/_cjs/Schedule/Decision.cjs.map +1 -1
  362. package/_cjs/Schedule/api/driver.cjs +16 -20
  363. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  364. package/_cjs/Schedule/api.cjs +381 -290
  365. package/_cjs/Schedule/api.cjs.map +1 -1
  366. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +14 -14
  367. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  368. package/_cjs/Scope/ReleaseMap/api.cjs +68 -61
  369. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  370. package/_cjs/Scope/api.cjs +34 -27
  371. package/_cjs/Scope/api.cjs.map +1 -1
  372. package/_cjs/ScopedRef/api.cjs +9 -13
  373. package/_cjs/ScopedRef/api.cjs.map +1 -1
  374. package/_cjs/ScopedRef/definition.cjs +1 -1
  375. package/_cjs/ScopedRef/definition.cjs.map +1 -1
  376. package/_cjs/Sink/api.cjs +307 -249
  377. package/_cjs/Sink/api.cjs.map +1 -1
  378. package/_cjs/State/api.cjs +18 -14
  379. package/_cjs/State/api.cjs.map +1 -1
  380. package/_cjs/Stream/api/zipAllWith.cjs +15 -13
  381. package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
  382. package/_cjs/Stream/api/zipWith.cjs +6 -4
  383. package/_cjs/Stream/api/zipWith.cjs.map +1 -1
  384. package/_cjs/Stream/api/zipWithChunks.cjs +13 -11
  385. package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
  386. package/_cjs/Stream/api.cjs +992 -788
  387. package/_cjs/Stream/api.cjs.map +1 -1
  388. package/_cjs/Stream/definition.cjs.map +1 -1
  389. package/_cjs/Stream/internal/DebounceState.cjs +21 -19
  390. package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
  391. package/_cjs/Stream/internal/Handoff.cjs +35 -33
  392. package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
  393. package/_cjs/Stream/internal/Pull.cjs +9 -11
  394. package/_cjs/Stream/internal/Pull.cjs.map +1 -1
  395. package/_cjs/Stream/internal/SinkEndReason.cjs +16 -14
  396. package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
  397. package/_cjs/Stream/internal/Take.cjs +32 -24
  398. package/_cjs/Stream/internal/Take.cjs.map +1 -1
  399. package/_cjs/Stream/internal/util.cjs +3 -3
  400. package/_cjs/Stream/internal/util.cjs.map +1 -1
  401. package/_cjs/SubscriptionRef.cjs +68 -0
  402. package/_cjs/SubscriptionRef.cjs.map +1 -0
  403. package/_cjs/Supervisor/api.cjs +49 -34
  404. package/_cjs/Supervisor/api.cjs.map +1 -1
  405. package/_cjs/Supervisor/constructors.cjs +2 -2
  406. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  407. package/_cjs/Supervisor/definition.cjs +66 -1
  408. package/_cjs/Supervisor/definition.cjs.map +1 -1
  409. package/_cjs/SupervisorPatch.cjs +176 -0
  410. package/_cjs/SupervisorPatch.cjs.map +1 -0
  411. package/_cjs/TExit/definition.cjs.map +1 -1
  412. package/_cjs/TFuture/api.cjs +21 -15
  413. package/_cjs/TFuture/api.cjs.map +1 -1
  414. package/_cjs/TFuture/constructors.cjs +1 -1
  415. package/_cjs/TFuture/constructors.cjs.map +1 -1
  416. package/_cjs/TFuture/definition.cjs.map +1 -1
  417. package/_cjs/TReentrantLock/api.cjs +32 -28
  418. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  419. package/_cjs/TReentrantLock/definition.cjs +4 -4
  420. package/_cjs/TReentrantLock/definition.cjs.map +1 -1
  421. package/_cjs/TRef/api.cjs +233 -209
  422. package/_cjs/TRef/api.cjs.map +1 -1
  423. package/_cjs/TRef/definition.cjs +4 -4
  424. package/_cjs/TRef/definition.cjs.map +1 -1
  425. package/_cjs/TSemaphore/api.cjs +27 -23
  426. package/_cjs/TSemaphore/api.cjs.map +1 -1
  427. package/_cjs/TSemaphore/constructors.cjs +18 -3
  428. package/_cjs/TSemaphore/constructors.cjs.map +1 -1
  429. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +21 -19
  430. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
  431. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +21 -19
  432. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
  433. package/_cjs/collection/immutable/Conc/filterIO.cjs +16 -14
  434. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
  435. package/_cjs/collection/immutable/Conc/findIO.cjs +19 -17
  436. package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
  437. package/_cjs/collection/immutable/Conc/mapIO.cjs +11 -9
  438. package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
  439. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +31 -29
  440. package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
  441. package/_cjs/data/Exit/foreachIO.cjs +6 -4
  442. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  443. package/_cjs/internal/Hub.cjs +13 -11
  444. package/_cjs/internal/Hub.cjs.map +1 -1
  445. package/_cjs/internal/IsFatal.cjs +18 -16
  446. package/_cjs/internal/IsFatal.cjs.map +1 -1
  447. package/_cjs/internal/MutableQueue.cjs +11 -9
  448. package/_cjs/internal/MutableQueue.cjs.map +1 -1
  449. package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
  450. package/_mjs/Cached/api.mjs +6 -6
  451. package/_mjs/Cached/api.mjs.map +1 -1
  452. package/_mjs/Channel/ChildExecutorDecision/api.mjs +18 -16
  453. package/_mjs/Channel/ChildExecutorDecision/api.mjs.map +1 -1
  454. package/_mjs/Channel/UpstreamPullRequest/api.mjs +14 -12
  455. package/_mjs/Channel/UpstreamPullRequest/api.mjs.map +1 -1
  456. package/_mjs/Channel/api/interruptWhen.mjs +11 -7
  457. package/_mjs/Channel/api/interruptWhen.mjs.map +1 -1
  458. package/_mjs/Channel/api/mapOutIOC.mjs +24 -23
  459. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  460. package/_mjs/Channel/api/mergeAll.mjs +5 -3
  461. package/_mjs/Channel/api/mergeAll.mjs.map +1 -1
  462. package/_mjs/Channel/api/mergeAllUnboundedWith.mjs +5 -3
  463. package/_mjs/Channel/api/mergeAllUnboundedWith.mjs.map +1 -1
  464. package/_mjs/Channel/api/mergeAllWith.mjs +45 -46
  465. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  466. package/_mjs/Channel/api/mergeMap.mjs +5 -3
  467. package/_mjs/Channel/api/mergeMap.mjs.map +1 -1
  468. package/_mjs/Channel/api/mergeWith.mjs +46 -44
  469. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  470. package/_mjs/Channel/api/run.mjs +1 -1
  471. package/_mjs/Channel/api/run.mjs.map +1 -1
  472. package/_mjs/Channel/api/runScoped.mjs +2 -2
  473. package/_mjs/Channel/api/runScoped.mjs.map +1 -1
  474. package/_mjs/Channel/api/toPull.mjs +3 -3
  475. package/_mjs/Channel/api/toPull.mjs.map +1 -1
  476. package/_mjs/Channel/api/zipC.mjs +16 -10
  477. package/_mjs/Channel/api/zipC.mjs.map +1 -1
  478. package/_mjs/Channel/api.mjs +224 -173
  479. package/_mjs/Channel/api.mjs.map +1 -1
  480. package/_mjs/Channel/core-api.mjs +28 -18
  481. package/_mjs/Channel/core-api.mjs.map +1 -1
  482. package/_mjs/Channel/definition.mjs +1 -1
  483. package/_mjs/Channel/definition.mjs.map +1 -1
  484. package/_mjs/Channel/internal/ChannelExecutor.mjs +83 -83
  485. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  486. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +22 -23
  487. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  488. package/_mjs/Differ/api.mjs +90 -0
  489. package/_mjs/Differ/api.mjs.map +1 -0
  490. package/_mjs/Differ/definition.mjs +13 -0
  491. package/_mjs/Differ/definition.mjs.map +1 -0
  492. package/_mjs/Fiber/FiberContext.mjs +48 -48
  493. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  494. package/_mjs/Fiber/api/awaitAll.mjs +1 -1
  495. package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
  496. package/_mjs/Fiber/api/collectAll.mjs +1 -1
  497. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  498. package/_mjs/Fiber/api/evalOn.mjs +11 -9
  499. package/_mjs/Fiber/api/evalOn.mjs.map +1 -1
  500. package/_mjs/Fiber/api/evalOnIO.mjs +5 -3
  501. package/_mjs/Fiber/api/evalOnIO.mjs.map +1 -1
  502. package/_mjs/Fiber/api/fromIO.mjs +1 -1
  503. package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
  504. package/_mjs/Fiber/api/interrupt.mjs +1 -1
  505. package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
  506. package/_mjs/Fiber/api/interruptAll.mjs +2 -2
  507. package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
  508. package/_mjs/Fiber/api/interruptAs.mjs +6 -4
  509. package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
  510. package/_mjs/Fiber/api/interruptAsFork.mjs +6 -4
  511. package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -1
  512. package/_mjs/Fiber/api/interruptFork.mjs +1 -1
  513. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  514. package/_mjs/Fiber/api/join.mjs +1 -1
  515. package/_mjs/Fiber/api/join.mjs.map +1 -1
  516. package/_mjs/Fiber/api/joinAll.mjs +1 -1
  517. package/_mjs/Fiber/api/joinAll.mjs.map +1 -1
  518. package/_mjs/Fiber/api/mapFiber.mjs +5 -3
  519. package/_mjs/Fiber/api/mapFiber.mjs.map +1 -1
  520. package/_mjs/Fiber/api/mapIO.mjs +11 -7
  521. package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
  522. package/_mjs/Fiber/api/zipWith.mjs +5 -3
  523. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  524. package/_mjs/Fiber/definition.mjs.map +1 -1
  525. package/_mjs/Fiber.mjs +1 -0
  526. package/_mjs/Fiber.mjs.map +1 -1
  527. package/_mjs/FiberRef/api/locallyScoped.mjs +5 -3
  528. package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
  529. package/_mjs/FiberRef/api/locallyScopedWith.mjs +5 -3
  530. package/_mjs/FiberRef/api/locallyScopedWith.mjs.map +1 -1
  531. package/_mjs/FiberRef/api.mjs +52 -36
  532. package/_mjs/FiberRef/api.mjs.map +1 -1
  533. package/_mjs/FiberRef/constructors.mjs +1 -1
  534. package/_mjs/FiberRef/constructors.mjs.map +1 -1
  535. package/_mjs/FiberRef/unsafe.mjs +31 -20
  536. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  537. package/_mjs/FiberRef.mjs.map +1 -1
  538. package/_mjs/FiberRefs/api.mjs +14 -12
  539. package/_mjs/FiberRefs/api.mjs.map +1 -1
  540. package/_mjs/FiberRefs/join.mjs +35 -33
  541. package/_mjs/FiberRefs/join.mjs.map +1 -1
  542. package/_mjs/FiberState/definition.mjs.map +1 -1
  543. package/_mjs/Future/api.mjs +84 -66
  544. package/_mjs/Future/api.mjs.map +1 -1
  545. package/_mjs/Future/constructors.mjs +1 -1
  546. package/_mjs/Future/constructors.mjs.map +1 -1
  547. package/_mjs/Hub/constructors.mjs +66 -0
  548. package/_mjs/Hub/constructors.mjs.map +1 -0
  549. package/_mjs/Hub/definition.mjs +88 -9
  550. package/_mjs/Hub/definition.mjs.map +1 -1
  551. package/_mjs/Hub/internal.mjs +105 -122
  552. package/_mjs/Hub/internal.mjs.map +1 -1
  553. package/_mjs/Hub.mjs +1 -1
  554. package/_mjs/Hub.mjs.map +1 -1
  555. package/_mjs/IO/api/acquireReleaseExit.mjs +1 -1
  556. package/_mjs/IO/api/acquireReleaseExit.mjs.map +1 -1
  557. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs +1 -1
  558. package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs.map +1 -1
  559. package/_mjs/IO/api/addFinalizerExit.mjs +1 -1
  560. package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
  561. package/_mjs/IO/api/asyncIO.mjs +4 -4
  562. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  563. package/_mjs/IO/api/bracket.mjs +2 -2
  564. package/_mjs/IO/api/bracket.mjs.map +1 -1
  565. package/_mjs/IO/api/bracketExit.mjs +2 -2
  566. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  567. package/_mjs/IO/api/clockWith.mjs +2 -2
  568. package/_mjs/IO/api/clockWith.mjs.map +1 -1
  569. package/_mjs/IO/api/concurrency.mjs +8 -6
  570. package/_mjs/IO/api/concurrency.mjs.map +1 -1
  571. package/_mjs/IO/api/concurrentFinalizers.mjs +1 -1
  572. package/_mjs/IO/api/concurrentFinalizers.mjs.map +1 -1
  573. package/_mjs/IO/api/consoleWith.mjs +2 -2
  574. package/_mjs/IO/api/consoleWith.mjs.map +1 -1
  575. package/_mjs/IO/api/core-scope.mjs +40 -36
  576. package/_mjs/IO/api/core-scope.mjs.map +1 -1
  577. package/_mjs/IO/api/ensuringChildren.mjs +5 -3
  578. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  579. package/_mjs/IO/api/environment.mjs +29 -27
  580. package/_mjs/IO/api/environment.mjs.map +1 -1
  581. package/_mjs/IO/api/foreachC.mjs +17 -19
  582. package/_mjs/IO/api/foreachC.mjs.map +1 -1
  583. package/_mjs/IO/api/foreachExec.mjs +2 -2
  584. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  585. package/_mjs/IO/api/forkAll.mjs +1 -1
  586. package/_mjs/IO/api/forkAll.mjs.map +1 -1
  587. package/_mjs/IO/api/forkIn.mjs +7 -5
  588. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  589. package/_mjs/IO/api/forkScoped.mjs +1 -1
  590. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  591. package/_mjs/IO/api/fulfill.mjs +7 -5
  592. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  593. package/_mjs/IO/api/interrupt.mjs +34 -28
  594. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  595. package/_mjs/IO/api/memoize.mjs +1 -1
  596. package/_mjs/IO/api/memoize.mjs.map +1 -1
  597. package/_mjs/IO/api/onExit.mjs +5 -3
  598. package/_mjs/IO/api/onExit.mjs.map +1 -1
  599. package/_mjs/IO/api/onTermination.mjs +5 -3
  600. package/_mjs/IO/api/onTermination.mjs.map +1 -1
  601. package/_mjs/IO/api/once.mjs +3 -4
  602. package/_mjs/IO/api/once.mjs.map +1 -1
  603. package/_mjs/IO/api/provideLayer.mjs +5 -3
  604. package/_mjs/IO/api/provideLayer.mjs.map +1 -1
  605. package/_mjs/IO/api/provideSomeLayer.mjs +5 -11
  606. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  607. package/_mjs/IO/api/race.mjs +5 -3
  608. package/_mjs/IO/api/race.mjs.map +1 -1
  609. package/_mjs/IO/api/raceFirst.mjs +5 -3
  610. package/_mjs/IO/api/raceFirst.mjs.map +1 -1
  611. package/_mjs/IO/api/randomWith.mjs +1 -1
  612. package/_mjs/IO/api/randomWith.mjs.map +1 -1
  613. package/_mjs/IO/api/repeat.mjs +8 -8
  614. package/_mjs/IO/api/repeat.mjs.map +1 -1
  615. package/_mjs/IO/api/retry.mjs +12 -12
  616. package/_mjs/IO/api/retry.mjs.map +1 -1
  617. package/_mjs/IO/api/schedule.mjs +15 -11
  618. package/_mjs/IO/api/schedule.mjs.map +1 -1
  619. package/_mjs/IO/api/scoped.mjs +3 -3
  620. package/_mjs/IO/api/scoped.mjs.map +1 -1
  621. package/_mjs/IO/api/sequenceT.mjs +1 -1
  622. package/_mjs/IO/api/sequenceT.mjs.map +1 -1
  623. package/_mjs/IO/api/stateful.mjs.map +1 -1
  624. package/_mjs/IO/api/supervised.mjs +5 -3
  625. package/_mjs/IO/api/supervised.mjs.map +1 -1
  626. package/_mjs/IO/api/timeout.mjs +10 -6
  627. package/_mjs/IO/api/timeout.mjs.map +1 -1
  628. package/_mjs/IO/api/withChildren.mjs +1 -1
  629. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  630. package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
  631. package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
  632. package/_mjs/IO/api/withFinalizer.mjs +5 -3
  633. package/_mjs/IO/api/withFinalizer.mjs.map +1 -1
  634. package/_mjs/IO/api/withFinalizerExit.mjs +5 -3
  635. package/_mjs/IO/api/withFinalizerExit.mjs.map +1 -1
  636. package/_mjs/IO/api/withRuntimeConfig.mjs +5 -3
  637. package/_mjs/IO/api/withRuntimeConfig.mjs.map +1 -1
  638. package/_mjs/IO/api/zipC.mjs +18 -14
  639. package/_mjs/IO/api/zipC.mjs.map +1 -1
  640. package/_mjs/IO/api.mjs +511 -387
  641. package/_mjs/IO/api.mjs.map +1 -1
  642. package/_mjs/IO/definition.mjs.map +1 -1
  643. package/_mjs/IO/runtime.mjs +7 -7
  644. package/_mjs/IO/runtime.mjs.map +1 -1
  645. package/_mjs/IO.mjs.map +1 -1
  646. package/_mjs/IOEnv/definition.mjs +1 -1
  647. package/_mjs/IOEnv/definition.mjs.map +1 -1
  648. package/_mjs/IOEnv/live.mjs +1 -1
  649. package/_mjs/IOEnv/live.mjs.map +1 -1
  650. package/_mjs/IOEnv/services.mjs.map +1 -1
  651. package/_mjs/Layer/MemoMap.mjs +86 -87
  652. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  653. package/_mjs/Layer/api.mjs +91 -63
  654. package/_mjs/Layer/api.mjs.map +1 -1
  655. package/_mjs/Layer/definition.mjs.map +1 -1
  656. package/_mjs/LogLevel.mjs +24 -16
  657. package/_mjs/LogLevel.mjs.map +1 -1
  658. package/_mjs/LogSpan.mjs +16 -14
  659. package/_mjs/LogSpan.mjs.map +1 -1
  660. package/_mjs/Logger/api.mjs +16 -12
  661. package/_mjs/Logger/api.mjs.map +1 -1
  662. package/_mjs/Logger/constructors.mjs +1 -1
  663. package/_mjs/Logger/constructors.mjs.map +1 -1
  664. package/_mjs/Queue/constructors.mjs +16 -5
  665. package/_mjs/Queue/constructors.mjs.map +1 -1
  666. package/_mjs/Queue/definition.mjs +174 -12
  667. package/_mjs/Queue/definition.mjs.map +1 -1
  668. package/_mjs/Queue/internal.mjs +21 -170
  669. package/_mjs/Queue/internal.mjs.map +1 -1
  670. package/_mjs/Queue/strategy.mjs +20 -23
  671. package/_mjs/Queue/strategy.mjs.map +1 -1
  672. package/_mjs/Queue.mjs +1 -3
  673. package/_mjs/Queue.mjs.map +1 -1
  674. package/_mjs/Random/live.mjs +2 -2
  675. package/_mjs/Random/live.mjs.map +1 -1
  676. package/_mjs/Ref/Atomic.mjs +39 -3
  677. package/_mjs/Ref/Atomic.mjs.map +1 -1
  678. package/_mjs/Ref/Synchronized.mjs +123 -0
  679. package/_mjs/Ref/Synchronized.mjs.map +1 -0
  680. package/_mjs/Ref/constructors.mjs +15 -1
  681. package/_mjs/Ref/constructors.mjs.map +1 -1
  682. package/_mjs/Ref/definition.mjs +96 -4
  683. package/_mjs/Ref/definition.mjs.map +1 -1
  684. package/_mjs/Ref.mjs +1 -8
  685. package/_mjs/Ref.mjs.map +1 -1
  686. package/_mjs/Reloadable/constructors.mjs +10 -10
  687. package/_mjs/Reloadable/constructors.mjs.map +1 -1
  688. package/_mjs/RuntimeConfig.mjs +2 -2
  689. package/_mjs/RuntimeConfig.mjs.map +1 -1
  690. package/_mjs/STM/api/core-api.mjs +29 -19
  691. package/_mjs/STM/api/core-api.mjs.map +1 -1
  692. package/_mjs/STM/api.mjs +180 -127
  693. package/_mjs/STM/api.mjs.map +1 -1
  694. package/_mjs/STM/driver.mjs +3 -3
  695. package/_mjs/STM/driver.mjs.map +1 -1
  696. package/_mjs/STM/internal/Entry.mjs.map +1 -1
  697. package/_mjs/STM/internal/Journal.mjs +33 -29
  698. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  699. package/_mjs/STM.mjs.map +1 -1
  700. package/_mjs/Schedule/Decision.mjs +14 -12
  701. package/_mjs/Schedule/Decision.mjs.map +1 -1
  702. package/_mjs/Schedule/api/driver.mjs +15 -17
  703. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  704. package/_mjs/Schedule/api.mjs +326 -234
  705. package/_mjs/Schedule/api.mjs.map +1 -1
  706. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +12 -11
  707. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  708. package/_mjs/Scope/ReleaseMap/api.mjs +60 -51
  709. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  710. package/_mjs/Scope/api.mjs +28 -22
  711. package/_mjs/Scope/api.mjs.map +1 -1
  712. package/_mjs/ScopedRef/api.mjs +9 -11
  713. package/_mjs/ScopedRef/api.mjs.map +1 -1
  714. package/_mjs/ScopedRef/definition.mjs +1 -1
  715. package/_mjs/ScopedRef/definition.mjs.map +1 -1
  716. package/_mjs/Sink/api.mjs +301 -240
  717. package/_mjs/Sink/api.mjs.map +1 -1
  718. package/_mjs/State/api.mjs +16 -12
  719. package/_mjs/State/api.mjs.map +1 -1
  720. package/_mjs/Stream/api/zipAllWith.mjs +14 -12
  721. package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
  722. package/_mjs/Stream/api/zipWith.mjs +5 -3
  723. package/_mjs/Stream/api/zipWith.mjs.map +1 -1
  724. package/_mjs/Stream/api/zipWithChunks.mjs +12 -10
  725. package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
  726. package/_mjs/Stream/api.mjs +856 -653
  727. package/_mjs/Stream/api.mjs.map +1 -1
  728. package/_mjs/Stream/definition.mjs.map +1 -1
  729. package/_mjs/Stream/internal/DebounceState.mjs +18 -16
  730. package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
  731. package/_mjs/Stream/internal/Handoff.mjs +35 -32
  732. package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
  733. package/_mjs/Stream/internal/Pull.mjs +9 -10
  734. package/_mjs/Stream/internal/Pull.mjs.map +1 -1
  735. package/_mjs/Stream/internal/SinkEndReason.mjs +14 -12
  736. package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
  737. package/_mjs/Stream/internal/Take.mjs +28 -20
  738. package/_mjs/Stream/internal/Take.mjs.map +1 -1
  739. package/_mjs/Stream/internal/util.mjs +3 -3
  740. package/_mjs/Stream/internal/util.mjs.map +1 -1
  741. package/_mjs/SubscriptionRef.mjs +45 -0
  742. package/_mjs/SubscriptionRef.mjs.map +1 -0
  743. package/_mjs/Supervisor/api.mjs +44 -33
  744. package/_mjs/Supervisor/api.mjs.map +1 -1
  745. package/_mjs/Supervisor/constructors.mjs +2 -2
  746. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  747. package/_mjs/Supervisor/definition.mjs +55 -0
  748. package/_mjs/Supervisor/definition.mjs.map +1 -1
  749. package/_mjs/SupervisorPatch.mjs +135 -0
  750. package/_mjs/SupervisorPatch.mjs.map +1 -0
  751. package/_mjs/TExit/definition.mjs.map +1 -1
  752. package/_mjs/TFuture/api.mjs +17 -11
  753. package/_mjs/TFuture/api.mjs.map +1 -1
  754. package/_mjs/TFuture/constructors.mjs +1 -1
  755. package/_mjs/TFuture/constructors.mjs.map +1 -1
  756. package/_mjs/TFuture/definition.mjs.map +1 -1
  757. package/_mjs/TReentrantLock/api.mjs +32 -28
  758. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  759. package/_mjs/TReentrantLock/definition.mjs +4 -4
  760. package/_mjs/TReentrantLock/definition.mjs.map +1 -1
  761. package/_mjs/TRef/api.mjs +218 -194
  762. package/_mjs/TRef/api.mjs.map +1 -1
  763. package/_mjs/TRef/definition.mjs +4 -4
  764. package/_mjs/TRef/definition.mjs.map +1 -1
  765. package/_mjs/TSemaphore/api.mjs +23 -19
  766. package/_mjs/TSemaphore/api.mjs.map +1 -1
  767. package/_mjs/TSemaphore/constructors.mjs +12 -2
  768. package/_mjs/TSemaphore/constructors.mjs.map +1 -1
  769. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +19 -17
  770. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
  771. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +19 -17
  772. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
  773. package/_mjs/collection/immutable/Conc/filterIO.mjs +14 -12
  774. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
  775. package/_mjs/collection/immutable/Conc/findIO.mjs +17 -15
  776. package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
  777. package/_mjs/collection/immutable/Conc/mapIO.mjs +10 -8
  778. package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
  779. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +28 -26
  780. package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
  781. package/_mjs/data/Exit/foreachIO.mjs +5 -3
  782. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  783. package/_mjs/internal/Hub.mjs +13 -11
  784. package/_mjs/internal/Hub.mjs.map +1 -1
  785. package/_mjs/internal/IsFatal.mjs +18 -16
  786. package/_mjs/internal/IsFatal.mjs.map +1 -1
  787. package/_mjs/internal/MutableQueue.mjs +10 -8
  788. package/_mjs/internal/MutableQueue.mjs.map +1 -1
  789. package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
  790. package/_src/Cached/api.ts +2 -2
  791. package/_src/Channel/ChildExecutorDecision/api.ts +14 -17
  792. package/_src/Channel/UpstreamPullRequest/api.ts +11 -13
  793. package/_src/Channel/api/interruptWhen.ts +18 -17
  794. package/_src/Channel/api/mapOutIOC.ts +58 -58
  795. package/_src/Channel/api/mergeAll.ts +15 -16
  796. package/_src/Channel/api/mergeAllUnboundedWith.ts +15 -27
  797. package/_src/Channel/api/mergeAllWith.ts +114 -126
  798. package/_src/Channel/api/mergeMap.ts +8 -18
  799. package/_src/Channel/api/mergeWith.ts +154 -158
  800. package/_src/Channel/api/toPull.ts +1 -1
  801. package/_src/Channel/api/zipC.ts +52 -88
  802. package/_src/Channel/api.ts +345 -405
  803. package/_src/Channel/core-api.ts +75 -122
  804. package/_src/Channel/definition.ts +49 -7
  805. package/_src/Channel/internal/ChannelExecutor.ts +1 -5
  806. package/_src/Channel/internal/SingleProducerAsyncInput.ts +1 -3
  807. package/_src/Differ/api.ts +72 -0
  808. package/_src/Differ/definition.ts +16 -0
  809. package/_src/Fiber/FiberContext.ts +13 -33
  810. package/_src/Fiber/api/collectAll.ts +1 -2
  811. package/_src/Fiber/api/evalOn.ts +11 -14
  812. package/_src/Fiber/api/evalOnIO.ts +10 -13
  813. package/_src/Fiber/api/interruptAll.ts +1 -2
  814. package/_src/Fiber/api/interruptAs.ts +6 -4
  815. package/_src/Fiber/api/interruptAsFork.ts +6 -4
  816. package/_src/Fiber/api/interruptFork.ts +1 -1
  817. package/_src/Fiber/api/mapFiber.ts +5 -7
  818. package/_src/Fiber/api/mapIO.ts +21 -21
  819. package/_src/Fiber/api/zipWith.ts +14 -17
  820. package/_src/Fiber/definition.ts +1 -15
  821. package/_src/Fiber.ts +1 -1
  822. package/_src/FiberRef/api/locallyScoped.ts +8 -6
  823. package/_src/FiberRef/api/locallyScopedWith.ts +5 -7
  824. package/_src/FiberRef/api.ts +50 -39
  825. package/_src/FiberRef/unsafe.ts +24 -22
  826. package/_src/FiberRef.ts +0 -1
  827. package/_src/FiberRefs/api.ts +14 -12
  828. package/_src/FiberRefs/join.ts +37 -46
  829. package/_src/FiberState/definition.ts +1 -2
  830. package/_src/Future/api.ts +67 -53
  831. package/_src/Hub/constructors.ts +80 -0
  832. package/_src/Hub/definition.ts +95 -89
  833. package/_src/Hub/internal.ts +115 -165
  834. package/_src/Hub.ts +1 -1
  835. package/_src/IO/api/acquireRelease.ts +1 -1
  836. package/_src/IO/api/acquireReleaseExit.ts +1 -1
  837. package/_src/IO/api/bracket.ts +1 -1
  838. package/_src/IO/api/bracketExit.ts +1 -1
  839. package/_src/IO/api/clockWith.ts +0 -1
  840. package/_src/IO/api/concurrency.ts +5 -7
  841. package/_src/IO/api/consoleWith.ts +0 -2
  842. package/_src/IO/api/core-scope.ts +36 -33
  843. package/_src/IO/api/ensuringChildren.ts +8 -7
  844. package/_src/IO/api/environment.ts +24 -42
  845. package/_src/IO/api/foreachC.ts +24 -12
  846. package/_src/IO/api/foreachExec.ts +1 -1
  847. package/_src/IO/api/forkIn.ts +7 -9
  848. package/_src/IO/api/fulfill.ts +5 -3
  849. package/_src/IO/api/interrupt.ts +37 -40
  850. package/_src/IO/api/onExit.ts +8 -10
  851. package/_src/IO/api/onTermination.ts +12 -14
  852. package/_src/IO/api/provideLayer.ts +8 -10
  853. package/_src/IO/api/provideSomeLayer.ts +5 -14
  854. package/_src/IO/api/race.ts +19 -21
  855. package/_src/IO/api/raceFirst.ts +5 -7
  856. package/_src/IO/api/repeat.ts +3 -5
  857. package/_src/IO/api/retry.ts +19 -21
  858. package/_src/IO/api/schedule.ts +20 -21
  859. package/_src/IO/api/scoped.ts +2 -2
  860. package/_src/IO/api/sequenceT.ts +7 -1
  861. package/_src/IO/api/stateful.ts +0 -2
  862. package/_src/IO/api/supervised.ts +5 -7
  863. package/_src/IO/api/timeout.ts +10 -16
  864. package/_src/IO/api/withFinalizer.ts +5 -7
  865. package/_src/IO/api/withFinalizerExit.ts +6 -5
  866. package/_src/IO/api/withRuntimeConfig.ts +12 -14
  867. package/_src/IO/api/zipC.ts +57 -62
  868. package/_src/IO/api.ts +512 -539
  869. package/_src/IO/definition.ts +21 -9
  870. package/_src/IO/runtime.ts +0 -12
  871. package/_src/IO.ts +0 -1
  872. package/_src/IOEnv/definition.ts +0 -2
  873. package/_src/IOEnv/services.ts +5 -4
  874. package/_src/Layer/MemoMap.ts +61 -63
  875. package/_src/Layer/api.ts +95 -104
  876. package/_src/Layer/definition.ts +0 -1
  877. package/_src/LogLevel.ts +24 -16
  878. package/_src/LogSpan.ts +16 -16
  879. package/_src/Logger/api.ts +18 -17
  880. package/_src/Logger/constructors.ts +9 -15
  881. package/_src/Queue/constructors.ts +22 -6
  882. package/_src/Queue/definition.ts +230 -81
  883. package/_src/Queue/internal.ts +9 -180
  884. package/_src/Queue/strategy.ts +9 -23
  885. package/_src/Queue.ts +1 -3
  886. package/_src/Ref/Atomic.ts +37 -4
  887. package/_src/Ref/Synchronized.ts +107 -0
  888. package/_src/Ref/constructors.ts +15 -0
  889. package/_src/Ref/definition.ts +86 -85
  890. package/_src/Ref.ts +1 -9
  891. package/_src/Reloadable/constructors.ts +2 -2
  892. package/_src/RuntimeConfig.ts +0 -2
  893. package/_src/STM/api/core-api.ts +32 -35
  894. package/_src/STM/api.ts +210 -200
  895. package/_src/STM/internal/Entry.ts +0 -10
  896. package/_src/STM/internal/Journal.ts +23 -26
  897. package/_src/STM.ts +0 -1
  898. package/_src/Schedule/Decision.ts +10 -8
  899. package/_src/Schedule/api/driver.ts +0 -4
  900. package/_src/Schedule/api.ts +419 -444
  901. package/_src/Schedule/definition.ts +0 -1
  902. package/_src/Scope/ReleaseMap/api/releaseAll.ts +23 -26
  903. package/_src/Scope/ReleaseMap/api.ts +77 -74
  904. package/_src/Scope/api.ts +16 -18
  905. package/_src/ScopedRef/api.ts +0 -3
  906. package/_src/ScopedRef/definition.ts +1 -2
  907. package/_src/Sink/api.ts +326 -357
  908. package/_src/State/api.ts +12 -8
  909. package/_src/State/internal.ts +1 -1
  910. package/_src/Stream/api/zipAllWith.ts +6 -5
  911. package/_src/Stream/api/zipWith.ts +5 -8
  912. package/_src/Stream/api/zipWithChunks.ts +6 -5
  913. package/_src/Stream/api.ts +1049 -1176
  914. package/_src/Stream/definition.ts +0 -2
  915. package/_src/Stream/internal/DebounceState.ts +16 -17
  916. package/_src/Stream/internal/Handoff.ts +31 -35
  917. package/_src/Stream/internal/Pull.ts +1 -2
  918. package/_src/Stream/internal/SinkEndReason.ts +13 -14
  919. package/_src/Stream/internal/Take.ts +21 -21
  920. package/_src/Stream/internal/util.ts +0 -2
  921. package/_src/SubscriptionRef.ts +44 -0
  922. package/_src/Supervisor/api.ts +39 -31
  923. package/_src/Supervisor/definition.ts +58 -0
  924. package/_src/SupervisorPatch.ts +111 -0
  925. package/_src/TExit/definition.ts +0 -8
  926. package/_src/TFuture/api.ts +23 -17
  927. package/_src/TFuture/definition.ts +0 -1
  928. package/_src/TReentrantLock/api.ts +14 -10
  929. package/_src/TReentrantLock/definition.ts +0 -7
  930. package/_src/TRef/api.ts +207 -209
  931. package/_src/TRef/definition.ts +0 -12
  932. package/_src/TSemaphore/api.ts +19 -18
  933. package/_src/TSemaphore/constructors.ts +7 -0
  934. package/_src/collection/immutable/Conc/dropUntilIO.ts +19 -21
  935. package/_src/collection/immutable/Conc/dropWhileIO.ts +21 -23
  936. package/_src/collection/immutable/Conc/filterIO.ts +15 -17
  937. package/_src/collection/immutable/Conc/findIO.ts +17 -19
  938. package/_src/collection/immutable/Conc/mapIO.ts +12 -10
  939. package/_src/collection/immutable/Conc/takeWhileIO.ts +27 -29
  940. package/_src/data/Exit/foreachIO.ts +8 -10
  941. package/_src/global.ts +11 -3
  942. package/_src/index.ts +3 -0
  943. package/_src/internal/Hub.ts +17 -27
  944. package/_src/internal/IsFatal.ts +14 -12
  945. package/_src/internal/MutableQueue.ts +8 -8
  946. package/_src/internal/StackTraceBuilder.ts +1 -2
  947. package/collection/immutable/Conc/dropUntilIO.d.ts +3 -3
  948. package/collection/immutable/Conc/dropWhileIO.d.ts +3 -3
  949. package/collection/immutable/Conc/filterIO.d.ts +3 -3
  950. package/collection/immutable/Conc/findIO.d.ts +2 -2
  951. package/collection/immutable/Conc/mapIO.d.ts +3 -3
  952. package/collection/immutable/Conc/takeWhileIO.d.ts +3 -3
  953. package/data/Exit/foreachIO.d.ts +3 -3
  954. package/global.d.ts +11 -3
  955. package/index.d.ts +3 -0
  956. package/internal/Hub.d.ts +2 -2
  957. package/internal/IsFatal.d.ts +3 -3
  958. package/internal/MutableQueue.d.ts +3 -3
  959. package/package.json +3 -3
  960. package/Hub/api.d.ts +0 -190
  961. package/Queue/api/dimapIO.d.ts +0 -41
  962. package/Queue/api/filterInputIO.d.ts +0 -33
  963. package/Queue/api/filterOutputIO.d.ts +0 -31
  964. package/Queue/api/operations.d.ts +0 -82
  965. package/Queue/api/poll.d.ts +0 -9
  966. package/Queue/api/takeBetween.d.ts +0 -11
  967. package/Queue/api/zipWithIO.d.ts +0 -44
  968. package/Queue/api.d.ts +0 -7
  969. package/Ref/Atomic/Atomic.d.ts +0 -18
  970. package/Ref/Atomic/api.d.ts +0 -53
  971. package/Ref/Derived.d.ts +0 -14
  972. package/Ref/DerivedAll.d.ts +0 -14
  973. package/Ref/Synchronized/api.d.ts +0 -100
  974. package/Ref/Synchronized/constructors.d.ts +0 -8
  975. package/Ref/Synchronized/definition.d.ts +0 -42
  976. package/Ref/api/collect.d.ts +0 -11
  977. package/Ref/api/dimap.d.ts +0 -56
  978. package/Ref/api/filter.d.ts +0 -20
  979. package/Ref/api/get.d.ts +0 -9
  980. package/Ref/api/match.d.ts +0 -13
  981. package/Ref/api/matchAll.d.ts +0 -11
  982. package/Ref/api/modify.d.ts +0 -79
  983. package/Ref/api/set.d.ts +0 -10
  984. package/Ref/api.d.ts +0 -23
  985. package/_cjs/Hub/api.cjs +0 -456
  986. package/_cjs/Hub/api.cjs.map +0 -1
  987. package/_cjs/Queue/api/dimapIO.cjs +0 -120
  988. package/_cjs/Queue/api/dimapIO.cjs.map +0 -1
  989. package/_cjs/Queue/api/filterInputIO.cjs +0 -84
  990. package/_cjs/Queue/api/filterInputIO.cjs.map +0 -1
  991. package/_cjs/Queue/api/filterOutputIO.cjs +0 -89
  992. package/_cjs/Queue/api/filterOutputIO.cjs.map +0 -1
  993. package/_cjs/Queue/api/operations.cjs +0 -147
  994. package/_cjs/Queue/api/operations.cjs.map +0 -1
  995. package/_cjs/Queue/api/poll.cjs +0 -27
  996. package/_cjs/Queue/api/poll.cjs.map +0 -1
  997. package/_cjs/Queue/api/takeBetween.cjs +0 -57
  998. package/_cjs/Queue/api/takeBetween.cjs.map +0 -1
  999. package/_cjs/Queue/api/zipWithIO.cjs +0 -97
  1000. package/_cjs/Queue/api/zipWithIO.cjs.map +0 -1
  1001. package/_cjs/Queue/api.cjs +0 -97
  1002. package/_cjs/Queue/api.cjs.map +0 -1
  1003. package/_cjs/Ref/Atomic/Atomic.cjs +0 -64
  1004. package/_cjs/Ref/Atomic/Atomic.cjs.map +0 -1
  1005. package/_cjs/Ref/Atomic/api.cjs +0 -156
  1006. package/_cjs/Ref/Atomic/api.cjs.map +0 -1
  1007. package/_cjs/Ref/Derived.cjs +0 -55
  1008. package/_cjs/Ref/Derived.cjs.map +0 -1
  1009. package/_cjs/Ref/DerivedAll.cjs +0 -55
  1010. package/_cjs/Ref/DerivedAll.cjs.map +0 -1
  1011. package/_cjs/Ref/Synchronized/api.cjs +0 -196
  1012. package/_cjs/Ref/Synchronized/api.cjs.map +0 -1
  1013. package/_cjs/Ref/Synchronized/constructors.cjs +0 -32
  1014. package/_cjs/Ref/Synchronized/constructors.cjs.map +0 -1
  1015. package/_cjs/Ref/Synchronized/definition.cjs +0 -88
  1016. package/_cjs/Ref/Synchronized/definition.cjs.map +0 -1
  1017. package/_cjs/Ref/api/collect.cjs +0 -31
  1018. package/_cjs/Ref/api/collect.cjs.map +0 -1
  1019. package/_cjs/Ref/api/dimap.cjs +0 -110
  1020. package/_cjs/Ref/api/dimap.cjs.map +0 -1
  1021. package/_cjs/Ref/api/filter.cjs +0 -45
  1022. package/_cjs/Ref/api/filter.cjs.map +0 -1
  1023. package/_cjs/Ref/api/get.cjs +0 -20
  1024. package/_cjs/Ref/api/get.cjs.map +0 -1
  1025. package/_cjs/Ref/api/match.cjs +0 -26
  1026. package/_cjs/Ref/api/match.cjs.map +0 -1
  1027. package/_cjs/Ref/api/matchAll.cjs +0 -24
  1028. package/_cjs/Ref/api/matchAll.cjs.map +0 -1
  1029. package/_cjs/Ref/api/modify.cjs +0 -239
  1030. package/_cjs/Ref/api/modify.cjs.map +0 -1
  1031. package/_cjs/Ref/api/set.cjs +0 -21
  1032. package/_cjs/Ref/api/set.cjs.map +0 -1
  1033. package/_cjs/Ref/api.cjs +0 -158
  1034. package/_cjs/Ref/api.cjs.map +0 -1
  1035. package/_mjs/Hub/api.mjs +0 -384
  1036. package/_mjs/Hub/api.mjs.map +0 -1
  1037. package/_mjs/Queue/api/dimapIO.mjs +0 -97
  1038. package/_mjs/Queue/api/dimapIO.mjs.map +0 -1
  1039. package/_mjs/Queue/api/filterInputIO.mjs +0 -63
  1040. package/_mjs/Queue/api/filterInputIO.mjs.map +0 -1
  1041. package/_mjs/Queue/api/filterOutputIO.mjs +0 -68
  1042. package/_mjs/Queue/api/filterOutputIO.mjs.map +0 -1
  1043. package/_mjs/Queue/api/operations.mjs +0 -122
  1044. package/_mjs/Queue/api/operations.mjs.map +0 -1
  1045. package/_mjs/Queue/api/poll.mjs +0 -14
  1046. package/_mjs/Queue/api/poll.mjs.map +0 -1
  1047. package/_mjs/Queue/api/takeBetween.mjs +0 -43
  1048. package/_mjs/Queue/api/takeBetween.mjs.map +0 -1
  1049. package/_mjs/Queue/api/zipWithIO.mjs +0 -74
  1050. package/_mjs/Queue/api/zipWithIO.mjs.map +0 -1
  1051. package/_mjs/Queue/api.mjs +0 -9
  1052. package/_mjs/Queue/api.mjs.map +0 -1
  1053. package/_mjs/Ref/Atomic/Atomic.mjs +0 -47
  1054. package/_mjs/Ref/Atomic/Atomic.mjs.map +0 -1
  1055. package/_mjs/Ref/Atomic/api.mjs +0 -127
  1056. package/_mjs/Ref/Atomic/api.mjs.map +0 -1
  1057. package/_mjs/Ref/Derived.mjs +0 -35
  1058. package/_mjs/Ref/Derived.mjs.map +0 -1
  1059. package/_mjs/Ref/DerivedAll.mjs +0 -35
  1060. package/_mjs/Ref/DerivedAll.mjs.map +0 -1
  1061. package/_mjs/Ref/Synchronized/api.mjs +0 -154
  1062. package/_mjs/Ref/Synchronized/api.mjs.map +0 -1
  1063. package/_mjs/Ref/Synchronized/constructors.mjs +0 -15
  1064. package/_mjs/Ref/Synchronized/constructors.mjs.map +0 -1
  1065. package/_mjs/Ref/Synchronized/definition.mjs +0 -66
  1066. package/_mjs/Ref/Synchronized/definition.mjs.map +0 -1
  1067. package/_mjs/Ref/api/collect.mjs +0 -17
  1068. package/_mjs/Ref/api/collect.mjs.map +0 -1
  1069. package/_mjs/Ref/api/dimap.mjs +0 -84
  1070. package/_mjs/Ref/api/dimap.mjs.map +0 -1
  1071. package/_mjs/Ref/api/filter.mjs +0 -29
  1072. package/_mjs/Ref/api/filter.mjs.map +0 -1
  1073. package/_mjs/Ref/api/get.mjs +0 -13
  1074. package/_mjs/Ref/api/get.mjs.map +0 -1
  1075. package/_mjs/Ref/api/match.mjs +0 -18
  1076. package/_mjs/Ref/api/match.mjs.map +0 -1
  1077. package/_mjs/Ref/api/matchAll.mjs +0 -16
  1078. package/_mjs/Ref/api/matchAll.mjs.map +0 -1
  1079. package/_mjs/Ref/api/modify.mjs +0 -204
  1080. package/_mjs/Ref/api/modify.mjs.map +0 -1
  1081. package/_mjs/Ref/api/set.mjs +0 -14
  1082. package/_mjs/Ref/api/set.mjs.map +0 -1
  1083. package/_mjs/Ref/api.mjs +0 -34
  1084. package/_mjs/Ref/api.mjs.map +0 -1
  1085. package/_src/Hub/api.ts +0 -461
  1086. package/_src/Queue/api/dimapIO.ts +0 -130
  1087. package/_src/Queue/api/filterInputIO.ts +0 -75
  1088. package/_src/Queue/api/filterOutputIO.ts +0 -76
  1089. package/_src/Queue/api/operations.ts +0 -139
  1090. package/_src/Queue/api/poll.ts +0 -14
  1091. package/_src/Queue/api/takeBetween.ts +0 -45
  1092. package/_src/Queue/api/zipWithIO.ts +0 -99
  1093. package/_src/Queue/api.ts +0 -9
  1094. package/_src/Ref/Atomic/Atomic.ts +0 -56
  1095. package/_src/Ref/Atomic/api.ts +0 -124
  1096. package/_src/Ref/Derived.ts +0 -71
  1097. package/_src/Ref/DerivedAll.ts +0 -75
  1098. package/_src/Ref/Synchronized/api.ts +0 -249
  1099. package/_src/Ref/Synchronized/constructors.ts +0 -12
  1100. package/_src/Ref/Synchronized/definition.ts +0 -126
  1101. package/_src/Ref/api/collect.ts +0 -19
  1102. package/_src/Ref/api/dimap.ts +0 -115
  1103. package/_src/Ref/api/filter.ts +0 -35
  1104. package/_src/Ref/api/get.ts +0 -17
  1105. package/_src/Ref/api/match.ts +0 -24
  1106. package/_src/Ref/api/matchAll.ts +0 -23
  1107. package/_src/Ref/api/modify.ts +0 -237
  1108. package/_src/Ref/api/set.ts +0 -19
  1109. package/_src/Ref/api.ts +0 -39
package/_src/LogLevel.ts CHANGED
@@ -7,35 +7,43 @@ export class LogLevel {
7
7
  }
8
8
 
9
9
  /**
10
- * @tsplus fluent fncts.LogLevel lt
11
- * @tsplus operator fncts.LogLevel <
10
+ * @tsplus pipeable fncts.LogLevel lt
11
+ * @tsplus pipeable-operator fncts.LogLevel <
12
12
  */
13
- export function lt(self: LogLevel, that: LogLevel): boolean {
14
- return self.ordinal < that.ordinal;
13
+ export function lt(that: LogLevel) {
14
+ return (self: LogLevel): boolean => {
15
+ return self.ordinal < that.ordinal;
16
+ };
15
17
  }
16
18
 
17
19
  /**
18
- * @tsplus fluent fncts.LogLevel lte
19
- * @tsplus operator fncts.LogLevel <=
20
+ * @tsplus pipeable fncts.LogLevel lte
21
+ * @tsplus pipeable-operator fncts.LogLevel <=
20
22
  */
21
- export function lte(self: LogLevel, that: LogLevel): boolean {
22
- return self.ordinal <= that.ordinal;
23
+ export function lte(that: LogLevel) {
24
+ return (self: LogLevel): boolean => {
25
+ return self.ordinal <= that.ordinal;
26
+ };
23
27
  }
24
28
 
25
29
  /**
26
- * @tsplus fluent fncts.LogLevel gte
27
- * @tsplus operator fncts.LogLevel >=
30
+ * @tsplus pipeable fncts.LogLevel gte
31
+ * @tsplus pipeable-operator fncts.LogLevel >=
28
32
  */
29
- export function gte(self: LogLevel, that: LogLevel): boolean {
30
- return self.ordinal >= that.ordinal;
33
+ export function gte(that: LogLevel) {
34
+ return (self: LogLevel): boolean => {
35
+ return self.ordinal >= that.ordinal;
36
+ };
31
37
  }
32
38
 
33
39
  /**
34
- * @tsplus fluent fncts.LogLevel gt
35
- * @tsplus operator fncts.LogLevel >
40
+ * @tsplus pipeable fncts.LogLevel gt
41
+ * @tsplus pipeable-operator fncts.LogLevel >
36
42
  */
37
- export function gt(self: LogLevel, that: LogLevel): boolean {
38
- return self.ordinal > that.ordinal;
43
+ export function gt(that: LogLevel) {
44
+ return (self: LogLevel): boolean => {
45
+ return self.ordinal > that.ordinal;
46
+ };
39
47
  }
40
48
 
41
49
  /**
package/_src/LogSpan.ts CHANGED
@@ -7,21 +7,21 @@ export class LogSpan {
7
7
  }
8
8
 
9
9
  /**
10
- * @tsplus fluent fncts.LogSpan render
10
+ * @tsplus pipeable fncts.LogSpan render
11
11
  */
12
- export function render(self: LogSpan, now: number): string {
13
- let s = "";
14
- if (self.label.indexOf(" ") < 0) {
15
- s += self.label;
16
- } else {
17
- s += '"';
18
- s += self.label;
19
- s += '"';
20
- }
21
-
22
- s += "=";
23
- s += (now - self.startTime).toString();
24
- s += "ms";
25
-
26
- return s;
12
+ export function render(now: number) {
13
+ return (self: LogSpan): string => {
14
+ let s = "";
15
+ if (self.label.indexOf(" ") < 0) {
16
+ s += self.label;
17
+ } else {
18
+ s += '"';
19
+ s += self.label;
20
+ s += '"';
21
+ }
22
+ s += "=";
23
+ s += (now - self.startTime).toString();
24
+ s += "ms";
25
+ return s;
26
+ };
27
27
  }
@@ -1,24 +1,25 @@
1
1
  /**
2
- * @tsplus fluent fncts.io.Logger filterLogLevel
2
+ * @tsplus pipeable fncts.io.Logger filterLogLevel
3
3
  */
4
- export function filterLogLevel_<Message, Output>(
5
- self: Logger<Message, Output>,
6
- p: Predicate<LogLevel>,
7
- ): Logger<Message, Maybe<Output>> {
8
- return new Logger((trace, fiberId, logLevel, message, cause, context, spans, annotations) => {
9
- if (p(logLevel)) {
10
- return Just(self.log(trace, fiberId, logLevel, message, cause, context, spans, annotations));
11
- } else {
12
- return Nothing();
13
- }
14
- });
4
+ export function filterLogLevel(p: Predicate<LogLevel>) {
5
+ return <Message, Output>(self: Logger<Message, Output>): Logger<Message, Maybe<Output>> => {
6
+ return new Logger((trace, fiberId, logLevel, message, cause, context, spans, annotations) => {
7
+ if (p(logLevel)) {
8
+ return Just(self.log(trace, fiberId, logLevel, message, cause, context, spans, annotations));
9
+ } else {
10
+ return Nothing();
11
+ }
12
+ });
13
+ };
15
14
  }
16
15
 
17
16
  /**
18
- * @tsplus fluent fncts.io.Logger map
17
+ * @tsplus pipeable fncts.io.Logger map
19
18
  */
20
- export function map_<Message, Output, B>(self: Logger<Message, Output>, f: (_: Output) => B): Logger<Message, B> {
21
- return new Logger((trace, fiberId, logLevel, message, cause, context, spans, annotations) =>
22
- f(self.log(trace, fiberId, logLevel, message, cause, context, spans, annotations)),
23
- );
19
+ export function map<Output, B>(f: (_: Output) => B) {
20
+ return <Message>(self: Logger<Message, Output>): Logger<Message, B> => {
21
+ return new Logger((trace, fiberId, logLevel, message, cause, context, spans, annotations) =>
22
+ f(self.log(trace, fiberId, logLevel, message, cause, context, spans, annotations)),
23
+ );
24
+ };
24
25
  }
@@ -6,17 +6,15 @@ export const defaultString: Logger<string, string> = new Logger(
6
6
  let s = "";
7
7
  const nowMillis = Date.now();
8
8
  const now = new Date(nowMillis);
9
-
10
- s += "timestamp=";
11
- s += now.toISOString();
12
- s += " level=";
13
- s += logLevel.label;
14
- s += " thread=#";
15
- s += fiberId.threadName;
16
- s += ' message="';
17
- s += message();
18
- s += '"';
19
-
9
+ s += "timestamp=";
10
+ s += now.toISOString();
11
+ s += " level=";
12
+ s += logLevel.label;
13
+ s += " thread=#";
14
+ s += fiberId.threadName;
15
+ s += ' message="';
16
+ s += message();
17
+ s += '"';
20
18
  if (spans.isNonEmpty()) {
21
19
  let first = true;
22
20
  for (const span of spans) {
@@ -25,18 +23,14 @@ export const defaultString: Logger<string, string> = new Logger(
25
23
  } else {
26
24
  s += " ";
27
25
  }
28
-
29
26
  s += span.render(nowMillis);
30
27
  }
31
28
  }
32
-
33
29
  if (trace._tag === "SourceLocation") {
34
30
  s += " location=";
35
31
  s += quoted(trace.show);
36
32
  }
37
-
38
33
  // TODO: render Cause, and Annotations
39
-
40
34
  return s;
41
35
  },
42
36
  );
@@ -1,33 +1,49 @@
1
- import type { Queue } from "@fncts/io/Queue/definition";
1
+ import type { MutableQueue } from "@fncts/io/internal/MutableQueue";
2
+ import type { Strategy } from "@fncts/io/Queue/strategy";
2
3
 
4
+ import { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
3
5
  import { bounded, unbounded } from "@fncts/io/internal/MutableQueue";
4
- import { _makeQueue } from "@fncts/io/Queue/internal";
6
+ import { Queue } from "@fncts/io/Queue/definition";
5
7
  import { BackPressureStrategy, DroppingStrategy, SlidingStrategy } from "@fncts/io/Queue/strategy";
6
8
 
7
9
  /**
8
10
  * @tsplus static fncts.io.QueueOps makeSliding
9
11
  */
10
12
  export function makeSliding<A>(capacity: number, __tsplusTrace?: string): UIO<Queue<A>> {
11
- return IO.succeed(bounded<A>(capacity)).flatMap(_makeQueue(new SlidingStrategy()));
13
+ return IO.succeed(bounded<A>(capacity)).flatMap((queue) => createQueue(queue, new SlidingStrategy()));
12
14
  }
13
15
 
14
16
  /**
15
17
  * @tsplus static fncts.io.QueueOps makeUnbounded
16
18
  */
17
19
  export function makeUnbounded<A>(__tsplusTrace?: string): UIO<Queue<A>> {
18
- return IO.succeed(unbounded<A>()).flatMap(_makeQueue(new DroppingStrategy()));
20
+ return IO.succeed(unbounded<A>()).flatMap((queue) => createQueue(queue, new DroppingStrategy()));
19
21
  }
20
22
 
21
23
  /**
22
24
  * @tsplus static fncts.io.QueueOps makeDropping
23
25
  */
24
26
  export function makeDropping<A>(capacity: number, __tsplusTrace?: string): UIO<Queue<A>> {
25
- return IO.succeed(bounded<A>(capacity)).flatMap(_makeQueue(new DroppingStrategy()));
27
+ return IO.succeed(bounded<A>(capacity)).flatMap((queue) => createQueue(queue, new DroppingStrategy()));
26
28
  }
27
29
 
28
30
  /**
29
31
  * @tsplus static fncts.io.QueueOps makeBounded
30
32
  */
31
33
  export function makeBounded<A>(capacity: number, __tsplusTrace?: string): UIO<Queue<A>> {
32
- return IO.succeed(bounded<A>(capacity)).flatMap(_makeQueue(new BackPressureStrategy()));
34
+ return IO.succeed(bounded<A>(capacity)).flatMap((queue) => createQueue(queue, new BackPressureStrategy()));
35
+ }
36
+
37
+ function unsafeCreate<A>(
38
+ queue: MutableQueue<A>,
39
+ takers: MutableQueue<Future<never, A>>,
40
+ shutdownHook: Future<never, void>,
41
+ shutdownFlag: AtomicBoolean,
42
+ strategy: Strategy<A>,
43
+ ): Queue<A> {
44
+ return new Queue(queue, takers, shutdownHook, shutdownFlag, strategy);
45
+ }
46
+
47
+ function createQueue<A>(queue: MutableQueue<A>, strategy: Strategy<A>): UIO<Queue<A>> {
48
+ return Future.make<never, void>().map((p) => unsafeCreate(queue, unbounded(), p, new AtomicBoolean(false), strategy));
33
49
  }
@@ -1,69 +1,66 @@
1
- /**
2
- * A `PQueue<RA, RB, EA, EB, A, B>` is a lightweight, asynchronous queue into which values of
3
- * type `A` can be enqueued and of which elements of type `B` can be dequeued. The queue's
4
- * enqueueing operations may utilize an environment of type `RA` and may fail with errors of
5
- * type `EA`. The dequeueing operations may utilize an environment of type `RB` and may fail
6
- * with errors of type `EB`.
7
- *
8
- * @tsplus type fncts.io.Queue
9
- */
10
- export interface PQueue<RA, RB, EA, EB, A, B> {
11
- readonly _RA: () => RA;
12
- readonly _RB: () => RB;
13
- readonly _EA: () => EA;
14
- readonly _EB: () => EB;
15
- readonly _A: (_: A) => void;
16
- readonly _B: () => B;
17
- }
1
+ import type { MutableQueue } from "../internal/MutableQueue.js";
2
+ import type { UIO } from "../IO.js";
3
+ import type { Strategy } from "./strategy.js";
4
+ import type { Maybe } from "@fncts/base/data/Maybe";
5
+ import type { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
18
6
 
19
- /**
20
- * @tsplus type fncts.io.QueueOps
21
- */
22
- export interface QueueOps {}
7
+ import { Conc } from "@fncts/base/collection/immutable/Conc";
23
8
 
24
- export const Queue: QueueOps = {};
9
+ import {
10
+ unsafeCompletePromise,
11
+ unsafeCompleteTakers,
12
+ unsafeOfferAll,
13
+ unsafePollAll,
14
+ unsafePollN,
15
+ unsafeRemove,
16
+ } from "./internal.js";
25
17
 
26
- /**
27
- * @optimize remove
28
- */
29
- export function concrete<RA, RB, EA, EB, A, B>(
30
- _: PQueue<RA, RB, EA, EB, A, B>,
31
- ): asserts _ is QueueInternal<RA, RB, EA, EB, A, B> {
32
- //
33
- }
18
+ export const QueueTypeId = Symbol.for("fncts.io.Queue");
19
+ export type QueueTypeId = typeof QueueTypeId;
34
20
 
35
- /**
36
- * A `Queue<RA, RB, EA, EB, A, B>` is a lightweight, asynchronous queue into which values of
37
- * type `A` can be enqueued and of which elements of type `B` can be dequeued. The queue's
38
- * enqueueing operations may utilize an environment of type `RA` and may fail with errors of
39
- * type `EA`. The dequeueing operations may utilize an environment of type `RB` and may fail
40
- * with errors of type `EB`.
41
- */
42
- export abstract class QueueInternal<RA, RB, EA, EB, A, B> implements PQueue<RA, RB, EA, EB, A, B> {
43
- readonly _RA!: () => RA;
44
- readonly _RB!: () => RB;
45
- readonly _EA!: () => EA;
46
- readonly _EB!: () => EB;
47
- readonly _A!: (_: A) => void;
48
- readonly _B!: () => B;
21
+ export interface CommonQueue {
22
+ readonly [QueueTypeId]: QueueTypeId;
23
+ /**
24
+ * How many elements can hold in the queue
25
+ */
26
+ get capacity(): number;
27
+ /**
28
+ * Retrieves the size of the queue, which is equal to the number of elements
29
+ * in the queue. This may be negative if fibers are suspended waiting for
30
+ * elements to be added to the queue.
31
+ */
32
+ readonly size: UIO<number>;
49
33
  /**
50
34
  * Waits until the queue is shutdown.
51
35
  * The `IO` returned by this method will not resume until the queue has been shutdown.
52
36
  * If the queue is already shutdown, the `IO` will resume right away.
53
37
  */
54
- abstract readonly awaitShutdown: UIO<void>;
38
+ readonly awaitShutdown: UIO<void>;
55
39
  /**
56
- * How many elements can hold in the queue
40
+ * `true` if `shutdown` has been called.
57
41
  */
58
- abstract readonly capacity: number;
42
+ readonly isShutdown: UIO<boolean>;
59
43
  /**
60
- * `true` if `shutdown` has been called.
44
+ * Interrupts any fibers that are suspended on `offer` or `take`.
45
+ * Future calls to `offer*` and `take*` will be interrupted immediately.
61
46
  */
62
- abstract readonly isShutdown: UIO<boolean>;
47
+ readonly shutdown: UIO<void>;
48
+ /**
49
+ * Checks whether the queue is currently full.
50
+ */
51
+ readonly isFull: UIO<boolean>;
52
+ /**
53
+ * Checks whether the queue is currently empty.
54
+ */
55
+ readonly isEmpty: UIO<boolean>;
56
+ }
57
+
58
+ export interface Enqueue<in A> extends CommonQueue {
59
+ readonly _In: (_: A) => void;
63
60
  /**
64
61
  * Places one value in the queue.
65
62
  */
66
- abstract offer(a: A, __tsplusTrace?: string): IO<RA, EA, boolean>;
63
+ offer(this: this, a: A, __tsplusTrace?: string): UIO<boolean>;
67
64
  /**
68
65
  * For Bounded Queue: uses the `BackPressure` Strategy, places the values in the queue and always returns true.
69
66
  * If the queue has reached capacity, then
@@ -81,54 +78,206 @@ export abstract class QueueInternal<RA, RB, EA, EB, A, B> implements PQueue<RA,
81
78
  * It places the values in the queue but if there is no room it will not enqueue them and return false.
82
79
  *
83
80
  */
84
- abstract offerAll(as: Iterable<A>, __tsplusTrace?: string): IO<RA, EA, boolean>;
85
- /**
86
- * Interrupts any fibers that are suspended on `offer` or `take`.
87
- * Future calls to `offer*` and `take*` will be interrupted immediately.
88
- */
89
- abstract readonly shutdown: UIO<void>;
90
- /**
91
- * Retrieves the size of the queue, which is equal to the number of elements
92
- * in the queue. This may be negative if fibers are suspended waiting for
93
- * elements to be added to the queue.
94
- */
95
- abstract readonly size: UIO<number>;
81
+ offerAll(this: this, as: Iterable<A>, __tsplusTrace?: string): UIO<boolean>;
82
+ }
83
+
84
+ export interface Dequeue<out A> extends CommonQueue {
85
+ readonly _Out: (_: never) => A;
96
86
  /**
97
87
  * Removes the oldest value in the queue. If the queue is empty, this will
98
88
  * return a computation that resumes when an item has been added to the queue.
99
89
  */
100
- abstract readonly take: IO<RB, EB, B>;
90
+ readonly take: UIO<A>;
101
91
  /**
102
92
  * Removes all the values in the queue and returns the list of the values. If the queue
103
93
  * is empty returns empty list.
104
94
  */
105
- abstract readonly takeAll: IO<RB, EB, Conc<B>>;
95
+ readonly takeAll: UIO<Conc<A>>;
106
96
  /**
107
97
  * Takes up to max number of values in the queue.
108
98
  */
109
- abstract takeUpTo(n: number, __tsplusTrace?: string): IO<RB, EB, Conc<B>>;
99
+ takeUpTo(this: this, max: number, __tsplusTrace?: string): UIO<Conc<A>>;
100
+ /**
101
+ * Takes the specified number of elements from the queue. If there are fewer
102
+ * than the specified number of elements available, it suspends until they
103
+ * become available.
104
+ */
105
+ takeN(this: this, n: number, __tsplusTrace?: string): UIO<Conc<A>>;
106
+ /**
107
+ * Takes a number of elements from the queue between the specified minimum and
108
+ * maximum. If there are fewer than the minimum number of elements available,
109
+ * suspends until at least the minimum number of elements have been collected.
110
+ */
111
+ takeBetween(this: this, min: number, max: number, __tsplusTrace?: string): UIO<Conc<A>>;
112
+ /**
113
+ * Take the head option of values in the queue.
114
+ */
115
+ readonly poll: UIO<Maybe<A>>;
110
116
  }
111
117
 
112
118
  /**
113
- * A `Queue<A>` is a lightweight, asynchronous queue into which
114
- * values of type `A` can be enqueued and dequeued.
119
+ * A `Queue` is a lightweight, asynchronous queue into which values can be
120
+ * enqueued and of which elements can be dequeued.
115
121
  *
116
122
  * @tsplus type fncts.io.Queue
123
+ * @tsplus companion fncts.io.QueueOps
117
124
  */
118
- export interface Queue<A> extends PQueue<never, never, never, never, A, A> {}
125
+ export class Queue<A> implements Enqueue<A>, Dequeue<A> {
126
+ readonly [QueueTypeId]: typeof QueueTypeId = QueueTypeId;
127
+ declare _In: (_: A) => void;
128
+ declare _Out: (_: never) => A;
129
+ constructor(
130
+ readonly queue: MutableQueue<A>,
131
+ readonly takers: MutableQueue<Future<never, A>>,
132
+ readonly shutdownHook: Future<never, void>,
133
+ readonly shutdownFlag: AtomicBoolean,
134
+ readonly strategy: Strategy<A>,
135
+ ) {}
119
136
 
120
- export declare namespace Queue {
121
- /**
122
- * A queue that can only be dequeued.
123
- *
124
- * @tsplus type fncts.io.Queue
125
- */
126
- export interface Dequeue<A> extends PQueue<never, never, unknown, never, never, A> {}
137
+ offer(this: this, a: A, __tsplusTrace?: string): UIO<boolean> {
138
+ return IO.defer(() => {
139
+ if (this.shutdownFlag.get) {
140
+ return IO.interrupt;
141
+ } else {
142
+ const taker = this.takers.dequeue(undefined);
143
+ if (taker != null) {
144
+ unsafeCompletePromise(taker, a);
145
+ return IO.succeedNow(true);
146
+ } else {
147
+ const succeeded = this.queue.enqueue(a);
148
+ if (succeeded) {
149
+ return IO.succeedNow(true);
150
+ } else {
151
+ return this.strategy.handleSurplus(Conc.single(a), this.queue, this.takers, this.shutdownFlag);
152
+ }
153
+ }
154
+ }
155
+ });
156
+ }
127
157
 
128
- /**
129
- * A queue that can only be enqueued.
130
- *
131
- * @tsplus type fncts.io.Queue
132
- */
133
- export interface Enqueue<A> extends PQueue<never, never, never, unknown, A, any> {}
158
+ offerAll(this: this, as: Iterable<A>, __tsplusTrace?: string): UIO<boolean> {
159
+ const arr = Conc.from(as);
160
+ return IO.defer(() => {
161
+ if (this.shutdownFlag.get) {
162
+ return IO.interrupt;
163
+ } else {
164
+ const pTakers = this.queue.isEmpty ? unsafePollN(this.takers, arr.length) : Conc.empty<Future<never, A>>();
165
+ const [forTakers, remaining] = arr.splitAt(pTakers.length);
166
+ pTakers.zip(forTakers).forEach(([taker, item]) => {
167
+ unsafeCompletePromise(taker, item);
168
+ });
169
+ if (remaining.length === 0) {
170
+ return IO.succeedNow(true);
171
+ }
172
+ const surplus = unsafeOfferAll(this.queue, remaining);
173
+ unsafeCompleteTakers(this.strategy, this.queue, this.takers);
174
+ if (surplus.length === 0) {
175
+ return IO.succeedNow(true);
176
+ } else {
177
+ return this.strategy.handleSurplus(surplus, this.queue, this.takers, this.shutdownFlag);
178
+ }
179
+ }
180
+ });
181
+ }
182
+
183
+ get capacity(): number {
184
+ return this.queue.capacity;
185
+ }
186
+
187
+ size: UIO<number> = IO.defer(() => {
188
+ if (this.shutdownFlag.get) {
189
+ return IO.interrupt;
190
+ } else {
191
+ return IO.succeedNow(this.queue.size - this.takers.size + this.strategy.surplusSize);
192
+ }
193
+ });
194
+
195
+ awaitShutdown = this.shutdownHook.await;
196
+
197
+ isShutdown: UIO<boolean> = IO(this.shutdownFlag.get);
198
+
199
+ shutdown: UIO<void> = IO.deferWith((_, id) => {
200
+ this.shutdownFlag.set(true);
201
+ return IO.foreachDiscardC(unsafePollAll(this.takers), (fiber) => fiber.interruptAs(id))
202
+ .flatMap(() => this.strategy.shutdown)
203
+ .whenIO(this.shutdownHook.succeed(undefined));
204
+ }).uninterruptible;
205
+
206
+ isFull: UIO<boolean> = this.size.map((size) => size === this.capacity);
207
+
208
+ isEmpty: UIO<boolean> = this.size.map((size) => size === 0);
209
+
210
+ take: UIO<A> = IO.deferWith((_, fiberId) => {
211
+ if (this.shutdownFlag.get) {
212
+ return IO.interrupt;
213
+ }
214
+ const item = this.queue.dequeue(undefined);
215
+ if (item != null) {
216
+ this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers);
217
+ return IO.succeedNow(item);
218
+ } else {
219
+ const p = Future.unsafeMake<never, A>(fiberId);
220
+ return IO.defer(() => {
221
+ this.takers.enqueue(p);
222
+ unsafeCompleteTakers(this.strategy, this.queue, this.takers);
223
+ if (this.shutdownFlag.get) {
224
+ return IO.interrupt;
225
+ } else {
226
+ return p.await;
227
+ }
228
+ }).onInterrupt(() => IO.succeed(unsafeRemove(this.takers, p)));
229
+ }
230
+ });
231
+
232
+ takeAll: UIO<Conc<A>> = IO.defer(() => {
233
+ if (this.shutdownFlag.get) {
234
+ return IO.interrupt;
235
+ } else {
236
+ return IO.succeed(() => {
237
+ const as = unsafePollAll(this.queue);
238
+ this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers);
239
+ return as;
240
+ });
241
+ }
242
+ });
243
+
244
+ takeUpTo(this: this, max: number, __tsplusTrace?: string): UIO<Conc<A>> {
245
+ return IO.defer(() => {
246
+ if (this.shutdownFlag.get) {
247
+ return IO.interrupt;
248
+ } else {
249
+ return IO.succeed(() => {
250
+ const as = unsafePollN(this.queue, max);
251
+ this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers);
252
+ return as;
253
+ });
254
+ }
255
+ });
256
+ }
257
+
258
+ private takeRemainder(min: number, max: number, acc: Conc<A>, __tsplusTrace?: string): UIO<Conc<A>> {
259
+ if (max < min) return IO.succeedNow(acc);
260
+ else {
261
+ return this.takeUpTo(max).flatMap((bs) => {
262
+ const remaining = min - bs.length;
263
+ if (remaining === 1) {
264
+ return this.take.map((b) => acc.concat(bs).append(b));
265
+ } else if (remaining > 1) {
266
+ return this.take.flatMap((b) => this.takeRemainder(remaining - 1, max - bs.length, acc.concat(bs).append(b)));
267
+ } else {
268
+ return IO.succeedNow(acc.concat(bs));
269
+ }
270
+ });
271
+ }
272
+ }
273
+
274
+ takeBetween(this: this, min: number, max: number, __tsplusTrace?: string): UIO<Conc<A>> {
275
+ return this.takeRemainder(min, max, Conc());
276
+ }
277
+
278
+ takeN(this: this, n: number, __tsplusTrace?: string): UIO<Conc<A>> {
279
+ return this.takeBetween(n, n);
280
+ }
281
+
282
+ poll: UIO<Maybe<A>> = this.takeUpTo(1).map((_) => _.head);
134
283
  }