effect 3.4.8 → 3.4.9

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 (584) hide show
  1. package/dist/cjs/Array.js +14 -37
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +11 -34
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +7 -30
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +6 -29
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +6 -29
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Cache.js +3 -26
  12. package/dist/cjs/Cache.js.map +1 -1
  13. package/dist/cjs/Cause.js +4 -27
  14. package/dist/cjs/Cause.js.map +1 -1
  15. package/dist/cjs/Channel.js +6 -29
  16. package/dist/cjs/Channel.js.map +1 -1
  17. package/dist/cjs/ChildExecutorDecision.js +3 -26
  18. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  19. package/dist/cjs/Chunk.js +12 -35
  20. package/dist/cjs/Chunk.js.map +1 -1
  21. package/dist/cjs/Clock.js +4 -27
  22. package/dist/cjs/Clock.js.map +1 -1
  23. package/dist/cjs/Config.js +3 -26
  24. package/dist/cjs/Config.js.map +1 -1
  25. package/dist/cjs/ConfigError.js +3 -26
  26. package/dist/cjs/ConfigError.js.map +1 -1
  27. package/dist/cjs/ConfigProvider.js +3 -26
  28. package/dist/cjs/ConfigProvider.js.map +1 -1
  29. package/dist/cjs/ConfigProviderPathPatch.js +3 -26
  30. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  31. package/dist/cjs/Console.js +4 -27
  32. package/dist/cjs/Console.js.map +1 -1
  33. package/dist/cjs/Context.js +3 -26
  34. package/dist/cjs/Context.js.map +1 -1
  35. package/dist/cjs/Cron.js +13 -36
  36. package/dist/cjs/Cron.js.map +1 -1
  37. package/dist/cjs/Data.js +6 -29
  38. package/dist/cjs/Data.js.map +1 -1
  39. package/dist/cjs/DefaultServices.js +3 -26
  40. package/dist/cjs/DefaultServices.js.map +1 -1
  41. package/dist/cjs/Deferred.js +4 -27
  42. package/dist/cjs/Deferred.js.map +1 -1
  43. package/dist/cjs/Differ.js +10 -33
  44. package/dist/cjs/Differ.js.map +1 -1
  45. package/dist/cjs/Duration.js +10 -33
  46. package/dist/cjs/Duration.js.map +1 -1
  47. package/dist/cjs/Effect.js +16 -39
  48. package/dist/cjs/Effect.js.map +1 -1
  49. package/dist/cjs/Effectable.js +3 -26
  50. package/dist/cjs/Effectable.js.map +1 -1
  51. package/dist/cjs/Either.js +8 -31
  52. package/dist/cjs/Either.js.map +1 -1
  53. package/dist/cjs/Encoding.js +7 -30
  54. package/dist/cjs/Encoding.js.map +1 -1
  55. package/dist/cjs/Equal.js +5 -28
  56. package/dist/cjs/Equal.js.map +1 -1
  57. package/dist/cjs/Equivalence.js +1 -1
  58. package/dist/cjs/Equivalence.js.map +1 -1
  59. package/dist/cjs/ExecutionStrategy.js +3 -26
  60. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  61. package/dist/cjs/Exit.js +3 -26
  62. package/dist/cjs/Exit.js.map +1 -1
  63. package/dist/cjs/Fiber.js +6 -29
  64. package/dist/cjs/Fiber.js.map +1 -1
  65. package/dist/cjs/FiberHandle.js +15 -38
  66. package/dist/cjs/FiberHandle.js.map +1 -1
  67. package/dist/cjs/FiberId.js +3 -26
  68. package/dist/cjs/FiberId.js.map +1 -1
  69. package/dist/cjs/FiberMap.js +17 -40
  70. package/dist/cjs/FiberMap.js.map +1 -1
  71. package/dist/cjs/FiberRef.js +6 -29
  72. package/dist/cjs/FiberRef.js.map +1 -1
  73. package/dist/cjs/FiberRefs.js +3 -26
  74. package/dist/cjs/FiberRefs.js.map +1 -1
  75. package/dist/cjs/FiberRefsPatch.js +3 -26
  76. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  77. package/dist/cjs/FiberSet.js +16 -39
  78. package/dist/cjs/FiberSet.js.map +1 -1
  79. package/dist/cjs/FiberStatus.js +3 -26
  80. package/dist/cjs/FiberStatus.js.map +1 -1
  81. package/dist/cjs/GlobalValue.js +3 -26
  82. package/dist/cjs/GlobalValue.js.map +1 -1
  83. package/dist/cjs/GroupBy.js +3 -26
  84. package/dist/cjs/GroupBy.js.map +1 -1
  85. package/dist/cjs/Hash.js +4 -4
  86. package/dist/cjs/Hash.js.map +1 -1
  87. package/dist/cjs/HashMap.js +4 -27
  88. package/dist/cjs/HashMap.js.map +1 -1
  89. package/dist/cjs/HashSet.js +3 -26
  90. package/dist/cjs/HashSet.js.map +1 -1
  91. package/dist/cjs/Inspectable.js +1 -1
  92. package/dist/cjs/Inspectable.js.map +1 -1
  93. package/dist/cjs/Iterable.js +8 -31
  94. package/dist/cjs/Iterable.js.map +1 -1
  95. package/dist/cjs/KeyedPool.js +3 -26
  96. package/dist/cjs/KeyedPool.js.map +1 -1
  97. package/dist/cjs/Layer.js +11 -34
  98. package/dist/cjs/Layer.js.map +1 -1
  99. package/dist/cjs/List.js +13 -36
  100. package/dist/cjs/List.js.map +1 -1
  101. package/dist/cjs/LogLevel.js +6 -29
  102. package/dist/cjs/LogLevel.js.map +1 -1
  103. package/dist/cjs/LogSpan.js +3 -26
  104. package/dist/cjs/LogSpan.js.map +1 -1
  105. package/dist/cjs/Logger.js +6 -29
  106. package/dist/cjs/Logger.js.map +1 -1
  107. package/dist/cjs/ManagedRuntime.js +3 -26
  108. package/dist/cjs/ManagedRuntime.js.map +1 -1
  109. package/dist/cjs/Match.js +4 -27
  110. package/dist/cjs/Match.js.map +1 -1
  111. package/dist/cjs/MergeDecision.js +3 -26
  112. package/dist/cjs/MergeDecision.js.map +1 -1
  113. package/dist/cjs/MergeState.js +3 -26
  114. package/dist/cjs/MergeState.js.map +1 -1
  115. package/dist/cjs/MergeStrategy.js +3 -26
  116. package/dist/cjs/MergeStrategy.js.map +1 -1
  117. package/dist/cjs/Metric.js +4 -27
  118. package/dist/cjs/Metric.js.map +1 -1
  119. package/dist/cjs/MetricBoundaries.js +3 -26
  120. package/dist/cjs/MetricBoundaries.js.map +1 -1
  121. package/dist/cjs/MetricHook.js +3 -26
  122. package/dist/cjs/MetricHook.js.map +1 -1
  123. package/dist/cjs/MetricKey.js +3 -26
  124. package/dist/cjs/MetricKey.js.map +1 -1
  125. package/dist/cjs/MetricKeyType.js +3 -26
  126. package/dist/cjs/MetricKeyType.js.map +1 -1
  127. package/dist/cjs/MetricLabel.js +3 -26
  128. package/dist/cjs/MetricLabel.js.map +1 -1
  129. package/dist/cjs/MetricPair.js +3 -26
  130. package/dist/cjs/MetricPair.js.map +1 -1
  131. package/dist/cjs/MetricPolling.js +3 -26
  132. package/dist/cjs/MetricPolling.js.map +1 -1
  133. package/dist/cjs/MetricRegistry.js +3 -26
  134. package/dist/cjs/MetricRegistry.js.map +1 -1
  135. package/dist/cjs/MetricState.js +3 -26
  136. package/dist/cjs/MetricState.js.map +1 -1
  137. package/dist/cjs/Micro.js +15 -38
  138. package/dist/cjs/Micro.js.map +1 -1
  139. package/dist/cjs/ModuleVersion.js +3 -26
  140. package/dist/cjs/ModuleVersion.js.map +1 -1
  141. package/dist/cjs/MutableHashMap.js +8 -31
  142. package/dist/cjs/MutableHashMap.js.map +1 -1
  143. package/dist/cjs/MutableHashSet.js +6 -29
  144. package/dist/cjs/MutableHashSet.js.map +1 -1
  145. package/dist/cjs/MutableList.js +5 -28
  146. package/dist/cjs/MutableList.js.map +1 -1
  147. package/dist/cjs/MutableQueue.js +7 -30
  148. package/dist/cjs/MutableQueue.js.map +1 -1
  149. package/dist/cjs/MutableRef.js +6 -29
  150. package/dist/cjs/MutableRef.js.map +1 -1
  151. package/dist/cjs/Number.js +7 -30
  152. package/dist/cjs/Number.js.map +1 -1
  153. package/dist/cjs/Option.js +10 -33
  154. package/dist/cjs/Option.js.map +1 -1
  155. package/dist/cjs/Order.js +1 -1
  156. package/dist/cjs/Order.js.map +1 -1
  157. package/dist/cjs/Ordering.js +1 -1
  158. package/dist/cjs/Ordering.js.map +1 -1
  159. package/dist/cjs/Pool.js +3 -26
  160. package/dist/cjs/Pool.js.map +1 -1
  161. package/dist/cjs/Predicate.js +1 -1
  162. package/dist/cjs/Predicate.js.map +1 -1
  163. package/dist/cjs/PubSub.js +3 -26
  164. package/dist/cjs/PubSub.js.map +1 -1
  165. package/dist/cjs/Queue.js +3 -26
  166. package/dist/cjs/Queue.js.map +1 -1
  167. package/dist/cjs/Random.js +4 -27
  168. package/dist/cjs/Random.js.map +1 -1
  169. package/dist/cjs/RateLimiter.js +3 -26
  170. package/dist/cjs/RateLimiter.js.map +1 -1
  171. package/dist/cjs/Readable.js +6 -29
  172. package/dist/cjs/Readable.js.map +1 -1
  173. package/dist/cjs/Record.js +6 -29
  174. package/dist/cjs/Record.js.map +1 -1
  175. package/dist/cjs/RedBlackTree.js +4 -27
  176. package/dist/cjs/RedBlackTree.js.map +1 -1
  177. package/dist/cjs/Redacted.js +4 -27
  178. package/dist/cjs/Redacted.js.map +1 -1
  179. package/dist/cjs/Ref.js +3 -26
  180. package/dist/cjs/Ref.js.map +1 -1
  181. package/dist/cjs/Reloadable.js +3 -26
  182. package/dist/cjs/Reloadable.js.map +1 -1
  183. package/dist/cjs/Request.js +7 -30
  184. package/dist/cjs/Request.js.map +1 -1
  185. package/dist/cjs/RequestBlock.js +3 -26
  186. package/dist/cjs/RequestBlock.js.map +1 -1
  187. package/dist/cjs/RequestResolver.js +6 -29
  188. package/dist/cjs/RequestResolver.js.map +1 -1
  189. package/dist/cjs/Resource.js +3 -26
  190. package/dist/cjs/Resource.js.map +1 -1
  191. package/dist/cjs/Runtime.js +3 -26
  192. package/dist/cjs/Runtime.js.map +1 -1
  193. package/dist/cjs/RuntimeFlags.js +4 -27
  194. package/dist/cjs/RuntimeFlags.js.map +1 -1
  195. package/dist/cjs/RuntimeFlagsPatch.js +4 -27
  196. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  197. package/dist/cjs/STM.js +6 -29
  198. package/dist/cjs/STM.js.map +1 -1
  199. package/dist/cjs/Schedule.js +3 -26
  200. package/dist/cjs/Schedule.js.map +1 -1
  201. package/dist/cjs/ScheduleDecision.js +3 -26
  202. package/dist/cjs/ScheduleDecision.js.map +1 -1
  203. package/dist/cjs/ScheduleInterval.js +3 -26
  204. package/dist/cjs/ScheduleInterval.js.map +1 -1
  205. package/dist/cjs/ScheduleIntervals.js +3 -26
  206. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  207. package/dist/cjs/Scheduler.js +5 -28
  208. package/dist/cjs/Scheduler.js.map +1 -1
  209. package/dist/cjs/Scope.js +4 -27
  210. package/dist/cjs/Scope.js.map +1 -1
  211. package/dist/cjs/ScopedCache.js +3 -26
  212. package/dist/cjs/ScopedCache.js.map +1 -1
  213. package/dist/cjs/ScopedRef.js +3 -26
  214. package/dist/cjs/ScopedRef.js.map +1 -1
  215. package/dist/cjs/Secret.js +3 -26
  216. package/dist/cjs/Secret.js.map +1 -1
  217. package/dist/cjs/SingleProducerAsyncInput.js +3 -26
  218. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  219. package/dist/cjs/Sink.js +3 -26
  220. package/dist/cjs/Sink.js.map +1 -1
  221. package/dist/cjs/SortedMap.js +10 -33
  222. package/dist/cjs/SortedMap.js.map +1 -1
  223. package/dist/cjs/SortedSet.js +9 -32
  224. package/dist/cjs/SortedSet.js.map +1 -1
  225. package/dist/cjs/Stream.js +1048 -30
  226. package/dist/cjs/Stream.js.map +1 -1
  227. package/dist/cjs/StreamHaltStrategy.js +3 -26
  228. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  229. package/dist/cjs/Streamable.js +4 -27
  230. package/dist/cjs/Streamable.js.map +1 -1
  231. package/dist/cjs/String.js +9 -32
  232. package/dist/cjs/String.js.map +1 -1
  233. package/dist/cjs/Struct.js +6 -29
  234. package/dist/cjs/Struct.js.map +1 -1
  235. package/dist/cjs/Subscribable.js +8 -31
  236. package/dist/cjs/Subscribable.js.map +1 -1
  237. package/dist/cjs/SubscriptionRef.js +5 -28
  238. package/dist/cjs/SubscriptionRef.js.map +1 -1
  239. package/dist/cjs/Supervisor.js +5 -28
  240. package/dist/cjs/Supervisor.js.map +1 -1
  241. package/dist/cjs/Symbol.js +4 -27
  242. package/dist/cjs/Symbol.js.map +1 -1
  243. package/dist/cjs/SynchronizedRef.js +5 -28
  244. package/dist/cjs/SynchronizedRef.js.map +1 -1
  245. package/dist/cjs/TArray.js +3 -26
  246. package/dist/cjs/TArray.js.map +1 -1
  247. package/dist/cjs/TDeferred.js +3 -26
  248. package/dist/cjs/TDeferred.js.map +1 -1
  249. package/dist/cjs/TMap.js +3 -26
  250. package/dist/cjs/TMap.js.map +1 -1
  251. package/dist/cjs/TPriorityQueue.js +3 -26
  252. package/dist/cjs/TPriorityQueue.js.map +1 -1
  253. package/dist/cjs/TPubSub.js +3 -26
  254. package/dist/cjs/TPubSub.js.map +1 -1
  255. package/dist/cjs/TQueue.js +3 -26
  256. package/dist/cjs/TQueue.js.map +1 -1
  257. package/dist/cjs/TRandom.js +3 -26
  258. package/dist/cjs/TRandom.js.map +1 -1
  259. package/dist/cjs/TReentrantLock.js +3 -26
  260. package/dist/cjs/TReentrantLock.js.map +1 -1
  261. package/dist/cjs/TRef.js +3 -26
  262. package/dist/cjs/TRef.js.map +1 -1
  263. package/dist/cjs/TSemaphore.js +3 -26
  264. package/dist/cjs/TSemaphore.js.map +1 -1
  265. package/dist/cjs/TSet.js +3 -26
  266. package/dist/cjs/TSet.js.map +1 -1
  267. package/dist/cjs/Take.js +3 -26
  268. package/dist/cjs/Take.js.map +1 -1
  269. package/dist/cjs/TestAnnotation.js +10 -33
  270. package/dist/cjs/TestAnnotation.js.map +1 -1
  271. package/dist/cjs/TestAnnotationMap.js +5 -28
  272. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  273. package/dist/cjs/TestAnnotations.js +15 -38
  274. package/dist/cjs/TestAnnotations.js.map +1 -1
  275. package/dist/cjs/TestClock.js +25 -48
  276. package/dist/cjs/TestClock.js.map +1 -1
  277. package/dist/cjs/TestConfig.js +3 -26
  278. package/dist/cjs/TestConfig.js.map +1 -1
  279. package/dist/cjs/TestContext.js +7 -30
  280. package/dist/cjs/TestContext.js.map +1 -1
  281. package/dist/cjs/TestLive.js +5 -28
  282. package/dist/cjs/TestLive.js.map +1 -1
  283. package/dist/cjs/TestServices.js +15 -38
  284. package/dist/cjs/TestServices.js.map +1 -1
  285. package/dist/cjs/TestSized.js +4 -27
  286. package/dist/cjs/TestSized.js.map +1 -1
  287. package/dist/cjs/Tracer.js +4 -27
  288. package/dist/cjs/Tracer.js.map +1 -1
  289. package/dist/cjs/Trie.js +3 -26
  290. package/dist/cjs/Trie.js.map +1 -1
  291. package/dist/cjs/Tuple.js +6 -29
  292. package/dist/cjs/Tuple.js.map +1 -1
  293. package/dist/cjs/Unify.js +1 -1
  294. package/dist/cjs/Unify.js.map +1 -1
  295. package/dist/cjs/UpstreamPullRequest.js +3 -26
  296. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  297. package/dist/cjs/UpstreamPullStrategy.js +3 -26
  298. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  299. package/dist/cjs/Utils.js +4 -4
  300. package/dist/cjs/Utils.js.map +1 -1
  301. package/dist/cjs/index.js +160 -183
  302. package/dist/cjs/index.js.map +1 -1
  303. package/dist/cjs/internal/blockedRequests.js +9 -32
  304. package/dist/cjs/internal/blockedRequests.js.map +1 -1
  305. package/dist/cjs/internal/cache.js +20 -43
  306. package/dist/cjs/internal/cache.js.map +1 -1
  307. package/dist/cjs/internal/cause.js +16 -39
  308. package/dist/cjs/internal/cause.js.map +1 -1
  309. package/dist/cjs/internal/channel/channelExecutor.js +21 -44
  310. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  311. package/dist/cjs/internal/channel/channelState.js +5 -28
  312. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  313. package/dist/cjs/internal/channel/childExecutorDecision.js +5 -28
  314. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
  315. package/dist/cjs/internal/channel/continuation.js +4 -27
  316. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  317. package/dist/cjs/internal/channel/mergeDecision.js +5 -28
  318. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  319. package/dist/cjs/internal/channel/mergeState.js +5 -28
  320. package/dist/cjs/internal/channel/mergeState.js.map +1 -1
  321. package/dist/cjs/internal/channel/mergeStrategy.js +5 -28
  322. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
  323. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +9 -32
  324. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  325. package/dist/cjs/internal/channel/subexecutor.js +5 -28
  326. package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
  327. package/dist/cjs/internal/channel/upstreamPullRequest.js +5 -28
  328. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
  329. package/dist/cjs/internal/channel/upstreamPullStrategy.js +5 -28
  330. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
  331. package/dist/cjs/internal/channel.js +31 -54
  332. package/dist/cjs/internal/channel.js.map +1 -1
  333. package/dist/cjs/internal/clock.js +6 -29
  334. package/dist/cjs/internal/clock.js.map +1 -1
  335. package/dist/cjs/internal/completedRequestMap.js +2 -2
  336. package/dist/cjs/internal/completedRequestMap.js.map +1 -1
  337. package/dist/cjs/internal/concurrency.js +3 -26
  338. package/dist/cjs/internal/concurrency.js.map +1 -1
  339. package/dist/cjs/internal/config.js +17 -40
  340. package/dist/cjs/internal/config.js.map +1 -1
  341. package/dist/cjs/internal/configError.js +7 -30
  342. package/dist/cjs/internal/configError.js.map +1 -1
  343. package/dist/cjs/internal/configProvider/pathPatch.js +8 -31
  344. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  345. package/dist/cjs/internal/configProvider.js +17 -40
  346. package/dist/cjs/internal/configProvider.js.map +1 -1
  347. package/dist/cjs/internal/console.js +9 -32
  348. package/dist/cjs/internal/console.js.map +1 -1
  349. package/dist/cjs/internal/context.js +10 -33
  350. package/dist/cjs/internal/context.js.map +1 -1
  351. package/dist/cjs/internal/core-effect.js +29 -52
  352. package/dist/cjs/internal/core-effect.js.map +1 -1
  353. package/dist/cjs/internal/core-stream.js +14 -37
  354. package/dist/cjs/internal/core-stream.js.map +1 -1
  355. package/dist/cjs/internal/core.js +32 -55
  356. package/dist/cjs/internal/core.js.map +1 -1
  357. package/dist/cjs/internal/data.js +5 -28
  358. package/dist/cjs/internal/data.js.map +1 -1
  359. package/dist/cjs/internal/dataSource.js +10 -33
  360. package/dist/cjs/internal/dataSource.js.map +1 -1
  361. package/dist/cjs/internal/defaultServices/console.js +4 -27
  362. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  363. package/dist/cjs/internal/defaultServices.js +12 -35
  364. package/dist/cjs/internal/defaultServices.js.map +1 -1
  365. package/dist/cjs/internal/deferred.js +3 -26
  366. package/dist/cjs/internal/deferred.js.map +1 -1
  367. package/dist/cjs/internal/differ/chunkPatch.js +6 -29
  368. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
  369. package/dist/cjs/internal/differ/contextPatch.js +7 -30
  370. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  371. package/dist/cjs/internal/differ/hashMapPatch.js +7 -30
  372. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
  373. package/dist/cjs/internal/differ/hashSetPatch.js +6 -29
  374. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
  375. package/dist/cjs/internal/differ/orPatch.js +7 -30
  376. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  377. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -29
  378. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  379. package/dist/cjs/internal/differ.js +10 -33
  380. package/dist/cjs/internal/differ.js.map +1 -1
  381. package/dist/cjs/internal/doNotation.js +1 -1
  382. package/dist/cjs/internal/doNotation.js.map +1 -1
  383. package/dist/cjs/internal/effect/circular.js +24 -47
  384. package/dist/cjs/internal/effect/circular.js.map +1 -1
  385. package/dist/cjs/internal/effectable.js +8 -31
  386. package/dist/cjs/internal/effectable.js.map +1 -1
  387. package/dist/cjs/internal/either.js +9 -32
  388. package/dist/cjs/internal/either.js.map +1 -1
  389. package/dist/cjs/internal/encoding/base64.js +4 -27
  390. package/dist/cjs/internal/encoding/base64.js.map +1 -1
  391. package/dist/cjs/internal/encoding/base64Url.js +5 -28
  392. package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
  393. package/dist/cjs/internal/encoding/common.js +1 -1
  394. package/dist/cjs/internal/encoding/common.js.map +1 -1
  395. package/dist/cjs/internal/encoding/hex.js +4 -27
  396. package/dist/cjs/internal/encoding/hex.js.map +1 -1
  397. package/dist/cjs/internal/executionStrategy.js +1 -1
  398. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  399. package/dist/cjs/internal/fiber.js +17 -40
  400. package/dist/cjs/internal/fiber.js.map +1 -1
  401. package/dist/cjs/internal/fiberId.js +11 -34
  402. package/dist/cjs/internal/fiberId.js.map +1 -1
  403. package/dist/cjs/internal/fiberRefs/patch.js +6 -29
  404. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  405. package/dist/cjs/internal/fiberRefs.js +9 -32
  406. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  407. package/dist/cjs/internal/fiberRuntime.js +55 -78
  408. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  409. package/dist/cjs/internal/fiberScope.js +5 -28
  410. package/dist/cjs/internal/fiberScope.js.map +1 -1
  411. package/dist/cjs/internal/fiberStatus.js +6 -29
  412. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  413. package/dist/cjs/internal/groupBy.js +18 -41
  414. package/dist/cjs/internal/groupBy.js.map +1 -1
  415. package/dist/cjs/internal/hashMap/bitwise.js +1 -1
  416. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -1
  417. package/dist/cjs/internal/hashMap/keySet.js +1 -1
  418. package/dist/cjs/internal/hashMap/keySet.js.map +1 -1
  419. package/dist/cjs/internal/hashMap/node.js +9 -32
  420. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  421. package/dist/cjs/internal/hashMap.js +12 -35
  422. package/dist/cjs/internal/hashMap.js.map +1 -1
  423. package/dist/cjs/internal/hashSet.js +9 -32
  424. package/dist/cjs/internal/hashSet.js.map +1 -1
  425. package/dist/cjs/internal/keyedPool.js +14 -37
  426. package/dist/cjs/internal/keyedPool.js.map +1 -1
  427. package/dist/cjs/internal/layer/circular.js +12 -35
  428. package/dist/cjs/internal/layer/circular.js.map +1 -1
  429. package/dist/cjs/internal/layer.js +25 -48
  430. package/dist/cjs/internal/layer.js.map +1 -1
  431. package/dist/cjs/internal/logger-circular.js +9 -32
  432. package/dist/cjs/internal/logger-circular.js.map +1 -1
  433. package/dist/cjs/internal/logger.js +11 -34
  434. package/dist/cjs/internal/logger.js.map +1 -1
  435. package/dist/cjs/internal/managedRuntime.js +9 -32
  436. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  437. package/dist/cjs/internal/matcher.js +6 -29
  438. package/dist/cjs/internal/matcher.js.map +1 -1
  439. package/dist/cjs/internal/metric/boundaries.js +9 -32
  440. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  441. package/dist/cjs/internal/metric/hook.js +9 -32
  442. package/dist/cjs/internal/metric/hook.js.map +1 -1
  443. package/dist/cjs/internal/metric/key.js +11 -34
  444. package/dist/cjs/internal/metric/key.js.map +1 -1
  445. package/dist/cjs/internal/metric/keyType.js +8 -31
  446. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  447. package/dist/cjs/internal/metric/label.js +6 -29
  448. package/dist/cjs/internal/metric/label.js.map +1 -1
  449. package/dist/cjs/internal/metric/pair.js +1 -1
  450. package/dist/cjs/internal/metric/pair.js.map +1 -1
  451. package/dist/cjs/internal/metric/polling.js +8 -31
  452. package/dist/cjs/internal/metric/polling.js.map +1 -1
  453. package/dist/cjs/internal/metric/registry.js +8 -31
  454. package/dist/cjs/internal/metric/registry.js.map +1 -1
  455. package/dist/cjs/internal/metric/state.js +8 -31
  456. package/dist/cjs/internal/metric/state.js.map +1 -1
  457. package/dist/cjs/internal/metric.js +15 -38
  458. package/dist/cjs/internal/metric.js.map +1 -1
  459. package/dist/cjs/internal/option.js +7 -30
  460. package/dist/cjs/internal/option.js.map +1 -1
  461. package/dist/cjs/internal/pool.js +43 -42
  462. package/dist/cjs/internal/pool.js.map +1 -1
  463. package/dist/cjs/internal/pubsub.js +13 -36
  464. package/dist/cjs/internal/pubsub.js.map +1 -1
  465. package/dist/cjs/internal/query.js +10 -33
  466. package/dist/cjs/internal/query.js.map +1 -1
  467. package/dist/cjs/internal/queue.js +12 -35
  468. package/dist/cjs/internal/queue.js.map +1 -1
  469. package/dist/cjs/internal/random.js +7 -30
  470. package/dist/cjs/internal/random.js.map +1 -1
  471. package/dist/cjs/internal/rateLimiter.js +6 -29
  472. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  473. package/dist/cjs/internal/redBlackTree/iterator.js +4 -27
  474. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  475. package/dist/cjs/internal/redBlackTree.js +13 -36
  476. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  477. package/dist/cjs/internal/redacted.js +8 -31
  478. package/dist/cjs/internal/redacted.js.map +1 -1
  479. package/dist/cjs/internal/ref.js +8 -31
  480. package/dist/cjs/internal/ref.js.map +1 -1
  481. package/dist/cjs/internal/reloadable.js +10 -33
  482. package/dist/cjs/internal/reloadable.js.map +1 -1
  483. package/dist/cjs/internal/request.js +7 -30
  484. package/dist/cjs/internal/request.js.map +1 -1
  485. package/dist/cjs/internal/resource.js +7 -30
  486. package/dist/cjs/internal/resource.js.map +1 -1
  487. package/dist/cjs/internal/ringBuffer.js +5 -28
  488. package/dist/cjs/internal/ringBuffer.js.map +1 -1
  489. package/dist/cjs/internal/runtime.js +23 -46
  490. package/dist/cjs/internal/runtime.js.map +1 -1
  491. package/dist/cjs/internal/runtimeFlags.js +5 -28
  492. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  493. package/dist/cjs/internal/runtimeFlagsPatch.js +1 -1
  494. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -1
  495. package/dist/cjs/internal/schedule/decision.js +4 -27
  496. package/dist/cjs/internal/schedule/decision.js.map +1 -1
  497. package/dist/cjs/internal/schedule/interval.js +5 -28
  498. package/dist/cjs/internal/schedule/interval.js.map +1 -1
  499. package/dist/cjs/internal/schedule/intervals.js +7 -30
  500. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  501. package/dist/cjs/internal/schedule.js +21 -44
  502. package/dist/cjs/internal/schedule.js.map +1 -1
  503. package/dist/cjs/internal/scopedCache.js +19 -42
  504. package/dist/cjs/internal/scopedCache.js.map +1 -1
  505. package/dist/cjs/internal/scopedRef.js +10 -33
  506. package/dist/cjs/internal/scopedRef.js.map +1 -1
  507. package/dist/cjs/internal/secret.js +5 -28
  508. package/dist/cjs/internal/secret.js.map +1 -1
  509. package/dist/cjs/internal/singleShotGen.js.map +1 -1
  510. package/dist/cjs/internal/sink.js +22 -45
  511. package/dist/cjs/internal/sink.js.map +1 -1
  512. package/dist/cjs/internal/stm/core.js +30 -53
  513. package/dist/cjs/internal/stm/core.js.map +1 -1
  514. package/dist/cjs/internal/stm/stm/entry.js +3 -26
  515. package/dist/cjs/internal/stm/stm/entry.js.map +1 -1
  516. package/dist/cjs/internal/stm/stm/journal.js +3 -26
  517. package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
  518. package/dist/cjs/internal/stm/stm/stmState.js +9 -32
  519. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  520. package/dist/cjs/internal/stm/stm/tExit.js +7 -30
  521. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  522. package/dist/cjs/internal/stm/stm/tryCommit.js +3 -26
  523. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  524. package/dist/cjs/internal/stm/stm/versioned.js.map +1 -1
  525. package/dist/cjs/internal/stm/stm.js +17 -40
  526. package/dist/cjs/internal/stm/stm.js.map +1 -1
  527. package/dist/cjs/internal/stm/tArray.js +9 -32
  528. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  529. package/dist/cjs/internal/stm/tDeferred.js +8 -31
  530. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  531. package/dist/cjs/internal/stm/tMap.js +15 -38
  532. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  533. package/dist/cjs/internal/stm/tPriorityQueue.js +9 -32
  534. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  535. package/dist/cjs/internal/stm/tPubSub.js +12 -35
  536. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  537. package/dist/cjs/internal/stm/tQueue.js +12 -35
  538. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  539. package/dist/cjs/internal/stm/tRandom.js +10 -33
  540. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  541. package/dist/cjs/internal/stm/tReentrantLock.js +10 -33
  542. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  543. package/dist/cjs/internal/stm/tRef.js +7 -30
  544. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  545. package/dist/cjs/internal/stm/tSemaphore.js +8 -31
  546. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  547. package/dist/cjs/internal/stm/tSet.js +10 -33
  548. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  549. package/dist/cjs/internal/stream/emit.js +8 -31
  550. package/dist/cjs/internal/stream/emit.js.map +1 -1
  551. package/dist/cjs/internal/stream/haltStrategy.js +4 -27
  552. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  553. package/dist/cjs/internal/stream/handoff.js +7 -30
  554. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  555. package/dist/cjs/internal/stream/pull.js +7 -30
  556. package/dist/cjs/internal/stream/pull.js.map +1 -1
  557. package/dist/cjs/internal/stream.js +46 -69
  558. package/dist/cjs/internal/stream.js.map +1 -1
  559. package/dist/cjs/internal/subscriptionRef.js +13 -36
  560. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  561. package/dist/cjs/internal/supervisor/patch.js +8 -31
  562. package/dist/cjs/internal/supervisor/patch.js.map +1 -1
  563. package/dist/cjs/internal/supervisor.js +8 -31
  564. package/dist/cjs/internal/supervisor.js.map +1 -1
  565. package/dist/cjs/internal/synchronizedRef.js +5 -28
  566. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  567. package/dist/cjs/internal/take.js +9 -32
  568. package/dist/cjs/internal/take.js.map +1 -1
  569. package/dist/cjs/internal/tracer.js +3 -26
  570. package/dist/cjs/internal/tracer.js.map +1 -1
  571. package/dist/cjs/internal/trie.js +9 -32
  572. package/dist/cjs/internal/trie.js.map +1 -1
  573. package/dist/cjs/internal/version.js +1 -1
  574. package/dist/dts/Stream.d.ts +1075 -3
  575. package/dist/dts/Stream.d.ts.map +1 -1
  576. package/dist/esm/Stream.js +1075 -3
  577. package/dist/esm/Stream.js.map +1 -1
  578. package/dist/esm/internal/pool.js +29 -5
  579. package/dist/esm/internal/pool.js.map +1 -1
  580. package/dist/esm/internal/version.js +1 -1
  581. package/package.json +1 -1
  582. package/src/Stream.ts +1075 -3
  583. package/src/internal/pool.ts +36 -5
  584. package/src/internal/version.ts +1 -1
