effect 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/ai-docs/package.json +2 -2
  2. package/ai-docs/tsconfig.json +2 -1
  3. package/dist/Array.d.ts +339 -0
  4. package/dist/Array.d.ts.map +1 -1
  5. package/dist/Array.js +143 -3
  6. package/dist/Array.js.map +1 -1
  7. package/dist/BigDecimal.d.ts +88 -0
  8. package/dist/BigDecimal.d.ts.map +1 -1
  9. package/dist/BigDecimal.js +44 -0
  10. package/dist/BigDecimal.js.map +1 -1
  11. package/dist/BigInt.d.ts +68 -0
  12. package/dist/BigInt.d.ts.map +1 -1
  13. package/dist/BigInt.js +36 -0
  14. package/dist/BigInt.js.map +1 -1
  15. package/dist/Boolean.d.ts +34 -0
  16. package/dist/Boolean.d.ts.map +1 -1
  17. package/dist/Boolean.js +18 -0
  18. package/dist/Boolean.js.map +1 -1
  19. package/dist/Brand.d.ts +9 -0
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +6 -0
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ByteSize.d.ts +86 -0
  24. package/dist/ByteSize.d.ts.map +1 -1
  25. package/dist/ByteSize.js +51 -0
  26. package/dist/ByteSize.js.map +1 -1
  27. package/dist/Cache.d.ts +38 -1
  28. package/dist/Cache.d.ts.map +1 -1
  29. package/dist/Cache.js +27 -7
  30. package/dist/Cache.js.map +1 -1
  31. package/dist/Cause.d.ts +82 -0
  32. package/dist/Cause.d.ts.map +1 -1
  33. package/dist/Cause.js +60 -0
  34. package/dist/Cause.js.map +1 -1
  35. package/dist/Channel.d.ts +327 -4
  36. package/dist/Channel.d.ts.map +1 -1
  37. package/dist/Channel.js +168 -8
  38. package/dist/Channel.js.map +1 -1
  39. package/dist/ChannelSchema.d.ts +11 -0
  40. package/dist/ChannelSchema.d.ts.map +1 -1
  41. package/dist/ChannelSchema.js +6 -0
  42. package/dist/ChannelSchema.js.map +1 -1
  43. package/dist/Chunk.d.ts +192 -0
  44. package/dist/Chunk.d.ts.map +1 -1
  45. package/dist/Chunk.js +78 -0
  46. package/dist/Chunk.js.map +1 -1
  47. package/dist/Clock.d.ts +7 -0
  48. package/dist/Clock.d.ts.map +1 -1
  49. package/dist/Clock.js +5 -0
  50. package/dist/Clock.js.map +1 -1
  51. package/dist/Combiner.d.ts +10 -0
  52. package/dist/Combiner.d.ts.map +1 -1
  53. package/dist/Combiner.js +8 -0
  54. package/dist/Combiner.js.map +1 -1
  55. package/dist/Config.d.ts +52 -12
  56. package/dist/Config.d.ts.map +1 -1
  57. package/dist/Config.js +55 -5
  58. package/dist/Config.js.map +1 -1
  59. package/dist/ConfigProvider.d.ts +28 -0
  60. package/dist/ConfigProvider.d.ts.map +1 -1
  61. package/dist/ConfigProvider.js +19 -0
  62. package/dist/ConfigProvider.js.map +1 -1
  63. package/dist/Console.d.ts +22 -0
  64. package/dist/Console.d.ts.map +1 -1
  65. package/dist/Console.js +20 -0
  66. package/dist/Console.js.map +1 -1
  67. package/dist/Context.d.ts +50 -0
  68. package/dist/Context.d.ts.map +1 -1
  69. package/dist/Context.js +21 -0
  70. package/dist/Context.js.map +1 -1
  71. package/dist/Cron.d.ts +16 -0
  72. package/dist/Cron.d.ts.map +1 -1
  73. package/dist/Cron.js +26 -1
  74. package/dist/Cron.js.map +1 -1
  75. package/dist/Crypto.d.ts +5 -0
  76. package/dist/Crypto.d.ts.map +1 -1
  77. package/dist/Crypto.js +3 -0
  78. package/dist/Crypto.js.map +1 -1
  79. package/dist/Data.d.ts +13 -0
  80. package/dist/Data.d.ts.map +1 -1
  81. package/dist/Data.js +5 -0
  82. package/dist/Data.js.map +1 -1
  83. package/dist/DateTime.d.ts +171 -0
  84. package/dist/DateTime.d.ts.map +1 -1
  85. package/dist/DateTime.js +89 -0
  86. package/dist/DateTime.js.map +1 -1
  87. package/dist/Deferred.d.ts +51 -0
  88. package/dist/Deferred.d.ts.map +1 -1
  89. package/dist/Deferred.js +22 -0
  90. package/dist/Deferred.js.map +1 -1
  91. package/dist/Differ.d.ts +2 -0
  92. package/dist/Differ.d.ts.map +1 -1
  93. package/dist/Differ.js +1 -0
  94. package/dist/Duration.d.ts +90 -0
  95. package/dist/Duration.d.ts.map +1 -1
  96. package/dist/Duration.js +53 -0
  97. package/dist/Duration.js.map +1 -1
  98. package/dist/Effect.d.ts +527 -0
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +240 -5
  101. package/dist/Effect.js.map +1 -1
  102. package/dist/Effectable.d.ts +4 -0
  103. package/dist/Effectable.d.ts.map +1 -1
  104. package/dist/Effectable.js +3 -0
  105. package/dist/Effectable.js.map +1 -1
  106. package/dist/Equal.d.ts +8 -0
  107. package/dist/Equal.d.ts.map +1 -1
  108. package/dist/Equal.js +9 -1
  109. package/dist/Equal.js.map +1 -1
  110. package/dist/Equivalence.d.ts +21 -0
  111. package/dist/Equivalence.d.ts.map +1 -1
  112. package/dist/Equivalence.js +16 -0
  113. package/dist/Equivalence.js.map +1 -1
  114. package/dist/ErrorReporter.d.ts +36 -0
  115. package/dist/ErrorReporter.d.ts.map +1 -1
  116. package/dist/ErrorReporter.js +11 -0
  117. package/dist/ErrorReporter.js.map +1 -1
  118. package/dist/ExecutionPlan.d.ts +49 -8
  119. package/dist/ExecutionPlan.d.ts.map +1 -1
  120. package/dist/ExecutionPlan.js +7 -0
  121. package/dist/ExecutionPlan.js.map +1 -1
  122. package/dist/Exit.d.ts +40 -0
  123. package/dist/Exit.d.ts.map +1 -1
  124. package/dist/Exit.js +27 -0
  125. package/dist/Exit.js.map +1 -1
  126. package/dist/Fiber.d.ts +20 -0
  127. package/dist/Fiber.d.ts.map +1 -1
  128. package/dist/Fiber.js +11 -0
  129. package/dist/Fiber.js.map +1 -1
  130. package/dist/FiberHandle.d.ts +21 -0
  131. package/dist/FiberHandle.d.ts.map +1 -1
  132. package/dist/FiberHandle.js +21 -4
  133. package/dist/FiberHandle.js.map +1 -1
  134. package/dist/FiberMap.d.ts +35 -0
  135. package/dist/FiberMap.d.ts.map +1 -1
  136. package/dist/FiberMap.js +19 -0
  137. package/dist/FiberMap.js.map +1 -1
  138. package/dist/FiberSet.d.ts +20 -0
  139. package/dist/FiberSet.d.ts.map +1 -1
  140. package/dist/FiberSet.js +14 -0
  141. package/dist/FiberSet.js.map +1 -1
  142. package/dist/FileSystem.d.ts +15 -0
  143. package/dist/FileSystem.d.ts.map +1 -1
  144. package/dist/FileSystem.js +8 -0
  145. package/dist/FileSystem.js.map +1 -1
  146. package/dist/Filter.d.ts +55 -0
  147. package/dist/Filter.d.ts.map +1 -1
  148. package/dist/Filter.js +28 -0
  149. package/dist/Filter.js.map +1 -1
  150. package/dist/Formatter.d.ts +3 -0
  151. package/dist/Formatter.d.ts.map +1 -1
  152. package/dist/Formatter.js +39 -1
  153. package/dist/Formatter.js.map +1 -1
  154. package/dist/Function.d.ts +30 -0
  155. package/dist/Function.d.ts.map +1 -1
  156. package/dist/Function.js +20 -0
  157. package/dist/Function.js.map +1 -1
  158. package/dist/Graph.d.ts +247 -12
  159. package/dist/Graph.d.ts.map +1 -1
  160. package/dist/Graph.js +149 -28
  161. package/dist/Graph.js.map +1 -1
  162. package/dist/HKT.d.ts +5 -0
  163. package/dist/HKT.d.ts.map +1 -1
  164. package/dist/Hash.d.ts +14 -0
  165. package/dist/Hash.d.ts.map +1 -1
  166. package/dist/Hash.js +12 -0
  167. package/dist/Hash.js.map +1 -1
  168. package/dist/HashMap.d.ts +91 -0
  169. package/dist/HashMap.d.ts.map +1 -1
  170. package/dist/HashMap.js +39 -0
  171. package/dist/HashMap.js.map +1 -1
  172. package/dist/HashRing.d.ts +17 -0
  173. package/dist/HashRing.d.ts.map +1 -1
  174. package/dist/HashRing.js +9 -0
  175. package/dist/HashRing.js.map +1 -1
  176. package/dist/HashSet.d.ts +49 -0
  177. package/dist/HashSet.d.ts.map +1 -1
  178. package/dist/HashSet.js +19 -0
  179. package/dist/HashSet.js.map +1 -1
  180. package/dist/Inspectable.d.ts +7 -0
  181. package/dist/Inspectable.d.ts.map +1 -1
  182. package/dist/Inspectable.js +6 -0
  183. package/dist/Inspectable.js.map +1 -1
  184. package/dist/Iterable.d.ts +127 -0
  185. package/dist/Iterable.d.ts.map +1 -1
  186. package/dist/Iterable.js +51 -0
  187. package/dist/Iterable.js.map +1 -1
  188. package/dist/JsonPatch.d.ts +4 -0
  189. package/dist/JsonPatch.d.ts.map +1 -1
  190. package/dist/JsonPatch.js +3 -0
  191. package/dist/JsonPatch.js.map +1 -1
  192. package/dist/JsonPointer.d.ts +5 -0
  193. package/dist/JsonPointer.d.ts.map +1 -1
  194. package/dist/JsonPointer.js +5 -0
  195. package/dist/JsonPointer.js.map +1 -1
  196. package/dist/JsonSchema.d.ts +16 -0
  197. package/dist/JsonSchema.d.ts.map +1 -1
  198. package/dist/JsonSchema.js +11 -0
  199. package/dist/JsonSchema.js.map +1 -1
  200. package/dist/Latch.d.ts +14 -0
  201. package/dist/Latch.d.ts.map +1 -1
  202. package/dist/Latch.js +10 -0
  203. package/dist/Latch.js.map +1 -1
  204. package/dist/Layer.d.ts +100 -0
  205. package/dist/Layer.d.ts.map +1 -1
  206. package/dist/Layer.js +45 -1
  207. package/dist/Layer.js.map +1 -1
  208. package/dist/LayerMap.d.ts +7 -0
  209. package/dist/LayerMap.d.ts.map +1 -1
  210. package/dist/LayerMap.js +4 -0
  211. package/dist/LayerMap.js.map +1 -1
  212. package/dist/LayerRef.d.ts +5 -0
  213. package/dist/LayerRef.d.ts.map +1 -1
  214. package/dist/LayerRef.js +3 -0
  215. package/dist/LayerRef.js.map +1 -1
  216. package/dist/LogLevel.d.ts +20 -0
  217. package/dist/LogLevel.d.ts.map +1 -1
  218. package/dist/LogLevel.js +9 -0
  219. package/dist/LogLevel.js.map +1 -1
  220. package/dist/Logger.d.ts +25 -0
  221. package/dist/Logger.d.ts.map +1 -1
  222. package/dist/Logger.js +30 -4
  223. package/dist/Logger.js.map +1 -1
  224. package/dist/ManagedRuntime.d.ts +5 -0
  225. package/dist/ManagedRuntime.d.ts.map +1 -1
  226. package/dist/ManagedRuntime.js +9 -1
  227. package/dist/ManagedRuntime.js.map +1 -1
  228. package/dist/Match.d.ts +51 -0
  229. package/dist/Match.d.ts.map +1 -1
  230. package/dist/Match.js +39 -0
  231. package/dist/Match.js.map +1 -1
  232. package/dist/Metric.d.ts +59 -0
  233. package/dist/Metric.d.ts.map +1 -1
  234. package/dist/Metric.js +31 -0
  235. package/dist/Metric.js.map +1 -1
  236. package/dist/MutableHashMap.d.ts +32 -0
  237. package/dist/MutableHashMap.d.ts.map +1 -1
  238. package/dist/MutableHashMap.js +16 -0
  239. package/dist/MutableHashMap.js.map +1 -1
  240. package/dist/MutableHashSet.d.ts +16 -0
  241. package/dist/MutableHashSet.d.ts.map +1 -1
  242. package/dist/MutableHashSet.js +10 -0
  243. package/dist/MutableHashSet.js.map +1 -1
  244. package/dist/MutableList.d.ts +20 -0
  245. package/dist/MutableList.d.ts.map +1 -1
  246. package/dist/MutableList.js +18 -0
  247. package/dist/MutableList.js.map +1 -1
  248. package/dist/MutableRef.d.ts +31 -0
  249. package/dist/MutableRef.d.ts.map +1 -1
  250. package/dist/MutableRef.js +17 -0
  251. package/dist/MutableRef.js.map +1 -1
  252. package/dist/Newtype.d.ts +9 -0
  253. package/dist/Newtype.d.ts.map +1 -1
  254. package/dist/Newtype.js +6 -0
  255. package/dist/Newtype.js.map +1 -1
  256. package/dist/NonEmptyIterable.d.ts +4 -0
  257. package/dist/NonEmptyIterable.d.ts.map +1 -1
  258. package/dist/NonEmptyIterable.js +2 -0
  259. package/dist/NonEmptyIterable.js.map +1 -1
  260. package/dist/Number.d.ts +61 -0
  261. package/dist/Number.d.ts.map +1 -1
  262. package/dist/Number.js +31 -0
  263. package/dist/Number.js.map +1 -1
  264. package/dist/Optic.d.ts +41 -0
  265. package/dist/Optic.d.ts.map +1 -1
  266. package/dist/Optic.js +20 -0
  267. package/dist/Optic.js.map +1 -1
  268. package/dist/Option.d.ts +134 -0
  269. package/dist/Option.d.ts.map +1 -1
  270. package/dist/Option.js +61 -0
  271. package/dist/Option.js.map +1 -1
  272. package/dist/Order.d.ts +29 -0
  273. package/dist/Order.d.ts.map +1 -1
  274. package/dist/Order.js +24 -0
  275. package/dist/Order.js.map +1 -1
  276. package/dist/Ordering.d.ts +7 -0
  277. package/dist/Ordering.d.ts.map +1 -1
  278. package/dist/Ordering.js +3 -0
  279. package/dist/Ordering.js.map +1 -1
  280. package/dist/PartitionedSemaphore.d.ts +24 -0
  281. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  282. package/dist/PartitionedSemaphore.js +47 -21
  283. package/dist/PartitionedSemaphore.js.map +1 -1
  284. package/dist/Path.d.ts +6 -0
  285. package/dist/Path.d.ts.map +1 -1
  286. package/dist/Path.js +4 -0
  287. package/dist/Path.js.map +1 -1
  288. package/dist/Pipeable.d.ts +7 -0
  289. package/dist/Pipeable.d.ts.map +1 -1
  290. package/dist/Pipeable.js +5 -0
  291. package/dist/Pipeable.js.map +1 -1
  292. package/dist/PlatformError.d.ts +8 -0
  293. package/dist/PlatformError.d.ts.map +1 -1
  294. package/dist/PlatformError.js +7 -0
  295. package/dist/PlatformError.js.map +1 -1
  296. package/dist/Pool.d.ts +19 -0
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +8 -1
  299. package/dist/Pool.js.map +1 -1
  300. package/dist/Predicate.d.ts +84 -0
  301. package/dist/Predicate.d.ts.map +1 -1
  302. package/dist/Predicate.js +48 -0
  303. package/dist/Predicate.js.map +1 -1
  304. package/dist/PrimaryKey.d.ts +5 -0
  305. package/dist/PrimaryKey.d.ts.map +1 -1
  306. package/dist/PrimaryKey.js +4 -0
  307. package/dist/PrimaryKey.js.map +1 -1
  308. package/dist/PubSub.d.ts +67 -5
  309. package/dist/PubSub.d.ts.map +1 -1
  310. package/dist/PubSub.js +60 -8
  311. package/dist/PubSub.js.map +1 -1
  312. package/dist/Pull.d.ts +20 -0
  313. package/dist/Pull.d.ts.map +1 -1
  314. package/dist/Pull.js +10 -0
  315. package/dist/Pull.js.map +1 -1
  316. package/dist/Queue.d.ts +60 -0
  317. package/dist/Queue.d.ts.map +1 -1
  318. package/dist/Queue.js +58 -8
  319. package/dist/Queue.js.map +1 -1
  320. package/dist/Random.d.ts +13 -0
  321. package/dist/Random.d.ts.map +1 -1
  322. package/dist/Random.js +9 -0
  323. package/dist/Random.js.map +1 -1
  324. package/dist/RcMap.d.ts +23 -0
  325. package/dist/RcMap.d.ts.map +1 -1
  326. package/dist/RcMap.js +8 -0
  327. package/dist/RcMap.js.map +1 -1
  328. package/dist/RcRef.d.ts +6 -0
  329. package/dist/RcRef.d.ts.map +1 -1
  330. package/dist/RcRef.js +3 -0
  331. package/dist/RcRef.js.map +1 -1
  332. package/dist/Record.d.ts +100 -0
  333. package/dist/Record.d.ts.map +1 -1
  334. package/dist/Record.js +43 -0
  335. package/dist/Record.js.map +1 -1
  336. package/dist/Redactable.d.ts +6 -0
  337. package/dist/Redactable.d.ts.map +1 -1
  338. package/dist/Redactable.js +4 -0
  339. package/dist/Redactable.js.map +1 -1
  340. package/dist/Redacted.d.ts +8 -0
  341. package/dist/Redacted.d.ts.map +1 -1
  342. package/dist/Redacted.js +6 -0
  343. package/dist/Redacted.js.map +1 -1
  344. package/dist/Reducer.d.ts +4 -0
  345. package/dist/Reducer.d.ts.map +1 -1
  346. package/dist/Reducer.js +3 -0
  347. package/dist/Reducer.js.map +1 -1
  348. package/dist/Ref.d.ts +20 -0
  349. package/dist/Ref.d.ts.map +1 -1
  350. package/dist/Ref.js +16 -0
  351. package/dist/Ref.js.map +1 -1
  352. package/dist/References.d.ts +21 -0
  353. package/dist/References.d.ts.map +1 -1
  354. package/dist/References.js +19 -0
  355. package/dist/References.js.map +1 -1
  356. package/dist/RegExp.d.ts +3 -0
  357. package/dist/RegExp.d.ts.map +1 -1
  358. package/dist/RegExp.js +4 -0
  359. package/dist/RegExp.js.map +1 -1
  360. package/dist/Request.d.ts +32 -0
  361. package/dist/Request.d.ts.map +1 -1
  362. package/dist/Request.js +12 -0
  363. package/dist/Request.js.map +1 -1
  364. package/dist/RequestResolver.d.ts +42 -0
  365. package/dist/RequestResolver.d.ts.map +1 -1
  366. package/dist/RequestResolver.js +27 -6
  367. package/dist/RequestResolver.js.map +1 -1
  368. package/dist/Resource.d.ts +6 -0
  369. package/dist/Resource.d.ts.map +1 -1
  370. package/dist/Resource.js +6 -0
  371. package/dist/Resource.js.map +1 -1
  372. package/dist/Result.d.ts +91 -0
  373. package/dist/Result.d.ts.map +1 -1
  374. package/dist/Result.js +41 -0
  375. package/dist/Result.js.map +1 -1
  376. package/dist/Runtime.d.ts +9 -0
  377. package/dist/Runtime.d.ts.map +1 -1
  378. package/dist/Runtime.js +7 -0
  379. package/dist/Runtime.js.map +1 -1
  380. package/dist/Schedule.d.ts +57 -0
  381. package/dist/Schedule.d.ts.map +1 -1
  382. package/dist/Schedule.js +32 -0
  383. package/dist/Schedule.js.map +1 -1
  384. package/dist/Scheduler.d.ts +7 -0
  385. package/dist/Scheduler.d.ts.map +1 -1
  386. package/dist/Scheduler.js +5 -0
  387. package/dist/Scheduler.js.map +1 -1
  388. package/dist/Schema.d.ts +496 -1
  389. package/dist/Schema.d.ts.map +1 -1
  390. package/dist/Schema.js +280 -1
  391. package/dist/Schema.js.map +1 -1
  392. package/dist/SchemaAST.d.ts +107 -0
  393. package/dist/SchemaAST.d.ts.map +1 -1
  394. package/dist/SchemaAST.js +81 -1
  395. package/dist/SchemaAST.js.map +1 -1
  396. package/dist/SchemaGetter.d.ts +69 -2
  397. package/dist/SchemaGetter.d.ts.map +1 -1
  398. package/dist/SchemaGetter.js +63 -4
  399. package/dist/SchemaGetter.js.map +1 -1
  400. package/dist/SchemaIssue.d.ts +33 -0
  401. package/dist/SchemaIssue.d.ts.map +1 -1
  402. package/dist/SchemaIssue.js +18 -0
  403. package/dist/SchemaIssue.js.map +1 -1
  404. package/dist/SchemaParser.d.ts +25 -0
  405. package/dist/SchemaParser.d.ts.map +1 -1
  406. package/dist/SchemaParser.js +26 -0
  407. package/dist/SchemaParser.js.map +1 -1
  408. package/dist/SchemaRepresentation.d.ts +147 -0
  409. package/dist/SchemaRepresentation.d.ts.map +1 -1
  410. package/dist/SchemaRepresentation.js +99 -0
  411. package/dist/SchemaRepresentation.js.map +1 -1
  412. package/dist/SchemaTransformation.d.ts +53 -0
  413. package/dist/SchemaTransformation.d.ts.map +1 -1
  414. package/dist/SchemaTransformation.js +46 -0
  415. package/dist/SchemaTransformation.js.map +1 -1
  416. package/dist/Scope.d.ts +19 -0
  417. package/dist/Scope.d.ts.map +1 -1
  418. package/dist/Scope.js +12 -0
  419. package/dist/Scope.js.map +1 -1
  420. package/dist/ScopedCache.d.ts +34 -0
  421. package/dist/ScopedCache.d.ts.map +1 -1
  422. package/dist/ScopedCache.js +26 -3
  423. package/dist/ScopedCache.js.map +1 -1
  424. package/dist/ScopedRef.d.ts +9 -0
  425. package/dist/ScopedRef.d.ts.map +1 -1
  426. package/dist/ScopedRef.js +6 -0
  427. package/dist/ScopedRef.js.map +1 -1
  428. package/dist/Semaphore.d.ts +26 -0
  429. package/dist/Semaphore.d.ts.map +1 -1
  430. package/dist/Semaphore.js +10 -0
  431. package/dist/Semaphore.js.map +1 -1
  432. package/dist/Sink.d.ts +125 -1
  433. package/dist/Sink.d.ts.map +1 -1
  434. package/dist/Sink.js +75 -1
  435. package/dist/Sink.js.map +1 -1
  436. package/dist/StandardSchema.d.ts +1 -0
  437. package/dist/StandardSchema.d.ts.map +1 -1
  438. package/dist/StandardSchema.js +1 -0
  439. package/dist/Stdio.d.ts +7 -0
  440. package/dist/Stdio.d.ts.map +1 -1
  441. package/dist/Stdio.js +5 -0
  442. package/dist/Stdio.js.map +1 -1
  443. package/dist/Stream.d.ts +558 -0
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +261 -13
  446. package/dist/Stream.js.map +1 -1
  447. package/dist/String.d.ts +87 -0
  448. package/dist/String.d.ts.map +1 -1
  449. package/dist/String.js +61 -0
  450. package/dist/String.js.map +1 -1
  451. package/dist/Struct.d.ts +46 -0
  452. package/dist/Struct.d.ts.map +1 -1
  453. package/dist/Struct.js +19 -0
  454. package/dist/Struct.js.map +1 -1
  455. package/dist/SubscriptionRef.d.ts +65 -0
  456. package/dist/SubscriptionRef.d.ts.map +1 -1
  457. package/dist/SubscriptionRef.js +25 -0
  458. package/dist/SubscriptionRef.js.map +1 -1
  459. package/dist/Symbol.d.ts +2 -0
  460. package/dist/Symbol.d.ts.map +1 -1
  461. package/dist/Symbol.js +2 -0
  462. package/dist/Symbol.js.map +1 -1
  463. package/dist/SynchronizedRef.d.ts +63 -0
  464. package/dist/SynchronizedRef.d.ts.map +1 -1
  465. package/dist/SynchronizedRef.js +24 -0
  466. package/dist/SynchronizedRef.js.map +1 -1
  467. package/dist/Take.d.ts +3 -0
  468. package/dist/Take.d.ts.map +1 -1
  469. package/dist/Take.js +1 -0
  470. package/dist/Take.js.map +1 -1
  471. package/dist/Terminal.d.ts +8 -0
  472. package/dist/Terminal.d.ts.map +1 -1
  473. package/dist/Terminal.js +4 -0
  474. package/dist/Terminal.js.map +1 -1
  475. package/dist/Tracer.d.ts +23 -0
  476. package/dist/Tracer.d.ts.map +1 -1
  477. package/dist/Tracer.js +12 -0
  478. package/dist/Tracer.js.map +1 -1
  479. package/dist/Trie.d.ts +68 -0
  480. package/dist/Trie.d.ts.map +1 -1
  481. package/dist/Trie.js +28 -0
  482. package/dist/Trie.js.map +1 -1
  483. package/dist/Tuple.d.ts +38 -0
  484. package/dist/Tuple.d.ts.map +1 -1
  485. package/dist/Tuple.js +18 -0
  486. package/dist/Tuple.js.map +1 -1
  487. package/dist/TxChunk.d.ts +52 -0
  488. package/dist/TxChunk.d.ts.map +1 -1
  489. package/dist/TxChunk.js +23 -0
  490. package/dist/TxChunk.js.map +1 -1
  491. package/dist/TxDeferred.d.ts +15 -0
  492. package/dist/TxDeferred.d.ts.map +1 -1
  493. package/dist/TxDeferred.js +8 -0
  494. package/dist/TxDeferred.js.map +1 -1
  495. package/dist/TxHashMap.d.ts +83 -0
  496. package/dist/TxHashMap.d.ts.map +1 -1
  497. package/dist/TxHashMap.js +52 -7
  498. package/dist/TxHashMap.js.map +1 -1
  499. package/dist/TxHashSet.d.ts +51 -0
  500. package/dist/TxHashSet.d.ts.map +1 -1
  501. package/dist/TxHashSet.js +29 -4
  502. package/dist/TxHashSet.js.map +1 -1
  503. package/dist/TxPriorityQueue.d.ts +30 -0
  504. package/dist/TxPriorityQueue.d.ts.map +1 -1
  505. package/dist/TxPriorityQueue.js +22 -1
  506. package/dist/TxPriorityQueue.js.map +1 -1
  507. package/dist/TxPubSub.d.ts +25 -0
  508. package/dist/TxPubSub.d.ts.map +1 -1
  509. package/dist/TxPubSub.js +19 -0
  510. package/dist/TxPubSub.js.map +1 -1
  511. package/dist/TxQueue.d.ts +51 -0
  512. package/dist/TxQueue.d.ts.map +1 -1
  513. package/dist/TxQueue.js +30 -0
  514. package/dist/TxQueue.js.map +1 -1
  515. package/dist/TxReentrantLock.d.ts +24 -0
  516. package/dist/TxReentrantLock.d.ts.map +1 -1
  517. package/dist/TxReentrantLock.js +32 -18
  518. package/dist/TxReentrantLock.js.map +1 -1
  519. package/dist/TxRef.d.ts +14 -0
  520. package/dist/TxRef.d.ts.map +1 -1
  521. package/dist/TxRef.js +7 -0
  522. package/dist/TxRef.js.map +1 -1
  523. package/dist/TxSemaphore.d.ts +25 -0
  524. package/dist/TxSemaphore.d.ts.map +1 -1
  525. package/dist/TxSemaphore.js +29 -13
  526. package/dist/TxSemaphore.js.map +1 -1
  527. package/dist/TxSubscriptionRef.d.ts +25 -0
  528. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  529. package/dist/TxSubscriptionRef.js +12 -0
  530. package/dist/TxSubscriptionRef.js.map +1 -1
  531. package/dist/Types.d.ts +36 -0
  532. package/dist/Types.d.ts.map +1 -1
  533. package/dist/Types.js +1 -0
  534. package/dist/UndefinedOr.d.ts +15 -0
  535. package/dist/UndefinedOr.d.ts.map +1 -1
  536. package/dist/UndefinedOr.js +9 -0
  537. package/dist/UndefinedOr.js.map +1 -1
  538. package/dist/Unify.d.ts +15 -0
  539. package/dist/Unify.d.ts.map +1 -1
  540. package/dist/Unify.js +2 -0
  541. package/dist/Unify.js.map +1 -1
  542. package/dist/Utils.d.ts +4 -0
  543. package/dist/Utils.d.ts.map +1 -1
  544. package/dist/Utils.js +1 -0
  545. package/dist/Utils.js.map +1 -1
  546. package/dist/Version.d.ts +26 -0
  547. package/dist/Version.d.ts.map +1 -0
  548. package/dist/Version.js +36 -0
  549. package/dist/Version.js.map +1 -0
  550. package/dist/ai/Chat.js +1 -1
  551. package/dist/ai/Chat.js.map +1 -1
  552. package/dist/ai/DecisionModel.d.ts +22 -0
  553. package/dist/ai/DecisionModel.d.ts.map +1 -1
  554. package/dist/ai/DecisionModel.js +22 -4
  555. package/dist/ai/DecisionModel.js.map +1 -1
  556. package/dist/ai/LanguageModel.d.ts.map +1 -1
  557. package/dist/ai/LanguageModel.js +14 -13
  558. package/dist/ai/LanguageModel.js.map +1 -1
  559. package/dist/ai/McpServer.d.ts +32 -11
  560. package/dist/ai/McpServer.d.ts.map +1 -1
  561. package/dist/ai/McpServer.js +213 -169
  562. package/dist/ai/McpServer.js.map +1 -1
  563. package/dist/ai/Telemetry.d.ts +49 -41
  564. package/dist/ai/Telemetry.d.ts.map +1 -1
  565. package/dist/ai/Telemetry.js +6 -8
  566. package/dist/ai/Telemetry.js.map +1 -1
  567. package/dist/ai/internal/mcpRuntime.js +79 -46
  568. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  569. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  570. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  571. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  572. package/dist/cluster/K8sHttpClient.js +5 -2
  573. package/dist/cluster/K8sHttpClient.js.map +1 -1
  574. package/dist/encoding/Base64.d.ts +4 -0
  575. package/dist/encoding/Base64.d.ts.map +1 -1
  576. package/dist/encoding/Base64.js +4 -0
  577. package/dist/encoding/Base64.js.map +1 -1
  578. package/dist/encoding/Base64Url.d.ts +4 -0
  579. package/dist/encoding/Base64Url.d.ts.map +1 -1
  580. package/dist/encoding/Base64Url.js +4 -0
  581. package/dist/encoding/Base64Url.js.map +1 -1
  582. package/dist/encoding/EncodingError.d.ts +4 -0
  583. package/dist/encoding/EncodingError.d.ts.map +1 -1
  584. package/dist/encoding/EncodingError.js +4 -0
  585. package/dist/encoding/EncodingError.js.map +1 -1
  586. package/dist/encoding/Hex.d.ts +5 -0
  587. package/dist/encoding/Hex.d.ts.map +1 -1
  588. package/dist/encoding/Hex.js +5 -0
  589. package/dist/encoding/Hex.js.map +1 -1
  590. package/dist/encoding/Toml.js +2 -2
  591. package/dist/encoding/Toml.js.map +1 -1
  592. package/dist/encoding/Yaml.d.ts.map +1 -1
  593. package/dist/encoding/Yaml.js +6 -4
  594. package/dist/encoding/Yaml.js.map +1 -1
  595. package/dist/encoding/index.d.ts +4 -0
  596. package/dist/encoding/index.d.ts.map +1 -1
  597. package/dist/encoding/index.js +4 -0
  598. package/dist/encoding/index.js.map +1 -1
  599. package/dist/eventlog/SqlEventJournal.js +8 -4
  600. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  601. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  602. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  603. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  604. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  605. package/dist/http/Headers.d.ts +3 -1
  606. package/dist/http/Headers.d.ts.map +1 -1
  607. package/dist/http/Headers.js +4 -2
  608. package/dist/http/Headers.js.map +1 -1
  609. package/dist/http/HttpClient.d.ts +9 -0
  610. package/dist/http/HttpClient.d.ts.map +1 -1
  611. package/dist/http/HttpClient.js +40 -21
  612. package/dist/http/HttpClient.js.map +1 -1
  613. package/dist/http/HttpClientResponse.js +3 -1
  614. package/dist/http/HttpClientResponse.js.map +1 -1
  615. package/dist/http/HttpEffect.d.ts +3 -0
  616. package/dist/http/HttpEffect.d.ts.map +1 -1
  617. package/dist/http/HttpEffect.js +5 -2
  618. package/dist/http/HttpEffect.js.map +1 -1
  619. package/dist/http/HttpMiddleware.d.ts +17 -0
  620. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  621. package/dist/http/HttpMiddleware.js +56 -39
  622. package/dist/http/HttpMiddleware.js.map +1 -1
  623. package/dist/http/HttpServer.d.ts +1 -1
  624. package/dist/http/HttpServer.d.ts.map +1 -1
  625. package/dist/http/internal/tracing.d.ts +2 -0
  626. package/dist/http/internal/tracing.d.ts.map +1 -0
  627. package/dist/http/internal/tracing.js +37 -0
  628. package/dist/http/internal/tracing.js.map +1 -0
  629. package/dist/http-api/HttpApiBuilder.js +2 -1
  630. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  631. package/dist/http-api/HttpApiClient.d.ts +12 -3
  632. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  633. package/dist/http-api/HttpApiClient.js.map +1 -1
  634. package/dist/http-api/HttpApiError.d.ts +4 -3
  635. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  636. package/dist/http-api/HttpApiError.js +7 -4
  637. package/dist/http-api/HttpApiError.js.map +1 -1
  638. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  639. package/dist/http-api/HttpApiSecurity.js +8 -8
  640. package/dist/index.d.ts +155 -0
  641. package/dist/index.d.ts.map +1 -1
  642. package/dist/index.js +155 -0
  643. package/dist/index.js.map +1 -1
  644. package/dist/internal/arbitrary/array.js +3 -3
  645. package/dist/internal/arbitrary/array.js.map +1 -1
  646. package/dist/internal/arbitrary/model.js +26 -11
  647. package/dist/internal/arbitrary/model.js.map +1 -1
  648. package/dist/internal/arbitrary/runner.js +8 -8
  649. package/dist/internal/arbitrary/runner.js.map +1 -1
  650. package/dist/internal/arbitrary/schema.js +4 -5
  651. package/dist/internal/arbitrary/schema.js.map +1 -1
  652. package/dist/internal/effect.js +41 -39
  653. package/dist/internal/effect.js.map +1 -1
  654. package/dist/internal/schedule.js +7 -5
  655. package/dist/internal/schedule.js.map +1 -1
  656. package/dist/internal/schema/standardSchema.js +2 -2
  657. package/dist/internal/schema/standardSchema.js.map +1 -1
  658. package/dist/internal/version.d.ts +2 -0
  659. package/dist/internal/version.d.ts.map +1 -0
  660. package/dist/internal/version.js +3 -0
  661. package/dist/internal/version.js.map +1 -0
  662. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  663. package/dist/observability/OtlpExporter.js +5 -6
  664. package/dist/observability/OtlpExporter.js.map +1 -1
  665. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  666. package/dist/observability/OtlpLogger.js +23 -27
  667. package/dist/observability/OtlpLogger.js.map +1 -1
  668. package/dist/observability/OtlpMetrics.d.ts +5 -3
  669. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  670. package/dist/observability/OtlpMetrics.js +21 -94
  671. package/dist/observability/OtlpMetrics.js.map +1 -1
  672. package/dist/observability/OtlpResource.d.ts +4 -3
  673. package/dist/observability/OtlpResource.d.ts.map +1 -1
  674. package/dist/observability/OtlpResource.js +20 -23
  675. package/dist/observability/OtlpResource.js.map +1 -1
  676. package/dist/observability/OtlpTracer.d.ts +1 -0
  677. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  678. package/dist/observability/OtlpTracer.js +32 -36
  679. package/dist/observability/OtlpTracer.js.map +1 -1
  680. package/dist/observability/internal/otlpProtobuf.js +32 -1
  681. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  682. package/dist/reactivity/AsyncResult.d.ts +1 -1
  683. package/dist/reactivity/Atom.d.ts +5 -5
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +9 -5
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  690. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  691. package/dist/reactivity/AtomRegistry.js.map +1 -1
  692. package/dist/rpc/RpcClient.d.ts +21 -3
  693. package/dist/rpc/RpcClient.d.ts.map +1 -1
  694. package/dist/rpc/RpcClient.js +38 -20
  695. package/dist/rpc/RpcClient.js.map +1 -1
  696. package/dist/rpc/RpcServer.d.ts.map +1 -1
  697. package/dist/rpc/RpcServer.js +18 -21
  698. package/dist/rpc/RpcServer.js.map +1 -1
  699. package/dist/rpc/internal/tracing.d.ts +2 -0
  700. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  701. package/dist/rpc/internal/tracing.js +18 -0
  702. package/dist/rpc/internal/tracing.js.map +1 -0
  703. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  704. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  705. package/dist/sql/SqlClient.js +4 -4
  706. package/dist/sql/SqlClient.js.map +1 -1
  707. package/dist/sql/Statement.d.ts +21 -1
  708. package/dist/sql/Statement.d.ts.map +1 -1
  709. package/dist/sql/Statement.js +55 -7
  710. package/dist/sql/Statement.js.map +1 -1
  711. package/dist/testing/TestClock.d.ts +8 -0
  712. package/dist/testing/TestClock.d.ts.map +1 -1
  713. package/dist/testing/TestClock.js +7 -0
  714. package/dist/testing/TestClock.js.map +1 -1
  715. package/dist/testing/TestConsole.d.ts +7 -0
  716. package/dist/testing/TestConsole.d.ts.map +1 -1
  717. package/dist/testing/TestConsole.js +6 -0
  718. package/dist/testing/TestConsole.js.map +1 -1
  719. package/dist/testing/index.d.ts +3 -0
  720. package/dist/testing/index.d.ts.map +1 -1
  721. package/dist/testing/index.js +3 -0
  722. package/dist/testing/index.js.map +1 -1
  723. package/package.json +3 -3
  724. package/src/Array.ts +351 -3
  725. package/src/BigDecimal.ts +88 -0
  726. package/src/BigInt.ts +68 -0
  727. package/src/Boolean.ts +34 -0
  728. package/src/Brand.ts +10 -0
  729. package/src/ByteSize.ts +87 -0
  730. package/src/Cache.ts +50 -8
  731. package/src/Cause.ts +82 -0
  732. package/src/Channel.ts +368 -18
  733. package/src/ChannelSchema.ts +13 -0
  734. package/src/Chunk.ts +193 -0
  735. package/src/Clock.ts +7 -0
  736. package/src/Combiner.ts +10 -0
  737. package/src/Config.ts +82 -8
  738. package/src/ConfigProvider.ts +28 -0
  739. package/src/Console.ts +26 -0
  740. package/src/Context.ts +50 -0
  741. package/src/Cron.ts +32 -1
  742. package/src/Crypto.ts +5 -0
  743. package/src/Data.ts +13 -0
  744. package/src/DateTime.ts +171 -0
  745. package/src/Deferred.ts +51 -0
  746. package/src/Differ.ts +2 -0
  747. package/src/Duration.ts +90 -0
  748. package/src/Effect.ts +539 -5
  749. package/src/Effectable.ts +4 -0
  750. package/src/Equal.ts +12 -1
  751. package/src/Equivalence.ts +22 -0
  752. package/src/ErrorReporter.ts +36 -0
  753. package/src/ExecutionPlan.ts +58 -14
  754. package/src/Exit.ts +40 -0
  755. package/src/Fiber.ts +20 -0
  756. package/src/FiberHandle.ts +29 -4
  757. package/src/FiberMap.ts +38 -0
  758. package/src/FiberSet.ts +21 -0
  759. package/src/FileSystem.ts +16 -0
  760. package/src/Filter.ts +55 -0
  761. package/src/Formatter.ts +42 -1
  762. package/src/Function.ts +30 -0
  763. package/src/Graph.ts +317 -36
  764. package/src/HKT.ts +5 -0
  765. package/src/Hash.ts +15 -0
  766. package/src/HashMap.ts +91 -0
  767. package/src/HashRing.ts +18 -0
  768. package/src/HashSet.ts +53 -0
  769. package/src/Inspectable.ts +8 -0
  770. package/src/Iterable.ts +127 -0
  771. package/src/JsonPatch.ts +5 -0
  772. package/src/JsonPointer.ts +5 -0
  773. package/src/JsonSchema.ts +17 -0
  774. package/src/Latch.ts +14 -0
  775. package/src/Layer.ts +101 -1
  776. package/src/LayerMap.ts +7 -0
  777. package/src/LayerRef.ts +5 -0
  778. package/src/LogLevel.ts +20 -0
  779. package/src/Logger.ts +41 -5
  780. package/src/ManagedRuntime.ts +12 -1
  781. package/src/Match.ts +52 -0
  782. package/src/Metric.ts +69 -0
  783. package/src/MutableHashMap.ts +44 -0
  784. package/src/MutableHashSet.ts +17 -0
  785. package/src/MutableList.ts +21 -0
  786. package/src/MutableRef.ts +32 -0
  787. package/src/Newtype.ts +9 -0
  788. package/src/NonEmptyIterable.ts +4 -0
  789. package/src/Number.ts +61 -0
  790. package/src/Optic.ts +57 -0
  791. package/src/Option.ts +134 -0
  792. package/src/Order.ts +30 -0
  793. package/src/Ordering.ts +7 -0
  794. package/src/PartitionedSemaphore.ts +61 -22
  795. package/src/Path.ts +6 -0
  796. package/src/Pipeable.ts +7 -0
  797. package/src/PlatformError.ts +8 -0
  798. package/src/Pool.ts +20 -1
  799. package/src/Predicate.ts +85 -0
  800. package/src/PrimaryKey.ts +5 -0
  801. package/src/PubSub.ts +90 -9
  802. package/src/Pull.ts +20 -0
  803. package/src/Queue.ts +80 -10
  804. package/src/Random.ts +13 -0
  805. package/src/RcMap.ts +23 -0
  806. package/src/RcRef.ts +6 -0
  807. package/src/Record.ts +100 -0
  808. package/src/Redactable.ts +6 -0
  809. package/src/Redacted.ts +8 -0
  810. package/src/Reducer.ts +4 -0
  811. package/src/Ref.ts +42 -0
  812. package/src/References.ts +21 -0
  813. package/src/RegExp.ts +4 -0
  814. package/src/Request.ts +32 -0
  815. package/src/RequestResolver.ts +59 -10
  816. package/src/Resource.ts +7 -0
  817. package/src/Result.ts +93 -0
  818. package/src/Runtime.ts +10 -0
  819. package/src/Schedule.ts +61 -0
  820. package/src/Scheduler.ts +7 -0
  821. package/src/Schema.ts +499 -4
  822. package/src/SchemaAST.ts +115 -1
  823. package/src/SchemaGetter.ts +80 -4
  824. package/src/SchemaIssue.ts +34 -0
  825. package/src/SchemaParser.ts +26 -0
  826. package/src/SchemaRepresentation.ts +148 -0
  827. package/src/SchemaTransformation.ts +53 -0
  828. package/src/Scope.ts +19 -0
  829. package/src/ScopedCache.ts +55 -3
  830. package/src/ScopedRef.ts +9 -0
  831. package/src/Semaphore.ts +26 -0
  832. package/src/Sink.ts +126 -2
  833. package/src/StandardSchema.ts +1 -0
  834. package/src/Stdio.ts +7 -0
  835. package/src/Stream.ts +622 -15
  836. package/src/String.ts +87 -0
  837. package/src/Struct.ts +46 -0
  838. package/src/SubscriptionRef.ts +65 -0
  839. package/src/Symbol.ts +2 -0
  840. package/src/SynchronizedRef.ts +63 -0
  841. package/src/Take.ts +3 -0
  842. package/src/Terminal.ts +8 -0
  843. package/src/Tracer.ts +23 -0
  844. package/src/Trie.ts +68 -0
  845. package/src/Tuple.ts +38 -0
  846. package/src/TxChunk.ts +52 -0
  847. package/src/TxDeferred.ts +15 -0
  848. package/src/TxHashMap.ts +97 -6
  849. package/src/TxHashSet.ts +83 -3
  850. package/src/TxPriorityQueue.ts +34 -2
  851. package/src/TxPubSub.ts +26 -0
  852. package/src/TxQueue.ts +51 -0
  853. package/src/TxReentrantLock.ts +53 -36
  854. package/src/TxRef.ts +14 -0
  855. package/src/TxSemaphore.ts +47 -31
  856. package/src/TxSubscriptionRef.ts +25 -0
  857. package/src/Types.ts +36 -0
  858. package/src/UndefinedOr.ts +15 -0
  859. package/src/Unify.ts +15 -0
  860. package/src/Utils.ts +4 -0
  861. package/src/Version.ts +38 -0
  862. package/src/ai/Chat.ts +1 -1
  863. package/src/ai/DecisionModel.ts +42 -1
  864. package/src/ai/LanguageModel.ts +16 -19
  865. package/src/ai/McpServer.ts +107 -36
  866. package/src/ai/Telemetry.ts +62 -58
  867. package/src/ai/internal/mcpRuntime.ts +84 -43
  868. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  869. package/src/cluster/K8sHttpClient.ts +12 -2
  870. package/src/encoding/Base64.ts +4 -0
  871. package/src/encoding/Base64Url.ts +4 -0
  872. package/src/encoding/EncodingError.ts +5 -0
  873. package/src/encoding/Hex.ts +5 -0
  874. package/src/encoding/Toml.ts +2 -2
  875. package/src/encoding/Yaml.ts +8 -4
  876. package/src/encoding/index.ts +4 -0
  877. package/src/eventlog/SqlEventJournal.ts +18 -4
  878. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  879. package/src/http/Headers.ts +8 -2
  880. package/src/http/HttpClient.ts +44 -27
  881. package/src/http/HttpClientResponse.ts +3 -1
  882. package/src/http/HttpEffect.ts +11 -2
  883. package/src/http/HttpMiddleware.ts +60 -45
  884. package/src/http/HttpServer.ts +1 -1
  885. package/src/http/internal/tracing.ts +52 -0
  886. package/src/http-api/HttpApiBuilder.ts +5 -1
  887. package/src/http-api/HttpApiClient.ts +13 -4
  888. package/src/http-api/HttpApiError.ts +8 -4
  889. package/src/http-api/HttpApiSecurity.ts +8 -8
  890. package/src/index.ts +156 -0
  891. package/src/internal/arbitrary/array.ts +3 -3
  892. package/src/internal/arbitrary/model.ts +37 -14
  893. package/src/internal/arbitrary/runner.ts +7 -7
  894. package/src/internal/arbitrary/schema.ts +4 -3
  895. package/src/internal/effect.ts +47 -45
  896. package/src/internal/schedule.ts +23 -17
  897. package/src/internal/schema/standardSchema.ts +2 -2
  898. package/src/internal/version.ts +2 -0
  899. package/src/observability/OtlpExporter.ts +9 -6
  900. package/src/observability/OtlpLogger.ts +20 -21
  901. package/src/observability/OtlpMetrics.ts +34 -93
  902. package/src/observability/OtlpResource.ts +18 -27
  903. package/src/observability/OtlpTracer.ts +34 -40
  904. package/src/observability/internal/otlpProtobuf.ts +60 -0
  905. package/src/reactivity/AsyncResult.ts +1 -1
  906. package/src/reactivity/Atom.ts +10 -6
  907. package/src/reactivity/AtomHttpApi.ts +2 -4
  908. package/src/reactivity/AtomRegistry.ts +7 -0
  909. package/src/rpc/RpcClient.ts +48 -24
  910. package/src/rpc/RpcServer.ts +26 -24
  911. package/src/rpc/internal/tracing.ts +22 -0
  912. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  913. package/src/sql/SqlClient.ts +4 -4
  914. package/src/sql/Statement.ts +59 -7
  915. package/src/testing/TestClock.ts +9 -0
  916. package/src/testing/TestConsole.ts +8 -0
  917. package/src/testing/index.ts +3 -0
