effect 4.0.0 → 4.0.2

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 (1001) hide show
  1. package/ai-docs/package.json +2 -2
  2. package/ai-docs/tsconfig.json +2 -1
  3. package/dist/Array.d.ts +339 -0
  4. package/dist/Array.d.ts.map +1 -1
  5. package/dist/Array.js +143 -3
  6. package/dist/Array.js.map +1 -1
  7. package/dist/BigDecimal.d.ts +88 -0
  8. package/dist/BigDecimal.d.ts.map +1 -1
  9. package/dist/BigDecimal.js +44 -0
  10. package/dist/BigDecimal.js.map +1 -1
  11. package/dist/BigInt.d.ts +68 -0
  12. package/dist/BigInt.d.ts.map +1 -1
  13. package/dist/BigInt.js +36 -0
  14. package/dist/BigInt.js.map +1 -1
  15. package/dist/Boolean.d.ts +34 -0
  16. package/dist/Boolean.d.ts.map +1 -1
  17. package/dist/Boolean.js +18 -0
  18. package/dist/Boolean.js.map +1 -1
  19. package/dist/Brand.d.ts +9 -0
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +6 -0
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ByteSize.d.ts +86 -0
  24. package/dist/ByteSize.d.ts.map +1 -1
  25. package/dist/ByteSize.js +51 -0
  26. package/dist/ByteSize.js.map +1 -1
  27. package/dist/Cache.d.ts +38 -1
  28. package/dist/Cache.d.ts.map +1 -1
  29. package/dist/Cache.js +47 -23
  30. package/dist/Cache.js.map +1 -1
  31. package/dist/Cause.d.ts +82 -0
  32. package/dist/Cause.d.ts.map +1 -1
  33. package/dist/Cause.js +61 -1
  34. package/dist/Cause.js.map +1 -1
  35. package/dist/Channel.d.ts +327 -4
  36. package/dist/Channel.d.ts.map +1 -1
  37. package/dist/Channel.js +168 -8
  38. package/dist/Channel.js.map +1 -1
  39. package/dist/ChannelSchema.d.ts +11 -0
  40. package/dist/ChannelSchema.d.ts.map +1 -1
  41. package/dist/ChannelSchema.js +6 -0
  42. package/dist/ChannelSchema.js.map +1 -1
  43. package/dist/Chunk.d.ts +192 -0
  44. package/dist/Chunk.d.ts.map +1 -1
  45. package/dist/Chunk.js +78 -0
  46. package/dist/Chunk.js.map +1 -1
  47. package/dist/Clock.d.ts +7 -0
  48. package/dist/Clock.d.ts.map +1 -1
  49. package/dist/Clock.js +5 -0
  50. package/dist/Clock.js.map +1 -1
  51. package/dist/Combiner.d.ts +10 -0
  52. package/dist/Combiner.d.ts.map +1 -1
  53. package/dist/Combiner.js +8 -0
  54. package/dist/Combiner.js.map +1 -1
  55. package/dist/Config.d.ts +52 -12
  56. package/dist/Config.d.ts.map +1 -1
  57. package/dist/Config.js +55 -5
  58. package/dist/Config.js.map +1 -1
  59. package/dist/ConfigProvider.d.ts +28 -0
  60. package/dist/ConfigProvider.d.ts.map +1 -1
  61. package/dist/ConfigProvider.js +19 -0
  62. package/dist/ConfigProvider.js.map +1 -1
  63. package/dist/Console.d.ts +22 -0
  64. package/dist/Console.d.ts.map +1 -1
  65. package/dist/Console.js +20 -0
  66. package/dist/Console.js.map +1 -1
  67. package/dist/Context.d.ts +50 -0
  68. package/dist/Context.d.ts.map +1 -1
  69. package/dist/Context.js +21 -0
  70. package/dist/Context.js.map +1 -1
  71. package/dist/Cron.d.ts +16 -0
  72. package/dist/Cron.d.ts.map +1 -1
  73. package/dist/Cron.js +26 -1
  74. package/dist/Cron.js.map +1 -1
  75. package/dist/Crypto.d.ts +5 -0
  76. package/dist/Crypto.d.ts.map +1 -1
  77. package/dist/Crypto.js +3 -0
  78. package/dist/Crypto.js.map +1 -1
  79. package/dist/Data.d.ts +13 -0
  80. package/dist/Data.d.ts.map +1 -1
  81. package/dist/Data.js +5 -0
  82. package/dist/Data.js.map +1 -1
  83. package/dist/DateTime.d.ts +171 -0
  84. package/dist/DateTime.d.ts.map +1 -1
  85. package/dist/DateTime.js +89 -0
  86. package/dist/DateTime.js.map +1 -1
  87. package/dist/Deferred.d.ts +51 -0
  88. package/dist/Deferred.d.ts.map +1 -1
  89. package/dist/Deferred.js +22 -0
  90. package/dist/Deferred.js.map +1 -1
  91. package/dist/Differ.d.ts +2 -0
  92. package/dist/Differ.d.ts.map +1 -1
  93. package/dist/Differ.js +1 -0
  94. package/dist/Duration.d.ts +90 -0
  95. package/dist/Duration.d.ts.map +1 -1
  96. package/dist/Duration.js +53 -0
  97. package/dist/Duration.js.map +1 -1
  98. package/dist/Effect.d.ts +677 -22
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +251 -10
  101. package/dist/Effect.js.map +1 -1
  102. package/dist/Effectable.d.ts +4 -0
  103. package/dist/Effectable.d.ts.map +1 -1
  104. package/dist/Effectable.js +3 -0
  105. package/dist/Effectable.js.map +1 -1
  106. package/dist/Equal.d.ts +8 -0
  107. package/dist/Equal.d.ts.map +1 -1
  108. package/dist/Equal.js +9 -1
  109. package/dist/Equal.js.map +1 -1
  110. package/dist/Equivalence.d.ts +21 -0
  111. package/dist/Equivalence.d.ts.map +1 -1
  112. package/dist/Equivalence.js +16 -0
  113. package/dist/Equivalence.js.map +1 -1
  114. package/dist/ErrorReporter.d.ts +36 -0
  115. package/dist/ErrorReporter.d.ts.map +1 -1
  116. package/dist/ErrorReporter.js +11 -0
  117. package/dist/ErrorReporter.js.map +1 -1
  118. package/dist/ExecutionPlan.d.ts +49 -8
  119. package/dist/ExecutionPlan.d.ts.map +1 -1
  120. package/dist/ExecutionPlan.js +7 -0
  121. package/dist/ExecutionPlan.js.map +1 -1
  122. package/dist/Exit.d.ts +40 -0
  123. package/dist/Exit.d.ts.map +1 -1
  124. package/dist/Exit.js +27 -0
  125. package/dist/Exit.js.map +1 -1
  126. package/dist/Fiber.d.ts +20 -0
  127. package/dist/Fiber.d.ts.map +1 -1
  128. package/dist/Fiber.js +11 -0
  129. package/dist/Fiber.js.map +1 -1
  130. package/dist/FiberHandle.d.ts +21 -0
  131. package/dist/FiberHandle.d.ts.map +1 -1
  132. package/dist/FiberHandle.js +21 -4
  133. package/dist/FiberHandle.js.map +1 -1
  134. package/dist/FiberMap.d.ts +35 -0
  135. package/dist/FiberMap.d.ts.map +1 -1
  136. package/dist/FiberMap.js +19 -0
  137. package/dist/FiberMap.js.map +1 -1
  138. package/dist/FiberSet.d.ts +20 -0
  139. package/dist/FiberSet.d.ts.map +1 -1
  140. package/dist/FiberSet.js +14 -0
  141. package/dist/FiberSet.js.map +1 -1
  142. package/dist/FileSystem.d.ts +15 -0
  143. package/dist/FileSystem.d.ts.map +1 -1
  144. package/dist/FileSystem.js +8 -0
  145. package/dist/FileSystem.js.map +1 -1
  146. package/dist/Filter.d.ts +55 -0
  147. package/dist/Filter.d.ts.map +1 -1
  148. package/dist/Filter.js +28 -0
  149. package/dist/Filter.js.map +1 -1
  150. package/dist/Formatter.d.ts +3 -0
  151. package/dist/Formatter.d.ts.map +1 -1
  152. package/dist/Formatter.js +39 -1
  153. package/dist/Formatter.js.map +1 -1
  154. package/dist/Function.d.ts +30 -0
  155. package/dist/Function.d.ts.map +1 -1
  156. package/dist/Function.js +20 -0
  157. package/dist/Function.js.map +1 -1
  158. package/dist/Graph.d.ts +247 -12
  159. package/dist/Graph.d.ts.map +1 -1
  160. package/dist/Graph.js +149 -28
  161. package/dist/Graph.js.map +1 -1
  162. package/dist/HKT.d.ts +5 -0
  163. package/dist/HKT.d.ts.map +1 -1
  164. package/dist/Hash.d.ts +14 -0
  165. package/dist/Hash.d.ts.map +1 -1
  166. package/dist/Hash.js +12 -0
  167. package/dist/Hash.js.map +1 -1
  168. package/dist/HashMap.d.ts +91 -0
  169. package/dist/HashMap.d.ts.map +1 -1
  170. package/dist/HashMap.js +39 -0
  171. package/dist/HashMap.js.map +1 -1
  172. package/dist/HashRing.d.ts +17 -0
  173. package/dist/HashRing.d.ts.map +1 -1
  174. package/dist/HashRing.js +22 -5
  175. package/dist/HashRing.js.map +1 -1
  176. package/dist/HashSet.d.ts +49 -0
  177. package/dist/HashSet.d.ts.map +1 -1
  178. package/dist/HashSet.js +19 -0
  179. package/dist/HashSet.js.map +1 -1
  180. package/dist/Inspectable.d.ts +7 -0
  181. package/dist/Inspectable.d.ts.map +1 -1
  182. package/dist/Inspectable.js +6 -0
  183. package/dist/Inspectable.js.map +1 -1
  184. package/dist/Iterable.d.ts +127 -0
  185. package/dist/Iterable.d.ts.map +1 -1
  186. package/dist/Iterable.js +51 -0
  187. package/dist/Iterable.js.map +1 -1
  188. package/dist/JsonPatch.d.ts +4 -0
  189. package/dist/JsonPatch.d.ts.map +1 -1
  190. package/dist/JsonPatch.js +3 -0
  191. package/dist/JsonPatch.js.map +1 -1
  192. package/dist/JsonPointer.d.ts +5 -0
  193. package/dist/JsonPointer.d.ts.map +1 -1
  194. package/dist/JsonPointer.js +5 -0
  195. package/dist/JsonPointer.js.map +1 -1
  196. package/dist/JsonSchema.d.ts +16 -0
  197. package/dist/JsonSchema.d.ts.map +1 -1
  198. package/dist/JsonSchema.js +11 -0
  199. package/dist/JsonSchema.js.map +1 -1
  200. package/dist/Latch.d.ts +14 -0
  201. package/dist/Latch.d.ts.map +1 -1
  202. package/dist/Latch.js +10 -0
  203. package/dist/Latch.js.map +1 -1
  204. package/dist/Layer.d.ts +100 -0
  205. package/dist/Layer.d.ts.map +1 -1
  206. package/dist/Layer.js +45 -1
  207. package/dist/Layer.js.map +1 -1
  208. package/dist/LayerMap.d.ts +7 -0
  209. package/dist/LayerMap.d.ts.map +1 -1
  210. package/dist/LayerMap.js +4 -0
  211. package/dist/LayerMap.js.map +1 -1
  212. package/dist/LayerRef.d.ts +5 -0
  213. package/dist/LayerRef.d.ts.map +1 -1
  214. package/dist/LayerRef.js +3 -0
  215. package/dist/LayerRef.js.map +1 -1
  216. package/dist/LogLevel.d.ts +20 -0
  217. package/dist/LogLevel.d.ts.map +1 -1
  218. package/dist/LogLevel.js +9 -0
  219. package/dist/LogLevel.js.map +1 -1
  220. package/dist/Logger.d.ts +25 -0
  221. package/dist/Logger.d.ts.map +1 -1
  222. package/dist/Logger.js +30 -4
  223. package/dist/Logger.js.map +1 -1
  224. package/dist/ManagedRuntime.d.ts +5 -0
  225. package/dist/ManagedRuntime.d.ts.map +1 -1
  226. package/dist/ManagedRuntime.js +9 -1
  227. package/dist/ManagedRuntime.js.map +1 -1
  228. package/dist/Match.d.ts +51 -0
  229. package/dist/Match.d.ts.map +1 -1
  230. package/dist/Match.js +39 -0
  231. package/dist/Match.js.map +1 -1
  232. package/dist/Metric.d.ts +59 -0
  233. package/dist/Metric.d.ts.map +1 -1
  234. package/dist/Metric.js +31 -0
  235. package/dist/Metric.js.map +1 -1
  236. package/dist/MutableHashMap.d.ts +32 -0
  237. package/dist/MutableHashMap.d.ts.map +1 -1
  238. package/dist/MutableHashMap.js +16 -0
  239. package/dist/MutableHashMap.js.map +1 -1
  240. package/dist/MutableHashSet.d.ts +16 -0
  241. package/dist/MutableHashSet.d.ts.map +1 -1
  242. package/dist/MutableHashSet.js +10 -0
  243. package/dist/MutableHashSet.js.map +1 -1
  244. package/dist/MutableList.d.ts +20 -0
  245. package/dist/MutableList.d.ts.map +1 -1
  246. package/dist/MutableList.js +18 -0
  247. package/dist/MutableList.js.map +1 -1
  248. package/dist/MutableRef.d.ts +31 -0
  249. package/dist/MutableRef.d.ts.map +1 -1
  250. package/dist/MutableRef.js +17 -0
  251. package/dist/MutableRef.js.map +1 -1
  252. package/dist/Newtype.d.ts +9 -0
  253. package/dist/Newtype.d.ts.map +1 -1
  254. package/dist/Newtype.js +6 -0
  255. package/dist/Newtype.js.map +1 -1
  256. package/dist/NonEmptyIterable.d.ts +4 -0
  257. package/dist/NonEmptyIterable.d.ts.map +1 -1
  258. package/dist/NonEmptyIterable.js +2 -0
  259. package/dist/NonEmptyIterable.js.map +1 -1
  260. package/dist/Number.d.ts +61 -0
  261. package/dist/Number.d.ts.map +1 -1
  262. package/dist/Number.js +31 -0
  263. package/dist/Number.js.map +1 -1
  264. package/dist/Optic.d.ts +41 -0
  265. package/dist/Optic.d.ts.map +1 -1
  266. package/dist/Optic.js +20 -0
  267. package/dist/Optic.js.map +1 -1
  268. package/dist/Option.d.ts +134 -0
  269. package/dist/Option.d.ts.map +1 -1
  270. package/dist/Option.js +61 -0
  271. package/dist/Option.js.map +1 -1
  272. package/dist/Order.d.ts +29 -0
  273. package/dist/Order.d.ts.map +1 -1
  274. package/dist/Order.js +24 -0
  275. package/dist/Order.js.map +1 -1
  276. package/dist/Ordering.d.ts +7 -0
  277. package/dist/Ordering.d.ts.map +1 -1
  278. package/dist/Ordering.js +3 -0
  279. package/dist/Ordering.js.map +1 -1
  280. package/dist/PartitionedSemaphore.d.ts +24 -0
  281. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  282. package/dist/PartitionedSemaphore.js +47 -21
  283. package/dist/PartitionedSemaphore.js.map +1 -1
  284. package/dist/Path.d.ts +6 -0
  285. package/dist/Path.d.ts.map +1 -1
  286. package/dist/Path.js +4 -0
  287. package/dist/Path.js.map +1 -1
  288. package/dist/Pipeable.d.ts +7 -0
  289. package/dist/Pipeable.d.ts.map +1 -1
  290. package/dist/Pipeable.js +5 -0
  291. package/dist/Pipeable.js.map +1 -1
  292. package/dist/PlatformError.d.ts +8 -0
  293. package/dist/PlatformError.d.ts.map +1 -1
  294. package/dist/PlatformError.js +7 -0
  295. package/dist/PlatformError.js.map +1 -1
  296. package/dist/Pool.d.ts +28 -5
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +42 -42
  299. package/dist/Pool.js.map +1 -1
  300. package/dist/Predicate.d.ts +84 -0
  301. package/dist/Predicate.d.ts.map +1 -1
  302. package/dist/Predicate.js +48 -0
  303. package/dist/Predicate.js.map +1 -1
  304. package/dist/PrimaryKey.d.ts +5 -0
  305. package/dist/PrimaryKey.d.ts.map +1 -1
  306. package/dist/PrimaryKey.js +4 -0
  307. package/dist/PrimaryKey.js.map +1 -1
  308. package/dist/PubSub.d.ts +67 -5
  309. package/dist/PubSub.d.ts.map +1 -1
  310. package/dist/PubSub.js +60 -8
  311. package/dist/PubSub.js.map +1 -1
  312. package/dist/Pull.d.ts +20 -0
  313. package/dist/Pull.d.ts.map +1 -1
  314. package/dist/Pull.js +10 -0
  315. package/dist/Pull.js.map +1 -1
  316. package/dist/Queue.d.ts +60 -0
  317. package/dist/Queue.d.ts.map +1 -1
  318. package/dist/Queue.js +58 -8
  319. package/dist/Queue.js.map +1 -1
  320. package/dist/Random.d.ts +13 -0
  321. package/dist/Random.d.ts.map +1 -1
  322. package/dist/Random.js +9 -0
  323. package/dist/Random.js.map +1 -1
  324. package/dist/RcMap.d.ts +23 -0
  325. package/dist/RcMap.d.ts.map +1 -1
  326. package/dist/RcMap.js +24 -1
  327. package/dist/RcMap.js.map +1 -1
  328. package/dist/RcRef.d.ts +6 -0
  329. package/dist/RcRef.d.ts.map +1 -1
  330. package/dist/RcRef.js +3 -0
  331. package/dist/RcRef.js.map +1 -1
  332. package/dist/Record.d.ts +100 -0
  333. package/dist/Record.d.ts.map +1 -1
  334. package/dist/Record.js +43 -0
  335. package/dist/Record.js.map +1 -1
  336. package/dist/Redactable.d.ts +6 -0
  337. package/dist/Redactable.d.ts.map +1 -1
  338. package/dist/Redactable.js +4 -0
  339. package/dist/Redactable.js.map +1 -1
  340. package/dist/Redacted.d.ts +8 -0
  341. package/dist/Redacted.d.ts.map +1 -1
  342. package/dist/Redacted.js +6 -0
  343. package/dist/Redacted.js.map +1 -1
  344. package/dist/Reducer.d.ts +4 -0
  345. package/dist/Reducer.d.ts.map +1 -1
  346. package/dist/Reducer.js +3 -0
  347. package/dist/Reducer.js.map +1 -1
  348. package/dist/Ref.d.ts +20 -0
  349. package/dist/Ref.d.ts.map +1 -1
  350. package/dist/Ref.js +16 -0
  351. package/dist/Ref.js.map +1 -1
  352. package/dist/References.d.ts +21 -0
  353. package/dist/References.d.ts.map +1 -1
  354. package/dist/References.js +19 -0
  355. package/dist/References.js.map +1 -1
  356. package/dist/RegExp.d.ts +3 -0
  357. package/dist/RegExp.d.ts.map +1 -1
  358. package/dist/RegExp.js +4 -0
  359. package/dist/RegExp.js.map +1 -1
  360. package/dist/Request.d.ts +32 -0
  361. package/dist/Request.d.ts.map +1 -1
  362. package/dist/Request.js +12 -0
  363. package/dist/Request.js.map +1 -1
  364. package/dist/RequestResolver.d.ts +42 -0
  365. package/dist/RequestResolver.d.ts.map +1 -1
  366. package/dist/RequestResolver.js +27 -6
  367. package/dist/RequestResolver.js.map +1 -1
  368. package/dist/Resource.d.ts +6 -0
  369. package/dist/Resource.d.ts.map +1 -1
  370. package/dist/Resource.js +6 -0
  371. package/dist/Resource.js.map +1 -1
  372. package/dist/Result.d.ts +91 -0
  373. package/dist/Result.d.ts.map +1 -1
  374. package/dist/Result.js +41 -0
  375. package/dist/Result.js.map +1 -1
  376. package/dist/Runtime.d.ts +9 -0
  377. package/dist/Runtime.d.ts.map +1 -1
  378. package/dist/Runtime.js +7 -0
  379. package/dist/Runtime.js.map +1 -1
  380. package/dist/Schedule.d.ts +57 -0
  381. package/dist/Schedule.d.ts.map +1 -1
  382. package/dist/Schedule.js +32 -0
  383. package/dist/Schedule.js.map +1 -1
  384. package/dist/Scheduler.d.ts +7 -0
  385. package/dist/Scheduler.d.ts.map +1 -1
  386. package/dist/Scheduler.js +5 -0
  387. package/dist/Scheduler.js.map +1 -1
  388. package/dist/Schema.d.ts +496 -1
  389. package/dist/Schema.d.ts.map +1 -1
  390. package/dist/Schema.js +280 -1
  391. package/dist/Schema.js.map +1 -1
  392. package/dist/SchemaAST.d.ts +107 -0
  393. package/dist/SchemaAST.d.ts.map +1 -1
  394. package/dist/SchemaAST.js +81 -1
  395. package/dist/SchemaAST.js.map +1 -1
  396. package/dist/SchemaGetter.d.ts +69 -2
  397. package/dist/SchemaGetter.d.ts.map +1 -1
  398. package/dist/SchemaGetter.js +63 -4
  399. package/dist/SchemaGetter.js.map +1 -1
  400. package/dist/SchemaIssue.d.ts +33 -0
  401. package/dist/SchemaIssue.d.ts.map +1 -1
  402. package/dist/SchemaIssue.js +18 -0
  403. package/dist/SchemaIssue.js.map +1 -1
  404. package/dist/SchemaParser.d.ts +25 -0
  405. package/dist/SchemaParser.d.ts.map +1 -1
  406. package/dist/SchemaParser.js +26 -0
  407. package/dist/SchemaParser.js.map +1 -1
  408. package/dist/SchemaRepresentation.d.ts +147 -0
  409. package/dist/SchemaRepresentation.d.ts.map +1 -1
  410. package/dist/SchemaRepresentation.js +99 -0
  411. package/dist/SchemaRepresentation.js.map +1 -1
  412. package/dist/SchemaTransformation.d.ts +53 -0
  413. package/dist/SchemaTransformation.d.ts.map +1 -1
  414. package/dist/SchemaTransformation.js +46 -0
  415. package/dist/SchemaTransformation.js.map +1 -1
  416. package/dist/Scope.d.ts +19 -0
  417. package/dist/Scope.d.ts.map +1 -1
  418. package/dist/Scope.js +12 -0
  419. package/dist/Scope.js.map +1 -1
  420. package/dist/ScopedCache.d.ts +34 -0
  421. package/dist/ScopedCache.d.ts.map +1 -1
  422. package/dist/ScopedCache.js +50 -19
  423. package/dist/ScopedCache.js.map +1 -1
  424. package/dist/ScopedRef.d.ts +9 -0
  425. package/dist/ScopedRef.d.ts.map +1 -1
  426. package/dist/ScopedRef.js +6 -0
  427. package/dist/ScopedRef.js.map +1 -1
  428. package/dist/Semaphore.d.ts +26 -0
  429. package/dist/Semaphore.d.ts.map +1 -1
  430. package/dist/Semaphore.js +10 -0
  431. package/dist/Semaphore.js.map +1 -1
  432. package/dist/Sink.d.ts +125 -1
  433. package/dist/Sink.d.ts.map +1 -1
  434. package/dist/Sink.js +75 -1
  435. package/dist/Sink.js.map +1 -1
  436. package/dist/StandardSchema.d.ts +1 -0
  437. package/dist/StandardSchema.d.ts.map +1 -1
  438. package/dist/StandardSchema.js +1 -0
  439. package/dist/Stdio.d.ts +7 -0
  440. package/dist/Stdio.d.ts.map +1 -1
  441. package/dist/Stdio.js +5 -0
  442. package/dist/Stdio.js.map +1 -1
  443. package/dist/Stream.d.ts +603 -6
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +316 -57
  446. package/dist/Stream.js.map +1 -1
  447. package/dist/String.d.ts +87 -0
  448. package/dist/String.d.ts.map +1 -1
  449. package/dist/String.js +61 -0
  450. package/dist/String.js.map +1 -1
  451. package/dist/Struct.d.ts +46 -0
  452. package/dist/Struct.d.ts.map +1 -1
  453. package/dist/Struct.js +19 -0
  454. package/dist/Struct.js.map +1 -1
  455. package/dist/SubscriptionRef.d.ts +65 -0
  456. package/dist/SubscriptionRef.d.ts.map +1 -1
  457. package/dist/SubscriptionRef.js +25 -0
  458. package/dist/SubscriptionRef.js.map +1 -1
  459. package/dist/Symbol.d.ts +2 -0
  460. package/dist/Symbol.d.ts.map +1 -1
  461. package/dist/Symbol.js +2 -0
  462. package/dist/Symbol.js.map +1 -1
  463. package/dist/SynchronizedRef.d.ts +63 -0
  464. package/dist/SynchronizedRef.d.ts.map +1 -1
  465. package/dist/SynchronizedRef.js +24 -0
  466. package/dist/SynchronizedRef.js.map +1 -1
  467. package/dist/Take.d.ts +3 -0
  468. package/dist/Take.d.ts.map +1 -1
  469. package/dist/Take.js +1 -0
  470. package/dist/Take.js.map +1 -1
  471. package/dist/Terminal.d.ts +8 -0
  472. package/dist/Terminal.d.ts.map +1 -1
  473. package/dist/Terminal.js +4 -0
  474. package/dist/Terminal.js.map +1 -1
  475. package/dist/Tracer.d.ts +23 -0
  476. package/dist/Tracer.d.ts.map +1 -1
  477. package/dist/Tracer.js +12 -0
  478. package/dist/Tracer.js.map +1 -1
  479. package/dist/Trie.d.ts +68 -0
  480. package/dist/Trie.d.ts.map +1 -1
  481. package/dist/Trie.js +28 -0
  482. package/dist/Trie.js.map +1 -1
  483. package/dist/Tuple.d.ts +38 -0
  484. package/dist/Tuple.d.ts.map +1 -1
  485. package/dist/Tuple.js +18 -0
  486. package/dist/Tuple.js.map +1 -1
  487. package/dist/TxChunk.d.ts +52 -0
  488. package/dist/TxChunk.d.ts.map +1 -1
  489. package/dist/TxChunk.js +23 -0
  490. package/dist/TxChunk.js.map +1 -1
  491. package/dist/TxDeferred.d.ts +15 -0
  492. package/dist/TxDeferred.d.ts.map +1 -1
  493. package/dist/TxDeferred.js +8 -0
  494. package/dist/TxDeferred.js.map +1 -1
  495. package/dist/TxHashMap.d.ts +83 -0
  496. package/dist/TxHashMap.d.ts.map +1 -1
  497. package/dist/TxHashMap.js +52 -7
  498. package/dist/TxHashMap.js.map +1 -1
  499. package/dist/TxHashSet.d.ts +51 -0
  500. package/dist/TxHashSet.d.ts.map +1 -1
  501. package/dist/TxHashSet.js +29 -4
  502. package/dist/TxHashSet.js.map +1 -1
  503. package/dist/TxPriorityQueue.d.ts +30 -0
  504. package/dist/TxPriorityQueue.d.ts.map +1 -1
  505. package/dist/TxPriorityQueue.js +22 -1
  506. package/dist/TxPriorityQueue.js.map +1 -1
  507. package/dist/TxPubSub.d.ts +25 -0
  508. package/dist/TxPubSub.d.ts.map +1 -1
  509. package/dist/TxPubSub.js +19 -0
  510. package/dist/TxPubSub.js.map +1 -1
  511. package/dist/TxQueue.d.ts +51 -0
  512. package/dist/TxQueue.d.ts.map +1 -1
  513. package/dist/TxQueue.js +30 -0
  514. package/dist/TxQueue.js.map +1 -1
  515. package/dist/TxReentrantLock.d.ts +24 -0
  516. package/dist/TxReentrantLock.d.ts.map +1 -1
  517. package/dist/TxReentrantLock.js +32 -18
  518. package/dist/TxReentrantLock.js.map +1 -1
  519. package/dist/TxRef.d.ts +14 -0
  520. package/dist/TxRef.d.ts.map +1 -1
  521. package/dist/TxRef.js +7 -0
  522. package/dist/TxRef.js.map +1 -1
  523. package/dist/TxSemaphore.d.ts +25 -0
  524. package/dist/TxSemaphore.d.ts.map +1 -1
  525. package/dist/TxSemaphore.js +29 -13
  526. package/dist/TxSemaphore.js.map +1 -1
  527. package/dist/TxSubscriptionRef.d.ts +25 -0
  528. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  529. package/dist/TxSubscriptionRef.js +12 -0
  530. package/dist/TxSubscriptionRef.js.map +1 -1
  531. package/dist/Types.d.ts +36 -0
  532. package/dist/Types.d.ts.map +1 -1
  533. package/dist/Types.js +1 -0
  534. package/dist/UndefinedOr.d.ts +15 -0
  535. package/dist/UndefinedOr.d.ts.map +1 -1
  536. package/dist/UndefinedOr.js +9 -0
  537. package/dist/UndefinedOr.js.map +1 -1
  538. package/dist/Unify.d.ts +15 -0
  539. package/dist/Unify.d.ts.map +1 -1
  540. package/dist/Unify.js +2 -0
  541. package/dist/Unify.js.map +1 -1
  542. package/dist/Utils.d.ts +4 -0
  543. package/dist/Utils.d.ts.map +1 -1
  544. package/dist/Utils.js +1 -0
  545. package/dist/Utils.js.map +1 -1
  546. package/dist/Version.d.ts +26 -0
  547. package/dist/Version.d.ts.map +1 -0
  548. package/dist/Version.js +36 -0
  549. package/dist/Version.js.map +1 -0
  550. package/dist/ai/Chat.js +1 -1
  551. package/dist/ai/Chat.js.map +1 -1
  552. package/dist/ai/DecisionModel.d.ts +22 -0
  553. package/dist/ai/DecisionModel.d.ts.map +1 -1
  554. package/dist/ai/DecisionModel.js +22 -4
  555. package/dist/ai/DecisionModel.js.map +1 -1
  556. package/dist/ai/LanguageModel.d.ts +8 -0
  557. package/dist/ai/LanguageModel.d.ts.map +1 -1
  558. package/dist/ai/LanguageModel.js +27 -15
  559. package/dist/ai/LanguageModel.js.map +1 -1
  560. package/dist/ai/McpSchema.d.ts +508 -508
  561. package/dist/ai/McpSchema.d.ts.map +1 -1
  562. package/dist/ai/McpSchema.js +1 -1
  563. package/dist/ai/McpSchema.js.map +1 -1
  564. package/dist/ai/McpServer.d.ts +32 -11
  565. package/dist/ai/McpServer.d.ts.map +1 -1
  566. package/dist/ai/McpServer.js +224 -172
  567. package/dist/ai/McpServer.js.map +1 -1
  568. package/dist/ai/Response.d.ts.map +1 -1
  569. package/dist/ai/Response.js +22 -12
  570. package/dist/ai/Response.js.map +1 -1
  571. package/dist/ai/Telemetry.d.ts +49 -41
  572. package/dist/ai/Telemetry.d.ts.map +1 -1
  573. package/dist/ai/Telemetry.js +6 -8
  574. package/dist/ai/Telemetry.js.map +1 -1
  575. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -0
  576. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  577. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -0
  578. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  579. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +1 -0
  580. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  581. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +1 -0
  582. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  583. package/dist/ai/internal/mcpRuntime.js +79 -46
  584. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  585. package/dist/ai/internal/mcpSchema/v2024_11_05.js +3 -1
  586. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  587. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  588. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  589. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  590. package/dist/cluster/ClusterWorkflowEngine.js +11 -2
  591. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  592. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  593. package/dist/cluster/K8sHttpClient.js +5 -2
  594. package/dist/cluster/K8sHttpClient.js.map +1 -1
  595. package/dist/cluster/Sharding.d.ts.map +1 -1
  596. package/dist/cluster/Sharding.js +14 -7
  597. package/dist/cluster/Sharding.js.map +1 -1
  598. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  599. package/dist/cluster/SqlMessageStorage.js +21 -12
  600. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  601. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  602. package/dist/cluster/SqlRunnerStorage.js +30 -44
  603. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  604. package/dist/cluster/internal/entityManager.js +63 -62
  605. package/dist/cluster/internal/entityManager.js.map +1 -1
  606. package/dist/cluster/internal/interruptors.js +8 -0
  607. package/dist/cluster/internal/interruptors.js.map +1 -1
  608. package/dist/cluster/internal/resourceMap.js +39 -14
  609. package/dist/cluster/internal/resourceMap.js.map +1 -1
  610. package/dist/cluster/internal/resourceRef.js +168 -87
  611. package/dist/cluster/internal/resourceRef.js.map +1 -1
  612. package/dist/encoding/Base64.d.ts +4 -0
  613. package/dist/encoding/Base64.d.ts.map +1 -1
  614. package/dist/encoding/Base64.js +4 -0
  615. package/dist/encoding/Base64.js.map +1 -1
  616. package/dist/encoding/Base64Url.d.ts +4 -0
  617. package/dist/encoding/Base64Url.d.ts.map +1 -1
  618. package/dist/encoding/Base64Url.js +4 -0
  619. package/dist/encoding/Base64Url.js.map +1 -1
  620. package/dist/encoding/EncodingError.d.ts +4 -0
  621. package/dist/encoding/EncodingError.d.ts.map +1 -1
  622. package/dist/encoding/EncodingError.js +4 -0
  623. package/dist/encoding/EncodingError.js.map +1 -1
  624. package/dist/encoding/Hex.d.ts +5 -0
  625. package/dist/encoding/Hex.d.ts.map +1 -1
  626. package/dist/encoding/Hex.js +5 -0
  627. package/dist/encoding/Hex.js.map +1 -1
  628. package/dist/encoding/Toml.js +2 -2
  629. package/dist/encoding/Toml.js.map +1 -1
  630. package/dist/encoding/Yaml.d.ts.map +1 -1
  631. package/dist/encoding/Yaml.js +6 -4
  632. package/dist/encoding/Yaml.js.map +1 -1
  633. package/dist/encoding/index.d.ts +4 -0
  634. package/dist/encoding/index.d.ts.map +1 -1
  635. package/dist/encoding/index.js +4 -0
  636. package/dist/encoding/index.js.map +1 -1
  637. package/dist/eventlog/SqlEventJournal.js +8 -4
  638. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  639. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  640. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  641. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  642. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  643. package/dist/http/Headers.d.ts +3 -1
  644. package/dist/http/Headers.d.ts.map +1 -1
  645. package/dist/http/Headers.js +4 -2
  646. package/dist/http/Headers.js.map +1 -1
  647. package/dist/http/HttpClient.d.ts +9 -0
  648. package/dist/http/HttpClient.d.ts.map +1 -1
  649. package/dist/http/HttpClient.js +40 -21
  650. package/dist/http/HttpClient.js.map +1 -1
  651. package/dist/http/HttpClientResponse.js +3 -1
  652. package/dist/http/HttpClientResponse.js.map +1 -1
  653. package/dist/http/HttpEffect.d.ts +3 -0
  654. package/dist/http/HttpEffect.d.ts.map +1 -1
  655. package/dist/http/HttpEffect.js +5 -2
  656. package/dist/http/HttpEffect.js.map +1 -1
  657. package/dist/http/HttpMiddleware.d.ts +17 -0
  658. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  659. package/dist/http/HttpMiddleware.js +58 -40
  660. package/dist/http/HttpMiddleware.js.map +1 -1
  661. package/dist/http/HttpServer.d.ts +1 -1
  662. package/dist/http/HttpServer.d.ts.map +1 -1
  663. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  664. package/dist/http/HttpStaticServer.js +14 -0
  665. package/dist/http/HttpStaticServer.js.map +1 -1
  666. package/dist/http/HttpTraceContext.d.ts +1 -1
  667. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  668. package/dist/http/HttpTraceContext.js +4 -4
  669. package/dist/http/HttpTraceContext.js.map +1 -1
  670. package/dist/http/internal/tracing.d.ts +2 -0
  671. package/dist/http/internal/tracing.d.ts.map +1 -0
  672. package/dist/http/internal/tracing.js +37 -0
  673. package/dist/http/internal/tracing.js.map +1 -0
  674. package/dist/http-api/HttpApiBuilder.js +2 -1
  675. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  676. package/dist/http-api/HttpApiClient.d.ts +12 -3
  677. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  678. package/dist/http-api/HttpApiClient.js.map +1 -1
  679. package/dist/http-api/HttpApiError.d.ts +4 -2
  680. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  681. package/dist/http-api/HttpApiError.js +7 -3
  682. package/dist/http-api/HttpApiError.js.map +1 -1
  683. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  684. package/dist/http-api/HttpApiSecurity.js +8 -8
  685. package/dist/index.d.ts +155 -0
  686. package/dist/index.d.ts.map +1 -1
  687. package/dist/index.js +155 -0
  688. package/dist/index.js.map +1 -1
  689. package/dist/internal/arbitrary/array.js +3 -3
  690. package/dist/internal/arbitrary/array.js.map +1 -1
  691. package/dist/internal/arbitrary/model.js +26 -11
  692. package/dist/internal/arbitrary/model.js.map +1 -1
  693. package/dist/internal/arbitrary/runner.js +8 -8
  694. package/dist/internal/arbitrary/runner.js.map +1 -1
  695. package/dist/internal/arbitrary/schema.js +4 -5
  696. package/dist/internal/arbitrary/schema.js.map +1 -1
  697. package/dist/internal/core.js +43 -2
  698. package/dist/internal/core.js.map +1 -1
  699. package/dist/internal/dateTime.js +1 -1
  700. package/dist/internal/dateTime.js.map +1 -1
  701. package/dist/internal/effect.js +104 -120
  702. package/dist/internal/effect.js.map +1 -1
  703. package/dist/internal/rcRef.js +59 -23
  704. package/dist/internal/rcRef.js.map +1 -1
  705. package/dist/internal/schedule.js +7 -5
  706. package/dist/internal/schedule.js.map +1 -1
  707. package/dist/internal/schema/fromJsonSchemaDocument.js +11 -8
  708. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  709. package/dist/internal/schema/standardSchema.js +2 -2
  710. package/dist/internal/schema/standardSchema.js.map +1 -1
  711. package/dist/internal/version.d.ts +2 -0
  712. package/dist/internal/version.d.ts.map +1 -0
  713. package/dist/internal/version.js +3 -0
  714. package/dist/internal/version.js.map +1 -0
  715. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  716. package/dist/observability/OtlpExporter.js +5 -6
  717. package/dist/observability/OtlpExporter.js.map +1 -1
  718. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  719. package/dist/observability/OtlpLogger.js +23 -27
  720. package/dist/observability/OtlpLogger.js.map +1 -1
  721. package/dist/observability/OtlpMetrics.d.ts +5 -3
  722. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  723. package/dist/observability/OtlpMetrics.js +21 -94
  724. package/dist/observability/OtlpMetrics.js.map +1 -1
  725. package/dist/observability/OtlpResource.d.ts +4 -3
  726. package/dist/observability/OtlpResource.d.ts.map +1 -1
  727. package/dist/observability/OtlpResource.js +20 -23
  728. package/dist/observability/OtlpResource.js.map +1 -1
  729. package/dist/observability/OtlpTracer.d.ts +1 -0
  730. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  731. package/dist/observability/OtlpTracer.js +32 -36
  732. package/dist/observability/OtlpTracer.js.map +1 -1
  733. package/dist/observability/internal/otlpProtobuf.js +32 -1
  734. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  735. package/dist/reactivity/AsyncResult.d.ts +1 -1
  736. package/dist/reactivity/Atom.d.ts +5 -5
  737. package/dist/reactivity/Atom.d.ts.map +1 -1
  738. package/dist/reactivity/Atom.js +9 -5
  739. package/dist/reactivity/Atom.js.map +1 -1
  740. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  741. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  742. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  743. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  744. package/dist/reactivity/AtomRegistry.js.map +1 -1
  745. package/dist/rpc/RpcClient.d.ts +21 -3
  746. package/dist/rpc/RpcClient.d.ts.map +1 -1
  747. package/dist/rpc/RpcClient.js +58 -34
  748. package/dist/rpc/RpcClient.js.map +1 -1
  749. package/dist/rpc/RpcServer.d.ts.map +1 -1
  750. package/dist/rpc/RpcServer.js +20 -23
  751. package/dist/rpc/RpcServer.js.map +1 -1
  752. package/dist/rpc/Utils.d.ts +2 -3
  753. package/dist/rpc/Utils.d.ts.map +1 -1
  754. package/dist/rpc/Utils.js +3 -4
  755. package/dist/rpc/Utils.js.map +1 -1
  756. package/dist/rpc/internal/tracing.d.ts +2 -0
  757. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  758. package/dist/rpc/internal/tracing.js +18 -0
  759. package/dist/rpc/internal/tracing.js.map +1 -0
  760. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  761. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  762. package/dist/sql/SqlClient.js +4 -4
  763. package/dist/sql/SqlClient.js.map +1 -1
  764. package/dist/sql/Statement.d.ts +21 -1
  765. package/dist/sql/Statement.d.ts.map +1 -1
  766. package/dist/sql/Statement.js +55 -7
  767. package/dist/sql/Statement.js.map +1 -1
  768. package/dist/testing/TestClock.d.ts +8 -0
  769. package/dist/testing/TestClock.d.ts.map +1 -1
  770. package/dist/testing/TestClock.js +7 -0
  771. package/dist/testing/TestClock.js.map +1 -1
  772. package/dist/testing/TestConsole.d.ts +7 -0
  773. package/dist/testing/TestConsole.d.ts.map +1 -1
  774. package/dist/testing/TestConsole.js +6 -0
  775. package/dist/testing/TestConsole.js.map +1 -1
  776. package/dist/testing/index.d.ts +3 -0
  777. package/dist/testing/index.d.ts.map +1 -1
  778. package/dist/testing/index.js +3 -0
  779. package/dist/testing/index.js.map +1 -1
  780. package/dist/workflow/WorkflowEngine.d.ts +2 -0
  781. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  782. package/dist/workflow/WorkflowEngine.js +1 -0
  783. package/dist/workflow/WorkflowEngine.js.map +1 -1
  784. package/package.json +3 -3
  785. package/src/Array.ts +351 -3
  786. package/src/BigDecimal.ts +88 -0
  787. package/src/BigInt.ts +68 -0
  788. package/src/Boolean.ts +34 -0
  789. package/src/Brand.ts +10 -0
  790. package/src/ByteSize.ts +87 -0
  791. package/src/Cache.ts +72 -24
  792. package/src/Cause.ts +83 -1
  793. package/src/Channel.ts +368 -18
  794. package/src/ChannelSchema.ts +13 -0
  795. package/src/Chunk.ts +193 -0
  796. package/src/Clock.ts +7 -0
  797. package/src/Combiner.ts +10 -0
  798. package/src/Config.ts +82 -8
  799. package/src/ConfigProvider.ts +28 -0
  800. package/src/Console.ts +26 -0
  801. package/src/Context.ts +50 -0
  802. package/src/Cron.ts +32 -1
  803. package/src/Crypto.ts +5 -0
  804. package/src/Data.ts +13 -0
  805. package/src/DateTime.ts +171 -0
  806. package/src/Deferred.ts +51 -0
  807. package/src/Differ.ts +2 -0
  808. package/src/Duration.ts +90 -0
  809. package/src/Effect.ts +692 -27
  810. package/src/Effectable.ts +4 -0
  811. package/src/Equal.ts +12 -1
  812. package/src/Equivalence.ts +22 -0
  813. package/src/ErrorReporter.ts +36 -0
  814. package/src/ExecutionPlan.ts +58 -14
  815. package/src/Exit.ts +40 -0
  816. package/src/Fiber.ts +20 -0
  817. package/src/FiberHandle.ts +29 -4
  818. package/src/FiberMap.ts +38 -0
  819. package/src/FiberSet.ts +21 -0
  820. package/src/FileSystem.ts +16 -0
  821. package/src/Filter.ts +55 -0
  822. package/src/Formatter.ts +42 -1
  823. package/src/Function.ts +30 -0
  824. package/src/Graph.ts +317 -36
  825. package/src/HKT.ts +5 -0
  826. package/src/Hash.ts +15 -0
  827. package/src/HashMap.ts +91 -0
  828. package/src/HashRing.ts +32 -5
  829. package/src/HashSet.ts +53 -0
  830. package/src/Inspectable.ts +8 -0
  831. package/src/Iterable.ts +127 -0
  832. package/src/JsonPatch.ts +5 -0
  833. package/src/JsonPointer.ts +5 -0
  834. package/src/JsonSchema.ts +17 -0
  835. package/src/Latch.ts +14 -0
  836. package/src/Layer.ts +101 -1
  837. package/src/LayerMap.ts +7 -0
  838. package/src/LayerRef.ts +5 -0
  839. package/src/LogLevel.ts +20 -0
  840. package/src/Logger.ts +41 -5
  841. package/src/ManagedRuntime.ts +12 -1
  842. package/src/Match.ts +52 -0
  843. package/src/Metric.ts +69 -0
  844. package/src/MutableHashMap.ts +44 -0
  845. package/src/MutableHashSet.ts +17 -0
  846. package/src/MutableList.ts +21 -0
  847. package/src/MutableRef.ts +32 -0
  848. package/src/Newtype.ts +9 -0
  849. package/src/NonEmptyIterable.ts +4 -0
  850. package/src/Number.ts +61 -0
  851. package/src/Optic.ts +57 -0
  852. package/src/Option.ts +134 -0
  853. package/src/Order.ts +30 -0
  854. package/src/Ordering.ts +7 -0
  855. package/src/PartitionedSemaphore.ts +61 -22
  856. package/src/Path.ts +6 -0
  857. package/src/Pipeable.ts +7 -0
  858. package/src/PlatformError.ts +8 -0
  859. package/src/Pool.ts +48 -37
  860. package/src/Predicate.ts +85 -0
  861. package/src/PrimaryKey.ts +5 -0
  862. package/src/PubSub.ts +90 -9
  863. package/src/Pull.ts +20 -0
  864. package/src/Queue.ts +80 -10
  865. package/src/Random.ts +13 -0
  866. package/src/RcMap.ts +49 -2
  867. package/src/RcRef.ts +6 -0
  868. package/src/Record.ts +100 -0
  869. package/src/Redactable.ts +6 -0
  870. package/src/Redacted.ts +8 -0
  871. package/src/Reducer.ts +4 -0
  872. package/src/Ref.ts +42 -0
  873. package/src/References.ts +21 -0
  874. package/src/RegExp.ts +4 -0
  875. package/src/Request.ts +32 -0
  876. package/src/RequestResolver.ts +59 -10
  877. package/src/Resource.ts +7 -0
  878. package/src/Result.ts +93 -0
  879. package/src/Runtime.ts +10 -0
  880. package/src/Schedule.ts +61 -0
  881. package/src/Scheduler.ts +7 -0
  882. package/src/Schema.ts +499 -4
  883. package/src/SchemaAST.ts +115 -1
  884. package/src/SchemaGetter.ts +80 -4
  885. package/src/SchemaIssue.ts +34 -0
  886. package/src/SchemaParser.ts +26 -0
  887. package/src/SchemaRepresentation.ts +148 -0
  888. package/src/SchemaTransformation.ts +53 -0
  889. package/src/Scope.ts +19 -0
  890. package/src/ScopedCache.ts +82 -19
  891. package/src/ScopedRef.ts +9 -0
  892. package/src/Semaphore.ts +26 -0
  893. package/src/Sink.ts +126 -2
  894. package/src/StandardSchema.ts +1 -0
  895. package/src/Stdio.ts +7 -0
  896. package/src/Stream.ts +780 -103
  897. package/src/String.ts +87 -0
  898. package/src/Struct.ts +46 -0
  899. package/src/SubscriptionRef.ts +65 -0
  900. package/src/Symbol.ts +2 -0
  901. package/src/SynchronizedRef.ts +63 -0
  902. package/src/Take.ts +3 -0
  903. package/src/Terminal.ts +8 -0
  904. package/src/Tracer.ts +23 -0
  905. package/src/Trie.ts +68 -0
  906. package/src/Tuple.ts +38 -0
  907. package/src/TxChunk.ts +52 -0
  908. package/src/TxDeferred.ts +15 -0
  909. package/src/TxHashMap.ts +97 -6
  910. package/src/TxHashSet.ts +83 -3
  911. package/src/TxPriorityQueue.ts +34 -2
  912. package/src/TxPubSub.ts +26 -0
  913. package/src/TxQueue.ts +51 -0
  914. package/src/TxReentrantLock.ts +53 -36
  915. package/src/TxRef.ts +14 -0
  916. package/src/TxSemaphore.ts +47 -31
  917. package/src/TxSubscriptionRef.ts +25 -0
  918. package/src/Types.ts +36 -0
  919. package/src/UndefinedOr.ts +15 -0
  920. package/src/Unify.ts +15 -0
  921. package/src/Utils.ts +4 -0
  922. package/src/Version.ts +38 -0
  923. package/src/ai/Chat.ts +1 -1
  924. package/src/ai/DecisionModel.ts +42 -1
  925. package/src/ai/LanguageModel.ts +43 -21
  926. package/src/ai/McpSchema.ts +3 -3
  927. package/src/ai/McpServer.ts +119 -39
  928. package/src/ai/Response.ts +27 -12
  929. package/src/ai/Telemetry.ts +62 -58
  930. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -0
  931. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -0
  932. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +1 -0
  933. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +1 -0
  934. package/src/ai/internal/mcpRuntime.ts +84 -43
  935. package/src/ai/internal/mcpSchema/v2024_11_05.ts +4 -2
  936. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  937. package/src/cluster/ClusterWorkflowEngine.ts +18 -4
  938. package/src/cluster/K8sHttpClient.ts +12 -2
  939. package/src/cluster/Sharding.ts +24 -24
  940. package/src/cluster/SqlMessageStorage.ts +26 -13
  941. package/src/cluster/SqlRunnerStorage.ts +85 -113
  942. package/src/cluster/internal/entityManager.ts +68 -80
  943. package/src/cluster/internal/interruptors.ts +13 -0
  944. package/src/cluster/internal/resourceMap.ts +55 -17
  945. package/src/cluster/internal/resourceRef.ts +189 -96
  946. package/src/encoding/Base64.ts +4 -0
  947. package/src/encoding/Base64Url.ts +4 -0
  948. package/src/encoding/EncodingError.ts +5 -0
  949. package/src/encoding/Hex.ts +5 -0
  950. package/src/encoding/Toml.ts +2 -2
  951. package/src/encoding/Yaml.ts +8 -4
  952. package/src/encoding/index.ts +4 -0
  953. package/src/eventlog/SqlEventJournal.ts +18 -4
  954. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  955. package/src/http/Headers.ts +8 -2
  956. package/src/http/HttpClient.ts +44 -27
  957. package/src/http/HttpClientResponse.ts +3 -1
  958. package/src/http/HttpEffect.ts +11 -2
  959. package/src/http/HttpMiddleware.ts +67 -46
  960. package/src/http/HttpServer.ts +1 -1
  961. package/src/http/HttpStaticServer.ts +16 -0
  962. package/src/http/HttpTraceContext.ts +8 -4
  963. package/src/http/internal/tracing.ts +52 -0
  964. package/src/http-api/HttpApiBuilder.ts +5 -1
  965. package/src/http-api/HttpApiClient.ts +13 -4
  966. package/src/http-api/HttpApiError.ts +8 -3
  967. package/src/http-api/HttpApiSecurity.ts +8 -8
  968. package/src/index.ts +156 -0
  969. package/src/internal/arbitrary/array.ts +3 -3
  970. package/src/internal/arbitrary/model.ts +37 -14
  971. package/src/internal/arbitrary/runner.ts +7 -7
  972. package/src/internal/arbitrary/schema.ts +4 -3
  973. package/src/internal/core.ts +56 -2
  974. package/src/internal/dateTime.ts +3 -1
  975. package/src/internal/effect.ts +156 -156
  976. package/src/internal/rcRef.ts +83 -33
  977. package/src/internal/schedule.ts +23 -17
  978. package/src/internal/schema/fromJsonSchemaDocument.ts +5 -3
  979. package/src/internal/schema/standardSchema.ts +2 -2
  980. package/src/internal/version.ts +2 -0
  981. package/src/observability/OtlpExporter.ts +9 -6
  982. package/src/observability/OtlpLogger.ts +20 -21
  983. package/src/observability/OtlpMetrics.ts +34 -93
  984. package/src/observability/OtlpResource.ts +18 -27
  985. package/src/observability/OtlpTracer.ts +34 -40
  986. package/src/observability/internal/otlpProtobuf.ts +60 -0
  987. package/src/reactivity/AsyncResult.ts +1 -1
  988. package/src/reactivity/Atom.ts +10 -6
  989. package/src/reactivity/AtomHttpApi.ts +2 -4
  990. package/src/reactivity/AtomRegistry.ts +7 -0
  991. package/src/rpc/RpcClient.ts +74 -46
  992. package/src/rpc/RpcServer.ts +28 -25
  993. package/src/rpc/Utils.ts +4 -10
  994. package/src/rpc/internal/tracing.ts +22 -0
  995. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  996. package/src/sql/SqlClient.ts +4 -4
  997. package/src/sql/Statement.ts +59 -7
  998. package/src/testing/TestClock.ts +9 -0
  999. package/src/testing/TestConsole.ts +8 -0
  1000. package/src/testing/index.ts +3 -0
  1001. package/src/workflow/WorkflowEngine.ts +4 -0
