effect 3.4.8 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (696) hide show
  1. package/RcMap/package.json +6 -0
  2. package/RcRef/package.json +6 -0
  3. package/dist/cjs/Array.js +14 -37
  4. package/dist/cjs/Array.js.map +1 -1
  5. package/dist/cjs/BigDecimal.js +11 -34
  6. package/dist/cjs/BigDecimal.js.map +1 -1
  7. package/dist/cjs/BigInt.js +7 -30
  8. package/dist/cjs/BigInt.js.map +1 -1
  9. package/dist/cjs/Boolean.js +6 -29
  10. package/dist/cjs/Boolean.js.map +1 -1
  11. package/dist/cjs/Brand.js +6 -29
  12. package/dist/cjs/Brand.js.map +1 -1
  13. package/dist/cjs/Cache.js +3 -26
  14. package/dist/cjs/Cache.js.map +1 -1
  15. package/dist/cjs/Cause.js +26 -28
  16. package/dist/cjs/Cause.js.map +1 -1
  17. package/dist/cjs/Channel.js +6 -29
  18. package/dist/cjs/Channel.js.map +1 -1
  19. package/dist/cjs/ChildExecutorDecision.js +3 -26
  20. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  21. package/dist/cjs/Chunk.js +12 -35
  22. package/dist/cjs/Chunk.js.map +1 -1
  23. package/dist/cjs/Clock.js +4 -27
  24. package/dist/cjs/Clock.js.map +1 -1
  25. package/dist/cjs/Config.js +3 -26
  26. package/dist/cjs/Config.js.map +1 -1
  27. package/dist/cjs/ConfigError.js +3 -26
  28. package/dist/cjs/ConfigError.js.map +1 -1
  29. package/dist/cjs/ConfigProvider.js +3 -26
  30. package/dist/cjs/ConfigProvider.js.map +1 -1
  31. package/dist/cjs/ConfigProviderPathPatch.js +3 -26
  32. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  33. package/dist/cjs/Console.js +4 -27
  34. package/dist/cjs/Console.js.map +1 -1
  35. package/dist/cjs/Context.js +3 -26
  36. package/dist/cjs/Context.js.map +1 -1
  37. package/dist/cjs/Cron.js +13 -36
  38. package/dist/cjs/Cron.js.map +1 -1
  39. package/dist/cjs/Data.js +9 -30
  40. package/dist/cjs/Data.js.map +1 -1
  41. package/dist/cjs/DefaultServices.js +3 -26
  42. package/dist/cjs/DefaultServices.js.map +1 -1
  43. package/dist/cjs/Deferred.js +4 -27
  44. package/dist/cjs/Deferred.js.map +1 -1
  45. package/dist/cjs/Differ.js +10 -33
  46. package/dist/cjs/Differ.js.map +1 -1
  47. package/dist/cjs/Duration.js +33 -35
  48. package/dist/cjs/Duration.js.map +1 -1
  49. package/dist/cjs/Effect.js +16 -39
  50. package/dist/cjs/Effect.js.map +1 -1
  51. package/dist/cjs/Effectable.js +3 -26
  52. package/dist/cjs/Effectable.js.map +1 -1
  53. package/dist/cjs/Either.js +8 -31
  54. package/dist/cjs/Either.js.map +1 -1
  55. package/dist/cjs/Encoding.js +7 -30
  56. package/dist/cjs/Encoding.js.map +1 -1
  57. package/dist/cjs/Equal.js +5 -28
  58. package/dist/cjs/Equal.js.map +1 -1
  59. package/dist/cjs/Equivalence.js +1 -1
  60. package/dist/cjs/Equivalence.js.map +1 -1
  61. package/dist/cjs/ExecutionStrategy.js +3 -26
  62. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  63. package/dist/cjs/Exit.js +3 -26
  64. package/dist/cjs/Exit.js.map +1 -1
  65. package/dist/cjs/Fiber.js +6 -29
  66. package/dist/cjs/Fiber.js.map +1 -1
  67. package/dist/cjs/FiberHandle.js +15 -38
  68. package/dist/cjs/FiberHandle.js.map +1 -1
  69. package/dist/cjs/FiberId.js +3 -26
  70. package/dist/cjs/FiberId.js.map +1 -1
  71. package/dist/cjs/FiberMap.js +17 -40
  72. package/dist/cjs/FiberMap.js.map +1 -1
  73. package/dist/cjs/FiberRef.js +6 -29
  74. package/dist/cjs/FiberRef.js.map +1 -1
  75. package/dist/cjs/FiberRefs.js +3 -26
  76. package/dist/cjs/FiberRefs.js.map +1 -1
  77. package/dist/cjs/FiberRefsPatch.js +3 -26
  78. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  79. package/dist/cjs/FiberSet.js +16 -39
  80. package/dist/cjs/FiberSet.js.map +1 -1
  81. package/dist/cjs/FiberStatus.js +3 -26
  82. package/dist/cjs/FiberStatus.js.map +1 -1
  83. package/dist/cjs/GlobalValue.js +3 -26
  84. package/dist/cjs/GlobalValue.js.map +1 -1
  85. package/dist/cjs/GroupBy.js +3 -26
  86. package/dist/cjs/GroupBy.js.map +1 -1
  87. package/dist/cjs/Hash.js +4 -4
  88. package/dist/cjs/Hash.js.map +1 -1
  89. package/dist/cjs/HashMap.js +4 -27
  90. package/dist/cjs/HashMap.js.map +1 -1
  91. package/dist/cjs/HashSet.js +3 -26
  92. package/dist/cjs/HashSet.js.map +1 -1
  93. package/dist/cjs/Inspectable.js +1 -1
  94. package/dist/cjs/Inspectable.js.map +1 -1
  95. package/dist/cjs/Iterable.js +8 -31
  96. package/dist/cjs/Iterable.js.map +1 -1
  97. package/dist/cjs/KeyedPool.js +3 -26
  98. package/dist/cjs/KeyedPool.js.map +1 -1
  99. package/dist/cjs/Layer.js +11 -34
  100. package/dist/cjs/Layer.js.map +1 -1
  101. package/dist/cjs/List.js +13 -36
  102. package/dist/cjs/List.js.map +1 -1
  103. package/dist/cjs/LogLevel.js +6 -29
  104. package/dist/cjs/LogLevel.js.map +1 -1
  105. package/dist/cjs/LogSpan.js +3 -26
  106. package/dist/cjs/LogSpan.js.map +1 -1
  107. package/dist/cjs/Logger.js +17 -30
  108. package/dist/cjs/Logger.js.map +1 -1
  109. package/dist/cjs/ManagedRuntime.js +3 -26
  110. package/dist/cjs/ManagedRuntime.js.map +1 -1
  111. package/dist/cjs/Match.js +4 -27
  112. package/dist/cjs/Match.js.map +1 -1
  113. package/dist/cjs/MergeDecision.js +3 -26
  114. package/dist/cjs/MergeDecision.js.map +1 -1
  115. package/dist/cjs/MergeState.js +3 -26
  116. package/dist/cjs/MergeState.js.map +1 -1
  117. package/dist/cjs/MergeStrategy.js +3 -26
  118. package/dist/cjs/MergeStrategy.js.map +1 -1
  119. package/dist/cjs/Metric.js +4 -27
  120. package/dist/cjs/Metric.js.map +1 -1
  121. package/dist/cjs/MetricBoundaries.js +3 -26
  122. package/dist/cjs/MetricBoundaries.js.map +1 -1
  123. package/dist/cjs/MetricHook.js +3 -26
  124. package/dist/cjs/MetricHook.js.map +1 -1
  125. package/dist/cjs/MetricKey.js +3 -26
  126. package/dist/cjs/MetricKey.js.map +1 -1
  127. package/dist/cjs/MetricKeyType.js +3 -26
  128. package/dist/cjs/MetricKeyType.js.map +1 -1
  129. package/dist/cjs/MetricLabel.js +3 -26
  130. package/dist/cjs/MetricLabel.js.map +1 -1
  131. package/dist/cjs/MetricPair.js +3 -26
  132. package/dist/cjs/MetricPair.js.map +1 -1
  133. package/dist/cjs/MetricPolling.js +3 -26
  134. package/dist/cjs/MetricPolling.js.map +1 -1
  135. package/dist/cjs/MetricRegistry.js +3 -26
  136. package/dist/cjs/MetricRegistry.js.map +1 -1
  137. package/dist/cjs/MetricState.js +3 -26
  138. package/dist/cjs/MetricState.js.map +1 -1
  139. package/dist/cjs/Micro.js +15 -38
  140. package/dist/cjs/Micro.js.map +1 -1
  141. package/dist/cjs/ModuleVersion.js +3 -26
  142. package/dist/cjs/ModuleVersion.js.map +1 -1
  143. package/dist/cjs/MutableHashMap.js +8 -31
  144. package/dist/cjs/MutableHashMap.js.map +1 -1
  145. package/dist/cjs/MutableHashSet.js +6 -29
  146. package/dist/cjs/MutableHashSet.js.map +1 -1
  147. package/dist/cjs/MutableList.js +5 -28
  148. package/dist/cjs/MutableList.js.map +1 -1
  149. package/dist/cjs/MutableQueue.js +7 -30
  150. package/dist/cjs/MutableQueue.js.map +1 -1
  151. package/dist/cjs/MutableRef.js +6 -29
  152. package/dist/cjs/MutableRef.js.map +1 -1
  153. package/dist/cjs/Number.js +7 -30
  154. package/dist/cjs/Number.js.map +1 -1
  155. package/dist/cjs/Option.js +10 -33
  156. package/dist/cjs/Option.js.map +1 -1
  157. package/dist/cjs/Order.js +1 -1
  158. package/dist/cjs/Order.js.map +1 -1
  159. package/dist/cjs/Ordering.js +1 -1
  160. package/dist/cjs/Ordering.js.map +1 -1
  161. package/dist/cjs/Pool.js +3 -26
  162. package/dist/cjs/Pool.js.map +1 -1
  163. package/dist/cjs/Predicate.js +1 -1
  164. package/dist/cjs/Predicate.js.map +1 -1
  165. package/dist/cjs/PubSub.js +3 -26
  166. package/dist/cjs/PubSub.js.map +1 -1
  167. package/dist/cjs/Queue.js +3 -26
  168. package/dist/cjs/Queue.js.map +1 -1
  169. package/dist/cjs/Random.js +13 -28
  170. package/dist/cjs/Random.js.map +1 -1
  171. package/dist/cjs/RateLimiter.js +3 -26
  172. package/dist/cjs/RateLimiter.js.map +1 -1
  173. package/dist/cjs/RcMap.js +52 -0
  174. package/dist/cjs/RcMap.js.map +1 -0
  175. package/dist/cjs/RcRef.js +51 -0
  176. package/dist/cjs/RcRef.js.map +1 -0
  177. package/dist/cjs/Readable.js +6 -29
  178. package/dist/cjs/Readable.js.map +1 -1
  179. package/dist/cjs/Record.js +6 -29
  180. package/dist/cjs/Record.js.map +1 -1
  181. package/dist/cjs/RedBlackTree.js +4 -27
  182. package/dist/cjs/RedBlackTree.js.map +1 -1
  183. package/dist/cjs/Redacted.js +4 -27
  184. package/dist/cjs/Redacted.js.map +1 -1
  185. package/dist/cjs/Ref.js +3 -26
  186. package/dist/cjs/Ref.js.map +1 -1
  187. package/dist/cjs/Reloadable.js +3 -26
  188. package/dist/cjs/Reloadable.js.map +1 -1
  189. package/dist/cjs/Request.js +7 -30
  190. package/dist/cjs/Request.js.map +1 -1
  191. package/dist/cjs/RequestBlock.js +3 -26
  192. package/dist/cjs/RequestBlock.js.map +1 -1
  193. package/dist/cjs/RequestResolver.js +6 -29
  194. package/dist/cjs/RequestResolver.js.map +1 -1
  195. package/dist/cjs/Resource.js +3 -26
  196. package/dist/cjs/Resource.js.map +1 -1
  197. package/dist/cjs/Runtime.js +3 -26
  198. package/dist/cjs/Runtime.js.map +1 -1
  199. package/dist/cjs/RuntimeFlags.js +4 -27
  200. package/dist/cjs/RuntimeFlags.js.map +1 -1
  201. package/dist/cjs/RuntimeFlagsPatch.js +4 -27
  202. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  203. package/dist/cjs/STM.js +6 -29
  204. package/dist/cjs/STM.js.map +1 -1
  205. package/dist/cjs/Schedule.js +3 -26
  206. package/dist/cjs/Schedule.js.map +1 -1
  207. package/dist/cjs/ScheduleDecision.js +3 -26
  208. package/dist/cjs/ScheduleDecision.js.map +1 -1
  209. package/dist/cjs/ScheduleInterval.js +3 -26
  210. package/dist/cjs/ScheduleInterval.js.map +1 -1
  211. package/dist/cjs/ScheduleIntervals.js +3 -26
  212. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  213. package/dist/cjs/Scheduler.js +5 -28
  214. package/dist/cjs/Scheduler.js.map +1 -1
  215. package/dist/cjs/Scope.js +4 -27
  216. package/dist/cjs/Scope.js.map +1 -1
  217. package/dist/cjs/ScopedCache.js +3 -26
  218. package/dist/cjs/ScopedCache.js.map +1 -1
  219. package/dist/cjs/ScopedRef.js +3 -26
  220. package/dist/cjs/ScopedRef.js.map +1 -1
  221. package/dist/cjs/Secret.js +3 -26
  222. package/dist/cjs/Secret.js.map +1 -1
  223. package/dist/cjs/SingleProducerAsyncInput.js +3 -26
  224. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  225. package/dist/cjs/Sink.js +3 -26
  226. package/dist/cjs/Sink.js.map +1 -1
  227. package/dist/cjs/SortedMap.js +10 -33
  228. package/dist/cjs/SortedMap.js.map +1 -1
  229. package/dist/cjs/SortedSet.js +9 -32
  230. package/dist/cjs/SortedSet.js.map +1 -1
  231. package/dist/cjs/Stream.js +1077 -32
  232. package/dist/cjs/Stream.js.map +1 -1
  233. package/dist/cjs/StreamHaltStrategy.js +3 -26
  234. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  235. package/dist/cjs/Streamable.js +4 -27
  236. package/dist/cjs/Streamable.js.map +1 -1
  237. package/dist/cjs/String.js +9 -32
  238. package/dist/cjs/String.js.map +1 -1
  239. package/dist/cjs/Struct.js +6 -29
  240. package/dist/cjs/Struct.js.map +1 -1
  241. package/dist/cjs/Subscribable.js +8 -31
  242. package/dist/cjs/Subscribable.js.map +1 -1
  243. package/dist/cjs/SubscriptionRef.js +5 -28
  244. package/dist/cjs/SubscriptionRef.js.map +1 -1
  245. package/dist/cjs/Supervisor.js +5 -28
  246. package/dist/cjs/Supervisor.js.map +1 -1
  247. package/dist/cjs/Symbol.js +4 -27
  248. package/dist/cjs/Symbol.js.map +1 -1
  249. package/dist/cjs/SynchronizedRef.js +5 -28
  250. package/dist/cjs/SynchronizedRef.js.map +1 -1
  251. package/dist/cjs/TArray.js +3 -26
  252. package/dist/cjs/TArray.js.map +1 -1
  253. package/dist/cjs/TDeferred.js +3 -26
  254. package/dist/cjs/TDeferred.js.map +1 -1
  255. package/dist/cjs/TMap.js +3 -26
  256. package/dist/cjs/TMap.js.map +1 -1
  257. package/dist/cjs/TPriorityQueue.js +3 -26
  258. package/dist/cjs/TPriorityQueue.js.map +1 -1
  259. package/dist/cjs/TPubSub.js +3 -26
  260. package/dist/cjs/TPubSub.js.map +1 -1
  261. package/dist/cjs/TQueue.js +3 -26
  262. package/dist/cjs/TQueue.js.map +1 -1
  263. package/dist/cjs/TRandom.js +3 -26
  264. package/dist/cjs/TRandom.js.map +1 -1
  265. package/dist/cjs/TReentrantLock.js +3 -26
  266. package/dist/cjs/TReentrantLock.js.map +1 -1
  267. package/dist/cjs/TRef.js +3 -26
  268. package/dist/cjs/TRef.js.map +1 -1
  269. package/dist/cjs/TSemaphore.js +3 -26
  270. package/dist/cjs/TSemaphore.js.map +1 -1
  271. package/dist/cjs/TSet.js +3 -26
  272. package/dist/cjs/TSet.js.map +1 -1
  273. package/dist/cjs/Take.js +3 -26
  274. package/dist/cjs/Take.js.map +1 -1
  275. package/dist/cjs/TestAnnotation.js +10 -33
  276. package/dist/cjs/TestAnnotation.js.map +1 -1
  277. package/dist/cjs/TestAnnotationMap.js +5 -28
  278. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  279. package/dist/cjs/TestAnnotations.js +15 -38
  280. package/dist/cjs/TestAnnotations.js.map +1 -1
  281. package/dist/cjs/TestClock.js +25 -48
  282. package/dist/cjs/TestClock.js.map +1 -1
  283. package/dist/cjs/TestConfig.js +3 -26
  284. package/dist/cjs/TestConfig.js.map +1 -1
  285. package/dist/cjs/TestContext.js +7 -30
  286. package/dist/cjs/TestContext.js.map +1 -1
  287. package/dist/cjs/TestLive.js +5 -28
  288. package/dist/cjs/TestLive.js.map +1 -1
  289. package/dist/cjs/TestServices.js +15 -38
  290. package/dist/cjs/TestServices.js.map +1 -1
  291. package/dist/cjs/TestSized.js +4 -27
  292. package/dist/cjs/TestSized.js.map +1 -1
  293. package/dist/cjs/Tracer.js +4 -27
  294. package/dist/cjs/Tracer.js.map +1 -1
  295. package/dist/cjs/Trie.js +3 -26
  296. package/dist/cjs/Trie.js.map +1 -1
  297. package/dist/cjs/Tuple.js +6 -29
  298. package/dist/cjs/Tuple.js.map +1 -1
  299. package/dist/cjs/Unify.js +1 -1
  300. package/dist/cjs/Unify.js.map +1 -1
  301. package/dist/cjs/UpstreamPullRequest.js +3 -26
  302. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  303. package/dist/cjs/UpstreamPullStrategy.js +3 -26
  304. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  305. package/dist/cjs/Utils.js +4 -4
  306. package/dist/cjs/Utils.js.map +1 -1
  307. package/dist/cjs/index.js +166 -185
  308. package/dist/cjs/index.js.map +1 -1
  309. package/dist/cjs/internal/blockedRequests.js +9 -32
  310. package/dist/cjs/internal/blockedRequests.js.map +1 -1
  311. package/dist/cjs/internal/cache.js +20 -43
  312. package/dist/cjs/internal/cache.js.map +1 -1
  313. package/dist/cjs/internal/cause.js +37 -44
  314. package/dist/cjs/internal/cause.js.map +1 -1
  315. package/dist/cjs/internal/channel/channelExecutor.js +21 -44
  316. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  317. package/dist/cjs/internal/channel/channelState.js +5 -28
  318. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  319. package/dist/cjs/internal/channel/childExecutorDecision.js +5 -28
  320. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
  321. package/dist/cjs/internal/channel/continuation.js +4 -27
  322. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  323. package/dist/cjs/internal/channel/mergeDecision.js +5 -28
  324. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  325. package/dist/cjs/internal/channel/mergeState.js +5 -28
  326. package/dist/cjs/internal/channel/mergeState.js.map +1 -1
  327. package/dist/cjs/internal/channel/mergeStrategy.js +5 -28
  328. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
  329. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +9 -32
  330. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  331. package/dist/cjs/internal/channel/subexecutor.js +5 -28
  332. package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
  333. package/dist/cjs/internal/channel/upstreamPullRequest.js +5 -28
  334. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
  335. package/dist/cjs/internal/channel/upstreamPullStrategy.js +5 -28
  336. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
  337. package/dist/cjs/internal/channel.js +31 -54
  338. package/dist/cjs/internal/channel.js.map +1 -1
  339. package/dist/cjs/internal/clock.js +6 -29
  340. package/dist/cjs/internal/clock.js.map +1 -1
  341. package/dist/cjs/internal/completedRequestMap.js +2 -2
  342. package/dist/cjs/internal/completedRequestMap.js.map +1 -1
  343. package/dist/cjs/internal/concurrency.js +3 -26
  344. package/dist/cjs/internal/concurrency.js.map +1 -1
  345. package/dist/cjs/internal/config.js +17 -40
  346. package/dist/cjs/internal/config.js.map +1 -1
  347. package/dist/cjs/internal/configError.js +7 -30
  348. package/dist/cjs/internal/configError.js.map +1 -1
  349. package/dist/cjs/internal/configProvider/pathPatch.js +8 -31
  350. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  351. package/dist/cjs/internal/configProvider.js +17 -40
  352. package/dist/cjs/internal/configProvider.js.map +1 -1
  353. package/dist/cjs/internal/console.js +9 -32
  354. package/dist/cjs/internal/console.js.map +1 -1
  355. package/dist/cjs/internal/context.js +10 -33
  356. package/dist/cjs/internal/context.js.map +1 -1
  357. package/dist/cjs/internal/core-effect.js +29 -57
  358. package/dist/cjs/internal/core-effect.js.map +1 -1
  359. package/dist/cjs/internal/core-stream.js +14 -37
  360. package/dist/cjs/internal/core-stream.js.map +1 -1
  361. package/dist/cjs/internal/core.js +47 -65
  362. package/dist/cjs/internal/core.js.map +1 -1
  363. package/dist/cjs/internal/data.js +5 -28
  364. package/dist/cjs/internal/data.js.map +1 -1
  365. package/dist/cjs/internal/dataSource.js +10 -33
  366. package/dist/cjs/internal/dataSource.js.map +1 -1
  367. package/dist/cjs/internal/defaultServices/console.js +4 -27
  368. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  369. package/dist/cjs/internal/defaultServices.js +14 -37
  370. package/dist/cjs/internal/defaultServices.js.map +1 -1
  371. package/dist/cjs/internal/deferred.js +3 -26
  372. package/dist/cjs/internal/deferred.js.map +1 -1
  373. package/dist/cjs/internal/differ/chunkPatch.js +6 -29
  374. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
  375. package/dist/cjs/internal/differ/contextPatch.js +7 -30
  376. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  377. package/dist/cjs/internal/differ/hashMapPatch.js +7 -30
  378. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
  379. package/dist/cjs/internal/differ/hashSetPatch.js +6 -29
  380. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
  381. package/dist/cjs/internal/differ/orPatch.js +7 -30
  382. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  383. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -29
  384. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  385. package/dist/cjs/internal/differ.js +10 -33
  386. package/dist/cjs/internal/differ.js.map +1 -1
  387. package/dist/cjs/internal/doNotation.js +1 -1
  388. package/dist/cjs/internal/doNotation.js.map +1 -1
  389. package/dist/cjs/internal/effect/circular.js +24 -47
  390. package/dist/cjs/internal/effect/circular.js.map +1 -1
  391. package/dist/cjs/internal/effectable.js +8 -31
  392. package/dist/cjs/internal/effectable.js.map +1 -1
  393. package/dist/cjs/internal/either.js +9 -32
  394. package/dist/cjs/internal/either.js.map +1 -1
  395. package/dist/cjs/internal/encoding/base64.js +4 -27
  396. package/dist/cjs/internal/encoding/base64.js.map +1 -1
  397. package/dist/cjs/internal/encoding/base64Url.js +5 -28
  398. package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
  399. package/dist/cjs/internal/encoding/common.js +1 -1
  400. package/dist/cjs/internal/encoding/common.js.map +1 -1
  401. package/dist/cjs/internal/encoding/hex.js +4 -27
  402. package/dist/cjs/internal/encoding/hex.js.map +1 -1
  403. package/dist/cjs/internal/executionStrategy.js +1 -1
  404. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  405. package/dist/cjs/internal/fiber.js +17 -40
  406. package/dist/cjs/internal/fiber.js.map +1 -1
  407. package/dist/cjs/internal/fiberId.js +11 -34
  408. package/dist/cjs/internal/fiberId.js.map +1 -1
  409. package/dist/cjs/internal/fiberRefs/patch.js +6 -29
  410. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  411. package/dist/cjs/internal/fiberRefs.js +9 -32
  412. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  413. package/dist/cjs/internal/fiberRuntime.js +58 -79
  414. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  415. package/dist/cjs/internal/fiberScope.js +5 -28
  416. package/dist/cjs/internal/fiberScope.js.map +1 -1
  417. package/dist/cjs/internal/fiberStatus.js +6 -29
  418. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  419. package/dist/cjs/internal/groupBy.js +18 -41
  420. package/dist/cjs/internal/groupBy.js.map +1 -1
  421. package/dist/cjs/internal/hashMap/bitwise.js +1 -1
  422. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -1
  423. package/dist/cjs/internal/hashMap/keySet.js +1 -1
  424. package/dist/cjs/internal/hashMap/keySet.js.map +1 -1
  425. package/dist/cjs/internal/hashMap/node.js +9 -32
  426. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  427. package/dist/cjs/internal/hashMap.js +12 -35
  428. package/dist/cjs/internal/hashMap.js.map +1 -1
  429. package/dist/cjs/internal/hashSet.js +9 -32
  430. package/dist/cjs/internal/hashSet.js.map +1 -1
  431. package/dist/cjs/internal/keyedPool.js +14 -37
  432. package/dist/cjs/internal/keyedPool.js.map +1 -1
  433. package/dist/cjs/internal/layer/circular.js +12 -35
  434. package/dist/cjs/internal/layer/circular.js.map +1 -1
  435. package/dist/cjs/internal/layer.js +25 -48
  436. package/dist/cjs/internal/layer.js.map +1 -1
  437. package/dist/cjs/internal/logger-circular.js +9 -32
  438. package/dist/cjs/internal/logger-circular.js.map +1 -1
  439. package/dist/cjs/internal/logger.js +139 -61
  440. package/dist/cjs/internal/logger.js.map +1 -1
  441. package/dist/cjs/internal/managedRuntime.js +9 -32
  442. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  443. package/dist/cjs/internal/matcher.js +6 -29
  444. package/dist/cjs/internal/matcher.js.map +1 -1
  445. package/dist/cjs/internal/metric/boundaries.js +9 -32
  446. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  447. package/dist/cjs/internal/metric/hook.js +9 -32
  448. package/dist/cjs/internal/metric/hook.js.map +1 -1
  449. package/dist/cjs/internal/metric/key.js +11 -34
  450. package/dist/cjs/internal/metric/key.js.map +1 -1
  451. package/dist/cjs/internal/metric/keyType.js +8 -31
  452. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  453. package/dist/cjs/internal/metric/label.js +6 -29
  454. package/dist/cjs/internal/metric/label.js.map +1 -1
  455. package/dist/cjs/internal/metric/pair.js +1 -1
  456. package/dist/cjs/internal/metric/pair.js.map +1 -1
  457. package/dist/cjs/internal/metric/polling.js +8 -31
  458. package/dist/cjs/internal/metric/polling.js.map +1 -1
  459. package/dist/cjs/internal/metric/registry.js +8 -31
  460. package/dist/cjs/internal/metric/registry.js.map +1 -1
  461. package/dist/cjs/internal/metric/state.js +8 -31
  462. package/dist/cjs/internal/metric/state.js.map +1 -1
  463. package/dist/cjs/internal/metric.js +15 -38
  464. package/dist/cjs/internal/metric.js.map +1 -1
  465. package/dist/cjs/internal/option.js +7 -30
  466. package/dist/cjs/internal/option.js.map +1 -1
  467. package/dist/cjs/internal/pool.js +43 -42
  468. package/dist/cjs/internal/pool.js.map +1 -1
  469. package/dist/cjs/internal/pubsub.js +229 -72
  470. package/dist/cjs/internal/pubsub.js.map +1 -1
  471. package/dist/cjs/internal/query.js +10 -33
  472. package/dist/cjs/internal/query.js.map +1 -1
  473. package/dist/cjs/internal/queue.js +12 -35
  474. package/dist/cjs/internal/queue.js.map +1 -1
  475. package/dist/cjs/internal/random.js +9 -31
  476. package/dist/cjs/internal/random.js.map +1 -1
  477. package/dist/cjs/internal/rateLimiter.js +6 -29
  478. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  479. package/dist/cjs/internal/rcMap.js +129 -0
  480. package/dist/cjs/internal/rcMap.js.map +1 -0
  481. package/dist/cjs/internal/rcRef.js +122 -0
  482. package/dist/cjs/internal/rcRef.js.map +1 -0
  483. package/dist/cjs/internal/redBlackTree/iterator.js +4 -27
  484. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  485. package/dist/cjs/internal/redBlackTree.js +13 -36
  486. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  487. package/dist/cjs/internal/redacted.js +8 -31
  488. package/dist/cjs/internal/redacted.js.map +1 -1
  489. package/dist/cjs/internal/ref.js +8 -31
  490. package/dist/cjs/internal/ref.js.map +1 -1
  491. package/dist/cjs/internal/reloadable.js +10 -33
  492. package/dist/cjs/internal/reloadable.js.map +1 -1
  493. package/dist/cjs/internal/request.js +7 -30
  494. package/dist/cjs/internal/request.js.map +1 -1
  495. package/dist/cjs/internal/resource.js +7 -30
  496. package/dist/cjs/internal/resource.js.map +1 -1
  497. package/dist/cjs/internal/ringBuffer.js +5 -28
  498. package/dist/cjs/internal/ringBuffer.js.map +1 -1
  499. package/dist/cjs/internal/runtime.js +23 -46
  500. package/dist/cjs/internal/runtime.js.map +1 -1
  501. package/dist/cjs/internal/runtimeFlags.js +5 -28
  502. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  503. package/dist/cjs/internal/runtimeFlagsPatch.js +1 -1
  504. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -1
  505. package/dist/cjs/internal/schedule/decision.js +4 -27
  506. package/dist/cjs/internal/schedule/decision.js.map +1 -1
  507. package/dist/cjs/internal/schedule/interval.js +5 -28
  508. package/dist/cjs/internal/schedule/interval.js.map +1 -1
  509. package/dist/cjs/internal/schedule/intervals.js +7 -30
  510. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  511. package/dist/cjs/internal/schedule.js +21 -44
  512. package/dist/cjs/internal/schedule.js.map +1 -1
  513. package/dist/cjs/internal/scopedCache.js +19 -42
  514. package/dist/cjs/internal/scopedCache.js.map +1 -1
  515. package/dist/cjs/internal/scopedRef.js +10 -33
  516. package/dist/cjs/internal/scopedRef.js.map +1 -1
  517. package/dist/cjs/internal/secret.js +5 -28
  518. package/dist/cjs/internal/secret.js.map +1 -1
  519. package/dist/cjs/internal/singleShotGen.js.map +1 -1
  520. package/dist/cjs/internal/sink.js +22 -45
  521. package/dist/cjs/internal/sink.js.map +1 -1
  522. package/dist/cjs/internal/stm/core.js +30 -53
  523. package/dist/cjs/internal/stm/core.js.map +1 -1
  524. package/dist/cjs/internal/stm/stm/entry.js +3 -26
  525. package/dist/cjs/internal/stm/stm/entry.js.map +1 -1
  526. package/dist/cjs/internal/stm/stm/journal.js +3 -26
  527. package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
  528. package/dist/cjs/internal/stm/stm/stmState.js +9 -32
  529. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  530. package/dist/cjs/internal/stm/stm/tExit.js +7 -30
  531. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  532. package/dist/cjs/internal/stm/stm/tryCommit.js +3 -26
  533. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  534. package/dist/cjs/internal/stm/stm/versioned.js.map +1 -1
  535. package/dist/cjs/internal/stm/stm.js +17 -40
  536. package/dist/cjs/internal/stm/stm.js.map +1 -1
  537. package/dist/cjs/internal/stm/tArray.js +9 -32
  538. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  539. package/dist/cjs/internal/stm/tDeferred.js +8 -31
  540. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  541. package/dist/cjs/internal/stm/tMap.js +15 -38
  542. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  543. package/dist/cjs/internal/stm/tPriorityQueue.js +9 -32
  544. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  545. package/dist/cjs/internal/stm/tPubSub.js +12 -35
  546. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  547. package/dist/cjs/internal/stm/tQueue.js +12 -35
  548. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  549. package/dist/cjs/internal/stm/tRandom.js +10 -33
  550. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  551. package/dist/cjs/internal/stm/tReentrantLock.js +10 -33
  552. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  553. package/dist/cjs/internal/stm/tRef.js +7 -30
  554. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  555. package/dist/cjs/internal/stm/tSemaphore.js +8 -31
  556. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  557. package/dist/cjs/internal/stm/tSet.js +10 -33
  558. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  559. package/dist/cjs/internal/stream/emit.js +8 -31
  560. package/dist/cjs/internal/stream/emit.js.map +1 -1
  561. package/dist/cjs/internal/stream/haltStrategy.js +4 -27
  562. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  563. package/dist/cjs/internal/stream/handoff.js +7 -30
  564. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  565. package/dist/cjs/internal/stream/pull.js +7 -30
  566. package/dist/cjs/internal/stream/pull.js.map +1 -1
  567. package/dist/cjs/internal/stream.js +103 -80
  568. package/dist/cjs/internal/stream.js.map +1 -1
  569. package/dist/cjs/internal/subscriptionRef.js +13 -36
  570. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  571. package/dist/cjs/internal/supervisor/patch.js +8 -31
  572. package/dist/cjs/internal/supervisor/patch.js.map +1 -1
  573. package/dist/cjs/internal/supervisor.js +8 -31
  574. package/dist/cjs/internal/supervisor.js.map +1 -1
  575. package/dist/cjs/internal/synchronizedRef.js +5 -28
  576. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  577. package/dist/cjs/internal/take.js +9 -32
  578. package/dist/cjs/internal/take.js.map +1 -1
  579. package/dist/cjs/internal/tracer.js +3 -26
  580. package/dist/cjs/internal/tracer.js.map +1 -1
  581. package/dist/cjs/internal/trie.js +9 -32
  582. package/dist/cjs/internal/trie.js.map +1 -1
  583. package/dist/cjs/internal/version.js +1 -1
  584. package/dist/dts/Cause.d.ts +40 -1
  585. package/dist/dts/Cause.d.ts.map +1 -1
  586. package/dist/dts/Channel.d.ts +3 -3
  587. package/dist/dts/Channel.d.ts.map +1 -1
  588. package/dist/dts/Config.d.ts +5 -0
  589. package/dist/dts/Config.d.ts.map +1 -1
  590. package/dist/dts/Console.d.ts +2 -4
  591. package/dist/dts/Console.d.ts.map +1 -1
  592. package/dist/dts/Duration.d.ts +5 -0
  593. package/dist/dts/Duration.d.ts.map +1 -1
  594. package/dist/dts/Logger.d.ts +15 -0
  595. package/dist/dts/Logger.d.ts.map +1 -1
  596. package/dist/dts/PubSub.d.ts +15 -4
  597. package/dist/dts/PubSub.d.ts.map +1 -1
  598. package/dist/dts/Random.d.ts +8 -0
  599. package/dist/dts/Random.d.ts.map +1 -1
  600. package/dist/dts/RcMap.d.ts +93 -0
  601. package/dist/dts/RcMap.d.ts.map +1 -0
  602. package/dist/dts/RcRef.d.ts +83 -0
  603. package/dist/dts/RcRef.d.ts.map +1 -0
  604. package/dist/dts/Stream.d.ts +1139 -29
  605. package/dist/dts/Stream.d.ts.map +1 -1
  606. package/dist/dts/index.d.ts +8 -0
  607. package/dist/dts/index.d.ts.map +1 -1
  608. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  609. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  610. package/dist/dts/internal/logger.d.ts.map +1 -1
  611. package/dist/dts/internal/random.d.ts +1 -1
  612. package/dist/dts/internal/random.d.ts.map +1 -1
  613. package/dist/dts/internal/rcMap.d.ts +2 -0
  614. package/dist/dts/internal/rcMap.d.ts.map +1 -0
  615. package/dist/dts/internal/rcRef.d.ts +2 -0
  616. package/dist/dts/internal/rcRef.d.ts.map +1 -0
  617. package/dist/dts/internal/stream.d.ts +1 -0
  618. package/dist/dts/internal/stream.d.ts.map +1 -1
  619. package/dist/esm/Cause.js +21 -0
  620. package/dist/esm/Cause.js.map +1 -1
  621. package/dist/esm/Channel.js.map +1 -1
  622. package/dist/esm/Config.js.map +1 -1
  623. package/dist/esm/Console.js.map +1 -1
  624. package/dist/esm/Data.js +3 -1
  625. package/dist/esm/Data.js.map +1 -1
  626. package/dist/esm/Duration.js +20 -0
  627. package/dist/esm/Duration.js.map +1 -1
  628. package/dist/esm/Logger.js +10 -0
  629. package/dist/esm/Logger.js.map +1 -1
  630. package/dist/esm/PubSub.js.map +1 -1
  631. package/dist/esm/Random.js +8 -0
  632. package/dist/esm/Random.js.map +1 -1
  633. package/dist/esm/RcMap.js +44 -0
  634. package/dist/esm/RcMap.js.map +1 -0
  635. package/dist/esm/RcRef.js +43 -0
  636. package/dist/esm/RcRef.js.map +1 -0
  637. package/dist/esm/Stream.js +1102 -3
  638. package/dist/esm/Stream.js.map +1 -1
  639. package/dist/esm/index.js +8 -0
  640. package/dist/esm/index.js.map +1 -1
  641. package/dist/esm/internal/cause.js +21 -5
  642. package/dist/esm/internal/cause.js.map +1 -1
  643. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  644. package/dist/esm/internal/channel.js.map +1 -1
  645. package/dist/esm/internal/core-effect.js +0 -5
  646. package/dist/esm/internal/core-effect.js.map +1 -1
  647. package/dist/esm/internal/core.js +11 -7
  648. package/dist/esm/internal/core.js.map +1 -1
  649. package/dist/esm/internal/defaultServices.js +1 -1
  650. package/dist/esm/internal/defaultServices.js.map +1 -1
  651. package/dist/esm/internal/fiberRuntime.js +2 -0
  652. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  653. package/dist/esm/internal/logger.js +126 -26
  654. package/dist/esm/internal/logger.js.map +1 -1
  655. package/dist/esm/internal/pool.js +29 -5
  656. package/dist/esm/internal/pool.js.map +1 -1
  657. package/dist/esm/internal/pubsub.js +216 -36
  658. package/dist/esm/internal/pubsub.js.map +1 -1
  659. package/dist/esm/internal/random.js +2 -1
  660. package/dist/esm/internal/random.js.map +1 -1
  661. package/dist/esm/internal/rcMap.js +120 -0
  662. package/dist/esm/internal/rcMap.js.map +1 -0
  663. package/dist/esm/internal/rcRef.js +112 -0
  664. package/dist/esm/internal/rcRef.js.map +1 -0
  665. package/dist/esm/internal/stream.js +53 -8
  666. package/dist/esm/internal/stream.js.map +1 -1
  667. package/dist/esm/internal/version.js +1 -1
  668. package/package.json +17 -1
  669. package/src/Cause.ts +47 -1
  670. package/src/Channel.ts +3 -3
  671. package/src/Config.ts +6 -0
  672. package/src/Console.ts +2 -4
  673. package/src/Data.ts +1 -1
  674. package/src/Duration.ts +18 -0
  675. package/src/Logger.ts +19 -0
  676. package/src/PubSub.ts +11 -4
  677. package/src/Random.ts +9 -0
  678. package/src/RcMap.ts +103 -0
  679. package/src/RcRef.ts +91 -0
  680. package/src/Stream.ts +1158 -29
  681. package/src/index.ts +10 -0
  682. package/src/internal/cause.ts +26 -5
  683. package/src/internal/channel/channelExecutor.ts +1 -1
  684. package/src/internal/channel.ts +4 -3
  685. package/src/internal/core-effect.ts +0 -5
  686. package/src/internal/core.ts +19 -9
  687. package/src/internal/defaultServices.ts +1 -1
  688. package/src/internal/fiberRuntime.ts +6 -0
  689. package/src/internal/logger.ts +133 -27
  690. package/src/internal/pool.ts +36 -5
  691. package/src/internal/pubsub.ts +249 -58
  692. package/src/internal/random.ts +2 -1
  693. package/src/internal/rcMap.ts +213 -0
  694. package/src/internal/rcRef.ts +172 -0
  695. package/src/internal/stream.ts +325 -111
  696. package/src/internal/version.ts +1 -1
