effect 2.2.5 → 2.3.0

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 (693) hide show
  1. package/RateLimiter/package.json +6 -0
  2. package/dist/cjs/Cause.js +14 -1
  3. package/dist/cjs/Cause.js.map +1 -1
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Clock.js.map +1 -1
  6. package/dist/cjs/Console.js.map +1 -1
  7. package/dist/cjs/Context.js +23 -25
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Data.js +3 -3
  10. package/dist/cjs/Data.js.map +1 -1
  11. package/dist/cjs/Deferred.js +1 -1
  12. package/dist/cjs/Deferred.js.map +1 -1
  13. package/dist/cjs/Effect.js +9 -9
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Effectable.js.map +1 -1
  16. package/dist/cjs/Either.js.map +1 -1
  17. package/dist/cjs/Exit.js +2 -2
  18. package/dist/cjs/Exit.js.map +1 -1
  19. package/dist/cjs/Fiber.js.map +1 -1
  20. package/dist/cjs/FiberMap.js +3 -3
  21. package/dist/cjs/FiberRef.js.map +1 -1
  22. package/dist/cjs/FiberRefs.js.map +1 -1
  23. package/dist/cjs/FiberSet.js +3 -3
  24. package/dist/cjs/FiberSet.js.map +1 -1
  25. package/dist/cjs/GroupBy.js.map +1 -1
  26. package/dist/cjs/Layer.js.map +1 -1
  27. package/dist/cjs/LogLevel.js.map +1 -1
  28. package/dist/cjs/Logger.js.map +1 -1
  29. package/dist/cjs/Metric.js.map +1 -1
  30. package/dist/cjs/Number.js +20 -1
  31. package/dist/cjs/Number.js.map +1 -1
  32. package/dist/cjs/Option.js.map +1 -1
  33. package/dist/cjs/Pool.js.map +1 -1
  34. package/dist/cjs/PubSub.js.map +1 -1
  35. package/dist/cjs/Queue.js.map +1 -1
  36. package/dist/cjs/Random.js.map +1 -1
  37. package/dist/cjs/RateLimiter.js +38 -0
  38. package/dist/cjs/RateLimiter.js.map +1 -0
  39. package/dist/cjs/ReadonlyRecord.js +45 -9
  40. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  41. package/dist/cjs/Ref.js.map +1 -1
  42. package/dist/cjs/Request.js.map +1 -1
  43. package/dist/cjs/RequestResolver.js.map +1 -1
  44. package/dist/cjs/Resource.js.map +1 -1
  45. package/dist/cjs/Runtime.js +1 -4
  46. package/dist/cjs/Runtime.js.map +1 -1
  47. package/dist/cjs/RuntimeFlags.js.map +1 -1
  48. package/dist/cjs/STM.js.map +1 -1
  49. package/dist/cjs/Schedule.js.map +1 -1
  50. package/dist/cjs/Scope.js.map +1 -1
  51. package/dist/cjs/ScopedRef.js.map +1 -1
  52. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  53. package/dist/cjs/Sink.js.map +1 -1
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/SubscriptionRef.js.map +1 -1
  56. package/dist/cjs/Supervisor.js.map +1 -1
  57. package/dist/cjs/SynchronizedRef.js.map +1 -1
  58. package/dist/cjs/TArray.js.map +1 -1
  59. package/dist/cjs/TDeferred.js.map +1 -1
  60. package/dist/cjs/TMap.js.map +1 -1
  61. package/dist/cjs/TPriorityQueue.js.map +1 -1
  62. package/dist/cjs/TPubSub.js.map +1 -1
  63. package/dist/cjs/TQueue.js.map +1 -1
  64. package/dist/cjs/TRandom.js.map +1 -1
  65. package/dist/cjs/TReentrantLock.js.map +1 -1
  66. package/dist/cjs/TRef.js.map +1 -1
  67. package/dist/cjs/TSemaphore.js.map +1 -1
  68. package/dist/cjs/TSet.js.map +1 -1
  69. package/dist/cjs/Take.js +6 -6
  70. package/dist/cjs/Take.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +10 -13
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +1 -1
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/TestConfig.js +1 -1
  78. package/dist/cjs/TestConfig.js.map +1 -1
  79. package/dist/cjs/TestContext.js.map +1 -1
  80. package/dist/cjs/TestLive.js +1 -1
  81. package/dist/cjs/TestLive.js.map +1 -1
  82. package/dist/cjs/TestServices.js.map +1 -1
  83. package/dist/cjs/TestSized.js +1 -1
  84. package/dist/cjs/TestSized.js.map +1 -1
  85. package/dist/cjs/Utils.js +0 -1
  86. package/dist/cjs/Utils.js.map +1 -1
  87. package/dist/cjs/index.js +4 -2
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/internal/cache.js.map +1 -1
  90. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  91. package/dist/cjs/internal/channel/mergeDecision.js +2 -6
  92. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  93. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  94. package/dist/cjs/internal/channel.js +1 -1
  95. package/dist/cjs/internal/channel.js.map +1 -1
  96. package/dist/cjs/internal/clock.js +1 -1
  97. package/dist/cjs/internal/clock.js.map +1 -1
  98. package/dist/cjs/internal/configProvider.js +2 -4
  99. package/dist/cjs/internal/configProvider.js.map +1 -1
  100. package/dist/cjs/internal/console.js.map +1 -1
  101. package/dist/cjs/internal/context.js +31 -22
  102. package/dist/cjs/internal/context.js.map +1 -1
  103. package/dist/cjs/internal/core-effect.js +13 -27
  104. package/dist/cjs/internal/core-effect.js.map +1 -1
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +61 -130
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/data.js.map +1 -1
  109. package/dist/cjs/internal/defaultServices/console.js +1 -1
  110. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  111. package/dist/cjs/internal/defaultServices.js.map +1 -1
  112. package/dist/cjs/internal/deferred.js.map +1 -1
  113. package/dist/cjs/internal/differ/contextPatch.js +9 -9
  114. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  115. package/dist/cjs/internal/effect/circular.js +7 -10
  116. package/dist/cjs/internal/effect/circular.js.map +1 -1
  117. package/dist/cjs/internal/effectable.js +4 -4
  118. package/dist/cjs/internal/effectable.js.map +1 -1
  119. package/dist/cjs/internal/fiber.js +2 -6
  120. package/dist/cjs/internal/fiber.js.map +1 -1
  121. package/dist/cjs/internal/fiberRuntime.js +10 -19
  122. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  123. package/dist/cjs/internal/groupBy.js.map +1 -1
  124. package/dist/cjs/internal/keyedPool.js.map +1 -1
  125. package/dist/cjs/internal/layer/circular.js.map +1 -1
  126. package/dist/cjs/internal/layer.js +3 -3
  127. package/dist/cjs/internal/layer.js.map +1 -1
  128. package/dist/cjs/internal/logSpan.js +3 -5
  129. package/dist/cjs/internal/logSpan.js.map +1 -1
  130. package/dist/cjs/internal/metric.js.map +1 -1
  131. package/dist/cjs/internal/pool.js.map +1 -1
  132. package/dist/cjs/internal/pubsub.js +2 -6
  133. package/dist/cjs/internal/pubsub.js.map +1 -1
  134. package/dist/cjs/internal/query.js.map +1 -1
  135. package/dist/cjs/internal/queue.js.map +1 -1
  136. package/dist/cjs/internal/random.js +1 -1
  137. package/dist/cjs/internal/random.js.map +1 -1
  138. package/dist/cjs/internal/rateLimiter.js +44 -0
  139. package/dist/cjs/internal/rateLimiter.js.map +1 -0
  140. package/dist/cjs/internal/ref.js.map +1 -1
  141. package/dist/cjs/internal/reloadable.js +1 -9
  142. package/dist/cjs/internal/reloadable.js.map +1 -1
  143. package/dist/cjs/internal/runtime.js +0 -1
  144. package/dist/cjs/internal/runtime.js.map +1 -1
  145. package/dist/cjs/internal/schedule.js.map +1 -1
  146. package/dist/cjs/internal/scopedCache.js.map +1 -1
  147. package/dist/cjs/internal/scopedRef.js.map +1 -1
  148. package/dist/cjs/internal/sink.js +7 -7
  149. package/dist/cjs/internal/sink.js.map +1 -1
  150. package/dist/cjs/internal/stm/core.js.map +1 -1
  151. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  152. package/dist/cjs/internal/stm/stm/tExit.js +2 -2
  153. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  154. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  155. package/dist/cjs/internal/stm/stm.js.map +1 -1
  156. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  157. package/dist/cjs/internal/stm/tDeferred.js +4 -2
  158. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  159. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  160. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  161. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  162. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  163. package/dist/cjs/internal/stm/tRandom.js +1 -1
  164. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  165. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  166. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  167. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  168. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  169. package/dist/cjs/internal/stream/debounceState.js.map +1 -1
  170. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  171. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
  172. package/dist/cjs/internal/stream/pull.js.map +1 -1
  173. package/dist/cjs/internal/stream.js +0 -2
  174. package/dist/cjs/internal/stream.js.map +1 -1
  175. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  176. package/dist/cjs/internal/supervisor.js.map +1 -1
  177. package/dist/cjs/internal/take.js +2 -2
  178. package/dist/cjs/internal/take.js.map +1 -1
  179. package/dist/cjs/internal/testing/sleep.js.map +1 -1
  180. package/dist/cjs/internal/tracer.js +2 -2
  181. package/dist/cjs/internal/tracer.js.map +1 -1
  182. package/dist/cjs/internal/version.js +1 -1
  183. package/dist/dts/Cache.d.ts +20 -20
  184. package/dist/dts/Cache.d.ts.map +1 -1
  185. package/dist/dts/Cause.d.ts +33 -5
  186. package/dist/dts/Cause.d.ts.map +1 -1
  187. package/dist/dts/Channel.d.ts +197 -194
  188. package/dist/dts/Channel.d.ts.map +1 -1
  189. package/dist/dts/Clock.d.ts +7 -7
  190. package/dist/dts/Clock.d.ts.map +1 -1
  191. package/dist/dts/Config.d.ts +1 -1
  192. package/dist/dts/Config.d.ts.map +1 -1
  193. package/dist/dts/ConfigProvider.d.ts +6 -6
  194. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  195. package/dist/dts/Console.d.ts +43 -43
  196. package/dist/dts/Console.d.ts.map +1 -1
  197. package/dist/dts/Context.d.ts +44 -29
  198. package/dist/dts/Context.d.ts.map +1 -1
  199. package/dist/dts/Data.d.ts +38 -57
  200. package/dist/dts/Data.d.ts.map +1 -1
  201. package/dist/dts/Deferred.d.ts +36 -36
  202. package/dist/dts/Deferred.d.ts.map +1 -1
  203. package/dist/dts/Effect.d.ts +732 -729
  204. package/dist/dts/Effect.d.ts.map +1 -1
  205. package/dist/dts/Effectable.d.ts +8 -8
  206. package/dist/dts/Effectable.d.ts.map +1 -1
  207. package/dist/dts/Either.d.ts +2 -3
  208. package/dist/dts/Either.d.ts.map +1 -1
  209. package/dist/dts/Exit.d.ts +74 -74
  210. package/dist/dts/Exit.d.ts.map +1 -1
  211. package/dist/dts/Fiber.d.ts +75 -75
  212. package/dist/dts/Fiber.d.ts.map +1 -1
  213. package/dist/dts/FiberMap.d.ts +22 -22
  214. package/dist/dts/FiberMap.d.ts.map +1 -1
  215. package/dist/dts/FiberRef.d.ts +28 -28
  216. package/dist/dts/FiberRef.d.ts.map +1 -1
  217. package/dist/dts/FiberRefs.d.ts +1 -1
  218. package/dist/dts/FiberRefs.d.ts.map +1 -1
  219. package/dist/dts/FiberSet.d.ts +16 -16
  220. package/dist/dts/FiberSet.d.ts.map +1 -1
  221. package/dist/dts/GroupBy.d.ts +6 -6
  222. package/dist/dts/GroupBy.d.ts.map +1 -1
  223. package/dist/dts/KeyedPool.d.ts +22 -22
  224. package/dist/dts/KeyedPool.d.ts.map +1 -1
  225. package/dist/dts/Layer.d.ts +126 -126
  226. package/dist/dts/Layer.d.ts.map +1 -1
  227. package/dist/dts/LogLevel.d.ts +2 -2
  228. package/dist/dts/LogLevel.d.ts.map +1 -1
  229. package/dist/dts/Logger.d.ts +14 -14
  230. package/dist/dts/Logger.d.ts.map +1 -1
  231. package/dist/dts/MergeDecision.d.ts +7 -7
  232. package/dist/dts/MergeState.d.ts +13 -13
  233. package/dist/dts/MergeState.d.ts.map +1 -1
  234. package/dist/dts/Metric.d.ts +32 -32
  235. package/dist/dts/Metric.d.ts.map +1 -1
  236. package/dist/dts/MetricPolling.d.ts +6 -6
  237. package/dist/dts/MetricPolling.d.ts.map +1 -1
  238. package/dist/dts/Number.d.ts +15 -0
  239. package/dist/dts/Number.d.ts.map +1 -1
  240. package/dist/dts/Option.d.ts +2 -3
  241. package/dist/dts/Option.d.ts.map +1 -1
  242. package/dist/dts/Pool.d.ts +15 -16
  243. package/dist/dts/Pool.d.ts.map +1 -1
  244. package/dist/dts/PubSub.d.ts +18 -18
  245. package/dist/dts/PubSub.d.ts.map +1 -1
  246. package/dist/dts/Queue.d.ts +40 -40
  247. package/dist/dts/Queue.d.ts.map +1 -1
  248. package/dist/dts/Random.d.ts +13 -13
  249. package/dist/dts/Random.d.ts.map +1 -1
  250. package/dist/dts/RateLimiter.d.ts +31 -0
  251. package/dist/dts/RateLimiter.d.ts.map +1 -0
  252. package/dist/dts/ReadonlyArray.d.ts +3 -3
  253. package/dist/dts/ReadonlyRecord.d.ts +37 -8
  254. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  255. package/dist/dts/Ref.d.ts +25 -25
  256. package/dist/dts/Ref.d.ts.map +1 -1
  257. package/dist/dts/Reloadable.d.ts +9 -9
  258. package/dist/dts/Reloadable.d.ts.map +1 -1
  259. package/dist/dts/Request.d.ts +27 -28
  260. package/dist/dts/Request.d.ts.map +1 -1
  261. package/dist/dts/RequestBlock.d.ts +3 -3
  262. package/dist/dts/RequestBlock.d.ts.map +1 -1
  263. package/dist/dts/RequestResolver.d.ts +16 -16
  264. package/dist/dts/RequestResolver.d.ts.map +1 -1
  265. package/dist/dts/Resource.d.ts +7 -7
  266. package/dist/dts/Resource.d.ts.map +1 -1
  267. package/dist/dts/Runtime.d.ts +13 -16
  268. package/dist/dts/Runtime.d.ts.map +1 -1
  269. package/dist/dts/RuntimeFlags.d.ts +10 -10
  270. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  271. package/dist/dts/STM.d.ts +303 -303
  272. package/dist/dts/STM.d.ts.map +1 -1
  273. package/dist/dts/Schedule.d.ts +19 -19
  274. package/dist/dts/Schedule.d.ts.map +1 -1
  275. package/dist/dts/Scope.d.ts +10 -10
  276. package/dist/dts/Scope.d.ts.map +1 -1
  277. package/dist/dts/ScopedCache.d.ts +14 -14
  278. package/dist/dts/ScopedCache.d.ts.map +1 -1
  279. package/dist/dts/ScopedRef.d.ts +5 -5
  280. package/dist/dts/ScopedRef.d.ts.map +1 -1
  281. package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
  282. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  283. package/dist/dts/Sink.d.ts +214 -205
  284. package/dist/dts/Sink.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +595 -592
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +5 -5
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/Streamable.d.ts +2 -2
  290. package/dist/dts/Streamable.d.ts.map +1 -1
  291. package/dist/dts/SubscriptionRef.d.ts +41 -41
  292. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  293. package/dist/dts/Supervisor.d.ts +17 -17
  294. package/dist/dts/Supervisor.d.ts.map +1 -1
  295. package/dist/dts/SynchronizedRef.d.ts +41 -41
  296. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  297. package/dist/dts/TArray.d.ts +72 -72
  298. package/dist/dts/TArray.d.ts.map +1 -1
  299. package/dist/dts/TDeferred.d.ts +12 -12
  300. package/dist/dts/TDeferred.d.ts.map +1 -1
  301. package/dist/dts/TMap.d.ts +67 -67
  302. package/dist/dts/TMap.d.ts.map +1 -1
  303. package/dist/dts/TPriorityQueue.d.ts +23 -23
  304. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  305. package/dist/dts/TPubSub.d.ts +15 -15
  306. package/dist/dts/TPubSub.d.ts.map +1 -1
  307. package/dist/dts/TQueue.d.ts +40 -40
  308. package/dist/dts/TQueue.d.ts.map +1 -1
  309. package/dist/dts/TRandom.d.ts +13 -13
  310. package/dist/dts/TRandom.d.ts.map +1 -1
  311. package/dist/dts/TReentrantLock.d.ts +21 -21
  312. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  313. package/dist/dts/TRef.d.ts +25 -25
  314. package/dist/dts/TRef.d.ts.map +1 -1
  315. package/dist/dts/TSemaphore.d.ts +15 -15
  316. package/dist/dts/TSemaphore.d.ts.map +1 -1
  317. package/dist/dts/TSet.d.ts +49 -49
  318. package/dist/dts/TSet.d.ts.map +1 -1
  319. package/dist/dts/Take.d.ts +41 -41
  320. package/dist/dts/Take.d.ts.map +1 -1
  321. package/dist/dts/TestAnnotation.d.ts +1 -3
  322. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  323. package/dist/dts/TestAnnotations.d.ts +3 -3
  324. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  325. package/dist/dts/TestClock.d.ts +18 -18
  326. package/dist/dts/TestClock.d.ts.map +1 -1
  327. package/dist/dts/TestConfig.d.ts.map +1 -1
  328. package/dist/dts/TestContext.d.ts +2 -2
  329. package/dist/dts/TestContext.d.ts.map +1 -1
  330. package/dist/dts/TestLive.d.ts +1 -1
  331. package/dist/dts/TestLive.d.ts.map +1 -1
  332. package/dist/dts/TestServices.d.ts +31 -31
  333. package/dist/dts/TestServices.d.ts.map +1 -1
  334. package/dist/dts/TestSized.d.ts +2 -2
  335. package/dist/dts/TestSized.d.ts.map +1 -1
  336. package/dist/dts/Tracer.d.ts +1 -1
  337. package/dist/dts/Utils.d.ts.map +1 -1
  338. package/dist/dts/index.d.ts +12 -2
  339. package/dist/dts/index.d.ts.map +1 -1
  340. package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
  341. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
  342. package/dist/dts/internal/core-stream.d.ts +1 -1
  343. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  344. package/dist/dts/internal/rateLimiter.d.ts +2 -0
  345. package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
  346. package/dist/dts/internal/stm/stm.d.ts +6 -6
  347. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  348. package/dist/dts/internal/version.d.ts +1 -1
  349. package/dist/esm/Cause.js +13 -0
  350. package/dist/esm/Cause.js.map +1 -1
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Clock.js.map +1 -1
  353. package/dist/esm/Console.js.map +1 -1
  354. package/dist/esm/Context.js +22 -24
  355. package/dist/esm/Context.js.map +1 -1
  356. package/dist/esm/Data.js +4 -5
  357. package/dist/esm/Data.js.map +1 -1
  358. package/dist/esm/Deferred.js +1 -1
  359. package/dist/esm/Deferred.js.map +1 -1
  360. package/dist/esm/Effect.js +9 -9
  361. package/dist/esm/Effect.js.map +1 -1
  362. package/dist/esm/Effectable.js.map +1 -1
  363. package/dist/esm/Either.js.map +1 -1
  364. package/dist/esm/Exit.js +2 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js.map +1 -1
  367. package/dist/esm/FiberMap.js +3 -3
  368. package/dist/esm/FiberRef.js.map +1 -1
  369. package/dist/esm/FiberRefs.js.map +1 -1
  370. package/dist/esm/FiberSet.js +3 -3
  371. package/dist/esm/FiberSet.js.map +1 -1
  372. package/dist/esm/GroupBy.js.map +1 -1
  373. package/dist/esm/Layer.js.map +1 -1
  374. package/dist/esm/LogLevel.js.map +1 -1
  375. package/dist/esm/Logger.js.map +1 -1
  376. package/dist/esm/Metric.js.map +1 -1
  377. package/dist/esm/Number.js +18 -0
  378. package/dist/esm/Number.js.map +1 -1
  379. package/dist/esm/Option.js.map +1 -1
  380. package/dist/esm/Pool.js.map +1 -1
  381. package/dist/esm/PubSub.js.map +1 -1
  382. package/dist/esm/Queue.js.map +1 -1
  383. package/dist/esm/Random.js.map +1 -1
  384. package/dist/esm/RateLimiter.js +7 -0
  385. package/dist/esm/RateLimiter.js.map +1 -0
  386. package/dist/esm/ReadonlyRecord.js +44 -8
  387. package/dist/esm/ReadonlyRecord.js.map +1 -1
  388. package/dist/esm/Ref.js.map +1 -1
  389. package/dist/esm/Request.js.map +1 -1
  390. package/dist/esm/RequestResolver.js.map +1 -1
  391. package/dist/esm/Resource.js.map +1 -1
  392. package/dist/esm/Runtime.js +1 -4
  393. package/dist/esm/Runtime.js.map +1 -1
  394. package/dist/esm/RuntimeFlags.js.map +1 -1
  395. package/dist/esm/STM.js.map +1 -1
  396. package/dist/esm/Schedule.js.map +1 -1
  397. package/dist/esm/Scope.js.map +1 -1
  398. package/dist/esm/ScopedRef.js.map +1 -1
  399. package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
  400. package/dist/esm/Sink.js.map +1 -1
  401. package/dist/esm/Stream.js.map +1 -1
  402. package/dist/esm/SubscriptionRef.js.map +1 -1
  403. package/dist/esm/Supervisor.js.map +1 -1
  404. package/dist/esm/SynchronizedRef.js.map +1 -1
  405. package/dist/esm/TArray.js.map +1 -1
  406. package/dist/esm/TDeferred.js.map +1 -1
  407. package/dist/esm/TMap.js.map +1 -1
  408. package/dist/esm/TPriorityQueue.js.map +1 -1
  409. package/dist/esm/TPubSub.js.map +1 -1
  410. package/dist/esm/TQueue.js.map +1 -1
  411. package/dist/esm/TRandom.js.map +1 -1
  412. package/dist/esm/TReentrantLock.js.map +1 -1
  413. package/dist/esm/TRef.js.map +1 -1
  414. package/dist/esm/TSemaphore.js.map +1 -1
  415. package/dist/esm/TSet.js.map +1 -1
  416. package/dist/esm/Take.js +6 -6
  417. package/dist/esm/Take.js.map +1 -1
  418. package/dist/esm/TestAnnotation.js +10 -13
  419. package/dist/esm/TestAnnotation.js.map +1 -1
  420. package/dist/esm/TestAnnotations.js +1 -1
  421. package/dist/esm/TestAnnotations.js.map +1 -1
  422. package/dist/esm/TestClock.js +1 -1
  423. package/dist/esm/TestClock.js.map +1 -1
  424. package/dist/esm/TestConfig.js +1 -1
  425. package/dist/esm/TestConfig.js.map +1 -1
  426. package/dist/esm/TestContext.js.map +1 -1
  427. package/dist/esm/TestLive.js +1 -1
  428. package/dist/esm/TestLive.js.map +1 -1
  429. package/dist/esm/TestServices.js.map +1 -1
  430. package/dist/esm/TestSized.js +1 -1
  431. package/dist/esm/TestSized.js.map +1 -1
  432. package/dist/esm/Utils.js +1 -1
  433. package/dist/esm/Utils.js.map +1 -1
  434. package/dist/esm/index.js +12 -2
  435. package/dist/esm/index.js.map +1 -1
  436. package/dist/esm/internal/cache.js.map +1 -1
  437. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  438. package/dist/esm/internal/channel/mergeDecision.js +2 -6
  439. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  440. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  441. package/dist/esm/internal/channel.js +1 -1
  442. package/dist/esm/internal/channel.js.map +1 -1
  443. package/dist/esm/internal/clock.js +1 -1
  444. package/dist/esm/internal/clock.js.map +1 -1
  445. package/dist/esm/internal/configProvider.js +2 -4
  446. package/dist/esm/internal/configProvider.js.map +1 -1
  447. package/dist/esm/internal/console.js.map +1 -1
  448. package/dist/esm/internal/context.js +28 -20
  449. package/dist/esm/internal/context.js.map +1 -1
  450. package/dist/esm/internal/core-effect.js +12 -26
  451. package/dist/esm/internal/core-effect.js.map +1 -1
  452. package/dist/esm/internal/core-stream.js.map +1 -1
  453. package/dist/esm/internal/core.js +57 -127
  454. package/dist/esm/internal/core.js.map +1 -1
  455. package/dist/esm/internal/data.js.map +1 -1
  456. package/dist/esm/internal/defaultServices/console.js +1 -1
  457. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  458. package/dist/esm/internal/defaultServices.js.map +1 -1
  459. package/dist/esm/internal/deferred.js.map +1 -1
  460. package/dist/esm/internal/differ/contextPatch.js +9 -9
  461. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  462. package/dist/esm/internal/effect/circular.js +5 -8
  463. package/dist/esm/internal/effect/circular.js.map +1 -1
  464. package/dist/esm/internal/effectable.js +4 -4
  465. package/dist/esm/internal/effectable.js.map +1 -1
  466. package/dist/esm/internal/fiber.js +2 -6
  467. package/dist/esm/internal/fiber.js.map +1 -1
  468. package/dist/esm/internal/fiberRuntime.js +10 -19
  469. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  470. package/dist/esm/internal/groupBy.js.map +1 -1
  471. package/dist/esm/internal/keyedPool.js.map +1 -1
  472. package/dist/esm/internal/layer/circular.js.map +1 -1
  473. package/dist/esm/internal/layer.js +3 -3
  474. package/dist/esm/internal/layer.js.map +1 -1
  475. package/dist/esm/internal/logSpan.js +3 -5
  476. package/dist/esm/internal/logSpan.js.map +1 -1
  477. package/dist/esm/internal/metric.js.map +1 -1
  478. package/dist/esm/internal/pool.js.map +1 -1
  479. package/dist/esm/internal/pubsub.js +1 -5
  480. package/dist/esm/internal/pubsub.js.map +1 -1
  481. package/dist/esm/internal/query.js.map +1 -1
  482. package/dist/esm/internal/queue.js.map +1 -1
  483. package/dist/esm/internal/random.js +1 -1
  484. package/dist/esm/internal/random.js.map +1 -1
  485. package/dist/esm/internal/rateLimiter.js +12 -0
  486. package/dist/esm/internal/rateLimiter.js.map +1 -0
  487. package/dist/esm/internal/ref.js.map +1 -1
  488. package/dist/esm/internal/reloadable.js +1 -9
  489. package/dist/esm/internal/reloadable.js.map +1 -1
  490. package/dist/esm/internal/runtime.js +0 -1
  491. package/dist/esm/internal/runtime.js.map +1 -1
  492. package/dist/esm/internal/schedule.js.map +1 -1
  493. package/dist/esm/internal/scopedCache.js.map +1 -1
  494. package/dist/esm/internal/scopedRef.js.map +1 -1
  495. package/dist/esm/internal/sink.js +7 -7
  496. package/dist/esm/internal/sink.js.map +1 -1
  497. package/dist/esm/internal/stm/core.js.map +1 -1
  498. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  499. package/dist/esm/internal/stm/stm/tExit.js +2 -2
  500. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  501. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
  502. package/dist/esm/internal/stm/stm.js.map +1 -1
  503. package/dist/esm/internal/stm/tArray.js.map +1 -1
  504. package/dist/esm/internal/stm/tDeferred.js +4 -2
  505. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  506. package/dist/esm/internal/stm/tMap.js.map +1 -1
  507. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  508. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  509. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  510. package/dist/esm/internal/stm/tRandom.js +1 -1
  511. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  512. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  513. package/dist/esm/internal/stm/tRef.js.map +1 -1
  514. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  515. package/dist/esm/internal/stm/tSet.js.map +1 -1
  516. package/dist/esm/internal/stream/debounceState.js.map +1 -1
  517. package/dist/esm/internal/stream/handoff.js.map +1 -1
  518. package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
  519. package/dist/esm/internal/stream/pull.js.map +1 -1
  520. package/dist/esm/internal/stream.js +0 -2
  521. package/dist/esm/internal/stream.js.map +1 -1
  522. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  523. package/dist/esm/internal/supervisor.js.map +1 -1
  524. package/dist/esm/internal/take.js +2 -2
  525. package/dist/esm/internal/take.js.map +1 -1
  526. package/dist/esm/internal/testing/sleep.js.map +1 -1
  527. package/dist/esm/internal/tracer.js +2 -2
  528. package/dist/esm/internal/tracer.js.map +1 -1
  529. package/dist/esm/internal/version.js +1 -1
  530. package/package.json +9 -1
  531. package/src/Cache.ts +20 -20
  532. package/src/Cause.ts +37 -13
  533. package/src/Channel.ts +802 -794
  534. package/src/Clock.ts +7 -7
  535. package/src/Config.ts +1 -1
  536. package/src/ConfigProvider.ts +6 -6
  537. package/src/Console.ts +44 -48
  538. package/src/Context.ts +52 -30
  539. package/src/Data.ts +38 -61
  540. package/src/Deferred.ts +39 -41
  541. package/src/Effect.ts +1187 -1206
  542. package/src/Effectable.ts +8 -8
  543. package/src/Either.ts +2 -3
  544. package/src/Exit.ts +88 -105
  545. package/src/Fiber.ts +77 -83
  546. package/src/FiberMap.ts +77 -77
  547. package/src/FiberRef.ts +28 -28
  548. package/src/FiberRefs.ts +1 -1
  549. package/src/FiberSet.ts +61 -62
  550. package/src/GroupBy.ts +8 -12
  551. package/src/KeyedPool.ts +22 -22
  552. package/src/Layer.ts +187 -181
  553. package/src/LogLevel.ts +7 -6
  554. package/src/Logger.ts +18 -18
  555. package/src/MergeDecision.ts +7 -7
  556. package/src/MergeState.ts +16 -16
  557. package/src/Metric.ts +39 -39
  558. package/src/MetricPolling.ts +6 -6
  559. package/src/Number.ts +19 -0
  560. package/src/Option.ts +2 -3
  561. package/src/Pool.ts +15 -16
  562. package/src/PubSub.ts +18 -18
  563. package/src/Queue.ts +43 -46
  564. package/src/Random.ts +13 -15
  565. package/src/RateLimiter.ts +37 -0
  566. package/src/ReadonlyRecord.ts +49 -8
  567. package/src/Ref.ts +25 -25
  568. package/src/Reloadable.ts +10 -10
  569. package/src/Request.ts +31 -31
  570. package/src/RequestBlock.ts +3 -3
  571. package/src/RequestResolver.ts +21 -21
  572. package/src/Resource.ts +13 -13
  573. package/src/Runtime.ts +16 -19
  574. package/src/RuntimeFlags.ts +10 -10
  575. package/src/STM.ts +361 -362
  576. package/src/Schedule.ts +19 -19
  577. package/src/Scheduler.ts +2 -2
  578. package/src/Scope.ts +14 -15
  579. package/src/ScopedCache.ts +14 -14
  580. package/src/ScopedRef.ts +7 -7
  581. package/src/SingleProducerAsyncInput.ts +8 -9
  582. package/src/Sink.ts +357 -381
  583. package/src/Stream.ts +935 -1033
  584. package/src/StreamEmit.ts +5 -5
  585. package/src/Streamable.ts +2 -2
  586. package/src/SubscriptionRef.ts +51 -51
  587. package/src/Supervisor.ts +26 -26
  588. package/src/SynchronizedRef.ts +44 -44
  589. package/src/TArray.ts +74 -74
  590. package/src/TDeferred.ts +14 -14
  591. package/src/TMap.ts +72 -72
  592. package/src/TPriorityQueue.ts +23 -24
  593. package/src/TPubSub.ts +15 -15
  594. package/src/TQueue.ts +40 -40
  595. package/src/TRandom.ts +13 -13
  596. package/src/TReentrantLock.ts +21 -21
  597. package/src/TRef.ts +25 -25
  598. package/src/TSemaphore.ts +15 -15
  599. package/src/TSet.ts +49 -49
  600. package/src/Take.ts +51 -51
  601. package/src/TestAnnotation.ts +6 -17
  602. package/src/TestAnnotations.ts +7 -9
  603. package/src/TestClock.ts +39 -45
  604. package/src/TestConfig.ts +1 -3
  605. package/src/TestContext.ts +3 -3
  606. package/src/TestLive.ts +3 -5
  607. package/src/TestServices.ts +45 -47
  608. package/src/TestSized.ts +5 -5
  609. package/src/Tracer.ts +1 -1
  610. package/src/Utils.ts +8 -10
  611. package/src/index.ts +13 -2
  612. package/src/internal/blockedRequests.ts +2 -2
  613. package/src/internal/cache.ts +38 -38
  614. package/src/internal/channel/channelExecutor.ts +65 -73
  615. package/src/internal/channel/channelState.ts +11 -11
  616. package/src/internal/channel/continuation.ts +10 -10
  617. package/src/internal/channel/mergeDecision.ts +14 -16
  618. package/src/internal/channel/mergeState.ts +12 -12
  619. package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
  620. package/src/internal/channel/subexecutor.ts +7 -7
  621. package/src/internal/channel.ts +901 -980
  622. package/src/internal/clock.ts +6 -6
  623. package/src/internal/concurrency.ts +9 -9
  624. package/src/internal/configProvider.ts +29 -36
  625. package/src/internal/console.ts +12 -12
  626. package/src/internal/context.ts +32 -23
  627. package/src/internal/core-effect.ts +655 -616
  628. package/src/internal/core-stream.ts +317 -325
  629. package/src/internal/core.ts +856 -790
  630. package/src/internal/data.ts +2 -3
  631. package/src/internal/dataSource.ts +14 -14
  632. package/src/internal/defaultServices/console.ts +3 -1
  633. package/src/internal/defaultServices.ts +21 -21
  634. package/src/internal/deferred.ts +9 -9
  635. package/src/internal/differ/contextPatch.ts +17 -17
  636. package/src/internal/effect/circular.ts +154 -159
  637. package/src/internal/effectable.ts +7 -7
  638. package/src/internal/fiber.ts +55 -59
  639. package/src/internal/fiberRefs.ts +1 -1
  640. package/src/internal/fiberRuntime.ts +426 -463
  641. package/src/internal/groupBy.ts +59 -62
  642. package/src/internal/keyedPool.ts +37 -37
  643. package/src/internal/layer/circular.ts +37 -37
  644. package/src/internal/layer.ts +235 -240
  645. package/src/internal/logSpan.ts +3 -5
  646. package/src/internal/metric/polling.ts +5 -5
  647. package/src/internal/metric.ts +54 -55
  648. package/src/internal/pool.ts +72 -72
  649. package/src/internal/pubsub.ts +75 -84
  650. package/src/internal/query.ts +25 -27
  651. package/src/internal/queue.ts +65 -70
  652. package/src/internal/random.ts +9 -9
  653. package/src/internal/rateLimiter.ts +30 -0
  654. package/src/internal/ref.ts +24 -24
  655. package/src/internal/reloadable.ts +11 -31
  656. package/src/internal/request.ts +14 -14
  657. package/src/internal/resource.ts +8 -8
  658. package/src/internal/runtime.ts +21 -22
  659. package/src/internal/schedule.ts +131 -134
  660. package/src/internal/scopedCache.ts +35 -32
  661. package/src/internal/scopedRef.ts +14 -14
  662. package/src/internal/sink.ts +507 -565
  663. package/src/internal/stm/core.ts +101 -102
  664. package/src/internal/stm/stm/stmState.ts +10 -10
  665. package/src/internal/stm/stm/tExit.ts +18 -18
  666. package/src/internal/stm/stm/tryCommit.ts +5 -5
  667. package/src/internal/stm/stm.ts +363 -374
  668. package/src/internal/stm/tArray.ts +92 -92
  669. package/src/internal/stm/tDeferred.ts +16 -14
  670. package/src/internal/stm/tMap.ts +83 -84
  671. package/src/internal/stm/tPriorityQueue.ts +24 -25
  672. package/src/internal/stm/tPubSub.ts +37 -38
  673. package/src/internal/stm/tQueue.ts +44 -48
  674. package/src/internal/stm/tRandom.ts +18 -18
  675. package/src/internal/stm/tReentrantLock.ts +28 -28
  676. package/src/internal/stm/tRef.ts +25 -25
  677. package/src/internal/stm/tSemaphore.ts +16 -16
  678. package/src/internal/stm/tSet.ts +51 -52
  679. package/src/internal/stream/debounceState.ts +7 -7
  680. package/src/internal/stream/emit.ts +4 -4
  681. package/src/internal/stream/handoff.ts +19 -19
  682. package/src/internal/stream/handoffSignal.ts +4 -4
  683. package/src/internal/stream/pull.ts +10 -11
  684. package/src/internal/stream.ts +1770 -1788
  685. package/src/internal/subscriptionRef.ts +17 -17
  686. package/src/internal/supervisor.ts +49 -56
  687. package/src/internal/synchronizedRef.ts +27 -27
  688. package/src/internal/take.ts +61 -61
  689. package/src/internal/testing/sleep.ts +2 -2
  690. package/src/internal/testing/suspendedWarningData.ts +2 -2
  691. package/src/internal/testing/warningData.ts +2 -2
  692. package/src/internal/tracer.ts +2 -6
  693. package/src/internal/version.ts +1 -1
