effect 4.0.0-beta.65 → 4.0.0-beta.67

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 (1657) hide show
  1. package/dist/Array.d.ts +113 -67
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +28 -18
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +404 -337
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +190 -146
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +167 -97
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +87 -47
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +62 -31
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +30 -15
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.d.ts +20 -1
  18. package/dist/Brand.d.ts.map +1 -1
  19. package/dist/Brand.js +16 -0
  20. package/dist/Brand.js.map +1 -1
  21. package/dist/Cache.d.ts +236 -132
  22. package/dist/Cache.d.ts.map +1 -1
  23. package/dist/Cache.js +133 -57
  24. package/dist/Cache.js.map +1 -1
  25. package/dist/Cause.d.ts +77 -65
  26. package/dist/Cause.d.ts.map +1 -1
  27. package/dist/Cause.js +43 -36
  28. package/dist/Cause.js.map +1 -1
  29. package/dist/Channel.d.ts +1518 -575
  30. package/dist/Channel.d.ts.map +1 -1
  31. package/dist/Channel.js +661 -287
  32. package/dist/Channel.js.map +1 -1
  33. package/dist/ChannelSchema.d.ts +119 -10
  34. package/dist/ChannelSchema.d.ts.map +1 -1
  35. package/dist/ChannelSchema.js +45 -6
  36. package/dist/ChannelSchema.js.map +1 -1
  37. package/dist/Chunk.d.ts +548 -379
  38. package/dist/Chunk.d.ts.map +1 -1
  39. package/dist/Chunk.js +238 -170
  40. package/dist/Chunk.js.map +1 -1
  41. package/dist/Clock.d.ts +15 -8
  42. package/dist/Clock.d.ts.map +1 -1
  43. package/dist/Clock.js +8 -4
  44. package/dist/Clock.js.map +1 -1
  45. package/dist/Combiner.d.ts +2 -4
  46. package/dist/Combiner.d.ts.map +1 -1
  47. package/dist/Combiner.js +2 -4
  48. package/dist/Combiner.js.map +1 -1
  49. package/dist/Config.d.ts +5 -4
  50. package/dist/Config.d.ts.map +1 -1
  51. package/dist/Config.js +9 -8
  52. package/dist/Config.js.map +1 -1
  53. package/dist/ConfigProvider.d.ts +1 -1
  54. package/dist/ConfigProvider.js +1 -1
  55. package/dist/Console.d.ts +76 -50
  56. package/dist/Console.d.ts.map +1 -1
  57. package/dist/Console.js +69 -46
  58. package/dist/Console.js.map +1 -1
  59. package/dist/Context.d.ts +386 -138
  60. package/dist/Context.d.ts.map +1 -1
  61. package/dist/Context.js +144 -62
  62. package/dist/Context.js.map +1 -1
  63. package/dist/Cron.d.ts +69 -48
  64. package/dist/Cron.d.ts.map +1 -1
  65. package/dist/Cron.js +96 -36
  66. package/dist/Cron.js.map +1 -1
  67. package/dist/Data.d.ts +3 -2
  68. package/dist/Data.d.ts.map +1 -1
  69. package/dist/Data.js.map +1 -1
  70. package/dist/DateTime.d.ts +875 -444
  71. package/dist/DateTime.d.ts.map +1 -1
  72. package/dist/DateTime.js +376 -217
  73. package/dist/DateTime.js.map +1 -1
  74. package/dist/Deferred.d.ts +367 -174
  75. package/dist/Deferred.d.ts.map +1 -1
  76. package/dist/Deferred.js +145 -71
  77. package/dist/Deferred.js.map +1 -1
  78. package/dist/Differ.d.ts +42 -0
  79. package/dist/Differ.d.ts.map +1 -1
  80. package/dist/Differ.js +36 -0
  81. package/dist/Duration.d.ts +329 -185
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +174 -106
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2445 -2356
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +906 -758
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.d.ts +38 -3
  90. package/dist/Effectable.d.ts.map +1 -1
  91. package/dist/Effectable.js +3 -3
  92. package/dist/Effectable.js.map +1 -1
  93. package/dist/Encoding.d.ts +78 -28
  94. package/dist/Encoding.d.ts.map +1 -1
  95. package/dist/Encoding.js +75 -27
  96. package/dist/Encoding.js.map +1 -1
  97. package/dist/Equivalence.d.ts +14 -19
  98. package/dist/Equivalence.d.ts.map +1 -1
  99. package/dist/Equivalence.js +14 -19
  100. package/dist/Equivalence.js.map +1 -1
  101. package/dist/ErrorReporter.d.ts +66 -82
  102. package/dist/ErrorReporter.d.ts.map +1 -1
  103. package/dist/ErrorReporter.js +38 -29
  104. package/dist/ErrorReporter.js.map +1 -1
  105. package/dist/ExecutionPlan.d.ts +96 -12
  106. package/dist/ExecutionPlan.d.ts.map +1 -1
  107. package/dist/ExecutionPlan.js +21 -6
  108. package/dist/ExecutionPlan.js.map +1 -1
  109. package/dist/Exit.d.ts +7 -5
  110. package/dist/Exit.d.ts.map +1 -1
  111. package/dist/Exit.js.map +1 -1
  112. package/dist/Fiber.d.ts +72 -40
  113. package/dist/Fiber.d.ts.map +1 -1
  114. package/dist/Fiber.js +39 -21
  115. package/dist/Fiber.js.map +1 -1
  116. package/dist/FiberHandle.d.ts +119 -58
  117. package/dist/FiberHandle.d.ts.map +1 -1
  118. package/dist/FiberHandle.js +122 -40
  119. package/dist/FiberHandle.js.map +1 -1
  120. package/dist/FiberMap.d.ts +288 -160
  121. package/dist/FiberMap.d.ts.map +1 -1
  122. package/dist/FiberMap.js +176 -74
  123. package/dist/FiberMap.js.map +1 -1
  124. package/dist/FiberSet.d.ts +93 -52
  125. package/dist/FiberSet.d.ts.map +1 -1
  126. package/dist/FiberSet.js +97 -34
  127. package/dist/FiberSet.js.map +1 -1
  128. package/dist/FileSystem.d.ts +104 -73
  129. package/dist/FileSystem.d.ts.map +1 -1
  130. package/dist/FileSystem.js +53 -39
  131. package/dist/FileSystem.js.map +1 -1
  132. package/dist/Filter.d.ts +166 -88
  133. package/dist/Filter.d.ts.map +1 -1
  134. package/dist/Filter.js +68 -42
  135. package/dist/Filter.js.map +1 -1
  136. package/dist/Function.d.ts +154 -86
  137. package/dist/Function.d.ts.map +1 -1
  138. package/dist/Function.js +53 -37
  139. package/dist/Function.js.map +1 -1
  140. package/dist/Graph.d.ts +682 -365
  141. package/dist/Graph.d.ts.map +1 -1
  142. package/dist/Graph.js +308 -157
  143. package/dist/Graph.js.map +1 -1
  144. package/dist/HKT.d.ts +29 -13
  145. package/dist/HKT.d.ts.map +1 -1
  146. package/dist/Hash.d.ts +31 -18
  147. package/dist/Hash.d.ts.map +1 -1
  148. package/dist/Hash.js +25 -15
  149. package/dist/Hash.js.map +1 -1
  150. package/dist/HashMap.d.ts +444 -256
  151. package/dist/HashMap.d.ts.map +1 -1
  152. package/dist/HashMap.js +223 -105
  153. package/dist/HashMap.js.map +1 -1
  154. package/dist/HashRing.d.ts +36 -17
  155. package/dist/HashRing.d.ts.map +1 -1
  156. package/dist/HashRing.js +75 -8
  157. package/dist/HashRing.js.map +1 -1
  158. package/dist/HashSet.d.ts +194 -104
  159. package/dist/HashSet.d.ts.map +1 -1
  160. package/dist/HashSet.js +93 -38
  161. package/dist/HashSet.js.map +1 -1
  162. package/dist/Inspectable.d.ts +20 -9
  163. package/dist/Inspectable.d.ts.map +1 -1
  164. package/dist/Inspectable.js +16 -6
  165. package/dist/Inspectable.js.map +1 -1
  166. package/dist/Iterable.d.ts +309 -149
  167. package/dist/Iterable.d.ts.map +1 -1
  168. package/dist/Iterable.js +129 -65
  169. package/dist/Iterable.js.map +1 -1
  170. package/dist/JsonPatch.d.ts +4 -3
  171. package/dist/JsonPatch.d.ts.map +1 -1
  172. package/dist/JsonPatch.js +4 -3
  173. package/dist/JsonPatch.js.map +1 -1
  174. package/dist/Latch.d.ts +98 -15
  175. package/dist/Latch.d.ts.map +1 -1
  176. package/dist/Latch.js +41 -10
  177. package/dist/Latch.js.map +1 -1
  178. package/dist/Layer.d.ts +412 -309
  179. package/dist/Layer.d.ts.map +1 -1
  180. package/dist/Layer.js +262 -181
  181. package/dist/Layer.js.map +1 -1
  182. package/dist/LayerMap.d.ts +95 -21
  183. package/dist/LayerMap.d.ts.map +1 -1
  184. package/dist/LayerMap.js +58 -14
  185. package/dist/LayerMap.js.map +1 -1
  186. package/dist/LogLevel.d.ts +92 -131
  187. package/dist/LogLevel.d.ts.map +1 -1
  188. package/dist/LogLevel.js +25 -15
  189. package/dist/LogLevel.js.map +1 -1
  190. package/dist/Logger.d.ts +155 -99
  191. package/dist/Logger.d.ts.map +1 -1
  192. package/dist/Logger.js +211 -184
  193. package/dist/Logger.js.map +1 -1
  194. package/dist/ManagedRuntime.d.ts +75 -17
  195. package/dist/ManagedRuntime.d.ts.map +1 -1
  196. package/dist/ManagedRuntime.js +22 -16
  197. package/dist/ManagedRuntime.js.map +1 -1
  198. package/dist/Match.d.ts +133 -157
  199. package/dist/Match.d.ts.map +1 -1
  200. package/dist/Match.js +85 -76
  201. package/dist/Match.js.map +1 -1
  202. package/dist/Metric.d.ts +325 -284
  203. package/dist/Metric.d.ts.map +1 -1
  204. package/dist/Metric.js +217 -212
  205. package/dist/Metric.js.map +1 -1
  206. package/dist/MutableHashMap.d.ts +117 -58
  207. package/dist/MutableHashMap.d.ts.map +1 -1
  208. package/dist/MutableHashMap.js +52 -29
  209. package/dist/MutableHashMap.js.map +1 -1
  210. package/dist/MutableHashSet.d.ts +52 -30
  211. package/dist/MutableHashSet.d.ts.map +1 -1
  212. package/dist/MutableHashSet.js +94 -38
  213. package/dist/MutableHashSet.js.map +1 -1
  214. package/dist/MutableList.d.ts +92 -49
  215. package/dist/MutableList.d.ts.map +1 -1
  216. package/dist/MutableList.js +123 -71
  217. package/dist/MutableList.js.map +1 -1
  218. package/dist/MutableRef.d.ts +99 -62
  219. package/dist/MutableRef.d.ts.map +1 -1
  220. package/dist/MutableRef.js +79 -60
  221. package/dist/MutableRef.js.map +1 -1
  222. package/dist/Newtype.d.ts +3 -0
  223. package/dist/Newtype.d.ts.map +1 -1
  224. package/dist/Newtype.js.map +1 -1
  225. package/dist/NonEmptyIterable.d.ts +36 -39
  226. package/dist/NonEmptyIterable.d.ts.map +1 -1
  227. package/dist/NonEmptyIterable.js +34 -20
  228. package/dist/NonEmptyIterable.js.map +1 -1
  229. package/dist/Number.d.ts +116 -64
  230. package/dist/Number.d.ts.map +1 -1
  231. package/dist/Number.js +54 -30
  232. package/dist/Number.js.map +1 -1
  233. package/dist/Optic.d.ts +1 -2
  234. package/dist/Optic.d.ts.map +1 -1
  235. package/dist/Optic.js +0 -1
  236. package/dist/Optic.js.map +1 -1
  237. package/dist/Option.d.ts +38 -53
  238. package/dist/Option.d.ts.map +1 -1
  239. package/dist/Option.js +87 -11
  240. package/dist/Option.js.map +1 -1
  241. package/dist/Ordering.d.ts +43 -28
  242. package/dist/Ordering.d.ts.map +1 -1
  243. package/dist/Ordering.js +4 -2
  244. package/dist/Ordering.js.map +1 -1
  245. package/dist/PartitionedSemaphore.d.ts +225 -40
  246. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  247. package/dist/PartitionedSemaphore.js +113 -17
  248. package/dist/PartitionedSemaphore.js.map +1 -1
  249. package/dist/Path.d.ts +77 -13
  250. package/dist/Path.d.ts.map +1 -1
  251. package/dist/Path.js +48 -4
  252. package/dist/Path.js.map +1 -1
  253. package/dist/Pipeable.d.ts +71 -15
  254. package/dist/Pipeable.d.ts.map +1 -1
  255. package/dist/Pipeable.js +59 -12
  256. package/dist/Pipeable.js.map +1 -1
  257. package/dist/PlatformError.d.ts +74 -6
  258. package/dist/PlatformError.d.ts.map +1 -1
  259. package/dist/PlatformError.js +68 -5
  260. package/dist/PlatformError.js.map +1 -1
  261. package/dist/Pool.d.ts +66 -31
  262. package/dist/Pool.d.ts.map +1 -1
  263. package/dist/Pool.js +26 -24
  264. package/dist/Pool.js.map +1 -1
  265. package/dist/Predicate.d.ts +16 -21
  266. package/dist/Predicate.d.ts.map +1 -1
  267. package/dist/Predicate.js +9 -14
  268. package/dist/Predicate.js.map +1 -1
  269. package/dist/PrimaryKey.d.ts +9 -2
  270. package/dist/PrimaryKey.d.ts.map +1 -1
  271. package/dist/PrimaryKey.js +7 -1
  272. package/dist/PrimaryKey.js.map +1 -1
  273. package/dist/PubSub.d.ts +364 -262
  274. package/dist/PubSub.d.ts.map +1 -1
  275. package/dist/PubSub.js +245 -174
  276. package/dist/PubSub.js.map +1 -1
  277. package/dist/Pull.d.ts +94 -25
  278. package/dist/Pull.d.ts.map +1 -1
  279. package/dist/Pull.js +61 -13
  280. package/dist/Pull.js.map +1 -1
  281. package/dist/Queue.d.ts +284 -150
  282. package/dist/Queue.d.ts.map +1 -1
  283. package/dist/Queue.js +216 -113
  284. package/dist/Queue.js.map +1 -1
  285. package/dist/Random.d.ts +54 -35
  286. package/dist/Random.d.ts.map +1 -1
  287. package/dist/Random.js +36 -24
  288. package/dist/Random.js.map +1 -1
  289. package/dist/RcMap.d.ts +151 -141
  290. package/dist/RcMap.d.ts.map +1 -1
  291. package/dist/RcMap.js +66 -20
  292. package/dist/RcMap.js.map +1 -1
  293. package/dist/RcRef.d.ts +69 -32
  294. package/dist/RcRef.d.ts.map +1 -1
  295. package/dist/RcRef.js +33 -16
  296. package/dist/RcRef.js.map +1 -1
  297. package/dist/Record.d.ts +273 -129
  298. package/dist/Record.d.ts.map +1 -1
  299. package/dist/Record.js +117 -57
  300. package/dist/Record.js.map +1 -1
  301. package/dist/Redactable.d.ts +3 -3
  302. package/dist/Redactable.js +2 -2
  303. package/dist/Redacted.d.ts +63 -33
  304. package/dist/Redacted.d.ts.map +1 -1
  305. package/dist/Redacted.js +30 -14
  306. package/dist/Redacted.js.map +1 -1
  307. package/dist/Ref.d.ts +81 -52
  308. package/dist/Ref.d.ts.map +1 -1
  309. package/dist/Ref.js +54 -35
  310. package/dist/Ref.js.map +1 -1
  311. package/dist/References.d.ts +73 -31
  312. package/dist/References.d.ts.map +1 -1
  313. package/dist/References.js +66 -30
  314. package/dist/References.js.map +1 -1
  315. package/dist/RegExp.d.ts +11 -5
  316. package/dist/RegExp.d.ts.map +1 -1
  317. package/dist/RegExp.js +11 -5
  318. package/dist/RegExp.js.map +1 -1
  319. package/dist/Request.d.ts +158 -34
  320. package/dist/Request.d.ts.map +1 -1
  321. package/dist/Request.js +67 -12
  322. package/dist/Request.js.map +1 -1
  323. package/dist/RequestResolver.d.ts +261 -116
  324. package/dist/RequestResolver.d.ts.map +1 -1
  325. package/dist/RequestResolver.js +77 -41
  326. package/dist/RequestResolver.js.map +1 -1
  327. package/dist/Resource.d.ts +13 -7
  328. package/dist/Resource.d.ts.map +1 -1
  329. package/dist/Resource.js +44 -6
  330. package/dist/Resource.js.map +1 -1
  331. package/dist/Result.d.ts +26 -16
  332. package/dist/Result.d.ts.map +1 -1
  333. package/dist/Result.js +6 -6
  334. package/dist/Result.js.map +1 -1
  335. package/dist/Runtime.d.ts +43 -18
  336. package/dist/Runtime.d.ts.map +1 -1
  337. package/dist/Runtime.js +35 -16
  338. package/dist/Runtime.js.map +1 -1
  339. package/dist/Schedule.d.ts +545 -576
  340. package/dist/Schedule.d.ts.map +1 -1
  341. package/dist/Schedule.js +261 -247
  342. package/dist/Schedule.js.map +1 -1
  343. package/dist/Scheduler.d.ts +43 -6
  344. package/dist/Scheduler.d.ts.map +1 -1
  345. package/dist/Scheduler.js +33 -4
  346. package/dist/Scheduler.js.map +1 -1
  347. package/dist/Schema.d.ts +815 -294
  348. package/dist/Schema.d.ts.map +1 -1
  349. package/dist/Schema.js +287 -193
  350. package/dist/Schema.js.map +1 -1
  351. package/dist/SchemaAST.d.ts +24 -15
  352. package/dist/SchemaAST.d.ts.map +1 -1
  353. package/dist/SchemaAST.js +13 -9
  354. package/dist/SchemaAST.js.map +1 -1
  355. package/dist/SchemaGetter.d.ts +26 -13
  356. package/dist/SchemaGetter.d.ts.map +1 -1
  357. package/dist/SchemaGetter.js +24 -11
  358. package/dist/SchemaGetter.js.map +1 -1
  359. package/dist/SchemaIssue.d.ts +1 -8
  360. package/dist/SchemaIssue.d.ts.map +1 -1
  361. package/dist/SchemaIssue.js.map +1 -1
  362. package/dist/SchemaParser.d.ts +194 -25
  363. package/dist/SchemaParser.d.ts.map +1 -1
  364. package/dist/SchemaParser.js +220 -26
  365. package/dist/SchemaParser.js.map +1 -1
  366. package/dist/SchemaRepresentation.d.ts +2 -2
  367. package/dist/SchemaTransformation.d.ts +61 -41
  368. package/dist/SchemaTransformation.d.ts.map +1 -1
  369. package/dist/SchemaTransformation.js +56 -33
  370. package/dist/SchemaTransformation.js.map +1 -1
  371. package/dist/SchemaUtils.d.ts +7 -0
  372. package/dist/SchemaUtils.d.ts.map +1 -1
  373. package/dist/SchemaUtils.js +23 -0
  374. package/dist/SchemaUtils.js.map +1 -1
  375. package/dist/Scope.d.ts +102 -43
  376. package/dist/Scope.d.ts.map +1 -1
  377. package/dist/Scope.js +57 -23
  378. package/dist/Scope.js.map +1 -1
  379. package/dist/ScopedCache.d.ts +138 -46
  380. package/dist/ScopedCache.d.ts.map +1 -1
  381. package/dist/ScopedCache.js +80 -19
  382. package/dist/ScopedCache.js.map +1 -1
  383. package/dist/ScopedRef.d.ts +28 -8
  384. package/dist/ScopedRef.d.ts.map +1 -1
  385. package/dist/ScopedRef.js +25 -5
  386. package/dist/ScopedRef.js.map +1 -1
  387. package/dist/Semaphore.d.ts +64 -28
  388. package/dist/Semaphore.d.ts.map +1 -1
  389. package/dist/Semaphore.js +22 -13
  390. package/dist/Semaphore.js.map +1 -1
  391. package/dist/Sink.d.ts +458 -200
  392. package/dist/Sink.d.ts.map +1 -1
  393. package/dist/Sink.js +240 -89
  394. package/dist/Sink.js.map +1 -1
  395. package/dist/Stdio.d.ts +43 -6
  396. package/dist/Stdio.d.ts.map +1 -1
  397. package/dist/Stdio.js +33 -4
  398. package/dist/Stdio.js.map +1 -1
  399. package/dist/Stream.d.ts +1899 -1186
  400. package/dist/Stream.d.ts.map +1 -1
  401. package/dist/Stream.js +868 -525
  402. package/dist/Stream.js.map +1 -1
  403. package/dist/String.d.ts +171 -95
  404. package/dist/String.d.ts.map +1 -1
  405. package/dist/String.js +125 -67
  406. package/dist/String.js.map +1 -1
  407. package/dist/SubscriptionRef.d.ts +308 -203
  408. package/dist/SubscriptionRef.d.ts.map +1 -1
  409. package/dist/SubscriptionRef.js +125 -76
  410. package/dist/SubscriptionRef.js.map +1 -1
  411. package/dist/Symbol.d.ts +13 -5
  412. package/dist/Symbol.d.ts.map +1 -1
  413. package/dist/Symbol.js +13 -5
  414. package/dist/Symbol.js.map +1 -1
  415. package/dist/SynchronizedRef.d.ts +278 -62
  416. package/dist/SynchronizedRef.d.ts.map +1 -1
  417. package/dist/SynchronizedRef.js +116 -23
  418. package/dist/SynchronizedRef.js.map +1 -1
  419. package/dist/Take.d.ts +26 -2
  420. package/dist/Take.d.ts.map +1 -1
  421. package/dist/Take.js +4 -1
  422. package/dist/Take.js.map +1 -1
  423. package/dist/Terminal.d.ts +39 -7
  424. package/dist/Terminal.d.ts.map +1 -1
  425. package/dist/Terminal.js +10 -4
  426. package/dist/Terminal.js.map +1 -1
  427. package/dist/Tracer.d.ts +229 -55
  428. package/dist/Tracer.d.ts.map +1 -1
  429. package/dist/Tracer.js +94 -18
  430. package/dist/Tracer.js.map +1 -1
  431. package/dist/Trie.d.ts +213 -142
  432. package/dist/Trie.d.ts.map +1 -1
  433. package/dist/Trie.js +88 -60
  434. package/dist/Trie.js.map +1 -1
  435. package/dist/TxChunk.d.ts +182 -146
  436. package/dist/TxChunk.d.ts.map +1 -1
  437. package/dist/TxChunk.js +73 -56
  438. package/dist/TxChunk.js.map +1 -1
  439. package/dist/TxDeferred.d.ts +43 -29
  440. package/dist/TxDeferred.d.ts.map +1 -1
  441. package/dist/TxDeferred.js +22 -15
  442. package/dist/TxDeferred.js.map +1 -1
  443. package/dist/TxHashMap.d.ts +362 -222
  444. package/dist/TxHashMap.d.ts.map +1 -1
  445. package/dist/TxHashMap.js +171 -98
  446. package/dist/TxHashMap.js.map +1 -1
  447. package/dist/TxHashSet.d.ts +178 -104
  448. package/dist/TxHashSet.d.ts.map +1 -1
  449. package/dist/TxHashSet.js +84 -43
  450. package/dist/TxHashSet.js.map +1 -1
  451. package/dist/TxPriorityQueue.d.ts +93 -62
  452. package/dist/TxPriorityQueue.d.ts.map +1 -1
  453. package/dist/TxPriorityQueue.js +54 -36
  454. package/dist/TxPriorityQueue.js.map +1 -1
  455. package/dist/TxPubSub.d.ts +77 -49
  456. package/dist/TxPubSub.d.ts.map +1 -1
  457. package/dist/TxPubSub.js +60 -37
  458. package/dist/TxPubSub.js.map +1 -1
  459. package/dist/TxQueue.d.ts +279 -241
  460. package/dist/TxQueue.d.ts.map +1 -1
  461. package/dist/TxQueue.js +147 -101
  462. package/dist/TxQueue.js.map +1 -1
  463. package/dist/TxReentrantLock.d.ts +69 -46
  464. package/dist/TxReentrantLock.d.ts.map +1 -1
  465. package/dist/TxReentrantLock.js +48 -32
  466. package/dist/TxReentrantLock.js.map +1 -1
  467. package/dist/TxRef.d.ts +69 -40
  468. package/dist/TxRef.d.ts.map +1 -1
  469. package/dist/TxRef.js +35 -20
  470. package/dist/TxRef.js.map +1 -1
  471. package/dist/TxSemaphore.d.ts +101 -54
  472. package/dist/TxSemaphore.d.ts.map +1 -1
  473. package/dist/TxSemaphore.js +76 -34
  474. package/dist/TxSemaphore.js.map +1 -1
  475. package/dist/TxSubscriptionRef.d.ts +72 -48
  476. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  477. package/dist/TxSubscriptionRef.js +33 -22
  478. package/dist/TxSubscriptionRef.js.map +1 -1
  479. package/dist/Types.d.ts +34 -34
  480. package/dist/UndefinedOr.d.ts +48 -25
  481. package/dist/UndefinedOr.d.ts.map +1 -1
  482. package/dist/UndefinedOr.js +28 -25
  483. package/dist/UndefinedOr.js.map +1 -1
  484. package/dist/Unify.d.ts +71 -116
  485. package/dist/Unify.d.ts.map +1 -1
  486. package/dist/Unify.js +20 -6
  487. package/dist/Unify.js.map +1 -1
  488. package/dist/Utils.d.ts +4 -0
  489. package/dist/Utils.d.ts.map +1 -1
  490. package/dist/Utils.js +4 -0
  491. package/dist/Utils.js.map +1 -1
  492. package/dist/index.d.ts +81 -32
  493. package/dist/index.d.ts.map +1 -1
  494. package/dist/index.js +81 -32
  495. package/dist/index.js.map +1 -1
  496. package/dist/internal/concurrency.js +2 -2
  497. package/dist/internal/concurrency.js.map +1 -1
  498. package/dist/internal/core.js +8 -20
  499. package/dist/internal/core.js.map +1 -1
  500. package/dist/internal/effect.js +20 -19
  501. package/dist/internal/effect.js.map +1 -1
  502. package/dist/internal/executionPlan.js +2 -2
  503. package/dist/internal/executionPlan.js.map +1 -1
  504. package/dist/internal/option.js +5 -8
  505. package/dist/internal/option.js.map +1 -1
  506. package/dist/internal/result.js +5 -8
  507. package/dist/internal/result.js.map +1 -1
  508. package/dist/internal/schema/schema.js +1 -1
  509. package/dist/internal/schema/schema.js.map +1 -1
  510. package/dist/testing/FastCheck.d.ts +6 -3
  511. package/dist/testing/FastCheck.d.ts.map +1 -1
  512. package/dist/testing/FastCheck.js +6 -3
  513. package/dist/testing/FastCheck.js.map +1 -1
  514. package/dist/testing/TestClock.d.ts +39 -34
  515. package/dist/testing/TestClock.d.ts.map +1 -1
  516. package/dist/testing/TestClock.js +42 -12
  517. package/dist/testing/TestClock.js.map +1 -1
  518. package/dist/testing/TestConsole.d.ts +39 -30
  519. package/dist/testing/TestConsole.d.ts.map +1 -1
  520. package/dist/testing/TestConsole.js +25 -10
  521. package/dist/testing/TestConsole.js.map +1 -1
  522. package/dist/testing/TestSchema.js +7 -7
  523. package/dist/testing/TestSchema.js.map +1 -1
  524. package/dist/unstable/ai/AiError.d.ts +197 -130
  525. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  526. package/dist/unstable/ai/AiError.js +166 -102
  527. package/dist/unstable/ai/AiError.js.map +1 -1
  528. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  529. package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -2
  530. package/dist/unstable/ai/Chat.d.ts +65 -41
  531. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  532. package/dist/unstable/ai/Chat.js +51 -33
  533. package/dist/unstable/ai/Chat.js.map +1 -1
  534. package/dist/unstable/ai/EmbeddingModel.d.ts +12 -11
  535. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  536. package/dist/unstable/ai/EmbeddingModel.js +9 -8
  537. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  538. package/dist/unstable/ai/IdGenerator.d.ts +28 -18
  539. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  540. package/dist/unstable/ai/IdGenerator.js +18 -11
  541. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  542. package/dist/unstable/ai/LanguageModel.d.ts +36 -30
  543. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  544. package/dist/unstable/ai/LanguageModel.js +21 -15
  545. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  546. package/dist/unstable/ai/McpSchema.d.ts +339 -119
  547. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  548. package/dist/unstable/ai/McpSchema.js +264 -98
  549. package/dist/unstable/ai/McpSchema.js.map +1 -1
  550. package/dist/unstable/ai/McpServer.d.ts +53 -19
  551. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  552. package/dist/unstable/ai/McpServer.js +65 -17
  553. package/dist/unstable/ai/McpServer.js.map +1 -1
  554. package/dist/unstable/ai/Model.d.ts +13 -7
  555. package/dist/unstable/ai/Model.d.ts.map +1 -1
  556. package/dist/unstable/ai/Model.js +11 -9
  557. package/dist/unstable/ai/Model.js.map +1 -1
  558. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  559. package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -2
  560. package/dist/unstable/ai/Prompt.d.ts +194 -168
  561. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  562. package/dist/unstable/ai/Prompt.js +75 -66
  563. package/dist/unstable/ai/Prompt.js.map +1 -1
  564. package/dist/unstable/ai/Response.d.ts +153 -140
  565. package/dist/unstable/ai/Response.d.ts.map +1 -1
  566. package/dist/unstable/ai/Response.js +43 -48
  567. package/dist/unstable/ai/Response.js.map +1 -1
  568. package/dist/unstable/ai/ResponseIdTracker.d.ts +43 -4
  569. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  570. package/dist/unstable/ai/ResponseIdTracker.js +27 -2
  571. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  572. package/dist/unstable/ai/Telemetry.d.ts +42 -32
  573. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  574. package/dist/unstable/ai/Telemetry.js +14 -10
  575. package/dist/unstable/ai/Telemetry.js.map +1 -1
  576. package/dist/unstable/ai/Tokenizer.d.ts +13 -8
  577. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  578. package/dist/unstable/ai/Tokenizer.js +10 -6
  579. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  580. package/dist/unstable/ai/Tool.d.ts +153 -84
  581. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  582. package/dist/unstable/ai/Tool.js +97 -44
  583. package/dist/unstable/ai/Tool.js.map +1 -1
  584. package/dist/unstable/ai/Toolkit.d.ts +33 -42
  585. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  586. package/dist/unstable/ai/Toolkit.js +35 -36
  587. package/dist/unstable/ai/Toolkit.js.map +1 -1
  588. package/dist/unstable/ai/index.d.ts +42 -24
  589. package/dist/unstable/ai/index.d.ts.map +1 -1
  590. package/dist/unstable/ai/index.js +42 -24
  591. package/dist/unstable/ai/index.js.map +1 -1
  592. package/dist/unstable/cli/Argument.d.ts +226 -134
  593. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  594. package/dist/unstable/cli/Argument.js +101 -65
  595. package/dist/unstable/cli/Argument.js.map +1 -1
  596. package/dist/unstable/cli/CliError.d.ts +72 -26
  597. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  598. package/dist/unstable/cli/CliError.js +86 -23
  599. package/dist/unstable/cli/CliError.js.map +1 -1
  600. package/dist/unstable/cli/CliOutput.d.ts +43 -13
  601. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  602. package/dist/unstable/cli/CliOutput.js +30 -6
  603. package/dist/unstable/cli/CliOutput.js.map +1 -1
  604. package/dist/unstable/cli/Command.d.ts +218 -117
  605. package/dist/unstable/cli/Command.d.ts.map +1 -1
  606. package/dist/unstable/cli/Command.js +45 -31
  607. package/dist/unstable/cli/Command.js.map +1 -1
  608. package/dist/unstable/cli/Completions.d.ts +7 -7
  609. package/dist/unstable/cli/Completions.js +1 -1
  610. package/dist/unstable/cli/Flag.d.ts +235 -142
  611. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  612. package/dist/unstable/cli/Flag.js +111 -71
  613. package/dist/unstable/cli/Flag.js.map +1 -1
  614. package/dist/unstable/cli/GlobalFlag.d.ts +42 -14
  615. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  616. package/dist/unstable/cli/GlobalFlag.js +30 -7
  617. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  618. package/dist/unstable/cli/HelpDoc.d.ts +35 -10
  619. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  620. package/dist/unstable/cli/HelpDoc.js +21 -0
  621. package/dist/unstable/cli/Param.d.ts +79 -31
  622. package/dist/unstable/cli/Param.d.ts.map +1 -1
  623. package/dist/unstable/cli/Param.js +161 -99
  624. package/dist/unstable/cli/Param.js.map +1 -1
  625. package/dist/unstable/cli/Primitive.d.ts +79 -42
  626. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  627. package/dist/unstable/cli/Primitive.js +66 -35
  628. package/dist/unstable/cli/Primitive.js.map +1 -1
  629. package/dist/unstable/cli/Prompt.d.ts +178 -47
  630. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  631. package/dist/unstable/cli/Prompt.js +111 -31
  632. package/dist/unstable/cli/Prompt.js.map +1 -1
  633. package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
  634. package/dist/unstable/cli/internal/ansi.js +13 -0
  635. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  636. package/dist/unstable/cli/internal/command.d.ts +7 -7
  637. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  638. package/dist/unstable/cli/internal/command.js +12 -10
  639. package/dist/unstable/cli/internal/command.js.map +1 -1
  640. package/dist/unstable/cli/internal/config.d.ts +3 -0
  641. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  642. package/dist/unstable/cli/internal/config.js.map +1 -1
  643. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  644. package/dist/unstable/cluster/ClusterCron.d.ts +35 -1
  645. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  646. package/dist/unstable/cluster/ClusterCron.js +35 -1
  647. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  648. package/dist/unstable/cluster/ClusterError.d.ts +56 -7
  649. package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
  650. package/dist/unstable/cluster/ClusterError.js +56 -7
  651. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  652. package/dist/unstable/cluster/ClusterMetrics.d.ts +39 -5
  653. package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
  654. package/dist/unstable/cluster/ClusterMetrics.js +39 -5
  655. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  656. package/dist/unstable/cluster/ClusterSchema.d.ts +61 -8
  657. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  658. package/dist/unstable/cluster/ClusterSchema.js +61 -8
  659. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  660. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +14 -2
  661. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  662. package/dist/unstable/cluster/ClusterWorkflowEngine.js +36 -3
  663. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  664. package/dist/unstable/cluster/DeliverAt.d.ts +39 -4
  665. package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
  666. package/dist/unstable/cluster/DeliverAt.js +11 -3
  667. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  668. package/dist/unstable/cluster/Entity.d.ts +75 -16
  669. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  670. package/dist/unstable/cluster/Entity.js +78 -13
  671. package/dist/unstable/cluster/Entity.js.map +1 -1
  672. package/dist/unstable/cluster/EntityAddress.d.ts +30 -2
  673. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  674. package/dist/unstable/cluster/EntityAddress.js +30 -2
  675. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  676. package/dist/unstable/cluster/EntityId.d.ts +18 -3
  677. package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
  678. package/dist/unstable/cluster/EntityId.js +15 -2
  679. package/dist/unstable/cluster/EntityId.js.map +1 -1
  680. package/dist/unstable/cluster/EntityProxy.d.ts +34 -2
  681. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  682. package/dist/unstable/cluster/EntityProxy.js +24 -2
  683. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  684. package/dist/unstable/cluster/EntityProxyServer.d.ts +17 -2
  685. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  686. package/dist/unstable/cluster/EntityProxyServer.js +40 -8
  687. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  688. package/dist/unstable/cluster/EntityResource.d.ts +43 -6
  689. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  690. package/dist/unstable/cluster/EntityResource.js +11 -4
  691. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  692. package/dist/unstable/cluster/EntityType.d.ts +27 -3
  693. package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
  694. package/dist/unstable/cluster/EntityType.js +24 -2
  695. package/dist/unstable/cluster/EntityType.js.map +1 -1
  696. package/dist/unstable/cluster/Envelope.d.ts +105 -23
  697. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  698. package/dist/unstable/cluster/Envelope.js +88 -14
  699. package/dist/unstable/cluster/Envelope.js.map +1 -1
  700. package/dist/unstable/cluster/HttpRunner.d.ts +88 -13
  701. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  702. package/dist/unstable/cluster/HttpRunner.js +88 -13
  703. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  704. package/dist/unstable/cluster/K8sHttpClient.d.ts +49 -6
  705. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  706. package/dist/unstable/cluster/K8sHttpClient.js +31 -6
  707. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  708. package/dist/unstable/cluster/MachineId.d.ts +24 -3
  709. package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
  710. package/dist/unstable/cluster/MachineId.js +21 -2
  711. package/dist/unstable/cluster/MachineId.js.map +1 -1
  712. package/dist/unstable/cluster/Message.d.ts +102 -13
  713. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  714. package/dist/unstable/cluster/Message.js +86 -10
  715. package/dist/unstable/cluster/Message.js.map +1 -1
  716. package/dist/unstable/cluster/MessageStorage.d.ts +127 -21
  717. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  718. package/dist/unstable/cluster/MessageStorage.js +71 -11
  719. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  720. package/dist/unstable/cluster/Reply.d.ts +101 -12
  721. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  722. package/dist/unstable/cluster/Reply.js +64 -8
  723. package/dist/unstable/cluster/Reply.js.map +1 -1
  724. package/dist/unstable/cluster/Runner.d.ts +47 -17
  725. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  726. package/dist/unstable/cluster/Runner.js +47 -17
  727. package/dist/unstable/cluster/Runner.js.map +1 -1
  728. package/dist/unstable/cluster/RunnerAddress.d.ts +34 -2
  729. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  730. package/dist/unstable/cluster/RunnerAddress.js +34 -2
  731. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  732. package/dist/unstable/cluster/RunnerHealth.d.ts +40 -12
  733. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  734. package/dist/unstable/cluster/RunnerHealth.js +40 -12
  735. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  736. package/dist/unstable/cluster/RunnerServer.d.ts +7 -4
  737. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  738. package/dist/unstable/cluster/RunnerServer.js +31 -4
  739. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  740. package/dist/unstable/cluster/RunnerStorage.d.ts +42 -5
  741. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  742. package/dist/unstable/cluster/RunnerStorage.js +38 -4
  743. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  744. package/dist/unstable/cluster/Runners.d.ts +73 -10
  745. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  746. package/dist/unstable/cluster/Runners.js +70 -9
  747. package/dist/unstable/cluster/Runners.js.map +1 -1
  748. package/dist/unstable/cluster/ShardId.d.ts +51 -5
  749. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  750. package/dist/unstable/cluster/ShardId.js +47 -4
  751. package/dist/unstable/cluster/ShardId.js.map +1 -1
  752. package/dist/unstable/cluster/Sharding.d.ts +10 -2
  753. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  754. package/dist/unstable/cluster/Sharding.js +35 -4
  755. package/dist/unstable/cluster/Sharding.js.map +1 -1
  756. package/dist/unstable/cluster/ShardingConfig.d.ts +65 -9
  757. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  758. package/dist/unstable/cluster/ShardingConfig.js +67 -10
  759. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  760. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +27 -6
  761. package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
  762. package/dist/unstable/cluster/ShardingRegistrationEvent.js +28 -4
  763. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  764. package/dist/unstable/cluster/SingleRunner.d.ts +23 -1
  765. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  766. package/dist/unstable/cluster/SingleRunner.js +23 -1
  767. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  768. package/dist/unstable/cluster/Singleton.d.ts +15 -1
  769. package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
  770. package/dist/unstable/cluster/Singleton.js +15 -1
  771. package/dist/unstable/cluster/Singleton.js.map +1 -1
  772. package/dist/unstable/cluster/SingletonAddress.d.ts +21 -1
  773. package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
  774. package/dist/unstable/cluster/SingletonAddress.js +21 -1
  775. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  776. package/dist/unstable/cluster/Snowflake.d.ts +89 -19
  777. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  778. package/dist/unstable/cluster/Snowflake.js +48 -13
  779. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  780. package/dist/unstable/cluster/SocketRunner.d.ts +8 -2
  781. package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js +29 -2
  783. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.d.ts +11 -3
  785. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlMessageStorage.js +27 -3
  787. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  788. package/dist/unstable/cluster/SqlRunnerStorage.d.ts +11 -3
  789. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  790. package/dist/unstable/cluster/SqlRunnerStorage.js +46 -7
  791. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  792. package/dist/unstable/cluster/TestRunner.d.ts +18 -1
  793. package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
  794. package/dist/unstable/cluster/TestRunner.js +18 -1
  795. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  796. package/dist/unstable/cluster/internal/hash.js +12 -0
  797. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.d.ts +26 -3
  799. package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
  800. package/dist/unstable/devtools/DevTools.js +26 -3
  801. package/dist/unstable/devtools/DevTools.js.map +1 -1
  802. package/dist/unstable/devtools/DevToolsClient.d.ts +20 -5
  803. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  804. package/dist/unstable/devtools/DevToolsClient.js +32 -5
  805. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  806. package/dist/unstable/devtools/DevToolsSchema.d.ts +184 -44
  807. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  808. package/dist/unstable/devtools/DevToolsSchema.js +102 -20
  809. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  810. package/dist/unstable/devtools/DevToolsServer.d.ts +27 -2
  811. package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
  812. package/dist/unstable/devtools/DevToolsServer.js +21 -1
  813. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  814. package/dist/unstable/encoding/Msgpack.d.ts +81 -12
  815. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  816. package/dist/unstable/encoding/Msgpack.js +75 -9
  817. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  818. package/dist/unstable/encoding/Ndjson.d.ts +149 -21
  819. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  820. package/dist/unstable/encoding/Ndjson.js +97 -13
  821. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  822. package/dist/unstable/encoding/Sse.d.ts +109 -18
  823. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  824. package/dist/unstable/encoding/Sse.js +69 -13
  825. package/dist/unstable/encoding/Sse.js.map +1 -1
  826. package/dist/unstable/eventlog/Event.d.ts +115 -30
  827. package/dist/unstable/eventlog/Event.d.ts.map +1 -1
  828. package/dist/unstable/eventlog/Event.js +22 -2
  829. package/dist/unstable/eventlog/Event.js.map +1 -1
  830. package/dist/unstable/eventlog/EventGroup.d.ts +50 -17
  831. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  832. package/dist/unstable/eventlog/EventGroup.js +24 -6
  833. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  834. package/dist/unstable/eventlog/EventJournal.d.ts +104 -20
  835. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  836. package/dist/unstable/eventlog/EventJournal.js +108 -16
  837. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  838. package/dist/unstable/eventlog/EventLog.d.ts +151 -31
  839. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  840. package/dist/unstable/eventlog/EventLog.js +111 -20
  841. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  842. package/dist/unstable/eventlog/EventLogEncryption.d.ts +42 -6
  843. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  844. package/dist/unstable/eventlog/EventLogEncryption.js +38 -5
  845. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  846. package/dist/unstable/eventlog/EventLogMessage.d.ts +96 -22
  847. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  848. package/dist/unstable/eventlog/EventLogMessage.js +72 -16
  849. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  850. package/dist/unstable/eventlog/EventLogRemote.d.ts +35 -8
  851. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  852. package/dist/unstable/eventlog/EventLogRemote.js +54 -8
  853. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  854. package/dist/unstable/eventlog/EventLogServer.d.ts +17 -3
  855. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  856. package/dist/unstable/eventlog/EventLogServer.js +17 -3
  857. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  858. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +32 -6
  859. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  860. package/dist/unstable/eventlog/EventLogServerEncrypted.js +52 -6
  861. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  862. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +74 -16
  863. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  864. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +90 -16
  865. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  866. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +59 -15
  867. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  868. package/dist/unstable/eventlog/EventLogSessionAuth.js +73 -14
  869. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  870. package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -2
  871. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  872. package/dist/unstable/eventlog/SqlEventJournal.js +28 -2
  873. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  874. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +32 -3
  875. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  876. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +32 -3
  877. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  878. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +10 -2
  879. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  880. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +28 -2
  881. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  882. package/dist/unstable/http/Cookies.d.ts +156 -77
  883. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  884. package/dist/unstable/http/Cookies.js +93 -39
  885. package/dist/unstable/http/Cookies.js.map +1 -1
  886. package/dist/unstable/http/Etag.d.ts +40 -7
  887. package/dist/unstable/http/Etag.d.ts.map +1 -1
  888. package/dist/unstable/http/Etag.js +27 -4
  889. package/dist/unstable/http/Etag.js.map +1 -1
  890. package/dist/unstable/http/FetchHttpClient.d.ts +29 -3
  891. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  892. package/dist/unstable/http/FetchHttpClient.js +33 -4
  893. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  894. package/dist/unstable/http/FindMyWay.d.ts +1 -1
  895. package/dist/unstable/http/FindMyWay.js +1 -1
  896. package/dist/unstable/http/Headers.d.ts +182 -36
  897. package/dist/unstable/http/Headers.d.ts.map +1 -1
  898. package/dist/unstable/http/Headers.js +86 -16
  899. package/dist/unstable/http/Headers.js.map +1 -1
  900. package/dist/unstable/http/HttpBody.d.ts +114 -26
  901. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  902. package/dist/unstable/http/HttpBody.js +100 -22
  903. package/dist/unstable/http/HttpBody.js.map +1 -1
  904. package/dist/unstable/http/HttpClient.d.ts +205 -96
  905. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  906. package/dist/unstable/http/HttpClient.js +85 -39
  907. package/dist/unstable/http/HttpClient.js.map +1 -1
  908. package/dist/unstable/http/HttpClientError.d.ts +68 -12
  909. package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpClientError.js +71 -9
  911. package/dist/unstable/http/HttpClientError.js.map +1 -1
  912. package/dist/unstable/http/HttpClientRequest.d.ts +318 -100
  913. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpClientRequest.js +153 -47
  915. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  916. package/dist/unstable/http/HttpClientResponse.d.ts +59 -16
  917. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  918. package/dist/unstable/http/HttpClientResponse.js +44 -11
  919. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  920. package/dist/unstable/http/HttpEffect.d.ts +42 -16
  921. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  922. package/dist/unstable/http/HttpEffect.js +33 -13
  923. package/dist/unstable/http/HttpEffect.js.map +1 -1
  924. package/dist/unstable/http/HttpIncomingMessage.d.ts +47 -7
  925. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  926. package/dist/unstable/http/HttpIncomingMessage.js +44 -6
  927. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  928. package/dist/unstable/http/HttpMethod.d.ts +35 -5
  929. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  930. package/dist/unstable/http/HttpMethod.js +23 -1
  931. package/dist/unstable/http/HttpMethod.js.map +1 -1
  932. package/dist/unstable/http/HttpMiddleware.d.ts +37 -11
  933. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  934. package/dist/unstable/http/HttpMiddleware.js +70 -31
  935. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  936. package/dist/unstable/http/HttpPlatform.d.ts +34 -3
  937. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  938. package/dist/unstable/http/HttpPlatform.js +35 -4
  939. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  940. package/dist/unstable/http/HttpRouter.d.ts +194 -45
  941. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  942. package/dist/unstable/http/HttpRouter.js +122 -28
  943. package/dist/unstable/http/HttpRouter.js.map +1 -1
  944. package/dist/unstable/http/HttpServer.d.ts +151 -22
  945. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  946. package/dist/unstable/http/HttpServer.js +77 -12
  947. package/dist/unstable/http/HttpServer.js.map +1 -1
  948. package/dist/unstable/http/HttpServerError.d.ts +90 -10
  949. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  950. package/dist/unstable/http/HttpServerError.js +82 -8
  951. package/dist/unstable/http/HttpServerError.js.map +1 -1
  952. package/dist/unstable/http/HttpServerRequest.d.ts +125 -21
  953. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  954. package/dist/unstable/http/HttpServerRequest.js +112 -31
  955. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  956. package/dist/unstable/http/HttpServerRespondable.d.ts +32 -6
  957. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  958. package/dist/unstable/http/HttpServerRespondable.js +43 -5
  959. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  960. package/dist/unstable/http/HttpServerResponse.d.ts +390 -67
  961. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  962. package/dist/unstable/http/HttpServerResponse.js +209 -38
  963. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  964. package/dist/unstable/http/HttpStaticServer.d.ts +22 -4
  965. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  966. package/dist/unstable/http/HttpStaticServer.js +22 -4
  967. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  968. package/dist/unstable/http/HttpTraceContext.d.ts +53 -6
  969. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  970. package/dist/unstable/http/HttpTraceContext.js +47 -5
  971. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  972. package/dist/unstable/http/Multipart.d.ts +178 -28
  973. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  974. package/dist/unstable/http/Multipart.js +130 -20
  975. package/dist/unstable/http/Multipart.js.map +1 -1
  976. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +1 -1
  977. package/dist/unstable/http/Multipasta/HeadersParser.js +1 -1
  978. package/dist/unstable/http/Multipasta/Node.d.ts +1 -1
  979. package/dist/unstable/http/Multipasta/Node.js +1 -1
  980. package/dist/unstable/http/Multipasta/Search.d.ts +1 -1
  981. package/dist/unstable/http/Multipasta/Search.js +1 -1
  982. package/dist/unstable/http/Multipasta/Web.d.ts +1 -1
  983. package/dist/unstable/http/Multipasta/Web.js +1 -1
  984. package/dist/unstable/http/Multipasta.d.ts +1 -1
  985. package/dist/unstable/http/Multipasta.js +1 -1
  986. package/dist/unstable/http/Template.d.ts +53 -0
  987. package/dist/unstable/http/Template.d.ts.map +1 -1
  988. package/dist/unstable/http/Template.js +26 -0
  989. package/dist/unstable/http/Template.js.map +1 -1
  990. package/dist/unstable/http/Url.d.ts +56 -42
  991. package/dist/unstable/http/Url.d.ts.map +1 -1
  992. package/dist/unstable/http/Url.js +29 -15
  993. package/dist/unstable/http/Url.js.map +1 -1
  994. package/dist/unstable/http/UrlParams.d.ts +233 -49
  995. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  996. package/dist/unstable/http/UrlParams.js +116 -23
  997. package/dist/unstable/http/UrlParams.js.map +1 -1
  998. package/dist/unstable/httpapi/HttpApi.d.ts +49 -14
  999. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1000. package/dist/unstable/httpapi/HttpApi.js +14 -8
  1001. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1002. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +55 -16
  1003. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1004. package/dist/unstable/httpapi/HttpApiBuilder.js +47 -9
  1005. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1006. package/dist/unstable/httpapi/HttpApiClient.d.ts +58 -15
  1007. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1008. package/dist/unstable/httpapi/HttpApiClient.js +43 -7
  1009. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1010. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +214 -59
  1011. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1012. package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -9
  1013. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1014. package/dist/unstable/httpapi/HttpApiError.d.ts +81 -1
  1015. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1016. package/dist/unstable/httpapi/HttpApiError.js +98 -1
  1017. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1018. package/dist/unstable/httpapi/HttpApiGroup.d.ts +87 -20
  1019. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  1020. package/dist/unstable/httpapi/HttpApiGroup.js +5 -2
  1021. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1022. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +113 -22
  1023. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1024. package/dist/unstable/httpapi/HttpApiMiddleware.js +49 -6
  1025. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1026. package/dist/unstable/httpapi/HttpApiScalar.d.ts +19 -4
  1027. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1028. package/dist/unstable/httpapi/HttpApiScalar.js +32 -2
  1029. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1030. package/dist/unstable/httpapi/HttpApiSchema.d.ts +67 -30
  1031. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1032. package/dist/unstable/httpapi/HttpApiSchema.js +48 -27
  1033. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1034. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +74 -17
  1035. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  1036. package/dist/unstable/httpapi/HttpApiSecurity.js +38 -5
  1037. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1038. package/dist/unstable/httpapi/HttpApiSwagger.d.ts +5 -2
  1039. package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
  1040. package/dist/unstable/httpapi/HttpApiSwagger.js +24 -2
  1041. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1042. package/dist/unstable/httpapi/HttpApiTest.d.ts +9 -2
  1043. package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
  1044. package/dist/unstable/httpapi/HttpApiTest.js +28 -3
  1045. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1046. package/dist/unstable/httpapi/OpenApi.d.ts +86 -15
  1047. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1048. package/dist/unstable/httpapi/OpenApi.js +73 -15
  1049. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1050. package/dist/unstable/observability/Otlp.d.ts +33 -3
  1051. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  1052. package/dist/unstable/observability/Otlp.js +14 -3
  1053. package/dist/unstable/observability/Otlp.js.map +1 -1
  1054. package/dist/unstable/observability/OtlpExporter.d.ts +8 -1
  1055. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1056. package/dist/unstable/observability/OtlpExporter.js +32 -1
  1057. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1058. package/dist/unstable/observability/OtlpLogger.d.ts +14 -2
  1059. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1060. package/dist/unstable/observability/OtlpLogger.js +29 -2
  1061. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1062. package/dist/unstable/observability/OtlpMetrics.d.ts +15 -4
  1063. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1064. package/dist/unstable/observability/OtlpMetrics.js +32 -2
  1065. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1066. package/dist/unstable/observability/OtlpResource.d.ts +49 -12
  1067. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1068. package/dist/unstable/observability/OtlpResource.js +47 -5
  1069. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1070. package/dist/unstable/observability/OtlpSerialization.d.ts +28 -3
  1071. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  1072. package/dist/unstable/observability/OtlpSerialization.js +28 -3
  1073. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1074. package/dist/unstable/observability/OtlpTracer.d.ts +16 -2
  1075. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1076. package/dist/unstable/observability/OtlpTracer.js +32 -2
  1077. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1078. package/dist/unstable/observability/PrometheusMetrics.d.ts +32 -12
  1079. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1080. package/dist/unstable/observability/PrometheusMetrics.js +7 -5
  1081. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1082. package/dist/unstable/observability/index.d.ts +2 -1
  1083. package/dist/unstable/observability/index.d.ts.map +1 -1
  1084. package/dist/unstable/observability/index.js +2 -1
  1085. package/dist/unstable/observability/index.js.map +1 -1
  1086. package/dist/unstable/persistence/KeyValueStore.d.ts +93 -18
  1087. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1088. package/dist/unstable/persistence/KeyValueStore.js +81 -21
  1089. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1090. package/dist/unstable/persistence/Persistable.d.ts +76 -15
  1091. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1092. package/dist/unstable/persistence/Persistable.js +22 -5
  1093. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1094. package/dist/unstable/persistence/PersistedCache.d.ts +27 -2
  1095. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  1096. package/dist/unstable/persistence/PersistedCache.js +24 -1
  1097. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1098. package/dist/unstable/persistence/PersistedQueue.d.ts +73 -16
  1099. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1100. package/dist/unstable/persistence/PersistedQueue.js +60 -13
  1101. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1102. package/dist/unstable/persistence/Persistence.d.ts +97 -16
  1103. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1104. package/dist/unstable/persistence/Persistence.js +90 -14
  1105. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1106. package/dist/unstable/persistence/RateLimiter.d.ts +97 -21
  1107. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1108. package/dist/unstable/persistence/RateLimiter.js +82 -17
  1109. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1110. package/dist/unstable/persistence/Redis.d.ts +26 -5
  1111. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1112. package/dist/unstable/persistence/Redis.js +36 -4
  1113. package/dist/unstable/persistence/Redis.js.map +1 -1
  1114. package/dist/unstable/process/ChildProcess.d.ts +89 -109
  1115. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1116. package/dist/unstable/process/ChildProcess.js +74 -23
  1117. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1118. package/dist/unstable/process/ChildProcessSpawner.d.ts +22 -11
  1119. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1120. package/dist/unstable/process/ChildProcessSpawner.js +11 -6
  1121. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1122. package/dist/unstable/process/index.d.ts +2 -1
  1123. package/dist/unstable/process/index.d.ts.map +1 -1
  1124. package/dist/unstable/process/index.js +2 -1
  1125. package/dist/unstable/process/index.js.map +1 -1
  1126. package/dist/unstable/reactivity/AsyncResult.d.ts +196 -59
  1127. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1128. package/dist/unstable/reactivity/AsyncResult.js +121 -36
  1129. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1130. package/dist/unstable/reactivity/Atom.d.ts +539 -130
  1131. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1132. package/dist/unstable/reactivity/Atom.js +256 -62
  1133. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1134. package/dist/unstable/reactivity/AtomHttpApi.d.ts +41 -2
  1135. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1136. package/dist/unstable/reactivity/AtomHttpApi.js +35 -1
  1137. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1138. package/dist/unstable/reactivity/AtomRef.d.ts +51 -7
  1139. package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
  1140. package/dist/unstable/reactivity/AtomRef.js +29 -3
  1141. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1142. package/dist/unstable/reactivity/AtomRegistry.d.ts +135 -21
  1143. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  1144. package/dist/unstable/reactivity/AtomRegistry.js +69 -10
  1145. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1146. package/dist/unstable/reactivity/AtomRpc.d.ts +36 -2
  1147. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1148. package/dist/unstable/reactivity/AtomRpc.js +29 -1
  1149. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1150. package/dist/unstable/reactivity/Hydration.d.ts +28 -5
  1151. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
  1152. package/dist/unstable/reactivity/Hydration.js +35 -3
  1153. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1154. package/dist/unstable/reactivity/Reactivity.d.ts +95 -13
  1155. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  1156. package/dist/unstable/reactivity/Reactivity.js +61 -7
  1157. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1158. package/dist/unstable/rpc/Rpc.d.ts +255 -56
  1159. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1160. package/dist/unstable/rpc/Rpc.js +44 -11
  1161. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1162. package/dist/unstable/rpc/RpcClient.d.ts +81 -19
  1163. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1164. package/dist/unstable/rpc/RpcClient.js +53 -13
  1165. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1166. package/dist/unstable/rpc/RpcClientError.d.ts +26 -2
  1167. package/dist/unstable/rpc/RpcClientError.d.ts.map +1 -1
  1168. package/dist/unstable/rpc/RpcClientError.js +26 -2
  1169. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1170. package/dist/unstable/rpc/RpcGroup.d.ts +51 -8
  1171. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  1172. package/dist/unstable/rpc/RpcGroup.js +3 -1
  1173. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1174. package/dist/unstable/rpc/RpcMessage.d.ts +128 -32
  1175. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1176. package/dist/unstable/rpc/RpcMessage.js +23 -7
  1177. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1178. package/dist/unstable/rpc/RpcMiddleware.d.ts +100 -20
  1179. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  1180. package/dist/unstable/rpc/RpcMiddleware.js +39 -3
  1181. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1182. package/dist/unstable/rpc/RpcSchema.d.ts +38 -4
  1183. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  1184. package/dist/unstable/rpc/RpcSchema.js +34 -3
  1185. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1186. package/dist/unstable/rpc/RpcSerialization.d.ts +60 -13
  1187. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1188. package/dist/unstable/rpc/RpcSerialization.js +56 -12
  1189. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1190. package/dist/unstable/rpc/RpcServer.d.ts +73 -23
  1191. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  1192. package/dist/unstable/rpc/RpcServer.js +70 -23
  1193. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1194. package/dist/unstable/rpc/RpcTest.d.ts +20 -1
  1195. package/dist/unstable/rpc/RpcTest.d.ts.map +1 -1
  1196. package/dist/unstable/rpc/RpcTest.js +20 -1
  1197. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1198. package/dist/unstable/rpc/RpcWorker.d.ts +40 -6
  1199. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  1200. package/dist/unstable/rpc/RpcWorker.js +17 -5
  1201. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1202. package/dist/unstable/rpc/Utils.d.ts +8 -0
  1203. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  1204. package/dist/unstable/rpc/Utils.js +8 -0
  1205. package/dist/unstable/rpc/Utils.js.map +1 -1
  1206. package/dist/unstable/schema/Model.d.ts +130 -52
  1207. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1208. package/dist/unstable/schema/Model.js +79 -34
  1209. package/dist/unstable/schema/Model.js.map +1 -1
  1210. package/dist/unstable/schema/VariantSchema.d.ts +104 -24
  1211. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1212. package/dist/unstable/schema/VariantSchema.js +22 -6
  1213. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1214. package/dist/unstable/socket/Socket.d.ts +167 -34
  1215. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1216. package/dist/unstable/socket/Socket.js +124 -29
  1217. package/dist/unstable/socket/Socket.js.map +1 -1
  1218. package/dist/unstable/socket/SocketServer.d.ts +58 -10
  1219. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  1220. package/dist/unstable/socket/SocketServer.js +43 -5
  1221. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1222. package/dist/unstable/sql/Migrator.d.ts +35 -4
  1223. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  1224. package/dist/unstable/sql/Migrator.js +45 -5
  1225. package/dist/unstable/sql/Migrator.js.map +1 -1
  1226. package/dist/unstable/sql/SqlClient.d.ts +34 -2
  1227. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1228. package/dist/unstable/sql/SqlClient.js +38 -1
  1229. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1230. package/dist/unstable/sql/SqlConnection.d.ts +31 -0
  1231. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  1232. package/dist/unstable/sql/SqlConnection.js +22 -0
  1233. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1234. package/dist/unstable/sql/SqlError.d.ts +99 -0
  1235. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  1236. package/dist/unstable/sql/SqlError.js +114 -0
  1237. package/dist/unstable/sql/SqlError.js.map +1 -1
  1238. package/dist/unstable/sql/SqlModel.d.ts +26 -5
  1239. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  1240. package/dist/unstable/sql/SqlModel.js +8 -4
  1241. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1242. package/dist/unstable/sql/SqlResolver.d.ts +56 -13
  1243. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  1244. package/dist/unstable/sql/SqlResolver.js +44 -10
  1245. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1246. package/dist/unstable/sql/SqlSchema.d.ts +29 -8
  1247. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  1248. package/dist/unstable/sql/SqlSchema.js +29 -8
  1249. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1250. package/dist/unstable/sql/SqlStream.d.ts +3 -0
  1251. package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
  1252. package/dist/unstable/sql/SqlStream.js +23 -0
  1253. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1254. package/dist/unstable/sql/Statement.d.ts +124 -0
  1255. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1256. package/dist/unstable/sql/Statement.js +82 -0
  1257. package/dist/unstable/sql/Statement.js.map +1 -1
  1258. package/dist/unstable/sql/index.d.ts +1 -1
  1259. package/dist/unstable/sql/index.js +1 -1
  1260. package/dist/unstable/workers/Transferable.d.ts +65 -13
  1261. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  1262. package/dist/unstable/workers/Transferable.js +53 -10
  1263. package/dist/unstable/workers/Transferable.js.map +1 -1
  1264. package/dist/unstable/workers/Worker.d.ts +60 -8
  1265. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  1266. package/dist/unstable/workers/Worker.js +43 -4
  1267. package/dist/unstable/workers/Worker.js.map +1 -1
  1268. package/dist/unstable/workers/WorkerError.d.ts +31 -9
  1269. package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
  1270. package/dist/unstable/workers/WorkerError.js +44 -7
  1271. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1272. package/dist/unstable/workers/WorkerRunner.d.ts +32 -3
  1273. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  1274. package/dist/unstable/workers/WorkerRunner.js +24 -1
  1275. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1276. package/dist/unstable/workers/index.d.ts +1 -1
  1277. package/dist/unstable/workers/index.js +1 -1
  1278. package/dist/unstable/workflow/Activity.d.ts +61 -10
  1279. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  1280. package/dist/unstable/workflow/Activity.js +21 -6
  1281. package/dist/unstable/workflow/Activity.js.map +1 -1
  1282. package/dist/unstable/workflow/DurableClock.d.ts +12 -3
  1283. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  1284. package/dist/unstable/workflow/DurableClock.js +22 -2
  1285. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1286. package/dist/unstable/workflow/DurableDeferred.d.ts +126 -31
  1287. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  1288. package/dist/unstable/workflow/DurableDeferred.js +76 -13
  1289. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1290. package/dist/unstable/workflow/DurableQueue.d.ts +145 -0
  1291. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -0
  1292. package/dist/unstable/workflow/DurableQueue.js +200 -0
  1293. package/dist/unstable/workflow/DurableQueue.js.map +1 -0
  1294. package/dist/unstable/workflow/Workflow.d.ts +100 -31
  1295. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1296. package/dist/unstable/workflow/Workflow.js +76 -20
  1297. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1298. package/dist/unstable/workflow/WorkflowEngine.d.ts +40 -5
  1299. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1300. package/dist/unstable/workflow/WorkflowEngine.js +16 -4
  1301. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1302. package/dist/unstable/workflow/WorkflowProxy.d.ts +32 -2
  1303. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1304. package/dist/unstable/workflow/WorkflowProxy.js +2 -2
  1305. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1306. package/dist/unstable/workflow/WorkflowProxyServer.d.ts +36 -2
  1307. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  1308. package/dist/unstable/workflow/WorkflowProxyServer.js +12 -6
  1309. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1310. package/dist/unstable/workflow/index.d.ts +4 -0
  1311. package/dist/unstable/workflow/index.d.ts.map +1 -1
  1312. package/dist/unstable/workflow/index.js +4 -0
  1313. package/dist/unstable/workflow/index.js.map +1 -1
  1314. package/package.json +11 -11
  1315. package/src/Array.ts +113 -67
  1316. package/src/BigDecimal.ts +404 -337
  1317. package/src/BigInt.ts +167 -97
  1318. package/src/Boolean.ts +62 -31
  1319. package/src/Brand.ts +20 -1
  1320. package/src/Cache.ts +331 -164
  1321. package/src/Cause.ts +77 -65
  1322. package/src/Channel.ts +1585 -607
  1323. package/src/ChannelSchema.ts +137 -12
  1324. package/src/Chunk.ts +549 -380
  1325. package/src/Clock.ts +15 -8
  1326. package/src/Combiner.ts +2 -4
  1327. package/src/Config.ts +12 -10
  1328. package/src/ConfigProvider.ts +1 -1
  1329. package/src/Console.ts +88 -58
  1330. package/src/Context.ts +397 -149
  1331. package/src/Cron.ts +111 -48
  1332. package/src/Data.ts +3 -2
  1333. package/src/DateTime.ts +876 -445
  1334. package/src/Deferred.ts +367 -174
  1335. package/src/Differ.ts +42 -0
  1336. package/src/Duration.ts +329 -185
  1337. package/src/Effect.ts +2474 -2395
  1338. package/src/Effectable.ts +39 -4
  1339. package/src/Encoding.ts +78 -28
  1340. package/src/Equivalence.ts +14 -19
  1341. package/src/ErrorReporter.ts +66 -82
  1342. package/src/ExecutionPlan.ts +97 -13
  1343. package/src/Exit.ts +7 -5
  1344. package/src/Fiber.ts +72 -40
  1345. package/src/FiberHandle.ts +158 -58
  1346. package/src/FiberMap.ts +329 -164
  1347. package/src/FiberSet.ts +130 -52
  1348. package/src/FileSystem.ts +106 -74
  1349. package/src/Filter.ts +166 -88
  1350. package/src/Function.ts +154 -86
  1351. package/src/Graph.ts +682 -365
  1352. package/src/HKT.ts +29 -13
  1353. package/src/Hash.ts +31 -18
  1354. package/src/HashMap.ts +444 -256
  1355. package/src/HashRing.ts +94 -17
  1356. package/src/HashSet.ts +194 -104
  1357. package/src/Inspectable.ts +22 -10
  1358. package/src/Iterable.ts +309 -149
  1359. package/src/JsonPatch.ts +4 -3
  1360. package/src/Latch.ts +98 -15
  1361. package/src/Layer.ts +488 -345
  1362. package/src/LayerMap.ts +98 -25
  1363. package/src/LogLevel.ts +92 -131
  1364. package/src/Logger.ts +357 -288
  1365. package/src/ManagedRuntime.ts +75 -17
  1366. package/src/Match.ts +133 -157
  1367. package/src/Metric.ts +355 -304
  1368. package/src/MutableHashMap.ts +161 -84
  1369. package/src/MutableHashSet.ts +122 -52
  1370. package/src/MutableList.ts +141 -81
  1371. package/src/MutableRef.ts +130 -90
  1372. package/src/Newtype.ts +3 -0
  1373. package/src/NonEmptyIterable.ts +36 -39
  1374. package/src/Number.ts +116 -64
  1375. package/src/Optic.ts +1 -2
  1376. package/src/Option.ts +41 -53
  1377. package/src/Ordering.ts +43 -28
  1378. package/src/PartitionedSemaphore.ts +225 -40
  1379. package/src/Path.ts +77 -13
  1380. package/src/Pipeable.ts +76 -21
  1381. package/src/PlatformError.ts +74 -6
  1382. package/src/Pool.ts +94 -31
  1383. package/src/Predicate.ts +16 -21
  1384. package/src/PrimaryKey.ts +9 -2
  1385. package/src/PubSub.ts +364 -262
  1386. package/src/Pull.ts +94 -25
  1387. package/src/Queue.ts +284 -150
  1388. package/src/Random.ts +54 -35
  1389. package/src/RcMap.ts +151 -141
  1390. package/src/RcRef.ts +69 -32
  1391. package/src/Record.ts +273 -129
  1392. package/src/Redactable.ts +3 -3
  1393. package/src/Redacted.ts +63 -33
  1394. package/src/Ref.ts +161 -104
  1395. package/src/References.ts +73 -31
  1396. package/src/RegExp.ts +11 -5
  1397. package/src/Request.ts +158 -34
  1398. package/src/RequestResolver.ts +277 -119
  1399. package/src/Resource.ts +45 -7
  1400. package/src/Result.ts +31 -18
  1401. package/src/Runtime.ts +45 -19
  1402. package/src/Schedule.ts +575 -600
  1403. package/src/Scheduler.ts +43 -6
  1404. package/src/Schema.ts +845 -319
  1405. package/src/SchemaAST.ts +25 -16
  1406. package/src/SchemaGetter.ts +32 -17
  1407. package/src/SchemaIssue.ts +1 -8
  1408. package/src/SchemaParser.ts +262 -38
  1409. package/src/SchemaTransformation.ts +61 -41
  1410. package/src/SchemaUtils.ts +23 -0
  1411. package/src/Scope.ts +102 -43
  1412. package/src/ScopedCache.ts +192 -56
  1413. package/src/ScopedRef.ts +28 -8
  1414. package/src/Semaphore.ts +64 -28
  1415. package/src/Sink.ts +458 -200
  1416. package/src/Stdio.ts +43 -6
  1417. package/src/Stream.ts +2043 -1256
  1418. package/src/String.ts +171 -95
  1419. package/src/SubscriptionRef.ts +308 -203
  1420. package/src/Symbol.ts +13 -5
  1421. package/src/SynchronizedRef.ts +278 -62
  1422. package/src/Take.ts +26 -2
  1423. package/src/Terminal.ts +40 -7
  1424. package/src/Tracer.ts +229 -55
  1425. package/src/Trie.ts +213 -142
  1426. package/src/TxChunk.ts +182 -146
  1427. package/src/TxDeferred.ts +43 -29
  1428. package/src/TxHashMap.ts +370 -230
  1429. package/src/TxHashSet.ts +250 -152
  1430. package/src/TxPriorityQueue.ts +96 -64
  1431. package/src/TxPubSub.ts +77 -49
  1432. package/src/TxQueue.ts +279 -241
  1433. package/src/TxReentrantLock.ts +70 -47
  1434. package/src/TxRef.ts +70 -41
  1435. package/src/TxSemaphore.ts +101 -54
  1436. package/src/TxSubscriptionRef.ts +72 -48
  1437. package/src/Types.ts +34 -34
  1438. package/src/UndefinedOr.ts +48 -25
  1439. package/src/Unify.ts +71 -116
  1440. package/src/Utils.ts +4 -0
  1441. package/src/index.ts +81 -32
  1442. package/src/internal/concurrency.ts +2 -2
  1443. package/src/internal/core.ts +12 -23
  1444. package/src/internal/effect.ts +25 -29
  1445. package/src/internal/executionPlan.ts +2 -2
  1446. package/src/internal/option.ts +5 -8
  1447. package/src/internal/result.ts +5 -8
  1448. package/src/internal/schema/schema.ts +1 -1
  1449. package/src/testing/FastCheck.ts +6 -3
  1450. package/src/testing/TestClock.ts +63 -34
  1451. package/src/testing/TestConsole.ts +49 -30
  1452. package/src/testing/TestSchema.ts +8 -8
  1453. package/src/unstable/ai/AiError.ts +187 -120
  1454. package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
  1455. package/src/unstable/ai/Chat.ts +69 -43
  1456. package/src/unstable/ai/EmbeddingModel.ts +12 -11
  1457. package/src/unstable/ai/IdGenerator.ts +28 -18
  1458. package/src/unstable/ai/LanguageModel.ts +47 -46
  1459. package/src/unstable/ai/McpSchema.ts +339 -119
  1460. package/src/unstable/ai/McpServer.ts +78 -21
  1461. package/src/unstable/ai/Model.ts +23 -18
  1462. package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
  1463. package/src/unstable/ai/Prompt.ts +210 -184
  1464. package/src/unstable/ai/Response.ts +159 -147
  1465. package/src/unstable/ai/ResponseIdTracker.ts +43 -4
  1466. package/src/unstable/ai/Telemetry.ts +42 -32
  1467. package/src/unstable/ai/Tokenizer.ts +13 -8
  1468. package/src/unstable/ai/Tool.ts +154 -85
  1469. package/src/unstable/ai/Toolkit.ts +81 -84
  1470. package/src/unstable/ai/index.ts +42 -24
  1471. package/src/unstable/cli/Argument.ts +226 -134
  1472. package/src/unstable/cli/CliError.ts +96 -26
  1473. package/src/unstable/cli/CliOutput.ts +43 -13
  1474. package/src/unstable/cli/Command.ts +225 -125
  1475. package/src/unstable/cli/Completions.ts +7 -7
  1476. package/src/unstable/cli/Flag.ts +235 -142
  1477. package/src/unstable/cli/GlobalFlag.ts +42 -14
  1478. package/src/unstable/cli/HelpDoc.ts +35 -10
  1479. package/src/unstable/cli/Param.ts +328 -190
  1480. package/src/unstable/cli/Primitive.ts +79 -42
  1481. package/src/unstable/cli/Prompt.ts +210 -58
  1482. package/src/unstable/cli/internal/ansi.ts +13 -0
  1483. package/src/unstable/cli/internal/command.ts +17 -15
  1484. package/src/unstable/cli/internal/config.ts +3 -0
  1485. package/src/unstable/cli/internal/lexer.ts +11 -0
  1486. package/src/unstable/cluster/ClusterCron.ts +35 -1
  1487. package/src/unstable/cluster/ClusterError.ts +56 -7
  1488. package/src/unstable/cluster/ClusterMetrics.ts +39 -5
  1489. package/src/unstable/cluster/ClusterSchema.ts +61 -8
  1490. package/src/unstable/cluster/ClusterWorkflowEngine.ts +36 -3
  1491. package/src/unstable/cluster/DeliverAt.ts +39 -4
  1492. package/src/unstable/cluster/Entity.ts +110 -19
  1493. package/src/unstable/cluster/EntityAddress.ts +30 -2
  1494. package/src/unstable/cluster/EntityId.ts +18 -3
  1495. package/src/unstable/cluster/EntityProxy.ts +34 -2
  1496. package/src/unstable/cluster/EntityProxyServer.ts +44 -8
  1497. package/src/unstable/cluster/EntityResource.ts +43 -6
  1498. package/src/unstable/cluster/EntityType.ts +27 -3
  1499. package/src/unstable/cluster/Envelope.ts +128 -23
  1500. package/src/unstable/cluster/HttpRunner.ts +88 -13
  1501. package/src/unstable/cluster/K8sHttpClient.ts +49 -6
  1502. package/src/unstable/cluster/MachineId.ts +24 -3
  1503. package/src/unstable/cluster/Message.ts +102 -13
  1504. package/src/unstable/cluster/MessageStorage.ts +128 -22
  1505. package/src/unstable/cluster/Reply.ts +101 -12
  1506. package/src/unstable/cluster/Runner.ts +47 -17
  1507. package/src/unstable/cluster/RunnerAddress.ts +34 -2
  1508. package/src/unstable/cluster/RunnerHealth.ts +40 -12
  1509. package/src/unstable/cluster/RunnerServer.ts +31 -4
  1510. package/src/unstable/cluster/RunnerStorage.ts +42 -5
  1511. package/src/unstable/cluster/Runners.ts +73 -10
  1512. package/src/unstable/cluster/ShardId.ts +51 -5
  1513. package/src/unstable/cluster/Sharding.ts +35 -4
  1514. package/src/unstable/cluster/ShardingConfig.ts +76 -11
  1515. package/src/unstable/cluster/ShardingRegistrationEvent.ts +31 -7
  1516. package/src/unstable/cluster/SingleRunner.ts +23 -1
  1517. package/src/unstable/cluster/Singleton.ts +15 -1
  1518. package/src/unstable/cluster/SingletonAddress.ts +21 -1
  1519. package/src/unstable/cluster/Snowflake.ts +89 -19
  1520. package/src/unstable/cluster/SocketRunner.ts +29 -2
  1521. package/src/unstable/cluster/SqlMessageStorage.ts +27 -3
  1522. package/src/unstable/cluster/SqlRunnerStorage.ts +46 -7
  1523. package/src/unstable/cluster/TestRunner.ts +18 -1
  1524. package/src/unstable/cluster/internal/hash.ts +12 -0
  1525. package/src/unstable/devtools/DevTools.ts +26 -3
  1526. package/src/unstable/devtools/DevToolsClient.ts +32 -5
  1527. package/src/unstable/devtools/DevToolsSchema.ts +201 -44
  1528. package/src/unstable/devtools/DevToolsServer.ts +27 -2
  1529. package/src/unstable/encoding/Msgpack.ts +97 -12
  1530. package/src/unstable/encoding/Ndjson.ts +149 -21
  1531. package/src/unstable/encoding/Sse.ts +109 -18
  1532. package/src/unstable/eventlog/Event.ts +131 -30
  1533. package/src/unstable/eventlog/EventGroup.ts +50 -17
  1534. package/src/unstable/eventlog/EventJournal.ts +120 -20
  1535. package/src/unstable/eventlog/EventLog.ts +151 -31
  1536. package/src/unstable/eventlog/EventLogEncryption.ts +42 -6
  1537. package/src/unstable/eventlog/EventLogMessage.ts +92 -18
  1538. package/src/unstable/eventlog/EventLogRemote.ts +54 -8
  1539. package/src/unstable/eventlog/EventLogServer.ts +33 -3
  1540. package/src/unstable/eventlog/EventLogServerEncrypted.ts +52 -6
  1541. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +90 -16
  1542. package/src/unstable/eventlog/EventLogSessionAuth.ts +77 -15
  1543. package/src/unstable/eventlog/SqlEventJournal.ts +28 -2
  1544. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +32 -3
  1545. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +28 -2
  1546. package/src/unstable/http/Cookies.ts +156 -77
  1547. package/src/unstable/http/Etag.ts +40 -7
  1548. package/src/unstable/http/FetchHttpClient.ts +33 -4
  1549. package/src/unstable/http/FindMyWay.ts +1 -1
  1550. package/src/unstable/http/Headers.ts +252 -50
  1551. package/src/unstable/http/HttpBody.ts +130 -28
  1552. package/src/unstable/http/HttpClient.ts +206 -97
  1553. package/src/unstable/http/HttpClientError.ts +80 -12
  1554. package/src/unstable/http/HttpClientRequest.ts +320 -102
  1555. package/src/unstable/http/HttpClientResponse.ts +59 -16
  1556. package/src/unstable/http/HttpEffect.ts +66 -18
  1557. package/src/unstable/http/HttpIncomingMessage.ts +47 -7
  1558. package/src/unstable/http/HttpMethod.ts +35 -5
  1559. package/src/unstable/http/HttpMiddleware.ts +63 -16
  1560. package/src/unstable/http/HttpPlatform.ts +35 -4
  1561. package/src/unstable/http/HttpRouter.ts +221 -57
  1562. package/src/unstable/http/HttpServer.ts +152 -23
  1563. package/src/unstable/http/HttpServerError.ts +90 -10
  1564. package/src/unstable/http/HttpServerRequest.ts +136 -32
  1565. package/src/unstable/http/HttpServerRespondable.ts +49 -6
  1566. package/src/unstable/http/HttpServerResponse.ts +395 -72
  1567. package/src/unstable/http/HttpStaticServer.ts +22 -4
  1568. package/src/unstable/http/HttpTraceContext.ts +53 -6
  1569. package/src/unstable/http/Multipart.ts +179 -29
  1570. package/src/unstable/http/Multipasta/HeadersParser.ts +1 -1
  1571. package/src/unstable/http/Multipasta/Node.ts +1 -1
  1572. package/src/unstable/http/Multipasta/Search.ts +1 -1
  1573. package/src/unstable/http/Multipasta/Web.ts +1 -1
  1574. package/src/unstable/http/Multipasta.ts +1 -1
  1575. package/src/unstable/http/Template.ts +53 -0
  1576. package/src/unstable/http/Url.ts +56 -42
  1577. package/src/unstable/http/UrlParams.ts +233 -49
  1578. package/src/unstable/httpapi/HttpApi.ts +49 -14
  1579. package/src/unstable/httpapi/HttpApiBuilder.ts +86 -20
  1580. package/src/unstable/httpapi/HttpApiClient.ts +80 -16
  1581. package/src/unstable/httpapi/HttpApiEndpoint.ts +238 -59
  1582. package/src/unstable/httpapi/HttpApiError.ts +100 -1
  1583. package/src/unstable/httpapi/HttpApiGroup.ts +87 -20
  1584. package/src/unstable/httpapi/HttpApiMiddleware.ts +113 -23
  1585. package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
  1586. package/src/unstable/httpapi/HttpApiSchema.ts +67 -30
  1587. package/src/unstable/httpapi/HttpApiSecurity.ts +74 -17
  1588. package/src/unstable/httpapi/HttpApiSwagger.ts +24 -2
  1589. package/src/unstable/httpapi/HttpApiTest.ts +31 -3
  1590. package/src/unstable/httpapi/OpenApi.ts +115 -15
  1591. package/src/unstable/observability/Otlp.ts +33 -3
  1592. package/src/unstable/observability/OtlpExporter.ts +32 -1
  1593. package/src/unstable/observability/OtlpLogger.ts +31 -2
  1594. package/src/unstable/observability/OtlpMetrics.ts +37 -4
  1595. package/src/unstable/observability/OtlpResource.ts +68 -12
  1596. package/src/unstable/observability/OtlpSerialization.ts +28 -3
  1597. package/src/unstable/observability/OtlpTracer.ts +38 -2
  1598. package/src/unstable/observability/PrometheusMetrics.ts +32 -12
  1599. package/src/unstable/observability/index.ts +2 -1
  1600. package/src/unstable/persistence/KeyValueStore.ts +108 -28
  1601. package/src/unstable/persistence/Persistable.ts +76 -15
  1602. package/src/unstable/persistence/PersistedCache.ts +27 -2
  1603. package/src/unstable/persistence/PersistedQueue.ts +98 -16
  1604. package/src/unstable/persistence/Persistence.ts +97 -16
  1605. package/src/unstable/persistence/RateLimiter.ts +98 -22
  1606. package/src/unstable/persistence/Redis.ts +42 -5
  1607. package/src/unstable/process/ChildProcess.ts +100 -79
  1608. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1609. package/src/unstable/process/index.ts +2 -1
  1610. package/src/unstable/reactivity/AsyncResult.ts +202 -61
  1611. package/src/unstable/reactivity/Atom.ts +597 -143
  1612. package/src/unstable/reactivity/AtomHttpApi.ts +41 -2
  1613. package/src/unstable/reactivity/AtomRef.ts +51 -7
  1614. package/src/unstable/reactivity/AtomRegistry.ts +141 -22
  1615. package/src/unstable/reactivity/AtomRpc.ts +36 -2
  1616. package/src/unstable/reactivity/Hydration.ts +45 -5
  1617. package/src/unstable/reactivity/Reactivity.ts +95 -13
  1618. package/src/unstable/rpc/Rpc.ts +255 -56
  1619. package/src/unstable/rpc/RpcClient.ts +108 -20
  1620. package/src/unstable/rpc/RpcClientError.ts +26 -2
  1621. package/src/unstable/rpc/RpcGroup.ts +51 -8
  1622. package/src/unstable/rpc/RpcMessage.ts +128 -32
  1623. package/src/unstable/rpc/RpcMiddleware.ts +100 -20
  1624. package/src/unstable/rpc/RpcSchema.ts +38 -4
  1625. package/src/unstable/rpc/RpcSerialization.ts +60 -13
  1626. package/src/unstable/rpc/RpcServer.ts +108 -25
  1627. package/src/unstable/rpc/RpcTest.ts +20 -1
  1628. package/src/unstable/rpc/RpcWorker.ts +42 -8
  1629. package/src/unstable/rpc/Utils.ts +31 -0
  1630. package/src/unstable/schema/Model.ts +148 -52
  1631. package/src/unstable/schema/VariantSchema.ts +104 -24
  1632. package/src/unstable/socket/Socket.ts +168 -35
  1633. package/src/unstable/socket/SocketServer.ts +58 -10
  1634. package/src/unstable/sql/Migrator.ts +57 -5
  1635. package/src/unstable/sql/SqlClient.ts +55 -2
  1636. package/src/unstable/sql/SqlConnection.ts +31 -0
  1637. package/src/unstable/sql/SqlError.ts +117 -0
  1638. package/src/unstable/sql/SqlModel.ts +26 -5
  1639. package/src/unstable/sql/SqlResolver.ts +56 -13
  1640. package/src/unstable/sql/SqlSchema.ts +29 -8
  1641. package/src/unstable/sql/SqlStream.ts +23 -0
  1642. package/src/unstable/sql/Statement.ts +141 -0
  1643. package/src/unstable/sql/index.ts +1 -1
  1644. package/src/unstable/workers/Transferable.ts +65 -13
  1645. package/src/unstable/workers/Worker.ts +60 -8
  1646. package/src/unstable/workers/WorkerError.ts +50 -9
  1647. package/src/unstable/workers/WorkerRunner.ts +32 -3
  1648. package/src/unstable/workers/index.ts +1 -1
  1649. package/src/unstable/workflow/Activity.ts +62 -11
  1650. package/src/unstable/workflow/DurableClock.ts +26 -3
  1651. package/src/unstable/workflow/DurableDeferred.ts +146 -31
  1652. package/src/unstable/workflow/DurableQueue.ts +366 -0
  1653. package/src/unstable/workflow/Workflow.ts +122 -32
  1654. package/src/unstable/workflow/WorkflowEngine.ts +40 -5
  1655. package/src/unstable/workflow/WorkflowProxy.ts +32 -2
  1656. package/src/unstable/workflow/WorkflowProxyServer.ts +40 -6
  1657. package/src/unstable/workflow/index.ts +5 -0
