effect 3.4.7 → 3.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/dist/cjs/Array.js +14 -37
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +11 -34
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +7 -30
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +6 -29
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +6 -29
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Cache.js +3 -26
  12. package/dist/cjs/Cache.js.map +1 -1
  13. package/dist/cjs/Cause.js +4 -27
  14. package/dist/cjs/Cause.js.map +1 -1
  15. package/dist/cjs/Channel.js +6 -29
  16. package/dist/cjs/Channel.js.map +1 -1
  17. package/dist/cjs/ChildExecutorDecision.js +3 -26
  18. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  19. package/dist/cjs/Chunk.js +12 -35
  20. package/dist/cjs/Chunk.js.map +1 -1
  21. package/dist/cjs/Clock.js +4 -27
  22. package/dist/cjs/Clock.js.map +1 -1
  23. package/dist/cjs/Config.js +3 -26
  24. package/dist/cjs/Config.js.map +1 -1
  25. package/dist/cjs/ConfigError.js +3 -26
  26. package/dist/cjs/ConfigError.js.map +1 -1
  27. package/dist/cjs/ConfigProvider.js +3 -26
  28. package/dist/cjs/ConfigProvider.js.map +1 -1
  29. package/dist/cjs/ConfigProviderPathPatch.js +3 -26
  30. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  31. package/dist/cjs/Console.js +4 -27
  32. package/dist/cjs/Console.js.map +1 -1
  33. package/dist/cjs/Context.js +3 -26
  34. package/dist/cjs/Context.js.map +1 -1
  35. package/dist/cjs/Cron.js +13 -36
  36. package/dist/cjs/Cron.js.map +1 -1
  37. package/dist/cjs/Data.js +6 -29
  38. package/dist/cjs/Data.js.map +1 -1
  39. package/dist/cjs/DefaultServices.js +3 -26
  40. package/dist/cjs/DefaultServices.js.map +1 -1
  41. package/dist/cjs/Deferred.js +4 -27
  42. package/dist/cjs/Deferred.js.map +1 -1
  43. package/dist/cjs/Differ.js +10 -33
  44. package/dist/cjs/Differ.js.map +1 -1
  45. package/dist/cjs/Duration.js +10 -33
  46. package/dist/cjs/Duration.js.map +1 -1
  47. package/dist/cjs/Effect.js +16 -39
  48. package/dist/cjs/Effect.js.map +1 -1
  49. package/dist/cjs/Effectable.js +3 -26
  50. package/dist/cjs/Effectable.js.map +1 -1
  51. package/dist/cjs/Either.js +8 -31
  52. package/dist/cjs/Either.js.map +1 -1
  53. package/dist/cjs/Encoding.js +7 -30
  54. package/dist/cjs/Encoding.js.map +1 -1
  55. package/dist/cjs/Equal.js +5 -28
  56. package/dist/cjs/Equal.js.map +1 -1
  57. package/dist/cjs/Equivalence.js +1 -1
  58. package/dist/cjs/Equivalence.js.map +1 -1
  59. package/dist/cjs/ExecutionStrategy.js +3 -26
  60. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  61. package/dist/cjs/Exit.js +3 -26
  62. package/dist/cjs/Exit.js.map +1 -1
  63. package/dist/cjs/Fiber.js +6 -29
  64. package/dist/cjs/Fiber.js.map +1 -1
  65. package/dist/cjs/FiberHandle.js +15 -38
  66. package/dist/cjs/FiberHandle.js.map +1 -1
  67. package/dist/cjs/FiberId.js +3 -26
  68. package/dist/cjs/FiberId.js.map +1 -1
  69. package/dist/cjs/FiberMap.js +17 -40
  70. package/dist/cjs/FiberMap.js.map +1 -1
  71. package/dist/cjs/FiberRef.js +6 -29
  72. package/dist/cjs/FiberRef.js.map +1 -1
  73. package/dist/cjs/FiberRefs.js +3 -26
  74. package/dist/cjs/FiberRefs.js.map +1 -1
  75. package/dist/cjs/FiberRefsPatch.js +3 -26
  76. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  77. package/dist/cjs/FiberSet.js +16 -39
  78. package/dist/cjs/FiberSet.js.map +1 -1
  79. package/dist/cjs/FiberStatus.js +3 -26
  80. package/dist/cjs/FiberStatus.js.map +1 -1
  81. package/dist/cjs/GlobalValue.js +3 -26
  82. package/dist/cjs/GlobalValue.js.map +1 -1
  83. package/dist/cjs/GroupBy.js +3 -26
  84. package/dist/cjs/GroupBy.js.map +1 -1
  85. package/dist/cjs/Hash.js +4 -4
  86. package/dist/cjs/Hash.js.map +1 -1
  87. package/dist/cjs/HashMap.js +4 -27
  88. package/dist/cjs/HashMap.js.map +1 -1
  89. package/dist/cjs/HashSet.js +3 -26
  90. package/dist/cjs/HashSet.js.map +1 -1
  91. package/dist/cjs/Inspectable.js +1 -1
  92. package/dist/cjs/Inspectable.js.map +1 -1
  93. package/dist/cjs/Iterable.js +8 -31
  94. package/dist/cjs/Iterable.js.map +1 -1
  95. package/dist/cjs/KeyedPool.js +3 -26
  96. package/dist/cjs/KeyedPool.js.map +1 -1
  97. package/dist/cjs/Layer.js +11 -34
  98. package/dist/cjs/Layer.js.map +1 -1
  99. package/dist/cjs/List.js +13 -36
  100. package/dist/cjs/List.js.map +1 -1
  101. package/dist/cjs/LogLevel.js +6 -29
  102. package/dist/cjs/LogLevel.js.map +1 -1
  103. package/dist/cjs/LogSpan.js +3 -26
  104. package/dist/cjs/LogSpan.js.map +1 -1
  105. package/dist/cjs/Logger.js +6 -29
  106. package/dist/cjs/Logger.js.map +1 -1
  107. package/dist/cjs/ManagedRuntime.js +3 -26
  108. package/dist/cjs/ManagedRuntime.js.map +1 -1
  109. package/dist/cjs/Match.js +4 -27
  110. package/dist/cjs/Match.js.map +1 -1
  111. package/dist/cjs/MergeDecision.js +3 -26
  112. package/dist/cjs/MergeDecision.js.map +1 -1
  113. package/dist/cjs/MergeState.js +3 -26
  114. package/dist/cjs/MergeState.js.map +1 -1
  115. package/dist/cjs/MergeStrategy.js +3 -26
  116. package/dist/cjs/MergeStrategy.js.map +1 -1
  117. package/dist/cjs/Metric.js +4 -27
  118. package/dist/cjs/Metric.js.map +1 -1
  119. package/dist/cjs/MetricBoundaries.js +3 -26
  120. package/dist/cjs/MetricBoundaries.js.map +1 -1
  121. package/dist/cjs/MetricHook.js +3 -26
  122. package/dist/cjs/MetricHook.js.map +1 -1
  123. package/dist/cjs/MetricKey.js +3 -26
  124. package/dist/cjs/MetricKey.js.map +1 -1
  125. package/dist/cjs/MetricKeyType.js +3 -26
  126. package/dist/cjs/MetricKeyType.js.map +1 -1
  127. package/dist/cjs/MetricLabel.js +3 -26
  128. package/dist/cjs/MetricLabel.js.map +1 -1
  129. package/dist/cjs/MetricPair.js +3 -26
  130. package/dist/cjs/MetricPair.js.map +1 -1
  131. package/dist/cjs/MetricPolling.js +3 -26
  132. package/dist/cjs/MetricPolling.js.map +1 -1
  133. package/dist/cjs/MetricRegistry.js +3 -26
  134. package/dist/cjs/MetricRegistry.js.map +1 -1
  135. package/dist/cjs/MetricState.js +3 -26
  136. package/dist/cjs/MetricState.js.map +1 -1
  137. package/dist/cjs/Micro.js +15 -38
  138. package/dist/cjs/Micro.js.map +1 -1
  139. package/dist/cjs/ModuleVersion.js +3 -26
  140. package/dist/cjs/ModuleVersion.js.map +1 -1
  141. package/dist/cjs/MutableHashMap.js +8 -31
  142. package/dist/cjs/MutableHashMap.js.map +1 -1
  143. package/dist/cjs/MutableHashSet.js +6 -29
  144. package/dist/cjs/MutableHashSet.js.map +1 -1
  145. package/dist/cjs/MutableList.js +5 -28
  146. package/dist/cjs/MutableList.js.map +1 -1
  147. package/dist/cjs/MutableQueue.js +7 -30
  148. package/dist/cjs/MutableQueue.js.map +1 -1
  149. package/dist/cjs/MutableRef.js +6 -29
  150. package/dist/cjs/MutableRef.js.map +1 -1
  151. package/dist/cjs/Number.js +7 -30
  152. package/dist/cjs/Number.js.map +1 -1
  153. package/dist/cjs/Option.js +10 -33
  154. package/dist/cjs/Option.js.map +1 -1
  155. package/dist/cjs/Order.js +1 -1
  156. package/dist/cjs/Order.js.map +1 -1
  157. package/dist/cjs/Ordering.js +1 -1
  158. package/dist/cjs/Ordering.js.map +1 -1
  159. package/dist/cjs/Pool.js +3 -26
  160. package/dist/cjs/Pool.js.map +1 -1
  161. package/dist/cjs/Predicate.js +1 -1
  162. package/dist/cjs/Predicate.js.map +1 -1
  163. package/dist/cjs/PubSub.js +3 -26
  164. package/dist/cjs/PubSub.js.map +1 -1
  165. package/dist/cjs/Queue.js +3 -26
  166. package/dist/cjs/Queue.js.map +1 -1
  167. package/dist/cjs/Random.js +4 -27
  168. package/dist/cjs/Random.js.map +1 -1
  169. package/dist/cjs/RateLimiter.js +3 -26
  170. package/dist/cjs/RateLimiter.js.map +1 -1
  171. package/dist/cjs/Readable.js +6 -29
  172. package/dist/cjs/Readable.js.map +1 -1
  173. package/dist/cjs/Record.js +6 -29
  174. package/dist/cjs/Record.js.map +1 -1
  175. package/dist/cjs/RedBlackTree.js +4 -27
  176. package/dist/cjs/RedBlackTree.js.map +1 -1
  177. package/dist/cjs/Redacted.js +4 -27
  178. package/dist/cjs/Redacted.js.map +1 -1
  179. package/dist/cjs/Ref.js +3 -26
  180. package/dist/cjs/Ref.js.map +1 -1
  181. package/dist/cjs/Reloadable.js +3 -26
  182. package/dist/cjs/Reloadable.js.map +1 -1
  183. package/dist/cjs/Request.js +7 -30
  184. package/dist/cjs/Request.js.map +1 -1
  185. package/dist/cjs/RequestBlock.js +3 -26
  186. package/dist/cjs/RequestBlock.js.map +1 -1
  187. package/dist/cjs/RequestResolver.js +6 -29
  188. package/dist/cjs/RequestResolver.js.map +1 -1
  189. package/dist/cjs/Resource.js +3 -26
  190. package/dist/cjs/Resource.js.map +1 -1
  191. package/dist/cjs/Runtime.js +3 -26
  192. package/dist/cjs/Runtime.js.map +1 -1
  193. package/dist/cjs/RuntimeFlags.js +4 -27
  194. package/dist/cjs/RuntimeFlags.js.map +1 -1
  195. package/dist/cjs/RuntimeFlagsPatch.js +4 -27
  196. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  197. package/dist/cjs/STM.js +6 -29
  198. package/dist/cjs/STM.js.map +1 -1
  199. package/dist/cjs/Schedule.js +3 -26
  200. package/dist/cjs/Schedule.js.map +1 -1
  201. package/dist/cjs/ScheduleDecision.js +3 -26
  202. package/dist/cjs/ScheduleDecision.js.map +1 -1
  203. package/dist/cjs/ScheduleInterval.js +3 -26
  204. package/dist/cjs/ScheduleInterval.js.map +1 -1
  205. package/dist/cjs/ScheduleIntervals.js +3 -26
  206. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  207. package/dist/cjs/Scheduler.js +5 -28
  208. package/dist/cjs/Scheduler.js.map +1 -1
  209. package/dist/cjs/Scope.js +4 -27
  210. package/dist/cjs/Scope.js.map +1 -1
  211. package/dist/cjs/ScopedCache.js +3 -26
  212. package/dist/cjs/ScopedCache.js.map +1 -1
  213. package/dist/cjs/ScopedRef.js +3 -26
  214. package/dist/cjs/ScopedRef.js.map +1 -1
  215. package/dist/cjs/Secret.js +3 -26
  216. package/dist/cjs/Secret.js.map +1 -1
  217. package/dist/cjs/SingleProducerAsyncInput.js +3 -26
  218. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
  219. package/dist/cjs/Sink.js +3 -26
  220. package/dist/cjs/Sink.js.map +1 -1
  221. package/dist/cjs/SortedMap.js +10 -33
  222. package/dist/cjs/SortedMap.js.map +1 -1
  223. package/dist/cjs/SortedSet.js +9 -32
  224. package/dist/cjs/SortedSet.js.map +1 -1
  225. package/dist/cjs/Stream.js +1048 -30
  226. package/dist/cjs/Stream.js.map +1 -1
  227. package/dist/cjs/StreamHaltStrategy.js +3 -26
  228. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  229. package/dist/cjs/Streamable.js +4 -27
  230. package/dist/cjs/Streamable.js.map +1 -1
  231. package/dist/cjs/String.js +9 -32
  232. package/dist/cjs/String.js.map +1 -1
  233. package/dist/cjs/Struct.js +6 -29
  234. package/dist/cjs/Struct.js.map +1 -1
  235. package/dist/cjs/Subscribable.js +8 -31
  236. package/dist/cjs/Subscribable.js.map +1 -1
  237. package/dist/cjs/SubscriptionRef.js +5 -28
  238. package/dist/cjs/SubscriptionRef.js.map +1 -1
  239. package/dist/cjs/Supervisor.js +5 -28
  240. package/dist/cjs/Supervisor.js.map +1 -1
  241. package/dist/cjs/Symbol.js +4 -27
  242. package/dist/cjs/Symbol.js.map +1 -1
  243. package/dist/cjs/SynchronizedRef.js +5 -28
  244. package/dist/cjs/SynchronizedRef.js.map +1 -1
  245. package/dist/cjs/TArray.js +3 -26
  246. package/dist/cjs/TArray.js.map +1 -1
  247. package/dist/cjs/TDeferred.js +3 -26
  248. package/dist/cjs/TDeferred.js.map +1 -1
  249. package/dist/cjs/TMap.js +3 -26
  250. package/dist/cjs/TMap.js.map +1 -1
  251. package/dist/cjs/TPriorityQueue.js +3 -26
  252. package/dist/cjs/TPriorityQueue.js.map +1 -1
  253. package/dist/cjs/TPubSub.js +3 -26
  254. package/dist/cjs/TPubSub.js.map +1 -1
  255. package/dist/cjs/TQueue.js +3 -26
  256. package/dist/cjs/TQueue.js.map +1 -1
  257. package/dist/cjs/TRandom.js +3 -26
  258. package/dist/cjs/TRandom.js.map +1 -1
  259. package/dist/cjs/TReentrantLock.js +3 -26
  260. package/dist/cjs/TReentrantLock.js.map +1 -1
  261. package/dist/cjs/TRef.js +3 -26
  262. package/dist/cjs/TRef.js.map +1 -1
  263. package/dist/cjs/TSemaphore.js +3 -26
  264. package/dist/cjs/TSemaphore.js.map +1 -1
  265. package/dist/cjs/TSet.js +3 -26
  266. package/dist/cjs/TSet.js.map +1 -1
  267. package/dist/cjs/Take.js +3 -26
  268. package/dist/cjs/Take.js.map +1 -1
  269. package/dist/cjs/TestAnnotation.js +10 -33
  270. package/dist/cjs/TestAnnotation.js.map +1 -1
  271. package/dist/cjs/TestAnnotationMap.js +5 -28
  272. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  273. package/dist/cjs/TestAnnotations.js +15 -38
  274. package/dist/cjs/TestAnnotations.js.map +1 -1
  275. package/dist/cjs/TestClock.js +25 -48
  276. package/dist/cjs/TestClock.js.map +1 -1
  277. package/dist/cjs/TestConfig.js +3 -26
  278. package/dist/cjs/TestConfig.js.map +1 -1
  279. package/dist/cjs/TestContext.js +7 -30
  280. package/dist/cjs/TestContext.js.map +1 -1
  281. package/dist/cjs/TestLive.js +5 -28
  282. package/dist/cjs/TestLive.js.map +1 -1
  283. package/dist/cjs/TestServices.js +15 -38
  284. package/dist/cjs/TestServices.js.map +1 -1
  285. package/dist/cjs/TestSized.js +4 -27
  286. package/dist/cjs/TestSized.js.map +1 -1
  287. package/dist/cjs/Tracer.js +4 -27
  288. package/dist/cjs/Tracer.js.map +1 -1
  289. package/dist/cjs/Trie.js +3 -26
  290. package/dist/cjs/Trie.js.map +1 -1
  291. package/dist/cjs/Tuple.js +6 -29
  292. package/dist/cjs/Tuple.js.map +1 -1
  293. package/dist/cjs/Unify.js +1 -1
  294. package/dist/cjs/Unify.js.map +1 -1
  295. package/dist/cjs/UpstreamPullRequest.js +3 -26
  296. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  297. package/dist/cjs/UpstreamPullStrategy.js +3 -26
  298. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  299. package/dist/cjs/Utils.js +4 -4
  300. package/dist/cjs/Utils.js.map +1 -1
  301. package/dist/cjs/index.js +160 -183
  302. package/dist/cjs/index.js.map +1 -1
  303. package/dist/cjs/internal/blockedRequests.js +9 -32
  304. package/dist/cjs/internal/blockedRequests.js.map +1 -1
  305. package/dist/cjs/internal/cache.js +20 -43
  306. package/dist/cjs/internal/cache.js.map +1 -1
  307. package/dist/cjs/internal/cause.js +16 -39
  308. package/dist/cjs/internal/cause.js.map +1 -1
  309. package/dist/cjs/internal/channel/channelExecutor.js +22 -45
  310. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  311. package/dist/cjs/internal/channel/channelState.js +5 -28
  312. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  313. package/dist/cjs/internal/channel/childExecutorDecision.js +5 -28
  314. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
  315. package/dist/cjs/internal/channel/continuation.js +4 -27
  316. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  317. package/dist/cjs/internal/channel/mergeDecision.js +5 -28
  318. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  319. package/dist/cjs/internal/channel/mergeState.js +5 -28
  320. package/dist/cjs/internal/channel/mergeState.js.map +1 -1
  321. package/dist/cjs/internal/channel/mergeStrategy.js +5 -28
  322. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
  323. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +9 -32
  324. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  325. package/dist/cjs/internal/channel/subexecutor.js +5 -28
  326. package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
  327. package/dist/cjs/internal/channel/upstreamPullRequest.js +5 -28
  328. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
  329. package/dist/cjs/internal/channel/upstreamPullStrategy.js +5 -28
  330. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
  331. package/dist/cjs/internal/channel.js +33 -56
  332. package/dist/cjs/internal/channel.js.map +1 -1
  333. package/dist/cjs/internal/clock.js +6 -29
  334. package/dist/cjs/internal/clock.js.map +1 -1
  335. package/dist/cjs/internal/completedRequestMap.js +2 -2
  336. package/dist/cjs/internal/completedRequestMap.js.map +1 -1
  337. package/dist/cjs/internal/concurrency.js +3 -26
  338. package/dist/cjs/internal/concurrency.js.map +1 -1
  339. package/dist/cjs/internal/config.js +17 -40
  340. package/dist/cjs/internal/config.js.map +1 -1
  341. package/dist/cjs/internal/configError.js +7 -30
  342. package/dist/cjs/internal/configError.js.map +1 -1
  343. package/dist/cjs/internal/configProvider/pathPatch.js +8 -31
  344. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  345. package/dist/cjs/internal/configProvider.js +17 -40
  346. package/dist/cjs/internal/configProvider.js.map +1 -1
  347. package/dist/cjs/internal/console.js +9 -32
  348. package/dist/cjs/internal/console.js.map +1 -1
  349. package/dist/cjs/internal/context.js +10 -33
  350. package/dist/cjs/internal/context.js.map +1 -1
  351. package/dist/cjs/internal/core-effect.js +29 -52
  352. package/dist/cjs/internal/core-effect.js.map +1 -1
  353. package/dist/cjs/internal/core-stream.js +14 -37
  354. package/dist/cjs/internal/core-stream.js.map +1 -1
  355. package/dist/cjs/internal/core.js +32 -55
  356. package/dist/cjs/internal/core.js.map +1 -1
  357. package/dist/cjs/internal/data.js +5 -28
  358. package/dist/cjs/internal/data.js.map +1 -1
  359. package/dist/cjs/internal/dataSource.js +10 -33
  360. package/dist/cjs/internal/dataSource.js.map +1 -1
  361. package/dist/cjs/internal/defaultServices/console.js +4 -27
  362. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  363. package/dist/cjs/internal/defaultServices.js +12 -35
  364. package/dist/cjs/internal/defaultServices.js.map +1 -1
  365. package/dist/cjs/internal/deferred.js +3 -26
  366. package/dist/cjs/internal/deferred.js.map +1 -1
  367. package/dist/cjs/internal/differ/chunkPatch.js +6 -29
  368. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
  369. package/dist/cjs/internal/differ/contextPatch.js +7 -30
  370. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  371. package/dist/cjs/internal/differ/hashMapPatch.js +7 -30
  372. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
  373. package/dist/cjs/internal/differ/hashSetPatch.js +6 -29
  374. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
  375. package/dist/cjs/internal/differ/orPatch.js +7 -30
  376. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  377. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -29
  378. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  379. package/dist/cjs/internal/differ.js +10 -33
  380. package/dist/cjs/internal/differ.js.map +1 -1
  381. package/dist/cjs/internal/doNotation.js +1 -1
  382. package/dist/cjs/internal/doNotation.js.map +1 -1
  383. package/dist/cjs/internal/effect/circular.js +24 -47
  384. package/dist/cjs/internal/effect/circular.js.map +1 -1
  385. package/dist/cjs/internal/effectable.js +8 -31
  386. package/dist/cjs/internal/effectable.js.map +1 -1
  387. package/dist/cjs/internal/either.js +9 -32
  388. package/dist/cjs/internal/either.js.map +1 -1
  389. package/dist/cjs/internal/encoding/base64.js +4 -27
  390. package/dist/cjs/internal/encoding/base64.js.map +1 -1
  391. package/dist/cjs/internal/encoding/base64Url.js +5 -28
  392. package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
  393. package/dist/cjs/internal/encoding/common.js +1 -1
  394. package/dist/cjs/internal/encoding/common.js.map +1 -1
  395. package/dist/cjs/internal/encoding/hex.js +4 -27
  396. package/dist/cjs/internal/encoding/hex.js.map +1 -1
  397. package/dist/cjs/internal/executionStrategy.js +1 -1
  398. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  399. package/dist/cjs/internal/fiber.js +17 -40
  400. package/dist/cjs/internal/fiber.js.map +1 -1
  401. package/dist/cjs/internal/fiberId.js +11 -34
  402. package/dist/cjs/internal/fiberId.js.map +1 -1
  403. package/dist/cjs/internal/fiberRefs/patch.js +6 -29
  404. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  405. package/dist/cjs/internal/fiberRefs.js +9 -32
  406. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  407. package/dist/cjs/internal/fiberRuntime.js +55 -78
  408. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  409. package/dist/cjs/internal/fiberScope.js +5 -28
  410. package/dist/cjs/internal/fiberScope.js.map +1 -1
  411. package/dist/cjs/internal/fiberStatus.js +6 -29
  412. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  413. package/dist/cjs/internal/groupBy.js +18 -41
  414. package/dist/cjs/internal/groupBy.js.map +1 -1
  415. package/dist/cjs/internal/hashMap/bitwise.js +1 -1
  416. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -1
  417. package/dist/cjs/internal/hashMap/keySet.js +1 -1
  418. package/dist/cjs/internal/hashMap/keySet.js.map +1 -1
  419. package/dist/cjs/internal/hashMap/node.js +9 -32
  420. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  421. package/dist/cjs/internal/hashMap.js +12 -35
  422. package/dist/cjs/internal/hashMap.js.map +1 -1
  423. package/dist/cjs/internal/hashSet.js +9 -32
  424. package/dist/cjs/internal/hashSet.js.map +1 -1
  425. package/dist/cjs/internal/keyedPool.js +14 -37
  426. package/dist/cjs/internal/keyedPool.js.map +1 -1
  427. package/dist/cjs/internal/layer/circular.js +12 -35
  428. package/dist/cjs/internal/layer/circular.js.map +1 -1
  429. package/dist/cjs/internal/layer.js +25 -48
  430. package/dist/cjs/internal/layer.js.map +1 -1
  431. package/dist/cjs/internal/logger-circular.js +9 -32
  432. package/dist/cjs/internal/logger-circular.js.map +1 -1
  433. package/dist/cjs/internal/logger.js +11 -34
  434. package/dist/cjs/internal/logger.js.map +1 -1
  435. package/dist/cjs/internal/managedRuntime.js +9 -32
  436. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  437. package/dist/cjs/internal/matcher.js +6 -29
  438. package/dist/cjs/internal/matcher.js.map +1 -1
  439. package/dist/cjs/internal/metric/boundaries.js +9 -32
  440. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  441. package/dist/cjs/internal/metric/hook.js +9 -32
  442. package/dist/cjs/internal/metric/hook.js.map +1 -1
  443. package/dist/cjs/internal/metric/key.js +11 -34
  444. package/dist/cjs/internal/metric/key.js.map +1 -1
  445. package/dist/cjs/internal/metric/keyType.js +8 -31
  446. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  447. package/dist/cjs/internal/metric/label.js +6 -29
  448. package/dist/cjs/internal/metric/label.js.map +1 -1
  449. package/dist/cjs/internal/metric/pair.js +1 -1
  450. package/dist/cjs/internal/metric/pair.js.map +1 -1
  451. package/dist/cjs/internal/metric/polling.js +8 -31
  452. package/dist/cjs/internal/metric/polling.js.map +1 -1
  453. package/dist/cjs/internal/metric/registry.js +8 -31
  454. package/dist/cjs/internal/metric/registry.js.map +1 -1
  455. package/dist/cjs/internal/metric/state.js +8 -31
  456. package/dist/cjs/internal/metric/state.js.map +1 -1
  457. package/dist/cjs/internal/metric.js +15 -38
  458. package/dist/cjs/internal/metric.js.map +1 -1
  459. package/dist/cjs/internal/option.js +7 -30
  460. package/dist/cjs/internal/option.js.map +1 -1
  461. package/dist/cjs/internal/pool.js +43 -42
  462. package/dist/cjs/internal/pool.js.map +1 -1
  463. package/dist/cjs/internal/pubsub.js +13 -36
  464. package/dist/cjs/internal/pubsub.js.map +1 -1
  465. package/dist/cjs/internal/query.js +10 -33
  466. package/dist/cjs/internal/query.js.map +1 -1
  467. package/dist/cjs/internal/queue.js +12 -35
  468. package/dist/cjs/internal/queue.js.map +1 -1
  469. package/dist/cjs/internal/random.js +7 -30
  470. package/dist/cjs/internal/random.js.map +1 -1
  471. package/dist/cjs/internal/rateLimiter.js +6 -29
  472. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  473. package/dist/cjs/internal/redBlackTree/iterator.js +4 -27
  474. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  475. package/dist/cjs/internal/redBlackTree.js +13 -36
  476. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  477. package/dist/cjs/internal/redacted.js +8 -31
  478. package/dist/cjs/internal/redacted.js.map +1 -1
  479. package/dist/cjs/internal/ref.js +8 -31
  480. package/dist/cjs/internal/ref.js.map +1 -1
  481. package/dist/cjs/internal/reloadable.js +10 -33
  482. package/dist/cjs/internal/reloadable.js.map +1 -1
  483. package/dist/cjs/internal/request.js +7 -30
  484. package/dist/cjs/internal/request.js.map +1 -1
  485. package/dist/cjs/internal/resource.js +7 -30
  486. package/dist/cjs/internal/resource.js.map +1 -1
  487. package/dist/cjs/internal/ringBuffer.js +5 -28
  488. package/dist/cjs/internal/ringBuffer.js.map +1 -1
  489. package/dist/cjs/internal/runtime.js +23 -46
  490. package/dist/cjs/internal/runtime.js.map +1 -1
  491. package/dist/cjs/internal/runtimeFlags.js +5 -28
  492. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  493. package/dist/cjs/internal/runtimeFlagsPatch.js +1 -1
  494. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -1
  495. package/dist/cjs/internal/schedule/decision.js +4 -27
  496. package/dist/cjs/internal/schedule/decision.js.map +1 -1
  497. package/dist/cjs/internal/schedule/interval.js +5 -28
  498. package/dist/cjs/internal/schedule/interval.js.map +1 -1
  499. package/dist/cjs/internal/schedule/intervals.js +7 -30
  500. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  501. package/dist/cjs/internal/schedule.js +21 -44
  502. package/dist/cjs/internal/schedule.js.map +1 -1
  503. package/dist/cjs/internal/scopedCache.js +19 -42
  504. package/dist/cjs/internal/scopedCache.js.map +1 -1
  505. package/dist/cjs/internal/scopedRef.js +10 -33
  506. package/dist/cjs/internal/scopedRef.js.map +1 -1
  507. package/dist/cjs/internal/secret.js +5 -28
  508. package/dist/cjs/internal/secret.js.map +1 -1
  509. package/dist/cjs/internal/singleShotGen.js.map +1 -1
  510. package/dist/cjs/internal/sink.js +22 -45
  511. package/dist/cjs/internal/sink.js.map +1 -1
  512. package/dist/cjs/internal/stm/core.js +30 -53
  513. package/dist/cjs/internal/stm/core.js.map +1 -1
  514. package/dist/cjs/internal/stm/stm/entry.js +3 -26
  515. package/dist/cjs/internal/stm/stm/entry.js.map +1 -1
  516. package/dist/cjs/internal/stm/stm/journal.js +3 -26
  517. package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
  518. package/dist/cjs/internal/stm/stm/stmState.js +9 -32
  519. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  520. package/dist/cjs/internal/stm/stm/tExit.js +7 -30
  521. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  522. package/dist/cjs/internal/stm/stm/tryCommit.js +3 -26
  523. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
  524. package/dist/cjs/internal/stm/stm/versioned.js.map +1 -1
  525. package/dist/cjs/internal/stm/stm.js +17 -40
  526. package/dist/cjs/internal/stm/stm.js.map +1 -1
  527. package/dist/cjs/internal/stm/tArray.js +9 -32
  528. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  529. package/dist/cjs/internal/stm/tDeferred.js +8 -31
  530. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  531. package/dist/cjs/internal/stm/tMap.js +15 -38
  532. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  533. package/dist/cjs/internal/stm/tPriorityQueue.js +9 -32
  534. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  535. package/dist/cjs/internal/stm/tPubSub.js +12 -35
  536. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  537. package/dist/cjs/internal/stm/tQueue.js +12 -35
  538. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  539. package/dist/cjs/internal/stm/tRandom.js +10 -33
  540. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  541. package/dist/cjs/internal/stm/tReentrantLock.js +10 -33
  542. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  543. package/dist/cjs/internal/stm/tRef.js +7 -30
  544. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  545. package/dist/cjs/internal/stm/tSemaphore.js +8 -31
  546. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  547. package/dist/cjs/internal/stm/tSet.js +10 -33
  548. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  549. package/dist/cjs/internal/stream/emit.js +8 -31
  550. package/dist/cjs/internal/stream/emit.js.map +1 -1
  551. package/dist/cjs/internal/stream/haltStrategy.js +4 -27
  552. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  553. package/dist/cjs/internal/stream/handoff.js +7 -30
  554. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  555. package/dist/cjs/internal/stream/pull.js +7 -30
  556. package/dist/cjs/internal/stream/pull.js.map +1 -1
  557. package/dist/cjs/internal/stream.js +46 -69
  558. package/dist/cjs/internal/stream.js.map +1 -1
  559. package/dist/cjs/internal/subscriptionRef.js +13 -36
  560. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  561. package/dist/cjs/internal/supervisor/patch.js +8 -31
  562. package/dist/cjs/internal/supervisor/patch.js.map +1 -1
  563. package/dist/cjs/internal/supervisor.js +8 -31
  564. package/dist/cjs/internal/supervisor.js.map +1 -1
  565. package/dist/cjs/internal/synchronizedRef.js +5 -28
  566. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  567. package/dist/cjs/internal/take.js +9 -32
  568. package/dist/cjs/internal/take.js.map +1 -1
  569. package/dist/cjs/internal/tracer.js +3 -26
  570. package/dist/cjs/internal/tracer.js.map +1 -1
  571. package/dist/cjs/internal/trie.js +9 -32
  572. package/dist/cjs/internal/trie.js.map +1 -1
  573. package/dist/cjs/internal/version.js +1 -1
  574. package/dist/dts/Stream.d.ts +1075 -3
  575. package/dist/dts/Stream.d.ts.map +1 -1
  576. package/dist/dts/String.d.ts +2 -2
  577. package/dist/dts/String.d.ts.map +1 -1
  578. package/dist/esm/Stream.js +1075 -3
  579. package/dist/esm/Stream.js.map +1 -1
  580. package/dist/esm/String.js.map +1 -1
  581. package/dist/esm/internal/channel/channelExecutor.js +1 -1
  582. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  583. package/dist/esm/internal/channel.js +2 -2
  584. package/dist/esm/internal/channel.js.map +1 -1
  585. package/dist/esm/internal/pool.js +29 -5
  586. package/dist/esm/internal/pool.js.map +1 -1
  587. package/dist/esm/internal/version.js +1 -1
  588. package/package.json +1 -1
  589. package/src/Stream.ts +1075 -3
  590. package/src/String.ts +2 -10
  591. package/src/internal/channel/channelExecutor.ts +6 -1
  592. package/src/internal/channel.ts +7 -6
  593. package/src/internal/pool.ts +36 -5
  594. package/src/internal/version.ts +1 -1
