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/dist/Stream.js 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
@@ -55,6 +56,7 @@ import { isString } from "./String.js";
55
56
  *
56
57
  * @see {@link isStream} for the public guard that checks this identifier
57
58
  *
59
+ * @stability stable
58
60
  * @category type IDs
59
61
  * @since 4.0.0
60
62
  */
@@ -71,6 +73,7 @@ export const TypeId = "~effect/Stream";
71
73
  * Stream.isStream({ data: [1, 2, 3] }) // => false
72
74
  * ```
73
75
  *
76
+ * @stability stable
74
77
  * @category guards
75
78
  * @since 4.0.0
76
79
  */
@@ -86,6 +89,7 @@ export const isStream = u => hasProperty(u, TypeId);
86
89
  * Stream.DefaultChunkSize // => 4096
87
90
  * ```
88
91
  *
92
+ * @stability stable
89
93
  * @category constants
90
94
  * @since 2.0.0
91
95
  */
@@ -103,6 +107,7 @@ export const DefaultChunkSize = Channel.DefaultChunkSize;
103
107
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
104
108
  * ```
105
109
  *
110
+ * @stability stable
106
111
  * @category constructors
107
112
  * @since 2.0.0
108
113
  */
@@ -119,6 +124,7 @@ export const fromChannel = internal.fromChannel;
119
124
  * await Effect.runPromise(Stream.runCollect(stream)) // => [42]
120
125
  * ```
121
126
  *
127
+ * @stability stable
122
128
  * @category constructors
123
129
  * @since 2.0.0
124
130
  */