package/dist/Channel.js CHANGED
@@ -28,7 +28,8 @@
28
28
  * 2. **Sequencing**: Use the result of one channel to create another
29
29
  * 3. **Concatenating**: Combine multiple channels into a single channel
30
30
  *
31
- * @example
31
+ * **Example** (Creating a simple channel)
32
+ *
32
33
  * ```ts
33
34
  * import { Channel } from "effect"
34
35
  *
@@ -41,7 +42,8 @@
41
42
  * // Running the channel would output: 84
42
43
  * ```
43
44
  *
44
- * @example
45
+ * **Example** (Transforming array-backed channels)
46
+ *
45
47
  * ```ts
46
48
  * import { Channel } from "effect"
47
49
  *
@@ -85,14 +87,18 @@ import * as String from "./String.js";
85
87
  import * as Take from "./Take.js";
86
88
  import { ParentSpan } from "./Tracer.js";
87
89
  /**
88
- * @since 4.0.0
90
+ * Runtime identifier stored on `Channel` values and used by `isChannel` to
91
+ * recognize them.
92
+ *
89
93
  * @category Type Identifiers
94
+ * @since 4.0.0
90
95
  */
91
96
  export const TypeId = "~effect/Channel";
92
97
  /**
93
98
  * Tests if a value is a `Channel`.
94
99
  *
95
- * @example
100
+ * **Example** (Checking for channels)
101
+ *
96
102
  * ```ts
