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/Sink.ts ADDED
@@ -0,0 +1,1431 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Cause from "./Cause"
5
+ import type * as Channel from "./Channel"
6
+ import type * as MergeDecision from "./ChannelMergeDecision"
7
+ import type * as Chunk from "./Chunk"
8
+ import type * as Context from "./Context"
9
+ import type * as Duration from "./Duration"
10
+ import type * as Effect from "./Effect"
11
+ import type * as Either from "./Either"
12
+ import type * as Exit from "./Exit"
13
+ import type { LazyArg } from "./Function"
14
+ import type * as HashMap from "./HashMap"
15
+ import type * as HashSet from "./HashSet"
16
+ import * as internal from "./internal/sink"
17
+ import type * as Option from "./Option"
18
+ import type { Pipeable } from "./Pipeable"
19
+ import type { Predicate, Refinement } from "./Predicate"
20
+ import type * as PubSub from "./PubSub"
21
+ import type * as Queue from "./Queue"
22
+ import type * as Scope from "./Scope"
23
+ import type * as Unify from "./Unify"
24
+
25
+ /**
26
+ * @since 2.0.0
27
+ * @category symbols
28
+ */
29
+ export const SinkTypeId: unique symbol = internal.SinkTypeId
30
+
31
+ /**
32
+ * @since 2.0.0
33
+ * @category symbols
34
+ */
35
+ export type SinkTypeId = typeof SinkTypeId
36
+
37
+ /**
38
+ * A `Sink<R, E, In, L, Z>` is used to consume elements produced by a `Stream`.
39
+ * You can think of a sink as a function that will consume a variable amount of
40
+ * `In` elements (could be 0, 1, or many), might fail with an error of type `E`,
41
+ * and will eventually yield a value of type `Z` together with a remainder of
42
+ * type `L` (i.e. any leftovers).
43
+ *
44
+ * @since 2.0.0
45
+ * @category models
46
+ */
47
+ export interface Sink<R, E, In, L, Z> extends Sink.Variance<R, E, In, L, Z>, Pipeable {}
48
+
49
+ /**
50
+ * @since 2.0.0
51
+ * @category models
52
+ */
53
+ export interface SinkUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
54
+ Sink?: () => A[Unify.typeSymbol] extends
55
+ | Sink<
56
+ infer R,
57
+ infer E,
58
+ infer In,
59
+ infer L,
60
+ infer Z
61
+ >
62
+ | infer _ ? Sink<R, E, In, L, Z>
63
+ : never
64
+ }
65
+
66
+ /**
67
+ * @category models
68
+ * @since 2.0.0
69
+ */
70
+ export interface SinkUnifyBlacklist extends Effect.EffectUnifyBlacklist {
71
+ Sink?: true
72
+ }
73
+
74
+ /**
75
+ * @since 2.0.0
76
+ * @category models
77
+ */
78
+ declare module "./Effect" {
79
+ interface Effect<R, E, A> extends Sink<R, E, unknown, never, A> {}
80
+ interface EffectUnifyBlacklist {
81
+ Sink?: true
82
+ }
83
+ }
84
+
85
+ /**
86
+ * @since 2.0.0
87
+ */
88
+ export declare namespace Sink {
89
+ /**
90
+ * @since 2.0.0
91
+ * @category models
92
+ */
93
+ export interface Variance<R, E, In, L, Z> {
94
+ readonly [SinkTypeId]: VarianceStruct<R, E, In, L, Z>
95
+ }
96
+ /**
97
+ * @since 2.0.0
98
+ * @category models
99
+ */
100
+ export interface VarianceStruct<R, E, In, L, Z> {
101
+ _R: (_: never) => R
102
+ _E: (_: never) => E
103
+ _In: (_: In) => void
104
+ _L: (_: never) => L
105
+ _Z: (_: never) => Z
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Replaces this sink's result with the provided value.
111
+ *
112
+ * @since 2.0.0
113
+ * @category mapping
114
+ */
115
+ export const as: {
116
+ <Z2>(z: Z2): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, Z2>
117
+ <R, E, In, L, Z, Z2>(self: Sink<R, E, In, L, Z>, z: Z2): Sink<R, E, In, L, Z2>
118
+ } = internal.as
119
+
120
+ /**
121
+ * A sink that collects all elements into a `Chunk`.
122
+ *
123
+ * @since 2.0.0
124
+ * @category constructors
125
+ */
126
+ export const collectAll: <In>() => Sink<never, never, In, never, Chunk.Chunk<In>> = internal.collectAll
127
+
128
+ /**
129
+ * A sink that collects first `n` elements into a chunk.
130
+ *
131
+ * @since 2.0.0
132
+ * @category constructors
133
+ */
134
+ export const collectAllN: <In>(n: number) => Sink<never, never, In, In, Chunk.Chunk<In>> = internal.collectAllN
135
+
136
+ /**
137
+ * Repeatedly runs the sink and accumulates its results into a `Chunk`.
138
+ *
139
+ * @since 2.0.0
140
+ * @category utils
141
+ */
142
+ export const collectAllFrom: <R, E, In, L extends In, Z>(
143
+ self: Sink<R, E, In, L, Z>
144
+ ) => Sink<R, E, In, L, Chunk.Chunk<Z>> = internal.collectAllFrom
145
+
146
+ /**
147
+ * A sink that collects all of its inputs into a map. The keys are extracted
148
+ * from inputs using the keying function `key`; if multiple inputs use the
149
+ * same key, they are merged using the `merge` function.
150
+ *
151
+ * @since 2.0.0
152
+ * @category constructors
153
+ */
154
+ export const collectAllToMap: <In, K>(
155
+ key: (input: In) => K,
156
+ merge: (x: In, y: In) => In
157
+ ) => Sink<never, never, In, never, HashMap.HashMap<K, In>> = internal.collectAllToMap
158
+
159
+ /**
160
+ * A sink that collects first `n` keys into a map. The keys are calculated
161
+ * from inputs using the keying function `key`; if multiple inputs use the the
162
+ * same key, they are merged using the `merge` function.
163
+ *
164
+ * @since 2.0.0
165
+ * @category constructors
166
+ */
167
+ export const collectAllToMapN: <In, K>(
168
+ n: number,
169
+ key: (input: In) => K,
170
+ merge: (x: In, y: In) => In
171
+ ) => Sink<never, never, In, In, HashMap.HashMap<K, In>> = internal.collectAllToMapN
172
+
173
+ /**
174
+ * A sink that collects all of its inputs into a set.
175
+ *
176
+ * @since 2.0.0
177
+ * @category constructors
178
+ */
179
+ export const collectAllToSet: <In>() => Sink<never, never, In, never, HashSet.HashSet<In>> = internal.collectAllToSet
180
+
181
+ /**
182
+ * A sink that collects first `n` distinct inputs into a set.
183
+ *
184
+ * @since 2.0.0
185
+ * @category constructors
186
+ */
187
+ export const collectAllToSetN: <In>(n: number) => Sink<never, never, In, In, HashSet.HashSet<In>> =
188
+ internal.collectAllToSetN
189
+
190
+ /**
191
+ * Accumulates incoming elements into a chunk until predicate `p` is
192
+ * satisfied.
193
+ *
194
+ * @since 2.0.0
195
+ * @category constructors
196
+ */
197
+ export const collectAllUntil: <In>(p: Predicate<In>) => Sink<never, never, In, In, Chunk.Chunk<In>> =
198
+ internal.collectAllUntil
199
+
200
+ /**
201
+ * Accumulates incoming elements into a chunk until effectful predicate `p` is
202
+ * satisfied.
203
+ *
204
+ * @since 2.0.0
205
+ * @category constructors
206
+ */
207
+ export const collectAllUntilEffect: <In, R, E>(
208
+ p: (input: In) => Effect.Effect<R, E, boolean>
209
+ ) => Sink<R, E, In, In, Chunk.Chunk<In>> = internal.collectAllUntilEffect
210
+
211
+ /**
212
+ * Accumulates incoming elements into a chunk as long as they verify predicate
213
+ * `p`.
214
+ *
215
+ * @since 2.0.0
216
+ * @category constructors
217
+ */
218
+ export const collectAllWhile: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, Chunk.Chunk<In>> =
219
+ internal.collectAllWhile
220
+
221
+ /**
222
+ * Accumulates incoming elements into a chunk as long as they verify effectful
223
+ * predicate `p`.
224
+ *
225
+ * @since 2.0.0
226
+ * @category constructors
227
+ */
228
+ export const collectAllWhileEffect: <In, R, E>(
229
+ predicate: (input: In) => Effect.Effect<R, E, boolean>
230
+ ) => Sink<R, E, In, In, Chunk.Chunk<In>> = internal.collectAllWhileEffect
231
+
232
+ /**
233
+ * Repeatedly runs the sink for as long as its results satisfy the predicate
234
+ * `p`. The sink's results will be accumulated using the stepping function `f`.
235
+ *
236
+ * @since 2.0.0
237
+ * @category utils
238
+ */
239
+ export const collectAllWhileWith: {
240
+ <Z, S>(
241
+ options: {
242
+ readonly initial: S
243
+ readonly while: Predicate<Z>
244
+ readonly body: (s: S, z: Z) => S
245
+ }
246
+ ): <R, E, In, L extends In>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, S>
247
+ <R, E, In, L extends In, Z, S>(
248
+ self: Sink<R, E, In, L, Z>,
249
+ options: {
250
+ readonly initial: S
251
+ readonly while: Predicate<Z>
252
+ readonly body: (s: S, z: Z) => S
253
+ }
254
+ ): Sink<R, E, In, L, S>
255
+ } = internal.collectAllWhileWith as any
256
+
257
+ /**
258
+ * Collects the leftovers from the stream when the sink succeeds and returns
259
+ * them as part of the sink's result.
260
+ *
261
+ * @since 2.0.0
262
+ * @category utils
263
+ */
264
+ export const collectLeftover: <R, E, In, L, Z>(
265
+ self: Sink<R, E, In, L, Z>
266
+ ) => Sink<R, E, In, never, readonly [Z, Chunk.Chunk<L>]> = internal.collectLeftover
267
+
268
+ /**
269
+ * Transforms this sink's input elements.
270
+ *
271
+ * @since 2.0.0
272
+ * @category mapping
273
+ */
274
+ export const mapInput = internal.mapInput
275
+
276
+ /**
277
+ * Effectfully transforms this sink's input elements.
278
+ *
279
+ * @since 2.0.0
280
+ * @category mapping
281
+ */
282
+ export const mapInputEffect = internal.mapInputEffect
283
+
284
+ /**
285
+ * Transforms this sink's input chunks. `f` must preserve chunking-invariance.
286
+ *
287
+ * @since 2.0.0
288
+ * @category mapping
289
+ */
290
+ export const mapInputChunks: {
291
+ <In0, In>(
292
+ f: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
293
+ ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z>
294
+ <R, E, L, Z, In0, In>(
295
+ self: Sink<R, E, In, L, Z>,
296
+ f: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>
297
+ ): Sink<R, E, In0, L, Z>
298
+ } = internal.mapInputChunks
299
+
300
+ /**
301
+ * Effectfully transforms this sink's input chunks. `f` must preserve
302
+ * chunking-invariance.
303
+ *
304
+ * @since 2.0.0
305
+ * @category mapping
306
+ */
307
+ export const mapInputChunksEffect: {
308
+ <In0, R2, E2, In>(
309
+ f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
310
+ ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In0, L, Z>
311
+ <R, E, L, Z, In0, R2, E2, In>(
312
+ self: Sink<R, E, In, L, Z>,
313
+ f: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
314
+ ): Sink<R | R2, E | E2, In0, L, Z>
315
+ } = internal.mapInputChunksEffect
316
+
317
+ /**
318
+ * A sink that counts the number of elements fed to it.
319
+ *
320
+ * @since 2.0.0
321
+ * @category constructors
322
+ */
323
+ export const count: Sink<never, never, unknown, never, number> = internal.count
324
+
325
+ /**
326
+ * Creates a sink halting with the specified defect.
327
+ *
328
+ * @since 2.0.0
329
+ * @category constructors
330
+ */
331
+ export const die: (defect: unknown) => Sink<never, never, unknown, never, never> = internal.die
332
+
333
+ /**
334
+ * Creates a sink halting with the specified message, wrapped in a
335
+ * `RuntimeException`.
336
+ *
337
+ * @since 2.0.0
338
+ * @category constructors
339
+ */
340
+ export const dieMessage: (message: string) => Sink<never, never, unknown, never, never> = internal.dieMessage
341
+
342
+ /**
343
+ * Creates a sink halting with the specified defect.
344
+ *
345
+ * @since 2.0.0
346
+ * @category constructors
347
+ */
348
+ export const dieSync: (evaluate: LazyArg<unknown>) => Sink<never, never, unknown, never, never> = internal.dieSync
349
+
350
+ /**
351
+ * Transforms both inputs and result of this sink using the provided
352
+ * functions.
353
+ *
354
+ * @since 2.0.0
355
+ * @category mapping
356
+ */
357
+ export const dimap: {
358
+ <In0, In, Z, Z2>(
359
+ options: { readonly onInput: (input: In0) => In; readonly onDone: (z: Z) => Z2 }
360
+ ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z2>
361
+ <R, E, L, In0, In, Z, Z2>(
362
+ self: Sink<R, E, In, L, Z>,
363
+ options: { readonly onInput: (input: In0) => In; readonly onDone: (z: Z) => Z2 }
364
+ ): Sink<R, E, In0, L, Z2>
365
+ } = internal.dimap
366
+
367
+ /**
368
+ * Effectfully transforms both inputs and result of this sink using the
369
+ * provided functions.
370
+ *
371
+ * @since 2.0.0
372
+ * @category mapping
373
+ */
374
+ export const dimapEffect: {
375
+ <In0, R2, E2, In, Z, R3, E3, Z2>(
376
+ options: {
377
+ readonly onInput: (input: In0) => Effect.Effect<R2, E2, In>
378
+ readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
379
+ }
380
+ ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R3 | R, E2 | E3 | E, In0, L, Z2>
381
+ <R, E, L, In0, R2, E2, In, Z, R3, E3, Z2>(
382
+ self: Sink<R, E, In, L, Z>,
383
+ options: {
384
+ readonly onInput: (input: In0) => Effect.Effect<R2, E2, In>
385
+ readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
386
+ }
387
+ ): Sink<R | R2 | R3, E | E2 | E3, In0, L, Z2>
388
+ } = internal.dimapEffect
389
+
390
+ /**
391
+ * Transforms both input chunks and result of this sink using the provided
392
+ * functions.
393
+ *
394
+ * @since 2.0.0
395
+ * @category mapping
396
+ */
397
+ export const dimapChunks: {
398
+ <In0, In, Z, Z2>(
399
+ options: { readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>; readonly onDone: (z: Z) => Z2 }
400
+ ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In0, L, Z2>
401
+ <R, E, L, In0, In, Z, Z2>(
402
+ self: Sink<R, E, In, L, Z>,
403
+ options: { readonly onInput: (chunk: Chunk.Chunk<In0>) => Chunk.Chunk<In>; readonly onDone: (z: Z) => Z2 }
404
+ ): Sink<R, E, In0, L, Z2>
405
+ } = internal.dimapChunks
406
+
407
+ /**
408
+ * Effectfully transforms both input chunks and result of this sink using the
409
+ * provided functions. `f` and `g` must preserve chunking-invariance.
410
+ *
411
+ * @since 2.0.0
412
+ * @category mapping
413
+ */
414
+ export const dimapChunksEffect: {
415
+ <In0, R2, E2, In, Z, R3, E3, Z2>(
416
+ options: {
417
+ readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
418
+ readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
419
+ }
420
+ ): <R, E, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R3 | R, E2 | E3 | E, In0, L, Z2>
421
+ <R, E, L, In0, R2, E2, In, Z, R3, E3, Z2>(
422
+ self: Sink<R, E, In, L, Z>,
423
+ options: {
424
+ readonly onInput: (chunk: Chunk.Chunk<In0>) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
425
+ readonly onDone: (z: Z) => Effect.Effect<R3, E3, Z2>
426
+ }
427
+ ): Sink<R | R2 | R3, E | E2 | E3, In0, L, Z2>
428
+ } = internal.dimapChunksEffect
429
+
430
+ /**
431
+ * A sink that ignores its inputs.
432
+ *
433
+ * @since 2.0.0
434
+ * @category constructors
435
+ */
436
+ export const drain: Sink<never, never, unknown, never, void> = internal.drain
437
+
438
+ /**
439
+ * Creates a sink that drops `n` elements.
440
+ *
441
+ * @since 2.0.0
442
+ * @category constructors
443
+ */
444
+ export const drop: <In>(n: number) => Sink<never, never, In, In, unknown> = internal.drop
445
+
446
+ /**
447
+ * Drops incoming elements until the predicate is satisfied.
448
+ *
449
+ * @since 2.0.0
450
+ * @category constructors
451
+ */
452
+ export const dropUntil: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, unknown> = internal.dropUntil
453
+
454
+ /**
455
+ * Drops incoming elements until the effectful predicate is satisfied.
456
+ *
457
+ * @since 2.0.0
458
+ * @category constructors
459
+ */
460
+ export const dropUntilEffect: <In, R, E>(
461
+ predicate: (input: In) => Effect.Effect<R, E, boolean>
462
+ ) => Sink<R, E, In, In, unknown> = internal.dropUntilEffect
463
+
464
+ /**
465
+ * Drops incoming elements as long as the predicate is satisfied.
466
+ *
467
+ * @since 2.0.0
468
+ * @category constructors
469
+ */
470
+ export const dropWhile: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, unknown> = internal.dropWhile
471
+
472
+ /**
473
+ * Drops incoming elements as long as the effectful predicate is satisfied.
474
+ *
475
+ * @since 2.0.0
476
+ * @category constructors
477
+ */
478
+ export const dropWhileEffect: <In, R, E>(
479
+ predicate: (input: In) => Effect.Effect<R, E, boolean>
480
+ ) => Sink<R, E, In, In, unknown> = internal.dropWhileEffect
481
+
482
+ /**
483
+ * Returns a new sink with an attached finalizer. The finalizer is guaranteed
484
+ * to be executed so long as the sink begins execution (and regardless of
485
+ * whether or not it completes).
486
+ *
487
+ * @since 2.0.0
488
+ * @category finalization
489
+ */
490
+ export const ensuring: {
491
+ <R2, _>(
492
+ finalizer: Effect.Effect<R2, never, _>
493
+ ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E, In, L, Z>
494
+ <R, E, In, L, Z, R2, _>(self: Sink<R, E, In, L, Z>, finalizer: Effect.Effect<R2, never, _>): Sink<R | R2, E, In, L, Z>
495
+ } = internal.ensuring
496
+
497
+ /**
498
+ * Returns a new sink with an attached finalizer. The finalizer is guaranteed
499
+ * to be executed so long as the sink begins execution (and regardless of
500
+ * whether or not it completes).
501
+ *
502
+ * @since 2.0.0
503
+ * @category finalization
504
+ */
505
+ export const ensuringWith: {
506
+ <E, Z, R2, _>(
507
+ finalizer: (exit: Exit.Exit<E, Z>) => Effect.Effect<R2, never, _>
508
+ ): <R, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E, In, L, Z>
509
+ <R, In, L, E, Z, R2, _>(
510
+ self: Sink<R, E, In, L, Z>,
511
+ finalizer: (exit: Exit.Exit<E, Z>) => Effect.Effect<R2, never, _>
512
+ ): Sink<R | R2, E, In, L, Z>
513
+ } = internal.ensuringWith
514
+
515
+ /**
516
+ * Accesses the whole context of the sink.
517
+ *
518
+ * @since 2.0.0
519
+ * @category constructors
520
+ */
521
+ export const context: <R>() => Sink<R, never, unknown, never, Context.Context<R>> = internal.context
522
+
523
+ /**
524
+ * Accesses the context of the sink.
525
+ *
526
+ * @since 2.0.0
527
+ * @category constructors
528
+ */
529
+ export const contextWith: <R, Z>(f: (context: Context.Context<R>) => Z) => Sink<R, never, unknown, never, Z> =
530
+ internal.contextWith
531
+
532
+ /**
533
+ * Accesses the context of the sink in the context of an effect.
534
+ *
535
+ * @since 2.0.0
536
+ * @category constructors
537
+ */
538
+ export const contextWithEffect: <R, R2, E, Z>(
539
+ f: (context: Context.Context<R>) => Effect.Effect<R2, E, Z>
540
+ ) => Sink<R | R2, E, unknown, never, Z> = internal.contextWithEffect
541
+
542
+ /**
543
+ * Accesses the context of the sink in the context of a sink.
544
+ *
545
+ * @since 2.0.0
546
+ * @category constructors
547
+ */
548
+ export const contextWithSink: <R0, R, E, In, L, Z>(
549
+ f: (context: Context.Context<R0>) => Sink<R, E, In, L, Z>
550
+ ) => Sink<R0 | R, E, In, L, Z> = internal.contextWithSink
551
+
552
+ /**
553
+ * A sink that returns whether all elements satisfy the specified predicate.
554
+ *
555
+ * @since 2.0.0
556
+ * @category constructors
557
+ */
558
+ export const every: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, boolean> = internal.every
559
+
560
+ /**
561
+ * A sink that always fails with the specified error.
562
+ *
563
+ * @since 2.0.0
564
+ * @category constructors
565
+ */
566
+ export const fail: <E>(e: E) => Sink<never, E, unknown, never, never> = internal.fail
567
+
568
+ /**
569
+ * A sink that always fails with the specified lazily evaluated error.
570
+ *
571
+ * @since 2.0.0
572
+ * @category constructors
573
+ */
574
+ export const failSync: <E>(evaluate: LazyArg<E>) => Sink<never, E, unknown, never, never> = internal.failSync
575
+
576
+ /**
577
+ * Creates a sink halting with a specified `Cause`.
578
+ *
579
+ * @since 2.0.0
580
+ * @category constructors
581
+ */
582
+ export const failCause: <E>(cause: Cause.Cause<E>) => Sink<never, E, unknown, never, never> = internal.failCause
583
+
584
+ /**
585
+ * Creates a sink halting with a specified lazily evaluated `Cause`.
586
+ *
587
+ * @since 2.0.0
588
+ * @category constructors
589
+ */
590
+ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Sink<never, E, unknown, never, never> =
591
+ internal.failCauseSync
592
+
593
+ /**
594
+ * Filters the sink's input with the given predicate.
595
+ *
596
+ * @since 2.0.0
597
+ * @category filtering
598
+ */
599
+ export const filterInput: {
600
+ <In, In1 extends In, In2 extends In1>(
601
+ f: Refinement<In1, In2>
602
+ ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In2, L, Z>
603
+ <In, In1 extends In>(f: Predicate<In1>): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In1, L, Z>
604
+ } = internal.filterInput
605
+
606
+ /**
607
+ * Effectfully filter the input of this sink using the specified predicate.
608
+ *
609
+ * @since 2.0.0
610
+ * @category filtering
611
+ */
612
+ export const filterInputEffect: {
613
+ <R2, E2, In, In1 extends In>(
614
+ f: (input: In1) => Effect.Effect<R2, E2, boolean>
615
+ ): <R, E, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In1, L, Z>
616
+ <R, E, L, Z, R2, E2, In, In1 extends In>(
617
+ self: Sink<R, E, In, L, Z>,
618
+ f: (input: In1) => Effect.Effect<R2, E2, boolean>
619
+ ): Sink<R | R2, E | E2, In1, L, Z>
620
+ } = internal.filterInputEffect
621
+
622
+ /**
623
+ * Creates a sink that produces values until one verifies the predicate `f`.
624
+ *
625
+ * @since 2.0.0
626
+ * @category elements
627
+ */
628
+ export const findEffect: {
629
+ <Z, R2, E2>(
630
+ f: (z: Z) => Effect.Effect<R2, E2, boolean>
631
+ ): <R, E, In, L extends In>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, Option.Option<Z>>
632
+ <R, E, In, L extends In, Z, R2, E2>(
633
+ self: Sink<R, E, In, L, Z>,
634
+ f: (z: Z) => Effect.Effect<R2, E2, boolean>
635
+ ): Sink<R | R2, E | E2, In, L, Option.Option<Z>>
636
+ } = internal.findEffect as any
637
+
638
+ /**
639
+ * A sink that folds its inputs with the provided function, termination
640
+ * predicate and initial state.
641
+ *
642
+ * @since 2.0.0
643
+ * @category folding
644
+ */
645
+ export const fold: <S, In>(s: S, contFn: Predicate<S>, f: (z: S, input: In) => S) => Sink<never, never, In, In, S> =
646
+ internal.fold
647
+
648
+ /**
649
+ * Folds over the result of the sink
650
+ *
651
+ * @since 2.0.0
652
+ * @category folding
653
+ */
654
+ export const foldSink: {
655
+ <R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1, L2, Z, Z1, Z2>(
656
+ options: {
657
+ readonly onFailure: (err: E) => Sink<R1, E1, In1, L1, Z1>
658
+ readonly onSuccess: (z: Z) => Sink<R2, E2, In2, L2, Z2>
659
+ }
660
+ ): <R>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R2 | R, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>
661
+ <R, R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1, L2, Z, Z1, Z2>(
662
+ self: Sink<R, E, In, L, Z>,
663
+ options: {
664
+ readonly onFailure: (err: E) => Sink<R1, E1, In1, L1, Z1>
665
+ readonly onSuccess: (z: Z) => Sink<R2, E2, In2, L2, Z2>
666
+ }
667
+ ): Sink<R | R1 | R2, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>
668
+ } = internal.foldSink
669
+
670
+ /**
671
+ * A sink that folds its input chunks with the provided function, termination
672
+ * predicate and initial state. `contFn` condition is checked only for the
673
+ * initial value and at the end of processing of each chunk. `f` and `contFn`
674
+ * must preserve chunking-invariance.
675
+ *
676
+ * @since 2.0.0
677
+ * @category constructors
678
+ */
679
+ export const foldChunks: <S, In>(
680
+ s: S,
681
+ contFn: Predicate<S>,
682
+ f: (s: S, chunk: Chunk.Chunk<In>) => S
683
+ ) => Sink<never, never, In, never, S> = internal.foldChunks
684
+
685
+ /**
686
+ * A sink that effectfully folds its input chunks with the provided function,
687
+ * termination predicate and initial state. `contFn` condition is checked only
688
+ * for the initial value and at the end of processing of each chunk. `f` and
689
+ * `contFn` must preserve chunking-invariance.
690
+ *
691
+ * @since 2.0.0
692
+ * @category constructors
693
+ */
694
+ export const foldChunksEffect: <S, R, E, In>(
695
+ s: S,
696
+ contFn: Predicate<S>,
697
+ f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<R, E, S>
698
+ ) => Sink<R, E, In, In, S> = internal.foldChunksEffect
699
+
700
+ /**
701
+ * A sink that effectfully folds its inputs with the provided function,
702
+ * termination predicate and initial state.
703
+ *
704
+ * @since 2.0.0
705
+ * @category constructors
706
+ */
707
+ export const foldEffect: <S, R, E, In>(
708
+ s: S,
709
+ contFn: Predicate<S>,
710
+ f: (s: S, input: In) => Effect.Effect<R, E, S>
711
+ ) => Sink<R, E, In, In, S> = internal.foldEffect
712
+
713
+ /**
714
+ * A sink that folds its inputs with the provided function and initial state.
715
+ *
716
+ * @since 2.0.0
717
+ * @category constructors
718
+ */
719
+ export const foldLeft: <S, In>(s: S, f: (s: S, input: In) => S) => Sink<never, never, In, never, S> = internal.foldLeft
720
+
721
+ /**
722
+ * A sink that folds its input chunks with the provided function and initial
723
+ * state. `f` must preserve chunking-invariance.
724
+ *
725
+ * @since 2.0.0
726
+ * @category constructors
727
+ */
728
+ export const foldLeftChunks: <S, In>(s: S, f: (s: S, chunk: Chunk.Chunk<In>) => S) => Sink<never, never, In, never, S> =
729
+ internal.foldLeftChunks
730
+
731
+ /**
732
+ * A sink that effectfully folds its input chunks with the provided function
733
+ * and initial state. `f` must preserve chunking-invariance.
734
+ *
735
+ * @since 2.0.0
736
+ * @category constructors
737
+ */
738
+ export const foldLeftChunksEffect: <S, R, E, In>(
739
+ s: S,
740
+ f: (s: S, chunk: Chunk.Chunk<In>) => Effect.Effect<R, E, S>
741
+ ) => Sink<R, E, In, never, S> = internal.foldLeftChunksEffect
742
+
743
+ /**
744
+ * A sink that effectfully folds its inputs with the provided function and
745
+ * initial state.
746
+ *
747
+ * @since 2.0.0
748
+ * @category constructors
749
+ */
750
+ export const foldLeftEffect: <S, R, E, In>(
751
+ s: S,
752
+ f: (s: S, input: In) => Effect.Effect<R, E, S>
753
+ ) => Sink<R, E, In, In, S> = internal.foldLeftEffect
754
+
755
+ /**
756
+ * Creates a sink that folds elements of type `In` into a structure of type
757
+ * `S` until `max` elements have been folded.
758
+ *
759
+ * Like `Sink.foldWeighted`, but with a constant cost function of `1`.
760
+ *
761
+ * @since 2.0.0
762
+ * @category constructors
763
+ */
764
+ export const foldUntil: <In, S>(s: S, max: number, f: (z: S, input: In) => S) => Sink<never, never, In, In, S> =
765
+ internal.foldUntil
766
+
767
+ /**
768
+ * Creates a sink that effectfully folds elements of type `In` into a
769
+ * structure of type `S` until `max` elements have been folded.
770
+ *
771
+ * Like `Sink.foldWeightedEffect` but with a constant cost function of `1`.
772
+ *
773
+ * @since 2.0.0
774
+ * @category constructors
775
+ */
776
+ export const foldUntilEffect: <S, R, E, In>(
777
+ s: S,
778
+ max: number,
779
+ f: (s: S, input: In) => Effect.Effect<R, E, S>
780
+ ) => Sink<R, E, In, In, S> = internal.foldUntilEffect
781
+
782
+ /**
783
+ * Creates a sink that folds elements of type `In` into a structure of type
784
+ * `S`, until `max` worth of elements (determined by the `costFn`) have been
785
+ * folded.
786
+ *
787
+ * @note
788
+ * Elements that have an individual cost larger than `max` will force the
789
+ * sink to cross the `max` cost. See `Sink.foldWeightedDecompose` for a
790
+ * variant that can handle these cases.
791
+ *
792
+ * @since 2.0.0
793
+ * @category constructors
794
+ */
795
+ export const foldWeighted: <S, In>(
796
+ options: {
797
+ readonly initial: S
798
+ readonly maxCost: number
799
+ readonly cost: (s: S, input: In) => number
800
+ readonly body: (s: S, input: In) => S
801
+ }
802
+ ) => Sink<never, never, In, In, S> = internal.foldWeighted
803
+
804
+ /**
805
+ * Creates a sink that folds elements of type `In` into a structure of type
806
+ * `S`, until `max` worth of elements (determined by the `costFn`) have been
807
+ * folded.
808
+ *
809
+ * The `decompose` function will be used for decomposing elements that cause
810
+ * an `S` aggregate to cross `max` into smaller elements. For example:
811
+ *
812
+ * ```ts
813
+ * pipe(
814
+ * Stream.make(1, 5, 1),
815
+ * Stream.transduce(
816
+ * Sink.foldWeightedDecompose(
817
+ * Chunk.empty<number>(),
818
+ * 4,
819
+ * (n: number) => n,
820
+ * (n: number) => Chunk.make(n - 1, 1),
821
+ * (acc, el) => pipe(acc, Chunk.append(el))
822
+ * )
823
+ * ),
824
+ * Stream.runCollect
825
+ * )
826
+ * ```
827
+ *
828
+ * The stream would emit the elements `Chunk(1), Chunk(4), Chunk(1, 1)`.
829
+ *
830
+ * Be vigilant with this function, it has to generate "simpler" values or the
831
+ * fold may never end. A value is considered indivisible if `decompose` yields
832
+ * the empty chunk or a single-valued chunk. In these cases, there is no other
833
+ * choice than to yield a value that will cross the threshold.
834
+ *
835
+ * `Sink.foldWeightedDecomposeEffect` allows the decompose function to return an
836
+ * effect value, and consequently it allows the sink to fail.
837
+ *
838
+ * @since 2.0.0
839
+ * @category constructors
840
+ */
841
+ export const foldWeightedDecompose: <S, In>(
842
+ options: {
843
+ readonly initial: S
844
+ readonly maxCost: number
845
+ readonly cost: (s: S, input: In) => number
846
+ readonly decompose: (input: In) => Chunk.Chunk<In>
847
+ readonly body: (s: S, input: In) => S
848
+ }
849
+ ) => Sink<never, never, In, In, S> = internal.foldWeightedDecompose
850
+
851
+ /**
852
+ * Creates a sink that effectfully folds elements of type `In` into a
853
+ * structure of type `S`, until `max` worth of elements (determined by the
854
+ * `costFn`) have been folded.
855
+ *
856
+ * The `decompose` function will be used for decomposing elements that cause
857
+ * an `S` aggregate to cross `max` into smaller elements. Be vigilant with
858
+ * this function, it has to generate "simpler" values or the fold may never
859
+ * end. A value is considered indivisible if `decompose` yields the empty
860
+ * chunk or a single-valued chunk. In these cases, there is no other choice
861
+ * than to yield a value that will cross the threshold.
862
+ *
863
+ * See `Sink.foldWeightedDecompose` for an example.
864
+ *
865
+ * @since 2.0.0
866
+ * @category constructors
867
+ */
868
+ export const foldWeightedDecomposeEffect: <S, In, R, E, R2, E2, R3, E3>(
869
+ options: {
870
+ readonly initial: S
871
+ readonly maxCost: number
872
+ readonly cost: (s: S, input: In) => Effect.Effect<R, E, number>
873
+ readonly decompose: (input: In) => Effect.Effect<R2, E2, Chunk.Chunk<In>>
874
+ readonly body: (s: S, input: In) => Effect.Effect<R3, E3, S>
875
+ }
876
+ ) => Sink<R | R2 | R3, E | E2 | E3, In, In, S> = internal.foldWeightedDecomposeEffect
877
+
878
+ /**
879
+ * Creates a sink that effectfully folds elements of type `In` into a
880
+ * structure of type `S`, until `max` worth of elements (determined by the
881
+ * `costFn`) have been folded.
882
+ *
883
+ * @note
884
+ * Elements that have an individual cost larger than `max` will force the
885
+ * sink to cross the `max` cost. See `Sink.foldWeightedDecomposeEffect` for
886
+ * a variant that can handle these cases.
887
+ *
888
+ * @since 2.0.0
889
+ * @category constructors
890
+ */
891
+ export const foldWeightedEffect: <S, In, R, E, R2, E2>(
892
+ options: {
893
+ readonly initial: S
894
+ readonly maxCost: number
895
+ readonly cost: (s: S, input: In) => Effect.Effect<R, E, number>
896
+ readonly body: (s: S, input: In) => Effect.Effect<R2, E2, S>
897
+ }
898
+ ) => Sink<R | R2, E | E2, In, In, S> = internal.foldWeightedEffect
899
+
900
+ /**
901
+ * A sink that executes the provided effectful function for every element fed
902
+ * to it.
903
+ *
904
+ * @since 2.0.0
905
+ * @category constructors
906
+ */
907
+ export const forEach: <In, R, E, _>(f: (input: In) => Effect.Effect<R, E, _>) => Sink<R, E, In, never, void> =
908
+ internal.forEach
909
+
910
+ /**
911
+ * A sink that executes the provided effectful function for every chunk fed to
912
+ * it.
913
+ *
914
+ * @since 2.0.0
915
+ * @category constructors
916
+ */
917
+ export const forEachChunk: <In, R, E, _>(
918
+ f: (input: Chunk.Chunk<In>) => Effect.Effect<R, E, _>
919
+ ) => Sink<R, E, In, never, void> = internal.forEachChunk
920
+
921
+ /**
922
+ * A sink that executes the provided effectful function for every chunk fed to
923
+ * it until `f` evaluates to `false`.
924
+ *
925
+ * @since 2.0.0
926
+ * @category constructors
927
+ */
928
+ export const forEachChunkWhile: <In, R, E>(
929
+ f: (input: Chunk.Chunk<In>) => Effect.Effect<R, E, boolean>
930
+ ) => Sink<R, E, In, In, void> = internal.forEachChunkWhile
931
+
932
+ /**
933
+ * A sink that executes the provided effectful function for every element fed
934
+ * to it until `f` evaluates to `false`.
935
+ *
936
+ * @since 2.0.0
937
+ * @category constructors
938
+ */
939
+ export const forEachWhile: <In, R, E>(f: (input: In) => Effect.Effect<R, E, boolean>) => Sink<R, E, In, In, void> =
940
+ internal.forEachWhile
941
+
942
+ /**
943
+ * Runs this sink until it yields a result, then uses that result to create
944
+ * another sink from the provided function which will continue to run until it
945
+ * yields a result.
946
+ *
947
+ * This function essentially runs sinks in sequence.
948
+ *
949
+ * @since 2.0.0
950
+ * @category sequencing
951
+ */
952
+ export const flatMap: {
953
+ <R1, E1, In, In1 extends In, L, L1, Z, Z1>(
954
+ f: (z: Z) => Sink<R1, E1, In1, L1, Z1>
955
+ ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L | L1, Z1>
956
+ <R, E, R1, E1, In, In1 extends In, L, L1, Z, Z1>(
957
+ self: Sink<R, E, In, L, Z>,
958
+ f: (z: Z) => Sink<R1, E1, In1, L1, Z1>
959
+ ): Sink<R | R1, E | E1, In & In1, L | L1, Z1>
960
+ } = internal.flatMap
961
+
962
+ /**
963
+ * Creates a sink from a `Channel`.
964
+ *
965
+ * @since 2.0.0
966
+ * @category constructors
967
+ */
968
+ export const fromChannel: <R, E, In, L, Z>(
969
+ channel: Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z>
970
+ ) => Sink<R, E, In, L, Z> = internal.fromChannel
971
+
972
+ /**
973
+ * Creates a `Channel` from a Sink.
974
+ *
975
+ * @since 2.0.0
976
+ * @category constructors
977
+ */
978
+ export const toChannel: <R, E, In, L, Z>(
979
+ self: Sink<R, E, In, L, Z>
980
+ ) => Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z> = internal.toChannel
981
+
982
+ /**
983
+ * Creates a single-value sink produced from an effect.
984
+ *
985
+ * @since 2.0.0
986
+ * @category constructors
987
+ */
988
+ export const fromEffect: <R, E, Z>(effect: Effect.Effect<R, E, Z>) => Sink<R, E, unknown, never, Z> =
989
+ internal.fromEffect
990
+
991
+ /**
992
+ * Create a sink which publishes each element to the specified `PubSub`.
993
+ *
994
+ * @param shutdown If `true`, the `PubSub` will be shutdown after the sink is evaluated (defaults to `false`)
995
+ * @since 2.0.0
996
+ * @category constructors
997
+ */
998
+ export const fromPubSub: <In>(
999
+ pubsub: PubSub.PubSub<In>,
1000
+ options?: { readonly shutdown?: boolean }
1001
+ ) => Sink<never, never, In, never, void> = internal.fromPubSub
1002
+
1003
+ /**
1004
+ * Creates a sink from a chunk processing function.
1005
+ *
1006
+ * @since 2.0.0
1007
+ * @category constructors
1008
+ */
1009
+ export const fromPush: <R, E, In, L, Z>(
1010
+ push: Effect.Effect<
1011
+ R,
1012
+ never,
1013
+ (_: Option.Option<Chunk.Chunk<In>>) => Effect.Effect<R, readonly [Either.Either<E, Z>, Chunk.Chunk<L>], void>
1014
+ >
1015
+ ) => Sink<Exclude<R, Scope.Scope>, E, In, L, Z> = internal.fromPush
1016
+
1017
+ /**
1018
+ * Create a sink which enqueues each element into the specified queue.
1019
+ *
1020
+ * @param shutdown If `true`, the queue will be shutdown after the sink is evaluated (defaults to `false`)
1021
+ * @since 2.0.0
1022
+ * @category constructors
1023
+ */
1024
+ export const fromQueue: <In>(
1025
+ queue: Queue.Enqueue<In>,
1026
+ options?: { readonly shutdown?: boolean }
1027
+ ) => Sink<never, never, In, never, void> = internal.fromQueue
1028
+
1029
+ /**
1030
+ * Creates a sink containing the first value.
1031
+ *
1032
+ * @since 2.0.0
1033
+ * @category constructors
1034
+ */
1035
+ export const head: <In>() => Sink<never, never, In, In, Option.Option<In>> = internal.head
1036
+
1037
+ /**
1038
+ * Drains the remaining elements from the stream after the sink finishes
1039
+ *
1040
+ * @since 2.0.0
1041
+ * @category utils
1042
+ */
1043
+ export const ignoreLeftover: <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, never, Z> =
1044
+ internal.ignoreLeftover
1045
+
1046
+ /**
1047
+ * Creates a sink containing the last value.
1048
+ *
1049
+ * @since 2.0.0
1050
+ * @category constructors
1051
+ */
1052
+ export const last: <In>() => Sink<never, never, In, In, Option.Option<In>> = internal.last
1053
+
1054
+ /**
1055
+ * Creates a sink that does not consume any input but provides the given chunk
1056
+ * as its leftovers
1057
+ *
1058
+ * @since 2.0.0
1059
+ * @category constructors
1060
+ */
1061
+ export const leftover: <L>(chunk: Chunk.Chunk<L>) => Sink<never, never, unknown, L, void> = internal.leftover
1062
+
1063
+ /**
1064
+ * Transforms this sink's result.
1065
+ *
1066
+ * @since 2.0.0
1067
+ * @category mapping
1068
+ */
1069
+ export const map: {
1070
+ <Z, Z2>(f: (z: Z) => Z2): <R, E, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L, Z2>
1071
+ <R, E, In, L, Z, Z2>(self: Sink<R, E, In, L, Z>, f: (z: Z) => Z2): Sink<R, E, In, L, Z2>
1072
+ } = internal.map
1073
+
1074
+ /**
1075
+ * Effectfully transforms this sink's result.
1076
+ *
1077
+ * @since 2.0.0
1078
+ * @category mapping
1079
+ */
1080
+ export const mapEffect: {
1081
+ <Z, R2, E2, Z2>(
1082
+ f: (z: Z) => Effect.Effect<R2, E2, Z2>
1083
+ ): <R, E, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, Z2>
1084
+ <R, E, In, L, Z, R2, E2, Z2>(
1085
+ self: Sink<R, E, In, L, Z>,
1086
+ f: (z: Z) => Effect.Effect<R2, E2, Z2>
1087
+ ): Sink<R | R2, E | E2, In, L, Z2>
1088
+ } = internal.mapEffect
1089
+
1090
+ /**
1091
+ * Transforms the errors emitted by this sink using `f`.
1092
+ *
1093
+ * @since 2.0.0
1094
+ * @category mapping
1095
+ */
1096
+ export const mapError: {
1097
+ <E, E2>(f: (error: E) => E2): <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z>
1098
+ <R, In, L, Z, E, E2>(self: Sink<R, E, In, L, Z>, f: (error: E) => E2): Sink<R, E2, In, L, Z>
1099
+ } = internal.mapError
1100
+
1101
+ /**
1102
+ * Transforms the leftovers emitted by this sink using `f`.
1103
+ *
1104
+ * @since 2.0.0
1105
+ * @category mapping
1106
+ */
1107
+ export const mapLeftover: {
1108
+ <L, L2>(f: (leftover: L) => L2): <R, E, In, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, L2, Z>
1109
+ <R, E, In, Z, L, L2>(self: Sink<R, E, In, L, Z>, f: (leftover: L) => L2): Sink<R, E, In, L2, Z>
1110
+ } = internal.mapLeftover
1111
+
1112
+ /**
1113
+ * Creates a sink which transforms it's inputs into a string.
1114
+ *
1115
+ * @since 2.0.0
1116
+ * @category constructors
1117
+ */
1118
+ export const mkString: Sink<never, never, unknown, never, string> = internal.mkString
1119
+
1120
+ /**
1121
+ * Creates a sink which never terminates.
1122
+ *
1123
+ * @since 2.0.0
1124
+ * @category constructors
1125
+ */
1126
+ export const never: Sink<never, never, unknown, never, never> = internal.never
1127
+
1128
+ /**
1129
+ * Switch to another sink in case of failure
1130
+ *
1131
+ * @since 2.0.0
1132
+ * @category error handling
1133
+ */
1134
+ export const orElse: {
1135
+ <R2, E2, In2, L2, Z2>(
1136
+ that: LazyArg<Sink<R2, E2, In2, L2, Z2>>
1137
+ ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L2 | L, Z2 | Z>
1138
+ <R, E, In, L, Z, R2, E2, In2, L2, Z2>(
1139
+ self: Sink<R, E, In, L, Z>,
1140
+ that: LazyArg<Sink<R2, E2, In2, L2, Z2>>
1141
+ ): Sink<R | R2, E | E2, In & In2, L | L2, Z | Z2>
1142
+ } = internal.orElse
1143
+
1144
+ /**
1145
+ * Provides the sink with its required context, which eliminates its
1146
+ * dependency on `R`.
1147
+ *
1148
+ * @since 2.0.0
1149
+ * @category context
1150
+ */
1151
+ export const provideContext: {
1152
+ <R>(context: Context.Context<R>): <E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<never, E, In, L, Z>
1153
+ <E, In, L, Z, R>(self: Sink<R, E, In, L, Z>, context: Context.Context<R>): Sink<never, E, In, L, Z>
1154
+ } = internal.provideContext
1155
+
1156
+ /**
1157
+ * Runs both sinks in parallel on the input, , returning the result or the
1158
+ * error from the one that finishes first.
1159
+ *
1160
+ * @since 2.0.0
1161
+ * @category utils
1162
+ */
1163
+ export const race: {
1164
+ <R1, E1, In1, L1, Z1>(
1165
+ that: Sink<R1, E1, In1, L1, Z1>
1166
+ ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L1 | L, Z1 | Z>
1167
+ <R, E, In, L, Z, R1, E1, In1, L1, Z1>(
1168
+ self: Sink<R, E, In, L, Z>,
1169
+ that: Sink<R1, E1, In1, L1, Z1>
1170
+ ): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1>
1171
+ } = internal.race
1172
+
1173
+ /**
1174
+ * Runs both sinks in parallel on the input, returning the result or the error
1175
+ * from the one that finishes first.
1176
+ *
1177
+ * @since 2.0.0
1178
+ * @category utils
1179
+ */
1180
+ export const raceBoth: {
1181
+ <R1, E1, In1, L1, Z1>(
1182
+ that: Sink<R1, E1, In1, L1, Z1>,
1183
+ options?: { readonly capacity?: number }
1184
+ ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R1 | R, E1 | E, In & In1, L1 | L, Either.Either<Z, Z1>>
1185
+ <R, E, In, L, Z, R1, E1, In1, L1, Z1>(
1186
+ self: Sink<R, E, In, L, Z>,
1187
+ that: Sink<R1, E1, In1, L1, Z1>,
1188
+ options?: { readonly capacity?: number }
1189
+ ): Sink<R | R1, E | E1, In & In1, L | L1, Either.Either<Z, Z1>>
1190
+ } = internal.raceBoth
1191
+
1192
+ /**
1193
+ * Runs both sinks in parallel on the input, using the specified merge
1194
+ * function as soon as one result or the other has been computed.
1195
+ *
1196
+ * @since 2.0.0
1197
+ * @category utils
1198
+ */
1199
+ export const raceWith: {
1200
+ <R2, E2, In2, L2, Z2, E, Z, Z3, Z4>(
1201
+ options: {
1202
+ readonly other: Sink<R2, E2, In2, L2, Z2>
1203
+ readonly onSelfDone: (exit: Exit.Exit<E, Z>) => MergeDecision.MergeDecision<R2, E2, Z2, E2 | E, Z3>
1204
+ readonly onOtherDone: (exit: Exit.Exit<E2, Z2>) => MergeDecision.MergeDecision<R2, E, Z, E2 | E, Z4>
1205
+ readonly capacity?: number
1206
+ }
1207
+ ): <R, In, L>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L2 | L, Z3 | Z4>
1208
+ <R, In, L, R2, E2, In2, L2, Z2, E, Z, Z3, Z4>(
1209
+ self: Sink<R, E, In, L, Z>,
1210
+ options: {
1211
+ readonly other: Sink<R2, E2, In2, L2, Z2>
1212
+ readonly onSelfDone: (exit: Exit.Exit<E, Z>) => MergeDecision.MergeDecision<R2, E2, Z2, E2 | E, Z3>
1213
+ readonly onOtherDone: (exit: Exit.Exit<E2, Z2>) => MergeDecision.MergeDecision<R2, E, Z, E2 | E, Z4>
1214
+ readonly capacity?: number
1215
+ }
1216
+ ): Sink<R | R2, E2 | E, In & In2, L | L2, Z3 | Z4>
1217
+ } = internal.raceWith
1218
+
1219
+ /**
1220
+ * @since 2.0.0
1221
+ * @category error handling
1222
+ */
1223
+ export const refineOrDie: {
1224
+ <E, E2>(pf: (error: E) => Option.Option<E2>): <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z>
1225
+ <R, In, L, Z, E, E2>(self: Sink<R, E, In, L, Z>, pf: (error: E) => Option.Option<E2>): Sink<R, E2, In, L, Z>
1226
+ } = internal.refineOrDie
1227
+
1228
+ /**
1229
+ * @since 2.0.0
1230
+ * @category error handling
1231
+ */
1232
+ export const refineOrDieWith: <E, E2>(
1233
+ pf: (error: E) => Option.Option<E2>,
1234
+ f: (error: E) => unknown
1235
+ ) => <R, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E2, In, L, Z> = internal.refineOrDieWith
1236
+
1237
+ /**
1238
+ * A sink that returns whether an element satisfies the specified predicate.
1239
+ *
1240
+ * @since 2.0.0
1241
+ * @category constructors
1242
+ */
1243
+ export const some: <In>(predicate: Predicate<In>) => Sink<never, never, In, In, boolean> = internal.some
1244
+
1245
+ /**
1246
+ * Splits the sink on the specified predicate, returning a new sink that
1247
+ * consumes elements until an element after the first satisfies the specified
1248
+ * predicate.
1249
+ *
1250
+ * @since 2.0.0
1251
+ * @category utils
1252
+ */
1253
+ export const splitWhere: {
1254
+ <In>(f: Predicate<In>): <R, E, L extends In, Z>(self: Sink<R, E, In, L, Z>) => Sink<R, E, In, In, Z>
1255
+ <R, E, L extends In, Z, In>(self: Sink<R, E, In, L, Z>, f: Predicate<In>): Sink<R, E, In, In, Z>
1256
+ } = internal.splitWhere
1257
+
1258
+ /**
1259
+ * A sink that immediately ends with the specified value.
1260
+ *
1261
+ * @since 2.0.0
1262
+ * @category constructors
1263
+ */
1264
+ export const succeed: <Z>(z: Z) => Sink<never, never, unknown, never, Z> = internal.succeed
1265
+
1266
+ /**
1267
+ * A sink that sums incoming numeric values.
1268
+ *
1269
+ * @since 2.0.0
1270
+ * @category constructors
1271
+ */
1272
+ export const sum: Sink<never, never, number, never, number> = internal.sum
1273
+
1274
+ /**
1275
+ * Summarize a sink by running an effect when the sink starts and again when
1276
+ * it completes.
1277
+ *
1278
+ * @since 2.0.0
1279
+ * @category utils
1280
+ */
1281
+ export const summarized: {
1282
+ <R2, E2, Z2, Z3>(
1283
+ summary: Effect.Effect<R2, E2, Z2>,
1284
+ f: (start: Z2, end: Z2) => Z3
1285
+ ): <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In, L, readonly [Z, Z3]>
1286
+ <R, E, In, L, Z, R2, E2, Z2, Z3>(
1287
+ self: Sink<R, E, In, L, Z>,
1288
+ summary: Effect.Effect<R2, E2, Z2>,
1289
+ f: (start: Z2, end: Z2) => Z3
1290
+ ): Sink<R | R2, E | E2, In, L, readonly [Z, Z3]>
1291
+ } = internal.summarized
1292
+
1293
+ /**
1294
+ * Returns a lazily constructed sink that may require effects for its
1295
+ * creation.
1296
+ *
1297
+ * @since 2.0.0
1298
+ * @category constructors
1299
+ */
1300
+ export const suspend: <R, E, In, L, Z>(evaluate: LazyArg<Sink<R, E, In, L, Z>>) => Sink<R, E, In, L, Z> =
1301
+ internal.suspend
1302
+
1303
+ /**
1304
+ * A sink that immediately ends with the specified lazy value.
1305
+ *
1306
+ * @since 2.0.0
1307
+ * @category constructors
1308
+ */
1309
+ export const sync: <Z>(evaluate: LazyArg<Z>) => Sink<never, never, unknown, never, Z> = internal.sync
1310
+
1311
+ /**
1312
+ * A sink that takes the specified number of values.
1313
+ *
1314
+ * @since 2.0.0
1315
+ * @category constructors
1316
+ */
1317
+ export const take: <In>(n: number) => Sink<never, never, In, In, Chunk.Chunk<In>> = internal.take
1318
+
1319
+ /**
1320
+ * @since 2.0.0
1321
+ * @category constructors
1322
+ */
1323
+ export const timed: Sink<never, never, unknown, never, Duration.Duration> = internal.timed
1324
+
1325
+ /**
1326
+ * Creates a sink produced from an effect.
1327
+ *
1328
+ * @since 2.0.0
1329
+ * @category constructors
1330
+ */
1331
+ export const unwrap: <R, E, R2, E2, In, L, Z>(
1332
+ effect: Effect.Effect<R, E, Sink<R2, E2, In, L, Z>>
1333
+ ) => Sink<R | R2, E | E2, In, L, Z> = internal.unwrap
1334
+
1335
+ /**
1336
+ * Creates a sink produced from a scoped effect.
1337
+ *
1338
+ * @since 2.0.0
1339
+ * @category constructors
1340
+ */
1341
+ export const unwrapScoped: <R, E, In, L, Z>(
1342
+ effect: Effect.Effect<R, E, Sink<R, E, In, L, Z>>
1343
+ ) => Sink<Exclude<R, Scope.Scope>, E, In, L, Z> = internal.unwrapScoped
1344
+
1345
+ /**
1346
+ * Returns the sink that executes this one and times its execution.
1347
+ *
1348
+ * @since 2.0.0
1349
+ * @category utils
1350
+ */
1351
+ export const withDuration: <R, E, In, L, Z>(
1352
+ self: Sink<R, E, In, L, Z>
1353
+ ) => Sink<R, E, In, L, readonly [Z, Duration.Duration]> = internal.withDuration
1354
+
1355
+ /**
1356
+ * Feeds inputs to this sink until it yields a result, then switches over to
1357
+ * the provided sink until it yields a result, finally combining the two
1358
+ * results into a tuple.
1359
+ *
1360
+ * @since 2.0.0
1361
+ * @category zipping
1362
+ */
1363
+ export const zip: {
1364
+ <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1365
+ that: Sink<R2, E2, In2, L2, Z2>,
1366
+ options?: { readonly concurrent?: boolean }
1367
+ ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, readonly [Z, Z2]>
1368
+ <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1369
+ self: Sink<R, E, In, L, Z>,
1370
+ that: Sink<R2, E2, In2, L2, Z2>,
1371
+ options?: { readonly concurrent?: boolean }
1372
+ ): Sink<R | R2, E | E2, In & In2, L | L2, readonly [Z, Z2]>
1373
+ } = internal.zip
1374
+
1375
+ /**
1376
+ * Like `Sink.zip` but keeps only the result from this sink.
1377
+ *
1378
+ * @since 2.0.0
1379
+ * @category zipping
1380
+ */
1381
+ export const zipLeft: {
1382
+ <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1383
+ that: Sink<R2, E2, In2, L2, Z2>,
1384
+ options?: { readonly concurrent?: boolean }
1385
+ ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z>
1386
+ <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1387
+ self: Sink<R, E, In, L, Z>,
1388
+ that: Sink<R2, E2, In2, L2, Z2>,
1389
+ options?: { readonly concurrent?: boolean }
1390
+ ): Sink<R | R2, E | E2, In & In2, L | L2, Z>
1391
+ } = internal.zipLeft
1392
+
1393
+ /**
1394
+ * Like `Sink.zip` but keeps only the result from `that` sink.
1395
+ *
1396
+ * @since 2.0.0
1397
+ * @category zipping
1398
+ */
1399
+ export const zipRight: {
1400
+ <R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1401
+ that: Sink<R2, E2, In2, L2, Z2>,
1402
+ options?: { readonly concurrent?: boolean }
1403
+ ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z2>
1404
+ <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2>(
1405
+ self: Sink<R, E, In, L, Z>,
1406
+ that: Sink<R2, E2, In2, L2, Z2>,
1407
+ options?: { readonly concurrent?: boolean }
1408
+ ): Sink<R | R2, E | E2, In & In2, L | L2, Z2>
1409
+ } = internal.zipRight
1410
+
1411
+ /**
1412
+ * Feeds inputs to this sink until it yields a result, then switches over to
1413
+ * the provided sink until it yields a result, finally combining the two
1414
+ * results with `f`.
1415
+ *
1416
+ * @since 2.0.0
1417
+ * @category zipping
1418
+ */
1419
+ export const zipWith: {
1420
+ <R2, E2, In, In2 extends In, L, L2, Z, Z2, Z3>(
1421
+ that: Sink<R2, E2, In2, L2, Z2>,
1422
+ f: (z: Z, z1: Z2) => Z3,
1423
+ options?: { readonly concurrent?: boolean }
1424
+ ): <R, E>(self: Sink<R, E, In, L, Z>) => Sink<R2 | R, E2 | E, In & In2, L | L2, Z3>
1425
+ <R, E, R2, E2, In, In2 extends In, L, L2, Z, Z2, Z3>(
1426
+ self: Sink<R, E, In, L, Z>,
1427
+ that: Sink<R2, E2, In2, L2, Z2>,
1428
+ f: (z: Z, z1: Z2) => Z3,
1429
+ options?: { readonly concurrent?: boolean }
1430
+ ): Sink<R | R2, E | E2, In & In2, L | L2, Z3>
1431
+ } = internal.zipWith