package/src/Stream.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * stream lifecycle: create a stream, transform or combine it, control buffering
9
9
  * and timing, handle failures, and finally consume it.
10
10
  *
11
+ * @stability stable
11
12
  * @since 2.0.0
12
13
  */
13
14
  // @effect-diagnostics returnEffectInGen:off
@@ -75,6 +76,7 @@ import type * as Unify from "./Unify.ts"
75
76
  /**
76
77
  * String literal type used as the unique brand for `Stream` values.
77
78
  *
79
+ * @stability stable
78
80
  * @category type IDs
79
81
  * @since 4.0.0
80
82
  */
@@ -91,6 +93,7 @@ export type TypeId = "~effect/Stream"
91
93
  *
92
94
  * @see {@link isStream} for the public guard that checks this identifier
93
95
  *
96
+ * @stability stable
94
97
  * @category type IDs
95
98
  * @since 4.0.0
96
99
  */
@@ -120,6 +123,7 @@ export const TypeId: TypeId = "~effect/Stream"
120
123
  * values // => [2, 4, 6]
121
124
  * ```
122
125
  *
126
+ * @stability stable
123
127
  * @category models
124
128
  * @since 2.0.0
125
129
  */
@@ -133,6 +137,7 @@ export interface Stream<out A, out E = never, out R = never> extends Variance<A,
133
137
  /**
134
138
  * Type-level unification hook for Stream within the Effect type system.
135
139
  *
140
+ * @stability stable
136
141
  * @category models
137
142
  * @since 2.0.0
138
143
  */
@@ -143,6 +148,7 @@ export interface StreamUnify<A extends { [Unify.typeSymbol]?: any }> extends Eff
143
148
  /**
144
149
  * Type-level marker that excludes Stream from unification.
145
150
  *
151
+ * @stability stable
146
152
  * @category models
147
153
  * @since 2.0.0
148
154
  */
@@ -165,6 +171,7 @@ export interface StreamUnifyIgnore {
165
171
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
166
172
  * ```
167
173
  *
174
+ * @stability stable
168
175
  * @category utility types
169
176
  * @since 2.0.0
170
177
  */