@@ -4,35 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.fromIteratorSucceed = exports.fromIterableEffect = exports.fromIterable = exports.fromEventListener = exports.fromEffectOption = exports.fromEffect = exports.fromChunks = exports.fromChunkQueue = exports.fromChunkPubSub = exports.fromChunk = exports.fromChannel = exports.fromAsyncIterable = exports.forever = exports.flattenTake = exports.flattenIterables = exports.flattenExitOption = exports.flattenEffect = exports.flattenChunks = exports.flatten = exports.flatMap = exports.findEffect = exports.find = exports.finalizer = exports.filterMapWhileEffect = exports.filterMapWhile = exports.filterMapEffect = exports.filterMap = exports.filterEffect = exports.filter = exports.failSync = exports.failCauseSync = exports.failCause = exports.fail = exports.execute = exports.ensuringWith = exports.ensuring = exports.encodeText = exports.empty = exports.either = exports.dropWhileEffect = exports.dropWhile = exports.dropUntilEffect = exports.dropUntil = exports.dropRight = exports.drop = exports.drainFork = exports.drain = exports.distributedWithDynamic = exports.distributedWith = exports.dieSync = exports.dieMessage = exports.die = exports.decodeText = exports.debounce = exports.crossWith = exports.crossRight = exports.crossLeft = exports.cross = exports.contextWithStream = exports.contextWithEffect = exports.contextWith = exports.context = exports.concatAll = exports.concat = exports.combineChunks = exports.combine = exports.chunksWith = exports.chunks = exports.changesWithEffect = exports.changesWith = exports.changes = exports.catchTags = exports.catchTag = exports.catchSomeCause = exports.catchSome = exports.catchAllCause = exports.catchAll = exports.bufferChunks = exports.buffer = exports.broadcastedQueuesDynamic = exports.broadcastedQueues = exports.broadcastDynamic = exports.broadcast = exports.branchAfter = exports.bindTo = exports.bindEffect = exports.bind = exports.asyncScoped = exports.asyncEffect = exports.async = exports.as = exports.aggregateWithinEither = exports.aggregateWithin = exports.aggregate = exports.acquireRelease = exports.accumulateChunks = exports.accumulate = exports.StreamTypeId = exports.Do = exports.DefaultChunkSize = void 0;
7
- exports.runFoldWhile = exports.runFoldScopedEffect = exports.runFoldScoped = exports.runFoldEffect = exports.runFold = exports.runDrain = exports.runCount = exports.runCollect = exports.run = exports.retry = exports.repeatWith = exports.repeatValue = exports.repeatElementsWith = exports.repeatElements = exports.repeatEither = exports.repeatEffectWithSchedule = exports.repeatEffectOption = exports.repeatEffectChunkOption = exports.repeatEffectChunk = exports.repeatEffect = exports.repeat = exports.refineOrDieWith = exports.refineOrDie = exports.rechunk = exports.range = exports.provideSomeLayer = exports.provideServiceStream = exports.provideServiceEffect = exports.provideService = exports.provideLayer = exports.provideContext = exports.prepend = exports.pipeThroughChannelOrFail = exports.pipeThroughChannel = exports.pipeThrough = exports.peel = exports.partitionEither = exports.partition = exports.paginateEffect = exports.paginateChunkEffect = exports.paginateChunk = exports.paginate = exports.orElseSucceed = exports.orElseIfEmptyStream = exports.orElseIfEmptyChunk = exports.orElseIfEmpty = exports.orElseFail = exports.orElseEither = exports.orElse = exports.orDieWith = exports.orDie = exports.onError = exports.onDone = exports.never = exports.mkString = exports.mergeWith = exports.mergeRight = exports.mergeLeft = exports.mergeEither = exports.mergeAll = exports.merge = exports.mapInputContext = exports.mapErrorCause = exports.mapError = exports.mapEffect = exports.mapConcatEffect = exports.mapConcatChunkEffect = exports.mapConcatChunk = exports.mapConcat = exports.mapChunksEffect = exports.mapChunks = exports.mapBoth = exports.mapAccumEffect = exports.mapAccum = exports.map = exports.make = exports.let = exports.iterate = exports.intersperseAffixes = exports.intersperse = exports.interruptWhenDeferred = exports.interruptWhen = exports.interruptAfter = exports.interleaveWith = exports.interleave = exports.identity = exports.haltWhenDeferred = exports.haltWhen = exports.haltAfter = exports.groupedWithin = exports.grouped = exports.groupByKey = exports.groupBy = exports.groupAdjacentBy = exports.fromSchedule = exports.fromReadableStreamByob = exports.fromReadableStream = exports.fromQueue = exports.fromPull = exports.fromPubSub = void 0;
8
- exports.zipWithPreviousAndNext = exports.zipWithPrevious = exports.zipWithNext = exports.zipWithIndex = exports.zipWithChunks = exports.zipWith = exports.zipRight = exports.zipLeft = exports.zipLatestWith = exports.zipLatestAll = exports.zipLatest = exports.zipFlatten = exports.zipAllWith = exports.zipAllSortedByKeyWith = exports.zipAllSortedByKeyRight = exports.zipAllSortedByKeyLeft = exports.zipAllSortedByKey = exports.zipAllRight = exports.zipAllLeft = exports.zipAll = exports.zip = exports.withSpan = exports.whenEffect = exports.whenCaseEffect = exports.whenCase = exports.when = exports.void = exports.updateService = exports.unwrapScoped = exports.unwrap = exports.unfoldEffect = exports.unfoldChunkEffect = exports.unfoldChunk = exports.unfold = exports.transduce = exports.toReadableStreamRuntime = exports.toReadableStreamEffect = exports.toReadableStream = exports.toQueueOfElements = exports.toQueue = exports.toPull = exports.toPubSub = exports.toChannel = exports.timeoutTo = exports.timeoutFailCause = exports.timeoutFail = exports.timeout = exports.tick = exports.throttleEffect = exports.throttle = exports.tapSink = exports.tapErrorCause = exports.tapError = exports.tapBoth = exports.tap = exports.takeWhile = exports.takeUntilEffect = exports.takeUntil = exports.takeRight = exports.take = exports.sync = exports.suspend = exports.succeed = exports.splitOnChunk = exports.splitLines = exports.split = exports.someOrFail = exports.someOrElse = exports.some = exports.slidingSize = exports.sliding = exports.scoped = exports.scheduleWith = exports.schedule = exports.scanReduceEffect = exports.scanReduce = exports.scanEffect = exports.scan = exports.runSum = exports.runScoped = exports.runLast = exports.runIntoQueueScoped = exports.runIntoQueueElementsScoped = exports.runIntoQueue = exports.runIntoPubSubScoped = exports.runIntoPubSub = exports.runHead = exports.runForEachWhileScoped = exports.runForEachWhile = exports.runForEachScoped = exports.runForEachChunkScoped = exports.runForEachChunk = exports.runForEach = exports.runFoldWhileScopedEffect = exports.runFoldWhileScoped = exports.runFoldWhileEffect = void 0;
9
- var _groupBy = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/groupBy.js"));
10
- var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/stream.js"));
11
- function _getRequireWildcardCache(e) {
12
- if ("function" != typeof WeakMap) return null;
13
- var r = new WeakMap(),
14
- t = new WeakMap();
15
- return (_getRequireWildcardCache = function (e) {
16
- return e ? t : r;
17
- })(e);
18
- }
19
- function _interopRequireWildcard(e, r) {
20
- if (!r && e && e.__esModule) return e;
21
- if (null === e || "object" != typeof e && "function" != typeof e) return {
22
- default: e
23
- };
24
- var t = _getRequireWildcardCache(r);
25
- if (t && t.has(e)) return t.get(e);
26
- var n = {
27
- __proto__: null
28
- },
29
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
30
- for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
31
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
32
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
33
- }
34
- return n.default = e, t && t.set(e, n), n;
35
- }
7
+ exports.runFoldScopedEffect = exports.runFoldScoped = exports.runFoldEffect = exports.runFold = exports.runDrain = exports.runCount = exports.runCollect = exports.run = exports.retry = exports.repeatWith = exports.repeatValue = exports.repeatElementsWith = exports.repeatElements = exports.repeatEither = exports.repeatEffectWithSchedule = exports.repeatEffectOption = exports.repeatEffectChunkOption = exports.repeatEffectChunk = exports.repeatEffect = exports.repeat = exports.refineOrDieWith = exports.refineOrDie = exports.rechunk = exports.range = exports.raceAll = exports.provideSomeLayer = exports.provideServiceStream = exports.provideServiceEffect = exports.provideService = exports.provideLayer = exports.provideContext = exports.prepend = exports.pipeThroughChannelOrFail = exports.pipeThroughChannel = exports.pipeThrough = exports.peel = exports.partitionEither = exports.partition = exports.paginateEffect = exports.paginateChunkEffect = exports.paginateChunk = exports.paginate = exports.orElseSucceed = exports.orElseIfEmptyStream = exports.orElseIfEmptyChunk = exports.orElseIfEmpty = exports.orElseFail = exports.orElseEither = exports.orElse = exports.orDieWith = exports.orDie = exports.onError = exports.onDone = exports.never = exports.mkString = exports.mergeWith = exports.mergeRight = exports.mergeLeft = exports.mergeEither = exports.mergeAll = exports.merge = exports.mapInputContext = exports.mapErrorCause = exports.mapError = exports.mapEffect = exports.mapConcatEffect = exports.mapConcatChunkEffect = exports.mapConcatChunk = exports.mapConcat = exports.mapChunksEffect = exports.mapChunks = exports.mapBoth = exports.mapAccumEffect = exports.mapAccum = exports.map = exports.make = exports.let = exports.iterate = exports.intersperseAffixes = exports.intersperse = exports.interruptWhenDeferred = exports.interruptWhen = exports.interruptAfter = exports.interleaveWith = exports.interleave = exports.identity = exports.haltWhenDeferred = exports.haltWhen = exports.haltAfter = exports.groupedWithin = exports.grouped = exports.groupByKey = exports.groupBy = exports.groupAdjacentBy = exports.fromSchedule = exports.fromReadableStreamByob = exports.fromReadableStream = exports.fromQueue = exports.fromPull = exports.fromPubSub = void 0;
8
+ exports.zipWithPreviousAndNext = exports.zipWithPrevious = exports.zipWithNext = exports.zipWithIndex = exports.zipWithChunks = exports.zipWith = exports.zipRight = exports.zipLeft = exports.zipLatestWith = exports.zipLatestAll = exports.zipLatest = exports.zipFlatten = exports.zipAllWith = exports.zipAllSortedByKeyWith = exports.zipAllSortedByKeyRight = exports.zipAllSortedByKeyLeft = exports.zipAllSortedByKey = exports.zipAllRight = exports.zipAllLeft = exports.zipAll = exports.zip = exports.withSpan = exports.whenEffect = exports.whenCaseEffect = exports.whenCase = exports.when = exports.void = exports.updateService = exports.unwrapScoped = exports.unwrap = exports.unfoldEffect = exports.unfoldChunkEffect = exports.unfoldChunk = exports.unfold = exports.transduce = exports.toReadableStreamRuntime = exports.toReadableStreamEffect = exports.toReadableStream = exports.toQueueOfElements = exports.toQueue = exports.toPull = exports.toPubSub = exports.toChannel = exports.timeoutTo = exports.timeoutFailCause = exports.timeoutFail = exports.timeout = exports.tick = exports.throttleEffect = exports.throttle = exports.tapSink = exports.tapErrorCause = exports.tapError = exports.tapBoth = exports.tap = exports.takeWhile = exports.takeUntilEffect = exports.takeUntil = exports.takeRight = exports.take = exports.sync = exports.suspend = exports.succeed = exports.splitOnChunk = exports.splitLines = exports.split = exports.someOrFail = exports.someOrElse = exports.some = exports.slidingSize = exports.sliding = exports.scoped = exports.scheduleWith = exports.schedule = exports.scanReduceEffect = exports.scanReduce = exports.scanEffect = exports.scan = exports.runSum = exports.runScoped = exports.runLast = exports.runIntoQueueScoped = exports.runIntoQueueElementsScoped = exports.runIntoQueue = exports.runIntoPubSubScoped = exports.runIntoPubSub = exports.runHead = exports.runForEachWhileScoped = exports.runForEachWhile = exports.runForEachScoped = exports.runForEachChunkScoped = exports.runForEachChunk = exports.runForEach = exports.runFoldWhileScopedEffect = exports.runFoldWhileScoped = exports.runFoldWhileEffect = exports.runFoldWhile = void 0;
9
+ var _groupBy = _interopRequireWildcard(require("./internal/groupBy.js"));
10
+ var internal = _interopRequireWildcard(require("./internal/stream.js"));
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
36
13
  /**
37
14
  * @since 2.0.0
38
15
  * @category symbols
@@ -65,6 +42,29 @@ const accumulateChunks = exports.accumulateChunks = internal.accumulateChunks;
65
42
  * Creates a stream from a single value that will get cleaned up after the
66
43
  * stream is consumed.
67
44
  *
45
+ * @example
46
+ * import { Console, Effect, Stream } from "effect"
47
+ *
48
+ * // Simulating File operations
49
+ * const open = (filename: string) =>
50
+ * Effect.gen(function*() {
51
+ * yield* Console.log(`Opening ${filename}`)
52
+ * return {
53
+ * getLines: Effect.succeed(["Line 1", "Line 2", "Line 3"]),
54
+ * close: Console.log(`Closing ${filename}`)
55
+ * }
56
+ * })
57
+ *
58
+ * const stream = Stream.acquireRelease(
59
+ * open("file.txt"),
60
+ * (file) => file.close
61
+ * ).pipe(Stream.flatMap((file) => file.getLines))
62
+ *
63
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
64
+ * // Opening file.txt
65
+ * // Closing file.txt
66
+ * // { _id: 'Chunk', values: [ [ 'Line 1', 'Line 2', 'Line 3' ] ] }
67
+ *
68
68
  * @since 2.0.0
69
69
  * @category constructors
70
70
  */