97
103
  * import { Channel } from "effect"
98
104
  *
@@ -123,7 +129,8 @@ const ChannelProto = {
123
129
  /**
124
130
  * Creates a `Channel` from a transformation function that operates on upstream pulls.
125
131
  *
126
- * @example
132
+ * **Example** (Creating channels from transforms)
133
+ *
127
134
  * ```ts
128
135
  * import { Channel, Effect } from "effect"
129
136
  *
@@ -143,7 +150,8 @@ export const fromTransform = transform => {
143
150
  /**
144
151
  * Transforms a Channel by applying a function to its Pull implementation.
145
152
  *
146
- * @example
153
+ * **Example** (Transforming pull behavior)
154
+ *
147
155
  * ```ts
148
156
  * import { Channel, Effect } from "effect"
149
157
  *
@@ -167,7 +175,8 @@ export const transformPull = (self, f) => fromTransform((upstream, scope) => Eff
167
175
  /**
168
176
  * Creates a `Channel` from an `Effect` that produces a `Pull`.
169
177
  *
170
- * @example
178
+ * **Example** (Creating channels from pulls)
179
+ *
171
180
  * ```ts
172
181
  * import { Channel, Effect } from "effect"
173
182
  *
@@ -185,8 +194,8 @@ export const fromPull = effect => fromTransform((_, __) => effect);
185
194
  * pulls, but also provides a forked scope that closes when the resulting
186
195
  * Channel completes.
187
196
  *
188
- * @since 4.0.0
189
197
  * @category constructors
198
+ * @since 4.0.0
190
199
  */
191
200
  export const fromTransformBracket = f => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
192
201
  const closableScope = Scope.forkUnsafe(scope);
@@ -197,7 +206,8 @@ export const fromTransformBracket = f => fromTransform(Effect.fnUntraced(functio
197
206
  /**
198
207
  * Converts a `Channel` back to its underlying transformation function.
199
208
  *
200
- * @example
209
+ * **Example** (Extracting channel transforms)
210
+ *
201
211
  * ```ts
202
212
  * import { Channel } from "effect"
203
213
  *
@@ -213,7 +223,8 @@ export const toTransform = channel => channel.transform;
213
223
  /**
214
224
  * The default chunk size used by channels for batching operations.
215
225
  *
216
- * @example
226
+ * **Example** (Reading the default chunk size)
227
+ *
217
228
  * ```ts
218
229
  * import { Channel } from "effect"
219
230
  *
@@ -231,7 +242,8 @@ const asyncQueue = (scope, f, options) => Queue.make({
231
242
  /**
232
243
  * Creates a `Channel` that interacts with a callback function using a queue.
233
244
  *
234
- * @example
245
+ * **Example** (Creating channels from callbacks)
246
+ *
235
247
  * ```ts
236
248
  * import { Channel, Effect, Queue } from "effect"
237
249
  *
@@ -251,7 +263,8 @@ export const callback = (f, options) => fromTransform((_, scope) => Effect.map(a
251
263
  /**
252
264
  * Creates a `Channel` that interacts with a callback function using a queue, emitting arrays.
253
265
  *
254
- * @example
266
+ * **Example** (Creating array channels from callbacks)
267
+ *
255
268
  * ```ts
256
269
  * import { Channel, Effect, Queue } from "effect"
257
270
  *
@@ -269,7 +282,8 @@ export const callbackArray = (f, options) => fromTransform((_, scope) => Effect.
269
282
  /**
270
283
  * Creates a `Channel` that lazily evaluates to another channel.
271
284
  *
272
- * @example
285
+ * **Example** (Suspending channel creation)
286
+ *
273
287
  * ```ts
274
288
  * import { Channel } from "effect"
275
289
  *
@@ -282,9 +296,15 @@ export const callbackArray = (f, options) => fromTransform((_, scope) => Effect.
282
296
  */
283
297
  export const suspend = evaluate => fromTransform((upstream, scope) => Effect.suspend(() => toTransform(evaluate())(upstream, scope)));
284
298
  /**
285
- * Creates a `Channel` with resource management using acquire-use-release pattern.
299
+ * Acquires a resource, uses it to build a `Channel`, and guarantees that
300
+ * `release` runs with the channel's `Exit` when the channel completes, fails,
301
+ * or is interrupted.
302
+ *
303
+ * Acquisition is uninterruptible. If acquisition fails, `use` is not run and
304
+ * `release` is not registered.
305
+ *
306
+ * **Example** (Managing resources with acquire-use-release)
286
307
  *
287
- * @example
288
308
  * ```ts
289
309
  * import { Channel, Effect } from "effect"
290
310
  *
@@ -306,9 +326,15 @@ export const acquireUseRelease = (acquire, use, release) => fromTransformBracket
306
326
  return yield* toTransform(use(value))(upstream, scope);
307
327
  }));
308
328
  /**
309
- * Creates a `Channel` with resource management using acquire-release pattern.
329
+ * Acquires a resource, emits the acquired value as a single channel element,
330
+ * and registers `release` in the channel scope.
331
+ *
332
+ * The release action runs when the channel scope closes and receives the scope
333
+ * exit. If acquisition fails, no element is emitted and `release` is not
334
+ * registered.
335
+ *
336
+ * **Example** (Managing resources with acquire-release)
310
337
  *
311
- * @example
312
338
  * ```ts
313
339
  * import { Channel, Effect } from "effect"
314
340
  *
@@ -325,7 +351,8 @@ export const acquireRelease = /*#__PURE__*/dual(2, (self, release) => unwrap(Eff
325
351
  /**
326
352
  * Creates a `Channel` from an iterator.
327
353
  *
328
- * @example
354
+ * **Example** (Creating channels from iterators)
355
+ *
329
356
  * ```ts
330
357
  * import { Channel } from "effect"
331
358
  *
@@ -347,7 +374,8 @@ export const fromIterator = iterator => fromPull(Effect.sync(() => {
347
374
  /**
348
375
  * Creates a `Channel` that emits all elements from an array.
349
376
  *
350
- * @example
377
+ * **Example** (Creating channels from arrays)
378
+ *
351
379
  * ```ts
352
380
  * import { Channel } from "effect"
353
381
  *
@@ -365,7 +393,8 @@ export const fromArray = array => fromPull(Effect.sync(() => {
365
393
  /**
366
394
  * Creates a `Channel` that emits all elements from a chunk.
367
395
  *
368
- * @example
396
+ * **Example** (Creating channels from chunks)
397
+ *
369
398
  * ```ts
370
399
  * import { Channel, Chunk } from "effect"
371
400
  *
@@ -381,7 +410,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
381
410
  /**
382
411
  * Creates a `Channel` from an iterator that emits arrays of elements.
383
412
  *
384
- * @example
413
+ * **Example** (Batching iterator output)
414
+ *
385
415
  * ```ts
386
416
  * import { Channel } from "effect"
387
417
  *
@@ -402,7 +432,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
402
432
  * // This will emit arrays: [0, 1], [2], then complete with "finished"
403
433
  * ```
404
434
  *
405
- * @example
435
+ * **Example** (Batching generator output)
436
+ *
406
437
  * ```ts
407
438
  * import { Channel } from "effect"
408
439
  *
@@ -419,8 +450,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
419
450
  * // Emits: [0, 1, 1], [2, 3], then completes
420
451
  * ```
421
452
  *
422
- * @since 2.0.0
423
453
  * @category constructors
454
+ * @since 2.0.0
424
455
  */
425
456
  export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => fromPull(Effect.sync(() => {
426
457
  const iter = iterator();
@@ -445,7 +476,8 @@ export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => fro
445
476
  /**
446
477
  * Creates a `Channel` that emits all elements from an iterable.
447
478
  *
448
- * @example
479
+ * **Example** (Creating channels from iterables)
480
+ *
449
481
  * ```ts
450
482
  * import { Channel } from "effect"
451
483
  *
@@ -461,7 +493,8 @@ export const fromIterable = iterable => fromIterator(() => iterable[Symbol.itera
461
493
  /**
462
494
  * Creates a `Channel` that emits arrays of elements from an iterable.
463
495
  *
464
- * @example
496
+ * **Example** (Batching iterable output)
497
+ *
465
498
  * ```ts
466
499
  * import { Channel } from "effect"
467
500
  *
@@ -477,7 +510,8 @@ export const fromIterableArray = (iterable, chunkSize = DefaultChunkSize) => fro
477
510
  /**
478
511
  * Creates a `Channel` that emits a single value and then ends.
479
512
  *
480
- * @example
513
+ * **Example** (Creating channels that succeed)
514
+ *
481
515
  * ```ts
482
516
  * import { Channel } from "effect"
483
517
  *
@@ -492,7 +526,8 @@ export const succeed = value => fromEffect(Effect.succeed(value));
492
526
  /**
493
527
  * Creates a `Channel` that immediately ends with the specified value.
494
528
  *
495
- * @example
529
+ * **Example** (Ending with a value)
530
+ *
496
531
  * ```ts
497
532
  * import { Channel } from "effect"
498
533
  *
@@ -514,12 +549,18 @@ export const endSync = evaluate => fromPull(Effect.sync(() => Cause.done(evaluat
514
549
  /**
515
550
  * Creates a `Channel` that emits a single value computed by a lazy evaluation.
516
551
  *
517
- * @example
552
+ * **Example** (Computing values lazily)
553
+ *
518
554
  * ```ts
519
555
  * import { Channel } from "effect"
520
556
  *
521
- * const channel = Channel.sync(() => Math.random())
522
- * // Emits a random number computed when the channel runs
557
+ * let requests = 0
558
+ *
559
+ * const channel = Channel.sync(() => {
560
+ * requests += 1
561
+ * return `request-${requests}`
562
+ * })
563
+ * // Emits "request-1" when the channel runs for the first time
523
564
  * ```
524
565
  *
525
566
  * @category constructors
@@ -529,7 +570,8 @@ export const sync = evaluate => fromEffect(Effect.sync(evaluate));
529
570
  /**
530
571
  * Represents an Channel that emits no elements
531
572
  *
532
- * @example
573
+ * **Example** (Using empty channels)
574
+ *
533
575
  * ```ts
534
576
  * import { Channel } from "effect"
535
577
  *
@@ -545,14 +587,15 @@ export const sync = evaluate => fromEffect(Effect.sync(evaluate));
545
587
  * shouldEmit ? Channel.succeed("data") : Channel.empty
546
588
  * ```
547
589
  *
548
- * @since 2.0.0
549
590
  * @category constructors
591
+ * @since 2.0.0
550
592
  */
551
593
  export const empty = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(/*#__PURE__*/Cause.done()));
552
594
  /**
553
595
  * Represents an Channel that never completes
554
596
  *
555
- * @example
597
+ * **Example** (Using non-terminating channels)
598
+ *
556
599
  * ```ts
557
600
  * import { Channel } from "effect"
558
601
  *
@@ -570,14 +613,15 @@ export const empty = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(/*#__PURE
570
613
  * shouldComplete ? Channel.succeed("done") : Channel.never
571
614
  * ```
572
615
  *
573
- * @since 2.0.0
574
616
  * @category constructors
617
+ * @since 2.0.0
575
618
  */
576
619
  export const never = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(Effect.never));
577
620
  /**
578
621
  * Constructs a channel that fails immediately with the specified error.
579
622
  *
580
- * @example
623
+ * **Example** (Failing with an error)
624
+ *
581
625
  * ```ts
582
626
  * import { Channel } from "effect"
583
627
  *
@@ -600,15 +644,16 @@ export const never = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(Effect.ne
600
644
  * )
601
645
  * ```
602
646
  *
603
- * @since 2.0.0
604
647
  * @category constructors
648
+ * @since 2.0.0
605
649
  */
606
650
  export const fail = error => fromPull(Effect.succeed(Effect.fail(error)));
607
651
  /**
608
652
  * Constructs a channel that fails immediately with the specified lazily
609
653
  * evaluated error.
610
654
  *
611
- * @example
655
+ * **Example** (Failing with a lazy error)
656
+ *
612
657
  * ```ts
613
658
  * import { Channel } from "effect"
614
659
  *
@@ -619,25 +664,28 @@ export const fail = error => fromPull(Effect.succeed(Effect.fail(error)));
619
664
  * })
620
665
  *
621
666
  * // The error computation is deferred until the channel runs
622
- * const conditionalError = Channel.failSync(() =>
623
- * Math.random() > 0.5 ? "Error A" : "Error B"
624
- * )
667
+ * let attempts = 0
668
+ * const conditionalError = Channel.failSync(() => {
669
+ * attempts += 1
670
+ * return `Error after attempt ${attempts}`
671
+ * })
625
672
  *
626
673
  * // Use with expensive error construction
627
674
  * const expensiveError = Channel.failSync(() => {
628
- * const timestamp = Date.now()
629
- * return new Error(`Failed at: ${timestamp}`)
675
+ * const requestId = "request-123"
676
+ * return new Error(`Failed while processing ${requestId}`)
630
677
  * })
631
678
  * ```
632
679
  *
633
- * @since 2.0.0
634
680
  * @category constructors
681
+ * @since 2.0.0
635
682
  */
636
683
  export const failSync = evaluate => fromPull(Effect.failSync(evaluate));
637
684
  /**
638
685
  * Constructs a channel that fails immediately with the specified `Cause`.
639
686
  *
640
- * @example
687
+ * **Example** (Failing with causes)
688
+ *
641
689
  * ```ts
642
690
  * import { Cause, Channel } from "effect"
643
691
  *
@@ -654,39 +702,42 @@ export const failSync = evaluate => fromPull(Effect.failSync(evaluate));
654
702
  * const simpleFail = Channel.failCause(failCause)
655
703
  * ```
656
704
  *
657
- * @since 2.0.0
658
705
  * @category constructors
706
+ * @since 2.0.0
659
707
  */
660
708
  export const failCause = cause => fromPull(Effect.failCause(cause));
661
709
  /**
662
710
  * Constructs a channel that fails immediately with the specified lazily
663
711
  * evaluated `Cause`.
664
712
  *
665
- * @example
713
+ * **Example** (Failing with lazy causes)
714
+ *
666
715
  * ```ts
667
716
  * import { Cause, Channel } from "effect"
668
717
  *
669
718
  * // Create a channel that fails with a lazily computed cause
719
+ * let attempts = 0
670
720
  * const failedChannel = Channel.failCauseSync(() => {
671
- * const errorType = Math.random() > 0.5 ? "A" : "B"
672
- * return Cause.fail(`Runtime error ${errorType}`)
721
+ * attempts += 1
722
+ * return Cause.fail(`Runtime error after attempt ${attempts}`)
673
723
  * })
674
724
  *
675
725
  * // Create a channel with die cause computation
676
726
  * const dieCauseChannel = Channel.failCauseSync(() => {
677
- * const timestamp = Date.now()
678
- * return Cause.die(`Error at ${timestamp}`)
727
+ * const operation = "load-profile"
728
+ * return Cause.die(`Unexpected defect during ${operation}`)
679
729
  * })
680
730
  * ```
681
731
  *
682
- * @since 2.0.0
683
732
  * @category constructors
733
+ * @since 2.0.0
684
734
  */
685
735
  export const failCauseSync = evaluate => fromPull(Effect.failCauseSync(evaluate));
686
736
  /**
687
737
  * Constructs a channel that fails immediately with the specified defect.
688
738
  *
689
- * @example
739
+ * **Example** (Dying with defects)
740
+ *
690
741
  * ```ts
691
742
  * import { Channel } from "effect"
692
743
  *
@@ -703,14 +754,15 @@ export const failCauseSync = evaluate => fromPull(Effect.failCauseSync(evaluate)
703
754
  * })
704
755
  * ```
705
756
  *
706
- * @since 2.0.0
707
757
  * @category constructors
758
+ * @since 2.0.0
708
759
  */
709
760
  export const die = defect => failCause(Cause.die(defect));
710
761
  /**
711
762
  * Use an effect to write a single value to the channel.
712
763
  *
713
- * @example
764
+ * **Example** (Creating channels from effects)
765
+ *
714
766
  * ```ts
715
767
  * import { Channel, Data, Effect } from "effect"
716
768
  *
@@ -740,8 +792,8 @@ export const die = defect => failCause(Cause.die(defect));
740
792
  * )
741
793
  * ```
742
794
  *
743
- * @since 2.0.0
744
795
  * @category constructors
796
+ * @since 2.0.0
745
797
  */
746
798
  export const fromEffect = effect => fromPull(Effect.sync(() => {
747
799
  let done = false;
@@ -752,26 +804,38 @@ export const fromEffect = effect => fromPull(Effect.sync(() => {
752
804
  });
753
805
  }));
754
806
  /**
755
- * @since 4.0.0
807
+ * Creates a channel that evaluates an effect and uses its successful value as
808
+ * the channel's done value without emitting any output elements.
809
+ *
810
+ * If the effect fails, the channel fails with the effect's error.
811
+ *
756
812
  * @category constructors
813
+ * @since 4.0.0
757
814
  */
758
815
  export const fromEffectDone = effect => fromPull(Effect.succeed(Effect.flatMap(effect, Cause.done)));
759
816
  /**
760
817
  * Use an effect and discard its result.
761
818
  *
762
- * @since 4.0.0
763
819
  * @category constructors
820
+ * @since 4.0.0
764
821
  */
765
822
  export const fromEffectDrain = effect => fromPull(Effect.flatMap(effect, () => Cause.done()));
766
823
  /**
767
- * @since 4.0.0
824
+ * Creates a channel from an effect that produces a `Take`.
825
+ *
826
+ * A successful `Take` emits a non-empty array of output elements. A failed
827
+ * `Take` fails the channel. A done `Take` completes the channel with its done
828
+ * value.
829
+ *
768
830
  * @category constructors
831
+ * @since 4.0.0
769
832
  */
770
833
  export const fromEffectTake = effect => fromPull(Effect.succeed(Effect.flatMap(effect, Take.toPull)));
771
834
  /**
772
835
  * Create a channel from a queue
773
836
  *
774
- * @example
837
+ * **Example** (Creating channels from queues)
838
+ *
775
839
  * ```ts
776
840
  * import { Channel, Data, Effect, Queue } from "effect"
777
841
  *
@@ -803,14 +867,15 @@ export const fromEffectTake = effect => fromPull(Effect.succeed(Effect.flatMap(e
803
867
  * })
804
868
  * ```
805
869
  *
806
- * @since 4.0.0
807
870
  * @category constructors
871
+ * @since 4.0.0
808
872
  */
809
873
  export const fromQueue = queue => fromPull(Effect.succeed(Queue.take(queue)));
810
874
  /**
811
875
  * Create a channel from a queue that emits arrays of elements
812
876
  *
813
- * @example
877
+ * **Example** (Creating batched channels from queues)
878
+ *
814
879
  * ```ts
815
880
  * import { Channel, Data, Effect, Queue } from "effect"
816
881
  *
@@ -846,19 +911,23 @@ export const fromQueue = queue => fromPull(Effect.succeed(Queue.take(queue)));
846
911
  * })
847
912
  * ```
848
913
  *
849
- * @since 4.0.0
850
914
  * @category constructors
915
+ * @since 4.0.0
851
916
  */
852
917
  export const fromQueueArray = queue => fromPull(Effect.succeed(Queue.takeAll(queue)));
853
918
  /**
854
- * @since 2.0.0
919
+ * Creates a channel that forwards upstream input elements, input errors, and
920
+ * the upstream done value unchanged.
921
+ *
855
922
  * @category Constructors
923
+ * @since 2.0.0
856
924
  */
857
925
  export const identity = () => fromTransform((upstream, _scope) => Effect.succeed(upstream));
858
926
  /**
859
927
  * Create a channel from a PubSub subscription
860
928
  *
861
- * @example
929
+ * **Example** (Creating channels from subscriptions)
930
+ *
862
931
  * ```ts
863
932
  * import { Channel, Data, Effect, PubSub } from "effect"
864
933
  *
@@ -895,8 +964,8 @@ export const identity = () => fromTransform((upstream, _scope) => Effect.succeed
895
964
  * })
896
965
  * ```
897
966
  *
898
- * @since 4.0.0
899
967
  * @category constructors
968
+ * @since 4.0.0
900
969
  */
901
970
  export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.onInterrupt(PubSub.take(subscription), () => Cause.done())));
902
971
  /**
@@ -909,7 +978,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
909
978
  * @param subscription - The PubSub subscription to read from
910
979
  * @param chunkSize - The maximum number of elements to read in each chunk (default: 4096)
911
980
  *
912
- * @example
981
+ * **Example** (Batching subscription values)
982
+ *
913
983
  * ```ts
914
984
  * import { Channel, Data, Effect, PubSub } from "effect"
915
985
  *
@@ -935,7 +1005,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
935
1005
  * })
936
1006
  * ```
937
1007
  *
938
- * @example
1008
+ * **Example** (Processing subscription values in batches)
1009
+ *
939
1010
  * ```ts
940
1011
  * import { Channel, Data, Effect, PubSub } from "effect"
941
1012
  *
@@ -960,13 +1031,10 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
960
1031
  * })
961
1032
  * ```
962
1033
  *
963
- * @example
964
- * ```ts
965
- * import { Channel, Data, Effect, PubSub } from "effect"
1034
+ * **Example** (Aggregating subscription metrics)
966
1035
  *
967
- * class MetricsError extends Data.TaggedError("MetricsError")<{
968
- * readonly cause: string
969
- * }> {}
1036
+ * ```ts
1037
+ * import { Channel, Effect, PubSub } from "effect"
970
1038
  *
971
1039
  * const metricsAggregator = Effect.gen(function*() {
972
1040
  * const metricsPubSub = yield* PubSub.bounded<
@@ -991,7 +1059,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
991
1059
  * average: avg,
992
1060
  * min,
993
1061
  * max,
994
- * timestamp: Date.now()
1062
+ * firstTimestamp: Math.min(...metrics.map((m) => m.timestamp)),
1063
+ * lastTimestamp: Math.max(...metrics.map((m) => m.timestamp))
995
1064
  * }
996
1065
  * })
997
1066
  *
@@ -999,8 +1068,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
999
1068
  * })
1000
1069
  * ```
1001
1070
  *
1002
- * @since 4.0.0
1003
1071
  * @category constructors
1072
+ * @since 4.0.0
1004
1073
  */
1005
1074
  export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Effect.onInterrupt(PubSub.takeAll(subscription), () => Cause.done())));
1006
1075
  /**
@@ -1012,7 +1081,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1012
1081
  *
1013
1082
  * @param pubsub - The PubSub to read from
1014
1083
  *
1015
- * @example
1084
+ * **Example** (Creating channels from PubSubs)
1085
+ *
1016
1086
  * ```ts
1017
1087
  * import { Channel, Data, Effect, PubSub } from "effect"
1018
1088
  *
@@ -1036,13 +1106,10 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1036
1106
  * })
1037
1107
  * ```
1038
1108
  *
1039
- * @example
1040
- * ```ts
1041
- * import { Channel, Data, Effect, PubSub } from "effect"
1109
+ * **Example** (Streaming PubSub notifications)
1042
1110
  *
1043
- * class NotificationError extends Data.TaggedError("NotificationError")<{
1044
- * readonly reason: string
1045
- * }> {}
1111
+ * ```ts
1112
+ * import { Channel, Effect, PubSub } from "effect"
1046
1113
  *
1047
1114
  * const notificationService = Effect.gen(function*() {
1048
1115
  * const notificationPubSub = yield* PubSub.bounded<string>(50)
@@ -1051,24 +1118,21 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1051
1118
  * const notificationChannel = Channel.fromPubSub(notificationPubSub)
1052
1119
  *
1053
1120
  * // Transform notifications to add timestamps
1121
+ * const receivedAt = "2024-01-01T00:00:00.000Z"
1054
1122
  * const timestampedChannel = Channel.map(notificationChannel, (message) => ({
1055
1123
  * message,
1056
- * timestamp: new Date().toISOString(),
1057
- * id: Math.random().toString(36).substr(2, 9)
1124
+ * receivedAt,
1125
+ * id: `notification:${message}`
1058
1126
  * }))
1059
1127
  *
1060
1128
  * return timestampedChannel
1061
1129
  * })
1062
1130
  * ```
1063
1131
  *
1064
- * @example
1065
- * ```ts
1066
- * import { Channel, Data, Effect, PubSub } from "effect"
1132
+ * **Example** (Processing PubSub events)
1067
1133
  *
1068
- * class EventProcessingError extends Data.TaggedError("EventProcessingError")<{
1069
- * readonly eventType: string
1070
- * readonly cause: string
1071
- * }> {}
1134
+ * ```ts
1135
+ * import { Channel, Effect, PubSub } from "effect"
1072
1136
  *
1073
1137
  * interface DomainEvent {
1074
1138
  * readonly type: string
@@ -1088,7 +1152,7 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1088
1152
  * return {
1089
1153
  * ...event,
1090
1154
  * processed: true,
1091
- * processedAt: Date.now()
1155
+ * processedAt: event.timestamp + 1
1092
1156
  * }
1093
1157
  * }
1094
1158
  * return event
@@ -1098,8 +1162,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1098
1162
  * })
1099
1163
  * ```
1100
1164
  *
1101
- * @since 4.0.0
1102
1165
  * @category constructors
1166
+ * @since 4.0.0
1103
1167
  */
1104
1168
  export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscription));
1105
1169
  /**
@@ -1112,7 +1176,8 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1112
1176
  * @param pubsub - The PubSub to read from
1113
1177
  * @param chunkSize - The maximum number of elements to collect in each array (default: 4096)
1114
1178
  *
1115
- * @example
1179
+ * **Example** (Batching PubSub values)
1180
+ *
1116
1181
  * ```ts
1117
1182
  * import { Channel, Data, Effect, PubSub } from "effect"
1118
1183
  *
@@ -1137,20 +1202,17 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1137
1202
  * })
1138
1203
  * ```
1139
1204
  *
1140
- * @example
1141
- * ```ts
1142
- * import { Channel, Data, Effect, PubSub } from "effect"
1205
+ * **Example** (Processing PubSub orders in batches)
1143
1206
  *
1144
- * class OrderProcessingError extends Data.TaggedError("OrderProcessingError")<{
1145
- * readonly orderId: string
1146
- * readonly reason: string
1147
- * }> {}
1207
+ * ```ts
1208
+ * import { Channel, Effect, PubSub } from "effect"
1148
1209
  *
1149
1210
  * interface Order {
1150
1211
  * readonly id: string
1151
1212
  * readonly customerId: string
1152
1213
  * readonly items: ReadonlyArray<string>
1153
1214
  * readonly total: number
1215
+ * readonly submittedAt: number
1154
1216
  * }
1155
1217
  *
1156
1218
  * const orderBatchProcessor = Effect.gen(function*() {
@@ -1170,7 +1232,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1170
1232
  * batchSize: orderBatch.length,
1171
1233
  * totalRevenue,
1172
1234
  * uniqueCustomers: customerCount,
1173
- * processedAt: Date.now(),
1235
+ * firstSubmittedAt: Math.min(...orderBatch.map((order) => order.submittedAt)),
1174
1236
  * orders: orderBatch
1175
1237
  * }
1176
1238
  * })
@@ -1179,14 +1241,10 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1179
1241
  * })
1180
1242
  * ```
1181
1243
  *
1182
- * @example
1183
- * ```ts
1184
- * import { Channel, Data, Effect, PubSub } from "effect"
1244
+ * **Example** (Processing PubSub logs in batches)
1185
1245
  *
1186
- * class LogProcessingError extends Data.TaggedError("LogProcessingError")<{
1187
- * readonly batchId: string
1188
- * readonly cause: string
1189
- * }> {}
1246
+ * ```ts
1247
+ * import { Channel, Effect, PubSub } from "effect"
1190
1248
  *
1191
1249
  * interface LogEntry {
1192
1250
  * readonly timestamp: number
@@ -1213,7 +1271,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1213
1271
  * }
1214
1272
  *
1215
1273
  * return {
1216
- * batchId: Math.random().toString(36).substr(2, 9),
1274
+ * batchId: `${timeRange.start}-${timeRange.end}`,
1217
1275
  * totalEntries: logBatch.length,
1218
1276
  * errorCount,
1219
1277
  * warnCount,
@@ -1227,27 +1285,37 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1227
1285
  * })
1228
1286
  * ```
1229
1287
  *
1230
- * @since 4.0.0
1231
1288
  * @category constructors
1289
+ * @since 4.0.0
1232
1290
  */
1233
1291
  export const fromPubSubArray = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscriptionArray));
