effect 4.0.1 → 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 (917) 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 +27 -7
  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 +60 -0
  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 +527 -0
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +240 -5
  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 +9 -0
  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 +19 -0
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +8 -1
  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 +8 -0
  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 +26 -3
  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 +558 -0
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +261 -13
  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.map +1 -1
  557. package/dist/ai/LanguageModel.js +14 -13
  558. package/dist/ai/LanguageModel.js.map +1 -1
  559. package/dist/ai/McpServer.d.ts +32 -11
  560. package/dist/ai/McpServer.d.ts.map +1 -1
  561. package/dist/ai/McpServer.js +213 -169
  562. package/dist/ai/McpServer.js.map +1 -1
  563. package/dist/ai/Telemetry.d.ts +49 -41
  564. package/dist/ai/Telemetry.d.ts.map +1 -1
  565. package/dist/ai/Telemetry.js +6 -8
  566. package/dist/ai/Telemetry.js.map +1 -1
  567. package/dist/ai/internal/mcpRuntime.js +79 -46
  568. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  569. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  570. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  571. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  572. package/dist/cluster/K8sHttpClient.js +5 -2
  573. package/dist/cluster/K8sHttpClient.js.map +1 -1
  574. package/dist/encoding/Base64.d.ts +4 -0
  575. package/dist/encoding/Base64.d.ts.map +1 -1
  576. package/dist/encoding/Base64.js +4 -0
  577. package/dist/encoding/Base64.js.map +1 -1
  578. package/dist/encoding/Base64Url.d.ts +4 -0
  579. package/dist/encoding/Base64Url.d.ts.map +1 -1
  580. package/dist/encoding/Base64Url.js +4 -0
  581. package/dist/encoding/Base64Url.js.map +1 -1
  582. package/dist/encoding/EncodingError.d.ts +4 -0
  583. package/dist/encoding/EncodingError.d.ts.map +1 -1
  584. package/dist/encoding/EncodingError.js +4 -0
  585. package/dist/encoding/EncodingError.js.map +1 -1
  586. package/dist/encoding/Hex.d.ts +5 -0
  587. package/dist/encoding/Hex.d.ts.map +1 -1
  588. package/dist/encoding/Hex.js +5 -0
  589. package/dist/encoding/Hex.js.map +1 -1
  590. package/dist/encoding/Toml.js +2 -2
  591. package/dist/encoding/Toml.js.map +1 -1
  592. package/dist/encoding/Yaml.d.ts.map +1 -1
  593. package/dist/encoding/Yaml.js +6 -4
  594. package/dist/encoding/Yaml.js.map +1 -1
  595. package/dist/encoding/index.d.ts +4 -0
  596. package/dist/encoding/index.d.ts.map +1 -1
  597. package/dist/encoding/index.js +4 -0
  598. package/dist/encoding/index.js.map +1 -1
  599. package/dist/eventlog/SqlEventJournal.js +8 -4
  600. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  601. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  602. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  603. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  604. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  605. package/dist/http/Headers.d.ts +3 -1
  606. package/dist/http/Headers.d.ts.map +1 -1
  607. package/dist/http/Headers.js +4 -2
  608. package/dist/http/Headers.js.map +1 -1
  609. package/dist/http/HttpClient.d.ts +9 -0
  610. package/dist/http/HttpClient.d.ts.map +1 -1
  611. package/dist/http/HttpClient.js +40 -21
  612. package/dist/http/HttpClient.js.map +1 -1
  613. package/dist/http/HttpClientResponse.js +3 -1
  614. package/dist/http/HttpClientResponse.js.map +1 -1
  615. package/dist/http/HttpEffect.d.ts +3 -0
  616. package/dist/http/HttpEffect.d.ts.map +1 -1
  617. package/dist/http/HttpEffect.js +5 -2
  618. package/dist/http/HttpEffect.js.map +1 -1
  619. package/dist/http/HttpMiddleware.d.ts +17 -0
  620. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  621. package/dist/http/HttpMiddleware.js +56 -39
  622. package/dist/http/HttpMiddleware.js.map +1 -1
  623. package/dist/http/HttpServer.d.ts +1 -1
  624. package/dist/http/HttpServer.d.ts.map +1 -1
  625. package/dist/http/internal/tracing.d.ts +2 -0
  626. package/dist/http/internal/tracing.d.ts.map +1 -0
  627. package/dist/http/internal/tracing.js +37 -0
  628. package/dist/http/internal/tracing.js.map +1 -0
  629. package/dist/http-api/HttpApiBuilder.js +2 -1
  630. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  631. package/dist/http-api/HttpApiClient.d.ts +12 -3
  632. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  633. package/dist/http-api/HttpApiClient.js.map +1 -1
  634. package/dist/http-api/HttpApiError.d.ts +4 -3
  635. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  636. package/dist/http-api/HttpApiError.js +7 -4
  637. package/dist/http-api/HttpApiError.js.map +1 -1
  638. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  639. package/dist/http-api/HttpApiSecurity.js +8 -8
  640. package/dist/index.d.ts +155 -0
  641. package/dist/index.d.ts.map +1 -1
  642. package/dist/index.js +155 -0
  643. package/dist/index.js.map +1 -1
  644. package/dist/internal/arbitrary/array.js +3 -3
  645. package/dist/internal/arbitrary/array.js.map +1 -1
  646. package/dist/internal/arbitrary/model.js +26 -11
  647. package/dist/internal/arbitrary/model.js.map +1 -1
  648. package/dist/internal/arbitrary/runner.js +8 -8
  649. package/dist/internal/arbitrary/runner.js.map +1 -1
  650. package/dist/internal/arbitrary/schema.js +4 -5
  651. package/dist/internal/arbitrary/schema.js.map +1 -1
  652. package/dist/internal/effect.js +41 -39
  653. package/dist/internal/effect.js.map +1 -1
  654. package/dist/internal/schedule.js +7 -5
  655. package/dist/internal/schedule.js.map +1 -1
  656. package/dist/internal/schema/standardSchema.js +2 -2
  657. package/dist/internal/schema/standardSchema.js.map +1 -1
  658. package/dist/internal/version.d.ts +2 -0
  659. package/dist/internal/version.d.ts.map +1 -0
  660. package/dist/internal/version.js +3 -0
  661. package/dist/internal/version.js.map +1 -0
  662. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  663. package/dist/observability/OtlpExporter.js +5 -6
  664. package/dist/observability/OtlpExporter.js.map +1 -1
  665. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  666. package/dist/observability/OtlpLogger.js +23 -27
  667. package/dist/observability/OtlpLogger.js.map +1 -1
  668. package/dist/observability/OtlpMetrics.d.ts +5 -3
  669. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  670. package/dist/observability/OtlpMetrics.js +21 -94
  671. package/dist/observability/OtlpMetrics.js.map +1 -1
  672. package/dist/observability/OtlpResource.d.ts +4 -3
  673. package/dist/observability/OtlpResource.d.ts.map +1 -1
  674. package/dist/observability/OtlpResource.js +20 -23
  675. package/dist/observability/OtlpResource.js.map +1 -1
  676. package/dist/observability/OtlpTracer.d.ts +1 -0
  677. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  678. package/dist/observability/OtlpTracer.js +32 -36
  679. package/dist/observability/OtlpTracer.js.map +1 -1
  680. package/dist/observability/internal/otlpProtobuf.js +32 -1
  681. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  682. package/dist/reactivity/AsyncResult.d.ts +1 -1
  683. package/dist/reactivity/Atom.d.ts +5 -5
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +9 -5
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  690. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  691. package/dist/reactivity/AtomRegistry.js.map +1 -1
  692. package/dist/rpc/RpcClient.d.ts +21 -3
  693. package/dist/rpc/RpcClient.d.ts.map +1 -1
  694. package/dist/rpc/RpcClient.js +38 -20
  695. package/dist/rpc/RpcClient.js.map +1 -1
  696. package/dist/rpc/RpcServer.d.ts.map +1 -1
  697. package/dist/rpc/RpcServer.js +18 -21
  698. package/dist/rpc/RpcServer.js.map +1 -1
  699. package/dist/rpc/internal/tracing.d.ts +2 -0
  700. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  701. package/dist/rpc/internal/tracing.js +18 -0
  702. package/dist/rpc/internal/tracing.js.map +1 -0
  703. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  704. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  705. package/dist/sql/SqlClient.js +4 -4
  706. package/dist/sql/SqlClient.js.map +1 -1
  707. package/dist/sql/Statement.d.ts +21 -1
  708. package/dist/sql/Statement.d.ts.map +1 -1
  709. package/dist/sql/Statement.js +55 -7
  710. package/dist/sql/Statement.js.map +1 -1
  711. package/dist/testing/TestClock.d.ts +8 -0
  712. package/dist/testing/TestClock.d.ts.map +1 -1
  713. package/dist/testing/TestClock.js +7 -0
  714. package/dist/testing/TestClock.js.map +1 -1
  715. package/dist/testing/TestConsole.d.ts +7 -0
  716. package/dist/testing/TestConsole.d.ts.map +1 -1
  717. package/dist/testing/TestConsole.js +6 -0
  718. package/dist/testing/TestConsole.js.map +1 -1
  719. package/dist/testing/index.d.ts +3 -0
  720. package/dist/testing/index.d.ts.map +1 -1
  721. package/dist/testing/index.js +3 -0
  722. package/dist/testing/index.js.map +1 -1
  723. package/package.json +3 -3
  724. package/src/Array.ts +351 -3
  725. package/src/BigDecimal.ts +88 -0
  726. package/src/BigInt.ts +68 -0
  727. package/src/Boolean.ts +34 -0
  728. package/src/Brand.ts +10 -0
  729. package/src/ByteSize.ts +87 -0
  730. package/src/Cache.ts +50 -8
  731. package/src/Cause.ts +82 -0
  732. package/src/Channel.ts +368 -18
  733. package/src/ChannelSchema.ts +13 -0
  734. package/src/Chunk.ts +193 -0
  735. package/src/Clock.ts +7 -0
  736. package/src/Combiner.ts +10 -0
  737. package/src/Config.ts +82 -8
  738. package/src/ConfigProvider.ts +28 -0
  739. package/src/Console.ts +26 -0
  740. package/src/Context.ts +50 -0
  741. package/src/Cron.ts +32 -1
  742. package/src/Crypto.ts +5 -0
  743. package/src/Data.ts +13 -0
  744. package/src/DateTime.ts +171 -0
  745. package/src/Deferred.ts +51 -0
  746. package/src/Differ.ts +2 -0
  747. package/src/Duration.ts +90 -0
  748. package/src/Effect.ts +539 -5
  749. package/src/Effectable.ts +4 -0
  750. package/src/Equal.ts +12 -1
  751. package/src/Equivalence.ts +22 -0
  752. package/src/ErrorReporter.ts +36 -0
  753. package/src/ExecutionPlan.ts +58 -14
  754. package/src/Exit.ts +40 -0
  755. package/src/Fiber.ts +20 -0
  756. package/src/FiberHandle.ts +29 -4
  757. package/src/FiberMap.ts +38 -0
  758. package/src/FiberSet.ts +21 -0
  759. package/src/FileSystem.ts +16 -0
  760. package/src/Filter.ts +55 -0
  761. package/src/Formatter.ts +42 -1
  762. package/src/Function.ts +30 -0
  763. package/src/Graph.ts +317 -36
  764. package/src/HKT.ts +5 -0
  765. package/src/Hash.ts +15 -0
  766. package/src/HashMap.ts +91 -0
  767. package/src/HashRing.ts +18 -0
  768. package/src/HashSet.ts +53 -0
  769. package/src/Inspectable.ts +8 -0
  770. package/src/Iterable.ts +127 -0
  771. package/src/JsonPatch.ts +5 -0
  772. package/src/JsonPointer.ts +5 -0
  773. package/src/JsonSchema.ts +17 -0
  774. package/src/Latch.ts +14 -0
  775. package/src/Layer.ts +101 -1
  776. package/src/LayerMap.ts +7 -0
  777. package/src/LayerRef.ts +5 -0
  778. package/src/LogLevel.ts +20 -0
  779. package/src/Logger.ts +41 -5
  780. package/src/ManagedRuntime.ts +12 -1
  781. package/src/Match.ts +52 -0
  782. package/src/Metric.ts +69 -0
  783. package/src/MutableHashMap.ts +44 -0
  784. package/src/MutableHashSet.ts +17 -0
  785. package/src/MutableList.ts +21 -0
  786. package/src/MutableRef.ts +32 -0
  787. package/src/Newtype.ts +9 -0
  788. package/src/NonEmptyIterable.ts +4 -0
  789. package/src/Number.ts +61 -0
  790. package/src/Optic.ts +57 -0
  791. package/src/Option.ts +134 -0
  792. package/src/Order.ts +30 -0
  793. package/src/Ordering.ts +7 -0
  794. package/src/PartitionedSemaphore.ts +61 -22
  795. package/src/Path.ts +6 -0
  796. package/src/Pipeable.ts +7 -0
  797. package/src/PlatformError.ts +8 -0
  798. package/src/Pool.ts +20 -1
  799. package/src/Predicate.ts +85 -0
  800. package/src/PrimaryKey.ts +5 -0
  801. package/src/PubSub.ts +90 -9
  802. package/src/Pull.ts +20 -0
  803. package/src/Queue.ts +80 -10
  804. package/src/Random.ts +13 -0
  805. package/src/RcMap.ts +23 -0
  806. package/src/RcRef.ts +6 -0
  807. package/src/Record.ts +100 -0
  808. package/src/Redactable.ts +6 -0
  809. package/src/Redacted.ts +8 -0
  810. package/src/Reducer.ts +4 -0
  811. package/src/Ref.ts +42 -0
  812. package/src/References.ts +21 -0
  813. package/src/RegExp.ts +4 -0
  814. package/src/Request.ts +32 -0
  815. package/src/RequestResolver.ts +59 -10
  816. package/src/Resource.ts +7 -0
  817. package/src/Result.ts +93 -0
  818. package/src/Runtime.ts +10 -0
  819. package/src/Schedule.ts +61 -0
  820. package/src/Scheduler.ts +7 -0
  821. package/src/Schema.ts +499 -4
  822. package/src/SchemaAST.ts +115 -1
  823. package/src/SchemaGetter.ts +80 -4
  824. package/src/SchemaIssue.ts +34 -0
  825. package/src/SchemaParser.ts +26 -0
  826. package/src/SchemaRepresentation.ts +148 -0
  827. package/src/SchemaTransformation.ts +53 -0
  828. package/src/Scope.ts +19 -0
  829. package/src/ScopedCache.ts +55 -3
  830. package/src/ScopedRef.ts +9 -0
  831. package/src/Semaphore.ts +26 -0
  832. package/src/Sink.ts +126 -2
  833. package/src/StandardSchema.ts +1 -0
  834. package/src/Stdio.ts +7 -0
  835. package/src/Stream.ts +622 -15
  836. package/src/String.ts +87 -0
  837. package/src/Struct.ts +46 -0
  838. package/src/SubscriptionRef.ts +65 -0
  839. package/src/Symbol.ts +2 -0
  840. package/src/SynchronizedRef.ts +63 -0
  841. package/src/Take.ts +3 -0
  842. package/src/Terminal.ts +8 -0
  843. package/src/Tracer.ts +23 -0
  844. package/src/Trie.ts +68 -0
  845. package/src/Tuple.ts +38 -0
  846. package/src/TxChunk.ts +52 -0
  847. package/src/TxDeferred.ts +15 -0
  848. package/src/TxHashMap.ts +97 -6
  849. package/src/TxHashSet.ts +83 -3
  850. package/src/TxPriorityQueue.ts +34 -2
  851. package/src/TxPubSub.ts +26 -0
  852. package/src/TxQueue.ts +51 -0
  853. package/src/TxReentrantLock.ts +53 -36
  854. package/src/TxRef.ts +14 -0
  855. package/src/TxSemaphore.ts +47 -31
  856. package/src/TxSubscriptionRef.ts +25 -0
  857. package/src/Types.ts +36 -0
  858. package/src/UndefinedOr.ts +15 -0
  859. package/src/Unify.ts +15 -0
  860. package/src/Utils.ts +4 -0
  861. package/src/Version.ts +38 -0
  862. package/src/ai/Chat.ts +1 -1
  863. package/src/ai/DecisionModel.ts +42 -1
  864. package/src/ai/LanguageModel.ts +16 -19
  865. package/src/ai/McpServer.ts +107 -36
  866. package/src/ai/Telemetry.ts +62 -58
  867. package/src/ai/internal/mcpRuntime.ts +84 -43
  868. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  869. package/src/cluster/K8sHttpClient.ts +12 -2
  870. package/src/encoding/Base64.ts +4 -0
  871. package/src/encoding/Base64Url.ts +4 -0
  872. package/src/encoding/EncodingError.ts +5 -0
  873. package/src/encoding/Hex.ts +5 -0
  874. package/src/encoding/Toml.ts +2 -2
  875. package/src/encoding/Yaml.ts +8 -4
  876. package/src/encoding/index.ts +4 -0
  877. package/src/eventlog/SqlEventJournal.ts +18 -4
  878. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  879. package/src/http/Headers.ts +8 -2
  880. package/src/http/HttpClient.ts +44 -27
  881. package/src/http/HttpClientResponse.ts +3 -1
  882. package/src/http/HttpEffect.ts +11 -2
  883. package/src/http/HttpMiddleware.ts +60 -45
  884. package/src/http/HttpServer.ts +1 -1
  885. package/src/http/internal/tracing.ts +52 -0
  886. package/src/http-api/HttpApiBuilder.ts +5 -1
  887. package/src/http-api/HttpApiClient.ts +13 -4
  888. package/src/http-api/HttpApiError.ts +8 -4
  889. package/src/http-api/HttpApiSecurity.ts +8 -8
  890. package/src/index.ts +156 -0
  891. package/src/internal/arbitrary/array.ts +3 -3
  892. package/src/internal/arbitrary/model.ts +37 -14
  893. package/src/internal/arbitrary/runner.ts +7 -7
  894. package/src/internal/arbitrary/schema.ts +4 -3
  895. package/src/internal/effect.ts +47 -45
  896. package/src/internal/schedule.ts +23 -17
  897. package/src/internal/schema/standardSchema.ts +2 -2
  898. package/src/internal/version.ts +2 -0
  899. package/src/observability/OtlpExporter.ts +9 -6
  900. package/src/observability/OtlpLogger.ts +20 -21
  901. package/src/observability/OtlpMetrics.ts +34 -93
  902. package/src/observability/OtlpResource.ts +18 -27
  903. package/src/observability/OtlpTracer.ts +34 -40
  904. package/src/observability/internal/otlpProtobuf.ts +60 -0
  905. package/src/reactivity/AsyncResult.ts +1 -1
  906. package/src/reactivity/Atom.ts +10 -6
  907. package/src/reactivity/AtomHttpApi.ts +2 -4
  908. package/src/reactivity/AtomRegistry.ts +7 -0
  909. package/src/rpc/RpcClient.ts +48 -24
  910. package/src/rpc/RpcServer.ts +26 -24
  911. package/src/rpc/internal/tracing.ts +22 -0
  912. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  913. package/src/sql/SqlClient.ts +4 -4
  914. package/src/sql/Statement.ts +59 -7
  915. package/src/testing/TestClock.ts +9 -0
  916. package/src/testing/TestConsole.ts +8 -0
  917. package/src/testing/index.ts +3 -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,6 +5385,7 @@ 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
  */