@@ -116,6 +116,14 @@ const aggregateWithinEither = exports.aggregateWithinEither = internal.aggregate
116
116
  /**
117
117
  * Maps the success values of this stream to the specified constant value.
118
118
  *
119
+ * @example
120
+ * import { Effect, Stream } from "effect"
121
+ *
122
+ * const stream = Stream.range(1, 5).pipe(Stream.as(null))
123
+ *
124
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
125
+ * // { _id: 'Chunk', values: [ null, null, null, null, null ] }
126
+ *
119
127
  * @since 2.0.0
120
128
  * @category mapping
121
129
  */
@@ -155,6 +163,77 @@ const branchAfter = exports.branchAfter = internal.branchAfter;
155
163
  * as this stream. The driver stream will only ever advance the `maximumLag`
156
164
  * chunks before the slowest downstream stream.
157
165
  *
166
+ * @example
167
+ * import { Console, Effect, Fiber, Schedule, Stream } from "effect"
168
+ *
169
+ * const numbers = Effect.scoped(
170
+ * Stream.range(1, 20).pipe(
171
+ * Stream.tap((n) => Console.log(`Emit ${n} element before broadcasting`)),
172
+ * Stream.broadcast(2, 5),
173
+ * Stream.flatMap(([first, second]) =>
174
+ * Effect.gen(function*() {
175
+ * const fiber1 = yield* Stream.runFold(first, 0, (acc, e) => Math.max(acc, e)).pipe(
176
+ * Effect.andThen((max) => Console.log(`Maximum: ${max}`)),
177
+ * Effect.fork
178
+ * )
179
+ * const fiber2 = yield* second.pipe(
180
+ * Stream.schedule(Schedule.spaced("1 second")),
181
+ * Stream.runForEach((n) => Console.log(`Logging to the Console: ${n}`)),
182
+ * Effect.fork
183
+ * )
184
+ * yield* Fiber.join(fiber1).pipe(
185
+ * Effect.zip(Fiber.join(fiber2), { concurrent: true })
186
+ * )
187
+ * })
188
+ * ),
189
+ * Stream.runCollect
190
+ * )
191
+ * )
192
+ *
193
+ * // Effect.runPromise(numbers).then(console.log)
194
+ * // Emit 1 element before broadcasting
195
+ * // Emit 2 element before broadcasting
196
+ * // Emit 3 element before broadcasting
197
+ * // Emit 4 element before broadcasting
198
+ * // Emit 5 element before broadcasting
199
+ * // Emit 6 element before broadcasting
200
+ * // Emit 7 element before broadcasting
201
+ * // Emit 8 element before broadcasting
202
+ * // Emit 9 element before broadcasting
203
+ * // Emit 10 element before broadcasting
204
+ * // Emit 11 element before broadcasting
205
+ * // Logging to the Console: 1
206
+ * // Logging to the Console: 2
207
+ * // Logging to the Console: 3
208
+ * // Logging to the Console: 4
209
+ * // Logging to the Console: 5
210
+ * // Emit 12 element before broadcasting
211
+ * // Emit 13 element before broadcasting
212
+ * // Emit 14 element before broadcasting
213
+ * // Emit 15 element before broadcasting
214
+ * // Emit 16 element before broadcasting
215
+ * // Logging to the Console: 6
216
+ * // Logging to the Console: 7
217
+ * // Logging to the Console: 8
218
+ * // Logging to the Console: 9
219
+ * // Logging to the Console: 10
220
+ * // Emit 17 element before broadcasting
221
+ * // Emit 18 element before broadcasting
222
+ * // Emit 19 element before broadcasting
223
+ * // Emit 20 element before broadcasting
224
+ * // Logging to the Console: 11
225
+ * // Logging to the Console: 12
226
+ * // Logging to the Console: 13
227
+ * // Logging to the Console: 14
228
+ * // Logging to the Console: 15
229
+ * // Maximum: 20
230
+ * // Logging to the Console: 16
231
+ * // Logging to the Console: 17
232
+ * // Logging to the Console: 18
233
+ * // Logging to the Console: 19
234
+ * // Logging to the Console: 20
235
+ * // { _id: 'Chunk', values: [ undefined ] }
236
+ *
158
237
  * @since 2.0.0
