@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/Fiber.ts ADDED
@@ -0,0 +1,744 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import type * as Cause from "./Cause.js"
5
+ import type { Context } from "./Context.js"
6
+ import type { DefaultServices } from "./DefaultServices.js"
7
+ import type * as Effect from "./Effect.js"
8
+ import type * as Either from "./Either.js"
9
+ import type * as Exit from "./Exit.js"
10
+ import type * as FiberId from "./FiberId.js"
11
+ import type { FiberRef } from "./FiberRef.js"
12
+ import type * as FiberRefs from "./FiberRefs.js"
13
+ import type * as FiberStatus from "./FiberStatus.js"
14
+ import type * as HashSet from "./HashSet.js"
15
+ import * as core from "./internal/core.js"
16
+ import * as circular from "./internal/effect/circular.js"
17
+ import * as internal from "./internal/fiber.js"
18
+ import * as fiberRuntime from "./internal/fiberRuntime.js"
19
+ import type * as Option from "./Option.js"
20
+ import type * as order from "./Order.js"
21
+ import type * as RuntimeFlags from "./RuntimeFlags.js"
22
+ import type { Scheduler } from "./Scheduler.js"
23
+ import type * as Scope from "./Scope.js"
24
+ import type { Supervisor } from "./Supervisor.js"
25
+ import type { AnySpan, Tracer } from "./Tracer.js"
26
+ import type * as Types from "./Types.js"
27
+ import type * as Unify from "./Unify.js"
28
+
29
+ /**
30
+ * @since 2.0.0
31
+ * @category symbols
32
+ */
33
+ export const FiberTypeId: unique symbol = internal.FiberTypeId
34
+
35
+ /**
36
+ * @since 2.0.0
37
+ * @category symbols
38
+ */
39
+ export type FiberTypeId = typeof FiberTypeId
40
+
41
+ /**
42
+ * @since 2.0.0
43
+ * @category symbols
44
+ */
45
+ export const RuntimeFiberTypeId: unique symbol = internal.RuntimeFiberTypeId
46
+
47
+ /**
48
+ * @since 2.0.0
49
+ * @category symbols
50
+ */
51
+ export type RuntimeFiberTypeId = typeof RuntimeFiberTypeId
52
+
53
+ /**
54
+ * A fiber is a lightweight thread of execution that never consumes more than a
55
+ * whole thread (but may consume much less, depending on contention and
56
+ * asynchronicity). Fibers are spawned by forking effects, which run
57
+ * concurrently with the parent effect.
58
+ *
59
+ * Fibers can be joined, yielding their result to other fibers, or interrupted,
60
+ * which terminates the fiber, safely releasing all resources.
61
+ *
62
+ * @since 2.0.0
63
+ * @category models
64
+ */
65
+ export interface Fiber<out A, out E = never> extends Effect.Effect<A, E>, Fiber.Variance<A, E> {
66
+ /**
67
+ * The identity of the fiber.
68
+ */
69
+ id(): FiberId.FiberId
70
+
71
+ /**
72
+ * Awaits the fiber, which suspends the awaiting fiber until the result of the
73
+ * fiber has been determined.
74
+ */
75
+ readonly await: Effect.Effect<Exit.Exit<A, E>>
76
+
77
+ /**
78
+ * Retrieves the immediate children of the fiber.
79
+ */
80
+ readonly children: Effect.Effect<Array<Fiber.Runtime<any, any>>>
81
+
82
+ /**
83
+ * Inherits values from all `FiberRef` instances into current fiber. This
84
+ * will resume immediately.
85
+ */
86
+ readonly inheritAll: Effect.Effect<void>
87
+
88
+ /**
89
+ * Tentatively observes the fiber, but returns immediately if it is not
90
+ * already done.
91
+ */
92
+ readonly poll: Effect.Effect<Option.Option<Exit.Exit<A, E>>>
93
+
94
+ /**
95
+ * In the background, interrupts the fiber as if interrupted from the
96
+ * specified fiber. If the fiber has already exited, the returned effect will
97
+ * resume immediately. Otherwise, the effect will resume when the fiber exits.
98
+ */
99
+ interruptAsFork(fiberId: FiberId.FiberId): Effect.Effect<void>
100
+
101
+ readonly [Unify.typeSymbol]?: unknown
102
+ readonly [Unify.unifySymbol]?: FiberUnify<this>
103
+ readonly [Unify.ignoreSymbol]?: FiberUnifyIgnore
104
+ }
105
+
106
+ /**
107
+ * @category models
108
+ * @since 3.8.0
109
+ */
110
+ export interface FiberUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
111
+ Fiber?: () => A[Unify.typeSymbol] extends Fiber<infer A0, infer E0> | infer _ ? Fiber<A0, E0> : never
112
+ }
113
+
114
+ /**
115
+ * @category models
116
+ * @since 3.8.0
117
+ */
118
+ export interface FiberUnifyIgnore extends Effect.EffectUnifyIgnore {
119
+ Effect?: true
120
+ }
121
+
122
+ /**
123
+ * A runtime fiber that is executing an effect. Runtime fibers have an
124
+ * identity and a trace.
125
+ *
126
+ * @since 2.0.0
127
+ * @category models
128
+ */
129
+ export interface RuntimeFiber<out A, out E = never> extends Fiber<A, E>, Fiber.RuntimeVariance<A, E> {
130
+ /**
131
+ * Reads the current number of ops that have occurred since the last yield
132
+ */
133
+ get currentOpCount(): number
134
+
135
+ /**
136
+ * Reads the current value of a fiber ref
137
+ */
138
+ getFiberRef<X>(fiberRef: FiberRef<X>): X
139
+
140
+ /**
141
+ * The identity of the fiber.
142
+ */
143
+ id(): FiberId.Runtime
144
+
145
+ /**
146
+ * The status of the fiber.
147
+ */
148
+ readonly status: Effect.Effect<FiberStatus.FiberStatus>
149
+
150
+ /**
151
+ * Returns the current `RuntimeFlags` the fiber is running with.
152
+ */
153
+ readonly runtimeFlags: Effect.Effect<RuntimeFlags.RuntimeFlags>
154
+
155
+ /**
156
+ * Adds an observer to the list of observers.
157
+ */
158
+ addObserver(observer: (exit: Exit.Exit<A, E>) => void): void
159
+
160
+ /**
161
+ * Removes the specified observer from the list of observers that will be
162
+ * notified when the fiber exits.
163
+ */
164
+ removeObserver(observer: (exit: Exit.Exit<A, E>) => void): void
165
+
166
+ /**
167
+ * Retrieves all fiber refs of the fiber.
168
+ */
169
+ getFiberRefs(): FiberRefs.FiberRefs
170
+
171
+ /**
172
+ * Unsafely observes the fiber, but returns immediately if it is not
173
+ * already done.
174
+ */
175
+ unsafePoll(): Exit.Exit<A, E> | null
176
+
177
+ /**
178
+ * In the background, interrupts the fiber as if interrupted from the
179
+ * specified fiber. If the fiber has already exited, the returned effect will
180
+ * resume immediately. Otherwise, the effect will resume when the fiber exits.
181
+ */
182
+ unsafeInterruptAsFork(fiberId: FiberId.FiberId): void
183
+
184
+ /**
185
+ * Gets the current context
186
+ */
187
+ get currentContext(): Context<never>
188
+
189
+ /**
190
+ * Gets the current context
191
+ */
192
+ get currentDefaultServices(): Context<DefaultServices>
193
+
194
+ /**
195
+ * Gets the current scheduler
196
+ */
197
+ get currentScheduler(): Scheduler
198
+
199
+ /**
200
+ * Gets the current tracer
201
+ */
202
+ get currentTracer(): Tracer
203
+
204
+ /**
205
+ * Gets the current span
206
+ */
207
+ get currentSpan(): AnySpan | undefined
208
+
209
+ /**
210
+ * Gets the current supervisor
211
+ */
212
+ get currentSupervisor(): Supervisor<unknown>
213
+
214
+ readonly [Unify.typeSymbol]?: unknown
215
+ readonly [Unify.unifySymbol]?: RuntimeFiberUnify<this>
216
+ readonly [Unify.ignoreSymbol]?: RuntimeFiberUnifyIgnore
217
+ }
218
+
219
+ /**
220
+ * @category models
221
+ * @since 3.8.0
222
+ */
223
+ export interface RuntimeFiberUnify<A extends { [Unify.typeSymbol]?: any }> extends FiberUnify<A> {
224
+ RuntimeFiber?: () => A[Unify.typeSymbol] extends RuntimeFiber<infer A0, infer E0> | infer _ ? RuntimeFiber<A0, E0>
225
+ : never
226
+ }
227
+
228
+ /**
229
+ * @category models
230
+ * @since 3.8.0
231
+ */
232
+ export interface RuntimeFiberUnifyIgnore extends FiberUnifyIgnore {
233
+ Fiber?: true
234
+ }
235
+
236
+ /**
237
+ * @since 2.0.0
238
+ */
239
+ export declare namespace Fiber {
240
+ /**
241
+ * @since 2.0.0
242
+ * @category models
243
+ */
244
+ export type Runtime<A, E = never> = RuntimeFiber<A, E>
245
+
246
+ /**
247
+ * @since 2.0.0
248
+ * @category models
249
+ */
250
+ export interface Variance<out A, out E> {
251
+ readonly [FiberTypeId]: {
252
+ readonly _A: Types.Covariant<A>
253
+ readonly _E: Types.Covariant<E>
254
+ }
255
+ }
256
+
257
+ /**
258
+ * @since 2.0.0
259
+ */
260
+ export interface RuntimeVariance<out A, out E> {
261
+ readonly [RuntimeFiberTypeId]: {
262
+ readonly _A: Types.Covariant<A>
263
+ readonly _E: Types.Covariant<E>
264
+ }
265
+ }
266
+
267
+ /**
268
+ * @since 2.0.0
269
+ * @category models
270
+ */
271
+ export interface Dump {
272
+ /**
273
+ * The fiber's unique identifier.
274
+ */
275
+ readonly id: FiberId.Runtime
276
+ /**
277
+ * The status of the fiber.
278
+ */
279
+ readonly status: FiberStatus.FiberStatus
280
+ }
281
+
282
+ /**
283
+ * A record containing information about a `Fiber`.
284
+ *
285
+ * @since 2.0.0
286
+ * @category models
287
+ */
288
+ export interface Descriptor {
289
+ /**
290
+ * The fiber's unique identifier.
291
+ */
292
+ readonly id: FiberId.FiberId
293
+ /**
294
+ * The status of the fiber.
295
+ */
296
+ readonly status: FiberStatus.FiberStatus
297
+ /**
298
+ * The set of fibers attempting to interrupt the fiber or its ancestors.
299
+ */
300
+ readonly interruptors: HashSet.HashSet<FiberId.FiberId>
301
+ }
302
+ }
303
+
304
+ /**
305
+ * @since 2.0.0
306
+ * @category instances
307
+ */
308
+ export const Order: order.Order<RuntimeFiber<unknown, unknown>> = internal.Order
309
+
310
+ /**
311
+ * Returns `true` if the specified value is a `Fiber`, `false` otherwise.
312
+ *
313
+ * @since 2.0.0
314
+ * @category refinements
315
+ */
316
+ export const isFiber: (u: unknown) => u is Fiber<unknown, unknown> = internal.isFiber
317
+
318
+ /**
319
+ * Returns `true` if the specified `Fiber` is a `RuntimeFiber`, `false`
320
+ * otherwise.
321
+ *
322
+ * @since 2.0.0
323
+ * @category refinements
324
+ */
325
+ export const isRuntimeFiber: <A, E>(self: Fiber<A, E>) => self is RuntimeFiber<A, E> = internal.isRuntimeFiber
326
+
327
+ /**
328
+ * The identity of the fiber.
329
+ *
330
+ * @since 2.0.0
331
+ * @category getters
332
+ */
333
+ export const id: <A, E>(self: Fiber<A, E>) => FiberId.FiberId = internal.id
334
+
335
+ const _await: <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>> = internal._await
336
+
337
+ export {
338
+ /**
339
+ * Awaits the fiber, which suspends the awaiting fiber until the result of the
340
+ * fiber has been determined.
341
+ *
342
+ * @since 2.0.0
343
+ * @category getters
344
+ */
345
+ _await as await
346
+ }
347
+
348
+ /**
349
+ * Awaits on all fibers to be completed, successfully or not.
350
+ *
351
+ * @since 2.0.0
352
+ * @category destructors
353
+ */
354
+ export const awaitAll: <const T extends Iterable<Fiber<any, any>>>(
355
+ fibers: T
356
+ ) => Effect.Effect<
357
+ [T] extends [ReadonlyArray<infer U>]
358
+ ? number extends T["length"] ? Array<U extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never>
359
+ : { -readonly [K in keyof T]: T[K] extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never }
360
+ : Array<T extends Iterable<infer U> ? U extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never : never>
361
+ > = fiberRuntime.fiberAwaitAll
362
+
363
+ /**
364
+ * Retrieves the immediate children of the fiber.
365
+ *
366
+ * @since 2.0.0
367
+ * @category getters
368
+ */
369
+ export const children: <A, E>(self: Fiber<A, E>) => Effect.Effect<Array<RuntimeFiber<any, any>>> = internal.children
370
+
371
+ /**
372
+ * Collects all fibers into a single fiber producing an in-order list of the
373
+ * results.
374
+ *
375
+ * @since 2.0.0
376
+ * @category constructors
377
+ */
378
+ export const all: <A, E>(fibers: Iterable<Fiber<A, E>>) => Fiber<ReadonlyArray<A>, E> = fiberRuntime.fiberAll
379
+
380
+ /**
381
+ * A fiber that is done with the specified `Exit` value.
382
+ *
383
+ * @since 2.0.0
384
+ * @category constructors
385
+ */
386
+ export const done: <A, E>(exit: Exit.Exit<A, E>) => Fiber<A, E> = internal.done
387
+
388
+ /**
389
+ * @since 2.0.0
390
+ * @category destructors
391
+ */
392
+ export const dump: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<Fiber.Dump> = internal.dump
393
+
394
+ /**
395
+ * @since 2.0.0
396
+ * @category destructors
397
+ */
398
+ export const dumpAll: (
399
+ fibers: Iterable<RuntimeFiber<unknown, unknown>>
400
+ ) => Effect.Effect<Array<Fiber.Dump>> = internal.dumpAll
401
+
402
+ /**
403
+ * A fiber that has already failed with the specified value.
404
+ *
405
+ * @since 2.0.0
406
+ * @category constructors
407
+ */
408
+ export const fail: <E>(error: E) => Fiber<never, E> = internal.fail
409
+
410
+ /**
411
+ * Creates a `Fiber` that has already failed with the specified cause.
412
+ *
413
+ * @since 2.0.0
414
+ * @category constructors
415
+ */
416
+ export const failCause: <E>(cause: Cause.Cause<E>) => Fiber<never, E> = internal.failCause
417
+
418
+ /**
419
+ * Lifts an `Effect` into a `Fiber`.
420
+ *
421
+ * @since 2.0.0
422
+ * @category conversions
423
+ */
424
+ export const fromEffect: <A, E>(effect: Effect.Effect<A, E>) => Effect.Effect<Fiber<A, E>> = internal.fromEffect
425
+
426
+ /**
427
+ * Gets the current fiber if one is running.
428
+ *
429
+ * @since 2.0.0
430
+ * @category utilities
431
+ */
432
+ export const getCurrentFiber: () => Option.Option<RuntimeFiber<any, any>> = internal.getCurrentFiber
433
+
434
+ /**
435
+ * Inherits values from all `FiberRef` instances into current fiber. This
436
+ * will resume immediately.
437
+ *
438
+ * @since 2.0.0
439
+ * @category destructors
440
+ */
441
+ export const inheritAll: <A, E>(self: Fiber<A, E>) => Effect.Effect<void> = internal.inheritAll
442
+
443
+ /**
444
+ * Interrupts the fiber from whichever fiber is calling this method. If the
445
+ * fiber has already exited, the returned effect will resume immediately.
446
+ * Otherwise, the effect will resume when the fiber exits.
447
+ *
448
+ * @since 2.0.0
449
+ * @category interruption
450
+ */
451
+ export const interrupt: <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>> = core.interruptFiber
452
+
453
+ /**
454
+ * Constructrs a `Fiber` that is already interrupted.
455
+ *
456
+ * @since 2.0.0
457
+ * @category constructors
458
+ */
459
+ export const interrupted: (fiberId: FiberId.FiberId) => Fiber<never> = internal.interrupted
460
+
461
+ /**
462
+ * Interrupts the fiber as if interrupted from the specified fiber. If the
463
+ * fiber has already exited, the returned effect will resume immediately.
464
+ * Otherwise, the effect will resume when the fiber exits.
465
+ *
466
+ * @since 2.0.0
467
+ * @category interruption
468
+ */
469
+ export const interruptAs: {
470
+ (fiberId: FiberId.FiberId): <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>>
471
+ <A, E>(self: Fiber<A, E>, fiberId: FiberId.FiberId): Effect.Effect<Exit.Exit<A, E>>
472
+ } = core.interruptAsFiber
473
+
474
+ /**
475
+ * Interrupts the fiber as if interrupted from the specified fiber. If the
476
+ * fiber has already exited, the returned effect will resume immediately.
477
+ * Otherwise, the effect will resume when the fiber exits.
478
+ *
479
+ * @since 2.0.0
480
+ * @category interruption
481
+ */
482
+ export const interruptAsFork: {
483
+ (fiberId: FiberId.FiberId): <A, E>(self: Fiber<A, E>) => Effect.Effect<void>
484
+ <A, E>(self: Fiber<A, E>, fiberId: FiberId.FiberId): Effect.Effect<void>
485
+ } = internal.interruptAsFork
486
+
487
+ /**
488
+ * Interrupts all fibers, awaiting their interruption.
489
+ *
490
+ * @since 2.0.0
491
+ * @category interruption
492
+ */
493
+ export const interruptAll: (fibers: Iterable<Fiber<any, any>>) => Effect.Effect<void> = internal.interruptAll
494
+
495
+ /**
496
+ * Interrupts all fibers as by the specified fiber, awaiting their
497
+ * interruption.
498
+ *
499
+ * @since 2.0.0
500
+ * @category interruption
501
+ */
502
+ export const interruptAllAs: {
503
+ (fiberId: FiberId.FiberId): (fibers: Iterable<Fiber<any, any>>) => Effect.Effect<void>
504
+ (fibers: Iterable<Fiber<any, any>>, fiberId: FiberId.FiberId): Effect.Effect<void>
505
+ } = internal.interruptAllAs
506
+
507
+ /**
508
+ * Interrupts the fiber from whichever fiber is calling this method. The
509
+ * interruption will happen in a separate daemon fiber, and the returned
510
+ * effect will always resume immediately without waiting.
511
+ *
512
+ * @since 2.0.0
513
+ * @category interruption
514
+ */
515
+ export const interruptFork: <A, E>(self: Fiber<A, E>) => Effect.Effect<void> = fiberRuntime.fiberInterruptFork
516
+
517
+ /**
518
+ * Joins the fiber, which suspends the joining fiber until the result of the
519
+ * fiber has been determined. Attempting to join a fiber that has erred will
520
+ * result in a catchable error. Joining an interrupted fiber will result in an
521
+ * "inner interruption" of this fiber, unlike interruption triggered by
522
+ * another fiber, "inner interruption" can be caught and recovered.
523
+ *
524
+ * @since 2.0.0
525
+ * @category destructors
526
+ */
527
+ export const join: <A, E>(self: Fiber<A, E>) => Effect.Effect<A, E> = internal.join
528
+
529
+ /**
530
+ * Joins all fibers, awaiting their _successful_ completion. Attempting to
531
+ * join a fiber that has erred will result in a catchable error, _if_ that
532
+ * error does not result from interruption.
533
+ *
534
+ * @since 2.0.0
535
+ * @category destructors
536
+ */
537
+ export const joinAll: <A, E>(fibers: Iterable<Fiber<A, E>>) => Effect.Effect<Array<A>, E> = fiberRuntime.fiberJoinAll
538
+
539
+ /**
540
+ * Maps over the value the Fiber computes.
541
+ *
542
+ * @since 2.0.0
543
+ * @category mapping
544
+ */
545
+ export const map: {
546
+ <A, B>(f: (a: A) => B): <E>(self: Fiber<A, E>) => Fiber<B, E>
547
+ <A, E, B>(self: Fiber<A, E>, f: (a: A) => B): Fiber<B, E>
548
+ } = internal.map
549
+
550
+ /**
551
+ * Effectually maps over the value the fiber computes.
552
+ *
553
+ * @since 2.0.0
554
+ * @category mapping
555
+ */
556
+ export const mapEffect: {
557
+ <A, A2, E2>(f: (a: A) => Effect.Effect<A2, E2>): <E>(self: Fiber<A, E>) => Fiber<A2, E2 | E>
558
+ <A, E, A2, E2>(self: Fiber<A, E>, f: (a: A) => Effect.Effect<A2, E2>): Fiber<A2, E | E2>
559
+ } = internal.mapEffect
560
+
561
+ /**
562
+ * Passes the success of this fiber to the specified callback, and continues
563
+ * with the fiber that it returns.
564
+ *
565
+ * @since 2.0.0
566
+ * @category mapping
567
+ */
568
+ export const mapFiber: {
569
+ <E, E2, A, B>(f: (a: A) => Fiber<B, E2>): (self: Fiber<A, E>) => Effect.Effect<Fiber<B, E | E2>>
570
+ <A, E, E2, B>(self: Fiber<A, E>, f: (a: A) => Fiber<B, E2>): Effect.Effect<Fiber<B, E | E2>>
571
+ } = internal.mapFiber
572
+
573
+ /**
574
+ * Folds over the `Fiber` or `RuntimeFiber`.
575
+ *
576
+ * @since 2.0.0
577
+ * @category folding
578
+ */
579
+ export const match: {
580
+ <A, E, Z>(
581
+ options: {
582
+ readonly onFiber: (fiber: Fiber<A, E>) => Z
583
+ readonly onRuntimeFiber: (fiber: RuntimeFiber<A, E>) => Z
584
+ }
585
+ ): (self: Fiber<A, E>) => Z
586
+ <A, E, Z>(
587
+ self: Fiber<A, E>,
588
+ options: {
589
+ readonly onFiber: (fiber: Fiber<A, E>) => Z
590
+ readonly onRuntimeFiber: (fiber: RuntimeFiber<A, E>) => Z
591
+ }
592
+ ): Z
593
+ } = internal.match
594
+
595
+ /**
596
+ * A fiber that never fails or succeeds.
597
+ *
598
+ * @since 2.0.0
599
+ * @category constructors
600
+ */
601
+ export const never: Fiber<never> = internal.never
602
+
603
+ /**
604
+ * Returns a fiber that prefers `this` fiber, but falls back to the `that` one
605
+ * when `this` one fails. Interrupting the returned fiber will interrupt both
606
+ * fibers, sequentially, from left to right.
607
+ *
608
+ * @since 2.0.0
609
+ * @category alternatives
610
+ */
611
+ export const orElse: {
612
+ <A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A2 | A, E2 | E>
613
+ <A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A | A2, E | E2>
614
+ } = internal.orElse
615
+
616
+ /**
617
+ * Returns a fiber that prefers `this` fiber, but falls back to the `that` one
618
+ * when `this` one fails. Interrupting the returned fiber will interrupt both
619
+ * fibers, sequentially, from left to right.
620
+ *
621
+ * @since 2.0.0
622
+ * @category alternatives
623
+ */
624
+ export const orElseEither: {
625
+ <A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<Either.Either<A2, A>, E2 | E>
626
+ <A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<Either.Either<A2, A>, E | E2>
627
+ } = internal.orElseEither
628
+
629
+ /**
630
+ * Tentatively observes the fiber, but returns immediately if it is not
631
+ * already done.
632
+ *
633
+ * @since 2.0.0
634
+ * @category getters
635
+ */
636
+ export const poll: <A, E>(self: Fiber<A, E>) => Effect.Effect<Option.Option<Exit.Exit<A, E>>> = internal.poll
637
+
638
+ /**
639
+ * Pretty-prints a `RuntimeFiber`.
640
+ *
641
+ * @since 2.0.0
642
+ * @category destructors
643
+ */
644
+ export const pretty: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<string> = internal.pretty
645
+
646
+ /**
647
+ * Returns a chunk containing all root fibers.
648
+ *
649
+ * @since 2.0.0
650
+ * @category constructors
651
+ */
652
+ export const roots: Effect.Effect<Array<RuntimeFiber<any, any>>> = internal.roots
653
+
654
+ /**
655
+ * Returns a chunk containing all root fibers.
656
+ *
657
+ * @since 2.0.0
658
+ * @category constructors
659
+ */
660
+ export const unsafeRoots: (_: void) => Array<RuntimeFiber<any, any>> = internal.unsafeRoots
661
+
662
+ /**
663
+ * Converts this fiber into a scoped effect. The fiber is interrupted when the
664
+ * scope is closed.
665
+ *
666
+ * @since 2.0.0
667
+ * @category destructors
668
+ */
669
+ export const scoped: <A, E>(self: Fiber<A, E>) => Effect.Effect<Fiber<A, E>, never, Scope.Scope> =
670
+ fiberRuntime.fiberScoped
671
+
672
+ /**
673
+ * Returns the `FiberStatus` of a `RuntimeFiber`.
674
+ *
675
+ * @since 2.0.0
676
+ * @category getters
677
+ */
678
+ export const status: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<FiberStatus.FiberStatus> = internal.status
679
+
680
+ /**
681
+ * Returns a fiber that has already succeeded with the specified value.
682
+ *
683
+ * @since 2.0.0
684
+ * @category constructors
685
+ */
686
+ export const succeed: <A>(value: A) => Fiber<A> = internal.succeed
687
+
688
+ const void_: Fiber<void> = internal.void
689
+ export {
690
+ /**
691
+ * A fiber that has already succeeded with unit.
692
+ *
693
+ * @since 2.0.0
694
+ * @category constructors
695
+ */
696
+ void_ as void
697
+ }
698
+
699
+ /**
700
+ * Zips this fiber and the specified fiber together, producing a tuple of
701
+ * their output.
702
+ *
703
+ * @since 2.0.0
704
+ * @category zipping
705
+ */
706
+ export const zip: {
707
+ <A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<[A, A2], E2 | E>
708
+ <A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<[A, A2], E | E2>
709
+ } = circular.zipFiber
710
+
711
+ /**
712
+ * Same as `zip` but discards the output of that `Fiber`.
713
+ *
714
+ * @since 2.0.0
715
+ * @category zipping
716
+ */
717
+ export const zipLeft: {
718
+ <A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A, E2 | E>
719
+ <A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A, E | E2>
720
+ } = circular.zipLeftFiber
721
+
722
+ /**
723
+ * Same as `zip` but discards the output of this `Fiber`.
724
+ *
725
+ * @since 2.0.0
726
+ * @category zipping
727
+ */
728
+ export const zipRight: {
729
+ <A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A2, E2 | E>
730
+ <A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A2, E | E2>
731
+ } = circular.zipRightFiber
732
+
733
+ /**
734
+ * Zips this fiber with the specified fiber, combining their results using the
735
+ * specified combiner function. Both joins and interruptions are performed in
736
+ * sequential order from left to right.
737
+ *
738
+ * @since 2.0.0
739
+ * @category zipping
740
+ */
741
+ export const zipWith: {
742
+ <B, E2, A, C>(that: Fiber<B, E2>, f: (a: A, b: B) => C): <E>(self: Fiber<A, E>) => Fiber<C, E2 | E>
743
+ <A, E, B, E2, C>(self: Fiber<A, E>, that: Fiber<B, E2>, f: (a: A, b: B) => C): Fiber<C, E | E2>
744
+ } = circular.zipWithFiber