effect 4.0.0-beta.66 → 4.0.0-beta.68

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