@@ -169,6 +169,29 @@ export declare const accumulateChunks: <A, E, R>(self: Stream<A, E, R>) => Strea
169
169
  * Creates a stream from a single value that will get cleaned up after the
170
170
  * stream is consumed.
171
171
  *
172
+ * @example
173
+ * import { Console, Effect, Stream } from "effect"
174
+ *
175
+ * // Simulating File operations
176
+ * const open = (filename: string) =>
177
+ * Effect.gen(function*() {
178
+ * yield* Console.log(`Opening ${filename}`)
179
+ * return {
180
+ * getLines: Effect.succeed(["Line 1", "Line 2", "Line 3"]),
181
+ * close: Console.log(`Closing ${filename}`)
182
+ * }
183
+ * })
184
+ *
185
+ * const stream = Stream.acquireRelease(
186
+ * open("file.txt"),
187
+ * (file) => file.close
188
+ * ).pipe(Stream.flatMap((file) => file.getLines))
189
+ *
190
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
191
+ * // Opening file.txt
192
+ * // Closing file.txt
193
+ * // { _id: 'Chunk', values: [ [ 'Line 1', 'Line 2', 'Line 3' ] ] }
194
+ *
172
195
  * @since 2.0.0
173
196
  * @category constructors
174
197
  */
@@ -229,6 +252,14 @@ export declare const aggregateWithinEither: {
229
252
  /**
230
253
  * Maps the success values of this stream to the specified constant value.
231
254
  *
255
+ * @example
256
+ * import { Effect, Stream } from "effect"
257
+ *
258
+ * const stream = Stream.range(1, 5).pipe(Stream.as(null))
259
+ *
260
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
261
+ * // { _id: 'Chunk', values: [ null, null, null, null, null ] }
262
+ *
232
263
  * @since 2.0.0
233
264
  * @category mapping
234
265
  */
@@ -246,6 +277,29 @@ export {
246
277
  * The registration function can optionally return an `Effect`, which will be
247
278
  * executed if the `Fiber` executing this Effect is interrupted.
248
279
  *
280
+ * @example
281
+ * import type { StreamEmit } from "effect"
282
+ * import { Chunk, Effect, Option, Stream } from "effect"
283
+ *
284
+ * const events = [1, 2, 3, 4]
285
+ *
286
+ * const stream = Stream.async(
287
+ * (emit: StreamEmit.Emit<never, never, number, void>) => {
288
+ * events.forEach((n) => {
289
+ * setTimeout(() => {
290
+ * if (n === 3) {
291
+ * emit(Effect.fail(Option.none())) // Terminate the stream
292
+ * } else {
293
+ * emit(Effect.succeed(Chunk.of(n))) // Add the current item to the stream
294
+ * }
295
+ * }, 100 * n)
296
+ * })
297
+ * }
298
+ * )
299
+ *
300
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
301
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
302
+ *
249
303
  * @since 2.0.0
250
304
  * @category constructors
251
305
  */
@@ -287,6 +341,77 @@ export declare const branchAfter: {
287
341
  * as this stream. The driver stream will only ever advance the `maximumLag`
288
342
  * chunks before the slowest downstream stream.
289
343
  *
344
+ * @example
345
+ * import { Console, Effect, Fiber, Schedule, Stream } from "effect"
346
+ *
347
+ * const numbers = Effect.scoped(
348
+ * Stream.range(1, 20).pipe(
349
+ * Stream.tap((n) => Console.log(`Emit ${n} element before broadcasting`)),
350
+ * Stream.broadcast(2, 5),
351
+ * Stream.flatMap(([first, second]) =>
352
+ * Effect.gen(function*() {
353
+ * const fiber1 = yield* Stream.runFold(first, 0, (acc, e) => Math.max(acc, e)).pipe(
354
+ * Effect.andThen((max) => Console.log(`Maximum: ${max}`)),
355
+ * Effect.fork
356
+ * )
357
+ * const fiber2 = yield* second.pipe(
358
+ * Stream.schedule(Schedule.spaced("1 second")),
359
+ * Stream.runForEach((n) => Console.log(`Logging to the Console: ${n}`)),
360
+ * Effect.fork
361
+ * )
362
+ * yield* Fiber.join(fiber1).pipe(
363
+ * Effect.zip(Fiber.join(fiber2), { concurrent: true })
364
+ * )
365
+ * })
366
+ * ),
367
+ * Stream.runCollect
368
+ * )
369
+ * )
370
+ *
371
+ * // Effect.runPromise(numbers).then(console.log)
372
+ * // Emit 1 element before broadcasting
373
+ * // Emit 2 element before broadcasting
374
+ * // Emit 3 element before broadcasting
375
+ * // Emit 4 element before broadcasting
376
+ * // Emit 5 element before broadcasting
377
+ * // Emit 6 element before broadcasting
378
+ * // Emit 7 element before broadcasting
379
+ * // Emit 8 element before broadcasting
380
+ * // Emit 9 element before broadcasting
381
+ * // Emit 10 element before broadcasting
382
+ * // Emit 11 element before broadcasting
383
+ * // Logging to the Console: 1
384
+ * // Logging to the Console: 2
385
+ * // Logging to the Console: 3
386
+ * // Logging to the Console: 4
387
+ * // Logging to the Console: 5
388
+ * // Emit 12 element before broadcasting
389
+ * // Emit 13 element before broadcasting
390
+ * // Emit 14 element before broadcasting
391
+ * // Emit 15 element before broadcasting
392
+ * // Emit 16 element before broadcasting
393
+ * // Logging to the Console: 6
394
+ * // Logging to the Console: 7
395
+ * // Logging to the Console: 8
396
+ * // Logging to the Console: 9
397
+ * // Logging to the Console: 10
398
+ * // Emit 17 element before broadcasting
399
+ * // Emit 18 element before broadcasting
400
+ * // Emit 19 element before broadcasting
401
+ * // Emit 20 element before broadcasting
402
+ * // Logging to the Console: 11
403
+ * // Logging to the Console: 12
404
+ * // Logging to the Console: 13
405
+ * // Logging to the Console: 14
406
+ * // Logging to the Console: 15
407
+ * // Maximum: 20
408
+ * // Logging to the Console: 16
409
+ * // Logging to the Console: 17
410
+ * // Logging to the Console: 18
411
+ * // Logging to the Console: 19
412
+ * // Logging to the Console: 20
413
+ * // { _id: 'Chunk', values: [ undefined ] }
414
+ *
290
415
  * @since 2.0.0
291
416
  * @category utils
292
417
  */
@@ -338,9 +463,38 @@ export declare const broadcastedQueuesDynamic: {
338
463
  * Allows a faster producer to progress independently of a slower consumer by
339
464
  * buffering up to `capacity` elements in a queue.
340
465
  *
341
- * @note This combinator destroys the chunking structure. It's recommended to
466
+ * Note: This combinator destroys the chunking structure. It's recommended to
342
467
  * use rechunk afterwards. Additionally, prefer capacities that are powers
343
468
  * of 2 for better performance.
469
+ *
470
+ * @example
471
+ * import { Console, Effect, Schedule, Stream } from "effect"
472
+ *
473
+ * const stream = Stream.range(1, 10).pipe(
474
+ * Stream.tap((n) => Console.log(`before buffering: ${n}`)),
475
+ * Stream.buffer({ capacity: 4 }),
476
+ * Stream.tap((n) => Console.log(`after buffering: ${n}`)),
477
+ * Stream.schedule(Schedule.spaced("5 seconds"))
478
+ * )
479
+ *
480
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
481
+ * // before buffering: 1
482
+ * // before buffering: 2
483
+ * // before buffering: 3
484
+ * // before buffering: 4
485
+ * // before buffering: 5
486
+ * // before buffering: 6
487
+ * // after buffering: 1
488
+ * // after buffering: 2
489
+ * // before buffering: 7
490
+ * // after buffering: 3
491
+ * // before buffering: 8
492
+ * // after buffering: 4
493
+ * // before buffering: 9
494
+ * // after buffering: 5
495
+ * // before buffering: 10
496
+ * // ...
497
+ *
344
498
  * @since 2.0.0
345
499
  * @category utils
346
500
  */
@@ -489,6 +643,14 @@ export declare const catchSomeCause: {
489
643
  * previous element emitted, using natural equality to determine whether two
490
644
  * elements are equal.
491
645
  *
646
+ * @example
647
+ * import { Effect, Stream } from "effect"
648
+ *
649
+ * const stream = Stream.make(1, 1, 1, 2, 2, 3, 4).pipe(Stream.changes)
650
+ *
651
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
652
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4 ] }
653
+ *
492
654
  * @since 2.0.0
493
655
  * @category utils
494
656
  */
@@ -572,6 +734,17 @@ export declare const combineChunks: {
572
734
  * that emits the elements from this stream and then the elements from the
573
735
  * specified stream.
574
736
  *
737
+ * @example
738
+ * import { Effect, Stream } from "effect"
739
+ *
740
+ * const s1 = Stream.make(1, 2, 3)
741
+ * const s2 = Stream.make(4, 5)
742
+ *
743
+ * const stream = Stream.concat(s1, s2)
744
+ *
745
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
746
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
747
+ *
575
748
  * @since 2.0.0
576
749
  * @category utils
577
750
  */
@@ -582,6 +755,24 @@ export declare const concat: {
582
755
  /**
583
756
  * Concatenates all of the streams in the chunk to one stream.
584
757
  *
758
+ * @example
759
+ * import { Chunk, Effect, Stream } from "effect"
760
+ *
761
+ * const s1 = Stream.make(1, 2, 3)
762
+ * const s2 = Stream.make(4, 5)
763
+ * const s3 = Stream.make(6, 7, 8)
764
+ *
765
+ * const stream = Stream.concatAll(Chunk.make(s1, s2, s3))
766
+ *
767
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
768
+ * // {
769
+ * // _id: 'Chunk',
770
+ * // values: [
771
+ * // 1, 2, 3, 4,
772
+ * // 5, 6, 7, 8
773
+ * // ]
774
+ * // }
775
+ *
585
776
  * @since 2.0.0
586
777
  * @category constructors
587
778
  */
@@ -593,6 +784,22 @@ export declare const concatAll: <A, E, R>(streams: Chunk.Chunk<Stream<A, E, R>>)
593
784
  *
594
785
  * See also `Stream.zip` for the more common point-wise variant.
595
786
  *
787
+ * @example
788
+ * import { Effect, Stream } from "effect"
789
+ *
790
+ * const s1 = Stream.make(1, 2, 3)
791
+ * const s2 = Stream.make("a", "b")
792
+ *
793
+ * const product = Stream.cross(s1, s2)
794
+ *
795
+ * // Effect.runPromise(Stream.runCollect(product)).then(console.log)
796
+ * // {
797
+ * // _id: "Chunk",
798
+ * // values: [
799
+ * // [ 1, "a" ], [ 1, "b" ], [ 2, "a" ], [ 2, "b" ], [ 3, "a" ], [ 3, "b" ]
800
+ * // ]
801
+ * // }
802
+ *
596
803
  * @since 2.0.0
597
804
  * @category utils
598
805
  */
@@ -654,6 +861,45 @@ export declare const crossWith: {
654
861
  * example, a search engine may only want to initiate a search after a user
655
862
  * has paused typing so as to not prematurely recommend results.
656
863
  *
864
+ * @example
865
+ * import { Effect, Stream } from "effect"
866
+ *
867
+ * let last = Date.now()
868
+ * const log = (message: string) =>
869
+ * Effect.sync(() => {
870
+ * const end = Date.now()
871
+ * console.log(`${message} after ${end - last}ms`)
872
+ * last = end
873
+ * })
874
+ *
875
+ * const stream = Stream.make(1, 2, 3).pipe(
876
+ * Stream.concat(
877
+ * Stream.fromEffect(Effect.sleep("200 millis").pipe(Effect.as(4))) // Emit 4 after 200 ms
878
+ * ),
879
+ * Stream.concat(Stream.make(5, 6)), // Continue with more rapid values
880
+ * Stream.concat(
881
+ * Stream.fromEffect(Effect.sleep("150 millis").pipe(Effect.as(7))) // Emit 7 after 150 ms
882
+ * ),
883
+ * Stream.concat(Stream.make(8)),
884
+ * Stream.tap((n) => log(`Received ${n}`)),
885
+ * Stream.debounce("100 millis"), // Only emit values after a pause of at least 100 milliseconds,
886
+ * Stream.tap((n) => log(`> Emitted ${n}`))
887
+ * )
888
+ *
889
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
890
+ * // Received 1 after 5ms
891
+ * // Received 2 after 2ms
892
+ * // Received 3 after 0ms
893
+ * // > Emitted 3 after 104ms
894
+ * // Received 4 after 99ms
895
+ * // Received 5 after 1ms
896
+ * // Received 6 after 0ms
897
+ * // > Emitted 6 after 101ms
898
+ * // Received 7 after 50ms
899
+ * // Received 8 after 1ms
900
+ * // > Emitted 8 after 101ms
901
+ * // { _id: 'Chunk', values: [ 3, 6, 8 ] }
902
+ *
657
903
  * @since 2.0.0
658
904
  * @category utils
659
905
  */
@@ -727,6 +973,15 @@ export declare const distributedWithDynamic: {
727
973
  * Converts this stream to a stream that executes its effects but emits no
728
974
  * elements. Useful for sequencing effects using streams:
729
975
  *
976
+ * @example
977
+ * import { Effect, Stream } from "effect"
978
+ *
979
+ * // We create a stream and immediately drain it.
980
+ * const stream = Stream.range(1, 6).pipe(Stream.drain)
981
+ *
982
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
983
+ * // { _id: 'Chunk', values: [] }
984
+ *
730
985
  * @since 2.0.0
731
986
  * @category utils
732
987
  */
@@ -823,6 +1078,14 @@ export declare const either: <A, E, R>(self: Stream<A, E, R>) => Stream<Either.E
823
1078
  /**
824
1079
  * The empty stream.
825
1080
  *
1081
+ * @example
1082
+ * import { Effect, Stream } from "effect"
1083
+ *
1084
+ * const stream = Stream.empty
1085
+ *
1086
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1087
+ * // { _id: 'Chunk', values: [] }
1088
+ *
826
1089
  * @since 2.0.0
827
1090
  * @category constructors
828
1091
  */
@@ -830,6 +1093,22 @@ export declare const empty: Stream<never>;
830
1093
  /**
831
1094
  * Executes the provided finalizer after this stream's finalizers run.
832
1095
  *
1096
+ * @example
1097
+ * import { Console, Effect, Stream } from "effect"
1098
+ *
1099
+ * const program = Stream.fromEffect(Console.log("Application Logic.")).pipe(
1100
+ * Stream.concat(Stream.finalizer(Console.log("Finalizing the stream"))),
1101
+ * Stream.ensuring(
1102
+ * Console.log("Doing some other works after stream's finalization")
1103
+ * )
1104
+ * )
1105
+ *
1106
+ * // Effect.runPromise(Stream.runCollect(program)).then(console.log)
1107
+ * // Application Logic.
1108
+ * // Finalizing the stream
1109
+ * // Doing some other works after stream's finalization
1110
+ * // { _id: 'Chunk', values: [ undefined, undefined ] }
1111
+ *
833
1112
  * @since 2.0.0
834
1113
  * @category utils
835
1114
  */
@@ -885,6 +1164,18 @@ export declare const execute: <X, E, R>(effect: Effect.Effect<X, E, R>) => Strea
885
1164
  /**
886
1165
  * Terminates with the specified error.
887
1166
  *
1167
+ * @example
1168
+ * import { Effect, Stream } from "effect"
1169
+ *
1170
+ * const stream = Stream.fail("Uh oh!")
1171
+ *
1172
+ * Effect.runPromiseExit(Stream.runCollect(stream)).then(console.log)
1173
+ * // {
1174
+ * // _id: 'Exit',
1175
+ * // _tag: 'Failure',
1176
+ * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Uh oh!' }
1177
+ * // }
1178
+ *
888
1179
  * @since 2.0.0
889
1180
  * @category constructors
890
1181
  */
@@ -913,6 +1204,14 @@ export declare const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => St
913
1204
  /**
914
1205
  * Filters the elements emitted by this stream using the provided function.
915
1206
  *
1207
+ * @example
1208
+ * import { Effect, Stream } from "effect"
1209
+ *
1210
+ * const stream = Stream.range(1, 11).pipe(Stream.filter((n) => n % 2 === 0))
1211
+ *
1212
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1213
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
1214
+ *
916
1215
  * @since 2.0.0
917
1216
  * @category filtering
918
1217
  */
@@ -978,6 +1277,29 @@ export declare const filterMapWhileEffect: {
978
1277
  * Creates a one-element stream that never fails and executes the finalizer
979
1278
  * when it ends.
980
1279
  *
1280
+ * @example
1281
+ * import { Console, Effect, Stream } from "effect"
1282
+ *
1283
+ * const application = Stream.fromEffect(Console.log("Application Logic."))
1284
+ *
1285
+ * const deleteDir = (dir: string) => Console.log(`Deleting dir: ${dir}`)
1286
+ *
1287
+ * const program = application.pipe(
1288
+ * Stream.concat(
1289
+ * Stream.finalizer(
1290
+ * deleteDir("tmp").pipe(
1291
+ * Effect.andThen(Console.log("Temporary directory was deleted."))
1292
+ * )
1293
+ * )
1294
+ * )
1295
+ * )
1296
+ *
1297
+ * // Effect.runPromise(Stream.runCollect(program)).then(console.log)
1298
+ * // Application Logic.
1299
+ * // Deleting dir: tmp
1300
+ * // Temporary directory was deleted.
1301
+ * // { _id: 'Chunk', values: [ undefined, undefined ] }
1302
+ *
981
1303
  * @since 2.0.0
982
1304
  * @category constructors
983
1305
  */
@@ -1106,6 +1428,22 @@ export declare const forever: <A, E, R>(self: Stream<A, E, R>) => Stream<A, E, R
1106
1428
  /**
1107
1429
  * Creates a stream from an `AsyncIterable`.
1108
1430
  *
1431
+ * @example
1432
+ * import { Effect, Stream } from "effect"
1433
+ *
1434
+ * const myAsyncIterable = async function*() {
1435
+ * yield 1
1436
+ * yield 2
1437
+ * }
1438
+ *
1439
+ * const stream = Stream.fromAsyncIterable(
1440
+ * myAsyncIterable(),
1441
+ * (e) => new Error(String(e)) // Error Handling
1442
+ * )
1443
+ *
1444
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1445
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
1446
+ *
1109
1447
  * @since 2.0.0
1110
1448
  * @category constructors
1111
1449
  */
@@ -1127,6 +1465,15 @@ export declare const toChannel: <A, E, R>(stream: Stream<A, E, R>) => Channel.Ch
1127
1465
  /**
1128
1466
  * Creates a stream from a `Chunk` of values.
1129
1467
  *
1468
+ * @example
1469
+ * import { Chunk, Effect, Stream } from "effect"
1470
+ *
1471
+ * // Creating a stream with values from a single Chunk
1472
+ * const stream = Stream.fromChunk(Chunk.make(1, 2, 3))
1473
+ *
1474
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1475
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
1476
+ *
1130
1477
  * @since 2.0.0
1131
1478
  * @category constructors
1132
1479
  */
@@ -1161,6 +1508,15 @@ export declare const fromChunkQueue: <A>(queue: Queue.Dequeue<Chunk.Chunk<A>>, o
1161
1508
  /**
1162
1509
  * Creates a stream from an arbitrary number of chunks.
1163
1510
  *
1511
+ * @example
1512
+ * import { Chunk, Effect, Stream } from "effect"
1513
+ *
1514
+ * // Creating a stream with values from multiple Chunks
1515
+ * const stream = Stream.fromChunks(Chunk.make(1, 2, 3), Chunk.make(4, 5, 6))
1516
+ *
1517
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1518
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
1519
+ *
1164
1520
  * @since 2.0.0
1165
1521
  * @category constructors
1166
1522
  */
@@ -1169,6 +1525,14 @@ export declare const fromChunks: <A>(...chunks: Array<Chunk.Chunk<A>>) => Stream
1169
1525
  * Either emits the success value of this effect or terminates the stream
1170
1526
  * with the failure value of this effect.
1171
1527
  *
1528
+ * @example
1529
+ * import { Effect, Random, Stream } from "effect"
1530
+ *
1531
+ * const stream = Stream.fromEffect(Random.nextInt)
1532
+ *
1533
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1534
+ * // Example Output: { _id: 'Chunk', values: [ 922694024 ] }
1535
+ *
1172
1536
  * @since 2.0.0
1173
1537
  * @category constructors
1174
1538
  */
@@ -1203,6 +1567,16 @@ export declare const fromPubSub: {
1203
1567
  /**
1204
1568
  * Creates a new `Stream` from an iterable collection of values.
1205
1569
  *
1570
+ * @example
1571
+ * import { Effect, Stream } from "effect"
1572
+ *
1573
+ * const numbers = [1, 2, 3]
1574
+ *
1575
+ * const stream = Stream.fromIterable(numbers)
1576
+ *
1577
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1578
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
1579
+ *
1206
1580
  * @since 2.0.0
1207
1581
  * @category constructors
1208
1582
  */
@@ -1210,6 +1584,23 @@ export declare const fromIterable: <A>(iterable: Iterable<A>) => Stream<A>;
1210
1584
  /**
1211
1585
  * Creates a stream from an effect producing a value of type `Iterable<A>`.
1212
1586
  *
1587
+ * @example
1588
+ * import { Context, Effect, Stream } from "effect"
1589
+ *
1590
+ * class Database extends Context.Tag("Database")<
1591
+ * Database,
1592
+ * { readonly getUsers: Effect.Effect<Array<string>> }
1593
+ * >() {}
1594
+ *
1595
+ * const getUsers = Database.pipe(Effect.andThen((_) => _.getUsers))
1596
+ *
1597
+ * const stream = Stream.fromIterableEffect(getUsers)
1598
+ *
1599
+ * // Effect.runPromise(
1600
+ * // Stream.runCollect(stream.pipe(Stream.provideService(Database, { getUsers: Effect.succeed(["user1", "user2"]) })))
1601
+ * // ).then(console.log)
1602
+ * // { _id: 'Chunk', values: [ 'user1', 'user2' ] }
1603
+ *
1213
1604
  * @since 2.0.0
1214
1605
  * @category constructors
1215
1606
  */
@@ -1266,6 +1657,19 @@ export declare const fromReadableStreamByob: <E>(evaluate: LazyArg<ReadableStrea
1266
1657
  * input. The stream will emit an element for each value output from the
1267
1658
  * schedule, continuing for as long as the schedule continues.
1268
1659
  *
1660
+ * @example
1661
+ * import { Effect, Schedule, Stream } from "effect"
1662
+ *
1663
+ * // Emits values every 1 second for a total of 5 emissions
1664
+ * const schedule = Schedule.spaced("1 second").pipe(
1665
+ * Schedule.compose(Schedule.recurs(5))
1666
+ * )
1667
+ *
1668
+ * const stream = Stream.fromSchedule(schedule)
1669
+ *
1670
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1671
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
1672
+ *
1269
1673
  * @since 2.0.0
1270
1674
  * @category constructors
1271
1675
  */
@@ -1284,6 +1688,35 @@ export declare const groupAdjacentBy: {
1284
1688
  /**
1285
1689
  * More powerful version of `Stream.groupByKey`.
1286
1690
  *
1691
+ * @example
1692
+ * import { Chunk, Effect, GroupBy, Stream } from "effect"
1693
+ *
1694
+ * const groupByKeyResult = Stream.fromIterable([
1695
+ * "Mary",
1696
+ * "James",
1697
+ * "Robert",
1698
+ * "Patricia",
1699
+ * "John",
1700
+ * "Jennifer",
1701
+ * "Rebecca",
1702
+ * "Peter"
1703
+ * ]).pipe(
1704
+ * Stream.groupBy((name) => Effect.succeed([name.substring(0, 1), name]))
1705
+ * )
1706
+ *
1707
+ * const stream = GroupBy.evaluate(groupByKeyResult, (key, stream) =>
1708
+ * Stream.fromEffect(
1709
+ * Stream.runCollect(stream).pipe(
1710
+ * Effect.andThen((chunk) => [key, Chunk.size(chunk)] as const)
1711
+ * )
1712
+ * ))
1713
+ *
1714
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1715
+ * // {
1716
+ * // _id: 'Chunk',
1717
+ * // values: [ [ 'M', 1 ], [ 'J', 3 ], [ 'R', 2 ], [ 'P', 2 ] ]
1718
+ * // }
1719
+ *
1287
1720
  * @since 2.0.0
1288
1721
  * @category grouping
1289
1722
  */
@@ -1343,6 +1776,22 @@ export declare const groupByKey: {
1343
1776
  /**
1344
1777
  * Partitions the stream with specified `chunkSize`.
1345
1778
  *
1779
+ * @example
1780
+ * import { Effect, Stream } from "effect"
1781
+ *
1782
+ * const stream = Stream.range(0, 8).pipe(Stream.grouped(3))
1783
+ *
1784
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log("%o", chunks))
1785
+ * // {
1786
+ * // _id: 'Chunk',
1787
+ * // values: [
1788
+ * // { _id: 'Chunk', values: [ 0, 1, 2, [length]: 3 ] },
1789
+ * // { _id: 'Chunk', values: [ 3, 4, 5, [length]: 3 ] },
1790
+ * // { _id: 'Chunk', values: [ 6, 7, 8, [length]: 3 ] },
1791
+ * // [length]: 3
1792
+ * // ]
1793
+ * // }
1794
+ *
1346
1795
  * @since 2.0.0
1347
1796
  * @category utils
1348
1797
  */
@@ -1354,6 +1803,43 @@ export declare const grouped: {
1354
1803
  * Partitions the stream with the specified `chunkSize` or until the specified
1355
1804
  * `duration` has passed, whichever is satisfied first.
1356
1805
  *
1806
+ * @example
1807
+ * import { Chunk, Effect, Schedule, Stream } from "effect"
1808
+ *
1809
+ * const stream = Stream.range(0, 9).pipe(
1810
+ * Stream.repeat(Schedule.spaced("1 second")),
1811
+ * Stream.groupedWithin(18, "1.5 seconds"),
1812
+ * Stream.take(3)
1813
+ * )
1814
+ *
1815
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log(Chunk.toArray(chunks)))
1816
+ * // [
1817
+ * // {
1818
+ * // _id: 'Chunk',
1819
+ * // values: [
1820
+ * // 0, 1, 2, 3, 4, 5, 6,
1821
+ * // 7, 8, 9, 0, 1, 2, 3,
1822
+ * // 4, 5, 6, 7
1823
+ * // ]
1824
+ * // },
1825
+ * // {
1826
+ * // _id: 'Chunk',
1827
+ * // values: [
1828
+ * // 8, 9, 0, 1, 2,
1829
+ * // 3, 4, 5, 6, 7,
1830
+ * // 8, 9
1831
+ * // ]
1832
+ * // },
1833
+ * // {
1834
+ * // _id: 'Chunk',
1835
+ * // values: [
1836
+ * // 0, 1, 2, 3, 4, 5, 6,
1837
+ * // 7, 8, 9, 0, 1, 2, 3,
1838
+ * // 4, 5, 6, 7
1839
+ * // ]
1840
+ * // }
1841
+ * // ]
1842
+ *
1357
1843
  * @since 2.0.0
1358
1844
  * @category utils
1359
1845
  */
@@ -1417,6 +1903,16 @@ export declare const identity: <A, E = never, R = never>() => Stream<A, E, R>;
1417
1903
  * one stream is exhausted all remaining values in the other stream will be
1418
1904
  * pulled.
1419
1905
  *
1906
+ * @example
1907
+ * import { Effect, Stream } from "effect"
1908
+ *
1909
+ * const s1 = Stream.make(1, 2, 3)
1910
+ * const s2 = Stream.make(4, 5, 6)
1911
+ *
1912
+ * const stream = Stream.interleave(s1, s2)
1913
+ *
1914
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1915
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 5, 3, 6 ] }
1420
1916
  * @since 2.0.0
1421
1917
  * @category utils
1422
1918
  */
@@ -1433,6 +1929,25 @@ export declare const interleave: {
1433
1929
  * stream are exhausted further requests for values from that stream will be
1434
1930
  * ignored.
1435
1931
  *
1932
+ * @example
1933
+ * import { Effect, Stream } from "effect"
1934
+ *
1935
+ * const s1 = Stream.make(1, 3, 5, 7, 9)
1936
+ * const s2 = Stream.make(2, 4, 6, 8, 10)
1937
+ *
1938
+ * const booleanStream = Stream.make(true, false, false).pipe(Stream.forever)
1939
+ *
1940
+ * const stream = Stream.interleaveWith(s1, s2, booleanStream)
1941
+ *
1942
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1943
+ * // {
1944
+ * // _id: 'Chunk',
1945
+ * // values: [
1946
+ * // 1, 2, 4, 3, 6,
1947
+ * // 8, 5, 10, 7, 9
1948
+ * // ]
1949
+ * // }
1950
+ *
1436
1951
  * @since 2.0.0
1437
1952
  * @category utils
1438
1953
  */
@@ -1443,6 +1958,20 @@ export declare const interleaveWith: {
1443
1958
  /**
1444
1959
  * Intersperse stream with provided `element`.
1445
1960
  *
1961
+ * @example
1962
+ * import { Effect, Stream } from "effect"
1963
+ *
1964
+ * const stream = Stream.make(1, 2, 3, 4, 5).pipe(Stream.intersperse(0))
1965
+ *
1966
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1967
+ * // {
1968
+ * // _id: 'Chunk',
1969
+ * // values: [
1970
+ * // 1, 0, 2, 0, 3,
1971
+ * // 0, 4, 0, 5
1972
+ * // ]
1973
+ * // }
1974
+ *
1446
1975
  * @since 2.0.0
1447
1976
  * @category utils
1448
1977
  */
@@ -1453,6 +1982,27 @@ export declare const intersperse: {
1453
1982
  /**
1454
1983
  * Intersperse the specified element, also adding a prefix and a suffix.
1455
1984
  *
1985
+ * @example
1986
+ * import { Effect, Stream } from "effect"
1987
+ *
1988
+ * const stream = Stream.make(1, 2, 3, 4, 5).pipe(
1989
+ * Stream.intersperseAffixes({
1990
+ * start: "[",
1991
+ * middle: "-",
1992
+ * end: "]"
1993
+ * })
1994
+ * )
1995
+ *
1996
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1997
+ * // {
1998
+ * // _id: 'Chunk',
1999
+ * // values: [
2000
+ * // '[', 1, '-', 2, '-',
2001
+ * // 3, '-', 4, '-', 5,
2002
+ * // ']'
2003
+ * // ]
2004
+ * // }
2005
+ *
1456
2006
  * @since 2.0.0
1457
2007
  * @category utils
1458
2008
  */
@@ -1513,6 +2063,15 @@ export declare const interruptWhenDeferred: {
1513
2063
  * The infinite stream of iterative function application: a, f(a), f(f(a)),
1514
2064
  * f(f(f(a))), ...
1515
2065
  *
2066
+ * @example
2067
+ * import { Effect, Stream } from "effect"
2068
+ *
2069
+ * // An infinite Stream of numbers starting from 1 and incrementing
2070
+ * const stream = Stream.iterate(1, (n) => n + 1)
2071
+ *
2072
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(10)))).then(console.log)
2073
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] }
2074
+ *
1516
2075
  * @since 2.0.0
1517
2076
  * @category constructors
1518
2077
  */
@@ -1520,6 +2079,14 @@ export declare const iterate: <A>(value: A, next: (value: A) => A) => Stream<A>;
1520
2079
  /**
1521
2080
  * Creates a stream from an sequence of values.
1522
2081
  *
2082
+ * @example
2083
+ * import { Effect, Stream } from "effect"
2084
+ *
2085
+ * const stream = Stream.make(1, 2, 3)
2086
+ *
2087
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2088
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
2089
+ *
1523
2090
  * @since 2.0.0
1524
2091
  * @category constructors
1525
2092
  */
@@ -1527,6 +2094,14 @@ export declare const make: <As extends Array<any>>(...as: As) => Stream<As[numbe
1527
2094
  /**
1528
2095
  * Transforms the elements of this stream using the supplied function.
1529
2096
  *
2097
+ * @example
2098
+ * import { Effect, Stream } from "effect"
2099
+ *
2100
+ * const stream = Stream.make(1, 2, 3).pipe(Stream.map((n) => n + 1))
2101
+ *
2102
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2103
+ * // { _id: 'Chunk', values: [ 2, 3, 4 ] }
2104
+ *
1530
2105
  * @since 2.0.0
1531
2106
  * @category mapping
1532
2107
  */
@@ -1537,6 +2112,18 @@ export declare const map: {
1537
2112
  /**
1538
2113
  * Statefully maps over the elements of this stream to produce new elements.
1539
2114
  *
2115
+ * @example
2116
+ * import { Effect, Stream } from "effect"
2117
+ *
2118
+ * const runningTotal = (stream: Stream.Stream<number>): Stream.Stream<number> =>
2119
+ * stream.pipe(Stream.mapAccum(0, (s, a) => [s + a, s + a]))
2120
+ *
2121
+ * // input: 0, 1, 2, 3, 4, 5, 6
2122
+ * // Effect.runPromise(Stream.runCollect(runningTotal(Stream.range(0, 6)))).then(
2123
+ * // console.log
2124
+ * // )
2125
+ * // { _id: "Chunk", values: [ 0, 1, 3, 6, 10, 15, 21 ] }
2126
+ *
1540
2127
  * @since 2.0.0
1541
2128
  * @category mapping
1542
2129
  */
@@ -1596,6 +2183,17 @@ export declare const mapChunksEffect: {
1596
2183
  * Maps each element to an iterable, and flattens the iterables into the
1597
2184
  * output of this stream.
1598
2185
  *
2186
+ * @example
2187
+ * import { Effect, Stream } from "effect"
2188
+ *
2189
+ * const numbers = Stream.make("1-2-3", "4-5", "6").pipe(
2190
+ * Stream.mapConcat((s) => s.split("-")),
2191
+ * Stream.map((s) => parseInt(s))
2192
+ * )
2193
+ *
2194
+ * // Effect.runPromise(Stream.runCollect(numbers)).then(console.log)
2195
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
2196
+ *
1599
2197
  * @since 2.0.0
1600
2198
  * @category mapping
1601
2199
  */
@@ -1639,6 +2237,16 @@ export declare const mapConcatEffect: {
1639
2237
  /**
1640
2238
  * Maps over elements of the stream with the specified effectful function.
1641
2239
  *
2240
+ * @example
2241
+ * import { Effect, Random, Stream } from "effect"
2242
+ *
2243
+ * const stream = Stream.make(10, 20, 30).pipe(
2244
+ * Stream.mapEffect((n) => Random.nextIntBetween(0, n))
2245
+ * )
2246
+ *
2247
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2248
+ * // Example Output: { _id: 'Chunk', values: [ 7, 19, 8 ] }
2249
+ *
1642
2250
  * @since 2.0.0
1643
2251
  * @category mapping
1644
2252
  */
@@ -1686,6 +2294,21 @@ export declare const mapErrorCause: {
1686
2294
  * New produced stream will terminate when both specified stream terminate if
1687
2295
  * no termination strategy is specified.
1688
2296
  *
2297
+ * @example
2298
+ * import { Effect, Schedule, Stream } from "effect"
2299
+ *
2300
+ * const s1 = Stream.make(1, 2, 3).pipe(
2301
+ * Stream.schedule(Schedule.spaced("100 millis"))
2302
+ * )
2303
+ * const s2 = Stream.make(4, 5, 6).pipe(
2304
+ * Stream.schedule(Schedule.spaced("200 millis"))
2305
+ * )
2306
+ *
2307
+ * const stream = Stream.merge(s1, s2)
2308
+ *
2309
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2310
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
2311
+ *
1689
2312
  * @since 2.0.0
1690
2313
  * @category utils
1691
2314
  */
@@ -1722,6 +2345,24 @@ export declare const mergeAll: {
1722
2345
  * New produced stream will terminate when both specified stream terminate if
1723
2346
  * no termination strategy is specified.
1724
2347
  *
2348
+ * @example
2349
+ * import { Effect, Schedule, Stream } from "effect"
2350
+ *
2351
+ * const s1 = Stream.make("1", "2", "3").pipe(
2352
+ * Stream.schedule(Schedule.spaced("100 millis"))
2353
+ * )
2354
+ * const s2 = Stream.make(4.1, 5.3, 6.2).pipe(
2355
+ * Stream.schedule(Schedule.spaced("200 millis"))
2356
+ * )
2357
+ *
2358
+ * const stream = Stream.mergeWith(s1, s2, {
2359
+ * onSelf: (s) => parseInt(s),
2360
+ * onOther: (n) => Math.floor(n)
2361
+ * })
2362
+ *
2363
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2364
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
2365
+ *
1725
2366
  * @since 2.0.0
1726
2367
  * @category utils
1727
2368
  */
@@ -1909,6 +2550,17 @@ export declare const orElseSucceed: {
1909
2550
  * than the unfolding of the state. This is useful for embedding paginated
1910
2551
  * APIs, hence the name.
1911
2552
  *
2553
+ * @example
2554
+ * import { Effect, Option, Stream } from "effect"
2555
+ *
2556
+ * const stream = Stream.paginate(0, (n) => [
2557
+ * n,
2558
+ * n < 3 ? Option.some(n + 1) : Option.none()
2559
+ * ])
2560
+ *
2561
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2562
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3 ] }
2563
+ *
1912
2564
  * @since 2.0.0
1913
2565
  * @category constructors
1914
2566
  */
@@ -1946,6 +2598,25 @@ export declare const paginateEffect: <S, A, E, R>(s: S, f: (s: S) => Effect.Effe
1946
2598
  * evaluated to false. The faster stream may advance by up to buffer elements
1947
2599
  * further than the slower one.
1948
2600
  *
2601
+ * @example
2602
+ * import { Effect, Stream } from "effect"
2603
+ *
2604
+ * const partition = Stream.range(1, 10).pipe(
2605
+ * Stream.partition((n) => n % 2 === 0, { bufferSize: 5 })
2606
+ * )
2607
+ *
2608
+ * const program = Effect.scoped(
2609
+ * Effect.gen(function*() {
2610
+ * const [evens, odds] = yield* partition
2611
+ * console.log(yield* Stream.runCollect(evens))
2612
+ * console.log(yield* Stream.runCollect(odds))
2613
+ * })
2614
+ * )
2615
+ *
2616
+ * // Effect.runPromise(program)
2617
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
2618
+ * // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
2619
+ *
1949
2620
  * @since 2.0.0
1950
2621
  * @category utils
1951
2622
  */
@@ -1967,6 +2638,28 @@ export declare const partition: {
1967
2638
  * Split a stream by an effectful predicate. The faster stream may advance by
1968
2639
  * up to buffer elements further than the slower one.
1969
2640
  *
2641
+ * @example
2642
+ * import { Effect, Either, Stream } from "effect"
2643
+ *
2644
+ * const partition = Stream.range(1, 9).pipe(
2645
+ * Stream.partitionEither(
2646
+ * (n) => Effect.succeed(n % 2 === 0 ? Either.left(n) : Either.right(n)),
2647
+ * { bufferSize: 5 }
2648
+ * )
2649
+ * )
2650
+ *
2651
+ * const program = Effect.scoped(
2652
+ * Effect.gen(function*() {
2653
+ * const [evens, odds] = yield* partition
2654
+ * console.log(yield* Stream.runCollect(evens))
2655
+ * console.log(yield* Stream.runCollect(odds))
2656
+ * })
2657
+ * )
2658
+ *
2659
+ * // Effect.runPromise(program)
2660
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8 ] }
2661
+ * // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
2662
+ *
1970
2663
  * @since 2.0.0
1971
2664
  * @category utils
1972
2665
  */
@@ -2113,6 +2806,15 @@ export declare const provideSomeLayer: {
2113
2806
  /**
2114
2807
  * Constructs a stream from a range of integers, including both endpoints.
2115
2808
  *
2809
+ * @example
2810
+ * import { Effect, Stream } from "effect"
2811
+ *
2812
+ * // A Stream with a range of numbers from 1 to 5
2813
+ * const stream = Stream.range(1, 5)
2814
+ *
2815
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2816
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
2817
+ *
2116
2818
  * @since 2.0.0
2117
2819
  * @category constructors
2118
2820
  */
@@ -2153,6 +2855,14 @@ export declare const refineOrDieWith: {
2153
2855
  * Repeats the entire stream using the specified schedule. The stream will
2154
2856
  * execute normally, and then repeat again according to the provided schedule.
2155
2857
  *
2858
+ * @example
2859
+ * import { Effect, Schedule, Stream } from "effect"
2860
+ *
2861
+ * const stream = Stream.repeat(Stream.succeed(1), Schedule.forever)
2862
+ *
2863
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2864
+ * // { _id: 'Chunk', values: [ 1, 1, 1, 1, 1 ] }
2865
+ *
2156
2866
  * @since 2.0.0
2157
2867
  * @category utils
2158
2868
  */
@@ -2164,6 +2874,14 @@ export declare const repeat: {
2164
2874
  * Creates a stream from an effect producing a value of type `A` which repeats
2165
2875
  * forever.
2166
2876
  *
2877
+ * @example
2878
+ * import { Effect, Random, Stream } from "effect"
2879
+ *
2880
+ * const stream = Stream.repeatEffect(Random.nextInt)
2881
+ *
2882
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2883
+ * // Example Output: { _id: 'Chunk', values: [ 3891571149, 4239494205, 2352981603, 2339111046, 1488052210 ] }
2884
+ *
2167
2885
  * @since 2.0.0
2168
2886
  * @category constructors
2169
2887
  */
@@ -2188,6 +2906,22 @@ export declare const repeatEffectChunkOption: <A, E, R>(effect: Effect.Effect<Ch
2188
2906
  * Creates a stream from an effect producing values of type `A` until it fails
2189
2907
  * with `None`.
2190
2908
  *
2909
+ * @example
2910
+ * // In this example, we're draining an Iterator to create a stream from it
2911
+ * import { Stream, Effect, Option } from "effect"
2912
+ *
2913
+ * const drainIterator = <A>(it: Iterator<A>): Stream.Stream<A> =>
2914
+ * Stream.repeatEffectOption(
2915
+ * Effect.sync(() => it.next()).pipe(
2916
+ * Effect.andThen((res) => {
2917
+ * if (res.done) {
2918
+ * return Effect.fail(Option.none())
2919
+ * }
2920
+ * return Effect.succeed(res.value)
2921
+ * })
2922
+ * )
2923
+ * )
2924
+ *
2191
2925
  * @since 2.0.0
2192
2926
  * @category constructors
2193
2927
  */
@@ -2254,6 +2988,14 @@ export declare const repeatElementsWith: {
2254
2988
  /**
2255
2989
  * Repeats the provided value infinitely.
2256
2990
  *
2991
+ * @example
2992
+ * import { Effect, Stream } from "effect"
2993
+ *
2994
+ * const stream = Stream.repeatValue(0)
2995
+ *
2996
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2997
+ * // { _id: 'Chunk', values: [ 0, 0, 0, 0, 0 ] }
2998
+ *
2257
2999
  * @since 2.0.0
2258
3000
  * @category constructors
2259
3001
  */
@@ -2570,6 +3312,14 @@ export declare const runSum: <E, R>(self: Stream<number, E, R>) => Effect.Effect
2570
3312
  * Statefully maps over the elements of this stream to produce all
2571
3313
  * intermediate results of type `S` given an initial S.
2572
3314
  *
3315
+ * @example
3316
+ * import { Effect, Stream } from "effect"
3317
+ *
3318
+ * const stream = Stream.range(1, 6).pipe(Stream.scan(0, (a, b) => a + b))
3319
+ *
3320
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3321
+ * // { _id: 'Chunk', values: [ 0, 1, 3, 6, 10, 15, 21 ] }
3322
+ *
2573
3323
  * @since 2.0.0
2574
3324
  * @category utils
2575
3325
  */
@@ -2645,6 +3395,24 @@ export declare const scheduleWith: {
2645
3395
  /**
2646
3396
  * Creates a single-valued stream from a scoped resource.
2647
3397
  *
3398
+ * @example
3399
+ * import { Console, Effect, Stream } from "effect"
3400
+ *
3401
+ * // Creating a single-valued stream from a scoped resource
3402
+ * const stream = Stream.scoped(
3403
+ * Effect.acquireUseRelease(
3404
+ * Console.log("acquire"),
3405
+ * () => Console.log("use"),
3406
+ * () => Console.log("release")
3407
+ * )
3408
+ * )
3409
+ *
3410
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3411
+ * // acquire
3412
+ * // use
3413
+ * // release
3414
+ * // { _id: 'Chunk', values: [ undefined ] }
3415
+ *
2648
3416
  * @since 2.0.0
2649
3417
  * @category constructors
2650
3418
  */
@@ -2751,6 +3519,15 @@ export declare const splitLines: <E, R>(self: Stream<string, E, R>) => Stream<st
2751
3519
  /**
2752
3520
  * Creates a single-valued pure stream.
2753
3521
  *
3522
+ * @example
3523
+ * import { Effect, Stream } from "effect"
3524
+ *
3525
+ * // A Stream with a single number
3526
+ * const stream = Stream.succeed(3)
3527
+ *
3528
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3529
+ * // { _id: 'Chunk', values: [ 3 ] }
3530
+ *
2754
3531
  * @since 2.0.0
2755
3532
  * @category constructors
2756
3533
  */
@@ -2772,6 +3549,14 @@ export declare const suspend: <A, E, R>(stream: LazyArg<Stream<A, E, R>>) => Str
2772
3549
  /**
2773
3550
  * Takes the specified number of elements from this stream.
2774
3551
  *
3552
+ * @example
3553
+ * import { Effect, Stream } from "effect"
3554
+ *
3555
+ * const stream = Stream.take(Stream.iterate(0, (n) => n + 1), 5)
3556
+ *
3557
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3558
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
3559
+ *
2775
3560
  * @since 2.0.0
2776
3561
  * @category utils
2777
3562
  */
@@ -2782,6 +3567,14 @@ export declare const take: {
2782
3567
  /**
2783
3568
  * Takes the last specified number of elements from this stream.
2784
3569
  *
3570
+ * @example
3571
+ * import { Effect, Stream } from "effect"
3572
+ *
3573
+ * const stream = Stream.takeRight(Stream.make(1, 2, 3, 4, 5, 6), 3)
3574
+ *
3575
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3576
+ * // { _id: 'Chunk', values: [ 4, 5, 6 ] }
3577
+ *
2785
3578
  * @since 2.0.0
2786
3579
  * @category utils
2787
3580
  */
@@ -2793,6 +3586,14 @@ export declare const takeRight: {
2793
3586
  * Takes all elements of the stream until the specified predicate evaluates to
2794
3587
  * `true`.
2795
3588
  *
3589
+ * @example
3590
+ * import { Effect, Stream } from "effect"
3591
+ *
3592
+ * const stream = Stream.takeUntil(Stream.iterate(0, (n) => n + 1), (n) => n === 4)
3593
+ *
3594
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3595
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
3596
+ *
2796
3597
  * @since 2.0.0
2797
3598
  * @category utils
2798
3599
  */
@@ -2815,6 +3616,14 @@ export declare const takeUntilEffect: {
2815
3616
  * Takes all elements of the stream for as long as the specified predicate
2816
3617
  * evaluates to `true`.
2817
3618
  *
3619
+ * @example
3620
+ * import { Effect, Stream } from "effect"
3621
+ *
3622
+ * const stream = Stream.takeWhile(Stream.iterate(0, (n) => n + 1), (n) => n < 5)
3623
+ *
3624
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3625
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
3626
+ *
2818
3627
  * @since 2.0.0
2819
3628
  * @category utils
2820
3629
  */
@@ -2827,6 +3636,24 @@ export declare const takeWhile: {
2827
3636
  /**
2828
3637
  * Adds an effect to consumption of every element of the stream.
2829
3638
  *
3639
+ * @example
3640
+ * import { Console, Effect, Stream } from "effect"
3641
+ *
3642
+ * const stream = Stream.make(1, 2, 3).pipe(
3643
+ * Stream.tap((n) => Console.log(`before mapping: ${n}`)),
3644
+ * Stream.map((n) => n * 2),
3645
+ * Stream.tap((n) => Console.log(`after mapping: ${n}`))
3646
+ * )
3647
+ *
3648
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3649
+ * // before mapping: 1
3650
+ * // after mapping: 2
3651
+ * // before mapping: 2
3652
+ * // after mapping: 4
3653
+ * // before mapping: 3
3654
+ * // after mapping: 6
3655
+ * // { _id: 'Chunk', values: [ 2, 4, 6 ] }
3656
+ *
2830
3657
  * @since 2.0.0
2831
3658
  * @category sequencing
2832
3659
  */
@@ -2888,7 +3715,7 @@ export declare const tapSink: {
2888
3715
  * parameters using the token bucket algorithm. Allows for burst in the
2889
3716
  * processing of elements by allowing the token bucket to accumulate tokens up
2890
3717
  * to a `units + burst` threshold. The weight of each chunk is determined by
2891
- * the `costFn` function.
3718
+ * the `cost` function.
2892
3719
  *
2893
3720
  * If using the "enforce" strategy, chunks that do not meet the bandwidth
2894
3721
  * constraints are dropped. If using the "shape" strategy, chunks are delayed
@@ -2896,6 +3723,43 @@ export declare const tapSink: {
2896
3723
  *
2897
3724
  * Defaults to the "shape" strategy.
2898
3725
  *
3726
+ * @example
3727
+ * import { Chunk, Effect, Schedule, Stream } from "effect"
3728
+ *
3729
+ * let last = Date.now()
3730
+ * const log = (message: string) =>
3731
+ * Effect.sync(() => {
3732
+ * const end = Date.now()
3733
+ * console.log(`${message} after ${end - last}ms`)
3734
+ * last = end
3735
+ * })
3736
+ *
3737
+ * const stream = Stream.fromSchedule(Schedule.spaced("50 millis")).pipe(
3738
+ * Stream.take(6),
3739
+ * Stream.tap((n) => log(`Received ${n}`)),
3740
+ * Stream.throttle({
3741
+ * cost: Chunk.size,
3742
+ * duration: "100 millis",
3743
+ * units: 1
3744
+ * }),
3745
+ * Stream.tap((n) => log(`> Emitted ${n}`))
3746
+ * )
3747
+ *
3748
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3749
+ * // Received 0 after 56ms
3750
+ * // > Emitted 0 after 0ms
3751
+ * // Received 1 after 52ms
3752
+ * // > Emitted 1 after 48ms
3753
+ * // Received 2 after 52ms
3754
+ * // > Emitted 2 after 49ms
3755
+ * // Received 3 after 52ms
3756
+ * // > Emitted 3 after 48ms
3757
+ * // Received 4 after 52ms
3758
+ * // > Emitted 4 after 47ms
3759
+ * // Received 5 after 52ms
3760
+ * // > Emitted 5 after 49ms
3761
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4, 5 ] }
3762
+ *
2899
3763
  * @since 2.0.0
2900
3764
  * @category utils
2901
3765
  */
@@ -2950,6 +3814,27 @@ export declare const throttleEffect: {
2950
3814
  /**
2951
3815
  * A stream that emits void values spaced by the specified duration.
2952
3816
  *
3817
+ * @example
3818
+ * import { Effect, Stream } from "effect"
3819
+ *
3820
+ * let last = Date.now()
3821
+ * const log = (message: string) =>
3822
+ * Effect.sync(() => {
3823
+ * const end = Date.now()
3824
+ * console.log(`${message} after ${end - last}ms`)
3825
+ * last = end
3826
+ * })
3827
+ *
3828
+ * const stream = Stream.tick("1 seconds").pipe(Stream.tap(() => log("tick")))
3829
+ *
3830
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
3831
+ * // tick after 4ms
3832
+ * // tick after 1003ms
3833
+ * // tick after 1001ms
3834
+ * // tick after 1002ms
3835
+ * // tick after 1002ms
3836
+ * // { _id: 'Chunk', values: [ undefined, undefined, undefined, undefined, undefined ] }
3837
+ *
2953
3838
  * @since 2.0.0
2954
3839
  * @category constructors
2955
3840
  */
@@ -3014,6 +3899,32 @@ export declare const toPubSub: {
3014
3899
  * finished, or with Some error if it fails, otherwise it returns a chunk of
3015
3900
  * the stream's output.
3016
3901
  *
3902
+ * @example
3903
+ * import { Effect, Stream } from "effect"
3904
+ *
3905
+ * // Simulate a chunked stream
3906
+ * const stream = Stream.fromIterable([1, 2, 3, 4, 5]).pipe(Stream.rechunk(2))
3907
+ *
3908
+ * const program = Effect.gen(function*() {
3909
+ * // Create an effect to get data chunks from the stream
3910
+ * const getChunk = yield* Stream.toPull(stream)
3911
+ *
3912
+ * // Continuously fetch and process chunks
3913
+ * while (true) {
3914
+ * const chunk = yield* getChunk
3915
+ * console.log(chunk)
3916
+ * }
3917
+ * })
3918
+ *
3919
+ * // Effect.runPromise(Effect.scoped(program)).then(console.log, console.error)
3920
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
3921
+ * // { _id: 'Chunk', values: [ 3, 4 ] }
3922
+ * // { _id: 'Chunk', values: [ 5 ] }
3923
+ * // (FiberFailure) Error: {
3924
+ * // "_id": "Option",
3925
+ * // "_tag": "None"
3926
+ * // }
3927
+ *
3017
3928
  * @since 2.0.0
3018
3929
  * @category destructors
3019
3930
  */
@@ -3119,6 +4030,14 @@ export declare const transduce: {
3119
4030
  /**
3120
4031
  * Creates a stream by peeling off the "layers" of a value of type `S`.
3121
4032
  *
4033
+ * @example
4034
+ * import { Effect, Option, Stream } from "effect"
4035
+ *
4036
+ * const stream = Stream.unfold(1, (n) => Option.some([n, n + 1]))
4037
+ *
4038
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
4039
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
4040
+ *
3122
4041
  * @since 2.0.0
3123
4042
  * @category constructors
3124
4043
  */
@@ -3142,6 +4061,17 @@ export declare const unfoldChunkEffect: <S, A, E, R>(s: S, f: (s: S) => Effect.E
3142
4061
  * Creates a stream by effectfully peeling off the "layers" of a value of type
3143
4062
  * `S`.
3144
4063
  *
4064
+ * @example
4065
+ * import { Effect, Option, Random, Stream } from "effect"
4066
+ *
4067
+ * const stream = Stream.unfoldEffect(1, (n) =>
4068
+ * Random.nextBoolean.pipe(
4069
+ * Effect.map((b) => (b ? Option.some([n, -n]) : Option.some([n, n])))
4070
+ * ))
4071
+ *
4072
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
4073
+ * // { _id: 'Chunk', values: [ 1, -1, -1, -1, -1 ] }
4074
+ *
3145
4075
  * @since 2.0.0
3146
4076
  * @category constructors
3147
4077
  */
@@ -3151,6 +4081,14 @@ export {
3151
4081
  /**
3152
4082
  * A stream that contains a single `void` value.
3153
4083
  *
4084
+ * @example
4085
+ * import { Effect, Stream } from "effect"
4086
+ *
4087
+ * const stream = Stream.void
4088
+ *
4089
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4090
+ * // { _id: 'Chunk', values: [ undefined ] }
4091
+ *
3154
4092
  * @since 2.0.0
3155
4093
  * @category constructors
3156
4094
  */
@@ -3236,6 +4174,18 @@ export declare const withSpan: {
3236
4174
  *
3237
4175
  * The new stream will end when one of the sides ends.
3238
4176
  *
4177
+ * @example
4178
+ * import { Effect, Stream } from "effect"
4179
+ *
4180
+ * // We create two streams and zip them together.
4181
+ * const stream = Stream.zip(
4182
+ * Stream.make(1, 2, 3, 4, 5, 6),
4183
+ * Stream.make("a", "b", "c")
4184
+ * )
4185
+ *
4186
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4187
+ * // { _id: 'Chunk', values: [ [ 1, 'a' ], [ 2, 'b' ], [ 3, 'c' ] ] }
4188
+ *
3239
4189
  * @since 2.0.0
3240
4190
  * @category zipping
3241
4191
  */
@@ -3263,6 +4213,18 @@ export declare const zipFlatten: {
3263
4213
  * The defaults `defaultLeft` and `defaultRight` will be used if the streams
3264
4214
  * have different lengths and one of the streams has ended before the other.
3265
4215
  *
4216
+ * @example
4217
+ * import { Effect, Stream } from "effect"
4218
+ *
4219
+ * const stream = Stream.zipAll(Stream.make(1, 2, 3, 4, 5, 6), {
4220
+ * other: Stream.make("a", "b", "c"),
4221
+ * defaultSelf: 0,
4222
+ * defaultOther: "x"
4223
+ * })
4224
+ *
4225
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4226
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
4227
+ *
3266
4228
  * @since 2.0.0
3267
4229
  * @category zipping
3268
4230
  */
@@ -3421,6 +4383,19 @@ export declare const zipAllSortedByKeyWith: {
3421
4383
  * The functions `left` and `right` will be used if the streams have different
3422
4384
  * lengths and one of the streams has ended before the other.
3423
4385
  *
4386
+ * @example
4387
+ * import { Effect, Stream } from "effect"
4388
+ *
4389
+ * const stream = Stream.zipAllWith(Stream.make(1, 2, 3, 4, 5, 6), {
4390
+ * other: Stream.make("a", "b", "c"),
4391
+ * onSelf: (n) => [n, "x"],
4392
+ * onOther: (s) => [0, s],
4393
+ * onBoth: (n, s) => [n - s.length, s]
4394
+ * })
4395
+ *
4396
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4397
+ * // { _id: "Chunk", values: [ [ 0, "a" ], [ 1, "b" ], [ 2, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
4398
+ *
3424
4399
  * @since 2.0.0
3425
4400
  * @category zipping
3426
4401
  */
@@ -3447,6 +4422,22 @@ export declare const zipAllWith: {
3447
4422
  * that emitted elements that are not the last value in chunks will never be
3448
4423
  * used for zipping.
3449
4424
  *
4425
+ * @example
4426
+ * import { Effect, Schedule, Stream } from "effect"
4427
+ *
4428
+ * const s1 = Stream.make(1, 2, 3).pipe(
4429
+ * Stream.schedule(Schedule.spaced("1 second"))
4430
+ * )
4431
+ *
4432
+ * const s2 = Stream.make("a", "b", "c", "d").pipe(
4433
+ * Stream.schedule(Schedule.spaced("500 millis"))
4434
+ * )
4435
+ *
4436
+ * const stream = Stream.zipLatest(s1, s2)
4437
+ *
4438
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4439
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 1, "b" ], [ 2, "b" ], [ 2, "c" ], [ 2, "d" ], [ 3, "d" ] ] }
4440
+ *
3450
4441
  * @since 2.0.0
3451
4442
  * @category zipping
3452
4443
  */
@@ -3471,7 +4462,7 @@ export declare const zipLatest: {
3471
4462
  * Stream.fromSchedule(Schedule.spaced('4 millis')),
3472
4463
  * ).pipe(Stream.take(6), Stream.tap(Console.log))
3473
4464
  *
3474
- * Effect.runPromise(Stream.runDrain(stream))
4465
+ * // Effect.runPromise(Stream.runDrain(stream))
3475
4466
  * // Output:
3476
4467
  * // [ 0, 0, 0 ]
3477
4468
  * // [ 1, 0, 0 ]
@@ -3541,6 +4532,19 @@ export declare const zipRight: {
3541
4532
  *
3542
4533
  * The new stream will end when one of the sides ends.
3543
4534
  *
4535
+ * @example
4536
+ * import { Effect, Stream } from "effect"
4537
+ *
4538
+ * // We create two streams and zip them with custom logic.
4539
+ * const stream = Stream.zipWith(
4540
+ * Stream.make(1, 2, 3, 4, 5, 6),
4541
+ * Stream.make("a", "b", "c"),
4542
+ * (n, s) => [n - s.length, s]
4543
+ * )
4544
+ *
4545
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
4546
+ * // { _id: 'Chunk', values: [ [ 0, 'a' ], [ 1, 'b' ], [ 2, 'c' ] ] }
4547
+ *
3544
4548
  * @since 2.0.0
3545
4549
  * @category zipping
3546
4550
  */
@@ -3564,6 +4568,19 @@ export declare const zipWithChunks: {
3564
4568
  /**
3565
4569
  * Zips each element with the next element if present.
3566
4570
  *
4571
+ * @example
4572
+ * import { Chunk, Effect, Stream } from "effect"
4573
+ *
4574
+ * const stream = Stream.zipWithNext(Stream.make(1, 2, 3, 4))
4575
+ *
4576
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
4577
+ * // [
4578
+ * // [ 1, { _id: 'Option', _tag: 'Some', value: 2 } ],
4579
+ * // [ 2, { _id: 'Option', _tag: 'Some', value: 3 } ],
4580
+ * // [ 3, { _id: 'Option', _tag: 'Some', value: 4 } ],
4581
+ * // [ 4, { _id: 'Option', _tag: 'None' } ]
4582
+ * // ]
4583
+ *
3567
4584
  * @since 2.0.0
3568
4585
  * @category zipping
3569
4586
  */
@@ -3572,6 +4589,19 @@ export declare const zipWithNext: <A, E, R>(self: Stream<A, E, R>) => Stream<[A,
3572
4589
  * Zips each element with the previous element. Initially accompanied by
3573
4590
  * `None`.
3574
4591
  *
4592
+ * @example
4593
+ * import { Chunk, Effect, Stream } from "effect"
4594
+ *
4595
+ * const stream = Stream.zipWithPrevious(Stream.make(1, 2, 3, 4))
4596
+ *
4597
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
4598
+ * // [
4599
+ * // [ { _id: 'Option', _tag: 'None' }, 1 ],
4600
+ * // [ { _id: 'Option', _tag: 'Some', value: 1 }, 2 ],
4601
+ * // [ { _id: 'Option', _tag: 'Some', value: 2 }, 3 ],
4602
+ * // [ { _id: 'Option', _tag: 'Some', value: 3 }, 4 ]
4603
+ * // ]
4604
+ *
3575
4605
  * @since 2.0.0
3576
4606
  * @category zipping
3577
4607
  */
@@ -3579,6 +4609,35 @@ export declare const zipWithPrevious: <A, E, R>(self: Stream<A, E, R>) => Stream
3579
4609
  /**
3580
4610
  * Zips each element with both the previous and next element.
3581
4611
  *
4612
+ * @example
4613
+ * import { Chunk, Effect, Stream } from "effect"
4614
+ *
4615
+ * const stream = Stream.zipWithPreviousAndNext(Stream.make(1, 2, 3, 4))
4616
+ *
4617
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
4618
+ * // [
4619
+ * // [
4620
+ * // { _id: 'Option', _tag: 'None' },
4621
+ * // 1,
4622
+ * // { _id: 'Option', _tag: 'Some', value: 2 }
4623
+ * // ],
4624
+ * // [
4625
+ * // { _id: 'Option', _tag: 'Some', value: 1 },
4626
+ * // 2,
4627
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
4628
+ * // ],
4629
+ * // [
4630
+ * // { _id: 'Option', _tag: 'Some', value: 2 },
4631
+ * // 3,
4632
+ * // { _id: 'Option', _tag: 'Some', value: 4 }
4633
+ * // ],
4634
+ * // [
4635
+ * // { _id: 'Option', _tag: 'Some', value: 3 },
4636
+ * // 4,
4637
+ * // { _id: 'Option', _tag: 'None' }
4638
+ * // ]
4639
+ * // ]
4640
+ *
3582
4641
  * @since 2.0.0
3583
4642
  * @category zipping
3584
4643
  */
@@ -3586,6 +4645,19 @@ export declare const zipWithPreviousAndNext: <A, E, R>(self: Stream<A, E, R>) =>
3586
4645
  /**
3587
4646
  * Zips this stream together with the index of elements.
3588
4647
  *
4648
+ * @example
4649
+ * import { Effect, Stream } from "effect"
4650
+ *
4651
+ * const stream = Stream.make("Mary", "James", "Robert", "Patricia")
4652
+ *
4653
+ * const indexedStream = Stream.zipWithIndex(stream)
4654
+ *
4655
+ * // Effect.runPromise(Stream.runCollect(indexedStream)).then(console.log)
4656
+ * // {
4657
+ * // _id: 'Chunk',
4658
+ * // values: [ [ 'Mary', 0 ], [ 'James', 1 ], [ 'Robert', 2 ], [ 'Patricia', 3 ] ]
4659
+ * // }
4660
+ *
3589
4661
  * @since 2.0.0
3590
4662
  * @category zipping
3591
4663
  */