@@ -180,6 +187,7 @@ export interface StreamTypeLambda extends TypeLambda {
180
187
  * The emitted value `A`, error `E`, and service requirement `R` type
181
188
  * parameters are covariant.
182
189
  *
190
+ * @stability stable
183
191
  * @category models
184
192
  * @since 2.0.0
185
193
  */
@@ -195,6 +203,7 @@ export interface Variance<out A, out E, out R> {
195
203
  *
196
204
  * `_A`, `_E`, and `_R` are covariant markers.
197
205
  *
206
+ * @stability stable
198
207
  * @category models
199
208
  * @since 3.4.0
200
209
  */
@@ -217,6 +226,7 @@ export interface VarianceStruct<out A, out E, out R> {
217
226
  * const value: SuccessType = 42
218
227
  * ```
219
228
  *
229
+ * @stability stable
220
230
  * @category utility types
221
231
  * @since 3.4.0
222
232
  */
@@ -235,6 +245,7 @@ export type Success<T> = T extends Stream<infer _A, infer _E, infer _R> ? _A : n
235
245
  * const error: ErrorType = "boom"
236
246
  * ```
237
247
  *
248
+ * @stability stable
238
249
  * @category utility types
239
250
  * @since 3.4.0
240
251
  */
@@ -257,6 +268,7 @@ export type Error<T> = T extends Stream<infer _A, infer _E, infer _R> ? _E : nev
257
268
  * services.db.query("SELECT 1") // => "SELECT 1"
258
269
  * ```
259
270
  *
271
+ * @stability stable
260
272
  * @category utility types
261
273
  * @since 4.0.0
262
274
  */
@@ -274,6 +286,7 @@ export type Services<T> = T extends Stream<infer _A, infer _E, infer _R> ? _R :
274
286
  * Stream.isStream({ data: [1, 2, 3] }) // => false
275
287
  * ```
276
288
  *
289
+ * @stability stable
277
290
  * @category guards
278
291
  * @since 4.0.0
279
292
  */
@@ -290,6 +303,7 @@ export const isStream = (u: unknown): u is Stream<unknown, unknown, unknown> =>
290
303
  * Stream.DefaultChunkSize // => 4096
291
304
  * ```
292
305
  *
306
+ * @stability stable
293
307
  * @category constants
294
308
  * @since 2.0.0
295
309
  */
@@ -298,6 +312,7 @@ export const DefaultChunkSize: number = Channel.DefaultChunkSize
298
312
  /**
299
313
  * Describes how merged streams decide when to halt.
300
314
  *
315
+ * @stability stable
301
316
  * @category models
302
317
  * @since 4.0.0
303
318
  */
@@ -316,6 +331,7 @@ export type HaltStrategy = Channel.HaltStrategy
316
331
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
317
332
  * ```
318
333
  *
334
+ * @stability stable
319
335
  * @category constructors
320
336
  * @since 2.0.0
321
337
  */
@@ -335,6 +351,7 @@ export const fromChannel: <Arr extends Arr.NonEmptyReadonlyArray<any>, E, R>(
335
351
  * await Effect.runPromise(Stream.runCollect(stream)) // => [42]
336
352
  * ```
337
353
  *
354
+ * @stability stable
338
355
  * @category constructors
339
356
  * @since 2.0.0
340
357
  */
@@ -367,6 +384,7 @@ export const fromEffect = <A, E, R>(effect: Effect.Effect<A, E, R>): Stream<A, E
367
384
  * ) // => ["Hello, World!"]
368
385
  * ```
369
386
  *
387
+ * @stability stable
370
388
  * @category accessors
371
389
  * @since 4.0.0
372
390
  */
@@ -409,6 +427,7 @@ export const service = <I, S>(service: Context.Key<I, S>): Stream<S, never, I> =
409
427
  * ) // => ["Hello, World!"]
410
428
  * ```
411
429
  *
430
+ * @stability stable
412
431
  * @category accessors
413
432
  * @since 4.0.0
414
433
  */
@@ -432,6 +451,7 @@ export const serviceOption = <I, S>(service: Context.Key<I, S>): Stream<Option.O
432
451
  * drained // => true
433
452
  * ```
434
453
  *
454
+ * @stability stable
435
455
  * @category constructors
436
456
  * @since 4.0.0
437
457
  */
@@ -451,6 +471,7 @@ export const fromEffectDrain = <A, E, R>(effect: Effect.Effect<A, E, R>): Stream
451
471
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3, 4, 5]
452
472
  * ```
453
473
  *
474
+ * @stability stable
454
475
  * @category constructors
455
476
  * @since 4.0.0
456
477
  */
@@ -470,6 +491,7 @@ export const fromEffectRepeat = <A, E, R>(effect: Effect.Effect<A, E, R>): Strea
470
491
  * await Effect.runPromise(Stream.runCollect(stream)) // => ["ping", "ping", "ping"]
471
492
  * ```
472
493
  *
494
+ * @stability stable
473
495
  * @category constructors
474
496
  * @since 4.0.0
475
497
  */
@@ -509,6 +531,7 @@ export const fromEffectSchedule = <A, E, R, X, AS extends A, ES, RS>(
509
531
  * await Effect.runPromise(Stream.tick(0).pipe(Stream.take(3), Stream.runCollect)) // => [undefined, undefined, undefined]
510
532
  * ```
511
533
  *
534
+ * @stability stable
512
535
  * @category constructors
513
536
  * @since 2.0.0
514
537
  */
@@ -551,6 +574,7 @@ export const tick = (interval: Duration.Input): Stream<void> =>
551
574
  * await Effect.runPromise(program) // => [1, 2, 3]
552
575
  * ```
553
576
  *
577
+ * @stability stable
554
578
  * @category constructors
555
579
  * @since 2.0.0
556
580
  */
@@ -573,6 +597,7 @@ export const fromPull = <A, E, R, EX, RX>(
573
597
  * await Effect.runPromise(Stream.runCollect(transformed)) // => [1, 2, 3]
574
598
  * ```
575
599
  *
600
+ * @stability stable
576
601
  * @category constructors
577
602
  * @since 4.0.0
578
603
  */
@@ -619,6 +644,7 @@ export const transformPull = <A, E, R, B, E2, R2, EX, RX>(
619
644
  * finalized // => [true]
620
645
  * ```
621
646
  *
647
+ * @stability stable
622
648
  * @category constructors
623
649
  * @since 4.0.0
624
650
  */
@@ -653,6 +679,7 @@ export const transformPullBracket = <A, E, R, B, E2, R2, EX, RX>(
653
679
  * values.flat() // => [1, 2, 3]
654
680
  * ```
655
681
  *
682
+ * @stability stable
656
683
  * @category destructors
657
684
  * @since 2.0.0
658
685
  */
@@ -691,6 +718,7 @@ export const toChannel = <A, E, R>(
691
718
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
692
719
  * ```
693
720
  *
721
+ * @stability stable
694
722
  * @category constructors
695
723
  * @since 4.0.0
696
724
  */
@@ -713,6 +741,7 @@ export const callback = <A, E = never, R = never>(
713
741
  * await Effect.runPromise(Stream.runCollect(Stream.empty)) // => []
714
742
  * ```
715
743
  *
744
+ * @stability stable
716
745
  * @category constructors
717
746
  * @since 2.0.0
718
747
  */
@@ -729,6 +758,7 @@ export const empty: Stream<never> = fromChannel(Channel.empty)
729
758
  * await Effect.runPromise(Stream.runCollect(Stream.succeed(3))) // => [3]
730
759
  * ```
731
760
  *
761
+ * @stability stable
732
762
  * @category constructors
733
763
  * @since 2.0.0
734
764
  */
@@ -747,6 +777,7 @@ export const succeed = <A>(value: A): Stream<A> => fromChannel(Channel.succeed(A
747
777
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
748
778
  * ```
749
779
  *
780
+ * @stability stable
750
781
  * @category constructors
751
782
  * @since 2.0.0
752
783
  */
@@ -767,6 +798,7 @@ export const make = <const As extends ReadonlyArray<any>>(...values: As): Stream
767
798
  * await Effect.runPromise(Stream.sync(() => 2 + 1).pipe(Stream.runCollect)) // => [3]
768
799
  * ```
769
800
  *
801
+ * @stability stable
770
802
  * @category constructors
771
803
  * @since 2.0.0
772
804
  */
@@ -787,6 +819,7 @@ export const sync = <A>(evaluate: LazyArg<A>): Stream<A> => fromChannel(Channel.
787
819
  * await Effect.runPromise(Stream.suspend(() => Stream.make(1, 2, 3)).pipe(Stream.runCollect)) // => [1, 2, 3]
788
820
  * ```
789
821
  *
822
+ * @stability stable
790
823
  * @category constructors
791
824
  * @since 2.0.0
792
825
  */
@@ -804,6 +837,7 @@ export const suspend = <A, E, R>(stream: LazyArg<Stream<A, E, R>>): Stream<A, E,
804
837
  * await Effect.runPromise(Effect.exit(Stream.runCollect(Stream.fail("Uh oh!")))) // => Exit.fail("Uh oh!")
805
838
  * ```
806
839
  *
840
+ * @stability stable
807
841
  * @category constructors
808
842
  * @since 2.0.0
809
843
  */
@@ -822,6 +856,7 @@ export const fail = <E>(error: E): Stream<never, E> => fromChannel(Channel.fail(
822
856
  * await Effect.runPromise(Stream.runCollect(stream).pipe(Effect.exit)) // => Exit.fail("Uh oh!")
823
857
  * ```
824
858
  *
859
+ * @stability stable
825
860
  * @category constructors
826
861
  * @since 2.0.0
827
862
  */
@@ -842,6 +877,7 @@ export const failSync = <E>(evaluate: LazyArg<E>): Stream<never, E> => fromChann
842
877
  * await Effect.runPromise(Stream.runCollect(stream)) // => ["recovered"]
843
878
  * ```
844
879
  *
880
+ * @stability stable
845
881
  * @category constructors
846
882
  * @since 2.0.0
847
883
  */
@@ -861,6 +897,7 @@ export const failCause = <E>(cause: Cause.Cause<E>): Stream<never, E> => fromCha
861
897
  * await Effect.runPromise(Effect.exit(Stream.runCollect(stream))) // => Exit.failCause(Cause.die(defect))
862
898
  * ```
863
899
  *
900
+ * @stability stable
864
901
  * @category constructors
865
902
  * @since 2.0.0
866
903
  */
@@ -881,6 +918,7 @@ export const die = (defect: unknown): Stream<never> => fromChannel(Channel.die(d
881
918
  * await Effect.runPromise(Stream.runCollect(stream).pipe(Effect.exit)) // => Exit.fail("Connection timeout after retries")
882
919
  * ```
883
920
  *
921
+ * @stability stable
884
922
  * @category constructors
885
923
  * @since 2.0.0
886
924
  */
@@ -917,6 +955,7 @@ export const failCauseSync = <E>(evaluate: LazyArg<Cause.Cause<E>>): Stream<neve
917
955
  * await Effect.runPromise(program)
918
956
  * ```
919
957
  *
958
+ * @stability stable
920
959
  * @category constructors
921
960
  * @since 2.0.0
922
961
  */
@@ -948,6 +987,7 @@ export const fromIteratorSucceed = <A>(iterator: IterableIterator<A>, maxChunkSi
948
987
  * await Effect.runPromise(program)
949
988
  * ```
950
989
  *
990
+ * @stability stable
951
991
  * @category constructors
952
992
  * @since 2.0.0
953
993
  */
@@ -997,6 +1037,7 @@ export const fromIterable = <A>(
997
1037
  * await Effect.runPromise(program)
998
1038
  * ```
999
1039
  *
1040
+ * @stability stable
1000
1041
  * @category constructors
1001
1042
  * @since 2.0.0
1002
1043
  */
@@ -1022,6 +1063,7 @@ export const fromIterableEffect = <A, E, R>(iterable: Effect.Effect<Iterable<A>,
1022
1063
  * await Effect.runPromise(program)
1023
1064
  * ```
1024
1065
  *
1066
+ * @stability stable
1025
1067
  * @category constructors
1026
1068
  * @since 4.0.0
1027
1069
  */
@@ -1046,6 +1088,7 @@ export const fromIterableEffectRepeat = <A, E, R>(
1046
1088
  * await Effect.runPromise(program)
1047
1089
  * ```
1048
1090
  *
1091
+ * @stability stable
1049
1092
  * @category constructors
1050
1093
  * @since 4.0.0
1051
1094
  */
@@ -1074,6 +1117,7 @@ export const fromArray = <A>(array: ReadonlyArray<A>): Stream<A> =>
1074
1117
  * await Effect.runPromise(program)
1075
1118
  * ```
1076
1119
  *
1120
+ * @stability stable
1077
1121
  * @category constructors
1078
1122
  * @since 4.0.0
1079
1123
  */
@@ -1098,6 +1142,7 @@ export const fromArrayEffect = <A, E, R>(
1098
1142
  * await Effect.runPromise(program)
1099
1143
  * ```
1100
1144
  *
1145
+ * @stability stable
1101
1146
  * @category constructors
1102
1147
  * @since 4.0.0
1103
1148
  */
@@ -1133,6 +1178,7 @@ export const fromArrays = <Arr extends ReadonlyArray<ReadonlyArray<any>>>(
1133
1178
  * await Effect.runPromise(program)
1134
1179
  * ```
1135
1180
  *
1181
+ * @stability stable
1136
1182
  * @category constructors
1137
1183
  * @since 2.0.0
1138
1184
  */
@@ -1167,6 +1213,7 @@ export const fromQueue = <A, E>(queue: Queue.Dequeue<A, E>): Stream<A, Exclude<E
1167
1213
  * await Effect.runPromise(program)
1168
1214
  * ```
1169
1215
  *
1216
+ * @stability stable
1170
1217
  * @category constructors
1171
1218
  * @since 2.0.0
1172
1219
  */
@@ -1200,6 +1247,7 @@ export const fromPubSub = <A>(pubsub: PubSub.PubSub<A>): Stream<A> => fromChanne
1200
1247
  * await Effect.runPromise(program)
1201
1248
  * ```
1202
1249
  *
1250
+ * @stability stable
1203
1251
  * @category constructors
1204
1252
  * @since 4.0.0
1205
1253
  */
@@ -1243,6 +1291,7 @@ export const fromPubSubTake = <A, E>(pubsub: PubSub.PubSub<Take.Take<A, E>>): St
1243
1291
  * await Effect.runPromise(program)
1244
1292
  * ```
1245
1293
  *
1294
+ * @stability stable
1246
1295
  * @category constructors
1247
1296
  * @since 2.0.0
1248
1297
  */
@@ -1278,6 +1327,7 @@ export const fromReadableStream = <A, E>(
1278
1327
  *
1279
1328
  * ```
1280
1329
  *
1330
+ * @stability stable
1281
1331
  * @category constructors
1282
1332
  * @since 2.0.0
1283
1333
  */
@@ -1305,6 +1355,7 @@ export const fromAsyncIterable = <A, E>(
1305
1355
  * await Effect.runPromise(program)
1306
1356
  * ```
1307
1357
  *
1358
+ * @stability stable
1308
1359
  * @category constructors
1309
1360
  * @since 2.0.0
1310
1361
  */
@@ -1345,6 +1396,7 @@ export const fromSchedule = <O, E, R>(schedule: Schedule.Schedule<O, unknown, E,
1345
1396
  * await Effect.runPromise(program)
1346
1397
  * ```
1347
1398
  *
1399
+ * @stability stable
1348
1400
  * @category constructors
1349
1401
  * @since 4.0.0
1350
1402
  */
@@ -1354,6 +1406,7 @@ export const fromSubscription = <A>(pubsub: PubSub.Subscription<A>): Stream<A> =
1354
1406
  /**
1355
1407
  * Interface representing an event listener target.
1356
1408
  *
1409
+ * @stability stable
1357
1410
  * @category models
1358
1411
  * @since 3.4.0
1359
1412
  */
@@ -1406,6 +1459,7 @@ export interface EventListener<A = unknown> {
1406
1459
  *
1407
1460
  * ```
1408
1461
  *
1462
+ * @stability stable
1409
1463
  * @category constructors
1410
1464
  * @since 3.1.0
1411
1465
  */
@@ -1455,6 +1509,7 @@ export const fromEventListener = <A = unknown>(
1455
1509
  * await Effect.runPromise(program)
1456
1510
  * ```
1457
1511
  *
1512
+ * @stability stable
1458
1513
  * @category constructors
1459
1514
  * @since 2.0.0
1460
1515
  */
@@ -1500,6 +1555,7 @@ export const unfold = <S, A, E, R>(
1500
1555
  * await Effect.runPromise(Stream.runCollect(stream)) // => [0, 1, 2, 3]
1501
1556
  * ```
1502
1557
  *
1558
+ * @stability stable
1503
1559
  * @category constructors
1504
1560
  * @since 2.0.0
1505
1561
  */
@@ -1544,6 +1600,7 @@ export const paginate = <S, A, E = never, R = never>(
1544
1600
  * await Effect.runPromise(program)
1545
1601
  * ```
1546
1602
  *
1603
+ * @stability stable
1547
1604
  * @category constructors
1548
1605
  * @since 2.0.0
1549
1606
  */
@@ -1572,6 +1629,7 @@ export const iterate = <A>(value: A, next: (value: A) => A): Stream<A> =>
1572
1629
  * await Effect.runPromise(program)
1573
1630
  * ```
1574
1631
  *
1632
+ * @stability stable
1575
1633
  * @category constructors
1576
1634
  * @since 2.0.0
1577
1635
  */
@@ -1614,6 +1672,7 @@ export const range = (
1614
1672
  * await Effect.runPromise(program) // => []
1615
1673
  * ```
1616
1674
  *
1675
+ * @stability stable
1617
1676
  * @category constructors
1618
1677
  * @since 2.0.0
1619
1678
  */
@@ -1638,6 +1697,7 @@ export const never: Stream<never> = fromChannel(Channel.never)
1638
1697
  * await Effect.runPromise(program)
1639
1698
  * ```
1640
1699
  *
1700
+ * @stability stable
1641
1701
  * @category constructors
1642
1702
  * @since 2.0.0
1643
1703
  */
@@ -1671,6 +1731,7 @@ export const unwrap = <A, E2, R2, E, R>(
1671
1731
  * events // => ["acquire", "release"]
1672
1732
  * ```
1673
1733
  *
1734
+ * @stability stable
1674
1735
  * @category resource management
1675
1736
  * @since 2.0.0
1676
1737
  */
@@ -1690,6 +1751,7 @@ export const scoped = <A, E, R>(
1690
1751
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 3, 5]
1691
1752
  * ```
1692
1753
  *
1754
+ * @stability stable
1693
1755
  * @category mapping
1694
1756
  * @since 2.0.0
1695
1757
  */
@@ -1706,6 +1768,7 @@ export const map: {
1706
1768
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 3, 5]
1707
1769
  * ```
1708
1770
  *
1771
+ * @stability stable
1709
1772
  * @category mapping
1710
1773
  * @since 2.0.0
1711
1774
  */
@@ -1722,6 +1785,7 @@ export const map: {
1722
1785
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 3, 5]
1723
1786
  * ```
1724
1787
  *
1788
+ * @stability stable
1725
1789
  * @category mapping
1726
1790
  * @since 2.0.0
1727
1791
  */
@@ -1756,6 +1820,7 @@ export const map: {
1756
1820
  *
1757
1821
  * @see {@link map} for deriving the replacement value from each element
1758
1822
  *
1823
+ * @stability stable
1759
1824
  * @category mapping
1760
1825
  * @since 4.0.0
1761
1826
  */
@@ -1781,6 +1846,7 @@ export const as: {
1781
1846
  *
1782
1847
  * @see {@link map} for deriving the replacement value from each element
1783
1848
  *
1849
+ * @stability stable
1784
1850
  * @category mapping
1785
1851
  * @since 4.0.0
1786
1852
  */
@@ -1806,6 +1872,7 @@ export const as: {
1806
1872
  *
1807
1873
  * @see {@link map} for deriving the replacement value from each element
1808
1874
  *
1875
+ * @stability stable
1809
1876
  * @category mapping
1810
1877
  * @since 4.0.0
1811
1878
  */
@@ -1843,6 +1910,7 @@ export const as: {
1843
1910
  * await Effect.runPromise(program)
1844
1911
  * ```
1845
1912
  *
1913
+ * @stability stable
1846
1914
  * @category mapping
1847
1915
  * @since 2.0.0
1848
1916
  */
@@ -1878,6 +1946,7 @@ export const mapBoth: {
1878
1946
  * await Effect.runPromise(program)
1879
1947
  * ```
1880
1948
  *
1949
+ * @stability stable
1881
1950
  * @category mapping
1882
1951
  * @since 2.0.0
1883
1952
  */
@@ -1915,6 +1984,7 @@ export const mapBoth: {
1915
1984
  * await Effect.runPromise(program)
1916
1985
  * ```
1917
1986
  *
1987
+ * @stability stable
1918
1988
  * @category mapping
1919
1989
  * @since 2.0.0
1920
1990
  */
@@ -1951,6 +2021,7 @@ export const mapBoth: {
1951
2021
  * await Effect.runPromise(program)
1952
2022
  * ```
1953
2023
  *
2024
+ * @stability stable
1954
2025
  * @category mapping
1955
2026
  * @since 4.0.0
1956
2027
  */
@@ -1975,6 +2046,7 @@ export const mapArray: {
1975
2046
  * await Effect.runPromise(program)
1976
2047
  * ```
1977
2048
  *
2049
+ * @stability stable
1978
2050
  * @category mapping
1979
2051
  * @since 4.0.0
1980
2052
  */
@@ -2001,6 +2073,7 @@ export const mapArray: {
2001
2073
  * await Effect.runPromise(program)
2002
2074
  * ```
2003
2075
  *
2076
+ * @stability stable
2004
2077
  * @category mapping
2005
2078
  * @since 4.0.0
2006
2079
  */
@@ -2047,6 +2120,7 @@ export const mapArray: {
2047
2120
  * events // => ["Processing: 1", "Processing: 2", "Processing: 3"]
2048
2121
  * ```
2049
2122
  *
2123
+ * @stability stable
2050
2124
  * @category mapping
2051
2125
  * @since 2.0.0
2052
2126
  */
@@ -2085,6 +2159,7 @@ export const mapEffect: {
2085
2159
  * events // => ["Processing: 1", "Processing: 2", "Processing: 3"]
2086
2160
  * ```
2087
2161
  *
2162
+ * @stability stable
2088
2163
  * @category mapping
2089
2164
  * @since 2.0.0
2090
2165
  */
@@ -2129,6 +2204,7 @@ export const mapEffect: {
2129
2204
  * events // => ["Processing: 1", "Processing: 2", "Processing: 3"]
2130
2205
  * ```
2131
2206
  *
2207
+ * @stability stable
2132
2208
  * @category mapping
2133
2209
  * @since 2.0.0
2134
2210
  */
@@ -2178,6 +2254,7 @@ export const mapEffect: {
2178
2254
  * await Effect.runPromise(program)
2179
2255
  * ```
2180
2256
  *
2257
+ * @stability stable
2181
2258
  * @category sequencing
2182
2259
  * @since 2.0.0
2183
2260
  */
@@ -2235,6 +2312,7 @@ export const flattenEffect: <
2235
2312
  * await Effect.runPromise(program)
2236
2313
  * ```
2237
2314
  *
2315
+ * @stability stable
2238
2316
  * @category mapping
2239
2317
  * @since 4.0.0
2240
2318
  */
@@ -2266,6 +2344,7 @@ export const mapArrayEffect: {
2266
2344
  * await Effect.runPromise(program)
2267
2345
  * ```
2268
2346
  *
2347
+ * @stability stable
2269
2348
  * @category mapping
2270
2349
  * @since 4.0.0
2271
2350
  */
@@ -2299,6 +2378,7 @@ export const mapArrayEffect: {
2299
2378
  * await Effect.runPromise(program)
2300
2379
  * ```
2301
2380
  *
2381
+ * @stability stable
2302
2382
  * @category mapping
2303
2383
  * @since 4.0.0
2304
2384
  */
@@ -2339,6 +2419,7 @@ export const mapArrayEffect: {
2339
2419
  * await Effect.runPromise(program)
2340
2420
  * ```
2341
2421
  *
2422
+ * @stability stable
2342
2423
  * @category error handling
2343
2424
  * @since 4.0.0
2344
2425
  */
@@ -2372,6 +2453,7 @@ export const result = <A, E, R>(self: Stream<A, E, R>): Stream<Result.Result<A,
2372
2453
  * events // => ["before mapping: 1", "after mapping: 2", "before mapping: 2", "after mapping: 4", "before mapping: 3", "after mapping: 6"]
2373
2454
  * ```
2374
2455
  *
2456
+ * @stability stable
2375
2457
  * @category sequencing
2376
2458
  * @since 2.0.0
2377
2459
  */
@@ -2400,6 +2482,7 @@ export const tap: {
2400
2482
  * events // => ["before mapping: 1", "after mapping: 2", "before mapping: 2", "after mapping: 4", "before mapping: 3", "after mapping: 6"]
2401
2483
  * ```
2402
2484
  *
2485
+ * @stability stable
2403
2486
  * @category sequencing
2404
2487
  * @since 2.0.0
2405
2488
  */
@@ -2433,6 +2516,7 @@ export const tap: {
2433
2516
  * events // => ["before mapping: 1", "after mapping: 2", "before mapping: 2", "after mapping: 4", "before mapping: 3", "after mapping: 6"]
2434
2517
  * ```
2435
2518
  *
2519
+ * @stability stable
2436
2520
  * @category sequencing
2437
2521
  * @since 2.0.0
2438
2522
  */
@@ -2482,6 +2566,7 @@ export const tap: {
2482
2566
  * events // => ["seen: 1", "seen: 2", "error: boom"]
2483
2567
  * ```
2484
2568
  *
2569
+ * @stability stable
2485
2570
  * @category sequencing
2486
2571
  * @since 2.0.0
2487
2572
  */
@@ -2512,6 +2597,7 @@ export const tapBoth: {
2512
2597
  * events // => ["seen: 1", "seen: 2", "error: boom"]
2513
2598
  * ```
2514
2599
  *
2600
+ * @stability stable
2515
2601
  * @category sequencing
2516
2602
  * @since 2.0.0
2517
2603
  */
@@ -2548,6 +2634,7 @@ export const tapBoth: {
2548
2634
  * events // => ["seen: 1", "seen: 2", "error: boom"]
2549
2635
  * ```
2550
2636
  *
2637
+ * @stability stable
2551
2638
  * @category sequencing
2552
2639
  * @since 2.0.0
2553
2640
  */
@@ -2597,6 +2684,7 @@ export const tapBoth: {
2597
2684
  * await Effect.runPromise(program)
2598
2685
  * ```
2599
2686
  *
2687
+ * @stability stable
2600
2688
  * @category sequencing
2601
2689
  * @since 2.0.0
2602
2690
  */
@@ -2626,6 +2714,7 @@ export const tapSink: {
2626
2714
  * await Effect.runPromise(program)
2627
2715
  * ```
2628
2716
  *
2717
+ * @stability stable
2629
2718
  * @category sequencing
2630
2719
  * @since 2.0.0
2631
2720
  */
@@ -2655,6 +2744,7 @@ export const tapSink: {
2655
2744
  * await Effect.runPromise(program)
2656
2745
  * ```
2657
2746
  *
2747
+ * @stability stable
2658
2748
  * @category sequencing
2659
2749
  * @since 2.0.0
2660
2750
  */
@@ -2699,16 +2789,22 @@ export const tapSink: {
2699
2789
 
2700
2790
  const pullAndOffer = pull.pipe(
2701
2791
  Effect.flatMap((chunk_) => {
2792
+ // The sink may have exited while the upstream pull was suspended.
2793
+ if (causeSink) return Effect.failCause(causeSink)
2794
+ if (sinkDone) return Effect.succeed(chunk_)
2702
2795
  chunk = chunk_
2703
2796
  sinkLatch.closeUnsafe()
2704
2797
  upstreamLatch.openUnsafe()
2705
2798
  return Effect.as(sinkLatch.await, chunk_)
2706
2799
  }),
2707
- Pull.catchDone(() => {
2800
+ Pull.catchDone((): Effect.Effect<never, E2 | Cause.Done> => {
2801
+ if (causeSink) return Effect.failCause(causeSink)
2802
+ if (sinkDone) return Cause.done()
2708
2803
  streamDone = true
2709
2804
  sinkLatch.closeUnsafe()
2710
2805
  upstreamLatch.openUnsafe()
2711
- return Effect.flatMap(sinkLatch.await, () => Cause.done())
2806
+ return Effect.flatMap(sinkLatch.await, (): Pull.Pull<never, E2> =>
2807
+ causeSink ? Effect.failCause(causeSink) : Cause.done())
2712
2808
  })
2713
2809
  )
2714
2810
 
@@ -2750,6 +2846,7 @@ export const tapSink: {
2750
2846
  * await Effect.runPromise(program)
2751
2847
  * ```
2752
2848
  *
2849
+ * @stability stable
2753
2850
  * @category sequencing
2754
2851
  * @since 2.0.0
2755
2852
  */
@@ -2780,6 +2877,7 @@ export const flatMap: {
2780
2877
  * await Effect.runPromise(program)
2781
2878
  * ```
2782
2879
  *
2880
+ * @stability stable
2783
2881
  * @category sequencing
2784
2882
  * @since 2.0.0
2785
2883
  */
@@ -2816,6 +2914,7 @@ export const flatMap: {
2816
2914
  * await Effect.runPromise(program)
2817
2915
  * ```
2818
2916
  *
2917
+ * @stability stable
2819
2918
  * @category sequencing
2820
2919
  * @since 2.0.0
2821
2920
  */
@@ -2861,6 +2960,7 @@ export const flatMap: {
2861
2960
  * }))
2862
2961
  * ```
2863
2962
  *
2963
+ * @stability stable
2864
2964
  * @category sequencing
2865
2965
  * @since 4.0.0
2866
2966
  */
@@ -2885,6 +2985,7 @@ export const switchMap: {
2885
2985
  * }))
2886
2986
  * ```
2887
2987
  *
2988
+ * @stability stable
2888
2989
  * @category sequencing
2889
2990
  * @since 4.0.0
2890
2991
  */
@@ -2915,6 +3016,7 @@ export const switchMap: {
2915
3016
  * }))
2916
3017
  * ```
2917
3018
  *
3019
+ * @stability stable
2918
3020
  * @category sequencing
2919
3021
  * @since 4.0.0
2920
3022
  */
@@ -2969,6 +3071,7 @@ export const switchMap: {
2969
3071
  * await Effect.runPromise(program)
2970
3072
  * ```
2971
3073
  *
3074
+ * @stability stable
2972
3075
  * @category sequencing
2973
3076
  * @since 2.0.0
2974
3077
  */
@@ -3016,6 +3119,7 @@ export const flatten: <
3016
3119
  * await Effect.runPromise(program)
3017
3120
  * ```
3018
3121
  *
3122
+ * @stability stable
3019
3123
  * @category sequencing
3020
3124
  * @since 4.0.0
3021
3125
  */
@@ -3038,6 +3142,7 @@ export const flattenArray = <A, E, R>(self: Stream<Arr.NonEmptyReadonlyArray<A>,
3038
3142
  * await Effect.runPromise(program)
3039
3143
  * ```
3040
3144
  *
3145
+ * @stability stable
3041
3146
  * @category sequencing
3042
3147
  * @since 2.0.0
3043
3148
  */
@@ -3068,6 +3173,7 @@ export const drain = <A, E, R>(self: Stream<A, E, R>): Stream<never, E, R> => fr
3068
3173
  * events // => ["background task"]
3069
3174
  * ```
3070
3175
  *
3176
+ * @stability stable
3071
3177
  * @category sequencing
3072
3178
  * @since 2.0.0
3073
3179
  */
@@ -3097,6 +3203,7 @@ export const drainFork: {
3097
3203
  * events // => ["background task"]
3098
3204
  * ```
3099
3205
  *
3206
+ * @stability stable
3100
3207
  * @category sequencing
3101
3208
  * @since 2.0.0
3102
3209
  */
@@ -3126,6 +3233,7 @@ export const drainFork: {
3126
3233
  * events // => ["background task"]
3127
3234
  * ```
3128
3235
  *
3236
+ * @stability stable
3129
3237
  * @category sequencing
3130
3238
  * @since 2.0.0
3131
3239
  */
@@ -3156,6 +3264,7 @@ export const drainFork: {
3156
3264
  * await Effect.runPromise(program)
3157
3265
  * ```
3158
3266
  *
3267
+ * @stability stable
3159
3268
  * @category repetition
3160
3269
  * @since 2.0.0
3161
3270
  */
@@ -3180,6 +3289,7 @@ export const repeat: {
3180
3289
  * await Effect.runPromise(program)
3181
3290
  * ```
3182
3291
  *
3292
+ * @stability stable
3183
3293
  * @category repetition
3184
3294
  * @since 2.0.0
3185
3295
  */
@@ -3210,6 +3320,7 @@ export const repeat: {
3210
3320
  * await Effect.runPromise(program)
3211
3321
  * ```
3212
3322
  *
3323
+ * @stability stable
3213
3324
  * @category repetition
3214
3325
  * @since 2.0.0
3215
3326
  */
@@ -3250,6 +3361,7 @@ export const repeat: {
3250
3361
  * await Effect.runPromise(program)
3251
3362
  * ```
3252
3363
  *
3364
+ * @stability stable
3253
3365
  * @category rate limiting
3254
3366
  * @since 2.0.0
3255
3367
  */
@@ -3274,6 +3386,7 @@ export const schedule: {
3274
3386
  * await Effect.runPromise(program)
3275
3387
  * ```
3276
3388
  *
3389
+ * @stability stable
3277
3390
  * @category rate limiting
3278
3391
  * @since 2.0.0
3279
3392
  */
@@ -3298,6 +3411,7 @@ export const schedule: {
3298
3411
  * await Effect.runPromise(program)
3299
3412
  * ```
3300
3413
  *
3414
+ * @stability stable
3301
3415
  * @category rate limiting
3302
3416
  * @since 2.0.0
3303
3417
  */
@@ -3333,6 +3447,7 @@ export const schedule: {
3333
3447
  * await Effect.runPromise(program)
3334
3448
  * ```
3335
3449
  *
3450
+ * @stability stable
3336
3451
  * @category delays & timeouts
3337
3452
  * @since 2.0.0
3338
3453
  */
@@ -3357,6 +3472,7 @@ export const timeout: {
3357
3472
  * await Effect.runPromise(program)
3358
3473
  * ```
3359
3474
  *
3475
+ * @stability stable
3360
3476
  * @category delays & timeouts
3361
3477
  * @since 2.0.0
3362
3478
  */
@@ -3381,6 +3497,7 @@ export const timeout: {
3381
3497
  * await Effect.runPromise(program)
3382
3498
  * ```
3383
3499
  *
3500
+ * @stability stable
3384
3501
  * @category delays & timeouts
3385
3502
  * @since 2.0.0
3386
3503
  */
@@ -3415,6 +3532,7 @@ export const timeout: {
3415
3532
  *
3416
3533
  * @see {@link timeout} for ending the stream instead of switching to a fallback stream
3417
3534
  *
3535
+ * @stability stable
3418
3536
  * @category delays & timeouts
3419
3537
  * @since 4.0.0
3420
3538
  */
@@ -3440,6 +3558,7 @@ export const timeoutOrElse: {
3440
3558
  *
3441
3559
  * @see {@link timeout} for ending the stream instead of switching to a fallback stream
3442
3560
  *
3561
+ * @stability stable
3443
3562
  * @category delays & timeouts
3444
3563
  * @since 4.0.0
3445
3564
  */
@@ -3470,6 +3589,7 @@ export const timeoutOrElse: {
3470
3589
  *
3471
3590
  * @see {@link timeout} for ending the stream instead of switching to a fallback stream
3472
3591
  *
3592
+ * @stability stable
3473
3593
  * @category delays & timeouts
3474
3594
  * @since 4.0.0
3475
3595
  */
@@ -3557,6 +3677,7 @@ export const timeoutOrElse: {
3557
3677
  * await Effect.runPromise(program)
3558
3678
  * ```
3559
3679
  *
3680
+ * @stability stable
3560
3681
  * @category repetition
3561
3682
  * @since 2.0.0
3562
3683
  */
@@ -3581,6 +3702,7 @@ export const repeatElements: {
3581
3702
  * await Effect.runPromise(program)
3582
3703
  * ```
3583
3704
  *
3705
+ * @stability stable
3584
3706
  * @category repetition
3585
3707
  * @since 2.0.0
3586
3708
  */
@@ -3605,6 +3727,7 @@ export const repeatElements: {
3605
3727
  * await Effect.runPromise(program)
3606
3728
  * ```
3607
3729
  *
3730
+ * @stability stable
3608
3731
  * @category repetition
3609
3732
  * @since 2.0.0
3610
3733
  */
@@ -3667,6 +3790,7 @@ export const repeatElements: {
3667
3790
  * await Effect.runPromise(program)
3668
3791
  * ```
3669
3792
  *
3793
+ * @stability stable
3670
3794
  * @category repetition
3671
3795
  * @since 2.0.0
3672
3796
  */
@@ -3689,6 +3813,7 @@ export const forever = <A, E, R>(self: Stream<A, E, R>): Stream<A, E, R> => from
3689
3813
  * await Effect.runPromise(program)
3690
3814
  * ```
3691
3815
  *
3816
+ * @stability stable
3692
3817
  * @category sequencing
3693
3818
  * @since 4.0.0
3694
3819
  */
@@ -3718,6 +3843,7 @@ export const flattenIterable = <A, E, R>(self: Stream<Iterable<A>, E, R>): Strea
3718
3843
  * await Effect.runPromise(program)
3719
3844
  * ```
3720
3845
  *
3846
+ * @stability stable
3721
3847
  * @category sequencing
3722
3848
  * @since 2.0.0
3723
3849
  */
@@ -3745,6 +3871,7 @@ export const flattenTake = <A, E, E2, R>(self: Stream<Take.Take<A, E>, E2, R>):
3745
3871
  * }))
3746
3872
  * ```
3747
3873
  *
3874
+ * @stability stable
3748
3875
  * @category sequencing
3749
3876
  * @since 2.0.0
3750
3877
  */
@@ -3766,6 +3893,7 @@ export const concat: {
3766
3893
  * }))
3767
3894
  * ```
3768
3895
  *
3896
+ * @stability stable
3769
3897
  * @category sequencing
3770
3898
  * @since 2.0.0
3771
3899
  */
@@ -3787,6 +3915,7 @@ export const concat: {
3787
3915
  * }))
3788
3916
  * ```
3789
3917
  *
3918
+ * @stability stable
3790
3919
  * @category sequencing
3791
3920
  * @since 2.0.0
3792
3921
  */
@@ -3812,6 +3941,7 @@ export const concat: {
3812
3941
  * }))
3813
3942
  * ```
3814
3943
  *
3944
+ * @stability stable
3815
3945
  * @category sequencing
3816
3946
  * @since 2.0.0
3817
3947
  */
@@ -3832,6 +3962,7 @@ export const concat: {
3832
3962
  * }))
3833
3963
  * ```
3834
3964
  *
3965
+ * @stability stable
3835
3966
  * @category sequencing
3836
3967
  * @since 2.0.0
3837
3968
  */
@@ -3852,6 +3983,7 @@ export const concat: {
3852
3983
  * }))
3853
3984
  * ```
3854
3985
  *
3986
+ * @stability stable
3855
3987
  * @category sequencing
3856
3988
  * @since 2.0.0
3857
3989
  */
@@ -3897,6 +4029,7 @@ function* concatChannels<A, E, R>(self: Stream<A, E, R>, that: Stream<A, E, R>)
3897
4029
  * await Effect.runPromise(program)
3898
4030
  * ```
3899
4031
  *
4032
+ * @stability stable
3900
4033
  * @category sequencing
3901
4034
  * @since 2.0.0
3902
4035
  */
@@ -3921,6 +4054,7 @@ export const prepend: {
3921
4054
  * await Effect.runPromise(program)
3922
4055
  * ```
3923
4056
  *
4057
+ * @stability stable
3924
4058
  * @category sequencing
3925
4059
  * @since 2.0.0
3926
4060
  */
@@ -3945,6 +4079,7 @@ export const prepend: {
3945
4079
  * await Effect.runPromise(program)
3946
4080
  * ```
3947
4081
  *
4082
+ * @stability stable
3948
4083
  * @category sequencing
3949
4084
  * @since 2.0.0
3950
4085
  */
@@ -3978,6 +4113,7 @@ export const prepend: {
3978
4113
  * await Effect.runPromise(program)
3979
4114
  * ```
3980
4115
  *
4116
+ * @stability stable
3981
4117
  * @category merging
3982
4118
  * @since 2.0.0
3983
4119
  */
@@ -4006,6 +4142,7 @@ export const merge: {
4006
4142
  * await Effect.runPromise(program)
4007
4143
  * ```
4008
4144
  *
4145
+ * @stability stable
4009
4146
  * @category merging
4010
4147
  * @since 2.0.0
4011
4148
  */
@@ -4039,6 +4176,7 @@ export const merge: {
4039
4176
  * await Effect.runPromise(program)
4040
4177
  * ```
4041
4178
  *
4179
+ * @stability stable
4042
4180
  * @category merging
4043
4181
  * @since 2.0.0
4044
4182
  */
@@ -4092,6 +4230,7 @@ export const merge: {
4092
4230
  * events // => ["side task"]
4093
4231
  * ```
4094
4232
  *
4233
+ * @stability stable
4095
4234
  * @category merging
4096
4235
  * @since 4.0.0
4097
4236
  */
@@ -4128,6 +4267,7 @@ export const mergeEffect: {
4128
4267
  * events // => ["side task"]
4129
4268
  * ```
4130
4269
  *
4270
+ * @stability stable
4131
4271
  * @category merging
4132
4272
  * @since 4.0.0
4133
4273
  */
@@ -4164,6 +4304,7 @@ export const mergeEffect: {
4164
4304
  * events // => ["side task"]
4165
4305
  * ```
4166
4306
  *
4307
+ * @stability stable
4167
4308
  * @category merging
4168
4309
  * @since 4.0.0
4169
4310
  */
@@ -4213,6 +4354,7 @@ export const mergeEffect: {
4213
4354
  * await Effect.runPromise(program)
4214
4355
  * ```
4215
4356
  *
4357
+ * @stability stable
4216
4358
  * @category merging
4217
4359
  * @since 4.0.0
4218
4360
  */
@@ -4253,6 +4395,7 @@ export const mergeResult: {
4253
4395
  * await Effect.runPromise(program)
4254
4396
  * ```
4255
4397
  *
4398
+ * @stability stable
4256
4399
  * @category merging
4257
4400
  * @since 4.0.0
4258
4401
  */
@@ -4293,6 +4436,7 @@ export const mergeResult: {
4293
4436
  * await Effect.runPromise(program)
4294
4437
  * ```
4295
4438
  *
4439
+ * @stability stable
4296
4440
  * @category merging
4297
4441
  * @since 4.0.0
4298
4442
  */
@@ -4338,6 +4482,7 @@ export const mergeResult: {
4338
4482
  * await Effect.runPromise(program)
4339
4483
  * ```
4340
4484
  *
4485
+ * @stability stable
4341
4486
  * @category merging
4342
4487
  * @since 2.0.0
4343
4488
  */
@@ -4371,6 +4516,7 @@ export const mergeLeft: {
4371
4516
  * await Effect.runPromise(program)
4372
4517
  * ```
4373
4518
  *
4519
+ * @stability stable
4374
4520
  * @category merging
4375
4521
  * @since 2.0.0
4376
4522
  */
@@ -4404,6 +4550,7 @@ export const mergeLeft: {
4404
4550
  * await Effect.runPromise(program)
4405
4551
  * ```
4406
4552
  *
4553
+ * @stability stable
4407
4554
  * @category merging
4408
4555
  * @since 2.0.0
4409
4556
  */
@@ -4448,6 +4595,7 @@ export const mergeLeft: {
4448
4595
  * await Effect.runPromise(program)
4449
4596
  * ```
4450
4597
  *
4598
+ * @stability stable
4451
4599
  * @category merging
4452
4600
  * @since 2.0.0
4453
4601
  */
@@ -4486,6 +4634,7 @@ export const mergeRight: {
4486
4634
  * await Effect.runPromise(program)
4487
4635
  * ```
4488
4636
  *
4637
+ * @stability stable
4489
4638
  * @category merging
4490
4639
  * @since 2.0.0
4491
4640
  */
@@ -4524,6 +4673,7 @@ export const mergeRight: {
4524
4673
  * await Effect.runPromise(program)
4525
4674
  * ```
4526
4675
  *
4676
+ * @stability stable
4527
4677
  * @category merging
4528
4678
  * @since 2.0.0
4529
4679
  */
@@ -4571,6 +4721,7 @@ export const mergeRight: {
4571
4721
  * @see {@link merge} for merging exactly two streams and choosing a halt strategy
4572
4722
  * @see {@link flatten} for flattening a stream that already emits streams
4573
4723
  *
4724
+ * @stability stable
4574
4725
  * @category merging
4575
4726
  * @since 2.0.0
4576
4727
  */
@@ -4612,6 +4763,7 @@ export const mergeAll: {
4612
4763
  * @see {@link merge} for merging exactly two streams and choosing a halt strategy
4613
4764
  * @see {@link flatten} for flattening a stream that already emits streams
4614
4765
  *
4766
+ * @stability stable
4615
4767
  * @category merging
4616
4768
  * @since 2.0.0
4617
4769
  */
@@ -4658,6 +4810,7 @@ export const mergeAll: {
4658
4810
  * @see {@link merge} for merging exactly two streams and choosing a halt strategy
4659
4811
  * @see {@link flatten} for flattening a stream that already emits streams
4660
4812
  *
4813
+ * @stability stable
4661
4814
  * @category merging
4662
4815
  * @since 2.0.0
4663
4816
  */
@@ -4699,6 +4852,7 @@ export const mergeAll: {
4699
4852
  * await Effect.runPromise(program)
4700
4853
  * ```
4701
4854
  *
4855
+ * @stability stable
4702
4856
  * @category zipping
4703
4857
  * @since 2.0.0
4704
4858
  */
@@ -4726,6 +4880,7 @@ export const cross: {
4726
4880
  * await Effect.runPromise(program)
4727
4881
  * ```
4728
4882
  *
4883
+ * @stability stable
4729
4884
  * @category zipping
4730
4885
  * @since 2.0.0
4731
4886
  */
@@ -4753,6 +4908,7 @@ export const cross: {
4753
4908
  * await Effect.runPromise(program)
4754
4909
  * ```
4755
4910
  *
4911
+ * @stability stable
4756
4912
  * @category zipping
4757
4913
  * @since 2.0.0
4758
4914
  */
@@ -4787,6 +4943,7 @@ export const cross: {
4787
4943
  * await Effect.runPromise(program)
4788
4944
  * ```
4789
4945
  *
4946
+ * @stability stable
4790
4947
  * @category zipping
4791
4948
  * @since 2.0.0
4792
4949
  */
@@ -4816,6 +4973,7 @@ export const crossWith: {
4816
4973
  * await Effect.runPromise(program)
4817
4974
  * ```
4818
4975
  *
4976
+ * @stability stable
4819
4977
  * @category zipping
4820
4978
  * @since 2.0.0
4821
4979
  */
@@ -4845,6 +5003,7 @@ export const crossWith: {
4845
5003
  * await Effect.runPromise(program)
4846
5004
  * ```
4847
5005
  *
5006
+ * @stability stable
4848
5007
  * @category zipping
4849
5008
  * @since 2.0.0
4850
5009
  */
@@ -4880,6 +5039,7 @@ export const crossWith: {
4880
5039
  * await Effect.runPromise(program)
4881
5040
  * ```
4882
5041
  *
5042
+ * @stability stable
4883
5043
  * @category zipping
4884
5044
  * @since 2.0.0
4885
5045
  */
@@ -4905,6 +5065,7 @@ export const zipWith: {
4905
5065
  * await Effect.runPromise(program)
4906
5066
  * ```
4907
5067
  *
5068
+ * @stability stable
4908
5069
  * @category zipping
4909
5070
  * @since 2.0.0
4910
5071
  */
@@ -4930,6 +5091,7 @@ export const zipWith: {
4930
5091
  * await Effect.runPromise(program)
4931
5092
  * ```
4932
5093
  *
5094
+ * @stability stable
4933
5095
  * @category zipping
4934
5096
  * @since 2.0.0
4935
5097
  */
@@ -4991,6 +5153,7 @@ const zipArrays = <AL, AR, A>(
4991
5153
  * await Effect.runPromise(program)
4992
5154
  * ```
4993
5155
  *
5156
+ * @stability stable
4994
5157
  * @category zipping
4995
5158
  * @since 4.0.0
4996
5159
  */
@@ -5025,6 +5188,7 @@ export const zipWithArray: {
5025
5188
  * await Effect.runPromise(program)
5026
5189
  * ```
5027
5190
  *
5191
+ * @stability stable
5028
5192
  * @category zipping
5029
5193
  * @since 4.0.0
5030
5194
  */
@@ -5069,6 +5233,7 @@ export const zipWithArray: {
5069
5233
  * await Effect.runPromise(program)
5070
5234
  * ```
5071
5235
  *
5236
+ * @stability stable
5072
5237
  * @category zipping
5073
5238
  * @since 4.0.0
5074
5239
  */
@@ -5160,6 +5325,7 @@ export const zipWithArray: {
5160
5325
  * await Effect.runPromise(program)
5161
5326
  * ```
5162
5327
  *
5328
+ * @stability stable
5163
5329
  * @category zipping
5164
5330
  * @since 2.0.0
5165
5331
  */
@@ -5186,6 +5352,7 @@ export const zip: {
5186
5352
  * await Effect.runPromise(program)
5187
5353
  * ```
5188
5354
  *
5355
+ * @stability stable
5189
5356
  * @category zipping
5190
5357
  * @since 2.0.0
5191
5358
  */
@@ -5212,6 +5379,7 @@ export const zip: {
5212
5379
  * await Effect.runPromise(program)
5213
5380
  * ```
5214
5381
  *
5382
+ * @stability stable
5215
5383
  * @category zipping
5216
5384
  * @since 2.0.0
5217
5385
  */
@@ -5248,6 +5416,7 @@ export const zip: {
5248
5416
  * await Effect.runPromise(program)
5249
5417
  * ```
5250
5418
  *
5419
+ * @stability stable
5251
5420
  * @category zipping
5252
5421
  * @since 2.0.0
5253
5422
  */
@@ -5276,6 +5445,7 @@ export const zipLeft: {
5276
5445
  * await Effect.runPromise(program)
5277
5446
  * ```
5278
5447
  *
5448
+ * @stability stable
5279
5449
  * @category zipping
5280
5450
  * @since 2.0.0
5281
5451
  */
@@ -5304,6 +5474,7 @@ export const zipLeft: {
5304
5474
  * await Effect.runPromise(program)
5305
5475
  * ```
5306
5476
  *
5477
+ * @stability stable
5307
5478
  * @category zipping
5308
5479
  * @since 2.0.0
5309
5480
  */
@@ -5343,6 +5514,7 @@ export const zipLeft: {
5343
5514
  * await Effect.runPromise(program)
5344
5515
  * ```
5345
5516
  *
5517
+ * @stability stable
5346
5518
  * @category zipping
5347
5519
  * @since 2.0.0
5348
5520
  */
@@ -5366,6 +5538,7 @@ export const zipRight: {
5366
5538
  * await Effect.runPromise(program)
5367
5539
  * ```
5368
5540
  *
5541
+ * @stability stable
5369
5542
  * @category zipping
5370
5543
  * @since 2.0.0
5371
5544
  */
@@ -5389,6 +5562,7 @@ export const zipRight: {
5389
5562
  * await Effect.runPromise(program)
5390
5563
  * ```
5391
5564
  *
5565
+ * @stability stable
5392
5566
  * @category zipping
5393
5567
  * @since 2.0.0
5394
5568
  */
@@ -5437,6 +5611,7 @@ export const zipRight: {
5437
5611
  * await Effect.runPromise(program)
5438
5612
  * ```
5439
5613
  *
5614
+ * @stability stable
5440
5615
  * @category zipping
5441
5616
  * @since 2.0.0
5442
5617
  */
@@ -5469,6 +5644,7 @@ export const zipFlatten: {
5469
5644
  * await Effect.runPromise(program)
5470
5645
  * ```
5471
5646
  *
5647
+ * @stability stable
5472
5648
  * @category zipping
5473
5649
  * @since 2.0.0
5474
5650
  */
@@ -5501,6 +5677,7 @@ export const zipFlatten: {
5501
5677
  * await Effect.runPromise(program)
5502
5678
  * ```
5503
5679
  *
5680
+ * @stability stable
5504
5681
  * @category zipping
5505
5682
  * @since 2.0.0
5506
5683
  */
@@ -5532,6 +5709,7 @@ export const zipFlatten: {
5532
5709
  * await Effect.runPromise(program)
5533
5710
  * ```
5534
5711
  *
5712
+ * @stability stable
5535
5713
  * @category zipping
5536
5714
  * @since 2.0.0
5537
5715
  */
@@ -5554,6 +5732,7 @@ export const zipWithIndex = <A, E, R>(self: Stream<A, E, R>): Stream<[A, number]
5554
5732
  * }))
5555
5733
  * ```
5556
5734
  *
5735
+ * @stability stable
5557
5736
  * @category zipping
5558
5737
  * @since 2.0.0
5559
5738
  */
@@ -5595,6 +5774,7 @@ export const zipWithNext = <A, E, R>(self: Stream<A, E, R>): Stream<[A, Option.O
5595
5774
  * await Effect.runPromise(program)
5596
5775
  * ```
5597
5776
  *
5777
+ * @stability stable
5598
5778
  * @category zipping
5599
5779
  * @since 2.0.0
5600
5780
  */
@@ -5628,6 +5808,7 @@ export const zipWithPrevious = <A, E, R>(self: Stream<A, E, R>): Stream<[Option.
5628
5808
  * await Effect.runPromise(program)
5629
5809
  * ```
5630
5810
  *
5811
+ * @stability stable
5631
5812
  * @category zipping
5632
5813
  * @since 2.0.0
5633
5814
  */
@@ -5696,6 +5877,7 @@ export const zipWithPreviousAndNext = <A, E, R>(
5696
5877
  * await Effect.runPromise(program)
5697
5878
  * ```
5698
5879
  *
5880
+ * @stability stable
5699
5881
  * @category zipping
5700
5882
  * @since 3.3.0
5701
5883
  */
@@ -5711,6 +5893,7 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream<any, any, any>>>(
5711
5893
  const latest: Array<any> = []
5712
5894
  const emitted = new Set<number>()
5713
5895
  const readyLatch = Latch.makeUnsafe()
5896
+ const emptyLatch = Latch.makeUnsafe()
5714
5897
  return Channel.mergeAll(
5715
5898
  Channel.fromArray(
5716
5899
  streams.map((s, i) =>
@@ -5727,7 +5910,9 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream<any, any, any>>>(
5727
5910
  }
5728
5911
  return Effect.succeed(Arr.of(latest.slice()))
5729
5912
  }),
5730
- Channel.filter(isNotUndefined)
5913
+ Channel.filter(isNotUndefined),
5914
+ // An input ending without a value makes a complete tuple impossible.
5915
+ Channel.mapDoneEffect(() => emitted.has(i) ? Effect.void : emptyLatch.open)
5731
5916
  )
5732
5917
  )
5733
5918
  ),
@@ -5735,7 +5920,7 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream<any, any, any>>>(
5735
5920
  concurrency: "unbounded",
5736
5921
  bufferSize: 0
5737
5922
  }
5738
- )
5923
+ ).pipe(Channel.interruptWhen(emptyLatch.await))
5739
5924
  })) as any
5740
5925
 
5741
5926
  /**
@@ -5768,6 +5953,7 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream<any, any, any>>>(
5768
5953
  * await Effect.runPromise(program)
5769
5954
  * ```
5770
5955
  *
5956
+ * @stability stable
5771
5957
  * @category zipping
5772
5958
  * @since 2.0.0
5773
5959
  */
@@ -5802,6 +5988,7 @@ export const zipLatest: {
5802
5988
  * await Effect.runPromise(program)
5803
5989
  * ```
5804
5990
  *
5991
+ * @stability stable
5805
5992
  * @category zipping
5806
5993
  * @since 2.0.0
5807
5994
  */
@@ -5836,6 +6023,7 @@ export const zipLatest: {
5836
6023
  * await Effect.runPromise(program)
5837
6024
  * ```
5838
6025
  *
6026
+ * @stability stable
5839
6027
  * @category zipping
5840
6028
  * @since 2.0.0
5841
6029
  */
@@ -5882,6 +6070,7 @@ export const zipLatest: {
5882
6070
  * }))
5883
6071
  * ```
5884
6072
  *
6073
+ * @stability stable
5885
6074
  * @category zipping
5886
6075
  * @since 2.0.0
5887
6076
  */
@@ -5920,6 +6109,7 @@ export const zipLatestWith: {
5920
6109
  * }))
5921
6110
  * ```
5922
6111
  *
6112
+ * @stability stable
5923
6113
  * @category zipping
5924
6114
  * @since 2.0.0
5925
6115
  */
@@ -5958,6 +6148,7 @@ export const zipLatestWith: {
5958
6148
  * }))
5959
6149
  * ```
5960
6150
  *
6151
+ * @stability stable
5961
6152
  * @category zipping
5962
6153
  * @since 2.0.0
5963
6154
  */
@@ -6001,6 +6192,7 @@ export const zipLatestWith: {
6001
6192
  * await Effect.runPromise(program)
6002
6193
  * ```
6003
6194
  *
6195
+ * @stability stable
6004
6196
  * @category racing
6005
6197
  * @since 3.5.0
6006
6198
  */
@@ -6061,6 +6253,7 @@ export const raceAll = <S extends ReadonlyArray<Stream<any, any, any>>>(
6061
6253
  * await Effect.runPromise(program)
6062
6254
  * ```
6063
6255
  *
6256
+ * @stability stable
6064
6257
  * @category racing
6065
6258
  * @since 3.7.0
6066
6259
  */
@@ -6093,6 +6286,7 @@ export const race: {
6093
6286
  * await Effect.runPromise(program)
6094
6287
  * ```
6095
6288
  *
6289
+ * @stability stable
6096
6290
  * @category racing
6097
6291
  * @since 3.7.0
6098
6292
  */
@@ -6125,6 +6319,7 @@ export const race: {
6125
6319
  * await Effect.runPromise(program)
6126
6320
  * ```
6127
6321
  *
6322
+ * @stability stable
6128
6323
  * @category racing
6129
6324
  * @since 3.7.0
6130
6325
  */
@@ -6153,6 +6348,7 @@ export const race: {
6153
6348
  * await Effect.runPromise(program)
6154
6349
  * ```
6155
6350
  *
6351
+ * @stability stable
6156
6352
  * @category filtering
6157
6353
  * @since 2.0.0
6158
6354
  */
@@ -6176,6 +6372,7 @@ export const filter: {
6176
6372
  * await Effect.runPromise(program)
6177
6373
  * ```
6178
6374
  *
6375
+ * @stability stable
6179
6376
  * @category filtering
6180
6377
  * @since 2.0.0
6181
6378
  */
@@ -6199,6 +6396,7 @@ export const filter: {
6199
6396
  * await Effect.runPromise(program)
6200
6397
  * ```
6201
6398
  *
6399
+ * @stability stable
6202
6400
  * @category filtering
6203
6401
  * @since 2.0.0
6204
6402
  */
@@ -6222,6 +6420,7 @@ export const filter: {
6222
6420
  * await Effect.runPromise(program)
6223
6421
  * ```
6224
6422
  *
6423
+ * @stability stable
6225
6424
  * @category filtering
6226
6425
  * @since 2.0.0
6227
6426
  */
@@ -6245,6 +6444,7 @@ export const filter: {
6245
6444
  * await Effect.runPromise(program)
6246
6445
  * ```
6247
6446
  *
6447
+ * @stability stable
6248
6448
  * @category filtering
6249
6449
  * @since 2.0.0
6250
6450
  */
@@ -6273,6 +6473,7 @@ export const filter: {
6273
6473
  * @see {@link filterMapEffect} for an effectful `Filter`
6274
6474
  * @see {@link partition} for consuming both filter success and failure values
6275
6475
  *
6476
+ * @stability stable
6276
6477
  * @category filtering
6277
6478
  * @since 2.0.0
6278
6479
  */
@@ -6293,6 +6494,7 @@ export const filterMap: {
6293
6494
  * @see {@link filterMapEffect} for an effectful `Filter`
6294
6495
  * @see {@link partition} for consuming both filter success and failure values
6295
6496
  *
6497
+ * @stability stable
6296
6498
  * @category filtering
6297
6499
  * @since 2.0.0
6298
6500
  */
@@ -6313,6 +6515,7 @@ export const filterMap: {
6313
6515
  * @see {@link filterMapEffect} for an effectful `Filter`
6314
6516
  * @see {@link partition} for consuming both filter success and failure values
6315
6517
  *
6518
+ * @stability stable
6316
6519
  * @category filtering
6317
6520
  * @since 2.0.0
6318
6521
  */
@@ -6343,6 +6546,7 @@ export const filterMap: {
6343
6546
  * await Effect.runPromise(program)
6344
6547
  * ```
6345
6548
  *
6549
+ * @stability stable
6346
6550
  * @category filtering
6347
6551
  * @since 2.0.0
6348
6552
  */
@@ -6365,6 +6569,7 @@ export const filterEffect: {
6365
6569
  * await Effect.runPromise(program)
6366
6570
  * ```
6367
6571
  *
6572
+ * @stability stable
6368
6573
  * @category filtering
6369
6574
  * @since 2.0.0
6370
6575
  */
@@ -6387,6 +6592,7 @@ export const filterEffect: {
6387
6592
  * await Effect.runPromise(program)
6388
6593
  * ```
6389
6594
  *
6595
+ * @stability stable
6390
6596
  * @category filtering
6391
6597
  * @since 2.0.0
6392
6598
  */
@@ -6419,6 +6625,7 @@ export const filterEffect: {
6419
6625
  * @see {@link filterEffect} for effectfully keeping original elements
6420
6626
  * @see {@link mapEffect} for effectfully transforming every element
6421
6627
  *
6628
+ * @stability stable
6422
6629
  * @category filtering
6423
6630
  * @since 2.0.0
6424
6631
  */
@@ -6440,6 +6647,7 @@ export const filterMapEffect: {
6440
6647
  * @see {@link filterEffect} for effectfully keeping original elements
6441
6648
  * @see {@link mapEffect} for effectfully transforming every element
6442
6649
  *
6650
+ * @stability stable
6443
6651
  * @category filtering
6444
6652
  * @since 2.0.0
6445
6653
  */
@@ -6461,6 +6669,7 @@ export const filterMapEffect: {
6461
6669
  * @see {@link filterEffect} for effectfully keeping original elements
6462
6670
  * @see {@link mapEffect} for effectfully transforming every element
6463
6671
  *
6672
+ * @stability stable
6464
6673
  * @category filtering
6465
6674
  * @since 2.0.0
6466
6675
  */
@@ -6503,6 +6712,7 @@ export const filterMapEffect: {
6503
6712
  * await Effect.runPromise(Effect.scoped(program))
6504
6713
  * ```
6505
6714
  *
6715
+ * @stability stable
6506
6716
  * @category filtering
6507
6717
  * @since 4.0.0
6508
6718
  */
@@ -6537,6 +6747,7 @@ export const partitionQueue: {
6537
6747
  * await Effect.runPromise(Effect.scoped(program))
6538
6748
  * ```
6539
6749
  *
6750
+ * @stability stable
6540
6751
  * @category filtering
6541
6752
  * @since 4.0.0
6542
6753
  */
@@ -6583,6 +6794,7 @@ export const partitionQueue: {
6583
6794
  * await Effect.runPromise(Effect.scoped(program))
6584
6795
  * ```
6585
6796
  *
6797
+ * @stability stable
6586
6798
  * @category filtering
6587
6799
  * @since 4.0.0
6588
6800
  */
@@ -6650,6 +6862,7 @@ export const partitionQueue: {
6650
6862
  * await Effect.runPromise(Effect.scoped(program))
6651
6863
  * ```
6652
6864
  *
6865
+ * @stability stable
6653
6866
  * @category filtering
6654
6867
  * @since 4.0.0
6655
6868
  */
@@ -6683,6 +6896,7 @@ export const partitionQueue: {
6683
6896
  * await Effect.runPromise(Effect.scoped(program))
6684
6897
  * ```
6685
6898
  *
6899
+ * @stability stable
6686
6900
  * @category filtering
6687
6901
  * @since 4.0.0
6688
6902
  */
@@ -6717,6 +6931,7 @@ export const partitionQueue: {
6717
6931
  * await Effect.runPromise(Effect.scoped(program))
6718
6932
  * ```
6719
6933
  *
6934
+ * @stability stable
6720
6935
  * @category filtering
6721
6936
  * @since 4.0.0
6722
6937
  */
@@ -6750,6 +6965,7 @@ export const partitionQueue: {
6750
6965
  * await Effect.runPromise(Effect.scoped(program))
6751
6966
  * ```
6752
6967
  *
6968
+ * @stability stable
6753
6969
  * @category filtering
6754
6970
  * @since 4.0.0
6755
6971
  */
@@ -6797,6 +7013,14 @@ export const partitionQueue: {
6797
7013
  )
6798
7014
  )
6799
7015
 
7016
+ const fromQueueShutdownOnEnd = <A, E>(queue: Queue.Dequeue<A, E>): Stream<A, Exclude<E, Cause.Done>> =>
7017
+ fromChannel(Channel.fromTransform((_, scope) =>
7018
+ Effect.as(
7019
+ Scope.addFinalizer(scope, Queue.shutdown(queue as Queue.Queue<A, E>)),
7020
+ Queue.takeAll(queue)
7021
+ )
7022
+ ))
7023
+
6800
7024
  /**
6801
7025
  * Splits a stream with an effectful `Filter`, returning scoped streams for
6802
7026
  * filter successes and failures.
@@ -6816,6 +7040,7 @@ export const partitionQueue: {
6816
7040
  * @see {@link partitionQueue} for the lower-level queue result
6817
7041
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6818
7042
  *
7043
+ * @stability stable
6819
7044
  * @category filtering
6820
7045
  * @since 4.0.0
6821
7046
  */
@@ -6839,6 +7064,7 @@ export const partitionEffect: {
6839
7064
  * @see {@link partitionQueue} for the lower-level queue result
6840
7065
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6841
7066
  *
7067
+ * @stability stable
6842
7068
  * @category filtering
6843
7069
  * @since 4.0.0
6844
7070
  */
@@ -6875,6 +7101,7 @@ export const partitionEffect: {
6875
7101
  * @see {@link partitionQueue} for the lower-level queue result
6876
7102
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6877
7103
  *
7104
+ * @stability stable
6878
7105
  * @category filtering
6879
7106
  * @since 4.0.0
6880
7107
  */
@@ -6930,6 +7157,7 @@ export const partitionEffect: {
6930
7157
  * @see {@link partitionQueue} for the lower-level queue result
6931
7158
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6932
7159
  *
7160
+ * @stability stable
6933
7161
  * @category filtering
6934
7162
  * @since 4.0.0
6935
7163
  */
@@ -6952,6 +7180,7 @@ export const partitionEffect: {
6952
7180
  * @see {@link partitionQueue} for the lower-level queue result
6953
7181
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6954
7182
  *
7183
+ * @stability stable
6955
7184
  * @category filtering
6956
7185
  * @since 4.0.0
6957
7186
  */
@@ -6974,6 +7203,7 @@ export const partitionEffect: {
6974
7203
  * @see {@link partitionQueue} for the lower-level queue result
6975
7204
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6976
7205
  *
7206
+ * @stability stable
6977
7207
  * @category filtering
6978
7208
  * @since 4.0.0
6979
7209
  */
@@ -6996,6 +7226,7 @@ export const partitionEffect: {
6996
7226
  * @see {@link partitionQueue} for the lower-level queue result
6997
7227
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
6998
7228
  *
7229
+ * @stability stable
6999
7230
  * @category filtering
7000
7231
  * @since 4.0.0
7001
7232
  */
@@ -7018,6 +7249,7 @@ export const partitionEffect: {
7018
7249
  * @see {@link partitionQueue} for the lower-level queue result
7019
7250
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
7020
7251
  *
7252
+ * @stability stable
7021
7253
  * @category filtering
7022
7254
  * @since 4.0.0
7023
7255
  */
@@ -7026,7 +7258,7 @@ export const partitionEffect: {
7026
7258
  (result) => result,
7027
7259
  options
7028
7260
  ),
7029
- ([passes, fails]) => [fromQueue(passes), fromQueue(fails)] as const
7261
+ ([passes, fails]) => [fromQueueShutdownOnEnd(passes), fromQueueShutdownOnEnd(fails)] as const
7030
7262
  )
7031
7263
  )
7032
7264
 
@@ -7060,6 +7292,7 @@ export const partitionEffect: {
7060
7292
  * await Effect.runPromise(Effect.scoped(program))
7061
7293
  * ```
7062
7294
  *
7295
+ * @stability stable
7063
7296
  * @category filtering
7064
7297
  * @since 2.0.0
7065
7298
  */
@@ -7094,6 +7327,7 @@ export const partition: {
7094
7327
  * await Effect.runPromise(Effect.scoped(program))
7095
7328
  * ```
7096
7329
  *
7330
+ * @stability stable
7097
7331
  * @category filtering
7098
7332
  * @since 2.0.0
7099
7333
  */
@@ -7139,6 +7373,7 @@ export const partition: {
7139
7373
  * await Effect.runPromise(Effect.scoped(program))
7140
7374
  * ```
7141
7375
  *
7376
+ * @stability stable
7142
7377
  * @category filtering
7143
7378
  * @since 2.0.0
7144
7379
  */
@@ -7168,7 +7403,7 @@ export const partition: {
7168
7403
  > =>
7169
7404
  Effect.map(
7170
7405
  partitionQueue(self, filter, { capacity: options?.capacity ?? 16 }),
7171
- ([passes, fails]) => [fromQueue(passes), fromQueue(fails)] as const
7406
+ ([passes, fails]) => [fromQueueShutdownOnEnd(passes), fromQueueShutdownOnEnd(fails)] as const
7172
7407
  )
7173
7408
  )
7174
7409
 
@@ -7191,6 +7426,7 @@ export const partition: {
7191
7426
  * await Effect.runPromise(program)
7192
7427
  * ```
7193
7428
  *
7429
+ * @stability stable
7194
7430
  * @category filtering
7195
7431
  * @since 2.0.0
7196
7432
  */
@@ -7214,6 +7450,7 @@ export const when: {
7214
7450
  * await Effect.runPromise(program)
7215
7451
  * ```
7216
7452
  *
7453
+ * @stability stable
7217
7454
  * @category filtering
7218
7455
  * @since 2.0.0
7219
7456
  */
@@ -7237,6 +7474,7 @@ export const when: {
7237
7474
  * await Effect.runPromise(program)
7238
7475
  * ```
7239
7476
  *
7477
+ * @stability stable
7240
7478
  * @category filtering
7241
7479
  * @since 2.0.0
7242
7480
  */
@@ -7277,6 +7515,7 @@ export const when: {
7277
7515
  * await Effect.runPromise(program)
7278
7516
  * ```
7279
7517
  *
7518
+ * @stability stable
7280
7519
  * @category destructors
7281
7520
  * @since 2.0.0
7282
7521
  */
@@ -7308,6 +7547,7 @@ export const peel: {
7308
7547
  * await Effect.runPromise(program)
7309
7548
  * ```
7310
7549
  *
7550
+ * @stability stable
7311
7551
  * @category destructors
7312
7552
  * @since 2.0.0
7313
7553
  */
@@ -7339,6 +7579,7 @@ export const peel: {
7339
7579
  * await Effect.runPromise(program)
7340
7580
  * ```
7341
7581
  *
7582
+ * @stability stable
7342
7583
  * @category destructors
7343
7584
  * @since 2.0.0
7344
7585
  */
@@ -7359,12 +7600,14 @@ export const peel: {
7359
7600
  return Effect.failCause(cause_)
7360
7601
  })
7361
7602
 
7362
- let stream = fromPull(Effect.succeed(pull)) as Stream<A, E>
7363
- const leftover = yield* run(stream, sink)
7364
- if (cause) return [leftover, empty]
7365
-
7366
- stream = fromPull(Effect.succeed(originalPull))
7367
- return [leftover, stream]
7603
+ const [result, leftover] = yield* Effect.scopedWith((scope) =>
7604
+ sink.transform(pull as Pull.Pull<Arr.NonEmptyReadonlyArray<A>>, scope)
7605
+ )
7606
+ let stream: Stream<A, E> = cause ? empty : fromPull(Effect.succeed(originalPull))
7607
+ if (leftover) {
7608
+ stream = concat(fromArray(leftover), stream)
7609
+ }
7610
+ return [result, stream]
7368
7611
  })
7369
7612
  )
7370
7613
 
@@ -7395,6 +7638,7 @@ export const peel: {
7395
7638
  * await Effect.runPromise(program)
7396
7639
  * ```
7397
7640
  *
7641
+ * @stability stable
7398
7642
  * @category buffering
7399
7643
  * @since 2.0.0
7400
7644
  */
@@ -7426,6 +7670,7 @@ export const buffer: {
7426
7670
  * await Effect.runPromise(program)
7427
7671
  * ```
7428
7672
  *
7673
+ * @stability stable
7429
7674
  * @category buffering
7430
7675
  * @since 2.0.0
7431
7676
  */
@@ -7462,6 +7707,7 @@ export const buffer: {
7462
7707
  * await Effect.runPromise(program)
7463
7708
  * ```
7464
7709
  *
7710
+ * @stability stable
7465
7711
  * @category buffering
7466
7712
  * @since 2.0.0
7467
7713
  */
@@ -7507,6 +7753,7 @@ export const buffer: {
7507
7753
  * await Effect.runPromise(program)
7508
7754
  * ```
7509
7755
  *
7756
+ * @stability stable
7510
7757
  * @category buffering
7511
7758
  * @since 4.0.0
7512
7759
  */
@@ -7538,6 +7785,7 @@ export const bufferArray: {
7538
7785
  * await Effect.runPromise(program)
7539
7786
  * ```
7540
7787
  *
7788
+ * @stability stable
7541
7789
  * @category buffering
7542
7790
  * @since 4.0.0
7543
7791
  */
@@ -7574,6 +7822,7 @@ export const bufferArray: {
7574
7822
  * await Effect.runPromise(program)
7575
7823
  * ```
7576
7824
  *
7825
+ * @stability stable
7577
7826
  * @category buffering
7578
7827
  * @since 4.0.0
7579
7828
  */
@@ -7619,6 +7868,7 @@ export const bufferArray: {
7619
7868
  * await Effect.runPromise(program)
7620
7869
  * ```
7621
7870
  *
7871
+ * @stability stable
7622
7872
  * @category error handling
7623
7873
  * @since 2.0.0
7624
7874
  */
@@ -7650,6 +7900,7 @@ export const catchCause: {
7650
7900
  * await Effect.runPromise(program)
7651
7901
  * ```
7652
7902
  *
7903
+ * @stability stable
7653
7904
  * @category error handling
7654
7905
  * @since 2.0.0
7655
7906
  */
@@ -7681,6 +7932,7 @@ export const catchCause: {
7681
7932
  * await Effect.runPromise(program)
7682
7933
  * ```
7683
7934
  *
7935
+ * @stability stable
7684
7936
  * @category error handling
7685
7937
  * @since 2.0.0
7686
7938
  */
@@ -7714,6 +7966,7 @@ export const catchCause: {
7714
7966
  * result // => ["recovered: boom"]
7715
7967
  * ```
7716
7968
  *
7969
+ * @stability stable
7717
7970
  * @category error handling
7718
7971
  * @since 4.0.0
7719
7972
  */
@@ -7738,6 +7991,7 @@ export const catchDefect: {
7738
7991
  * result // => ["recovered: boom"]
7739
7992
  * ```
7740
7993
  *
7994
+ * @stability stable
7741
7995
  * @category error handling
7742
7996
  * @since 4.0.0
7743
7997
  */
@@ -7762,6 +8016,7 @@ export const catchDefect: {
7762
8016
  * result // => ["recovered: boom"]
7763
8017
  * ```
7764
8018
  *
8019
+ * @stability stable
7765
8020
  * @category error handling
7766
8021
  * @since 4.0.0
7767
8022
  */
@@ -7800,6 +8055,7 @@ export const catchDefect: {
7800
8055
  * observations // => [false]
7801
8056
  * ```
7802
8057
  *
8058
+ * @stability stable
7803
8059
  * @category error handling
7804
8060
  * @since 2.0.0
7805
8061
  */
@@ -7829,6 +8085,7 @@ export const tapCause: {
7829
8085
  * observations // => [false]
7830
8086
  * ```
7831
8087
  *
8088
+ * @stability stable
7832
8089
  * @category error handling
7833
8090
  * @since 2.0.0
7834
8091
  */
@@ -7858,6 +8115,7 @@ export const tapCause: {
7858
8115
  * observations // => [false]
7859
8116
  * ```
7860
8117
  *
8118
+ * @stability stable
7861
8119
  * @category error handling
7862
8120
  * @since 2.0.0
7863
8121
  */
@@ -7909,6 +8167,7 @@ export {
7909
8167
  * await Effect.runPromise(program)
7910
8168
  * ```
7911
8169
  *
8170
+ * @stability stable
7912
8171
  * @category error handling
7913
8172
  * @since 4.0.0
7914
8173
  */
@@ -7939,6 +8198,7 @@ export {
7939
8198
  * errors // => ["boom"]
7940
8199
  * ```
7941
8200
  *
8201
+ * @stability stable
7942
8202
  * @category error handling
7943
8203
  * @since 2.0.0
7944
8204
  */
@@ -7967,6 +8227,7 @@ export const tapError: {
7967
8227
  * errors // => ["boom"]
7968
8228
  * ```
7969
8229
  *
8230
+ * @stability stable
7970
8231
  * @category error handling
7971
8232
  * @since 2.0.0
7972
8233
  */
@@ -7995,6 +8256,7 @@ export const tapError: {
7995
8256
  * errors // => ["boom"]
7996
8257
  * ```
7997
8258
  *
8259
+ * @stability stable
7998
8260
  * @category error handling
7999
8261
  * @since 2.0.0
8000
8262
  */
@@ -8043,6 +8305,7 @@ export const tapError: {
8043
8305
  * @see {@link tapError} for peeking at every typed error
8044
8306
  * @see {@link catchTag} for recovering from a tagged error
8045
8307
  *
8308
+ * @stability stable
8046
8309
  * @category error handling
8047
8310
  * @since 4.0.0
8048
8311
  */
@@ -8082,6 +8345,7 @@ export const tapErrorTag: {
8082
8345
  * @see {@link tapError} for peeking at every typed error
8083
8346
  * @see {@link catchTag} for recovering from a tagged error
8084
8347
  *
8348
+ * @stability stable
8085
8349
  * @category error handling
8086
8350
  * @since 4.0.0
8087
8351
  */
@@ -8126,6 +8390,7 @@ export const tapErrorTag: {
8126
8390
  * @see {@link tapError} for peeking at every typed error
8127
8391
  * @see {@link catchTag} for recovering from a tagged error
8128
8392
  *
8393
+ * @stability stable
8129
8394
  * @category error handling
8130
8395
  * @since 4.0.0
8131
8396
  */
@@ -8199,6 +8464,7 @@ export const tapErrorTag: {
8199
8464
  * @see {@link tapCause} for peeking at the full failure cause
8200
8465
  * @see {@link catchDefect} for recovering from defects
8201
8466
  *
8467
+ * @stability stable
8202
8468
  * @category error handling
8203
8469
  * @since 4.0.0
8204
8470
  */
@@ -8231,6 +8497,7 @@ export const tapDefect: {
8231
8497
  * @see {@link tapCause} for peeking at the full failure cause
8232
8498
  * @see {@link catchDefect} for recovering from defects
8233
8499
  *
8500
+ * @stability stable
8234
8501
  * @category error handling
8235
8502
  * @since 4.0.0
8236
8503
  */
@@ -8263,6 +8530,7 @@ export const tapDefect: {
8263
8530
  * @see {@link tapCause} for peeking at the full failure cause
8264
8531
  * @see {@link catchDefect} for recovering from defects
8265
8532
  *
8533
+ * @stability stable
8266
8534
  * @category error handling
8267
8535
  * @since 4.0.0
8268
8536
  */
@@ -8306,6 +8574,7 @@ export const tapDefect: {
8306
8574
  * await Effect.runPromise(program)
8307
8575
  * ```
8308
8576
  *
8577
+ * @stability stable
8309
8578
  * @category error handling
8310
8579
  * @since 4.0.0
8311
8580
  */
@@ -8340,6 +8609,7 @@ export const catchIf: {
8340
8609
  * await Effect.runPromise(program)
8341
8610
  * ```
8342
8611
  *
8612
+ * @stability stable
8343
8613
  * @category error handling
8344
8614
  * @since 4.0.0
8345
8615
  */
@@ -8380,6 +8650,7 @@ export const catchIf: {
8380
8650
  * await Effect.runPromise(program)
8381
8651
  * ```
8382
8652
  *
8653
+ * @stability stable
8383
8654
  * @category error handling
8384
8655
  * @since 4.0.0
8385
8656
  */
@@ -8420,6 +8691,7 @@ export const catchIf: {
8420
8691
  * await Effect.runPromise(program)
8421
8692
  * ```
8422
8693
  *
8694
+ * @stability stable
8423
8695
  * @category error handling
8424
8696
  * @since 4.0.0
8425
8697
  */
@@ -8459,6 +8731,7 @@ export const catchIf: {
8459
8731
  * await Effect.runPromise(program)
8460
8732
  * ```
8461
8733
  *
8734
+ * @stability stable
8462
8735
  * @category error handling
8463
8736
  * @since 4.0.0
8464
8737
  */
@@ -8512,6 +8785,7 @@ export const catchIf: {
8512
8785
  * @see {@link catchTags} for `_tag` based recovery from multiple tagged errors
8513
8786
  * @see {@link catchCauseFilter} for filtering full causes
8514
8787
  *
8788
+ * @stability stable
8515
8789
  * @category error handling
8516
8790
  * @since 4.0.0
8517
8791
  */
@@ -8535,6 +8809,7 @@ export const catchFilter: {
8535
8809
  * @see {@link catchTags} for `_tag` based recovery from multiple tagged errors
8536
8810
  * @see {@link catchCauseFilter} for filtering full causes
8537
8811
  *
8812
+ * @stability stable
8538
8813
  * @category error handling
8539
8814
  * @since 4.0.0
8540
8815
  */
@@ -8564,6 +8839,7 @@ export const catchFilter: {
8564
8839
  * @see {@link catchTags} for `_tag` based recovery from multiple tagged errors
8565
8840
  * @see {@link catchCauseFilter} for filtering full causes
8566
8841
  *
8842
+ * @stability stable
8567
8843
  * @category error handling
8568
8844
  * @since 4.0.0
8569
8845
  */
@@ -8630,6 +8906,7 @@ export const catchFilter: {
8630
8906
  * await Effect.runPromise(program)
8631
8907
  * ```
8632
8908
  *
8909
+ * @stability stable
8633
8910
  * @category error handling
8634
8911
  * @since 2.0.0
8635
8912
  */
@@ -8664,6 +8941,7 @@ export const catchTag: {
8664
8941
  * await Effect.runPromise(program)
8665
8942
  * ```
8666
8943
  *
8944
+ * @stability stable
8667
8945
  * @category error handling
8668
8946
  * @since 2.0.0
8669
8947
  */
@@ -8723,6 +9001,7 @@ export const catchTag: {
8723
9001
  * await Effect.runPromise(program)
8724
9002
  * ```
8725
9003
  *
9004
+ * @stability stable
8726
9005
  * @category error handling
8727
9006
  * @since 2.0.0
8728
9007
  */
@@ -8813,6 +9092,7 @@ export const catchTag: {
8813
9092
  * await Effect.runPromise(program)
8814
9093
  * ```
8815
9094
  *
9095
+ * @stability stable
8816
9096
  * @category error handling
8817
9097
  * @since 2.0.0
8818
9098
  */
@@ -8851,6 +9131,7 @@ export const catchTags: {
8851
9131
  * await Effect.runPromise(program)
8852
9132
  * ```
8853
9133
  *
9134
+ * @stability stable
8854
9135
  * @category error handling
8855
9136
  * @since 2.0.0
8856
9137
  */
@@ -8916,6 +9197,7 @@ export const catchTags: {
8916
9197
  * await Effect.runPromise(program)
8917
9198
  * ```
8918
9199
  *
9200
+ * @stability stable
8919
9201
  * @category error handling
8920
9202
  * @since 2.0.0
8921
9203
  */
@@ -9011,6 +9293,7 @@ export const catchTags: {
9011
9293
  * await Effect.runPromise(program)
9012
9294
  * ```
9013
9295
  *
9296
+ * @stability stable
9014
9297
  * @category error handling
9015
9298
  * @since 4.0.0
9016
9299
  */
@@ -9061,6 +9344,7 @@ export const catchReason: {
9061
9344
  * await Effect.runPromise(program)
9062
9345
  * ```
9063
9346
  *
9347
+ * @stability stable
9064
9348
  * @category error handling
9065
9349
  * @since 4.0.0
9066
9350
  */
@@ -9140,6 +9424,7 @@ export const catchReason: {
9140
9424
  * await Effect.runPromise(program)
9141
9425
  * ```
9142
9426
  *
9427
+ * @stability stable
9143
9428
  * @category error handling
9144
9429
  * @since 4.0.0
9145
9430
  */
@@ -9244,6 +9529,7 @@ export const catchReason: {
9244
9529
  * await Effect.runPromise(program)
9245
9530
  * ```
9246
9531
  *
9532
+ * @stability stable
9247
9533
  * @category error handling
9248
9534
  * @since 4.0.0
9249
9535
  */
@@ -9286,6 +9572,7 @@ export const catchReasons: {
9286
9572
  * await Effect.runPromise(program)
9287
9573
  * ```
9288
9574
  *
9575
+ * @stability stable
9289
9576
  * @category error handling
9290
9577
  * @since 4.0.0
9291
9578
  */
@@ -9366,6 +9653,7 @@ export const catchReasons: {
9366
9653
  * await Effect.runPromise(program)
9367
9654
  * ```
9368
9655
  *
9656
+ * @stability stable
9369
9657
  * @category error handling
9370
9658
  * @since 4.0.0
9371
9659
  */
@@ -9472,6 +9760,7 @@ export const catchReasons: {
9472
9760
  * @see {@link catchReason} for recovering from a specific reason
9473
9761
  * @see {@link catchReasons} for handling several reasons at once
9474
9762
  *
9763
+ * @stability stable
9475
9764
  * @category error handling
9476
9765
  * @since 4.0.0
9477
9766
  */
@@ -9516,6 +9805,7 @@ export const unwrapReason: {
9516
9805
  * @see {@link catchReason} for recovering from a specific reason
9517
9806
  * @see {@link catchReasons} for handling several reasons at once
9518
9807
  *
9808
+ * @stability stable
9519
9809
  * @category error handling
9520
9810
  * @since 4.0.0
9521
9811
  */
@@ -9563,6 +9853,7 @@ export const unwrapReason: {
9563
9853
  * @see {@link catchReason} for recovering from a specific reason
9564
9854
  * @see {@link catchReasons} for handling several reasons at once
9565
9855
  *
9856
+ * @stability stable
9566
9857
  * @category error handling
9567
9858
  * @since 4.0.0
9568
9859
  */
@@ -9615,6 +9906,7 @@ export const unwrapReason: {
9615
9906
  * await Effect.runPromise(program)
9616
9907
  * ```
9617
9908
  *
9909
+ * @stability stable
9618
9910
  * @category error handling
9619
9911
  * @since 2.0.0
9620
9912
  */
@@ -9639,6 +9931,7 @@ export const mapError: {
9639
9931
  * await Effect.runPromise(program)
9640
9932
  * ```
9641
9933
  *
9934
+ * @stability stable
9642
9935
  * @category error handling
9643
9936
  * @since 2.0.0
9644
9937
  */
@@ -9663,6 +9956,7 @@ export const mapError: {
9663
9956
  * await Effect.runPromise(program)
9664
9957
  * ```
9665
9958
  *
9959
+ * @stability stable
9666
9960
  * @category error handling
9667
9961
  * @since 2.0.0
9668
9962
  */
@@ -9696,6 +9990,7 @@ export const mapError: {
9696
9990
  * await Effect.runPromise(program)
9697
9991
  * ```
9698
9992
  *
9993
+ * @stability stable
9699
9994
  * @category error handling
9700
9995
  * @since 4.0.0
9701
9996
  */
@@ -9724,6 +10019,7 @@ export const catchCauseIf: {
9724
10019
  * await Effect.runPromise(program)
9725
10020
  * ```
9726
10021
  *
10022
+ * @stability stable
9727
10023
  * @category error handling
9728
10024
  * @since 4.0.0
9729
10025
  */
@@ -9757,6 +10053,7 @@ export const catchCauseIf: {
9757
10053
  * await Effect.runPromise(program)
9758
10054
  * ```
9759
10055
  *
10056
+ * @stability stable
9760
10057
  * @category error handling
9761
10058
  * @since 4.0.0
9762
10059
  */
@@ -9798,6 +10095,7 @@ export const catchCauseIf: {
9798
10095
  * @see {@link catchFilter} for filtering typed error values instead of full causes
9799
10096
  * @see {@link catchCause} for recovering from every cause without filtering
9800
10097
  *
10098
+ * @stability stable
9801
10099
  * @category error handling
9802
10100
  * @since 4.0.0
9803
10101
  */
@@ -9822,6 +10120,7 @@ export const catchCauseFilter: {
9822
10120
  * @see {@link catchFilter} for filtering typed error values instead of full causes
9823
10121
  * @see {@link catchCause} for recovering from every cause without filtering
9824
10122
  *
10123
+ * @stability stable
9825
10124
  * @category error handling
9826
10125
  * @since 4.0.0
9827
10126
  */
@@ -9851,6 +10150,7 @@ export const catchCauseFilter: {
9851
10150
  * @see {@link catchFilter} for filtering typed error values instead of full causes
9852
10151
  * @see {@link catchCause} for recovering from every cause without filtering
9853
10152
  *
10153
+ * @stability stable
9854
10154
  * @category error handling
9855
10155
  * @since 4.0.0
9856
10156
  */
@@ -9891,6 +10191,7 @@ export const catchCauseFilter: {
9891
10191
  * await Effect.runPromise(program)
9892
10192
  * ```
9893
10193
  *
10194
+ * @stability stable
9894
10195
  * @category error handling
9895
10196
  * @since 2.0.0
9896
10197
  */
@@ -9914,6 +10215,7 @@ export const orElseIfEmpty: {
9914
10215
  * await Effect.runPromise(program)
9915
10216
  * ```
9916
10217
  *
10218
+ * @stability stable
9917
10219
  * @category error handling
9918
10220
  * @since 2.0.0
9919
10221
  */
@@ -9937,6 +10239,7 @@ export const orElseIfEmpty: {
9937
10239
  * await Effect.runPromise(program)
9938
10240
  * ```
9939
10241
  *
10242
+ * @stability stable
9940
10243
  * @category error handling
9941
10244
  * @since 2.0.0
9942
10245
  */
@@ -9970,6 +10273,7 @@ export const orElseIfEmpty: {
9970
10273
  * await Effect.runPromise(program)
9971
10274
  * ```
9972
10275
  *
10276
+ * @stability stable
9973
10277
  * @category error handling
9974
10278
  * @since 2.0.0
9975
10279
  */
@@ -9994,6 +10298,7 @@ export const orElseSucceed: {
9994
10298
  * await Effect.runPromise(program)
9995
10299
  * ```
9996
10300
  *
10301
+ * @stability stable
9997
10302
  * @category error handling
9998
10303
  * @since 2.0.0
9999
10304
  */
@@ -10018,6 +10323,7 @@ export const orElseSucceed: {
10018
10323
  * await Effect.runPromise(program)
10019
10324
  * ```
10020
10325
  *
10326
+ * @stability stable
10021
10327
  * @category error handling
10022
10328
  * @since 2.0.0
10023
10329
  */
@@ -10047,6 +10353,7 @@ export const orElseSucceed: {
10047
10353
  * await Effect.runPromise(program)
10048
10354
  * ```
10049
10355
  *
10356
+ * @stability stable
10050
10357
  * @category error handling
10051
10358
  * @since 2.0.0
10052
10359
  */
@@ -10099,6 +10406,7 @@ export const orDie = <A, E, R>(self: Stream<A, E, R>): Stream<A, never, R> => fr
10099
10406
  *
10100
10407
  * @see {@link ignoreCause} for a variant that also ignores defects, not just typed failures
10101
10408
  *
10409
+ * @stability stable
10102
10410
  * @category error handling
10103
10411
  * @since 4.0.0
10104
10412
  */
@@ -10148,6 +10456,7 @@ export const ignore: <
10148
10456
  *
10149
10457
  * @see {@link ignore} to ignore only typed failures without suppressing defects
10150
10458
  *
10459
+ * @stability stable
10151
10460
  * @category error handling
10152
10461
  * @since 4.0.0
10153
10462
  */
@@ -10199,6 +10508,7 @@ export const ignoreCause: <
10199
10508
  * await Effect.runPromise(program)
10200
10509
  * ```
10201
10510
  *
10511
+ * @stability stable
10202
10512
  * @category error handling
10203
10513
  * @since 2.0.0
10204
10514
  */
@@ -10233,6 +10543,7 @@ export const retry: {
10233
10543
  * await Effect.runPromise(program)
10234
10544
  * ```
10235
10545
  *
10546
+ * @stability stable
10236
10547
  * @category error handling
10237
10548
  * @since 2.0.0
10238
10549
  */
@@ -10273,6 +10584,7 @@ export const retry: {
10273
10584
  * await Effect.runPromise(program)
10274
10585
  * ```
10275
10586
  *
10587
+ * @stability stable
10276
10588
  * @category error handling
10277
10589
  * @since 2.0.0
10278
10590
  */
@@ -10363,6 +10675,7 @@ const retryWithoutReset = <A, E, R, X, E2, R2>(
10363
10675
  * await Effect.runPromise(program)
10364
10676
  * ```
10365
10677
  *
10678
+ * @stability unstable
10366
10679
  * @category error handling
10367
10680
  * @since 3.16.0
10368
10681
  */
@@ -10413,6 +10726,7 @@ export const withExecutionPlan: {
10413
10726
  * await Effect.runPromise(program)
10414
10727
  * ```
10415
10728
  *
10729
+ * @stability unstable
10416
10730
  * @category error handling
10417
10731
  * @since 3.16.0
10418
10732
  */
@@ -10469,6 +10783,7 @@ export const withExecutionPlan: {
10469
10783
  * await Effect.runPromise(program)
10470
10784
  * ```
10471
10785
  *
10786
+ * @stability unstable
10472
10787
  * @category error handling
10473
10788
  * @since 3.16.0
10474
10789
  */
@@ -10578,6 +10893,7 @@ export const withExecutionPlan: {
10578
10893
  * await Effect.runPromise(program)
10579
10894
  * ```
10580
10895
  *
10896
+ * @stability unstable
10581
10897
  * @category error handling
10582
10898
  * @since 3.16.0
10583
10899
  */
@@ -10657,6 +10973,7 @@ export const withExecutionPlan: {
10657
10973
  * await Effect.runPromise(program)
10658
10974
  * ```
10659
10975
  *
10976
+ * @stability stable
10660
10977
  * @category filtering
10661
10978
  * @since 2.0.0
10662
10979
  */
@@ -10685,6 +11002,7 @@ export const take: {
10685
11002
  * await Effect.runPromise(program)
10686
11003
  * ```
10687
11004
  *
11005
+ * @stability stable
10688
11006
  * @category filtering
10689
11007
  * @since 2.0.0
10690
11008
  */
@@ -10713,6 +11031,7 @@ export const take: {
10713
11031
  * await Effect.runPromise(program)
10714
11032
  * ```
10715
11033
  *
11034
+ * @stability stable
10716
11035
  * @category filtering
10717
11036
  * @since 2.0.0
10718
11037
  */
@@ -10746,6 +11065,7 @@ export const take: {
10746
11065
  * await Effect.runPromise(program) // => [[1, 2]]
10747
11066
  * ```
10748
11067
  *
11068
+ * @stability unstable
10749
11069
  * @category filtering
10750
11070
  * @since 4.0.0
10751
11071
  */
@@ -10771,6 +11091,7 @@ export const limitBytes: {
10771
11091
  * await Effect.runPromise(program) // => [[1, 2]]
10772
11092
  * ```
10773
11093
  *
11094
+ * @stability unstable
10774
11095
  * @category filtering
10775
11096
  * @since 4.0.0
10776
11097
  */
@@ -10796,6 +11117,7 @@ export const limitBytes: {
10796
11117
  * await Effect.runPromise(program) // => [[1, 2]]
10797
11118
  * ```
10798
11119
  *
11120
+ * @stability unstable
10799
11121
  * @category filtering
10800
11122
  * @since 4.0.0
10801
11123
  */
@@ -10851,6 +11173,7 @@ export const limitBytes: {
10851
11173
  * await Effect.runPromise(program)
10852
11174
  * ```
10853
11175
  *
11176
+ * @stability stable
10854
11177
  * @category filtering
10855
11178
  * @since 2.0.0
10856
11179
  */
@@ -10879,6 +11202,7 @@ export const takeRight: {
10879
11202
  * await Effect.runPromise(program)
10880
11203
  * ```
10881
11204
  *
11205
+ * @stability stable
10882
11206
  * @category filtering
10883
11207
  * @since 2.0.0
10884
11208
  */
@@ -10907,6 +11231,7 @@ export const takeRight: {
10907
11231
  * await Effect.runPromise(program)
10908
11232
  * ```
10909
11233
  *
11234
+ * @stability stable
10910
11235
  * @category filtering
10911
11236
  * @since 2.0.0
10912
11237
  */
@@ -10960,6 +11285,7 @@ export const takeRight: {
10960
11285
  * await Effect.runPromise(program)
10961
11286
  * ```
10962
11287
  *
11288
+ * @stability stable
10963
11289
  * @category filtering
10964
11290
  * @since 2.0.0
10965
11291
  */
@@ -10994,6 +11320,7 @@ export const takeUntil: {
10994
11320
  * await Effect.runPromise(program)
10995
11321
  * ```
10996
11322
  *
11323
+ * @stability stable
10997
11324
  * @category filtering
10998
11325
  * @since 2.0.0
10999
11326
  */
@@ -11033,6 +11360,7 @@ export const takeUntil: {
11033
11360
  * await Effect.runPromise(program)
11034
11361
  * ```
11035
11362
  *
11363
+ * @stability stable
11036
11364
  * @category filtering
11037
11365
  * @since 2.0.0
11038
11366
  */
@@ -11092,6 +11420,7 @@ export const takeUntil: {
11092
11420
  * await Effect.runPromise(program)
11093
11421
  * ```
11094
11422
  *
11423
+ * @stability stable
11095
11424
  * @category filtering
11096
11425
  * @since 2.0.0
11097
11426
  */
@@ -11120,6 +11449,7 @@ export const takeUntilEffect: {
11120
11449
  * await Effect.runPromise(program)
11121
11450
  * ```
11122
11451
  *
11452
+ * @stability stable
11123
11453
  * @category filtering
11124
11454
  * @since 2.0.0
11125
11455
  */
@@ -11153,6 +11483,7 @@ export const takeUntilEffect: {
11153
11483
  * await Effect.runPromise(program)
11154
11484
  * ```
11155
11485
  *
11486
+ * @stability stable
11156
11487
  * @category filtering
11157
11488
  * @since 2.0.0
11158
11489
  */
@@ -11208,6 +11539,7 @@ export const takeUntilEffect: {
11208
11539
  * await Effect.runPromise(program)
11209
11540
  * ```
11210
11541
  *
11542
+ * @stability stable
11211
11543
  * @category filtering
11212
11544
  * @since 2.0.0
11213
11545
  */
@@ -11232,6 +11564,7 @@ export const takeWhile: {
11232
11564
  * await Effect.runPromise(program)
11233
11565
  * ```
11234
11566
  *
11567
+ * @stability stable
11235
11568
  * @category filtering
11236
11569
  * @since 2.0.0
11237
11570
  */
@@ -11256,6 +11589,7 @@ export const takeWhile: {
11256
11589
  * await Effect.runPromise(program)
11257
11590
  * ```
11258
11591
  *
11592
+ * @stability stable
11259
11593
  * @category filtering
11260
11594
  * @since 2.0.0
11261
11595
  */
@@ -11280,6 +11614,7 @@ export const takeWhile: {
11280
11614
  * await Effect.runPromise(program)
11281
11615
  * ```
11282
11616
  *
11617
+ * @stability stable
11283
11618
  * @category filtering
11284
11619
  * @since 2.0.0
11285
11620
  */
@@ -11304,6 +11639,7 @@ export const takeWhile: {
11304
11639
  * await Effect.runPromise(program)
11305
11640
  * ```
11306
11641
  *
11642
+ * @stability stable
11307
11643
  * @category filtering
11308
11644
  * @since 2.0.0
11309
11645
  */
@@ -11353,6 +11689,7 @@ export const takeWhile: {
11353
11689
  * @see {@link filterMap} for filtering across the whole stream instead of only the leading prefix
11354
11690
  * @see {@link dropWhileFilter} for dropping the accepted prefix and keeping the remaining original elements
11355
11691
  *
11692
+ * @stability stable
11356
11693
  * @category filtering
11357
11694
  * @since 4.0.0
11358
11695
  */
@@ -11374,6 +11711,7 @@ export const takeWhileFilter: {
11374
11711
  * @see {@link filterMap} for filtering across the whole stream instead of only the leading prefix
11375
11712
  * @see {@link dropWhileFilter} for dropping the accepted prefix and keeping the remaining original elements
11376
11713
  *
11714
+ * @stability stable
11377
11715
  * @category filtering
11378
11716
  * @since 4.0.0
11379
11717
  */
@@ -11395,6 +11733,7 @@ export const takeWhileFilter: {
11395
11733
  * @see {@link filterMap} for filtering across the whole stream instead of only the leading prefix
11396
11734
  * @see {@link dropWhileFilter} for dropping the accepted prefix and keeping the remaining original elements
11397
11735
  *
11736
+ * @stability stable
11398
11737
  * @category filtering
11399
11738
  * @since 4.0.0
11400
11739
  */
@@ -11451,6 +11790,7 @@ export const takeWhileFilter: {
11451
11790
  * await Effect.runPromise(program)
11452
11791
  * ```
11453
11792
  *
11793
+ * @stability stable
11454
11794
  * @category filtering
11455
11795
  * @since 4.0.0
11456
11796
  */
@@ -11479,6 +11819,7 @@ export const takeWhileEffect: {
11479
11819
  * await Effect.runPromise(program)
11480
11820
  * ```
11481
11821
  *
11822
+ * @stability stable
11482
11823
  * @category filtering
11483
11824
  * @since 4.0.0
11484
11825
  */
@@ -11507,6 +11848,7 @@ export const takeWhileEffect: {
11507
11848
  * await Effect.runPromise(program)
11508
11849
  * ```
11509
11850
  *
11851
+ * @stability stable
11510
11852
  * @category filtering
11511
11853
  * @since 4.0.0
11512
11854
  */
@@ -11548,6 +11890,7 @@ export const takeWhileEffect: {
11548
11890
  * await Effect.runPromise(program)
11549
11891
  * ```
11550
11892
  *
11893
+ * @stability stable
11551
11894
  * @category filtering
11552
11895
  * @since 2.0.0
11553
11896
  */
@@ -11576,6 +11919,7 @@ export const drop: {
11576
11919
  * await Effect.runPromise(program)
11577
11920
  * ```
11578
11921
  *
11922
+ * @stability stable
11579
11923
  * @category filtering
11580
11924
  * @since 2.0.0
11581
11925
  */
@@ -11604,6 +11948,7 @@ export const drop: {
11604
11948
  * await Effect.runPromise(program)
11605
11949
  * ```
11606
11950
  *
11951
+ * @stability stable
11607
11952
  * @category filtering
11608
11953
  * @since 2.0.0
11609
11954
  */
@@ -11647,6 +11992,7 @@ export const drop: {
11647
11992
  * }))
11648
11993
  * ```
11649
11994
  *
11995
+ * @stability stable
11650
11996
  * @category filtering
11651
11997
  * @since 2.0.0
11652
11998
  */
@@ -11669,6 +12015,7 @@ export const dropUntil: {
11669
12015
  * }))
11670
12016
  * ```
11671
12017
  *
12018
+ * @stability stable
11672
12019
  * @category filtering
11673
12020
  * @since 2.0.0
11674
12021
  */
@@ -11691,6 +12038,7 @@ export const dropUntil: {
11691
12038
  * }))
11692
12039
  * ```
11693
12040
  *
12041
+ * @stability stable
11694
12042
  * @category filtering
11695
12043
  * @since 2.0.0
11696
12044
  */
@@ -11728,6 +12076,7 @@ export const dropUntil: {
11728
12076
  * await Effect.runPromise(program)
11729
12077
  * ```
11730
12078
  *
12079
+ * @stability stable
11731
12080
  * @category filtering
11732
12081
  * @since 2.0.0
11733
12082
  */
@@ -11757,6 +12106,7 @@ export const dropUntilEffect: {
11757
12106
  * await Effect.runPromise(program)
11758
12107
  * ```
11759
12108
  *
12109
+ * @stability stable
11760
12110
  * @category filtering
11761
12111
  * @since 2.0.0
11762
12112
  */
@@ -11788,6 +12138,7 @@ export const dropUntilEffect: {
11788
12138
  * await Effect.runPromise(program)
11789
12139
  * ```
11790
12140
  *
12141
+ * @stability stable
11791
12142
  * @category filtering
11792
12143
  * @since 2.0.0
11793
12144
  */
@@ -11826,6 +12177,7 @@ export const dropUntilEffect: {
11826
12177
  * await Effect.runPromise(program)
11827
12178
  * ```
11828
12179
  *
12180
+ * @stability stable
11829
12181
  * @category filtering
11830
12182
  * @since 2.0.0
11831
12183
  */
@@ -11849,6 +12201,7 @@ export const dropWhile: {
11849
12201
  * await Effect.runPromise(program)
11850
12202
  * ```
11851
12203
  *
12204
+ * @stability stable
11852
12205
  * @category filtering
11853
12206
  * @since 2.0.0
11854
12207
  */
@@ -11872,6 +12225,7 @@ export const dropWhile: {
11872
12225
  * await Effect.runPromise(program)
11873
12226
  * ```
11874
12227
  *
12228
+ * @stability stable
11875
12229
  * @category filtering
11876
12230
  * @since 2.0.0
11877
12231
  */
@@ -11914,6 +12268,7 @@ export const dropWhile: {
11914
12268
  * @see {@link takeWhileFilter} for keeping the accepted prefix as filter success values
11915
12269
  * @see {@link dropWhileEffect} for effectful predicate prefix dropping
11916
12270
  *
12271
+ * @stability stable
11917
12272
  * @category filtering
11918
12273
  * @since 4.0.0
11919
12274
  */
@@ -11936,6 +12291,7 @@ export const dropWhileFilter: {
11936
12291
  * @see {@link takeWhileFilter} for keeping the accepted prefix as filter success values
11937
12292
  * @see {@link dropWhileEffect} for effectful predicate prefix dropping
11938
12293
  *
12294
+ * @stability stable
11939
12295
  * @category filtering
11940
12296
  * @since 4.0.0
11941
12297
  */
@@ -11958,6 +12314,7 @@ export const dropWhileFilter: {
11958
12314
  * @see {@link takeWhileFilter} for keeping the accepted prefix as filter success values
11959
12315
  * @see {@link dropWhileEffect} for effectful predicate prefix dropping
11960
12316
  *
12317
+ * @stability stable
11961
12318
  * @category filtering
11962
12319
  * @since 4.0.0
11963
12320
  */
@@ -11997,6 +12354,7 @@ export const dropWhileFilter: {
11997
12354
  * await Effect.runPromise(program)
11998
12355
  * ```
11999
12356
  *
12357
+ * @stability stable
12000
12358
  * @category filtering
12001
12359
  * @since 2.0.0
12002
12360
  */
@@ -12020,6 +12378,7 @@ export const dropWhileEffect: {
12020
12378
  * await Effect.runPromise(program)
12021
12379
  * ```
12022
12380
  *
12381
+ * @stability stable
12023
12382
  * @category filtering
12024
12383
  * @since 2.0.0
12025
12384
  */
@@ -12045,6 +12404,7 @@ export const dropWhileEffect: {
12045
12404
  * await Effect.runPromise(program)
12046
12405
  * ```
12047
12406
  *
12407
+ * @stability stable
12048
12408
  * @category filtering
12049
12409
  * @since 2.0.0
12050
12410
  */
@@ -12101,6 +12461,7 @@ export const dropWhileEffect: {
12101
12461
  * await Effect.runPromise(program)
12102
12462
  * ```
12103
12463
  *
12464
+ * @stability stable
12104
12465
  * @category filtering
12105
12466
  * @since 2.0.0
12106
12467
  */
@@ -12130,6 +12491,7 @@ export const dropRight: {
12130
12491
  * await Effect.runPromise(program)
12131
12492
  * ```
12132
12493
  *
12494
+ * @stability stable
12133
12495
  * @category filtering
12134
12496
  * @since 2.0.0
12135
12497
  */
@@ -12159,6 +12521,7 @@ export const dropRight: {
12159
12521
  * await Effect.runPromise(program)
12160
12522
  * ```
12161
12523
  *
12524
+ * @stability stable
12162
12525
  * @category filtering
12163
12526
  * @since 2.0.0
12164
12527
  */
@@ -12195,6 +12558,7 @@ export const dropRight: {
12195
12558
  * await Effect.runPromise(program)
12196
12559
  * ```
12197
12560
  *
12561
+ * @stability stable
12198
12562
  * @category filtering
12199
12563
  * @since 2.0.0
12200
12564
  */
@@ -12230,6 +12594,7 @@ export const dropRight: {
12230
12594
  * await Effect.runPromise(program)
12231
12595
  * ```
12232
12596
  *
12597
+ * @stability stable
12233
12598
  * @category grouping
12234
12599
  * @since 2.0.0
12235
12600
  */
@@ -12264,6 +12629,7 @@ export const chunks = <A, E, R>(self: Stream<A, E, R>): Stream<Arr.NonEmptyReado
12264
12629
  * await Effect.runPromise(program)
12265
12630
  * ```
12266
12631
  *
12632
+ * @stability stable
12267
12633
  * @category grouping
12268
12634
  * @since 2.0.0
12269
12635
  */
@@ -12293,6 +12659,7 @@ export const rechunk: {
12293
12659
  * await Effect.runPromise(program)
12294
12660
  * ```
12295
12661
  *
12662
+ * @stability stable
12296
12663
  * @category grouping
12297
12664
  * @since 2.0.0
12298
12665
  */
@@ -12322,6 +12689,7 @@ export const rechunk: {
12322
12689
  * await Effect.runPromise(program)
12323
12690
  * ```
12324
12691
  *
12692
+ * @stability stable
12325
12693
  * @category grouping
12326
12694
  * @since 2.0.0
12327
12695
  */
@@ -12355,6 +12723,7 @@ export const rechunk: {
12355
12723
  * await Effect.runPromise(program)
12356
12724
  * ```
12357
12725
  *
12726
+ * @stability stable
12358
12727
  * @category grouping
12359
12728
  * @since 2.0.0
12360
12729
  */
@@ -12425,6 +12794,7 @@ export const rechunk: {
12425
12794
  * }))
12426
12795
  * ```
12427
12796
  *
12797
+ * @stability stable
12428
12798
  * @category grouping
12429
12799
  * @since 2.0.0
12430
12800
  */
@@ -12452,6 +12822,7 @@ export const sliding: {
12452
12822
  * }))
12453
12823
  * ```
12454
12824
  *
12825
+ * @stability stable
12455
12826
  * @category grouping
12456
12827
  * @since 2.0.0
12457
12828
  */
@@ -12479,6 +12850,7 @@ export const sliding: {
12479
12850
  * }))
12480
12851
  * ```
12481
12852
  *
12853
+ * @stability stable
12482
12854
  * @category grouping
12483
12855
  * @since 2.0.0
12484
12856
  */
@@ -12513,6 +12885,7 @@ export const sliding: {
12513
12885
  * await Effect.runPromise(program)
12514
12886
  * ```
12515
12887
  *
12888
+ * @stability stable
12516
12889
  * @category grouping
12517
12890
  * @since 2.0.0
12518
12891
  */
@@ -12541,6 +12914,7 @@ export const slidingSize: {
12541
12914
  * await Effect.runPromise(program)
12542
12915
  * ```
12543
12916
  *
12917
+ * @stability stable
12544
12918
  * @category grouping
12545
12919
  * @since 2.0.0
12546
12920
  */
@@ -12569,6 +12943,7 @@ export const slidingSize: {
12569
12943
  * await Effect.runPromise(program)
12570
12944
  * ```
12571
12945
  *
12946
+ * @stability stable
12572
12947
  * @category grouping
12573
12948
  * @since 2.0.0
12574
12949
  */
@@ -12605,6 +12980,7 @@ export const slidingSize: {
12605
12980
  * await Effect.runPromise(program)
12606
12981
  * ```
12607
12982
  *
12983
+ * @stability stable
12608
12984
  * @category grouping
12609
12985
  * @since 2.0.0
12610
12986
  */
@@ -12638,8 +13014,8 @@ export const slidingSize: {
12638
13014
  return Effect.succeed(chunks)
12639
13015
  },
12640
13016
  onFailure(cause_) {
12641
- if (emitted) MutableList.takeNVoid(list, windowSize - step)
12642
- if (list.length === 0) return Effect.failCause(cause_)
13017
+ // The buffer has already advanced by step after a full window.
13018
+ if (list.length === 0 || (emitted && list.length <= windowSize - step)) return Effect.failCause(cause_)
12643
13019
  cause = cause_
12644
13020
  return Effect.succeed(Arr.of(MutableList.takeAll(list) as any))
12645
13021
  }
@@ -12673,6 +13049,7 @@ export const slidingSize: {
12673
13049
  * await Effect.runPromise(program)
12674
13050
  * ```
12675
13051
  *
13052
+ * @stability stable
12676
13053
  * @category grouping
12677
13054
  * @since 2.0.0
12678
13055
  */
@@ -12700,6 +13077,7 @@ export const split: {
12700
13077
  * await Effect.runPromise(program)
12701
13078
  * ```
12702
13079
  *
13080
+ * @stability stable
12703
13081
  * @category grouping
12704
13082
  * @since 2.0.0
12705
13083
  */
@@ -12727,6 +13105,7 @@ export const split: {
12727
13105
  * await Effect.runPromise(program)
12728
13106
  * ```
12729
13107
  *
13108
+ * @stability stable
12730
13109
  * @category grouping
12731
13110
  * @since 2.0.0
12732
13111
  */
@@ -12754,6 +13133,7 @@ export const split: {
12754
13133
  * await Effect.runPromise(program)
12755
13134
  * ```
12756
13135
  *
13136
+ * @stability stable
12757
13137
  * @category grouping
12758
13138
  * @since 2.0.0
12759
13139
  */
@@ -12781,6 +13161,7 @@ export const split: {
12781
13161
  * await Effect.runPromise(program)
12782
13162
  * ```
12783
13163
  *
13164
+ * @stability stable
12784
13165
  * @category grouping
12785
13166
  * @since 2.0.0
12786
13167
  */
@@ -12813,6 +13194,7 @@ export const split: {
12813
13194
  * await Effect.runPromise(program)
12814
13195
  * ```
12815
13196
  *
13197
+ * @stability stable
12816
13198
  * @category grouping
12817
13199
  * @since 2.0.0
12818
13200
  */
@@ -12866,6 +13248,7 @@ export const split: {
12866
13248
  * await Effect.runPromise(program)
12867
13249
  * ```
12868
13250
  *
13251
+ * @stability stable
12869
13252
  * @category merging
12870
13253
  * @since 2.0.0
12871
13254
  */
@@ -12902,6 +13285,7 @@ export const combine: {
12902
13285
  * await Effect.runPromise(program)
12903
13286
  * ```
12904
13287
  *
13288
+ * @stability stable
12905
13289
  * @category merging
12906
13290
  * @since 2.0.0
12907
13291
  */
@@ -12946,6 +13330,7 @@ export const combine: {
12946
13330
  * await Effect.runPromise(program)
12947
13331
  * ```
12948
13332
  *
13333
+ * @stability stable
12949
13334
  * @category merging
12950
13335
  * @since 2.0.0
12951
13336
  */
@@ -13018,6 +13403,7 @@ export const combine: {
13018
13403
  * await Effect.runPromise(program)
13019
13404
  * ```
13020
13405
  *
13406
+ * @stability stable
13021
13407
  * @category merging
13022
13408
  * @since 4.0.0
13023
13409
  */
@@ -13061,6 +13447,7 @@ export const combineArray: {
13061
13447
  * await Effect.runPromise(program)
13062
13448
  * ```
13063
13449
  *
13450
+ * @stability stable
13064
13451
  * @category merging
13065
13452
  * @since 4.0.0
13066
13453
  */
@@ -13112,6 +13499,7 @@ export const combineArray: {
13112
13499
  * await Effect.runPromise(program)
13113
13500
  * ```
13114
13501
  *
13502
+ * @stability stable
13115
13503
  * @category merging
13116
13504
  * @since 4.0.0
13117
13505
  */
@@ -13165,6 +13553,7 @@ export const combineArray: {
13165
13553
  * await Effect.runPromise(program)
13166
13554
  * ```
13167
13555
  *
13556
+ * @stability stable
13168
13557
  * @category mapping
13169
13558
  * @since 2.0.0
13170
13559
  */
@@ -13192,6 +13581,7 @@ export const mapAccum: {
13192
13581
  * await Effect.runPromise(program)
13193
13582
  * ```
13194
13583
  *
13584
+ * @stability stable
13195
13585
  * @category mapping
13196
13586
  * @since 2.0.0
13197
13587
  */
@@ -13225,6 +13615,7 @@ export const mapAccum: {
13225
13615
  * await Effect.runPromise(program)
13226
13616
  * ```
13227
13617
  *
13618
+ * @stability stable
13228
13619
  * @category mapping
13229
13620
  * @since 2.0.0
13230
13621
  */
@@ -13271,6 +13662,7 @@ export const mapAccum: {
13271
13662
  * await Effect.runPromise(program)
13272
13663
  * ```
13273
13664
  *
13665
+ * @stability stable
13274
13666
  * @category mapping
13275
13667
  * @since 2.0.0
13276
13668
  */
@@ -13319,6 +13711,7 @@ export const mapAccum: {
13319
13711
  * await Effect.runPromise(program)
13320
13712
  * ```
13321
13713
  *
13714
+ * @stability stable
13322
13715
  * @category mapping
13323
13716
  * @since 4.0.0
13324
13717
  */
@@ -13350,6 +13743,7 @@ export const mapAccumArray: {
13350
13743
  * await Effect.runPromise(program)
13351
13744
  * ```
13352
13745
  *
13746
+ * @stability stable
13353
13747
  * @category mapping
13354
13748
  * @since 4.0.0
13355
13749
  */
@@ -13387,6 +13781,7 @@ export const mapAccumArray: {
13387
13781
  * await Effect.runPromise(program)
13388
13782
  * ```
13389
13783
  *
13784
+ * @stability stable
13390
13785
  * @category mapping
13391
13786
  * @since 4.0.0
13392
13787
  */
@@ -13460,6 +13855,7 @@ const emptyArr = Arr.empty<never>()
13460
13855
  * await Effect.runPromise(program)
13461
13856
  * ```
13462
13857
  *
13858
+ * @stability stable
13463
13859
  * @category mapping
13464
13860
  * @since 2.0.0
13465
13861
  */
@@ -13498,6 +13894,7 @@ export const mapAccumEffect: {
13498
13894
  * await Effect.runPromise(program)
13499
13895
  * ```
13500
13896
  *
13897
+ * @stability stable
13501
13898
  * @category mapping
13502
13899
  * @since 2.0.0
13503
13900
  */
@@ -13542,6 +13939,7 @@ export const mapAccumEffect: {
13542
13939
  * await Effect.runPromise(program)
13543
13940
  * ```
13544
13941
  *
13942
+ * @stability stable
13545
13943
  * @category mapping
13546
13944
  * @since 2.0.0
13547
13945
  */
@@ -13604,6 +14002,7 @@ export const mapAccumEffect: {
13604
14002
  * await Effect.runPromise(program)
13605
14003
  * ```
13606
14004
  *
14005
+ * @stability stable
13607
14006
  * @category mapping
13608
14007
  * @since 2.0.0
13609
14008
  */
@@ -13658,6 +14057,7 @@ export const mapAccumEffect: {
13658
14057
  * await Effect.runPromise(program)
13659
14058
  * ```
13660
14059
  *
14060
+ * @stability stable
13661
14061
  * @category mapping
13662
14062
  * @since 4.0.0
13663
14063
  */
@@ -13698,6 +14098,7 @@ export const mapAccumArrayEffect: {
13698
14098
  * await Effect.runPromise(program)
13699
14099
  * ```
13700
14100
  *
14101
+ * @stability stable
13701
14102
  * @category mapping
13702
14103
  * @since 4.0.0
13703
14104
  */
@@ -13744,6 +14145,7 @@ export const mapAccumArrayEffect: {
13744
14145
  * await Effect.runPromise(program)
13745
14146
  * ```
13746
14147
  *
14148
+ * @stability stable
13747
14149
  * @category mapping
13748
14150
  * @since 4.0.0
13749
14151
  */
@@ -13805,6 +14207,7 @@ export const mapAccumArrayEffect: {
13805
14207
  * await Effect.runPromise(program)
13806
14208
  * ```
13807
14209
  *
14210
+ * @stability stable
13808
14211
  * @category accumulation
13809
14212
  * @since 2.0.0
13810
14213
  */
@@ -13828,6 +14231,7 @@ export const scan: {
13828
14231
  * await Effect.runPromise(program)
13829
14232
  * ```
13830
14233
  *
14234
+ * @stability stable
13831
14235
  * @category accumulation
13832
14236
  * @since 2.0.0
13833
14237
  */
@@ -13851,6 +14255,7 @@ export const scan: {
13851
14255
  * await Effect.runPromise(program)
13852
14256
  * ```
13853
14257
  *
14258
+ * @stability stable
13854
14259
  * @category accumulation
13855
14260
  * @since 2.0.0
13856
14261
  */
@@ -13861,41 +14266,41 @@ export const scan: {
13861
14266
  f: (s: S, a: A) => S
13862
14267
  ): Stream<S, E, R> =>
13863
14268
  suspend(() => {
13864
- let isFirst = true
13865
- return fromChannel(Channel.mapAccum(self.channel, initial, (state, arr) => {
13866
- const states = Arr.empty</**
13867
- * Accumulates state across the stream, emitting the initial state and each updated state.
13868
- *
13869
- * **Example** (Scanning stream state)
13870
- *
13871
- * ```ts import.meta.vitest
13872
- * import { Effect, Stream } from "effect"
13873
- *
13874
- * const program = Effect.gen(function*() {
13875
- * const values = yield* Stream.make(1, 2, 3).pipe(
13876
- * Stream.scan(() => 0, (acc, n) => acc + n),
13877
- * Stream.runCollect
13878
- * )
13879
- * values // => [ 0, 1, 3, 6 ]
13880
- * })
13881
- *
13882
- * await Effect.runPromise(program)
13883
- * ```
13884
- *
13885
- * @category accumulation
13886
- * @since 2.0.0
13887
- */
13888
- S>() as Arr.NonEmptyArray<S>
13889
- if (isFirst) {
13890
- isFirst = false
13891
- states.push(state)
13892
- }
13893
- for (let index = 0; index < arr.length; index++) {
13894
- state = f(state, arr[index])
13895
- states.push(state)
13896
- }
13897
- return [state, Arr.of(states)]
13898
- }));
14269
+ const seed = initial()
14270
+ return concat(
14271
+ succeed(seed),
14272
+ fromChannel(Channel.mapAccum(self.channel, () => seed, (state, arr) => {
14273
+ const states = Arr.empty</**
14274
+ * Accumulates state across the stream, emitting the initial state and each updated state.
14275
+ *
14276
+ * **Example** (Scanning stream state)
14277
+ *
14278
+ * ```ts import.meta.vitest
14279
+ * import { Effect, Stream } from "effect"
14280
+ *
14281
+ * const program = Effect.gen(function*() {
14282
+ * const values = yield* Stream.make(1, 2, 3).pipe(
14283
+ * Stream.scan(() => 0, (acc, n) => acc + n),
14284
+ * Stream.runCollect
14285
+ * )
14286
+ * values // => [ 0, 1, 3, 6 ]
14287
+ * })
14288
+ *
14289
+ * await Effect.runPromise(program)
14290
+ * ```
14291
+ *
14292
+ * @stability stable
14293
+ * @category accumulation
14294
+ * @since 2.0.0
14295
+ */
14296
+ S>() as Arr.NonEmptyArray<S>
14297
+ for (let index = 0; index < arr.length; index++) {
14298
+ state = f(state, arr[index])
14299
+ states.push(state)
14300
+ }
14301
+ return [state, Arr.of(states)]
14302
+ }))
14303
+ );
13899
14304
  }))
13900
14305
 
13901
14306
  /**
@@ -13916,6 +14321,7 @@ export const scan: {
13916
14321
  * await Effect.runPromise(program)
13917
14322
  * ```
13918
14323
  *
14324
+ * @stability stable
13919
14325
  * @category accumulation
13920
14326
  * @since 2.0.0
13921
14327
  */
@@ -13938,6 +14344,7 @@ export const scanEffect: {
13938
14344
  * await Effect.runPromise(program)
13939
14345
  * ```
13940
14346
  *
14347
+ * @stability stable
13941
14348
  * @category accumulation
13942
14349
  * @since 2.0.0
13943
14350
  */
@@ -13960,6 +14367,7 @@ export const scanEffect: {
13960
14367
  * await Effect.runPromise(program)
13961
14368
  * ```
13962
14369
  *
14370
+ * @stability stable
13963
14371
  * @category accumulation
13964
14372
  * @since 2.0.0
13965
14373
  */
@@ -13999,6 +14407,7 @@ export const scanEffect: {
13999
14407
  * await Effect.runPromise(program)
14000
14408
  * ```
14001
14409
  *
14410
+ * @stability stable
14002
14411
  * @category rate limiting
14003
14412
  * @since 2.0.0
14004
14413
  */
@@ -14020,6 +14429,7 @@ export const debounce: {
14020
14429
  * await Effect.runPromise(program)
14021
14430
  * ```
14022
14431
  *
14432
+ * @stability stable
14023
14433
  * @category rate limiting
14024
14434
  * @since 2.0.0
14025
14435
  */
@@ -14041,6 +14451,7 @@ export const debounce: {
14041
14451
  * await Effect.runPromise(program)
14042
14452
  * ```
14043
14453
  *
14454
+ * @stability stable
14044
14455
  * @category rate limiting
14045
14456
  * @since 2.0.0
14046
14457
  */
@@ -14154,6 +14565,7 @@ export const debounce: {
14154
14565
  * }))
14155
14566
  * ```
14156
14567
  *
14568
+ * @stability stable
14157
14569
  * @category rate limiting
14158
14570
  * @since 2.0.0
14159
14571
  */
@@ -14197,6 +14609,7 @@ export const throttleEffect: {
14197
14609
  * }))
14198
14610
  * ```
14199
14611
  *
14612
+ * @stability stable
14200
14613
  * @category rate limiting
14201
14614
  * @since 2.0.0
14202
14615
  */
@@ -14248,6 +14661,7 @@ export const throttleEffect: {
14248
14661
  * }))
14249
14662
  * ```
14250
14663
  *
14664
+ * @stability stable
14251
14665
  * @category rate limiting
14252
14666
  * @since 2.0.0
14253
14667
  */
@@ -14329,37 +14743,36 @@ const throttleShapeEffect = <A, E, R, E2, R2>(
14329
14743
  const durationMs = Duration.toMillis(Duration.fromInputUnsafe(duration))
14330
14744
  const max = units + burst < 0 ? Number.POSITIVE_INFINITY : units + burst
14331
14745
  let tokens = units
14332
- let timestampMs = clock.currentTimeMillisUnsafe()
14746
+ let timestampNanos = clock.monotonicTimeNanosUnsafe()
14333
14747
 
14334
14748
  return Effect.succeed(Effect.flatMap(pull, (arr) =>
14335
14749
  Effect.flatMap(cost(arr), (weight) => {
14336
- const currentMs = clock.currentTimeMillisUnsafe()
14337
- const elapsed = currentMs - timestampMs
14750
+ const currentNanos = clock.monotonicTimeNanosUnsafe()
14751
+ const elapsed = Number(currentNanos - timestampNanos) / 1_000_000
14338
14752
  const cycles = elapsed / durationMs
14339
14753
  const sum = tokens + (cycles * units)
14340
- const available = sum < 0 ? max : Math.min(sum, max)
14754
+ const available = Math.min(sum, max)
14341
14755
  const remaining = available - weight
14342
14756
 
14343
14757
  if (remaining >= 0) {
14344
14758
  tokens = remaining
14345
- timestampMs = currentMs
14759
+ timestampNanos = currentNanos
14346
14760
  return Effect.succeed(arr)
14347
14761
  }
14348
14762
 
14349
- // Calculate delay needed
14350
14763
  const waitCycles = -remaining / units
14351
14764
  const delayMs = Math.max(0, waitCycles * durationMs)
14352
14765
 
14353
14766
  if (delayMs > 0) {
14354
14767
  return Effect.flatMap(Effect.sleep(delayMs), () => {
14355
14768
  tokens = remaining
14356
- timestampMs = currentMs
14769
+ timestampNanos = currentNanos
14357
14770
  return Effect.succeed(arr)
14358
14771
  })
14359
14772
  }
14360
14773
 
14361
14774
  tokens = remaining
14362
- timestampMs = currentMs
14775
+ timestampNanos = currentNanos
14363
14776
  return Effect.succeed(arr)
14364
14777
  })))
14365
14778
  }))
@@ -14404,6 +14817,7 @@ const throttleShapeEffect = <A, E, R, E2, R2>(
14404
14817
  * await Effect.runPromise(program)
14405
14818
  * ```
14406
14819
  *
14820
+ * @stability stable
14407
14821
  * @category rate limiting
14408
14822
  * @since 2.0.0
14409
14823
  */
@@ -14448,6 +14862,7 @@ export const throttle: {
14448
14862
  * await Effect.runPromise(program)
14449
14863
  * ```
14450
14864
  *
14865
+ * @stability stable
14451
14866
  * @category rate limiting
14452
14867
  * @since 2.0.0
14453
14868
  */
@@ -14500,6 +14915,7 @@ export const throttle: {
14500
14915
  * await Effect.runPromise(program)
14501
14916
  * ```
14502
14917
  *
14918
+ * @stability stable
14503
14919
  * @category rate limiting
14504
14920
  * @since 2.0.0
14505
14921
  */
@@ -14556,6 +14972,7 @@ export const throttle: {
14556
14972
  * await Effect.runPromise(program)
14557
14973
  * ```
14558
14974
  *
14975
+ * @stability stable
14559
14976
  * @category grouping
14560
14977
  * @since 2.0.0
14561
14978
  */
@@ -14585,6 +15002,7 @@ export const grouped: {
14585
15002
  * await Effect.runPromise(program)
14586
15003
  * ```
14587
15004
  *
15005
+ * @stability stable
14588
15006
  * @category grouping
14589
15007
  * @since 2.0.0
14590
15008
  */
@@ -14614,6 +15032,7 @@ export const grouped: {
14614
15032
  * await Effect.runPromise(program)
14615
15033
  * ```
14616
15034
  *
15035
+ * @stability stable
14617
15036
  * @category grouping
14618
15037
  * @since 2.0.0
14619
15038
  */
@@ -14629,8 +15048,9 @@ export const grouped: {
14629
15048
  *
14630
15049
  * **Details**
14631
15050
  *
14632
- * Finite fractional chunk sizes are rounded down. `NaN` and non-positive sizes
14633
- * are treated as `1`.
15051
+ * The duration starts when the first element of a group arrives, so an idle
15052
+ * stream does not wake up. Finite fractional chunk sizes are rounded down.
15053
+ * `NaN` and non-positive sizes are treated as `1`.
14634
15054
  *
14635
15055
  * **Example** (Grouping elements by size or time)
14636
15056
  *
@@ -14648,6 +15068,7 @@ export const grouped: {
14648
15068
  * await Effect.runPromise(program)
14649
15069
  * ```
14650
15070
  *
15071
+ * @stability stable
14651
15072
  * @category grouping
14652
15073
  * @since 2.0.0
14653
15074
  */
@@ -14658,8 +15079,9 @@ export const groupedWithin: {
14658
15079
  *
14659
15080
  * **Details**
14660
15081
  *
14661
- * Finite fractional chunk sizes are rounded down. `NaN` and non-positive sizes
14662
- * are treated as `1`.
15082
+ * The duration starts when the first element of a group arrives, so an idle
15083
+ * stream does not wake up. Finite fractional chunk sizes are rounded down.
15084
+ * `NaN` and non-positive sizes are treated as `1`.
14663
15085
  *
14664
15086
  * **Example** (Grouping elements by size or time)
14665
15087
  *
@@ -14677,6 +15099,7 @@ export const groupedWithin: {
14677
15099
  * await Effect.runPromise(program)
14678
15100
  * ```
14679
15101
  *
15102
+ * @stability stable
14680
15103
  * @category grouping
14681
15104
  * @since 2.0.0
14682
15105
  */
@@ -14687,8 +15110,9 @@ export const groupedWithin: {
14687
15110
  *
14688
15111
  * **Details**
14689
15112
  *
14690
- * Finite fractional chunk sizes are rounded down. `NaN` and non-positive sizes
14691
- * are treated as `1`.
15113
+ * The duration starts when the first element of a group arrives, so an idle
15114
+ * stream does not wake up. Finite fractional chunk sizes are rounded down.
15115
+ * `NaN` and non-positive sizes are treated as `1`.
14692
15116
  *
14693
15117
  * **Example** (Grouping elements by size or time)
14694
15118
  *
@@ -14706,6 +15130,7 @@ export const groupedWithin: {
14706
15130
  * await Effect.runPromise(program)
14707
15131
  * ```
14708
15132
  *
15133
+ * @stability stable
14709
15134
  * @category grouping
14710
15135
  * @since 2.0.0
14711
15136
  */
@@ -14749,6 +15174,7 @@ export const groupedWithin: {
14749
15174
  * await Effect.runPromise(program)
14750
15175
  * ```
14751
15176
  *
15177
+ * @stability stable
14752
15178
  * @category grouping
14753
15179
  * @since 2.0.0
14754
15180
  */
@@ -14781,6 +15207,7 @@ export const groupBy: {
14781
15207
  * await Effect.runPromise(program)
14782
15208
  * ```
14783
15209
  *
15210
+ * @stability stable
14784
15211
  * @category grouping
14785
15212
  * @since 2.0.0
14786
15213
  */
@@ -14819,6 +15246,7 @@ export const groupBy: {
14819
15246
  * await Effect.runPromise(program)
14820
15247
  * ```
14821
15248
  *
15249
+ * @stability stable
14822
15250
  * @category grouping
14823
15251
  * @since 2.0.0
14824
15252
  */
@@ -14880,6 +15308,7 @@ export const groupBy: {
14880
15308
  * await Effect.runPromise(program)
14881
15309
  * ```
14882
15310
  *
15311
+ * @stability stable
14883
15312
  * @category grouping
14884
15313
  * @since 2.0.0
14885
15314
  */
@@ -14910,6 +15339,7 @@ export const groupByKey: {
14910
15339
  * await Effect.runPromise(program)
14911
15340
  * ```
14912
15341
  *
15342
+ * @stability stable
14913
15343
  * @category grouping
14914
15344
  * @since 2.0.0
14915
15345
  */
@@ -14946,6 +15376,7 @@ export const groupByKey: {
14946
15376
  * await Effect.runPromise(program)
14947
15377
  * ```
14948
15378
  *
15379
+ * @stability stable
14949
15380
  * @category grouping
14950
15381
  * @since 2.0.0
14951
15382
  */
@@ -14992,6 +15423,7 @@ export const groupByKey: {
14992
15423
  * await Effect.runPromise(program)
14993
15424
  * ```
14994
15425
  *
15426
+ * @stability stable
14995
15427
  * @category grouping
14996
15428
  * @since 2.0.0
14997
15429
  */
@@ -15021,6 +15453,7 @@ export const groupByKey: {
15021
15453
  * await Effect.runPromise(program)
15022
15454
  * ```
15023
15455
  *
15456
+ * @stability stable
15024
15457
  * @category grouping
15025
15458
  * @since 2.0.0
15026
15459
  */
@@ -15076,7 +15509,7 @@ const groupByImpl = <A, E, R, K, V, E2, R2>(
15076
15509
  Queue.make<V, Cause.Done>({ capacity: options?.bufferSize ?? 4096 }).pipe(
15077
15510
  Effect.tap((queue) => {
15078
15511
  MutableHashMap.set(queueMap, key, queue)
15079
- return Queue.offer(out, [key, fromQueue(queue)])
15512
+ return Queue.offer(out, [key, fromQueueShutdownOnEnd(queue)])
15080
15513
  })
15081
15514
  ),
15082
15515
  (queue) => {
@@ -15118,6 +15551,7 @@ const groupByImpl = <A, E, R, K, V, E2, R2>(
15118
15551
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
15119
15552
  * @see {@link groupBy} for custom grouped stream construction
15120
15553
  *
15554
+ * @stability stable
15121
15555
  * @category grouping
15122
15556
  * @since 2.0.0
15123
15557
  */
@@ -15140,6 +15574,7 @@ export const groupAdjacentBy: {
15140
15574
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
15141
15575
  * @see {@link groupBy} for custom grouped stream construction
15142
15576
  *
15577
+ * @stability stable
15143
15578
  * @category grouping
15144
15579
  * @since 2.0.0
15145
15580
  */
@@ -15162,6 +15597,7 @@ export const groupAdjacentBy: {
15162
15597
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
15163
15598
  * @see {@link groupBy} for custom grouped stream construction
15164
15599
  *
15600
+ * @stability stable
15165
15601
  * @category grouping
15166
15602
  * @since 2.0.0
15167
15603
  */
@@ -15192,6 +15628,7 @@ export const groupAdjacentBy: {
15192
15628
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
15193
15629
  * @see {@link groupBy} for custom grouped stream construction
15194
15630
  *
15631
+ * @stability stable
15195
15632
  * @category grouping
15196
15633
  * @since 2.0.0
15197
15634
  */
@@ -15252,6 +15689,7 @@ export const groupAdjacentBy: {
15252
15689
  * await Effect.runPromise(program)
15253
15690
  * ```
15254
15691
  *
15692
+ * @stability stable
15255
15693
  * @category aggregation
15256
15694
  * @since 2.0.0
15257
15695
  */
@@ -15275,6 +15713,7 @@ export const transduce: {
15275
15713
  * await Effect.runPromise(program)
15276
15714
  * ```
15277
15715
  *
15716
+ * @stability stable
15278
15717
  * @category aggregation
15279
15718
  * @since 2.0.0
15280
15719
  */
@@ -15298,6 +15737,7 @@ export const transduce: {
15298
15737
  * await Effect.runPromise(program)
15299
15738
  * ```
15300
15739
  *
15740
+ * @stability stable
15301
15741
  * @category aggregation
15302
15742
  * @since 2.0.0
15303
15743
  */
@@ -15366,6 +15806,7 @@ export const transduce: {
15366
15806
  * }))
15367
15807
  * ```
15368
15808
  *
15809
+ * @stability stable
15369
15810
  * @category aggregation
15370
15811
  * @since 2.0.0
15371
15812
  */
@@ -15395,6 +15836,7 @@ export const aggregate: {
15395
15836
  * }))
15396
15837
  * ```
15397
15838
  *
15839
+ * @stability stable
15398
15840
  * @category aggregation
15399
15841
  * @since 2.0.0
15400
15842
  */
@@ -15424,6 +15866,7 @@ export const aggregate: {
15424
15866
  * }))
15425
15867
  * ```
15426
15868
  *
15869
+ * @stability stable
15427
15870
  * @category aggregation
15428
15871
  * @since 2.0.0
15429
15872
  */
@@ -15439,6 +15882,18 @@ export const aggregate: {
15439
15882
  * **Details**
15440
15883
  *
15441
15884
  * The schedule can flush the current aggregation even if the sink has not finished.
15885
+ * It is stepped at most once per aggregation, when the aggregation receives its
15886
+ * first element, with the previous aggregation's output as input. An aggregation
15887
+ * the sink completes immediately, such as one built from leftovers, may finish
15888
+ * without stepping the schedule.
15889
+ *
15890
+ * Time between aggregations is hidden from the schedule, so an idle stream does
15891
+ * not run it. Time-based schedules such as `Schedule.fixed` and
15892
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
15893
+ * `Schedule.spaced` for a flush timer.
15894
+ *
15895
+ * When the schedule ends, the stream emits the current aggregation and any sink
15896
+ * leftovers, then ends without pulling more from upstream.
15442
15897
  *
15443
15898
  * **Example** (Aggregating with a sink and schedule)
15444
15899
  *
@@ -15458,6 +15913,7 @@ export const aggregate: {
15458
15913
  * }))
15459
15914
  * ```
15460
15915
  *
15916
+ * @stability stable
15461
15917
  * @category aggregation
15462
15918
  * @since 2.0.0
15463
15919
  */
@@ -15468,6 +15924,18 @@ export const aggregateWithin: {
15468
15924
  * **Details**
15469
15925
  *
15470
15926
  * The schedule can flush the current aggregation even if the sink has not finished.
15927
+ * It is stepped at most once per aggregation, when the aggregation receives its
15928
+ * first element, with the previous aggregation's output as input. An aggregation
15929
+ * the sink completes immediately, such as one built from leftovers, may finish
15930
+ * without stepping the schedule.
15931
+ *
15932
+ * Time between aggregations is hidden from the schedule, so an idle stream does
15933
+ * not run it. Time-based schedules such as `Schedule.fixed` and
15934
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
15935
+ * `Schedule.spaced` for a flush timer.
15936
+ *
15937
+ * When the schedule ends, the stream emits the current aggregation and any sink
15938
+ * leftovers, then ends without pulling more from upstream.
15471
15939
  *
15472
15940
  * **Example** (Aggregating with a sink and schedule)
15473
15941
  *
@@ -15487,6 +15955,7 @@ export const aggregateWithin: {
15487
15955
  * }))
15488
15956
  * ```
15489
15957
  *
15958
+ * @stability stable
15490
15959
  * @category aggregation
15491
15960
  * @since 2.0.0
15492
15961
  */
@@ -15500,6 +15969,18 @@ export const aggregateWithin: {
15500
15969
  * **Details**
15501
15970
  *
15502
15971
  * The schedule can flush the current aggregation even if the sink has not finished.
15972
+ * It is stepped at most once per aggregation, when the aggregation receives its
15973
+ * first element, with the previous aggregation's output as input. An aggregation
15974
+ * the sink completes immediately, such as one built from leftovers, may finish
15975
+ * without stepping the schedule.
15976
+ *
15977
+ * Time between aggregations is hidden from the schedule, so an idle stream does
15978
+ * not run it. Time-based schedules such as `Schedule.fixed` and
15979
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
15980
+ * `Schedule.spaced` for a flush timer.
15981
+ *
15982
+ * When the schedule ends, the stream emits the current aggregation and any sink
15983
+ * leftovers, then ends without pulling more from upstream.
15503
15984
  *
15504
15985
  * **Example** (Aggregating with a sink and schedule)
15505
15986
  *
@@ -15519,6 +16000,7 @@ export const aggregateWithin: {
15519
16000
  * }))
15520
16001
  * ```
15521
16002
  *
16003
+ * @stability stable
15522
16004
  * @category aggregation
15523
16005
  * @since 2.0.0
15524
16006
  */
@@ -15543,6 +16025,18 @@ export const aggregateWithin: {
15543
16025
  * **Details**
15544
16026
  *
15545
16027
  * The schedule can flush the current aggregation even if the sink has not finished.
16028
+ * It is stepped at most once per aggregation, when the aggregation receives its
16029
+ * first element, with the previous aggregation's output as input. An aggregation
16030
+ * the sink completes immediately, such as one built from leftovers, may finish
16031
+ * without stepping the schedule.
16032
+ *
16033
+ * Time between aggregations is hidden from the schedule, so an idle stream does
16034
+ * not run it. Time-based schedules such as `Schedule.fixed` and
16035
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
16036
+ * `Schedule.spaced` for a flush timer.
16037
+ *
16038
+ * When the schedule ends, the stream emits the current aggregation and any sink
16039
+ * leftovers, then ends without pulling more from upstream.
15546
16040
  *
15547
16041
  * **Example** (Aggregating with a sink and schedule)
15548
16042
  *
@@ -15562,6 +16056,7 @@ export const aggregateWithin: {
15562
16056
  * }))
15563
16057
  * ```
15564
16058
  *
16059
+ * @stability stable
15565
16060
  * @category aggregation
15566
16061
  * @since 2.0.0
15567
16062
  */
@@ -15571,6 +16066,18 @@ export const aggregateWithin: {
15571
16066
  * **Details**
15572
16067
  *
15573
16068
  * The schedule can flush the current aggregation even if the sink has not finished.
16069
+ * It is stepped at most once per aggregation, when the aggregation receives its
16070
+ * first element, with the previous aggregation's output as input. An aggregation
16071
+ * the sink completes immediately, such as one built from leftovers, may finish
16072
+ * without stepping the schedule.
16073
+ *
16074
+ * Time between aggregations is hidden from the schedule, so an idle stream does
16075
+ * not run it. Time-based schedules such as `Schedule.fixed` and
16076
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
16077
+ * `Schedule.spaced` for a flush timer.
16078
+ *
16079
+ * When the schedule ends, the stream emits the current aggregation and any sink
16080
+ * leftovers, then ends without pulling more from upstream.
15574
16081
  *
15575
16082
  * **Example** (Aggregating with a sink and schedule)
15576
16083
  *
@@ -15590,6 +16097,7 @@ export const aggregateWithin: {
15590
16097
  * }))
15591
16098
  * ```
15592
16099
  *
16100
+ * @stability stable
15593
16101
  * @category aggregation
15594
16102
  * @since 2.0.0
15595
16103
  */
@@ -15597,25 +16105,41 @@ export const aggregateWithin: {
15597
16105
  capacity: 0
15598
16106
  })
15599
16107
 
15600
- // upstream -> buffer
15601
16108
  yield* pull.pipe(
15602
16109
  pullLatch.whenOpen,
15603
16110
  Effect.flatMap((arr) => {
15604
16111
  pullLatch.closeUnsafe()
15605
16112
  return Queue.offer(buffer, arr)
15606
16113
  }),
15607
- Effect.forever, // don't disable autoYield to prevent choking the schedule
16114
+ Effect.forever, // Keep autoYield enabled so the schedule can run.
15608
16115
  Effect.catchCause((cause) => Queue.failCause(buffer, cause)),
15609
16116
  Effect.forkIn(scope)
15610
16117
  )
15611
16118
 
15612
- // schedule -> buffer
16119
+ // The schedule clock excludes time between aggregations.
16120
+ const clock = yield* Clock
16121
+ const step = yield* Schedule.toStep(schedule)
16122
+ const hasInput = Latch.makeUnsafe(false)
16123
+ let scheduleTime = clock.currentTimeMillisUnsafe()
16124
+ let openedAt = 0
15613
16125
  let lastOutput = Option.none</**
15614
16126
  * Aggregates elements with a sink, emitting each result when the sink completes or the schedule triggers.
15615
16127
  *
15616
16128
  * **Details**
15617
16129
  *
15618
16130
  * The schedule can flush the current aggregation even if the sink has not finished.
16131
+ * It is stepped at most once per aggregation, when the aggregation receives its
16132
+ * first element, with the previous aggregation's output as input. An aggregation
16133
+ * the sink completes immediately, such as one built from leftovers, may finish
16134
+ * without stepping the schedule.
16135
+ *
16136
+ * Time between aggregations is hidden from the schedule, so an idle stream does
16137
+ * not run it. Time-based schedules such as `Schedule.fixed` and
16138
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
16139
+ * `Schedule.spaced` for a flush timer.
16140
+ *
16141
+ * When the schedule ends, the stream emits the current aggregation and any sink
16142
+ * leftovers, then ends without pulling more from upstream.
15619
16143
  *
15620
16144
  * **Example** (Aggregating with a sink and schedule)
15621
16145
  *
@@ -15635,63 +16159,57 @@ export const aggregateWithin: {
15635
16159
  * }))
15636
16160
  * ```
15637
16161
  *
16162
+ * @stability stable
15638
16163
  * @category aggregation
15639
16164
  * @since 2.0.0
15640
16165
  */
15641
16166
  B>()
15642
16167
  let leftover: Arr.NonEmptyReadonlyArray<A2> | undefined
15643
- let sinkHasInput = false
15644
- const step = yield* Schedule.toStepWithSleep(schedule)
15645
- const stepLoop = Effect.suspend(function loop(): Pull.Pull<void, E3, C | void, R3> {
15646
- return Effect.flatMap(step(lastOutput), () => !sinkHasInput ? loop() : Queue.offer(buffer, scheduleStep))
15647
- })
15648
- const stepToBuffer: Pull.Pull<never, E3, void, R3> = stepLoop.pipe(
15649
- Effect.flatMap(() => Effect.never),
15650
- Pull.catchDone(() => Cause.done())
15651
- )
15652
-
15653
- // buffer -> sink
15654
- const pullFromBuffer: Pull.Pull<
15655
- Arr.NonEmptyReadonlyArray<A>,
15656
- E
15657
- > = Queue.take(buffer).pipe(
15658
- Effect.flatMap((arr) => {
15659
- if (arr === scheduleStep) {
15660
- return Cause.done()
15661
- }
15662
- sinkHasInput = true
15663
- return Effect.succeed(arr)
15664
- })
16168
+ const onInput = <X>(chunk: X): Effect.Effect<X> => {
16169
+ if (hasInput.openUnsafe()) {
16170
+ openedAt = clock.currentTimeMillisUnsafe()
16171
+ }
16172
+ return Effect.succeed(chunk)
16173
+ }
16174
+ const stepToBuffer: Pull.Pull<never, E3, void, R3> = hasInput.await.pipe(
16175
+ Effect.flatMap(() => step(scheduleTime, lastOutput)),
16176
+ Effect.flatMap(([, delay]) => Effect.sleep(delay)),
16177
+ Effect.flatMap(() => Queue.offer(buffer, scheduleStep)),
16178
+ // End input so the sink drains leftovers without further upstream pulls.
16179
+ Pull.catchDone(() => Queue.end(buffer)),
16180
+ Effect.flatMap(() => Effect.never)
15665
16181
  )
15666
16182
 
15667
16183
  const sinkUpstream = Effect.suspend((): Pull.Pull<Arr.NonEmptyReadonlyArray<A | A2>, E> => {
15668
16184
  if (leftover !== undefined) {
15669
16185
  const chunk = leftover
15670
16186
  leftover = undefined
15671
- sinkHasInput = true
15672
- return Effect.succeed(chunk)
16187
+ return onInput(chunk)
16188
+ }
16189
+ if (buffer.state._tag === "Open") {
16190
+ pullLatch.openUnsafe()
15673
16191
  }
15674
- pullLatch.openUnsafe()
15675
- return pullFromBuffer
16192
+ return Effect.flatMap(Queue.take(buffer), (arr) => arr === scheduleStep ? Cause.done() : onInput(arr))
15676
16193
  })
15677
- const catchSinkHalt = Effect.flatMap(([value, leftover_]: Sink.End<B, A2>) => {
15678
- // ignore the last output if the upstream only pulled a halt
15679
- if (!sinkHasInput && buffer.state._tag === "Done") return Cause.done()
16194
+ const emit = Effect.flatMap(([value, leftover_]: Sink.End<B, A2>) => {
16195
+ if (hasInput.isOpen()) {
16196
+ scheduleTime += clock.currentTimeMillisUnsafe() - openedAt
16197
+ } else if (buffer.state._tag === "Done") {
16198
+ return Cause.done()
16199
+ }
15680
16200
  lastOutput = Option.some(value)
15681
16201
  leftover = leftover_
15682
16202
  return Effect.succeed(Arr.of(value))
15683
16203
  })
15684
16204
 
15685
- return Effect.suspend(() => {
15686
- // if the buffer has exited and there is no more data to process
16205
+ return Effect.suspend((): Pull.Pull<Arr.NonEmptyReadonlyArray<B>, E | E2 | E3, void, R2 | R3> => {
15687
16206
  if (buffer.state._tag === "Done" && leftover === undefined) {
15688
16207
  return buffer.state.exit as Exit.Exit<never, Cause.Done<void> | E>
15689
16208
  }
15690
- sinkHasInput = leftover !== undefined
15691
- return Effect.succeed(Effect.suspend(() => sink.transform(sinkUpstream as any, scope)))
15692
- }).pipe(
15693
- Effect.flatMap((pull) => Effect.raceFirst(catchSinkHalt(pull), stepToBuffer))
15694
- )
16209
+ hasInput.closeUnsafe()
16210
+ const pull = emit(Effect.suspend(() => sink.transform(sinkUpstream as any, scope)))
16211
+ return buffer.state._tag === "Open" ? Effect.raceFirst(pull, stepToBuffer) : pull
16212
+ })
15695
16213
  }))))
15696
16214
 
15697
16215
  /**
@@ -15730,6 +16248,7 @@ export const aggregateWithin: {
15730
16248
  * await Effect.runPromise(program)
15731
16249
  * ```
15732
16250
  *
16251
+ * @stability stable
15733
16252
  * @category broadcasting
15734
16253
  * @since 4.0.0
15735
16254
  */
@@ -15770,6 +16289,7 @@ export const broadcastN: {
15770
16289
  * await Effect.runPromise(program)
15771
16290
  * ```
15772
16291
  *
16292
+ * @stability stable
15773
16293
  * @category broadcasting
15774
16294
  * @since 4.0.0
15775
16295
  */
@@ -15821,6 +16341,7 @@ export const broadcastN: {
15821
16341
  * await Effect.runPromise(program)
15822
16342
  * ```
15823
16343
  *
16344
+ * @stability stable
15824
16345
  * @category broadcasting
15825
16346
  * @since 4.0.0
15826
16347
  */
@@ -15889,6 +16410,7 @@ export const broadcastN: {
15889
16410
  * await Effect.runPromise(program)
15890
16411
  * ```
15891
16412
  *
16413
+ * @stability stable
15892
16414
  * @category broadcasting
15893
16415
  * @since 4.0.0
15894
16416
  */
@@ -15965,6 +16487,7 @@ const makePubSub = <A>(
15965
16487
  * await Effect.runPromise(program)
15966
16488
  * ```
15967
16489
  *
16490
+ * @stability stable
15968
16491
  * @category broadcasting
15969
16492
  * @since 2.0.0
15970
16493
  */
@@ -16000,6 +16523,7 @@ export const broadcast: {
16000
16523
  * await Effect.runPromise(program)
16001
16524
  * ```
16002
16525
  *
16526
+ * @stability stable
16003
16527
  * @category broadcasting
16004
16528
  * @since 2.0.0
16005
16529
  */
@@ -16044,6 +16568,7 @@ export const broadcast: {
16044
16568
  * await Effect.runPromise(program)
16045
16569
  * ```
16046
16570
  *
16571
+ * @stability stable
16047
16572
  * @category broadcasting
16048
16573
  * @since 2.0.0
16049
16574
  */
@@ -16114,6 +16639,7 @@ export const broadcast: {
16114
16639
  * result // => { values: [[1, 2, 3], [1, 2, 3]], acquisitions: 1 }
16115
16640
  * ```
16116
16641
  *
16642
+ * @stability stable
16117
16643
  * @category broadcasting
16118
16644
  * @since 3.8.0
16119
16645
  */
@@ -16162,6 +16688,7 @@ export const share: {
16162
16688
  * result // => { values: [[1, 2, 3], [1, 2, 3]], acquisitions: 1 }
16163
16689
  * ```
16164
16690
  *
16691
+ * @stability stable
16165
16692
  * @category broadcasting
16166
16693
  * @since 3.8.0
16167
16694
  */
@@ -16221,6 +16748,7 @@ export const share: {
16221
16748
  * result // => { values: [[1, 2, 3], [1, 2, 3]], acquisitions: 1 }
16222
16749
  * ```
16223
16750
  *
16751
+ * @stability stable
16224
16752
  * @category broadcasting
16225
16753
  * @since 3.8.0
16226
16754
  */
@@ -16289,6 +16817,7 @@ export const share: {
16289
16817
  * await Effect.runPromise(program)
16290
16818
  * ```
16291
16819
  *
16820
+ * @stability stable
16292
16821
  * @category sequencing
16293
16822
  * @since 2.0.0
16294
16823
  */
@@ -16324,6 +16853,7 @@ export const pipeThroughChannel: {
16324
16853
  * await Effect.runPromise(program)
16325
16854
  * ```
16326
16855
  *
16856
+ * @stability stable
16327
16857
  * @category sequencing
16328
16858
  * @since 2.0.0
16329
16859
  */
@@ -16361,6 +16891,7 @@ export const pipeThroughChannel: {
16361
16891
  * await Effect.runPromise(program)
16362
16892
  * ```
16363
16893
  *
16894
+ * @stability stable
16364
16895
  * @category sequencing
16365
16896
  * @since 2.0.0
16366
16897
  */
@@ -16404,6 +16935,7 @@ export const pipeThroughChannel: {
16404
16935
  * }))
16405
16936
  * ```
16406
16937
  *
16938
+ * @stability stable
16407
16939
  * @category sequencing
16408
16940
  * @since 2.0.0
16409
16941
  */
@@ -16439,6 +16971,7 @@ export const pipeThroughChannelOrFail: {
16439
16971
  * }))
16440
16972
  * ```
16441
16973
  *
16974
+ * @stability stable
16442
16975
  * @category sequencing
16443
16976
  * @since 2.0.0
16444
16977
  */
@@ -16476,6 +17009,7 @@ export const pipeThroughChannelOrFail: {
16476
17009
  * }))
16477
17010
  * ```
16478
17011
  *
17012
+ * @stability stable
16479
17013
  * @category sequencing
16480
17014
  * @since 2.0.0
16481
17015
  */
@@ -16512,6 +17046,7 @@ export const pipeThroughChannelOrFail: {
16512
17046
  * await Effect.runPromise(program)
16513
17047
  * ```
16514
17048
  *
17049
+ * @stability stable
16515
17050
  * @category sequencing
16516
17051
  * @since 2.0.0
16517
17052
  */
@@ -16540,6 +17075,7 @@ export const pipeThrough: {
16540
17075
  * await Effect.runPromise(program)
16541
17076
  * ```
16542
17077
  *
17078
+ * @stability stable
16543
17079
  * @category sequencing
16544
17080
  * @since 2.0.0
16545
17081
  */
@@ -16568,6 +17104,7 @@ export const pipeThrough: {
16568
17104
  * await Effect.runPromise(program)
16569
17105
  * ```
16570
17106
  *
17107
+ * @stability stable
16571
17108
  * @category sequencing
16572
17109
  * @since 2.0.0
16573
17110
  */
@@ -16600,6 +17137,7 @@ export const pipeThrough: {
16600
17137
  * await Effect.runPromise(program)
16601
17138
  * ```
16602
17139
  *
17140
+ * @stability stable
16603
17141
  * @category accumulation
16604
17142
  * @since 4.0.0
16605
17143
  */
@@ -16626,6 +17164,7 @@ export const collect = <A, E, R>(self: Stream<A, E, R>): Stream<Array<A>, E, R>
16626
17164
  * await Effect.runPromise(program)
16627
17165
  * ```
16628
17166
  *
17167
+ * @stability stable
16629
17168
  * @category accumulation
16630
17169
  * @since 2.0.0
16631
17170
  */
@@ -16655,6 +17194,7 @@ export const accumulate = <A, E, R>(self: Stream<A, E, R>): Stream<Arr.NonEmptyA
16655
17194
  * await Effect.runPromise(program)
16656
17195
  * ```
16657
17196
  *
17197
+ * @stability stable
16658
17198
  * @category deduplication
16659
17199
  * @since 2.0.0
16660
17200
  */
@@ -16680,6 +17220,7 @@ export const changes = <A, E, R>(self: Stream<A, E, R>): Stream<A, E, R> => chan
16680
17220
  * )
16681
17221
  * ```
16682
17222
  *
17223
+ * @stability stable
16683
17224
  * @category deduplication
16684
17225
  * @since 2.0.0
16685
17226
  */
@@ -16704,6 +17245,7 @@ export const changesWith: {
16704
17245
  * )
16705
17246
  * ```
16706
17247
  *
17248
+ * @stability stable
16707
17249
  * @category deduplication
16708
17250
  * @since 2.0.0
16709
17251
  */
@@ -16728,6 +17270,7 @@ export const changesWith: {
16728
17270
  * )
16729
17271
  * ```
16730
17272
  *
17273
+ * @stability stable
16731
17274
  * @category deduplication
16732
17275
  * @since 2.0.0
16733
17276
  */
@@ -16782,6 +17325,7 @@ export const changesWith: {
16782
17325
  * await Effect.runPromise(program)
16783
17326
  * ```
16784
17327
  *
17328
+ * @stability stable
16785
17329
  * @category deduplication
16786
17330
  * @since 2.0.0
16787
17331
  */
@@ -16809,6 +17353,7 @@ export const changesWithEffect: {
16809
17353
  * await Effect.runPromise(program)
16810
17354
  * ```
16811
17355
  *
17356
+ * @stability stable
16812
17357
  * @category deduplication
16813
17358
  * @since 2.0.0
16814
17359
  */
@@ -16836,6 +17381,7 @@ export const changesWithEffect: {
16836
17381
  * await Effect.runPromise(program)
16837
17382
  * ```
16838
17383
  *
17384
+ * @stability stable
16839
17385
  * @category deduplication
16840
17386
  * @since 2.0.0
16841
17387
  */
@@ -16902,6 +17448,7 @@ export const changesWithEffect: {
16902
17448
  * await Effect.runPromise(program)
16903
17449
  * ```
16904
17450
  *
17451
+ * @stability stable
16905
17452
  * @category text
16906
17453
  * @since 2.0.0
16907
17454
  */
@@ -16947,6 +17494,7 @@ export const decodeText: <
16947
17494
  * await Effect.runPromise(program)
16948
17495
  * ```
16949
17496
  *
17497
+ * @stability stable
16950
17498
  * @category text
16951
17499
  * @since 2.0.0
16952
17500
  */
@@ -16972,6 +17520,7 @@ export const encodeText = <E, R>(self: Stream<string, E, R>): Stream<Uint8Array,
16972
17520
  * }))
16973
17521
  * ```
16974
17522
  *
17523
+ * @stability stable
16975
17524
  * @category text
16976
17525
  * @since 2.0.0
16977
17526
  */
@@ -16998,6 +17547,7 @@ export const splitLines = <E, R>(self: Stream<string, E, R>): Stream<string, E,
16998
17547
  * await Effect.runPromise(program)
16999
17548
  * ```
17000
17549
  *
17550
+ * @stability stable
17001
17551
  * @category sequencing
17002
17552
  * @since 2.0.0
17003
17553
  */
@@ -17019,6 +17569,7 @@ export const intersperse: {
17019
17569
  * await Effect.runPromise(program)
17020
17570
  * ```
17021
17571
  *
17572
+ * @stability stable
17022
17573
  * @category sequencing
17023
17574
  * @since 2.0.0
17024
17575
  */
@@ -17040,6 +17591,7 @@ export const intersperse: {
17040
17591
  * await Effect.runPromise(program)
17041
17592
  * ```
17042
17593
  *
17594
+ * @stability stable
17043
17595
  * @category sequencing
17044
17596
  * @since 2.0.0
17045
17597
  */
@@ -17082,6 +17634,7 @@ export const intersperse: {
17082
17634
  * await Effect.runPromise(program)
17083
17635
  * ```
17084
17636
  *
17637
+ * @stability stable
17085
17638
  * @category sequencing
17086
17639
  * @since 2.0.0
17087
17640
  */
@@ -17110,6 +17663,7 @@ export const intersperseAffixes: {
17110
17663
  * await Effect.runPromise(program)
17111
17664
  * ```
17112
17665
  *
17666
+ * @stability stable
17113
17667
  * @category sequencing
17114
17668
  * @since 2.0.0
17115
17669
  */
@@ -17138,6 +17692,7 @@ export const intersperseAffixes: {
17138
17692
  * await Effect.runPromise(program)
17139
17693
  * ```
17140
17694
  *
17695
+ * @stability stable
17141
17696
  * @category sequencing
17142
17697
  * @since 2.0.0
17143
17698
  */
@@ -17177,6 +17732,7 @@ export const intersperseAffixes: {
17177
17732
  * await Effect.runPromise(program)
17178
17733
  * ```
17179
17734
  *
17735
+ * @stability stable
17180
17736
  * @category merging
17181
17737
  * @since 2.0.0
17182
17738
  */
@@ -17204,6 +17760,7 @@ export const interleave: {
17204
17760
  * await Effect.runPromise(program)
17205
17761
  * ```
17206
17762
  *
17763
+ * @stability stable
17207
17764
  * @category merging
17208
17765
  * @since 2.0.0
17209
17766
  */
@@ -17231,6 +17788,7 @@ export const interleave: {
17231
17788
  * await Effect.runPromise(program)
17232
17789
  * ```
17233
17790
  *
17791
+ * @stability stable
17234
17792
  * @category merging
17235
17793
  * @since 2.0.0
17236
17794
  */
@@ -17273,6 +17831,7 @@ export const interleave: {
17273
17831
  * await Effect.runPromise(program)
17274
17832
  * ```
17275
17833
  *
17834
+ * @stability stable
17276
17835
  * @category merging
17277
17836
  * @since 2.0.0
17278
17837
  */
@@ -17305,6 +17864,7 @@ export const interleaveWith: {
17305
17864
  * await Effect.runPromise(program)
17306
17865
  * ```
17307
17866
  *
17867
+ * @stability stable
17308
17868
  * @category merging
17309
17869
  * @since 2.0.0
17310
17870
  */
@@ -17337,6 +17897,7 @@ export const interleaveWith: {
17337
17897
  * await Effect.runPromise(program)
17338
17898
  * ```
17339
17899
  *
17900
+ * @stability stable
17340
17901
  * @category merging
17341
17902
  * @since 2.0.0
17342
17903
  */
@@ -17390,6 +17951,7 @@ export const interleaveWith: {
17390
17951
  * await Effect.runPromise(program)
17391
17952
  * ```
17392
17953
  *
17954
+ * @stability stable
17393
17955
  * @category merging
17394
17956
  * @since 2.0.0
17395
17957
  */
@@ -17430,6 +17992,7 @@ export const interleaveWith: {
17430
17992
  * await Effect.runPromise(program)
17431
17993
  * ```
17432
17994
  *
17995
+ * @stability stable
17433
17996
  * @category merging
17434
17997
  * @since 2.0.0
17435
17998
  */
@@ -17486,6 +18049,7 @@ export const interleaveWith: {
17486
18049
  * await Effect.runPromise(program)
17487
18050
  * ```
17488
18051
  *
18052
+ * @stability stable
17489
18053
  * @category interruption
17490
18054
  * @since 2.0.0
17491
18055
  */
@@ -17524,6 +18088,7 @@ export const interruptWhen: {
17524
18088
  * await Effect.runPromise(program)
17525
18089
  * ```
17526
18090
  *
18091
+ * @stability stable
17527
18092
  * @category interruption
17528
18093
  * @since 2.0.0
17529
18094
  */
@@ -17562,6 +18127,7 @@ export const interruptWhen: {
17562
18127
  * await Effect.runPromise(program)
17563
18128
  * ```
17564
18129
  *
18130
+ * @stability stable
17565
18131
  * @category interruption
17566
18132
  * @since 2.0.0
17567
18133
  */
@@ -17609,6 +18175,7 @@ export const interruptWhen: {
17609
18175
  * await Effect.runPromise(program)
17610
18176
  * ```
17611
18177
  *
18178
+ * @stability stable
17612
18179
  * @category interruption
17613
18180
  * @since 2.0.0
17614
18181
  */
@@ -17650,6 +18217,7 @@ export const haltWhen: {
17650
18217
  * await Effect.runPromise(program)
17651
18218
  * ```
17652
18219
  *
18220
+ * @stability stable
17653
18221
  * @category interruption
17654
18222
  * @since 2.0.0
17655
18223
  */
@@ -17691,6 +18259,7 @@ export const haltWhen: {
17691
18259
  * await Effect.runPromise(program)
17692
18260
  * ```
17693
18261
  *
18262
+ * @stability stable
17694
18263
  * @category interruption
17695
18264
  * @since 2.0.0
17696
18265
  */
@@ -17724,6 +18293,7 @@ export const haltWhen: {
17724
18293
  * exits // => ["success"]
17725
18294
  * ```
17726
18295
  *
18296
+ * @stability stable
17727
18297
  * @category resource management
17728
18298
  * @since 4.0.0
17729
18299
  */
@@ -17751,6 +18321,7 @@ export const onExit: {
17751
18321
  * exits // => ["success"]
17752
18322
  * ```
17753
18323
  *
18324
+ * @stability stable
17754
18325
  * @category resource management
17755
18326
  * @since 4.0.0
17756
18327
  */
@@ -17780,6 +18351,7 @@ export const onExit: {
17780
18351
  * exits // => ["success"]
17781
18352
  * ```
17782
18353
  *
18354
+ * @stability stable
17783
18355
  * @category resource management
17784
18356
  * @since 4.0.0
17785
18357
  */
@@ -17819,6 +18391,7 @@ export const onExit: {
17819
18391
  * errors // => ["boom"]
17820
18392
  * ```
17821
18393
  *
18394
+ * @stability stable
17822
18395
  * @category resource management
17823
18396
  * @since 2.0.0
17824
18397
  */
@@ -17850,6 +18423,7 @@ export const onError: {
17850
18423
  * errors // => ["boom"]
17851
18424
  * ```
17852
18425
  *
18426
+ * @stability stable
17853
18427
  * @category resource management
17854
18428
  * @since 2.0.0
17855
18429
  */
@@ -17881,6 +18455,7 @@ export const onError: {
17881
18455
  * errors // => ["boom"]
17882
18456
  * ```
17883
18457
  *
18458
+ * @stability stable
17884
18459
  * @category resource management
17885
18460
  * @since 2.0.0
17886
18461
  */
@@ -17915,6 +18490,7 @@ export const onError: {
17915
18490
  * events // => ["started"]
17916
18491
  * ```
17917
18492
  *
18493
+ * @stability stable
17918
18494
  * @category sequencing
17919
18495
  * @since 3.6.0
17920
18496
  */
@@ -17941,6 +18517,7 @@ export const onStart: {
17941
18517
  * events // => ["started"]
17942
18518
  * ```
17943
18519
  *
18520
+ * @stability stable
17944
18521
  * @category sequencing
17945
18522
  * @since 3.6.0
17946
18523
  */
@@ -17967,6 +18544,7 @@ export const onStart: {
17967
18544
  * events // => ["started"]
17968
18545
  * ```
17969
18546
  *
18547
+ * @stability stable
17970
18548
  * @category sequencing
17971
18549
  * @since 3.6.0
17972
18550
  */
@@ -17994,6 +18572,7 @@ export const onStart: {
17994
18572
  * first // => [1]
17995
18573
  * ```
17996
18574
  *
18575
+ * @stability stable
17997
18576
  * @category sequencing
17998
18577
  * @since 4.0.0
17999
18578
  */
@@ -18016,6 +18595,7 @@ export const onFirst: {
18016
18595
  * first // => [1]
18017
18596
  * ```
18018
18597
  *
18598
+ * @stability stable
18019
18599
  * @category sequencing
18020
18600
  * @since 4.0.0
18021
18601
  */
@@ -18038,6 +18618,7 @@ export const onFirst: {
18038
18618
  * first // => [1]
18039
18619
  * ```
18040
18620
  *
18621
+ * @stability stable
18041
18622
  * @category sequencing
18042
18623
  * @since 4.0.0
18043
18624
  */
@@ -18071,6 +18652,7 @@ export const onFirst: {
18071
18652
  * events // => ["ended"]
18072
18653
  * ```
18073
18654
  *
18655
+ * @stability stable
18074
18656
  * @category sequencing
18075
18657
  * @since 3.6.0
18076
18658
  */
@@ -18096,6 +18678,7 @@ export const onEnd: {
18096
18678
  * events // => ["ended"]
18097
18679
  * ```
18098
18680
  *
18681
+ * @stability stable
18099
18682
  * @category sequencing
18100
18683
  * @since 3.6.0
18101
18684
  */
@@ -18121,6 +18704,7 @@ export const onEnd: {
18121
18704
  * events // => ["ended"]
18122
18705
  * ```
18123
18706
  *
18707
+ * @stability stable
18124
18708
  * @category sequencing
18125
18709
  * @since 3.6.0
18126
18710
  */
@@ -18152,6 +18736,7 @@ export const onEnd: {
18152
18736
  * events // => ["cleanup"]
18153
18737
  * ```
18154
18738
  *
18739
+ * @stability stable
18155
18740
  * @category resource management
18156
18741
  * @since 2.0.0
18157
18742
  */
@@ -18178,6 +18763,7 @@ export const ensuring: {
18178
18763
  * events // => ["cleanup"]
18179
18764
  * ```
18180
18765
  *
18766
+ * @stability stable
18181
18767
  * @category resource management
18182
18768
  * @since 2.0.0
18183
18769
  */
@@ -18204,6 +18790,7 @@ export const ensuring: {
18204
18790
  * events // => ["cleanup"]
18205
18791
  * ```
18206
18792
  *
18793
+ * @stability stable
18207
18794
  * @category resource management
18208
18795
  * @since 2.0.0
18209
18796
  */
@@ -18240,6 +18827,7 @@ export const ensuring: {
18240
18827
  * await Effect.runPromise(Stream.runCollect(withEnv)) // => ["Hello, Ada"]
18241
18828
  * ```
18242
18829
  *
18830
+ * @stability stable
18243
18831
  * @category providing services
18244
18832
  * @since 4.0.0
18245
18833
  */
@@ -18270,6 +18858,7 @@ export const provide: {
18270
18858
  * await Effect.runPromise(Stream.runCollect(withEnv)) // => ["Hello, Ada"]
18271
18859
  * ```
18272
18860
  *
18861
+ * @stability stable
18273
18862
  * @category providing services
18274
18863
  * @since 4.0.0
18275
18864
  */
@@ -18307,6 +18896,7 @@ export const provide: {
18307
18896
  * await Effect.runPromise(Stream.runCollect(withEnv)) // => ["Hello, Ada"]
18308
18897
  * ```
18309
18898
  *
18899
+ * @stability stable
18310
18900
  * @category providing services
18311
18901
  * @since 4.0.0
18312
18902
  */
@@ -18356,6 +18946,7 @@ export const provide: {
18356
18946
  * await Effect.runPromise(program)
18357
18947
  * ```
18358
18948
  *
18949
+ * @stability stable
18359
18950
  * @category providing services
18360
18951
  * @since 2.0.0
18361
18952
  */
@@ -18391,6 +18982,7 @@ export const provideContext: {
18391
18982
  * await Effect.runPromise(program)
18392
18983
  * ```
18393
18984
  *
18985
+ * @stability stable
18394
18986
  * @category providing services
18395
18987
  * @since 2.0.0
18396
18988
  */
@@ -18426,6 +19018,7 @@ export const provideContext: {
18426
19018
  * await Effect.runPromise(program)
18427
19019
  * ```
18428
19020
  *
19021
+ * @stability stable
18429
19022
  * @category providing services
18430
19023
  * @since 2.0.0
18431
19024
  */
@@ -18469,6 +19062,7 @@ export const provideContext: {
18469
19062
  * await Effect.runPromise(program)
18470
19063
  * ```
18471
19064
  *
19065
+ * @stability stable
18472
19066
  * @category providing services
18473
19067
  * @since 2.0.0
18474
19068
  */
@@ -18506,6 +19100,7 @@ export const provideService: {
18506
19100
  * await Effect.runPromise(program)
18507
19101
  * ```
18508
19102
  *
19103
+ * @stability stable
18509
19104
  * @category providing services
18510
19105
  * @since 2.0.0
18511
19106
  */
@@ -18545,6 +19140,7 @@ export const provideService: {
18545
19140
  * await Effect.runPromise(program)
18546
19141
  * ```
18547
19142
  *
19143
+ * @stability stable
18548
19144
  * @category providing services
18549
19145
  * @since 2.0.0
18550
19146
  */
@@ -18586,6 +19182,7 @@ export const provideService: {
18586
19182
  * events // => ["loading"]
18587
19183
  * ```
18588
19184
  *
19185
+ * @stability stable
18589
19186
  * @category providing services
18590
19187
  * @since 2.0.0
18591
19188
  */
@@ -18621,6 +19218,7 @@ export const provideServiceEffect: {
18621
19218
  * events // => ["loading"]
18622
19219
  * ```
18623
19220
  *
19221
+ * @stability stable
18624
19222
  * @category providing services
18625
19223
  * @since 2.0.0
18626
19224
  */
@@ -18658,6 +19256,7 @@ export const provideServiceEffect: {
18658
19256
  * events // => ["loading"]
18659
19257
  * ```
18660
19258
  *
19259
+ * @stability stable
18661
19260
  * @category providing services
18662
19261
  * @since 2.0.0
18663
19262
  */
@@ -18708,6 +19307,7 @@ export const provideServiceEffect: {
18708
19307
  * )
18709
19308
  * ```
18710
19309
  *
19310
+ * @stability stable
18711
19311
  * @category providing services
18712
19312
  * @since 4.0.0
18713
19313
  */
@@ -18748,6 +19348,7 @@ export const updateContext: {
18748
19348
  * )
18749
19349
  * ```
18750
19350
  *
19351
+ * @stability stable
18751
19352
  * @category providing services
18752
19353
  * @since 4.0.0
18753
19354
  */
@@ -18790,6 +19391,7 @@ export const updateContext: {
18790
19391
  * )
18791
19392
  * ```
18792
19393
  *
19394
+ * @stability stable
18793
19395
  * @category providing services
18794
19396
  * @since 4.0.0
18795
19397
  */
@@ -18824,6 +19426,7 @@ export const updateContext: {
18824
19426
  * await Effect.runPromise(Effect.provideService(program, Counter, { count: 0 }))
18825
19427
  * ```
18826
19428
  *
19429
+ * @stability stable
18827
19430
  * @category providing services
18828
19431
  * @since 2.0.0
18829
19432
  */
@@ -18850,6 +19453,7 @@ export const updateService: {
18850
19453
  * await Effect.runPromise(Effect.provideService(program, Counter, { count: 0 }))
18851
19454
  * ```
18852
19455
  *
19456
+ * @stability stable
18853
19457
  * @category providing services
18854
19458
  * @since 2.0.0
18855
19459
  */
@@ -18878,6 +19482,7 @@ export const updateService: {
18878
19482
  * await Effect.runPromise(Effect.provideService(program, Counter, { count: 0 }))
18879
19483
  * ```
18880
19484
  *
19485
+ * @stability stable
18881
19486
  * @category providing services
18882
19487
  * @since 2.0.0
18883
19488
  */
@@ -18916,6 +19521,7 @@ export const updateService: {
18916
19521
  * )
18917
19522
  * ```
18918
19523
  *
19524
+ * @stability stable
18919
19525
  * @category tracing
18920
19526
  * @since 2.0.0
18921
19527
  */
@@ -18938,6 +19544,7 @@ export const withSpan: {
18938
19544
  * )
18939
19545
  * ```
18940
19546
  *
19547
+ * @stability stable
18941
19548
  * @category tracing
18942
19549
  * @since 2.0.0
18943
19550
  */
@@ -18960,6 +19567,7 @@ export const withSpan: {
18960
19567
  * )
18961
19568
  * ```
18962
19569
  *
19570
+ * @stability stable
18963
19571
  * @category tracing
18964
19572
  * @since 2.0.0
18965
19573
  */
@@ -18997,6 +19605,7 @@ export const withSpan: {
18997
19605
  * await Effect.runPromise(effect)
18998
19606
  * ```
18999
19607
  *
19608
+ * @stability stable
19000
19609
  * @category do notation
19001
19610
  * @since 2.0.0
19002
19611
  */
@@ -19039,6 +19648,7 @@ export {
19039
19648
  * await Effect.runPromise(program)
19040
19649
  * ```
19041
19650
  *
19651
+ * @stability stable
19042
19652
  * @category do notation
19043
19653
  * @since 2.0.0
19044
19654
  */
@@ -19063,6 +19673,7 @@ export {
19063
19673
  * await Effect.runPromise(result) // => [{ a: 1, b: 2 }, { a: 2, b: 3 }]
19064
19674
  * ```
19065
19675
  *
19676
+ * @stability stable
19066
19677
  * @category do notation
19067
19678
  * @since 2.0.0
19068
19679
  */
@@ -19085,6 +19696,7 @@ export const bind: {
19085
19696
  * await Effect.runPromise(result) // => [{ a: 1, b: 2 }, { a: 2, b: 3 }]
19086
19697
  * ```
19087
19698
  *
19699
+ * @stability stable
19088
19700
  * @category do notation
19089
19701
  * @since 2.0.0
19090
19702
  */
@@ -19114,6 +19726,7 @@ export const bind: {
19114
19726
  * await Effect.runPromise(result) // => [{ a: 1, b: 2 }, { a: 2, b: 3 }]
19115
19727
  * ```
19116
19728
  *
19729
+ * @stability stable
19117
19730
  * @category do notation
19118
19731
  * @since 2.0.0
19119
19732
  */
@@ -19158,6 +19771,7 @@ export const bind: {
19158
19771
  * await Effect.runPromise(program)
19159
19772
  * ```
19160
19773
  *
19774
+ * @stability stable
19161
19775
  * @category do notation
19162
19776
  * @since 2.0.0
19163
19777
  */
@@ -19183,6 +19797,7 @@ export const bindEffect: {
19183
19797
  * await Effect.runPromise(program)
19184
19798
  * ```
19185
19799
  *
19800
+ * @stability stable
19186
19801
  * @category do notation
19187
19802
  * @since 2.0.0
19188
19803
  */
@@ -19216,6 +19831,7 @@ export const bindEffect: {
19216
19831
  * await Effect.runPromise(program)
19217
19832
  * ```
19218
19833
  *
19834
+ * @stability stable
19219
19835
  * @category do notation
19220
19836
  * @since 2.0.0
19221
19837
  */
@@ -19254,6 +19870,7 @@ export const bindEffect: {
19254
19870
  * await Effect.runPromise(Stream.runCollect(stream)) // => [{ value: 1 }, { value: 2 }, { value: 3 }]
19255
19871
  * ```
19256
19872
  *
19873
+ * @stability stable
19257
19874
  * @category do notation
19258
19875
  * @since 2.0.0
19259
19876
  */
@@ -19271,6 +19888,7 @@ export const bindTo: {
19271
19888
  * await Effect.runPromise(Stream.runCollect(stream)) // => [{ value: 1 }, { value: 2 }, { value: 3 }]
19272
19889
  * ```
19273
19890
  *
19891
+ * @stability stable
19274
19892
  * @category do notation
19275
19893
  * @since 2.0.0
19276
19894
  */
@@ -19288,6 +19906,7 @@ export const bindTo: {
19288
19906
  * await Effect.runPromise(Stream.runCollect(stream)) // => [{ value: 1 }, { value: 2 }, { value: 3 }]
19289
19907
  * ```
19290
19908
  *
19909
+ * @stability stable
19291
19910
  * @category do notation
19292
19911
  * @since 2.0.0
19293
19912
  */
@@ -19310,6 +19929,7 @@ export const bindTo: {
19310
19929
  * await Effect.runPromise(program) // => 6
19311
19930
  * ```
19312
19931
  *
19932
+ * @stability stable
19313
19933
  * @category destructors
19314
19934
  * @since 2.0.0
19315
19935
  */
@@ -19327,6 +19947,7 @@ export const run: {
19327
19947
  * await Effect.runPromise(program) // => 6
19328
19948
  * ```
19329
19949
  *
19950
+ * @stability stable
19330
19951
  * @category destructors
19331
19952
  * @since 2.0.0
19332
19953
  */
@@ -19344,6 +19965,7 @@ export const run: {
19344
19965
  * await Effect.runPromise(program) // => 6
19345
19966
  * ```
19346
19967
  *
19968
+ * @stability stable
19347
19969
  * @category destructors
19348
19970
  * @since 2.0.0
19349
19971
  */
@@ -19377,6 +19999,7 @@ export const run: {
19377
19999
  * await Effect.runPromise(program)
19378
20000
  * ```
19379
20001
  *
20002
+ * @stability stable
19380
20003
  * @category destructors
19381
20004
  * @since 2.0.0
19382
20005
  */
@@ -19410,6 +20033,7 @@ export const runCollect = <A, E, R>(self: Stream<A, E, R>): Effect.Effect<Array<
19410
20033
  * await Effect.runPromise(program)
19411
20034
  * ```
19412
20035
  *
20036
+ * @stability stable
19413
20037
  * @category destructors
19414
20038
  * @since 2.0.0
19415
20039
  */
@@ -19432,6 +20056,7 @@ export const runCount = <A, E, R>(self: Stream<A, E, R>): Effect.Effect<number,
19432
20056
  * await Effect.runPromise(program)
19433
20057
  * ```
19434
20058
  *
20059
+ * @stability stable
19435
20060
  * @category destructors
19436
20061
  * @since 2.0.0
19437
20062
  */
@@ -19463,6 +20088,7 @@ export const runSum = <E, R>(self: Stream<number, E, R>): Effect.Effect<number,
19463
20088
  * await Effect.runPromise(program)
19464
20089
  * ```
19465
20090
  *
20091
+ * @stability stable
19466
20092
  * @category destructors
19467
20093
  * @since 2.0.0
19468
20094
  */
@@ -19487,6 +20113,7 @@ export const runFold: {
19487
20113
  * await Effect.runPromise(program)
19488
20114
  * ```
19489
20115
  *
20116
+ * @stability stable
19490
20117
  * @category destructors
19491
20118
  * @since 2.0.0
19492
20119
  */
@@ -19513,6 +20140,7 @@ export const runFold: {
19513
20140
  * await Effect.runPromise(program)
19514
20141
  * ```
19515
20142
  *
20143
+ * @stability stable
19516
20144
  * @category destructors
19517
20145
  * @since 2.0.0
19518
20146
  */
@@ -19554,6 +20182,7 @@ export const runFold: {
19554
20182
  * await Effect.runPromise(program)
19555
20183
  * ```
19556
20184
  *
20185
+ * @stability stable
19557
20186
  * @category destructors
19558
20187
  * @since 2.0.0
19559
20188
  */
@@ -19583,6 +20212,7 @@ export const runFoldEffect: {
19583
20212
  * await Effect.runPromise(program)
19584
20213
  * ```
19585
20214
  *
20215
+ * @stability stable
19586
20216
  * @category destructors
19587
20217
  * @since 2.0.0
19588
20218
  */
@@ -19614,6 +20244,7 @@ export const runFoldEffect: {
19614
20244
  * await Effect.runPromise(program)
19615
20245
  * ```
19616
20246
  *
20247
+ * @stability stable
19617
20248
  * @category destructors
19618
20249
  * @since 2.0.0
19619
20250
  */
@@ -19659,6 +20290,7 @@ export const runFoldEffect: {
19659
20290
  * await Effect.runPromise(program)
19660
20291
  * ```
19661
20292
  *
20293
+ * @stability stable
19662
20294
  * @category destructors
19663
20295
  * @since 2.0.0
19664
20296
  */
@@ -19686,6 +20318,7 @@ export const runHead = <A, E, R>(self: Stream<A, E, R>): Effect.Effect<Option.Op
19686
20318
  * @see {@link runCollect} for collecting every emitted element
19687
20319
  * @see {@link runDrain} for consuming the stream while discarding emitted elements
19688
20320
  *
20321
+ * @stability stable
19689
20322
  * @category destructors
19690
20323
  * @since 2.0.0
19691
20324
  */
@@ -19711,6 +20344,7 @@ export const runLast = <A, E, R>(self: Stream<A, E, R>): Effect.Effect<Option.Op
19711
20344
  * values // => ["Processing: 1", "Processing: 2", "Processing: 3"]
19712
20345
  * ```
19713
20346
  *
20347
+ * @stability stable
19714
20348
  * @category destructors
19715
20349
  * @since 2.0.0
19716
20350
  */
@@ -19734,6 +20368,7 @@ export const runForEach: {
19734
20368
  * values // => ["Processing: 1", "Processing: 2", "Processing: 3"]
19735
20369
  * ```
19736
20370
  *
20371
+ * @stability stable
19737
20372
  * @category destructors
19738
20373
  * @since 2.0.0
19739
20374
  */
@@ -19757,6 +20392,7 @@ export const runForEach: {
19757
20392
  * values // => ["Processing: 1", "Processing: 2", "Processing: 3"]
19758
20393
  * ```
19759
20394
  *
20395
+ * @stability stable
19760
20396
  * @category destructors
19761
20397
  * @since 2.0.0
19762
20398
  */
@@ -19799,6 +20435,7 @@ export const runForEach: {
19799
20435
  * values // => [1, 2, 3]
19800
20436
  * ```
19801
20437
  *
20438
+ * @stability stable
19802
20439
  * @category destructors
19803
20440
  * @since 2.0.0
19804
20441
  */
@@ -19828,6 +20465,7 @@ export const runForEachWhile: {
19828
20465
  * values // => [1, 2, 3]
19829
20466
  * ```
19830
20467
  *
20468
+ * @stability stable
19831
20469
  * @category destructors
19832
20470
  * @since 2.0.0
19833
20471
  */
@@ -19857,6 +20495,7 @@ export const runForEachWhile: {
19857
20495
  * values // => [1, 2, 3]
19858
20496
  * ```
19859
20497
  *
20498
+ * @stability stable
19860
20499
  * @category destructors
19861
20500
  * @since 2.0.0
19862
20501
  */
@@ -19902,6 +20541,7 @@ export const runForEachWhile: {
19902
20541
  * chunks // => ["1, 2, 3, 4, 5"]
19903
20542
  * ```
19904
20543
  *
20544
+ * @stability stable
19905
20545
  * @category destructors
19906
20546
  * @since 4.0.0
19907
20547
  */
@@ -19927,6 +20567,7 @@ export const runForEachArray: {
19927
20567
  * chunks // => ["1, 2, 3, 4, 5"]
19928
20568
  * ```
19929
20569
  *
20570
+ * @stability stable
19930
20571
  * @category destructors
19931
20572
  * @since 4.0.0
19932
20573
  */
@@ -19952,6 +20593,7 @@ export const runForEachArray: {
19952
20593
  * chunks // => ["1, 2, 3, 4, 5"]
19953
20594
  * ```
19954
20595
  *
20596
+ * @stability stable
19955
20597
  * @category destructors
19956
20598
  * @since 4.0.0
19957
20599
  */
@@ -19985,6 +20627,7 @@ export const runForEachArray: {
19985
20627
  * values // => [1, 2, 3]
19986
20628
  * ```
19987
20629
  *
20630
+ * @stability stable
19988
20631
  * @category destructors
19989
20632
  * @since 2.0.0
19990
20633
  */
@@ -20016,6 +20659,7 @@ export const runDrain = <A, E, R>(self: Stream<A, E, R>): Effect.Effect<void, E,
20016
20659
  * await Effect.runPromise(program)
20017
20660
  * ```
20018
20661
  *
20662
+ * @stability stable
20019
20663
  * @category destructors
20020
20664
  * @since 2.0.0
20021
20665
  */
@@ -20040,6 +20684,7 @@ export const toPull = <A, E, R>(
20040
20684
  * await Effect.runPromise(program)
20041
20685
  * ```
20042
20686
  *
20687
+ * @stability stable
20043
20688
  * @category destructors
20044
20689
  * @since 2.0.0
20045
20690
  */
@@ -20074,6 +20719,7 @@ export const mkString = <E, R>(self: Stream<string, E, R>): Effect.Effect<string
20074
20719
  * await Effect.runPromise(program) // => [1, 2, 3, 4]
20075
20720
  * ```
20076
20721
  *
20722
+ * @stability stable
20077
20723
  * @category destructors
20078
20724
  * @since 4.0.0
20079
20725
  */
@@ -20102,6 +20748,7 @@ export const mkArrayBuffer = <E, R>(self: Stream<Uint8Array, E, R>): Effect.Effe
20102
20748
  * await Effect.runPromise(program)
20103
20749
  * ```
20104
20750
  *
20751
+ * @stability stable
20105
20752
  * @category destructors
20106
20753
  * @since 4.0.0
20107
20754
  */
@@ -20131,6 +20778,7 @@ export const mkUint8Array = <E, R>(self: Stream<Uint8Array, E, R>): Effect.Effec
20131
20778
  * values // => [ 1, 2, 3, 4, 5 ]
20132
20779
  * ```
20133
20780
  *
20781
+ * @stability stable
20134
20782
  * @category destructors
20135
20783
  * @since 4.0.0
20136
20784
  */
@@ -20158,6 +20806,7 @@ export const toReadableStreamWith: {
20158
20806
  * values // => [ 1, 2, 3, 4, 5 ]
20159
20807
  * ```
20160
20808
  *
20809
+ * @stability stable
20161
20810
  * @category destructors
20162
20811
  * @since 4.0.0
20163
20812
  */
@@ -20188,6 +20837,7 @@ export const toReadableStreamWith: {
20188
20837
  * values // => [ 1, 2, 3, 4, 5 ]
20189
20838
  * ```
20190
20839
  *
20840
+ * @stability stable
20191
20841
  * @category destructors
20192
20842
  * @since 4.0.0
20193
20843
  */
@@ -20260,6 +20910,7 @@ export const toReadableStreamWith: {
20260
20910
  * values // => [ 1, 2, 3 ]
20261
20911
  * ```
20262
20912
  *
20913
+ * @stability stable
20263
20914
  * @category destructors
20264
20915
  * @since 2.0.0
20265
20916
  */
@@ -20281,6 +20932,7 @@ export const toReadableStream: {
20281
20932
  * values // => [ 1, 2, 3 ]
20282
20933
  * ```
20283
20934
  *
20935
+ * @stability stable
20284
20936
  * @category destructors
20285
20937
  * @since 2.0.0
20286
20938
  */
@@ -20304,6 +20956,7 @@ export const toReadableStream: {
20304
20956
  * values // => [ 1, 2, 3 ]
20305
20957
  * ```
20306
20958
  *
20959
+ * @stability stable
20307
20960
  * @category destructors
20308
20961
  * @since 2.0.0
20309
20962
  */
@@ -20346,6 +20999,7 @@ export const toReadableStream: {
20346
20999
  * await Effect.runPromise(effect)
20347
21000
  * ```
20348
21001
  *
21002
+ * @stability stable
20349
21003
  * @category destructors
20350
21004
  * @since 2.0.0
20351
21005
  */
@@ -20377,6 +21031,7 @@ export const toReadableStreamEffect: {
20377
21031
  * await Effect.runPromise(effect)
20378
21032
  * ```
20379
21033
  *
21034
+ * @stability stable
20380
21035
  * @category destructors
20381
21036
  * @since 2.0.0
20382
21037
  */
@@ -20410,6 +21065,7 @@ export const toReadableStreamEffect: {
20410
21065
  * await Effect.runPromise(effect)
20411
21066
  * ```
20412
21067
  *
21068
+ * @stability stable
20413
21069
  * @category destructors
20414
21070
  * @since 2.0.0
20415
21071
  */
@@ -20451,6 +21107,7 @@ export const toReadableStreamEffect: {
20451
21107
  * await Effect.runPromise(effect)
20452
21108
  * ```
20453
21109
  *
21110
+ * @stability stable
20454
21111
  * @category destructors
20455
21112
  * @since 2.0.0
20456
21113
  */
@@ -20478,6 +21135,7 @@ export const toReadableStreamEffect: {
20478
21135
  * await Array.fromAsync(iterable) // => [1, 2, 3]
20479
21136
  * ```
20480
21137
  *
21138
+ * @stability stable
20481
21139
  * @category destructors
20482
21140
  * @since 4.0.0
20483
21141
  */
@@ -20501,6 +21159,7 @@ export const toAsyncIterableWith: {
20501
21159
  * await Array.fromAsync(iterable) // => [1, 2, 3]
20502
21160
  * ```
20503
21161
  *
21162
+ * @stability stable
20504
21163
  * @category destructors
20505
21164
  * @since 4.0.0
20506
21165
  */
@@ -20524,6 +21183,7 @@ export const toAsyncIterableWith: {
20524
21183
  * await Array.fromAsync(iterable) // => [1, 2, 3]
20525
21184
  * ```
20526
21185
  *
21186
+ * @stability stable
20527
21187
  * @category destructors
20528
21188
  * @since 4.0.0
20529
21189
  */
@@ -20628,6 +21288,7 @@ export const toAsyncIterableWith: {
20628
21288
  * await Effect.runPromise(program) // => [1, 2, 3]
20629
21289
  * ```
20630
21290
  *
21291
+ * @stability stable
20631
21292
  * @category destructors
20632
21293
  * @since 3.15.0
20633
21294
  */
@@ -20650,6 +21311,7 @@ export const toAsyncIterableEffect = <A, E, R>(self: Stream<A, E, R>): Effect.Ef
20650
21311
  * await Array.fromAsync(Stream.toAsyncIterable(stream)) // => [1, 2, 3]
20651
21312
  * ```
20652
21313
  *
21314
+ * @stability stable
20653
21315
  * @category destructors
20654
21316
  * @since 3.15.0
20655
21317
  */
@@ -20685,6 +21347,7 @@ export const toAsyncIterable = <A, E>(self: Stream<A, E>): AsyncIterable<A> =>
20685
21347
  * await Effect.runPromise(program)
20686
21348
  * ```
20687
21349
  *
21350
+ * @stability stable
20688
21351
  * @category destructors
20689
21352
  * @since 2.0.0
20690
21353
  */
@@ -20718,6 +21381,7 @@ export const runIntoPubSub: {
20718
21381
  * await Effect.runPromise(program)
20719
21382
  * ```
20720
21383
  *
21384
+ * @stability stable
20721
21385
  * @category destructors
20722
21386
  * @since 2.0.0
20723
21387
  */
@@ -20756,6 +21420,7 @@ export const runIntoPubSub: {
20756
21420
  * await Effect.runPromise(program)
20757
21421
  * ```
20758
21422
  *
21423
+ * @stability stable
20759
21424
  * @category destructors
20760
21425
  * @since 2.0.0
20761
21426
  */
@@ -20799,6 +21464,7 @@ export const runIntoPubSub: {
20799
21464
  * await Effect.runPromise(program)
20800
21465
  * ```
20801
21466
  *
21467
+ * @stability stable
20802
21468
  * @category destructors
20803
21469
  * @since 2.0.0
20804
21470
  */
@@ -20828,6 +21494,7 @@ export const toPubSub: {
20828
21494
  * await Effect.runPromise(program)
20829
21495
  * ```
20830
21496
  *
21497
+ * @stability stable
20831
21498
  * @category destructors
20832
21499
  * @since 2.0.0
20833
21500
  */
@@ -20868,6 +21535,7 @@ export const toPubSub: {
20868
21535
  * await Effect.runPromise(program)
20869
21536
  * ```
20870
21537
  *
21538
+ * @stability stable
20871
21539
  * @category destructors
20872
21540
  * @since 2.0.0
20873
21541
  */
@@ -20929,6 +21597,7 @@ export const toPubSub: {
20929
21597
  * await Effect.runPromise(Effect.scoped(program))
20930
21598
  * ```
20931
21599
  *
21600
+ * @stability stable
20932
21601
  * @category destructors
20933
21602
  * @since 4.0.0
20934
21603
  */
@@ -20961,6 +21630,7 @@ export const toPubSubTake: {
20961
21630
  * await Effect.runPromise(Effect.scoped(program))
20962
21631
  * ```
20963
21632
  *
21633
+ * @stability stable
20964
21634
  * @category destructors
20965
21635
  * @since 4.0.0
20966
21636
  */
@@ -21002,6 +21672,7 @@ export const toPubSubTake: {
21002
21672
  * await Effect.runPromise(Effect.scoped(program))
21003
21673
  * ```
21004
21674
  *
21675
+ * @stability stable
21005
21676
  * @category destructors
21006
21677
  * @since 4.0.0
21007
21678
  */
@@ -21055,6 +21726,7 @@ export const toPubSubTake: {
21055
21726
  * await Effect.runPromise(Effect.scoped(program))
21056
21727
  * ```
21057
21728
  *
21729
+ * @stability stable
21058
21730
  * @category destructors
21059
21731
  * @since 2.0.0
21060
21732
  */
@@ -21082,6 +21754,7 @@ export const toQueue: {
21082
21754
  * await Effect.runPromise(Effect.scoped(program))
21083
21755
  * ```
21084
21756
  *
21757
+ * @stability stable
21085
21758
  * @category destructors
21086
21759
  * @since 2.0.0
21087
21760
  */
@@ -21116,6 +21789,7 @@ export const toQueue: {
21116
21789
  * await Effect.runPromise(Effect.scoped(program))
21117
21790
  * ```
21118
21791
  *
21792
+ * @stability stable
21119
21793
  * @category destructors
21120
21794
  * @since 2.0.0
21121
21795
  */
@@ -21171,6 +21845,7 @@ export const toQueue: {
21171
21845
  * await Effect.runPromise(program)
21172
21846
  * ```
21173
21847
  *
21848
+ * @stability stable
21174
21849
  * @category destructors
21175
21850
  * @since 2.0.0
21176
21851
  */
@@ -21204,6 +21879,7 @@ export const runIntoQueue: {
21204
21879
  * await Effect.runPromise(program)
21205
21880
  * ```
21206
21881
  *
21882
+ * @stability stable
21207
21883
  * @category destructors
21208
21884
  * @since 2.0.0
21209
21885
  */
@@ -21237,6 +21913,7 @@ export const runIntoQueue: {
21237
21913
  * await Effect.runPromise(program)
21238
21914
  * ```
21239
21915
  *
21916
+ * @stability stable
21240
21917
  * @category destructors
21241
21918
  * @since 2.0.0
21242
21919
  */