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
@@ -46,27 +46,27 @@ export const isGroupBy = (u: unknown): u is GroupBy.GroupBy<unknown, unknown, un
46
46
  /** @internal */
47
47
  export const evaluate = dual<
48
48
  <K, E, V, R2, E2, A>(
49
- f: (key: K, stream: Stream.Stream<never, E, V>) => Stream.Stream<R2, E2, A>,
49
+ f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
50
50
  options?: {
51
51
  readonly bufferSize?: number | undefined
52
52
  }
53
- ) => <R>(self: GroupBy.GroupBy<R, E, K, V>) => Stream.Stream<R2 | R, E | E2, A>,
53
+ ) => <R>(self: GroupBy.GroupBy<R, E, K, V>) => Stream.Stream<A, E | E2, R2 | R>,
54
54
  <R, K, E, V, R2, E2, A>(
55
55
  self: GroupBy.GroupBy<R, E, K, V>,
56
- f: (key: K, stream: Stream.Stream<never, E, V>) => Stream.Stream<R2, E2, A>,
56
+ f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
57
57
  options?: {
58
58
  readonly bufferSize?: number | undefined
59
59
  }
60
- ) => Stream.Stream<R2 | R, E | E2, A>
60
+ ) => Stream.Stream<A, E | E2, R2 | R>
61
61
  >(
62
62
  (args) => isGroupBy(args[0]),
63
63
  <R, K, E, V, R2, E2, A>(
64
64
  self: GroupBy.GroupBy<R, E, K, V>,
65
- f: (key: K, stream: Stream.Stream<never, E, V>) => Stream.Stream<R2, E2, A>,
65
+ f: (key: K, stream: Stream.Stream<V, E>) => Stream.Stream<A, E2, R2>,
66
66
  options?: {
67
67
  readonly bufferSize?: number | undefined
68
68
  }
69
- ): Stream.Stream<R | R2, E | E2, A> =>
69
+ ): Stream.Stream<A, E | E2, R2 | R> =>
70
70
  stream.flatMap(
71
71
  self.grouped,
72
72
  ([key, queue]) => f(key, stream.flattenTake(stream.fromQueue(queue, { shutdown: true }))),
@@ -113,7 +113,7 @@ export const first = dual<
113
113
 
114
114
  /** @internal */
115
115
  export const make = <R, E, K, V>(
116
- grouped: Stream.Stream<R, E, readonly [K, Queue.Dequeue<Take.Take<E, V>>]>
116
+ grouped: Stream.Stream<readonly [K, Queue.Dequeue<Take.Take<V, E>>], E, R>
117
117
  ): GroupBy.GroupBy<R, E, K, V> => ({
118
118
  [GroupByTypeId]: groupByVariance,
119
119
  pipe() {
@@ -127,14 +127,14 @@ export const make = <R, E, K, V>(
127
127
  /** @internal */
128
128
  export const groupBy = dual<
129
129
  <A, R2, E2, K, V>(
130
- f: (a: A) => Effect.Effect<R2, E2, readonly [K, V]>,
130
+ f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
131
131
  options?: {
132
132
  readonly bufferSize?: number | undefined
133
133
  }
134
- ) => <R, E>(self: Stream.Stream<R, E, A>) => GroupBy.GroupBy<R2 | R, E2 | E, K, V>,
134
+ ) => <R, E>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<R2 | R, E2 | E, K, V>,
135
135
  <R, E, A, R2, E2, K, V>(
136
- self: Stream.Stream<R, E, A>,
137
- f: (a: A) => Effect.Effect<R2, E2, readonly [K, V]>,
136
+ self: Stream.Stream<A, E, R>,
137
+ f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
138
138
  options?: {
139
139
  readonly bufferSize?: number | undefined
140
140
  }
@@ -142,8 +142,8 @@ export const groupBy = dual<
142
142
  >(
143
143
  (args) => stream.isStream(args[0]),
144
144
  <R, E, A, R2, E2, K, V>(
145
- self: Stream.Stream<R, E, A>,
146
- f: (a: A) => Effect.Effect<R2, E2, readonly [K, V]>,
145
+ self: Stream.Stream<A, E, R>,
146
+ f: (a: A) => Effect.Effect<readonly [K, V], E2, R2>,
147
147
  options?: {
148
148
  readonly bufferSize?: number | undefined
149
149
  }
@@ -152,13 +152,10 @@ export const groupBy = dual<
152
152
  stream.unwrapScoped(
153
153
  Effect.gen(function*($) {
154
154
  const decider = yield* $(
155
- Deferred.make<
156
- never,
157
- (key: K, value: V) => Effect.Effect<never, never, Predicate<number>>
158
- >()
155
+ Deferred.make<(key: K, value: V) => Effect.Effect<Predicate<number>>>()
159
156
  )
160
157
  const output = yield* $(Effect.acquireRelease(
161
- Queue.bounded<Exit.Exit<Option.Option<E | E2>, readonly [K, Queue.Dequeue<Take.Take<E | E2, V>>]>>(
158
+ Queue.bounded<Exit.Exit<readonly [K, Queue.Dequeue<Take.Take<V, E | E2>>], Option.Option<E | E2>>>(
162
159
  options?.bufferSize ?? 16
163
160
  ),
164
161
  (queue) => Queue.shutdown(queue)
@@ -213,50 +210,50 @@ export const groupBy = dual<
213
210
  export const mapEffectOptions = dual<
214
211
  {
215
212
  <A, R2, E2, A2>(
216
- f: (a: A) => Effect.Effect<R2, E2, A2>,
213
+ f: (a: A) => Effect.Effect<A2, E2, R2>,
217
214
  options?: {
218
215
  readonly concurrency?: number | "unbounded" | undefined
219
216
  readonly unordered?: boolean | undefined
220
217
  }
221
- ): <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R2 | R, E2 | E, A2>
218
+ ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
222
219
  <A, R2, E2, A2, K>(
223
- f: (a: A) => Effect.Effect<R2, E2, A2>,
220
+ f: (a: A) => Effect.Effect<A2, E2, R2>,
224
221
  options: {
225
222
  readonly key: (a: A) => K
226
223
  readonly bufferSize?: number | undefined
227
224
  }
228
- ): <R, E>(self: Stream.Stream<R, E, A>) => Stream.Stream<R2 | R, E2 | E, A2>
225
+ ): <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>
229
226
  },
230
227
  {
231
228
  <R, E, A, R2, E2, A2>(
232
- self: Stream.Stream<R, E, A>,
233
- f: (a: A) => Effect.Effect<R2, E2, A2>,
229
+ self: Stream.Stream<A, E, R>,
230
+ f: (a: A) => Effect.Effect<A2, E2, R2>,
234
231
  options?: {
235
232
  readonly concurrency?: number | "unbounded" | undefined
236
233
  readonly unordered?: boolean | undefined
237
234
  }
238
- ): Stream.Stream<R2 | R, E2 | E, A2>
235
+ ): Stream.Stream<A2, E2 | E, R2 | R>
239
236
  <R, E, A, R2, E2, A2, K>(
240
- self: Stream.Stream<R, E, A>,
241
- f: (a: A) => Effect.Effect<R2, E2, A2>,
237
+ self: Stream.Stream<A, E, R>,
238
+ f: (a: A) => Effect.Effect<A2, E2, R2>,
242
239
  options: {
243
240
  readonly key: (a: A) => K
244
241
  readonly bufferSize?: number | undefined
245
242
  }
246
- ): Stream.Stream<R2 | R, E2 | E, A2>
243
+ ): Stream.Stream<A2, E2 | E, R2 | R>
247
244
  }
248
245
  >(
249
246
  (args) => typeof args[0] !== "function",
250
247
  (<R, E, A, R2, E2, A2, K>(
251
- self: Stream.Stream<R, E, A>,
252
- f: (a: A) => Effect.Effect<R2, E2, A2>,
248
+ self: Stream.Stream<A, E, R>,
249
+ f: (a: A) => Effect.Effect<A2, E2, R2>,
253
250
  options?: {
254
251
  readonly key?: ((a: A) => K) | undefined
255
252
  readonly concurrency?: number | "unbounded" | undefined
256
253
  readonly unordered?: boolean | undefined
257
254
  readonly bufferSize?: number | undefined
258
255
  }
259
- ): Stream.Stream<R | R2, E | E2, A2> => {
256
+ ): Stream.Stream<A2, E2 | E, R2 | R> => {
260
257
  if (options?.key) {
261
258
  return evaluate(
262
259
  groupByKey(self, options.key, { bufferSize: options.bufferSize }),
@@ -279,33 +276,33 @@ export const mapEffectOptions = dual<
279
276
  export const bindEffect = dual<
280
277
  <N extends string, K, R2, E2, A>(
281
278
  tag: Exclude<N, keyof K>,
282
- f: (_: K) => Effect.Effect<R2, E2, A>,
279
+ f: (_: K) => Effect.Effect<A, E2, R2>,
283
280
  options?: {
284
281
  readonly concurrency?: number | "unbounded" | undefined
285
282
  readonly bufferSize?: number | undefined
286
283
  }
287
- ) => <R, E>(self: Stream.Stream<R, E, K>) => Stream.Stream<
288
- R | R2,
284
+ ) => <R, E>(self: Stream.Stream<K, E, R>) => Stream.Stream<
285
+ Effect.MergeRecord<K, { [k in N]: A }>,
289
286
  E | E2,
290
- Effect.MergeRecord<K, { [k in N]: A }>
287
+ R | R2
291
288
  >,
292
289
  <R, E, N extends string, K, R2, E2, A>(
293
- self: Stream.Stream<R, E, K>,
290
+ self: Stream.Stream<K, E, R>,
294
291
  tag: Exclude<N, keyof K>,
295
- f: (_: K) => Effect.Effect<R2, E2, A>,
292
+ f: (_: K) => Effect.Effect<A, E2, R2>,
296
293
  options?: {
297
294
  readonly concurrency?: number | "unbounded" | undefined
298
295
  readonly unordered?: boolean | undefined
299
296
  }
300
297
  ) => Stream.Stream<
301
- R | R2,
298
+ Effect.MergeRecord<K, { [k in N]: A }>,
302
299
  E | E2,
303
- Effect.MergeRecord<K, { [k in N]: A }>
300
+ R | R2
304
301
  >
305
302
  >((args) => typeof args[0] !== "string", <R, E, N extends string, K, R2, E2, A>(
306
- self: Stream.Stream<R, E, K>,
303
+ self: Stream.Stream<K, E, R>,
307
304
  tag: Exclude<N, keyof K>,
308
- f: (_: K) => Effect.Effect<R2, E2, A>,
305
+ f: (_: K) => Effect.Effect<A, E2, R2>,
309
306
  options?: {
310
307
  readonly concurrency?: number | "unbounded" | undefined
311
308
  readonly unordered?: boolean | undefined
@@ -334,7 +331,7 @@ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
334
331
  return Queue.capacity(this.dequeue)
335
332
  }
336
333
 
337
- get size(): Effect.Effect<never, never, number> {
334
+ get size(): Effect.Effect<number> {
338
335
  return Queue.size(this.dequeue)
339
336
  }
340
337
 
@@ -342,7 +339,7 @@ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
342
339
  return this.dequeue.unsafeSize()
343
340
  }
344
341
 
345
- get awaitShutdown(): Effect.Effect<never, never, void> {
342
+ get awaitShutdown(): Effect.Effect<void> {
346
343
  return Queue.awaitShutdown(this.dequeue)
347
344
  }
348
345
 
@@ -350,43 +347,43 @@ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
350
347
  return this.dequeue.isActive()
351
348
  }
352
349
 
353
- get isShutdown(): Effect.Effect<never, never, boolean> {
350
+ get isShutdown(): Effect.Effect<boolean> {
354
351
  return Queue.isShutdown(this.dequeue)
355
352
  }
356
353
 
357
- get shutdown(): Effect.Effect<never, never, void> {
354
+ get shutdown(): Effect.Effect<void> {
358
355
  return Queue.shutdown(this.dequeue)
359
356
  }
360
357
 
361
- get isFull(): Effect.Effect<never, never, boolean> {
358
+ get isFull(): Effect.Effect<boolean> {
362
359
  return Queue.isFull(this.dequeue)
363
360
  }
364
361
 
365
- get isEmpty(): Effect.Effect<never, never, boolean> {
362
+ get isEmpty(): Effect.Effect<boolean> {
366
363
  return Queue.isEmpty(this.dequeue)
367
364
  }
368
365
 
369
- get take(): Effect.Effect<never, never, B> {
366
+ get take(): Effect.Effect<B> {
370
367
  return pipe(Queue.take(this.dequeue), Effect.map((a) => this.f(a)))
371
368
  }
372
369
 
373
- get takeAll(): Effect.Effect<never, never, Chunk.Chunk<B>> {
370
+ get takeAll(): Effect.Effect<Chunk.Chunk<B>> {
374
371
  return pipe(Queue.takeAll(this.dequeue), Effect.map(Chunk.map((a) => this.f(a))))
375
372
  }
376
373
 
377
- takeUpTo(max: number): Effect.Effect<never, never, Chunk.Chunk<B>> {
374
+ takeUpTo(max: number): Effect.Effect<Chunk.Chunk<B>> {
378
375
  return pipe(Queue.takeUpTo(this.dequeue, max), Effect.map(Chunk.map((a) => this.f(a))))
379
376
  }
380
377
 
381
- takeBetween(min: number, max: number): Effect.Effect<never, never, Chunk.Chunk<B>> {
378
+ takeBetween(min: number, max: number): Effect.Effect<Chunk.Chunk<B>> {
382
379
  return pipe(Queue.takeBetween(this.dequeue, min, max), Effect.map(Chunk.map((a) => this.f(a))))
383
380
  }
384
381
 
385
- takeN(n: number): Effect.Effect<never, never, Chunk.Chunk<B>> {
382
+ takeN(n: number): Effect.Effect<Chunk.Chunk<B>> {
386
383
  return pipe(Queue.takeN(this.dequeue, n), Effect.map(Chunk.map((a) => this.f(a))))
387
384
  }
388
385
 
389
- poll(): Effect.Effect<never, never, Option.Option<B>> {
386
+ poll(): Effect.Effect<Option.Option<B>> {
390
387
  return pipe(Queue.poll(this.dequeue), Effect.map(Option.map((a) => this.f(a))))
391
388
  }
392
389
 
@@ -402,9 +399,9 @@ export const groupByKey = dual<
402
399
  options?: {
403
400
  readonly bufferSize?: number | undefined
404
401
  }
405
- ) => <R, E>(self: Stream.Stream<R, E, A>) => GroupBy.GroupBy<R, E, K, A>,
402
+ ) => <R, E>(self: Stream.Stream<A, E, R>) => GroupBy.GroupBy<R, E, K, A>,
406
403
  <R, E, A, K>(
407
- self: Stream.Stream<R, E, A>,
404
+ self: Stream.Stream<A, E, R>,
408
405
  f: (a: A) => K,
409
406
  options?: {
410
407
  readonly bufferSize?: number | undefined
@@ -413,16 +410,16 @@ export const groupByKey = dual<
413
410
  >(
414
411
  (args) => typeof args[0] !== "function",
415
412
  <R, E, A, K>(
416
- self: Stream.Stream<R, E, A>,
413
+ self: Stream.Stream<A, E, R>,
417
414
  f: (a: A) => K,
418
415
  options?: {
419
416
  readonly bufferSize?: number | undefined
420
417
  }
421
418
  ): GroupBy.GroupBy<R, E, K, A> => {
422
419
  const loop = (
423
- map: Map<K, Queue.Queue<Take.Take<E, A>>>,
424
- outerQueue: Queue.Queue<Take.Take<E, readonly [K, Queue.Queue<Take.Take<E, A>>]>>
425
- ): Channel.Channel<R, E, Chunk.Chunk<A>, unknown, E, never, unknown> =>
420
+ map: Map<K, Queue.Queue<Take.Take<A, E>>>,
421
+ outerQueue: Queue.Queue<Take.Take<readonly [K, Queue.Queue<Take.Take<A, E>>], E>>
422
+ ): Channel.Channel<never, Chunk.Chunk<A>, E, E, unknown, unknown, R> =>
426
423
  core.readWithCause({
427
424
  onInput: (input: Chunk.Chunk<A>) =>
428
425
  core.flatMap(
@@ -431,7 +428,7 @@ export const groupByKey = dual<
431
428
  const innerQueue = map.get(key)
432
429
  if (innerQueue === undefined) {
433
430
  return pipe(
434
- Queue.bounded<Take.Take<E, A>>(options?.bufferSize ?? 16),
431
+ Queue.bounded<Take.Take<A, E>>(options?.bufferSize ?? 16),
435
432
  Effect.flatMap((innerQueue) =>
436
433
  pipe(
437
434
  Effect.sync(() => {
@@ -486,11 +483,11 @@ export const groupByKey = dual<
486
483
  })
487
484
  return make(stream.unwrapScoped(
488
485
  pipe(
489
- Effect.sync(() => new Map<K, Queue.Queue<Take.Take<E, A>>>()),
486
+ Effect.sync(() => new Map<K, Queue.Queue<Take.Take<A, E>>>()),
490
487
  Effect.flatMap((map) =>
491
488
  pipe(
492
489
  Effect.acquireRelease(
493
- Queue.unbounded<Take.Take<E, readonly [K, Queue.Queue<Take.Take<E, A>>]>>(),
490
+ Queue.unbounded<Take.Take<readonly [K, Queue.Queue<Take.Take<A, E>>], E>>(),
494
491
  (queue) => Queue.shutdown(queue)
495
492
  ),
496
493
  Effect.flatMap((queue) =>
@@ -36,16 +36,16 @@ const keyedPoolVariance = {
36
36
  _A: (_: any) => _
37
37
  }
38
38
 
39
- class KeyedPoolImpl<in K, out E, in out A> implements KeyedPool.KeyedPool<K, E, A> {
39
+ class KeyedPoolImpl<in K, in out A, out E = never> implements KeyedPool.KeyedPool<K, A, E> {
40
40
  readonly [KeyedPoolTypeId] = keyedPoolVariance
41
41
  constructor(
42
- readonly getOrCreatePool: (key: K) => Effect.Effect<never, never, Pool.Pool<E, A>>,
43
- readonly activePools: Effect.Effect<never, never, Array<Pool.Pool<E, A>>>
42
+ readonly getOrCreatePool: (key: K) => Effect.Effect<Pool.Pool<A, E>>,
43
+ readonly activePools: Effect.Effect<Array<Pool.Pool<A, E>>>
44
44
  ) {}
45
- get(key: K): Effect.Effect<Scope.Scope, E, A> {
45
+ get(key: K): Effect.Effect<A, E, Scope.Scope> {
46
46
  return core.flatMap(this.getOrCreatePool(key), pool.get)
47
47
  }
48
- invalidate(item: A): Effect.Effect<never, never, void> {
48
+ invalidate(item: A): Effect.Effect<void> {
49
49
  return core.flatMap(this.activePools, core.forEachSequentialDiscard((pool) => pool.invalidate(item)))
50
50
  }
51
51
  pipe() {
@@ -53,12 +53,12 @@ class KeyedPoolImpl<in K, out E, in out A> implements KeyedPool.KeyedPool<K, E,
53
53
  }
54
54
  }
55
55
 
56
- type MapValue<E, A> = Complete<E, A> | Pending<E, A>
56
+ type MapValue<A, E> = Complete<A, E> | Pending<A, E>
57
57
 
58
- class Complete<out E, in out A> implements Equal.Equal {
58
+ class Complete<in out A, out E> implements Equal.Equal {
59
59
  readonly _tag = "Complete"
60
60
  readonly [KeyedPoolMapValueSymbol]: KeyedPoolMapValueSymbol = KeyedPoolMapValueSymbol
61
- constructor(readonly pool: Pool.Pool<E, A>) {}
61
+ constructor(readonly pool: Pool.Pool<A, E>) {}
62
62
  [Hash.symbol](): number {
63
63
  return pipe(
64
64
  Hash.string("effect/KeyedPool/Complete"),
@@ -73,10 +73,10 @@ class Complete<out E, in out A> implements Equal.Equal {
73
73
  const isComplete = (u: unknown): u is Complete<unknown, unknown> =>
74
74
  Predicate.isTagged(u, "Complete") && KeyedPoolMapValueSymbol in u
75
75
 
76
- class Pending<in out E, in out A> implements Equal.Equal {
76
+ class Pending<in out A, in out E> implements Equal.Equal {
77
77
  readonly _tag = "Pending"
78
78
  readonly [KeyedPoolMapValueSymbol]: KeyedPoolMapValueSymbol = KeyedPoolMapValueSymbol
79
- constructor(readonly deferred: Deferred.Deferred<never, Pool.Pool<E, A>>) {}
79
+ constructor(readonly deferred: Deferred.Deferred<Pool.Pool<A, E>>) {}
80
80
  [Hash.symbol](): number {
81
81
  return pipe(
82
82
  Hash.string("effect/KeyedPool/Pending"),
@@ -91,32 +91,32 @@ class Pending<in out E, in out A> implements Equal.Equal {
91
91
  const isPending = (u: unknown): u is Pending<unknown, unknown> =>
92
92
  Predicate.isTagged(u, "Pending") && KeyedPoolMapValueSymbol in u
93
93
 
94
- const makeImpl = <K, R, E, A>(
95
- get: (key: K) => Effect.Effect<R, E, A>,
94
+ const makeImpl = <K, A, E, R>(
95
+ get: (key: K) => Effect.Effect<A, E, R>,
96
96
  min: (key: K) => number,
97
97
  max: (key: K) => number,
98
98
  timeToLive: (key: K) => Option.Option<Duration.Duration>
99
- ): Effect.Effect<R | Scope.Scope, never, KeyedPool.KeyedPool<K, E, A>> =>
99
+ ): Effect.Effect<KeyedPool.KeyedPool<K, A, E>, never, R | Scope.Scope> =>
100
100
  pipe(
101
101
  fiberRuntime.all([
102
102
  core.context<R>(),
103
103
  core.fiberId,
104
- core.sync(() => MutableRef.make(HashMap.empty<K, MapValue<E, A>>())),
104
+ core.sync(() => MutableRef.make(HashMap.empty<K, MapValue<A, E>>())),
105
105
  fiberRuntime.scopeMake()
106
106
  ]),
107
107
  core.map(([context, fiberId, map, scope]) => {
108
- const getOrCreatePool = (key: K): Effect.Effect<never, never, Pool.Pool<E, A>> =>
108
+ const getOrCreatePool = (key: K): Effect.Effect<Pool.Pool<A, E>> =>
109
109
  core.suspend(() => {
110
- let value: MapValue<E, A> | undefined = Option.getOrUndefined(HashMap.get(MutableRef.get(map), key))
110
+ let value: MapValue<A, E> | undefined = Option.getOrUndefined(HashMap.get(MutableRef.get(map), key))
111
111
  if (value === undefined) {
112
112
  return core.uninterruptibleMask((restore) => {
113
- const deferred = core.deferredUnsafeMake<never, Pool.Pool<E, A>>(fiberId)
113
+ const deferred = core.deferredUnsafeMake<Pool.Pool<A, E>>(fiberId)
114
114
  value = new Pending(deferred)
115
- let previous: MapValue<E, A> | undefined = undefined
115
+ let previous: MapValue<A, E> | undefined = undefined
116
116
  if (HashMap.has(MutableRef.get(map), key)) {
117
117
  previous = Option.getOrUndefined(HashMap.get(MutableRef.get(map), key))
118
118
  } else {
119
- MutableRef.update(map, HashMap.set(key, value as MapValue<E, A>))
119
+ MutableRef.update(map, HashMap.set(key, value as MapValue<A, E>))
120
120
  }
121
121
  if (previous === undefined) {
122
122
  return pipe(
@@ -143,7 +143,7 @@ const makeImpl = <K, R, E, A>(
143
143
  )
144
144
  },
145
145
  onSuccess: (pool) => {
146
- MutableRef.update(map, HashMap.set(key, new Complete(pool) as MapValue<E, A>))
146
+ MutableRef.update(map, HashMap.set(key, new Complete(pool) as MapValue<A, E>))
147
147
  return core.as(
148
148
  core.deferredSucceed(deferred, pool),
149
149
  pool
@@ -171,7 +171,7 @@ const makeImpl = <K, R, E, A>(
171
171
  }
172
172
  }
173
173
  })
174
- const activePools: Effect.Effect<never, never, Array<Pool.Pool<E, A>>> = core.suspend(() =>
174
+ const activePools: Effect.Effect<Array<Pool.Pool<A, E>>> = core.suspend(() =>
175
175
  core.forEachSequential(Array.from(HashMap.values(MutableRef.get(map))), (value) => {
176
176
  switch (value._tag) {
177
177
  case "Complete": {
@@ -188,55 +188,55 @@ const makeImpl = <K, R, E, A>(
188
188
  )
189
189
 
190
190
  /** @internal */
191
- export const make = <K, R, E, A>(
191
+ export const make = <K, A, E, R>(
192
192
  options: {
193
- readonly acquire: (key: K) => Effect.Effect<R, E, A>
193
+ readonly acquire: (key: K) => Effect.Effect<A, E, R>
194
194
  readonly size: number
195
195
  }
196
- ): Effect.Effect<R | Scope.Scope, never, KeyedPool.KeyedPool<K, E, A>> =>
196
+ ): Effect.Effect<KeyedPool.KeyedPool<K, A, E>, never, R | Scope.Scope> =>
197
197
  makeImpl(options.acquire, () => options.size, () => options.size, () => Option.none())
198
198
 
199
199
  /** @internal */
200
- export const makeWith = <K, R, E, A>(
200
+ export const makeWith = <K, A, E, R>(
201
201
  options: {
202
- readonly acquire: (key: K) => Effect.Effect<R, E, A>
202
+ readonly acquire: (key: K) => Effect.Effect<A, E, R>
203
203
  readonly size: (key: K) => number
204
204
  }
205
- ): Effect.Effect<R | Scope.Scope, never, KeyedPool.KeyedPool<K, E, A>> =>
205
+ ): Effect.Effect<KeyedPool.KeyedPool<K, A, E>, never, R | Scope.Scope> =>
206
206
  makeImpl(options.acquire, options.size, options.size, () => Option.none())
207
207
 
208
208
  /** @internal */
209
- export const makeWithTTL = <K, R, E, A>(
209
+ export const makeWithTTL = <K, A, E, R>(
210
210
  options: {
211
- readonly acquire: (key: K) => Effect.Effect<R, E, A>
211
+ readonly acquire: (key: K) => Effect.Effect<A, E, R>
212
212
  readonly min: (key: K) => number
213
213
  readonly max: (key: K) => number
214
214
  readonly timeToLive: Duration.DurationInput
215
215
  }
216
- ): Effect.Effect<R | Scope.Scope, never, KeyedPool.KeyedPool<K, E, A>> => {
216
+ ): Effect.Effect<KeyedPool.KeyedPool<K, A, E>, never, R | Scope.Scope> => {
217
217
  const timeToLive = Duration.decode(options.timeToLive)
218
218
  return makeImpl(options.acquire, options.min, options.max, () => Option.some(timeToLive))
219
219
  }
220
220
 
221
221
  /** @internal */
222
- export const makeWithTTLBy = <K, R, E, A>(
222
+ export const makeWithTTLBy = <K, A, E, R>(
223
223
  options: {
224
- readonly acquire: (key: K) => Effect.Effect<R, E, A>
224
+ readonly acquire: (key: K) => Effect.Effect<A, E, R>
225
225
  readonly min: (key: K) => number
226
226
  readonly max: (key: K) => number
227
227
  readonly timeToLive: (key: K) => Duration.DurationInput
228
228
  }
229
- ): Effect.Effect<R | Scope.Scope, never, KeyedPool.KeyedPool<K, E, A>> =>
229
+ ): Effect.Effect<KeyedPool.KeyedPool<K, A, E>, never, R | Scope.Scope> =>
230
230
  makeImpl(options.acquire, options.min, options.max, (key) => Option.some(Duration.decode(options.timeToLive(key))))
231
231
 
232
232
  /** @internal */
233
233
  export const get = dual<
234
- <K>(key: K) => <E, A>(self: KeyedPool.KeyedPool<K, E, A>) => Effect.Effect<Scope.Scope, E, A>,
235
- <K, E, A>(self: KeyedPool.KeyedPool<K, E, A>, key: K) => Effect.Effect<Scope.Scope, E, A>
234
+ <K>(key: K) => <A, E>(self: KeyedPool.KeyedPool<K, A, E>) => Effect.Effect<A, E, Scope.Scope>,
235
+ <K, A, E>(self: KeyedPool.KeyedPool<K, A, E>, key: K) => Effect.Effect<A, E, Scope.Scope>
236
236
  >(2, (self, key) => self.get(key))
237
237
 
238
238
  /** @internal */
239
239
  export const invalidate = dual<
240
- <A>(item: A) => <K, E>(self: KeyedPool.KeyedPool<K, E, A>) => Effect.Effect<never, never, void>,
241
- <K, E, A>(self: KeyedPool.KeyedPool<K, E, A>, item: A) => Effect.Effect<never, never, void>
240
+ <A>(item: A) => <K, E>(self: KeyedPool.KeyedPool<K, A, E>) => Effect.Effect<void>,
241
+ <K, A, E>(self: KeyedPool.KeyedPool<K, A, E>, item: A) => Effect.Effect<void>
242
242
  >(2, (self, item) => self.invalidate(item))