package/dist/Channel.js CHANGED
@@ -7,6 +7,7 @@
7
7
  * higher-level modules instead. This module is useful when implementing stream
8
8
  * operators or specialized streaming workflows.
9
9
  *
10
+ * @stability stable
10
11
  * @since 2.0.0
11
12
  */
12
13
  // @effect-diagnostics returnEffectInGen:off
@@ -43,6 +44,7 @@ import { ParentSpan } from "./Tracer.js";
43
44
  * Runtime identifier stored on `Channel` values and used by `isChannel` to
44
45
  * recognize them.
45
46
  *
47
+ * @stability stable
46
48
  * @category type IDs
47
49
  * @since 4.0.0
48
50
  */
@@ -60,6 +62,7 @@ export const TypeId = "~effect/Channel";
60
62
  * Channel.isChannel("not a channel") // => false
61
63
  * ```
62
64
  *
65
+ * @stability stable
63
66
  * @category guards
64
67
  * @since 3.5.4
65
68
  */
@@ -93,6 +96,7 @@ const ChannelProto = {
93
96
  * await Effect.runPromise(Channel.runCollect(channel)) // => []
94
97
  * ```
95
98
  *
99
+ * @stability stable
96
100
  * @category constructors
97
101
  * @since 4.0.0
98
102
  */