1234
1292
  /**
1235
- * @since 4.0.0
1293
+ * Subscribes to a `PubSub` of `Take` values and exposes them as a channel.
1294
+ *
1295
+ * Output `Take` values are emitted as non-empty arrays. Failed `Take` values
1296
+ * fail the channel. Done `Take` values complete the channel.
1297
+ *
1236
1298
  * @category constructors
1299
+ * @since 4.0.0
1237
1300
  */
1238
1301
  export const fromPubSubTake = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), sub => fromEffectTake(PubSub.take(sub))));
1239
1302
  /**
1240
1303
  * Creates a Channel from a Schedule.
1241
1304
  *
1242
- * @since 4.0.0
1243
1305
  * @category constructors
1306
+ * @since 4.0.0
1244
1307
  */
1245
1308
  export const fromSchedule = schedule => fromPull(Effect.map(Schedule.toStepWithSleep(schedule), step => step(void 0)));
1246
1309
  /**
1247
- * Creates a Channel from a AsyncIterable.
1310
+ * Creates a channel that pulls values from an `AsyncIterable`.
1311
+ *
1312
+ * Each yielded value is emitted as an output element. The iterator's return
1313
+ * value becomes the channel's done value. Thrown or rejected iterator errors
1314
+ * are converted with `onError`. If the channel scope closes early and the
1315
+ * iterator has a `return` method, that method is called.
1248
1316
  *
1249
- * @since 4.0.0
1250
1317
  * @category constructors
1318
+ * @since 4.0.0
1251
1319
  */