159
238
  * @category utils
160
239
  */
@@ -194,9 +273,38 @@ const broadcastedQueuesDynamic = exports.broadcastedQueuesDynamic = internal.bro
194
273
  * Allows a faster producer to progress independently of a slower consumer by
195
274
  * buffering up to `capacity` elements in a queue.
196
275
  *
197
- * @note This combinator destroys the chunking structure. It's recommended to
276
+ * Note: This combinator destroys the chunking structure. It's recommended to
198
277
  * use rechunk afterwards. Additionally, prefer capacities that are powers
199
278
  * of 2 for better performance.
279
+ *
280
+ * @example
281
+ * import { Console, Effect, Schedule, Stream } from "effect"
282
+ *
283
+ * const stream = Stream.range(1, 10).pipe(
284
+ * Stream.tap((n) => Console.log(`before buffering: ${n}`)),
285
+ * Stream.buffer({ capacity: 4 }),
286
+ * Stream.tap((n) => Console.log(`after buffering: ${n}`)),
287
+ * Stream.schedule(Schedule.spaced("5 seconds"))
288
+ * )
289
+ *
290
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
291
+ * // before buffering: 1
292
+ * // before buffering: 2
293
+ * // before buffering: 3
294
+ * // before buffering: 4
295
+ * // before buffering: 5
296
+ * // before buffering: 6
297
+ * // after buffering: 1
298
+ * // after buffering: 2
299
+ * // before buffering: 7
300
+ * // after buffering: 3
301
+ * // before buffering: 8
302
+ * // after buffering: 4
303
+ * // before buffering: 9
304
+ * // after buffering: 5
305
+ * // before buffering: 10
306
+ * // ...
307
+ *
200
308
  * @since 2.0.0
