effect 3.10.18 → 3.11.0

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 (448) hide show
  1. package/dist/cjs/Array.js +206 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +181 -24
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +54 -0
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +24 -0
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +4 -0
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +44 -4
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +8 -0
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/Config.js +10 -1
  16. package/dist/cjs/Config.js.map +1 -1
  17. package/dist/cjs/Context.js +50 -1
  18. package/dist/cjs/Context.js.map +1 -1
  19. package/dist/cjs/Cron.js +81 -67
  20. package/dist/cjs/Cron.js.map +1 -1
  21. package/dist/cjs/Data.js +14 -0
  22. package/dist/cjs/Data.js.map +1 -1
  23. package/dist/cjs/DateTime.js +178 -664
  24. package/dist/cjs/DateTime.js.map +1 -1
  25. package/dist/cjs/Duration.js +2 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +296 -4
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js +38 -2
  30. package/dist/cjs/Either.js.map +1 -1
  31. package/dist/cjs/FiberHandle.js +6 -0
  32. package/dist/cjs/FiberHandle.js.map +1 -1
  33. package/dist/cjs/FiberMap.js +6 -0
  34. package/dist/cjs/FiberMap.js.map +1 -1
  35. package/dist/cjs/FiberSet.js +6 -0
  36. package/dist/cjs/FiberSet.js.map +1 -1
  37. package/dist/cjs/Function.js +34 -0
  38. package/dist/cjs/Function.js.map +1 -1
  39. package/dist/cjs/GlobalValue.js +2 -0
  40. package/dist/cjs/GlobalValue.js.map +1 -1
  41. package/dist/cjs/HashMap.js.map +1 -1
  42. package/dist/cjs/Inspectable.js +8 -4
  43. package/dist/cjs/Inspectable.js.map +1 -1
  44. package/dist/cjs/Iterable.js +18 -0
  45. package/dist/cjs/Iterable.js.map +1 -1
  46. package/dist/cjs/JSONSchema.js.map +1 -1
  47. package/dist/cjs/List.js +4 -0
  48. package/dist/cjs/List.js.map +1 -1
  49. package/dist/cjs/Logger.js +26 -0
  50. package/dist/cjs/Logger.js.map +1 -1
  51. package/dist/cjs/Mailbox.js +2 -0
  52. package/dist/cjs/Mailbox.js.map +1 -1
  53. package/dist/cjs/ManagedRuntime.js +2 -0
  54. package/dist/cjs/ManagedRuntime.js.map +1 -1
  55. package/dist/cjs/Metric.js +10 -0
  56. package/dist/cjs/Metric.js.map +1 -1
  57. package/dist/cjs/Micro.js +1104 -1069
  58. package/dist/cjs/Micro.js.map +1 -1
  59. package/dist/cjs/Number.js +44 -0
  60. package/dist/cjs/Number.js.map +1 -1
  61. package/dist/cjs/Option.js +70 -0
  62. package/dist/cjs/Option.js.map +1 -1
  63. package/dist/cjs/Order.js +2 -0
  64. package/dist/cjs/Order.js.map +1 -1
  65. package/dist/cjs/Ordering.js +4 -0
  66. package/dist/cjs/Ordering.js.map +1 -1
  67. package/dist/cjs/Predicate.js +68 -0
  68. package/dist/cjs/Predicate.js.map +1 -1
  69. package/dist/cjs/Random.js +4 -0
  70. package/dist/cjs/Random.js.map +1 -1
  71. package/dist/cjs/RateLimiter.js +4 -0
  72. package/dist/cjs/RateLimiter.js.map +1 -1
  73. package/dist/cjs/RcMap.js +2 -0
  74. package/dist/cjs/RcMap.js.map +1 -1
  75. package/dist/cjs/RcRef.js +2 -0
  76. package/dist/cjs/RcRef.js.map +1 -1
  77. package/dist/cjs/Record.js +56 -0
  78. package/dist/cjs/Record.js.map +1 -1
  79. package/dist/cjs/Redacted.js +8 -0
  80. package/dist/cjs/Redacted.js.map +1 -1
  81. package/dist/cjs/RegExp.js +4 -0
  82. package/dist/cjs/RegExp.js.map +1 -1
  83. package/dist/cjs/Request.js +4 -0
  84. package/dist/cjs/Request.js.map +1 -1
  85. package/dist/cjs/RequestResolver.js +2 -0
  86. package/dist/cjs/RequestResolver.js.map +1 -1
  87. package/dist/cjs/Runtime.js +6 -0
  88. package/dist/cjs/Runtime.js.map +1 -1
  89. package/dist/cjs/STM.js.map +1 -1
  90. package/dist/cjs/Schema.js +91 -8
  91. package/dist/cjs/Schema.js.map +1 -1
  92. package/dist/cjs/Sink.js +9 -1
  93. package/dist/cjs/Sink.js.map +1 -1
  94. package/dist/cjs/Stream.js +179 -7
  95. package/dist/cjs/Stream.js.map +1 -1
  96. package/dist/cjs/String.js +62 -0
  97. package/dist/cjs/String.js.map +1 -1
  98. package/dist/cjs/Struct.js +12 -0
  99. package/dist/cjs/Struct.js.map +1 -1
  100. package/dist/cjs/Symbol.js +2 -0
  101. package/dist/cjs/Symbol.js.map +1 -1
  102. package/dist/cjs/Trie.js +56 -0
  103. package/dist/cjs/Trie.js.map +1 -1
  104. package/dist/cjs/Tuple.js +18 -0
  105. package/dist/cjs/Tuple.js.map +1 -1
  106. package/dist/cjs/Utils.js +7 -1
  107. package/dist/cjs/Utils.js.map +1 -1
  108. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  109. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  110. package/dist/cjs/internal/channel.js +156 -130
  111. package/dist/cjs/internal/channel.js.map +1 -1
  112. package/dist/cjs/internal/config.js +13 -4
  113. package/dist/cjs/internal/config.js.map +1 -1
  114. package/dist/cjs/internal/context.js +46 -3
  115. package/dist/cjs/internal/context.js.map +1 -1
  116. package/dist/cjs/internal/dateTime.js +747 -0
  117. package/dist/cjs/internal/dateTime.js.map +1 -0
  118. package/dist/cjs/internal/fiberRuntime.js +34 -11
  119. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  120. package/dist/cjs/internal/groupBy.js +9 -3
  121. package/dist/cjs/internal/groupBy.js.map +1 -1
  122. package/dist/cjs/internal/layer.js +1 -1
  123. package/dist/cjs/internal/layer.js.map +1 -1
  124. package/dist/cjs/internal/mailbox.js +1 -1
  125. package/dist/cjs/internal/mailbox.js.map +1 -1
  126. package/dist/cjs/internal/sink.js +25 -21
  127. package/dist/cjs/internal/sink.js.map +1 -1
  128. package/dist/cjs/internal/stream.js +70 -71
  129. package/dist/cjs/internal/stream.js.map +1 -1
  130. package/dist/cjs/internal/version.js +1 -1
  131. package/dist/cjs/internal/version.js.map +1 -1
  132. package/dist/dts/Array.d.ts +534 -0
  133. package/dist/dts/Array.d.ts.map +1 -1
  134. package/dist/dts/BigDecimal.d.ts +172 -1
  135. package/dist/dts/BigDecimal.d.ts.map +1 -1
  136. package/dist/dts/BigInt.d.ts +114 -0
  137. package/dist/dts/BigInt.d.ts.map +1 -1
  138. package/dist/dts/Boolean.d.ts +56 -0
  139. package/dist/dts/Boolean.d.ts.map +1 -1
  140. package/dist/dts/Brand.d.ts +6 -0
  141. package/dist/dts/Brand.d.ts.map +1 -1
  142. package/dist/dts/Channel.d.ts +66 -5
  143. package/dist/dts/Channel.d.ts.map +1 -1
  144. package/dist/dts/Chunk.d.ts +30 -0
  145. package/dist/dts/Chunk.d.ts.map +1 -1
  146. package/dist/dts/Config.d.ts +25 -1
  147. package/dist/dts/Config.d.ts.map +1 -1
  148. package/dist/dts/Context.d.ts +155 -0
  149. package/dist/dts/Context.d.ts.map +1 -1
  150. package/dist/dts/Cron.d.ts +21 -6
  151. package/dist/dts/Cron.d.ts.map +1 -1
  152. package/dist/dts/Data.d.ts +26 -0
  153. package/dist/dts/Data.d.ts.map +1 -1
  154. package/dist/dts/DateTime.d.ts +192 -49
  155. package/dist/dts/DateTime.d.ts.map +1 -1
  156. package/dist/dts/Duration.d.ts +2 -0
  157. package/dist/dts/Duration.d.ts.map +1 -1
  158. package/dist/dts/Effect.d.ts +658 -1
  159. package/dist/dts/Effect.d.ts.map +1 -1
  160. package/dist/dts/Either.d.ts +84 -2
  161. package/dist/dts/Either.d.ts.map +1 -1
  162. package/dist/dts/FiberHandle.d.ts +6 -0
  163. package/dist/dts/FiberHandle.d.ts.map +1 -1
  164. package/dist/dts/FiberMap.d.ts +6 -0
  165. package/dist/dts/FiberMap.d.ts.map +1 -1
  166. package/dist/dts/FiberSet.d.ts +6 -0
  167. package/dist/dts/FiberSet.d.ts.map +1 -1
  168. package/dist/dts/Function.d.ts +50 -0
  169. package/dist/dts/Function.d.ts.map +1 -1
  170. package/dist/dts/GlobalValue.d.ts +2 -0
  171. package/dist/dts/GlobalValue.d.ts.map +1 -1
  172. package/dist/dts/HashMap.d.ts +6 -0
  173. package/dist/dts/HashMap.d.ts.map +1 -1
  174. package/dist/dts/Inspectable.d.ts.map +1 -1
  175. package/dist/dts/Iterable.d.ts +26 -0
  176. package/dist/dts/Iterable.d.ts.map +1 -1
  177. package/dist/dts/JSONSchema.d.ts +1 -0
  178. package/dist/dts/JSONSchema.d.ts.map +1 -1
  179. package/dist/dts/List.d.ts +20 -0
  180. package/dist/dts/List.d.ts.map +1 -1
  181. package/dist/dts/Logger.d.ts +34 -0
  182. package/dist/dts/Logger.d.ts.map +1 -1
  183. package/dist/dts/Mailbox.d.ts +2 -0
  184. package/dist/dts/Mailbox.d.ts.map +1 -1
  185. package/dist/dts/ManagedRuntime.d.ts +2 -0
  186. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  187. package/dist/dts/Metric.d.ts +18 -0
  188. package/dist/dts/Metric.d.ts.map +1 -1
  189. package/dist/dts/Micro.d.ts +880 -863
  190. package/dist/dts/Micro.d.ts.map +1 -1
  191. package/dist/dts/Number.d.ts +104 -0
  192. package/dist/dts/Number.d.ts.map +1 -1
  193. package/dist/dts/Option.d.ts +142 -0
  194. package/dist/dts/Option.d.ts.map +1 -1
  195. package/dist/dts/Order.d.ts +2 -0
  196. package/dist/dts/Order.d.ts.map +1 -1
  197. package/dist/dts/Ordering.d.ts +8 -0
  198. package/dist/dts/Ordering.d.ts.map +1 -1
  199. package/dist/dts/Predicate.d.ts +104 -0
  200. package/dist/dts/Predicate.d.ts.map +1 -1
  201. package/dist/dts/Random.d.ts +4 -0
  202. package/dist/dts/Random.d.ts.map +1 -1
  203. package/dist/dts/RateLimiter.d.ts +4 -0
  204. package/dist/dts/RateLimiter.d.ts.map +1 -1
  205. package/dist/dts/RcMap.d.ts +6 -0
  206. package/dist/dts/RcMap.d.ts.map +1 -1
  207. package/dist/dts/RcRef.d.ts +2 -0
  208. package/dist/dts/RcRef.d.ts.map +1 -1
  209. package/dist/dts/Record.d.ts +136 -0
  210. package/dist/dts/Record.d.ts.map +1 -1
  211. package/dist/dts/Redacted.d.ts +8 -0
  212. package/dist/dts/Redacted.d.ts.map +1 -1
  213. package/dist/dts/RegExp.d.ts +4 -0
  214. package/dist/dts/RegExp.d.ts.map +1 -1
  215. package/dist/dts/Request.d.ts +4 -0
  216. package/dist/dts/Request.d.ts.map +1 -1
  217. package/dist/dts/RequestResolver.d.ts +6 -0
  218. package/dist/dts/RequestResolver.d.ts.map +1 -1
  219. package/dist/dts/Runtime.d.ts +18 -0
  220. package/dist/dts/Runtime.d.ts.map +1 -1
  221. package/dist/dts/STM.d.ts +2 -0
  222. package/dist/dts/STM.d.ts.map +1 -1
  223. package/dist/dts/Schema.d.ts +90 -0
  224. package/dist/dts/Schema.d.ts.map +1 -1
  225. package/dist/dts/Sink.d.ts +8 -0
  226. package/dist/dts/Sink.d.ts.map +1 -1
  227. package/dist/dts/Stream.d.ts +394 -32
  228. package/dist/dts/Stream.d.ts.map +1 -1
  229. package/dist/dts/String.d.ts +94 -0
  230. package/dist/dts/String.d.ts.map +1 -1
  231. package/dist/dts/Struct.d.ts +24 -0
  232. package/dist/dts/Struct.d.ts.map +1 -1
  233. package/dist/dts/Symbol.d.ts +2 -0
  234. package/dist/dts/Symbol.d.ts.map +1 -1
  235. package/dist/dts/Trie.d.ts +132 -0
  236. package/dist/dts/Trie.d.ts.map +1 -1
  237. package/dist/dts/Tuple.d.ts +42 -0
  238. package/dist/dts/Tuple.d.ts.map +1 -1
  239. package/dist/dts/Types.d.ts +24 -0
  240. package/dist/dts/Types.d.ts.map +1 -1
  241. package/dist/dts/Utils.d.ts +4 -0
  242. package/dist/dts/Utils.d.ts.map +1 -1
  243. package/dist/dts/internal/context.d.ts +1 -1
  244. package/dist/dts/internal/context.d.ts.map +1 -1
  245. package/dist/dts/internal/dateTime.d.ts +2 -0
  246. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  247. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  248. package/dist/dts/internal/stream.d.ts.map +1 -1
  249. package/dist/esm/Array.js +208 -0
  250. package/dist/esm/Array.js.map +1 -1
  251. package/dist/esm/BigDecimal.js +175 -20
  252. package/dist/esm/BigDecimal.js.map +1 -1
  253. package/dist/esm/BigInt.js +54 -0
  254. package/dist/esm/BigInt.js.map +1 -1
  255. package/dist/esm/Boolean.js +24 -0
  256. package/dist/esm/Boolean.js.map +1 -1
  257. package/dist/esm/Brand.js +4 -0
  258. package/dist/esm/Brand.js.map +1 -1
  259. package/dist/esm/Channel.js +42 -2
  260. package/dist/esm/Channel.js.map +1 -1
  261. package/dist/esm/Chunk.js +8 -0
  262. package/dist/esm/Chunk.js.map +1 -1
  263. package/dist/esm/Config.js +9 -0
  264. package/dist/esm/Config.js.map +1 -1
  265. package/dist/esm/Context.js +49 -0
  266. package/dist/esm/Context.js.map +1 -1
  267. package/dist/esm/Cron.js +81 -67
  268. package/dist/esm/Cron.js.map +1 -1
  269. package/dist/esm/Data.js +16 -0
  270. package/dist/esm/Data.js.map +1 -1
  271. package/dist/esm/DateTime.js +176 -627
  272. package/dist/esm/DateTime.js.map +1 -1
  273. package/dist/esm/Duration.js +2 -0
  274. package/dist/esm/Duration.js.map +1 -1
  275. package/dist/esm/Effect.js +297 -0
  276. package/dist/esm/Effect.js.map +1 -1
  277. package/dist/esm/Either.js +40 -2
  278. package/dist/esm/Either.js.map +1 -1
  279. package/dist/esm/FiberHandle.js +6 -0
  280. package/dist/esm/FiberHandle.js.map +1 -1
  281. package/dist/esm/FiberMap.js +6 -0
  282. package/dist/esm/FiberMap.js.map +1 -1
  283. package/dist/esm/FiberSet.js +6 -0
  284. package/dist/esm/FiberSet.js.map +1 -1
  285. package/dist/esm/Function.js +34 -0
  286. package/dist/esm/Function.js.map +1 -1
  287. package/dist/esm/GlobalValue.js +2 -0
  288. package/dist/esm/GlobalValue.js.map +1 -1
  289. package/dist/esm/HashMap.js.map +1 -1
  290. package/dist/esm/Inspectable.js +8 -4
  291. package/dist/esm/Inspectable.js.map +1 -1
  292. package/dist/esm/Iterable.js +18 -0
  293. package/dist/esm/Iterable.js.map +1 -1
  294. package/dist/esm/JSONSchema.js.map +1 -1
  295. package/dist/esm/List.js +4 -0
  296. package/dist/esm/List.js.map +1 -1
  297. package/dist/esm/Logger.js +26 -0
  298. package/dist/esm/Logger.js.map +1 -1
  299. package/dist/esm/Mailbox.js +2 -0
  300. package/dist/esm/Mailbox.js.map +1 -1
  301. package/dist/esm/ManagedRuntime.js +2 -0
  302. package/dist/esm/ManagedRuntime.js.map +1 -1
  303. package/dist/esm/Metric.js +10 -0
  304. package/dist/esm/Metric.js.map +1 -1
  305. package/dist/esm/Micro.js +1077 -1037
  306. package/dist/esm/Micro.js.map +1 -1
  307. package/dist/esm/Number.js +44 -0
  308. package/dist/esm/Number.js.map +1 -1
  309. package/dist/esm/Option.js +72 -0
  310. package/dist/esm/Option.js.map +1 -1
  311. package/dist/esm/Order.js +2 -0
  312. package/dist/esm/Order.js.map +1 -1
  313. package/dist/esm/Ordering.js +4 -0
  314. package/dist/esm/Ordering.js.map +1 -1
  315. package/dist/esm/Predicate.js +68 -0
  316. package/dist/esm/Predicate.js.map +1 -1
  317. package/dist/esm/Random.js +4 -0
  318. package/dist/esm/Random.js.map +1 -1
  319. package/dist/esm/RateLimiter.js +4 -0
  320. package/dist/esm/RateLimiter.js.map +1 -1
  321. package/dist/esm/RcMap.js +2 -0
  322. package/dist/esm/RcMap.js.map +1 -1
  323. package/dist/esm/RcRef.js +2 -0
  324. package/dist/esm/RcRef.js.map +1 -1
  325. package/dist/esm/Record.js +56 -0
  326. package/dist/esm/Record.js.map +1 -1
  327. package/dist/esm/Redacted.js +8 -0
  328. package/dist/esm/Redacted.js.map +1 -1
  329. package/dist/esm/RegExp.js +4 -0
  330. package/dist/esm/RegExp.js.map +1 -1
  331. package/dist/esm/Request.js +4 -0
  332. package/dist/esm/Request.js.map +1 -1
  333. package/dist/esm/RequestResolver.js +2 -0
  334. package/dist/esm/RequestResolver.js.map +1 -1
  335. package/dist/esm/Runtime.js +6 -0
  336. package/dist/esm/Runtime.js.map +1 -1
  337. package/dist/esm/STM.js.map +1 -1
  338. package/dist/esm/Schema.js +88 -0
  339. package/dist/esm/Schema.js.map +1 -1
  340. package/dist/esm/Sink.js +8 -0
  341. package/dist/esm/Sink.js.map +1 -1
  342. package/dist/esm/Stream.js +183 -5
  343. package/dist/esm/Stream.js.map +1 -1
  344. package/dist/esm/String.js +62 -0
  345. package/dist/esm/String.js.map +1 -1
  346. package/dist/esm/Struct.js +12 -0
  347. package/dist/esm/Struct.js.map +1 -1
  348. package/dist/esm/Symbol.js +2 -0
  349. package/dist/esm/Symbol.js.map +1 -1
  350. package/dist/esm/Trie.js +56 -0
  351. package/dist/esm/Trie.js.map +1 -1
  352. package/dist/esm/Tuple.js +22 -0
  353. package/dist/esm/Tuple.js.map +1 -1
  354. package/dist/esm/Utils.js +5 -0
  355. package/dist/esm/Utils.js.map +1 -1
  356. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  357. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  358. package/dist/esm/internal/channel.js +152 -129
  359. package/dist/esm/internal/channel.js.map +1 -1
  360. package/dist/esm/internal/config.js +11 -3
  361. package/dist/esm/internal/config.js.map +1 -1
  362. package/dist/esm/internal/context.js +42 -2
  363. package/dist/esm/internal/context.js.map +1 -1
  364. package/dist/esm/internal/dateTime.js +704 -0
  365. package/dist/esm/internal/dateTime.js.map +1 -0
  366. package/dist/esm/internal/fiberRuntime.js +31 -9
  367. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  368. package/dist/esm/internal/groupBy.js +9 -3
  369. package/dist/esm/internal/groupBy.js.map +1 -1
  370. package/dist/esm/internal/layer.js +1 -1
  371. package/dist/esm/internal/layer.js.map +1 -1
  372. package/dist/esm/internal/mailbox.js +1 -1
  373. package/dist/esm/internal/mailbox.js.map +1 -1
  374. package/dist/esm/internal/sink.js +23 -20
  375. package/dist/esm/internal/sink.js.map +1 -1
  376. package/dist/esm/internal/stream.js +66 -69
  377. package/dist/esm/internal/stream.js.map +1 -1
  378. package/dist/esm/internal/version.js +1 -1
  379. package/dist/esm/internal/version.js.map +1 -1
  380. package/package.json +1 -1
  381. package/src/Array.ts +534 -0
  382. package/src/BigDecimal.ts +247 -21
  383. package/src/BigInt.ts +114 -0
  384. package/src/Boolean.ts +56 -0
  385. package/src/Brand.ts +6 -0
  386. package/src/Channel.ts +81 -5
  387. package/src/Chunk.ts +32 -0
  388. package/src/Config.ts +26 -1
  389. package/src/Context.ts +163 -0
  390. package/src/Cron.ts +91 -68
  391. package/src/Data.ts +26 -0
  392. package/src/DateTime.ts +307 -757
  393. package/src/Duration.ts +2 -0
  394. package/src/Effect.ts +910 -1
  395. package/src/Either.ts +84 -2
  396. package/src/FiberHandle.ts +6 -0
  397. package/src/FiberMap.ts +6 -0
  398. package/src/FiberSet.ts +6 -0
  399. package/src/Function.ts +50 -0
  400. package/src/GlobalValue.ts +2 -0
  401. package/src/HashMap.ts +6 -0
  402. package/src/Inspectable.ts +11 -7
  403. package/src/Iterable.ts +26 -0
  404. package/src/JSONSchema.ts +1 -0
  405. package/src/List.ts +24 -0
  406. package/src/Logger.ts +34 -0
  407. package/src/Mailbox.ts +2 -0
  408. package/src/ManagedRuntime.ts +2 -0
  409. package/src/Metric.ts +18 -0
  410. package/src/Micro.ts +2007 -1745
  411. package/src/Number.ts +104 -0
  412. package/src/Option.ts +142 -0
  413. package/src/Order.ts +2 -0
  414. package/src/Ordering.ts +8 -0
  415. package/src/Predicate.ts +104 -0
  416. package/src/Random.ts +4 -0
  417. package/src/RateLimiter.ts +4 -0
  418. package/src/RcMap.ts +6 -0
  419. package/src/RcRef.ts +2 -0
  420. package/src/Record.ts +136 -0
  421. package/src/Redacted.ts +8 -0
  422. package/src/RegExp.ts +4 -0
  423. package/src/Request.ts +4 -0
  424. package/src/RequestResolver.ts +6 -0
  425. package/src/Runtime.ts +18 -0
  426. package/src/STM.ts +2 -0
  427. package/src/Schema.ts +124 -0
  428. package/src/Sink.ts +11 -0
  429. package/src/Stream.ts +399 -44
  430. package/src/String.ts +94 -0
  431. package/src/Struct.ts +24 -0
  432. package/src/Symbol.ts +2 -0
  433. package/src/Trie.ts +132 -0
  434. package/src/Tuple.ts +42 -0
  435. package/src/Types.ts +24 -0
  436. package/src/Utils.ts +8 -0
  437. package/src/internal/channel/channelExecutor.ts +37 -33
  438. package/src/internal/channel.ts +504 -467
  439. package/src/internal/config.ts +18 -6
  440. package/src/internal/context.ts +56 -4
  441. package/src/internal/dateTime.ts +1126 -0
  442. package/src/internal/fiberRuntime.ts +35 -16
  443. package/src/internal/groupBy.ts +13 -22
  444. package/src/internal/layer.ts +5 -8
  445. package/src/internal/mailbox.ts +6 -4
  446. package/src/internal/sink.ts +55 -35
  447. package/src/internal/stream.ts +299 -299
  448. package/src/internal/version.ts +1 -1