@@ -65,9 +65,9 @@ export interface FromEffect extends
65
65
  export interface Read extends
66
66
  Op<OpCodes.OP_READ, {
67
67
  readonly upstream: ErasedExecutor<unknown>
68
- onEffect(effect: Effect.Effect<unknown, never, void>): Effect.Effect<unknown, never, void>
69
- onEmit(value: unknown): Effect.Effect<unknown, never, void>
70
- onDone(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, void>
68
+ onEffect(effect: Effect.Effect<void, never, unknown>): Effect.Effect<void, never, unknown>
69
+ onEmit(value: unknown): Effect.Effect<void, never, unknown>
70
+ onDone(exit: Exit.Exit<unknown, unknown>): Effect.Effect<void, never, unknown>
71
71
  }>
72
72
  {}
73
73
 
@@ -86,7 +86,7 @@ export const Emit = (): ChannelState<never, never> => {
86
86
  }
87
87
 
88
88
  /** @internal */
89
- export const FromEffect = <R, E, _>(effect: Effect.Effect<R, E, _>): ChannelState<R, E> => {
89
+ export const FromEffect = <R, E, _>(effect: Effect.Effect<_, E, R>): ChannelState<R, E> => {
90
90
  const op = Object.create(proto)
91
91
  op._tag = OpCodes.OP_FROM_EFFECT
92
92
  op.effect = effect
@@ -96,9 +96,9 @@ export const FromEffect = <R, E, _>(effect: Effect.Effect<R, E, _>): ChannelStat
96
96
  /** @internal */
97
97
  export const Read = <R>(
98
98
  upstream: ErasedExecutor<R>,
99
- onEffect: (effect: Effect.Effect<R, never, void>) => Effect.Effect<R, never, void>,
100
- onEmit: (value: unknown) => Effect.Effect<R, never, void> | undefined,
101
- onDone: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R, never, void> | undefined
99
+ onEffect: (effect: Effect.Effect<void, never, R>) => Effect.Effect<void, never, R>,
100
+ onEmit: (value: unknown) => Effect.Effect<void, never, R> | undefined,
101
+ onDone: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void, never, R> | undefined
102
102
  ): ChannelState<R, never> => {
103
103
  const op = Object.create(proto)
104
104
  op._tag = OpCodes.OP_READ
@@ -126,9 +126,9 @@ export const isFromEffect = <R, E>(self: ChannelState<R, E>): self is FromEffect
126
126
  export const isRead = <R, E>(self: ChannelState<R, E>): self is Read => (self as Primitive)._tag === OpCodes.OP_READ
127
127
 
128
128
  /** @internal */
129
- export const effect = <R, E>(self: ChannelState<R, E>): Effect.Effect<R, E, void> =>
130
- isFromEffect(self) ? self.effect as Effect.Effect<R, E, void> : Effect.unit
129
+ export const effect = <R, E>(self: ChannelState<R, E>): Effect.Effect<void, E, R> =>
130
+ isFromEffect(self) ? self.effect as Effect.Effect<void, E, R> : Effect.unit
131
131
 
132
132
  /** @internal */
133
- export const effectOrUndefinedIgnored = <R, E>(self: ChannelState<R, E>): Effect.Effect<R, E, void> | undefined =>
134
- isFromEffect(self) ? Effect.ignore(self.effect as Effect.Effect<R, E, void>) : undefined
133
+ export const effectOrUndefinedIgnored = <R, E>(self: ChannelState<R, E>): Effect.Effect<void, E, R> | undefined =>
134
+ isFromEffect(self) ? Effect.ignore(self.effect as Effect.Effect<void, E, R>) : undefined
@@ -98,13 +98,13 @@ export interface ContinuationK<
98
98
  readonly _tag: OpCodes.OP_CONTINUATION_K
99
99
  onSuccess(
100
100
  o: OutDone
101
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone2>
101
+ ): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env>
102
102
  onHalt(
103
103
  c: Cause.Cause<OutErr>
104
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone2>
104
+ ): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env>
105
105
  onExit(
106
- exit: Exit.Exit<OutErr, OutDone>
107
- ): Channel.Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone2>
106
+ exit: Exit.Exit<OutDone, OutErr>
107
+ ): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env>
108
108
  }
109
109
 
110
110
  /** @internal */
@@ -122,7 +122,7 @@ export interface ContinuationFinalizer<out Env, out OutErr, out OutDone> extends
122
122
  >
123
123
  {
124
124
  readonly _tag: OpCodes.OP_CONTINUATION_FINALIZER
125
- finalizer(exit: Exit.Exit<OutErr, OutDone>): Effect.Effect<Env, never, unknown>
125
+ finalizer(exit: Exit.Exit<OutErr, OutDone>): Effect.Effect<unknown, never, Env>
126
126
  }
127
127
 
128
128
  const continuationVariance = {
@@ -176,15 +176,15 @@ export class ContinuationKImpl<
176
176
  constructor(
177
177
  readonly onSuccess: (
178
178
  o: OutDone
179
- ) => Channel.Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone2>,
179
+ ) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env>,
180
180
  readonly onHalt: (
181
181
  c: Cause.Cause<OutErr>
182
- ) => Channel.Channel<Env2, InErr, InElem, InDone, OutErr2, OutElem, OutDone2>
182
+ ) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env2>
183
183
  ) {
184
184
  }
185
185
  onExit(
186
- exit: Exit.Exit<OutErr, OutDone>
187
- ): Channel.Channel<Env | Env2, InErr, InElem, InDone, OutErr2, OutElem, OutDone2> {
186
+ exit: Exit.Exit<OutDone, OutErr>
187
+ ): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone2, InDone, Env | Env2> {
188
188
  return Exit.isFailure(exit) ? this.onHalt(exit.cause) : this.onSuccess(exit.value)
189
189
  }
190
190
  }