201
309
  * @category utils
202
310
  */
@@ -265,6 +373,14 @@ const catchSomeCause = exports.catchSomeCause = internal.catchSomeCause;
265
373
  * previous element emitted, using natural equality to determine whether two
266
374
  * elements are equal.
267
375
  *
376
+ * @example
377
+ * import { Effect, Stream } from "effect"
378
+ *
379
+ * const stream = Stream.make(1, 1, 1, 2, 2, 3, 4).pipe(Stream.changes)
380
+ *
381
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
382
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4 ] }
383
+ *
268
384
  * @since 2.0.0
269
385
  * @category utils
270
386
  */
@@ -333,6 +449,17 @@ const combineChunks = exports.combineChunks = internal.combineChunks;
333
449
  * that emits the elements from this stream and then the elements from the
334
450
  * specified stream.
335
451
  *
452
+ * @example
453
+ * import { Effect, Stream } from "effect"
454
+ *
455
+ * const s1 = Stream.make(1, 2, 3)
456
+ * const s2 = Stream.make(4, 5)
457
+ *
458
+ * const stream = Stream.concat(s1, s2)
459
+ *
460
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
461
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
462
+ *
336
463
  * @since 2.0.0
337
464
  * @category utils
338
465
  */
@@ -340,6 +467,24 @@ const concat = exports.concat = internal.concat;
340
467
  /**
341
468
  * Concatenates all of the streams in the chunk to one stream.
342
469
  *
470
+ * @example
471
+ * import { Chunk, Effect, Stream } from "effect"
472
+ *
473
+ * const s1 = Stream.make(1, 2, 3)
474
+ * const s2 = Stream.make(4, 5)
475
+ * const s3 = Stream.make(6, 7, 8)
476
+ *
477
+ * const stream = Stream.concatAll(Chunk.make(s1, s2, s3))
478
+ *
479
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
480
+ * // {
481
+ * // _id: 'Chunk',
482
+ * // values: [
483
+ * // 1, 2, 3, 4,
484
+ * // 5, 6, 7, 8
485
+ * // ]
486
+ * // }
487
+ *
343
488
  * @since 2.0.0
344
489
  * @category constructors
345
490
  */
@@ -351,6 +496,22 @@ const concatAll = exports.concatAll = internal.concatAll;
351
496
  *
352
497
  * See also `Stream.zip` for the more common point-wise variant.
353
498
  *
499
+ * @example
500
+ * import { Effect, Stream } from "effect"
501
+ *
502
+ * const s1 = Stream.make(1, 2, 3)
503
+ * const s2 = Stream.make("a", "b")
504
+ *
505
+ * const product = Stream.cross(s1, s2)
506
+ *
507
+ * // Effect.runPromise(Stream.runCollect(product)).then(console.log)
508
+ * // {
509
+ * // _id: "Chunk",
510
+ * // values: [
511
+ * // [ 1, "a" ], [ 1, "b" ], [ 2, "a" ], [ 2, "b" ], [ 3, "a" ], [ 3, "b" ]
512
+ * // ]
513
+ * // }
514
+ *
354
515
  * @since 2.0.0
355
516
  * @category utils
356
517
  */
@@ -400,6 +561,45 @@ const crossWith = exports.crossWith = internal.crossWith;
400
561
  * example, a search engine may only want to initiate a search after a user
401
562
  * has paused typing so as to not prematurely recommend results.
402
563
  *
564
+ * @example
565
+ * import { Effect, Stream } from "effect"
566
+ *
567
+ * let last = Date.now()
568
+ * const log = (message: string) =>
569
+ * Effect.sync(() => {
570
+ * const end = Date.now()
571
+ * console.log(`${message} after ${end - last}ms`)
572
+ * last = end
573
+ * })
574
+ *
575
+ * const stream = Stream.make(1, 2, 3).pipe(
576
+ * Stream.concat(
577
+ * Stream.fromEffect(Effect.sleep("200 millis").pipe(Effect.as(4))) // Emit 4 after 200 ms
578
+ * ),
579
+ * Stream.concat(Stream.make(5, 6)), // Continue with more rapid values
580
+ * Stream.concat(
581
+ * Stream.fromEffect(Effect.sleep("150 millis").pipe(Effect.as(7))) // Emit 7 after 150 ms
582
+ * ),
583
+ * Stream.concat(Stream.make(8)),
584
+ * Stream.tap((n) => log(`Received ${n}`)),
585
+ * Stream.debounce("100 millis"), // Only emit values after a pause of at least 100 milliseconds,
586
+ * Stream.tap((n) => log(`> Emitted ${n}`))
587
+ * )
588
+ *
589
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
590
+ * // Received 1 after 5ms
591
+ * // Received 2 after 2ms
592
+ * // Received 3 after 0ms
593
+ * // > Emitted 3 after 104ms
594
+ * // Received 4 after 99ms
595
+ * // Received 5 after 1ms
596
+ * // Received 6 after 0ms
597
+ * // > Emitted 6 after 101ms
598
+ * // Received 7 after 50ms
599
+ * // Received 8 after 1ms
600
+ * // > Emitted 8 after 101ms
601
+ * // { _id: 'Chunk', values: [ 3, 6, 8 ] }
602
+ *
403
603
  * @since 2.0.0
404
604
  * @category utils
405
605
  */
@@ -450,6 +650,15 @@ const distributedWithDynamic = exports.distributedWithDynamic = internal.distrib
450
650
  * Converts this stream to a stream that executes its effects but emits no
451
651
  * elements. Useful for sequencing effects using streams:
452
652
  *
653
+ * @example
654
+ * import { Effect, Stream } from "effect"
655
+ *
656
+ * // We create a stream and immediately drain it.
657
+ * const stream = Stream.range(1, 6).pipe(Stream.drain)
658
+ *
659
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
660
+ * // { _id: 'Chunk', values: [] }
661
+ *
453
662
  * @since 2.0.0
454
663
  * @category utils
455
664
  */
@@ -525,6 +734,14 @@ const either = exports.either = internal.either;
525
734
  /**
526
735
  * The empty stream.
527
736
  *
737
+ * @example
738
+ * import { Effect, Stream } from "effect"
739
+ *
740
+ * const stream = Stream.empty
741
+ *
742
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
743
+ * // { _id: 'Chunk', values: [] }
744
+ *
528
745
  * @since 2.0.0
529
746
  * @category constructors
530
747
  */
@@ -532,6 +749,22 @@ const empty = exports.empty = internal.empty;
532
749
  /**
533
750
  * Executes the provided finalizer after this stream's finalizers run.
534
751
  *
752
+ * @example
753
+ * import { Console, Effect, Stream } from "effect"
754
+ *
755
+ * const program = Stream.fromEffect(Console.log("Application Logic.")).pipe(
756
+ * Stream.concat(Stream.finalizer(Console.log("Finalizing the stream"))),
757
+ * Stream.ensuring(
758
+ * Console.log("Doing some other works after stream's finalization")
759
+ * )
760
+ * )
761
+ *
762
+ * // Effect.runPromise(Stream.runCollect(program)).then(console.log)
763
+ * // Application Logic.
764
+ * // Finalizing the stream
765
+ * // Doing some other works after stream's finalization
766
+ * // { _id: 'Chunk', values: [ undefined, undefined ] }
767
+ *
535
768
  * @since 2.0.0
536
769
  * @category utils
537
770
  */
@@ -581,6 +814,18 @@ const execute = exports.execute = internal.execute;
581
814
  /**
582
815
  * Terminates with the specified error.
583
816
  *
817
+ * @example
818
+ * import { Effect, Stream } from "effect"
819
+ *
820
+ * const stream = Stream.fail("Uh oh!")
821
+ *
822
+ * Effect.runPromiseExit(Stream.runCollect(stream)).then(console.log)
823
+ * // {
824
+ * // _id: 'Exit',
825
+ * // _tag: 'Failure',
826
+ * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Uh oh!' }
827
+ * // }
828
+ *
584
829
  * @since 2.0.0
585
830
  * @category constructors
586
831
  */
@@ -609,6 +854,14 @@ const failCauseSync = exports.failCauseSync = internal.failCauseSync;
609
854
  /**
610
855
  * Filters the elements emitted by this stream using the provided function.
611
856
  *
857
+ * @example
858
+ * import { Effect, Stream } from "effect"
859
+ *
860
+ * const stream = Stream.range(1, 11).pipe(Stream.filter((n) => n % 2 === 0))
861
+ *
862
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
863
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
864
+ *
612
865
  * @since 2.0.0
613
866
  * @category filtering
614
867
  */
@@ -654,6 +907,29 @@ const filterMapWhileEffect = exports.filterMapWhileEffect = internal.filterMapWh
654
907
  * Creates a one-element stream that never fails and executes the finalizer
655
908
  * when it ends.
656
909
  *
910
+ * @example
911
+ * import { Console, Effect, Stream } from "effect"
912
+ *
913
+ * const application = Stream.fromEffect(Console.log("Application Logic."))
914
+ *
915
+ * const deleteDir = (dir: string) => Console.log(`Deleting dir: ${dir}`)
916
+ *
917
+ * const program = application.pipe(
918
+ * Stream.concat(
919
+ * Stream.finalizer(
920
+ * deleteDir("tmp").pipe(
921
+ * Effect.andThen(Console.log("Temporary directory was deleted."))
922
+ * )
923
+ * )
924
+ * )
925
+ * )
926
+ *
927
+ * // Effect.runPromise(Stream.runCollect(program)).then(console.log)
928
+ * // Application Logic.
929
+ * // Deleting dir: tmp
930
+ * // Temporary directory was deleted.
931
+ * // { _id: 'Chunk', values: [ undefined, undefined ] }
932
+ *
657
933
  * @since 2.0.0
658
934
  * @category constructors
659
935
  */
@@ -745,6 +1021,22 @@ const forever = exports.forever = internal.forever;
745
1021
  /**
746
1022
  * Creates a stream from an `AsyncIterable`.
747
1023
  *
1024
+ * @example
1025
+ * import { Effect, Stream } from "effect"
1026
+ *
1027
+ * const myAsyncIterable = async function*() {
1028
+ * yield 1
1029
+ * yield 2
1030
+ * }
1031
+ *
1032
+ * const stream = Stream.fromAsyncIterable(
1033
+ * myAsyncIterable(),
1034
+ * (e) => new Error(String(e)) // Error Handling
1035
+ * )
1036
+ *
1037
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1038
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
1039
+ *
748
1040
  * @since 2.0.0
749
1041
  * @category constructors
750
1042
  */
@@ -766,6 +1058,15 @@ const toChannel = exports.toChannel = internal.toChannel;
766
1058
  /**
767
1059
  * Creates a stream from a `Chunk` of values.
768
1060
  *
1061
+ * @example
1062
+ * import { Chunk, Effect, Stream } from "effect"
1063
+ *
1064
+ * // Creating a stream with values from a single Chunk
1065
+ * const stream = Stream.fromChunk(Chunk.make(1, 2, 3))
1066
+ *
1067
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1068
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
1069
+ *
769
1070
  * @since 2.0.0
770
1071
  * @category constructors
771
1072
  */
@@ -789,6 +1090,15 @@ const fromChunkQueue = exports.fromChunkQueue = internal.fromChunkQueue;
789
1090
  /**
790
1091
  * Creates a stream from an arbitrary number of chunks.
791
1092
  *
1093
+ * @example
1094
+ * import { Chunk, Effect, Stream } from "effect"
1095
+ *
1096
+ * // Creating a stream with values from multiple Chunks
1097
+ * const stream = Stream.fromChunks(Chunk.make(1, 2, 3), Chunk.make(4, 5, 6))
1098
+ *
1099
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1100
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
1101
+ *
792
1102
  * @since 2.0.0
793
1103
  * @category constructors
794
1104
  */
@@ -797,6 +1107,14 @@ const fromChunks = exports.fromChunks = internal.fromChunks;
797
1107
  * Either emits the success value of this effect or terminates the stream
798
1108
  * with the failure value of this effect.
799
1109
  *
1110
+ * @example
1111
+ * import { Effect, Random, Stream } from "effect"
1112
+ *
1113
+ * const stream = Stream.fromEffect(Random.nextInt)
1114
+ *
1115
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1116
+ * // Example Output: { _id: 'Chunk', values: [ 922694024 ] }
1117
+ *
800
1118
  * @since 2.0.0
801
1119
  * @category constructors
802
1120
  */
@@ -820,6 +1138,16 @@ const fromPubSub = exports.fromPubSub = internal.fromPubSub;
820
1138
  /**
821
1139
  * Creates a new `Stream` from an iterable collection of values.
822
1140
  *
1141
+ * @example
1142
+ * import { Effect, Stream } from "effect"
1143
+ *
1144
+ * const numbers = [1, 2, 3]
1145
+ *
1146
+ * const stream = Stream.fromIterable(numbers)
1147
+ *
1148
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1149
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
1150
+ *
823
1151
  * @since 2.0.0
824
1152
  * @category constructors
825
1153
  */
@@ -827,6 +1155,23 @@ const fromIterable = exports.fromIterable = internal.fromIterable;
827
1155
  /**
828
1156
  * Creates a stream from an effect producing a value of type `Iterable<A>`.
829
1157
  *
1158
+ * @example
1159
+ * import { Context, Effect, Stream } from "effect"
1160
+ *
1161
+ * class Database extends Context.Tag("Database")<
1162
+ * Database,
1163
+ * { readonly getUsers: Effect.Effect<Array<string>> }
1164
+ * >() {}
1165
+ *
1166
+ * const getUsers = Database.pipe(Effect.andThen((_) => _.getUsers))
1167
+ *
1168
+ * const stream = Stream.fromIterableEffect(getUsers)
1169
+ *
1170
+ * // Effect.runPromise(
1171
+ * // Stream.runCollect(stream.pipe(Stream.provideService(Database, { getUsers: Effect.succeed(["user1", "user2"]) })))
1172
+ * // ).then(console.log)
1173
+ * // { _id: 'Chunk', values: [ 'user1', 'user2' ] }
1174
+ *
830
1175
  * @since 2.0.0
831
1176
  * @category constructors
832
1177
  */