@@ -5247,6 +5418,7 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => suspend(() => {
5247
5418
  * await Effect.runPromise(program)
5248
5419
  * ```
5249
5420
  *
5421
+ * @stability stable
5250
5422
  * @category accumulation
5251
5423
  * @since 2.0.0
5252
5424
  */
@@ -5268,6 +5440,7 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => suspend(()
5268
5440
  * await Effect.runPromise(program)
5269
5441
  * ```
5270
5442
  *
5443
+ * @stability stable
5271
5444
  * @category rate limiting
5272
5445
  * @since 2.0.0
5273
5446
  */
@@ -5365,6 +5538,7 @@ export const debounce = /*#__PURE__*/dual(2, (self, duration) => transformPull(s
5365
5538
  * }))
5366
5539
  * ```
5367
5540
  *
5541
+ * @stability stable
5368
5542
  * @category rate limiting
5369
5543
  * @since 2.0.0
5370
5544
  */
@@ -5468,6 +5642,7 @@ const throttleShapeEffect = (self, cost, units, duration, burst) => transformPul
5468
5642
  * await Effect.runPromise(program)
5469
5643
  * ```
5470
5644
  *
5645
+ * @stability stable
5471
5646
  * @category rate limiting
5472
5647
  * @since 2.0.0
5473
5648
  */
@@ -5500,6 +5675,7 @@ export const throttle = /*#__PURE__*/dual(2, (self, options) => throttleEffect(s
5500
5675
  * await Effect.runPromise(program)
5501
5676
  * ```
5502
5677
  *
5678
+ * @stability stable
5503
5679
  * @category grouping
5504
5680
  * @since 2.0.0
5505
5681
  */
@@ -5530,6 +5706,7 @@ export const grouped = /*#__PURE__*/dual(2, (self, n) => chunks(rechunk(self, n)
5530
5706
  * await Effect.runPromise(program)
5531
5707
  * ```
5532
5708
  *
5709
+ * @stability stable
5533
5710
  * @category grouping
5534
5711
  * @since 2.0.0
5535
5712
  */
@@ -5562,6 +5739,7 @@ export const groupedWithin = /*#__PURE__*/dual(3, (self, chunkSize, duration) =>
5562
5739
  * await Effect.runPromise(program)
5563
5740
  * ```
5564
5741
  *
5742
+ * @stability stable
5565
5743
  * @category grouping
5566
5744
  * @since 2.0.0
5567
5745
  */
@@ -5600,6 +5778,7 @@ export const groupBy = /*#__PURE__*/dual(args => isStream(args[0]), (self, f, op
5600
5778
  * await Effect.runPromise(program)
5601
5779
  * ```
5602
5780
  *
5781
+ * @stability stable
5603
5782
  * @category grouping
5604
5783
  * @since 2.0.0
5605
5784
  */
@@ -5633,7 +5812,7 @@ const groupByImpl = (self, f, options) => transformPullBracket(self, Effect.fnUn
5633
5812
  capacity: options?.bufferSize ?? 4096
5634
5813
  }).pipe(Effect.tap(queue => {
5635
5814
  MutableHashMap.set(queueMap, key, queue);
5636
- return Queue.offer(out, [key, fromQueue(queue)]);
5815
+ return Queue.offer(out, [key, fromQueueShutdownOnEnd(queue)]);
5637
5816
  })), queue => {
5638
5817
  MutableHashMap.remove(queueMap, key);
5639
5818
  return Queue.end(queue);
@@ -5665,6 +5844,7 @@ const groupByImpl = (self, f, options) => transformPullBracket(self, Effect.fnUn
5665
5844
  * @see {@link groupByKey} for grouping all elements with the same key across the stream
5666
5845
  * @see {@link groupBy} for custom grouped stream construction
5667
5846
  *
5847
+ * @stability stable
5668
5848
  * @category grouping
5669
5849
  * @since 2.0.0
5670
5850
  */
@@ -5722,6 +5902,7 @@ export const groupAdjacentBy = /*#__PURE__*/dual(2, (self, f) => transformPull(s
5722
5902
  * await Effect.runPromise(program)
5723
5903
  * ```
5724
5904
  *
5905
+ * @stability stable
5725
5906
  * @category aggregation
5726
5907
  * @since 2.0.0
5727
5908
  */
@@ -5770,6 +5951,7 @@ export const transduce = /*#__PURE__*/dual(2, (self, sink) => transformPull(self
5770
5951
  * }))
5771
5952
  * ```
5772
5953
  *
5954
+ * @stability stable
5773
5955
  * @category aggregation
5774
5956
  * @since 2.0.0
5775
5957
  */
@@ -5811,6 +5993,7 @@ export const aggregate = /*#__PURE__*/dual(2, (self, sink) => aggregateWithin(se
5811
5993
  * }))
5812
5994
  * ```
5813
5995
  *
5996
+ * @stability stable
5814
5997
  * @category aggregation
5815
5998
  * @since 2.0.0
5816
5999
  */
@@ -5910,6 +6093,7 @@ export const aggregateWithin = /*#__PURE__*/dual(3, (self, sink, schedule) => fr
5910
6093
  * await Effect.runPromise(program)
5911
6094
  * ```
5912
6095
  *
6096
+ * @stability stable
5913
6097
  * @category broadcasting
5914
6098
  * @since 4.0.0
5915
6099
  */
@@ -5958,6 +6142,7 @@ const makePubSub = options => Effect.acquireRelease(options.capacity === "unboun
5958
6142
  * await Effect.runPromise(program)
5959
6143
  * ```
5960
6144
  *
6145
+ * @stability stable
5961
6146
  * @category broadcasting
5962
6147
  * @since 2.0.0
5963
6148
  */
@@ -6006,6 +6191,7 @@ export const broadcast = /*#__PURE__*/dual(2, (self, options) => Effect.map(toPu
6006
6191
  * result // => { values: [[1, 2, 3], [1, 2, 3]], acquisitions: 1 }
6007
6192
  * ```
6008
6193
  *
6194
+ * @stability stable
6009
6195
  * @category broadcasting
6010
6196
  * @since 3.8.0
6011
6197
  */
@@ -6044,6 +6230,7 @@ export const share = /*#__PURE__*/dual(2, (self, options) => Effect.map(RcRef.ma
6044
6230
  * await Effect.runPromise(program)
6045
6231
  * ```
6046
6232
  *
6233
+ * @stability stable
6047
6234
  * @category sequencing
6048
6235
  * @since 2.0.0
6049
6236
  */
@@ -6079,6 +6266,7 @@ export const pipeThroughChannel = /*#__PURE__*/dual(2, (self, channel) => fromCh
6079
6266
  * }))
6080
6267
  * ```
6081
6268
  *
6269
+ * @stability stable
6082
6270
  * @category sequencing
6083
6271
  * @since 2.0.0
6084
6272
  */
@@ -6107,6 +6295,7 @@ export const pipeThroughChannelOrFail = /*#__PURE__*/dual(2, (self, channel) =>
6107
6295
  * await Effect.runPromise(program)
6108
6296
  * ```
6109
6297
  *
6298
+ * @stability stable
6110
6299
  * @category sequencing
6111
6300
  * @since 2.0.0
6112
6301
  */
@@ -6129,6 +6318,7 @@ export const pipeThrough = /*#__PURE__*/dual(2, (self, sink) => self.channel.pip
6129
6318
  * await Effect.runPromise(program)
6130
6319
  * ```
6131
6320
  *
6321
+ * @stability stable
6132
6322
  * @category accumulation
6133
6323
  * @since 4.0.0
6134
6324
  */
@@ -6154,6 +6344,7 @@ export const collect = self => fromEffect(runCollect(self));
6154
6344
  * await Effect.runPromise(program)
6155
6345
  * ```
6156
6346
  *
6347
+ * @stability stable
6157
6348
  * @category accumulation
6158
6349
  * @since 2.0.0
6159
6350
  */
@@ -6181,6 +6372,7 @@ export const accumulate = self => mapAccumArray(self, Arr.empty, (acc, as) => {
6181
6372
  * await Effect.runPromise(program)
6182
6373
  * ```
6183
6374
  *
6375
+ * @stability stable
6184
6376
  * @category deduplication
6185
6377
  * @since 2.0.0
6186
6378
  */
@@ -6205,6 +6397,7 @@ export const changes = self => changesWith(self, Equal.equals);
6205
6397
  * )
6206
6398
  * ```
6207
6399
  *
6400
+ * @stability stable
6208
6401
  * @category deduplication
6209
6402
  * @since 2.0.0
6210
6403
  */
@@ -6252,6 +6445,7 @@ export const changesWith = /*#__PURE__*/dual(2, (self, f) => transformPull(self,
6252
6445
  * await Effect.runPromise(program)
6253
6446
  * ```
6254
6447
  *
6448
+ * @stability stable
6255
6449
  * @category deduplication
6256
6450
  * @since 2.0.0
6257
6451
  */
@@ -6301,6 +6495,7 @@ export const changesWithEffect = /*#__PURE__*/dual(2, (self, f) => transformPull
6301
6495
  * await Effect.runPromise(program)
6302
6496
  * ```
6303
6497
  *
6498
+ * @stability stable
6304
6499
  * @category text
6305
6500
  * @since 2.0.0
6306
6501
  */
@@ -6329,6 +6524,7 @@ export const decodeText = /*#__PURE__*/dual(args => isStream(args[0]), (self, op
6329
6524
  * await Effect.runPromise(program)
6330
6525
  * ```
6331
6526
  *
6527
+ * @stability stable
6332
6528
  * @category text
6333
6529
  * @since 2.0.0
6334
6530
  */
@@ -6352,6 +6548,7 @@ export const encodeText = self => suspend(() => {
6352
6548
  * }))
6353
6549
  * ```
6354
6550
  *
6551
+ * @stability stable
6355
6552
  * @category text
6356
6553
  * @since 2.0.0
6357
6554
  */
@@ -6373,6 +6570,7 @@ export const splitLines = self => self.channel.pipe(Channel.pipeTo(Channel.split
6373
6570
  * await Effect.runPromise(program)
6374
6571
  * ```
6375
6572
  *
6573
+ * @stability stable
6376
6574
  * @category sequencing
6377
6575
  * @since 2.0.0
6378
6576
  */
@@ -6412,6 +6610,7 @@ export const intersperse = /*#__PURE__*/dual(2, (self, element) => mapArray(self
6412
6610
  * await Effect.runPromise(program)
6413
6611
  * ```
6414
6612
  *
6613
+ * @stability stable
6415
6614
  * @category sequencing
6416
6615
  * @since 2.0.0
6417
6616
  */
@@ -6439,6 +6638,7 @@ export const intersperseAffixes = /*#__PURE__*/dual(2, (self, options) => succee
6439
6638
  * await Effect.runPromise(program)
6440
6639
  * ```
6441
6640
  *
6641
+ * @stability stable
6442
6642
  * @category merging
6443
6643
  * @since 2.0.0
6444
6644
  */
@@ -6471,6 +6671,7 @@ export const interleave = /*#__PURE__*/dual(2, (self, that) => interleaveWith(se
6471
6671
  * await Effect.runPromise(program)
6472
6672
  * ```
6473
6673
  *
6674
+ * @stability stable
6474
6675
  * @category merging
6475
6676
  * @since 2.0.0
6476
6677
  */
@@ -6535,6 +6736,7 @@ export const interleaveWith = /*#__PURE__*/dual(3, (self, that, decider) => from
6535
6736
  * await Effect.runPromise(program)
6536
6737
  * ```
6537
6738
  *
6739
+ * @stability stable
6538
6740
  * @category interruption
6539
6741
  * @since 2.0.0
6540
6742
  */
@@ -6576,6 +6778,7 @@ export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => fromChannel(
6576
6778
  * await Effect.runPromise(program)
6577
6779
  * ```
6578
6780
  *
6781
+ * @stability stable
6579
6782
  * @category interruption
6580
6783
  * @since 2.0.0
6581
6784
  */
@@ -6603,6 +6806,7 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromChannel(Chann
6603
6806
  * exits // => ["success"]
6604
6807
  * ```
6605
6808
  *
6809
+ * @stability stable
6606
6810
  * @category resource management
6607
6811
  * @since 4.0.0
6608
6812
  */
@@ -6634,6 +6838,7 @@ export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromChannel(Chan
6634
6838
  * errors // => ["boom"]
6635
6839
  * ```
6636
6840
  *
6841
+ * @stability stable
6637
6842
  * @category resource management
6638
6843
  * @since 2.0.0
6639
6844
  */
@@ -6660,6 +6865,7 @@ export const onError = /*#__PURE__*/dual(2, (self, cleanup) => fromChannel(Chann
6660
6865
  * events // => ["started"]
6661
6866
  * ```
6662
6867
  *
6868
+ * @stability stable
6663
6869
  * @category sequencing
6664
6870
  * @since 3.6.0
6665
6871
  */
@@ -6682,6 +6888,7 @@ export const onStart = /*#__PURE__*/dual(2, (self, onStart) => fromChannel(Chann
6682
6888
  * first // => [1]
6683
6889
  * ```
6684
6890
  *
6891
+ * @stability stable
6685
6892
  * @category sequencing
6686
6893
  * @since 4.0.0
6687
6894
  */
@@ -6707,6 +6914,7 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => fromChannel(Chann
6707
6914
  * events // => ["ended"]
6708
6915
  * ```
6709
6916
  *
6917
+ * @stability stable
6710
6918
  * @category sequencing
6711
6919
  * @since 3.6.0
6712
6920
  */
@@ -6733,6 +6941,7 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => fromChannel(Channel.o
6733
6941
  * events // => ["cleanup"]
6734
6942
  * ```
6735
6943
  *
6944
+ * @stability stable
6736
6945
  * @category resource management
6737
6946
  * @since 2.0.0
6738
6947
  */
@@ -6763,6 +6972,7 @@ export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => fromChannel(Ch
6763
6972
  * await Effect.runPromise(Stream.runCollect(withEnv)) // => ["Hello, Ada"]
6764
6973
  * ```
6765
6974
  *
6975
+ * @stability stable
6766
6976
  * @category providing services
6767
6977
  * @since 4.0.0
6768
6978
  */
@@ -6798,6 +7008,7 @@ export const provide = /*#__PURE__*/dual(args => isStream(args[0]), (self, layer
6798
7008
  * await Effect.runPromise(program)
6799
7009
  * ```
6800
7010
  *
7011
+ * @stability stable
6801
7012
  * @category providing services
6802
7013
  * @since 2.0.0
6803
7014
  */
@@ -6835,6 +7046,7 @@ export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromChanne
6835
7046
  * await Effect.runPromise(program)
6836
7047
  * ```
6837
7048
  *
7049
+ * @stability stable
6838
7050
  * @category providing services
6839
7051
  * @since 2.0.0
6840
7052
  */
@@ -6870,6 +7082,7 @@ export const provideService = /*#__PURE__*/dual(3, (self, key, service) => fromC
6870
7082
  * events // => ["loading"]
6871
7083
  * ```
6872
7084
  *
7085
+ * @stability stable
6873
7086
  * @category providing services
6874
7087
  * @since 2.0.0
6875
7088
  */
@@ -6910,6 +7123,7 @@ export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) =>
6910
7123
  * )
6911
7124
  * ```
6912
7125
  *
7126
+ * @stability stable
6913
7127
  * @category providing services
6914
7128
  * @since 4.0.0
6915
7129
  */
@@ -6936,6 +7150,7 @@ export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromChannel(Chann
6936
7150
  * await Effect.runPromise(Effect.provideService(program, Counter, { count: 0 }))
6937
7151
  * ```
6938
7152
  *
7153
+ * @stability stable
6939
7154
  * @category providing services
6940
7155
  * @since 2.0.0
6941
7156
  */
@@ -6958,6 +7173,7 @@ export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateCo
6958
7173
  * )
6959
7174
  * ```
6960
7175
  *
7176
+ * @stability stable
6961
7177
  * @category tracing
6962
7178
  * @since 2.0.0
6963
7179
  */
@@ -6993,6 +7209,7 @@ export const withSpan = function () {
6993
7209
  * await Effect.runPromise(effect)
6994
7210
  * ```
6995
7211
  *
7212
+ * @stability stable
6996
7213
  * @category do notation
6997
7214
  * @since 2.0.0
6998
7215
  */
@@ -7023,6 +7240,7 @@ export {
7023
7240
  * await Effect.runPromise(program)
7024
7241
  * ```
7025
7242
  *
7243
+ * @stability stable
7026
7244
  * @category do notation
7027
7245
  * @since 2.0.0
7028
7246
  */
@@ -7045,6 +7263,7 @@ let_ as let };
7045
7263
  * await Effect.runPromise(result) // => [{ a: 1, b: 2 }, { a: 2, b: 3 }]
7046
7264
  * ```
7047
7265
  *
7266
+ * @stability stable
7048
7267
  * @category do notation
7049
7268
  * @since 2.0.0
7050
7269
  */
@@ -7073,6 +7292,7 @@ export const bind = /*#__PURE__*/dual(args => isStream(args[0]), (self, name, f,
7073
7292
  * await Effect.runPromise(program)
7074
7293
  * ```
7075
7294
  *
7295
+ * @stability stable
7076
7296
  * @category do notation
7077
7297
  * @since 2.0.0
7078
7298
  */
@@ -7093,6 +7313,7 @@ export const bindEffect = /*#__PURE__*/dual(args => isStream(args[0]), (self, na
7093
7313
  * await Effect.runPromise(Stream.runCollect(stream)) // => [{ value: 1 }, { value: 2 }, { value: 3 }]
7094
7314
  * ```
7095
7315
  *
7316
+ * @stability stable
7096
7317
  * @category do notation
7097
7318
  * @since 2.0.0
7098
7319
  */
@@ -7112,6 +7333,7 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, a => ({
7112
7333
  * await Effect.runPromise(program) // => 6
7113
7334
  * ```
7114
7335
  *
7336
+ * @stability stable
7115
7337
  * @category destructors
7116
7338
  * @since 2.0.0
7117
7339
  */
@@ -7134,6 +7356,7 @@ export const run = /*#__PURE__*/dual(2, (self, sink) => Effect.scopedWith(scope
7134
7356
  * await Effect.runPromise(program)
7135
7357
  * ```
7136
7358
  *
7359
+ * @stability stable
7137
7360
  * @category destructors
7138
7361
  * @since 2.0.0
7139
7362
  */
@@ -7161,6 +7384,7 @@ export const runCollect = self => Channel.runFold(self.channel, () => [], (acc,
7161
7384
  * await Effect.runPromise(program)
7162
7385
  * ```
7163
7386
  *
7387
+ * @stability stable
7164
7388
  * @category destructors
7165
7389
  * @since 2.0.0
7166
7390
  */
@@ -7181,6 +7405,7 @@ export const runCount = self => Channel.runFold(self.channel, () => 0, (acc, chu
7181
7405
  * await Effect.runPromise(program)
7182
7406
  * ```
7183
7407
  *
7408
+ * @stability stable
7184
7409
  * @category destructors
7185
7410
  * @since 2.0.0
7186
7411
  */
@@ -7210,6 +7435,7 @@ export const runSum = self => Channel.runFold(self.channel, () => 0, (acc, chunk
7210
7435
  * await Effect.runPromise(program)
7211
7436
  * ```
7212
7437
  *
7438
+ * @stability stable
7213
7439
  * @category destructors
7214
7440
  * @since 2.0.0
7215
7441
  */
@@ -7244,6 +7470,7 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Channel.runFol
7244
7470
  * await Effect.runPromise(program)
7245
7471
  * ```
7246
7472
  *
7473
+ * @stability stable
7247
7474
  * @category destructors
7248
7475
  * @since 2.0.0
7249
7476
  */
@@ -7275,6 +7502,7 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Channel.
7275
7502
  * await Effect.runPromise(program)
7276
7503
  * ```
7277
7504
  *
7505
+ * @stability stable
7278
7506
  * @category destructors
7279
7507
  * @since 2.0.0
7280
7508
  */
@@ -7300,6 +7528,7 @@ export const runHead = self => Effect.map(Channel.runHead(self.channel), Option.
7300
7528
  * @see {@link runCollect} for collecting every emitted element
7301
7529
  * @see {@link runDrain} for consuming the stream while discarding emitted elements
7302
7530
  *
7531
+ * @stability stable
7303
7532
  * @category destructors
7304
7533
  * @since 2.0.0
7305
7534
  */
@@ -7323,6 +7552,7 @@ export const runLast = self => Effect.map(Channel.runLast(self.channel), Option.
7323
7552
  * values // => ["Processing: 1", "Processing: 2", "Processing: 3"]
7324
7553
  * ```
7325
7554
  *
7555
+ * @stability stable
7326
7556
  * @category destructors
7327
7557
  * @since 2.0.0
7328
7558
  */
@@ -7359,6 +7589,7 @@ export const runForEach = /*#__PURE__*/dual(2, (self, f) => Channel.runForEach(s
7359
7589
  * values // => [1, 2, 3]
7360
7590
  * ```
7361
7591
  *
7592
+ * @stability stable
7362
7593
  * @category destructors
7363
7594
  * @since 2.0.0
7364
7595
  */
@@ -7395,6 +7626,7 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => Channel.runForE
7395
7626
  * chunks // => ["1, 2, 3, 4, 5"]
7396
7627
  * ```
7397
7628
  *
7629
+ * @stability stable
7398
7630
  * @category destructors
7399
7631
  * @since 4.0.0
7400
7632
  */
@@ -7420,6 +7652,7 @@ export const runForEachArray = /*#__PURE__*/dual(2, (self, f) => Channel.runForE
7420
7652
  * values // => [1, 2, 3]
7421
7653
  * ```
7422
7654
  *
7655
+ * @stability stable
7423
7656
  * @category destructors
7424
7657
  * @since 2.0.0
7425
7658
  */
@@ -7450,6 +7683,7 @@ export const runDrain = self => Channel.runDrain(self.channel);
7450
7683
  * await Effect.runPromise(program)
7451
7684
  * ```
7452
7685
  *
7686
+ * @stability stable
7453
7687
  * @category destructors
7454
7688
  * @since 2.0.0
7455
7689
  */
@@ -7471,6 +7705,7 @@ export const toPull = self => Channel.toPull(self.channel);
7471
7705
  * await Effect.runPromise(program)
7472
7706
  * ```
7473
7707
  *
7708
+ * @stability stable
7474
7709
  * @category destructors
7475
7710
  * @since 2.0.0
7476
7711
  */
@@ -7499,6 +7734,7 @@ export const mkString = self => Channel.runFold(self.channel, () => "", (acc, ch
7499
7734
  * await Effect.runPromise(program) // => [1, 2, 3, 4]
7500
7735
  * ```
7501
7736
  *
7737
+ * @stability stable
7502
7738
  * @category destructors
7503
7739
  * @since 4.0.0
7504
7740
  */
@@ -7525,6 +7761,7 @@ export const mkArrayBuffer = self => Effect.map(Channel.mkUint8Array(self.channe
7525
7761
  * await Effect.runPromise(program)
7526
7762
  * ```
7527
7763
  *
7764
+ * @stability stable
7528
7765
  * @category destructors
7529
7766
  * @since 4.0.0
7530
7767
  */
@@ -7552,6 +7789,7 @@ export const mkUint8Array = self => Channel.mkUint8Array(self.channel);
7552
7789
  * values // => [ 1, 2, 3, 4, 5 ]
7553
7790
  * ```
7554
7791
  *
7792
+ * @stability stable
7555
7793
  * @category destructors
7556
7794
  * @since 4.0.0
7557
7795
  */
@@ -7606,6 +7844,7 @@ export const toReadableStreamWith = /*#__PURE__*/dual(args => isStream(args[0]),
7606
7844
  * values // => [ 1, 2, 3 ]
7607
7845
  * ```
7608
7846
  *
7847
+ * @stability stable
7609
7848
  * @category destructors
7610
7849
  * @since 2.0.0
7611
7850
  */
@@ -7637,6 +7876,7 @@ export const toReadableStream = /*#__PURE__*/dual(args => isStream(args[0]), (se
7637
7876
  * await Effect.runPromise(effect)
7638
7877
  * ```
7639
7878
  *
7879
+ * @stability stable
7640
7880
  * @category destructors
7641
7881
  * @since 2.0.0
7642
7882
  */
@@ -7660,6 +7900,7 @@ export const toReadableStreamEffect = /*#__PURE__*/dual(args => isStream(args[0]
7660
7900
  * await Array.fromAsync(iterable) // => [1, 2, 3]
7661
7901
  * ```
7662
7902
  *
7903
+ * @stability stable
7663
7904
  * @category destructors
7664
7905
  * @since 4.0.0
7665
7906
  */
@@ -7750,6 +7991,7 @@ export const toAsyncIterableWith = /*#__PURE__*/dual(2, (self, context) => ({
7750
7991
  * await Effect.runPromise(program) // => [1, 2, 3]
7751
7992
  * ```
7752
7993
  *
7994
+ * @stability stable
7753
7995
  * @category destructors
7754
7996
  * @since 3.15.0
7755
7997
  */
@@ -7767,6 +8009,7 @@ export const toAsyncIterableEffect = self => Effect.map(Effect.context(), contex
7767
8009
  * await Array.fromAsync(Stream.toAsyncIterable(stream)) // => [1, 2, 3]
7768
8010
  * ```
7769
8011
  *
8012
+ * @stability stable
7770
8013
  * @category destructors
7771
8014
  * @since 3.15.0
7772
8015
  */
@@ -7800,6 +8043,7 @@ export const toAsyncIterable = self => toAsyncIterableWith(self, Context.empty()
7800
8043
  * await Effect.runPromise(program)
7801
8044
  * ```
7802
8045
  *
8046
+ * @stability stable
7803
8047
  * @category destructors
7804
8048
  * @since 2.0.0
7805
8049
  */
@@ -7829,6 +8073,7 @@ export const runIntoPubSub = /*#__PURE__*/dual(args => isStream(args[0]), (self,
7829
8073
  * await Effect.runPromise(program)
7830
8074
  * ```
7831
8075
  *
8076
+ * @stability stable
7832
8077
  * @category destructors
7833
8078
  * @since 2.0.0
7834
8079
  */
@@ -7861,6 +8106,7 @@ export const toPubSub = /*#__PURE__*/dual(2, (self, options) => Channel.toPubSub
7861
8106
  * await Effect.runPromise(Effect.scoped(program))
7862
8107
  * ```
7863
8108
  *
8109
+ * @stability stable
7864
8110
  * @category destructors
7865
8111
  * @since 4.0.0
7866
8112
  */
@@ -7888,6 +8134,7 @@ export const toPubSubTake = /*#__PURE__*/dual(2, (self, options) => Channel.toPu
7888
8134
  * await Effect.runPromise(Effect.scoped(program))
7889
8135
  * ```
7890
8136
  *
8137
+ * @stability stable
7891
8138
  * @category destructors
7892
8139
  * @since 2.0.0
7893
8140
  */
@@ -7921,6 +8168,7 @@ export const toQueue = /*#__PURE__*/dual(2, (self, options) => Channel.toQueueAr
7921
8168
  * await Effect.runPromise(program)
7922
8169
  * ```
7923
8170
  *
8171
+ * @stability stable
7924
8172
  * @category destructors
7925
8173
  * @since 2.0.0
7926
8174
  */