1252
1320
  export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnUntraced(function* (_, scope) {
1253
1321
  const iter = iterable[Symbol.asyncIterator]();
@@ -1260,16 +1328,22 @@ export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnU
1260
1328
  }), result => result.done ? Cause.done(result.value) : Effect.succeed(result.value));
1261
1329
  }));
1262
1330
  /**
1263
- * Creates a Channel from a AsyncIterable that emits arrays of elements.
1331
+ * Creates a channel from an `AsyncIterable`, emitting each yielded value as a
1332
+ * single-element non-empty array.
1333
+ *
1334
+ * The iterator's return value becomes the channel's done value. Thrown or
1335
+ * rejected iterator errors are converted with `onError`. If the channel scope
1336
+ * closes early and the iterator has a `return` method, that method is called.
1264
1337
  *
1265
- * @since 4.0.0
1266
1338
  * @category constructors
1339
+ * @since 4.0.0
1267
1340
  */
1268
1341
  export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterable(iterable, onError), Arr.of);
1269
1342
  /**
1270
1343
  * Maps the output of this channel using the specified function.
1271
1344
  *
1272
- * @example
1345
+ * **Example** (Mapping channel output)
1346
+ *
1273
1347
  * ```ts
1274
1348
  * import { Channel, Data } from "effect"
1275
1349
  *
@@ -1301,8 +1375,8 @@ export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterab
1301
1375
  * }))
1302
1376
  * ```
1303
1377
  *
1304
- * @since 2.0.0
1305
1378
  * @category Sequencing
1379
+ * @since 2.0.0
1306
1380
  */