@@ -122,6 +126,7 @@ export const fromTransform = transform => {
122
126
  * await Effect.runPromise(Channel.runCollect(transformedChannel)) // => [2, 4, 6]
123
127
  * ```
124
128
  *
129
+ * @stability stable
125
130
  * @category constructors
126
131
  * @since 4.0.0
127
132
  */
@@ -145,6 +150,7 @@ export const transformPull = (self, f) => fromTransform((upstream, scope) => Eff
145
150
  * await Effect.runPromise(Channel.runCollect(channel)) // => [42]
146
151
  * ```
147
152
  *
153
+ * @stability stable
148
154
  * @category constructors
149
155
  * @since 4.0.0
150
156
  */
@@ -161,6 +167,7 @@ export const fromPull = effect => fromTransform((_, __) => effect);
161
167
  * when the channel completes.
162
168
  *
163
169
  * @see {@link fromTransform} for a simpler transformation without a forked scope
170
+ * @stability stable
164
171
  * @category constructors
165
172
  * @since 4.0.0
166
173
  */
@@ -184,6 +191,7 @@ export const fromTransformBracket = f => fromTransform(Effect.fnUntraced(functio
184
191
  * Effect.runSync(Channel.runCollect(channel)) // => [42]
185
192
  * ```
186
193
  *
194
+ * @stability stable
187
195
  * @category destructors
188
196
  * @since 4.0.0
189
197
  */
@@ -199,6 +207,7 @@ export const toTransform = channel => channel.transform;
199
207
  * Channel.DefaultChunkSize // => 4096
200
208
  * ```
201
209
  *
210
+ * @stability stable
202
211
  * @category constants
203
212
  * @since 4.0.0
204
213
  */
@@ -206,7 +215,7 @@ export const DefaultChunkSize = 4096;
206
215
  const asyncQueue = (scope, f, options) => Queue.make({
207
216
  capacity: options?.bufferSize,
208
217
  strategy: options?.strategy
209
- }).pipe(Effect.tap(queue => Scope.addFinalizer(scope, Queue.shutdown(queue))), Effect.tap(queue => Effect.forkIn(Scope.provide(f(queue), scope), scope)));
218
+ }).pipe(Effect.tap(queue => Scope.addFinalizer(scope, Queue.shutdown(queue))), Effect.tap(queue => Scope.provide(f(queue), scope).pipe(Effect.catchCause(cause => Queue.failCause(queue, cause)), Effect.forkIn(scope))));
210
219
  /**
211
220
  * Creates a `Channel` that interacts with a callback function using a queue.
212
221
  *
@@ -226,6 +235,7 @@ const asyncQueue = (scope, f, options) => Queue.make({
226
235
  * await Effect.runPromise(Channel.runCollect(channel)) // => [1, 2, 3]
227
236
  * ```
228
237
  *
238
+ * @stability stable
229
239
  * @category constructors
230
240
  * @since 4.0.0
231
241
  */
@@ -246,6 +256,7 @@ export const callback = (f, options) => fromTransform((_, scope) => Effect.map(a
246
256
  * await Effect.runPromise(Channel.runCollect(channel)) // => [[1, 2]]
247
257
  * ```
248
258
  *
259
+ * @stability stable
249
260
  * @category constructors
250
261
  * @since 4.0.0
251
262
  */
@@ -262,6 +273,7 @@ export const callbackArray = (f, options) => fromTransform((_, scope) => Effect.
262
273
  * Effect.runSync(Channel.runCollect(channel)) // => [42]
263
274
  * ```
264
275
  *
276
+ * @stability stable
265
277
  * @category constructors
266
278
  * @since 2.0.0
267
279
  */
@@ -290,14 +302,17 @@ export const suspend = evaluate => fromTransform((upstream, scope) => Effect.sus
290
302
  * const observed = [await Effect.runPromise(Channel.runCollect(channel)), released] // => [["RESOURCE"], ["resource"]]
291
303
  * ```
292
304
  *
305
+ * @stability stable
293
306
  * @category constructors
294
307
  * @since 2.0.0
295
308
  */
296
309
  export const acquireUseRelease = (acquire, use, release) => fromTransformBracket(Effect.fnUntraced(function* (upstream, scope, forkedScope) {
297
310
  let option = Option.none();
298
311
  yield* Scope.addFinalizerExit(forkedScope, exit => Option.isSome(option) ? release(option.value, exit) : Effect.void);
299
- const value = yield* Effect.uninterruptible(acquire);
300
- option = Option.some(value);
312
+ const value = yield* Effect.uninterruptible(Effect.map(acquire, value => {
313
+ option = Option.some(value);
314
+ return value;
315
+ }));
301
316
  return yield* toTransform(use(value))(upstream, scope);
302
317
  }));
303
318
  /**
@@ -323,6 +338,7 @@ export const acquireUseRelease = (acquire, use, release) => fromTransformBracket
323
338
  * const observed = [await Effect.runPromise(Channel.runCollect(channel)), released] // => [["resource"], ["resource"]]
324
339
  * ```
325
340
  *
341
+ * @stability stable
326
342
  * @category constructors
327
343
  * @since 4.0.0
328
344
  */
@@ -340,6 +356,7 @@ export const acquireRelease = /*#__PURE__*/dual(2, (self, release) => unwrap(Eff
340
356
  * Effect.runSync(Channel.runCollect(channel)) // => [1, 2, 3, 4, 5]
341
357
  * ```
342
358
  *
359
+ * @stability stable
343
360
  * @category constructors
344
361
  * @since 4.0.0
345
362
  */
@@ -362,6 +379,7 @@ export const fromIterator = iterator => fromPull(Effect.sync(() => {
362
379
  * Effect.runSync(Channel.runCollect(channel)) // => [1, 2, 3, 4, 5]
363
380
  * ```
364
381
  *
382
+ * @stability stable
365
383
  * @category constructors
366
384
  * @since 4.0.0
367
385
  */
@@ -382,6 +400,7 @@ export const fromArray = array => fromPull(Effect.sync(() => {
382
400
  * Effect.runSync(Channel.runCollect(channel)) // => [1, 2, 3]
383
401
  * ```
384
402
  *
403
+ * @stability stable
385
404
  * @category constructors
386
405
  * @since 4.0.0
387
406
  */
@@ -434,6 +453,7 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
434
453
  * Effect.runSync(Channel.runCollect(fibChannel)) // => [[0, 1, 1], [2, 3]]
435
454
  * ```
436
455
  *
456
+ * @stability stable
437
457
  * @category constructors
438
458
  * @since 4.0.0
439
459
  */
@@ -473,6 +493,7 @@ export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => {
473
493
  * Effect.runSync(Channel.runCollect(channel)) // => [1, 2, 3]
474
494
  * ```
475
495
  *
496
+ * @stability stable
476
497
  * @category constructors
477
498
  * @since 4.0.0
478
499
  */
@@ -495,6 +516,7 @@ export const fromIterable = iterable => fromIterator(() => iterable[Symbol.itera
495
516
  * Effect.runSync(Channel.runCollect(channel)) // => [[1, 2, 3, 4], [5]]
496
517
  * ```
497
518
  *
519
+ * @stability stable
498
520
  * @category constructors
499
521
  * @since 4.0.0
500
522
  */
@@ -511,6 +533,7 @@ export const fromIterableArray = (iterable, chunkSize = DefaultChunkSize) => fro
511
533
  * Effect.runSync(Channel.runCollect(channel)) // => [42]
512
534
  * ```
513
535
  *
536
+ * @stability stable
514
537
  * @category constructors
515
538
  * @since 2.0.0
516
539
  */
@@ -527,6 +550,7 @@ export const succeed = value => fromEffect(Effect.succeed(value));
527
550
  * Effect.runSync(Channel.runCollect(channel)) // => []
528
551
  * ```
529
552
  *
553
+ * @stability stable
530
554
  * @category constructors
531
555
  * @since 4.0.0
532
556
  */
@@ -534,6 +558,7 @@ export const end = value => fromPull(Effect.succeed(Cause.done(value)));
534
558
  /**
535
559
  * Creates a `Channel` that immediately ends with the lazily evaluated value.
536
560
  *
561
+ * @stability stable
537
562
  * @category constructors
538
563
  * @since 4.0.0
539
564
  */
@@ -555,6 +580,7 @@ export const endSync = evaluate => fromPull(Effect.sync(() => Cause.done(evaluat
555
580
  * Effect.runSync(Channel.runCollect(channel)) // => ["request-1"]
556
581
  * ```
557
582
  *
583
+ * @stability stable
558
584
  * @category constructors
559
585
  * @since 2.0.0
560
586
  */
@@ -581,6 +607,7 @@ export const sync = evaluate => fromEffect(Effect.sync(evaluate));
581
607
  * Effect.runSync(Channel.runCollect(conditionalChannel(true))) // => ["data"]
582
608
  * ```
583
609
  *
610
+ * @stability stable
584
611
  * @category constructors
585
612
  * @since 4.0.0
586
613
  */
@@ -609,6 +636,7 @@ export const empty = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(/*#__PURE
609
636
  * Channel.isChannel(conditionalChannel(false)) // => true
610
637
  * ```
611
638
  *
639
+ * @stability stable
612
640
  * @category constructors
613
641
  * @since 2.0.0
614
642
  */
@@ -625,6 +653,7 @@ export const never = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(Effect.ne
625
653
  * Effect.runSync(Effect.exit(Channel.runCollect(failedChannel))) // => Exit.fail("Something went wrong")
626
654
  * ```
627
655
  *
656
+ * @stability stable
628
657
  * @category constructors
629
658
  * @since 2.0.0
630
659
  */
@@ -654,6 +683,7 @@ export const fail = error => fromPull(Effect.succeed(Effect.fail(error)));
654
683
  * ] // => [Exit.fail("Error after attempt 1"), 1]
655
684
  * ```
656
685
  *
686
+ * @stability stable
657
687
  * @category constructors
658
688
  * @since 2.0.0
659
689
  */
@@ -676,6 +706,7 @@ export const failSync = evaluate => fromPull(Effect.failSync(evaluate));
676
706
  * Effect.runSync(Effect.exit(Channel.runCollect(failedChannel))) // => Exit.failCause(simpleCause)
677
707
  * ```
678
708
  *
709
+ * @stability stable
679
710
  * @category constructors
680
711
  * @since 2.0.0
681
712
  */
@@ -702,6 +733,7 @@ export const failCause = cause => fromPull(Effect.failCause(cause));
702
733
  * ] // => [Exit.fail("Runtime error after attempt 1"), 1]
703
734
  * ```
704
735
  *
736
+ * @stability stable
705
737
  * @category constructors
706
738
  * @since 2.0.0
707
739
  */
@@ -719,6 +751,7 @@ export const failCauseSync = evaluate => fromPull(Effect.failCauseSync(evaluate)
719
751
  * Effect.runSync(Effect.exit(Channel.runCollect(diedChannel))) // => Exit.failCause(Cause.die(defect))
720
752
  * ```
721
753
  *
754
+ * @stability stable
722
755
  * @category constructors
723
756
  * @since 4.0.0
724
757
  */
@@ -737,6 +770,7 @@ export const die = defect => failCause(Cause.die(defect));
737
770
  * Effect.runSync(Channel.runCollect(successChannel)) // => ["Hello from effect!"]
738
771
  * ```
739
772
  *
773
+ * @stability stable
740
774
  * @category constructors
741
775
  * @since 2.0.0
742
776
  */
@@ -756,6 +790,7 @@ export const fromEffect = effect => fromPull(Effect.sync(() => {
756
790
  *
757
791
  * If the effect fails, the channel fails with the effect's error.
758
792
  *
793
+ * @stability stable
759
794
  * @category constructors
760
795
  * @since 4.0.0
761
796
  */
@@ -763,6 +798,7 @@ export const fromEffectDone = effect => fromPull(Effect.succeed(Effect.flatMap(e
763
798
  /**
764
799
  * Uses an effect and discards its result.
765
800
  *
801
+ * @stability stable
766
802
  * @category constructors
767
803
  * @since 4.0.0
768
804
  */
@@ -776,6 +812,7 @@ export const fromEffectDrain = effect => fromPull(Effect.flatMap(effect, () => C
776
812
  * `Take` fails the channel. A done `Take` completes the channel with its done
777
813
  * value.
778
814
  *
815
+ * @stability stable
779
816
  * @category constructors
780
817
  * @since 4.0.0
781
818
  */
@@ -798,6 +835,7 @@ export const fromEffectTake = effect => fromPull(Effect.succeed(Effect.flatMap(e
798
835
  * await Effect.runPromise(program) // => ["item1", "item2", "item3"]
799
836
  * ```
800
837
  *
838
+ * @stability stable
801
839
  * @category constructors
802
840
  * @since 2.0.0
803
841
  */
@@ -820,6 +858,7 @@ export const fromQueue = queue => fromPull(Effect.succeed(Queue.take(queue)));
820
858
  * await Effect.runPromise(program) // => [[1, 2, 3, 4]]
821
859
  * ```
822
860
  *
861
+ * @stability stable
823
862
  * @category constructors
824
863
  * @since 4.0.0
825
864
  */
@@ -828,6 +867,7 @@ export const fromQueueArray = queue => fromPull(Effect.succeed(Queue.takeAll(que
828
867
  * Creates a channel that forwards upstream input elements, input errors, and
829
868
  * the upstream done value unchanged.
830
869
  *
870
+ * @stability stable
831
871
  * @category constructors
832
872
  * @since 2.0.0
833
873
  */
@@ -875,6 +915,7 @@ export const identity = () => fromTransform((upstream, _scope) => Effect.succeed
875
915
  * })
876
916
  * ```
877
917
  *
918
+ * @stability stable
878
919
  * @category constructors
879
920
  * @since 4.0.0
880
921
  */
@@ -986,6 +1027,7 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
986
1027
  * Option.map(result, ({ count, sum, average, min, max }) => ({ count, sum, average, min, max })) // => Option.some({ count: 1, sum: 10, average: 10, min: 10, max: 10 })
987
1028
  * ```
988
1029
  *
1030
+ * @stability stable
989
1031
  * @category constructors
990
1032
  * @since 4.0.0
991
1033
  */
@@ -1088,6 +1130,7 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
1088
1130
  * const result = await Effect.runPromise(event) // => Option.some({ type: "user.created", payload: {}, timestamp: 1, processed: true, processedAt: 2 })
1089
1131
  * ```
1090
1132
  *
1133
+ * @stability stable
1091
1134
  * @category constructors
1092
1135
  * @since 2.0.0
1093
1136
  */
@@ -1227,6 +1270,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
1227
1270
  * Option.map(result, (batch) => [batch.batchId, batch.totalEntries, batch.infoCount]) // => Option.some(["1-1", 1, 1])
1228
1271
  * ```
1229
1272
  *
1273
+ * @stability stable
1230
1274
  * @category constructors
1231
1275
  * @since 4.0.0
1232
1276
  */
@@ -1239,6 +1283,7 @@ export const fromPubSubArray = pubsub => unwrap(Effect.map(PubSub.subscribe(pubs
1239
1283
  * Output `Take` values are emitted as non-empty arrays. Failed `Take` values
1240
1284
  * fail the channel. Done `Take` values complete the channel.
1241
1285
  *
1286
+ * @stability stable
1242
1287
  * @category constructors
1243
1288
  * @since 4.0.0
1244
1289
  */
@@ -1246,6 +1291,7 @@ export const fromPubSubTake = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsu
1246
1291
  /**
1247
1292
  * Creates a Channel from a Schedule.
1248
1293
  *
1294
+ * @stability stable
1249
1295
  * @category constructors
1250
1296
  * @since 4.0.0
1251
1297
  */
@@ -1271,6 +1317,7 @@ export const fromSchedule = schedule => fromPull(Effect.map(Schedule.toStepWithS
1271
1317
  * await Effect.runPromise(Channel.runCollect(channel)) // => [[1]]
1272
1318
  * ```
1273
1319
  *
1320
+ * @stability stable
1274
1321
  * @category constructors
1275
1322
  * @since 4.0.0
1276
1323
  */
@@ -1324,6 +1371,7 @@ export const pullIntoWritableStream = options => Effect.acquireUseRelease(Effect
1324
1371
  * written // => [1, 2]
1325
1372
  * ```
1326
1373
  *
1374
+ * @stability stable
1327
1375
  * @category constructors
1328
1376
  * @since 4.0.0
1329
1377
  */
@@ -1361,6 +1409,7 @@ export const fromWritableStream = options => fromTransform(pull => {
1361
1409
  * await Effect.runPromise(program) // => [[2], [4]]
1362
1410
  * ```
1363
1411
  *
1412
+ * @stability stable
1364
1413
  * @category constructors
1365
1414
  * @since 4.0.0
1366
1415
  */
@@ -1416,6 +1465,7 @@ const readableStreamToPullUnsafe = options => {
1416
1465
  * are converted with `onError`. If the channel scope closes early and the
1417
1466
  * iterator has a `return` method, that method is called.
1418
1467
  *
1468
+ * @stability stable
1419
1469
  * @category constructors
1420
1470
  * @since 4.0.0
1421
1471
  */
@@ -1439,6 +1489,7 @@ export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnU
1439
1489
  * rejected iterator errors are converted with `onError`. If the channel scope
1440
1490
  * closes early and the iterator has a `return` method, that method is called.
1441
1491
  *
1492
+ * @stability stable
1442
1493
  * @category constructors
1443
1494
  * @since 4.0.0
1444
1495
  */
@@ -1480,6 +1531,7 @@ export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterab
1480
1531
  * Effect.runSync(Channel.runCollect(displayChannel)) // => [{ displayName: "User: Alice", isActive: true }, { displayName: "User: Bob", isActive: true }]
1481
1532
  * ```
1482
1533
  *
1534
+ * @stability stable
1483
1535
  * @category sequencing
1484
1536
  * @since 2.0.0
1485
1537
  */
@@ -1490,6 +1542,7 @@ export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull =>
1490
1542
  /**
1491
1543
  * Maps the done value of this channel using the specified function.
1492
1544
  *
1545
+ * @stability stable
1493
1546
  * @category sequencing
1494
1547
  * @since 4.0.0
1495
1548
  */
@@ -1502,6 +1555,7 @@ export const mapDone = /*#__PURE__*/dual(2, (self, f) => mapDoneEffect(self, o =
1502
1555
  * Use when the terminal done value transformation needs services or can fail,
1503
1556
  * while emitted elements should pass through unchanged.
1504
1557
  *
1558
+ * @stability stable
1505
1559
  * @category sequencing
1506
1560
  * @since 4.0.0
1507
1561
  */
@@ -1536,6 +1590,7 @@ const concurrencyIsSequential = concurrency => concurrency === undefined || conc
1536
1590
  * await Effect.runPromise(Channel.runCollect(processedChannel)) // => [1, 4, 9, 16, 25]
1537
1591
  * ```
1538
1592
  *
1593
+ * @stability stable
1539
1594
  * @category sequencing
1540
1595
  * @since 2.0.0
1541
1596
  */
@@ -1598,6 +1653,7 @@ const mapEffectConcurrent = (self, f, options) => fromTransformBracket(Effect.fn
1598
1653
  * Returns a new channel which is the same as this one but applies the given
1599
1654
  * function to the input channel’s input elements.
1600
1655
  *
1656
+ * @stability stable
1601
1657
  * @category sequencing
1602
1658
  * @since 2.0.0
1603
1659
  */
@@ -1606,6 +1662,7 @@ export const mapInput = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstrea
1606
1662
  * Returns a new channel which is the same as this one but applies the given
1607
1663
  * function to the input errors.
1608
1664
  *
1665
+ * @stability stable
1609
1666
  * @category sequencing
1610
1667
  * @since 2.0.0
1611
1668
  */
@@ -1645,6 +1702,7 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1645
1702
  * const observed = [await Effect.runPromise(Channel.runCollect(tappedChannel)), processed] // => [[1, 2, 3], [1, 2, 3]]
1646
1703
  * ```
1647
1704
  *
1705
+ * @stability stable
1648
1706
  * @category sequencing
1649
1707
  * @since 4.0.0
1650
1708
  */
@@ -1682,6 +1740,7 @@ export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, optio
1682
1740
  * Effect.runSync(Channel.runCollect(flatMappedChannel)) // => ["item-1-0", "item-2-0", "item-2-1", "item-3-0", "item-3-1", "item-3-2"]
1683
1741
  * ```
1684
1742
  *
1743
+ * @stability stable
1685
1744
  * @category sequencing
1686
1745
  * @since 2.0.0
1687
1746
  */
@@ -1730,6 +1789,7 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
1730
1789
  * Effect.runSync(Channel.runCollect(numberChannel)) // => [1, 2, 3, "Completed processing"]
1731
1790
  * ```
1732
1791
  *
1792
+ * @stability stable
1733
1793
  * @category sequencing
1734
1794
  * @since 4.0.0
1735
1795
  */
@@ -1770,6 +1830,7 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
1770
1830
  * Effect.runSync(Channel.runCollect(concatenatedChannel)) // => [1, 2, 3, "a", "b", "c"]
1771
1831
  * ```
1772
1832
  *
1833
+ * @stability stable
1773
1834
  * @category sequencing
1774
1835
  * @since 4.0.0
1775
1836
  */
@@ -1788,6 +1849,7 @@ export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ =>
1788
1849
  * left and right channels. It returns the next output element together with the
1789
1850
  * next state.
1790
1851
  *
1852
+ * @stability stable
1791
1853
  * @category sequencing
1792
1854
  * @since 4.0.0
1793
1855
  */
@@ -1813,6 +1875,7 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(
1813
1875
  * the source completes before emitting an element, the fallback function
1814
1876
  * receives the source done value and returns the replacement channel.
1815
1877
  *
1878
+ * @stability stable
1816
1879
  * @category sequencing
1817
1880
  * @since 4.0.0
1818
1881
  */
@@ -1857,6 +1920,7 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
1857
1920
  * Effect.runSync(Channel.runCollect(flattenedChannel)) // => [1, 2, 3, 4, 5, 6]
1858
1921
  * ```
1859
1922
  *
1923
+ * @stability stable
1860
1924
  * @category constructors
1861
1925
  * @since 2.0.0
1862
1926
  */
@@ -1886,6 +1950,7 @@ export const flatten = channels => flatMap(channels, identity_);
1886
1950
  * Effect.runSync(Channel.runCollect(flattenedChannel)) // => [1, 2, 3, 4, 5, 6, 7, 8, 9]
1887
1951
  * ```
1888
1952
  *
1953
+ * @stability stable
1889
1954
  * @category transforming
1890
1955
  * @since 4.0.0
1891
1956
  */
@@ -1926,6 +1991,7 @@ export const flattenArray = self => transformPull(self, pull => {
1926
1991
  * Output `Take` values are emitted as non-empty arrays. Failed `Take` values
1927
1992
  * fail the returned channel. Done `Take` values complete the returned channel.
1928
1993
  *
1994
+ * @stability stable
1929
1995
  * @category transforming
1930
1996
  * @since 4.0.0
1931
1997
  */
@@ -1948,6 +2014,7 @@ export const flattenTake = self => mapEffectSequential(self, Take.toPull);
1948
2014
  * Effect.runSync(Channel.runCollect(drainedChannel)) // => []
1949
2015
  * ```
1950
2016
  *
2017
+ * @stability stable
1951
2018
  * @category constructors
1952
2019
  * @since 2.0.0
1953
2020
  */
@@ -1957,6 +2024,7 @@ export const drain = self => transformPull(self, pull => Effect.succeed(Effect.f
1957
2024
  /**
1958
2025
  * Repeats this channel according to the provided schedule.
1959
2026
  *
2027
+ * @stability stable
1960
2028
  * @category repetition
1961
2029
  * @since 4.0.0
1962
2030
  */
@@ -1980,6 +2048,7 @@ const repeatLoop = (self, onDone) => fromTransform((upstream, scope) => Effect.s
1980
2048
  /**
1981
2049
  * Repeats this channel forever.
1982
2050
  *
2051
+ * @stability stable
1983
2052
  * @category repetition
1984
2053
  * @since 4.0.0
1985
2054
  */
@@ -1995,6 +2064,7 @@ export const forever = self => repeatLoop(self, () => Effect.void);
1995
2064
  * fails. If the schedule finishes, the returned channel completes with the
1996
2065
  * schedule output.
1997
2066
  *
2067
+ * @stability stable
1998
2068
  * @category sequencing
1999
2069
  * @since 4.0.0
2000
2070
  */
@@ -2027,6 +2097,7 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
2027
2097
  * Effect.runSync(Channel.runCollect(numbersOnlyChannel)) // => [1, 2, 3]
2028
2098
  * ```
2029
2099
  *
2100
+ * @stability stable
2030
2101
  * @category filtering
2031
2102
  * @since 4.0.0
2032
2103
  */
@@ -2051,6 +2122,7 @@ export const filter = /*#__PURE__*/dual(2, (self, predicate) => fromTransform((u
2051
2122
  * @see {@link filterMapEffect} for using an effectful `Filter`
2052
2123
  * @see {@link filterMapArray} for filtering arrays of output elements
2053
2124
  *
2125
+ * @stability stable
2054
2126
  * @category filtering
2055
2127
  * @since 4.0.0
2056
2128
  */
@@ -2072,6 +2144,7 @@ export const filterMap = /*#__PURE__*/dual(2, (self, filter) => fromTransform((u
2072
2144
  * for which the predicate succeeds with `false` are discarded. Predicate
2073
2145
  * failures fail the returned channel.
2074
2146
  *
2147
+ * @stability stable
2075
2148
  * @category filtering
2076
2149
  * @since 4.0.0
2077
2150
  */
@@ -2097,6 +2170,7 @@ export const filterEffect = /*#__PURE__*/dual(2, (self, predicate) => fromTransf
2097
2170
  * @see {@link mapEffect} for effectfully transforming every output element
2098
2171
  * @see {@link filterMapArrayEffect} for effectful filtering of array outputs
2099
2172
  *
2173
+ * @stability stable
2100
2174
  * @category filtering
2101
2175
  * @since 4.0.0
2102
2176
  */
@@ -2136,6 +2210,7 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
2136
2210
  * Effect.runSync(Channel.runCollect(filteredOddChannel)) // => [[2, 4]]
2137
2211
  * ```
2138
2212
  *
2213
+ * @stability stable
2139
2214
  * @category filtering
2140
2215
  * @since 4.0.0
2141
2216
  */
@@ -2157,6 +2232,7 @@ export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPu
2157
2232
  * Successful filter results are kept as mapped values. Failed filter results
2158
2233
  * are removed from the array. Arrays that become empty are discarded.
2159
2234
  *
2235
+ * @stability stable
2160
2236
  * @category filtering
2161
2237
  * @since 4.0.0
2162
2238
  */
@@ -2185,6 +2261,7 @@ export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPu
2185
2261
  * for which the predicate succeeds with `true` are kept. Arrays that become
2186
2262
  * empty are discarded. Predicate failures fail the returned channel.
2187
2263
  *
2264
+ * @stability stable
2188
2265
  * @category filtering
2189
2266
  * @since 4.0.0
2190
2267
  */
@@ -2209,6 +2286,7 @@ export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => trans
2209
2286
  * are removed from the array. Arrays that become empty are discarded. Failures
2210
2287
  * from the effectful filter fail the returned channel.
2211
2288
  *
2289
+ * @stability stable
2212
2290
  * @category filtering
2213
2291
  * @since 4.0.0
2214
2292
  */
@@ -2250,6 +2328,7 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
2250
2328
  * Effect.runSync(Channel.runCollect(asyncMapAccum)) // => ["1-processed", "1", "2-processed", "12", "3-processed", "123", "4-processed", "1234"]
2251
2329
  * ```
2252
2330
  *
2331
+ * @stability stable
2253
2332
  * @category sequencing
2254
2333
  * @since 4.0.0
2255
2334
  */
@@ -2319,6 +2398,7 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
2319
2398
  * Effect.runSync(Channel.runCollect(sentenceChannel)) // => ["", "hello", "hello world", "hello world from", "hello world from effect"]
2320
2399
  * ```
2321
2400
  *
2401
+ * @stability stable
2322
2402
  * @category sequencing
2323
2403
  * @since 4.0.0
2324
2404
  */
@@ -2369,6 +2449,7 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self,
2369
2449
  * await Effect.runPromise(Channel.runCollect(errorHandlingScan)) // => [0, 1, 3, 6, 10]
2370
2450
  * ```
2371
2451
  *
2452
+ * @stability stable
2372
2453
  * @category sequencing
2373
2454
  * @since 4.0.0
2374
2455
  */
@@ -2419,6 +2500,7 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
2419
2500
  * Effect.runSync(Channel.runCollect(recoveredChannel)) // => ["Recovered from failure"]
2420
2501
  * ```
2421
2502
  *
2503
+ * @stability stable
2422
2504
  * @category error handling
2423
2505
  * @since 2.0.0
2424
2506
  */
@@ -2458,6 +2540,7 @@ export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
2458
2540
  * Effect.runSync(Channel.runCollect(channel)) // => ["recovered: boom"]
2459
2541
  * ```
2460
2542
  *
2543
+ * @stability stable
2461
2544
  * @category error handling
2462
2545
  * @since 4.0.0
2463
2546
  */
@@ -2476,6 +2559,7 @@ export const catchDefect = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(se
2476
2559
  * Use this for observing failures, such as logging or metrics. If the observer
2477
2560
  * effect fails, that failure can fail the returned channel.
2478
2561
  *
2562
+ * @stability stable
2479
2563
  * @category error handling
2480
2564
  * @since 4.0.0
2481
2565
  */
@@ -2499,6 +2583,7 @@ export const tapCause = /*#__PURE__*/dual(2, (self, f) => catchCause(self, cause
2499
2583
  * @see {@link catchCause} for recovering from every cause
2500
2584
  * @see {@link catchIf} for recovering from typed channel errors
2501
2585
  *
2586
+ * @stability stable
2502
2587
  * @category error handling
2503
2588
  * @since 4.0.0
2504
2589
  */
@@ -2524,6 +2609,7 @@ export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCa
2524
2609
  * @see {@link catchFilter} for selecting typed errors with a `Filter`
2525
2610
  * @see {@link catchCause} for recovering from every cause
2526
2611
  *
2612
+ * @stability stable
2527
2613
  * @category error handling
2528
2614
  * @since 4.0.0
2529
2615
  */
@@ -2536,6 +2622,7 @@ export {
2536
2622
  /**
2537
2623
  * Recovers from typed channel errors by running a fallback channel.
2538
2624
  *
2625
+ * @stability stable
2539
2626
  * @category error handling
2540
2627
  * @since 4.0.0
2541
2628
  */
@@ -2549,6 +2636,7 @@ catch_ as catch };
2549
2636
  * The effect is not run for normal channel completion. If the observer effect
2550
2637
  * fails, that failure can fail the returned channel.
2551
2638
  *
2639
+ * @stability stable
2552
2640
  * @category error handling
2553
2641
  * @since 4.0.0
2554
2642
  */
@@ -2572,6 +2660,7 @@ export const tapError = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pu
2572
2660
  * @see {@link catchTag} for selecting tagged typed errors
2573
2661
  * @see {@link catchCauseFilter} for selecting full causes with a `Filter`
2574
2662
  *
2663
+ * @stability stable
2575
2664
  * @category error handling
2576
2665
  * @since 4.0.0
2577
2666
  */
@@ -2596,6 +2685,7 @@ export const catchIf = /*#__PURE__*/dual(args => isChannel(args[0]), (self, pred
2596
2685
  * @see {@link catchTag} for selecting tagged typed errors
2597
2686
  * @see {@link catchCauseFilter} for selecting full causes with a `Filter`
2598
2687
  *
2688
+ * @stability stable
2599
2689
  * @category error handling
2600
2690
  * @since 4.0.0
2601
2691
  */
@@ -2612,6 +2702,7 @@ export const catchFilter = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2612
2702
  * errors are handled by `orElse` when provided. Without `orElse`,
2613
2703
  * non-matching errors are re-failed.
2614
2704
  *
2705
+ * @stability stable
2615
2706
  * @category error handling
2616
2707
  * @since 4.0.0
2617
2708
  */
@@ -2650,6 +2741,7 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
2650
2741
  * Effect.runSync(Channel.runCollect(recovered)) // => ["retry: 60"]
2651
2742
  * ```
2652
2743
  *
2744
+ * @stability stable
2653
2745
  * @category error handling
2654
2746
  * @since 4.0.0
2655
2747
  */
@@ -2666,6 +2758,7 @@ export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2666
2758
  /**
2667
2759
  * Catches multiple reasons within a tagged error using an object of handlers.
2668
2760
  *
2761
+ * @stability stable
2669
2762
  * @category error handling
2670
2763
  * @since 4.0.0
2671
2764
  */
@@ -2710,6 +2803,7 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2710
2803
  * Effect.runSync(Effect.exit(Channel.runCollect(unwrapped))) // => Exit.fail(reason)
2711
2804
  * ```
2712
2805
  *
2806
+ * @stability stable
2713
2807
  * @category error handling
2714
2808
  * @since 4.0.0
2715
2809
  */
@@ -2719,6 +2813,7 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
2719
2813
  * value of the returned channel is created by applying the specified function
2720
2814
  * to the failure value of this channel.
2721
2815
  *
2816
+ * @stability stable
2722
2817
  * @category error handling
2723
2818
  * @since 2.0.0
2724
2819
  */
@@ -2746,6 +2841,7 @@ export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fa
2746
2841
  * Effect.runSync(Effect.exit(Channel.runCollect(fatalChannel))) // => Exit.failCause(Cause.die(error))
2747
2842
  * ```
2748
2843
  *
2844
+ * @stability stable
2749
2845
  * @category error handling
2750
2846
  * @since 2.0.0
2751
2847
  */
@@ -2757,6 +2853,7 @@ export const orDie = self => catch_(self, die);
2757
2853
  *
2758
2854
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
2759
2855
  *
2856
+ * @stability stable
2760
2857
  * @category error handling
2761
2858
  * @since 4.0.0
2762
2859
  */
@@ -2780,6 +2877,7 @@ const ignoreCause_ = self => catchCause(self, () => empty);
2780
2877
  *
2781
2878
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
2782
2879
  *
2880
+ * @stability stable
2783
2881
  * @category error handling
2784
2882
  * @since 4.0.0
2785
2883
  */
@@ -2792,6 +2890,7 @@ export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
2792
2890
  * Returns a new channel that retries this channel according to the specified
2793
2891
  * schedule whenever it fails.
2794
2892
  *
2893
+ * @stability stable
2795
2894
  * @category error handling
2796
2895
  * @since 4.0.0
2797
2896
  */
@@ -2844,6 +2943,7 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
2844
2943
  * await Effect.runPromise(Channel.runCollect(switchedChannel)) // => ["value-3"]
2845
2944
  * ```
2846
2945
  *
2946
+ * @stability stable
2847
2947
  * @category sequencing
2848
2948
  * @since 4.0.0
2849
2949
  */
@@ -2885,6 +2985,7 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
2885
2985
  * await Effect.runPromise(Channel.runCollect(mergedChannel)) // => [1, 2, 3, 4, 5, 6]
2886
2986
  * ```
2887
2987
  *
2988
+ * @stability stable
2888
2989
  * @category combining
2889
2990
  * @since 2.0.0
2890
2991
  */
@@ -2923,14 +3024,17 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
2923
3024
  const fiber = yield* childPull.pipe(Effect.tap(() => Effect.yieldNow), Effect.flatMap(value => Queue.offer(queue, value)), Effect.forever({
2924
3025
  disableYield: true
2925
3026
  }), Effect.onError(Effect.fnUntraced(function* (cause) {
2926
- const halt = Pull.filterDone(cause);
2927
- yield* Effect.exit(Scope.close(childScope, !Result.isFailure(halt) ? Exit.succeed(halt.success.value) : Exit.failCause(halt.failure)));
3027
+ const exit = Pull.doneExitFromCause(cause);
3028
+ const closeExit = yield* Effect.exit(Scope.close(childScope, exit));
2928
3029
  if (!fibers.has(fiber)) return;
3030
+ // Publish usage and finalizer failures before releasing the
3031
+ // permit or opening the latch, so the outer channel cannot
3032
+ // complete ahead of them.
3033
+ const failure = Exit.asVoidAll([exit, closeExit]);
3034
+ if (Exit.isFailure(failure)) yield* Queue.failCause(queue, failure.cause);
2929
3035
  fibers.delete(fiber);
2930
3036
  if (semaphore) yield* semaphore.release(1);
2931
3037
  if (fibers.size === 0) yield* doneLatch.open;
2932
- if (Result.isSuccess(halt)) return;
2933
- return yield* Queue.failCause(queue, cause);
2934
3038
  })), Effect.forkChild);
2935
3039
  doneLatch.closeUnsafe();
2936
3040
  fibers.add(fiber);
@@ -2964,6 +3068,7 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
2964
3068
  * values.map(String).sort() // => ["1", "2", "3", "a", "b", "c"]
2965
3069
  * ```
2966
3070
  *
3071
+ * @stability stable
2967
3072
  * @category combining
2968
3073
  * @since 4.0.0
2969
3074
  */
@@ -2993,7 +3098,10 @@ export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(a
2993
3098
  }
2994
3099
  }
2995
3100
  }
2996
- const runSide = (side, channel, scope) => toTransform(channel)(upstream, scope).pipe(Effect.flatMap(pull => pull.pipe(Effect.flatMap(value => Queue.offer(queue, value)), Effect.forever)), Effect.onError(cause => Effect.andThen(Scope.close(scope, Pull.doneExitFromCause(cause)), onExit(side, cause))), Effect.forkIn(forkedScope));
3101
+ const runSide = (side, channel, scope) => toTransform(channel)(upstream, scope).pipe(Effect.flatMap(pull => pull.pipe(Effect.flatMap(value => Queue.offer(queue, value)), Effect.forever)), Effect.onError(cause => Effect.onExitPrimitive(Pull.doneExitFromCause(cause), exit => Scope.close(scope, exit)).pipe(Effect.matchCauseEffect({
3102
+ onFailure: cause => onExit(side, cause),
3103
+ onSuccess: () => onExit(side, cause)
3104
+ }))), Effect.forkIn(forkedScope));
2997
3105
  yield* runSide("left", left, Scope.forkUnsafe(forkedScope));
2998
3106
  yield* runSide("right", right, Scope.forkUnsafe(forkedScope));
2999
3107
  return Queue.take(queue);
@@ -3012,6 +3120,7 @@ export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(a
3012
3120
  * The effect's successful value is ignored. If the effect fails while the
3013
3121
  * channel is running, the returned channel fails with that error.
3014
3122
  *
3123
+ * @stability stable
3015
3124
  * @category combining
3016
3125
  * @since 4.0.0
3017
3126
  */
@@ -3041,6 +3150,7 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
3041
3150
  * result // => ["hello", "world"]
3042
3151
  * ```
3043
3152
  *
3153
+ * @stability stable
3044
3154
  * @category splitting
3045
3155
  * @since 2.0.0
3046
3156
  */
@@ -3135,6 +3245,7 @@ export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(
3135
3245
  * span `Uint8Array` boundaries. The optional `encoding` and `options` are
3136
3246
  * passed to `TextDecoder`.
3137
3247
  *
3248
+ * @stability stable
3138
3249
  * @category decoding
3139
3250
  * @since 4.0.0
3140
3251
  */
@@ -3152,6 +3263,7 @@ export const decodeText = (encoding, options) => fromTransform((upstream, _scope
3152
3263
  *
3153
3264
  * Each string inside an emitted array is encoded independently.
3154
3265
  *
3266
+ * @stability stable
3155
3267
  * @category encoding
3156
3268
  * @since 4.0.0
3157
3269
  */
@@ -3184,6 +3296,7 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
3184
3296
  * Effect.runSync(Channel.runCollect(pipedChannel)) // => [2, 4, 6]
3185
3297
  * ```
3186
3298
  *
3299
+ * @stability stable
3187
3300
  * @category sequencing
3188
3301
  * @since 2.0.0
3189
3302
  */
@@ -3213,6 +3326,7 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
3213
3326
  * Effect.runSync(Effect.exit(Channel.runCollect(safePipedChannel))) // => Exit.fail(error)
3214
3327
  * ```
3215
3328
  *
3329
+ * @stability stable
3216
3330
  * @category sequencing
3217
3331
  * @since 2.0.0
3218
3332
  */
@@ -3244,6 +3358,7 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
3244
3358
  * Effect.runSync(Channel.runCollect(unwrappedChannel)) // => [1, 2, 3]
3245
3359
  * ```
3246
3360
  *
3361
+ * @stability stable
3247
3362
  * @category constructors
3248
3363
  * @since 2.0.0
3249
3364
  */
@@ -3258,6 +3373,7 @@ export const unwrap = channel => fromTransform((upstream, scope) => {
3258
3373
  * Runs a channel with a scope provided for the duration of the channel
3259
3374
  * execution, removing the channel's `Scope` requirement.
3260
3375
  *
3376
+ * @stability stable
3261
3377
  * @category resource management
3262
3378
  * @since 2.0.0
3263
3379
  */
@@ -3291,6 +3407,7 @@ export const scoped = self => fromTransformBracket((upstream, scope, forkedScope
3291
3407
  * await Effect.runPromise(Channel.runCollect(embeddedChannel)) // => [1, 2, 3]
3292
3408
  * ```
3293
3409
  *
3410
+ * @stability stable
3294
3411
  * @category sequencing
3295
3412
  * @since 2.0.0
3296
3413
  */
@@ -3317,6 +3434,7 @@ export const embedInput = /*#__PURE__*/dual(2, (self, input) => fromTransformBra
3317
3434
  *
3318
3435
  * @see {@link bufferArray} for buffering elements from array outputs
3319
3436
  *
3437
+ * @stability stable
3320
3438
  * @category buffering
3321
3439
  * @since 2.0.0
3322
3440
  */
@@ -3356,6 +3474,7 @@ export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effe
3356
3474
  *
3357
3475
  * @see {@link buffer} for buffering output elements without flattening arrays
3358
3476
  *
3477
+ * @stability stable
3359
3478
  * @category buffering
3360
3479
  * @since 4.0.0
3361
3480
  */
@@ -3385,6 +3504,7 @@ export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform
3385
3504
  * channel's done value. If the channel completes first, the original channel's
3386
3505
  * done value is preserved.
3387
3506
  *
3507
+ * @stability stable
3388
3508
  * @category interruption
3389
3509
  * @since 2.0.0
3390
3510
  */
@@ -3401,6 +3521,7 @@ export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => merge(self,
3401
3521
  * fails with that error. If the channel completes first, the channel's done
3402
3522
  * value is preserved.
3403
3523
  *
3524
+ * @stability stable
3404
3525
  * @category interruption
3405
3526
  * @since 4.0.0
3406
3527
  */
@@ -3425,6 +3546,7 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBrac
3425
3546
  * The finalizer receives the failure `Cause`. The original channel failure is
3426
3547
  * preserved. The finalizer itself must not fail.
3427
3548
  *
3549
+ * @stability stable
3428
3550
  * @category error handling
3429
3551
  * @since 4.0.0
3430
3552
  */
@@ -3454,6 +3576,7 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
3454
3576
  * const observed = [await Effect.runPromise(Channel.runCollect(channelWithExit)), exits] // => [[1, 2, 3], [Exit.void]]
3455
3577
  * ```
3456
3578
  *
3579
+ * @stability stable
3457
3580
  * @category resource management
3458
3581
  * @since 4.0.0
3459
3582
  */
@@ -3466,6 +3589,7 @@ export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromTransformBra
3466
3589
  * The effect's successful value is ignored. If the effect fails, the returned
3467
3590
  * channel fails before running the source channel.
3468
3591
  *
3592
+ * @stability stable
3469
3593
  * @category hooks
3470
3594
  * @since 4.0.0
3471
3595
  */
@@ -3484,6 +3608,7 @@ export const onStart = /*#__PURE__*/dual(2, (self, onStart) => unwrap(Effect.as(
3484
3608
  * emitted unchanged. The effect is not run if the channel completes without
3485
3609
  * emitting an element.
3486
3610
  *
3611
+ * @stability stable
3487
3612
  * @category hooks
3488
3613
  * @since 4.0.0
3489
3614
  */
@@ -3504,6 +3629,7 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(sel
3504
3629
  * not run when the channel fails. If the effect fails, the returned channel
3505
3630
  * fails with that error.
3506
3631
  *
3632
+ * @stability stable
3507
3633
  * @category hooks
3508
3634
  * @since 4.0.0
3509
3635
  */
@@ -3533,6 +3659,7 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
3533
3659
  * const observed = [await Effect.runPromise(Channel.runCollect(channelWithCleanup)), events] // => [[1, 2, 3], ["cleanup"]]
3534
3660
  * ```
3535
3661
  *
3662
+ * @stability stable
3536
3663
  * @category resource management
3537
3664
  * @since 2.0.0
3538
3665
  */
@@ -3545,6 +3672,7 @@ const runWith = (self, f, onHalt) => Effect.suspend(() => {
3545
3672
  /**
3546
3673
  * Creates a channel from the specified services.
3547
3674
  *
3675
+ * @stability stable
3548
3676
  * @category accessors
3549
3677
  * @since 2.0.0
3550
3678
  */
@@ -3553,6 +3681,7 @@ export const contextWith = f => fromTransform((upstream, scope) => Effect.contex
3553
3681
  * Provides a `Context` to the channel, removing the corresponding service
3554
3682
  * requirements from the returned channel.
3555
3683
  *
3684
+ * @stability stable
3556
3685
  * @category providing services
3557
3686
  * @since 2.0.0
3558
3687
  */
@@ -3561,6 +3690,7 @@ export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromTransf
3561
3690
  * Provides a concrete service for a context key, removing that service
3562
3691
  * requirement from the returned channel.
3563
3692
  *
3693
+ * @stability stable
3564
3694
  * @category providing services
3565
3695
  * @since 2.0.0
3566
3696
  */
@@ -3578,6 +3708,7 @@ export const provideService = /*#__PURE__*/dual(3, (self, key, service) => fromT
3578
3708
  * If the service effect fails, the returned channel fails. The provided service
3579
3709
  * removes the corresponding service requirement from the returned channel.
3580
3710
  *
3711
+ * @stability stable
3581
3712
  * @category providing services
3582
3713
  * @since 4.0.0
3583
3714
  */
@@ -3592,6 +3723,7 @@ export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) =>
3592
3723
  * builds the layer in the channel scope. Use `options.local` to build a fresh
3593
3724
  * layer instance for this provision.
3594
3725
  *
3726
+ * @stability stable
3595
3727
  * @category providing services
3596
3728
  * @since 4.0.0
3597
3729
  */
@@ -3605,6 +3737,7 @@ export const provide = /*#__PURE__*/dual(args => isChannel(args[0]), (self, laye
3605
3737
  * provide to the channel. The returned channel requires the services needed to
3606
3738
  * build that context.
3607
3739
  *
3740
+ * @stability stable
3608
3741
  * @category providing services
3609
3742
  * @since 4.0.0
3610
3743
  */
@@ -3620,6 +3753,7 @@ export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
3620
3753
  * The existing service is read from the context. The updated service is
3621
3754
  * provided to the channel under the same key.
3622
3755
  *
3756
+ * @stability stable
3623
3757
  * @category providing services
3624
3758
  * @since 2.0.0
3625
3759
  */
@@ -3632,6 +3766,7 @@ export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateCo
3632
3766
  * The created span is provided as the current parent span while the channel
3633
3767
  * runs. The span is ended with the channel's exit value.
3634
3768
  *
3769
+ * @stability stable
3635
3770
  * @category tracing
3636
3771
  * @since 2.0.0
3637
3772
  */
@@ -3653,6 +3788,7 @@ const withSpanImpl = (self, name, options) => acquireUseRelease(Effect.makeSpan(
3653
3788
  /**
3654
3789
  * The starting channel for Do notation, emitting an empty object.
3655
3790
  *
3791
+ * @stability stable
3656
3792
  * @category constructors
3657
3793
  * @since 4.0.0
3658
3794
  */
@@ -3665,6 +3801,7 @@ export {
3665
3801
  /**
3666
3802
  * Adds a computed field to each object emitted by a channel.
3667
3803
  *
3804
+ * @stability stable
3668
3805
  * @category mapping
3669
3806
  * @since 4.0.0
3670
3807
  */
@@ -3679,6 +3816,7 @@ let_ as let };
3679
3816
  * channel's output becomes the value of the new field. `options.concurrency`
3680
3817
  * and `options.bufferSize` control how derived channels are flattened.
3681
3818
  *
3819
+ * @stability stable
3682
3820
  * @category sequencing
3683
3821
  * @since 4.0.0
3684
3822
  */
@@ -3698,6 +3836,7 @@ export const bind = /*#__PURE__*/dual(args => isChannel(args[0]), (self, name, f
3698
3836
  * @see {@link bind} for adding a field produced by another channel
3699
3837
  * @see {@link let_ let} for adding a computed field
3700
3838
  *
3839
+ * @stability stable
3701
3840
  * @category mapping
3702
3841
  * @since 4.0.0
3703
3842
  */
@@ -3725,6 +3864,7 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
3725
3864
  * Effect.runSync(countEffect) // => 5
3726
3865
  * ```
3727
3866
  *
3867
+ * @stability stable
3728
3868
  * @category running
3729
3869
  * @since 4.0.0
3730
3870
  */
@@ -3751,6 +3891,7 @@ export const runCount = self => runFold(self, () => 0, acc => acc + 1);
3751
3891
  * Effect.runSync(drainEffect) // => "completed"
3752
3892
  * ```
3753
3893
  *
3894
+ * @stability stable
3754
3895
  * @category running
3755
3896
  * @since 2.0.0
3756
3897
  */
@@ -3783,6 +3924,7 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
3783
3924
  * processed // => [1, 2, 3]
3784
3925
  * ```
3785
3926
  *
3927
+ * @stability stable
3786
3928
  * @category running
3787
3929
  * @since 4.0.0
3788
3930
  */
@@ -3798,6 +3940,7 @@ export const runForEach = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull =
3798
3940
  * Returning `true` continues consuming the channel. Returning `false` stops
3799
3941
  * consumption early. The returned effect completes with `void`.
3800
3942
  *
3943
+ * @stability stable
3801
3944
  * @category running
3802
3945
  * @since 4.0.0
3803
3946
  */
@@ -3826,6 +3969,7 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
3826
3969
  * Array.from(bytes) // => [1, 2, 3, 4]
3827
3970
  * ```
3828
3971
  *
3972
+ * @stability stable
3829
3973
  * @category running
3830
3974
  * @since 4.0.0
3831
3975
  */
@@ -3872,6 +4016,7 @@ export const mkUint8Array = self => Effect.map(runFold(self, () => ({
3872
4016
  * Effect.runSync(collectEffect) // => [1, 2, 3, 4, 5]
3873
4017
  * ```
3874
4018
  *
4019
+ * @stability stable
3875
4020
  * @category running
3876
4021
  * @since 2.0.0
3877
4022
  */
@@ -3888,6 +4033,7 @@ export const runCollect = self => runFold(self, () => [], (acc, o) => {
3888
4033
  * Returns `Option.some` with the first output element, or `Option.none` if the
3889
4034
  * channel completes without emitting output.
3890
4035
  *
4036
+ * @stability stable
3891
4037
  * @category running
3892
4038
  * @since 4.0.0
3893
4039
  */
@@ -3907,6 +4053,7 @@ export const runHead = self => Effect.suspend(() => {
3907
4053
  * Returns `Option.some` with the last emitted element, or `Option.none` if the
3908
4054
  * channel completes without emitting output.
3909
4055
  *
4056
+ * @stability stable
3910
4057
  * @category running
3911
4058
  * @since 4.0.0
3912
4059
  */
@@ -3941,6 +4088,7 @@ export const runLast = self => Effect.suspend(() => {
3941
4088
  * Effect.runSync(sumEffect) // => 15
3942
4089
  * ```
3943
4090
  *
4091
+ * @stability stable
3944
4092
  * @category running
3945
4093
  * @since 4.0.0
3946
4094
  */
@@ -3968,6 +4116,7 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend
3968
4116
  * the effectful accumulator function. The returned effect succeeds with the
3969
4117
  * final accumulator value.
3970
4118
  *
4119
+ * @stability stable
3971
4120
  * @category running
3972
4121
  * @since 4.0.0
3973
4122
  */
@@ -4009,6 +4158,7 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
4009
4158
  * await Effect.runPromise(program) // => [1, 2, 3]
4010
4159
  * ```
4011
4160
  *
4161
+ * @stability stable
4012
4162
  * @category destructors
4013
4163
  * @since 2.0.0
4014
4164
  */
@@ -4046,6 +4196,7 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
4046
4196
  * await Effect.runPromise(Effect.scoped(scopedPullEffect)) // => [1, 2, 3]
4047
4197
  * ```
4048
4198
  *
4199
+ * @stability stable
4049
4200
  * @category destructors
4050
4201
  * @since 4.0.0
4051
4202
  */
@@ -4059,6 +4210,7 @@ export const toPullScoped = (self, scope) => toTransform(self)(Cause.done(), sco
4059
4210
  * queue is failed with the channel's cause. The returned effect itself
4060
4211
  * completes with `void`.
4061
4212
  *
4213
+ * @stability stable
4062
4214
  * @category destructors
4063
4215
  * @since 4.0.0
4064
4216
  */
@@ -4080,6 +4232,7 @@ export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
4080
4232
  * queue is failed with the channel's cause. The returned effect itself
4081
4233
  * completes with `void`.
4082
4234
  *
4235
+ * @stability stable
4083
4236
  * @category destructors
4084
4237
  * @since 4.0.0
4085
4238
  */
@@ -4121,6 +4274,7 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
4121
4274
  * await Effect.runPromise(program) // => [1, 2, 3, 4, 5]
4122
4275
  * ```
4123
4276
  *
4277
+ * @stability stable
4124
4278
  * @category destructors
4125
4279
  * @since 2.0.0
4126
4280
  */
@@ -4143,6 +4297,7 @@ export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__
4143
4297
  * completion and failure are signaled through the queue. The queue is shut down
4144
4298
  * when the surrounding scope closes.
4145
4299
  *
4300
+ * @stability stable
4146
4301
  * @category destructors
4147
4302
  * @since 4.0.0
4148
4303
  */
@@ -4164,6 +4319,7 @@ export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__P
4164
4319
  * `shutdownOnEnd` indicates whether the PubSub should be shut down when the
4165
4320
  * channel ends. By default this is `true`.
4166
4321
  *
4322
+ * @stability stable
4167
4323
  * @category destructors
4168
4324
  * @since 2.0.0
4169
4325
  */
@@ -4182,6 +4338,7 @@ export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(func
4182
4338
  * The channel's output values are published as individual PubSub messages. Use
4183
4339
  * `options.shutdownOnEnd` to shut down the PubSub when channel execution ends.
4184
4340
  *
4341
+ * @stability stable
4185
4342
  * @category destructors
4186
4343
  * @since 4.0.0
4187
4344
  */
@@ -4197,6 +4354,7 @@ const makePubSub = options => Effect.acquireRelease(options.capacity === "unboun
4197
4354
  * PubSub message. `shutdownOnEnd` indicates whether the PubSub should be shut
4198
4355
  * down when the channel ends. By default this is `true`.
4199
4356
  *
4357
+ * @stability stable
4200
4358
  * @category destructors
4201
4359
  * @since 4.0.0
4202
4360
  */
@@ -4217,6 +4375,7 @@ export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced
4217
4375
  * PubSub message. Use `options.shutdownOnEnd` to shut down the PubSub when
4218
4376
  * channel execution ends.
4219
4377
  *
4378
+ * @stability stable
4220
4379
  * @category destructors
4221
4380
  * @since 4.0.0
4222
4381
  */
@@ -4231,6 +4390,7 @@ export const runIntoPubSubArray = /*#__PURE__*/dual(args => isChannel(args[0]),
4231
4390
  * subscriber, including one that subscribes later, observes completion or
4232
4391
  * failure once it has consumed its buffered values.
4233
4392
  *
4393
+ * @stability stable
4234
4394
  * @category destructors
4235
4395
  * @since 4.0.0
4236
4396
  */