@@ -880,6 +1225,19 @@ const fromReadableStreamByob = exports.fromReadableStreamByob = internal.fromRea
880
1225
  * input. The stream will emit an element for each value output from the
881
1226
  * schedule, continuing for as long as the schedule continues.
882
1227
  *
1228
+ * @example
1229
+ * import { Effect, Schedule, Stream } from "effect"
1230
+ *
1231
+ * // Emits values every 1 second for a total of 5 emissions
1232
+ * const schedule = Schedule.spaced("1 second").pipe(
1233
+ * Schedule.compose(Schedule.recurs(5))
1234
+ * )
1235
+ *
1236
+ * const stream = Stream.fromSchedule(schedule)
1237
+ *
1238
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1239
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
1240
+ *
883
1241
  * @since 2.0.0
884
1242
  * @category constructors
885
1243
  */
@@ -895,6 +1253,35 @@ const groupAdjacentBy = exports.groupAdjacentBy = internal.groupAdjacentBy;
895
1253
  /**
896
1254
  * More powerful version of `Stream.groupByKey`.
897
1255
  *
1256
+ * @example
1257
+ * import { Chunk, Effect, GroupBy, Stream } from "effect"
1258
+ *
1259
+ * const groupByKeyResult = Stream.fromIterable([
1260
+ * "Mary",
1261
+ * "James",
1262
+ * "Robert",
1263
+ * "Patricia",
1264
+ * "John",
1265
+ * "Jennifer",
1266
+ * "Rebecca",
1267
+ * "Peter"
1268
+ * ]).pipe(
1269
+ * Stream.groupBy((name) => Effect.succeed([name.substring(0, 1), name]))
1270
+ * )
1271
+ *
1272
+ * const stream = GroupBy.evaluate(groupByKeyResult, (key, stream) =>
1273
+ * Stream.fromEffect(
1274
+ * Stream.runCollect(stream).pipe(
1275
+ * Effect.andThen((chunk) => [key, Chunk.size(chunk)] as const)
1276
+ * )
1277
+ * ))
1278
+ *
1279
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1280
+ * // {
1281
+ * // _id: 'Chunk',
1282
+ * // values: [ [ 'M', 1 ], [ 'J', 3 ], [ 'R', 2 ], [ 'P', 2 ] ]
1283
+ * // }
1284
+ *
898
1285
  * @since 2.0.0
899
1286
  * @category grouping
900
1287
  */
@@ -940,6 +1327,22 @@ const groupByKey = exports.groupByKey = _groupBy.groupByKey;
940
1327
  /**
941
1328
  * Partitions the stream with specified `chunkSize`.
942
1329
  *
1330
+ * @example
1331
+ * import { Effect, Stream } from "effect"
1332
+ *
1333
+ * const stream = Stream.range(0, 8).pipe(Stream.grouped(3))
1334
+ *
1335
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log("%o", chunks))
1336
+ * // {
1337
+ * // _id: 'Chunk',
1338
+ * // values: [
1339
+ * // { _id: 'Chunk', values: [ 0, 1, 2, [length]: 3 ] },
1340
+ * // { _id: 'Chunk', values: [ 3, 4, 5, [length]: 3 ] },
1341
+ * // { _id: 'Chunk', values: [ 6, 7, 8, [length]: 3 ] },
1342
+ * // [length]: 3
1343
+ * // ]
1344
+ * // }
1345
+ *
943
1346
  * @since 2.0.0
944
1347
  * @category utils
945
1348
  */
@@ -948,6 +1351,43 @@ const grouped = exports.grouped = internal.grouped;
948
1351
  * Partitions the stream with the specified `chunkSize` or until the specified
949
1352
  * `duration` has passed, whichever is satisfied first.
950
1353
  *
1354
+ * @example
1355
+ * import { Chunk, Effect, Schedule, Stream } from "effect"
1356
+ *
1357
+ * const stream = Stream.range(0, 9).pipe(
1358
+ * Stream.repeat(Schedule.spaced("1 second")),
1359
+ * Stream.groupedWithin(18, "1.5 seconds"),
1360
+ * Stream.take(3)
1361
+ * )
1362
+ *
1363
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log(Chunk.toArray(chunks)))
1364
+ * // [
1365
+ * // {
1366
+ * // _id: 'Chunk',
1367
+ * // values: [
1368
+ * // 0, 1, 2, 3, 4, 5, 6,
1369
+ * // 7, 8, 9, 0, 1, 2, 3,
1370
+ * // 4, 5, 6, 7
1371
+ * // ]
1372
+ * // },
1373
+ * // {
1374
+ * // _id: 'Chunk',
1375
+ * // values: [
1376
+ * // 8, 9, 0, 1, 2,
1377
+ * // 3, 4, 5, 6, 7,
1378
+ * // 8, 9
1379
+ * // ]
1380
+ * // },
1381
+ * // {
1382
+ * // _id: 'Chunk',
1383
+ * // values: [
1384
+ * // 0, 1, 2, 3, 4, 5, 6,
1385
+ * // 7, 8, 9, 0, 1, 2, 3,
1386
+ * // 4, 5, 6, 7
1387
+ * // ]
1388
+ * // }
1389
+ * // ]
1390
+ *
951
1391
  * @since 2.0.0
952
1392
  * @category utils
953
1393
  */
@@ -999,6 +1439,16 @@ const identity = exports.identity = internal.identityStream;
999
1439
  * one stream is exhausted all remaining values in the other stream will be
1000
1440
  * pulled.
1001
1441
  *
1442
+ * @example
1443
+ * import { Effect, Stream } from "effect"
1444
+ *
1445
+ * const s1 = Stream.make(1, 2, 3)
1446
+ * const s2 = Stream.make(4, 5, 6)
1447
+ *
1448
+ * const stream = Stream.interleave(s1, s2)
1449
+ *
1450
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1451
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 5, 3, 6 ] }
1002
1452
  * @since 2.0.0
1003
1453
  * @category utils
1004
1454
  */
@@ -1012,6 +1462,25 @@ const interleave = exports.interleave = internal.interleave;
1012
1462
  * stream are exhausted further requests for values from that stream will be
1013
1463
  * ignored.
1014
1464
  *
1465
+ * @example
1466
+ * import { Effect, Stream } from "effect"
1467
+ *
1468
+ * const s1 = Stream.make(1, 3, 5, 7, 9)
1469
+ * const s2 = Stream.make(2, 4, 6, 8, 10)
1470
+ *
1471
+ * const booleanStream = Stream.make(true, false, false).pipe(Stream.forever)
1472
+ *
1473
+ * const stream = Stream.interleaveWith(s1, s2, booleanStream)
1474
+ *
1475
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1476
+ * // {
1477
+ * // _id: 'Chunk',
1478
+ * // values: [
1479
+ * // 1, 2, 4, 3, 6,
1480
+ * // 8, 5, 10, 7, 9
1481
+ * // ]
1482
+ * // }
1483
+ *
1015
1484
  * @since 2.0.0
1016
1485
  * @category utils
1017
1486
  */
@@ -1019,6 +1488,20 @@ const interleaveWith = exports.interleaveWith = internal.interleaveWith;
1019
1488
  /**
1020
1489
  * Intersperse stream with provided `element`.
1021
1490
  *
1491
+ * @example
1492
+ * import { Effect, Stream } from "effect"
1493
+ *
1494
+ * const stream = Stream.make(1, 2, 3, 4, 5).pipe(Stream.intersperse(0))
1495
+ *
1496
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1497
+ * // {
1498
+ * // _id: 'Chunk',
1499
+ * // values: [
1500
+ * // 1, 0, 2, 0, 3,
1501
+ * // 0, 4, 0, 5
1502
+ * // ]
1503
+ * // }
1504
+ *
1022
1505
  * @since 2.0.0
1023
1506
  * @category utils
1024
1507
  */
@@ -1026,6 +1509,27 @@ const intersperse = exports.intersperse = internal.intersperse;
1026
1509
  /**
1027
1510
  * Intersperse the specified element, also adding a prefix and a suffix.
1028
1511
  *
1512
+ * @example
1513
+ * import { Effect, Stream } from "effect"
1514
+ *
1515
+ * const stream = Stream.make(1, 2, 3, 4, 5).pipe(
1516
+ * Stream.intersperseAffixes({
1517
+ * start: "[",
1518
+ * middle: "-",
1519
+ * end: "]"
1520
+ * })
1521
+ * )
1522
+ *
1523
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1524
+ * // {
1525
+ * // _id: 'Chunk',
1526
+ * // values: [
1527
+ * // '[', 1, '-', 2, '-',
1528
+ * // 3, '-', 4, '-', 5,
1529
+ * // ']'
1530
+ * // ]
1531
+ * // }
1532
+ *
1029
1533
  * @since 2.0.0
1030
1534
  * @category utils
1031
1535
  */
@@ -1066,6 +1570,15 @@ const interruptWhenDeferred = exports.interruptWhenDeferred = internal.interrupt
1066
1570
  * The infinite stream of iterative function application: a, f(a), f(f(a)),
1067
1571
  * f(f(f(a))), ...
1068
1572
  *
1573
+ * @example
1574
+ * import { Effect, Stream } from "effect"
1575
+ *
1576
+ * // An infinite Stream of numbers starting from 1 and incrementing
1577
+ * const stream = Stream.iterate(1, (n) => n + 1)
1578
+ *
1579
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(10)))).then(console.log)
1580
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] }
1581
+ *
1069
1582
  * @since 2.0.0
1070
1583
  * @category constructors
1071
1584
  */
@@ -1073,6 +1586,14 @@ const iterate = exports.iterate = internal.iterate;
1073
1586
  /**
1074
1587
  * Creates a stream from an sequence of values.
1075
1588
  *
1589
+ * @example
1590
+ * import { Effect, Stream } from "effect"
1591
+ *
1592
+ * const stream = Stream.make(1, 2, 3)
1593
+ *
1594
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1595
+ * // { _id: 'Chunk', values: [ 1, 2, 3 ] }
1596
+ *
1076
1597
  * @since 2.0.0
1077
1598
  * @category constructors
1078
1599
  */
@@ -1080,6 +1601,14 @@ const make = exports.make = internal.make;
1080
1601
  /**
1081
1602
  * Transforms the elements of this stream using the supplied function.
1082
1603
  *
1604
+ * @example
1605
+ * import { Effect, Stream } from "effect"
1606
+ *
1607
+ * const stream = Stream.make(1, 2, 3).pipe(Stream.map((n) => n + 1))
1608
+ *
1609
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1610
+ * // { _id: 'Chunk', values: [ 2, 3, 4 ] }
1611
+ *
1083
1612
  * @since 2.0.0
1084
1613
  * @category mapping
1085
1614
  */
@@ -1087,6 +1616,18 @@ const map = exports.map = internal.map;
1087
1616
  /**
1088
1617
  * Statefully maps over the elements of this stream to produce new elements.
1089
1618
  *
1619
+ * @example
1620
+ * import { Effect, Stream } from "effect"
1621
+ *
1622
+ * const runningTotal = (stream: Stream.Stream<number>): Stream.Stream<number> =>
1623
+ * stream.pipe(Stream.mapAccum(0, (s, a) => [s + a, s + a]))
1624
+ *
1625
+ * // input: 0, 1, 2, 3, 4, 5, 6
1626
+ * // Effect.runPromise(Stream.runCollect(runningTotal(Stream.range(0, 6)))).then(
1627
+ * // console.log
1628
+ * // )
1629
+ * // { _id: "Chunk", values: [ 0, 1, 3, 6, 10, 15, 21 ] }
1630
+ *
1090
1631
  * @since 2.0.0
1091
1632
  * @category mapping
1092
1633
  */
@@ -1125,6 +1666,17 @@ const mapChunksEffect = exports.mapChunksEffect = internal.mapChunksEffect;
1125
1666
  * Maps each element to an iterable, and flattens the iterables into the
1126
1667
  * output of this stream.
1127
1668
  *
1669
+ * @example
1670
+ * import { Effect, Stream } from "effect"
1671
+ *
1672
+ * const numbers = Stream.make("1-2-3", "4-5", "6").pipe(
1673
+ * Stream.mapConcat((s) => s.split("-")),
1674
+ * Stream.map((s) => parseInt(s))
1675
+ * )
1676
+ *
1677
+ * // Effect.runPromise(Stream.runCollect(numbers)).then(console.log)
1678
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
1679
+ *
1128
1680
  * @since 2.0.0
1129
1681
  * @category mapping
1130
1682
  */
@@ -1156,6 +1708,16 @@ const mapConcatEffect = exports.mapConcatEffect = internal.mapConcatEffect;
1156
1708
  /**
1157
1709
  * Maps over elements of the stream with the specified effectful function.
1158
1710
  *
1711
+ * @example
1712
+ * import { Effect, Random, Stream } from "effect"
1713
+ *
1714
+ * const stream = Stream.make(10, 20, 30).pipe(
1715
+ * Stream.mapEffect((n) => Random.nextIntBetween(0, n))
1716
+ * )
1717
+ *
1718
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1719
+ * // Example Output: { _id: 'Chunk', values: [ 7, 19, 8 ] }
1720
+ *
1159
1721
  * @since 2.0.0
1160
1722
  * @category mapping
1161
1723
  */
@@ -1180,6 +1742,21 @@ const mapErrorCause = exports.mapErrorCause = internal.mapErrorCause;
1180
1742
  * New produced stream will terminate when both specified stream terminate if
1181
1743
  * no termination strategy is specified.
1182
1744
  *
1745
+ * @example
1746
+ * import { Effect, Schedule, Stream } from "effect"
1747
+ *
1748
+ * const s1 = Stream.make(1, 2, 3).pipe(
1749
+ * Stream.schedule(Schedule.spaced("100 millis"))
1750
+ * )
1751
+ * const s2 = Stream.make(4, 5, 6).pipe(
1752
+ * Stream.schedule(Schedule.spaced("200 millis"))
1753
+ * )
1754
+ *
1755
+ * const stream = Stream.merge(s1, s2)
1756
+ *
1757
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1758
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
1759
+ *
1183
1760
  * @since 2.0.0
1184
1761
  * @category utils
1185
1762
  */
@@ -1200,6 +1777,24 @@ const mergeAll = exports.mergeAll = internal.mergeAll;
1200
1777
  * New produced stream will terminate when both specified stream terminate if
1201
1778
  * no termination strategy is specified.
1202
1779
  *
1780
+ * @example
1781
+ * import { Effect, Schedule, Stream } from "effect"
1782
+ *
1783
+ * const s1 = Stream.make("1", "2", "3").pipe(
1784
+ * Stream.schedule(Schedule.spaced("100 millis"))
1785
+ * )
1786
+ * const s2 = Stream.make(4.1, 5.3, 6.2).pipe(
1787
+ * Stream.schedule(Schedule.spaced("200 millis"))
1788
+ * )
1789
+ *
1790
+ * const stream = Stream.mergeWith(s1, s2, {
1791
+ * onSelf: (s) => parseInt(s),
1792
+ * onOther: (n) => Math.floor(n)
1793
+ * })
1794
+ *
1795
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1796
+ * // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
1797
+ *
1203
1798
  * @since 2.0.0