package/src/Boolean.ts CHANGED
@@ -17,10 +17,12 @@ import * as predicate from "./Predicate.js"
17
17
  * @param input - The value to test.
18
18
  *
19
19
  * @example
20
+ * ```ts
20
21
  * import { isBoolean } from "effect/Boolean"
21
22
  *
22
23
  * assert.deepStrictEqual(isBoolean(true), true)
23
24
  * assert.deepStrictEqual(isBoolean("true"), false)
25
+ * ```
24
26
  *
25
27
  * @category guards
26
28
  * @since 2.0.0
@@ -36,9 +38,11 @@ export const isBoolean: (input: unknown) => input is boolean = predicate.isBoole
36
38
  * @param onTrue - a lazy evaluation function that will be executed when the `value` is `true`.
37
39
  *
38
40
  * @example
41
+ * ```ts
39
42
  * import { Boolean } from "effect"
40
43
  *
41
44
  * assert.deepStrictEqual(Boolean.match(true, { onFalse: () => "It's false!", onTrue: () => "It's true!" }), "It's true!")
45
+ * ```
42
46
  *
43
47
  * @category pattern matching
44
48
  * @since 2.0.0
@@ -53,9 +57,11 @@ export const match: {
53
57
  * @param onTrue - a lazy evaluation function that will be executed when the `value` is `true`.
54
58
  *
55
59
  * @example
60
+ * ```ts
56
61
  * import { Boolean } from "effect"
57
62
  *
58
63
  * assert.deepStrictEqual(Boolean.match(true, { onFalse: () => "It's false!", onTrue: () => "It's true!" }), "It's true!")
64
+ * ```
59
65
  *
60
66
  * @category pattern matching
61
67
  * @since 2.0.0
@@ -75,9 +81,11 @@ export const match: {
75
81
  * @param onTrue - a lazy evaluation function that will be executed when the `value` is `true`.
76
82
  *
77
83
  * @example
84
+ * ```ts
78
85
  * import { Boolean } from "effect"
79
86
  *
80
87
  * assert.deepStrictEqual(Boolean.match(true, { onFalse: () => "It's false!", onTrue: () => "It's true!" }), "It's true!")
88
+ * ```
81
89
  *
82
90
  * @category pattern matching
83
91
  * @since 2.0.0
@@ -110,10 +118,12 @@ export const Order: order.Order<boolean> = order.boolean
110
118
  * Negates the given boolean: `!self`
111
119
  *
112
120
  * @example
121
+ * ```ts
113
122
  * import { not } from "effect/Boolean"
114
123
  *
115
124
  * assert.deepStrictEqual(not(true), false)
116
125
  * assert.deepStrictEqual(not(false), true)
126
+ * ```
117
127
  *
118
128
  * @category combinators
119
129
  * @since 2.0.0
@@ -124,12 +134,14 @@ export const not = (self: boolean): boolean => !self
124
134
  * Combines two boolean using AND: `self && that`.
125
135
  *
126
136
  * @example
137
+ * ```ts
127
138
  * import { and } from "effect/Boolean"
128
139
  *
129
140
  * assert.deepStrictEqual(and(true, true), true)
130
141
  * assert.deepStrictEqual(and(true, false), false)
131
142
  * assert.deepStrictEqual(and(false, true), false)
132
143
  * assert.deepStrictEqual(and(false, false), false)
144
+ * ```
133
145
  *
134
146
  * @category combinators
135
147
  * @since 2.0.0
@@ -139,12 +151,14 @@ export const and: {
139
151
  * Combines two boolean using AND: `self && that`.
140
152
  *
141
153
  * @example
154
+ * ```ts
142
155
  * import { and } from "effect/Boolean"
143
156
  *
144
157
  * assert.deepStrictEqual(and(true, true), true)
145
158
  * assert.deepStrictEqual(and(true, false), false)
146
159
  * assert.deepStrictEqual(and(false, true), false)
147
160
  * assert.deepStrictEqual(and(false, false), false)
161
+ * ```
148
162
  *
149
163
  * @category combinators
150
164
  * @since 2.0.0
@@ -154,12 +168,14 @@ export const and: {
154
168
  * Combines two boolean using AND: `self && that`.
155
169
  *
156
170
  * @example
171
+ * ```ts
157
172
  * import { and } from "effect/Boolean"
158
173
  *
159
174
  * assert.deepStrictEqual(and(true, true), true)
160
175
  * assert.deepStrictEqual(and(true, false), false)
161
176
  * assert.deepStrictEqual(and(false, true), false)
162
177
  * assert.deepStrictEqual(and(false, false), false)
178
+ * ```
163
179
  *
164
180
  * @category combinators
165
181
  * @since 2.0.0
@@ -171,12 +187,14 @@ export const and: {
171
187
  * Combines two boolean using NAND: `!(self && that)`.
172
188
  *
173
189
  * @example
190
+ * ```ts
174
191
  * import { nand } from "effect/Boolean"
175
192
  *
176
193
  * assert.deepStrictEqual(nand(true, true), false)
177
194
  * assert.deepStrictEqual(nand(true, false), true)
178
195
  * assert.deepStrictEqual(nand(false, true), true)
179
196
  * assert.deepStrictEqual(nand(false, false), true)
197
+ * ```
180
198
  *
181
199
  * @category combinators
182
200
  * @since 2.0.0
@@ -186,12 +204,14 @@ export const nand: {
186
204
  * Combines two boolean using NAND: `!(self && that)`.
187
205
  *
188
206
  * @example
207
+ * ```ts
189
208
  * import { nand } from "effect/Boolean"
190
209
  *
191
210
  * assert.deepStrictEqual(nand(true, true), false)
192
211
  * assert.deepStrictEqual(nand(true, false), true)
193
212
  * assert.deepStrictEqual(nand(false, true), true)
194
213
  * assert.deepStrictEqual(nand(false, false), true)
214
+ * ```
195
215
  *
196
216
  * @category combinators
197
217
  * @since 2.0.0
@@ -201,12 +221,14 @@ export const nand: {
201
221
  * Combines two boolean using NAND: `!(self && that)`.
202
222
  *
203
223
  * @example
224
+ * ```ts
204
225
  * import { nand } from "effect/Boolean"
205
226
  *
206
227
  * assert.deepStrictEqual(nand(true, true), false)
207
228
  * assert.deepStrictEqual(nand(true, false), true)
208
229
  * assert.deepStrictEqual(nand(false, true), true)
209
230
  * assert.deepStrictEqual(nand(false, false), true)
231
+ * ```
210
232
  *
211
233
  * @category combinators
212
234
  * @since 2.0.0
@@ -218,12 +240,14 @@ export const nand: {
218
240
  * Combines two boolean using OR: `self || that`.
219
241
  *
220
242
  * @example
243
+ * ```ts
221
244
  * import { or } from "effect/Boolean"
222
245
  *
223
246
  * assert.deepStrictEqual(or(true, true), true)
224
247
  * assert.deepStrictEqual(or(true, false), true)
225
248
  * assert.deepStrictEqual(or(false, true), true)
226
249
  * assert.deepStrictEqual(or(false, false), false)
250
+ * ```
227
251
  *
228
252
  * @category combinators
229
253
  * @since 2.0.0
@@ -233,12 +257,14 @@ export const or: {
233
257
  * Combines two boolean using OR: `self || that`.
234
258
  *
235
259
  * @example
260
+ * ```ts
236
261
  * import { or } from "effect/Boolean"
237
262
  *
238
263
  * assert.deepStrictEqual(or(true, true), true)
239
264
  * assert.deepStrictEqual(or(true, false), true)
240
265
  * assert.deepStrictEqual(or(false, true), true)
241
266
  * assert.deepStrictEqual(or(false, false), false)
267
+ * ```
242
268
  *
243
269
  * @category combinators
244
270
  * @since 2.0.0
@@ -248,12 +274,14 @@ export const or: {
248
274
  * Combines two boolean using OR: `self || that`.
249
275
  *
250
276
  * @example
277
+ * ```ts
251
278
  * import { or } from "effect/Boolean"
252
279
  *
253
280
  * assert.deepStrictEqual(or(true, true), true)
254
281
  * assert.deepStrictEqual(or(true, false), true)
255
282
  * assert.deepStrictEqual(or(false, true), true)
256
283
  * assert.deepStrictEqual(or(false, false), false)
284
+ * ```
257
285
  *
258
286
  * @category combinators
259
287
  * @since 2.0.0
@@ -265,12 +293,14 @@ export const or: {
265
293
  * Combines two booleans using NOR: `!(self || that)`.
266
294
  *
267
295
  * @example
296
+ * ```ts
268
297
  * import { nor } from "effect/Boolean"
269
298
  *
270
299
  * assert.deepStrictEqual(nor(true, true), false)
271
300
  * assert.deepStrictEqual(nor(true, false), false)
272
301
  * assert.deepStrictEqual(nor(false, true), false)
273
302
  * assert.deepStrictEqual(nor(false, false), true)
303
+ * ```
274
304
  *
275
305
  * @category combinators
276
306
  * @since 2.0.0
@@ -280,12 +310,14 @@ export const nor: {
280
310
  * Combines two booleans using NOR: `!(self || that)`.
281
311
  *
282
312
  * @example
313
+ * ```ts
283
314
  * import { nor } from "effect/Boolean"
284
315
  *
285
316
  * assert.deepStrictEqual(nor(true, true), false)
286
317
  * assert.deepStrictEqual(nor(true, false), false)
287
318
  * assert.deepStrictEqual(nor(false, true), false)
288
319
  * assert.deepStrictEqual(nor(false, false), true)
320
+ * ```
289
321
  *
290
322
  * @category combinators
291
323
  * @since 2.0.0
@@ -295,12 +327,14 @@ export const nor: {
295
327
  * Combines two booleans using NOR: `!(self || that)`.
296
328
  *
297
329
  * @example
330
+ * ```ts
298
331
  * import { nor } from "effect/Boolean"
299
332
  *
300
333
  * assert.deepStrictEqual(nor(true, true), false)
301
334
  * assert.deepStrictEqual(nor(true, false), false)
302
335
  * assert.deepStrictEqual(nor(false, true), false)
303
336
  * assert.deepStrictEqual(nor(false, false), true)
337
+ * ```
304
338
  *
305
339
  * @category combinators
306
340
  * @since 2.0.0
@@ -312,12 +346,14 @@ export const nor: {
312
346
  * Combines two booleans using XOR: `(!self && that) || (self && !that)`.
313
347
  *
314
348
  * @example
349
+ * ```ts
315
350
  * import { xor } from "effect/Boolean"
316
351
  *
317
352
  * assert.deepStrictEqual(xor(true, true), false)
318
353
  * assert.deepStrictEqual(xor(true, false), true)
319
354
  * assert.deepStrictEqual(xor(false, true), true)
320
355
  * assert.deepStrictEqual(xor(false, false), false)
356
+ * ```
321
357
  *
322
358
  * @category combinators
323
359
  * @since 2.0.0
@@ -327,12 +363,14 @@ export const xor: {
327
363
  * Combines two booleans using XOR: `(!self && that) || (self && !that)`.
328
364
  *
329
365
  * @example
366
+ * ```ts
330
367
  * import { xor } from "effect/Boolean"
331
368
  *
332
369
  * assert.deepStrictEqual(xor(true, true), false)
333
370
  * assert.deepStrictEqual(xor(true, false), true)
334
371
  * assert.deepStrictEqual(xor(false, true), true)
335
372
  * assert.deepStrictEqual(xor(false, false), false)
373
+ * ```
336
374
  *
337
375
  * @category combinators
338
376
  * @since 2.0.0
@@ -342,12 +380,14 @@ export const xor: {
342
380
  * Combines two booleans using XOR: `(!self && that) || (self && !that)`.
343
381
  *
344
382
  * @example
383
+ * ```ts
345
384
  * import { xor } from "effect/Boolean"
346
385
  *
347
386
  * assert.deepStrictEqual(xor(true, true), false)
348
387
  * assert.deepStrictEqual(xor(true, false), true)
349
388
  * assert.deepStrictEqual(xor(false, true), true)
350
389
  * assert.deepStrictEqual(xor(false, false), false)
390
+ * ```
351
391
  *
352
392
  * @category combinators
353
393
  * @since 2.0.0
@@ -359,12 +399,14 @@ export const xor: {
359
399
  * Combines two booleans using EQV (aka XNOR): `!xor(self, that)`.
360
400
  *
361
401
  * @example
402
+ * ```ts
362
403
  * import { eqv } from "effect/Boolean"
363
404
  *
364
405
  * assert.deepStrictEqual(eqv(true, true), true)
365
406
  * assert.deepStrictEqual(eqv(true, false), false)
366
407
  * assert.deepStrictEqual(eqv(false, true), false)
367
408
  * assert.deepStrictEqual(eqv(false, false), true)
409
+ * ```
368
410
  *
369
411
  * @category combinators
370
412
  * @since 2.0.0
@@ -374,12 +416,14 @@ export const eqv: {
374
416
  * Combines two booleans using EQV (aka XNOR): `!xor(self, that)`.
375
417
  *
376
418
  * @example
419
+ * ```ts
377
420
  * import { eqv } from "effect/Boolean"
378
421
  *
379
422
  * assert.deepStrictEqual(eqv(true, true), true)
380
423
  * assert.deepStrictEqual(eqv(true, false), false)
381
424
  * assert.deepStrictEqual(eqv(false, true), false)
382
425
  * assert.deepStrictEqual(eqv(false, false), true)
426
+ * ```
383
427
  *
384
428
  * @category combinators
385
429
  * @since 2.0.0
@@ -389,12 +433,14 @@ export const eqv: {
389
433
  * Combines two booleans using EQV (aka XNOR): `!xor(self, that)`.
390
434
  *
391
435
  * @example
436
+ * ```ts
392
437
  * import { eqv } from "effect/Boolean"
393
438
  *
394
439
  * assert.deepStrictEqual(eqv(true, true), true)
395
440
  * assert.deepStrictEqual(eqv(true, false), false)
396
441
  * assert.deepStrictEqual(eqv(false, true), false)
397
442
  * assert.deepStrictEqual(eqv(false, false), true)
443
+ * ```
398
444
  *
399
445
  * @category combinators
400
446
  * @since 2.0.0
@@ -406,12 +452,14 @@ export const eqv: {
406
452
  * Combines two booleans using an implication: `(!self || that)`.
407
453
  *
408
454
  * @example
455
+ * ```ts
409
456
  * import { implies } from "effect/Boolean"
410
457
  *
411
458
  * assert.deepStrictEqual(implies(true, true), true)
412
459
  * assert.deepStrictEqual(implies(true, false), false)
413
460
  * assert.deepStrictEqual(implies(false, true), true)
414
461
  * assert.deepStrictEqual(implies(false, false), true)
462
+ * ```
415
463
  *
416
464
  * @category combinators
417
465
  * @since 2.0.0
@@ -421,12 +469,14 @@ export const implies: {
421
469
  * Combines two booleans using an implication: `(!self || that)`.
422
470
  *
423
471
  * @example
472
+ * ```ts
424
473
  * import { implies } from "effect/Boolean"
425
474
  *
426
475
  * assert.deepStrictEqual(implies(true, true), true)
427
476
  * assert.deepStrictEqual(implies(true, false), false)
428
477
  * assert.deepStrictEqual(implies(false, true), true)
429
478
  * assert.deepStrictEqual(implies(false, false), true)
479
+ * ```
430
480
  *
431
481
  * @category combinators
432
482
  * @since 2.0.0
@@ -436,12 +486,14 @@ export const implies: {
436
486
  * Combines two booleans using an implication: `(!self || that)`.
437
487
  *
438
488
  * @example
489
+ * ```ts
439
490
  * import { implies } from "effect/Boolean"
440
491
  *
441
492
  * assert.deepStrictEqual(implies(true, true), true)
442
493
  * assert.deepStrictEqual(implies(true, false), false)
443
494
  * assert.deepStrictEqual(implies(false, true), true)
444
495
  * assert.deepStrictEqual(implies(false, false), true)
496
+ * ```
445
497
  *
446
498
  * @category combinators
447
499
  * @since 2.0.0
@@ -455,10 +507,12 @@ export const implies: {
455
507
  * @param collection - An iterable collection of booleans.
456
508
  *
457
509
  * @example
510
+ * ```ts
458
511
  * import { every } from "effect/Boolean"
459
512
  *
460
513
  * assert.deepStrictEqual(every([true, true, true]), true)
461
514
  * assert.deepStrictEqual(every([true, false, true]), false)
515
+ * ```
462
516
  *
463
517
  * @since 2.0.0
464
518
  */
@@ -477,10 +531,12 @@ export const every = (collection: Iterable<boolean>): boolean => {
477
531
  * @param collection - An iterable collection of booleans.
478
532
  *
479
533
  * @example
534
+ * ```ts
480
535
  * import { some } from "effect/Boolean"
481
536
  *
482
537
  * assert.deepStrictEqual(some([true, false, true]), true)
483
538
  * assert.deepStrictEqual(some([false, false, false]), false)
539
+ * ```
484
540
  *
485
541
  * @since 2.0.0
486
542
  */
package/src/Brand.ts CHANGED
@@ -196,6 +196,7 @@ export const errors: (...errors: Array<Brand.BrandErrors>) => Brand.BrandErrors
196
196
  * @param onFailure - Takes the unbranded value that did not pass the `refinement` predicate and returns a `BrandErrors`.
197
197
  *
198
198
  * @example
199
+ * ```ts
199
200
  * import { Brand } from "effect"
200
201
  *
201
202
  * type Int = number & Brand.Brand<"Int">
@@ -207,6 +208,7 @@ export const errors: (...errors: Array<Brand.BrandErrors>) => Brand.BrandErrors
207
208
  *
208
209
  * assert.strictEqual(Int(1), 1)
209
210
  * assert.throws(() => Int(1.1))
211
+ * ```
210
212
  *
211
213
  * @since 2.0.0
212
214
  * @category constructors
@@ -247,6 +249,7 @@ export function refined<A extends Brand<any>>(
247
249
  * If you also want to perform some validation, see {@link refined}.
248
250
  *
249
251
  * @example
252
+ * ```ts
250
253
  * import { Brand } from "effect"
251
254
  *
252
255
  * type UserId = number & Brand.Brand<"UserId">
@@ -254,6 +257,7 @@ export function refined<A extends Brand<any>>(
254
257
  * const UserId = Brand.nominal<UserId>()
255
258
  *
256
259
  * assert.strictEqual(UserId(1), 1)
260
+ * ```
257
261
  *
258
262
  * @since 2.0.0
259
263
  * @category constructors
@@ -275,6 +279,7 @@ export const nominal = <A extends Brand<any>>(): Brand.Constructor<
275
279
  * This API is useful when you want to validate that the input data passes multiple brand validators.
276
280
  *
277
281
  * @example
282
+ * ```ts
278
283
  * import { Brand } from "effect"
279
284
  *
280
285
  * type Int = number & Brand.Brand<"Int">
@@ -292,6 +297,7 @@ export const nominal = <A extends Brand<any>>(): Brand.Constructor<
292
297
  *
293
298
  * assert.strictEqual(PositiveInt(1), 1)
294
299
  * assert.throws(() => PositiveInt(1.1))
300
+ * ```
295
301
  *
296
302
  * @since 2.0.0
297
303
  * @category combining
package/src/Channel.ts CHANGED
@@ -2578,7 +2578,7 @@ export const repeated: <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
2578
2578
  */
2579
2579
  export const run: <OutErr, InErr, OutDone, InDone, Env>(
2580
2580
  self: Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
2581
- ) => Effect.Effect<OutDone, OutErr, Exclude<Env, Scope.Scope>> = channel.run
2581
+ ) => Effect.Effect<OutDone, OutErr, Env> = channel.run
2582
2582
 
2583
2583
  /**
2584
2584
  * Run the channel until it finishes with a done value or fails with an error
@@ -2591,7 +2591,7 @@ export const run: <OutErr, InErr, OutDone, InDone, Env>(
2591
2591
  */
2592
2592
  export const runCollect: <OutElem, OutErr, InErr, OutDone, InDone, Env>(
2593
2593
  self: Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, Env>
2594
- ) => Effect.Effect<[Chunk.Chunk<OutElem>, OutDone], OutErr, Exclude<Env, Scope.Scope>> = channel.runCollect
2594
+ ) => Effect.Effect<[Chunk.Chunk<OutElem>, OutDone], OutErr, Env> = channel.runCollect
2595
2595
 
2596
2596
  /**
2597
2597
  * Runs a channel until the end is received.
@@ -2601,7 +2601,21 @@ export const runCollect: <OutElem, OutErr, InErr, OutDone, InDone, Env>(
2601
2601
  */
2602
2602
  export const runDrain: <OutElem, OutErr, InErr, OutDone, InDone, Env>(
2603
2603
  self: Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, Env>
2604
- ) => Effect.Effect<OutDone, OutErr, Exclude<Env, Scope.Scope>> = channel.runDrain
2604
+ ) => Effect.Effect<OutDone, OutErr, Env> = channel.runDrain
2605
+
2606
+ /**
2607
+ * Run the channel until it finishes with a done value or fails with an error.
2608
+ * The channel must not read any input or write any output.
2609
+ *
2610
+ * Closing the channel, which includes execution of all the finalizers
2611
+ * attached to the channel will be added to the current scope as a finalizer.
2612
+ *
2613
+ * @since 3.11.0
2614
+ * @category destructors
2615
+ */
2616
+ export const runScoped: <OutErr, InErr, OutDone, InDone, Env>(
2617
+ self: Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
2618
+ ) => Effect.Effect<OutDone, OutErr, Env | Scope.Scope> = channel.runScoped
2605
2619
 
2606
2620
  /**
2607
2621
  * Use a scoped effect to emit an output element.
@@ -2613,6 +2627,18 @@ export const scoped: <A, E, R>(
2613
2627
  effect: Effect.Effect<A, E, R>
2614
2628
  ) => Channel<A, unknown, E, unknown, unknown, unknown, Exclude<R, Scope.Scope>> = channel.scoped
2615
2629
 
2630
+ /**
2631
+ * Use a function that receives a scope and returns an effect to emit an output
2632
+ * element. The output element will be the result of the returned effect, if
2633
+ * successful.
2634
+ *
2635
+ * @since 3.11.0
2636
+ * @category constructors
2637
+ */
2638
+ export const scopedWith: <A, E, R>(
2639
+ f: (scope: Scope.Scope) => Effect.Effect<A, E, R>
2640
+ ) => Channel<A, unknown, E, unknown, unknown, unknown, R> = channel.scopedWith
2641
+
2616
2642
  /**
2617
2643
  * Splits strings on newlines. Handles both Windows newlines (`\r\n`) and UNIX
2618
2644
  * newlines (`\n`).
@@ -2682,6 +2708,43 @@ export const toPull: <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
2682
2708
  ) => Effect.Effect<Effect.Effect<Either.Either<OutElem, OutDone>, OutErr, Env>, never, Scope.Scope | Env> =
2683
2709
  channel.toPull
2684
2710
 
2711
+ /**
2712
+ * Returns an `Effect` that can be used to repeatedly pull elements from the
2713
+ * constructed `Channel` within the provided `Scope`. The pull effect fails
2714
+ * with the channel's failure in case the channel fails, or returns either the
2715
+ * channel's done value or an emitted element.
2716
+ *
2717
+ * @since 3.11.0
2718
+ * @category destructors
2719
+ */
2720
+ export const toPullIn: {
2721
+ /**
2722
+ * Returns an `Effect` that can be used to repeatedly pull elements from the
2723
+ * constructed `Channel` within the provided `Scope`. The pull effect fails
2724
+ * with the channel's failure in case the channel fails, or returns either the
2725
+ * channel's done value or an emitted element.
2726
+ *
2727
+ * @since 3.11.0
2728
+ * @category destructors
2729
+ */
2730
+ (scope: Scope.Scope): <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
2731
+ self: Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
2732
+ ) => Effect.Effect<Effect.Effect<Either.Either<OutElem, OutDone>, OutErr, Env>, never, Env>
2733
+ /**
2734
+ * Returns an `Effect` that can be used to repeatedly pull elements from the
2735
+ * constructed `Channel` within the provided `Scope`. The pull effect fails
2736
+ * with the channel's failure in case the channel fails, or returns either the
2737
+ * channel's done value or an emitted element.
2738
+ *
2739
+ * @since 3.11.0
2740
+ * @category destructors
2741
+ */
2742
+ <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
2743
+ self: Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
2744
+ scope: Scope.Scope
2745
+ ): Effect.Effect<Effect.Effect<Either.Either<OutElem, OutDone>, OutErr, Env>, never, Env>
2746
+ } = channel.toPullIn
2747
+
2685
2748
  /**
2686
2749
  * Converts a `Channel` to a `Queue`.
2687
2750
  *
@@ -2721,7 +2784,8 @@ export {
2721
2784
  }
2722
2785
 
2723
2786
  /**
2724
- * Makes a channel from an effect that returns a channel in case of success.
2787
+ * Constructs a `Channel` from an effect that will result in a `Channel` if
2788
+ * successful.
2725
2789
  *
2726
2790
  * @since 2.0.0
2727
2791
  * @category constructors
@@ -2731,7 +2795,8 @@ export const unwrap: <OutElem, InElem, OutErr, InErr, OutDone, InDone, R2, E, R>
2731
2795
  ) => Channel<OutElem, InElem, E | OutErr, InErr, OutDone, InDone, R | R2> = channel.unwrap
2732
2796
 
2733
2797
  /**
2734
- * Makes a channel from a managed that returns a channel in case of success.
2798
+ * Constructs a `Channel` from a scoped effect that will result in a
2799
+ * `Channel` if successful.
2735
2800
  *
2736
2801
  * @since 2.0.0
2737
2802
  * @category constructors
@@ -2740,6 +2805,17 @@ export const unwrapScoped: <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env
2740
2805
  self: Effect.Effect<Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>, E, R>
2741
2806
  ) => Channel<OutElem, InElem, E | OutErr, InErr, OutDone, InDone, Env | Exclude<R, Scope.Scope>> = channel.unwrapScoped
2742
2807
 
2808
+ /**
2809
+ * Constructs a `Channel` from a function which receives a `Scope` and returns
2810
+ * an effect that will result in a `Channel` if successful.
2811
+ *
2812
+ * @since 3.11.0
2813
+ * @category constructors
2814
+ */
2815
+ export const unwrapScopedWith: <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, E, R>(
2816
+ f: (scope: Scope.Scope) => Effect.Effect<Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>, E, R>
2817
+ ) => Channel<OutElem, InElem, E | OutErr, InErr, OutDone, InDone, R | Env> = channel.unwrapScopedWith
2818
+
2743
2819
  /**
2744
2820
  * Updates a service in the context of this channel.
2745
2821
  *