1307
1381
  export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.sync(() => {
1308
1382
  let i = 0;
@@ -1311,26 +1385,29 @@ export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull =>
1311
1385
  /**
1312
1386
  * Maps the done value of this channel using the specified function.
1313
1387
  *
1314
- * @since 2.0.0
1315
1388
  * @category Sequencing
1389
+ * @since 2.0.0
1316
1390
  */
1317
1391
  export const mapDone = /*#__PURE__*/dual(2, (self, f) => mapDoneEffect(self, o => Effect.succeed(f(o))));
1318
1392
  /**
1319
1393
  * Maps the done value of this channel using the specified effectful function.
1320
1394
  *
1321
- * @since 2.0.0
1322
1395
  * @category Sequencing
1396
+ * @since 2.0.0
1323
1397
  */
1324
1398
  export const mapDoneEffect = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, done => Effect.flatMap(f(done), Cause.done)))));
1325
1399
  const concurrencyIsSequential = concurrency => concurrency === undefined || concurrency !== "unbounded" && concurrency <= 1;
1326
1400
  /**
1327
- * Returns a new channel, which sequentially combines this channel, together
1328
- * with the provided factory function, which creates a second channel based on
1329
- * the output values of this channel. The result is a channel that will first
1330
- * perform the functions of this channel, before performing the functions of
1331
- * the created channel (including yielding its terminal value).
1401
+ * Maps each output element with an effectful function, preserving the source
1402
+ * channel's done value.
1403
+ *
1404
+ * The mapping function receives the output element and its zero-based index.
1405
+ * By default elements are mapped sequentially. Use `options.concurrency` to
1406
+ * map multiple elements concurrently, and `options.unordered` to allow
1407
+ * concurrently mapped outputs to be emitted as soon as they complete.
1408
+ *
1409
+ * **Example** (Mapping channel output with effects)
1332
1410
  *
1333
- * @example
1334
1411
  * ```ts
1335
1412
  * import { Channel, Data, Effect } from "effect"
1336
1413
  *
@@ -1367,8 +1444,8 @@ const concurrencyIsSequential = concurrency => concurrency === undefined || conc
1367
1444
  * )
1368
1445
  * ```
1369
1446
  *
1370
- * @since 2.0.0
1371
1447
  * @category sequencing
1448
+ * @since 2.0.0
1372
1449
  */
1373
1450
  export const mapEffect = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? mapEffectSequential(self, f) : mapEffectConcurrent(self, f, options));
1374
1451
  const mapEffectSequential = (self, f) => fromTransform((upstream, scope) => {
@@ -1427,16 +1504,16 @@ const mapEffectConcurrent = (self, f, options) => fromTransformBracket(Effect.fn
1427
1504
  * Returns a new channel which is the same as this one but applies the given
1428
1505
  * function to the input channel’s input elements.
1429
1506
  *
1430
- * @since 2.0.0
1431
1507
  * @category sequencing
1508
+ * @since 2.0.0
1432
1509
  */
1433
1510
  export const mapInput = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.flatMap(upstream, el => f(el)), scope)));
1434
1511
  /**
1435
1512
  * Returns a new channel which is the same as this one but applies the given
1436
1513
  * function to the input errors.
1437
1514
  *
1438
- * @since 2.0.0
1439
1515
  * @category sequencing
1516
+ * @since 2.0.0
1440
1517
  */
1441
1518
  export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.catch(upstream, err => {
1442
1519
  if (Cause.isDone(err)) return Effect.fail(err);
@@ -1450,7 +1527,8 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1450
1527
  * debugging) on each element emitted by a channel without modifying the
1451
1528
  * elements themselves.
1452
1529
  *
1453
- * @example
1530
+ * **Example** (Tapping channel output)
1531
+ *
1454
1532
  * ```ts
1455
1533
  * import { Channel, Console, Data } from "effect"
1456
1534
  *
@@ -1471,18 +1549,21 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1471
1549
  * // Outputs: 1, 2, 3 (while logging each)
1472
1550
  * ```
1473
1551
  *
1474
- * @since 4.0.0
1475
1552
  * @category sequencing
1553
+ * @since 4.0.0
1476
1554
  */
1477
1555
  export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => mapEffect(self, a => Effect.as(f(a), a), options));
1478
1556
  /**
1479
- * Returns a new channel, which sequentially combines this channel, together
1480
- * with the provided factory function, which creates a second channel based on
1481
- * the output values of this channel. The result is a channel that will first
1482
- * perform the functions of this channel, before performing the functions of
1483
- * the created channel (including yielding its terminal value).
1557
+ * Maps each output element to a channel and flattens the child channel
1558
+ * outputs.
1559
+ *
1560
+ * The source channel's done value is preserved. Child channel done values are
1561
+ * used only for child-channel completion. By default child channels are run
1562
+ * sequentially. Use `options.concurrency` and `options.bufferSize` to run child
1563
+ * channels concurrently.
1564
+ *
1565
+ * **Example** (FlatMapping channel output)
1484
1566
  *
1485
- * @example
1486
1567
  * ```ts
1487
1568
  * import { Channel, Data } from "effect"
1488
1569
  *
@@ -1504,8 +1585,8 @@ export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, optio
1504
1585
  * // Outputs: "item-1-0", "item-2-0", "item-2-1", "item-3-0", "item-3-1", "item-3-2"
1505
1586
  * ```
1506
1587
  *
1507
- * @since 2.0.0
1508
1588
  * @category sequencing
1589
+ * @since 2.0.0
1509
1590
  */
1510
1591
  export const flatMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? flatMapSequential(self, f) : flatMapConcurrent(self, f, options));
1511
1592
  const flatMapSequential = (self, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
@@ -1535,7 +1616,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
1535
1616
  * Concatenates this channel with another channel created from the terminal value
1536
1617
  * of this channel. The new channel is created using the provided function.
1537
1618
  *
1538
- * @example
1619
+ * **Example** (Concatenating with completion values)
1620
+ *
1539
1621
  * ```ts
1540
1622
  * import { Channel, Data } from "effect"
1541
1623
  *
@@ -1552,8 +1634,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
1552
1634
  * // Outputs: 1, 2, 3, then "Completed processing"
1553
1635
  * ```
1554
1636
  *
1555
- * @since 2.0.0
1556
1637
  * @category sequencing
1638
+ * @since 2.0.0
1557
1639
  */
1558
1640
  export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
1559
1641
  let currentPull;
@@ -1573,7 +1655,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
1573
1655
  * Concatenates this channel with another channel, so that the second channel
1574
1656
  * starts emitting values after the first channel has completed.
1575
1657
  *
1576
- * @example
1658
+ * **Example** (Concatenating channels)
1659
+ *
1577
1660
  * ```ts
1578
1661
  * import { Channel, Data } from "effect"
1579
1662
  *
@@ -1591,8 +1674,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
1591
1674
  * // Outputs: 1, 2, 3, "a", "b", "c"
1592
1675
  * ```
1593
1676
  *
1594
- * @since 2.0.0
1595
1677
  * @category sequencing
1678
+ * @since 2.0.0
1596
1679
  */
1597
1680
  export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ => that));
1598
1681
  /**
@@ -1602,8 +1685,8 @@ export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ =>
1602
1685
  * some internal state to control the combining process, with the initial
1603
1686
  * state being specified by `s`.
1604
1687
  *
1605
- * @since 4.0.0
1606
1688
  * @category sequencing
1689
+ * @since 4.0.0
1607
1690
  */
1608
1691
  export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
1609
1692
  const leftPull = yield* toTransform(self)(upstream, scope);
@@ -1618,8 +1701,15 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(
1618
1701
  });
1619
1702
  })));
1620
1703
  /**
1621
- * @since 2.0.0
1704
+ * Runs a fallback channel if this channel completes without emitting any
1705
+ * output elements.
1706
+ *
1707
+ * If the source emits at least one element, the source is used unchanged. If
1708
+ * the source completes before emitting an element, the fallback function
1709
+ * receives the source done value and returns the replacement channel.
1710
+ *
1622
1711
  * @category sequencing
1712
+ * @since 2.0.0
1623
1713
  */
1624
1714
  export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
1625
1715
  let currentPull;
@@ -1640,7 +1730,8 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1640
1730
  /**
1641
1731
  * Flatten a channel of channels.
1642
1732
  *
1643
- * @example
1733
+ * **Example** (Flattening nested channels)
1734
+ *
1644
1735
  * ```ts
1645
1736
  * import { Channel, Data } from "effect"
1646
1737
  *
@@ -1661,14 +1752,15 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1661
1752
  * // Outputs: 1, 2, 3, 4, 5, 6
1662
1753
  * ```
1663
1754
  *
1664
- * @since 2.0.0
1665
1755
  * @category constructors
1756
+ * @since 2.0.0
1666
1757
  */
1667
1758
  export const flatten = channels => flatMap(channels, identity_);
1668
1759
  /**
1669
1760
  * Flattens a channel that outputs arrays into a channel that outputs individual elements.
1670
1761
  *
1671
- * @example
1762
+ * **Example** (Flattening arrays of channel output)
1763
+ *
1672
1764
  * ```ts
1673
1765
  * import { Channel, Data } from "effect"
1674
1766
  *
@@ -1689,8 +1781,8 @@ export const flatten = channels => flatMap(channels, identity_);
1689
1781
  * // Outputs: 1, 2, 3, 4, 5, 6, 7, 8, 9
1690
1782
  * ```
1691
1783
  *
1692
- * @since 4.0.0
1693
1784
  * @category utils
1785
+ * @since 4.0.0
1694
1786
  */
1695
1787
  export const flattenArray = self => transformPull(self, pull => {
1696
1788
  let array;
@@ -1721,15 +1813,22 @@ export const flattenArray = self => transformPull(self, pull => {
1721
1813
  return Effect.succeed(pump);
1722
1814
  });
1723
1815
  /**
1724
- * @since 4.0.0
1816
+ * Flattens a channel that emits `Take` values into a channel that emits the
1817
+ * `Take` outputs directly.
1818
+ *
1819
+ * Output `Take` values are emitted as non-empty arrays. Failed `Take` values
1820
+ * fail the returned channel. Done `Take` values complete the returned channel.
1821
+ *
1725
1822
  * @category utils
1823
+ * @since 4.0.0
1726
1824
  */
1727
1825
  export const flattenTake = self => mapEffectSequential(self, Take.toPull);
1728
1826
  /**
1729
1827
  * Creates a new channel that consumes all output from the source channel
1730
1828
  * but emits nothing, preserving only the completion value.
1731
1829
  *
1732
- * @example
1830
+ * **Example** (Draining channel output)
1831
+ *
1733
1832
  * ```ts
1734
1833
  * import { Channel } from "effect"
1735
1834
  *
@@ -1743,8 +1842,8 @@ export const flattenTake = self => mapEffectSequential(self, Take.toPull);
1743
1842
  * // Useful for consuming side effects without collecting output
1744
1843
  * ```
1745
1844
  *
1746
- * @since 2.0.0
1747
1845
  * @category constructors
1846
+ * @since 2.0.0
1748
1847
  */
1749
1848
  export const drain = self => transformPull(self, pull => Effect.succeed(Effect.forever(pull, {
1750
1849
  disableYield: true
@@ -1752,8 +1851,8 @@ export const drain = self => transformPull(self, pull => Effect.succeed(Effect.f
1752
1851
  /**
1753
1852
  * Repeats this channel according to the provided schedule.
1754
1853
  *
1755
- * @since 4.0.0
1756
1854
  * @category utils
1855
+ * @since 4.0.0
1757
1856
  */
1758
1857
  export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWithMetadata(typeof schedule === "function" ? schedule(identity_) : schedule).pipe(Effect.map(step => {
1759
1858
  let meta = Schedule.CurrentMetadata.defaultValue();
@@ -1766,13 +1865,21 @@ export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWi
1766
1865
  /**
1767
1866
  * Repeats this channel forever.
1768
1867
  *
1769
- * @since 4.0.0
1770
1868
  * @category utils
1869
+ * @since 4.0.0
1771
1870
  */
1772
1871
  export const forever = self => concatWith(self, () => forever(self));
1773
1872
  /**
1774
- * @since 4.0.0
1873
+ * Runs a schedule step for each output element while preserving the emitted
1874
+ * elements.
1875
+ *
1876
+ * The schedule receives each output element as input. Schedule delays are
1877
+ * applied between emitted elements. If the schedule fails, the returned channel
1878
+ * fails. If the schedule finishes, the returned channel completes with the
1879
+ * schedule output.
1880
+ *
1775
1881
  * @category utils
1882
+ * @since 4.0.0
1776
1883
  */
1777
1884
  export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(self, (pull, _scope) => Effect.map(Schedule.toStepWithSleep(schedule), step => {
1778
1885
  const pullWithStep = Effect.tap(pull, step);
@@ -1782,7 +1889,8 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
1782
1889
  * Filters the output elements of a channel using a predicate function.
1783
1890
  * Elements that don't match the predicate are discarded.
1784
1891
  *
1785
- * @example
1892
+ * **Example** (Filtering channel output)
1893
+ *
1786
1894
  * ```ts
1787
1895
  * import { Channel } from "effect"
1788
1896
  *
@@ -1802,30 +1910,48 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
1802
1910
  * // Outputs: 1, 2, 3 (all typed as numbers)
1803
1911
  * ```
1804
1912
  *
1805
- * @since 2.0.0
1806
1913
  * @category Filtering
1914
+ * @since 2.0.0
1807
1915
  */
1808
1916
  export const filter = /*#__PURE__*/dual(2, (self, predicate) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
1809
1917
  return predicate(elem) ? Effect.succeed(elem) : Effect.flatMap(pull, loop);
1810
1918
  }))));
1811
1919
  /**
1812
- * @since 4.0.0
1920
+ * Filters and maps output elements using a `Filter`.
1921
+ *
1922
+ * Successful filter results are emitted as mapped values. Failed filter
1923
+ * results are discarded. The source channel's errors and done value are
1924
+ * preserved.
1925
+ *
1813
1926
  * @category Filtering
1927
+ * @since 4.0.0
1814
1928
  */
1815
1929
  export const filterMap = /*#__PURE__*/dual(2, (self, filter) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
1816
1930
  const result = filter(elem);
1817
1931
  return Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success);
1818
1932
  }))));
1819
1933
  /**
1820
- * @since 4.0.0
1934
+ * Filters output elements with an effectful predicate.
1935
+ *
1936
+ * Elements for which the predicate succeeds with `true` are emitted. Elements
1937
+ * for which the predicate succeeds with `false` are discarded. Predicate
1938
+ * failures fail the returned channel.
1939
+ *
1821
1940
  * @category Filtering
1941
+ * @since 4.0.0
1822
1942
  */
1823
1943
  export const filterEffect = /*#__PURE__*/dual(2, (self, predicate) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
1824
1944
  return Effect.flatMap(predicate(elem), passes => passes ? Effect.succeed(elem) : Effect.flatMap(pull, loop));
1825
1945
  }))));
1826
1946
  /**
1827
- * @since 4.0.0
1947
+ * Filters and maps output elements using an effectful `Filter`.
1948
+ *
1949
+ * Successful filter results are emitted as mapped values. Failed filter
1950
+ * results are discarded. Failures from the effectful filter fail the returned
1951
+ * channel.
1952
+ *
1828
1953
  * @category Filtering
1954
+ * @since 4.0.0
1829
1955
  */
1830
1956
  export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
1831
1957
  return Effect.flatMap(filter(elem), result => Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success));
@@ -1834,7 +1960,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
1834
1960
  * Filters arrays of elements emitted by a channel, applying the filter
1835
1961
  * to each element within the arrays and only emitting non-empty filtered arrays.
1836
1962
  *
1837
- * @example
1963
+ * **Example** (Filtering array output)
1964
+ *
1838
1965
  * ```ts
1839
1966
  * import { Array, Channel } from "effect"
1840
1967
  *
@@ -1862,8 +1989,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
1862
1989
  * // Outputs: [2, 4] (the arrays [1,3,5] and [7,9] are discarded)
1863
1990
  * ```
1864
1991
  *
1865
- * @since 4.0.0
1866
1992
  * @category Filtering
1993
+ * @since 4.0.0
1867
1994
  */
1868
1995
  export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
1869
1996
  const passes = [];
@@ -1875,8 +2002,14 @@ export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPu
1875
2002
  return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
1876
2003
  }))));
1877
2004
  /**
1878
- * @since 4.0.0
2005
+ * Filters and maps each element inside emitted non-empty arrays using a
2006
+ * `Filter`.
2007
+ *
2008
+ * Successful filter results are kept as mapped values. Failed filter results
2009
+ * are removed from the array. Arrays that become empty are discarded.
2010
+ *
1879
2011
  * @category Filtering
2012
+ * @since 4.0.0
1880
2013
  */
1881
2014
  export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
1882
2015
  const passes = [];
@@ -1889,8 +2022,15 @@ export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPu
1889
2022
  return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
1890
2023
  }))));
1891
2024
  /**
1892
- * @since 4.0.0
2025
+ * Filters each element inside emitted non-empty arrays with an effectful
2026
+ * predicate.
2027
+ *
2028
+ * The predicate receives the element and its index within the array. Elements
2029
+ * for which the predicate succeeds with `true` are kept. Arrays that become
2030
+ * empty are discarded. Predicate failures fail the returned channel.
2031
+ *
1893
2032
  * @category Filtering
2033
+ * @since 4.0.0
1894
2034
  */
1895
2035
  export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => {
1896
2036
  const f = Effect.flatMap(pull, arr => Effect.filter(arr, predicate));
@@ -1899,8 +2039,15 @@ export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => trans
1899
2039
  }));
1900
2040
  }));
1901
2041
  /**
1902
- * @since 4.0.0
2042
+ * Filters and maps each element inside emitted non-empty arrays using an
2043
+ * effectful `Filter`.
2044
+ *
2045
+ * Successful filter results are kept as mapped values. Failed filter results
2046
+ * are removed from the array. Arrays that become empty are discarded. Failures
2047
+ * from the effectful filter fail the returned channel.
2048
+ *
1903
2049
  * @category Filtering
2050
+ * @since 4.0.0
1904
2051
  */
1905
2052
  export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
1906
2053
  return Effect.flatMap(Effect.filterMapEffect(arr, filter), passes => Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop));
@@ -1908,7 +2055,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
1908
2055
  /**
1909
2056
  * Statefully maps over a channel with an accumulator, where each element can produce multiple output values.
1910
2057
  *
1911
- * @example
2058
+ * **Example** (Mapping with accumulated state)
2059
+ *
1912
2060
  * ```ts
1913
2061
  * import { Channel, Effect } from "effect"
1914
2062
  *
@@ -1939,8 +2087,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
1939
2087
  * )
1940
2088
  * ```
1941
2089
  *
1942
- * @since 2.0.0
1943
2090
  * @category Sequencing
2091
+ * @since 2.0.0
1944
2092
  */
1945
2093
  export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, initial, f, options) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
1946
2094
  let state = initial();
@@ -1985,7 +2133,8 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
1985
2133
  * Statefully transforms a channel by scanning over its output with an accumulator function.
1986
2134
  * Emits the intermediate results of the scan operation.
1987
2135
  *
1988
- * @example
2136
+ * **Example** (Scanning channel output)
2137
+ *
1989
2138
  * ```ts
1990
2139
  * import { Channel } from "effect"
1991
2140
  *
@@ -2007,15 +2156,16 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
2007
2156
  * // Outputs: "", "hello", "hello world", "hello world from", "hello world from effect"
2008
2157
  * ```
2009
2158
  *
2010
- * @since 2.0.0
2011
2159
  * @category Sequencing
2160
+ * @since 2.0.0
2012
2161
  */
2013
2162
  export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self, initial, (s, a) => Effect.succeed(f(s, a))));
2014
2163
  /**
2015
2164
  * Statefully transforms a channel by scanning over its output with an effectful accumulator function.
2016
2165
  * Emits the intermediate results of the scan operation.
2017
2166
  *
2018
- * @example
2167
+ * **Example** (Scanning channel output with effects)
2168
+ *
2019
2169
  * ```ts
2020
2170
  * import { Channel, Data, Effect } from "effect"
2021
2171
  *
@@ -2052,8 +2202,8 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self,
2052
2202
  * )
2053
2203
  * ```
2054
2204
  *
2055
- * @since 2.0.0
2056
2205
  * @category Sequencing
2206
+ * @since 2.0.0
2057
2207
  */
2058
2208
  export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
2059
2209
  let state = initial;
@@ -2073,7 +2223,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
2073
2223
  * Catches any cause of failure from the channel and allows recovery by
2074
2224
  * creating a new channel based on the caught cause.
2075
2225
  *
2076
- * @example
2226
+ * **Example** (Recovering from failure causes)
2227
+ *
2077
2228
  * ```ts
2078
2229
  * import { Cause, Channel, Data } from "effect"
2079
2230
  *
@@ -2101,8 +2252,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
2101
2252
  * // The channel recovers gracefully from errors
2102
2253
  * ```
2103
2254
  *
2104
- * @since 4.0.0
2105
2255
  * @category Error handling
2256
+ * @since 4.0.0
2106
2257
  */
2107
2258
  export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => {
2108
2259
  let forkedScope = Scope.forkUnsafe(scope);
@@ -2122,23 +2273,35 @@ export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
2122
2273
  });
2123
2274
  }));