1204
1799
  * @category utils
1205
1800
  */
@@ -1337,6 +1932,17 @@ const orElseSucceed = exports.orElseSucceed = internal.orElseSucceed;
1337
1932
  * than the unfolding of the state. This is useful for embedding paginated
1338
1933
  * APIs, hence the name.
1339
1934
  *
1935
+ * @example
1936
+ * import { Effect, Option, Stream } from "effect"
1937
+ *
1938
+ * const stream = Stream.paginate(0, (n) => [
1939
+ * n,
1940
+ * n < 3 ? Option.some(n + 1) : Option.none()
1941
+ * ])
1942
+ *
1943
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
1944
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3 ] }
1945
+ *
1340
1946
  * @since 2.0.0
1341
1947
  * @category constructors
1342
1948
  */
@@ -1374,6 +1980,25 @@ const paginateEffect = exports.paginateEffect = internal.paginateEffect;
1374
1980
  * evaluated to false. The faster stream may advance by up to buffer elements
1375
1981
  * further than the slower one.
1376
1982
  *
1983
+ * @example
1984
+ * import { Effect, Stream } from "effect"
1985
+ *
1986
+ * const partition = Stream.range(1, 10).pipe(
1987
+ * Stream.partition((n) => n % 2 === 0, { bufferSize: 5 })
1988
+ * )
1989
+ *
1990
+ * const program = Effect.scoped(
1991
+ * Effect.gen(function*() {
1992
+ * const [evens, odds] = yield* partition
1993
+ * console.log(yield* Stream.runCollect(evens))
1994
+ * console.log(yield* Stream.runCollect(odds))
1995
+ * })
1996
+ * )
1997
+ *
1998
+ * // Effect.runPromise(program)
1999
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
2000
+ * // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
2001
+ *
1377
2002
  * @since 2.0.0
1378
2003
  * @category utils
1379
2004
  */
@@ -1382,6 +2007,28 @@ const partition = exports.partition = internal.partition;
1382
2007
  * Split a stream by an effectful predicate. The faster stream may advance by
1383
2008
  * up to buffer elements further than the slower one.
1384
2009
  *
2010
+ * @example
2011
+ * import { Effect, Either, Stream } from "effect"
2012
+ *
2013
+ * const partition = Stream.range(1, 9).pipe(
2014
+ * Stream.partitionEither(
2015
+ * (n) => Effect.succeed(n % 2 === 0 ? Either.left(n) : Either.right(n)),
2016
+ * { bufferSize: 5 }
2017
+ * )
2018
+ * )
2019
+ *
2020
+ * const program = Effect.scoped(
2021
+ * Effect.gen(function*() {
2022
+ * const [evens, odds] = yield* partition
2023
+ * console.log(yield* Stream.runCollect(evens))
2024
+ * console.log(yield* Stream.runCollect(odds))
2025
+ * })
2026
+ * )
2027
+ *
2028
+ * // Effect.runPromise(program)
2029
+ * // { _id: 'Chunk', values: [ 2, 4, 6, 8 ] }
2030
+ * // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
2031
+ *
1385
2032
  * @since 2.0.0
1386
2033
  * @category utils
1387
2034
  */
@@ -1482,9 +2129,45 @@ const mapInputContext = exports.mapInputContext = internal.mapInputContext;
1482
2129
  * @category context
1483
2130
  */
1484
2131
  const provideSomeLayer = exports.provideSomeLayer = internal.provideSomeLayer;
2132
+ /**
2133
+ * Returns a stream that mirrors the first upstream to emit an item.
2134
+ * As soon as one of the upstream emits a first value, all the others are interrupted.
2135
+ * The resulting stream will forward all items from the "winning" source stream.
2136
+ * Any upstream failures will cause the returned stream to fail.
2137
+ *
2138
+ * @example
2139
+ * import { Stream, Schedule, Console, Effect } from "effect"
2140
+ *
2141
+ * const stream = Stream.raceAll(
2142
+ * Stream.fromSchedule(Schedule.spaced('1 millis')),
2143
+ * Stream.fromSchedule(Schedule.spaced('2 millis')),
2144
+ * Stream.fromSchedule(Schedule.spaced('4 millis')),
2145
+ * ).pipe(Stream.take(6), Stream.tap(Console.log))
2146
+ *
2147
+ * Effect.runPromise(Stream.runDrain(stream))
2148
+ * // Output each millisecond from the first stream, the rest streams are interrupted
2149
+ * // 0
2150
+ * // 1
2151
+ * // 2
2152
+ * // 3
2153
+ * // 4
2154
+ * // 5
2155
+ * @since 3.5.0
2156
+ * @category racing
2157
+ */
2158
+ const raceAll = exports.raceAll = internal.raceAll;
1485
2159
  /**
1486
2160
  * Constructs a stream from a range of integers, including both endpoints.
1487
2161
  *
2162
+ * @example
2163
+ * import { Effect, Stream } from "effect"
2164
+ *
2165
+ * // A Stream with a range of numbers from 1 to 5
2166
+ * const stream = Stream.range(1, 5)
2167
+ *
2168
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2169
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
2170
+ *
1488
2171
  * @since 2.0.0
1489
2172
  * @category constructors
1490
2173
  */
@@ -1516,6 +2199,14 @@ const refineOrDieWith = exports.refineOrDieWith = internal.refineOrDieWith;
1516
2199
  * Repeats the entire stream using the specified schedule. The stream will
1517
2200
  * execute normally, and then repeat again according to the provided schedule.
1518
2201
  *
2202
+ * @example
2203
+ * import { Effect, Schedule, Stream } from "effect"
2204
+ *
2205
+ * const stream = Stream.repeat(Stream.succeed(1), Schedule.forever)
2206
+ *
2207
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2208
+ * // { _id: 'Chunk', values: [ 1, 1, 1, 1, 1 ] }
2209
+ *
1519
2210
  * @since 2.0.0
1520
2211
  * @category utils
1521
2212
  */
@@ -1524,6 +2215,14 @@ const repeat = exports.repeat = internal.repeat;
1524
2215
  * Creates a stream from an effect producing a value of type `A` which repeats
1525
2216
  * forever.
1526
2217
  *
2218
+ * @example
2219
+ * import { Effect, Random, Stream } from "effect"
2220
+ *
2221
+ * const stream = Stream.repeatEffect(Random.nextInt)
2222
+ *
2223
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2224
+ * // Example Output: { _id: 'Chunk', values: [ 3891571149, 4239494205, 2352981603, 2339111046, 1488052210 ] }
2225
+ *
1527
2226
  * @since 2.0.0
1528
2227
  * @category constructors
1529
2228
  */
@@ -1548,6 +2247,22 @@ const repeatEffectChunkOption = exports.repeatEffectChunkOption = internal.repea
1548
2247
  * Creates a stream from an effect producing values of type `A` until it fails
1549
2248
  * with `None`.
1550
2249
  *
2250
+ * @example
2251
+ * // In this example, we're draining an Iterator to create a stream from it
2252
+ * import { Stream, Effect, Option } from "effect"
2253
+ *
2254
+ * const drainIterator = <A>(it: Iterator<A>): Stream.Stream<A> =>
2255
+ * Stream.repeatEffectOption(
2256
+ * Effect.sync(() => it.next()).pipe(
2257
+ * Effect.andThen((res) => {
2258
+ * if (res.done) {
2259
+ * return Effect.fail(Option.none())
2260
+ * }
2261
+ * return Effect.succeed(res.value)
2262
+ * })
2263
+ * )
2264
+ * )
2265
+ *
1551
2266
  * @since 2.0.0
1552
2267
  * @category constructors
1553
2268
  */
@@ -1599,6 +2314,14 @@ const repeatElementsWith = exports.repeatElementsWith = internal.repeatElementsW
1599
2314
  /**
1600
2315
  * Repeats the provided value infinitely.
1601
2316
  *
2317
+ * @example
2318
+ * import { Effect, Stream } from "effect"
2319
+ *
2320
+ * const stream = Stream.repeatValue(0)
2321
+ *
2322
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2323
+ * // { _id: 'Chunk', values: [ 0, 0, 0, 0, 0 ] }
2324
+ *
1602
2325
  * @since 2.0.0
1603
2326
  * @category constructors
1604
2327
  */
@@ -1840,6 +2563,14 @@ const runSum = exports.runSum = internal.runSum;
1840
2563
  * Statefully maps over the elements of this stream to produce all
1841
2564
  * intermediate results of type `S` given an initial S.
1842
2565
  *
2566
+ * @example
2567
+ * import { Effect, Stream } from "effect"
2568
+ *
2569
+ * const stream = Stream.range(1, 6).pipe(Stream.scan(0, (a, b) => a + b))
2570
+ *
2571
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2572
+ * // { _id: 'Chunk', values: [ 0, 1, 3, 6, 10, 15, 21 ] }
2573
+ *
1843
2574
  * @since 2.0.0
1844
2575
  * @category utils
1845
2576
  */
@@ -1891,6 +2622,24 @@ const scheduleWith = exports.scheduleWith = internal.scheduleWith;
1891
2622
  /**
1892
2623
  * Creates a single-valued stream from a scoped resource.
1893
2624
  *
2625
+ * @example
2626
+ * import { Console, Effect, Stream } from "effect"
2627
+ *
2628
+ * // Creating a single-valued stream from a scoped resource
2629
+ * const stream = Stream.scoped(
2630
+ * Effect.acquireUseRelease(
2631
+ * Console.log("acquire"),
2632
+ * () => Console.log("use"),
2633
+ * () => Console.log("release")
2634
+ * )
2635
+ * )
2636
+ *
2637
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2638
+ * // acquire
2639
+ * // use
2640
+ * // release
2641
+ * // { _id: 'Chunk', values: [ undefined ] }
2642
+ *
1894
2643
  * @since 2.0.0
1895
2644
  * @category constructors
1896
2645
  */
@@ -1979,6 +2728,15 @@ const splitLines = exports.splitLines = internal.splitLines;
1979
2728
  /**
1980
2729
  * Creates a single-valued pure stream.
1981
2730
  *
2731
+ * @example
2732
+ * import { Effect, Stream } from "effect"
2733
+ *
2734
+ * // A Stream with a single number
2735
+ * const stream = Stream.succeed(3)
2736
+ *
2737
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2738
+ * // { _id: 'Chunk', values: [ 3 ] }
2739
+ *
1982
2740
  * @since 2.0.0
1983
2741
  * @category constructors
1984
2742
  */
@@ -2000,6 +2758,14 @@ const suspend = exports.suspend = internal.suspend;
2000
2758
  /**
2001
2759
  * Takes the specified number of elements from this stream.
2002
2760
  *
2761
+ * @example
2762
+ * import { Effect, Stream } from "effect"
2763
+ *
2764
+ * const stream = Stream.take(Stream.iterate(0, (n) => n + 1), 5)
2765
+ *
2766
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2767
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2768
+ *
2003
2769
  * @since 2.0.0
2004
2770
  * @category utils
2005
2771
  */
@@ -2007,6 +2773,14 @@ const take = exports.take = internal.take;
2007
2773
  /**
2008
2774
  * Takes the last specified number of elements from this stream.
2009
2775
  *
2776
+ * @example
2777
+ * import { Effect, Stream } from "effect"
2778
+ *
2779
+ * const stream = Stream.takeRight(Stream.make(1, 2, 3, 4, 5, 6), 3)
2780
+ *
2781
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2782
+ * // { _id: 'Chunk', values: [ 4, 5, 6 ] }
2783
+ *
2010
2784
  * @since 2.0.0
2011
2785
  * @category utils
2012
2786
  */
@@ -2015,6 +2789,14 @@ const takeRight = exports.takeRight = internal.takeRight;
2015
2789
  * Takes all elements of the stream until the specified predicate evaluates to
2016
2790
  * `true`.
2017
2791
  *
2792
+ * @example
2793
+ * import { Effect, Stream } from "effect"
2794
+ *
2795
+ * const stream = Stream.takeUntil(Stream.iterate(0, (n) => n + 1), (n) => n === 4)
2796
+ *
2797
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2798
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2799
+ *
2018
2800
  * @since 2.0.0
2019
2801
  * @category utils
2020
2802
  */
@@ -2031,6 +2813,14 @@ const takeUntilEffect = exports.takeUntilEffect = internal.takeUntilEffect;
2031
2813
  * Takes all elements of the stream for as long as the specified predicate
2032
2814
  * evaluates to `true`.
2033
2815
  *
2816
+ * @example
2817
+ * import { Effect, Stream } from "effect"
2818
+ *
2819
+ * const stream = Stream.takeWhile(Stream.iterate(0, (n) => n + 1), (n) => n < 5)
2820
+ *
2821
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2822
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2823
+ *
2034
2824
  * @since 2.0.0
2035
2825
  * @category utils
2036
2826
  */
@@ -2038,6 +2828,24 @@ const takeWhile = exports.takeWhile = internal.takeWhile;
2038
2828
  /**
2039
2829
  * Adds an effect to consumption of every element of the stream.
2040
2830
  *
2831
+ * @example
2832
+ * import { Console, Effect, Stream } from "effect"
2833
+ *
2834
+ * const stream = Stream.make(1, 2, 3).pipe(
2835
+ * Stream.tap((n) => Console.log(`before mapping: ${n}`)),
2836
+ * Stream.map((n) => n * 2),
2837
+ * Stream.tap((n) => Console.log(`after mapping: ${n}`))
2838
+ * )
2839
+ *
2840
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2841
+ * // before mapping: 1
2842
+ * // after mapping: 2
2843
+ * // before mapping: 2
2844
+ * // after mapping: 4
2845
+ * // before mapping: 3
2846
+ * // after mapping: 6
2847
+ * // { _id: 'Chunk', values: [ 2, 4, 6 ] }
2848
+ *
2041
2849
  * @since 2.0.0
2042
2850
  * @category sequencing
2043
2851
  */
@@ -2078,7 +2886,7 @@ const tapSink = exports.tapSink = internal.tapSink;
2078
2886
  * parameters using the token bucket algorithm. Allows for burst in the
2079
2887
  * processing of elements by allowing the token bucket to accumulate tokens up
2080
2888
  * to a `units + burst` threshold. The weight of each chunk is determined by
2081
- * the `costFn` function.
2889
+ * the `cost` function.
2082
2890
  *
2083
2891
  * If using the "enforce" strategy, chunks that do not meet the bandwidth
2084
2892
  * constraints are dropped. If using the "shape" strategy, chunks are delayed
@@ -2086,6 +2894,43 @@ const tapSink = exports.tapSink = internal.tapSink;
2086
2894
  *
2087
2895
  * Defaults to the "shape" strategy.
2088
2896
  *