@@ -195,6 +195,6 @@ export class ContinuationFinalizerImpl<out Env, in out OutErr, in out OutDone>
195
195
  {
196
196
  readonly _tag = OpCodes.OP_CONTINUATION_FINALIZER
197
197
  readonly [ContinuationTypeId] = continuationVariance
198
- constructor(readonly finalizer: (exit: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env, never, unknown>) {
198
+ constructor(readonly finalizer: (exit: Exit.Exit<OutErr, OutDone>) => Effect.Effect<unknown, never, Env>) {
199
199
  }
200
200
  }
@@ -40,20 +40,20 @@ export type Op<Tag extends string, Body = {}> =
40
40
  /** @internal */
41
41
  export interface Done extends
42
42
  Op<OpCodes.OP_DONE, {
43
- readonly effect: Effect.Effect<never, never, never>
43
+ readonly effect: Effect.Effect<never>
44
44
  }>
45
45
  {}
46
46
 
47
47
  /** @internal */
48
48
  export interface Await extends
49
49
  Op<OpCodes.OP_AWAIT, {
50
- f(exit: Exit.Exit<unknown, unknown>): Effect.Effect<never, never, never>
50
+ f(exit: Exit.Exit<unknown, unknown>): Effect.Effect<never>
51
51
  }>
52
52
  {}
53
53
 
54
54
  /** @internal */
55
- export const Done = <R, E, Z>(
56
- effect: Effect.Effect<R, E, Z>
55
+ export const Done = <Z, E, R>(
56
+ effect: Effect.Effect<Z, E, R>
57
57
  ): MergeDecision.MergeDecision<R, unknown, unknown, E, Z> => {
58
58
  const op = Object.create(proto)
59
59
  op._tag = OpCodes.OP_DONE
@@ -63,7 +63,7 @@ export const Done = <R, E, Z>(
63
63
 
64
64
  /** @internal */
65
65
  export const Await = <R, E0, Z0, E, Z>(
66
- f: (exit: Exit.Exit<E0, Z0>) => Effect.Effect<R, E, Z>
66
+ f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>
67
67
  ): MergeDecision.MergeDecision<R, E0, Z0, E, Z> => {
68
68
  const op = Object.create(proto)
69
69
  op._tag = OpCodes.OP_AWAIT
@@ -73,7 +73,7 @@ export const Await = <R, E0, Z0, E, Z>(
73
73
 
74
74
  /** @internal */
75
75
  export const AwaitConst = <R, E, Z>(
76
- effect: Effect.Effect<R, E, Z>
76
+ effect: Effect.Effect<Z, E, R>
77
77
  ): MergeDecision.MergeDecision<R, unknown, unknown, E, Z> => Await(() => effect)
78
78
 
79
79
  /** @internal */
@@ -85,31 +85,29 @@ export const isMergeDecision = (
85
85
  export const match = dual<
86
86
  <R, E0, Z0, E, Z, Z2>(
87
87
  options: {
88
- readonly onDone: (effect: Effect.Effect<R, E, Z>) => Z2
89
- readonly onAwait: (f: (exit: Exit.Exit<E0, Z0>) => Effect.Effect<R, E, Z>) => Z2
88
+ readonly onDone: (effect: Effect.Effect<Z, E, R>) => Z2
89
+ readonly onAwait: (f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => Z2
90
90
  }
91
91
  ) => (self: MergeDecision.MergeDecision<R, E0, Z0, E, Z>) => Z2,
92
92
  <R, E0, Z0, E, Z, Z2>(
93
93
  self: MergeDecision.MergeDecision<R, E0, Z0, E, Z>,
94
94
  options: {
95
- readonly onDone: (effect: Effect.Effect<R, E, Z>) => Z2
96
- readonly onAwait: (f: (exit: Exit.Exit<E0, Z0>) => Effect.Effect<R, E, Z>) => Z2
95
+ readonly onDone: (effect: Effect.Effect<Z, E, R>) => Z2
96
+ readonly onAwait: (f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => Z2
97
97
  }
98
98
  ) => Z2
99
99
  >(2, <R, E0, Z0, E, Z, Z2>(
100
100
  self: MergeDecision.MergeDecision<R, E0, Z0, E, Z>,
101
101
  { onAwait, onDone }: {
102
- readonly onDone: (effect: Effect.Effect<R, E, Z>) => Z2
103
- readonly onAwait: (f: (exit: Exit.Exit<E0, Z0>) => Effect.Effect<R, E, Z>) => Z2
102
+ readonly onDone: (effect: Effect.Effect<Z, E, R>) => Z2
103
+ readonly onAwait: (f: (exit: Exit.Exit<Z0, E0>) => Effect.Effect<Z, E, R>) => Z2
104
104
  }
105
105
  ): Z2 => {
106
106
  const op = self as Primitive
107
107
  switch (op._tag) {
108
- case OpCodes.OP_DONE: {
108
+ case OpCodes.OP_DONE:
109
109
  return onDone(op.effect)
110
- }
111
- case OpCodes.OP_AWAIT: {
110
+ case OpCodes.OP_AWAIT:
112
111
  return onAwait(op.f)
113
- }
114
112
  }
115
113
  })
@@ -22,8 +22,8 @@ const proto = {
22
22
 
23
23
  /** @internal */
24
24
  export const BothRunning = <Env, Err, Err1, Err2, Elem, Done, Done1, Done2>(
25
- left: Fiber.Fiber<Err, Either.Either<Done, Elem>>,
26
- right: Fiber.Fiber<Err1, Either.Either<Done1, Elem>>
25
+ left: Fiber.Fiber<Either.Either<Done, Elem>, Err>,
26
+ right: Fiber.Fiber<Either.Either<Done1, Elem>, Err1>
27
27
  ): MergeState.MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> => {
28
28
  const op = Object.create(proto)
29
29
  op._tag = OpCodes.OP_BOTH_RUNNING
@@ -34,7 +34,7 @@ export const BothRunning = <Env, Err, Err1, Err2, Elem, Done, Done1, Done2>(
34
34
 
35
35
  /** @internal */
36
36
  export const LeftDone = <Env, Err, Err1, Err2, Elem, Done, Done1, Done2>(
37
- f: (exit: Exit.Exit<Err1, Done1>) => Effect.Effect<Env, Err2, Done2>
37
+ f: (exit: Exit.Exit<Done1, Err1>) => Effect.Effect<Done2, Err2, Env>
38
38
  ): MergeState.MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> => {
39
39
  const op = Object.create(proto)
40
40
  op._tag = OpCodes.OP_LEFT_DONE
@@ -44,7 +44,7 @@ export const LeftDone = <Env, Err, Err1, Err2, Elem, Done, Done1, Done2>(
44
44
 
45
45
  /** @internal */
46
46
  export const RightDone = <Env, Err, Err1, Err2, Elem, Done, Done1, Done2>(
47
- f: (exit: Exit.Exit<Err, Done>) => Effect.Effect<Env, Err2, Done2>
47
+ f: (exit: Exit.Exit<Done, Err>) => Effect.Effect<Done2, Err2, Env>
48
48
  ): MergeState.MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2> => {
49
49
  const op = Object.create(proto)
50
50
  op._tag = OpCodes.OP_RIGHT_DONE
@@ -84,22 +84,22 @@ export const match = dual<
84
84
  <Env, Err, Err1, Err2, Elem, Done, Done1, Done2, Z>(
85
85
  options: {
86
86
  readonly onBothRunning: (
87
- left: Fiber.Fiber<Err, Either.Either<Done, Elem>>,
88
- right: Fiber.Fiber<Err1, Either.Either<Done1, Elem>>
87
+ left: Fiber.Fiber<Either.Either<Done, Elem>, Err>,
88
+ right: Fiber.Fiber<Either.Either<Done1, Elem>, Err1>
89
89
  ) => Z
90
- readonly onLeftDone: (f: (exit: Exit.Exit<Err1, Done1>) => Effect.Effect<Env, Err2, Done2>) => Z
91
- readonly onRightDone: (f: (exit: Exit.Exit<Err, Done>) => Effect.Effect<Env, Err2, Done2>) => Z
90
+ readonly onLeftDone: (f: (exit: Exit.Exit<Done1, Err1>) => Effect.Effect<Done2, Err2, Env>) => Z
91
+ readonly onRightDone: (f: (exit: Exit.Exit<Done, Err>) => Effect.Effect<Done2, Err2, Env>) => Z
92
92
  }
93
93
  ) => (self: MergeState.MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2>) => Z,
94
94
  <Env, Err, Err1, Err2, Elem, Done, Done1, Done2, Z>(
95
95
  self: MergeState.MergeState<Env, Err, Err1, Err2, Elem, Done, Done1, Done2>,
96
96
  options: {
97
97
  readonly onBothRunning: (
98
- left: Fiber.Fiber<Err, Either.Either<Done, Elem>>,
99
- right: Fiber.Fiber<Err1, Either.Either<Done1, Elem>>
98
+ left: Fiber.Fiber<Either.Either<Done, Elem>, Err>,
99
+ right: Fiber.Fiber<Either.Either<Done1, Elem>, Err1>
100
100
  ) => Z
101
- readonly onLeftDone: (f: (exit: Exit.Exit<Err1, Done1>) => Effect.Effect<Env, Err2, Done2>) => Z
102
- readonly onRightDone: (f: (exit: Exit.Exit<Err, Done>) => Effect.Effect<Env, Err2, Done2>) => Z
101
+ readonly onLeftDone: (f: (exit: Exit.Exit<Done1, Err1>) => Effect.Effect<Done2, Err2, Env>) => Z
102
+ readonly onRightDone: (f: (exit: Exit.Exit<Done, Err>) => Effect.Effect<Done2, Err2, Env>) => Z
103
103
  }
104
104
  ) => Z
105
105
  >(2, (
@@ -41,13 +41,13 @@ type OP_STATE_DONE = typeof OP_STATE_DONE
41
41
  /** @internal */
42
42
  interface Empty {
43
43
  readonly _tag: OP_STATE_EMPTY
44
- readonly notifyProducer: Deferred.Deferred<never, void>
44
+ readonly notifyProducer: Deferred.Deferred<void>
45
45
  }
46
46
 
47
47
  /** @internal */
48
48
  interface Emit<Err, Elem, Done> {
49
49
  readonly _tag: OP_STATE_EMIT
50
- readonly notifyConsumers: ReadonlyArray<Deferred.Deferred<Err, Either.Either<Done, Elem>>>
50
+ readonly notifyConsumers: ReadonlyArray<Deferred.Deferred<Either.Either<Done, Elem>, Err>>
51
51
  }
52
52
 
53
53
  /** @internal */
@@ -63,14 +63,14 @@ interface Done<_Done> {
63
63
  }
64
64
 
65
65
  /** @internal */
66
- const stateEmpty = (notifyProducer: Deferred.Deferred<never, void>): State<never, never, never> => ({
66
+ const stateEmpty = (notifyProducer: Deferred.Deferred<void>): State<never, never, never> => ({
67
67
  _tag: OP_STATE_EMPTY,
68
68
  notifyProducer
69
69
  })
70
70
 
71
71
  /** @internal */
72
72
  const stateEmit = <Err, Elem, Done>(
73
- notifyConsumers: ReadonlyArray<Deferred.Deferred<Err, Either.Either<Done, Elem>>>
73
+ notifyConsumers: ReadonlyArray<Deferred.Deferred<Either.Either<Done, Elem>, Err>>
74
74
  ): State<Err, Elem, Done> => ({
75
75
  _tag: OP_STATE_EMIT,
76
76
  notifyConsumers
@@ -95,7 +95,7 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
95
95
  constructor(readonly ref: Ref.Ref<State<Err, Elem, Done>>) {
96
96
  }
97
97
 
98
- awaitRead(): Effect.Effect<never, never, unknown> {
98
+ awaitRead(): Effect.Effect<unknown> {
99
99
  return Effect.flatten(
100
100
  Ref.modify(this.ref, (state) =>
101
101
  state._tag === OP_STATE_EMPTY ?
@@ -104,11 +104,11 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
104
104
  )
105
105
  }
106
106
 
107
- get close(): Effect.Effect<never, never, unknown> {
107
+ get close(): Effect.Effect<unknown> {
108
108
  return Effect.fiberIdWith((fiberId) => this.error(Cause.interrupt(fiberId)))
109
109
  }
110
110
 
111
- done(value: Done): Effect.Effect<never, never, unknown> {
111
+ done(value: Done): Effect.Effect<unknown> {
112
112
  return Effect.flatten(
113
113
  Ref.modify(this.ref, (state) => {
114
114
  switch (state._tag) {
@@ -136,8 +136,8 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
136
136
  )
137
137
  }
138
138
 
139
- emit(element: Elem): Effect.Effect<never, never, unknown> {
140
- return Effect.flatMap(Deferred.make<never, void>(), (deferred) =>
139
+ emit(element: Elem): Effect.Effect<unknown> {
140
+ return Effect.flatMap(Deferred.make<void>(), (deferred) =>
141
141
  Effect.flatten(
142
142
  Ref.modify(this.ref, (state) => {
143
143
  switch (state._tag) {
@@ -170,7 +170,7 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
170
170
  ))
171
171
  }
172
172
 
173
- error(cause: Cause.Cause<Err>): Effect.Effect<never, never, unknown> {
173
+ error(cause: Cause.Cause<Err>): Effect.Effect<unknown> {
174
174
  return Effect.flatten(
175
175
  Ref.modify(this.ref, (state) => {
176
176
  switch (state._tag) {
@@ -198,10 +198,10 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
198
198
  )
199
199
  }
200
200
 
201
- get take(): Effect.Effect<never, never, Exit.Exit<Either.Either<Err, Done>, Elem>> {
201
+ get take(): Effect.Effect<Exit.Exit<Elem, Either.Either<Err, Done>>> {
202
202
  return this.takeWith(
203
203
  (cause) => Exit.failCause(Cause.map(cause, Either.left)),
204
- (elem) => Exit.succeed(elem) as Exit.Exit<Either.Either<Err, Done>, Elem>,
204
+ (elem) => Exit.succeed(elem) as Exit.Exit<Elem, Either.Either<Err, Done>>,
205
205
  (done) => Exit.fail(Either.right(done))
206
206
  )
207
207
  }
@@ -210,8 +210,8 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
210
210
  onError: (cause: Cause.Cause<Err>) => A,
211
211
  onElement: (element: Elem) => A,
212
212
  onDone: (value: Done) => A
213
- ): Effect.Effect<never, never, A> {
214
- return Effect.flatMap(Deferred.make<Err, Either.Either<Done, Elem>>(), (deferred) =>
213
+ ): Effect.Effect<A> {
214
+ return Effect.flatMap(Deferred.make<Either.Either<Done, Elem>, Err>(), (deferred) =>
215
215
  Effect.flatten(
216
216
  Ref.modify(this.ref, (state) => {
217
217
  switch (state._tag) {
@@ -250,12 +250,10 @@ class SingleProducerAsyncInputImpl<in out Err, in out Elem, in out Done>
250
250
 
251
251
  /** @internal */
252
252
  export const make = <Err, Elem, Done>(): Effect.Effect<
253
- never,
254
- never,
255
253
  SingleProducerAsyncInput.SingleProducerAsyncInput<Err, Elem, Done>
256
254
  > =>
257
255
  pipe(
258
- Deferred.make<never, void>(),
256
+ Deferred.make<void>(),
259
257
  Effect.flatMap((deferred) => Ref.make(stateEmpty(deferred) as State<Err, Elem, Done>)),
260
258
  Effect.map((ref) => new SingleProducerAsyncInputImpl(ref))
261
259
  )
@@ -8,7 +8,7 @@ import type { ErasedChannel, ErasedExecutor } from "./channelExecutor.js"
8
8
 
9
9
  /** @internal */
10
10
  export interface Subexecutor<in out R> {
11
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<R, never, unknown> | undefined
11
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, R> | undefined
12
12
  enqueuePullFromChild(child: PullFromChild<R>): Subexecutor<R>
13
13
  }
14
14
 
@@ -55,7 +55,7 @@ export class PullFromChild<in out R> implements Subexecutor<R> {
55
55
  ) {
56
56
  }
57
57
 
58
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<R, never, unknown> | undefined {
58
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, R> | undefined {
59
59
  const fin1 = this.childExecutor.close(exit)
60
60
  const fin2 = this.parentSubexecutor.close(exit)
61
61
  if (fin1 !== undefined && fin2 !== undefined) {
@@ -101,7 +101,7 @@ export class PullFromUpstream<in out R> implements Subexecutor<R> {
101
101
  ) {
102
102
  }
103
103
 
104
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<R, never, unknown> | undefined {
104
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, R> | undefined {
105
105
  const fin1 = this.upstreamExecutor.close(exit)
106
106
  const fins = [
107
107
  ...this.activeChildExecutors.map((child) =>
@@ -112,7 +112,7 @@ export class PullFromUpstream<in out R> implements Subexecutor<R> {
112
112
  fin1
113
113
  ]
114
114
  const result = fins.reduce(
115
- (acc: Effect.Effect<R, never, Exit.Exit<unknown, unknown>> | undefined, next) => {
115
+ (acc: Effect.Effect<Exit.Exit<unknown, unknown>, never, R> | undefined, next) => {
116
116
  if (acc !== undefined && next !== undefined) {
117
117
  return Effect.zipWith(
118
118
  acc,
@@ -168,7 +168,7 @@ export class DrainChildExecutors<in out R> implements Subexecutor<R> {
168
168
  ) {
169
169
  }
170
170
 
171
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<R, never, unknown> | undefined {
171
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, R> | undefined {
172
172
  const fin1 = this.upstreamExecutor.close(exit)
173
173
  const fins = [
174
174
  ...this.activeChildExecutors.map((child) => (child !== undefined ?
@@ -178,7 +178,7 @@ export class DrainChildExecutors<in out R> implements Subexecutor<R> {
178
178
  fin1
179
179
  ]
180
180
  const result = fins.reduce(
181
- (acc: Effect.Effect<R, never, Exit.Exit<unknown, unknown>> | undefined, next) => {
181
+ (acc: Effect.Effect<Exit.Exit<unknown, unknown>, never, R> | undefined, next) => {
182
182
  if (acc !== undefined && next !== undefined) {
183
183
  return Effect.zipWith(
184
184
  acc,
@@ -218,7 +218,7 @@ export class Emit<in out R> implements Subexecutor<R> {
218
218
  constructor(readonly value: unknown, readonly next: Subexecutor<R>) {
219
219
  }
220
220
 
221
- close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<R, never, unknown> | undefined {
221
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<unknown, never, R> | undefined {
222
222
  const result = this.next.close(exit)
223
223
  return result === undefined ? result : result
224
224
  }