@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.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 (452) hide show
  1. package/SourceLocation/package.json +6 -0
  2. package/dist/cjs/Effect.js +2 -28
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/FiberRef.js +12 -1
  5. package/dist/cjs/FiberRef.js.map +1 -1
  6. package/dist/cjs/Layer.js +2 -24
  7. package/dist/cjs/Layer.js.map +1 -1
  8. package/dist/cjs/RuntimeFlags.js +1 -29
  9. package/dist/cjs/RuntimeFlags.js.map +1 -1
  10. package/dist/cjs/SourceLocation.js +60 -0
  11. package/dist/cjs/SourceLocation.js.map +1 -0
  12. package/dist/cjs/Tracer.js +1 -15
  13. package/dist/cjs/Tracer.js.map +1 -1
  14. package/dist/cjs/Utils.js +1 -1
  15. package/dist/cjs/Utils.js.map +1 -1
  16. package/dist/cjs/index.js +3 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/internal/clock.js +1 -1
  19. package/dist/cjs/internal/clock.js.map +1 -1
  20. package/dist/cjs/internal/core.js +17 -50
  21. package/dist/cjs/internal/core.js.map +1 -1
  22. package/dist/cjs/internal/effect/circular.js +18 -30
  23. package/dist/cjs/internal/effect/circular.js.map +1 -1
  24. package/dist/cjs/internal/fiberRuntime.js +16 -65
  25. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  26. package/dist/cjs/internal/layer/circular.js +1 -5
  27. package/dist/cjs/internal/layer/circular.js.map +1 -1
  28. package/dist/cjs/internal/layer.js +1 -3
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/logger.js +25 -2
  31. package/dist/cjs/internal/logger.js.map +1 -1
  32. package/dist/cjs/internal/runtimeFlags.js +2 -11
  33. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  34. package/dist/cjs/internal/tracer.js +1 -114
  35. package/dist/cjs/internal/tracer.js.map +1 -1
  36. package/dist/dts/Config.d.ts +2 -2
  37. package/dist/dts/Config.d.ts.map +1 -1
  38. package/dist/dts/Effect.d.ts +8 -29
  39. package/dist/dts/Effect.d.ts.map +1 -1
  40. package/dist/dts/FiberRef.d.ts +12 -0
  41. package/dist/dts/FiberRef.d.ts.map +1 -1
  42. package/dist/dts/Layer.d.ts +0 -22
  43. package/dist/dts/Layer.d.ts.map +1 -1
  44. package/dist/dts/RuntimeFlags.d.ts +0 -28
  45. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  46. package/dist/dts/SourceLocation.d.ts +88 -0
  47. package/dist/dts/SourceLocation.d.ts.map +1 -0
  48. package/dist/dts/Tracer.d.ts +0 -15
  49. package/dist/dts/Tracer.d.ts.map +1 -1
  50. package/dist/dts/index.d.ts +6 -0
  51. package/dist/dts/index.d.ts.map +1 -1
  52. package/dist/dts/internal/core.d.ts.map +1 -1
  53. package/dist/dts/internal/layer.d.ts.map +1 -1
  54. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  55. package/dist/esm/Effect.js +0 -26
  56. package/dist/esm/Effect.js.map +1 -1
  57. package/dist/esm/FiberRef.js +11 -0
  58. package/dist/esm/FiberRef.js.map +1 -1
  59. package/dist/esm/Layer.js +0 -22
  60. package/dist/esm/Layer.js.map +1 -1
  61. package/dist/esm/RuntimeFlags.js +0 -28
  62. package/dist/esm/RuntimeFlags.js.map +1 -1
  63. package/dist/esm/SourceLocation.js +51 -0
  64. package/dist/esm/SourceLocation.js.map +1 -0
  65. package/dist/esm/Tracer.js +0 -14
  66. package/dist/esm/Tracer.js.map +1 -1
  67. package/dist/esm/Utils.js +1 -1
  68. package/dist/esm/Utils.js.map +1 -1
  69. package/dist/esm/index.js +6 -0
  70. package/dist/esm/index.js.map +1 -1
  71. package/dist/esm/internal/clock.js +1 -1
  72. package/dist/esm/internal/clock.js.map +1 -1
  73. package/dist/esm/internal/core.js +12 -45
  74. package/dist/esm/internal/core.js.map +1 -1
  75. package/dist/esm/internal/effect/circular.js +18 -30
  76. package/dist/esm/internal/effect/circular.js.map +1 -1
  77. package/dist/esm/internal/fiberRuntime.js +13 -60
  78. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  79. package/dist/esm/internal/layer/circular.js +0 -4
  80. package/dist/esm/internal/layer/circular.js.map +1 -1
  81. package/dist/esm/internal/layer.js +0 -2
  82. package/dist/esm/internal/layer.js.map +1 -1
  83. package/dist/esm/internal/logger.js +25 -2
  84. package/dist/esm/internal/logger.js.map +1 -1
  85. package/dist/esm/internal/runtimeFlags.js +1 -9
  86. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  87. package/dist/esm/internal/tracer.js +0 -111
  88. package/dist/esm/internal/tracer.js.map +1 -1
  89. package/package.json +12 -1
  90. package/src/Arbitrary.ts +1101 -0
  91. package/src/Array.ts +3589 -0
  92. package/src/BigDecimal.ts +1349 -0
  93. package/src/BigInt.ts +643 -0
  94. package/src/Boolean.ts +287 -0
  95. package/src/Brand.ts +360 -0
  96. package/src/Cache.ts +281 -0
  97. package/src/Cause.ts +1555 -0
  98. package/src/Channel.ts +2355 -0
  99. package/src/ChildExecutorDecision.ts +146 -0
  100. package/src/Chunk.ts +1495 -0
  101. package/src/Clock.ts +111 -0
  102. package/src/Config.ts +542 -0
  103. package/src/ConfigError.ts +270 -0
  104. package/src/ConfigProvider.ts +333 -0
  105. package/src/ConfigProviderPathPatch.ts +100 -0
  106. package/src/Console.ts +226 -0
  107. package/src/Context.ts +585 -0
  108. package/src/Cron.ts +706 -0
  109. package/src/Data.ts +596 -0
  110. package/src/DateTime.ts +1686 -0
  111. package/src/DefaultServices.ts +34 -0
  112. package/src/Deferred.ts +301 -0
  113. package/src/Differ.ts +450 -0
  114. package/src/Duration.ts +1000 -0
  115. package/src/Effect.ts +14817 -0
  116. package/src/Effectable.ts +107 -0
  117. package/src/Either.ts +1040 -0
  118. package/src/Encoding.ts +195 -0
  119. package/src/Equal.ts +98 -0
  120. package/src/Equivalence.ts +235 -0
  121. package/src/ExecutionPlan.ts +308 -0
  122. package/src/ExecutionStrategy.ts +119 -0
  123. package/src/Exit.ts +467 -0
  124. package/src/FastCheck.ts +9 -0
  125. package/src/Fiber.ts +744 -0
  126. package/src/FiberHandle.ts +540 -0
  127. package/src/FiberId.ts +195 -0
  128. package/src/FiberMap.ts +656 -0
  129. package/src/FiberRef.ts +444 -0
  130. package/src/FiberRefs.ts +204 -0
  131. package/src/FiberRefsPatch.ts +105 -0
  132. package/src/FiberSet.ts +491 -0
  133. package/src/FiberStatus.ts +108 -0
  134. package/src/Function.ts +1222 -0
  135. package/src/GlobalValue.ts +53 -0
  136. package/src/Graph.ts +3732 -0
  137. package/src/GroupBy.ts +103 -0
  138. package/src/HKT.ts +45 -0
  139. package/src/Hash.ts +195 -0
  140. package/src/HashMap.ts +519 -0
  141. package/src/HashRing.ts +317 -0
  142. package/src/HashSet.ts +2346 -0
  143. package/src/Inspectable.ts +287 -0
  144. package/src/Iterable.ts +1119 -0
  145. package/src/JSONSchema.ts +1044 -0
  146. package/src/KeyedPool.ts +167 -0
  147. package/src/Layer.ts +1228 -0
  148. package/src/LayerMap.ts +436 -0
  149. package/src/List.ts +977 -0
  150. package/src/LogLevel.ts +285 -0
  151. package/src/LogSpan.ts +25 -0
  152. package/src/Logger.ts +702 -0
  153. package/src/Mailbox.ts +268 -0
  154. package/src/ManagedRuntime.ts +180 -0
  155. package/src/Match.ts +1477 -0
  156. package/src/MergeDecision.ts +95 -0
  157. package/src/MergeState.ts +172 -0
  158. package/src/MergeStrategy.ts +107 -0
  159. package/src/Metric.ts +780 -0
  160. package/src/MetricBoundaries.ts +69 -0
  161. package/src/MetricHook.ts +151 -0
  162. package/src/MetricKey.ts +224 -0
  163. package/src/MetricKeyType.ts +262 -0
  164. package/src/MetricLabel.ts +47 -0
  165. package/src/MetricPair.ts +71 -0
  166. package/src/MetricPolling.ts +148 -0
  167. package/src/MetricRegistry.ts +48 -0
  168. package/src/MetricState.ts +257 -0
  169. package/src/Micro.ts +4405 -0
  170. package/src/ModuleVersion.ts +18 -0
  171. package/src/MutableHashMap.ts +411 -0
  172. package/src/MutableHashSet.ts +706 -0
  173. package/src/MutableList.ts +297 -0
  174. package/src/MutableQueue.ts +227 -0
  175. package/src/MutableRef.ts +202 -0
  176. package/src/NonEmptyIterable.ts +32 -0
  177. package/src/Number.ts +1071 -0
  178. package/src/Option.ts +2170 -0
  179. package/src/Order.ts +373 -0
  180. package/src/Ordering.ts +111 -0
  181. package/src/ParseResult.ts +2031 -0
  182. package/src/PartitionedSemaphore.ts +200 -0
  183. package/src/Pipeable.ts +566 -0
  184. package/src/Pool.ts +204 -0
  185. package/src/Predicate.ts +1405 -0
  186. package/src/Pretty.ts +205 -0
  187. package/src/PrimaryKey.ts +23 -0
  188. package/src/PubSub.ts +182 -0
  189. package/src/Queue.ts +644 -0
  190. package/src/Random.ts +204 -0
  191. package/src/RateLimiter.ts +138 -0
  192. package/src/RcMap.ts +141 -0
  193. package/src/RcRef.ts +122 -0
  194. package/src/Readable.ts +93 -0
  195. package/src/Record.ts +1274 -0
  196. package/src/RedBlackTree.ts +421 -0
  197. package/src/Redacted.ts +144 -0
  198. package/src/Ref.ts +180 -0
  199. package/src/RegExp.ts +38 -0
  200. package/src/Reloadable.ts +127 -0
  201. package/src/Request.ts +347 -0
  202. package/src/RequestBlock.ts +118 -0
  203. package/src/RequestResolver.ts +366 -0
  204. package/src/Resource.ts +119 -0
  205. package/src/Runtime.ts +383 -0
  206. package/src/RuntimeFlags.ts +336 -0
  207. package/src/RuntimeFlagsPatch.ts +183 -0
  208. package/src/STM.ts +2045 -0
  209. package/src/Schedule.ts +2219 -0
  210. package/src/ScheduleDecision.ts +62 -0
  211. package/src/ScheduleInterval.ts +151 -0
  212. package/src/ScheduleIntervals.ts +122 -0
  213. package/src/Scheduler.ts +353 -0
  214. package/src/Schema.ts +10914 -0
  215. package/src/SchemaAST.ts +3043 -0
  216. package/src/Scope.ts +204 -0
  217. package/src/ScopedCache.ts +151 -0
  218. package/src/ScopedRef.ts +117 -0
  219. package/src/Secret.ts +88 -0
  220. package/src/SingleProducerAsyncInput.ts +67 -0
  221. package/src/Sink.ts +1461 -0
  222. package/src/SortedMap.ts +287 -0
  223. package/src/SortedSet.ts +390 -0
  224. package/src/SourceLocation.ts +108 -0
  225. package/src/Stream.ts +6468 -0
  226. package/src/StreamEmit.ts +136 -0
  227. package/src/StreamHaltStrategy.ts +123 -0
  228. package/src/Streamable.ts +45 -0
  229. package/src/String.ts +778 -0
  230. package/src/Struct.ts +243 -0
  231. package/src/Subscribable.ts +100 -0
  232. package/src/SubscriptionRef.ts +298 -0
  233. package/src/Supervisor.ts +240 -0
  234. package/src/Symbol.ts +29 -0
  235. package/src/SynchronizedRef.ts +270 -0
  236. package/src/TArray.ts +495 -0
  237. package/src/TDeferred.ts +100 -0
  238. package/src/TMap.ts +515 -0
  239. package/src/TPriorityQueue.ts +223 -0
  240. package/src/TPubSub.ts +200 -0
  241. package/src/TQueue.ts +432 -0
  242. package/src/TRandom.ts +129 -0
  243. package/src/TReentrantLock.ts +224 -0
  244. package/src/TRef.ts +178 -0
  245. package/src/TSemaphore.ts +129 -0
  246. package/src/TSet.ts +365 -0
  247. package/src/TSubscriptionRef.ts +192 -0
  248. package/src/Take.ts +258 -0
  249. package/src/TestAnnotation.ts +158 -0
  250. package/src/TestAnnotationMap.ts +119 -0
  251. package/src/TestAnnotations.ts +117 -0
  252. package/src/TestClock.ts +556 -0
  253. package/src/TestConfig.ts +47 -0
  254. package/src/TestContext.ts +36 -0
  255. package/src/TestLive.ts +53 -0
  256. package/src/TestServices.ts +390 -0
  257. package/src/TestSized.ts +55 -0
  258. package/src/Tracer.ts +182 -0
  259. package/src/Trie.ts +840 -0
  260. package/src/Tuple.ts +305 -0
  261. package/src/Types.ts +353 -0
  262. package/src/Unify.ts +113 -0
  263. package/src/UpstreamPullRequest.ts +117 -0
  264. package/src/UpstreamPullStrategy.ts +121 -0
  265. package/src/Utils.ts +809 -0
  266. package/src/index.ts +1568 -0
  267. package/src/internal/array.ts +8 -0
  268. package/src/internal/blockedRequests.ts +520 -0
  269. package/src/internal/cache.ts +733 -0
  270. package/src/internal/cause.ts +1050 -0
  271. package/src/internal/channel/channelExecutor.ts +1200 -0
  272. package/src/internal/channel/channelState.ts +134 -0
  273. package/src/internal/channel/childExecutorDecision.ts +96 -0
  274. package/src/internal/channel/continuation.ts +200 -0
  275. package/src/internal/channel/mergeDecision.ts +113 -0
  276. package/src/internal/channel/mergeState.ts +120 -0
  277. package/src/internal/channel/mergeStrategy.ts +72 -0
  278. package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
  279. package/src/internal/channel/subexecutor.ts +229 -0
  280. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  281. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  282. package/src/internal/channel.ts +2603 -0
  283. package/src/internal/clock.ts +95 -0
  284. package/src/internal/completedRequestMap.ts +9 -0
  285. package/src/internal/concurrency.ts +54 -0
  286. package/src/internal/config.ts +716 -0
  287. package/src/internal/configError.ts +304 -0
  288. package/src/internal/configProvider/pathPatch.ts +97 -0
  289. package/src/internal/configProvider.ts +799 -0
  290. package/src/internal/console.ts +153 -0
  291. package/src/internal/context.ts +337 -0
  292. package/src/internal/core-effect.ts +2293 -0
  293. package/src/internal/core-stream.ts +998 -0
  294. package/src/internal/core.ts +3189 -0
  295. package/src/internal/data.ts +36 -0
  296. package/src/internal/dataSource.ts +327 -0
  297. package/src/internal/dateTime.ts +1277 -0
  298. package/src/internal/defaultServices/console.ts +100 -0
  299. package/src/internal/defaultServices.ts +163 -0
  300. package/src/internal/deferred.ts +46 -0
  301. package/src/internal/differ/chunkPatch.ts +211 -0
  302. package/src/internal/differ/contextPatch.ts +232 -0
  303. package/src/internal/differ/hashMapPatch.ts +220 -0
  304. package/src/internal/differ/hashSetPatch.ts +176 -0
  305. package/src/internal/differ/orPatch.ts +311 -0
  306. package/src/internal/differ/readonlyArrayPatch.ts +210 -0
  307. package/src/internal/differ.ts +200 -0
  308. package/src/internal/doNotation.ts +80 -0
  309. package/src/internal/effect/circular.ts +895 -0
  310. package/src/internal/effectable.ts +131 -0
  311. package/src/internal/either.ts +110 -0
  312. package/src/internal/encoding/base64.ts +286 -0
  313. package/src/internal/encoding/base64Url.ts +29 -0
  314. package/src/internal/encoding/common.ts +51 -0
  315. package/src/internal/encoding/hex.ts +315 -0
  316. package/src/internal/errors.ts +7 -0
  317. package/src/internal/executionPlan.ts +114 -0
  318. package/src/internal/executionStrategy.ts +74 -0
  319. package/src/internal/fiber.ts +388 -0
  320. package/src/internal/fiberId.ts +267 -0
  321. package/src/internal/fiberMessage.ts +82 -0
  322. package/src/internal/fiberRefs/patch.ts +144 -0
  323. package/src/internal/fiberRefs.ts +297 -0
  324. package/src/internal/fiberRuntime.ts +3842 -0
  325. package/src/internal/fiberScope.ts +71 -0
  326. package/src/internal/fiberStatus.ts +119 -0
  327. package/src/internal/groupBy.ts +530 -0
  328. package/src/internal/hashMap/array.ts +49 -0
  329. package/src/internal/hashMap/bitwise.ts +32 -0
  330. package/src/internal/hashMap/config.ts +14 -0
  331. package/src/internal/hashMap/keySet.ts +8 -0
  332. package/src/internal/hashMap/node.ts +391 -0
  333. package/src/internal/hashMap.ts +586 -0
  334. package/src/internal/hashSet.ts +323 -0
  335. package/src/internal/keyedPool.ts +244 -0
  336. package/src/internal/layer/circular.ts +214 -0
  337. package/src/internal/layer.ts +1483 -0
  338. package/src/internal/logSpan.ts +20 -0
  339. package/src/internal/logger-circular.ts +24 -0
  340. package/src/internal/logger.ts +522 -0
  341. package/src/internal/mailbox.ts +561 -0
  342. package/src/internal/managedRuntime/circular.ts +6 -0
  343. package/src/internal/managedRuntime.ts +134 -0
  344. package/src/internal/matcher.ts +652 -0
  345. package/src/internal/metric/boundaries.ts +75 -0
  346. package/src/internal/metric/hook.ts +483 -0
  347. package/src/internal/metric/key.ts +167 -0
  348. package/src/internal/metric/keyType.ts +238 -0
  349. package/src/internal/metric/label.ts +41 -0
  350. package/src/internal/metric/pair.ts +48 -0
  351. package/src/internal/metric/polling.ts +149 -0
  352. package/src/internal/metric/registry.ts +187 -0
  353. package/src/internal/metric/state.ts +290 -0
  354. package/src/internal/metric.ts +577 -0
  355. package/src/internal/opCodes/cause.ts +35 -0
  356. package/src/internal/opCodes/channel.ts +83 -0
  357. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  358. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  359. package/src/internal/opCodes/channelMergeState.ts +17 -0
  360. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  361. package/src/internal/opCodes/channelState.ts +23 -0
  362. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  363. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  364. package/src/internal/opCodes/config.ts +65 -0
  365. package/src/internal/opCodes/configError.ts +35 -0
  366. package/src/internal/opCodes/continuation.ts +11 -0
  367. package/src/internal/opCodes/deferred.ts +11 -0
  368. package/src/internal/opCodes/effect.ts +89 -0
  369. package/src/internal/opCodes/layer.ts +59 -0
  370. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  371. package/src/internal/option.ts +80 -0
  372. package/src/internal/pool.ts +432 -0
  373. package/src/internal/pubsub.ts +1762 -0
  374. package/src/internal/query.ts +204 -0
  375. package/src/internal/queue.ts +766 -0
  376. package/src/internal/random.ts +161 -0
  377. package/src/internal/rateLimiter.ts +93 -0
  378. package/src/internal/rcMap.ts +285 -0
  379. package/src/internal/rcRef.ts +192 -0
  380. package/src/internal/redBlackTree/iterator.ts +200 -0
  381. package/src/internal/redBlackTree/node.ts +68 -0
  382. package/src/internal/redBlackTree.ts +1245 -0
  383. package/src/internal/redacted.ts +73 -0
  384. package/src/internal/ref.ts +171 -0
  385. package/src/internal/reloadable.ts +140 -0
  386. package/src/internal/request.ts +177 -0
  387. package/src/internal/resource.ts +76 -0
  388. package/src/internal/ringBuffer.ts +68 -0
  389. package/src/internal/runtime.ts +558 -0
  390. package/src/internal/runtimeFlags.ts +178 -0
  391. package/src/internal/runtimeFlagsPatch.ts +103 -0
  392. package/src/internal/schedule/decision.ts +47 -0
  393. package/src/internal/schedule/interval.ts +101 -0
  394. package/src/internal/schedule/intervals.ts +180 -0
  395. package/src/internal/schedule.ts +2199 -0
  396. package/src/internal/schema/errors.ts +191 -0
  397. package/src/internal/schema/schemaId.ts +106 -0
  398. package/src/internal/schema/util.ts +50 -0
  399. package/src/internal/scopedCache.ts +644 -0
  400. package/src/internal/scopedRef.ts +118 -0
  401. package/src/internal/secret.ts +89 -0
  402. package/src/internal/singleShotGen.ts +35 -0
  403. package/src/internal/sink.ts +2120 -0
  404. package/src/internal/stack.ts +10 -0
  405. package/src/internal/stm/core.ts +817 -0
  406. package/src/internal/stm/entry.ts +59 -0
  407. package/src/internal/stm/journal.ts +123 -0
  408. package/src/internal/stm/opCodes/stm.ts +71 -0
  409. package/src/internal/stm/opCodes/stmState.ts +17 -0
  410. package/src/internal/stm/opCodes/strategy.ts +17 -0
  411. package/src/internal/stm/opCodes/tExit.ts +29 -0
  412. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  413. package/src/internal/stm/stm.ts +1453 -0
  414. package/src/internal/stm/stmState.ts +136 -0
  415. package/src/internal/stm/tArray.ts +550 -0
  416. package/src/internal/stm/tDeferred.ts +81 -0
  417. package/src/internal/stm/tExit.ts +190 -0
  418. package/src/internal/stm/tMap.ts +824 -0
  419. package/src/internal/stm/tPriorityQueue.ts +267 -0
  420. package/src/internal/stm/tPubSub.ts +551 -0
  421. package/src/internal/stm/tQueue.ts +393 -0
  422. package/src/internal/stm/tRandom.ts +140 -0
  423. package/src/internal/stm/tReentrantLock.ts +352 -0
  424. package/src/internal/stm/tRef.ts +195 -0
  425. package/src/internal/stm/tSemaphore.ts +113 -0
  426. package/src/internal/stm/tSet.ts +259 -0
  427. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  428. package/src/internal/stm/tryCommit.ts +34 -0
  429. package/src/internal/stm/txnId.ts +14 -0
  430. package/src/internal/stm/versioned.ts +4 -0
  431. package/src/internal/stream/debounceState.ts +57 -0
  432. package/src/internal/stream/emit.ts +123 -0
  433. package/src/internal/stream/haltStrategy.ts +94 -0
  434. package/src/internal/stream/handoff.ts +187 -0
  435. package/src/internal/stream/handoffSignal.ts +59 -0
  436. package/src/internal/stream/pull.ts +34 -0
  437. package/src/internal/stream/sinkEndReason.ts +30 -0
  438. package/src/internal/stream/zipAllState.ts +88 -0
  439. package/src/internal/stream/zipChunksState.ts +56 -0
  440. package/src/internal/stream.ts +8801 -0
  441. package/src/internal/string-utils.ts +107 -0
  442. package/src/internal/subscriptionRef.ts +138 -0
  443. package/src/internal/supervisor/patch.ts +190 -0
  444. package/src/internal/supervisor.ts +303 -0
  445. package/src/internal/synchronizedRef.ts +114 -0
  446. package/src/internal/take.ts +199 -0
  447. package/src/internal/testing/sleep.ts +27 -0
  448. package/src/internal/testing/suspendedWarningData.ts +85 -0
  449. package/src/internal/testing/warningData.ts +94 -0
  450. package/src/internal/tracer.ts +150 -0
  451. package/src/internal/trie.ts +722 -0
  452. package/src/internal/version.ts +7 -0