2897
+ * @example
2898
+ * import { Chunk, Effect, Schedule, Stream } from "effect"
2899
+ *
2900
+ * let last = Date.now()
2901
+ * const log = (message: string) =>
2902
+ * Effect.sync(() => {
2903
+ * const end = Date.now()
2904
+ * console.log(`${message} after ${end - last}ms`)
2905
+ * last = end
2906
+ * })
2907
+ *
2908
+ * const stream = Stream.fromSchedule(Schedule.spaced("50 millis")).pipe(
2909
+ * Stream.take(6),
2910
+ * Stream.tap((n) => log(`Received ${n}`)),
2911
+ * Stream.throttle({
2912
+ * cost: Chunk.size,
2913
+ * duration: "100 millis",
2914
+ * units: 1
2915
+ * }),
2916
+ * Stream.tap((n) => log(`> Emitted ${n}`))
2917
+ * )
2918
+ *
2919
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2920
+ * // Received 0 after 56ms
2921
+ * // > Emitted 0 after 0ms
2922
+ * // Received 1 after 52ms
2923
+ * // > Emitted 1 after 48ms
2924
+ * // Received 2 after 52ms
2925
+ * // > Emitted 2 after 49ms
2926
+ * // Received 3 after 52ms
2927
+ * // > Emitted 3 after 48ms
2928
+ * // Received 4 after 52ms
2929
+ * // > Emitted 4 after 47ms
2930
+ * // Received 5 after 52ms
2931
+ * // > Emitted 5 after 49ms
2932
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4, 5 ] }
2933
+ *
2089
2934
  * @since 2.0.0
2090
2935
  * @category utils
2091
2936
  */
@@ -2110,6 +2955,27 @@ const throttleEffect = exports.throttleEffect = internal.throttleEffect;
2110
2955
  /**
2111
2956
  * A stream that emits void values spaced by the specified duration.
2112
2957
  *
2958
+ * @example
2959
+ * import { Effect, Stream } from "effect"
2960
+ *
2961
+ * let last = Date.now()
2962
+ * const log = (message: string) =>
2963
+ * Effect.sync(() => {
2964
+ * const end = Date.now()
2965
+ * console.log(`${message} after ${end - last}ms`)
2966
+ * last = end
2967
+ * })
2968
+ *
2969
+ * const stream = Stream.tick("1 seconds").pipe(Stream.tap(() => log("tick")))
2970
+ *
2971
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2972
+ * // tick after 4ms
2973
+ * // tick after 1003ms
2974
+ * // tick after 1001ms
2975
+ * // tick after 1002ms
2976
+ * // tick after 1002ms
2977
+ * // { _id: 'Chunk', values: [ undefined, undefined, undefined, undefined, undefined ] }
2978
+ *
2113
2979
  * @since 2.0.0
2114
2980
  * @category constructors
2115
2981
  */
@@ -2159,6 +3025,32 @@ const toPubSub = exports.toPubSub = internal.toPubSub;
2159
3025
  * finished, or with Some error if it fails, otherwise it returns a chunk of
2160
3026
  * the stream's output.
2161
3027
  *
3028
+ * @example
3029
+ * import { Effect, Stream } from "effect"
3030
+ *
3031
+ * // Simulate a chunked stream
3032
+ * const stream = Stream.fromIterable([1, 2, 3, 4, 5]).pipe(Stream.rechunk(2))
3033
+ *
3034
+ * const program = Effect.gen(function*() {
3035
+ * // Create an effect to get data chunks from the stream
3036
+ * const getChunk = yield* Stream.toPull(stream)
3037
+ *
3038
+ * // Continuously fetch and process chunks
3039
+ * while (true) {
3040
+ * const chunk = yield* getChunk
3041
+ * console.log(chunk)
3042
+ * }
3043
+ * })
3044
+ *
3045
+ * // Effect.runPromise(Effect.scoped(program)).then(console.log, console.error)
3046
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
3047
+ * // { _id: 'Chunk', values: [ 3, 4 ] }
3048
+ * // { _id: 'Chunk', values: [ 5 ] }
3049
+ * // (FiberFailure) Error: {
3050
+ * // "_id": "Option",
3051
+ * // "_tag": "None"
3052
+ * // }
3053
+ *
2162
3054
  * @since 2.0.0
2163
3055
  * @category destructors
2164
3056
  */
@@ -2220,6 +3112,14 @@ const transduce = exports.transduce = internal.transduce;
2220
3112
  /**
2221
3113
  * Creates a stream by peeling off the "layers" of a value of type `S`.
2222
3114
  *
3115
+ * @example
3116
+ * import { Effect, Option, Stream } from "effect"
3117
+ *
3118
+ * const stream = Stream.unfold(1, (n) => Option.some([n, n + 1]))
3119
+ *
3120
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
3121
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
3122
+ *
2223
3123
  * @since 2.0.0
2224
3124
  * @category constructors
2225
3125
  */
@@ -2243,6 +3143,17 @@ const unfoldChunkEffect = exports.unfoldChunkEffect = internal.unfoldChunkEffect
2243
3143
  * Creates a stream by effectfully peeling off the "layers" of a value of type
2244
3144
  * `S`.
2245
3145
  *
3146
+ * @example
3147
+ * import { Effect, Option, Random, Stream } from "effect"
3148
+ *
3149
+ * const stream = Stream.unfoldEffect(1, (n) =>
3150
+ * Random.nextBoolean.pipe(
3151
+ * Effect.map((b) => (b ? Option.some([n, -n]) : Option.some([n, n])))
3152
+ * ))
3153
+ *
3154
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
3155
+ * // { _id: 'Chunk', values: [ 1, -1, -1, -1, -1 ] }
3156
+ *
2246
3157
  * @since 2.0.0
2247
3158
  * @category constructors
2248
3159
  */
@@ -2314,6 +3225,18 @@ const withSpan = exports.withSpan = internal.withSpan;
2314
3225
  *
2315
3226
  * The new stream will end when one of the sides ends.
2316
3227
  *
3228
+ * @example
3229
+ * import { Effect, Stream } from "effect"
3230
+ *
3231
+ * // We create two streams and zip them together.
3232
+ * const stream = Stream.zip(
3233
+ * Stream.make(1, 2, 3, 4, 5, 6),
3234
+ * Stream.make("a", "b", "c")
3235
+ * )
3236
+ *
3237
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3238
+ * // { _id: 'Chunk', values: [ [ 1, 'a' ], [ 2, 'b' ], [ 3, 'c' ] ] }
3239
+ *
2317
3240
  * @since 2.0.0
2318
3241
  * @category zipping
2319
3242
  */
@@ -2335,6 +3258,18 @@ const zipFlatten = exports.zipFlatten = internal.zipFlatten;
2335
3258
  * The defaults `defaultLeft` and `defaultRight` will be used if the streams
2336
3259
  * have different lengths and one of the streams has ended before the other.
2337
3260
  *
3261
+ * @example
3262
+ * import { Effect, Stream } from "effect"
3263
+ *
3264
+ * const stream = Stream.zipAll(Stream.make(1, 2, 3, 4, 5, 6), {
3265
+ * other: Stream.make("a", "b", "c"),
3266
+ * defaultSelf: 0,
3267
+ * defaultOther: "x"
3268
+ * })
3269
+ *
3270
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3271
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
3272
+ *
2338
3273
  * @since 2.0.0
2339
3274
  * @category zipping
2340
3275
  */
@@ -2426,6 +3361,19 @@ const zipAllSortedByKeyWith = exports.zipAllSortedByKeyWith = internal.zipAllSor
2426
3361
  * The functions `left` and `right` will be used if the streams have different
2427
3362
  * lengths and one of the streams has ended before the other.
2428
3363
  *
3364
+ * @example
3365
+ * import { Effect, Stream } from "effect"
3366
+ *
3367
+ * const stream = Stream.zipAllWith(Stream.make(1, 2, 3, 4, 5, 6), {
3368
+ * other: Stream.make("a", "b", "c"),
3369
+ * onSelf: (n) => [n, "x"],
3370
+ * onOther: (s) => [0, s],
3371
+ * onBoth: (n, s) => [n - s.length, s]
3372
+ * })
3373
+ *
3374
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3375
+ * // { _id: "Chunk", values: [ [ 0, "a" ], [ 1, "b" ], [ 2, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
3376
+ *
2429
3377
  * @since 2.0.0
2430
3378
  * @category zipping
2431
3379
  */
@@ -2439,6 +3387,22 @@ const zipAllWith = exports.zipAllWith = internal.zipAllWith;
2439
3387
  * that emitted elements that are not the last value in chunks will never be
2440
3388
  * used for zipping.
2441
3389
  *
3390
+ * @example
3391
+ * import { Effect, Schedule, Stream } from "effect"
3392
+ *
3393
+ * const s1 = Stream.make(1, 2, 3).pipe(
3394
+ * Stream.schedule(Schedule.spaced("1 second"))
3395
+ * )
3396
+ *
3397
+ * const s2 = Stream.make("a", "b", "c", "d").pipe(
3398
+ * Stream.schedule(Schedule.spaced("500 millis"))
3399
+ * )
3400
+ *
3401
+ * const stream = Stream.zipLatest(s1, s2)
3402
+ *
3403
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3404
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 1, "b" ], [ 2, "b" ], [ 2, "c" ], [ 2, "d" ], [ 3, "d" ] ] }
3405
+ *
2442
3406
  * @since 2.0.0
2443
3407
  * @category zipping
2444
3408
  */
@@ -2460,7 +3424,7 @@ const zipLatest = exports.zipLatest = internal.zipLatest;
2460
3424
  * Stream.fromSchedule(Schedule.spaced('4 millis')),
2461
3425
  * ).pipe(Stream.take(6), Stream.tap(Console.log))
2462
3426
  *
2463
- * Effect.runPromise(Stream.runDrain(stream))
3427
+ * // Effect.runPromise(Stream.runDrain(stream))
2464
3428
  * // Output:
2465
3429
  * // [ 0, 0, 0 ]
2466
3430
  * // [ 1, 0, 0 ]
@@ -2513,6 +3477,19 @@ const zipRight = exports.zipRight = internal.zipRight;
2513
3477
  *
2514
3478
  * The new stream will end when one of the sides ends.
2515
3479
  *
3480
+ * @example
3481
+ * import { Effect, Stream } from "effect"
3482
+ *
3483
+ * // We create two streams and zip them with custom logic.
3484
+ * const stream = Stream.zipWith(
3485
+ * Stream.make(1, 2, 3, 4, 5, 6),
3486
+ * Stream.make("a", "b", "c"),
3487
+ * (n, s) => [n - s.length, s]
3488
+ * )
3489
+ *
3490
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3491
+ * // { _id: 'Chunk', values: [ [ 0, 'a' ], [ 1, 'b' ], [ 2, 'c' ] ] }
3492
+ *
2516
3493
  * @since 2.0.0
2517
3494
  * @category zipping
2518
3495
  */
@@ -2530,6 +3507,19 @@ const zipWithChunks = exports.zipWithChunks = internal.zipWithChunks;
2530
3507
  /**
2531
3508
  * Zips each element with the next element if present.
2532
3509
  *
3510
+ * @example
3511
+ * import { Chunk, Effect, Stream } from "effect"
3512
+ *
3513
+ * const stream = Stream.zipWithNext(Stream.make(1, 2, 3, 4))
3514
+ *
3515
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3516
+ * // [
3517
+ * // [ 1, { _id: 'Option', _tag: 'Some', value: 2 } ],
3518
+ * // [ 2, { _id: 'Option', _tag: 'Some', value: 3 } ],
3519
+ * // [ 3, { _id: 'Option', _tag: 'Some', value: 4 } ],
3520
+ * // [ 4, { _id: 'Option', _tag: 'None' } ]
3521
+ * // ]
3522
+ *
2533
3523
  * @since 2.0.0
2534
3524
  * @category zipping
2535
3525
  */
@@ -2538,6 +3528,19 @@ const zipWithNext = exports.zipWithNext = internal.zipWithNext;
2538
3528
  * Zips each element with the previous element. Initially accompanied by
2539
3529
  * `None`.
2540
3530
  *
3531
+ * @example
3532
+ * import { Chunk, Effect, Stream } from "effect"
3533
+ *
3534
+ * const stream = Stream.zipWithPrevious(Stream.make(1, 2, 3, 4))
3535
+ *
3536
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3537
+ * // [
3538
+ * // [ { _id: 'Option', _tag: 'None' }, 1 ],
3539
+ * // [ { _id: 'Option', _tag: 'Some', value: 1 }, 2 ],
3540
+ * // [ { _id: 'Option', _tag: 'Some', value: 2 }, 3 ],
3541
+ * // [ { _id: 'Option', _tag: 'Some', value: 3 }, 4 ]
3542
+ * // ]
3543
+ *
2541
3544
  * @since 2.0.0
2542
3545
  * @category zipping
2543
3546
  */
@@ -2545,6 +3548,35 @@ const zipWithPrevious = exports.zipWithPrevious = internal.zipWithPrevious;
2545
3548
  /**
2546
3549
  * Zips each element with both the previous and next element.
2547
3550
  *
3551
+ * @example
3552
+ * import { Chunk, Effect, Stream } from "effect"
3553
+ *
3554
+ * const stream = Stream.zipWithPreviousAndNext(Stream.make(1, 2, 3, 4))
3555
+ *
3556
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3557
+ * // [
3558
+ * // [
3559
+ * // { _id: 'Option', _tag: 'None' },
3560
+ * // 1,
3561
+ * // { _id: 'Option', _tag: 'Some', value: 2 }
3562
+ * // ],
3563
+ * // [
3564
+ * // { _id: 'Option', _tag: 'Some', value: 1 },
3565
+ * // 2,
3566
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
3567
+ * // ],
3568
+ * // [
3569
+ * // { _id: 'Option', _tag: 'Some', value: 2 },
3570
+ * // 3,
3571
+ * // { _id: 'Option', _tag: 'Some', value: 4 }
3572
+ * // ],
3573
+ * // [
3574
+ * // { _id: 'Option', _tag: 'Some', value: 3 },
3575
+ * // 4,
3576
+ * // { _id: 'Option', _tag: 'None' }
3577
+ * // ]
3578
+ * // ]
3579
+ *
2548
3580
  * @since 2.0.0
2549
3581
  * @category zipping
2550
3582
  */
@@ -2552,6 +3584,19 @@ const zipWithPreviousAndNext = exports.zipWithPreviousAndNext = internal.zipWith
2552
3584
  /**
2553
3585
  * Zips this stream together with the index of elements.
2554
3586
  *
3587
+ * @example
3588
+ * import { Effect, Stream } from "effect"
3589
+ *
3590
+ * const stream = Stream.make("Mary", "James", "Robert", "Patricia")
3591
+ *
3592
+ * const indexedStream = Stream.zipWithIndex(stream)
3593
+ *
3594
+ * // Effect.runPromise(Stream.runCollect(indexedStream)).then(console.log)
3595
+ * // {
3596
+ * // _id: 'Chunk',
3597
+ * // values: [ [ 'Mary', 0 ], [ 'James', 1 ], [ 'Robert', 2 ], [ 'Patricia', 3 ] ]
3598
+ * // }
3599
+ *
2555
3600
  * @since 2.0.0
2556
3601
  * @category zipping
2557
3602
  */