@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/Queue.ts ADDED
@@ -0,0 +1,644 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Chunk from "./Chunk.js"
5
+ import type * as Deferred from "./Deferred.js"
6
+ import type * as Effect from "./Effect.js"
7
+ import * as internal from "./internal/queue.js"
8
+ import type * as MutableQueue from "./MutableQueue.js"
9
+ import type * as MutableRef from "./MutableRef.js"
10
+ import type * as Option from "./Option.js"
11
+ import type { Pipeable } from "./Pipeable.js"
12
+ import type * as Types from "./Types.js"
13
+ import type * as Unify from "./Unify.js"
14
+
15
+ /**
16
+ * @since 2.0.0
17
+ * @category symbols
18
+ */
19
+ export const EnqueueTypeId: unique symbol = internal.EnqueueTypeId
20
+
21
+ /**
22
+ * @since 2.0.0
23
+ * @category symbols
24
+ */
25
+ export type EnqueueTypeId = typeof EnqueueTypeId
26
+
27
+ /**
28
+ * @since 2.0.0
29
+ * @category symbols
30
+ */
31
+ export const DequeueTypeId: unique symbol = internal.DequeueTypeId
32
+
33
+ /**
34
+ * @since 2.0.0
35
+ * @category symbols
36
+ */
37
+ export type DequeueTypeId = typeof DequeueTypeId
38
+
39
+ /**
40
+ * @since 2.0.0
41
+ * @category symbols
42
+ */
43
+ export const QueueStrategyTypeId: unique symbol = internal.QueueStrategyTypeId
44
+
45
+ /**
46
+ * @since 2.0.0
47
+ * @category symbols
48
+ */
49
+ export type QueueStrategyTypeId = typeof QueueStrategyTypeId
50
+
51
+ /**
52
+ * @since 2.0.0
53
+ * @category symbols
54
+ */
55
+ export const BackingQueueTypeId: unique symbol = internal.BackingQueueTypeId
56
+
57
+ /**
58
+ * @since 2.0.0
59
+ * @category symbols
60
+ */
61
+ export type BackingQueueTypeId = typeof BackingQueueTypeId
62
+
63
+ /**
64
+ * @since 2.0.0
65
+ * @category models
66
+ */
67
+ export interface Queue<in out A> extends Enqueue<A>, Dequeue<A> {
68
+ /** @internal */
69
+ readonly queue: BackingQueue<A>
70
+ /** @internal */
71
+ readonly takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
72
+ /** @internal */
73
+ readonly shutdownHook: Deferred.Deferred<void>
74
+ /** @internal */
75
+ readonly shutdownFlag: MutableRef.MutableRef<boolean>
76
+ /** @internal */
77
+ readonly strategy: Strategy<A>
78
+
79
+ readonly [Unify.typeSymbol]?: unknown
80
+ readonly [Unify.unifySymbol]?: QueueUnify<this>
81
+ readonly [Unify.ignoreSymbol]?: QueueUnifyIgnore
82
+ }
83
+
84
+ /**
85
+ * @category models
86
+ * @since 3.8.0
87
+ */
88
+ export interface QueueUnify<A extends { [Unify.typeSymbol]?: any }> extends DequeueUnify<A> {
89
+ Queue?: () => Extract<A[Unify.typeSymbol], Queue<any>>
90
+ }
91
+
92
+ /**
93
+ * @category models
94
+ * @since 3.8.0
95
+ */
96
+ export interface QueueUnifyIgnore extends DequeueUnifyIgnore {
97
+ Dequeue?: true
98
+ }
99
+
100
+ /**
101
+ * @since 2.0.0
102
+ * @category models
103
+ */
104
+ export interface Enqueue<in A> extends Queue.EnqueueVariance<A>, BaseQueue, Pipeable {
105
+ /**
106
+ * Places one value in the queue.
107
+ */
108
+ offer(value: A): Effect.Effect<boolean>
109
+
110
+ /**
111
+ * Places one value in the queue when possible without needing the fiber runtime.
112
+ */
113
+ unsafeOffer(value: A): boolean
114
+
115
+ /**
116
+ * For Bounded Queue: uses the `BackPressure` Strategy, places the values in
117
+ * the queue and always returns true. If the queue has reached capacity, then
118
+ * the fiber performing the `offerAll` will be suspended until there is room
119
+ * in the queue.
120
+ *
121
+ * For Unbounded Queue: Places all values in the queue and returns true.
122
+ *
123
+ * For Sliding Queue: uses `Sliding` Strategy If there is room in the queue,
124
+ * it places the values otherwise it removes the old elements and enqueues the
125
+ * new ones. Always returns true.
126
+ *
127
+ * For Dropping Queue: uses `Dropping` Strategy, It places the values in the
128
+ * queue but if there is no room it will not enqueue them and return false.
129
+ */
130
+ offerAll(iterable: Iterable<A>): Effect.Effect<boolean>
131
+ }
132
+
133
+ /**
134
+ * @since 2.0.0
135
+ * @category models
136
+ */
137
+ export interface Dequeue<out A> extends Effect.Effect<A>, Queue.DequeueVariance<A>, BaseQueue {
138
+ /**
139
+ * Takes the oldest value in the queue. If the queue is empty, this will return
140
+ * a computation that resumes when an item has been added to the queue.
141
+ */
142
+ readonly take: Effect.Effect<A>
143
+
144
+ /**
145
+ * Takes all the values in the queue and returns the values. If the queue is
146
+ * empty returns an empty collection.
147
+ */
148
+ readonly takeAll: Effect.Effect<Chunk.Chunk<A>>
149
+
150
+ /**
151
+ * Takes up to max number of values from the queue.
152
+ */
153
+ takeUpTo(max: number): Effect.Effect<Chunk.Chunk<A>>
154
+
155
+ /**
156
+ * Takes a number of elements from the queue between the specified minimum and
157
+ * maximum. If there are fewer than the minimum number of elements available,
158
+ * suspends until at least the minimum number of elements have been collected.
159
+ */
160
+ takeBetween(min: number, max: number): Effect.Effect<Chunk.Chunk<A>>
161
+
162
+ readonly [Unify.typeSymbol]?: unknown
163
+ readonly [Unify.unifySymbol]?: DequeueUnify<this>
164
+ readonly [Unify.ignoreSymbol]?: DequeueUnifyIgnore
165
+ }
166
+
167
+ /**
168
+ * @category models
169
+ * @since 3.8.0
170
+ */
171
+ export interface DequeueUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
172
+ Dequeue?: () => A[Unify.typeSymbol] extends Dequeue<infer A0> | infer _ ? Dequeue<A0> : never
173
+ }
174
+
175
+ /**
176
+ * @category models
177
+ * @since 3.8.0
178
+ */
179
+ export interface DequeueUnifyIgnore extends Effect.EffectUnifyIgnore {
180
+ Effect?: true
181
+ }
182
+
183
+ /**
184
+ * The base interface that all `Queue`s must implement.
185
+ *
186
+ * @since 2.0.0
187
+ * @category models
188
+ */
189
+ export interface BaseQueue {
190
+ /**
191
+ * Returns the number of elements the queue can hold.
192
+ */
193
+ capacity(): number
194
+
195
+ /**
196
+ * Returns false if shutdown has been called.
197
+ */
198
+ isActive(): boolean
199
+
200
+ /**
201
+ * Retrieves the size of the queue, which is equal to the number of elements
202
+ * in the queue. This may be negative if fibers are suspended waiting for
203
+ * elements to be added to the queue.
204
+ */
205
+ readonly size: Effect.Effect<number>
206
+
207
+ /**
208
+ * Retrieves the size of the queue, which is equal to the number of elements
209
+ * in the queue. This may be negative if fibers are suspended waiting for
210
+ * elements to be added to the queue. Returns None if shutdown has been called
211
+ */
212
+ unsafeSize(): Option.Option<number>
213
+
214
+ /**
215
+ * Returns `true` if the `Queue` contains at least one element, `false`
216
+ * otherwise.
217
+ */
218
+ readonly isFull: Effect.Effect<boolean>
219
+
220
+ /**
221
+ * Returns `true` if the `Queue` contains zero elements, `false` otherwise.
222
+ */
223
+ readonly isEmpty: Effect.Effect<boolean>
224
+
225
+ /**
226
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
227
+ * to `offer*` and `take*` will be interrupted immediately.
228
+ */
229
+ readonly shutdown: Effect.Effect<void>
230
+
231
+ /**
232
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
233
+ */
234
+ readonly isShutdown: Effect.Effect<boolean>
235
+
236
+ /**
237
+ * Waits until the queue is shutdown. The `Effect` returned by this method will
238
+ * not resume until the queue has been shutdown. If the queue is already
239
+ * shutdown, the `Effect` will resume right away.
240
+ */
241
+ readonly awaitShutdown: Effect.Effect<void>
242
+ }
243
+
244
+ /**
245
+ * @since 2.0.0
246
+ * @category models
247
+ */
248
+ export interface Strategy<in out A> extends Queue.StrategyVariance<A> {
249
+ /**
250
+ * Returns the number of surplus values that were unable to be added to the
251
+ * `Queue`
252
+ */
253
+ surplusSize(): number
254
+
255
+ /**
256
+ * Determines how the `Queue.Strategy` should shut down when the `Queue` is
257
+ * shut down.
258
+ */
259
+ readonly shutdown: Effect.Effect<void>
260
+
261
+ /**
262
+ * Determines the behavior of the `Queue.Strategy` when there are surplus
263
+ * values that could not be added to the `Queue` following an `offer`
264
+ * operation.
265
+ */
266
+ handleSurplus(
267
+ iterable: Iterable<A>,
268
+ queue: BackingQueue<A>,
269
+ takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>,
270
+ isShutdown: MutableRef.MutableRef<boolean>
271
+ ): Effect.Effect<boolean>
272
+
273
+ /**
274
+ * It is called when the backing queue is empty but there are some
275
+ * takers that can be completed
276
+ */
277
+ onCompleteTakersWithEmptyQueue(
278
+ takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
279
+ ): void
280
+
281
+ /**
282
+ * Determines the behavior of the `Queue.Strategy` when the `Queue` has empty
283
+ * slots following a `take` operation.
284
+ */
285
+ unsafeOnQueueEmptySpace(
286
+ queue: BackingQueue<A>,
287
+ takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
288
+ ): void
289
+ }
290
+
291
+ /**
292
+ * @since 2.0.0
293
+ * @category models
294
+ */
295
+ export interface BackingQueue<in out A> extends Queue.BackingQueueVariance<A> {
296
+ /**
297
+ * Dequeues an element from the queue.
298
+ * Returns either an element from the queue, or the `def` param.
299
+ */
300
+ poll<Def>(def: Def): A | Def
301
+ /**
302
+ * Dequeues up to `limit` elements from the queue.
303
+ */
304
+ pollUpTo(limit: number): Chunk.Chunk<A>
305
+ /**
306
+ * Enqueues a collection of values into the queue.
307
+ *
308
+ * Returns a `Chunk` of the values that were **not** able to be enqueued.
309
+ */
310
+ offerAll(elements: Iterable<A>): Chunk.Chunk<A>
311
+ /**
312
+ * Offers an element to the queue.
313
+ *
314
+ * Returns whether the enqueue was successful or not.
315
+ */
316
+ offer(element: A): boolean
317
+ /**
318
+ * The **maximum** number of elements that a queue can hold.
319
+ *
320
+ * **Note**: unbounded queues can still implement this interface with
321
+ * `capacity = Infinity`.
322
+ */
323
+ capacity(): number
324
+ /**
325
+ * Returns the number of elements currently in the queue
326
+ */
327
+ length(): number
328
+ }
329
+
330
+ /**
331
+ * @since 2.0.0
332
+ */
333
+ export declare namespace Queue {
334
+ /**
335
+ * @since 2.0.0
336
+ * @category models
337
+ */
338
+ export interface EnqueueVariance<in A> {
339
+ readonly [EnqueueTypeId]: {
340
+ readonly _In: Types.Contravariant<A>
341
+ }
342
+ }
343
+
344
+ /**
345
+ * @since 2.0.0
346
+ * @category models
347
+ */
348
+ export interface DequeueVariance<out A> {
349
+ readonly [DequeueTypeId]: {
350
+ readonly _Out: Types.Covariant<A>
351
+ }
352
+ }
353
+
354
+ /**
355
+ * @since 2.0.0
356
+ * @category models
357
+ */
358
+ export interface StrategyVariance<in out A> {
359
+ readonly [QueueStrategyTypeId]: {
360
+ readonly _A: Types.Invariant<A>
361
+ }
362
+ }
363
+
364
+ /**
365
+ * @since 2.0.0
366
+ * @category models
367
+ */
368
+ export interface BackingQueueVariance<in out A> {
369
+ readonly [BackingQueueTypeId]: {
370
+ readonly _A: Types.Invariant<A>
371
+ }
372
+ }
373
+ }
374
+
375
+ /**
376
+ * Returns `true` if the specified value is a `Queue`, `false` otherwise.
377
+ *
378
+ * @since 2.0.0
379
+ * @category refinements
380
+ */
381
+ export const isQueue: (u: unknown) => u is Queue<unknown> = internal.isQueue
382
+
383
+ /**
384
+ * Returns `true` if the specified value is a `Dequeue`, `false` otherwise.
385
+ *
386
+ * @since 2.0.0
387
+ * @category refinements
388
+ */
389
+ export const isDequeue: (u: unknown) => u is Dequeue<unknown> = internal.isDequeue
390
+
391
+ /**
392
+ * Returns `true` if the specified value is a `Enqueue`, `false` otherwise.
393
+ *
394
+ * @since 2.0.0
395
+ * @category refinements
396
+ */
397
+ export const isEnqueue: (u: unknown) => u is Enqueue<unknown> = internal.isEnqueue
398
+
399
+ /**
400
+ * @since 2.0.0
401
+ * @category strategies
402
+ */
403
+ export const backPressureStrategy: <A>() => Strategy<A> = internal.backPressureStrategy
404
+
405
+ /**
406
+ * @since 2.0.0
407
+ * @category strategies
408
+ */
409
+ export const droppingStrategy: <A>() => Strategy<A> = internal.droppingStrategy
410
+
411
+ /**
412
+ * @since 2.0.0
413
+ * @category strategies
414
+ */
415
+ export const slidingStrategy: <A>() => Strategy<A> = internal.slidingStrategy
416
+
417
+ /**
418
+ * @since 2.0.0
419
+ * @category constructors
420
+ */
421
+ export const make: <A>(queue: BackingQueue<A>, strategy: Strategy<A>) => Effect.Effect<Queue<A>> = internal.make
422
+
423
+ /**
424
+ * Makes a new bounded `Queue`. When the capacity of the queue is reached, any
425
+ * additional calls to `offer` will be suspended until there is more room in
426
+ * the queue.
427
+ *
428
+ * **Note**: When possible use only power of 2 capacities; this will provide
429
+ * better performance by utilising an optimised version of the underlying
430
+ * `RingBuffer`.
431
+ *
432
+ * @since 2.0.0
433
+ * @category constructors
434
+ */
435
+ export const bounded: <A>(requestedCapacity: number) => Effect.Effect<Queue<A>> = internal.bounded
436
+
437
+ /**
438
+ * Makes a new bounded `Queue` with the dropping strategy.
439
+ *
440
+ * When the capacity of the queue is reached, new elements will be dropped and the
441
+ * old elements will remain.
442
+ *
443
+ * **Note**: When possible use only power of 2 capacities; this will provide
444
+ * better performance by utilising an optimised version of the underlying
445
+ * `RingBuffer`.
446
+ *
447
+ * @since 2.0.0
448
+ * @category constructors
449
+ */
450
+ export const dropping: <A>(requestedCapacity: number) => Effect.Effect<Queue<A>> = internal.dropping
451
+
452
+ /**
453
+ * Makes a new bounded `Queue` with the sliding strategy.
454
+ *
455
+ * When the capacity of the queue is reached, new elements will be added and the
456
+ * old elements will be dropped.
457
+ *
458
+ * **Note**: When possible use only power of 2 capacities; this will provide
459
+ * better performance by utilising an optimised version of the underlying
460
+ * `RingBuffer`.
461
+ *
462
+ * @since 2.0.0
463
+ * @category constructors
464
+ */
465
+ export const sliding: <A>(requestedCapacity: number) => Effect.Effect<Queue<A>> = internal.sliding
466
+
467
+ /**
468
+ * Creates a new unbounded `Queue`.
469
+ *
470
+ * @since 2.0.0
471
+ * @category constructors
472
+ */
473
+ export const unbounded: <A>() => Effect.Effect<Queue<A>> = internal.unbounded
474
+
475
+ /**
476
+ * Returns the number of elements the queue can hold.
477
+ *
478
+ * @since 2.0.0
479
+ * @category getters
480
+ */
481
+ export const capacity: <A>(self: Dequeue<A> | Enqueue<A>) => number = internal.capacity
482
+
483
+ /**
484
+ * Retrieves the size of the queue, which is equal to the number of elements
485
+ * in the queue. This may be negative if fibers are suspended waiting for
486
+ * elements to be added to the queue.
487
+ *
488
+ * @since 2.0.0
489
+ * @category getters
490
+ */
491
+ export const size: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<number> = internal.size
492
+
493
+ /**
494
+ * Returns `true` if the `Queue` contains zero elements, `false` otherwise.
495
+ *
496
+ * @since 2.0.0
497
+ * @category getters
498
+ */
499
+ export const isEmpty: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<boolean> = internal.isEmpty
500
+
501
+ /**
502
+ * Returns `true` if the `Queue` contains at least one element, `false`
503
+ * otherwise.
504
+ *
505
+ * @since 2.0.0
506
+ * @category getters
507
+ */
508
+ export const isFull: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<boolean> = internal.isFull
509
+
510
+ /**
511
+ * Returns `true` if `shutdown` has been called, otherwise returns `false`.
512
+ *
513
+ * @since 2.0.0
514
+ * @category getters
515
+ */
516
+ export const isShutdown: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<boolean> = internal.isShutdown
517
+
518
+ /**
519
+ * Waits until the queue is shutdown. The `Effect` returned by this method will
520
+ * not resume until the queue has been shutdown. If the queue is already
521
+ * shutdown, the `Effect` will resume right away.
522
+ *
523
+ * @since 2.0.0
524
+ * @category utils
525
+ */
526
+ export const awaitShutdown: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<void> = internal.awaitShutdown
527
+
528
+ /**
529
+ * Interrupts any fibers that are suspended on `offer` or `take`. Future calls
530
+ * to `offer*` and `take*` will be interrupted immediately.
531
+ *
532
+ * @since 2.0.0
533
+ * @category utils
534
+ */
535
+ export const shutdown: <A>(self: Dequeue<A> | Enqueue<A>) => Effect.Effect<void> = internal.shutdown
536
+
537
+ /**
538
+ * Places one value in the queue.
539
+ *
540
+ * @since 2.0.0
541
+ * @category utils
542
+ */
543
+ export const offer: {
544
+ <A>(value: A): (self: Enqueue<A>) => Effect.Effect<boolean>
545
+ <A>(self: Enqueue<A>, value: A): Effect.Effect<boolean>
546
+ } = internal.offer
547
+
548
+ /**
549
+ * Places one value in the queue.
550
+ *
551
+ * @since 2.0.0
552
+ * @category utils
553
+ */
554
+ export const unsafeOffer: {
555
+ <A>(value: A): (self: Enqueue<A>) => boolean
556
+ <A>(self: Enqueue<A>, value: A): boolean
557
+ } = internal.unsafeOffer
558
+
559
+ /**
560
+ * For Bounded Queue: uses the `BackPressure` Strategy, places the values in
561
+ * the queue and always returns true. If the queue has reached capacity, then
562
+ * the fiber performing the `offerAll` will be suspended until there is room
563
+ * in the queue.
564
+ *
565
+ * For Unbounded Queue: Places all values in the queue and returns true.
566
+ *
567
+ * For Sliding Queue: uses `Sliding` Strategy If there is room in the queue,
568
+ * it places the values otherwise it removes the old elements and enqueues the
569
+ * new ones. Always returns true.
570
+ *
571
+ * For Dropping Queue: uses `Dropping` Strategy, It places the values in the
572
+ * queue but if there is no room it will not enqueue them and return false.
573
+ *
574
+ * @since 2.0.0
575
+ * @category utils
576
+ */
577
+ export const offerAll: {
578
+ <A>(iterable: Iterable<A>): (self: Enqueue<A>) => Effect.Effect<boolean>
579
+ <A>(self: Enqueue<A>, iterable: Iterable<A>): Effect.Effect<boolean>
580
+ } = internal.offerAll
581
+
582
+ /**
583
+ * Returns the first value in the `Queue` as a `Some<A>`, or `None` if the queue
584
+ * is empty.
585
+ *
586
+ * @since 2.0.0
587
+ * @category utils
588
+ */
589
+ export const poll: <A>(self: Dequeue<A>) => Effect.Effect<Option.Option<A>> = internal.poll
590
+
591
+ /**
592
+ * Takes the oldest value in the queue. If the queue is empty, this will return
593
+ * a computation that resumes when an item has been added to the queue.
594
+ *
595
+ * @since 2.0.0
596
+ * @category utils
597
+ */
598
+ export const take: <A>(self: Dequeue<A>) => Effect.Effect<A> = internal.take
599
+
600
+ /**
601
+ * Takes all the values in the queue and returns the values. If the queue is
602
+ * empty returns an empty collection.
603
+ *
604
+ * @since 2.0.0
605
+ * @category utils
606
+ */
607
+ export const takeAll: <A>(self: Dequeue<A>) => Effect.Effect<Chunk.Chunk<A>> = internal.takeAll
608
+
609
+ /**
610
+ * Takes up to max number of values from the queue.
611
+ *
612
+ * @since 2.0.0
613
+ * @category utils
614
+ */
615
+ export const takeUpTo: {
616
+ (max: number): <A>(self: Dequeue<A>) => Effect.Effect<Chunk.Chunk<A>>
617
+ <A>(self: Dequeue<A>, max: number): Effect.Effect<Chunk.Chunk<A>>
618
+ } = internal.takeUpTo
619
+
620
+ /**
621
+ * Takes a number of elements from the queue between the specified minimum and
622
+ * maximum. If there are fewer than the minimum number of elements available,
623
+ * suspends until at least the minimum number of elements have been collected.
624
+ *
625
+ * @since 2.0.0
626
+ * @category utils
627
+ */
628
+ export const takeBetween: {
629
+ (min: number, max: number): <A>(self: Dequeue<A>) => Effect.Effect<Chunk.Chunk<A>>
630
+ <A>(self: Dequeue<A>, min: number, max: number): Effect.Effect<Chunk.Chunk<A>>
631
+ } = internal.takeBetween
632
+
633
+ /**
634
+ * Takes the specified number of elements from the queue. If there are fewer
635
+ * than the specified number of elements available, it suspends until they
636
+ * become available.
637
+ *
638
+ * @since 2.0.0
639
+ * @category utils
640
+ */
641
+ export const takeN: {
642
+ (n: number): <A>(self: Dequeue<A>) => Effect.Effect<Chunk.Chunk<A>>
643
+ <A>(self: Dequeue<A>, n: number): Effect.Effect<Chunk.Chunk<A>>
644
+ } = internal.takeN