2124
2275
  /**
2125
- * @since 4.0.0
2276
+ * Runs an effect with the full failure `Cause` when the channel fails, then
2277
+ * fails the returned channel with the original cause.
2278
+ *
2279
+ * Use this for observing failures, such as logging or metrics. If the observer
2280
+ * effect fails, that failure can fail the returned channel.
2281
+ *
2126
2282
  * @category Error handling
2283
+ * @since 4.0.0
2127
2284
  */
2128
2285
  export const tapCause = /*#__PURE__*/dual(2, (self, f) => catchCause(self, cause => fromEffectDrain(Effect.flatMap(f(cause), _ => Effect.failCause(cause)))));
2129
2286
  /**
2130
2287
  * Catches causes of failure that match a specific filter, allowing
2131
2288
  * conditional error recovery based on the type of failure.
2132
2289
  *
2133
- * @since 4.0.0
2134
2290
  * @category Error handling
2291
+ * @since 4.0.0
2135
2292
  */
2136
2293
  export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCause(self, cause => {
2137
2294
  return predicate(cause) ? f(cause) : failCause(cause);
2138
2295
  }));
2139
2296
  /**
2140
- * @since 4.0.0
2297
+ * Recovers from channel failures whose full `Cause` is selected by a `Filter`.
2298
+ *
2299
+ * When the filter succeeds, the recovery function receives the selected value
2300
+ * and the original cause. When the filter fails, the returned channel fails
2301
+ * with the residual cause produced by the filter.
2302
+ *
2141
2303
  * @category Error handling
2304
+ * @since 4.0.0
2142
2305
  */
2143
2306
  export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
2144
2307
  const result = filter(cause);
@@ -2147,33 +2310,57 @@ export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchC
2147
2310
  const catch_ = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(self, Cause.findError, e => f(e)));
2148
2311
  export {
2149
2312
  /**
2150
- * @since 4.0.0
2151
2313
  * @category Error handling
2314
+ * @since 4.0.0
2152
2315
  */
2153
2316
  catch_ as catch };
2154
2317
  /**
2155
- * @since 4.0.0
2318
+ * Runs an effect when the channel fails with a typed error, then preserves the
2319
+ * original channel failure.
2320
+ *
2321
+ * The effect is not run for normal channel completion. If the observer effect
2322
+ * fails, that failure can fail the returned channel.
2323
+ *
2156
2324
  * @category Error handling
2325
+ * @since 4.0.0
2157
2326
  */
2158
2327
  export const tapError = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.succeed(Effect.tapError(pull, err => Cause.isDone(err) ? Effect.void : Effect.asVoid(f(err))))));
2159
2328
  /**
2160
- * @since 4.0.0
2329
+ * Recovers from typed channel errors that match a predicate or refinement.
2330
+ *
2331
+ * Matching errors are handled by the recovery function. Non-matching errors
2332
+ * are handled by `orElse` when provided. Without `orElse`, non-matching errors
2333
+ * are re-failed.
2334
+ *
2161
2335
  * @category Error handling
2336
+ * @since 4.0.0
2162
2337
  */
2163
2338
  export const catchIf = /*#__PURE__*/dual(args => isChannel(args[0]), (self, predicate, f, orElse) => catch_(self, err => {
2164
2339
  return predicate(err) ? f(err) : orElse ? orElse(err) : fail(err);
2165
2340
  }));
2166
2341
  /**
2167
- * @since 4.0.0
2342
+ * Recovers from typed channel errors selected by a `Filter`.
2343
+ *
2344
+ * Successful filter results are handled by the recovery function. Failed
2345
+ * filter results are handled by `orElse` when provided. Without `orElse`,
2346
+ * failed filter results are re-failed.
2347
+ *
2168
2348
  * @category Error handling
2349
+ * @since 4.0.0
2169
2350
  */
2170
2351
  export const catchFilter = /*#__PURE__*/dual(args => isChannel(args[0]), (self, filter, f, orElse) => catch_(self, err => {
2171
2352
  const result = filter(err);
2172
2353
  return Result.isFailure(result) ? orElse ? orElse(result.failure) : fail(result.failure) : f(result.success);
2173
2354
  }));
2174
2355
  /**
2175
- * @since 4.0.0
2356
+ * Recovers from tagged channel errors whose `_tag` matches one or more tags.
2357
+ *
2358
+ * Matching tagged errors are handled by the recovery function. Non-matching
2359
+ * errors are handled by `orElse` when provided. Without `orElse`,
2360
+ * non-matching errors are re-failed.
2361
+ *
2176
2362
  * @category Error handling
2363
+ * @since 4.0.0
2177
2364
  */
2178
2365
  export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k, f, orElse) => {
2179
2366
  const pred = Array.isArray(k) ? e => hasProperty(e, "_tag") && k.includes(e._tag) : isTagged(k);
@@ -2182,7 +2369,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
2182
2369
  /**
2183
2370
  * Catches a specific reason within a tagged error.
2184
2371
  *
2185
- * @example
2372
+ * **Example** (Recovering from nested reasons)
2373
+ *
2186
2374
  * ```ts
2187
2375
  * import { Channel, Data } from "effect"
2188
2376
  *
@@ -2209,8 +2397,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
2209
2397
  * )
2210
2398
  * ```
2211
2399
  *
2212
- * @since 4.0.0
2213
2400
  * @category Error handling
2401
+ * @since 4.0.0
2214
2402
  */
2215
2403
  export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, reasonTag, f, orElse) => catch_(self, error => {
2216
2404
  if (isTagged(error, errorTag) && hasProperty(error, "reason")) {
@@ -2225,8 +2413,8 @@ export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2225
2413
  /**
2226
2414
  * Catches multiple reasons within a tagged error using an object of handlers.
2227
2415
  *
2228
- * @since 4.0.0
2229
2416
  * @category Error handling
2417
+ * @since 4.0.0
2230
2418
  */
2231
2419
  export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, cases, orElse) => {
2232
2420
  let keys;
@@ -2245,7 +2433,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2245
2433
  /**
2246
2434
  * Promotes nested reason errors into the channel error, replacing the parent error.
2247
2435
  *
2248
- * @example
2436
+ * **Example** (Promoting nested reasons)
2437
+ *
2249
2438
  * ```ts
2250
2439
  * import { Channel, Data } from "effect"
2251
2440
  *
@@ -2268,8 +2457,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2268
2457
  * const unwrapped = channel.pipe(Channel.unwrapReason("AiError"))
2269
2458
  * ```
2270
2459
  *
2271
- * @since 4.0.0
2272
2460
  * @category Error handling
2461
+ * @since 4.0.0
2273
2462
  */
2274
2463
  export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter(self, error => isTagged(error, errorTag) && hasProperty(error, "reason") ? Result.succeed(error.reason) : Result.fail(error), fail));
2275
2464
  /**
@@ -2277,15 +2466,16 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
2277
2466
  * value of the returned channel is created by applying the specified function
2278
2467
  * to the failure value of this channel.
2279
2468
  *
2280
- * @since 2.0.0
2281
2469
  * @category Error handling
2470
+ * @since 2.0.0
2282
2471
  */
2283
2472
  export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fail(f(err))));
2284
2473
  /**
2285
2474
  * Converts all errors in the channel to defects (unrecoverable failures).
2286
2475
  * This is useful when you want to treat errors as programming errors.
2287
2476
  *
2288
- * @example
2477
+ * **Example** (Converting failures to defects)
2478
+ *
2289
2479
  * ```ts
2290
2480
  * import { Channel, Data } from "effect"
2291
2481
  *
@@ -2302,8 +2492,8 @@ export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fa
2302
2492
  * // Any failure will now become a defect (uncaught exception)
2303
2493
  * ```
2304
2494
  *
2305
- * @since 4.0.0
2306
2495
  * @category Error handling
2496
+ * @since 4.0.0
2307
2497
  */
2308
2498
  export const orDie = self => catch_(self, die);
2309
2499
  /**
@@ -2311,8 +2501,8 @@ export const orDie = self => catch_(self, die);
2311
2501
  *
2312
2502
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
2313
2503
  *
2314
- * @since 4.0.0
2315
2504
  * @category Error handling
2505
+ * @since 4.0.0
2316
2506
  */
2317
2507
  export const ignore = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
2318
2508
  if (!options?.log) {
@@ -2327,8 +2517,8 @@ const ignoreCause_ = self => catchCause(self, () => empty);
2327
2517
  *
2328
2518
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
2329
2519
  *
2330
- * @since 4.0.0
2331
2520
  * @category Error handling
2521
+ * @since 4.0.0
2332
2522
  */
2333
2523
  export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
2334
2524
  if (!options?.log) return ignoreCause_(self);
@@ -2339,8 +2529,8 @@ export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2339
2529
  * Returns a new channel that retries this channel according to the specified
2340
2530
  * schedule whenever it fails.
2341
2531
  *
2342
- * @since 4.0.0
2343
2532
  * @category utils
2533
+ * @since 4.0.0
2344
2534
  */
2345
2535
  export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
2346
2536
  let step = undefined;
@@ -2361,13 +2551,15 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
2361
2551
  return loop;
2362
2552
  }));
2363
2553
  /**
2364
- * Returns a new channel, which sequentially combines this channel, together
2365
- * with the provided factory function, which creates a second channel based on
2366
- * the output values of this channel. The result is a channel that will first
2367
- * perform the functions of this channel, before performing the functions of
2368
- * the created channel (including yielding its terminal value).
2554
+ * Maps each output element to a channel and emits values from the most recent
2555
+ * active child channels.
2556
+ *
2557
+ * With the default concurrency of `1`, starting a new child channel interrupts
2558
+ * the previous child channel. Use `options.concurrency` to allow more active
2559
+ * child channels. The source channel's done value is preserved.
2560
+ *
2561
+ * **Example** (Switching mapped channels)
2369
2562
  *
2370
- * @example
2371
2563
  * ```ts
2372
2564
  * import { Channel, Data } from "effect"
2373
2565
  *
@@ -2387,8 +2579,8 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
2387
2579
  * // Outputs: "value-1", "value-2", "value-3"
2388
2580
  * ```
2389
2581
  *
2390
- * @since 2.0.0
2391
2582
  * @category sequencing
2583
+ * @since 2.0.0
2392
2584
  */
2393
2585
  export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => self.pipe(map(f), mergeAll({
2394
2586
  ...options,
@@ -2398,7 +2590,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
2398
2590
  /**
2399
2591
  * Merges multiple channels with specified concurrency and buffering options.
2400
2592
  *
2401
- * @example
2593
+ * **Example** (Merging nested channels)
2594
+ *
2402
2595
  * ```ts
2403
2596
  * import { Channel, Data } from "effect"
2404
2597
  *
@@ -2422,8 +2615,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
2422
2615
  * // Outputs: 1, 2, 3, 4, 5, 6 (order may vary due to concurrency)
2423
2616
  * ```
2424
2617
  *
2425
- * @since 2.0.0
2426
2618
  * @category utils
2619
+ * @since 2.0.0
2427
2620
  */
2428
2621
  export const mergeAll = /*#__PURE__*/dual(2, (channels, {
2429
2622
  bufferSize = 16,
@@ -2471,7 +2664,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
2471
2664
  * Returns a new channel, which is the merge of this channel and the specified
2472
2665
  * channel.
2473
2666
  *
2474
- * @example
2667
+ * **Example** (Merging channels)
2668
+ *
2475
2669
  * ```ts
2476
2670
  * import { Channel, Data } from "effect"
2477
2671
  *
@@ -2492,8 +2686,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
2492
2686
  * // Order may vary: 1, "a", 2, "b", 3, "c"
2493
2687
  * ```
2494
2688
  *
2495
- * @since 2.0.0
2496
2689
  * @category utils
2690
+ * @since 2.0.0
2497
2691
  */
2498
2692
  export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(args[1]), (left, right, options) => fromTransformBracket(Effect.fnUntraced(function* (upstream, _scope, forkedScope) {
2499
2693
  const strategy = options?.haltStrategy ?? "both";
@@ -2527,8 +2721,14 @@ export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(a
2527
2721
  return Queue.take(queue);
2528
2722
  })));
2529
2723
  /**
2530
- * @since 4.0.0
2724
+ * Runs an effect concurrently with a channel while emitting only the channel's
2725
+ * output elements.
2726
+ *
2727
+ * The effect's successful value is ignored. If the effect fails while the
2728
+ * channel is running, the returned channel fails with that error.
2729
+ *
2531
2730
  * @category utils
2731
+ * @since 4.0.0
2532
2732
  */
2533
2733
  export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromEffectDrain(effect), {
2534
2734
  haltStrategy: "left"
@@ -2543,7 +2743,7 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
2543
2743
  * if the stream ends without a terminator the final partial line is still
2544
2744
  * emitted.
2545
2745
  *
2546
- * **Example**
2746
+ * **Example** (Splitting string chunks into lines)
2547
2747
  *
2548
2748
  * ```ts
2549
2749
  * import { Effect, Stream } from "effect"
@@ -2557,8 +2757,8 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
2557
2757
  * }))
2558
2758
  * ```
2559
2759
  *
2560
- * @since 2.0.0
2561
2760
  * @category String manipulation
2761
+ * @since 2.0.0
2562
2762
  */
2563
2763
  export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(() => {
2564
2764
  // Accumulates text that has not yet been terminated by a line break.
@@ -2646,16 +2846,25 @@ export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(
2646
2846
  return pullOrFlush;
2647
2847
  }));
2648
2848
  /**
2649
- * @since 4.0.0
2849
+ * Decodes incoming `Uint8Array` chunks into strings using `TextDecoder`.
2850
+ *
2851
+ * Each `Uint8Array` inside an emitted array is decoded independently. The
2852
+ * optional `encoding` and `options` are passed to `TextDecoder`.
2853
+ *
2650
2854
  * @category String manipulation
2855
+ * @since 4.0.0
2651
2856
  */
2652
2857
  export const decodeText = (encoding, options) => fromTransform((upstream, _scope) => Effect.sync(() => {
2653
2858
  const decoder = new TextDecoder(encoding, options);
2654
2859
  return Effect.map(upstream, Arr.map(line => decoder.decode(line)));
2655
2860
  }));
2656
2861
  /**
2657
- * @since 4.0.0
2862
+ * Encodes incoming string chunks into `Uint8Array` values using `TextEncoder`.
2863
+ *
2864
+ * Each string inside an emitted array is encoded independently.
2865
+ *
2658
2866
  * @category String manipulation
2867
+ * @since 4.0.0
2659
2868
  */
2660
2869
  export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(() => {
2661
2870
  const encoder = new TextEncoder();
@@ -2667,7 +2876,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
2667
2876
  * and the output type of the specified channel, terminating with the value of
2668
2877
  * the specified channel.
2669
2878
  *
2670
- * @example
2879
+ * **Example** (Piping one channel into another)
2880
+ *
2671
2881
  * ```ts
2672
2882
  * import { Channel, Data } from "effect"
2673
2883
  *
@@ -2685,8 +2895,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
2685
2895
  * // Outputs: 2, 4, 6
2686
2896
  * ```
2687
2897
  *
2688
- * @since 2.0.0
2689
2898
  * @category utils
2899
+ * @since 2.0.0
2690
2900
  */
2691
2901
  export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => toTransform(that)(upstream, scope))));
2692
2902
  /**
@@ -2694,7 +2904,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
2694
2904
  * specified channel and preserves this channel's failures without providing
2695
2905
  * them to the other channel for observation.
2696
2906
  *
2697
- * @example
2907
+ * **Example** (Piping while preserving failures)
2908
+ *
2698
2909
  * ```ts
2699
2910
  * import { Channel, Data } from "effect"
2700
2911
  *
@@ -2712,8 +2923,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
2712
2923
  * // Source errors are preserved and not sent to transform channel
2713
2924
  * ```
2714
2925
  *
2715
- * @since 2.0.0
2716
2926
  * @category utils
2927
+ * @since 2.0.0
2717
2928
  */
2718
2929
  export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => {
2719
2930
  const upstreamPull = Effect.catchCause(upstream, cause => Pull.isDoneCause(cause) ? Effect.failCause(cause) : Effect.die(Cause.Done(cause)));
@@ -2723,7 +2934,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
2723
2934
  * Constructs a `Channel` from a scoped effect that will result in a
2724
2935
  * `Channel` if successful.
2725
2936
  *
2726
- * @example
2937
+ * **Example** (Unwrapping channel effects)
2938
+ *
2727
2939
  * ```ts
2728
2940
  * import { Channel, Data, Effect } from "effect"
2729
2941
  *
@@ -2742,8 +2954,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
2742
2954
  * // The resulting channel outputs: 1, 2, 3
2743
2955
  * ```
2744
2956
  *
2745
- * @since 2.0.0
2746
2957
  * @category constructors
2958
+ * @since 2.0.0
2747
2959
  */
2748
2960
  export const unwrap = channel => fromTransform((upstream, scope) => {
2749
2961
  let pull;
@@ -2753,41 +2965,52 @@ export const unwrap = channel => fromTransform((upstream, scope) => {
2753
2965
  }));
2754
2966
  });
2755
2967
  /**
2756
- * @since 2.0.0
2968
+ * Runs a channel with a scope provided for the duration of the channel
2969
+ * execution, removing the channel's `Scope` requirement.
2970
+ *
2757
2971
  * @category utils
2972
+ * @since 2.0.0
2758
2973
  */
2759
2974
  export const scoped = self => fromTransformBracket((upstream, scope, forkedScope) => Scope.provide(toTransform(self)(upstream, scope), forkedScope));
2760
2975
  /**
2761
- * Returns a new channel which embeds the given input handler into a Channel.
2976
+ * Runs an input handler against the upstream pull while the wrapped channel
2977
+ * runs without receiving upstream input directly.
2762
2978
  *
2763
- * @example
2764
- * ```ts
2765
- * import { Channel, Data, Effect } from "effect"
2979
+ * The input handler is forked in the channel scope. The wrapped channel is run
2980
+ * with an already-completed input.
2766
2981
  *
2767
- * class EmbedError extends Data.TaggedError("EmbedError")<{
2768
- * readonly stage: string
2769
- * }> {}
2982
+ * **Example** (Embedding custom input handling)
2983
+ *
2984
+ * ```ts
2985
+ * import { Channel, Effect } from "effect"
2770
2986
  *
2771
2987
  * // Create a base channel
2772
2988
  * const baseChannel = Channel.fromIterable([1, 2, 3])
2773
2989
  *
2774
- * // Embed input handling - simplified example
2990
+ * // Drain the embedded input while the base channel runs
2775
2991
  * const embeddedChannel = Channel.embedInput(
2776
2992
  * baseChannel,
2777
- * (_upstream) => Effect.void
2993
+ * (upstream) =>
2994
+ * upstream.pipe(
2995
+ * Effect.tap((message) =>
2996
+ * Effect.sync(() => console.log(message))
2997
+ * ),
2998
+ * Effect.forever,
2999
+ * Effect.ignore
3000
+ * )
2778
3001
  * )
2779
3002
  * ```
2780
3003
  *
2781
- * @since 2.0.0
2782
3004
  * @category utils
3005
+ * @since 2.0.0
2783
3006
  */
2784
3007
  export const embedInput = /*#__PURE__*/dual(2, (self, input) => fromTransformBracket((upstream, scope, forkedScope) => Effect.andThen(Effect.forkIn(input(upstream), forkedScope), toTransform(self)(Cause.done(), scope))));
2785
3008
  /**
2786
3009
  * Allows a faster producer to progress independently of a slower consumer by
2787
3010
  * buffering up to `capacity` elements in a queue.
2788
3011
  *
2789
- * @since 2.0.0
2790
3012
  * @category Buffering
3013
+ * @since 2.0.0
2791
3014
  */
2792
3015
  export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
2793
3016
  const pull = yield* toTransform(self)(upstream, scope);
@@ -2805,8 +3028,8 @@ export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effe
2805
3028
  * Allows a faster producer to progress independently of a slower consumer by
2806
3029
  * buffering up to `capacity` elements in a queue.
2807
3030
  *
2808
- * @since 2.0.0
2809
3031
  * @category Buffering
3032
+ * @since 2.0.0
2810
3033
  */
2811
3034
  export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
2812
3035
  const pull = yield* toTransform(self)(upstream, scope);
@@ -2829,15 +3052,22 @@ export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform
2829
3052
  * returned channel will yield the success value of the underlying channel as
2830
3053
  * its terminal value.
2831
3054
  *
2832
- * @since 2.0.0
2833
3055
  * @category utils
3056
+ * @since 2.0.0
2834
3057
  */
2835
3058
  export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromPull(Effect.succeed(Effect.flatMap(effect, Cause.done))), {
2836
3059
  haltStrategy: "either"
2837
3060
  }));
2838
3061
  /**
2839
- * @since 4.0.0
3062
+ * Halts a channel when the specified effect completes or fails.
3063
+ *
3064
+ * If the effect completes before the channel is done, its success value becomes
3065
+ * the returned channel's done value. If the effect fails, the returned channel
3066
+ * fails with that error. If the channel completes first, the channel's done
3067
+ * value is preserved.
3068
+ *
2840
3069
  * @category utils
3070
+ * @since 4.0.0
2841
3071
  */
2842
3072
  export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBracket(Effect.fnUntraced(function* (upstream, scope, forkedScope) {
2843
3073
  const pull = yield* toTransform(self)(upstream, scope);
@@ -2849,8 +3079,13 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBrac
2849
3079
  return Effect.suspend(() => haltCause ? Effect.failCause(haltCause) : pull);
2850
3080
  })));
2851
3081
  /**
2852
- * @since 4.0.0
3082
+ * Attaches a finalizer that runs only when the channel exits with failure.
3083
+ *
3084
+ * The finalizer receives the failure `Cause`. The original channel failure is
3085
+ * preserved. The finalizer itself must not fail.
3086
+ *
2853
3087
  * @category utils
3088
+ * @since 4.0.0
2854
3089
  */
2855
3090
  export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, exit => Exit.isFailure(exit) ? finalizer(exit.cause) : Effect.void));
2856
3091
  /**
@@ -2858,7 +3093,8 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
2858
3093
  * guaranteed to be executed so long as the channel begins execution (and
2859
3094
  * regardless of whether or not it completes).
2860
3095
  *
2861
- * @example
3096
+ * **Example** (Running exit finalizers)
3097
+ *
2862
3098
  * ```ts
2863
3099
  * import { Channel, Console, Data, Exit } from "effect"
2864
3100
  *
@@ -2879,18 +3115,29 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
2879
3115
  * })
2880
3116
  * ```
2881
3117
  *
2882
- * @since 4.0.0
2883
3118
  * @category utils
3119
+ * @since 4.0.0
2884
3120
  */
2885
3121
  export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromTransformBracket((upstream, scope, forkedScope) => Scope.addFinalizerExit(forkedScope, finalizer).pipe(Effect.andThen(toTransform(self)(upstream, scope)))));
2886
3122
  /**
2887
- * @since 4.0.0
3123
+ * Runs an effect before the channel starts.
3124
+ *
3125
+ * The effect's successful value is ignored. If the effect fails, the returned
3126
+ * channel fails before running the source channel.
3127
+ *
2888
3128
  * @category utils
3129
+ * @since 4.0.0
2889
3130
  */
2890
3131
  export const onStart = /*#__PURE__*/dual(2, (self, onStart) => unwrap(Effect.as(onStart, self)));
2891
3132
  /**
2892
- * @since 4.0.0
3133
+ * Runs an effect the first time the channel emits an output element.
3134
+ *
3135
+ * The effect receives the first emitted element. The first element is still
3136
+ * emitted unchanged. The effect is not run if the channel completes without
3137
+ * emitting an element.
3138
+ *
2893
3139
  * @category utils
3140
+ * @since 4.0.0
2894
3141
  */