package/src/Scope.ts ADDED
@@ -0,0 +1,204 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ import type * as Context from "./Context.js"
6
+ import type * as Effect from "./Effect.js"
7
+ import type * as ExecutionStrategy from "./ExecutionStrategy.js"
8
+ import type * as Exit from "./Exit.js"
9
+ import * as core from "./internal/core.js"
10
+ import * as fiberRuntime from "./internal/fiberRuntime.js"
11
+ import type { Pipeable } from "./Pipeable.js"
12
+
13
+ /**
14
+ * A unique identifier for the `Scope` type.
15
+ *
16
+ * @since 2.0.0
17
+ * @category symbols
18
+ */
19
+ export const ScopeTypeId: unique symbol = core.ScopeTypeId
20
+
21
+ /**
22
+ * The type of the unique identifier for `Scope`.
23
+ *
24
+ * @since 2.0.0
25
+ * @category symbols
26
+ */
27
+ export type ScopeTypeId = typeof ScopeTypeId
28
+
29
+ /**
30
+ * A unique identifier for the `CloseableScope` type.
31
+ *
32
+ * @since 2.0.0
33
+ * @category symbols
34
+ */
35
+ export const CloseableScopeTypeId: unique symbol = core.CloseableScopeTypeId
36
+
37
+ /**
38
+ * The type of the unique identifier for `CloseableScope`.
39
+ *
40
+ * @since 2.0.0
41
+ * @category symbols
42
+ */
43
+ export type CloseableScopeTypeId = typeof CloseableScopeTypeId
44
+
45
+ /**
46
+ * Represents a scope that manages finalizers and can fork child scopes.
47
+ *
48
+ * @since 2.0.0
49
+ * @category models
50
+ */
51
+ export interface Scope extends Pipeable {
52
+ readonly [ScopeTypeId]: ScopeTypeId
53
+ /**
54
+ * The execution strategy for running finalizers in this scope.
55
+ */
56
+ readonly strategy: ExecutionStrategy.ExecutionStrategy
57
+ /**
58
+ * Forks a new child scope with the specified execution strategy. The child scope
59
+ * will automatically be closed when this scope is closed.
60
+ *
61
+ * @internal
62
+ */
63
+ fork(strategy: ExecutionStrategy.ExecutionStrategy): Effect.Effect<Scope.Closeable>
64
+ /**
65
+ * Adds a finalizer to this scope. The finalizer will be run when the scope is closed.
66
+ *
67
+ * @internal
68
+ */
69
+ addFinalizer(finalizer: Scope.Finalizer): Effect.Effect<void>
70
+ }
71
+
72
+ /**
73
+ * A scope that can be explicitly closed with a specified exit value.
74
+ *
75
+ * @since 2.0.0
76
+ * @category models
77
+ */
78
+ export interface CloseableScope extends Scope, Pipeable {
79
+ readonly [CloseableScopeTypeId]: CloseableScopeTypeId
80
+
81
+ /**
82
+ * Closes this scope with the given exit value, running all finalizers.
83
+ *
84
+ * @internal
85
+ */
86
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<void>
87
+ }
88
+
89
+ /**
90
+ * A tag representing the current `Scope` in the environment.
91
+ *
92
+ * @since 2.0.0
93
+ * @category context
94
+ */
95
+ export const Scope: Context.Tag<Scope, Scope> = fiberRuntime.scopeTag
96
+
97
+ /**
98
+ * @since 2.0.0
99
+ */
100
+ export declare namespace Scope {
101
+ /**
102
+ * A finalizer function that takes an `Exit` value and returns an `Effect`.
103
+ *
104
+ * @since 2.0.0
105
+ * @category model
106
+ */
107
+ export type Finalizer = (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>
108
+ /**
109
+ * A closeable scope that can be explicitly closed.
110
+ *
111
+ * @since 2.0.0
112
+ * @category model
113
+ */
114
+ export type Closeable = CloseableScope
115
+ }
116
+
117
+ /**
118
+ * Adds a finalizer to this scope. The finalizer is guaranteed to be run when
119
+ * the scope is closed. Use this when the finalizer does not need to know the
120
+ * `Exit` value that the scope is closed with.
121
+ *
122
+ * @see {@link addFinalizerExit}
123
+ *
124
+ * @since 2.0.0
125
+ * @category utils
126
+ */
127
+ export const addFinalizer: (
128
+ self: Scope,
129
+ finalizer: Effect.Effect<unknown>
130
+ ) => Effect.Effect<void> = core.scopeAddFinalizer
131
+
132
+ /**
133
+ * Adds a finalizer to this scope. The finalizer receives the `Exit` value
134
+ * when the scope is closed, allowing it to perform different actions based
135
+ * on the exit status.
136
+ *
137
+ * @see {@link addFinalizer}
138
+ *
139
+ * @since 2.0.0
140
+ * @category utils
141
+ */
142
+ export const addFinalizerExit: (self: Scope, finalizer: Scope.Finalizer) => Effect.Effect<void> =
143
+ core.scopeAddFinalizerExit
144
+
145
+ /**
146
+ * Closes this scope with the specified exit value, running all finalizers that
147
+ * have been added to the scope.
148
+ *
149
+ * @since 2.0.0
150
+ * @category destructors
151
+ */
152
+ export const close: (self: CloseableScope, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void> = core.scopeClose
153
+
154
+ /**
155
+ * Extends the scope of an `Effect` that requires a scope into this scope.
156
+ * It provides this scope to the effect but does not close the scope when the
157
+ * effect completes execution. This allows extending a scoped value into a
158
+ * larger scope.
159
+ *
160
+ * @since 2.0.0
161
+ * @category utils
162
+ */
163
+ export const extend: {
164
+ (scope: Scope): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Scope>>
165
+ <A, E, R>(effect: Effect.Effect<A, E, R>, scope: Scope): Effect.Effect<A, E, Exclude<R, Scope>>
166
+ } = fiberRuntime.scopeExtend
167
+
168
+ /**
169
+ * Forks a new child scope with the specified execution strategy. The child scope
170
+ * will automatically be closed when this scope is closed.
171
+ *
172
+ * @since 2.0.0
173
+ * @category utils
174
+ */
175
+ export const fork: (
176
+ self: Scope,
177
+ strategy: ExecutionStrategy.ExecutionStrategy
178
+ ) => Effect.Effect<CloseableScope> = core.scopeFork
179
+
180
+ /**
181
+ * Provides this closeable scope to an `Effect` that requires a scope,
182
+ * guaranteeing that the scope is closed with the result of that effect as
183
+ * soon as the effect completes execution, whether by success, failure, or
184
+ * interruption.
185
+ *
186
+ * @since 2.0.0
187
+ * @category destructors
188
+ */
189
+ export const use: {
190
+ (scope: CloseableScope): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Scope>>
191
+ <A, E, R>(effect: Effect.Effect<A, E, R>, scope: CloseableScope): Effect.Effect<A, E, Exclude<R, Scope>>
192
+ } = fiberRuntime.scopeUse
193
+
194
+ /**
195
+ * Creates a new closeable scope where finalizers will run according to the
196
+ * specified `ExecutionStrategy`. If no execution strategy is provided, `sequential`
197
+ * will be used by default.
198
+ *
199
+ * @since 2.0.0
200
+ * @category constructors
201
+ */
202
+ export const make: (
203
+ executionStrategy?: ExecutionStrategy.ExecutionStrategy
204
+ ) => Effect.Effect<CloseableScope> = fiberRuntime.scopeMake
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Cache from "./Cache.js"
5
+ import type * as Duration from "./Duration.js"
6
+ import type * as Effect from "./Effect.js"
7
+ import type * as Exit from "./Exit.js"
8
+ import * as internal from "./internal/scopedCache.js"
9
+ import type * as Option from "./Option.js"
10
+ import type { Pipeable } from "./Pipeable.js"
11
+ import type * as Scope from "./Scope.js"
12
+ import type * as Types from "./Types.js"
13
+
14
+ /**
15
+ * @since 2.0.0
16
+ * @category symbols
17
+ */
18
+ export const ScopedCacheTypeId: unique symbol = internal.ScopedCacheTypeId
19
+
20
+ /**
21
+ * @since 2.0.0
22
+ * @category symbols
23
+ */
24
+ export type ScopedCacheTypeId = typeof ScopedCacheTypeId
25
+
26
+ /**
27
+ * @since 2.0.0
28
+ * @category models
29
+ */
30
+ export interface ScopedCache<in Key, out Value, out Error = never>
31
+ extends ScopedCache.Variance<Key, Value, Error>, Pipeable
32
+ {
33
+ /**
34
+ * Retrieves the value associated with the specified key if it exists.
35
+ * Otherwise returns `Option.none`.
36
+ */
37
+ getOption(key: Key): Effect.Effect<Option.Option<Value>, Error, Scope.Scope>
38
+
39
+ /**
40
+ * Retrieves the value associated with the specified key if it exists and the
41
+ * lookup function has completed. Otherwise returns `Option.none`.
42
+ */
43
+ getOptionComplete(key: Key): Effect.Effect<Option.Option<Value>, never, Scope.Scope>
44
+
45
+ /**
46
+ * Returns statistics for this cache.
47
+ */
48
+ readonly cacheStats: Effect.Effect<Cache.CacheStats>
49
+
50
+ /**
51
+ * Return whether a resource associated with the specified key exists in the
52
+ * cache. Sometime `contains` can return true if the resource is currently
53
+ * being created but not yet totally created.
54
+ */
55
+ contains(key: Key): Effect.Effect<boolean>
56
+
57
+ /**
58
+ * Return statistics for the specified entry.
59
+ */
60
+ entryStats(key: Key): Effect.Effect<Option.Option<Cache.EntryStats>>
61
+
62
+ /**
63
+ * Gets the value from the cache if it exists or otherwise computes it, the
64
+ * release action signals to the cache that the value is no longer being used
65
+ * and can potentially be finalized subject to the policies of the cache.
66
+ */
67
+ get(key: Key): Effect.Effect<Value, Error, Scope.Scope>
68
+
69
+ /**
70
+ * Invalidates the resource associated with the specified key.
71
+ */
72
+ invalidate(key: Key): Effect.Effect<void>
73
+
74
+ /**
75
+ * Invalidates all values in the cache.
76
+ */
77
+ readonly invalidateAll: Effect.Effect<void>
78
+
79
+ /**
80
+ * Force the reuse of the lookup function to compute the returned scoped
81
+ * effect associated with the specified key immediately. Once the new resource
82
+ * is recomputed, the old resource associated to the key is cleaned (once all
83
+ * fiber using it are done with it). During the time the new resource is
84
+ * computed, concurrent call the .get will use the old resource if this one is
85
+ * not expired.
86
+ */
87
+ refresh(key: Key): Effect.Effect<void, Error>
88
+
89
+ /**
90
+ * Returns the approximate number of values in the cache.
91
+ */
92
+ readonly size: Effect.Effect<number>
93
+ }
94
+
95
+ /**
96
+ * @since 2.0.0
97
+ */
98
+ export declare namespace ScopedCache {
99
+ /**
100
+ * @since 2.0.0
101
+ * @category models
102
+ */
103
+ export interface Variance<in Key, out Value, out Error> {
104
+ readonly [ScopedCacheTypeId]: {
105
+ _Key: Types.Contravariant<Key>
106
+ _Error: Types.Covariant<Error>
107
+ _Value: Types.Covariant<Value>
108
+ }
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Constructs a new cache with the specified capacity, time to live, and
114
+ * lookup function.
115
+ *
116
+ * @since 2.0.0
117
+ * @category constructors
118
+ */
119
+ export const make: <Key, Value, Error = never, Environment = never>(
120
+ options: {
121
+ readonly lookup: Lookup<Key, Value, Error, Environment>
122
+ readonly capacity: number
123
+ readonly timeToLive: Duration.DurationInput
124
+ }
125
+ ) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.make
126
+
127
+ /**
128
+ * Constructs a new cache with the specified capacity, time to live, and
129
+ * lookup function, where the time to live can depend on the `Exit` value
130
+ * returned by the lookup function.
131
+ *
132
+ * @since 2.0.0
133
+ * @category constructors
134
+ */
135
+ export const makeWith: <Key, Value, Error = never, Environment = never>(
136
+ options: {
137
+ readonly capacity: number
138
+ readonly lookup: Lookup<Key, Value, Error, Environment>
139
+ readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
140
+ }
141
+ ) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.makeWith
142
+
143
+ /**
144
+ * Similar to `Cache.Lookup`, but executes the lookup function within a `Scope`.
145
+ *
146
+ * @since 2.0.0
147
+ * @category models
148
+ */
149
+ export type Lookup<Key, Value, Error = never, Environment = never> = (
150
+ key: Key
151
+ ) => Effect.Effect<Value, Error, Environment | Scope.Scope>
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Effect from "./Effect.js"
5
+ import type { LazyArg } from "./Function.js"
6
+ import * as internal from "./internal/scopedRef.js"
7
+ import type { Pipeable } from "./Pipeable.js"
8
+ import type * as Scope from "./Scope.js"
9
+ import type * as Synchronized from "./SynchronizedRef.js"
10
+ import type * as Types from "./Types.js"
11
+ import type * as Unify from "./Unify.js"
12
+
13
+ /**
14
+ * @since 2.0.0
15
+ * @category symbols
16
+ */
17
+ export const ScopedRefTypeId: unique symbol = internal.ScopedRefTypeId
18
+
19
+ /**
20
+ * @since 2.0.0
21
+ * @category symbols
22
+ */
23
+ export type ScopedRefTypeId = typeof ScopedRefTypeId
24
+
25
+ /**
26
+ * A `ScopedRef` is a reference whose value is associated with resources,
27
+ * which must be released properly. You can both get the current value of any
28
+ * `ScopedRef`, as well as set it to a new value (which may require new
29
+ * resources). The reference itself takes care of properly releasing resources
30
+ * for the old value whenever a new value is obtained.
31
+ *
32
+ * @since 2.0.0
33
+ * @category models
34
+ */
35
+ export interface ScopedRef<in out A> extends Effect.Effect<A>, ScopedRef.Variance<A>, Pipeable {
36
+ /** @internal */
37
+ readonly ref: Synchronized.SynchronizedRef<readonly [Scope.Scope.Closeable, A]>
38
+
39
+ readonly [Unify.typeSymbol]?: unknown
40
+ readonly [Unify.unifySymbol]?: ScopedRefUnify<this>
41
+ readonly [Unify.ignoreSymbol]?: ScopedRefUnifyIgnore
42
+ }
43
+
44
+ /**
45
+ * @category models
46
+ * @since 3.9.0
47
+ */
48
+ export interface ScopedRefUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
49
+ ScopedRef?: () => Extract<A[Unify.typeSymbol], ScopedRef<any>>
50
+ }
51
+
52
+ /**
53
+ * @category models
54
+ * @since 3.9.0
55
+ */
56
+ export interface ScopedRefUnifyIgnore extends Effect.EffectUnifyIgnore {
57
+ Effect?: true
58
+ }
59
+
60
+ /**
61
+ * @since 2.0.0
62
+ */
63
+ export declare namespace ScopedRef {
64
+ /**
65
+ * @since 2.0.0
66
+ * @category models
67
+ */
68
+ export interface Variance<in out A> {
69
+ readonly [ScopedRefTypeId]: {
70
+ readonly _A: Types.Invariant<A>
71
+ }
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Creates a new `ScopedRef` from an effect that resourcefully produces a
77
+ * value.
78
+ *
79
+ * @since 2.0.0
80
+ * @category constructors
81
+ */
82
+ export const fromAcquire: <A, E, R>(
83
+ acquire: Effect.Effect<A, E, R>
84
+ ) => Effect.Effect<ScopedRef<A>, E, Scope.Scope | R> = internal.fromAcquire
85
+
86
+ /**
87
+ * Retrieves the current value of the scoped reference.
88
+ *
89
+ * @since 2.0.0
90
+ * @category getters
91
+ */
92
+ export const get: <A>(self: ScopedRef<A>) => Effect.Effect<A> = internal.get
93
+
94
+ /**
95
+ * Creates a new `ScopedRef` from the specified value. This method should
96
+ * not be used for values whose creation require the acquisition of resources.
97
+ *
98
+ * @since 2.0.0
99
+ * @category constructors
100
+ */
101
+ export const make: <A>(evaluate: LazyArg<A>) => Effect.Effect<ScopedRef<A>, never, Scope.Scope> = internal.make
102
+
103
+ /**
104
+ * Sets the value of this reference to the specified resourcefully-created
105
+ * value. Any resources associated with the old value will be released.
106
+ *
107
+ * This method will not return until either the reference is successfully
108
+ * changed to the new value, with old resources released, or until the attempt
109
+ * to acquire a new value fails.
110
+ *
111
+ * @since 2.0.0
112
+ * @category getters
113
+ */
114
+ export const set: {
115
+ <A, R, E>(acquire: Effect.Effect<A, E, R>): (self: ScopedRef<A>) => Effect.Effect<void, E, Exclude<R, Scope.Scope>>
116
+ <A, R, E>(self: ScopedRef<A>, acquire: Effect.Effect<A, E, R>): Effect.Effect<void, E, Exclude<R, Scope.Scope>>
117
+ } = internal.set
package/src/Secret.ts ADDED
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @since 2.0.0
3
+ * @deprecated
4
+ */
5
+ import type * as Equal from "./Equal.js"
6
+ import * as InternalSecret from "./internal/secret.js"
7
+ import type * as Redacted from "./Redacted.js"
8
+
9
+ /**
10
+ * @since 2.0.0
11
+ * @category symbols
12
+ * @deprecated
13
+ */
14
+ export const SecretTypeId: unique symbol = InternalSecret.SecretTypeId
15
+
16
+ /**
17
+ * @since 2.0.0
18
+ * @category symbols
19
+ * @deprecated
20
+ */
21
+ export type SecretTypeId = typeof SecretTypeId
22
+
23
+ /**
24
+ * @since 2.0.0
25
+ * @category models
26
+ * @deprecated
27
+ */
28
+ export interface Secret extends Redacted.Redacted, Secret.Proto, Equal.Equal {
29
+ /** @internal */
30
+ readonly raw: Array<number>
31
+ }
32
+
33
+ /**
34
+ * @since 2.0.0
35
+ * @deprecated
36
+ */
37
+ export declare namespace Secret {
38
+ /**
39
+ * @since 2.0.0
40
+ * @category models
41
+ * @deprecated
42
+ */
43
+ export interface Proto {
44
+ readonly [SecretTypeId]: SecretTypeId
45
+ }
46
+ }
47
+
48
+ /**
49
+ * @since 2.0.0
50
+ * @category refinements
51
+ * @deprecated
52
+ */
53
+ export const isSecret: (u: unknown) => u is Secret = InternalSecret.isSecret
54
+
55
+ /**
56
+ * @since 2.0.0
57
+ * @category constructors
58
+ * @deprecated
59
+ */
60
+ export const make: (bytes: Array<number>) => Secret = InternalSecret.make
61
+
62
+ /**
63
+ * @since 2.0.0
64
+ * @category constructors
65
+ * @deprecated
66
+ */
67
+ export const fromIterable: (iterable: Iterable<string>) => Secret = InternalSecret.fromIterable
68
+
69
+ /**
70
+ * @since 2.0.0
71
+ * @category constructors
72
+ * @deprecated
73
+ */
74
+ export const fromString: (text: string) => Secret = InternalSecret.fromString
75
+
76
+ /**
77
+ * @since 2.0.0
78
+ * @category getters
79
+ * @deprecated
80
+ */
81
+ export const value: (self: Secret) => string = InternalSecret.value
82
+
83
+ /**
84
+ * @since 2.0.0
85
+ * @category unsafe
86
+ * @deprecated
87
+ */
88
+ export const unsafeWipe: (self: Secret) => void = InternalSecret.unsafeWipe
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Cause from "./Cause.js"
5
+ import type * as Effect from "./Effect.js"
6
+ import type * as Either from "./Either.js"
7
+ import type * as Exit from "./Exit.js"
8
+ import * as internal from "./internal/channel/singleProducerAsyncInput.js"
9
+
10
+ /**
11
+ * An MVar-like abstraction for sending data to channels asynchronously which is
12
+ * designed for one producer and multiple consumers.
13
+ *
14
+ * Features the following semantics:
15
+ * - Buffer of size 1.
16
+ * - When emitting, the producer waits for a consumer to pick up the value to
17
+ * prevent "reading ahead" too much.
18
+ * - Once an emitted element is read by a consumer, it is cleared from the
19
+ * buffer, so that at most one consumer sees every emitted element.
20
+ * - When sending a done or error signal, the producer does not wait for a
21
+ * consumer to pick up the signal. The signal stays in the buffer after
22
+ * being read by a consumer, so it can be propagated to multiple consumers.
23
+ * - Trying to publish another emit/error/done after an error/done have
24
+ * already been published results in an interruption.
25
+ *
26
+ * @since 2.0.0
27
+ * @category models
28
+ */
29
+ export interface SingleProducerAsyncInput<in out Err, in out Elem, in out Done>
30
+ extends AsyncInputProducer<Err, Elem, Done>, AsyncInputConsumer<Err, Elem, Done>
31
+ {
32
+ readonly close: Effect.Effect<unknown>
33
+ readonly take: Effect.Effect<Exit.Exit<Elem, Either.Either<Done, Err>>>
34
+ }
35
+
36
+ /**
37
+ * Producer-side view of `SingleProducerAsyncInput` for variance purposes.
38
+ *
39
+ * @since 2.0.0
40
+ * @category models
41
+ */
42
+ export interface AsyncInputProducer<in Err, in Elem, in Done> {
43
+ awaitRead(): Effect.Effect<unknown>
44
+ done(value: Done): Effect.Effect<unknown>
45
+ emit(element: Elem): Effect.Effect<unknown>
46
+ error(cause: Cause.Cause<Err>): Effect.Effect<unknown>
47
+ }
48
+
49
+ /**
50
+ * Consumer-side view of `SingleProducerAsyncInput` for variance purposes.
51
+ *
52
+ * @since 2.0.0
53
+ * @category models
54
+ */
55
+ export interface AsyncInputConsumer<out Err, out Elem, out Done> {
56
+ takeWith<A>(
57
+ onError: (cause: Cause.Cause<Err>) => A,
58
+ onElement: (element: Elem) => A,
59
+ onDone: (value: Done) => A
60
+ ): Effect.Effect<A>
61
+ }
62
+
63
+ /**
64
+ * @since 2.0.0
65
+ * @category constructors
66
+ */
67
+ export const make: <Err, Elem, Done>() => Effect.Effect<SingleProducerAsyncInput<Err, Elem, Done>> = internal.make