effect 2.0.0-next.44 → 2.0.0-next.46

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 (779) hide show
  1. package/Bigint/dist/effect-Bigint.cjs.dev.js +125 -1
  2. package/Bigint/dist/effect-Bigint.cjs.mjs +6 -1
  3. package/Bigint/dist/effect-Bigint.cjs.prod.js +125 -1
  4. package/Bigint/dist/effect-Bigint.esm.js +111 -2
  5. package/Boolean/dist/effect-Boolean.cjs.dev.js +1 -1
  6. package/Boolean/dist/effect-Boolean.cjs.prod.js +1 -1
  7. package/Boolean/dist/effect-Boolean.esm.js +1 -1
  8. package/Brand/dist/effect-Brand.cjs.dev.js +3 -3
  9. package/Brand/dist/effect-Brand.cjs.prod.js +3 -3
  10. package/Cache/dist/effect-Cache.cjs.dev.js +32 -32
  11. package/Cache/dist/effect-Cache.cjs.prod.js +32 -32
  12. package/Cause/dist/effect-Cause.cjs.dev.js +17 -17
  13. package/Cause/dist/effect-Cause.cjs.mjs +1 -1
  14. package/Cause/dist/effect-Cause.cjs.prod.js +17 -17
  15. package/Cause/dist/effect-Cause.esm.js +4 -4
  16. package/Channel/dist/effect-Channel.cjs.dev.js +50 -50
  17. package/Channel/dist/effect-Channel.cjs.mjs +3 -3
  18. package/Channel/dist/effect-Channel.cjs.prod.js +50 -50
  19. package/Channel/dist/effect-Channel.esm.js +8 -8
  20. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.dev.js +36 -36
  21. package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.prod.js +36 -36
  22. package/Chunk/dist/effect-Chunk.cjs.dev.js +3 -3
  23. package/Chunk/dist/effect-Chunk.cjs.prod.js +3 -3
  24. package/Clock/dist/effect-Clock.cjs.dev.js +16 -16
  25. package/Clock/dist/effect-Clock.cjs.prod.js +16 -16
  26. package/Config/dist/effect-Config.cjs.dev.js +11 -11
  27. package/Config/dist/effect-Config.cjs.prod.js +11 -11
  28. package/ConfigError/dist/effect-ConfigError.cjs.dev.js +4 -4
  29. package/ConfigError/dist/effect-ConfigError.cjs.prod.js +4 -4
  30. package/ConfigProvider/dist/effect-ConfigProvider.cjs.dev.js +17 -17
  31. package/ConfigProvider/dist/effect-ConfigProvider.cjs.prod.js +17 -17
  32. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.dev.js +5 -5
  33. package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.prod.js +5 -5
  34. package/ConfigSecret/dist/effect-ConfigSecret.cjs.dev.js +4 -4
  35. package/ConfigSecret/dist/effect-ConfigSecret.cjs.prod.js +4 -4
  36. package/Console/dist/effect-Console.cjs.dev.js +35 -35
  37. package/Console/dist/effect-Console.cjs.prod.js +35 -35
  38. package/Context/dist/effect-Context.cjs.dev.js +3 -8
  39. package/Context/dist/effect-Context.cjs.prod.js +3 -8
  40. package/Data/dist/effect-Data.cjs.dev.js +141 -54
  41. package/Data/dist/effect-Data.cjs.mjs +2 -0
  42. package/Data/dist/effect-Data.cjs.prod.js +141 -54
  43. package/Data/dist/effect-Data.esm.js +51 -3
  44. package/DefaultServices/dist/effect-DefaultServices.cjs.dev.js +16 -16
  45. package/DefaultServices/dist/effect-DefaultServices.cjs.prod.js +16 -16
  46. package/Deferred/dist/effect-Deferred.cjs.dev.js +8 -8
  47. package/Deferred/dist/effect-Deferred.cjs.prod.js +8 -8
  48. package/Differ/dist/effect-Differ.cjs.dev.js +11 -11
  49. package/Differ/dist/effect-Differ.cjs.prod.js +11 -11
  50. package/Duration/dist/effect-Duration.cjs.dev.js +3 -3
  51. package/Duration/dist/effect-Duration.cjs.prod.js +3 -3
  52. package/Effect/dist/effect-Effect.cjs.dev.js +44 -44
  53. package/Effect/dist/effect-Effect.cjs.prod.js +44 -44
  54. package/Effectable/dist/effect-Effectable.cjs.dev.js +24 -14
  55. package/Effectable/dist/effect-Effectable.cjs.mjs +5 -4
  56. package/Effectable/dist/effect-Effectable.cjs.prod.js +24 -14
  57. package/Effectable/dist/effect-Effectable.esm.js +15 -5
  58. package/Either/dist/effect-Either.cjs.dev.js +3 -3
  59. package/Either/dist/effect-Either.cjs.prod.js +3 -3
  60. package/Encoding/dist/effect-Encoding.cjs.dev.js +3 -3
  61. package/Encoding/dist/effect-Encoding.cjs.prod.js +3 -3
  62. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.dev.js +2 -2
  63. package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.prod.js +2 -2
  64. package/Exit/dist/effect-Exit.cjs.dev.js +8 -8
  65. package/Exit/dist/effect-Exit.cjs.prod.js +8 -8
  66. package/Fiber/dist/effect-Fiber.cjs.dev.js +29 -29
  67. package/Fiber/dist/effect-Fiber.cjs.prod.js +29 -29
  68. package/FiberId/dist/effect-FiberId.cjs.dev.js +5 -5
  69. package/FiberId/dist/effect-FiberId.cjs.prod.js +5 -5
  70. package/FiberRef/dist/effect-FiberRef.cjs.dev.js +29 -29
  71. package/FiberRef/dist/effect-FiberRef.cjs.prod.js +29 -29
  72. package/FiberRefs/dist/effect-FiberRefs.cjs.dev.js +9 -9
  73. package/FiberRefs/dist/effect-FiberRefs.cjs.prod.js +9 -9
  74. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.dev.js +10 -10
  75. package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.prod.js +10 -10
  76. package/GroupBy/dist/effect-GroupBy.cjs.dev.js +42 -42
  77. package/GroupBy/dist/effect-GroupBy.cjs.prod.js +42 -42
  78. package/HashMap/dist/effect-HashMap.cjs.dev.js +20 -20
  79. package/HashMap/dist/effect-HashMap.cjs.prod.js +20 -20
  80. package/HashSet/dist/effect-HashSet.cjs.dev.js +20 -20
  81. package/HashSet/dist/effect-HashSet.cjs.prod.js +20 -20
  82. package/KeyedPool/dist/effect-KeyedPool.cjs.dev.js +33 -33
  83. package/KeyedPool/dist/effect-KeyedPool.cjs.prod.js +33 -33
  84. package/Layer/dist/effect-Layer.cjs.dev.js +32 -32
  85. package/Layer/dist/effect-Layer.cjs.prod.js +32 -32
  86. package/List/dist/effect-List.cjs.dev.js +3 -3
  87. package/List/dist/effect-List.cjs.prod.js +3 -3
  88. package/LogLevel/dist/effect-LogLevel.cjs.dev.js +8 -8
  89. package/LogLevel/dist/effect-LogLevel.cjs.prod.js +8 -8
  90. package/Logger/dist/effect-Logger.cjs.dev.js +33 -33
  91. package/Logger/dist/effect-Logger.cjs.prod.js +33 -33
  92. package/Metric/dist/effect-Metric.cjs.dev.js +27 -27
  93. package/Metric/dist/effect-Metric.cjs.prod.js +27 -27
  94. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.dev.js +4 -4
  95. package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.prod.js +4 -4
  96. package/MetricHook/dist/effect-MetricHook.cjs.dev.js +6 -6
  97. package/MetricHook/dist/effect-MetricHook.cjs.prod.js +6 -6
  98. package/MetricKey/dist/effect-MetricKey.cjs.dev.js +6 -6
  99. package/MetricKey/dist/effect-MetricKey.cjs.prod.js +6 -6
  100. package/MetricKeyType/dist/effect-MetricKeyType.cjs.dev.js +4 -4
  101. package/MetricKeyType/dist/effect-MetricKeyType.cjs.prod.js +4 -4
  102. package/MetricPolling/dist/effect-MetricPolling.cjs.dev.js +30 -30
  103. package/MetricPolling/dist/effect-MetricPolling.cjs.prod.js +30 -30
  104. package/MetricRegistry/dist/effect-MetricRegistry.cjs.dev.js +8 -8
  105. package/MetricRegistry/dist/effect-MetricRegistry.cjs.prod.js +8 -8
  106. package/MetricState/dist/effect-MetricState.cjs.dev.js +1 -1
  107. package/MetricState/dist/effect-MetricState.cjs.prod.js +1 -1
  108. package/MutableHashMap/dist/effect-MutableHashMap.cjs.dev.js +4 -4
  109. package/MutableHashMap/dist/effect-MutableHashMap.cjs.prod.js +4 -4
  110. package/MutableHashSet/dist/effect-MutableHashSet.cjs.dev.js +4 -4
  111. package/MutableHashSet/dist/effect-MutableHashSet.cjs.prod.js +4 -4
  112. package/MutableQueue/dist/effect-MutableQueue.cjs.dev.js +3 -3
  113. package/MutableQueue/dist/effect-MutableQueue.cjs.prod.js +3 -3
  114. package/Number/dist/effect-Number.cjs.dev.js +1 -1
  115. package/Number/dist/effect-Number.cjs.prod.js +1 -1
  116. package/Number/dist/effect-Number.esm.js +1 -1
  117. package/Option/dist/effect-Option.cjs.dev.js +9 -9
  118. package/Option/dist/effect-Option.cjs.prod.js +9 -9
  119. package/Pool/dist/effect-Pool.cjs.dev.js +31 -31
  120. package/Pool/dist/effect-Pool.cjs.prod.js +31 -31
  121. package/PubSub/dist/effect-PubSub.cjs.d.mts +2 -0
  122. package/PubSub/dist/effect-PubSub.cjs.d.mts.map +1 -0
  123. package/PubSub/dist/effect-PubSub.cjs.d.ts +2 -0
  124. package/PubSub/dist/effect-PubSub.cjs.d.ts.map +1 -0
  125. package/{Hub/dist/effect-Hub.cjs.dev.js → PubSub/dist/effect-PubSub.cjs.dev.js} +163 -163
  126. package/PubSub/dist/effect-PubSub.cjs.js +7 -0
  127. package/{Hub/dist/effect-Hub.cjs.mjs → PubSub/dist/effect-PubSub.cjs.mjs} +1 -1
  128. package/{Hub/dist/effect-Hub.cjs.prod.js → PubSub/dist/effect-PubSub.cjs.prod.js} +163 -163
  129. package/{Hub/dist/effect-Hub.esm.js → PubSub/dist/effect-PubSub.esm.js} +15 -15
  130. package/PubSub/package.json +4 -0
  131. package/Queue/dist/effect-Queue.cjs.dev.js +28 -28
  132. package/Queue/dist/effect-Queue.cjs.prod.js +28 -28
  133. package/README.md +5 -5
  134. package/Random/dist/effect-Random.cjs.dev.js +16 -16
  135. package/Random/dist/effect-Random.cjs.prod.js +16 -16
  136. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.dev.js +3 -3
  137. package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.prod.js +3 -3
  138. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.dev.js +3 -3
  139. package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.prod.js +3 -3
  140. package/RedBlackTree/dist/effect-RedBlackTree.cjs.dev.js +4 -4
  141. package/RedBlackTree/dist/effect-RedBlackTree.cjs.prod.js +4 -4
  142. package/Ref/dist/effect-Ref.cjs.dev.js +9 -9
  143. package/Ref/dist/effect-Ref.cjs.prod.js +9 -9
  144. package/Reloadable/dist/effect-Reloadable.cjs.dev.js +44 -44
  145. package/Reloadable/dist/effect-Reloadable.cjs.prod.js +44 -44
  146. package/Request/dist/effect-Request.cjs.dev.js +29 -29
  147. package/Request/dist/effect-Request.cjs.prod.js +29 -29
  148. package/RequestBlock/dist/effect-RequestBlock.cjs.dev.js +36 -36
  149. package/RequestBlock/dist/effect-RequestBlock.cjs.prod.js +36 -36
  150. package/RequestResolver/dist/effect-RequestResolver.cjs.dev.js +38 -38
  151. package/RequestResolver/dist/effect-RequestResolver.cjs.prod.js +38 -38
  152. package/Resource/dist/effect-Resource.cjs.dev.js +34 -34
  153. package/Resource/dist/effect-Resource.cjs.prod.js +34 -34
  154. package/Runtime/dist/effect-Runtime.cjs.dev.js +34 -34
  155. package/Runtime/dist/effect-Runtime.cjs.prod.js +34 -34
  156. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.dev.js +33 -33
  157. package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.prod.js +33 -33
  158. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.dev.js +6 -6
  159. package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.prod.js +6 -6
  160. package/STM/dist/effect-STM.cjs.dev.js +48 -48
  161. package/STM/dist/effect-STM.cjs.prod.js +48 -48
  162. package/Schedule/dist/effect-Schedule.cjs.dev.js +19 -19
  163. package/Schedule/dist/effect-Schedule.cjs.prod.js +19 -19
  164. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.dev.js +3 -3
  165. package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.prod.js +3 -3
  166. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.dev.js +3 -3
  167. package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.prod.js +3 -3
  168. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.dev.js +3 -3
  169. package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.prod.js +3 -3
  170. package/Scheduler/dist/effect-Scheduler.cjs.dev.js +8 -8
  171. package/Scheduler/dist/effect-Scheduler.cjs.prod.js +8 -8
  172. package/Scope/dist/effect-Scope.cjs.dev.js +27 -27
  173. package/Scope/dist/effect-Scope.cjs.prod.js +27 -27
  174. package/ScopedCache/dist/effect-ScopedCache.cjs.dev.js +78 -61
  175. package/ScopedCache/dist/effect-ScopedCache.cjs.prod.js +78 -61
  176. package/ScopedRef/dist/effect-ScopedRef.cjs.dev.js +34 -34
  177. package/ScopedRef/dist/effect-ScopedRef.cjs.prod.js +34 -34
  178. package/Sink/dist/effect-Sink.cjs.dev.js +43 -43
  179. package/Sink/dist/effect-Sink.cjs.mjs +1 -1
  180. package/Sink/dist/effect-Sink.cjs.prod.js +43 -43
  181. package/Sink/dist/effect-Sink.esm.js +5 -5
  182. package/SortedMap/dist/effect-SortedMap.cjs.dev.js +3 -3
  183. package/SortedMap/dist/effect-SortedMap.cjs.prod.js +3 -3
  184. package/SortedSet/dist/effect-SortedSet.cjs.dev.js +3 -3
  185. package/SortedSet/dist/effect-SortedSet.cjs.prod.js +3 -3
  186. package/Stream/dist/effect-Stream.cjs.dev.js +60 -60
  187. package/Stream/dist/effect-Stream.cjs.mjs +5 -5
  188. package/Stream/dist/effect-Stream.cjs.prod.js +60 -60
  189. package/Stream/dist/effect-Stream.esm.js +15 -15
  190. package/Streamable/dist/effect-Streamable.cjs.d.mts +2 -0
  191. package/Streamable/dist/effect-Streamable.cjs.d.mts.map +1 -0
  192. package/Streamable/dist/effect-Streamable.cjs.d.ts +2 -0
  193. package/Streamable/dist/effect-Streamable.cjs.d.ts.map +1 -0
  194. package/Streamable/dist/effect-Streamable.cjs.dev.js +152 -0
  195. package/Streamable/dist/effect-Streamable.cjs.js +7 -0
  196. package/Streamable/dist/effect-Streamable.cjs.mjs +3 -0
  197. package/Streamable/dist/effect-Streamable.cjs.prod.js +152 -0
  198. package/Streamable/dist/effect-Streamable.esm.js +42 -0
  199. package/Streamable/package.json +4 -0
  200. package/String/dist/effect-String.cjs.dev.js +4 -4
  201. package/String/dist/effect-String.cjs.prod.js +4 -4
  202. package/String/dist/effect-String.esm.js +1 -1
  203. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.dev.js +48 -48
  204. package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.prod.js +48 -48
  205. package/Supervisor/dist/effect-Supervisor.cjs.dev.js +34 -34
  206. package/Supervisor/dist/effect-Supervisor.cjs.prod.js +34 -34
  207. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.dev.js +30 -30
  208. package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.prod.js +30 -30
  209. package/TArray/dist/effect-TArray.cjs.dev.js +46 -46
  210. package/TArray/dist/effect-TArray.cjs.prod.js +46 -46
  211. package/TDeferred/dist/effect-TDeferred.cjs.dev.js +45 -45
  212. package/TDeferred/dist/effect-TDeferred.cjs.prod.js +45 -45
  213. package/TMap/dist/effect-TMap.cjs.dev.js +47 -47
  214. package/TMap/dist/effect-TMap.cjs.prod.js +47 -47
  215. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.dev.js +44 -44
  216. package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.prod.js +44 -44
  217. package/TPubSub/dist/effect-TPubSub.cjs.d.mts +2 -0
  218. package/TPubSub/dist/effect-TPubSub.cjs.d.mts.map +1 -0
  219. package/TPubSub/dist/effect-TPubSub.cjs.d.ts +2 -0
  220. package/TPubSub/dist/effect-TPubSub.cjs.d.ts.map +1 -0
  221. package/{THub/dist/effect-THub.cjs.dev.js → TPubSub/dist/effect-TPubSub.cjs.dev.js} +101 -101
  222. package/TPubSub/dist/effect-TPubSub.cjs.js +7 -0
  223. package/{THub/dist/effect-THub.cjs.mjs → TPubSub/dist/effect-TPubSub.cjs.mjs} +2 -2
  224. package/{THub/dist/effect-THub.cjs.prod.js → TPubSub/dist/effect-TPubSub.cjs.prod.js} +101 -101
  225. package/TPubSub/dist/effect-TPubSub.esm.js +157 -0
  226. package/TPubSub/package.json +4 -0
  227. package/TQueue/dist/effect-TQueue.cjs.dev.js +46 -46
  228. package/TQueue/dist/effect-TQueue.cjs.prod.js +46 -46
  229. package/TRandom/dist/effect-TRandom.cjs.dev.js +50 -50
  230. package/TRandom/dist/effect-TRandom.cjs.prod.js +50 -50
  231. package/TReentrantLock/dist/effect-TReentrantLock.cjs.dev.js +46 -46
  232. package/TReentrantLock/dist/effect-TReentrantLock.cjs.prod.js +46 -46
  233. package/TRef/dist/effect-TRef.cjs.dev.js +44 -44
  234. package/TRef/dist/effect-TRef.cjs.prod.js +44 -44
  235. package/TSemaphore/dist/effect-TSemaphore.cjs.dev.js +45 -45
  236. package/TSemaphore/dist/effect-TSemaphore.cjs.prod.js +45 -45
  237. package/TSet/dist/effect-TSet.cjs.dev.js +47 -47
  238. package/TSet/dist/effect-TSet.cjs.prod.js +47 -47
  239. package/Take/dist/effect-Take.cjs.dev.js +36 -36
  240. package/Take/dist/effect-Take.cjs.prod.js +36 -36
  241. package/TestAnnotation/dist/effect-TestAnnotation.cjs.dev.js +8 -8
  242. package/TestAnnotation/dist/effect-TestAnnotation.cjs.prod.js +8 -8
  243. package/TestAnnotations/dist/effect-TestAnnotations.cjs.dev.js +25 -25
  244. package/TestAnnotations/dist/effect-TestAnnotations.cjs.prod.js +25 -25
  245. package/TestClock/dist/effect-TestClock.cjs.dev.js +46 -46
  246. package/TestClock/dist/effect-TestClock.cjs.prod.js +46 -46
  247. package/TestConfig/dist/effect-TestConfig.cjs.dev.js +3 -8
  248. package/TestConfig/dist/effect-TestConfig.cjs.prod.js +3 -8
  249. package/TestContext/dist/effect-TestContext.cjs.dev.js +37 -37
  250. package/TestContext/dist/effect-TestContext.cjs.prod.js +37 -37
  251. package/TestLive/dist/effect-TestLive.cjs.dev.js +17 -17
  252. package/TestLive/dist/effect-TestLive.cjs.prod.js +17 -17
  253. package/TestServices/dist/effect-TestServices.cjs.dev.js +42 -42
  254. package/TestServices/dist/effect-TestServices.cjs.prod.js +42 -42
  255. package/TestSized/dist/effect-TestSized.cjs.dev.js +11 -11
  256. package/TestSized/dist/effect-TestSized.cjs.prod.js +11 -11
  257. package/Tracer/dist/effect-Tracer.cjs.dev.js +16 -16
  258. package/Tracer/dist/effect-Tracer.cjs.prod.js +16 -16
  259. package/dist/{Context-01a123ac.cjs.prod.js → Context-9fe5eb16.cjs.prod.js} +5 -5
  260. package/dist/{Context-593661f6.cjs.dev.js → Context-da73ddfa.cjs.dev.js} +5 -5
  261. package/dist/{Effectable-2f022879.cjs.dev.js → Effectable-7314aed8.cjs.dev.js} +63 -10
  262. package/dist/{Effectable-cd8f3a96.cjs.prod.js → Effectable-c4c14a2b.cjs.prod.js} +63 -10
  263. package/dist/{Either-7a881c7a.cjs.prod.js → Either-d43f082c.cjs.prod.js} +6 -79
  264. package/dist/{Either-12bbe00c.cjs.dev.js → Either-fa0ef1d9.cjs.dev.js} +6 -79
  265. package/dist/{ExecutionStrategy-14d3053a.cjs.prod.js → ExecutionStrategy-4808fe5d.cjs.prod.js} +2 -2
  266. package/dist/{ExecutionStrategy-70f1a920.cjs.dev.js → ExecutionStrategy-7d9d457b.cjs.dev.js} +2 -2
  267. package/dist/{HashSet-0b4ff1e4.cjs.dev.js → HashSet-5963ad6b.cjs.dev.js} +32 -32
  268. package/dist/{HashSet-6257b66d.cjs.prod.js → HashSet-ac02a3e1.cjs.prod.js} +32 -32
  269. package/dist/Option-463b42e6.cjs.dev.js +81 -0
  270. package/dist/Option-935e5d7c.cjs.prod.js +81 -0
  271. package/dist/{Ref-a3a4e50d.cjs.prod.js → Ref-4014b526.cjs.prod.js} +1 -1
  272. package/dist/{Ref-74b592a4.cjs.dev.js → Ref-acdee7ef.cjs.dev.js} +1 -1
  273. package/dist/{cache-75fbef45.cjs.prod.js → cache-5c7d77e4.cjs.prod.js} +17 -17
  274. package/dist/{cache-e1ea3923.cjs.dev.js → cache-7eed9d33.cjs.dev.js} +17 -17
  275. package/dist/{circular-6f16b226.cjs.prod.js → circular-1f481ffb.cjs.prod.js} +33 -33
  276. package/dist/{circular-f406f9a4.cjs.prod.js → circular-9e10a5a7.cjs.prod.js} +6 -6
  277. package/dist/{circular-58ff5e9c.cjs.dev.js → circular-c2dbce1a.cjs.dev.js} +33 -33
  278. package/dist/{circular-30564534.cjs.dev.js → circular-c8b65bdb.cjs.dev.js} +6 -6
  279. package/dist/{config-80900693.cjs.dev.js → config-3b7935a3.cjs.dev.js} +3 -3
  280. package/dist/{config-d0ddc159.cjs.prod.js → config-5ba54da1.cjs.prod.js} +3 -3
  281. package/dist/{configProvider-93617d6d.cjs.prod.js → configProvider-b6b20998.cjs.prod.js} +29 -29
  282. package/dist/{configProvider-ce43fdbf.cjs.dev.js → configProvider-f34a82f1.cjs.dev.js} +29 -29
  283. package/dist/{core-0b0539de.cjs.prod.js → core-07202cc0.cjs.prod.js} +711 -726
  284. package/dist/{core-60ca562a.cjs.prod.js → core-7411d1e1.cjs.prod.js} +3 -3
  285. package/dist/{core-b4d7b4f5.cjs.dev.js → core-b7401357.cjs.dev.js} +711 -726
  286. package/dist/{core-13f8a866.cjs.dev.js → core-c5747f88.cjs.dev.js} +3 -3
  287. package/dist/{core-effect-892f3686.cjs.dev.js → core-effect-1c564d42.cjs.dev.js} +77 -75
  288. package/dist/{core-effect-c65770cd.cjs.prod.js → core-effect-9201ea63.cjs.prod.js} +77 -75
  289. package/dist/{dataSource-3ba9e4d3.cjs.dev.js → dataSource-b5eda714.cjs.dev.js} +2 -2
  290. package/dist/{dataSource-7df3a5f6.cjs.prod.js → dataSource-b83bc277.cjs.prod.js} +2 -2
  291. package/dist/declarations/src/Bigint.d.ts +92 -1
  292. package/dist/declarations/src/Bigint.d.ts.map +1 -1
  293. package/dist/declarations/src/Boolean.d.ts +1 -1
  294. package/dist/declarations/src/Cause.d.ts +6 -6
  295. package/dist/declarations/src/Cause.d.ts.map +1 -1
  296. package/dist/declarations/src/Channel.d.ts +7 -7
  297. package/dist/declarations/src/Channel.d.ts.map +1 -1
  298. package/dist/declarations/src/Data.d.ts +30 -0
  299. package/dist/declarations/src/Data.d.ts.map +1 -1
  300. package/dist/declarations/src/Effect.d.ts +4 -2
  301. package/dist/declarations/src/Effect.d.ts.map +1 -1
  302. package/dist/declarations/src/Effectable.d.ts +14 -4
  303. package/dist/declarations/src/Effectable.d.ts.map +1 -1
  304. package/dist/declarations/src/Metric.d.ts +31 -7
  305. package/dist/declarations/src/Metric.d.ts.map +1 -1
  306. package/dist/declarations/src/MetricHook.d.ts +7 -4
  307. package/dist/declarations/src/MetricHook.d.ts.map +1 -1
  308. package/dist/declarations/src/MetricKey.d.ts +24 -4
  309. package/dist/declarations/src/MetricKey.d.ts.map +1 -1
  310. package/dist/declarations/src/MetricKeyType.d.ts +9 -6
  311. package/dist/declarations/src/MetricKeyType.d.ts.map +1 -1
  312. package/dist/declarations/src/MetricRegistry.d.ts +2 -2
  313. package/dist/declarations/src/MetricRegistry.d.ts.map +1 -1
  314. package/dist/declarations/src/MetricState.d.ts +15 -9
  315. package/dist/declarations/src/MetricState.d.ts.map +1 -1
  316. package/dist/declarations/src/Number.d.ts +1 -1
  317. package/dist/declarations/src/{Hub.d.ts → PubSub.d.ts} +38 -38
  318. package/dist/declarations/src/PubSub.d.ts.map +1 -0
  319. package/dist/declarations/src/Sink.d.ts +4 -4
  320. package/dist/declarations/src/Sink.d.ts.map +1 -1
  321. package/dist/declarations/src/Stream.d.ts +24 -24
  322. package/dist/declarations/src/Stream.d.ts.map +1 -1
  323. package/dist/declarations/src/Streamable.d.ts +27 -0
  324. package/dist/declarations/src/Streamable.d.ts.map +1 -0
  325. package/dist/declarations/src/String.d.ts +1 -1
  326. package/dist/declarations/src/SubscriptionRef.d.ts.map +1 -1
  327. package/dist/declarations/src/TPubSub.d.ts +146 -0
  328. package/dist/declarations/src/TPubSub.d.ts.map +1 -0
  329. package/dist/declarations/src/index.d.ts +15 -15
  330. package/dist/declarations/src/index.d.ts.map +1 -1
  331. package/dist/{defaultServices-5530ff0e.cjs.dev.js → defaultServices-755d5b46.cjs.dev.js} +6 -6
  332. package/dist/{defaultServices-086b8ac9.cjs.prod.js → defaultServices-9d7ce86f.cjs.prod.js} +6 -6
  333. package/dist/effect.cjs.dev.js +9 -9
  334. package/dist/effect.cjs.mjs +3 -3
  335. package/dist/effect.cjs.prod.js +9 -9
  336. package/dist/effect.esm.js +6 -6
  337. package/dist/{fiber-1bfb4c1d.cjs.dev.js → fiber-5156eff2.cjs.dev.js} +12 -12
  338. package/dist/{fiber-2eb0a4c1.cjs.prod.js → fiber-9519d109.cjs.prod.js} +12 -12
  339. package/dist/{fiberRefs-be6b6a70.cjs.prod.js → fiberRefs-558c17e6.cjs.prod.js} +1 -1
  340. package/dist/{fiberRefs-be4fae6a.cjs.dev.js → fiberRefs-98b71233.cjs.dev.js} +1 -1
  341. package/dist/{fiberRuntime-2d31e120.cjs.prod.js → fiberRuntime-31ae011f.cjs.prod.js} +99 -100
  342. package/dist/{fiberRuntime-c7280769.cjs.dev.js → fiberRuntime-d3872282.cjs.dev.js} +99 -100
  343. package/dist/{groupBy-0702739b.cjs.prod.js → groupBy-724f64ef.cjs.prod.js} +4 -4
  344. package/dist/{groupBy-7f852bf3.cjs.dev.js → groupBy-862cc2da.cjs.dev.js} +4 -4
  345. package/dist/{hook-e72b20fd.cjs.dev.js → hook-8cefc909.cjs.dev.js} +8 -4
  346. package/dist/{hook-470b717e.cjs.prod.js → hook-98ce30e4.cjs.prod.js} +8 -4
  347. package/dist/{key-f0a1408a.cjs.dev.js → key-198b6670.cjs.dev.js} +3 -3
  348. package/dist/{key-378a6a2c.cjs.prod.js → key-eb8a12b2.cjs.prod.js} +3 -3
  349. package/dist/{keyType-cf67c69c.cjs.prod.js → keyType-0c5e6178.cjs.prod.js} +9 -2
  350. package/dist/{keyType-55f27f07.cjs.dev.js → keyType-7c164b82.cjs.dev.js} +9 -2
  351. package/dist/{layer-b42e8022.cjs.dev.js → layer-29574350.cjs.dev.js} +33 -33
  352. package/dist/{layer-d103b49b.cjs.prod.js → layer-51ff4846.cjs.prod.js} +33 -33
  353. package/dist/{patch-a1b2802f.cjs.dev.js → patch-0220a642.cjs.dev.js} +1 -1
  354. package/dist/{patch-c4d6c61e.cjs.prod.js → patch-7c559bb2.cjs.prod.js} +1 -1
  355. package/dist/{pathPatch-15c8d723.cjs.prod.js → pathPatch-b56a4da2.cjs.prod.js} +1 -1
  356. package/dist/{pathPatch-d9d41297.cjs.dev.js → pathPatch-fab016f1.cjs.dev.js} +1 -1
  357. package/dist/{pool-ef44ba82.cjs.dev.js → pool-3211287f.cjs.dev.js} +31 -31
  358. package/dist/{pool-e414eb88.cjs.prod.js → pool-f77d7705.cjs.prod.js} +31 -31
  359. package/dist/{query-1d0157db.cjs.prod.js → query-a52b25f0.cjs.prod.js} +11 -11
  360. package/dist/{query-54337864.cjs.dev.js → query-c36decd5.cjs.dev.js} +11 -11
  361. package/dist/{queue-27ac9d98.cjs.prod.js → queue-315ea45d.cjs.prod.js} +22 -22
  362. package/dist/{queue-533d70d4.cjs.dev.js → queue-7a223c44.cjs.dev.js} +22 -22
  363. package/dist/{registry-1099de3f.cjs.dev.js → registry-62ff192e.cjs.dev.js} +4 -4
  364. package/dist/{registry-013ecdde.cjs.prod.js → registry-d5258dff.cjs.prod.js} +4 -4
  365. package/dist/{runtime-ea174155.cjs.prod.js → runtime-005f8a9b.cjs.prod.js} +7 -7
  366. package/dist/{runtime-afad6a9b.cjs.dev.js → runtime-57c8ddf8.cjs.dev.js} +7 -7
  367. package/dist/{schedule-1d92198c.cjs.prod.js → schedule-8cdf6bf1.cjs.prod.js} +40 -40
  368. package/dist/{schedule-e0f55cab.cjs.dev.js → schedule-e7a9f93f.cjs.dev.js} +40 -40
  369. package/dist/scopedRef-789d7fef.cjs.prod.js +55 -0
  370. package/dist/scopedRef-eb19c7a6.cjs.dev.js +55 -0
  371. package/dist/{singleProducerAsyncInput-4105a342.cjs.dev.js → singleProducerAsyncInput-9ff8389b.cjs.dev.js} +1 -1
  372. package/dist/{singleProducerAsyncInput-21463e16.cjs.prod.js → singleProducerAsyncInput-f9b258b1.cjs.prod.js} +1 -1
  373. package/dist/{sink-9129504b.cjs.prod.js → sink-572d8981.cjs.prod.js} +17 -17
  374. package/dist/{sink-ee393b63.cjs.dev.js → sink-8d3427e7.cjs.dev.js} +17 -17
  375. package/dist/{state-dd1bd066.cjs.prod.js → state-0bdf02b7.cjs.prod.js} +2 -6
  376. package/dist/{state-8fbec044.cjs.dev.js → state-931050c4.cjs.dev.js} +2 -6
  377. package/dist/{stm-537da66b.cjs.dev.js → stm-8aca0022.cjs.dev.js} +3 -3
  378. package/dist/{stm-5043c3cb.cjs.prod.js → stm-f250b596.cjs.prod.js} +3 -3
  379. package/dist/{stream-c7eda5bc.cjs.dev.js → stream-34d80d2c.cjs.dev.js} +31 -28
  380. package/dist/{stream-13637643.cjs.prod.js → stream-ea4f4d44.cjs.prod.js} +31 -28
  381. package/dist/{synchronizedRef-37e32854.cjs.dev.js → synchronizedRef-a12fd967.cjs.dev.js} +6 -6
  382. package/dist/{synchronizedRef-b4cde4de.cjs.prod.js → synchronizedRef-ed8aa6ac.cjs.prod.js} +6 -6
  383. package/dist/{tArray-df1bae1c.cjs.dev.js → tArray-17f078f2.cjs.dev.js} +3 -3
  384. package/dist/{tArray-d5476a2d.cjs.prod.js → tArray-d184e22f.cjs.prod.js} +3 -3
  385. package/dist/{tMap-a3e14c05.cjs.dev.js → tMap-1a5aa78b.cjs.dev.js} +4 -4
  386. package/dist/{tMap-20ef43ea.cjs.prod.js → tMap-e219f30e.cjs.prod.js} +4 -4
  387. package/dist/{tQueue-bd3cf539.cjs.dev.js → tQueue-0a4fc773.cjs.dev.js} +3 -3
  388. package/dist/{tQueue-c02c22bd.cjs.prod.js → tQueue-47129ad0.cjs.prod.js} +3 -3
  389. package/dist/{tRef-49e44dde.cjs.prod.js → tRef-ab4c5713.cjs.prod.js} +1 -1
  390. package/dist/{tRef-75dd04b3.cjs.dev.js → tRef-b860ef05.cjs.dev.js} +1 -1
  391. package/internal/Context.esm.js +4 -4
  392. package/internal/Data.esm.js +4 -1
  393. package/internal/Differ/ChunkPatch.esm.js +1 -1
  394. package/internal/Differ/ContextPatch.esm.js +1 -1
  395. package/internal/Differ/HashMapPatch.esm.js +1 -1
  396. package/internal/Differ/HashSetPatch.esm.js +1 -1
  397. package/internal/Differ/OrPatch.esm.js +1 -1
  398. package/internal/Effectable.esm.js +9 -9
  399. package/internal/Either.esm.js +3 -3
  400. package/internal/Option.esm.js +3 -3
  401. package/internal/cache.esm.js +1 -1
  402. package/internal/cause.esm.js +6 -21
  403. package/internal/channel.esm.js +5 -5
  404. package/internal/core-effect.esm.js +6 -4
  405. package/internal/fiberRuntime.esm.js +3 -3
  406. package/internal/layer.esm.js +1 -1
  407. package/internal/metric/hook.esm.js +7 -3
  408. package/internal/metric/key.esm.js +2 -2
  409. package/internal/metric/keyType.esm.js +9 -2
  410. package/internal/metric/registry.esm.js +2 -2
  411. package/internal/metric/state.esm.js +2 -6
  412. package/internal/metric.esm.js +3 -3
  413. package/internal/{hub.esm.js → pubsub.esm.js} +108 -108
  414. package/internal/request.esm.js +1 -1
  415. package/internal/sink.esm.js +8 -8
  416. package/internal/stm/{tHub.esm.js → tPubSub.esm.js} +30 -30
  417. package/internal/stream.esm.js +23 -20
  418. package/internal/subscriptionRef.esm.js +8 -8
  419. package/package.json +66 -211
  420. package/src/.index.ts +30 -0
  421. package/src/Bigint.ts +497 -0
  422. package/src/Boolean.ts +261 -0
  423. package/src/Brand.ts +336 -0
  424. package/src/Cache.ts +250 -0
  425. package/src/Cause.ts +813 -0
  426. package/src/Channel.ts +2244 -0
  427. package/src/ChannelChildExecutorDecision.ts +138 -0
  428. package/src/ChannelMergeDecision.ts +94 -0
  429. package/src/ChannelMergeState.ts +166 -0
  430. package/src/ChannelMergeStrategy.ts +107 -0
  431. package/src/ChannelSingleProducerAsyncInput.ts +68 -0
  432. package/src/ChannelUpstreamPullRequest.ts +110 -0
  433. package/src/ChannelUpstreamPullStrategy.ts +120 -0
  434. package/src/Chunk.ts +1314 -0
  435. package/src/Clock.ts +111 -0
  436. package/src/Config.ts +447 -0
  437. package/src/ConfigError.ts +267 -0
  438. package/src/ConfigProvider.ts +296 -0
  439. package/src/ConfigProviderPathPatch.ts +100 -0
  440. package/src/ConfigSecret.ts +76 -0
  441. package/src/Console.ts +222 -0
  442. package/src/Context.ts +365 -0
  443. package/src/Data.ts +367 -0
  444. package/src/DefaultServices.ts +34 -0
  445. package/src/Deferred.ts +283 -0
  446. package/src/Differ.ts +406 -0
  447. package/src/Duration.ts +558 -0
  448. package/src/Effect.ts +5177 -0
  449. package/src/Effectable.ts +107 -0
  450. package/src/Either.ts +593 -0
  451. package/src/Encoding.ts +130 -0
  452. package/src/Equal.ts +64 -0
  453. package/src/Equivalence.ts +235 -0
  454. package/src/ExecutionStrategy.ts +111 -0
  455. package/src/Exit.ts +464 -0
  456. package/src/Fiber.ts +650 -0
  457. package/src/FiberId.ts +187 -0
  458. package/src/FiberRef.ts +399 -0
  459. package/src/FiberRefs.ts +160 -0
  460. package/src/FiberRefsPatch.ts +105 -0
  461. package/src/FiberStatus.ts +108 -0
  462. package/src/Function.ts +834 -0
  463. package/src/GlobalValue.ts +20 -0
  464. package/src/GroupBy.ts +102 -0
  465. package/src/HKT.ts +44 -0
  466. package/src/Hash.ts +162 -0
  467. package/src/HashMap.ts +373 -0
  468. package/src/HashSet.ts +300 -0
  469. package/src/Inspectable.ts +45 -0
  470. package/src/KeyedPool.ts +160 -0
  471. package/src/Layer.ts +866 -0
  472. package/src/List.ts +942 -0
  473. package/src/LogLevel.ts +266 -0
  474. package/src/LogSpan.ts +25 -0
  475. package/src/Logger.ts +321 -0
  476. package/src/Metric.ts +657 -0
  477. package/src/MetricBoundaries.ts +70 -0
  478. package/src/MetricHook.ts +139 -0
  479. package/src/MetricKey.ts +227 -0
  480. package/src/MetricKeyType.ts +257 -0
  481. package/src/MetricLabel.ts +47 -0
  482. package/src/MetricPair.ts +70 -0
  483. package/src/MetricPolling.ts +136 -0
  484. package/src/MetricRegistry.ts +47 -0
  485. package/src/MetricState.ts +256 -0
  486. package/src/MutableHashMap.ts +187 -0
  487. package/src/MutableHashSet.ts +118 -0
  488. package/src/MutableList.ts +289 -0
  489. package/src/MutableQueue.ts +227 -0
  490. package/src/MutableRef.ts +204 -0
  491. package/src/NonEmptyIterable.ts +30 -0
  492. package/src/Number.ts +406 -0
  493. package/src/Option.ts +1307 -0
  494. package/src/Order.ts +328 -0
  495. package/src/Ordering.ts +112 -0
  496. package/src/Pipeable.ts +318 -0
  497. package/src/Pool.ts +148 -0
  498. package/src/Predicate.ts +704 -0
  499. package/src/PubSub.ts +175 -0
  500. package/src/Queue.ts +575 -0
  501. package/src/Random.ts +115 -0
  502. package/src/ReadonlyArray.ts +2017 -0
  503. package/src/ReadonlyRecord.ts +641 -0
  504. package/src/RedBlackTree.ts +415 -0
  505. package/src/Ref.ts +159 -0
  506. package/src/Reloadable.ts +136 -0
  507. package/src/Request.ts +285 -0
  508. package/src/RequestBlock.ts +157 -0
  509. package/src/RequestResolver.ts +305 -0
  510. package/src/Resource.ts +97 -0
  511. package/src/Runtime.ts +216 -0
  512. package/src/RuntimeFlags.ts +336 -0
  513. package/src/RuntimeFlagsPatch.ts +183 -0
  514. package/src/STM.ts +2076 -0
  515. package/src/Schedule.ts +1396 -0
  516. package/src/ScheduleDecision.ts +62 -0
  517. package/src/ScheduleInterval.ts +151 -0
  518. package/src/ScheduleIntervals.ts +122 -0
  519. package/src/Scheduler.ts +359 -0
  520. package/src/Scope.ts +171 -0
  521. package/src/ScopedCache.ts +148 -0
  522. package/src/ScopedRef.ts +95 -0
  523. package/src/Sink.ts +1431 -0
  524. package/src/SortedMap.ts +229 -0
  525. package/src/SortedSet.ts +385 -0
  526. package/src/Stream.ts +4540 -0
  527. package/src/StreamEmit.ts +83 -0
  528. package/src/StreamHaltStrategy.ts +111 -0
  529. package/src/Streamable.ts +42 -0
  530. package/src/String.ts +682 -0
  531. package/src/Struct.ts +151 -0
  532. package/src/SubscriptionRef.ts +273 -0
  533. package/src/Supervisor.ts +239 -0
  534. package/src/Symbol.ts +28 -0
  535. package/src/SynchronizedRef.ts +249 -0
  536. package/src/TArray.ts +494 -0
  537. package/src/TDeferred.ts +99 -0
  538. package/src/TMap.ts +510 -0
  539. package/src/TPriorityQueue.ts +223 -0
  540. package/src/TPubSub.ts +187 -0
  541. package/src/TQueue.ts +431 -0
  542. package/src/TRandom.ts +129 -0
  543. package/src/TReentrantLock.ts +224 -0
  544. package/src/TRef.ts +176 -0
  545. package/src/TSemaphore.ts +129 -0
  546. package/src/TSet.ts +349 -0
  547. package/src/Take.ts +257 -0
  548. package/src/TestAnnotation.ts +166 -0
  549. package/src/TestAnnotationMap.ts +124 -0
  550. package/src/TestAnnotations.ts +113 -0
  551. package/src/TestClock.ts +552 -0
  552. package/src/TestConfig.ts +49 -0
  553. package/src/TestContext.ts +35 -0
  554. package/src/TestLive.ts +55 -0
  555. package/src/TestServices.ts +392 -0
  556. package/src/TestSized.ts +55 -0
  557. package/src/Tracer.ts +119 -0
  558. package/src/Tuple.ts +204 -0
  559. package/src/Types.ts +123 -0
  560. package/src/Unify.ts +118 -0
  561. package/src/Utils.ts +699 -0
  562. package/src/index.ts +840 -0
  563. package/src/internal/Common.ts +56 -0
  564. package/src/internal/Context.ts +252 -0
  565. package/src/internal/Data.ts +55 -0
  566. package/src/internal/Differ/ChunkPatch.ts +209 -0
  567. package/src/internal/Differ/ContextPatch.ts +229 -0
  568. package/src/internal/Differ/HashMapPatch.ts +217 -0
  569. package/src/internal/Differ/HashSetPatch.ts +174 -0
  570. package/src/internal/Differ/OrPatch.ts +296 -0
  571. package/src/internal/Differ.ts +184 -0
  572. package/src/internal/Effectable.ts +92 -0
  573. package/src/internal/Either.ts +107 -0
  574. package/src/internal/Encoding/Base64.ts +282 -0
  575. package/src/internal/Encoding/Base64Url.ts +28 -0
  576. package/src/internal/Encoding/Common.ts +24 -0
  577. package/src/internal/Encoding/Hex.ts +315 -0
  578. package/src/internal/HashMap/array.ts +49 -0
  579. package/src/internal/HashMap/bitwise.ts +32 -0
  580. package/src/internal/HashMap/config.ts +14 -0
  581. package/src/internal/HashMap/keySet.ts +8 -0
  582. package/src/internal/HashMap/node.ts +390 -0
  583. package/src/internal/HashMap.ts +533 -0
  584. package/src/internal/HashSet.ts +319 -0
  585. package/src/internal/Iterable.ts +54 -0
  586. package/src/internal/Option.ts +79 -0
  587. package/src/internal/ReadonlyArray.ts +8 -0
  588. package/src/internal/RedBlackTree/iterator.ts +207 -0
  589. package/src/internal/RedBlackTree/node.ts +48 -0
  590. package/src/internal/RedBlackTree.ts +1195 -0
  591. package/src/internal/Stack.ts +4 -0
  592. package/src/internal/blockedRequests.ts +512 -0
  593. package/src/internal/cache.ts +714 -0
  594. package/src/internal/cause.ts +1205 -0
  595. package/src/internal/channel/channelExecutor.ts +1193 -0
  596. package/src/internal/channel/channelState.ts +132 -0
  597. package/src/internal/channel/childExecutorDecision.ts +95 -0
  598. package/src/internal/channel/continuation.ts +171 -0
  599. package/src/internal/channel/mergeDecision.ts +115 -0
  600. package/src/internal/channel/mergeState.ts +120 -0
  601. package/src/internal/channel/mergeStrategy.ts +72 -0
  602. package/src/internal/channel/singleProducerAsyncInput.ts +261 -0
  603. package/src/internal/channel/subexecutor.ts +229 -0
  604. package/src/internal/channel/upstreamPullRequest.ts +83 -0
  605. package/src/internal/channel/upstreamPullStrategy.ts +86 -0
  606. package/src/internal/channel.ts +2516 -0
  607. package/src/internal/clock.ts +97 -0
  608. package/src/internal/completedRequestMap.ts +9 -0
  609. package/src/internal/concurrency.ts +83 -0
  610. package/src/internal/config.ts +598 -0
  611. package/src/internal/configError.ts +291 -0
  612. package/src/internal/configProvider/pathPatch.ts +97 -0
  613. package/src/internal/configProvider.ts +692 -0
  614. package/src/internal/configSecret.ts +71 -0
  615. package/src/internal/console.ts +136 -0
  616. package/src/internal/core-effect.ts +2146 -0
  617. package/src/internal/core-stream.ts +999 -0
  618. package/src/internal/core.ts +2765 -0
  619. package/src/internal/dataSource.ts +258 -0
  620. package/src/internal/defaultServices/console.ts +97 -0
  621. package/src/internal/defaultServices.ts +140 -0
  622. package/src/internal/deferred.ts +44 -0
  623. package/src/internal/effect/circular.ts +664 -0
  624. package/src/internal/executionStrategy.ts +72 -0
  625. package/src/internal/fiber.ts +350 -0
  626. package/src/internal/fiberId.ts +270 -0
  627. package/src/internal/fiberMessage.ts +85 -0
  628. package/src/internal/fiberRefs/patch.ts +144 -0
  629. package/src/internal/fiberRefs.ts +239 -0
  630. package/src/internal/fiberRuntime.ts +3477 -0
  631. package/src/internal/fiberScope.ts +72 -0
  632. package/src/internal/fiberStatus.ts +118 -0
  633. package/src/internal/groupBy.ts +516 -0
  634. package/src/internal/keyedPool.ts +240 -0
  635. package/src/internal/layer/circular.ts +203 -0
  636. package/src/internal/layer.ts +1230 -0
  637. package/src/internal/logSpan.ts +15 -0
  638. package/src/internal/logger-circular.ts +24 -0
  639. package/src/internal/logger.ts +307 -0
  640. package/src/internal/metric/boundaries.ts +72 -0
  641. package/src/internal/metric/hook.ts +459 -0
  642. package/src/internal/metric/key.ts +173 -0
  643. package/src/internal/metric/keyType.ts +263 -0
  644. package/src/internal/metric/label.ts +44 -0
  645. package/src/internal/metric/pair.ts +48 -0
  646. package/src/internal/metric/polling.ts +143 -0
  647. package/src/internal/metric/registry.ts +188 -0
  648. package/src/internal/metric/state.ts +286 -0
  649. package/src/internal/metric.ts +522 -0
  650. package/src/internal/opCodes/cause.ts +35 -0
  651. package/src/internal/opCodes/channel.ts +83 -0
  652. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  653. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  654. package/src/internal/opCodes/channelMergeState.ts +17 -0
  655. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  656. package/src/internal/opCodes/channelState.ts +23 -0
  657. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  658. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  659. package/src/internal/opCodes/config.ts +65 -0
  660. package/src/internal/opCodes/configError.ts +35 -0
  661. package/src/internal/opCodes/continuation.ts +11 -0
  662. package/src/internal/opCodes/deferred.ts +11 -0
  663. package/src/internal/opCodes/effect.ts +83 -0
  664. package/src/internal/opCodes/layer.ts +53 -0
  665. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  666. package/src/internal/pool.ts +499 -0
  667. package/src/internal/pubsub.ts +1557 -0
  668. package/src/internal/query.ts +199 -0
  669. package/src/internal/queue.ts +729 -0
  670. package/src/internal/random.ts +88 -0
  671. package/src/internal/ref.ts +164 -0
  672. package/src/internal/reloadable.ts +164 -0
  673. package/src/internal/request.ts +137 -0
  674. package/src/internal/resource.ts +64 -0
  675. package/src/internal/ringBuffer.ts +68 -0
  676. package/src/internal/runtime.ts +348 -0
  677. package/src/internal/runtimeFlags.ts +176 -0
  678. package/src/internal/runtimeFlagsPatch.ts +103 -0
  679. package/src/internal/schedule/decision.ts +47 -0
  680. package/src/internal/schedule/interval.ts +101 -0
  681. package/src/internal/schedule/intervals.ts +179 -0
  682. package/src/internal/schedule.ts +2096 -0
  683. package/src/internal/scopedCache.ts +634 -0
  684. package/src/internal/scopedRef.ts +133 -0
  685. package/src/internal/singleShotGen.ts +35 -0
  686. package/src/internal/sink.ts +2118 -0
  687. package/src/internal/stm/core.ts +804 -0
  688. package/src/internal/stm/opCodes/stm.ts +71 -0
  689. package/src/internal/stm/opCodes/stmState.ts +17 -0
  690. package/src/internal/stm/opCodes/strategy.ts +17 -0
  691. package/src/internal/stm/opCodes/tExit.ts +29 -0
  692. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  693. package/src/internal/stm/stm/entry.ts +59 -0
  694. package/src/internal/stm/stm/journal.ts +123 -0
  695. package/src/internal/stm/stm/opCodes/stm.ts +71 -0
  696. package/src/internal/stm/stm/opCodes/stmState.ts +17 -0
  697. package/src/internal/stm/stm/opCodes/strategy.ts +17 -0
  698. package/src/internal/stm/stm/opCodes/tExit.ts +29 -0
  699. package/src/internal/stm/stm/opCodes/tryCommit.ts +11 -0
  700. package/src/internal/stm/stm/stmState.ts +130 -0
  701. package/src/internal/stm/stm/tExit.ts +180 -0
  702. package/src/internal/stm/stm/tryCommit.ts +34 -0
  703. package/src/internal/stm/stm/txnId.ts +14 -0
  704. package/src/internal/stm/stm/versioned.ts +4 -0
  705. package/src/internal/stm/stm.ts +1491 -0
  706. package/src/internal/stm/tArray.ts +550 -0
  707. package/src/internal/stm/tDeferred.ts +79 -0
  708. package/src/internal/stm/tMap.ts +824 -0
  709. package/src/internal/stm/tPriorityQueue.ts +259 -0
  710. package/src/internal/stm/tPubSub.ts +542 -0
  711. package/src/internal/stm/tQueue.ts +400 -0
  712. package/src/internal/stm/tRandom.ts +140 -0
  713. package/src/internal/stm/tReentrantLock.ts +352 -0
  714. package/src/internal/stm/tRef.ts +190 -0
  715. package/src/internal/stm/tSemaphore.ts +113 -0
  716. package/src/internal/stm/tSet.ts +237 -0
  717. package/src/internal/stream/debounceState.ts +57 -0
  718. package/src/internal/stream/emit.ts +46 -0
  719. package/src/internal/stream/haltStrategy.ts +85 -0
  720. package/src/internal/stream/handoff.ts +185 -0
  721. package/src/internal/stream/handoffSignal.ts +59 -0
  722. package/src/internal/stream/pull.ts +35 -0
  723. package/src/internal/stream/sinkEndReason.ts +30 -0
  724. package/src/internal/stream/zipAllState.ts +88 -0
  725. package/src/internal/stream/zipChunksState.ts +56 -0
  726. package/src/internal/stream.ts +8089 -0
  727. package/src/internal/string-utils.ts +107 -0
  728. package/src/internal/subscriptionRef.ts +133 -0
  729. package/src/internal/supervisor/patch.ts +190 -0
  730. package/src/internal/supervisor.ts +301 -0
  731. package/src/internal/synchronizedRef.ts +115 -0
  732. package/src/internal/take.ts +198 -0
  733. package/src/internal/testing/sleep.ts +27 -0
  734. package/src/internal/testing/suspendedWarningData.ts +85 -0
  735. package/src/internal/testing/warningData.ts +94 -0
  736. package/src/internal/timeout.ts +23 -0
  737. package/src/internal/tracer.ts +74 -0
  738. package/Error/dist/effect-Error.cjs.d.mts +0 -2
  739. package/Error/dist/effect-Error.cjs.d.mts.map +0 -1
  740. package/Error/dist/effect-Error.cjs.d.ts +0 -2
  741. package/Error/dist/effect-Error.cjs.d.ts.map +0 -1
  742. package/Error/dist/effect-Error.cjs.dev.js +0 -140
  743. package/Error/dist/effect-Error.cjs.js +0 -7
  744. package/Error/dist/effect-Error.cjs.mjs +0 -4
  745. package/Error/dist/effect-Error.cjs.prod.js +0 -140
  746. package/Error/dist/effect-Error.esm.js +0 -47
  747. package/Error/package.json +0 -4
  748. package/Hub/dist/effect-Hub.cjs.d.mts +0 -2
  749. package/Hub/dist/effect-Hub.cjs.d.mts.map +0 -1
  750. package/Hub/dist/effect-Hub.cjs.d.ts +0 -2
  751. package/Hub/dist/effect-Hub.cjs.d.ts.map +0 -1
  752. package/Hub/dist/effect-Hub.cjs.js +0 -7
  753. package/Hub/package.json +0 -4
  754. package/THub/dist/effect-THub.cjs.d.mts +0 -2
  755. package/THub/dist/effect-THub.cjs.d.mts.map +0 -1
  756. package/THub/dist/effect-THub.cjs.d.ts +0 -2
  757. package/THub/dist/effect-THub.cjs.d.ts.map +0 -1
  758. package/THub/dist/effect-THub.cjs.js +0 -7
  759. package/THub/dist/effect-THub.esm.js +0 -157
  760. package/THub/package.json +0 -4
  761. package/dist/declarations/src/Error.d.ts +0 -37
  762. package/dist/declarations/src/Error.d.ts.map +0 -1
  763. package/dist/declarations/src/Hub.d.ts.map +0 -1
  764. package/dist/declarations/src/THub.d.ts +0 -146
  765. package/dist/declarations/src/THub.d.ts.map +0 -1
  766. package/dist/scopedRef-1c2c9acf.cjs.prod.js +0 -55
  767. package/dist/scopedRef-ab4c58b0.cjs.dev.js +0 -55
  768. /package/dist/{FiberId-e594f6e8.cjs.prod.js → FiberId-1d7ac632.cjs.prod.js} +0 -0
  769. /package/dist/{FiberId-557db880.cjs.dev.js → FiberId-d88ddce6.cjs.dev.js} +0 -0
  770. /package/dist/{RuntimeFlagsPatch-ea268c50.cjs.dev.js → RuntimeFlagsPatch-69102b03.cjs.dev.js} +0 -0
  771. /package/dist/{RuntimeFlagsPatch-e2769b87.cjs.prod.js → RuntimeFlagsPatch-866fa259.cjs.prod.js} +0 -0
  772. /package/dist/{boundaries-20cfad9d.cjs.prod.js → boundaries-9af538e3.cjs.prod.js} +0 -0
  773. /package/dist/{boundaries-3810d885.cjs.dev.js → boundaries-f212e414.cjs.dev.js} +0 -0
  774. /package/dist/{configError-33e55472.cjs.prod.js → configError-b43723af.cjs.prod.js} +0 -0
  775. /package/dist/{configError-240e9b61.cjs.dev.js → configError-d5efe9c0.cjs.dev.js} +0 -0
  776. /package/dist/{configSecret-e34c1b14.cjs.dev.js → configSecret-3e8ae336.cjs.dev.js} +0 -0
  777. /package/dist/{configSecret-d1caca55.cjs.prod.js → configSecret-e2faa181.cjs.prod.js} +0 -0
  778. /package/dist/{take-2af6e92a.cjs.prod.js → take-85daaf79.cjs.prod.js} +0 -0
  779. /package/dist/{take-df9480a8.cjs.dev.js → take-f9ef9e2e.cjs.dev.js} +0 -0