@@ -6,33 +6,10 @@ Object.defineProperty(exports, "__esModule", {
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
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
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
- }
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
  */
@@ -1485,6 +2132,15 @@ const provideSomeLayer = exports.provideSomeLayer = internal.provideSomeLayer;
1485
2132
  /**
1486
2133
  * Constructs a stream from a range of integers, including both endpoints.
1487
2134
  *
2135
+ * @example
2136
+ * import { Effect, Stream } from "effect"
2137
+ *
2138
+ * // A Stream with a range of numbers from 1 to 5
2139
+ * const stream = Stream.range(1, 5)
2140
+ *
2141
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2142
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
2143
+ *
1488
2144
  * @since 2.0.0
1489
2145
  * @category constructors
1490
2146
  */
@@ -1516,6 +2172,14 @@ const refineOrDieWith = exports.refineOrDieWith = internal.refineOrDieWith;
1516
2172
  * Repeats the entire stream using the specified schedule. The stream will
1517
2173
  * execute normally, and then repeat again according to the provided schedule.
1518
2174
  *
2175
+ * @example
2176
+ * import { Effect, Schedule, Stream } from "effect"
2177
+ *
2178
+ * const stream = Stream.repeat(Stream.succeed(1), Schedule.forever)
2179
+ *
2180
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2181
+ * // { _id: 'Chunk', values: [ 1, 1, 1, 1, 1 ] }
2182
+ *
1519
2183
  * @since 2.0.0
1520
2184
  * @category utils
1521
2185
  */
@@ -1524,6 +2188,14 @@ const repeat = exports.repeat = internal.repeat;
1524
2188
  * Creates a stream from an effect producing a value of type `A` which repeats
1525
2189
  * forever.
1526
2190
  *
2191
+ * @example
2192
+ * import { Effect, Random, Stream } from "effect"
2193
+ *
2194
+ * const stream = Stream.repeatEffect(Random.nextInt)
2195
+ *
2196
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2197
+ * // Example Output: { _id: 'Chunk', values: [ 3891571149, 4239494205, 2352981603, 2339111046, 1488052210 ] }
2198
+ *
1527
2199
  * @since 2.0.0
1528
2200
  * @category constructors
1529
2201
  */
@@ -1548,6 +2220,22 @@ const repeatEffectChunkOption = exports.repeatEffectChunkOption = internal.repea
1548
2220
  * Creates a stream from an effect producing values of type `A` until it fails
1549
2221
  * with `None`.
1550
2222
  *
2223
+ * @example
2224
+ * // In this example, we're draining an Iterator to create a stream from it
2225
+ * import { Stream, Effect, Option } from "effect"
2226
+ *
2227
+ * const drainIterator = <A>(it: Iterator<A>): Stream.Stream<A> =>
2228
+ * Stream.repeatEffectOption(
2229
+ * Effect.sync(() => it.next()).pipe(
2230
+ * Effect.andThen((res) => {
2231
+ * if (res.done) {
2232
+ * return Effect.fail(Option.none())
2233
+ * }
2234
+ * return Effect.succeed(res.value)
2235
+ * })
2236
+ * )
2237
+ * )
2238
+ *
1551
2239
  * @since 2.0.0
1552
2240
  * @category constructors
1553
2241
  */
@@ -1599,6 +2287,14 @@ const repeatElementsWith = exports.repeatElementsWith = internal.repeatElementsW
1599
2287
  /**
1600
2288
  * Repeats the provided value infinitely.
1601
2289
  *
2290
+ * @example
2291
+ * import { Effect, Stream } from "effect"
2292
+ *
2293
+ * const stream = Stream.repeatValue(0)
2294
+ *
2295
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2296
+ * // { _id: 'Chunk', values: [ 0, 0, 0, 0, 0 ] }
2297
+ *
1602
2298
  * @since 2.0.0
1603
2299
  * @category constructors
1604
2300
  */
@@ -1840,6 +2536,14 @@ const runSum = exports.runSum = internal.runSum;
1840
2536
  * Statefully maps over the elements of this stream to produce all
1841
2537
  * intermediate results of type `S` given an initial S.
1842
2538
  *
2539
+ * @example
2540
+ * import { Effect, Stream } from "effect"
2541
+ *
2542
+ * const stream = Stream.range(1, 6).pipe(Stream.scan(0, (a, b) => a + b))
2543
+ *
2544
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2545
+ * // { _id: 'Chunk', values: [ 0, 1, 3, 6, 10, 15, 21 ] }
2546
+ *
1843
2547
  * @since 2.0.0
1844
2548
  * @category utils
1845
2549
  */
@@ -1891,6 +2595,24 @@ const scheduleWith = exports.scheduleWith = internal.scheduleWith;
1891
2595
  /**
1892
2596
  * Creates a single-valued stream from a scoped resource.
1893
2597
  *
2598
+ * @example
2599
+ * import { Console, Effect, Stream } from "effect"
2600
+ *
2601
+ * // Creating a single-valued stream from a scoped resource
2602
+ * const stream = Stream.scoped(
2603
+ * Effect.acquireUseRelease(
2604
+ * Console.log("acquire"),
2605
+ * () => Console.log("use"),
2606
+ * () => Console.log("release")
2607
+ * )
2608
+ * )
2609
+ *
2610
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2611
+ * // acquire
2612
+ * // use
2613
+ * // release
2614
+ * // { _id: 'Chunk', values: [ undefined ] }
2615
+ *
1894
2616
  * @since 2.0.0
1895
2617
  * @category constructors
1896
2618
  */
@@ -1979,6 +2701,15 @@ const splitLines = exports.splitLines = internal.splitLines;
1979
2701
  /**
1980
2702
  * Creates a single-valued pure stream.
1981
2703
  *
2704
+ * @example
2705
+ * import { Effect, Stream } from "effect"
2706
+ *
2707
+ * // A Stream with a single number
2708
+ * const stream = Stream.succeed(3)
2709
+ *
2710
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2711
+ * // { _id: 'Chunk', values: [ 3 ] }
2712
+ *
1982
2713
  * @since 2.0.0
1983
2714
  * @category constructors
1984
2715
  */
@@ -2000,6 +2731,14 @@ const suspend = exports.suspend = internal.suspend;
2000
2731
  /**
2001
2732
  * Takes the specified number of elements from this stream.
2002
2733
  *
2734
+ * @example
2735
+ * import { Effect, Stream } from "effect"
2736
+ *
2737
+ * const stream = Stream.take(Stream.iterate(0, (n) => n + 1), 5)
2738
+ *
2739
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2740
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2741
+ *
2003
2742
  * @since 2.0.0
2004
2743
  * @category utils
2005
2744
  */
@@ -2007,6 +2746,14 @@ const take = exports.take = internal.take;
2007
2746
  /**
2008
2747
  * Takes the last specified number of elements from this stream.
2009
2748
  *
2749
+ * @example
2750
+ * import { Effect, Stream } from "effect"
2751
+ *
2752
+ * const stream = Stream.takeRight(Stream.make(1, 2, 3, 4, 5, 6), 3)
2753
+ *
2754
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2755
+ * // { _id: 'Chunk', values: [ 4, 5, 6 ] }
2756
+ *
2010
2757
  * @since 2.0.0
2011
2758
  * @category utils
2012
2759
  */
@@ -2015,6 +2762,14 @@ const takeRight = exports.takeRight = internal.takeRight;
2015
2762
  * Takes all elements of the stream until the specified predicate evaluates to
2016
2763
  * `true`.
2017
2764
  *
2765
+ * @example
2766
+ * import { Effect, Stream } from "effect"
2767
+ *
2768
+ * const stream = Stream.takeUntil(Stream.iterate(0, (n) => n + 1), (n) => n === 4)
2769
+ *
2770
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2771
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2772
+ *
2018
2773
  * @since 2.0.0
2019
2774
  * @category utils
2020
2775
  */
@@ -2031,6 +2786,14 @@ const takeUntilEffect = exports.takeUntilEffect = internal.takeUntilEffect;
2031
2786
  * Takes all elements of the stream for as long as the specified predicate
2032
2787
  * evaluates to `true`.
2033
2788
  *
2789
+ * @example
2790
+ * import { Effect, Stream } from "effect"
2791
+ *
2792
+ * const stream = Stream.takeWhile(Stream.iterate(0, (n) => n + 1), (n) => n < 5)
2793
+ *
2794
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2795
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
2796
+ *
2034
2797
  * @since 2.0.0
2035
2798
  * @category utils
2036
2799
  */
@@ -2038,6 +2801,24 @@ const takeWhile = exports.takeWhile = internal.takeWhile;
2038
2801
  /**
2039
2802
  * Adds an effect to consumption of every element of the stream.
2040
2803
  *
2804
+ * @example
2805
+ * import { Console, Effect, Stream } from "effect"
2806
+ *
2807
+ * const stream = Stream.make(1, 2, 3).pipe(
2808
+ * Stream.tap((n) => Console.log(`before mapping: ${n}`)),
2809
+ * Stream.map((n) => n * 2),
2810
+ * Stream.tap((n) => Console.log(`after mapping: ${n}`))
2811
+ * )
2812
+ *
2813
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2814
+ * // before mapping: 1
2815
+ * // after mapping: 2
2816
+ * // before mapping: 2
2817
+ * // after mapping: 4
2818
+ * // before mapping: 3
2819
+ * // after mapping: 6
2820
+ * // { _id: 'Chunk', values: [ 2, 4, 6 ] }
2821
+ *
2041
2822
  * @since 2.0.0
2042
2823
  * @category sequencing
2043
2824
  */
@@ -2078,7 +2859,7 @@ const tapSink = exports.tapSink = internal.tapSink;
2078
2859
  * parameters using the token bucket algorithm. Allows for burst in the
2079
2860
  * processing of elements by allowing the token bucket to accumulate tokens up
2080
2861
  * to a `units + burst` threshold. The weight of each chunk is determined by
2081
- * the `costFn` function.
2862
+ * the `cost` function.
2082
2863
  *
2083
2864
  * If using the "enforce" strategy, chunks that do not meet the bandwidth
2084
2865
  * constraints are dropped. If using the "shape" strategy, chunks are delayed
@@ -2086,6 +2867,43 @@ const tapSink = exports.tapSink = internal.tapSink;
2086
2867
  *
2087
2868
  * Defaults to the "shape" strategy.
2088
2869
  *
2870
+ * @example
2871
+ * import { Chunk, Effect, Schedule, Stream } from "effect"
2872
+ *
2873
+ * let last = Date.now()
2874
+ * const log = (message: string) =>
2875
+ * Effect.sync(() => {
2876
+ * const end = Date.now()
2877
+ * console.log(`${message} after ${end - last}ms`)
2878
+ * last = end
2879
+ * })
2880
+ *
2881
+ * const stream = Stream.fromSchedule(Schedule.spaced("50 millis")).pipe(
2882
+ * Stream.take(6),
2883
+ * Stream.tap((n) => log(`Received ${n}`)),
2884
+ * Stream.throttle({
2885
+ * cost: Chunk.size,
2886
+ * duration: "100 millis",
2887
+ * units: 1
2888
+ * }),
2889
+ * Stream.tap((n) => log(`> Emitted ${n}`))
2890
+ * )
2891
+ *
2892
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
2893
+ * // Received 0 after 56ms
2894
+ * // > Emitted 0 after 0ms
2895
+ * // Received 1 after 52ms
2896
+ * // > Emitted 1 after 48ms
2897
+ * // Received 2 after 52ms
2898
+ * // > Emitted 2 after 49ms
2899
+ * // Received 3 after 52ms
2900
+ * // > Emitted 3 after 48ms
2901
+ * // Received 4 after 52ms
2902
+ * // > Emitted 4 after 47ms
2903
+ * // Received 5 after 52ms
2904
+ * // > Emitted 5 after 49ms
2905
+ * // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4, 5 ] }
2906
+ *
2089
2907
  * @since 2.0.0
2090
2908
  * @category utils
2091
2909
  */
@@ -2110,6 +2928,27 @@ const throttleEffect = exports.throttleEffect = internal.throttleEffect;
2110
2928
  /**
2111
2929
  * A stream that emits void values spaced by the specified duration.
2112
2930
  *
2931
+ * @example
2932
+ * import { Effect, Stream } from "effect"
2933
+ *
2934
+ * let last = Date.now()
2935
+ * const log = (message: string) =>
2936
+ * Effect.sync(() => {
2937
+ * const end = Date.now()
2938
+ * console.log(`${message} after ${end - last}ms`)
2939
+ * last = end
2940
+ * })
2941
+ *
2942
+ * const stream = Stream.tick("1 seconds").pipe(Stream.tap(() => log("tick")))
2943
+ *
2944
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
2945
+ * // tick after 4ms
2946
+ * // tick after 1003ms
2947
+ * // tick after 1001ms
2948
+ * // tick after 1002ms
2949
+ * // tick after 1002ms
2950
+ * // { _id: 'Chunk', values: [ undefined, undefined, undefined, undefined, undefined ] }
2951
+ *
2113
2952
  * @since 2.0.0
2114
2953
  * @category constructors
2115
2954
  */
@@ -2159,6 +2998,32 @@ const toPubSub = exports.toPubSub = internal.toPubSub;
2159
2998
  * finished, or with Some error if it fails, otherwise it returns a chunk of
2160
2999
  * the stream's output.
2161
3000
  *
3001
+ * @example
3002
+ * import { Effect, Stream } from "effect"
3003
+ *
3004
+ * // Simulate a chunked stream
3005
+ * const stream = Stream.fromIterable([1, 2, 3, 4, 5]).pipe(Stream.rechunk(2))
3006
+ *
3007
+ * const program = Effect.gen(function*() {
3008
+ * // Create an effect to get data chunks from the stream
3009
+ * const getChunk = yield* Stream.toPull(stream)
3010
+ *
3011
+ * // Continuously fetch and process chunks
3012
+ * while (true) {
3013
+ * const chunk = yield* getChunk
3014
+ * console.log(chunk)
3015
+ * }
3016
+ * })
3017
+ *
3018
+ * // Effect.runPromise(Effect.scoped(program)).then(console.log, console.error)
3019
+ * // { _id: 'Chunk', values: [ 1, 2 ] }
3020
+ * // { _id: 'Chunk', values: [ 3, 4 ] }
3021
+ * // { _id: 'Chunk', values: [ 5 ] }
3022
+ * // (FiberFailure) Error: {
3023
+ * // "_id": "Option",
3024
+ * // "_tag": "None"
3025
+ * // }
3026
+ *
2162
3027
  * @since 2.0.0
2163
3028
  * @category destructors
2164
3029
  */
@@ -2220,6 +3085,14 @@ const transduce = exports.transduce = internal.transduce;
2220
3085
  /**
2221
3086
  * Creates a stream by peeling off the "layers" of a value of type `S`.
2222
3087
  *
3088
+ * @example
3089
+ * import { Effect, Option, Stream } from "effect"
3090
+ *
3091
+ * const stream = Stream.unfold(1, (n) => Option.some([n, n + 1]))
3092
+ *
3093
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
3094
+ * // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
3095
+ *
2223
3096
  * @since 2.0.0
2224
3097
  * @category constructors
2225
3098
  */
@@ -2243,6 +3116,17 @@ const unfoldChunkEffect = exports.unfoldChunkEffect = internal.unfoldChunkEffect
2243
3116
  * Creates a stream by effectfully peeling off the "layers" of a value of type
2244
3117
  * `S`.
2245
3118
  *
3119
+ * @example
3120
+ * import { Effect, Option, Random, Stream } from "effect"
3121
+ *
3122
+ * const stream = Stream.unfoldEffect(1, (n) =>
3123
+ * Random.nextBoolean.pipe(
3124
+ * Effect.map((b) => (b ? Option.some([n, -n]) : Option.some([n, n])))
3125
+ * ))
3126
+ *
3127
+ * // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
3128
+ * // { _id: 'Chunk', values: [ 1, -1, -1, -1, -1 ] }
3129
+ *
2246
3130
  * @since 2.0.0
2247
3131
  * @category constructors
2248
3132
  */
@@ -2314,6 +3198,18 @@ const withSpan = exports.withSpan = internal.withSpan;
2314
3198
  *
2315
3199
  * The new stream will end when one of the sides ends.
2316
3200
  *
3201
+ * @example
3202
+ * import { Effect, Stream } from "effect"
3203
+ *
3204
+ * // We create two streams and zip them together.
3205
+ * const stream = Stream.zip(
3206
+ * Stream.make(1, 2, 3, 4, 5, 6),
3207
+ * Stream.make("a", "b", "c")
3208
+ * )
3209
+ *
3210
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3211
+ * // { _id: 'Chunk', values: [ [ 1, 'a' ], [ 2, 'b' ], [ 3, 'c' ] ] }
3212
+ *
2317
3213
  * @since 2.0.0
2318
3214
  * @category zipping
2319
3215
  */
@@ -2335,6 +3231,18 @@ const zipFlatten = exports.zipFlatten = internal.zipFlatten;
2335
3231
  * The defaults `defaultLeft` and `defaultRight` will be used if the streams
2336
3232
  * have different lengths and one of the streams has ended before the other.
2337
3233
  *
3234
+ * @example
3235
+ * import { Effect, Stream } from "effect"
3236
+ *
3237
+ * const stream = Stream.zipAll(Stream.make(1, 2, 3, 4, 5, 6), {
3238
+ * other: Stream.make("a", "b", "c"),
3239
+ * defaultSelf: 0,
3240
+ * defaultOther: "x"
3241
+ * })
3242
+ *
3243
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3244
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
3245
+ *
2338
3246
  * @since 2.0.0
2339
3247
  * @category zipping
2340
3248
  */
@@ -2426,6 +3334,19 @@ const zipAllSortedByKeyWith = exports.zipAllSortedByKeyWith = internal.zipAllSor
2426
3334
  * The functions `left` and `right` will be used if the streams have different
2427
3335
  * lengths and one of the streams has ended before the other.
2428
3336
  *
3337
+ * @example
3338
+ * import { Effect, Stream } from "effect"
3339
+ *
3340
+ * const stream = Stream.zipAllWith(Stream.make(1, 2, 3, 4, 5, 6), {
3341
+ * other: Stream.make("a", "b", "c"),
3342
+ * onSelf: (n) => [n, "x"],
3343
+ * onOther: (s) => [0, s],
3344
+ * onBoth: (n, s) => [n - s.length, s]
3345
+ * })
3346
+ *
3347
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3348
+ * // { _id: "Chunk", values: [ [ 0, "a" ], [ 1, "b" ], [ 2, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
3349
+ *
2429
3350
  * @since 2.0.0
2430
3351
  * @category zipping
2431
3352
  */
@@ -2439,6 +3360,22 @@ const zipAllWith = exports.zipAllWith = internal.zipAllWith;
2439
3360
  * that emitted elements that are not the last value in chunks will never be
2440
3361
  * used for zipping.
2441
3362
  *
3363
+ * @example
3364
+ * import { Effect, Schedule, Stream } from "effect"
3365
+ *
3366
+ * const s1 = Stream.make(1, 2, 3).pipe(
3367
+ * Stream.schedule(Schedule.spaced("1 second"))
3368
+ * )
3369
+ *
3370
+ * const s2 = Stream.make("a", "b", "c", "d").pipe(
3371
+ * Stream.schedule(Schedule.spaced("500 millis"))
3372
+ * )
3373
+ *
3374
+ * const stream = Stream.zipLatest(s1, s2)
3375
+ *
3376
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3377
+ * // { _id: "Chunk", values: [ [ 1, "a" ], [ 1, "b" ], [ 2, "b" ], [ 2, "c" ], [ 2, "d" ], [ 3, "d" ] ] }
3378
+ *
2442
3379
  * @since 2.0.0
2443
3380
  * @category zipping
2444
3381
  */
@@ -2460,7 +3397,7 @@ const zipLatest = exports.zipLatest = internal.zipLatest;
2460
3397
  * Stream.fromSchedule(Schedule.spaced('4 millis')),
2461
3398
  * ).pipe(Stream.take(6), Stream.tap(Console.log))