@@ -149,6 +155,7 @@ export const fromEffect = effect => fromChannel(Channel.fromEffect(Effect.map(ef
149
155
  * ) // => ["Hello, World!"]
150
156
  * ```
151
157
  *
158
+ * @stability stable
152
159
  * @category accessors
153
160
  * @since 4.0.0
154
161
  */
@@ -190,6 +197,7 @@ export const service = service => fromEffect(Effect.service(service));
190
197
  * ) // => ["Hello, World!"]
191
198
  * ```
192
199
  *
200
+ * @stability stable
193
201
  * @category accessors
194
202
  * @since 4.0.0
195
203
  */
@@ -211,6 +219,7 @@ export const serviceOption = service => fromEffect(Effect.serviceOption(service)
211
219
  * drained // => true
212
220
  * ```
213
221
  *
222
+ * @stability stable
214
223
  * @category constructors
215
224
  * @since 4.0.0
216
225
  */
@@ -228,6 +237,7 @@ export const fromEffectDrain = effect => fromPull(Effect.succeed(Effect.flatMap(
228
237
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3, 4, 5]
229
238
  * ```
230
239
  *
240
+ * @stability stable
231
241
  * @category constructors
232
242
  * @since 4.0.0
233
243
  */
@@ -245,6 +255,7 @@ export const fromEffectRepeat = effect => fromPull(Effect.succeed(Effect.map(eff
245
255
  * await Effect.runPromise(Stream.runCollect(stream)) // => ["ping", "ping", "ping"]
246
256
  * ```
247
257
  *
258
+ * @stability stable
248
259
  * @category constructors
249
260
  * @since 4.0.0
250
261
  */
@@ -276,6 +287,7 @@ export const fromEffectSchedule = (effect, schedule) => fromPull(Effect.gen(func
276
287
  * await Effect.runPromise(Stream.tick(0).pipe(Stream.take(3), Stream.runCollect)) // => [undefined, undefined, undefined]
277
288
  * ```
278
289
  *
290
+ * @stability stable
279
291
  * @category constructors
280
292
  * @since 2.0.0
281
293
  */
@@ -316,6 +328,7 @@ export const tick = interval => fromPull(Effect.sync(() => {
316
328
  * await Effect.runPromise(program) // => [1, 2, 3]
317
329
  * ```
318
330
  *
331
+ * @stability stable
319
332
  * @category constructors
320
333
  * @since 2.0.0
321
334
  */
@@ -335,6 +348,7 @@ export const fromPull = pull => fromChannel(Channel.fromPull(pull));
335
348
  * await Effect.runPromise(Stream.runCollect(transformed)) // => [1, 2, 3]
336
349
  * ```
337
350
  *
351
+ * @stability stable
338
352
  * @category constructors
339
353
  * @since 4.0.0
340
354
  */
@@ -368,6 +382,7 @@ export const transformPull = (self, f) => fromChannel(Channel.fromTransform((_,
368
382
  * finalized // => [true]
369
383
  * ```
370
384
  *
385
+ * @stability stable
371
386
  * @category constructors
372
387
  * @since 4.0.0
373
388
  */
@@ -385,6 +400,7 @@ export const transformPullBracket = (self, f) => fromChannel(Channel.fromTransfo
385
400
  * values.flat() // => [1, 2, 3]
386
401
  * ```
387
402
  *
403
+ * @stability stable
388
404
  * @category destructors
389
405
  * @since 2.0.0
390
406
  */
@@ -420,6 +436,7 @@ export const toChannel = stream => stream.channel;
420
436
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
421
437
  * ```
422
438
  *
439
+ * @stability stable
423
440
  * @category constructors
424
441
  * @since 4.0.0
425
442
  */
@@ -435,6 +452,7 @@ export const callback = (f, options) => fromChannel(Channel.callbackArray(f, opt
435
452
  * await Effect.runPromise(Stream.runCollect(Stream.empty)) // => []
436
453
  * ```
437
454
  *
455
+ * @stability stable
438
456
  * @category constructors
439
457
  * @since 2.0.0
440
458
  */
@@ -450,6 +468,7 @@ export const empty = /*#__PURE__*/fromChannel(Channel.empty);
450
468
  * await Effect.runPromise(Stream.runCollect(Stream.succeed(3))) // => [3]
451
469
  * ```
452
470
  *
471
+ * @stability stable
453
472
  * @category constructors
454
473
  * @since 2.0.0
455
474
  */
@@ -467,6 +486,7 @@ export const succeed = value => fromChannel(Channel.succeed(Arr.of(value)));
467
486
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 2, 3]
468
487
  * ```
469
488
  *
489
+ * @stability stable
470
490
  * @category constructors
471
491
  * @since 2.0.0
472
492
  */
@@ -486,6 +506,7 @@ export const make = (...values) => fromArray(values);
486
506
  * await Effect.runPromise(Stream.sync(() => 2 + 1).pipe(Stream.runCollect)) // => [3]
487
507
  * ```
488
508
  *
509
+ * @stability stable
489
510
  * @category constructors
490
511
  * @since 2.0.0
491
512
  */
@@ -505,6 +526,7 @@ export const sync = evaluate => fromChannel(Channel.sync(() => Arr.of(evaluate()
505
526
  * await Effect.runPromise(Stream.suspend(() => Stream.make(1, 2, 3)).pipe(Stream.runCollect)) // => [1, 2, 3]
506
527
  * ```
507
528
  *
529
+ * @stability stable
508
530
  * @category constructors
509
531
  * @since 2.0.0
510
532
  */
@@ -520,6 +542,7 @@ export const suspend = stream => fromChannel(Channel.suspend(() => stream().chan
520
542
  * await Effect.runPromise(Effect.exit(Stream.runCollect(Stream.fail("Uh oh!")))) // => Exit.fail("Uh oh!")
521
543
  * ```
522
544
  *
545
+ * @stability stable
523
546
  * @category constructors
524
547
  * @since 2.0.0
525
548
  */
@@ -537,6 +560,7 @@ export const fail = error => fromChannel(Channel.fail(error));
537
560
  * await Effect.runPromise(Stream.runCollect(stream).pipe(Effect.exit)) // => Exit.fail("Uh oh!")
538
561
  * ```
539
562
  *
563
+ * @stability stable
540
564
  * @category constructors
541
565
  * @since 2.0.0
542
566
  */
@@ -556,6 +580,7 @@ export const failSync = evaluate => fromChannel(Channel.failSync(evaluate));
556
580
  * await Effect.runPromise(Stream.runCollect(stream)) // => ["recovered"]
557
581
  * ```
558
582
  *
583
+ * @stability stable
559
584
  * @category constructors
560
585
  * @since 2.0.0
561
586
  */
@@ -574,6 +599,7 @@ export const failCause = cause => fromChannel(Channel.failCause(cause));
574
599
  * await Effect.runPromise(Effect.exit(Stream.runCollect(stream))) // => Exit.failCause(Cause.die(defect))
575
600
  * ```
576
601
  *
602
+ * @stability stable
577
603
  * @category constructors
578
604
  * @since 2.0.0
579
605
  */
@@ -593,6 +619,7 @@ export const die = defect => fromChannel(Channel.die(defect));
593
619
  * await Effect.runPromise(Stream.runCollect(stream).pipe(Effect.exit)) // => Exit.fail("Connection timeout after retries")
594
620
  * ```
595
621
  *
622
+ * @stability stable
596
623
  * @category constructors
597
624
  * @since 2.0.0
598
625
  */
@@ -627,6 +654,7 @@ export const failCauseSync = evaluate => fromChannel(Channel.failCauseSync(evalu
627
654
  * await Effect.runPromise(program)
628
655
  * ```
629
656
  *
657
+ * @stability stable
630
658
  * @category constructors
631
659
  * @since 2.0.0
632
660
  */
@@ -656,6 +684,7 @@ export const fromIteratorSucceed = (iterator, maxChunkSize) => fromChannel(Chann
656
684
  * await Effect.runPromise(program)
657
685
  * ```
658
686
  *
687
+ * @stability stable
659
688
  * @category constructors
660
689
  * @since 2.0.0
661
690
  */
@@ -696,6 +725,7 @@ export const fromIterable = (iterable, options) => Array.isArray(iterable) && op
696
725
  * await Effect.runPromise(program)
697
726
  * ```
698
727
  *
728
+ * @stability stable
699
729
  * @category constructors
700
730
  * @since 2.0.0
701
731
  */
@@ -719,6 +749,7 @@ export const fromIterableEffect = iterable => unwrap(Effect.map(iterable, fromIt
719
749
  * await Effect.runPromise(program)
720
750
  * ```
721
751
  *
752
+ * @stability stable
722
753
  * @category constructors
723
754
  * @since 4.0.0
724
755
  */
@@ -740,6 +771,7 @@ export const fromIterableEffectRepeat = iterable => flatMap(fromEffectRepeat(ite
740
771
  * await Effect.runPromise(program)
741
772
  * ```
742
773
  *
774
+ * @stability stable
743
775
  * @category constructors
744
776
  * @since 4.0.0
745
777
  */
@@ -766,6 +798,7 @@ export const fromArray = array => Arr.isReadonlyArrayNonEmpty(array) ? fromChann
766
798
  * await Effect.runPromise(program)
767
799
  * ```
768
800
  *
801
+ * @stability stable
769
802
  * @category constructors
770
803
  * @since 4.0.0
771
804
  */
@@ -787,6 +820,7 @@ export const fromArrayEffect = effect => unwrap(Effect.map(effect, fromArray));
787
820
  * await Effect.runPromise(program)
788
821
  * ```
789
822
  *
823
+ * @stability stable
790
824
  * @category constructors
791
825
  * @since 4.0.0
792
826
  */
@@ -819,6 +853,7 @@ export const fromArrays = (...arrays) => fromChannel(Channel.fromArray(Arr.filte
819
853
  * await Effect.runPromise(program)
820
854
  * ```
821
855
  *
856
+ * @stability stable
822
857
  * @category constructors
823
858
  * @since 2.0.0
824
859
  */
@@ -851,6 +886,7 @@ export const fromQueue = queue => fromChannel(Channel.fromQueueArray(queue));
851
886
  * await Effect.runPromise(program)
852
887
  * ```
853
888
  *
889
+ * @stability stable
854
890
  * @category constructors
855
891
  * @since 2.0.0
856
892
  */
@@ -883,6 +919,7 @@ export const fromPubSub = pubsub => fromChannel(Channel.fromPubSubArray(pubsub))
883
919
  * await Effect.runPromise(program)
884
920
  * ```
885
921
  *
922
+ * @stability stable
886
923
  * @category constructors
887
924
  * @since 4.0.0
888
925
  */
@@ -924,6 +961,7 @@ export const fromPubSubTake = pubsub => fromChannel(Channel.fromPubSubTake(pubsu
924
961
  * await Effect.runPromise(program)
925
962
  * ```
926
963
  *
964
+ * @stability stable
927
965
  * @category constructors
928
966
  * @since 2.0.0
929
967
  */
@@ -952,6 +990,7 @@ export const fromReadableStream = options => fromChannel(Channel.fromReadableStr
952
990
  *
953
991
  * ```
954
992
  *
993
+ * @stability stable
955
994
  * @category constructors
956
995
  * @since 2.0.0
957
996
  */
@@ -975,6 +1014,7 @@ export const fromAsyncIterable = (iterable, onError) => fromChannel(Channel.from
975
1014
  * await Effect.runPromise(program)
976
1015
  * ```
977
1016
  *
1017
+ * @stability stable
978
1018
  * @category constructors
979
1019
  * @since 2.0.0
980
1020
  */
@@ -1008,6 +1048,7 @@ export const fromSchedule = schedule => fromPull(Effect.map(Schedule.toStepWithS
1008
1048
  * await Effect.runPromise(program)
1009
1049
  * ```
1010
1050
  *
1051
+ * @stability stable
1011
1052
  * @category constructors
1012
1053
  * @since 4.0.0
1013
1054
  */
@@ -1041,6 +1082,7 @@ export const fromSubscription = pubsub => fromChannel(Channel.fromSubscriptionAr
1041
1082
  *
1042
1083
  * ```
1043
1084
  *
1085
+ * @stability stable
1044
1086
  * @category constructors
1045
1087
  * @since 3.1.0
1046
1088
  */
@@ -1077,6 +1119,7 @@ export const fromEventListener = (target, type, options) => callback(queue => {
1077
1119
  * await Effect.runPromise(program)
1078
1120
  * ```
1079
1121
  *
1122
+ * @stability stable
1080
1123
  * @category constructors
1081
1124
  * @since 2.0.0
1082
1125
  */
@@ -1117,6 +1160,7 @@ export const unfold = (s, f) => fromPull(Effect.sync(() => {
1117
1160
  * await Effect.runPromise(Stream.runCollect(stream)) // => [0, 1, 2, 3]
1118
1161
  * ```
1119
1162
  *
1163
+ * @stability stable
1120
1164
  * @category constructors
1121
1165
  * @since 2.0.0
1122
1166
  */
@@ -1154,6 +1198,7 @@ export const paginate = (s, f) => fromPull(Effect.sync(() => {
1154
1198
  * await Effect.runPromise(program)
1155
1199
  * ```
1156
1200
  *
1201
+ * @stability stable
1157
1202
  * @category constructors
1158
1203
  * @since 2.0.0
1159
1204
  */
@@ -1180,6 +1225,7 @@ export const iterate = (value, next) => unfold(value, a => Effect.succeed([a, ne
1180
1225
  * await Effect.runPromise(program)
1181
1226
  * ```
1182
1227
  *
1228
+ * @stability stable
1183
1229
  * @category constructors
1184
1230
  * @since 2.0.0
1185
1231
  */
@@ -1216,6 +1262,7 @@ export const range = (min, max, chunkSize = Channel.DefaultChunkSize) => min > m
1216
1262
  * await Effect.runPromise(program) // => []
1217
1263
  * ```
1218
1264
  *
1265
+ * @stability stable
1219
1266
  * @category constructors
1220
1267
  * @since 2.0.0
1221
1268
  */
@@ -1239,6 +1286,7 @@ export const never = /*#__PURE__*/fromChannel(Channel.never);
1239
1286
  * await Effect.runPromise(program)
1240
1287
  * ```
1241
1288
  *
1289
+ * @stability stable
1242
1290
  * @category constructors
1243
1291
  * @since 2.0.0
1244
1292
  */
@@ -1269,6 +1317,7 @@ export const unwrap = effect => fromChannel(Channel.unwrap(Effect.map(effect, to
1269
1317
  * events // => ["acquire", "release"]
1270
1318
  * ```
1271
1319
  *
1320
+ * @stability stable
1272
1321
  * @category resource management
1273
1322
  * @since 2.0.0
1274
1323
  */
@@ -1285,6 +1334,7 @@ export const scoped = self => fromChannel(Channel.scoped(self.channel));
1285
1334
  * await Effect.runPromise(Stream.runCollect(stream)) // => [1, 3, 5]
1286
1335
  * ```
1287
1336
  *
1337
+ * @stability stable
1288
1338
  * @category mapping
1289
1339
  * @since 2.0.0
1290
1340
  */
@@ -1313,6 +1363,7 @@ export const map = /*#__PURE__*/dual(2, (self, f) => suspend(() => {
1313
1363
  *
1314
1364
  * @see {@link map} for deriving the replacement value from each element
1315
1365
  *
1366
+ * @stability stable
1316
1367
  * @category mapping
1317
1368
  * @since 4.0.0
1318
1369
  */
@@ -1348,6 +1399,7 @@ export const as = /*#__PURE__*/dual(2, (self, value) => map(self, () => value));
1348
1399
  * await Effect.runPromise(program)
1349
1400
  * ```
1350
1401
  *
1402
+ * @stability stable
1351
1403
  * @category mapping
1352
1404
  * @since 2.0.0
1353
1405
  */
@@ -1372,6 +1424,7 @@ export const mapBoth = /*#__PURE__*/dual(2, (self, options) => self.pipe(map(opt
1372
1424
  * await Effect.runPromise(program)
1373
1425
  * ```
1374
1426
  *
1427
+ * @stability stable
1375
1428
  * @category mapping
1376
1429
  * @since 4.0.0
1377
1430
  */
@@ -1410,6 +1463,7 @@ export const mapArray = /*#__PURE__*/dual(2, (self, f) => fromChannel(Channel.ma
1410
1463
  * events // => ["Processing: 1", "Processing: 2", "Processing: 3"]
1411
1464
  * ```
1412
1465
  *
1466
+ * @stability stable
1413
1467
  * @category mapping
1414
1468
  * @since 2.0.0
1415
1469
  */
@@ -1437,6 +1491,7 @@ export const mapEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self, f,
1437
1491
  * await Effect.runPromise(program)
1438
1492
  * ```
1439
1493
  *
1494
+ * @stability stable
1440
1495
  * @category sequencing
1441
1496
  * @since 2.0.0
1442
1497
  */
@@ -1468,6 +1523,7 @@ export const flattenEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self,
1468
1523
  * await Effect.runPromise(program)
1469
1524
  * ```
1470
1525
  *
1526
+ * @stability stable
1471
1527
  * @category mapping
1472
1528
  * @since 4.0.0
1473
1529
  */
@@ -1500,6 +1556,7 @@ export const mapArrayEffect = /*#__PURE__*/dual(2, (self, f) => fromChannel(Chan
1500
1556
  * await Effect.runPromise(program)
1501
1557
  * ```
1502
1558
  *
1559
+ * @stability stable
1503
1560
  * @category error handling
1504
1561
  * @since 4.0.0
1505
1562
  */
@@ -1528,6 +1585,7 @@ export const result = self => self.pipe(map(Result.succeed), catch_(e => succeed
1528
1585
  * events // => ["before mapping: 1", "after mapping: 2", "before mapping: 2", "after mapping: 4", "before mapping: 3", "after mapping: 6"]
1529
1586
  * ```
1530
1587
  *
1588
+ * @stability stable
1531
1589
  * @category sequencing
1532
1590
  * @since 2.0.0
1533
1591
  */
@@ -1558,6 +1616,7 @@ export const tap = /*#__PURE__*/dual(args => isStream(args[0]), (self, f, option
1558
1616
  * events // => ["seen: 1", "seen: 2", "error: boom"]
1559
1617
  * ```
1560
1618
  *
1619
+ * @stability stable
1561
1620
  * @category sequencing
1562
1621
  * @since 2.0.0
1563
1622
  */
@@ -1589,6 +1648,7 @@ export const tapBoth = /*#__PURE__*/dual(2, (self, options) => self.pipe(tapErro
1589
1648
  * await Effect.runPromise(program)
1590
1649
  * ```
1591
1650
  *
1651
+ * @stability stable
1592
1652
  * @category sequencing
1593
1653
  * @since 2.0.0
1594
1654
  */
@@ -1616,15 +1676,20 @@ export const tapSink = /*#__PURE__*/dual(2, (self, sink) => transformPullBracket
1616
1676
  return sinkLatch.open;
1617
1677
  }, true), Effect.forkIn(scope));
1618
1678
  const pullAndOffer = pull.pipe(Effect.flatMap(chunk_ => {
1679
+ // The sink may have exited while the upstream pull was suspended.
1680
+ if (causeSink) return Effect.failCause(causeSink);
1681
+ if (sinkDone) return Effect.succeed(chunk_);
1619
1682
  chunk = chunk_;
1620
1683
  sinkLatch.closeUnsafe();
1621
1684
  upstreamLatch.openUnsafe();
1622
1685
  return Effect.as(sinkLatch.await, chunk_);
1623
1686
  }), Pull.catchDone(() => {
1687
+ if (causeSink) return Effect.failCause(causeSink);
1688
+ if (sinkDone) return Cause.done();
1624
1689
  streamDone = true;
1625
1690
  sinkLatch.closeUnsafe();
1626
1691
  upstreamLatch.openUnsafe();
1627
- return Effect.flatMap(sinkLatch.await, () => Cause.done());
1692
+ return Effect.flatMap(sinkLatch.await, () => causeSink ? Effect.failCause(causeSink) : Cause.done());
1628
1693
  }));
1629
1694
  return Effect.suspend(() => {
1630
1695
  if (causeSink) {
@@ -1661,6 +1726,7 @@ export const tapSink = /*#__PURE__*/dual(2, (self, sink) => transformPullBracket
1661
1726
  * await Effect.runPromise(program)
1662
1727
  * ```
1663
1728
  *
1729
+ * @stability stable
1664
1730
  * @category sequencing
1665
1731
  * @since 2.0.0
1666
1732
  */
@@ -1685,6 +1751,7 @@ export const flatMap = /*#__PURE__*/dual(args => isStream(args[0]), (self, f, op
1685
1751
  * }))
1686
1752
  * ```
1687
1753
  *
1754
+ * @stability stable
1688
1755
  * @category sequencing
1689
1756
  * @since 4.0.0
1690
1757
  */
@@ -1718,6 +1785,7 @@ export const switchMap = /*#__PURE__*/dual(args => isStream(args[0]), (self, f,
1718
1785
  * await Effect.runPromise(program)
1719
1786
  * ```
1720
1787
  *
1788
+ * @stability stable
1721
1789
  * @category sequencing
1722
1790
  * @since 2.0.0
1723
1791
  */
@@ -1740,6 +1808,7 @@ export const flatten = /*#__PURE__*/dual(args => isStream(args[0]), (self, optio
1740
1808
  * await Effect.runPromise(program)
1741
1809
  * ```
1742
1810
  *
1811
+ * @stability stable
1743
1812
  * @category sequencing
1744
1813
  * @since 4.0.0
1745
1814
  */
@@ -1760,6 +1829,7 @@ export const flattenArray = self => fromChannel(Channel.flattenArray(self.channe
1760
1829
  * await Effect.runPromise(program)
1761
1830
  * ```
1762
1831
  *
1832
+ * @stability stable
1763
1833
  * @category sequencing
1764
1834
  * @since 2.0.0
1765
1835
  */
@@ -1789,6 +1859,7 @@ export const drain = self => fromChannel(Channel.drain(self.channel));
1789
1859
  * events // => ["background task"]
1790
1860
  * ```
1791
1861
  *
1862
+ * @stability stable
1792
1863
  * @category sequencing
1793
1864
  * @since 2.0.0
1794
1865
  */
@@ -1813,6 +1884,7 @@ export const drainFork = /*#__PURE__*/dual(2, (self, that) => mergeEffect(self,
1813
1884
  * await Effect.runPromise(program)
1814
1885
  * ```
1815
1886
  *
1887
+ * @stability stable
1816
1888
  * @category repetition
1817
1889
  * @since 2.0.0
1818
1890
  */
@@ -1837,6 +1909,7 @@ export const repeat = /*#__PURE__*/dual(2, (self, schedule) => fromChannel(Chann
1837
1909
  * await Effect.runPromise(program)
1838
1910
  * ```
1839
1911
  *
1912
+ * @stability stable
1840
1913
  * @category rate limiting
1841
1914
  * @since 2.0.0
1842
1915
  */
@@ -1861,6 +1934,7 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => self.channel.pi
1861
1934
  * await Effect.runPromise(program)
1862
1935
  * ```
1863
1936
  *
1937
+ * @stability stable
1864
1938
  * @category delays & timeouts
1865
1939
  * @since 2.0.0
1866
1940
  */
@@ -1889,6 +1963,7 @@ export const timeout = /*#__PURE__*/dual(2, (self, duration) => timeoutOrElse(se
1889
1963
  *
1890
1964
  * @see {@link timeout} for ending the stream instead of switching to a fallback stream
1891
1965
  *
1966
+ * @stability stable
1892
1967
  * @category delays & timeouts
1893
1968
  * @since 4.0.0
1894
1969
  */
@@ -1950,6 +2025,7 @@ export const timeoutOrElse = /*#__PURE__*/dual(2, (self, options) => {
1950
2025
  * await Effect.runPromise(program)
1951
2026
  * ```
1952
2027
  *
2028
+ * @stability stable
1953
2029
  * @category repetition
1954
2030
  * @since 2.0.0
1955
2031
  */
@@ -1988,6 +2064,7 @@ export const repeatElements = /*#__PURE__*/dual(2, (self, schedule) => fromChann
1988
2064
  * await Effect.runPromise(program)
1989
2065
  * ```
1990
2066
  *
2067
+ * @stability stable
1991
2068
  * @category repetition
1992
2069
  * @since 2.0.0
1993
2070
  */
@@ -2009,6 +2086,7 @@ export const forever = self => fromChannel(Channel.forever(self.channel));
2009
2086
  * await Effect.runPromise(program)
2010
2087
  * ```
2011
2088
  *
2089
+ * @stability stable
2012
2090
  * @category sequencing
2013
2091
  * @since 4.0.0
2014
2092
  */
@@ -2036,6 +2114,7 @@ export const flattenIterable = self => flatMap(self, fromIterable);
2036
2114
  * await Effect.runPromise(program)
2037
2115
  * ```
2038
2116
  *
2117
+ * @stability stable
2039
2118
  * @category sequencing
2040
2119
  * @since 2.0.0
2041
2120
  */
@@ -2057,6 +2136,7 @@ export const flattenTake = self => self.channel.pipe(Channel.flattenArray, Chann
2057
2136
  * }))
2058
2137
  * ```
2059
2138
  *
2139
+ * @stability stable
2060
2140
  * @category sequencing
2061
2141
  * @since 2.0.0
2062
2142
  */
@@ -2097,6 +2177,7 @@ function* concatChannels(self, that) {
2097
2177
  * await Effect.runPromise(program)
2098
2178
  * ```
2099
2179
  *
2180
+ * @stability stable
2100
2181
  * @category sequencing
2101
2182
  * @since 2.0.0
2102
2183
  */
@@ -2125,6 +2206,7 @@ export const prepend = /*#__PURE__*/dual(2, (self, values) => concat(fromIterabl
2125
2206
  * await Effect.runPromise(program)
2126
2207
  * ```
2127
2208
  *
2209
+ * @stability stable
2128
2210
  * @category merging
2129
2211
  * @since 2.0.0
2130
2212
  */
@@ -2161,6 +2243,7 @@ export const merge = /*#__PURE__*/dual(args => isStream(args[0]) && isStream(arg
2161
2243
  * events // => ["side task"]
2162
2244
  * ```
2163
2245
  *
2246
+ * @stability stable
2164
2247
  * @category merging
2165
2248
  * @since 4.0.0
2166
2249
  */
@@ -2201,6 +2284,7 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => self.channel.p
2201
2284
  * await Effect.runPromise(program)
2202
2285
  * ```
2203
2286
  *
2287
+ * @stability stable
2204
2288
  * @category merging
2205
2289
  * @since 4.0.0
2206
2290
  */
@@ -2234,6 +2318,7 @@ export const mergeResult = /*#__PURE__*/dual(2, (self, that) => merge(map(self,
2234
2318
  * await Effect.runPromise(program)
2235
2319
  * ```
2236
2320
  *
2321
+ * @stability stable
2237
2322
  * @category merging
2238
2323
  * @since 2.0.0
2239
2324
  */
@@ -2272,6 +2357,7 @@ export const mergeLeft = /*#__PURE__*/dual(2, (left, right) => mergeEffect(left,
2272
2357
  * await Effect.runPromise(program)
2273
2358
  * ```
2274
2359
  *
2360
+ * @stability stable
2275
2361
  * @category merging
2276
2362
  * @since 2.0.0
2277
2363
  */
@@ -2313,6 +2399,7 @@ export const mergeRight = /*#__PURE__*/dual(2, (left, right) => mergeEffect(righ
2313
2399
  * @see {@link merge} for merging exactly two streams and choosing a halt strategy
2314
2400
  * @see {@link flatten} for flattening a stream that already emits streams
2315
2401
  *
2402
+ * @stability stable
2316
2403
  * @category merging
2317
2404
  * @since 2.0.0
2318
2405
  */
@@ -2340,6 +2427,7 @@ export const mergeAll = /*#__PURE__*/dual(2, (streams, options) => flatten(fromI
2340
2427
  * await Effect.runPromise(program)
2341
2428
  * ```
2342
2429
  *
2430
+ * @stability stable
2343
2431
  * @category zipping
2344
2432
  * @since 2.0.0
2345
2433
  */
@@ -2369,6 +2457,7 @@ export const cross = /*#__PURE__*/dual(2, (left, right) => crossWith(left, right
2369
2457
  * await Effect.runPromise(program)
2370
2458
  * ```
2371
2459
  *
2460
+ * @stability stable
2372
2461
  * @category zipping
2373
2462
  * @since 2.0.0
2374
2463
  */
@@ -2394,6 +2483,7 @@ export const crossWith = /*#__PURE__*/dual(3, (left, right, f) => flatMap(left,
2394
2483
  * await Effect.runPromise(program)
2395
2484
  * ```
2396
2485
  *
2486
+ * @stability stable
2397
2487
  * @category zipping
2398
2488
  * @since 2.0.0
2399
2489
  */
@@ -2436,6 +2526,7 @@ const zipArrays = f => (leftArr, rightArr) => {
2436
2526
  * await Effect.runPromise(program)
2437
2527
  * ```
2438
2528
  *
2529
+ * @stability stable
2439
2530
  * @category zipping
2440
2531
  * @since 4.0.0
2441
2532
  */
@@ -2494,6 +2585,7 @@ export const zipWithArray = /*#__PURE__*/dual(3, (left, right, f) => fromChannel
2494
2585
  * await Effect.runPromise(program)
2495
2586
  * ```
2496
2587
  *
2588
+ * @stability stable
2497
2589
  * @category zipping
2498
2590
  * @since 2.0.0
2499
2591
  */
@@ -2522,6 +2614,7 @@ export const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (a,
2522
2614
  * await Effect.runPromise(program)
2523
2615
  * ```
2524
2616
  *
2617
+ * @stability stable
2525
2618
  * @category zipping
2526
2619
  * @since 2.0.0
2527
2620
  */
@@ -2551,6 +2644,7 @@ export const zipLeft = /*#__PURE__*/dual(2, (left, right) => zipWithArray(left,
2551
2644
  * await Effect.runPromise(program)
2552
2645
  * ```
2553
2646
  *
2647
+ * @stability stable
2554
2648
  * @category zipping
2555
2649
  * @since 2.0.0
2556
2650
  */
@@ -2589,6 +2683,7 @@ export const zipRight = /*#__PURE__*/dual(2, (left, right) => zipWithArray(left,
2589
2683
  * await Effect.runPromise(program)
2590
2684
  * ```
2591
2685
  *
2686
+ * @stability stable
2592
2687
  * @category zipping
2593
2688
  * @since 2.0.0
2594
2689
  */
@@ -2612,6 +2707,7 @@ export const zipFlatten = /*#__PURE__*/dual(2, (self, that) => zipWith(self, tha
2612
2707
  * await Effect.runPromise(program)
2613
2708
  * ```
2614
2709
  *
2710
+ * @stability stable
2615
2711
  * @category zipping
2616
2712
  * @since 2.0.0
2617
2713
  */
@@ -2633,6 +2729,7 @@ export const zipWithIndex = self => map(self, (a, i) => [a, i]);
2633
2729
  * }))
2634
2730
  * ```
2635
2731
  *
2732
+ * @stability stable
2636
2733
  * @category zipping
2637
2734
  * @since 2.0.0
2638
2735
  */
@@ -2672,6 +2769,7 @@ export const zipWithNext = self => mapAccumArray(self, Option.none, (acc, arr) =
2672
2769
  * await Effect.runPromise(program)
2673
2770
  * ```
2674
2771
  *
2772
+ * @stability stable
2675
2773
  * @category zipping
2676
2774
  * @since 2.0.0
2677
2775
  */
@@ -2703,6 +2801,7 @@ export const zipWithPrevious = self => mapAccumArray(self, Option.none, (acc, ar
2703
2801
  * await Effect.runPromise(program)
2704
2802
  * ```
2705
2803
  *
2804
+ * @stability stable
2706
2805
  * @category zipping
2707
2806
  * @since 2.0.0
2708
2807
  */
@@ -2767,6 +2866,7 @@ export const zipWithPreviousAndNext = self => mapAccumArray(self, () => ({
2767
2866
  * await Effect.runPromise(program)
2768
2867
  * ```
2769
2868
  *
2869
+ * @stability stable
2770
2870
  * @category zipping
2771
2871
  * @since 3.3.0
2772
2872
  */
@@ -2774,6 +2874,7 @@ export const zipLatestAll = (...streams) => fromChannel(Channel.suspend(() => {
2774
2874
  const latest = [];
2775
2875
  const emitted = new Set();
2776
2876
  const readyLatch = Latch.makeUnsafe();
2877
+ const emptyLatch = Latch.makeUnsafe();
2777
2878
  return Channel.mergeAll(Channel.fromArray(streams.map((s, i) => s.channel.pipe(Channel.flattenArray, Channel.mapEffect(a => {
2778
2879
  latest[i] = a;
2779
2880
  if (!emitted.has(i)) {
@@ -2784,10 +2885,12 @@ export const zipLatestAll = (...streams) => fromChannel(Channel.suspend(() => {
2784
2885
  return Effect.as(readyLatch.open, Arr.of(latest.slice()));
2785
2886
  }
2786
2887
  return Effect.succeed(Arr.of(latest.slice()));
2787
- }), Channel.filter(isNotUndefined)))), {
2888
+ }), Channel.filter(isNotUndefined),
2889
+ // An input ending without a value makes a complete tuple impossible.
2890
+ Channel.mapDoneEffect(() => emitted.has(i) ? Effect.void : emptyLatch.open)))), {
2788
2891
  concurrency: "unbounded",
2789
2892
  bufferSize: 0
2790
- });
2893
+ }).pipe(Channel.interruptWhen(emptyLatch.await));
2791
2894
  }));
2792
2895
  /**
2793
2896
  * Combines two streams by emitting each new element with the latest value from the other stream.
@@ -2819,6 +2922,7 @@ export const zipLatestAll = (...streams) => fromChannel(Channel.suspend(() => {
2819
2922
  * await Effect.runPromise(program)
2820
2923
  * ```
2821
2924
  *
2925
+ * @stability stable
2822
2926
  * @category zipping
2823
2927
  * @since 2.0.0
2824
2928
  */
@@ -2857,6 +2961,7 @@ export const zipLatest = /*#__PURE__*/dual(2, (left, right) => zipLatestAll(left
2857
2961
  * }))
2858
2962
  * ```
2859
2963
  *
2964
+ * @stability stable
2860
2965
  * @category zipping
2861
2966
  * @since 2.0.0
2862
2967
  */
@@ -2887,6 +2992,7 @@ export const zipLatestWith = /*#__PURE__*/dual(3, (left, right, f) => map(zipLat
2887
2992
  * await Effect.runPromise(program)
2888
2993
  * ```
2889
2994
  *
2995
+ * @stability stable
2890
2996
  * @category racing
2891
2997
  * @since 3.5.0
2892
2998
  */
@@ -2935,6 +3041,7 @@ export const raceAll = (...streams) => fromChannel(Channel.fromTransform((_, sco
2935
3041
  * await Effect.runPromise(program)
2936
3042
  * ```
2937
3043
  *
3044
+ * @stability stable
2938
3045
  * @category racing
2939
3046
  * @since 3.7.0
2940
3047
  */
@@ -2958,6 +3065,7 @@ export const race = /*#__PURE__*/dual(2, (left, right) => raceAll(left, right));
2958
3065
  * await Effect.runPromise(program)
2959
3066
  * ```
2960
3067
  *
3068
+ * @stability stable
2961
3069
  * @category filtering
2962
3070
  * @since 2.0.0
2963
3071
  */
@@ -2978,6 +3086,7 @@ export const filter = /*#__PURE__*/dual(2, (self, predicate) => fromChannel(Chan
2978
3086
  * @see {@link filterMapEffect} for an effectful `Filter`
2979
3087
  * @see {@link partition} for consuming both filter success and failure values
2980
3088
  *
3089
+ * @stability stable
2981
3090
  * @category filtering
2982
3091
  * @since 2.0.0
2983
3092
  */
@@ -3000,6 +3109,7 @@ export const filterMap = /*#__PURE__*/dual(2, (self, filter) => fromChannel(Chan
3000
3109
  * await Effect.runPromise(program)
3001
3110
  * ```
3002
3111
  *
3112
+ * @stability stable
3003
3113
  * @category filtering
3004
3114
  * @since 2.0.0
3005
3115
  */
@@ -3021,6 +3131,7 @@ export const filterEffect = /*#__PURE__*/dual(2, (self, predicate) => fromChanne
3021
3131
  * @see {@link filterEffect} for effectfully keeping original elements
3022
3132
  * @see {@link mapEffect} for effectfully transforming every element
3023
3133
  *
3134
+ * @stability stable
3024
3135
  * @category filtering
3025
3136
  * @since 2.0.0
3026
3137
  */
@@ -3055,6 +3166,7 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromChanne
3055
3166
  * await Effect.runPromise(Effect.scoped(program))
3056
3167
  * ```
3057
3168
  *
3169
+ * @stability stable
3058
3170
  * @category filtering
3059
3171
  * @since 4.0.0
3060
3172
  */
@@ -3103,6 +3215,7 @@ export const partitionQueue = /*#__PURE__*/dual(args => isStream(args[0]), /*#__
3103
3215
  }), Effect.forkIn(scope));
3104
3216
  return [passes, fails];
3105
3217
  }));
3218
+ const fromQueueShutdownOnEnd = queue => fromChannel(Channel.fromTransform((_, scope) => Effect.as(Scope.addFinalizer(scope, Queue.shutdown(queue)), Queue.takeAll(queue))));
3106
3219
  /**
3107
3220
  * Splits a stream with an effectful `Filter`, returning scoped streams for
3108
3221
  * filter successes and failures.
@@ -3122,10 +3235,11 @@ export const partitionQueue = /*#__PURE__*/dual(args => isStream(args[0]), /*#__
3122
3235
  * @see {@link partitionQueue} for the lower-level queue result
3123
3236
  * @see {@link filterMapEffect} for effectful filtering that discards failed filter results
3124
3237
  *
3238
+ * @stability stable
3125
3239
  * @category filtering
3126
3240
  * @since 4.0.0
3127
3241
  */
3128
- export const partitionEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self, filter, options) => Effect.map(partitionQueue(mapEffect(self, a => filter(a), options), result => result, options), ([passes, fails]) => [fromQueue(passes), fromQueue(fails)]));
3242
+ export const partitionEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self, filter, options) => Effect.map(partitionQueue(mapEffect(self, a => filter(a), options), result => result, options), ([passes, fails]) => [fromQueueShutdownOnEnd(passes), fromQueueShutdownOnEnd(fails)]));
3129
3243
  /**
3130
3244
  * Splits a stream into scoped passing and failing substreams using a
3131
3245
  * `Filter`.
@@ -3156,12 +3270,13 @@ export const partitionEffect = /*#__PURE__*/dual(args => isStream(args[0]), (sel
3156
3270
  * await Effect.runPromise(Effect.scoped(program))
3157
3271
  * ```
3158
3272
  *
3273
+ * @stability stable
3159
3274
  * @category filtering
3160
3275
  * @since 2.0.0
3161
3276
  */
3162
3277
  export const partition = /*#__PURE__*/dual(args => isStream(args[0]), (self, filter, options) => Effect.map(partitionQueue(self, filter, {
3163
3278
  capacity: options?.capacity ?? 16
3164
- }), ([passes, fails]) => [fromQueue(passes), fromQueue(fails)]));
3279
+ }), ([passes, fails]) => [fromQueueShutdownOnEnd(passes), fromQueueShutdownOnEnd(fails)]));
3165
3280
  /**
3166
3281
  * Returns the specified stream if the given condition is satisfied, otherwise
3167
3282
  * returns an empty stream.
@@ -3181,6 +3296,7 @@ export const partition = /*#__PURE__*/dual(args => isStream(args[0]), (self, fil
3181
3296
  * await Effect.runPromise(program)
3182
3297
  * ```
3183
3298
  *
3299
+ * @stability stable
3184
3300
  * @category filtering
3185
3301
  * @since 2.0.0
3186
3302
  */
@@ -3212,6 +3328,7 @@ export const when = /*#__PURE__*/dual(2, (self, test) => test.pipe(Effect.map(pa
3212
3328
  * await Effect.runPromise(program)
3213
3329
  * ```
3214
3330
  *
3331
+ * @stability stable
3215
3332
  * @category destructors
3216
3333
  * @since 2.0.0
3217
3334
  */
@@ -3222,11 +3339,12 @@ export const peel = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function
3222
3339
  cause = cause_;
3223
3340
  return Effect.failCause(cause_);
3224
3341
  });
3225
- let stream = fromPull(Effect.succeed(pull));
3226
- const leftover = yield* run(stream, sink);
3227
- if (cause) return [leftover, empty];
3228
- stream = fromPull(Effect.succeed(originalPull));
3229
- return [leftover, stream];
3342
+ const [result, leftover] = yield* Effect.scopedWith(scope => sink.transform(pull, scope));
3343
+ let stream = cause ? empty : fromPull(Effect.succeed(originalPull));
3344
+ if (leftover) {
3345
+ stream = concat(fromArray(leftover), stream);
3346
+ }
3347
+ return [result, stream];
3230
3348
  }));
3231
3349
  /**
3232
3350
  * Buffers up to `capacity` elements so a faster producer can progress
@@ -3255,6 +3373,7 @@ export const peel = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function
3255
3373
  * await Effect.runPromise(program)
3256
3374
  * ```
3257
3375
  *
3376
+ * @stability stable
3258
3377
  * @category buffering
3259
3378
  * @since 2.0.0
3260
3379
  */
@@ -3286,6 +3405,7 @@ export const buffer = /*#__PURE__*/dual(2, (self, options) => fromChannel(Channe
3286
3405
  * await Effect.runPromise(program)
3287
3406
  * ```
3288
3407
  *
3408
+ * @stability stable
3289
3409
  * @category buffering
3290
3410
  * @since 4.0.0
3291
3411
  */
@@ -3317,6 +3437,7 @@ export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromChannel(C
3317
3437
  * await Effect.runPromise(program)
3318
3438
  * ```
3319
3439
  *
3440
+ * @stability stable
3320
3441
  * @category error handling
3321
3442
  * @since 2.0.0
3322
3443
  */
@@ -3341,6 +3462,7 @@ export const catchCause = /*#__PURE__*/dual(2, (self, f) => self.channel.pipe(Ch
3341
3462
  * result // => ["recovered: boom"]
3342
3463
  * ```
3343
3464
  *
3465
+ * @stability stable
3344
3466
  * @category error handling
3345
3467
  * @since 4.0.0
3346
3468
  */
@@ -3370,6 +3492,7 @@ export const catchDefect = /*#__PURE__*/dual(2, (self, f) => self.channel.pipe(C
3370
3492
  * observations // => [false]
3371
3493
  * ```
3372
3494
  *
3495
+ * @stability stable
3373
3496
  * @category error handling
3374
3497
  * @since 2.0.0
3375
3498
  */
@@ -3397,6 +3520,7 @@ export {
3397
3520
  * await Effect.runPromise(program)
3398
3521
  * ```
3399
3522
  *
3523
+ * @stability stable
3400
3524
  * @category error handling
3401
3525
  * @since 4.0.0
3402
3526
  */
@@ -3425,6 +3549,7 @@ catch_ as catch };
3425
3549
  * errors // => ["boom"]
3426
3550
  * ```
3427
3551
  *
3552
+ * @stability stable
3428
3553
  * @category error handling
3429
3554
  * @since 2.0.0
3430
3555
  */
@@ -3464,6 +3589,7 @@ export const tapError = /*#__PURE__*/dual(2, (self, f) => self.channel.pipe(Chan
3464
3589
  * @see {@link tapError} for peeking at every typed error
3465
3590
  * @see {@link catchTag} for recovering from a tagged error
3466
3591
  *
3592
+ * @stability stable
3467
3593
  * @category error handling
3468
3594
  * @since 4.0.0
3469
3595
  */
@@ -3499,6 +3625,7 @@ export const tapErrorTag = /*#__PURE__*/dual(3, (self, k, f) => {
3499
3625
  * @see {@link tapCause} for peeking at the full failure cause
3500
3626
  * @see {@link catchDefect} for recovering from defects
3501
3627
  *
3628
+ * @stability stable
3502
3629
  * @category error handling
3503
3630
  * @since 4.0.0
3504
3631
  */
@@ -3536,6 +3663,7 @@ export const tapDefect = /*#__PURE__*/dual(2, (self, f) => tapCause(self, cause
3536
3663
  * await Effect.runPromise(program)
3537
3664
  * ```
3538
3665
  *
3666
+ * @stability stable
3539
3667
  * @category error handling
3540
3668
  * @since 4.0.0
3541
3669
  */
@@ -3559,6 +3687,7 @@ export const catchIf = /*#__PURE__*/dual(args => isStream(args[0]), (self, predi
3559
3687
  * @see {@link catchTags} for `_tag` based recovery from multiple tagged errors
3560
3688
  * @see {@link catchCauseFilter} for filtering full causes
3561
3689
  *
3690
+ * @stability stable
3562
3691
  * @category error handling
3563
3692
  * @since 4.0.0
3564
3693
  */
@@ -3593,6 +3722,7 @@ export const catchFilter = /*#__PURE__*/dual(args => isStream(args[0]), (self, f
3593
3722
  * await Effect.runPromise(program)
3594
3723
  * ```
3595
3724
  *
3725
+ * @stability stable
3596
3726
  * @category error handling
3597
3727
  * @since 2.0.0
3598
3728
  */
@@ -3634,6 +3764,7 @@ export const catchTag = /*#__PURE__*/dual(args => isStream(args[0]), (self, k, f
3634
3764
  * await Effect.runPromise(program)
3635
3765
  * ```
3636
3766
  *
3767
+ * @stability stable
3637
3768
  * @category error handling
3638
3769
  * @since 2.0.0
3639
3770
  */
@@ -3690,6 +3821,7 @@ export const catchTags = /*#__PURE__*/dual(args => isStream(args[0]), (self, cas
3690
3821
  * await Effect.runPromise(program)
3691
3822
  * ```
3692
3823
  *
3824
+ * @stability stable
3693
3825
  * @category error handling
3694
3826
  * @since 4.0.0
3695
3827
  */
@@ -3732,6 +3864,7 @@ export const catchReason = /*#__PURE__*/dual(args => isStream(args[0]), (self, e
3732
3864
  * await Effect.runPromise(program)
3733
3865
  * ```
3734
3866
  *
3867
+ * @stability stable
3735
3868
  * @category error handling
3736
3869
  * @since 4.0.0
3737
3870
  */
@@ -3784,6 +3917,7 @@ export const catchReasons = /*#__PURE__*/dual(args => isStream(args[0]), (self,
3784
3917
  * @see {@link catchReason} for recovering from a specific reason
3785
3918
  * @see {@link catchReasons} for handling several reasons at once
3786
3919
  *
3920
+ * @stability stable
3787
3921
  * @category error handling
3788
3922
  * @since 4.0.0
3789
3923
  */
@@ -3813,6 +3947,7 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
3813
3947
  * await Effect.runPromise(program)
3814
3948
  * ```
3815
3949
  *
3950
+ * @stability stable
3816
3951
  * @category error handling
3817
3952
  * @since 2.0.0
3818
3953
  */
@@ -3841,6 +3976,7 @@ export const mapError = /*#__PURE__*/dual(2, (self, f) => fromChannel(Channel.ma
3841
3976
  * await Effect.runPromise(program)
3842
3977
  * ```
3843
3978
  *
3979
+ * @stability stable
3844
3980
  * @category error handling
3845
3981
  * @since 4.0.0
3846
3982
  */
@@ -3865,6 +4001,7 @@ export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => fromCha
3865
4001
  * @see {@link catchFilter} for filtering typed error values instead of full causes
3866
4002
  * @see {@link catchCause} for recovering from every cause without filtering
3867
4003
  *
4004
+ * @stability stable
3868
4005
  * @category error handling
3869
4006
  * @since 4.0.0
3870
4007
  */
@@ -3888,6 +4025,7 @@ export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => fromCh
3888
4025
  * await Effect.runPromise(program)
3889
4026
  * ```
3890
4027
  *
4028
+ * @stability stable
3891
4029
  * @category error handling
3892
4030
  * @since 2.0.0
3893
4031
  */
@@ -3912,6 +4050,7 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, orElse) => fromChannel(
3912
4050
  * await Effect.runPromise(program)
3913
4051
  * ```
3914
4052
  *
4053
+ * @stability stable
3915
4054
  * @category error handling
3916
4055
  * @since 2.0.0
3917
4056
  */
@@ -3936,6 +4075,7 @@ export const orElseSucceed = /*#__PURE__*/dual(2, (self, f) => catch_(self, e =>
3936
4075
  * await Effect.runPromise(program)
3937
4076
  * ```
3938
4077
  *
4078
+ * @stability stable
3939
4079
  * @category error handling
3940
4080
  * @since 2.0.0
3941
4081
  */
@@ -3987,6 +4127,7 @@ export const orDie = self => fromChannel(Channel.orDie(self.channel));
3987
4127
  *
3988
4128
  * @see {@link ignoreCause} for a variant that also ignores defects, not just typed failures
3989
4129
  *
4130
+ * @stability stable
3990
4131
  * @category error handling
3991
4132
  * @since 4.0.0
3992
4133
  */
@@ -4017,6 +4158,7 @@ export const ignore = /*#__PURE__*/dual(args => isStream(args[0]), (self, option
4017
4158
  *
4018
4159
  * @see {@link ignore} to ignore only typed failures without suppressing defects
4019
4160
  *
4161
+ * @stability stable
4020
4162
  * @category error handling
4021
4163
  * @since 4.0.0
4022
4164
  */
@@ -4051,6 +4193,7 @@ export const ignoreCause = /*#__PURE__*/dual(args => isStream(args[0]), (self, o
4051
4193
  * await Effect.runPromise(program)
4052
4194
  * ```
4053
4195
  *
4196
+ * @stability stable
4054
4197
  * @category error handling
4055
4198
  * @since 2.0.0
4056
4199
  */
@@ -4109,6 +4252,7 @@ const retryWithoutReset = (self, schedule) => unwrap(Effect.map(Schedule.toStepW
4109
4252
  * await Effect.runPromise(program)
4110
4253
  * ```
4111
4254
  *
4255
+ * @stability unstable
4112
4256
  * @category error handling
4113
4257
  * @since 3.16.0
4114
4258
  */
@@ -4197,6 +4341,7 @@ export const withExecutionPlan = /*#__PURE__*/dual(args => isStream(args[0]), (s
4197
4341
  * await Effect.runPromise(program)
4198
4342
  * ```
4199
4343
  *
4344
+ * @stability stable
4200
4345
  * @category filtering
4201
4346
  * @since 2.0.0
4202
4347
  */
@@ -4225,6 +4370,7 @@ export const take = /*#__PURE__*/dual(2, (self, n) => {
4225
4370
  * await Effect.runPromise(program) // => [[1, 2]]
4226
4371
  * ```
4227
4372
  *
4373
+ * @stability unstable
4228
4374
  * @category filtering
4229
4375
  * @since 4.0.0
4230
4376
  */
@@ -4266,6 +4412,7 @@ export const limitBytes = /*#__PURE__*/dual(3, (self, bytes, onLimitReached) =>
4266
4412
  * await Effect.runPromise(program)
4267
4413
  * ```
4268
4414
  *
4415
+ * @stability stable
4269
4416
  * @category filtering
4270
4417
  * @since 2.0.0
4271
4418
  */
@@ -4314,6 +4461,7 @@ export const takeRight = /*#__PURE__*/dual(2, (self, n) => {
4314
4461
  * await Effect.runPromise(program)
4315
4462
  * ```
4316
4463
  *
4464
+ * @stability stable
4317
4465
  * @category filtering
4318
4466
  * @since 2.0.0
4319
4467
  */
@@ -4355,6 +4503,7 @@ export const takeUntil = /*#__PURE__*/dual(args => isStream(args[0]), (self, pre
4355
4503
  * await Effect.runPromise(program)
4356
4504
  * ```
4357
4505
  *
4506
+ * @stability stable
4358
4507
  * @category filtering
4359
4508
  * @since 2.0.0
4360
4509
  */
@@ -4394,6 +4543,7 @@ export const takeUntilEffect = /*#__PURE__*/dual(args => isStream(args[0]), (sel
4394
4543
  * await Effect.runPromise(program)
4395
4544
  * ```
4396
4545
  *
4546
+ * @stability stable
4397
4547
  * @category filtering
4398
4548
  * @since 2.0.0
4399
4549
  */
@@ -4430,6 +4580,7 @@ export const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => transformPull
4430
4580
  * @see {@link filterMap} for filtering across the whole stream instead of only the leading prefix
4431
4581
  * @see {@link dropWhileFilter} for dropping the accepted prefix and keeping the remaining original elements
4432
4582
  *
4583
+ * @stability stable
4433
4584
  * @category filtering
4434
4585
  * @since 4.0.0
4435
4586
  */
@@ -4473,6 +4624,7 @@ export const takeWhileFilter = /*#__PURE__*/dual(2, (self, filter) => transformP
4473
4624
  * await Effect.runPromise(program)
4474
4625
  * ```
4475
4626
  *
4627
+ * @stability stable
4476
4628
  * @category filtering
4477
4629
  * @since 4.0.0
4478
4630
  */
@@ -4503,6 +4655,7 @@ export const takeWhileEffect = /*#__PURE__*/dual(2, (self, predicate) => takeUnt
4503
4655
  * await Effect.runPromise(program)
4504
4656
  * ```
4505
4657
  *
4658
+ * @stability stable
4506
4659
  * @category filtering
4507
4660
  * @since 2.0.0
4508
4661
  */
@@ -4538,6 +4691,7 @@ export const drop = /*#__PURE__*/dual(2, (self, n) => {
4538
4691
  * }))
4539
4692
  * ```
4540
4693
  *
4694
+ * @stability stable
4541
4695
  * @category filtering
4542
4696
  * @since 2.0.0
4543
4697
  */
@@ -4567,6 +4721,7 @@ export const dropUntil = /*#__PURE__*/dual(2, (self, predicate) => drop(dropWhil
4567
4721
  * await Effect.runPromise(program)
4568
4722
  * ```
4569
4723
  *
4724
+ * @stability stable
4570
4725
  * @category filtering
4571
4726
  * @since 2.0.0
4572
4727
  */
@@ -4590,6 +4745,7 @@ export const dropUntilEffect = /*#__PURE__*/dual(2, (self, predicate) => drop(dr
4590
4745
  * await Effect.runPromise(program)
4591
4746
  * ```
4592
4747
  *
4748
+ * @stability stable
4593
4749
  * @category filtering
4594
4750
  * @since 2.0.0
4595
4751
  */
@@ -4622,6 +4778,7 @@ export const dropWhile = /*#__PURE__*/dual(2, (self, predicate) => transformPull
4622
4778
  * @see {@link takeWhileFilter} for keeping the accepted prefix as filter success values
4623
4779
  * @see {@link dropWhileEffect} for effectful predicate prefix dropping
4624
4780
  *
4781
+ * @stability stable
4625
4782
  * @category filtering
4626
4783
  * @since 4.0.0
4627
4784
  */
@@ -4654,6 +4811,7 @@ export const dropWhileFilter = /*#__PURE__*/dual(2, (self, filter) => transformP
4654
4811
  * await Effect.runPromise(program)
4655
4812
  * ```
4656
4813
  *
4814
+ * @stability stable
4657
4815
  * @category filtering
4658
4816
  * @since 2.0.0
4659
4817
  */
@@ -4698,6 +4856,7 @@ export const dropWhileEffect = /*#__PURE__*/dual(2, (self, predicate) => transfo
4698
4856
  * await Effect.runPromise(program)
4699
4857
  * ```
4700
4858
  *
4859
+ * @stability stable
4701
4860
  * @category filtering
4702
4861
  * @since 2.0.0
4703
4862
  */
@@ -4735,6 +4894,7 @@ export const dropRight = /*#__PURE__*/dual(2, (self, n) => {
4735
4894
  * await Effect.runPromise(program)
4736
4895
  * ```
4737
4896
  *
4897
+ * @stability stable
4738
4898
  * @category grouping
4739
4899
  * @since 2.0.0
4740
4900
  */
@@ -4764,6 +4924,7 @@ export const chunks = self => self.channel.pipe(Channel.map(Arr.of), fromChannel
4764
4924
  * await Effect.runPromise(program)
4765
4925
  * ```
4766
4926
  *
4927
+ * @stability stable
4767
4928
  * @category grouping
4768
4929
  * @since 2.0.0
4769
4930
  */
@@ -4832,6 +4993,7 @@ export const rechunk = /*#__PURE__*/dual(2, (self, target) => {
4832
4993
  * }))
4833
4994
  * ```
4834
4995
  *
4996
+ * @stability stable
4835
4997
  * @category grouping
4836
4998
  * @since 2.0.0
4837
4999
  */
@@ -4860,6 +5022,7 @@ export const sliding = /*#__PURE__*/dual(2, (self, chunkSize) => slidingSize(sel
4860
5022
  * await Effect.runPromise(program)
4861
5023
  * ```
4862
5024
  *
5025
+ * @stability stable
4863
5026
  * @category grouping
4864
5027
  * @since 2.0.0
4865
5028
  */
@@ -4895,8 +5058,8 @@ export const slidingSize = /*#__PURE__*/dual(3, (self, chunkSize, stepSize) => {
4895
5058
  return Effect.succeed(chunks);
4896
5059
  },
4897
5060
  onFailure(cause_) {
4898
- if (emitted) MutableList.takeNVoid(list, windowSize - step);
4899
- if (list.length === 0) return Effect.failCause(cause_);
5061
+ // The buffer has already advanced by step after a full window.
5062
+ if (list.length === 0 || emitted && list.length <= windowSize - step) return Effect.failCause(cause_);
4900
5063
  cause = cause_;
4901
5064
  return Effect.succeed(Arr.of(MutableList.takeAll(list)));
4902
5065
  }
@@ -4927,6 +5090,7 @@ export const slidingSize = /*#__PURE__*/dual(3, (self, chunkSize, stepSize) => {
4927
5090
  * await Effect.runPromise(program)
4928
5091
  * ```
4929
5092
  *
5093
+ * @stability stable
4930
5094
  * @category grouping
4931
5095
  * @since 2.0.0
4932
5096
  */
@@ -4980,6 +5144,7 @@ export const split = /*#__PURE__*/dual(2, (self, predicate) => mapAccumArray(sel
4980
5144
  * await Effect.runPromise(program)
4981
5145
  * ```
4982
5146
  *
5147
+ * @stability stable
4983
5148
  * @category merging
4984
5149
  * @since 2.0.0
4985
5150
  */
@@ -5023,6 +5188,7 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => Channel.combin
5023
5188
  * await Effect.runPromise(program)
5024
5189
  * ```
5025
5190
  *
5191
+ * @stability stable
5026
5192
  * @category merging
5027
5193
  * @since 4.0.0
5028
5194
  */
@@ -5050,6 +5216,7 @@ export const combineArray = /*#__PURE__*/dual(4, (self, that, s, f) => fromChann
5050
5216
  * await Effect.runPromise(program)
5051
5217
  * ```
5052
5218
  *
5219
+ * @stability stable
5053
5220
  * @category mapping
5054
5221
  * @since 2.0.0
5055
5222
  */
@@ -5094,6 +5261,7 @@ export const mapAccum = /*#__PURE__*/dual(args => isStream(args[0]), (self, init
5094
5261
  * await Effect.runPromise(program)
5095
5262
  * ```
5096
5263
  *
5264
+ * @stability stable
5097
5265
  * @category mapping
5098
5266
  * @since 4.0.0
5099
5267
  */
@@ -5142,6 +5310,7 @@ const emptyArr = /*#__PURE__*/Arr.empty();
5142
5310
  * await Effect.runPromise(program)
5143
5311
  * ```
5144
5312
  *
5313
+ * @stability stable
5145
5314
  * @category mapping
5146
5315
  * @since 2.0.0
5147
5316
  */
@@ -5187,6 +5356,7 @@ export const mapAccumEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self
5187
5356
  * await Effect.runPromise(program)
5188
5357
  * ```
5189
5358
  *
5359
+ * @stability stable
5190
5360
  * @category mapping
5191
5361
  * @since 4.0.0
5192
5362
  */
@@ -5215,23 +5385,20 @@ export const mapAccumArrayEffect = /*#__PURE__*/dual(args => isStream(args[0]),
5215
5385
  * await Effect.runPromise(program)
5216
5386
  * ```
5217
5387
  *
5388
+ * @stability stable
5218
5389
  * @category accumulation
5219
5390
  * @since 2.0.0
5220
5391
  */
5221
5392
  export const scan = /*#__PURE__*/dual(3, (self, initial, f) => suspend(() => {
5222
- let isFirst = true;
5223
- return fromChannel(Channel.mapAccum(self.channel, initial, (state, arr) => {
5393
+ const seed = initial();
5394
+ return concat(succeed(seed), fromChannel(Channel.mapAccum(self.channel, () => seed, (state, arr) => {
5224
5395
  const states = Arr.empty();
5225
- if (isFirst) {
5226
- isFirst = false;
5227
- states.push(state);
5228
- }
5229
5396
  for (let index = 0; index < arr.length; index++) {
5230
5397
  state = f(state, arr[index]);
5231
5398
  states.push(state);
5232
5399
  }
5233
5400
  return [state, Arr.of(states)];
5234
- }));
5401
+ })));
5235
5402
  }));
5236
5403
  /**
5237
5404
  * Accumulates state effectfully and emits the initial state plus each accumulated state.
@@ -5251,6 +5418,7 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => suspend(() => {
5251
5418
  * await Effect.runPromise(program)
5252
5419
  * ```
5253
5420
  *
5421
+ * @stability stable
5254
5422
  * @category accumulation
5255
5423
  * @since 2.0.0
5256
5424
  */
@@ -5272,6 +5440,7 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => suspend(()
5272
5440
  * await Effect.runPromise(program)
5273
5441
  * ```
5274
5442
  *
5443
+ * @stability stable
5275
5444
  * @category rate limiting
5276
5445
  * @since 2.0.0
5277
5446
  */
@@ -5369,6 +5538,7 @@ export const debounce = /*#__PURE__*/dual(2, (self, duration) => transformPull(s
5369
5538
  * }))
5370
5539
  * ```
5371
5540
  *
5541
+ * @stability stable
5372
5542
  * @category rate limiting
5373
5543
  * @since 2.0.0
5374
5544
  */
@@ -5405,31 +5575,30 @@ const throttleShapeEffect = (self, cost, units, duration, burst) => transformPul
5405
5575
  const durationMs = Duration.toMillis(Duration.fromInputUnsafe(duration));
5406
5576
  const max = units + burst < 0 ? Number.POSITIVE_INFINITY : units + burst;
5407
5577
  let tokens = units;
5408
- let timestampMs = clock.currentTimeMillisUnsafe();
5578
+ let timestampNanos = clock.monotonicTimeNanosUnsafe();
5409
5579
  return Effect.succeed(Effect.flatMap(pull, arr => Effect.flatMap(cost(arr), weight => {
5410
- const currentMs = clock.currentTimeMillisUnsafe();
5411
- const elapsed = currentMs - timestampMs;
5580
+ const currentNanos = clock.monotonicTimeNanosUnsafe();
5581
+ const elapsed = Number(currentNanos - timestampNanos) / 1_000_000;
5412
5582
  const cycles = elapsed / durationMs;
5413
5583
  const sum = tokens + cycles * units;
5414
- const available = sum < 0 ? max : Math.min(sum, max);
5584
+ const available = Math.min(sum, max);
5415
5585
  const remaining = available - weight;
5416
5586
  if (remaining >= 0) {
5417
5587
  tokens = remaining;
5418
- timestampMs = currentMs;
5588
+ timestampNanos = currentNanos;
5419
5589
  return Effect.succeed(arr);
5420
5590
  }
5421
- // Calculate delay needed
5422
5591
  const waitCycles = -remaining / units;
5423
5592
  const delayMs = Math.max(0, waitCycles * durationMs);
5424
5593
  if (delayMs > 0) {
5425
5594
  return Effect.flatMap(Effect.sleep(delayMs), () => {
5426
5595
  tokens = remaining;
5427
- timestampMs = currentMs;
5596
+ timestampNanos = currentNanos;
5428
5597
  return Effect.succeed(arr);
5429
5598
  });
5430
5599
  }
5431
5600
  tokens = remaining;
5432
- timestampMs = currentMs;
5601
+ timestampNanos = currentNanos;
5433
5602
  return Effect.succeed(arr);
5434
5603
  })));
5435
5604
  }));
@@ -5473,6 +5642,7 @@ const throttleShapeEffect = (self, cost, units, duration, burst) => transformPul
5473
5642
  * await Effect.runPromise(program)
5474
5643
  * ```
5475
5644
  *
5645
+ * @stability stable
5476
5646
  * @category rate limiting
5477
5647
  * @since 2.0.0
5478
5648
  */
@@ -5505,6 +5675,7 @@ export const throttle = /*#__PURE__*/dual(2, (self, options) => throttleEffect(s
5505
5675
  * await Effect.runPromise(program)
5506
5676
  * ```
5507
5677
  *
5678
+ * @stability stable
5508
5679
  * @category grouping
5509
5680
  * @since 2.0.0
5510
5681
  */
@@ -5515,8 +5686,9 @@ export const grouped = /*#__PURE__*/dual(2, (self, n) => chunks(rechunk(self, n)
5515
5686
  *
5516
5687
  * **Details**
5517
5688
  *
5518
- * Finite fractional chunk sizes are rounded down. `NaN` and non-positive sizes
5519
- * are treated as `1`.
5689
+ * The duration starts when the first element of a group arrives, so an idle
5690
+ * stream does not wake up. Finite fractional chunk sizes are rounded down.
5691
+ * `NaN` and non-positive sizes are treated as `1`.
5520
5692
  *
5521
5693
  * **Example** (Grouping elements by size or time)
5522
5694
  *
@@ -5534,6 +5706,7 @@ export const grouped = /*#__PURE__*/dual(2, (self, n) => chunks(rechunk(self, n)
5534
5706
  * await Effect.runPromise(program)
5535
5707
  * ```
5536
5708
  *
5709
+ * @stability stable
5537
5710
  * @category grouping
5538
5711
  * @since 2.0.0
5539
5712
  */
@@ -5566,6 +5739,7 @@ export const groupedWithin = /*#__PURE__*/dual(3, (self, chunkSize, duration) =>
5566
5739
  * await Effect.runPromise(program)
5567
5740
  * ```
5568
5741
  *
5742
+ * @stability stable
5569
5743
  * @category grouping
5570
5744
  * @since 2.0.0
5571
5745
  */
@@ -5604,6 +5778,7 @@ export const groupBy = /*#__PURE__*/dual(args => isStream(args[0]), (self, f, op
5604
5778
  * await Effect.runPromise(program)
5605
5779
  * ```
5606
5780
  *
5781
+ * @stability stable
5607
5782
  * @category grouping
5608
5783
  * @since 2.0.0
5609
5784
  */
@@ -5637,7 +5812,7 @@ const groupByImpl = (self, f, options) => transformPullBracket(self, Effect.fnUn
5637
5812
  capacity: options?.bufferSize ?? 4096
5638
5813
  }).pipe(Effect.tap(queue => {
5639
5814
  MutableHashMap.set(queueMap, key, queue);
5640
- return Queue.offer(out, [key, fromQueue(queue)]);
5815
+ return Queue.offer(out, [key, fromQueueShutdownOnEnd(queue)]);
5641
5816
  })), queue => {
5642
5817
  MutableHashMap.remove(queueMap, key);
5643
5818
  return Queue.end(queue);
@@ -5669,6 +5844,7 @@ const groupByImpl = (self, f, options) => transformPullBracket(self, Effect.fnUn
5669
5844
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
5670
5845
  * @see {@link groupBy} for custom grouped stream construction
5671
5846
  *
5847
+ * @stability stable
5672
5848
  * @category grouping
5673
5849
  * @since 2.0.0
5674
5850
  */
@@ -5726,6 +5902,7 @@ export const groupAdjacentBy = /*#__PURE__*/dual(2, (self, f) => transformPull(s
5726
5902
  * await Effect.runPromise(program)
5727
5903
  * ```
5728
5904
  *
5905
+ * @stability stable
5729
5906
  * @category aggregation
5730
5907
  * @since 2.0.0
5731
5908
  */
@@ -5774,6 +5951,7 @@ export const transduce = /*#__PURE__*/dual(2, (self, sink) => transformPull(self
5774
5951
  * }))
5775
5952
  * ```
5776
5953
  *
5954
+ * @stability stable
5777
5955
  * @category aggregation
5778
5956
  * @since 2.0.0
5779
5957
  */
@@ -5784,6 +5962,18 @@ export const aggregate = /*#__PURE__*/dual(2, (self, sink) => aggregateWithin(se
5784
5962
  * **Details**
5785
5963
  *
5786
5964
  * The schedule can flush the current aggregation even if the sink has not finished.
5965
+ * It is stepped at most once per aggregation, when the aggregation receives its
5966
+ * first element, with the previous aggregation's output as input. An aggregation
5967
+ * the sink completes immediately, such as one built from leftovers, may finish
5968
+ * without stepping the schedule.
5969
+ *
5970
+ * Time between aggregations is hidden from the schedule, so an idle stream does
5971
+ * not run it. Time-based schedules such as `Schedule.fixed` and
5972
+ * `Schedule.upTo({ duration })` only count time spent aggregating; use
5973
+ * `Schedule.spaced` for a flush timer.
5974
+ *
5975
+ * When the schedule ends, the stream emits the current aggregation and any sink
5976
+ * leftovers, then ends without pulling more from upstream.
5787
5977
  *
5788
5978
  * **Example** (Aggregating with a sink and schedule)
5789
5979
  *
@@ -5803,6 +5993,7 @@ export const aggregate = /*#__PURE__*/dual(2, (self, sink) => aggregateWithin(se
5803
5993
  * }))
5804
5994
  * ```
5805
5995
  *
5996
+ * @stability stable
5806
5997
  * @category aggregation
5807
5998
  * @since 2.0.0
5808
5999
  */
@@ -5813,55 +6004,58 @@ export const aggregateWithin = /*#__PURE__*/dual(3, (self, sink, schedule) => fr
5813
6004
  const buffer = yield* Queue.make({
5814
6005
  capacity: 0
5815
6006
  });
5816
- // upstream -> buffer
5817
6007
  yield* pull.pipe(pullLatch.whenOpen, Effect.flatMap(arr => {
5818
6008
  pullLatch.closeUnsafe();
5819
6009
  return Queue.offer(buffer, arr);
5820
6010
  }), Effect.forever,
5821
- // don't disable autoYield to prevent choking the schedule
6011
+ // Keep autoYield enabled so the schedule can run.
5822
6012
  Effect.catchCause(cause => Queue.failCause(buffer, cause)), Effect.forkIn(scope));
5823
- // schedule -> buffer
6013
+ // The schedule clock excludes time between aggregations.
6014
+ const clock = yield* Clock;
6015
+ const step = yield* Schedule.toStep(schedule);
6016
+ const hasInput = Latch.makeUnsafe(false);
6017
+ let scheduleTime = clock.currentTimeMillisUnsafe();
6018
+ let openedAt = 0;
5824
6019
  let lastOutput = Option.none();
5825
6020
  let leftover;
5826
- let sinkHasInput = false;
5827
- const step = yield* Schedule.toStepWithSleep(schedule);
5828
- const stepLoop = Effect.suspend(function loop() {
5829
- return Effect.flatMap(step(lastOutput), () => !sinkHasInput ? loop() : Queue.offer(buffer, scheduleStep));
5830
- });
5831
- const stepToBuffer = stepLoop.pipe(Effect.flatMap(() => Effect.never), Pull.catchDone(() => Cause.done()));
5832
- // buffer -> sink
5833
- const pullFromBuffer = Queue.take(buffer).pipe(Effect.flatMap(arr => {
5834
- if (arr === scheduleStep) {
5835
- return Cause.done();
6021
+ const onInput = chunk => {
6022
+ if (hasInput.openUnsafe()) {
6023
+ openedAt = clock.currentTimeMillisUnsafe();
5836
6024
  }
5837
- sinkHasInput = true;
5838
- return Effect.succeed(arr);
5839
- }));
6025
+ return Effect.succeed(chunk);
6026
+ };
6027
+ const stepToBuffer = hasInput.await.pipe(Effect.flatMap(() => step(scheduleTime, lastOutput)), Effect.flatMap(([, delay]) => Effect.sleep(delay)), Effect.flatMap(() => Queue.offer(buffer, scheduleStep)),
6028
+ // End input so the sink drains leftovers without further upstream pulls.
6029
+ Pull.catchDone(() => Queue.end(buffer)), Effect.flatMap(() => Effect.never));
5840
6030
  const sinkUpstream = Effect.suspend(() => {
5841
6031
  if (leftover !== undefined) {
5842
6032
  const chunk = leftover;
5843
6033
  leftover = undefined;
5844
- sinkHasInput = true;
5845
- return Effect.succeed(chunk);
6034
+ return onInput(chunk);
5846
6035
  }
5847
- pullLatch.openUnsafe();
5848
- return pullFromBuffer;
6036
+ if (buffer.state._tag === "Open") {
6037
+ pullLatch.openUnsafe();
6038
+ }
6039
+ return Effect.flatMap(Queue.take(buffer), arr => arr === scheduleStep ? Cause.done() : onInput(arr));
5849
6040
  });
5850
- const catchSinkHalt = Effect.flatMap(([value, leftover_]) => {
5851
- // ignore the last output if the upstream only pulled a halt
5852
- if (!sinkHasInput && buffer.state._tag === "Done") return Cause.done();
6041
+ const emit = Effect.flatMap(([value, leftover_]) => {
6042
+ if (hasInput.isOpen()) {
6043
+ scheduleTime += clock.currentTimeMillisUnsafe() - openedAt;
6044
+ } else if (buffer.state._tag === "Done") {
6045
+ return Cause.done();
6046
+ }
5853
6047
  lastOutput = Option.some(value);
5854
6048
  leftover = leftover_;
5855
6049
  return Effect.succeed(Arr.of(value));
5856
6050
  });
5857
6051
  return Effect.suspend(() => {
5858
- // if the buffer has exited and there is no more data to process
5859
6052
  if (buffer.state._tag === "Done" && leftover === undefined) {
5860
6053
  return buffer.state.exit;
5861
6054
  }
5862
- sinkHasInput = leftover !== undefined;
5863
- return Effect.succeed(Effect.suspend(() => sink.transform(sinkUpstream, scope)));
5864
- }).pipe(Effect.flatMap(pull => Effect.raceFirst(catchSinkHalt(pull), stepToBuffer)));
6055
+ hasInput.closeUnsafe();
6056
+ const pull = emit(Effect.suspend(() => sink.transform(sinkUpstream, scope)));
6057
+ return buffer.state._tag === "Open" ? Effect.raceFirst(pull, stepToBuffer) : pull;
6058
+ });
5865
6059
  }))));
5866
6060
  /**
5867
6061
  * Creates a fixed-size tuple of streams that each emit
@@ -5899,6 +6093,7 @@ export const aggregateWithin = /*#__PURE__*/dual(3, (self, sink, schedule) => fr
5899
6093
  * await Effect.runPromise(program)
5900
6094
  * ```
5901
6095
  *
6096
+ * @stability stable
5902
6097
  * @category broadcasting
5903
6098
  * @since 4.0.0
5904
6099
  */
@@ -5947,6 +6142,7 @@ const makePubSub = options => Effect.acquireRelease(options.capacity === "unboun
5947
6142
  * await Effect.runPromise(program)
5948
6143
  * ```
5949
6144
  *
6145
+ * @stability stable
5950
6146
  * @category broadcasting
5951
6147
  * @since 2.0.0
5952
6148
  */
@@ -5995,6 +6191,7 @@ export const broadcast = /*#__PURE__*/dual(2, (self, options) => Effect.map(toPu
5995
6191
  * result // => { values: [[1, 2, 3], [1, 2, 3]], acquisitions: 1 }
5996
6192
  * ```
5997
6193
  *
6194
+ * @stability stable
5998
6195
  * @category broadcasting
5999
6196
  * @since 3.8.0
6000
6197
  */
@@ -6033,6 +6230,7 @@ export const share = /*#__PURE__*/dual(2, (self, options) => Effect.map(RcRef.ma
6033
6230
  * await Effect.runPromise(program)
6034
6231
  * ```
6035
6232
  *
6233
+ * @stability stable
6036
6234
  * @category sequencing
6037
6235
  * @since 2.0.0
6038
6236
  */
@@ -6068,6 +6266,7 @@ export const pipeThroughChannel = /*#__PURE__*/dual(2, (self, channel) => fromCh
6068
6266
  * }))
6069
6267
  * ```
6070
6268
  *
6269
+ * @stability stable
6071
6270
  * @category sequencing
6072
6271
  * @since 2.0.0
6073
6272
  */
@@ -6096,6 +6295,7 @@ export const pipeThroughChannelOrFail = /*#__PURE__*/dual(2, (self, channel) =>
6096
6295
  * await Effect.runPromise(program)
6097
6296
  * ```
6098
6297
  *
6298
+ * @stability stable
6099
6299
  * @category sequencing
6100
6300
  * @since 2.0.0
6101
6301
  */
@@ -6118,6 +6318,7 @@ export const pipeThrough = /*#__PURE__*/dual(2, (self, sink) => self.channel.pip
6118
6318
  * await Effect.runPromise(program)
6119
6319
  * ```
6120
6320
  *
6321
+ * @stability stable
6121
6322
  * @category accumulation
6122
6323
  * @since 4.0.0
6123
6324
  */
@@ -6143,6 +6344,7 @@ export const collect = self => fromEffect(runCollect(self));
6143
6344
  * await Effect.runPromise(program)
6144
6345
  * ```
6145
6346
  *
6347
+ * @stability stable
6146
6348
  * @category accumulation
6147
6349
  * @since 2.0.0
6148
6350
  */
@@ -6170,6 +6372,7 @@ export const accumulate = self => mapAccumArray(self, Arr.empty, (acc, as) => {
6170
6372
  * await Effect.runPromise(program)
6171
6373
  * ```
6172
6374
  *
6375
+ * @stability stable
6173
6376
  * @category deduplication
6174
6377
  * @since 2.0.0
6175
6378
  */
@@ -6194,6 +6397,7 @@ export const changes = self => changesWith(self, Equal.equals);
6194
6397
  * )
6195
6398
  * ```
6196
6399
  *
6400
+ * @stability stable
6197
6401
  * @category deduplication
6198
6402
  * @since 2.0.0
6199
6403
  */
@@ -6241,6 +6445,7 @@ export const changesWith = /*#__PURE__*/dual(2, (self, f) => transformPull(self,
6241
6445
  * await Effect.runPromise(program)
6242
6446
  * ```
6243
6447
  *
6448
+ * @stability stable
6244
6449
  * @category deduplication
6245
6450
  * @since 2.0.0
6246
6451
  */
@@ -6290,6 +6495,7 @@ export const changesWithEffect = /*#__PURE__*/dual(2, (self, f) => transformPull
6290
6495
  * await Effect.runPromise(program)
6291
6496
  * ```
6292
6497
  *
6498
+ * @stability stable
6293
6499
  * @category text
6294
6500
  * @since 2.0.0
6295
6501
  */
@@ -6318,6 +6524,7 @@ export const decodeText = /*#__PURE__*/dual(args => isStream(args[0]), (self, op
6318
6524
  * await Effect.runPromise(program)
6319
6525
  * ```
6320
6526
  *
6527
+ * @stability stable
6321
6528
  * @category text
6322
6529
  * @since 2.0.0
6323
6530
  */
@@ -6341,6 +6548,7 @@ export const encodeText = self => suspend(() => {
6341
6548
  * }))
6342
6549
  * ```
6343
6550
  *
6551
+ * @stability stable
6344
6552
  * @category text
6345
6553
  * @since 2.0.0
6346
6554
  */
@@ -6362,6 +6570,7 @@ export const splitLines = self => self.channel.pipe(Channel.pipeTo(Channel.split
6362
6570
  * await Effect.runPromise(program)
6363
6571
  * ```
6364
6572
  *
6573
+ * @stability stable
6365
6574
  * @category sequencing
6366
6575
  * @since 2.0.0
6367
6576
  */
@@ -6401,6 +6610,7 @@ export const intersperse = /*#__PURE__*/dual(2, (self, element) => mapArray(self
6401
6610
  * await Effect.runPromise(program)
6402
6611
  * ```
6403
6612
  *
6613
+ * @stability stable
6404
6614
  * @category sequencing
6405
6615
  * @since 2.0.0
6406
6616
  */
@@ -6428,6 +6638,7 @@ export const intersperseAffixes = /*#__PURE__*/dual(2, (self, options) => succee
6428
6638
  * await Effect.runPromise(program)
6429
6639
  * ```
6430
6640
  *
6641
+ * @stability stable
6431
6642
  * @category merging
6432
6643
  * @since 2.0.0
6433
6644
  */
@@ -6460,6 +6671,7 @@ export const interleave = /*#__PURE__*/dual(2, (self, that) => interleaveWith(se
6460
6671
  * await Effect.runPromise(program)
6461
6672
  * ```
6462
6673
  *
6674
+ * @stability stable
6463
6675
  * @category merging
6464
6676
  * @since 2.0.0
6465
6677
  */
@@ -6524,6 +6736,7 @@ export const interleaveWith = /*#__PURE__*/dual(3, (self, that, decider) => from
6524
6736
  * await Effect.runPromise(program)
6525
6737
  * ```
6526
6738
  *
6739
+ * @stability stable
6527
6740
  * @category interruption
6528
6741
  * @since 2.0.0
6529
6742
  */
@@ -6565,6 +6778,7 @@ export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => fromChannel(
6565
6778
  * await Effect.runPromise(program)
6566
6779
  * ```
6567
6780
  *
6781
+ * @stability stable
6568
6782
  * @category interruption
6569
6783
  * @since 2.0.0
6570
6784
  */
@@ -6592,6 +6806,7 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromChannel(Chann
6592
6806
  * exits // => ["success"]
6593
6807
  * ```
6594
6808
  *
6809
+ * @stability stable
6595
6810
  * @category resource management
6596
6811
  * @since 4.0.0
6597
6812
  */
@@ -6623,6 +6838,7 @@ export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromChannel(Chan
6623
6838
  * errors // => ["boom"]
6624
6839
  * ```
6625
6840
  *
6841
+ * @stability stable
6626
6842
  * @category resource management
6627
6843
  * @since 2.0.0
6628
6844
  */
@@ -6649,6 +6865,7 @@ export const onError = /*#__PURE__*/dual(2, (self, cleanup) => fromChannel(Chann
6649
6865
  * events // => ["started"]
6650
6866
  * ```
6651
6867
  *
6868
+ * @stability stable
6652
6869
  * @category sequencing
6653
6870
  * @since 3.6.0
6654
6871
  */
@@ -6671,6 +6888,7 @@ export const onStart = /*#__PURE__*/dual(2, (self, onStart) => fromChannel(Chann
6671
6888
  * first // => [1]
6672
6889
  * ```
6673
6890
  *
6891
+ * @stability stable
6674
6892
  * @category sequencing
6675
6893
  * @since 4.0.0
6676
6894
  */
@@ -6696,6 +6914,7 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => fromChannel(Chann
6696
6914
  * events // => ["ended"]
6697
6915
  * ```
6698
6916
  *
6917
+ * @stability stable
6699
6918
  * @category sequencing
6700
6919
  * @since 3.6.0
6701
6920
  */
@@ -6722,6 +6941,7 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => fromChannel(Channel.o
6722
6941
  * events // => ["cleanup"]
6723
6942
  * ```
6724
6943
  *
6944
+ * @stability stable
6725
6945
  * @category resource management
6726
6946
  * @since 2.0.0
6727
6947
  */
@@ -6752,6 +6972,7 @@ export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => fromChannel(Ch
6752
6972
  * await Effect.runPromise(Stream.runCollect(withEnv)) // => ["Hello, Ada"]
6753
6973
  * ```
6754
6974
  *
6975
+ * @stability stable
6755
6976
  * @category providing services
6756
6977
  * @since 4.0.0
6757
6978
  */
@@ -6787,6 +7008,7 @@ export const provide = /*#__PURE__*/dual(args => isStream(args[0]), (self, layer
6787
7008
  * await Effect.runPromise(program)
6788
7009
  * ```
6789
7010
  *
7011
+ * @stability stable
6790
7012
  * @category providing services
6791
7013
  * @since 2.0.0
6792
7014
  */
@@ -6824,6 +7046,7 @@ export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromChanne
6824
7046
  * await Effect.runPromise(program)
6825
7047
  * ```
6826
7048
  *
7049
+ * @stability stable
6827
7050
  * @category providing services
6828
7051
  * @since 2.0.0
6829
7052
  */
@@ -6859,6 +7082,7 @@ export const provideService = /*#__PURE__*/dual(3, (self, key, service) => fromC
6859
7082
  * events // => ["loading"]
6860
7083
  * ```
6861
7084
  *
7085
+ * @stability stable
6862
7086
  * @category providing services
6863
7087
  * @since 2.0.0
6864
7088
  */
@@ -6899,6 +7123,7 @@ export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) =>
6899
7123
  * )
6900
7124
  * ```
6901
7125
  *
7126
+ * @stability stable
6902
7127
  * @category providing services
6903
7128
  * @since 4.0.0
6904
7129
  */
@@ -6925,6 +7150,7 @@ export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromChannel(Chann
6925
7150
  * await Effect.runPromise(Effect.provideService(program, Counter, { count: 0 }))
6926
7151
  * ```
6927
7152
  *
7153
+ * @stability stable
6928
7154
  * @category providing services
6929
7155
  * @since 2.0.0
6930
7156
  */
@@ -6947,6 +7173,7 @@ export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateCo
6947
7173
  * )
6948
7174
  * ```
6949
7175
  *
7176
+ * @stability stable
6950
7177
  * @category tracing
6951
7178
  * @since 2.0.0
6952
7179
  */
@@ -6982,6 +7209,7 @@ export const withSpan = function () {
6982
7209
  * await Effect.runPromise(effect)
6983
7210
  * ```
6984
7211
  *
7212
+ * @stability stable
6985
7213
  * @category do notation
6986
7214
  * @since 2.0.0
6987
7215
  */
@@ -7012,6 +7240,7 @@ export {
7012
7240
  * await Effect.runPromise(program)
7013
7241
  * ```
7014
7242
  *
7243
+ * @stability stable
7015
7244
  * @category do notation
7016
7245
  * @since 2.0.0
7017
7246
  */
@@ -7034,6 +7263,7 @@ let_ as let };
7034
7263
  * await Effect.runPromise(result) // => [{ a: 1, b: 2 }, { a: 2, b: 3 }]
7035
7264
  * ```
7036
7265
  *
7266
+ * @stability stable
7037
7267
  * @category do notation
7038
7268
  * @since 2.0.0
7039
7269
  */
@@ -7062,6 +7292,7 @@ export const bind = /*#__PURE__*/dual(args => isStream(args[0]), (self, name, f,
7062
7292
  * await Effect.runPromise(program)
7063
7293
  * ```
7064
7294
  *
7295
+ * @stability stable
7065
7296
  * @category do notation
7066
7297
  * @since 2.0.0
7067
7298
  */
@@ -7082,6 +7313,7 @@ export const bindEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self, na
7082
7313
  * await Effect.runPromise(Stream.runCollect(stream)) // => [{ value: 1 }, { value: 2 }, { value: 3 }]
7083
7314
  * ```
7084
7315
  *
7316
+ * @stability stable
7085
7317
  * @category do notation
7086
7318
  * @since 2.0.0
7087
7319
  */
@@ -7101,6 +7333,7 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, a => ({
7101
7333
  * await Effect.runPromise(program) // => 6
7102
7334
  * ```
7103
7335
  *
7336
+ * @stability stable
7104
7337
  * @category destructors
7105
7338
  * @since 2.0.0
7106
7339
  */
@@ -7123,6 +7356,7 @@ export const run = /*#__PURE__*/dual(2, (self, sink) => Effect.scopedWith(scope
7123
7356
  * await Effect.runPromise(program)
7124
7357
  * ```
7125
7358
  *
7359
+ * @stability stable
7126
7360
  * @category destructors
7127
7361
  * @since 2.0.0
7128
7362
  */
@@ -7150,6 +7384,7 @@ export const runCollect = self => Channel.runFold(self.channel, () => [], (acc,
7150
7384
  * await Effect.runPromise(program)
7151
7385
  * ```
7152
7386
  *
7387
+ * @stability stable
7153
7388
  * @category destructors
7154
7389
  * @since 2.0.0
7155
7390
  */
@@ -7170,6 +7405,7 @@ export const runCount = self => Channel.runFold(self.channel, () => 0, (acc, chu
7170
7405
  * await Effect.runPromise(program)
7171
7406
  * ```
7172
7407
  *
7408
+ * @stability stable
7173
7409
  * @category destructors
7174
7410
  * @since 2.0.0
7175
7411
  */
@@ -7199,6 +7435,7 @@ export const runSum = self => Channel.runFold(self.channel, () => 0, (acc, chunk
7199
7435
  * await Effect.runPromise(program)
7200
7436
  * ```
7201
7437
  *
7438
+ * @stability stable
7202
7439
  * @category destructors
7203
7440
  * @since 2.0.0
7204
7441
  */
@@ -7233,6 +7470,7 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Channel.runFol
7233
7470
  * await Effect.runPromise(program)
7234
7471
  * ```
7235
7472
  *
7473
+ * @stability stable
7236
7474
  * @category destructors
7237
7475
  * @since 2.0.0
7238
7476
  */
@@ -7264,6 +7502,7 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Channel.
7264
7502
  * await Effect.runPromise(program)
7265
7503
  * ```
7266
7504
  *
7505
+ * @stability stable
7267
7506
  * @category destructors
7268
7507
  * @since 2.0.0
7269
7508
  */
@@ -7289,6 +7528,7 @@ export const runHead = self => Effect.map(Channel.runHead(self.channel), Option.
7289
7528
  * @see {@link runCollect} for collecting every emitted element
7290
7529
  * @see {@link runDrain} for consuming the stream while discarding emitted elements
7291
7530
  *
7531
+ * @stability stable
7292
7532
  * @category destructors
7293
7533
  * @since 2.0.0
7294
7534
  */
@@ -7312,6 +7552,7 @@ export const runLast = self => Effect.map(Channel.runLast(self.channel), Option.
7312
7552
  * values // => ["Processing: 1", "Processing: 2", "Processing: 3"]
7313
7553
  * ```
7314
7554
  *
7555
+ * @stability stable
7315
7556
  * @category destructors
7316
7557
  * @since 2.0.0
7317
7558
  */
@@ -7348,6 +7589,7 @@ export const runForEach = /*#__PURE__*/dual(2, (self, f) => Channel.runForEach(s
7348
7589
  * values // => [1, 2, 3]
7349
7590
  * ```
7350
7591
  *
7592
+ * @stability stable
7351
7593
  * @category destructors
7352
7594
  * @since 2.0.0
7353
7595
  */
@@ -7384,6 +7626,7 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => Channel.runForE
7384
7626
  * chunks // => ["1, 2, 3, 4, 5"]
7385
7627
  * ```
7386
7628
  *
7629
+ * @stability stable
7387
7630
  * @category destructors
7388
7631
  * @since 4.0.0
7389
7632
  */
@@ -7409,6 +7652,7 @@ export const runForEachArray = /*#__PURE__*/dual(2, (self, f) => Channel.runForE
7409
7652
  * values // => [1, 2, 3]
7410
7653
  * ```
7411
7654
  *
7655
+ * @stability stable
7412
7656
  * @category destructors
7413
7657
  * @since 2.0.0
7414
7658
  */
@@ -7439,6 +7683,7 @@ export const runDrain = self => Channel.runDrain(self.channel);
7439
7683
  * await Effect.runPromise(program)
7440
7684
  * ```
7441
7685
  *
7686
+ * @stability stable
7442
7687
  * @category destructors
7443
7688
  * @since 2.0.0
7444
7689
  */
@@ -7460,6 +7705,7 @@ export const toPull = self => Channel.toPull(self.channel);
7460
7705
  * await Effect.runPromise(program)
7461
7706
  * ```
7462
7707
  *
7708
+ * @stability stable
7463
7709
  * @category destructors
7464
7710
  * @since 2.0.0
7465
7711
  */
@@ -7488,6 +7734,7 @@ export const mkString = self => Channel.runFold(self.channel, () => "", (acc, ch
7488
7734
  * await Effect.runPromise(program) // => [1, 2, 3, 4]
7489
7735
  * ```
7490
7736
  *
7737
+ * @stability stable
7491
7738
  * @category destructors
7492
7739
  * @since 4.0.0
7493
7740
  */
@@ -7514,6 +7761,7 @@ export const mkArrayBuffer = self => Effect.map(Channel.mkUint8Array(self.channe
7514
7761
  * await Effect.runPromise(program)
7515
7762
  * ```
7516
7763
  *
7764
+ * @stability stable
7517
7765
  * @category destructors
7518
7766
  * @since 4.0.0
7519
7767
  */
@@ -7541,6 +7789,7 @@ export const mkUint8Array = self => Channel.mkUint8Array(self.channel);
7541
7789
  * values // => [ 1, 2, 3, 4, 5 ]
7542
7790
  * ```
7543
7791
  *
7792
+ * @stability stable
7544
7793
  * @category destructors
7545
7794
  * @since 4.0.0
7546
7795
  */
@@ -7595,6 +7844,7 @@ export const toReadableStreamWith = /*#__PURE__*/dual(args => isStream(args[0]),
7595
7844
  * values // => [ 1, 2, 3 ]
7596
7845
  * ```
7597
7846
  *
7847
+ * @stability stable
7598
7848
  * @category destructors
7599
7849
  * @since 2.0.0
7600
7850
  */
@@ -7626,6 +7876,7 @@ export const toReadableStream = /*#__PURE__*/dual(args => isStream(args[0]), (se
7626
7876
  * await Effect.runPromise(effect)
7627
7877
  * ```
7628
7878
  *
7879
+ * @stability stable
7629
7880
  * @category destructors
7630
7881
  * @since 2.0.0
7631
7882
  */
@@ -7649,6 +7900,7 @@ export const toReadableStreamEffect = /*#__PURE__*/dual(args => isStream(args[0]
7649
7900
  * await Array.fromAsync(iterable) // => [1, 2, 3]
7650
7901
  * ```
7651
7902
  *
7903
+ * @stability stable
7652
7904
  * @category destructors
7653
7905
  * @since 4.0.0
7654
7906
  */
@@ -7739,6 +7991,7 @@ export const toAsyncIterableWith = /*#__PURE__*/dual(2, (self, context) => ({
7739
7991
  * await Effect.runPromise(program) // => [1, 2, 3]
7740
7992
  * ```
7741
7993
  *
7994
+ * @stability stable
7742
7995
  * @category destructors
7743
7996
  * @since 3.15.0
7744
7997
  */
@@ -7756,6 +8009,7 @@ export const toAsyncIterableEffect = self => Effect.map(Effect.context(), contex
7756
8009
  * await Array.fromAsync(Stream.toAsyncIterable(stream)) // => [1, 2, 3]
7757
8010
  * ```
7758
8011
  *
8012
+ * @stability stable
7759
8013
  * @category destructors
7760
8014
  * @since 3.15.0
7761
8015
  */
@@ -7789,6 +8043,7 @@ export const toAsyncIterable = self => toAsyncIterableWith(self, Context.empty()
7789
8043
  * await Effect.runPromise(program)
7790
8044
  * ```
7791
8045
  *
8046
+ * @stability stable
7792
8047
  * @category destructors
7793
8048
  * @since 2.0.0
7794
8049
  */
@@ -7818,6 +8073,7 @@ export const runIntoPubSub = /*#__PURE__*/dual(args => isStream(args[0]), (self,
7818
8073
  * await Effect.runPromise(program)
7819
8074
  * ```
7820
8075
  *
8076
+ * @stability stable
7821
8077
  * @category destructors
7822
8078
  * @since 2.0.0
7823
8079
  */
@@ -7850,6 +8106,7 @@ export const toPubSub = /*#__PURE__*/dual(2, (self, options) => Channel.toPubSub
7850
8106
  * await Effect.runPromise(Effect.scoped(program))
7851
8107
  * ```
7852
8108
  *
8109
+ * @stability stable
7853
8110
  * @category destructors
7854
8111
  * @since 4.0.0
7855
8112
  */
@@ -7877,6 +8134,7 @@ export const toPubSubTake = /*#__PURE__*/dual(2, (self, options) => Channel.toPu
7877
8134
  * await Effect.runPromise(Effect.scoped(program))
7878
8135
  * ```
7879
8136
  *
8137
+ * @stability stable
7880
8138
  * @category destructors
7881
8139
  * @since 2.0.0
7882
8140
  */
@@ -7910,6 +8168,7 @@ export const toQueue = /*#__PURE__*/dual(2, (self, options) => Channel.toQueueAr
7910
8168
  * await Effect.runPromise(program)
7911
8169
  * ```
7912
8170
  *
8171
+ * @stability stable
7913
8172
  * @category destructors
7914
8173
  * @since 2.0.0
7915
8174
  */