package/src/Channel.ts ADDED
@@ -0,0 +1,2244 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Cause from "./Cause"
5
+ import type * as ChildExecutorDecision from "./ChannelChildExecutorDecision"
6
+ import type * as MergeDecision from "./ChannelMergeDecision"
7
+ import type * as MergeStrategy from "./ChannelMergeStrategy"
8
+ import type * as SingleProducerAsyncInput from "./ChannelSingleProducerAsyncInput"
9
+ import type * as UpstreamPullRequest from "./ChannelUpstreamPullRequest"
10
+ import type * as UpstreamPullStrategy from "./ChannelUpstreamPullStrategy"
11
+ import type * as Chunk from "./Chunk"
12
+ import type * as Context from "./Context"
13
+ import type * as Deferred from "./Deferred"
14
+ import type * as Effect from "./Effect"
15
+ import type * as Either from "./Either"
16
+ import type * as Exit from "./Exit"
17
+ import type { LazyArg } from "./Function"
18
+ import * as channel from "./internal/channel"
19
+ import * as core from "./internal/core-stream"
20
+ import * as sink from "./internal/sink"
21
+ import * as stream from "./internal/stream"
22
+ import type * as Layer from "./Layer"
23
+ import type * as Option from "./Option"
24
+ import type { Pipeable } from "./Pipeable"
25
+ import type { Predicate } from "./Predicate"
26
+ import type * as PubSub from "./PubSub"
27
+ import type * as Queue from "./Queue"
28
+ import type * as Ref from "./Ref"
29
+ import type * as Scope from "./Scope"
30
+ import type * as Sink from "./Sink"
31
+ import type * as Stream from "./Stream"
32
+ import type * as Tracer from "./Tracer"
33
+ import type * as Unify from "./Unify"
34
+
35
+ /**
36
+ * @since 2.0.0
37
+ * @category symbols
38
+ */
39
+ export const ChannelTypeId: unique symbol = core.ChannelTypeId
40
+
41
+ /**
42
+ * @since 2.0.0
43
+ * @category symbols
44
+ */
45
+ export type ChannelTypeId = typeof ChannelTypeId
46
+
47
+ /**
48
+ * A `Channel` is a nexus of I/O operations, which supports both reading and
49
+ * writing. A channel may read values of type `InElem` and write values of type
50
+ * `OutElem`. When the channel finishes, it yields a value of type `OutDone`. A
51
+ * channel may fail with a value of type `OutErr`.
52
+ *
53
+ * Channels are the foundation of Streams: both streams and sinks are built on
54
+ * channels. Most users shouldn't have to use channels directly, as streams and
55
+ * sinks are much more convenient and cover all common use cases. However, when
56
+ * adding new stream and sink operators, or doing something highly specialized,
57
+ * it may be useful to use channels directly.
58
+ *
59
+ * Channels compose in a variety of ways:
60
+ *
61
+ * - **Piping**: One channel can be piped to another channel, assuming the
62
+ * input type of the second is the same as the output type of the first.
63
+ * - **Sequencing**: The terminal value of one channel can be used to create
64
+ * another channel, and both the first channel and the function that makes
65
+ * the second channel can be composed into a channel.
66
+ * - **Concatenating**: The output of one channel can be used to create other
67
+ * channels, which are all concatenated together. The first channel and the
68
+ * function that makes the other channels can be composed into a channel.
69
+ *
70
+ * @since 2.0.0
71
+ * @category models
72
+ */
73
+ export interface Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
74
+ extends Channel.Variance<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, Pipeable
75
+ {
76
+ [Unify.typeSymbol]?: unknown
77
+ [Unify.unifySymbol]?: ChannelUnify<this>
78
+ [Unify.blacklistSymbol]?: ChannelUnifyBlacklist
79
+ }
80
+
81
+ /**
82
+ * @since 2.0.0
83
+ * @category models
84
+ */
85
+ export interface ChannelUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
86
+ Channel?: () => A[Unify.typeSymbol] extends
87
+ | Channel<
88
+ infer Env,
89
+ infer InErr,
90
+ infer InElem,
91
+ infer InDone,
92
+ infer OutErr,
93
+ infer OutElem,
94
+ infer OutDone
95
+ >
96
+ | infer _ ? Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
97
+ : never
98
+ }
99
+
100
+ /**
101
+ * @category models
102
+ * @since 2.0.0
103
+ */
104
+ export interface ChannelUnifyBlacklist extends Effect.EffectUnifyBlacklist {
105
+ Channel?: true
106
+ }
107
+
108
+ /**
109
+ * @since 2.0.0
110
+ * @category models
111
+ */
112
+ declare module "./Effect" {
113
+ interface Effect<R, E, A> extends Channel<R, unknown, unknown, unknown, E, never, A> {}
114
+ interface EffectUnifyBlacklist {
115
+ Channel?: true
116
+ }
117
+ }
118
+
119
+ /**
120
+ * @since 2.0.0
121
+ */
122
+ export declare namespace Channel {
123
+ /**
124
+ * @since 2.0.0
125
+ * @category models
126
+ */
127
+ export interface Variance<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
128
+ readonly [ChannelTypeId]: VarianceStruct<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
129
+ }
130
+ /**
131
+ * @since 2.0.0
132
+ * @category models
133
+ */
134
+ export interface VarianceStruct<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
135
+ _Env: (_: never) => Env
136
+ _InErr: (_: InErr) => void
137
+ _InElem: (_: InElem) => void
138
+ _InDone: (_: InDone) => void
139
+ _OutErr: (_: never) => OutErr
140
+ _OutElem: (_: never) => OutElem
141
+ _OutDone: (_: never) => OutDone
142
+ }
143
+ }
144
+
145
+ /**
146
+ * @since 2.0.0
147
+ * @category symbols
148
+ */
149
+ export const ChannelExceptionTypeId: unique symbol = channel.ChannelExceptionTypeId
150
+
151
+ /**
152
+ * @since 2.0.0
153
+ * @category symbols
154
+ */
155
+ export type ChannelExceptionTypeId = typeof ChannelExceptionTypeId
156
+
157
+ /**
158
+ * Represents a generic checked exception which occurs when a `Channel` is
159
+ * executed.
160
+ *
161
+ * @since 2.0.0
162
+ * @category models
163
+ */
164
+ export interface ChannelException<E> {
165
+ readonly _tag: "ChannelException"
166
+ readonly [ChannelExceptionTypeId]: ChannelExceptionTypeId
167
+ readonly error: E
168
+ }
169
+
170
+ /**
171
+ * @since 2.0.0
172
+ * @category constructors
173
+ */
174
+ export const acquireUseRelease: <Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone, Acquired>(
175
+ acquire: Effect.Effect<Env, OutErr, Acquired>,
176
+ use: (a: Acquired) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone>,
177
+ release: (a: Acquired, exit: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env, never, any>
178
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem1, OutDone> = channel.acquireUseRelease
179
+
180
+ /**
181
+ * @since 2.0.0
182
+ * @category constructors
183
+ */
184
+ export const acquireReleaseOut: <R, R2, E, Z>(
185
+ self: Effect.Effect<R, E, Z>,
186
+ release: (z: Z, e: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, unknown>
187
+ ) => Channel<R | R2, unknown, unknown, unknown, E, Z, void> = core.acquireReleaseOut
188
+
189
+ /**
190
+ * Returns a new channel that is the same as this one, except the terminal
191
+ * value of the channel is the specified constant value.
192
+ *
193
+ * This method produces the same result as mapping this channel to the
194
+ * specified constant value.
195
+ *
196
+ * @since 2.0.0
197
+ * @category mapping
198
+ */
199
+ export const as: {
200
+ <OutDone2>(
201
+ value: OutDone2
202
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
203
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
204
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
205
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, OutDone2>(
206
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
207
+ value: OutDone2
208
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
209
+ } = channel.as
210
+
211
+ /**
212
+ * @since 2.0.0
213
+ * @category mapping
214
+ */
215
+ export const asUnit: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
216
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
217
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, void> = channel.asUnit
218
+
219
+ /**
220
+ * Creates a channel backed by a buffer. When the buffer is empty, the channel
221
+ * will simply passthrough its input as output. However, when the buffer is
222
+ * non-empty, the value inside the buffer will be passed along as output.
223
+ *
224
+ * @since 2.0.0
225
+ * @category constructors
226
+ */
227
+ export const buffer: <InErr, InElem, InDone>(
228
+ options: {
229
+ readonly empty: InElem
230
+ readonly isEmpty: Predicate<InElem>
231
+ readonly ref: Ref.Ref<InElem>
232
+ }
233
+ ) => Channel<never, InErr, InElem, InDone, InErr, InElem, InDone> = channel.buffer
234
+
235
+ /**
236
+ * @since 2.0.0
237
+ * @category constructors
238
+ */
239
+ export const bufferChunk: <InErr, InElem, InDone>(
240
+ ref: Ref.Ref<Chunk.Chunk<InElem>>
241
+ ) => Channel<never, InErr, Chunk.Chunk<InElem>, InDone, InErr, Chunk.Chunk<InElem>, InDone> = channel.bufferChunk
242
+
243
+ /**
244
+ * Returns a new channel that is the same as this one, except if this channel
245
+ * errors for any typed error, then the returned channel will switch over to
246
+ * using the fallback channel returned by the specified error handler.
247
+ *
248
+ * @since 2.0.0
249
+ * @category error handling
250
+ */
251
+ export const catchAll: {
252
+ <Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
253
+ f: (error: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
254
+ ): <Env, InErr, InElem, InDone, OutElem, OutDone>(
255
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
256
+ ) => Channel<
257
+ Env1 | Env,
258
+ InErr & InErr1,
259
+ InElem & InElem1,
260
+ InDone & InDone1,
261
+ OutErr1,
262
+ OutElem1 | OutElem,
263
+ OutDone1 | OutDone
264
+ >
265
+ <Env, InErr, InElem, InDone, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
266
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
267
+ f: (error: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
268
+ ): Channel<
269
+ Env | Env1,
270
+ InErr & InErr1,
271
+ InElem & InElem1,
272
+ InDone & InDone1,
273
+ OutErr1,
274
+ OutElem | OutElem1,
275
+ OutDone | OutDone1
276
+ >
277
+ } = channel.catchAll
278
+
279
+ /**
280
+ * Returns a new channel that is the same as this one, except if this channel
281
+ * errors for any typed error, then the returned channel will switch over to
282
+ * using the fallback channel returned by the specified error handler.
283
+ *
284
+ * @since 2.0.0
285
+ * @category error handling
286
+ */
287
+ export const catchAllCause: {
288
+ <Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
289
+ f: (cause: Cause.Cause<OutErr>) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
290
+ ): <Env, InErr, InElem, InDone, OutElem, OutDone>(
291
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
292
+ ) => Channel<
293
+ Env1 | Env,
294
+ InErr & InErr1,
295
+ InElem & InElem1,
296
+ InDone & InDone1,
297
+ OutErr1,
298
+ OutElem1 | OutElem,
299
+ OutDone1 | OutDone
300
+ >
301
+ <Env, InErr, InElem, InDone, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
302
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
303
+ f: (cause: Cause.Cause<OutErr>) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
304
+ ): Channel<
305
+ Env | Env1,
306
+ InErr & InErr1,
307
+ InElem & InElem1,
308
+ InDone & InDone1,
309
+ OutErr1,
310
+ OutElem | OutElem1,
311
+ OutDone | OutDone1
312
+ >
313
+ } = core.catchAllCause
314
+
315
+ /**
316
+ * Concat sequentially a channel of channels.
317
+ *
318
+ * @since 2.0.0
319
+ * @category constructors
320
+ */
321
+ export const concatAll: <Env, InErr, InElem, InDone, OutErr, OutElem>(
322
+ channels: Channel<Env, InErr, InElem, InDone, OutErr, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, any>, any>
323
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, any> = core.concatAll
324
+
325
+ /**
326
+ * Concat sequentially a channel of channels.
327
+ *
328
+ * @since 2.0.0
329
+ * @category constructors
330
+ */
331
+ export const concatAllWith: <
332
+ Env,
333
+ InErr,
334
+ InElem,
335
+ InDone,
336
+ OutErr,
337
+ OutElem,
338
+ OutDone,
339
+ OutDone2,
340
+ OutDone3,
341
+ Env2,
342
+ InErr2,
343
+ InElem2,
344
+ InDone2,
345
+ OutErr2
346
+ >(
347
+ channels: Channel<
348
+ Env,
349
+ InErr,
350
+ InElem,
351
+ InDone,
352
+ OutErr,
353
+ Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem, OutDone>,
354
+ OutDone2
355
+ >,
356
+ f: (o: OutDone, o1: OutDone) => OutDone,
357
+ g: (o: OutDone, o2: OutDone2) => OutDone3
358
+ ) => Channel<Env | Env2, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr | OutErr2, OutElem, OutDone3> =
359
+ core.concatAllWith
360
+
361
+ /**
362
+ * Returns a new channel whose outputs are fed to the specified factory
363
+ * function, which creates new channels in response. These new channels are
364
+ * sequentially concatenated together, and all their outputs appear as outputs
365
+ * of the newly returned channel.
366
+ *
367
+ * @since 2.0.0
368
+ * @category utils
369
+ */
370
+ export const concatMap: {
371
+ <OutElem, OutElem2, Env2, InErr2, InElem2, InDone2, OutErr2, _>(
372
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, _>
373
+ ): <Env, InErr, InElem, InDone, OutErr, OutDone>(
374
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
375
+ ) => Channel<Env2 | Env, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr2 | OutErr, OutElem2, unknown>
376
+ <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, OutElem2, Env2, InErr2, InElem2, InDone2, OutErr2, _>(
377
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
378
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, _>
379
+ ): Channel<Env | Env2, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr | OutErr2, OutElem2, unknown>
380
+ } = channel.concatMap
381
+
382
+ /**
383
+ * Returns a new channel whose outputs are fed to the specified factory
384
+ * function, which creates new channels in response. These new channels are
385
+ * sequentially concatenated together, and all their outputs appear as outputs
386
+ * of the newly returned channel. The provided merging function is used to
387
+ * merge the terminal values of all channels into the single terminal value of
388
+ * the returned channel.
389
+ *
390
+ * @since 2.0.0
391
+ * @category utils
392
+ */
393
+ export const concatMapWith: {
394
+ <OutElem, OutElem2, OutDone, OutDone2, OutDone3, Env2, InErr2, InElem2, InDone2, OutErr2>(
395
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
396
+ g: (o: OutDone, o1: OutDone) => OutDone,
397
+ h: (o: OutDone, o2: OutDone2) => OutDone3
398
+ ): <Env, InErr, InElem, InDone, OutErr>(
399
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
400
+ ) => Channel<Env2 | Env, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr2 | OutErr, OutElem2, OutDone3>
401
+ <
402
+ Env,
403
+ InErr,
404
+ InElem,
405
+ InDone,
406
+ OutErr,
407
+ OutElem,
408
+ OutElem2,
409
+ OutDone,
410
+ OutDone2,
411
+ OutDone3,
412
+ Env2,
413
+ InErr2,
414
+ InElem2,
415
+ InDone2,
416
+ OutErr2
417
+ >(
418
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
419
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
420
+ g: (o: OutDone, o1: OutDone) => OutDone,
421
+ h: (o: OutDone, o2: OutDone2) => OutDone3
422
+ ): Channel<Env | Env2, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr | OutErr2, OutElem2, OutDone3>
423
+ } = core.concatMapWith
424
+
425
+ /**
426
+ * Returns a new channel whose outputs are fed to the specified factory
427
+ * function, which creates new channels in response. These new channels are
428
+ * sequentially concatenated together, and all their outputs appear as outputs
429
+ * of the newly returned channel. The provided merging function is used to
430
+ * merge the terminal values of all channels into the single terminal value of
431
+ * the returned channel.
432
+ *
433
+ * @since 2.0.0
434
+ * @category utils
435
+ */
436
+ export const concatMapWithCustom: {
437
+ <OutElem, OutElem2, OutDone, OutDone2, OutDone3, Env2, InErr2, InElem2, InDone2, OutErr2>(
438
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
439
+ g: (o: OutDone, o1: OutDone) => OutDone,
440
+ h: (o: OutDone, o2: OutDone2) => OutDone3,
441
+ onPull: (
442
+ upstreamPullRequest: UpstreamPullRequest.UpstreamPullRequest<OutElem>
443
+ ) => UpstreamPullStrategy.UpstreamPullStrategy<OutElem2>,
444
+ onEmit: (elem: OutElem2) => ChildExecutorDecision.ChildExecutorDecision
445
+ ): <Env, InErr, InElem, InDone, OutErr>(
446
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
447
+ ) => Channel<Env2 | Env, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr2 | OutErr, OutElem2, OutDone3>
448
+ <
449
+ Env,
450
+ InErr,
451
+ InElem,
452
+ InDone,
453
+ OutErr,
454
+ OutElem,
455
+ OutElem2,
456
+ OutDone,
457
+ OutDone2,
458
+ OutDone3,
459
+ Env2,
460
+ InErr2,
461
+ InElem2,
462
+ InDone2,
463
+ OutErr2
464
+ >(
465
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>,
466
+ f: (o: OutElem) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone>,
467
+ g: (o: OutDone, o1: OutDone) => OutDone,
468
+ h: (o: OutDone, o2: OutDone2) => OutDone3,
469
+ onPull: (
470
+ upstreamPullRequest: UpstreamPullRequest.UpstreamPullRequest<OutElem>
471
+ ) => UpstreamPullStrategy.UpstreamPullStrategy<OutElem2>,
472
+ onEmit: (elem: OutElem2) => ChildExecutorDecision.ChildExecutorDecision
473
+ ): Channel<Env | Env2, InErr & InErr2, InElem & InElem2, InDone & InDone2, OutErr | OutErr2, OutElem2, OutDone3>
474
+ } = core.concatMapWithCustom
475
+
476
+ /**
477
+ * Returns a new channel, which is the same as this one, except its outputs
478
+ * are filtered and transformed by the specified partial function.
479
+ *
480
+ * @since 2.0.0
481
+ * @category utils
482
+ */
483
+ export const collect: {
484
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutElem2, OutDone>(
485
+ pf: (o: OutElem) => Option.Option<OutElem2>
486
+ ): (
487
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
488
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem2, OutDone>
489
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutElem2, OutDone>(
490
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
491
+ pf: (o: OutElem) => Option.Option<OutElem2>
492
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem2, OutDone>
493
+ } = channel.collect
494
+
495
+ /**
496
+ * Returns a new channel, which is the concatenation of all the channels that
497
+ * are written out by this channel. This method may only be called on channels
498
+ * that output other channels.
499
+ *
500
+ * @since 2.0.0
501
+ * @category utils
502
+ */
503
+ export const concatOut: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
504
+ self: Channel<
505
+ Env,
506
+ InErr,
507
+ InElem,
508
+ InDone,
509
+ OutErr,
510
+ Channel<Env, InErr, InElem, InDone, OutErr, OutElem, unknown>,
511
+ OutDone
512
+ >
513
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, unknown> = channel.concatOut
514
+
515
+ /**
516
+ * Returns a new channel which is the same as this one but applies the given
517
+ * function to the input channel's done value.
518
+ *
519
+ * @since 2.0.0
520
+ * @category utils
521
+ */
522
+ export const mapInput: {
523
+ <InDone0, InDone>(
524
+ f: (a: InDone0) => InDone
525
+ ): <Env, InErr, InElem, OutErr, OutElem, OutDone>(
526
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
527
+ ) => Channel<Env, InErr, InElem, InDone0, OutErr, OutElem, OutDone>
528
+ <Env, InErr, InElem, OutErr, OutElem, OutDone, InDone0, InDone>(
529
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
530
+ f: (a: InDone0) => InDone
531
+ ): Channel<Env, InErr, InElem, InDone0, OutErr, OutElem, OutDone>
532
+ } = channel.mapInput
533
+
534
+ /**
535
+ * Returns a new channel which is the same as this one but applies the given
536
+ * effectual function to the input channel's done value.
537
+ *
538
+ * @since 2.0.0
539
+ * @category utils
540
+ */
541
+ export const mapInputEffect: {
542
+ <Env1, InErr, InDone0, InDone>(
543
+ f: (i: InDone0) => Effect.Effect<Env1, InErr, InDone>
544
+ ): <Env, InElem, OutErr, OutElem, OutDone>(
545
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
546
+ ) => Channel<Env1 | Env, InErr, InElem, InDone0, OutErr, OutElem, OutDone>
547
+ <Env, InElem, OutErr, OutElem, OutDone, Env1, InErr, InDone0, InDone>(
548
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
549
+ f: (i: InDone0) => Effect.Effect<Env1, InErr, InDone>
550
+ ): Channel<Env | Env1, InErr, InElem, InDone0, OutErr, OutElem, OutDone>
551
+ } = channel.mapInputEffect
552
+
553
+ /**
554
+ * Returns a new channel which is the same as this one but applies the given
555
+ * function to the input channel's error value.
556
+ *
557
+ * @since 2.0.0
558
+ * @category utils
559
+ */
560
+ export const mapInputError: {
561
+ <InErr0, InErr>(
562
+ f: (a: InErr0) => InErr
563
+ ): <Env, InElem, InDone, OutErr, OutElem, OutDone>(
564
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
565
+ ) => Channel<Env, InErr0, InElem, InDone, OutErr, OutElem, OutDone>
566
+ <Env, InElem, InDone, OutErr, OutElem, OutDone, InErr0, InErr>(
567
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
568
+ f: (a: InErr0) => InErr
569
+ ): Channel<Env, InErr0, InElem, InDone, OutErr, OutElem, OutDone>
570
+ } = channel.mapInputError
571
+
572
+ /**
573
+ * Returns a new channel which is the same as this one but applies the given
574
+ * effectual function to the input channel's error value.
575
+ *
576
+ * @since 2.0.0
577
+ * @category utils
578
+ */
579
+ export const mapInputErrorEffect: {
580
+ <Env1, InErr0, InErr, InDone>(
581
+ f: (error: InErr0) => Effect.Effect<Env1, InErr, InDone>
582
+ ): <Env, InElem, OutErr, OutElem, OutDone>(
583
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
584
+ ) => Channel<Env1 | Env, InErr0, InElem, InDone, OutErr, OutElem, OutDone>
585
+ <Env, InElem, OutErr, OutElem, OutDone, Env1, InErr0, InErr, InDone>(
586
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
587
+ f: (error: InErr0) => Effect.Effect<Env1, InErr, InDone>
588
+ ): Channel<Env | Env1, InErr0, InElem, InDone, OutErr, OutElem, OutDone>
589
+ } = channel.mapInputErrorEffect
590
+
591
+ /**
592
+ * Returns a new channel which is the same as this one but applies the given
593
+ * function to the input channel's output elements.
594
+ *
595
+ * @since 2.0.0
596
+ * @category utils
597
+ */
598
+ export const mapInputIn: {
599
+ <InElem0, InElem>(
600
+ f: (a: InElem0) => InElem
601
+ ): <Env, InErr, InDone, OutErr, OutElem, OutDone>(
602
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
603
+ ) => Channel<Env, InErr, InElem0, InDone, OutErr, OutElem, OutDone>
604
+ <Env, InErr, InDone, OutErr, OutElem, OutDone, InElem0, InElem>(
605
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
606
+ f: (a: InElem0) => InElem
607
+ ): Channel<Env, InErr, InElem0, InDone, OutErr, OutElem, OutDone>
608
+ } = channel.mapInputIn
609
+
610
+ /**
611
+ * Returns a new channel which is the same as this one but applies the given
612
+ * effectual function to the input channel's output elements.
613
+ *
614
+ * @since 2.0.0
615
+ * @category utils
616
+ */
617
+ export const mapInputInEffect: {
618
+ <Env1, InErr, InElem0, InElem>(
619
+ f: (a: InElem0) => Effect.Effect<Env1, InErr, InElem>
620
+ ): <Env, InDone, OutErr, OutElem, OutDone>(
621
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
622
+ ) => Channel<Env1 | Env, InErr, InElem0, InDone, OutErr, OutElem, OutDone>
623
+ <Env, InDone, OutErr, OutElem, OutDone, Env1, InErr, InElem0, InElem>(
624
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
625
+ f: (a: InElem0) => Effect.Effect<Env1, InErr, InElem>
626
+ ): Channel<Env | Env1, InErr, InElem0, InDone, OutErr, OutElem, OutDone>
627
+ } = channel.mapInputInEffect
628
+
629
+ /**
630
+ * Returns a new channel, which is the same as this one, except that all the
631
+ * outputs are collected and bundled into a tuple together with the terminal
632
+ * value of this channel.
633
+ *
634
+ * As the channel returned from this channel collects all of this channel's
635
+ * output into an in- memory chunk, it is not safe to call this method on
636
+ * channels that output a large or unbounded number of values.
637
+ *
638
+ * @since 2.0.0
639
+ * @category utils
640
+ */
641
+ export const doneCollect: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
642
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
643
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, never, readonly [Chunk.Chunk<OutElem>, OutDone]> = channel.doneCollect
644
+
645
+ /**
646
+ * Returns a new channel which reads all the elements from upstream's output
647
+ * channel and ignores them, then terminates with the upstream result value.
648
+ *
649
+ * @since 2.0.0
650
+ * @category utils
651
+ */
652
+ export const drain: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
653
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
654
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, never, OutDone> = channel.drain
655
+
656
+ /**
657
+ * Returns a new channel which connects the given `AsyncInputProducer` as
658
+ * this channel's input.
659
+ *
660
+ * @since 2.0.0
661
+ * @category utils
662
+ */
663
+ export const embedInput: {
664
+ <InErr, InElem, InDone>(
665
+ input: SingleProducerAsyncInput.AsyncInputProducer<InErr, InElem, InDone>
666
+ ): <Env, OutErr, OutElem, OutDone>(
667
+ self: Channel<Env, unknown, unknown, unknown, OutErr, OutElem, OutDone>
668
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
669
+ <Env, OutErr, OutElem, OutDone, InErr, InElem, InDone>(
670
+ self: Channel<Env, unknown, unknown, unknown, OutErr, OutElem, OutDone>,
671
+ input: SingleProducerAsyncInput.AsyncInputProducer<InErr, InElem, InDone>
672
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
673
+ } = core.embedInput
674
+
675
+ /**
676
+ * Returns a new channel that collects the output and terminal value of this
677
+ * channel, which it then writes as output of the returned channel.
678
+ *
679
+ * @since 2.0.0
680
+ * @category utils
681
+ */
682
+ export const emitCollect: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
683
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
684
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, readonly [Chunk.Chunk<OutElem>, OutDone], void> = channel.emitCollect
685
+
686
+ /**
687
+ * Returns a new channel with an attached finalizer. The finalizer is
688
+ * guaranteed to be executed so long as the channel begins execution (and
689
+ * regardless of whether or not it completes).
690
+ *
691
+ * @since 2.0.0
692
+ * @category utils
693
+ */
694
+ export const ensuring: {
695
+ <Env1, Z>(
696
+ finalizer: Effect.Effect<Env1, never, Z>
697
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
698
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
699
+ ) => Channel<Env1 | Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
700
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, Z>(
701
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
702
+ finalizer: Effect.Effect<Env1, never, Z>
703
+ ): Channel<Env | Env1, InErr, InElem, InDone, OutErr, OutElem, OutDone>
704
+ } = channel.ensuring
705
+
706
+ /**
707
+ * Returns a new channel with an attached finalizer. The finalizer is
708
+ * guaranteed to be executed so long as the channel begins execution (and
709
+ * regardless of whether or not it completes).
710
+ *
711
+ * @since 2.0.0
712
+ * @category utils
713
+ */
714
+ export const ensuringWith: {
715
+ <Env2, OutErr, OutDone>(
716
+ finalizer: (e: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env2, never, unknown>
717
+ ): <Env, InErr, InElem, InDone, OutElem>(
718
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
719
+ ) => Channel<Env2 | Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
720
+ <Env, InErr, InElem, InDone, OutElem, Env2, OutErr, OutDone>(
721
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
722
+ finalizer: (e: Exit.Exit<OutErr, OutDone>) => Effect.Effect<Env2, never, unknown>
723
+ ): Channel<Env | Env2, InErr, InElem, InDone, OutErr, OutElem, OutDone>
724
+ } = core.ensuringWith
725
+
726
+ /**
727
+ * Accesses the whole context of the channel.
728
+ *
729
+ * @since 2.0.0
730
+ * @category context
731
+ */
732
+ export const context: <Env>() => Channel<Env, unknown, unknown, unknown, never, never, Context.Context<Env>> =
733
+ channel.context
734
+
735
+ /**
736
+ * Accesses the context of the channel with the specified function.
737
+ *
738
+ * @since 2.0.0
739
+ * @category context
740
+ */
741
+ export const contextWith: <Env, OutDone>(
742
+ f: (env: Context.Context<Env>) => OutDone
743
+ ) => Channel<Env, unknown, unknown, unknown, never, never, OutDone> = channel.contextWith
744
+
745
+ /**
746
+ * Accesses the context of the channel in the context of a channel.
747
+ *
748
+ * @since 2.0.0
749
+ * @category context
750
+ */
751
+ export const contextWithChannel: <Env, Env1, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
752
+ f: (env: Context.Context<Env>) => Channel<Env1, InErr, InElem, InDone, OutErr, OutElem, OutDone>
753
+ ) => Channel<Env | Env1, InErr, InElem, InDone, OutErr, OutElem, OutDone> = channel.contextWithChannel
754
+
755
+ /**
756
+ * Accesses the context of the channel in the context of an effect.
757
+ *
758
+ * @since 2.0.0
759
+ * @category context
760
+ */
761
+ export const contextWithEffect: <Env, Env1, OutErr, OutDone>(
762
+ f: (env: Context.Context<Env>) => Effect.Effect<Env1, OutErr, OutDone>
763
+ ) => Channel<Env | Env1, unknown, unknown, unknown, OutErr, never, OutDone> = channel.contextWithEffect
764
+
765
+ /**
766
+ * Constructs a channel that fails immediately with the specified error.
767
+ *
768
+ * @since 2.0.0
769
+ * @category constructors
770
+ */
771
+ export const fail: <E>(error: E) => Channel<never, unknown, unknown, unknown, E, never, never> = core.fail
772
+
773
+ /**
774
+ * Constructs a channel that succeeds immediately with the specified lazily
775
+ * evaluated value.
776
+ *
777
+ * @since 2.0.0
778
+ * @category constructors
779
+ */
780
+ export const failSync: <E>(evaluate: LazyArg<E>) => Channel<never, unknown, unknown, unknown, E, never, never> =
781
+ core.failSync
782
+
783
+ /**
784
+ * Constructs a channel that fails immediately with the specified `Cause`.
785
+ *
786
+ * @since 2.0.0
787
+ * @category constructors
788
+ */
789
+ export const failCause: <E>(cause: Cause.Cause<E>) => Channel<never, unknown, unknown, unknown, E, never, never> =
790
+ core.failCause
791
+
792
+ /**
793
+ * Constructs a channel that succeeds immediately with the specified lazily
794
+ * evaluated `Cause`.
795
+ *
796
+ * @since 2.0.0
797
+ * @category constructors
798
+ */
799
+ export const failCauseSync: <E>(
800
+ evaluate: LazyArg<Cause.Cause<E>>
801
+ ) => Channel<never, unknown, unknown, unknown, E, never, never> = core.failCauseSync
802
+
803
+ /**
804
+ * Returns a new channel, which sequentially combines this channel, together
805
+ * with the provided factory function, which creates a second channel based on
806
+ * the terminal value of this channel. The result is a channel that will first
807
+ * perform the functions of this channel, before performing the functions of
808
+ * the created channel (including yielding its terminal value).
809
+ *
810
+ * @since 2.0.0
811
+ * @category sequencing
812
+ */
813
+ export const flatMap: {
814
+ <OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>(
815
+ f: (d: OutDone) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
816
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem>(
817
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
818
+ ) => Channel<
819
+ Env1 | Env,
820
+ InErr & InErr1,
821
+ InElem & InElem1,
822
+ InDone & InDone1,
823
+ OutErr1 | OutErr,
824
+ OutElem1 | OutElem,
825
+ OutDone2
826
+ >
827
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>(
828
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
829
+ f: (d: OutDone) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
830
+ ): Channel<
831
+ Env | Env1,
832
+ InErr & InErr1,
833
+ InElem & InElem1,
834
+ InDone & InDone1,
835
+ OutErr | OutErr1,
836
+ OutElem | OutElem1,
837
+ OutDone2
838
+ >
839
+ } = core.flatMap
840
+
841
+ /**
842
+ * Returns a new channel, which flattens the terminal value of this channel.
843
+ * This function may only be called if the terminal value of this channel is
844
+ * another channel of compatible types.
845
+ *
846
+ * @since 2.0.0
847
+ * @category sequencing
848
+ */
849
+ export const flatten: <
850
+ Env,
851
+ InErr,
852
+ InElem,
853
+ InDone,
854
+ OutErr,
855
+ OutElem,
856
+ Env1,
857
+ InErr1,
858
+ InElem1,
859
+ InDone1,
860
+ OutErr1,
861
+ OutElem1,
862
+ OutDone2
863
+ >(
864
+ self: Channel<
865
+ Env,
866
+ InErr,
867
+ InElem,
868
+ InDone,
869
+ OutErr,
870
+ OutElem,
871
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone2>
872
+ >
873
+ ) => Channel<
874
+ Env | Env1,
875
+ InErr & InErr1,
876
+ InElem & InElem1,
877
+ InDone & InDone1,
878
+ OutErr | OutErr1,
879
+ OutElem | OutElem1,
880
+ OutDone2
881
+ > = channel.flatten
882
+
883
+ /**
884
+ * Folds over the result of this channel.
885
+ *
886
+ * @since 2.0.0
887
+ * @category utils
888
+ */
889
+ export const foldChannel: {
890
+ <
891
+ Env1,
892
+ Env2,
893
+ InErr1,
894
+ InErr2,
895
+ InElem1,
896
+ InElem2,
897
+ InDone1,
898
+ InDone2,
899
+ OutErr,
900
+ OutErr1,
901
+ OutErr2,
902
+ OutElem1,
903
+ OutElem2,
904
+ OutDone,
905
+ OutDone1,
906
+ OutDone2
907
+ >(
908
+ options: {
909
+ readonly onFailure: (error: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
910
+ readonly onSuccess: (done: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone2>
911
+ }
912
+ ): <Env, InErr, InElem, InDone, OutElem>(
913
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
914
+ ) => Channel<
915
+ Env1 | Env2 | Env,
916
+ InErr & InErr1 & InErr2,
917
+ InElem & InElem1 & InElem2,
918
+ InDone & InDone1 & InDone2,
919
+ OutErr1 | OutErr2,
920
+ OutElem1 | OutElem2 | OutElem,
921
+ OutDone1 | OutDone2
922
+ >
923
+ <
924
+ Env,
925
+ InErr,
926
+ InElem,
927
+ InDone,
928
+ OutElem,
929
+ Env1,
930
+ Env2,
931
+ InErr1,
932
+ InErr2,
933
+ InElem1,
934
+ InElem2,
935
+ InDone1,
936
+ InDone2,
937
+ OutErr,
938
+ OutErr1,
939
+ OutErr2,
940
+ OutElem1,
941
+ OutElem2,
942
+ OutDone,
943
+ OutDone1,
944
+ OutDone2
945
+ >(
946
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
947
+ options: {
948
+ readonly onFailure: (error: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
949
+ readonly onSuccess: (done: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr2, OutElem2, OutDone2>
950
+ }
951
+ ): Channel<
952
+ Env | Env1 | Env2,
953
+ InErr & InErr1 & InErr2,
954
+ InElem & InElem1 & InElem2,
955
+ InDone & InDone1 & InDone2,
956
+ OutErr1 | OutErr2,
957
+ OutElem | OutElem1 | OutElem2,
958
+ OutDone1 | OutDone2
959
+ >
960
+ } = channel.foldChannel
961
+
962
+ /**
963
+ * Folds over the result of this channel including any cause of termination.
964
+ *
965
+ * @since 2.0.0
966
+ * @category utils
967
+ */
968
+ export const foldCauseChannel: {
969
+ <
970
+ Env1,
971
+ Env2,
972
+ InErr1,
973
+ InErr2,
974
+ InElem1,
975
+ InElem2,
976
+ InDone1,
977
+ InDone2,
978
+ OutErr,
979
+ OutErr2,
980
+ OutErr3,
981
+ OutElem1,
982
+ OutElem2,
983
+ OutDone,
984
+ OutDone2,
985
+ OutDone3
986
+ >(
987
+ options: {
988
+ readonly onFailure: (
989
+ c: Cause.Cause<OutErr>
990
+ ) => Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>
991
+ readonly onSuccess: (o: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>
992
+ }
993
+ ): <Env, InErr, InElem, InDone, OutElem>(
994
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
995
+ ) => Channel<
996
+ Env1 | Env2 | Env,
997
+ InErr & InErr1 & InErr2,
998
+ InElem & InElem1 & InElem2,
999
+ InDone & InDone1 & InDone2,
1000
+ OutErr2 | OutErr3,
1001
+ OutElem1 | OutElem2 | OutElem,
1002
+ OutDone2 | OutDone3
1003
+ >
1004
+ <
1005
+ Env,
1006
+ InErr,
1007
+ InElem,
1008
+ InDone,
1009
+ OutElem,
1010
+ Env1,
1011
+ Env2,
1012
+ InErr1,
1013
+ InErr2,
1014
+ InElem1,
1015
+ InElem2,
1016
+ InDone1,
1017
+ InDone2,
1018
+ OutErr,
1019
+ OutErr2,
1020
+ OutErr3,
1021
+ OutElem1,
1022
+ OutElem2,
1023
+ OutDone,
1024
+ OutDone2,
1025
+ OutDone3
1026
+ >(
1027
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1028
+ options: {
1029
+ readonly onFailure: (
1030
+ c: Cause.Cause<OutErr>
1031
+ ) => Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>
1032
+ readonly onSuccess: (o: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>
1033
+ }
1034
+ ): Channel<
1035
+ Env | Env1 | Env2,
1036
+ InErr & InErr1 & InErr2,
1037
+ InElem & InElem1 & InElem2,
1038
+ InDone & InDone1 & InDone2,
1039
+ OutErr2 | OutErr3,
1040
+ OutElem | OutElem1 | OutElem2,
1041
+ OutDone2 | OutDone3
1042
+ >
1043
+ } = core.foldCauseChannel
1044
+
1045
+ /**
1046
+ * Use an effect to end a channel.
1047
+ *
1048
+ * @since 2.0.0
1049
+ * @category constructors
1050
+ */
1051
+ export const fromEffect: <R, E, A>(
1052
+ effect: Effect.Effect<R, E, A>
1053
+ ) => Channel<R, unknown, unknown, unknown, E, never, A> = core.fromEffect
1054
+
1055
+ /**
1056
+ * Constructs a channel from an `Either`.
1057
+ *
1058
+ * @since 2.0.0
1059
+ * @category constructors
1060
+ */
1061
+ export const fromEither: <E, A>(either: Either.Either<E, A>) => Channel<never, unknown, unknown, unknown, E, never, A> =
1062
+ channel.fromEither
1063
+
1064
+ /**
1065
+ * Construct a `Channel` from an `AsyncInputConsumer`.
1066
+ *
1067
+ * @since 2.0.0
1068
+ * @category constructors
1069
+ */
1070
+ export const fromInput: <Err, Elem, Done>(
1071
+ input: SingleProducerAsyncInput.AsyncInputConsumer<Err, Elem, Done>
1072
+ ) => Channel<never, unknown, unknown, unknown, Err, Elem, Done> = channel.fromInput
1073
+
1074
+ /**
1075
+ * Construct a `Channel` from a `PubSub`.
1076
+ *
1077
+ * @since 2.0.0
1078
+ * @category constructors
1079
+ */
1080
+ export const fromPubSub: <Err, Done, Elem>(
1081
+ pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Err, Done>, Elem>>
1082
+ ) => Channel<never, unknown, unknown, unknown, Err, Elem, Done> = channel.fromPubSub
1083
+
1084
+ /**
1085
+ * Construct a `Channel` from a `PubSub` within a scoped effect.
1086
+ *
1087
+ * @since 2.0.0
1088
+ * @category constructors
1089
+ */
1090
+ export const fromPubSubScoped: <Err, Done, Elem>(
1091
+ pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Err, Done>, Elem>>
1092
+ ) => Effect.Effect<Scope.Scope, never, Channel<never, unknown, unknown, unknown, Err, Elem, Done>> =
1093
+ channel.fromPubSubScoped
1094
+
1095
+ /**
1096
+ * Construct a `Channel` from an `Option`.
1097
+ *
1098
+ * @since 2.0.0
1099
+ * @category constructors
1100
+ */
1101
+ export const fromOption: <A>(
1102
+ option: Option.Option<A>
1103
+ ) => Channel<never, unknown, unknown, unknown, Option.Option<never>, never, A> = channel.fromOption
1104
+
1105
+ /**
1106
+ * Construct a `Channel` from a `Queue`.
1107
+ *
1108
+ * @since 2.0.0
1109
+ * @category constructors
1110
+ */
1111
+ export const fromQueue: <Err, Elem, Done>(
1112
+ queue: Queue.Dequeue<Either.Either<Exit.Exit<Err, Done>, Elem>>
1113
+ ) => Channel<never, unknown, unknown, unknown, Err, Elem, Done> = channel.fromQueue
1114
+
1115
+ /**
1116
+ * @since 2.0.0
1117
+ * @category constructors
1118
+ */
1119
+ export const identity: <Err, Elem, Done>() => Channel<never, Err, Elem, Done, Err, Elem, Done> = channel.identityChannel
1120
+
1121
+ /**
1122
+ * Returns a new channel, which is the same as this one, except it will be
1123
+ * interrupted when the specified effect completes. If the effect completes
1124
+ * successfully before the underlying channel is done, then the returned
1125
+ * channel will yield the success value of the effect as its terminal value.
1126
+ * On the other hand, if the underlying channel finishes first, then the
1127
+ * returned channel will yield the success value of the underlying channel as
1128
+ * its terminal value.
1129
+ *
1130
+ * @since 2.0.0
1131
+ * @category utils
1132
+ */
1133
+ export const interruptWhen: {
1134
+ <Env1, OutErr1, OutDone1>(
1135
+ effect: Effect.Effect<Env1, OutErr1, OutDone1>
1136
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1137
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1138
+ ) => Channel<Env1 | Env, InErr, InElem, InDone, OutErr1 | OutErr, OutElem, OutDone1 | OutDone>
1139
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, OutErr1, OutDone1>(
1140
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1141
+ effect: Effect.Effect<Env1, OutErr1, OutDone1>
1142
+ ): Channel<Env | Env1, InErr, InElem, InDone, OutErr | OutErr1, OutElem, OutDone | OutDone1>
1143
+ } = channel.interruptWhen
1144
+
1145
+ /**
1146
+ * Returns a new channel, which is the same as this one, except it will be
1147
+ * interrupted when the specified deferred is completed. If the deferred is
1148
+ * completed before the underlying channel is done, then the returned channel
1149
+ * will yield the value of the deferred. Otherwise, if the underlying channel
1150
+ * finishes first, then the returned channel will yield the value of the
1151
+ * underlying channel.
1152
+ *
1153
+ * @since 2.0.0
1154
+ * @category utils
1155
+ */
1156
+ export const interruptWhenDeferred: {
1157
+ <OutErr1, OutDone1>(
1158
+ deferred: Deferred.Deferred<OutErr1, OutDone1>
1159
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1160
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1161
+ ) => Channel<Env, InErr, InElem, InDone, OutErr1 | OutErr, OutElem, OutDone1 | OutDone>
1162
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, OutErr1, OutDone1>(
1163
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1164
+ deferred: Deferred.Deferred<OutErr1, OutDone1>
1165
+ ): Channel<Env, InErr, InElem, InDone, OutErr | OutErr1, OutElem, OutDone | OutDone1>
1166
+ } = channel.interruptWhenDeferred
1167
+
1168
+ /**
1169
+ * Returns a new channel, which is the same as this one, except the terminal
1170
+ * value of the returned channel is created by applying the specified function
1171
+ * to the terminal value of this channel.
1172
+ *
1173
+ * @since 2.0.0
1174
+ * @category mapping
1175
+ */
1176
+ export const map: {
1177
+ <OutDone, OutDone2>(
1178
+ f: (out: OutDone) => OutDone2
1179
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem>(
1180
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1181
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
1182
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, OutDone2>(
1183
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1184
+ f: (out: OutDone) => OutDone2
1185
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone2>
1186
+ } = channel.map
1187
+
1188
+ /**
1189
+ * Returns a new channel, which is the same as this one, except the terminal
1190
+ * value of the returned channel is created by applying the specified
1191
+ * effectful function to the terminal value of this channel.
1192
+ *
1193
+ * @since 2.0.0
1194
+ * @category mapping
1195
+ */
1196
+ export const mapEffect: {
1197
+ <Env1, OutErr1, OutDone, OutDone1>(
1198
+ f: (o: OutDone) => Effect.Effect<Env1, OutErr1, OutDone1>
1199
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem>(
1200
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1201
+ ) => Channel<Env1 | Env, InErr, InElem, InDone, OutErr1 | OutErr, OutElem, OutDone1>
1202
+ <Env, InErr, InElem, InDone, OutErr, OutElem, Env1, OutErr1, OutDone, OutDone1>(
1203
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1204
+ f: (o: OutDone) => Effect.Effect<Env1, OutErr1, OutDone1>
1205
+ ): Channel<Env | Env1, InErr, InElem, InDone, OutErr | OutErr1, OutElem, OutDone1>
1206
+ } = channel.mapEffect
1207
+
1208
+ /**
1209
+ * Returns a new channel, which is the same as this one, except the failure
1210
+ * value of the returned channel is created by applying the specified function
1211
+ * to the failure value of this channel.
1212
+ *
1213
+ * @since 2.0.0
1214
+ * @category mapping
1215
+ */
1216
+ export const mapError: {
1217
+ <OutErr, OutErr2>(
1218
+ f: (err: OutErr) => OutErr2
1219
+ ): <Env, InErr, InElem, InDone, OutElem, OutDone>(
1220
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1221
+ ) => Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone>
1222
+ <Env, InErr, InElem, InDone, OutElem, OutDone, OutErr, OutErr2>(
1223
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1224
+ f: (err: OutErr) => OutErr2
1225
+ ): Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone>
1226
+ } = channel.mapError
1227
+
1228
+ /**
1229
+ * A more powerful version of `mapError` which also surfaces the `Cause`
1230
+ * of the channel failure.
1231
+ *
1232
+ * @since 2.0.0
1233
+ * @category mapping
1234
+ */
1235
+ export const mapErrorCause: {
1236
+ <OutErr, OutErr2>(
1237
+ f: (cause: Cause.Cause<OutErr>) => Cause.Cause<OutErr2>
1238
+ ): <Env, InErr, InElem, InDone, OutElem, OutDone>(
1239
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1240
+ ) => Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone>
1241
+ <Env, InErr, InElem, InDone, OutElem, OutDone, OutErr, OutErr2>(
1242
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1243
+ f: (cause: Cause.Cause<OutErr>) => Cause.Cause<OutErr2>
1244
+ ): Channel<Env, InErr, InElem, InDone, OutErr2, OutElem, OutDone>
1245
+ } = channel.mapErrorCause
1246
+
1247
+ /**
1248
+ * Maps the output of this channel using the specified function.
1249
+ *
1250
+ * @since 2.0.0
1251
+ * @category mapping
1252
+ */
1253
+ export const mapOut: {
1254
+ <OutElem, OutElem2>(
1255
+ f: (o: OutElem) => OutElem2
1256
+ ): <Env, InErr, InElem, InDone, OutErr, OutDone>(
1257
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1258
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem2, OutDone>
1259
+ <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, OutElem2>(
1260
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1261
+ f: (o: OutElem) => OutElem2
1262
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem2, OutDone>
1263
+ } = channel.mapOut
1264
+
1265
+ /**
1266
+ * Creates a channel that is like this channel but the given effectful function
1267
+ * gets applied to each emitted output element.
1268
+ *
1269
+ * @since 2.0.0
1270
+ * @category mapping
1271
+ */
1272
+ export const mapOutEffect: {
1273
+ <OutElem, Env1, OutErr1, OutElem1>(
1274
+ f: (o: OutElem) => Effect.Effect<Env1, OutErr1, OutElem1>
1275
+ ): <Env, InErr, InElem, InDone, OutErr, OutDone>(
1276
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1277
+ ) => Channel<Env1 | Env, InErr, InElem, InDone, OutErr1 | OutErr, OutElem1, OutDone>
1278
+ <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, Env1, OutErr1, OutElem1>(
1279
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1280
+ f: (o: OutElem) => Effect.Effect<Env1, OutErr1, OutElem1>
1281
+ ): Channel<Env | Env1, InErr, InElem, InDone, OutErr | OutErr1, OutElem1, OutDone>
1282
+ } = channel.mapOutEffect
1283
+
1284
+ /**
1285
+ * Creates a channel that is like this channel but the given ZIO function gets
1286
+ * applied to each emitted output element, taking `n` elements at once and
1287
+ * mapping them in parallel.
1288
+ *
1289
+ * @since 2.0.0
1290
+ * @category mapping
1291
+ */
1292
+ export const mapOutEffectPar: {
1293
+ <OutElem, Env1, OutErr1, OutElem1>(
1294
+ f: (o: OutElem) => Effect.Effect<Env1, OutErr1, OutElem1>,
1295
+ n: number
1296
+ ): <Env, InErr, InElem, InDone, OutErr, OutDone>(
1297
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1298
+ ) => Channel<Env1 | Env, InErr, InElem, InDone, OutErr1 | OutErr, OutElem1, OutDone>
1299
+ <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, Env1, OutErr1, OutElem1>(
1300
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1301
+ f: (o: OutElem) => Effect.Effect<Env1, OutErr1, OutElem1>,
1302
+ n: number
1303
+ ): Channel<Env | Env1, InErr, InElem, InDone, OutErr | OutErr1, OutElem1, OutDone>
1304
+ } = channel.mapOutEffectPar
1305
+
1306
+ /**
1307
+ * @since 2.0.0
1308
+ * @category utils
1309
+ */
1310
+ export const mergeAll: (
1311
+ options: {
1312
+ readonly concurrency: number | "unbounded"
1313
+ readonly bufferSize?: number
1314
+ readonly mergeStrategy?: MergeStrategy.MergeStrategy
1315
+ }
1316
+ ) => <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem>(
1317
+ channels: Channel<
1318
+ Env,
1319
+ InErr,
1320
+ InElem,
1321
+ InDone,
1322
+ OutErr,
1323
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, unknown>,
1324
+ unknown
1325
+ >
1326
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, unknown> =
1327
+ channel.mergeAll
1328
+
1329
+ /**
1330
+ * @since 2.0.0
1331
+ * @category utils
1332
+ */
1333
+ export const mergeAllUnbounded: <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem>(
1334
+ channels: Channel<
1335
+ Env,
1336
+ InErr,
1337
+ InElem,
1338
+ InDone,
1339
+ OutErr,
1340
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, unknown>,
1341
+ unknown
1342
+ >
1343
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, unknown> =
1344
+ channel.mergeAllUnbounded
1345
+
1346
+ /**
1347
+ * @since 2.0.0
1348
+ * @category utils
1349
+ */
1350
+ export const mergeAllUnboundedWith: <
1351
+ Env,
1352
+ Env1,
1353
+ InErr,
1354
+ InErr1,
1355
+ InElem,
1356
+ InElem1,
1357
+ InDone,
1358
+ InDone1,
1359
+ OutErr,
1360
+ OutErr1,
1361
+ OutElem,
1362
+ OutDone
1363
+ >(
1364
+ channels: Channel<
1365
+ Env,
1366
+ InErr,
1367
+ InElem,
1368
+ InDone,
1369
+ OutErr,
1370
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, OutDone>,
1371
+ OutDone
1372
+ >,
1373
+ f: (o1: OutDone, o2: OutDone) => OutDone
1374
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, OutDone> =
1375
+ channel.mergeAllUnboundedWith
1376
+
1377
+ /**
1378
+ * @since 2.0.0
1379
+ * @category utils
1380
+ */
1381
+ export const mergeAllWith: (
1382
+ { bufferSize, concurrency, mergeStrategy }: {
1383
+ readonly concurrency: number | "unbounded"
1384
+ readonly bufferSize?: number
1385
+ readonly mergeStrategy?: MergeStrategy.MergeStrategy
1386
+ }
1387
+ ) => <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem, OutDone>(
1388
+ channels: Channel<
1389
+ Env,
1390
+ InErr,
1391
+ InElem,
1392
+ InDone,
1393
+ OutErr,
1394
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, OutDone>,
1395
+ OutDone
1396
+ >,
1397
+ f: (o1: OutDone, o2: OutDone) => OutDone
1398
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, OutDone> =
1399
+ channel.mergeAllWith
1400
+
1401
+ /**
1402
+ * Returns a new channel which creates a new channel for each emitted element
1403
+ * and merges some of them together. Different merge strategies control what
1404
+ * happens if there are more than the given maximum number of channels gets
1405
+ * created. See `Channel.mergeAll`.
1406
+ *
1407
+ * @param n The maximum number of channels to merge.
1408
+ * @param f The function that creates a new channel from each emitted element.
1409
+ * @since 2.0.0
1410
+ * @category mapping
1411
+ */
1412
+ export const mergeMap: {
1413
+ <OutElem, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>(
1414
+ f: (outElem: OutElem) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>,
1415
+ options: {
1416
+ readonly concurrency: number | "unbounded"
1417
+ readonly bufferSize?: number
1418
+ readonly mergeStrategy?: MergeStrategy.MergeStrategy
1419
+ }
1420
+ ): <Env, InErr, InElem, InDone, OutErr, OutDone>(
1421
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1422
+ ) => Channel<Env1 | Env, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr1 | OutErr, OutElem1, unknown>
1423
+ <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>(
1424
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1425
+ f: (outElem: OutElem) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>,
1426
+ options: {
1427
+ readonly concurrency: number | "unbounded"
1428
+ readonly bufferSize?: number
1429
+ readonly mergeStrategy?: MergeStrategy.MergeStrategy
1430
+ }
1431
+ ): Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem1, unknown>
1432
+ } = channel.mergeMap
1433
+
1434
+ /**
1435
+ * Returns a new channel which merges a number of channels emitted by this
1436
+ * channel using the back pressuring merge strategy. See `Channel.mergeAll`.
1437
+ *
1438
+ * @since 2.0.0
1439
+ * @category utils
1440
+ */
1441
+ export const mergeOut: {
1442
+ (
1443
+ n: number
1444
+ ): <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem1, OutDone, Z>(
1445
+ self: Channel<
1446
+ Env,
1447
+ InErr,
1448
+ InElem,
1449
+ InDone,
1450
+ OutErr,
1451
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>,
1452
+ OutDone
1453
+ >
1454
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem1, unknown>
1455
+ <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem1, OutDone, Z>(
1456
+ self: Channel<
1457
+ Env,
1458
+ InErr,
1459
+ InElem,
1460
+ InDone,
1461
+ OutErr,
1462
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, Z>,
1463
+ OutDone
1464
+ >,
1465
+ n: number
1466
+ ): Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem1, unknown>
1467
+ } = channel.mergeOut
1468
+
1469
+ /**
1470
+ * Returns a new channel which merges a number of channels emitted by this
1471
+ * channel using the back pressuring merge strategy and uses a given function
1472
+ * to merge each completed subchannel's result value. See
1473
+ * `Channel.mergeAll`.
1474
+ *
1475
+ * @since 2.0.0
1476
+ * @category utils
1477
+ */
1478
+ export const mergeOutWith: {
1479
+ <OutDone1>(
1480
+ n: number,
1481
+ f: (o1: OutDone1, o2: OutDone1) => OutDone1
1482
+ ): <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem1>(
1483
+ self: Channel<
1484
+ Env,
1485
+ InErr,
1486
+ InElem,
1487
+ InDone,
1488
+ OutErr,
1489
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
1490
+ OutDone1
1491
+ >
1492
+ ) => Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem1, OutDone1>
1493
+ <Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem1, OutDone1>(
1494
+ self: Channel<
1495
+ Env,
1496
+ InErr,
1497
+ InElem,
1498
+ InDone,
1499
+ OutErr,
1500
+ Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
1501
+ OutDone1
1502
+ >,
1503
+ n: number,
1504
+ f: (o1: OutDone1, o2: OutDone1) => OutDone1
1505
+ ): Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem1, OutDone1>
1506
+ } = channel.mergeOutWith
1507
+
1508
+ /**
1509
+ * Returns a new channel, which is the merge of this channel and the specified
1510
+ * channel, where the behavior of the returned channel on left or right early
1511
+ * termination is decided by the specified `leftDone` and `rightDone` merge
1512
+ * decisions.
1513
+ *
1514
+ * @since 2.0.0
1515
+ * @category utils
1516
+ */
1517
+ export const mergeWith: {
1518
+ <Env1, InErr1, InElem1, InDone1, OutErr, OutErr1, OutErr2, OutErr3, OutElem1, OutDone, OutDone1, OutDone2, OutDone3>(
1519
+ options: {
1520
+ readonly other: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
1521
+ readonly onSelfDone: (
1522
+ exit: Exit.Exit<OutErr, OutDone>
1523
+ ) => MergeDecision.MergeDecision<Env1, OutErr1, OutDone1, OutErr2, OutDone2>
1524
+ readonly onOtherDone: (
1525
+ ex: Exit.Exit<OutErr1, OutDone1>
1526
+ ) => MergeDecision.MergeDecision<Env1, OutErr, OutDone, OutErr3, OutDone3>
1527
+ }
1528
+ ): <Env, InErr, InElem, InDone, OutElem>(
1529
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1530
+ ) => Channel<
1531
+ Env1 | Env,
1532
+ InErr & InErr1,
1533
+ InElem & InElem1,
1534
+ InDone & InDone1,
1535
+ OutErr2 | OutErr3,
1536
+ OutElem1 | OutElem,
1537
+ OutDone2 | OutDone3
1538
+ >
1539
+ <
1540
+ Env,
1541
+ InErr,
1542
+ InElem,
1543
+ InDone,
1544
+ OutElem,
1545
+ Env1,
1546
+ InErr1,
1547
+ InElem1,
1548
+ InDone1,
1549
+ OutErr,
1550
+ OutErr1,
1551
+ OutErr2,
1552
+ OutErr3,
1553
+ OutElem1,
1554
+ OutDone,
1555
+ OutDone1,
1556
+ OutDone2,
1557
+ OutDone3
1558
+ >(
1559
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1560
+ options: {
1561
+ readonly other: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>
1562
+ readonly onSelfDone: (
1563
+ exit: Exit.Exit<OutErr, OutDone>
1564
+ ) => MergeDecision.MergeDecision<Env1, OutErr1, OutDone1, OutErr2, OutDone2>
1565
+ readonly onOtherDone: (
1566
+ ex: Exit.Exit<OutErr1, OutDone1>
1567
+ ) => MergeDecision.MergeDecision<Env1, OutErr, OutDone, OutErr3, OutDone3>
1568
+ }
1569
+ ): Channel<
1570
+ Env | Env1,
1571
+ InErr & InErr1,
1572
+ InElem & InElem1,
1573
+ InDone & InDone1,
1574
+ OutErr2 | OutErr3,
1575
+ OutElem | OutElem1,
1576
+ OutDone2 | OutDone3
1577
+ >
1578
+ } = channel.mergeWith
1579
+
1580
+ /**
1581
+ * Returns a channel that never completes
1582
+ *
1583
+ * @since 2.0.0
1584
+ * @category constructors
1585
+ */
1586
+ export const never: Channel<never, unknown, unknown, unknown, never, never, never> = channel.never
1587
+
1588
+ /**
1589
+ * Translates channel failure into death of the fiber, making all failures
1590
+ * unchecked and not a part of the type of the channel.
1591
+ *
1592
+ * @since 2.0.0
1593
+ * @category error handling
1594
+ */
1595
+ export const orDie: {
1596
+ <E>(
1597
+ error: LazyArg<E>
1598
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1599
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1600
+ ) => Channel<Env, InErr, InElem, InDone, never, OutElem, OutDone>
1601
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, E>(
1602
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1603
+ error: LazyArg<E>
1604
+ ): Channel<Env, InErr, InElem, InDone, never, OutElem, OutDone>
1605
+ } = channel.orDie
1606
+
1607
+ /**
1608
+ * Keeps none of the errors, and terminates the fiber with them, using the
1609
+ * specified function to convert the `OutErr` into a defect.
1610
+ *
1611
+ * @since 2.0.0
1612
+ * @category error handling
1613
+ */
1614
+ export const orDieWith: {
1615
+ <OutErr>(
1616
+ f: (e: OutErr) => unknown
1617
+ ): <Env, InErr, InElem, InDone, OutElem, OutDone>(
1618
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1619
+ ) => Channel<Env, InErr, InElem, InDone, never, OutElem, OutDone>
1620
+ <Env, InErr, InElem, InDone, OutElem, OutDone, OutErr>(
1621
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1622
+ f: (e: OutErr) => unknown
1623
+ ): Channel<Env, InErr, InElem, InDone, never, OutElem, OutDone>
1624
+ } = channel.orDieWith
1625
+
1626
+ /**
1627
+ * Returns a new channel that will perform the operations of this one, until
1628
+ * failure, and then it will switch over to the operations of the specified
1629
+ * fallback channel.
1630
+ *
1631
+ * @since 2.0.0
1632
+ * @category error handling
1633
+ */
1634
+ export const orElse: {
1635
+ <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
1636
+ that: LazyArg<Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>>
1637
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1638
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1639
+ ) => Channel<
1640
+ Env1 | Env,
1641
+ InErr & InErr1,
1642
+ InElem & InElem1,
1643
+ InDone & InDone1,
1644
+ OutErr1,
1645
+ OutElem1 | OutElem,
1646
+ OutDone1 | OutDone
1647
+ >
1648
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
1649
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1650
+ that: LazyArg<Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>>
1651
+ ): Channel<
1652
+ Env | Env1,
1653
+ InErr & InErr1,
1654
+ InElem & InElem1,
1655
+ InDone & InDone1,
1656
+ OutErr1,
1657
+ OutElem | OutElem1,
1658
+ OutDone | OutDone1
1659
+ >
1660
+ } = channel.orElse
1661
+
1662
+ /**
1663
+ * Returns a new channel that pipes the output of this channel into the
1664
+ * specified channel. The returned channel has the input type of this channel,
1665
+ * and the output type of the specified channel, terminating with the value of
1666
+ * the specified channel.
1667
+ *
1668
+ * @since 2.0.0
1669
+ * @category utils
1670
+ */
1671
+ export const pipeTo: {
1672
+ <Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
1673
+ that: Channel<Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
1674
+ ): <Env, InErr, InElem, InDone>(
1675
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1676
+ ) => Channel<Env2 | Env, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
1677
+ <Env, InErr, InElem, InDone, Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
1678
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1679
+ that: Channel<Env2, OutErr, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
1680
+ ): Channel<Env | Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
1681
+ } = core.pipeTo
1682
+
1683
+ /**
1684
+ * Returns a new channel that pipes the output of this channel into the
1685
+ * specified channel and preserves this channel's failures without providing
1686
+ * them to the other channel for observation.
1687
+ *
1688
+ * @since 2.0.0
1689
+ * @category utils
1690
+ */
1691
+ export const pipeToOrFail: {
1692
+ <Env2, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
1693
+ that: Channel<Env2, never, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
1694
+ ): <Env, InErr, InElem, InDone, OutErr>(
1695
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1696
+ ) => Channel<Env2 | Env, InErr, InElem, InDone, OutErr2 | OutErr, OutElem2, OutDone2>
1697
+ <Env, InErr, InElem, InDone, OutErr, Env2, OutElem, OutDone, OutErr2, OutElem2, OutDone2>(
1698
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1699
+ that: Channel<Env2, never, OutElem, OutDone, OutErr2, OutElem2, OutDone2>
1700
+ ): Channel<Env | Env2, InErr, InElem, InDone, OutErr | OutErr2, OutElem2, OutDone2>
1701
+ } = channel.pipeToOrFail
1702
+
1703
+ /**
1704
+ * Provides the channel with its required context, which eliminates its
1705
+ * dependency on `Env`.
1706
+ *
1707
+ * @since 2.0.0
1708
+ * @category context
1709
+ */
1710
+ export const provideContext: {
1711
+ <Env>(
1712
+ env: Context.Context<Env>
1713
+ ): <InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1714
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1715
+ ) => Channel<never, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1716
+ <InErr, InElem, InDone, OutErr, OutElem, OutDone, Env>(
1717
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1718
+ env: Context.Context<Env>
1719
+ ): Channel<never, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1720
+ } = core.provideContext
1721
+
1722
+ /**
1723
+ * Provides a layer to the channel, which translates it to another level.
1724
+ *
1725
+ * @since 2.0.0
1726
+ * @category context
1727
+ */
1728
+ export const provideLayer: {
1729
+ <Env0, Env, OutErr2>(
1730
+ layer: Layer.Layer<Env0, OutErr2, Env>
1731
+ ): <InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1732
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1733
+ ) => Channel<Env0, InErr, InElem, InDone, OutErr2 | OutErr, OutElem, OutDone>
1734
+ <InErr, InElem, InDone, OutErr, OutElem, OutDone, Env0, Env, OutErr2>(
1735
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1736
+ layer: Layer.Layer<Env0, OutErr2, Env>
1737
+ ): Channel<Env0, InErr, InElem, InDone, OutErr | OutErr2, OutElem, OutDone>
1738
+ } = channel.provideLayer
1739
+
1740
+ /**
1741
+ * Transforms the context being provided to the channel with the specified
1742
+ * function.
1743
+ *
1744
+ * @since 2.0.0
1745
+ * @category context
1746
+ */
1747
+ export const mapInputContext: {
1748
+ <Env0, Env>(
1749
+ f: (env: Context.Context<Env0>) => Context.Context<Env>
1750
+ ): <InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1751
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1752
+ ) => Channel<Env0, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1753
+ <InErr, InElem, InDone, OutErr, OutElem, OutDone, Env0, Env>(
1754
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1755
+ f: (env: Context.Context<Env0>) => Context.Context<Env>
1756
+ ): Channel<Env0, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1757
+ } = channel.mapInputContext
1758
+
1759
+ /**
1760
+ * Splits the context into two parts, providing one part using the
1761
+ * specified layer and leaving the remainder `Env0`.
1762
+ *
1763
+ * @since 2.0.0
1764
+ * @category context
1765
+ */
1766
+ export const provideSomeLayer: {
1767
+ <Env0, Env2, OutErr2>(
1768
+ layer: Layer.Layer<Env0, OutErr2, Env2>
1769
+ ): <R, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1770
+ self: Channel<R, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1771
+ ) => Channel<Env0 | Exclude<R, Env2>, InErr, InElem, InDone, OutErr2 | OutErr, OutElem, OutDone>
1772
+ <R, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env0, Env2, OutErr2>(
1773
+ self: Channel<R, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1774
+ layer: Layer.Layer<Env0, OutErr2, Env2>
1775
+ ): Channel<Env0 | Exclude<R, Env2>, InErr, InElem, InDone, OutErr | OutErr2, OutElem, OutDone>
1776
+ } = channel.provideSomeLayer
1777
+
1778
+ /**
1779
+ * Provides the effect with the single service it requires. If the effect
1780
+ * requires more than one service use `provideContext` instead.
1781
+ *
1782
+ * @since 2.0.0
1783
+ * @category context
1784
+ */
1785
+ export const provideService: {
1786
+ <T extends Context.Tag<any, any>>(
1787
+ tag: T,
1788
+ service: Context.Tag.Service<T>
1789
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1790
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1791
+ ) => Channel<Exclude<Env, Context.Tag.Identifier<T>>, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1792
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, T extends Context.Tag<any, any>>(
1793
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
1794
+ tag: T,
1795
+ service: Context.Tag.Service<T>
1796
+ ): Channel<Exclude<Env, Context.Tag.Identifier<T>>, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1797
+ } = channel.provideService
1798
+
1799
+ /**
1800
+ * @since 2.0.0
1801
+ * @category constructors
1802
+ */
1803
+ export const read: <In>() => Channel<never, unknown, In, unknown, Option.Option<never>, never, In> = channel.read
1804
+
1805
+ /**
1806
+ * @since 2.0.0
1807
+ * @category constructors
1808
+ */
1809
+ export const readOrFail: <In, E>(error: E) => Channel<never, unknown, In, unknown, E, never, In> = core.readOrFail
1810
+
1811
+ /**
1812
+ * @since 2.0.0
1813
+ * @category constructors
1814
+ */
1815
+ export const readWith: <
1816
+ Env,
1817
+ InErr,
1818
+ InElem,
1819
+ InDone,
1820
+ OutErr,
1821
+ OutElem,
1822
+ OutDone,
1823
+ Env2,
1824
+ OutErr2,
1825
+ OutElem2,
1826
+ OutDone2,
1827
+ Env3,
1828
+ OutErr3,
1829
+ OutElem3,
1830
+ OutDone3
1831
+ >(
1832
+ options: {
1833
+ readonly onInput: (input: InElem) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1834
+ readonly onFailure: (error: InErr) => Channel<Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
1835
+ readonly onDone: (done: InDone) => Channel<Env3, InErr, InElem, InDone, OutErr3, OutElem3, OutDone3>
1836
+ }
1837
+ ) => Channel<
1838
+ Env | Env2 | Env3,
1839
+ InErr,
1840
+ InElem,
1841
+ InDone,
1842
+ OutErr | OutErr2 | OutErr3,
1843
+ OutElem | OutElem2 | OutElem3,
1844
+ OutDone | OutDone2 | OutDone3
1845
+ > = core.readWith
1846
+
1847
+ /**
1848
+ * @since 2.0.0
1849
+ * @category constructors
1850
+ */
1851
+ export const readWithCause: <
1852
+ Env,
1853
+ InErr,
1854
+ InElem,
1855
+ InDone,
1856
+ OutErr,
1857
+ OutElem,
1858
+ OutDone,
1859
+ Env2,
1860
+ OutErr2,
1861
+ OutElem2,
1862
+ OutDone2,
1863
+ Env3,
1864
+ OutErr3,
1865
+ OutElem3,
1866
+ OutDone3
1867
+ >(
1868
+ options: {
1869
+ readonly onInput: (input: InElem) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1870
+ readonly onFailure: (cause: Cause.Cause<InErr>) => Channel<Env2, InErr, InElem, InDone, OutErr2, OutElem2, OutDone2>
1871
+ readonly onDone: (done: InDone) => Channel<Env3, InErr, InElem, InDone, OutErr3, OutElem3, OutDone3>
1872
+ }
1873
+ ) => Channel<
1874
+ Env | Env2 | Env3,
1875
+ InErr,
1876
+ InElem,
1877
+ InDone,
1878
+ OutErr | OutErr2 | OutErr3,
1879
+ OutElem | OutElem2 | OutElem3,
1880
+ OutDone | OutDone2 | OutDone3
1881
+ > = core.readWithCause
1882
+
1883
+ /**
1884
+ * Creates a channel which repeatedly runs this channel.
1885
+ *
1886
+ * @since 2.0.0
1887
+ * @category utils
1888
+ */
1889
+ export const repeated: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1890
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1891
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone> = channel.repeated
1892
+
1893
+ /**
1894
+ * Runs a channel until the end is received.
1895
+ *
1896
+ * @since 2.0.0
1897
+ * @category destructors
1898
+ */
1899
+ export const run: <Env, InErr, InDone, OutErr, OutDone>(
1900
+ self: Channel<Env, InErr, unknown, InDone, OutErr, never, OutDone>
1901
+ ) => Effect.Effect<Env, OutErr, OutDone> = channel.run
1902
+
1903
+ /**
1904
+ * Run the channel until it finishes with a done value or fails with an error
1905
+ * and collects its emitted output elements.
1906
+ *
1907
+ * The channel must not read any input.
1908
+ *
1909
+ * @since 2.0.0
1910
+ * @category destructors
1911
+ */
1912
+ export const runCollect: <Env, InErr, InDone, OutErr, OutElem, OutDone>(
1913
+ self: Channel<Env, InErr, unknown, InDone, OutErr, OutElem, OutDone>
1914
+ ) => Effect.Effect<Env, OutErr, readonly [Chunk.Chunk<OutElem>, OutDone]> = channel.runCollect
1915
+
1916
+ /**
1917
+ * Runs a channel until the end is received.
1918
+ *
1919
+ * @since 2.0.0
1920
+ * @category destructors
1921
+ */
1922
+ export const runDrain: <Env, InErr, InDone, OutElem, OutErr, OutDone>(
1923
+ self: Channel<Env, InErr, unknown, InDone, OutErr, OutElem, OutDone>
1924
+ ) => Effect.Effect<Env, OutErr, OutDone> = channel.runDrain
1925
+
1926
+ /**
1927
+ * Use a scoped effect to emit an output element.
1928
+ *
1929
+ * @since 2.0.0
1930
+ * @category constructors
1931
+ */
1932
+ export const scoped: <R, E, A>(
1933
+ effect: Effect.Effect<R, E, A>
1934
+ ) => Channel<Exclude<R, Scope.Scope>, unknown, unknown, unknown, E, A, unknown> = channel.scoped
1935
+
1936
+ /**
1937
+ * Constructs a channel that succeeds immediately with the specified value.
1938
+ *
1939
+ * @since 2.0.0
1940
+ * @category constructors
1941
+ */
1942
+ export const succeed: <A>(value: A) => Channel<never, unknown, unknown, unknown, never, never, A> = core.succeed
1943
+
1944
+ /**
1945
+ * Constructs a channel that succeeds immediately with the specified lazy value.
1946
+ *
1947
+ * @since 2.0.0
1948
+ * @category constructors
1949
+ */
1950
+ export const sync: <OutDone>(
1951
+ evaluate: LazyArg<OutDone>
1952
+ ) => Channel<never, unknown, unknown, unknown, never, never, OutDone> = core.sync
1953
+
1954
+ /**
1955
+ * Converts a `Channel` to a `PubSub`.
1956
+ *
1957
+ * @since 2.0.0
1958
+ * @category destructors
1959
+ */
1960
+ export const toPubSub: <Err, Done, Elem>(
1961
+ pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Err, Done>, Elem>>
1962
+ ) => Channel<never, Err, Elem, Done, never, never, unknown> = channel.toPubSub
1963
+
1964
+ /**
1965
+ * Returns a scoped `Effect` that can be used to repeatedly pull elements from
1966
+ * the constructed `Channel`. The pull effect fails with the channel's failure
1967
+ * in case the channel fails, or returns either the channel's done value or an
1968
+ * emitted element.
1969
+ *
1970
+ * @since 2.0.0
1971
+ * @category destructors
1972
+ */
1973
+ export const toPull: <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
1974
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
1975
+ ) => Effect.Effect<Scope.Scope | Env, never, Effect.Effect<Env, OutErr, Either.Either<OutDone, OutElem>>> =
1976
+ channel.toPull
1977
+
1978
+ /**
1979
+ * Converts a `Channel` to a `Queue`.
1980
+ *
1981
+ * @since 2.0.0
1982
+ * @category destructors
1983
+ */
1984
+ export const toQueue: <Err, Done, Elem>(
1985
+ queue: Queue.Enqueue<Either.Either<Exit.Exit<Err, Done>, Elem>>
1986
+ ) => Channel<never, Err, Elem, Done, never, never, unknown> = channel.toQueue
1987
+
1988
+ /** Converts this channel to a `Sink`.
1989
+ *
1990
+ * @since 2.0.0
1991
+ * @category destructors
1992
+ */
1993
+ export const toSink: <Env, InErr, InElem, OutErr, OutElem, OutDone>(
1994
+ self: Channel<Env, InErr, Chunk.Chunk<InElem>, unknown, OutErr, Chunk.Chunk<OutElem>, OutDone>
1995
+ ) => Sink.Sink<Env, OutErr, InElem, OutElem, OutDone> = sink.channelToSink
1996
+
1997
+ /**
1998
+ * Converts this channel to a `Stream`.
1999
+ *
2000
+ * @since 2.0.0
2001
+ * @category destructors
2002
+ */
2003
+ export const toStream: <Env, OutErr, OutElem, OutDone>(
2004
+ self: Channel<Env, unknown, unknown, unknown, OutErr, Chunk.Chunk<OutElem>, OutDone>
2005
+ ) => Stream.Stream<Env, OutErr, OutElem> = stream.channelToStream
2006
+
2007
+ /**
2008
+ * @since 2.0.0
2009
+ * @category constructors
2010
+ */
2011
+ export const unit: Channel<never, unknown, unknown, unknown, never, never, void> = core.unit
2012
+
2013
+ /**
2014
+ * Makes a channel from an effect that returns a channel in case of success.
2015
+ *
2016
+ * @since 2.0.0
2017
+ * @category constructors
2018
+ */
2019
+ export const unwrap: <R, E, R2, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2020
+ channel: Effect.Effect<R, E, Channel<R2, InErr, InElem, InDone, OutErr, OutElem, OutDone>>
2021
+ ) => Channel<R | R2, InErr, InElem, InDone, E | OutErr, OutElem, OutDone> = channel.unwrap
2022
+
2023
+ /**
2024
+ * Makes a channel from a managed that returns a channel in case of success.
2025
+ *
2026
+ * @since 2.0.0
2027
+ * @category constructors
2028
+ */
2029
+ export const unwrapScoped: <R, E, Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2030
+ self: Effect.Effect<R, E, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>
2031
+ ) => Channel<Env | Exclude<R, Scope.Scope>, InErr, InElem, InDone, E | OutErr, OutElem, OutDone> = channel.unwrapScoped
2032
+
2033
+ /**
2034
+ * Updates a service in the context of this channel.
2035
+ *
2036
+ * @since 2.0.0
2037
+ * @category context
2038
+ */
2039
+ export const updateService: {
2040
+ <T extends Context.Tag<any, any>>(
2041
+ tag: T,
2042
+ f: (resource: Context.Tag.Service<T>) => Context.Tag.Service<T>
2043
+ ): <R, InErr, InDone, OutElem, OutErr, OutDone>(
2044
+ self: Channel<R, InErr, unknown, InDone, OutErr, OutElem, OutDone>
2045
+ ) => Channel<T | R, InErr, unknown, InDone, OutErr, OutElem, OutDone>
2046
+ <R, InErr, InDone, OutElem, OutErr, OutDone, T extends Context.Tag<any, any>>(
2047
+ self: Channel<R, InErr, unknown, InDone, OutErr, OutElem, OutDone>,
2048
+ tag: T,
2049
+ f: (resource: Context.Tag.Service<T>) => Context.Tag.Service<T>
2050
+ ): Channel<R | T, InErr, unknown, InDone, OutErr, OutElem, OutDone>
2051
+ } = channel.updateService
2052
+
2053
+ /**
2054
+ * Wraps the channel with a new span for tracing.
2055
+ *
2056
+ * @since 2.0.0
2057
+ * @category tracing
2058
+ */
2059
+ export const withSpan: {
2060
+ (
2061
+ name: string,
2062
+ options?: {
2063
+ readonly attributes?: Record<string, Tracer.AttributeValue>
2064
+ readonly links?: ReadonlyArray<Tracer.SpanLink>
2065
+ readonly parent?: Tracer.ParentSpan
2066
+ readonly root?: boolean
2067
+ readonly context?: Context.Context<never>
2068
+ }
2069
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2070
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2071
+ ) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2072
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2073
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
2074
+ name: string,
2075
+ options?: {
2076
+ readonly attributes?: Record<string, Tracer.AttributeValue>
2077
+ readonly links?: ReadonlyArray<Tracer.SpanLink>
2078
+ readonly parent?: Tracer.ParentSpan
2079
+ readonly root?: boolean
2080
+ readonly context?: Context.Context<never>
2081
+ }
2082
+ ): Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2083
+ } = channel.withSpan
2084
+
2085
+ /**
2086
+ * Writes a single value to the channel.
2087
+ *
2088
+ * @since 2.0.0
2089
+ * @category constructors
2090
+ */
2091
+ export const write: <OutElem>(out: OutElem) => Channel<never, unknown, unknown, unknown, never, OutElem, void> =
2092
+ core.write
2093
+
2094
+ /**
2095
+ * Writes a sequence of values to the channel.
2096
+ *
2097
+ * @since 2.0.0
2098
+ * @category constructors
2099
+ */
2100
+ export const writeAll: <OutElems extends Array<any>>(
2101
+ ...outs: OutElems
2102
+ ) => Channel<never, unknown, unknown, unknown, never, OutElems[number], void> = channel.writeAll
2103
+
2104
+ /**
2105
+ * Writes a `Chunk` of values to the channel.
2106
+ *
2107
+ * @since 2.0.0
2108
+ * @category constructors
2109
+ */
2110
+ export const writeChunk: <OutElem>(
2111
+ outs: Chunk.Chunk<OutElem>
2112
+ ) => Channel<never, unknown, unknown, unknown, never, OutElem, void> = channel.writeChunk
2113
+
2114
+ /**
2115
+ * Returns a new channel that is the sequential composition of this channel
2116
+ * and the specified channel. The returned channel terminates with a tuple of
2117
+ * the terminal values of both channels.
2118
+ *
2119
+ * @since 2.0.0
2120
+ * @category zipping
2121
+ */
2122
+ export const zip: {
2123
+ <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2124
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2125
+ options?: { readonly concurrent?: boolean }
2126
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2127
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2128
+ ) => Channel<
2129
+ Env1 | Env,
2130
+ InErr & InErr1,
2131
+ InElem & InElem1,
2132
+ InDone & InDone1,
2133
+ OutErr1 | OutErr,
2134
+ OutElem1 | OutElem,
2135
+ readonly [OutDone, OutDone1]
2136
+ >
2137
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2138
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
2139
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2140
+ options?: { readonly concurrent?: boolean }
2141
+ ): Channel<
2142
+ Env | Env1,
2143
+ InErr & InErr1,
2144
+ InElem & InElem1,
2145
+ InDone & InDone1,
2146
+ OutErr | OutErr1,
2147
+ OutElem | OutElem1,
2148
+ readonly [OutDone, OutDone1]
2149
+ >
2150
+ } = channel.zip
2151
+
2152
+ /**
2153
+ * Returns a new channel that is the sequential composition of this channel
2154
+ * and the specified channel. The returned channel terminates with the
2155
+ * terminal value of this channel.
2156
+ *
2157
+ * @since 2.0.0
2158
+ * @category zipping
2159
+ */
2160
+ export const zipLeft: {
2161
+ <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2162
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2163
+ options?: { readonly concurrent?: boolean }
2164
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2165
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2166
+ ) => Channel<
2167
+ Env1 | Env,
2168
+ InErr & InErr1,
2169
+ InElem & InElem1,
2170
+ InDone & InDone1,
2171
+ OutErr1 | OutErr,
2172
+ OutElem1 | OutElem,
2173
+ OutDone
2174
+ >
2175
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2176
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
2177
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2178
+ options?: { readonly concurrent?: boolean }
2179
+ ): Channel<
2180
+ Env | Env1,
2181
+ InErr & InErr1,
2182
+ InElem & InElem1,
2183
+ InDone & InDone1,
2184
+ OutErr | OutErr1,
2185
+ OutElem | OutElem1,
2186
+ OutDone
2187
+ >
2188
+ } = channel.zipLeft
2189
+
2190
+ /**
2191
+ * Returns a new channel that is the sequential composition of this channel
2192
+ * and the specified channel. The returned channel terminates with the
2193
+ * terminal value of that channel.
2194
+ *
2195
+ * @since 2.0.0
2196
+ * @category zipping
2197
+ */
2198
+ export const zipRight: {
2199
+ <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2200
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2201
+ options?: { readonly concurrent?: boolean }
2202
+ ): <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
2203
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>
2204
+ ) => Channel<
2205
+ Env1 | Env,
2206
+ InErr & InErr1,
2207
+ InElem & InElem1,
2208
+ InDone & InDone1,
2209
+ OutErr1 | OutErr,
2210
+ OutElem1 | OutElem,
2211
+ OutDone1
2212
+ >
2213
+ <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
2214
+ self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
2215
+ that: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>,
2216
+ options?: { readonly concurrent?: boolean }
2217
+ ): Channel<
2218
+ Env | Env1,
2219
+ InErr & InErr1,
2220
+ InElem & InElem1,
2221
+ InDone & InDone1,
2222
+ OutErr | OutErr1,
2223
+ OutElem | OutElem1,
2224
+ OutDone1
2225
+ >
2226
+ } = channel.zipRight
2227
+
2228
+ /**
2229
+ * Represents a generic checked exception which occurs when a `Channel` is
2230
+ * executed.
2231
+ *
2232
+ * @since 2.0.0
2233
+ * @category errors
2234
+ */
2235
+ export const ChannelException: <E>(error: E) => ChannelException<E> = channel.ChannelException
2236
+
2237
+ /**
2238
+ * Returns `true` if the specified value is an `ChannelException`, `false`
2239
+ * otherwise.
2240
+ *
2241
+ * @since 2.0.0
2242
+ * @category refinements
2243
+ */
2244
+ export const isChannelException: (u: unknown) => u is ChannelException<unknown> = channel.isChannelException