2895
3142
  export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(self, pull => Effect.sync(() => {
2896
3143
  let isFirst = true;
@@ -2901,8 +3148,14 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(sel
2901
3148
  return Effect.suspend(() => isFirst ? pullFirst : pull);
2902
3149
  })));
2903
3150
  /**
2904
- * @since 4.0.0
3151
+ * Runs an effect when the channel completes successfully.
3152
+ *
3153
+ * The effect runs before the original done value is propagated. The effect is
3154
+ * not run when the channel fails. If the effect fails, the returned channel
3155
+ * fails with that error.
3156
+ *
2905
3157
  * @category utils
3158
+ * @since 4.0.0
2906
3159
  */
2907
3160
  export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, leftover => Effect.flatMap(onEnd, () => Cause.done(leftover))))));
2908
3161
  /**
@@ -2910,7 +3163,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
2910
3163
  * guaranteed to be executed so long as the channel begins execution (and
2911
3164
  * regardless of whether or not it completes).
2912
3165
  *
2913
- * @example
3166
+ * **Example** (Ensuring cleanup runs)
3167
+ *
2914
3168
  * ```ts
2915
3169
  * import { Channel, Console, Data } from "effect"
2916
3170
  *
@@ -2928,8 +3182,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
2928
3182
  * )
2929
3183
  * ```
2930
3184
  *
2931
- * @since 2.0.0
2932
3185
  * @category utils
3186
+ * @since 2.0.0
2933
3187
  */
2934
3188
  export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));
2935
3189
  const runWith = (self, f, onHalt) => Effect.suspend(() => {
@@ -2940,50 +3194,81 @@ const runWith = (self, f, onHalt) => Effect.suspend(() => {
2940
3194
  /**
2941
3195
  * Create a channel from the specified services.
2942
3196
  *
2943
- * @since 2.0.0
2944
3197
  * @category Services
3198
+ * @since 2.0.0
2945
3199
  */
2946
3200
  export const contextWith = f => fromTransform((upstream, scope) => Effect.contextWith(context => toTransform(f(context))(upstream, scope)));
2947
3201
  /**
2948
- * Provides a layer or context to the channel, removing the corresponding
2949
- * service requirements. Use `options.local` to build the layer every time; by
2950
- * default, layers are shared between provide calls.
3202
+ * Provides a `Context` to the channel, removing the corresponding service
3203
+ * requirements from the returned channel.
2951
3204
  *
2952
- * @since 4.0.0
2953
3205
  * @category Services
3206
+ * @since 4.0.0
2954
3207
  */
2955
3208
  export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromTransform((upstream, scope) => Effect.map(Effect.provideContext(toTransform(self)(upstream, scope), context), Effect.provideContext(context))));
2956
3209
  /**
2957
- * @since 4.0.0
3210
+ * Provides a concrete service for a context key, removing that service
3211
+ * requirement from the returned channel.
3212
+ *
2958
3213
  * @category Services
3214
+ * @since 4.0.0
2959
3215
  */
2960
3216
  export const provideService = /*#__PURE__*/dual(3, (self, key, service) => fromTransform((upstream, scope) => Effect.map(Effect.provideService(toTransform(self)(upstream, scope), key, service), Effect.provideService(key, service))));
2961
3217
  /**
2962
- * @since 4.0.0
3218
+ * Evaluates an effect to obtain a service, then provides that service to the
3219
+ * channel.
3220
+ *
3221
+ * If the service effect fails, the returned channel fails. The provided service
3222
+ * removes the corresponding service requirement from the returned channel.
3223
+ *
2963
3224
  * @category Services
3225
+ * @since 4.0.0
2964
3226
  */
2965
3227
  export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) => fromTransform((upstream, scope) => Effect.flatMap(service, s => toTransform(provideService(self, key, s))(upstream, scope))));
2966
3228
  /**
2967
- * @since 4.0.0
3229
+ * Provides a `Layer` or `Context` to the channel, removing the corresponding
3230
+ * service requirements.
3231
+ *
3232
+ * Providing a `Context` delegates to `provideContext`. Providing a `Layer`
3233
+ * builds the layer in the channel scope. Use `options.local` to build a fresh
3234
+ * layer instance for this provision.
3235
+ *
2968
3236
  * @category Services
3237
+ * @since 4.0.0
2969
3238
  */
2970
3239
  export const provide = /*#__PURE__*/dual(args => isChannel(args[0]), (self, layer, options) => Context.isContext(layer) ? provideContext(self, layer) : fromTransform((upstream, scope) => Effect.flatMap(options?.local ? Layer.buildWithMemoMap(layer, Layer.makeMemoMapUnsafe(), scope) : Layer.buildWithScope(layer, scope), context => Effect.map(Effect.provideContext(toTransform(self)(upstream, scope), context), Effect.provideContext(context)))));
2971
3240
  /**
2972
- * @since 2.0.0
3241
+ * Transforms the current context before running the channel.
3242
+ *
3243
+ * The function receives the surrounding context and returns the context to
3244
+ * provide to the channel. The returned channel requires the services needed to
3245
+ * build that context.
3246
+ *
2973
3247
  * @category Services
3248
+ * @since 2.0.0
2974
3249
  */
2975
3250
  export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.contextWith(context => {
2976
3251
  const toProvide = f(context);
2977
3252
  return toTransform(provideContext(self, toProvide))(upstream, scope);
2978
3253
  })));
2979
3254
  /**
2980
- * @since 2.0.0
3255
+ * Updates a service in the current context before running the channel.
3256
+ *
3257
+ * The existing service is read from the context. The updated service is
3258
+ * provided to the channel under the same key.
3259
+ *
2981
3260
  * @category Services
3261
+ * @since 2.0.0
2982
3262
  */
2983
3263
  export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateContext(self, context => Context.add(context, service, f(Context.get(context, service)))));
2984
3264
  /**
2985
- * @since 4.0.0
3265
+ * Runs the channel inside a tracing span with the specified name and options.
3266
+ *
3267
+ * The created span is provided as the current parent span while the channel
3268
+ * runs. The span is ended with the channel's exit value.
3269
+ *
2986
3270
  * @category Tracing
3271
+ * @since 4.0.0
2987
3272
  */
2988
3273
  export const withSpan = function () {
2989
3274
  const dataFirst = isChannel(arguments[0]);
@@ -3001,8 +3286,10 @@ const withSpanImpl = (self, name, options) => acquireUseRelease(Effect.makeSpan(
3001
3286
  return endSpan(span, exit, clock, timingEnabled);
3002
3287
  }));
3003
3288
  /**
3004
- * @since 4.0.0
3289
+ * The starting channel for Do notation, emitting an empty object.
3290
+ *
3005
3291
  * @category Do notation
3292
+ * @since 4.0.0
3006
3293
  */
3007
3294
  export const Do = /*#__PURE__*/succeed({});
3008
3295
  const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
@@ -3011,21 +3298,30 @@ const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
3011
3298
  })));
3012
3299
  export {
3013
3300
  /**
3014
- * @since 4.0.0
3015
3301
  * @category Do notation
3302
+ * @since 4.0.0
3016
3303
  */
3017
3304
  let_ as let };
3018
3305
  /**
3019
- * @since 4.0.0
3306
+ * Adds a field to each object emitted by a channel by running another channel
3307
+ * derived from that object.
3308
+ *
3309
+ * The field name must not already exist on the emitted object. The derived
3310
+ * channel's output becomes the value of the new field. `options.concurrency`
3311
+ * and `options.bufferSize` control how derived channels are flattened.
3312
+ *
3020
3313
  * @category Do notation
3314
+ * @since 4.0.0
3021
3315
  */
3022
3316
  export const bind = /*#__PURE__*/dual(args => isChannel(args[0]), (self, name, f, options) => flatMap(self, elem => map(f(elem), b => ({
3023
3317
  ...elem,
3024
3318
  [name]: b
3025
3319
  })), options));
3026
3320
  /**
3027
- * @since 4.0.0
3321
+ * Wraps each output element in an object under the specified field name.
3322
+ *
3028
3323
  * @category Do notation
3324
+ * @since 4.0.0
3029
3325
  */
3030
3326
  export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
3031
3327
  [name]: elem
@@ -3033,7 +3329,8 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
3033
3329
  /**
3034
3330
  * Runs a channel and counts the number of elements it outputs.
3035
3331
  *
3036
- * @example
3332
+ * **Example** (Counting channel output)
3333
+ *
3037
3334
  * ```ts
3038
3335
  * import { Channel, Data } from "effect"
3039
3336
  *
@@ -3050,14 +3347,15 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
3050
3347
  * // Effect.runSync(countEffect) // Returns: 5
3051
3348
  * ```
3052
3349
  *
3053
- * @since 2.0.0
3054
3350
  * @category execution
3351
+ * @since 2.0.0
3055
3352
  */
3056
3353
  export const runCount = self => runFold(self, () => 0, acc => acc + 1);
3057
3354
  /**
3058
3355
  * Runs a channel and discards all output elements, returning only the final result.
3059
3356
  *
3060
- * @example
3357
+ * **Example** (Draining channel output at runtime)
3358
+ *
3061
3359
  * ```ts
3062
3360
  * import { Channel, Data } from "effect"
3063
3361
  *
@@ -3078,8 +3376,8 @@ export const runCount = self => runFold(self, () => 0, acc => acc + 1);
3078
3376
  * // Effect.runSync(drainEffect) // Returns: "completed"
3079
3377
  * ```
3080
3378
  *
3081
- * @since 2.0.0
3082
3379
  * @category execution
3380
+ * @since 2.0.0
3083
3381
  */
3084
3382
  export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
3085
3383
  disableYield: true
@@ -3087,7 +3385,8 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
3087
3385
  /**
3088
3386
  * Runs a channel and applies an effect to each output element.
3089
3387
  *
3090
- * @example
3388
+ * **Example** (Running effects for each output)
3389
+ *
3091
3390
  * ```ts
3092
3391
  * import { Channel, Console, Data } from "effect"
3093
3392
  *
@@ -3107,15 +3406,21 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
3107
3406
  * // Logs: "Processing: 1", "Processing: 2", "Processing: 3"
3108
3407
  * ```
3109
3408
  *
3110
- * @since 2.0.0
3111
3409
  * @category execution
3410
+ * @since 2.0.0
3112
3411
  */
3113
3412
  export const runForEach = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull => Effect.forever(Effect.flatMap(pull, f), {
3114
3413
  disableYield: true
3115
3414
  })));
3116
3415
  /**
3117
- * @since 2.0.0
3416
+ * Runs a channel and applies an effectful predicate to each output element
3417
+ * until the predicate returns `false`.
3418
+ *
3419
+ * Returning `true` continues consuming the channel. Returning `false` stops
3420
+ * consumption early. The returned effect completes with `void`.
3421
+ *
3118
3422
  * @category execution
3423
+ * @since 2.0.0
3119
3424
  */
3120
3425
  export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull => pull.pipe(Effect.flatMap(f), Effect.flatMap(cont => cont ? Effect.void : Cause.done()), Effect.forever({
3121
3426
  disableYield: true
@@ -3123,7 +3428,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
3123
3428
  /**
3124
3429
  * Runs a channel and collects all output elements into an array.
3125
3430
  *
3126
- * @example
3431
+ * **Example** (Collecting channel output)
3432
+ *
3127
3433
  * ```ts
3128
3434
  * import { Channel, Data } from "effect"
3129
3435
  *
@@ -3140,8 +3446,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
3140
3446
  * // Effect.runSync(collectEffect) // Returns: [1, 2, 3, 4, 5]
3141
3447
  * ```
3142
3448
  *
3143
- * @since 2.0.0
3144
3449
  * @category execution
3450
+ * @since 2.0.0
3145
3451
  */
3146
3452
  export const runCollect = self => runFold(self, () => [], (acc, o) => {
3147
3453
  acc.push(o);
@@ -3150,13 +3456,19 @@ export const runCollect = self => runFold(self, () => [], (acc, o) => {
3150
3456
  /**
3151
3457
  * Runs a channel and outputs the done value.
3152
3458
  *
3153
- * @since 4.0.0
3154
3459
  * @category execution
3460
+ * @since 4.0.0
3155
3461
  */
3156
3462
  export const runDone = self => runWith(self, identity_, Effect.succeed);
3157
3463
  /**
3158
- * @since 2.0.0
3464
+ * Runs a channel until the first output element is available, returning it in
3465
+ * an `Option`.
3466
+ *
3467
+ * Returns `Option.some` with the first output element, or `Option.none` if the
3468
+ * channel completes without emitting output.
3469
+ *
3159
3470
  * @category execution
3471
+ * @since 2.0.0
3160
3472
  */
3161
3473
  export const runHead = self => Effect.suspend(() => {
3162
3474
  let head = Option.none();
@@ -3166,8 +3478,14 @@ export const runHead = self => Effect.suspend(() => {
3166
3478
  })), () => Effect.succeed(head));
3167
3479
  });
3168
3480
  /**
3169
- * @since 2.0.0
3481
+ * Runs a channel to completion and returns the last output element in an
3482
+ * `Option`.
3483
+ *
3484
+ * Returns `Option.some` with the last emitted element, or `Option.none` if the
3485
+ * channel completes without emitting output.
3486
+ *
3170
3487
  * @category execution
3488
+ * @since 2.0.0
3171
3489
  */
3172
3490
  export const runLast = self => Effect.suspend(() => {
3173
3491
  const absent = Symbol(); // Prevent boxing
@@ -3182,7 +3500,8 @@ export const runLast = self => Effect.suspend(() => {
3182
3500
  /**
3183
3501
  * Runs a channel and folds over all output elements with an accumulator.
3184
3502
  *
3185
- * @example
3503
+ * **Example** (Folding channel output)
3504
+ *
3186
3505
  * ```ts
3187
3506
  * import { Channel, Data } from "effect"
3188
3507
  *
@@ -3199,8 +3518,8 @@ export const runLast = self => Effect.suspend(() => {
3199
3518
  * // Effect.runSync(sumEffect) // Returns: 15
3200
3519
  * ```
3201
3520
  *
3202
- * @since 2.0.0
3203
3521
  * @category execution
3522
+ * @since 2.0.0
3204
3523
  */
3205
3524
  export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
3206
3525
  let state = initial();
@@ -3213,8 +3532,14 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend
3213
3532
  }), () => Effect.succeed(state));
3214
3533
  }));
3215
3534
  /**
3216
- * @since 2.0.0
3535
+ * Runs a channel and effectfully folds all output elements with an accumulator.
3536
+ *
3537
+ * The initial accumulator is evaluated lazily. Each output element is passed to
3538
+ * the effectful accumulator function. The returned effect succeeds with the
3539
+ * final accumulator value.
3540
+ *
3217
3541
  * @category execution
3542
+ * @since 2.0.0
3218
3543
  */
3219
3544
  export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
3220
3545
  let state = initial();
@@ -3227,9 +3552,14 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
3227
3552
  }), () => Effect.succeed(state));
3228
3553
  }));
3229
3554
  /**
3230
- * Converts a channel to a Pull data structure for low-level consumption.
3555
+ * Converts a channel to a scoped `Pull` for low-level consumption.
3556
+ *
3557
+ * The effect requires a `Scope`. The returned pull should be consumed only
3558
+ * while that scope remains open. Pulls are serialized so only one pull is
3559
+ * evaluated at a time.
3560
+ *
3561
+ * **Example** (Converting channels to pulls)
3231
3562
  *
3232
- * @example
3233
3563
  * ```ts
3234
3564
  * import { Channel, Data, Effect } from "effect"
3235
3565
  *
@@ -3248,8 +3578,8 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
3248
3578
  * // Use the Pull to manually consume elements
3249
3579
  * ```
3250
3580
  *
3251
- * @since 2.0.0
3252
3581
  * @category Destructors
3582
+ * @since 2.0.0
3253
3583
  */
3254
3584
  export const toPull = /*#__PURE__*/Effect.fnUntraced(function* (self) {
3255
3585
  const semaphore = Semaphore.makeUnsafe(1);
@@ -3264,7 +3594,8 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
3264
3594
  /**
3265
3595
  * Converts a channel to a Pull within an existing scope.
3266
3596
  *
3267
- * @example
3597
+ * **Example** (Converting channels to scoped pulls)
3598
+ *
3268
3599
  * ```ts
3269
3600
  * import { Channel, Data, Effect, Scope } from "effect"
3270
3601
  *
@@ -3283,13 +3614,19 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
3283
3614
  * })
3284
3615
  * ```
3285
3616
  *
3286
- * @since 4.0.0
3287
3617
  * @category Destructors
3618
+ * @since 4.0.0
3288
3619
  */
3289
3620
  export const toPullScoped = (self, scope) => toTransform(self)(Cause.done(), scope);
3290
3621
  /**
3291
- * @since 4.0.0
3622
+ * Runs a channel and offers each output element into a queue.
3623
+ *
3624
+ * When the channel completes, the queue is ended. When the channel fails, the
3625
+ * queue is failed with the channel's cause. The returned effect itself
3626
+ * completes with `void`.
3627
+ *
3292
3628
  * @category Destructors
3629
+ * @since 4.0.0
3293
3630
  */
3294
3631
  export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self, queue) => Effect.uninterruptibleMask(restore => runForEach(self, value => Queue.offer(queue, value)).pipe(restore, Effect.exit, Effect.flatMap(exit => {
3295
3632
  if (Exit.isSuccess(exit)) {
@@ -3300,8 +3637,15 @@ export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
3300
3637
  return Effect.void;
3301
3638
  }))));
3302
3639
  /**
3303
- * @since 4.0.0
3640
+ * Runs a channel that emits non-empty arrays and offers each array element into
3641
+ * a queue.
3642
+ *
3643
+ * When the channel completes, the queue is ended. When the channel fails, the
3644
+ * queue is failed with the channel's cause. The returned effect itself
3645
+ * completes with `void`.
3646
+ *
3304
3647
  * @category Destructors
3648
+ * @since 4.0.0
3305
3649
  */
3306
3650
  export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (self, queue) => Effect.uninterruptibleMask(restore => runForEach(self, value => Queue.offerAll(queue, value)).pipe(restore, Effect.exit, Effect.flatMap(exit => {
3307
3651
  if (Exit.isSuccess(exit)) {
@@ -3312,9 +3656,15 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
3312
3656
  return Effect.void;
3313
3657
  }))));
3314
3658
  /**
3315
- * Converts a channel to a queue for concurrent consumption.
3659
+ * Creates a scoped queue and forks the channel to feed it for concurrent
3660
+ * consumption.
3661
+ *
3662
+ * Output elements are offered to the queue. Channel completion and failure are
3663
+ * signaled through the queue. The queue is shut down when the surrounding scope
3664
+ * closes.
3665
+ *
3666
+ * **Example** (Converting channels to queues)
3316
3667
  *
3317
- * @example
3318
3668
  * ```ts
3319
3669
  * import { Channel, Data } from "effect"
3320
3670
  *
@@ -3332,8 +3682,8 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
3332
3682
  * // Multiple consumers can read from the queue
3333
3683
  * ```
3334
3684
  *
3335
- * @since 4.0.0
3336
3685
  * @category Destructors
3686
+ * @since 4.0.0
3337
3687
  */
3338
3688
  export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
3339
3689
  const scope = yield* Effect.scope;
@@ -3346,8 +3696,14 @@ export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__
3346
3696
  return queue;
3347
3697
  }));
3348
3698
  /**
3349
- * @since 4.0.0
3699
+ * Creates a scoped queue and forks an array-emitting channel to feed it.
3700
+ *
3701
+ * Each element inside emitted non-empty arrays is offered to the queue. Channel
3702
+ * completion and failure are signaled through the queue. The queue is shut down
3703
+ * when the surrounding scope closes.
3704
+ *
3350
3705
  * @category Destructors
3706
+ * @since 4.0.0
3351
3707
  */
3352
3708
  export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
3353
3709
  const scope = yield* Effect.scope;
@@ -3365,8 +3721,8 @@ export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__P
3365
3721
  * `shutdownOnEnd` indicates whether the PubSub should be shut down when the
3366
3722
  * channel ends. By default this is `true`.
3367
3723
  *
3368
- * @since 4.0.0
3369
3724
  * @category Destructors
3725
+ * @since 4.0.0
3370
3726
  */
3371
3727
  export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
3372
3728
  const pubsub = yield* makePubSub(options);
@@ -3376,19 +3732,26 @@ export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(func
3376
3732
  return pubsub;
3377
3733
  }));
3378
3734
  /**
3379
- * @since 4.0.0
3735
+ * Runs a channel and publishes each output element to a `PubSub`.
3736
+ *
3737
+ * The channel's output values are published as individual PubSub messages. Use
3738
+ * `options.shutdownOnEnd` to shut down the PubSub when channel execution ends.
3739
+ *
3380
3740
  * @category Destructors
3741
+ * @since 4.0.0
3381
3742
  */
3382
3743
  export const runIntoPubSub = /*#__PURE__*/dual(args => isChannel(args[0]), (self, pubsub, options) => runForEach(self, value => PubSub.publish(pubsub, value)).pipe(options?.shutdownOnEnd === true ? Effect.ensuring(PubSub.shutdown(pubsub)) : identity_));
3383
3744
  const makePubSub = options => Effect.acquireRelease(options.capacity === "unbounded" ? PubSub.unbounded(options) : options.strategy === "dropping" ? PubSub.dropping(options) : options.strategy === "sliding" ? PubSub.sliding(options) : PubSub.bounded(options), PubSub.shutdown);
3384
3745
  /**
3385
- * Converts a channel to a PubSub for concurrent consumption.
3746
+ * Converts an array-emitting channel to a scoped `PubSub` for concurrent
3747
+ * consumption.
3386
3748
  *
3387
- * `shutdownOnEnd` indicates whether the PubSub should be shut down when the
3388
- * channel ends. By default this is `true`.
3749
+ * Each element inside emitted non-empty arrays is published as an individual
3750
+ * PubSub message. `shutdownOnEnd` indicates whether the PubSub should be shut
3751
+ * down when the channel ends. By default this is `true`.
3389
3752
  *
3390
- * @since 4.0.0
3391
3753
  * @category Destructors
3754
+ * @since 4.0.0
3392
3755
  */
3393
3756
  export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
3394
3757
  const pubsub = yield* makePubSub(options);
@@ -3398,15 +3761,26 @@ export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced
3398
3761
  return pubsub;
3399
3762
  }));
3400
3763
  /**
3401
- * @since 4.0.0
3764
+ * Runs an array-emitting channel and publishes each array element to a
3765
+ * `PubSub`.
3766
+ *
3767
+ * Each element inside emitted non-empty arrays is published as an individual
3768
+ * PubSub message. Use `options.shutdownOnEnd` to shut down the PubSub when
3769
+ * channel execution ends.
3770
+ *
3402
3771
  * @category Destructors
3772
+ * @since 4.0.0
3403
3773
  */
3404
3774
  export const runIntoPubSubArray = /*#__PURE__*/dual(args => isChannel(args[0]), (self, pubsub, options) => runForEach(self, value => PubSub.publishAll(pubsub, value)).pipe(options?.shutdownOnEnd === true ? Effect.ensuring(PubSub.shutdown(pubsub)) : identity_));
3405
3775
  /**
3406
- * Converts a channel to a PubSub for concurrent consumption.
3776
+ * Converts a channel to a scoped `PubSub` of `Take` values.
3777
+ *
3778
+ * Emitted non-empty arrays are published as output `Take` values. When the
3779
+ * channel ends, its final `Exit` is published so subscribers can observe
3780
+ * completion or failure.
3407
3781
  *
3408
- * @since 4.0.0
3409
3782
  * @category Destructors
3783
+ * @since 4.0.0
3410
3784
  */
3411
3785
  export const toPubSubTake = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
3412
3786
  const pubsub = yield* makePubSub(options);