2462
3399
  *
2463
- * Effect.runPromise(Stream.runDrain(stream))
3400
+ * // Effect.runPromise(Stream.runDrain(stream))
2464
3401
  * // Output:
2465
3402
  * // [ 0, 0, 0 ]
2466
3403
  * // [ 1, 0, 0 ]
@@ -2513,6 +3450,19 @@ const zipRight = exports.zipRight = internal.zipRight;
2513
3450
  *
2514
3451
  * The new stream will end when one of the sides ends.
2515
3452
  *
3453
+ * @example
3454
+ * import { Effect, Stream } from "effect"
3455
+ *
3456
+ * // We create two streams and zip them with custom logic.
3457
+ * const stream = Stream.zipWith(
3458
+ * Stream.make(1, 2, 3, 4, 5, 6),
3459
+ * Stream.make("a", "b", "c"),
3460
+ * (n, s) => [n - s.length, s]
3461
+ * )
3462
+ *
3463
+ * // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
3464
+ * // { _id: 'Chunk', values: [ [ 0, 'a' ], [ 1, 'b' ], [ 2, 'c' ] ] }
3465
+ *
2516
3466
  * @since 2.0.0
2517
3467
  * @category zipping
2518
3468
  */
@@ -2530,6 +3480,19 @@ const zipWithChunks = exports.zipWithChunks = internal.zipWithChunks;
2530
3480
  /**
2531
3481
  * Zips each element with the next element if present.
2532
3482
  *
3483
+ * @example
3484
+ * import { Chunk, Effect, Stream } from "effect"
3485
+ *
3486
+ * const stream = Stream.zipWithNext(Stream.make(1, 2, 3, 4))
3487
+ *
3488
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3489
+ * // [
3490
+ * // [ 1, { _id: 'Option', _tag: 'Some', value: 2 } ],
3491
+ * // [ 2, { _id: 'Option', _tag: 'Some', value: 3 } ],
3492
+ * // [ 3, { _id: 'Option', _tag: 'Some', value: 4 } ],
3493
+ * // [ 4, { _id: 'Option', _tag: 'None' } ]
3494
+ * // ]
3495
+ *
2533
3496
  * @since 2.0.0
2534
3497
  * @category zipping
2535
3498
  */
@@ -2538,6 +3501,19 @@ const zipWithNext = exports.zipWithNext = internal.zipWithNext;
2538
3501
  * Zips each element with the previous element. Initially accompanied by
2539
3502
  * `None`.
2540
3503
  *
3504
+ * @example
3505
+ * import { Chunk, Effect, Stream } from "effect"
3506
+ *
3507
+ * const stream = Stream.zipWithPrevious(Stream.make(1, 2, 3, 4))
3508
+ *
3509
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3510
+ * // [
3511
+ * // [ { _id: 'Option', _tag: 'None' }, 1 ],
3512
+ * // [ { _id: 'Option', _tag: 'Some', value: 1 }, 2 ],
3513
+ * // [ { _id: 'Option', _tag: 'Some', value: 2 }, 3 ],
3514
+ * // [ { _id: 'Option', _tag: 'Some', value: 3 }, 4 ]
3515
+ * // ]
3516
+ *
2541
3517
  * @since 2.0.0
2542
3518
  * @category zipping
2543
3519
  */
@@ -2545,6 +3521,35 @@ const zipWithPrevious = exports.zipWithPrevious = internal.zipWithPrevious;
2545
3521
  /**
2546
3522
  * Zips each element with both the previous and next element.
2547
3523
  *
3524
+ * @example
3525
+ * import { Chunk, Effect, Stream } from "effect"
3526
+ *
3527
+ * const stream = Stream.zipWithPreviousAndNext(Stream.make(1, 2, 3, 4))
3528
+ *
3529
+ * // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
3530
+ * // [
3531
+ * // [
3532
+ * // { _id: 'Option', _tag: 'None' },
3533
+ * // 1,
3534
+ * // { _id: 'Option', _tag: 'Some', value: 2 }
3535
+ * // ],
3536
+ * // [
3537
+ * // { _id: 'Option', _tag: 'Some', value: 1 },
3538
+ * // 2,
3539
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
3540
+ * // ],
3541
+ * // [
3542
+ * // { _id: 'Option', _tag: 'Some', value: 2 },
3543
+ * // 3,
3544
+ * // { _id: 'Option', _tag: 'Some', value: 4 }
3545
+ * // ],
3546
+ * // [
3547
+ * // { _id: 'Option', _tag: 'Some', value: 3 },
3548
+ * // 4,
3549
+ * // { _id: 'Option', _tag: 'None' }
3550
+ * // ]
3551
+ * // ]
3552
+ *
2548
3553
  * @since 2.0.0
2549
3554
  * @category zipping
2550
3555
  */
@@ -2552,6 +3557,19 @@ const zipWithPreviousAndNext = exports.zipWithPreviousAndNext = internal.zipWith
2552
3557
  /**
2553
3558
  * Zips this stream together with the index of elements.
2554
3559
  *
3560
+ * @example
3561
+ * import { Effect, Stream } from "effect"
3562
+ *
3563
+ * const stream = Stream.make("Mary", "James", "Robert", "Patricia")
3564
+ *
3565
+ * const indexedStream = Stream.zipWithIndex(stream)
3566
+ *
3567
+ * // Effect.runPromise(Stream.runCollect(indexedStream)).then(console.log)
3568
+ * // {
3569
+ * // _id: 'Chunk',
3570
+ * // values: [ [ 'Mary', 0 ], [ 'James', 1 ], [ 'Robert', 2 ], [ 'Patricia', 3 ] ]
3571
+ * // }
3572
+ *
2555
3573
  * @since 2.0.0
2556
3574
  * @category zipping
2557
3575
  */