effect 2.0.0-next.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2469) hide show
  1. package/BigDecimal/package.json +6 -0
  2. package/BigInt/package.json +6 -0
  3. package/Boolean/package.json +6 -0
  4. package/Brand/package.json +6 -0
  5. package/Cache/package.json +6 -0
  6. package/Cause/package.json +6 -0
  7. package/Channel/package.json +6 -0
  8. package/ChildExecutorDecision/package.json +6 -0
  9. package/Chunk/package.json +6 -0
  10. package/Clock/package.json +6 -0
  11. package/Config/package.json +6 -0
  12. package/ConfigError/package.json +6 -0
  13. package/ConfigProvider/package.json +6 -0
  14. package/ConfigProviderPathPatch/package.json +6 -0
  15. package/Console/package.json +6 -0
  16. package/Context/package.json +6 -0
  17. package/Data/package.json +6 -0
  18. package/DefaultServices/package.json +6 -0
  19. package/Deferred/package.json +6 -0
  20. package/Differ/package.json +6 -0
  21. package/Duration/package.json +6 -0
  22. package/Effect/package.json +6 -0
  23. package/Effectable/package.json +6 -0
  24. package/Either/package.json +6 -0
  25. package/Encoding/package.json +6 -0
  26. package/Equal/package.json +6 -0
  27. package/Equivalence/package.json +6 -0
  28. package/ExecutionStrategy/package.json +6 -0
  29. package/Exit/package.json +6 -0
  30. package/Fiber/package.json +6 -0
  31. package/FiberId/package.json +6 -0
  32. package/FiberRef/package.json +6 -0
  33. package/FiberRefs/package.json +6 -0
  34. package/FiberRefsPatch/package.json +6 -0
  35. package/FiberStatus/package.json +6 -0
  36. package/Function/package.json +6 -0
  37. package/GlobalValue/package.json +6 -0
  38. package/GroupBy/package.json +6 -0
  39. package/HKT/package.json +6 -0
  40. package/Hash/package.json +6 -0
  41. package/HashMap/package.json +6 -0
  42. package/HashSet/package.json +6 -0
  43. package/Inspectable/package.json +6 -0
  44. package/KeyedPool/package.json +6 -0
  45. package/LICENSE +21 -0
  46. package/Layer/package.json +6 -0
  47. package/List/package.json +6 -0
  48. package/LogLevel/package.json +6 -0
  49. package/LogSpan/package.json +6 -0
  50. package/Logger/package.json +6 -0
  51. package/Match/package.json +6 -0
  52. package/MergeDecision/package.json +6 -0
  53. package/MergeState/package.json +6 -0
  54. package/MergeStrategy/package.json +6 -0
  55. package/Metric/package.json +6 -0
  56. package/MetricBoundaries/package.json +6 -0
  57. package/MetricHook/package.json +6 -0
  58. package/MetricKey/package.json +6 -0
  59. package/MetricKeyType/package.json +6 -0
  60. package/MetricLabel/package.json +6 -0
  61. package/MetricPair/package.json +6 -0
  62. package/MetricPolling/package.json +6 -0
  63. package/MetricRegistry/package.json +6 -0
  64. package/MetricState/package.json +6 -0
  65. package/MutableHashMap/package.json +6 -0
  66. package/MutableHashSet/package.json +6 -0
  67. package/MutableList/package.json +6 -0
  68. package/MutableQueue/package.json +6 -0
  69. package/MutableRef/package.json +6 -0
  70. package/NonEmptyIterable/package.json +6 -0
  71. package/Number/package.json +6 -0
  72. package/Option/package.json +6 -0
  73. package/Order/package.json +6 -0
  74. package/Ordering/package.json +6 -0
  75. package/Pipeable/package.json +6 -0
  76. package/Pool/package.json +6 -0
  77. package/Predicate/package.json +6 -0
  78. package/PrimaryKey/package.json +6 -0
  79. package/PubSub/package.json +6 -0
  80. package/Queue/package.json +6 -0
  81. package/README.md +53 -14
  82. package/Random/package.json +6 -0
  83. package/ReadonlyArray/package.json +6 -0
  84. package/ReadonlyRecord/package.json +6 -0
  85. package/RedBlackTree/package.json +6 -0
  86. package/Ref/package.json +6 -0
  87. package/Reloadable/package.json +6 -0
  88. package/Request/package.json +6 -0
  89. package/RequestBlock/package.json +6 -0
  90. package/RequestResolver/package.json +6 -0
  91. package/Resource/package.json +6 -0
  92. package/Runtime/package.json +6 -0
  93. package/RuntimeFlags/package.json +6 -0
  94. package/RuntimeFlagsPatch/package.json +6 -0
  95. package/STM/package.json +6 -0
  96. package/Schedule/package.json +6 -0
  97. package/ScheduleDecision/package.json +6 -0
  98. package/ScheduleInterval/package.json +6 -0
  99. package/ScheduleIntervals/package.json +6 -0
  100. package/Scheduler/package.json +6 -0
  101. package/Scope/package.json +6 -0
  102. package/ScopedCache/package.json +6 -0
  103. package/ScopedRef/package.json +6 -0
  104. package/Secret/package.json +6 -0
  105. package/SingleProducerAsyncInput/package.json +6 -0
  106. package/Sink/package.json +6 -0
  107. package/SortedMap/package.json +6 -0
  108. package/SortedSet/package.json +6 -0
  109. package/Stream/package.json +6 -0
  110. package/StreamEmit/package.json +6 -0
  111. package/StreamHaltStrategy/package.json +6 -0
  112. package/Streamable/package.json +6 -0
  113. package/String/package.json +6 -0
  114. package/Struct/package.json +6 -0
  115. package/SubscriptionRef/package.json +6 -0
  116. package/Supervisor/package.json +6 -0
  117. package/Symbol/package.json +6 -0
  118. package/SynchronizedRef/package.json +6 -0
  119. package/TArray/package.json +6 -0
  120. package/TDeferred/package.json +6 -0
  121. package/TMap/package.json +6 -0
  122. package/TPriorityQueue/package.json +6 -0
  123. package/TPubSub/package.json +6 -0
  124. package/TQueue/package.json +6 -0
  125. package/TRandom/package.json +6 -0
  126. package/TReentrantLock/package.json +6 -0
  127. package/TRef/package.json +6 -0
  128. package/TSemaphore/package.json +6 -0
  129. package/TSet/package.json +6 -0
  130. package/Take/package.json +6 -0
  131. package/TestAnnotation/package.json +6 -0
  132. package/TestAnnotationMap/package.json +6 -0
  133. package/TestAnnotations/package.json +6 -0
  134. package/TestClock/package.json +6 -0
  135. package/TestConfig/package.json +6 -0
  136. package/TestContext/package.json +6 -0
  137. package/TestLive/package.json +6 -0
  138. package/TestServices/package.json +6 -0
  139. package/TestSized/package.json +6 -0
  140. package/Tracer/package.json +6 -0
  141. package/Tuple/package.json +6 -0
  142. package/Types/package.json +6 -0
  143. package/Unify/package.json +6 -0
  144. package/UpstreamPullRequest/package.json +6 -0
  145. package/UpstreamPullStrategy/package.json +6 -0
  146. package/Utils/package.json +6 -0
  147. package/dist/cjs/BigDecimal.js +889 -0
  148. package/dist/cjs/BigDecimal.js.map +1 -0
  149. package/dist/cjs/BigInt.js +498 -0
  150. package/dist/cjs/BigInt.js.map +1 -0
  151. package/dist/cjs/Boolean.js +249 -0
  152. package/dist/cjs/Boolean.js.map +1 -0
  153. package/dist/cjs/Brand.js +207 -0
  154. package/dist/cjs/Brand.js.map +1 -0
  155. package/dist/cjs/Cache.js +69 -0
  156. package/dist/cjs/Cache.js.map +1 -0
  157. package/dist/cjs/Cause.js +499 -0
  158. package/dist/cjs/Cause.js.map +1 -0
  159. package/dist/cjs/Channel.js +866 -0
  160. package/dist/cjs/Channel.js.map +1 -0
  161. package/dist/cjs/ChildExecutorDecision.js +96 -0
  162. package/dist/cjs/ChildExecutorDecision.js.map +1 -0
  163. package/dist/cjs/Chunk.js +1062 -0
  164. package/dist/cjs/Chunk.js.map +1 -0
  165. package/dist/cjs/Clock.js +69 -0
  166. package/dist/cjs/Clock.js.map +1 -0
  167. package/dist/cjs/Config.js +311 -0
  168. package/dist/cjs/Config.js.map +1 -0
  169. package/dist/cjs/ConfigError.js +138 -0
  170. package/dist/cjs/ConfigError.js.map +1 -0
  171. package/dist/cjs/ConfigProvider.js +192 -0
  172. package/dist/cjs/ConfigProvider.js.map +1 -0
  173. package/dist/cjs/ConfigProviderPathPatch.js +62 -0
  174. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -0
  175. package/dist/cjs/Console.js +149 -0
  176. package/dist/cjs/Console.js.map +1 -0
  177. package/dist/cjs/Context.js +265 -0
  178. package/dist/cjs/Context.js.map +1 -0
  179. package/dist/cjs/Data.js +265 -0
  180. package/dist/cjs/Data.js.map +1 -0
  181. package/dist/cjs/DefaultServices.js +43 -0
  182. package/dist/cjs/DefaultServices.js.map +1 -0
  183. package/dist/cjs/Deferred.js +191 -0
  184. package/dist/cjs/Deferred.js.map +1 -0
  185. package/dist/cjs/Differ.js +164 -0
  186. package/dist/cjs/Differ.js.map +1 -0
  187. package/dist/cjs/Duration.js +476 -0
  188. package/dist/cjs/Duration.js.map +1 -0
  189. package/dist/cjs/Effect.js +2709 -0
  190. package/dist/cjs/Effect.js.map +1 -0
  191. package/dist/cjs/Effectable.js +82 -0
  192. package/dist/cjs/Effectable.js.map +1 -0
  193. package/dist/cjs/Either.js +466 -0
  194. package/dist/cjs/Either.js.map +1 -0
  195. package/dist/cjs/Encoding.js +138 -0
  196. package/dist/cjs/Encoding.js.map +1 -0
  197. package/dist/cjs/Equal.js +73 -0
  198. package/dist/cjs/Equal.js.map +1 -0
  199. package/dist/cjs/Equivalence.js +181 -0
  200. package/dist/cjs/Equivalence.js.map +1 -0
  201. package/dist/cjs/ExecutionStrategy.js +86 -0
  202. package/dist/cjs/ExecutionStrategy.js.map +1 -0
  203. package/dist/cjs/Exit.js +286 -0
  204. package/dist/cjs/Exit.js.map +1 -0
  205. package/dist/cjs/Fiber.js +370 -0
  206. package/dist/cjs/Fiber.js.map +1 -0
  207. package/dist/cjs/FiberId.js +146 -0
  208. package/dist/cjs/FiberId.js.map +1 -0
  209. package/dist/cjs/FiberRef.js +257 -0
  210. package/dist/cjs/FiberRef.js.map +1 -0
  211. package/dist/cjs/FiberRefs.js +115 -0
  212. package/dist/cjs/FiberRefs.js.map +1 -0
  213. package/dist/cjs/FiberRefsPatch.js +63 -0
  214. package/dist/cjs/FiberRefsPatch.js.map +1 -0
  215. package/dist/cjs/FiberStatus.js +83 -0
  216. package/dist/cjs/FiberStatus.js.map +1 -0
  217. package/dist/cjs/Function.js +417 -0
  218. package/dist/cjs/Function.js.map +1 -0
  219. package/dist/cjs/GlobalValue.js +28 -0
  220. package/dist/cjs/GlobalValue.js.map +1 -0
  221. package/dist/cjs/GroupBy.js +71 -0
  222. package/dist/cjs/GroupBy.js.map +1 -0
  223. package/dist/cjs/HKT.js +6 -0
  224. package/dist/cjs/HKT.js.map +1 -0
  225. package/dist/cjs/Hash.js +149 -0
  226. package/dist/cjs/Hash.js.map +1 -0
  227. package/dist/cjs/HashMap.js +287 -0
  228. package/dist/cjs/HashMap.js.map +1 -0
  229. package/dist/cjs/HashSet.js +223 -0
  230. package/dist/cjs/HashSet.js.map +1 -0
  231. package/dist/cjs/Inspectable.js +34 -0
  232. package/dist/cjs/Inspectable.js.map +1 -0
  233. package/dist/cjs/KeyedPool.js +107 -0
  234. package/dist/cjs/KeyedPool.js.map +1 -0
  235. package/dist/cjs/Layer.js +586 -0
  236. package/dist/cjs/Layer.js.map +1 -0
  237. package/dist/cjs/List.js +802 -0
  238. package/dist/cjs/List.js.map +1 -0
  239. package/dist/cjs/LogLevel.js +139 -0
  240. package/dist/cjs/LogLevel.js.map +1 -0
  241. package/dist/cjs/LogSpan.js +47 -0
  242. package/dist/cjs/LogSpan.js.map +1 -0
  243. package/dist/cjs/Logger.js +189 -0
  244. package/dist/cjs/Logger.js.map +1 -0
  245. package/dist/cjs/Match.js +217 -0
  246. package/dist/cjs/Match.js.map +1 -0
  247. package/dist/cjs/MergeDecision.js +66 -0
  248. package/dist/cjs/MergeDecision.js.map +1 -0
  249. package/dist/cjs/MergeState.js +89 -0
  250. package/dist/cjs/MergeState.js.map +1 -0
  251. package/dist/cjs/MergeStrategy.js +83 -0
  252. package/dist/cjs/MergeStrategy.js.map +1 -0
  253. package/dist/cjs/Metric.js +426 -0
  254. package/dist/cjs/Metric.js.map +1 -0
  255. package/dist/cjs/MetricBoundaries.js +64 -0
  256. package/dist/cjs/MetricBoundaries.js.map +1 -0
  257. package/dist/cjs/MetricHook.js +73 -0
  258. package/dist/cjs/MetricHook.js.map +1 -0
  259. package/dist/cjs/MetricKey.js +94 -0
  260. package/dist/cjs/MetricKey.js.map +1 -0
  261. package/dist/cjs/MetricKeyType.js +118 -0
  262. package/dist/cjs/MetricKeyType.js.map +1 -0
  263. package/dist/cjs/MetricLabel.js +48 -0
  264. package/dist/cjs/MetricLabel.js.map +1 -0
  265. package/dist/cjs/MetricPair.js +52 -0
  266. package/dist/cjs/MetricPair.js.map +1 -0
  267. package/dist/cjs/MetricPolling.js +90 -0
  268. package/dist/cjs/MetricPolling.js.map +1 -0
  269. package/dist/cjs/MetricRegistry.js +47 -0
  270. package/dist/cjs/MetricRegistry.js.map +1 -0
  271. package/dist/cjs/MetricState.js +118 -0
  272. package/dist/cjs/MetricState.js.map +1 -0
  273. package/dist/cjs/MutableHashMap.js +288 -0
  274. package/dist/cjs/MutableHashMap.js.map +1 -0
  275. package/dist/cjs/MutableHashSet.js +108 -0
  276. package/dist/cjs/MutableHashSet.js.map +1 -0
  277. package/dist/cjs/MutableList.js +285 -0
  278. package/dist/cjs/MutableList.js.map +1 -0
  279. package/dist/cjs/MutableQueue.js +197 -0
  280. package/dist/cjs/MutableQueue.js.map +1 -0
  281. package/dist/cjs/MutableRef.js +168 -0
  282. package/dist/cjs/MutableRef.js.map +1 -0
  283. package/dist/cjs/NonEmptyIterable.js +23 -0
  284. package/dist/cjs/NonEmptyIterable.js.map +1 -0
  285. package/dist/cjs/Number.js +407 -0
  286. package/dist/cjs/Number.js.map +1 -0
  287. package/dist/cjs/Option.js +950 -0
  288. package/dist/cjs/Option.js.map +1 -0
  289. package/dist/cjs/Order.js +258 -0
  290. package/dist/cjs/Order.js.map +1 -0
  291. package/dist/cjs/Ordering.js +81 -0
  292. package/dist/cjs/Ordering.js.map +1 -0
  293. package/dist/cjs/Pipeable.js +44 -0
  294. package/dist/cjs/Pipeable.js.map +1 -0
  295. package/dist/cjs/Pool.js +105 -0
  296. package/dist/cjs/Pool.js.map +1 -0
  297. package/dist/cjs/Predicate.js +640 -0
  298. package/dist/cjs/Predicate.js.map +1 -0
  299. package/dist/cjs/PrimaryKey.js +21 -0
  300. package/dist/cjs/PrimaryKey.js.map +1 -0
  301. package/dist/cjs/PubSub.js +151 -0
  302. package/dist/cjs/PubSub.js.map +1 -0
  303. package/dist/cjs/Queue.js +279 -0
  304. package/dist/cjs/Queue.js.map +1 -0
  305. package/dist/cjs/Random.js +91 -0
  306. package/dist/cjs/Random.js.map +1 -0
  307. package/dist/cjs/ReadonlyArray.js +1408 -0
  308. package/dist/cjs/ReadonlyArray.js.map +1 -0
  309. package/dist/cjs/ReadonlyRecord.js +829 -0
  310. package/dist/cjs/ReadonlyRecord.js.map +1 -0
  311. package/dist/cjs/RedBlackTree.js +290 -0
  312. package/dist/cjs/RedBlackTree.js.map +1 -0
  313. package/dist/cjs/Ref.js +108 -0
  314. package/dist/cjs/Ref.js.map +1 -0
  315. package/dist/cjs/Reloadable.js +90 -0
  316. package/dist/cjs/Reloadable.js.map +1 -0
  317. package/dist/cjs/Request.js +168 -0
  318. package/dist/cjs/Request.js.map +1 -0
  319. package/dist/cjs/RequestBlock.js +67 -0
  320. package/dist/cjs/RequestBlock.js.map +1 -0
  321. package/dist/cjs/RequestResolver.js +182 -0
  322. package/dist/cjs/RequestResolver.js.map +1 -0
  323. package/dist/cjs/Resource.js +75 -0
  324. package/dist/cjs/Resource.js.map +1 -0
  325. package/dist/cjs/Runtime.js +135 -0
  326. package/dist/cjs/Runtime.js.map +1 -0
  327. package/dist/cjs/RuntimeFlags.js +283 -0
  328. package/dist/cjs/RuntimeFlags.js.map +1 -0
  329. package/dist/cjs/RuntimeFlagsPatch.js +166 -0
  330. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -0
  331. package/dist/cjs/STM.js +1013 -0
  332. package/dist/cjs/STM.js.map +1 -0
  333. package/dist/cjs/Schedule.js +838 -0
  334. package/dist/cjs/Schedule.js.map +1 -0
  335. package/dist/cjs/ScheduleDecision.js +58 -0
  336. package/dist/cjs/ScheduleDecision.js.map +1 -0
  337. package/dist/cjs/ScheduleInterval.js +131 -0
  338. package/dist/cjs/ScheduleInterval.js.map +1 -0
  339. package/dist/cjs/ScheduleIntervals.js +109 -0
  340. package/dist/cjs/ScheduleIntervals.js.map +1 -0
  341. package/dist/cjs/Scheduler.js +332 -0
  342. package/dist/cjs/Scheduler.js.map +1 -0
  343. package/dist/cjs/Scope.js +114 -0
  344. package/dist/cjs/Scope.js.map +1 -0
  345. package/dist/cjs/ScopedCache.js +55 -0
  346. package/dist/cjs/ScopedCache.js.map +1 -0
  347. package/dist/cjs/ScopedRef.js +73 -0
  348. package/dist/cjs/ScopedRef.js.map +1 -0
  349. package/dist/cjs/Secret.js +68 -0
  350. package/dist/cjs/Secret.js.map +1 -0
  351. package/dist/cjs/SingleProducerAsyncInput.js +38 -0
  352. package/dist/cjs/SingleProducerAsyncInput.js.map +1 -0
  353. package/dist/cjs/Sink.js +884 -0
  354. package/dist/cjs/Sink.js.map +1 -0
  355. package/dist/cjs/SortedMap.js +190 -0
  356. package/dist/cjs/SortedMap.js.map +1 -0
  357. package/dist/cjs/SortedSet.js +269 -0
  358. package/dist/cjs/SortedSet.js.map +1 -0
  359. package/dist/cjs/Stream.js +2581 -0
  360. package/dist/cjs/Stream.js.map +1 -0
  361. package/dist/cjs/StreamEmit.js +6 -0
  362. package/dist/cjs/StreamEmit.js.map +1 -0
  363. package/dist/cjs/StreamHaltStrategy.js +87 -0
  364. package/dist/cjs/StreamHaltStrategy.js.map +1 -0
  365. package/dist/cjs/Streamable.js +69 -0
  366. package/dist/cjs/Streamable.js.map +1 -0
  367. package/dist/cjs/String.js +601 -0
  368. package/dist/cjs/String.js.map +1 -0
  369. package/dist/cjs/Struct.js +153 -0
  370. package/dist/cjs/Struct.js.map +1 -0
  371. package/dist/cjs/SubscriptionRef.js +147 -0
  372. package/dist/cjs/SubscriptionRef.js.map +1 -0
  373. package/dist/cjs/Supervisor.js +139 -0
  374. package/dist/cjs/Supervisor.js.map +1 -0
  375. package/dist/cjs/Symbol.js +58 -0
  376. package/dist/cjs/Symbol.js.map +1 -0
  377. package/dist/cjs/SynchronizedRef.js +150 -0
  378. package/dist/cjs/SynchronizedRef.js.map +1 -0
  379. package/dist/cjs/TArray.js +338 -0
  380. package/dist/cjs/TArray.js.map +1 -0
  381. package/dist/cjs/TDeferred.js +64 -0
  382. package/dist/cjs/TDeferred.js.map +1 -0
  383. package/dist/cjs/TMap.js +310 -0
  384. package/dist/cjs/TMap.js.map +1 -0
  385. package/dist/cjs/TPriorityQueue.js +167 -0
  386. package/dist/cjs/TPriorityQueue.js.map +1 -0
  387. package/dist/cjs/TPubSub.js +154 -0
  388. package/dist/cjs/TPubSub.js.map +1 -0
  389. package/dist/cjs/TQueue.js +261 -0
  390. package/dist/cjs/TQueue.js.map +1 -0
  391. package/dist/cjs/TRandom.js +96 -0
  392. package/dist/cjs/TRandom.js.map +1 -0
  393. package/dist/cjs/TReentrantLock.js +173 -0
  394. package/dist/cjs/TReentrantLock.js.map +1 -0
  395. package/dist/cjs/TRef.js +107 -0
  396. package/dist/cjs/TRef.js.map +1 -0
  397. package/dist/cjs/TSemaphore.js +97 -0
  398. package/dist/cjs/TSemaphore.js.map +1 -0
  399. package/dist/cjs/TSet.js +232 -0
  400. package/dist/cjs/TSet.js.map +1 -0
  401. package/dist/cjs/Take.js +179 -0
  402. package/dist/cjs/Take.js.map +1 -0
  403. package/dist/cjs/TestAnnotation.js +131 -0
  404. package/dist/cjs/TestAnnotation.js.map +1 -0
  405. package/dist/cjs/TestAnnotationMap.js +90 -0
  406. package/dist/cjs/TestAnnotationMap.js.map +1 -0
  407. package/dist/cjs/TestAnnotations.js +95 -0
  408. package/dist/cjs/TestAnnotations.js.map +1 -0
  409. package/dist/cjs/TestClock.js +389 -0
  410. package/dist/cjs/TestClock.js.map +1 -0
  411. package/dist/cjs/TestConfig.js +46 -0
  412. package/dist/cjs/TestConfig.js.map +1 -0
  413. package/dist/cjs/TestContext.js +52 -0
  414. package/dist/cjs/TestContext.js.map +1 -0
  415. package/dist/cjs/TestLive.js +63 -0
  416. package/dist/cjs/TestLive.js.map +1 -0
  417. package/dist/cjs/TestServices.js +279 -0
  418. package/dist/cjs/TestServices.js.map +1 -0
  419. package/dist/cjs/TestSized.js +70 -0
  420. package/dist/cjs/TestSized.js.map +1 -0
  421. package/dist/cjs/Tracer.js +63 -0
  422. package/dist/cjs/Tracer.js.map +1 -0
  423. package/dist/cjs/Tuple.js +191 -0
  424. package/dist/cjs/Tuple.js.map +1 -0
  425. package/dist/cjs/Types.js +6 -0
  426. package/dist/cjs/Types.js.map +1 -0
  427. package/dist/cjs/Unify.js +16 -0
  428. package/dist/cjs/Unify.js.map +1 -0
  429. package/dist/cjs/UpstreamPullRequest.js +83 -0
  430. package/dist/cjs/UpstreamPullRequest.js.map +1 -0
  431. package/dist/cjs/UpstreamPullStrategy.js +83 -0
  432. package/dist/cjs/UpstreamPullStrategy.js.map +1 -0
  433. package/dist/cjs/Utils.js +289 -0
  434. package/dist/cjs/Utils.js.map +1 -0
  435. package/dist/cjs/index.js +357 -0
  436. package/dist/cjs/index.js.map +1 -0
  437. package/dist/cjs/internal/Iterable.js +61 -0
  438. package/dist/cjs/internal/Iterable.js.map +1 -0
  439. package/dist/cjs/internal/blockedRequests.js +389 -0
  440. package/dist/cjs/internal/blockedRequests.js.map +1 -0
  441. package/dist/cjs/internal/cache.js +511 -0
  442. package/dist/cjs/internal/cache.js.map +1 -0
  443. package/dist/cjs/internal/cause.js +931 -0
  444. package/dist/cjs/internal/cause.js.map +1 -0
  445. package/dist/cjs/internal/channel/channelExecutor.js +722 -0
  446. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -0
  447. package/dist/cjs/internal/channel/channelState.js +101 -0
  448. package/dist/cjs/internal/channel/channelState.js.map +1 -0
  449. package/dist/cjs/internal/channel/childExecutorDecision.js +98 -0
  450. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -0
  451. package/dist/cjs/internal/channel/continuation.js +81 -0
  452. package/dist/cjs/internal/channel/continuation.js.map +1 -0
  453. package/dist/cjs/internal/channel/mergeDecision.js +88 -0
  454. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -0
  455. package/dist/cjs/internal/channel/mergeState.js +107 -0
  456. package/dist/cjs/internal/channel/mergeState.js.map +1 -0
  457. package/dist/cjs/internal/channel/mergeStrategy.js +82 -0
  458. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -0
  459. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +195 -0
  460. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -0
  461. package/dist/cjs/internal/channel/subexecutor.js +187 -0
  462. package/dist/cjs/internal/channel/subexecutor.js.map +1 -0
  463. package/dist/cjs/internal/channel/upstreamPullRequest.js +88 -0
  464. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -0
  465. package/dist/cjs/internal/channel/upstreamPullStrategy.js +88 -0
  466. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -0
  467. package/dist/cjs/internal/channel.js +647 -0
  468. package/dist/cjs/internal/channel.js.map +1 -0
  469. package/dist/cjs/internal/clock.js +106 -0
  470. package/dist/cjs/internal/clock.js.map +1 -0
  471. package/dist/cjs/internal/completedRequestMap.js +11 -0
  472. package/dist/cjs/internal/completedRequestMap.js.map +1 -0
  473. package/dist/cjs/internal/concurrency.js +61 -0
  474. package/dist/cjs/internal/concurrency.js.map +1 -0
  475. package/dist/cjs/internal/config.js +371 -0
  476. package/dist/cjs/internal/config.js.map +1 -0
  477. package/dist/cjs/internal/configError.js +295 -0
  478. package/dist/cjs/internal/configError.js.map +1 -0
  479. package/dist/cjs/internal/configProvider/pathPatch.js +107 -0
  480. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -0
  481. package/dist/cjs/internal/configProvider.js +469 -0
  482. package/dist/cjs/internal/configProvider.js.map +1 -0
  483. package/dist/cjs/internal/console.js +103 -0
  484. package/dist/cjs/internal/console.js.map +1 -0
  485. package/dist/cjs/internal/context.js +228 -0
  486. package/dist/cjs/internal/context.js.map +1 -0
  487. package/dist/cjs/internal/core-effect.js +848 -0
  488. package/dist/cjs/internal/core-effect.js.map +1 -0
  489. package/dist/cjs/internal/core-stream.js +283 -0
  490. package/dist/cjs/internal/core-stream.js.map +1 -0
  491. package/dist/cjs/internal/core.js +1771 -0
  492. package/dist/cjs/internal/core.js.map +1 -0
  493. package/dist/cjs/internal/data.js +61 -0
  494. package/dist/cjs/internal/data.js.map +1 -0
  495. package/dist/cjs/internal/dataSource.js +109 -0
  496. package/dist/cjs/internal/dataSource.js.map +1 -0
  497. package/dist/cjs/internal/defaultServices/console.js +123 -0
  498. package/dist/cjs/internal/defaultServices/console.js.map +1 -0
  499. package/dist/cjs/internal/defaultServices.js +104 -0
  500. package/dist/cjs/internal/defaultServices.js.map +1 -0
  501. package/dist/cjs/internal/deferred.js +60 -0
  502. package/dist/cjs/internal/deferred.js.map +1 -0
  503. package/dist/cjs/internal/differ/chunkPatch.js +163 -0
  504. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -0
  505. package/dist/cjs/internal/differ/contextPatch.js +176 -0
  506. package/dist/cjs/internal/differ/contextPatch.js.map +1 -0
  507. package/dist/cjs/internal/differ/hashMapPatch.js +163 -0
  508. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -0
  509. package/dist/cjs/internal/differ/hashSetPatch.js +137 -0
  510. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -0
  511. package/dist/cjs/internal/differ/orPatch.js +208 -0
  512. package/dist/cjs/internal/differ/orPatch.js.map +1 -0
  513. package/dist/cjs/internal/differ/readonlyArrayPatch.js +160 -0
  514. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -0
  515. package/dist/cjs/internal/differ.js +169 -0
  516. package/dist/cjs/internal/differ.js.map +1 -0
  517. package/dist/cjs/internal/effect/circular.js +321 -0
  518. package/dist/cjs/internal/effect/circular.js.map +1 -0
  519. package/dist/cjs/internal/effectable.js +140 -0
  520. package/dist/cjs/internal/effectable.js.map +1 -0
  521. package/dist/cjs/internal/either.js +124 -0
  522. package/dist/cjs/internal/either.js.map +1 -0
  523. package/dist/cjs/internal/encoding/base64.js +101 -0
  524. package/dist/cjs/internal/encoding/base64.js.map +1 -0
  525. package/dist/cjs/internal/encoding/base64Url.js +53 -0
  526. package/dist/cjs/internal/encoding/base64Url.js.map +1 -0
  527. package/dist/cjs/internal/encoding/common.js +30 -0
  528. package/dist/cjs/internal/encoding/common.js.map +1 -0
  529. package/dist/cjs/internal/encoding/hex.js +81 -0
  530. package/dist/cjs/internal/encoding/hex.js.map +1 -0
  531. package/dist/cjs/internal/executionStrategy.js +54 -0
  532. package/dist/cjs/internal/executionStrategy.js.map +1 -0
  533. package/dist/cjs/internal/fiber.js +269 -0
  534. package/dist/cjs/internal/fiber.js.map +1 -0
  535. package/dist/cjs/internal/fiberId.js +259 -0
  536. package/dist/cjs/internal/fiberId.js.map +1 -0
  537. package/dist/cjs/internal/fiberMessage.js +38 -0
  538. package/dist/cjs/internal/fiberMessage.js.map +1 -0
  539. package/dist/cjs/internal/fiberRefs/patch.js +139 -0
  540. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -0
  541. package/dist/cjs/internal/fiberRefs.js +227 -0
  542. package/dist/cjs/internal/fiberRefs.js.map +1 -0
  543. package/dist/cjs/internal/fiberRuntime.js +1921 -0
  544. package/dist/cjs/internal/fiberRuntime.js.map +1 -0
  545. package/dist/cjs/internal/fiberScope.js +76 -0
  546. package/dist/cjs/internal/fiberScope.js.map +1 -0
  547. package/dist/cjs/internal/fiberStatus.js +108 -0
  548. package/dist/cjs/internal/fiberStatus.js.map +1 -0
  549. package/dist/cjs/internal/groupBy.js +235 -0
  550. package/dist/cjs/internal/groupBy.js.map +1 -0
  551. package/dist/cjs/internal/hashMap/array.js +57 -0
  552. package/dist/cjs/internal/hashMap/array.js.map +1 -0
  553. package/dist/cjs/internal/hashMap/bitwise.js +38 -0
  554. package/dist/cjs/internal/hashMap/bitwise.js.map +1 -0
  555. package/dist/cjs/internal/hashMap/config.js +17 -0
  556. package/dist/cjs/internal/hashMap/config.js.map +1 -0
  557. package/dist/cjs/internal/hashMap/keySet.js +12 -0
  558. package/dist/cjs/internal/hashMap/keySet.js.map +1 -0
  559. package/dist/cjs/internal/hashMap/node.js +297 -0
  560. package/dist/cjs/internal/hashMap/node.js.map +1 -0
  561. package/dist/cjs/internal/hashMap.js +381 -0
  562. package/dist/cjs/internal/hashMap.js.map +1 -0
  563. package/dist/cjs/internal/hashSet.js +222 -0
  564. package/dist/cjs/internal/hashSet.js.map +1 -0
  565. package/dist/cjs/internal/internalize.js +15 -0
  566. package/dist/cjs/internal/internalize.js.map +1 -0
  567. package/dist/cjs/internal/keyedPool.js +194 -0
  568. package/dist/cjs/internal/keyedPool.js.map +1 -0
  569. package/dist/cjs/internal/layer/circular.js +101 -0
  570. package/dist/cjs/internal/layer/circular.js.map +1 -0
  571. package/dist/cjs/internal/layer.js +526 -0
  572. package/dist/cjs/internal/layer.js.map +1 -0
  573. package/dist/cjs/internal/logSpan.js +21 -0
  574. package/dist/cjs/internal/logSpan.js.map +1 -0
  575. package/dist/cjs/internal/logger-circular.js +50 -0
  576. package/dist/cjs/internal/logger-circular.js.map +1 -0
  577. package/dist/cjs/internal/logger.js +229 -0
  578. package/dist/cjs/internal/logger.js.map +1 -0
  579. package/dist/cjs/internal/matcher.js +337 -0
  580. package/dist/cjs/internal/matcher.js.map +1 -0
  581. package/dist/cjs/internal/metric/boundaries.js +77 -0
  582. package/dist/cjs/internal/metric/boundaries.js.map +1 -0
  583. package/dist/cjs/internal/metric/hook.js +387 -0
  584. package/dist/cjs/internal/metric/hook.js.map +1 -0
  585. package/dist/cjs/internal/metric/key.js +97 -0
  586. package/dist/cjs/internal/metric/key.js.map +1 -0
  587. package/dist/cjs/internal/metric/keyType.js +243 -0
  588. package/dist/cjs/internal/metric/keyType.js.map +1 -0
  589. package/dist/cjs/internal/metric/label.js +69 -0
  590. package/dist/cjs/internal/metric/label.js.map +1 -0
  591. package/dist/cjs/internal/metric/pair.js +40 -0
  592. package/dist/cjs/internal/metric/pair.js.map +1 -0
  593. package/dist/cjs/internal/metric/polling.js +99 -0
  594. package/dist/cjs/internal/metric/polling.js.map +1 -0
  595. package/dist/cjs/internal/metric/registry.js +137 -0
  596. package/dist/cjs/internal/metric/registry.js.map +1 -0
  597. package/dist/cjs/internal/metric/state.js +229 -0
  598. package/dist/cjs/internal/metric/state.js.map +1 -0
  599. package/dist/cjs/internal/metric.js +227 -0
  600. package/dist/cjs/internal/metric.js.map +1 -0
  601. package/dist/cjs/internal/opCodes/cause.js +19 -0
  602. package/dist/cjs/internal/opCodes/cause.js.map +1 -0
  603. package/dist/cjs/internal/opCodes/channel.js +35 -0
  604. package/dist/cjs/internal/opCodes/channel.js.map +1 -0
  605. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js +13 -0
  606. package/dist/cjs/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  607. package/dist/cjs/internal/opCodes/channelMergeDecision.js +11 -0
  608. package/dist/cjs/internal/opCodes/channelMergeDecision.js.map +1 -0
  609. package/dist/cjs/internal/opCodes/channelMergeState.js +13 -0
  610. package/dist/cjs/internal/opCodes/channelMergeState.js.map +1 -0
  611. package/dist/cjs/internal/opCodes/channelMergeStrategy.js +11 -0
  612. package/dist/cjs/internal/opCodes/channelMergeStrategy.js.map +1 -0
  613. package/dist/cjs/internal/opCodes/channelState.js +15 -0
  614. package/dist/cjs/internal/opCodes/channelState.js.map +1 -0
  615. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js +11 -0
  616. package/dist/cjs/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  617. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js +11 -0
  618. package/dist/cjs/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  619. package/dist/cjs/internal/opCodes/config.js +29 -0
  620. package/dist/cjs/internal/opCodes/config.js.map +1 -0
  621. package/dist/cjs/internal/opCodes/configError.js +19 -0
  622. package/dist/cjs/internal/opCodes/configError.js.map +1 -0
  623. package/dist/cjs/internal/opCodes/continuation.js +11 -0
  624. package/dist/cjs/internal/opCodes/continuation.js.map +1 -0
  625. package/dist/cjs/internal/opCodes/deferred.js +11 -0
  626. package/dist/cjs/internal/opCodes/deferred.js.map +1 -0
  627. package/dist/cjs/internal/opCodes/effect.js +35 -0
  628. package/dist/cjs/internal/opCodes/effect.js.map +1 -0
  629. package/dist/cjs/internal/opCodes/layer.js +25 -0
  630. package/dist/cjs/internal/opCodes/layer.js.map +1 -0
  631. package/dist/cjs/internal/opCodes/streamHaltStrategy.js +15 -0
  632. package/dist/cjs/internal/opCodes/streamHaltStrategy.js.map +1 -0
  633. package/dist/cjs/internal/option.js +105 -0
  634. package/dist/cjs/internal/option.js.map +1 -0
  635. package/dist/cjs/internal/pool.js +296 -0
  636. package/dist/cjs/internal/pool.js.map +1 -0
  637. package/dist/cjs/internal/pubsub.js +1125 -0
  638. package/dist/cjs/internal/pubsub.js.map +1 -0
  639. package/dist/cjs/internal/query.js +126 -0
  640. package/dist/cjs/internal/query.js.map +1 -0
  641. package/dist/cjs/internal/queue.js +537 -0
  642. package/dist/cjs/internal/queue.js.map +1 -0
  643. package/dist/cjs/internal/random.js +88 -0
  644. package/dist/cjs/internal/random.js.map +1 -0
  645. package/dist/cjs/internal/readonlyArray.js +13 -0
  646. package/dist/cjs/internal/readonlyArray.js.map +1 -0
  647. package/dist/cjs/internal/redBlackTree/iterator.js +224 -0
  648. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -0
  649. package/dist/cjs/internal/redBlackTree/node.js +55 -0
  650. package/dist/cjs/internal/redBlackTree/node.js.map +1 -0
  651. package/dist/cjs/internal/redBlackTree.js +1056 -0
  652. package/dist/cjs/internal/redBlackTree.js.map +1 -0
  653. package/dist/cjs/internal/ref.js +140 -0
  654. package/dist/cjs/internal/ref.js.map +1 -0
  655. package/dist/cjs/internal/reloadable.js +88 -0
  656. package/dist/cjs/internal/reloadable.js.map +1 -0
  657. package/dist/cjs/internal/request.js +127 -0
  658. package/dist/cjs/internal/request.js.map +1 -0
  659. package/dist/cjs/internal/resource.js +63 -0
  660. package/dist/cjs/internal/resource.js.map +1 -0
  661. package/dist/cjs/internal/ringBuffer.js +88 -0
  662. package/dist/cjs/internal/ringBuffer.js.map +1 -0
  663. package/dist/cjs/internal/runtime.js +288 -0
  664. package/dist/cjs/internal/runtime.js.map +1 -0
  665. package/dist/cjs/internal/runtimeFlags.js +150 -0
  666. package/dist/cjs/internal/runtimeFlags.js.map +1 -0
  667. package/dist/cjs/internal/runtimeFlagsPatch.js +52 -0
  668. package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -0
  669. package/dist/cjs/internal/schedule/decision.js +68 -0
  670. package/dist/cjs/internal/schedule/decision.js.map +1 -0
  671. package/dist/cjs/internal/schedule/interval.js +107 -0
  672. package/dist/cjs/internal/schedule/interval.js.map +1 -0
  673. package/dist/cjs/internal/schedule/intervals.js +157 -0
  674. package/dist/cjs/internal/schedule/intervals.js.map +1 -0
  675. package/dist/cjs/internal/schedule.js +802 -0
  676. package/dist/cjs/internal/schedule.js.map +1 -0
  677. package/dist/cjs/internal/scopedCache.js +422 -0
  678. package/dist/cjs/internal/scopedCache.js.map +1 -0
  679. package/dist/cjs/internal/scopedRef.js +75 -0
  680. package/dist/cjs/internal/scopedRef.js.map +1 -0
  681. package/dist/cjs/internal/secret.js +90 -0
  682. package/dist/cjs/internal/secret.js.map +1 -0
  683. package/dist/cjs/internal/singleShotGen.js +37 -0
  684. package/dist/cjs/internal/singleShotGen.js.map +1 -0
  685. package/dist/cjs/internal/sink.js +901 -0
  686. package/dist/cjs/internal/sink.js.map +1 -0
  687. package/dist/cjs/internal/stack.js +17 -0
  688. package/dist/cjs/internal/stack.js.map +1 -0
  689. package/dist/cjs/internal/stm/core.js +546 -0
  690. package/dist/cjs/internal/stm/core.js.map +1 -0
  691. package/dist/cjs/internal/stm/opCodes/stm.js +31 -0
  692. package/dist/cjs/internal/stm/opCodes/stm.js.map +1 -0
  693. package/dist/cjs/internal/stm/opCodes/stmState.js +13 -0
  694. package/dist/cjs/internal/stm/opCodes/stmState.js.map +1 -0
  695. package/dist/cjs/internal/stm/opCodes/strategy.js +13 -0
  696. package/dist/cjs/internal/stm/opCodes/strategy.js.map +1 -0
  697. package/dist/cjs/internal/stm/opCodes/tExit.js +17 -0
  698. package/dist/cjs/internal/stm/opCodes/tExit.js.map +1 -0
  699. package/dist/cjs/internal/stm/opCodes/tryCommit.js +11 -0
  700. package/dist/cjs/internal/stm/opCodes/tryCommit.js.map +1 -0
  701. package/dist/cjs/internal/stm/stm/entry.js +81 -0
  702. package/dist/cjs/internal/stm/stm/entry.js.map +1 -0
  703. package/dist/cjs/internal/stm/stm/journal.js +128 -0
  704. package/dist/cjs/internal/stm/stm/journal.js.map +1 -0
  705. package/dist/cjs/internal/stm/stm/opCodes/stm.js +31 -0
  706. package/dist/cjs/internal/stm/stm/opCodes/stm.js.map +1 -0
  707. package/dist/cjs/internal/stm/stm/opCodes/stmState.js +13 -0
  708. package/dist/cjs/internal/stm/stm/opCodes/stmState.js.map +1 -0
  709. package/dist/cjs/internal/stm/stm/opCodes/strategy.js +13 -0
  710. package/dist/cjs/internal/stm/stm/opCodes/strategy.js.map +1 -0
  711. package/dist/cjs/internal/stm/stm/opCodes/tExit.js +17 -0
  712. package/dist/cjs/internal/stm/stm/opCodes/tExit.js.map +1 -0
  713. package/dist/cjs/internal/stm/stm/opCodes/tryCommit.js +11 -0
  714. package/dist/cjs/internal/stm/stm/opCodes/tryCommit.js.map +1 -0
  715. package/dist/cjs/internal/stm/stm/stmState.js +124 -0
  716. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -0
  717. package/dist/cjs/internal/stm/stm/tExit.js +141 -0
  718. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -0
  719. package/dist/cjs/internal/stm/stm/tryCommit.js +49 -0
  720. package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -0
  721. package/dist/cjs/internal/stm/stm/txnId.js +18 -0
  722. package/dist/cjs/internal/stm/stm/txnId.js.map +1 -0
  723. package/dist/cjs/internal/stm/stm/versioned.js +15 -0
  724. package/dist/cjs/internal/stm/stm/versioned.js.map +1 -0
  725. package/dist/cjs/internal/stm/stm.js +553 -0
  726. package/dist/cjs/internal/stm/stm.js.map +1 -0
  727. package/dist/cjs/internal/stm/tArray.js +282 -0
  728. package/dist/cjs/internal/stm/tArray.js.map +1 -0
  729. package/dist/cjs/internal/stm/tDeferred.js +73 -0
  730. package/dist/cjs/internal/stm/tDeferred.js.map +1 -0
  731. package/dist/cjs/internal/stm/tMap.js +470 -0
  732. package/dist/cjs/internal/stm/tMap.js.map +1 -0
  733. package/dist/cjs/internal/stm/tPriorityQueue.js +180 -0
  734. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -0
  735. package/dist/cjs/internal/stm/tPubSub.js +421 -0
  736. package/dist/cjs/internal/stm/tPubSub.js.map +1 -0
  737. package/dist/cjs/internal/stm/tQueue.js +309 -0
  738. package/dist/cjs/internal/stm/tQueue.js.map +1 -0
  739. package/dist/cjs/internal/stm/tRandom.js +116 -0
  740. package/dist/cjs/internal/stm/tRandom.js.map +1 -0
  741. package/dist/cjs/internal/stm/tReentrantLock.js +239 -0
  742. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -0
  743. package/dist/cjs/internal/stm/tRef.js +130 -0
  744. package/dist/cjs/internal/stm/tRef.js.map +1 -0
  745. package/dist/cjs/internal/stm/tSemaphore.js +96 -0
  746. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -0
  747. package/dist/cjs/internal/stm/tSet.js +128 -0
  748. package/dist/cjs/internal/stm/tSet.js.map +1 -0
  749. package/dist/cjs/internal/stream/debounceState.js +29 -0
  750. package/dist/cjs/internal/stream/debounceState.js.map +1 -0
  751. package/dist/cjs/internal/stream/emit.js +81 -0
  752. package/dist/cjs/internal/stream/emit.js.map +1 -0
  753. package/dist/cjs/internal/stream/haltStrategy.js +99 -0
  754. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -0
  755. package/dist/cjs/internal/stream/handoff.js +89 -0
  756. package/dist/cjs/internal/stream/handoff.js.map +1 -0
  757. package/dist/cjs/internal/stream/handoffSignal.js +31 -0
  758. package/dist/cjs/internal/stream/handoffSignal.js.map +1 -0
  759. package/dist/cjs/internal/stream/pull.js +58 -0
  760. package/dist/cjs/internal/stream/pull.js.map +1 -0
  761. package/dist/cjs/internal/stream/sinkEndReason.js +19 -0
  762. package/dist/cjs/internal/stream/sinkEndReason.js.map +1 -0
  763. package/dist/cjs/internal/stream/zipAllState.js +41 -0
  764. package/dist/cjs/internal/stream/zipAllState.js.map +1 -0
  765. package/dist/cjs/internal/stream/zipChunksState.js +29 -0
  766. package/dist/cjs/internal/stream/zipChunksState.js.map +1 -0
  767. package/dist/cjs/internal/stream.js +2833 -0
  768. package/dist/cjs/internal/stream.js.map +1 -0
  769. package/dist/cjs/internal/string-utils.js +90 -0
  770. package/dist/cjs/internal/string-utils.js.map +1 -0
  771. package/dist/cjs/internal/subscriptionRef.js +89 -0
  772. package/dist/cjs/internal/subscriptionRef.js.map +1 -0
  773. package/dist/cjs/internal/supervisor/patch.js +159 -0
  774. package/dist/cjs/internal/supervisor/patch.js.map +1 -0
  775. package/dist/cjs/internal/supervisor.js +246 -0
  776. package/dist/cjs/internal/supervisor.js.map +1 -0
  777. package/dist/cjs/internal/synchronizedRef.js +75 -0
  778. package/dist/cjs/internal/synchronizedRef.js.map +1 -0
  779. package/dist/cjs/internal/take.js +154 -0
  780. package/dist/cjs/internal/take.js.map +1 -0
  781. package/dist/cjs/internal/testing/sleep.js +14 -0
  782. package/dist/cjs/internal/testing/sleep.js.map +1 -0
  783. package/dist/cjs/internal/testing/suspendedWarningData.js +58 -0
  784. package/dist/cjs/internal/testing/suspendedWarningData.js.map +1 -0
  785. package/dist/cjs/internal/testing/warningData.js +59 -0
  786. package/dist/cjs/internal/testing/warningData.js.map +1 -0
  787. package/dist/cjs/internal/timeout.js +24 -0
  788. package/dist/cjs/internal/timeout.js.map +1 -0
  789. package/dist/cjs/internal/tracer.js +109 -0
  790. package/dist/cjs/internal/tracer.js.map +1 -0
  791. package/dist/cjs/internal/version.js +8 -0
  792. package/dist/cjs/internal/version.js.map +1 -0
  793. package/dist/dts/BigDecimal.d.ts +644 -0
  794. package/dist/dts/BigDecimal.d.ts.map +1 -0
  795. package/dist/dts/BigInt.d.ts +477 -0
  796. package/dist/dts/BigInt.d.ts.map +1 -0
  797. package/dist/dts/Boolean.d.ts +229 -0
  798. package/dist/dts/Boolean.d.ts.map +1 -0
  799. package/dist/dts/Brand.d.ts +230 -0
  800. package/dist/dts/Brand.d.ts.map +1 -0
  801. package/dist/dts/Cache.d.ts +220 -0
  802. package/dist/dts/Cache.d.ts.map +1 -0
  803. package/dist/dts/Cause.d.ts +786 -0
  804. package/dist/dts/Cause.d.ts.map +1 -0
  805. package/dist/dts/Channel.d.ts +1178 -0
  806. package/dist/dts/Channel.d.ts.map +1 -0
  807. package/dist/dts/ChildExecutorDecision.d.ts +123 -0
  808. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -0
  809. package/dist/dts/Chunk.d.ts +793 -0
  810. package/dist/dts/Chunk.d.ts.map +1 -0
  811. package/dist/dts/Clock.d.ts +97 -0
  812. package/dist/dts/Clock.d.ts.map +1 -0
  813. package/dist/dts/Config.d.ts +402 -0
  814. package/dist/dts/Config.d.ts.map +1 -0
  815. package/dist/dts/ConfigError.d.ts +219 -0
  816. package/dist/dts/ConfigError.d.ts.map +1 -0
  817. package/dist/dts/ConfigProvider.d.ts +284 -0
  818. package/dist/dts/ConfigProvider.d.ts.map +1 -0
  819. package/dist/dts/ConfigProviderPathPatch.d.ts +86 -0
  820. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -0
  821. package/dist/dts/Console.d.ts +202 -0
  822. package/dist/dts/Console.d.ts.map +1 -0
  823. package/dist/dts/Context.d.ts +340 -0
  824. package/dist/dts/Context.d.ts.map +1 -0
  825. package/dist/dts/Data.d.ts +383 -0
  826. package/dist/dts/Data.d.ts.map +1 -0
  827. package/dist/dts/DefaultServices.d.ts +26 -0
  828. package/dist/dts/DefaultServices.d.ts.map +1 -0
  829. package/dist/dts/Deferred.d.ts +248 -0
  830. package/dist/dts/Deferred.d.ts.map +1 -0
  831. package/dist/dts/Differ.d.ts +341 -0
  832. package/dist/dts/Differ.d.ts.map +1 -0
  833. package/dist/dts/Duration.d.ts +288 -0
  834. package/dist/dts/Duration.d.ts.map +1 -0
  835. package/dist/dts/Effect.d.ts +3861 -0
  836. package/dist/dts/Effect.d.ts.map +1 -0
  837. package/dist/dts/Effectable.d.ts +93 -0
  838. package/dist/dts/Effectable.d.ts.map +1 -0
  839. package/dist/dts/Either.d.ts +505 -0
  840. package/dist/dts/Either.d.ts.map +1 -0
  841. package/dist/dts/Encoding.d.ts +110 -0
  842. package/dist/dts/Encoding.d.ts.map +1 -0
  843. package/dist/dts/Equal.d.ts +34 -0
  844. package/dist/dts/Equal.d.ts.map +1 -0
  845. package/dist/dts/Equivalence.d.ts +134 -0
  846. package/dist/dts/Equivalence.d.ts.map +1 -0
  847. package/dist/dts/ExecutionStrategy.d.ts +100 -0
  848. package/dist/dts/ExecutionStrategy.d.ts.map +1 -0
  849. package/dist/dts/Exit.d.ts +408 -0
  850. package/dist/dts/Exit.d.ts.map +1 -0
  851. package/dist/dts/Fiber.d.ts +570 -0
  852. package/dist/dts/Fiber.d.ts.map +1 -0
  853. package/dist/dts/FiberId.d.ts +165 -0
  854. package/dist/dts/FiberId.d.ts.map +1 -0
  855. package/dist/dts/FiberRef.d.ts +313 -0
  856. package/dist/dts/FiberRef.d.ts.map +1 -0
  857. package/dist/dts/FiberRefs.d.ts +172 -0
  858. package/dist/dts/FiberRefs.d.ts.map +1 -0
  859. package/dist/dts/FiberRefsPatch.d.ts +95 -0
  860. package/dist/dts/FiberRefsPatch.d.ts.map +1 -0
  861. package/dist/dts/FiberStatus.d.ts +94 -0
  862. package/dist/dts/FiberStatus.d.ts.map +1 -0
  863. package/dist/dts/Function.d.ts +371 -0
  864. package/dist/dts/Function.d.ts.map +1 -0
  865. package/dist/dts/GlobalValue.d.ts +5 -0
  866. package/dist/dts/GlobalValue.d.ts.map +1 -0
  867. package/dist/dts/GroupBy.d.ts +87 -0
  868. package/dist/dts/GroupBy.d.ts.map +1 -0
  869. package/dist/dts/HKT.d.ts +41 -0
  870. package/dist/dts/HKT.d.ts.map +1 -0
  871. package/dist/dts/Hash.d.ts +63 -0
  872. package/dist/dts/Hash.d.ts.map +1 -0
  873. package/dist/dts/HashMap.d.ts +377 -0
  874. package/dist/dts/HashMap.d.ts.map +1 -0
  875. package/dist/dts/HashSet.d.ts +267 -0
  876. package/dist/dts/HashSet.d.ts.map +1 -0
  877. package/dist/dts/Inspectable.d.ts +31 -0
  878. package/dist/dts/Inspectable.d.ts.map +1 -0
  879. package/dist/dts/KeyedPool.d.ts +148 -0
  880. package/dist/dts/KeyedPool.d.ts.map +1 -0
  881. package/dist/dts/Layer.d.ts +764 -0
  882. package/dist/dts/Layer.d.ts.map +1 -0
  883. package/dist/dts/List.d.ts +485 -0
  884. package/dist/dts/List.d.ts.map +1 -0
  885. package/dist/dts/LogLevel.d.ts +203 -0
  886. package/dist/dts/LogLevel.d.ts.map +1 -0
  887. package/dist/dts/LogSpan.d.ts +19 -0
  888. package/dist/dts/LogSpan.d.ts.map +1 -0
  889. package/dist/dts/Logger.d.ts +248 -0
  890. package/dist/dts/Logger.d.ts.map +1 -0
  891. package/dist/dts/Match.d.ts +424 -0
  892. package/dist/dts/Match.d.ts.map +1 -0
  893. package/dist/dts/MergeDecision.d.ts +78 -0
  894. package/dist/dts/MergeDecision.d.ts.map +1 -0
  895. package/dist/dts/MergeState.d.ts +122 -0
  896. package/dist/dts/MergeState.d.ts.map +1 -0
  897. package/dist/dts/MergeStrategy.d.ts +92 -0
  898. package/dist/dts/MergeStrategy.d.ts.map +1 -0
  899. package/dist/dts/Metric.d.ts +604 -0
  900. package/dist/dts/Metric.d.ts.map +1 -0
  901. package/dist/dts/MetricBoundaries.d.ts +58 -0
  902. package/dist/dts/MetricBoundaries.d.ts.map +1 -0
  903. package/dist/dts/MetricHook.d.ts +121 -0
  904. package/dist/dts/MetricHook.d.ts.map +1 -0
  905. package/dist/dts/MetricKey.d.ts +171 -0
  906. package/dist/dts/MetricKey.d.ts.map +1 -0
  907. package/dist/dts/MetricKeyType.d.ts +221 -0
  908. package/dist/dts/MetricKeyType.d.ts.map +1 -0
  909. package/dist/dts/MetricLabel.d.ts +42 -0
  910. package/dist/dts/MetricLabel.d.ts.map +1 -0
  911. package/dist/dts/MetricPair.d.ts +54 -0
  912. package/dist/dts/MetricPair.d.ts.map +1 -0
  913. package/dist/dts/MetricPolling.d.ts +111 -0
  914. package/dist/dts/MetricPolling.d.ts.map +1 -0
  915. package/dist/dts/MetricRegistry.d.ts +34 -0
  916. package/dist/dts/MetricRegistry.d.ts.map +1 -0
  917. package/dist/dts/MetricState.d.ts +222 -0
  918. package/dist/dts/MetricState.d.ts.map +1 -0
  919. package/dist/dts/MutableHashMap.d.ts +89 -0
  920. package/dist/dts/MutableHashMap.d.ts.map +1 -0
  921. package/dist/dts/MutableHashSet.d.ts +63 -0
  922. package/dist/dts/MutableHashSet.d.ts.map +1 -0
  923. package/dist/dts/MutableList.d.ts +114 -0
  924. package/dist/dts/MutableList.d.ts.map +1 -0
  925. package/dist/dts/MutableQueue.d.ts +127 -0
  926. package/dist/dts/MutableQueue.d.ts.map +1 -0
  927. package/dist/dts/MutableRef.d.ts +118 -0
  928. package/dist/dts/MutableRef.d.ts.map +1 -0
  929. package/dist/dts/NonEmptyIterable.d.ts +21 -0
  930. package/dist/dts/NonEmptyIterable.d.ts.map +1 -0
  931. package/dist/dts/Number.d.ts +400 -0
  932. package/dist/dts/Number.d.ts.map +1 -0
  933. package/dist/dts/Option.d.ts +982 -0
  934. package/dist/dts/Option.d.ts.map +1 -0
  935. package/dist/dts/Order.d.ts +234 -0
  936. package/dist/dts/Order.d.ts.map +1 -0
  937. package/dist/dts/Ordering.d.ts +83 -0
  938. package/dist/dts/Ordering.d.ts.map +1 -0
  939. package/dist/dts/Pipeable.d.ts +35 -0
  940. package/dist/dts/Pipeable.d.ts.map +1 -0
  941. package/dist/dts/Pool.d.ts +135 -0
  942. package/dist/dts/Pool.d.ts.map +1 -0
  943. package/dist/dts/Predicate.d.ts +629 -0
  944. package/dist/dts/Predicate.d.ts.map +1 -0
  945. package/dist/dts/PrimaryKey.d.ts +21 -0
  946. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  947. package/dist/dts/PubSub.d.ts +158 -0
  948. package/dist/dts/PubSub.d.ts.map +1 -0
  949. package/dist/dts/Queue.d.ts +521 -0
  950. package/dist/dts/Queue.d.ts.map +1 -0
  951. package/dist/dts/Random.d.ts +101 -0
  952. package/dist/dts/Random.d.ts.map +1 -0
  953. package/dist/dts/ReadonlyArray.d.ts +1243 -0
  954. package/dist/dts/ReadonlyArray.d.ts.map +1 -0
  955. package/dist/dts/ReadonlyRecord.d.ts +671 -0
  956. package/dist/dts/ReadonlyRecord.d.ts.map +1 -0
  957. package/dist/dts/RedBlackTree.d.ts +376 -0
  958. package/dist/dts/RedBlackTree.d.ts.map +1 -0
  959. package/dist/dts/Ref.d.ts +142 -0
  960. package/dist/dts/Ref.d.ts.map +1 -0
  961. package/dist/dts/Reloadable.d.ts +102 -0
  962. package/dist/dts/Reloadable.d.ts.map +1 -0
  963. package/dist/dts/Request.d.ts +303 -0
  964. package/dist/dts/Request.d.ts.map +1 -0
  965. package/dist/dts/RequestBlock.d.ts +94 -0
  966. package/dist/dts/RequestBlock.d.ts.map +1 -0
  967. package/dist/dts/RequestResolver.d.ts +235 -0
  968. package/dist/dts/RequestResolver.d.ts.map +1 -0
  969. package/dist/dts/Resource.d.ts +79 -0
  970. package/dist/dts/Resource.d.ts.map +1 -0
  971. package/dist/dts/Runtime.d.ts +180 -0
  972. package/dist/dts/Runtime.d.ts.map +1 -0
  973. package/dist/dts/RuntimeFlags.d.ts +297 -0
  974. package/dist/dts/RuntimeFlags.d.ts.map +1 -0
  975. package/dist/dts/RuntimeFlagsPatch.d.ts +161 -0
  976. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -0
  977. package/dist/dts/STM.d.ts +1552 -0
  978. package/dist/dts/STM.d.ts.map +1 -0
  979. package/dist/dts/Schedule.d.ts +1082 -0
  980. package/dist/dts/Schedule.d.ts.map +1 -0
  981. package/dist/dts/ScheduleDecision.d.ts +50 -0
  982. package/dist/dts/ScheduleDecision.d.ts.map +1 -0
  983. package/dist/dts/ScheduleInterval.d.ts +136 -0
  984. package/dist/dts/ScheduleInterval.d.ts.map +1 -0
  985. package/dist/dts/ScheduleIntervals.d.ts +109 -0
  986. package/dist/dts/ScheduleIntervals.d.ts.map +1 -0
  987. package/dist/dts/Scheduler.d.ts +158 -0
  988. package/dist/dts/Scheduler.d.ts.map +1 -0
  989. package/dist/dts/Scope.d.ts +131 -0
  990. package/dist/dts/Scope.d.ts.map +1 -0
  991. package/dist/dts/ScopedCache.d.ts +127 -0
  992. package/dist/dts/ScopedCache.d.ts.map +1 -0
  993. package/dist/dts/ScopedRef.d.ts +83 -0
  994. package/dist/dts/ScopedRef.d.ts.map +1 -0
  995. package/dist/dts/Secret.d.ts +63 -0
  996. package/dist/dts/Secret.d.ts.map +1 -0
  997. package/dist/dts/SingleProducerAsyncInput.d.ts +57 -0
  998. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -0
  999. package/dist/dts/Sink.d.ts +1131 -0
  1000. package/dist/dts/Sink.d.ts.map +1 -0
  1001. package/dist/dts/SortedMap.d.ts +145 -0
  1002. package/dist/dts/SortedMap.d.ts.map +1 -0
  1003. package/dist/dts/SortedSet.d.ts +185 -0
  1004. package/dist/dts/SortedSet.d.ts.map +1 -0
  1005. package/dist/dts/Stream.d.ts +3601 -0
  1006. package/dist/dts/Stream.d.ts.map +1 -0
  1007. package/dist/dts/StreamEmit.d.ts +73 -0
  1008. package/dist/dts/StreamEmit.d.ts.map +1 -0
  1009. package/dist/dts/StreamHaltStrategy.d.ts +92 -0
  1010. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -0
  1011. package/dist/dts/Streamable.d.ts +27 -0
  1012. package/dist/dts/Streamable.d.ts.map +1 -0
  1013. package/dist/dts/String.d.ts +515 -0
  1014. package/dist/dts/String.d.ts.map +1 -0
  1015. package/dist/dts/Struct.d.ts +110 -0
  1016. package/dist/dts/Struct.d.ts.map +1 -0
  1017. package/dist/dts/SubscriptionRef.d.ts +212 -0
  1018. package/dist/dts/SubscriptionRef.d.ts.map +1 -0
  1019. package/dist/dts/Supervisor.d.ts +171 -0
  1020. package/dist/dts/Supervisor.d.ts.map +1 -0
  1021. package/dist/dts/Symbol.d.ts +25 -0
  1022. package/dist/dts/Symbol.d.ts.map +1 -0
  1023. package/dist/dts/SynchronizedRef.d.ts +206 -0
  1024. package/dist/dts/SynchronizedRef.d.ts.map +1 -0
  1025. package/dist/dts/TArray.d.ts +431 -0
  1026. package/dist/dts/TArray.d.ts.map +1 -0
  1027. package/dist/dts/TDeferred.d.ts +80 -0
  1028. package/dist/dts/TDeferred.d.ts.map +1 -0
  1029. package/dist/dts/TMap.d.ts +414 -0
  1030. package/dist/dts/TMap.d.ts.map +1 -0
  1031. package/dist/dts/TPriorityQueue.d.ts +190 -0
  1032. package/dist/dts/TPriorityQueue.d.ts.map +1 -0
  1033. package/dist/dts/TPubSub.d.ts +150 -0
  1034. package/dist/dts/TPubSub.d.ts.map +1 -0
  1035. package/dist/dts/TQueue.d.ts +384 -0
  1036. package/dist/dts/TQueue.d.ts.map +1 -0
  1037. package/dist/dts/TRandom.d.ts +108 -0
  1038. package/dist/dts/TRandom.d.ts.map +1 -0
  1039. package/dist/dts/TReentrantLock.d.ts +194 -0
  1040. package/dist/dts/TReentrantLock.d.ts.map +1 -0
  1041. package/dist/dts/TRef.d.ts +146 -0
  1042. package/dist/dts/TRef.d.ts.map +1 -0
  1043. package/dist/dts/TSemaphore.d.ts +105 -0
  1044. package/dist/dts/TSemaphore.d.ts.map +1 -0
  1045. package/dist/dts/TSet.d.ts +310 -0
  1046. package/dist/dts/TSet.d.ts.map +1 -0
  1047. package/dist/dts/Take.d.ts +215 -0
  1048. package/dist/dts/Take.d.ts.map +1 -0
  1049. package/dist/dts/TestAnnotation.d.ts +73 -0
  1050. package/dist/dts/TestAnnotation.d.ts.map +1 -0
  1051. package/dist/dts/TestAnnotationMap.d.ts +55 -0
  1052. package/dist/dts/TestAnnotationMap.d.ts.map +1 -0
  1053. package/dist/dts/TestAnnotations.d.ts +59 -0
  1054. package/dist/dts/TestAnnotations.d.ts.map +1 -0
  1055. package/dist/dts/TestClock.d.ts +149 -0
  1056. package/dist/dts/TestClock.d.ts.map +1 -0
  1057. package/dist/dts/TestConfig.d.ts +45 -0
  1058. package/dist/dts/TestConfig.d.ts.map +1 -0
  1059. package/dist/dts/TestContext.d.ts +15 -0
  1060. package/dist/dts/TestContext.d.ts.map +1 -0
  1061. package/dist/dts/TestLive.d.ts +35 -0
  1062. package/dist/dts/TestLive.d.ts.map +1 -0
  1063. package/dist/dts/TestServices.d.ts +231 -0
  1064. package/dist/dts/TestServices.d.ts.map +1 -0
  1065. package/dist/dts/TestSized.d.ts +36 -0
  1066. package/dist/dts/TestSized.d.ts.map +1 -0
  1067. package/dist/dts/Tracer.d.ts +112 -0
  1068. package/dist/dts/Tracer.d.ts.map +1 -0
  1069. package/dist/dts/Tuple.d.ts +173 -0
  1070. package/dist/dts/Tuple.d.ts.map +1 -0
  1071. package/dist/dts/Types.d.ts +161 -0
  1072. package/dist/dts/Types.d.ts.map +1 -0
  1073. package/dist/dts/Unify.d.ts +62 -0
  1074. package/dist/dts/Unify.d.ts.map +1 -0
  1075. package/dist/dts/UpstreamPullRequest.d.ts +97 -0
  1076. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -0
  1077. package/dist/dts/UpstreamPullStrategy.d.ts +98 -0
  1078. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -0
  1079. package/dist/dts/Utils.d.ts +225 -0
  1080. package/dist/dts/Utils.d.ts.map +1 -0
  1081. package/dist/dts/index.d.ts +722 -0
  1082. package/dist/dts/index.d.ts.map +1 -0
  1083. package/dist/dts/internal/Iterable.d.ts +2 -0
  1084. package/dist/dts/internal/Iterable.d.ts.map +1 -0
  1085. package/dist/dts/internal/blockedRequests.d.ts +2 -0
  1086. package/dist/dts/internal/blockedRequests.d.ts.map +1 -0
  1087. package/dist/dts/internal/cache.d.ts +2 -0
  1088. package/dist/dts/internal/cache.d.ts.map +1 -0
  1089. package/dist/dts/internal/cause.d.ts +2 -0
  1090. package/dist/dts/internal/cause.d.ts.map +1 -0
  1091. package/dist/dts/internal/channel/channelExecutor.d.ts +3 -0
  1092. package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -0
  1093. package/dist/dts/internal/channel/channelState.d.ts +2 -0
  1094. package/dist/dts/internal/channel/channelState.d.ts.map +1 -0
  1095. package/dist/dts/internal/channel/childExecutorDecision.d.ts +2 -0
  1096. package/dist/dts/internal/channel/childExecutorDecision.d.ts.map +1 -0
  1097. package/dist/dts/internal/channel/continuation.d.ts +2 -0
  1098. package/dist/dts/internal/channel/continuation.d.ts.map +1 -0
  1099. package/dist/dts/internal/channel/mergeDecision.d.ts +2 -0
  1100. package/dist/dts/internal/channel/mergeDecision.d.ts.map +1 -0
  1101. package/dist/dts/internal/channel/mergeState.d.ts +2 -0
  1102. package/dist/dts/internal/channel/mergeState.d.ts.map +1 -0
  1103. package/dist/dts/internal/channel/mergeStrategy.d.ts +2 -0
  1104. package/dist/dts/internal/channel/mergeStrategy.d.ts.map +1 -0
  1105. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts +2 -0
  1106. package/dist/dts/internal/channel/singleProducerAsyncInput.d.ts.map +1 -0
  1107. package/dist/dts/internal/channel/subexecutor.d.ts +2 -0
  1108. package/dist/dts/internal/channel/subexecutor.d.ts.map +1 -0
  1109. package/dist/dts/internal/channel/upstreamPullRequest.d.ts +2 -0
  1110. package/dist/dts/internal/channel/upstreamPullRequest.d.ts.map +1 -0
  1111. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts +2 -0
  1112. package/dist/dts/internal/channel/upstreamPullStrategy.d.ts.map +1 -0
  1113. package/dist/dts/internal/channel.d.ts +2 -0
  1114. package/dist/dts/internal/channel.d.ts.map +1 -0
  1115. package/dist/dts/internal/clock.d.ts +2 -0
  1116. package/dist/dts/internal/clock.d.ts.map +1 -0
  1117. package/dist/dts/internal/completedRequestMap.d.ts +2 -0
  1118. package/dist/dts/internal/completedRequestMap.d.ts.map +1 -0
  1119. package/dist/dts/internal/concurrency.d.ts +2 -0
  1120. package/dist/dts/internal/concurrency.d.ts.map +1 -0
  1121. package/dist/dts/internal/config.d.ts +2 -0
  1122. package/dist/dts/internal/config.d.ts.map +1 -0
  1123. package/dist/dts/internal/configError.d.ts +2 -0
  1124. package/dist/dts/internal/configError.d.ts.map +1 -0
  1125. package/dist/dts/internal/configProvider/pathPatch.d.ts +2 -0
  1126. package/dist/dts/internal/configProvider/pathPatch.d.ts.map +1 -0
  1127. package/dist/dts/internal/configProvider.d.ts +2 -0
  1128. package/dist/dts/internal/configProvider.d.ts.map +1 -0
  1129. package/dist/dts/internal/console.d.ts +2 -0
  1130. package/dist/dts/internal/console.d.ts.map +1 -0
  1131. package/dist/dts/internal/context.d.ts +2 -0
  1132. package/dist/dts/internal/context.d.ts.map +1 -0
  1133. package/dist/dts/internal/core-effect.d.ts +2 -0
  1134. package/dist/dts/internal/core-effect.d.ts.map +1 -0
  1135. package/dist/dts/internal/core-stream.d.ts +5 -0
  1136. package/dist/dts/internal/core-stream.d.ts.map +1 -0
  1137. package/dist/dts/internal/core.d.ts +2 -0
  1138. package/dist/dts/internal/core.d.ts.map +1 -0
  1139. package/dist/dts/internal/data.d.ts +2 -0
  1140. package/dist/dts/internal/data.d.ts.map +1 -0
  1141. package/dist/dts/internal/dataSource.d.ts +2 -0
  1142. package/dist/dts/internal/dataSource.d.ts.map +1 -0
  1143. package/dist/dts/internal/defaultServices/console.d.ts +2 -0
  1144. package/dist/dts/internal/defaultServices/console.d.ts.map +1 -0
  1145. package/dist/dts/internal/defaultServices.d.ts +10 -0
  1146. package/dist/dts/internal/defaultServices.d.ts.map +1 -0
  1147. package/dist/dts/internal/deferred.d.ts +2 -0
  1148. package/dist/dts/internal/deferred.d.ts.map +1 -0
  1149. package/dist/dts/internal/differ/chunkPatch.d.ts +2 -0
  1150. package/dist/dts/internal/differ/chunkPatch.d.ts.map +1 -0
  1151. package/dist/dts/internal/differ/contextPatch.d.ts +2 -0
  1152. package/dist/dts/internal/differ/contextPatch.d.ts.map +1 -0
  1153. package/dist/dts/internal/differ/hashMapPatch.d.ts +2 -0
  1154. package/dist/dts/internal/differ/hashMapPatch.d.ts.map +1 -0
  1155. package/dist/dts/internal/differ/hashSetPatch.d.ts +2 -0
  1156. package/dist/dts/internal/differ/hashSetPatch.d.ts.map +1 -0
  1157. package/dist/dts/internal/differ/orPatch.d.ts +2 -0
  1158. package/dist/dts/internal/differ/orPatch.d.ts.map +1 -0
  1159. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts +2 -0
  1160. package/dist/dts/internal/differ/readonlyArrayPatch.d.ts.map +1 -0
  1161. package/dist/dts/internal/differ.d.ts +2 -0
  1162. package/dist/dts/internal/differ.d.ts.map +1 -0
  1163. package/dist/dts/internal/effect/circular.d.ts +2 -0
  1164. package/dist/dts/internal/effect/circular.d.ts.map +1 -0
  1165. package/dist/dts/internal/effectable.d.ts +2 -0
  1166. package/dist/dts/internal/effectable.d.ts.map +1 -0
  1167. package/dist/dts/internal/either.d.ts +5 -0
  1168. package/dist/dts/internal/either.d.ts.map +1 -0
  1169. package/dist/dts/internal/encoding/base64.d.ts +2 -0
  1170. package/dist/dts/internal/encoding/base64.d.ts.map +1 -0
  1171. package/dist/dts/internal/encoding/base64Url.d.ts +2 -0
  1172. package/dist/dts/internal/encoding/base64Url.d.ts.map +1 -0
  1173. package/dist/dts/internal/encoding/common.d.ts +5 -0
  1174. package/dist/dts/internal/encoding/common.d.ts.map +1 -0
  1175. package/dist/dts/internal/encoding/hex.d.ts +2 -0
  1176. package/dist/dts/internal/encoding/hex.d.ts.map +1 -0
  1177. package/dist/dts/internal/executionStrategy.d.ts +2 -0
  1178. package/dist/dts/internal/executionStrategy.d.ts.map +1 -0
  1179. package/dist/dts/internal/fiber.d.ts +2 -0
  1180. package/dist/dts/internal/fiber.d.ts.map +1 -0
  1181. package/dist/dts/internal/fiberId.d.ts +2 -0
  1182. package/dist/dts/internal/fiberId.d.ts.map +1 -0
  1183. package/dist/dts/internal/fiberMessage.d.ts +2 -0
  1184. package/dist/dts/internal/fiberMessage.d.ts.map +1 -0
  1185. package/dist/dts/internal/fiberRefs/patch.d.ts +2 -0
  1186. package/dist/dts/internal/fiberRefs/patch.d.ts.map +1 -0
  1187. package/dist/dts/internal/fiberRefs.d.ts +2 -0
  1188. package/dist/dts/internal/fiberRefs.d.ts.map +1 -0
  1189. package/dist/dts/internal/fiberRuntime.d.ts +2 -0
  1190. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -0
  1191. package/dist/dts/internal/fiberScope.d.ts +18 -0
  1192. package/dist/dts/internal/fiberScope.d.ts.map +1 -0
  1193. package/dist/dts/internal/fiberStatus.d.ts +2 -0
  1194. package/dist/dts/internal/fiberStatus.d.ts.map +1 -0
  1195. package/dist/dts/internal/groupBy.d.ts +2 -0
  1196. package/dist/dts/internal/groupBy.d.ts.map +1 -0
  1197. package/dist/dts/internal/hashMap/array.d.ts +2 -0
  1198. package/dist/dts/internal/hashMap/array.d.ts.map +1 -0
  1199. package/dist/dts/internal/hashMap/bitwise.d.ts +2 -0
  1200. package/dist/dts/internal/hashMap/bitwise.d.ts.map +1 -0
  1201. package/dist/dts/internal/hashMap/config.d.ts +2 -0
  1202. package/dist/dts/internal/hashMap/config.d.ts.map +1 -0
  1203. package/dist/dts/internal/hashMap/keySet.d.ts +2 -0
  1204. package/dist/dts/internal/hashMap/keySet.d.ts.map +1 -0
  1205. package/dist/dts/internal/hashMap/node.d.ts +2 -0
  1206. package/dist/dts/internal/hashMap/node.d.ts.map +1 -0
  1207. package/dist/dts/internal/hashMap.d.ts +9 -0
  1208. package/dist/dts/internal/hashMap.d.ts.map +1 -0
  1209. package/dist/dts/internal/hashSet.d.ts +2 -0
  1210. package/dist/dts/internal/hashSet.d.ts.map +1 -0
  1211. package/dist/dts/internal/internalize.d.ts +2 -0
  1212. package/dist/dts/internal/internalize.d.ts.map +1 -0
  1213. package/dist/dts/internal/keyedPool.d.ts +2 -0
  1214. package/dist/dts/internal/keyedPool.d.ts.map +1 -0
  1215. package/dist/dts/internal/layer/circular.d.ts +2 -0
  1216. package/dist/dts/internal/layer/circular.d.ts.map +1 -0
  1217. package/dist/dts/internal/layer.d.ts +2 -0
  1218. package/dist/dts/internal/layer.d.ts.map +1 -0
  1219. package/dist/dts/internal/logSpan.d.ts +2 -0
  1220. package/dist/dts/internal/logSpan.d.ts.map +1 -0
  1221. package/dist/dts/internal/logger-circular.d.ts +2 -0
  1222. package/dist/dts/internal/logger-circular.d.ts.map +1 -0
  1223. package/dist/dts/internal/logger.d.ts +2 -0
  1224. package/dist/dts/internal/logger.d.ts.map +1 -0
  1225. package/dist/dts/internal/matcher.d.ts +2 -0
  1226. package/dist/dts/internal/matcher.d.ts.map +1 -0
  1227. package/dist/dts/internal/metric/boundaries.d.ts +2 -0
  1228. package/dist/dts/internal/metric/boundaries.d.ts.map +1 -0
  1229. package/dist/dts/internal/metric/hook.d.ts +2 -0
  1230. package/dist/dts/internal/metric/hook.d.ts.map +1 -0
  1231. package/dist/dts/internal/metric/key.d.ts +2 -0
  1232. package/dist/dts/internal/metric/key.d.ts.map +1 -0
  1233. package/dist/dts/internal/metric/keyType.d.ts +88 -0
  1234. package/dist/dts/internal/metric/keyType.d.ts.map +1 -0
  1235. package/dist/dts/internal/metric/label.d.ts +2 -0
  1236. package/dist/dts/internal/metric/label.d.ts.map +1 -0
  1237. package/dist/dts/internal/metric/pair.d.ts +2 -0
  1238. package/dist/dts/internal/metric/pair.d.ts.map +1 -0
  1239. package/dist/dts/internal/metric/polling.d.ts +2 -0
  1240. package/dist/dts/internal/metric/polling.d.ts.map +1 -0
  1241. package/dist/dts/internal/metric/registry.d.ts +2 -0
  1242. package/dist/dts/internal/metric/registry.d.ts.map +1 -0
  1243. package/dist/dts/internal/metric/state.d.ts +22 -0
  1244. package/dist/dts/internal/metric/state.d.ts.map +1 -0
  1245. package/dist/dts/internal/metric.d.ts +2 -0
  1246. package/dist/dts/internal/metric.d.ts.map +1 -0
  1247. package/dist/dts/internal/opCodes/cause.d.ts +2 -0
  1248. package/dist/dts/internal/opCodes/cause.d.ts.map +1 -0
  1249. package/dist/dts/internal/opCodes/channel.d.ts +2 -0
  1250. package/dist/dts/internal/opCodes/channel.d.ts.map +1 -0
  1251. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts +2 -0
  1252. package/dist/dts/internal/opCodes/channelChildExecutorDecision.d.ts.map +1 -0
  1253. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts +2 -0
  1254. package/dist/dts/internal/opCodes/channelMergeDecision.d.ts.map +1 -0
  1255. package/dist/dts/internal/opCodes/channelMergeState.d.ts +2 -0
  1256. package/dist/dts/internal/opCodes/channelMergeState.d.ts.map +1 -0
  1257. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts +2 -0
  1258. package/dist/dts/internal/opCodes/channelMergeStrategy.d.ts.map +1 -0
  1259. package/dist/dts/internal/opCodes/channelState.d.ts +2 -0
  1260. package/dist/dts/internal/opCodes/channelState.d.ts.map +1 -0
  1261. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts +2 -0
  1262. package/dist/dts/internal/opCodes/channelUpstreamPullRequest.d.ts.map +1 -0
  1263. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts +2 -0
  1264. package/dist/dts/internal/opCodes/channelUpstreamPullStrategy.d.ts.map +1 -0
  1265. package/dist/dts/internal/opCodes/config.d.ts +2 -0
  1266. package/dist/dts/internal/opCodes/config.d.ts.map +1 -0
  1267. package/dist/dts/internal/opCodes/configError.d.ts +2 -0
  1268. package/dist/dts/internal/opCodes/configError.d.ts.map +1 -0
  1269. package/dist/dts/internal/opCodes/continuation.d.ts +2 -0
  1270. package/dist/dts/internal/opCodes/continuation.d.ts.map +1 -0
  1271. package/dist/dts/internal/opCodes/deferred.d.ts +2 -0
  1272. package/dist/dts/internal/opCodes/deferred.d.ts.map +1 -0
  1273. package/dist/dts/internal/opCodes/effect.d.ts +2 -0
  1274. package/dist/dts/internal/opCodes/effect.d.ts.map +1 -0
  1275. package/dist/dts/internal/opCodes/layer.d.ts +2 -0
  1276. package/dist/dts/internal/opCodes/layer.d.ts.map +1 -0
  1277. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts +2 -0
  1278. package/dist/dts/internal/opCodes/streamHaltStrategy.d.ts.map +1 -0
  1279. package/dist/dts/internal/option.d.ts +5 -0
  1280. package/dist/dts/internal/option.d.ts.map +1 -0
  1281. package/dist/dts/internal/pool.d.ts +2 -0
  1282. package/dist/dts/internal/pool.d.ts.map +1 -0
  1283. package/dist/dts/internal/pubsub.d.ts +2 -0
  1284. package/dist/dts/internal/pubsub.d.ts.map +1 -0
  1285. package/dist/dts/internal/query.d.ts +2 -0
  1286. package/dist/dts/internal/query.d.ts.map +1 -0
  1287. package/dist/dts/internal/queue.d.ts +2 -0
  1288. package/dist/dts/internal/queue.d.ts.map +1 -0
  1289. package/dist/dts/internal/random.d.ts +3 -0
  1290. package/dist/dts/internal/random.d.ts.map +1 -0
  1291. package/dist/dts/internal/readonlyArray.d.ts +5 -0
  1292. package/dist/dts/internal/readonlyArray.d.ts.map +1 -0
  1293. package/dist/dts/internal/redBlackTree/iterator.d.ts +2 -0
  1294. package/dist/dts/internal/redBlackTree/iterator.d.ts.map +1 -0
  1295. package/dist/dts/internal/redBlackTree/node.d.ts +6 -0
  1296. package/dist/dts/internal/redBlackTree/node.d.ts.map +1 -0
  1297. package/dist/dts/internal/redBlackTree.d.ts +2 -0
  1298. package/dist/dts/internal/redBlackTree.d.ts.map +1 -0
  1299. package/dist/dts/internal/ref.d.ts +2 -0
  1300. package/dist/dts/internal/ref.d.ts.map +1 -0
  1301. package/dist/dts/internal/reloadable.d.ts +2 -0
  1302. package/dist/dts/internal/reloadable.d.ts.map +1 -0
  1303. package/dist/dts/internal/request.d.ts +2 -0
  1304. package/dist/dts/internal/request.d.ts.map +1 -0
  1305. package/dist/dts/internal/resource.d.ts +2 -0
  1306. package/dist/dts/internal/resource.d.ts.map +1 -0
  1307. package/dist/dts/internal/ringBuffer.d.ts +2 -0
  1308. package/dist/dts/internal/ringBuffer.d.ts.map +1 -0
  1309. package/dist/dts/internal/runtime.d.ts +2 -0
  1310. package/dist/dts/internal/runtime.d.ts.map +1 -0
  1311. package/dist/dts/internal/runtimeFlags.d.ts +3 -0
  1312. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -0
  1313. package/dist/dts/internal/runtimeFlagsPatch.d.ts +2 -0
  1314. package/dist/dts/internal/runtimeFlagsPatch.d.ts.map +1 -0
  1315. package/dist/dts/internal/schedule/decision.d.ts +2 -0
  1316. package/dist/dts/internal/schedule/decision.d.ts.map +1 -0
  1317. package/dist/dts/internal/schedule/interval.d.ts +2 -0
  1318. package/dist/dts/internal/schedule/interval.d.ts.map +1 -0
  1319. package/dist/dts/internal/schedule/intervals.d.ts +2 -0
  1320. package/dist/dts/internal/schedule/intervals.d.ts.map +1 -0
  1321. package/dist/dts/internal/schedule.d.ts +2 -0
  1322. package/dist/dts/internal/schedule.d.ts.map +1 -0
  1323. package/dist/dts/internal/scopedCache.d.ts +2 -0
  1324. package/dist/dts/internal/scopedCache.d.ts.map +1 -0
  1325. package/dist/dts/internal/scopedRef.d.ts +2 -0
  1326. package/dist/dts/internal/scopedRef.d.ts.map +1 -0
  1327. package/dist/dts/internal/secret.d.ts +2 -0
  1328. package/dist/dts/internal/secret.d.ts.map +1 -0
  1329. package/dist/dts/internal/singleShotGen.d.ts +2 -0
  1330. package/dist/dts/internal/singleShotGen.d.ts.map +1 -0
  1331. package/dist/dts/internal/sink.d.ts +2 -0
  1332. package/dist/dts/internal/sink.d.ts.map +1 -0
  1333. package/dist/dts/internal/stack.d.ts +2 -0
  1334. package/dist/dts/internal/stack.d.ts.map +1 -0
  1335. package/dist/dts/internal/stm/core.d.ts +2 -0
  1336. package/dist/dts/internal/stm/core.d.ts.map +1 -0
  1337. package/dist/dts/internal/stm/opCodes/stm.d.ts +2 -0
  1338. package/dist/dts/internal/stm/opCodes/stm.d.ts.map +1 -0
  1339. package/dist/dts/internal/stm/opCodes/stmState.d.ts +2 -0
  1340. package/dist/dts/internal/stm/opCodes/stmState.d.ts.map +1 -0
  1341. package/dist/dts/internal/stm/opCodes/strategy.d.ts +2 -0
  1342. package/dist/dts/internal/stm/opCodes/strategy.d.ts.map +1 -0
  1343. package/dist/dts/internal/stm/opCodes/tExit.d.ts +2 -0
  1344. package/dist/dts/internal/stm/opCodes/tExit.d.ts.map +1 -0
  1345. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts +2 -0
  1346. package/dist/dts/internal/stm/opCodes/tryCommit.d.ts.map +1 -0
  1347. package/dist/dts/internal/stm/stm/entry.d.ts +2 -0
  1348. package/dist/dts/internal/stm/stm/entry.d.ts.map +1 -0
  1349. package/dist/dts/internal/stm/stm/journal.d.ts +2 -0
  1350. package/dist/dts/internal/stm/stm/journal.d.ts.map +1 -0
  1351. package/dist/dts/internal/stm/stm/opCodes/stm.d.ts +2 -0
  1352. package/dist/dts/internal/stm/stm/opCodes/stm.d.ts.map +1 -0
  1353. package/dist/dts/internal/stm/stm/opCodes/stmState.d.ts +2 -0
  1354. package/dist/dts/internal/stm/stm/opCodes/stmState.d.ts.map +1 -0
  1355. package/dist/dts/internal/stm/stm/opCodes/strategy.d.ts +2 -0
  1356. package/dist/dts/internal/stm/stm/opCodes/strategy.d.ts.map +1 -0
  1357. package/dist/dts/internal/stm/stm/opCodes/tExit.d.ts +2 -0
  1358. package/dist/dts/internal/stm/stm/opCodes/tExit.d.ts.map +1 -0
  1359. package/dist/dts/internal/stm/stm/opCodes/tryCommit.d.ts +2 -0
  1360. package/dist/dts/internal/stm/stm/opCodes/tryCommit.d.ts.map +1 -0
  1361. package/dist/dts/internal/stm/stm/stmState.d.ts +2 -0
  1362. package/dist/dts/internal/stm/stm/stmState.d.ts.map +1 -0
  1363. package/dist/dts/internal/stm/stm/tExit.d.ts +2 -0
  1364. package/dist/dts/internal/stm/stm/tExit.d.ts.map +1 -0
  1365. package/dist/dts/internal/stm/stm/tryCommit.d.ts +2 -0
  1366. package/dist/dts/internal/stm/stm/tryCommit.d.ts.map +1 -0
  1367. package/dist/dts/internal/stm/stm/txnId.d.ts +2 -0
  1368. package/dist/dts/internal/stm/stm/txnId.d.ts.map +1 -0
  1369. package/dist/dts/internal/stm/stm/versioned.d.ts +2 -0
  1370. package/dist/dts/internal/stm/stm/versioned.d.ts.map +1 -0
  1371. package/dist/dts/internal/stm/stm.d.ts +17 -0
  1372. package/dist/dts/internal/stm/stm.d.ts.map +1 -0
  1373. package/dist/dts/internal/stm/tArray.d.ts +2 -0
  1374. package/dist/dts/internal/stm/tArray.d.ts.map +1 -0
  1375. package/dist/dts/internal/stm/tDeferred.d.ts +2 -0
  1376. package/dist/dts/internal/stm/tDeferred.d.ts.map +1 -0
  1377. package/dist/dts/internal/stm/tMap.d.ts +2 -0
  1378. package/dist/dts/internal/stm/tMap.d.ts.map +1 -0
  1379. package/dist/dts/internal/stm/tPriorityQueue.d.ts +2 -0
  1380. package/dist/dts/internal/stm/tPriorityQueue.d.ts.map +1 -0
  1381. package/dist/dts/internal/stm/tPubSub.d.ts +2 -0
  1382. package/dist/dts/internal/stm/tPubSub.d.ts.map +1 -0
  1383. package/dist/dts/internal/stm/tQueue.d.ts +2 -0
  1384. package/dist/dts/internal/stm/tQueue.d.ts.map +1 -0
  1385. package/dist/dts/internal/stm/tRandom.d.ts +2 -0
  1386. package/dist/dts/internal/stm/tRandom.d.ts.map +1 -0
  1387. package/dist/dts/internal/stm/tReentrantLock.d.ts +2 -0
  1388. package/dist/dts/internal/stm/tReentrantLock.d.ts.map +1 -0
  1389. package/dist/dts/internal/stm/tRef.d.ts +2 -0
  1390. package/dist/dts/internal/stm/tRef.d.ts.map +1 -0
  1391. package/dist/dts/internal/stm/tSemaphore.d.ts +2 -0
  1392. package/dist/dts/internal/stm/tSemaphore.d.ts.map +1 -0
  1393. package/dist/dts/internal/stm/tSet.d.ts +2 -0
  1394. package/dist/dts/internal/stm/tSet.d.ts.map +1 -0
  1395. package/dist/dts/internal/stream/debounceState.d.ts +4 -0
  1396. package/dist/dts/internal/stream/debounceState.d.ts.map +1 -0
  1397. package/dist/dts/internal/stream/emit.d.ts +2 -0
  1398. package/dist/dts/internal/stream/emit.d.ts.map +1 -0
  1399. package/dist/dts/internal/stream/haltStrategy.d.ts +2 -0
  1400. package/dist/dts/internal/stream/haltStrategy.d.ts.map +1 -0
  1401. package/dist/dts/internal/stream/handoff.d.ts +2 -0
  1402. package/dist/dts/internal/stream/handoff.d.ts.map +1 -0
  1403. package/dist/dts/internal/stream/handoffSignal.d.ts +6 -0
  1404. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -0
  1405. package/dist/dts/internal/stream/pull.d.ts +2 -0
  1406. package/dist/dts/internal/stream/pull.d.ts.map +1 -0
  1407. package/dist/dts/internal/stream/sinkEndReason.d.ts +2 -0
  1408. package/dist/dts/internal/stream/sinkEndReason.d.ts.map +1 -0
  1409. package/dist/dts/internal/stream/zipAllState.d.ts +2 -0
  1410. package/dist/dts/internal/stream/zipAllState.d.ts.map +1 -0
  1411. package/dist/dts/internal/stream/zipChunksState.d.ts +2 -0
  1412. package/dist/dts/internal/stream/zipChunksState.d.ts.map +1 -0
  1413. package/dist/dts/internal/stream.d.ts +2 -0
  1414. package/dist/dts/internal/stream.d.ts.map +1 -0
  1415. package/dist/dts/internal/string-utils.d.ts +7 -0
  1416. package/dist/dts/internal/string-utils.d.ts.map +1 -0
  1417. package/dist/dts/internal/subscriptionRef.d.ts +2 -0
  1418. package/dist/dts/internal/subscriptionRef.d.ts.map +1 -0
  1419. package/dist/dts/internal/supervisor/patch.d.ts +2 -0
  1420. package/dist/dts/internal/supervisor/patch.d.ts.map +1 -0
  1421. package/dist/dts/internal/supervisor.d.ts +2 -0
  1422. package/dist/dts/internal/supervisor.d.ts.map +1 -0
  1423. package/dist/dts/internal/synchronizedRef.d.ts +2 -0
  1424. package/dist/dts/internal/synchronizedRef.d.ts.map +1 -0
  1425. package/dist/dts/internal/take.d.ts +2 -0
  1426. package/dist/dts/internal/take.d.ts.map +1 -0
  1427. package/dist/dts/internal/testing/sleep.d.ts +2 -0
  1428. package/dist/dts/internal/testing/sleep.d.ts.map +1 -0
  1429. package/dist/dts/internal/testing/suspendedWarningData.d.ts +2 -0
  1430. package/dist/dts/internal/testing/suspendedWarningData.d.ts.map +1 -0
  1431. package/dist/dts/internal/testing/warningData.d.ts +2 -0
  1432. package/dist/dts/internal/testing/warningData.d.ts.map +1 -0
  1433. package/dist/dts/internal/timeout.d.ts +7 -0
  1434. package/dist/dts/internal/timeout.d.ts.map +1 -0
  1435. package/dist/dts/internal/tracer.d.ts +2 -0
  1436. package/dist/dts/internal/tracer.d.ts.map +1 -0
  1437. package/dist/dts/internal/version.d.ts +2 -0
  1438. package/dist/dts/internal/version.d.ts.map +1 -0
  1439. package/dist/esm/BigDecimal.js +838 -0
  1440. package/dist/esm/BigDecimal.js.map +1 -0
  1441. package/dist/esm/BigInt.js +458 -0
  1442. package/dist/esm/BigInt.js.map +1 -0
  1443. package/dist/esm/Boolean.js +214 -0
  1444. package/dist/esm/Boolean.js.map +1 -0
  1445. package/dist/esm/Brand.js +170 -0
  1446. package/dist/esm/Brand.js.map +1 -0
  1447. package/dist/esm/Cache.js +38 -0
  1448. package/dist/esm/Cache.js.map +1 -0
  1449. package/dist/esm/Cause.js +468 -0
  1450. package/dist/esm/Cause.js.map +1 -0
  1451. package/dist/esm/Channel.js +834 -0
  1452. package/dist/esm/Channel.js.map +1 -0
  1453. package/dist/esm/ChildExecutorDecision.js +64 -0
  1454. package/dist/esm/ChildExecutorDecision.js.map +1 -0
  1455. package/dist/esm/Chunk.js +1006 -0
  1456. package/dist/esm/Chunk.js.map +1 -0
  1457. package/dist/esm/Clock.js +38 -0
  1458. package/dist/esm/Clock.js.map +1 -0
  1459. package/dist/esm/Config.js +280 -0
  1460. package/dist/esm/Config.js.map +1 -0
  1461. package/dist/esm/ConfigError.js +107 -0
  1462. package/dist/esm/ConfigError.js.map +1 -0
  1463. package/dist/esm/ConfigProvider.js +161 -0
  1464. package/dist/esm/ConfigProvider.js.map +1 -0
  1465. package/dist/esm/ConfigProviderPathPatch.js +30 -0
  1466. package/dist/esm/ConfigProviderPathPatch.js.map +1 -0
  1467. package/dist/esm/Console.js +118 -0
  1468. package/dist/esm/Console.js.map +1 -0
  1469. package/dist/esm/Context.js +234 -0
  1470. package/dist/esm/Context.js.map +1 -0
  1471. package/dist/esm/Data.js +254 -0
  1472. package/dist/esm/Data.js.map +1 -0
  1473. package/dist/esm/DefaultServices.js +12 -0
  1474. package/dist/esm/DefaultServices.js.map +1 -0
  1475. package/dist/esm/Deferred.js +169 -0
  1476. package/dist/esm/Deferred.js.map +1 -0
  1477. package/dist/esm/Differ.js +132 -0
  1478. package/dist/esm/Differ.js.map +1 -0
  1479. package/dist/esm/Duration.js +427 -0
  1480. package/dist/esm/Duration.js.map +1 -0
  1481. package/dist/esm/Effect.js +2708 -0
  1482. package/dist/esm/Effect.js.map +1 -0
  1483. package/dist/esm/Effectable.js +49 -0
  1484. package/dist/esm/Effectable.js.map +1 -0
  1485. package/dist/esm/Either.js +438 -0
  1486. package/dist/esm/Either.js.map +1 -0
  1487. package/dist/esm/Encoding.js +97 -0
  1488. package/dist/esm/Encoding.js.map +1 -0
  1489. package/dist/esm/Equal.js +39 -0
  1490. package/dist/esm/Equal.js.map +1 -0
  1491. package/dist/esm/Equivalence.js +166 -0
  1492. package/dist/esm/Equivalence.js.map +1 -0
  1493. package/dist/esm/ExecutionStrategy.js +55 -0
  1494. package/dist/esm/ExecutionStrategy.js.map +1 -0
  1495. package/dist/esm/Exit.js +255 -0
  1496. package/dist/esm/Exit.js.map +1 -0
  1497. package/dist/esm/Fiber.js +348 -0
  1498. package/dist/esm/Fiber.js.map +1 -0
  1499. package/dist/esm/FiberId.js +115 -0
  1500. package/dist/esm/FiberId.js.map +1 -0
  1501. package/dist/esm/FiberRef.js +232 -0
  1502. package/dist/esm/FiberRef.js.map +1 -0
  1503. package/dist/esm/FiberRefs.js +92 -0
  1504. package/dist/esm/FiberRefs.js.map +1 -0
  1505. package/dist/esm/FiberRefsPatch.js +32 -0
  1506. package/dist/esm/FiberRefsPatch.js.map +1 -0
  1507. package/dist/esm/FiberStatus.js +52 -0
  1508. package/dist/esm/FiberStatus.js.map +1 -0
  1509. package/dist/esm/Function.js +397 -0
  1510. package/dist/esm/Function.js.map +1 -0
  1511. package/dist/esm/GlobalValue.js +20 -0
  1512. package/dist/esm/GlobalValue.js.map +1 -0
  1513. package/dist/esm/GroupBy.js +39 -0
  1514. package/dist/esm/GroupBy.js.map +1 -0
  1515. package/dist/esm/HKT.js +2 -0
  1516. package/dist/esm/HKT.js.map +1 -0
  1517. package/dist/esm/Hash.js +132 -0
  1518. package/dist/esm/Hash.js.map +1 -0
  1519. package/dist/esm/HashMap.js +254 -0
  1520. package/dist/esm/HashMap.js.map +1 -0
  1521. package/dist/esm/HashSet.js +191 -0
  1522. package/dist/esm/HashSet.js.map +1 -0
  1523. package/dist/esm/Inspectable.js +25 -0
  1524. package/dist/esm/Inspectable.js.map +1 -0
  1525. package/dist/esm/KeyedPool.js +76 -0
  1526. package/dist/esm/KeyedPool.js.map +1 -0
  1527. package/dist/esm/Layer.js +556 -0
  1528. package/dist/esm/Layer.js.map +1 -0
  1529. package/dist/esm/List.js +750 -0
  1530. package/dist/esm/List.js.map +1 -0
  1531. package/dist/esm/LogLevel.js +107 -0
  1532. package/dist/esm/LogLevel.js.map +1 -0
  1533. package/dist/esm/LogSpan.js +15 -0
  1534. package/dist/esm/LogSpan.js.map +1 -0
  1535. package/dist/esm/Logger.js +158 -0
  1536. package/dist/esm/Logger.js.map +1 -0
  1537. package/dist/esm/Match.js +198 -0
  1538. package/dist/esm/Match.js.map +1 -0
  1539. package/dist/esm/MergeDecision.js +35 -0
  1540. package/dist/esm/MergeDecision.js.map +1 -0
  1541. package/dist/esm/MergeState.js +58 -0
  1542. package/dist/esm/MergeState.js.map +1 -0
  1543. package/dist/esm/MergeStrategy.js +51 -0
  1544. package/dist/esm/MergeStrategy.js.map +1 -0
  1545. package/dist/esm/Metric.js +395 -0
  1546. package/dist/esm/Metric.js.map +1 -0
  1547. package/dist/esm/MetricBoundaries.js +33 -0
  1548. package/dist/esm/MetricBoundaries.js.map +1 -0
  1549. package/dist/esm/MetricHook.js +42 -0
  1550. package/dist/esm/MetricHook.js.map +1 -0
  1551. package/dist/esm/MetricKey.js +63 -0
  1552. package/dist/esm/MetricKey.js.map +1 -0
  1553. package/dist/esm/MetricKeyType.js +87 -0
  1554. package/dist/esm/MetricKeyType.js.map +1 -0
  1555. package/dist/esm/MetricLabel.js +17 -0
  1556. package/dist/esm/MetricLabel.js.map +1 -0
  1557. package/dist/esm/MetricPair.js +20 -0
  1558. package/dist/esm/MetricPair.js.map +1 -0
  1559. package/dist/esm/MetricPolling.js +59 -0
  1560. package/dist/esm/MetricPolling.js.map +1 -0
  1561. package/dist/esm/MetricRegistry.js +15 -0
  1562. package/dist/esm/MetricRegistry.js.map +1 -0
  1563. package/dist/esm/MetricState.js +87 -0
  1564. package/dist/esm/MetricState.js.map +1 -0
  1565. package/dist/esm/MutableHashMap.js +252 -0
  1566. package/dist/esm/MutableHashMap.js.map +1 -0
  1567. package/dist/esm/MutableHashSet.js +72 -0
  1568. package/dist/esm/MutableHashSet.js.map +1 -0
  1569. package/dist/esm/MutableList.js +243 -0
  1570. package/dist/esm/MutableList.js.map +1 -0
  1571. package/dist/esm/MutableQueue.js +159 -0
  1572. package/dist/esm/MutableQueue.js.map +1 -0
  1573. package/dist/esm/MutableRef.js +127 -0
  1574. package/dist/esm/MutableRef.js.map +1 -0
  1575. package/dist/esm/NonEmptyIterable.js +16 -0
  1576. package/dist/esm/NonEmptyIterable.js.map +1 -0
  1577. package/dist/esm/Number.js +370 -0
  1578. package/dist/esm/Number.js.map +1 -0
  1579. package/dist/esm/Option.js +908 -0
  1580. package/dist/esm/Option.js.map +1 -0
  1581. package/dist/esm/Order.js +235 -0
  1582. package/dist/esm/Order.js.map +1 -0
  1583. package/dist/esm/Ordering.js +73 -0
  1584. package/dist/esm/Ordering.js.map +1 -0
  1585. package/dist/esm/Pipeable.js +37 -0
  1586. package/dist/esm/Pipeable.js.map +1 -0
  1587. package/dist/esm/Pool.js +74 -0
  1588. package/dist/esm/Pool.js.map +1 -0
  1589. package/dist/esm/Predicate.js +605 -0
  1590. package/dist/esm/Predicate.js.map +1 -0
  1591. package/dist/esm/PrimaryKey.js +14 -0
  1592. package/dist/esm/PrimaryKey.js.map +1 -0
  1593. package/dist/esm/PubSub.js +120 -0
  1594. package/dist/esm/PubSub.js.map +1 -0
  1595. package/dist/esm/Queue.js +248 -0
  1596. package/dist/esm/Queue.js.map +1 -0
  1597. package/dist/esm/Random.js +60 -0
  1598. package/dist/esm/Random.js.map +1 -0
  1599. package/dist/esm/ReadonlyArray.js +1343 -0
  1600. package/dist/esm/ReadonlyArray.js.map +1 -0
  1601. package/dist/esm/ReadonlyRecord.js +786 -0
  1602. package/dist/esm/ReadonlyRecord.js.map +1 -0
  1603. package/dist/esm/RedBlackTree.js +259 -0
  1604. package/dist/esm/RedBlackTree.js.map +1 -0
  1605. package/dist/esm/Ref.js +77 -0
  1606. package/dist/esm/Ref.js.map +1 -0
  1607. package/dist/esm/Reloadable.js +59 -0
  1608. package/dist/esm/Reloadable.js.map +1 -0
  1609. package/dist/esm/Request.js +136 -0
  1610. package/dist/esm/Request.js.map +1 -0
  1611. package/dist/esm/RequestBlock.js +35 -0
  1612. package/dist/esm/RequestBlock.js.map +1 -0
  1613. package/dist/esm/RequestResolver.js +148 -0
  1614. package/dist/esm/RequestResolver.js.map +1 -0
  1615. package/dist/esm/Resource.js +44 -0
  1616. package/dist/esm/Resource.js.map +1 -0
  1617. package/dist/esm/Runtime.js +104 -0
  1618. package/dist/esm/Runtime.js.map +1 -0
  1619. package/dist/esm/RuntimeFlags.js +251 -0
  1620. package/dist/esm/RuntimeFlags.js.map +1 -0
  1621. package/dist/esm/RuntimeFlagsPatch.js +134 -0
  1622. package/dist/esm/RuntimeFlagsPatch.js.map +1 -0
  1623. package/dist/esm/STM.js +1002 -0
  1624. package/dist/esm/STM.js.map +1 -0
  1625. package/dist/esm/Schedule.js +807 -0
  1626. package/dist/esm/Schedule.js.map +1 -0
  1627. package/dist/esm/ScheduleDecision.js +32 -0
  1628. package/dist/esm/ScheduleDecision.js.map +1 -0
  1629. package/dist/esm/ScheduleInterval.js +100 -0
  1630. package/dist/esm/ScheduleInterval.js.map +1 -0
  1631. package/dist/esm/ScheduleIntervals.js +78 -0
  1632. package/dist/esm/ScheduleIntervals.js.map +1 -0
  1633. package/dist/esm/Scheduler.js +290 -0
  1634. package/dist/esm/Scheduler.js.map +1 -0
  1635. package/dist/esm/Scope.js +82 -0
  1636. package/dist/esm/Scope.js.map +1 -0
  1637. package/dist/esm/ScopedCache.js +24 -0
  1638. package/dist/esm/ScopedCache.js.map +1 -0
  1639. package/dist/esm/ScopedRef.js +42 -0
  1640. package/dist/esm/ScopedRef.js.map +1 -0
  1641. package/dist/esm/Secret.js +37 -0
  1642. package/dist/esm/Secret.js.map +1 -0
  1643. package/dist/esm/SingleProducerAsyncInput.js +7 -0
  1644. package/dist/esm/SingleProducerAsyncInput.js.map +1 -0
  1645. package/dist/esm/Sink.js +852 -0
  1646. package/dist/esm/Sink.js.map +1 -0
  1647. package/dist/esm/SortedMap.js +147 -0
  1648. package/dist/esm/SortedMap.js.map +1 -0
  1649. package/dist/esm/SortedSet.js +232 -0
  1650. package/dist/esm/SortedSet.js.map +1 -0
  1651. package/dist/esm/Stream.js +2566 -0
  1652. package/dist/esm/Stream.js.map +1 -0
  1653. package/dist/esm/StreamEmit.js +2 -0
  1654. package/dist/esm/StreamEmit.js.map +1 -0
  1655. package/dist/esm/StreamHaltStrategy.js +55 -0
  1656. package/dist/esm/StreamHaltStrategy.js.map +1 -0
  1657. package/dist/esm/Streamable.js +36 -0
  1658. package/dist/esm/Streamable.js.map +1 -0
  1659. package/dist/esm/String.js +538 -0
  1660. package/dist/esm/String.js.map +1 -0
  1661. package/dist/esm/Struct.js +119 -0
  1662. package/dist/esm/Struct.js.map +1 -0
  1663. package/dist/esm/SubscriptionRef.js +116 -0
  1664. package/dist/esm/SubscriptionRef.js.map +1 -0
  1665. package/dist/esm/Supervisor.js +107 -0
  1666. package/dist/esm/Supervisor.js.map +1 -0
  1667. package/dist/esm/Symbol.js +26 -0
  1668. package/dist/esm/Symbol.js.map +1 -0
  1669. package/dist/esm/SynchronizedRef.js +119 -0
  1670. package/dist/esm/SynchronizedRef.js.map +1 -0
  1671. package/dist/esm/TArray.js +306 -0
  1672. package/dist/esm/TArray.js.map +1 -0
  1673. package/dist/esm/TDeferred.js +39 -0
  1674. package/dist/esm/TDeferred.js.map +1 -0
  1675. package/dist/esm/TMap.js +279 -0
  1676. package/dist/esm/TMap.js.map +1 -0
  1677. package/dist/esm/TPriorityQueue.js +136 -0
  1678. package/dist/esm/TPriorityQueue.js.map +1 -0
  1679. package/dist/esm/TPubSub.js +123 -0
  1680. package/dist/esm/TPubSub.js.map +1 -0
  1681. package/dist/esm/TQueue.js +229 -0
  1682. package/dist/esm/TQueue.js.map +1 -0
  1683. package/dist/esm/TRandom.js +65 -0
  1684. package/dist/esm/TRandom.js.map +1 -0
  1685. package/dist/esm/TReentrantLock.js +142 -0
  1686. package/dist/esm/TReentrantLock.js.map +1 -0
  1687. package/dist/esm/TRef.js +75 -0
  1688. package/dist/esm/TRef.js.map +1 -0
  1689. package/dist/esm/TSemaphore.js +65 -0
  1690. package/dist/esm/TSemaphore.js.map +1 -0
  1691. package/dist/esm/TSet.js +201 -0
  1692. package/dist/esm/TSet.js.map +1 -0
  1693. package/dist/esm/Take.js +148 -0
  1694. package/dist/esm/Take.js.map +1 -0
  1695. package/dist/esm/TestAnnotation.js +96 -0
  1696. package/dist/esm/TestAnnotation.js.map +1 -0
  1697. package/dist/esm/TestAnnotationMap.js +80 -0
  1698. package/dist/esm/TestAnnotationMap.js.map +1 -0
  1699. package/dist/esm/TestAnnotations.js +61 -0
  1700. package/dist/esm/TestAnnotations.js.map +1 -0
  1701. package/dist/esm/TestClock.js +347 -0
  1702. package/dist/esm/TestClock.js.map +1 -0
  1703. package/dist/esm/TestConfig.js +13 -0
  1704. package/dist/esm/TestConfig.js.map +1 -0
  1705. package/dist/esm/TestContext.js +21 -0
  1706. package/dist/esm/TestContext.js.map +1 -0
  1707. package/dist/esm/TestLive.js +30 -0
  1708. package/dist/esm/TestLive.js.map +1 -0
  1709. package/dist/esm/TestServices.js +230 -0
  1710. package/dist/esm/TestServices.js.map +1 -0
  1711. package/dist/esm/TestSized.js +36 -0
  1712. package/dist/esm/TestSized.js.map +1 -0
  1713. package/dist/esm/Tracer.js +32 -0
  1714. package/dist/esm/Tracer.js.map +1 -0
  1715. package/dist/esm/Tuple.js +155 -0
  1716. package/dist/esm/Tuple.js.map +1 -0
  1717. package/dist/esm/Types.js +7 -0
  1718. package/dist/esm/Types.js.map +1 -0
  1719. package/dist/esm/Unify.js +9 -0
  1720. package/dist/esm/Unify.js.map +1 -0
  1721. package/dist/esm/UpstreamPullRequest.js +51 -0
  1722. package/dist/esm/UpstreamPullRequest.js.map +1 -0
  1723. package/dist/esm/UpstreamPullStrategy.js +51 -0
  1724. package/dist/esm/UpstreamPullStrategy.js.map +1 -0
  1725. package/dist/esm/Utils.js +276 -0
  1726. package/dist/esm/Utils.js.map +1 -0
  1727. package/dist/esm/index.js +722 -0
  1728. package/dist/esm/index.js.map +1 -0
  1729. package/dist/esm/internal/Iterable.js +53 -0
  1730. package/dist/esm/internal/Iterable.js.map +1 -0
  1731. package/dist/esm/internal/blockedRequests.js +338 -0
  1732. package/dist/esm/internal/blockedRequests.js.map +1 -0
  1733. package/dist/esm/internal/cache.js +467 -0
  1734. package/dist/esm/internal/cache.js.map +1 -0
  1735. package/dist/esm/internal/cause.js +865 -0
  1736. package/dist/esm/internal/cause.js.map +1 -0
  1737. package/dist/esm/internal/channel/channelExecutor.js +687 -0
  1738. package/dist/esm/internal/channel/channelExecutor.js.map +1 -0
  1739. package/dist/esm/internal/channel/channelState.js +59 -0
  1740. package/dist/esm/internal/channel/channelState.js.map +1 -0
  1741. package/dist/esm/internal/channel/childExecutorDecision.js +60 -0
  1742. package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -0
  1743. package/dist/esm/internal/channel/continuation.js +48 -0
  1744. package/dist/esm/internal/channel/continuation.js.map +1 -0
  1745. package/dist/esm/internal/channel/mergeDecision.js +53 -0
  1746. package/dist/esm/internal/channel/mergeDecision.js.map +1 -0
  1747. package/dist/esm/internal/channel/mergeState.js +69 -0
  1748. package/dist/esm/internal/channel/mergeState.js.map +1 -0
  1749. package/dist/esm/internal/channel/mergeStrategy.js +46 -0
  1750. package/dist/esm/internal/channel/mergeStrategy.js.map +1 -0
  1751. package/dist/esm/internal/channel/singleProducerAsyncInput.js +163 -0
  1752. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -0
  1753. package/dist/esm/internal/channel/subexecutor.js +152 -0
  1754. package/dist/esm/internal/channel/subexecutor.js.map +1 -0
  1755. package/dist/esm/internal/channel/upstreamPullRequest.js +52 -0
  1756. package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -0
  1757. package/dist/esm/internal/channel/upstreamPullStrategy.js +52 -0
  1758. package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -0
  1759. package/dist/esm/internal/channel.js +573 -0
  1760. package/dist/esm/internal/channel.js.map +1 -0
  1761. package/dist/esm/internal/clock.js +74 -0
  1762. package/dist/esm/internal/clock.js.map +1 -0
  1763. package/dist/esm/internal/completedRequestMap.js +5 -0
  1764. package/dist/esm/internal/completedRequestMap.js.map +1 -0
  1765. package/dist/esm/internal/concurrency.js +28 -0
  1766. package/dist/esm/internal/concurrency.js.map +1 -0
  1767. package/dist/esm/internal/config.js +318 -0
  1768. package/dist/esm/internal/config.js.map +1 -0
  1769. package/dist/esm/internal/configError.js +250 -0
  1770. package/dist/esm/internal/configError.js.map +1 -0
  1771. package/dist/esm/internal/configProvider/pathPatch.js +76 -0
  1772. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -0
  1773. package/dist/esm/internal/configProvider.js +427 -0
  1774. package/dist/esm/internal/configProvider.js.map +1 -0
  1775. package/dist/esm/internal/console.js +54 -0
  1776. package/dist/esm/internal/console.js.map +1 -0
  1777. package/dist/esm/internal/context.js +189 -0
  1778. package/dist/esm/internal/context.js.map +1 -0
  1779. package/dist/esm/internal/core-effect.js +767 -0
  1780. package/dist/esm/internal/core-effect.js.map +1 -0
  1781. package/dist/esm/internal/core-stream.js +235 -0
  1782. package/dist/esm/internal/core-stream.js.map +1 -0
  1783. package/dist/esm/internal/core.js +1646 -0
  1784. package/dist/esm/internal/core.js.map +1 -0
  1785. package/dist/esm/internal/data.js +29 -0
  1786. package/dist/esm/internal/data.js.map +1 -0
  1787. package/dist/esm/internal/dataSource.js +71 -0
  1788. package/dist/esm/internal/dataSource.js.map +1 -0
  1789. package/dist/esm/internal/defaultServices/console.js +92 -0
  1790. package/dist/esm/internal/defaultServices/console.js.map +1 -0
  1791. package/dist/esm/internal/defaultServices.js +63 -0
  1792. package/dist/esm/internal/defaultServices.js.map +1 -0
  1793. package/dist/esm/internal/deferred.js +27 -0
  1794. package/dist/esm/internal/deferred.js.map +1 -0
  1795. package/dist/esm/internal/differ/chunkPatch.js +130 -0
  1796. package/dist/esm/internal/differ/chunkPatch.js.map +1 -0
  1797. package/dist/esm/internal/differ/contextPatch.js +143 -0
  1798. package/dist/esm/internal/differ/contextPatch.js.map +1 -0
  1799. package/dist/esm/internal/differ/hashMapPatch.js +130 -0
  1800. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -0
  1801. package/dist/esm/internal/differ/hashSetPatch.js +101 -0
  1802. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -0
  1803. package/dist/esm/internal/differ/orPatch.js +170 -0
  1804. package/dist/esm/internal/differ/orPatch.js.map +1 -0
  1805. package/dist/esm/internal/differ/readonlyArrayPatch.js +127 -0
  1806. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -0
  1807. package/dist/esm/internal/differ.js +130 -0
  1808. package/dist/esm/internal/differ.js.map +1 -0
  1809. package/dist/esm/internal/effect/circular.js +281 -0
  1810. package/dist/esm/internal/effect/circular.js.map +1 -0
  1811. package/dist/esm/internal/effectable.js +109 -0
  1812. package/dist/esm/internal/effectable.js.map +1 -0
  1813. package/dist/esm/internal/either.js +85 -0
  1814. package/dist/esm/internal/either.js.map +1 -0
  1815. package/dist/esm/internal/encoding/base64.js +68 -0
  1816. package/dist/esm/internal/encoding/base64.js.map +1 -0
  1817. package/dist/esm/internal/encoding/base64Url.js +20 -0
  1818. package/dist/esm/internal/encoding/base64Url.js.map +1 -0
  1819. package/dist/esm/internal/encoding/common.js +22 -0
  1820. package/dist/esm/internal/encoding/common.js.map +1 -0
  1821. package/dist/esm/internal/encoding/hex.js +48 -0
  1822. package/dist/esm/internal/encoding/hex.js.map +1 -0
  1823. package/dist/esm/internal/executionStrategy.js +44 -0
  1824. package/dist/esm/internal/executionStrategy.js.map +1 -0
  1825. package/dist/esm/internal/fiber.js +217 -0
  1826. package/dist/esm/internal/fiber.js.map +1 -0
  1827. package/dist/esm/internal/fiberId.js +215 -0
  1828. package/dist/esm/internal/fiberId.js.map +1 -0
  1829. package/dist/esm/internal/fiberMessage.js +28 -0
  1830. package/dist/esm/internal/fiberMessage.js.map +1 -0
  1831. package/dist/esm/internal/fiberRefs/patch.js +107 -0
  1832. package/dist/esm/internal/fiberRefs/patch.js.map +1 -0
  1833. package/dist/esm/internal/fiberRefs.js +189 -0
  1834. package/dist/esm/internal/fiberRefs.js.map +1 -0
  1835. package/dist/esm/internal/fiberRuntime.js +1845 -0
  1836. package/dist/esm/internal/fiberRuntime.js.map +1 -0
  1837. package/dist/esm/internal/fiberScope.js +44 -0
  1838. package/dist/esm/internal/fiberScope.js.map +1 -0
  1839. package/dist/esm/internal/fiberStatus.js +71 -0
  1840. package/dist/esm/internal/fiberStatus.js.map +1 -0
  1841. package/dist/esm/internal/groupBy.js +202 -0
  1842. package/dist/esm/internal/groupBy.js.map +1 -0
  1843. package/dist/esm/internal/hashMap/array.js +49 -0
  1844. package/dist/esm/internal/hashMap/array.js.map +1 -0
  1845. package/dist/esm/internal/hashMap/bitwise.js +29 -0
  1846. package/dist/esm/internal/hashMap/bitwise.js.map +1 -0
  1847. package/dist/esm/internal/hashMap/config.js +11 -0
  1848. package/dist/esm/internal/hashMap/config.js.map +1 -0
  1849. package/dist/esm/internal/hashMap/keySet.js +6 -0
  1850. package/dist/esm/internal/hashMap/keySet.js.map +1 -0
  1851. package/dist/esm/internal/hashMap/node.js +258 -0
  1852. package/dist/esm/internal/hashMap/node.js.map +1 -0
  1853. package/dist/esm/internal/hashMap.js +338 -0
  1854. package/dist/esm/internal/hashMap.js.map +1 -0
  1855. package/dist/esm/internal/hashSet.js +182 -0
  1856. package/dist/esm/internal/hashSet.js.map +1 -0
  1857. package/dist/esm/internal/internalize.js +8 -0
  1858. package/dist/esm/internal/internalize.js.map +1 -0
  1859. package/dist/esm/internal/keyedPool.js +159 -0
  1860. package/dist/esm/internal/keyedPool.js.map +1 -0
  1861. package/dist/esm/internal/layer/circular.js +60 -0
  1862. package/dist/esm/internal/layer/circular.js.map +1 -0
  1863. package/dist/esm/internal/layer.js +462 -0
  1864. package/dist/esm/internal/layer.js.map +1 -0
  1865. package/dist/esm/internal/logSpan.js +13 -0
  1866. package/dist/esm/internal/logSpan.js.map +1 -0
  1867. package/dist/esm/internal/logger-circular.js +19 -0
  1868. package/dist/esm/internal/logger-circular.js.map +1 -0
  1869. package/dist/esm/internal/logger.js +193 -0
  1870. package/dist/esm/internal/logger.js.map +1 -0
  1871. package/dist/esm/internal/matcher.js +284 -0
  1872. package/dist/esm/internal/matcher.js.map +1 -0
  1873. package/dist/esm/internal/metric/boundaries.js +42 -0
  1874. package/dist/esm/internal/metric/boundaries.js.map +1 -0
  1875. package/dist/esm/internal/metric/hook.js +350 -0
  1876. package/dist/esm/internal/metric/hook.js.map +1 -0
  1877. package/dist/esm/internal/metric/key.js +60 -0
  1878. package/dist/esm/internal/metric/key.js.map +1 -0
  1879. package/dist/esm/internal/metric/keyType.js +201 -0
  1880. package/dist/esm/internal/metric/keyType.js.map +1 -0
  1881. package/dist/esm/internal/metric/label.js +36 -0
  1882. package/dist/esm/internal/metric/label.js.map +1 -0
  1883. package/dist/esm/internal/metric/pair.js +32 -0
  1884. package/dist/esm/internal/metric/pair.js.map +1 -0
  1885. package/dist/esm/internal/metric/polling.js +64 -0
  1886. package/dist/esm/internal/metric/polling.js.map +1 -0
  1887. package/dist/esm/internal/metric/registry.js +105 -0
  1888. package/dist/esm/internal/metric/registry.js.map +1 -0
  1889. package/dist/esm/internal/metric/state.js +185 -0
  1890. package/dist/esm/internal/metric/state.js.map +1 -0
  1891. package/dist/esm/internal/metric.js +180 -0
  1892. package/dist/esm/internal/metric.js.map +1 -0
  1893. package/dist/esm/internal/opCodes/cause.js +13 -0
  1894. package/dist/esm/internal/opCodes/cause.js.map +1 -0
  1895. package/dist/esm/internal/opCodes/channel.js +29 -0
  1896. package/dist/esm/internal/opCodes/channel.js.map +1 -0
  1897. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js +7 -0
  1898. package/dist/esm/internal/opCodes/channelChildExecutorDecision.js.map +1 -0
  1899. package/dist/esm/internal/opCodes/channelMergeDecision.js +5 -0
  1900. package/dist/esm/internal/opCodes/channelMergeDecision.js.map +1 -0
  1901. package/dist/esm/internal/opCodes/channelMergeState.js +7 -0
  1902. package/dist/esm/internal/opCodes/channelMergeState.js.map +1 -0
  1903. package/dist/esm/internal/opCodes/channelMergeStrategy.js +5 -0
  1904. package/dist/esm/internal/opCodes/channelMergeStrategy.js.map +1 -0
  1905. package/dist/esm/internal/opCodes/channelState.js +9 -0
  1906. package/dist/esm/internal/opCodes/channelState.js.map +1 -0
  1907. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js +5 -0
  1908. package/dist/esm/internal/opCodes/channelUpstreamPullRequest.js.map +1 -0
  1909. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js +5 -0
  1910. package/dist/esm/internal/opCodes/channelUpstreamPullStrategy.js.map +1 -0
  1911. package/dist/esm/internal/opCodes/config.js +23 -0
  1912. package/dist/esm/internal/opCodes/config.js.map +1 -0
  1913. package/dist/esm/internal/opCodes/configError.js +13 -0
  1914. package/dist/esm/internal/opCodes/configError.js.map +1 -0
  1915. package/dist/esm/internal/opCodes/continuation.js +5 -0
  1916. package/dist/esm/internal/opCodes/continuation.js.map +1 -0
  1917. package/dist/esm/internal/opCodes/deferred.js +5 -0
  1918. package/dist/esm/internal/opCodes/deferred.js.map +1 -0
  1919. package/dist/esm/internal/opCodes/effect.js +29 -0
  1920. package/dist/esm/internal/opCodes/effect.js.map +1 -0
  1921. package/dist/esm/internal/opCodes/layer.js +19 -0
  1922. package/dist/esm/internal/opCodes/layer.js.map +1 -0
  1923. package/dist/esm/internal/opCodes/streamHaltStrategy.js +9 -0
  1924. package/dist/esm/internal/opCodes/streamHaltStrategy.js.map +1 -0
  1925. package/dist/esm/internal/option.js +69 -0
  1926. package/dist/esm/internal/option.js.map +1 -0
  1927. package/dist/esm/internal/pool.js +261 -0
  1928. package/dist/esm/internal/pool.js.map +1 -0
  1929. package/dist/esm/internal/pubsub.js +1077 -0
  1930. package/dist/esm/internal/pubsub.js.map +1 -0
  1931. package/dist/esm/internal/query.js +93 -0
  1932. package/dist/esm/internal/query.js.map +1 -0
  1933. package/dist/esm/internal/queue.js +481 -0
  1934. package/dist/esm/internal/queue.js.map +1 -0
  1935. package/dist/esm/internal/random.js +56 -0
  1936. package/dist/esm/internal/random.js.map +1 -0
  1937. package/dist/esm/internal/readonlyArray.js +6 -0
  1938. package/dist/esm/internal/readonlyArray.js.map +1 -0
  1939. package/dist/esm/internal/redBlackTree/iterator.js +192 -0
  1940. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -0
  1941. package/dist/esm/internal/redBlackTree/node.js +44 -0
  1942. package/dist/esm/internal/redBlackTree/node.js.map +1 -0
  1943. package/dist/esm/internal/redBlackTree.js +1013 -0
  1944. package/dist/esm/internal/redBlackTree.js.map +1 -0
  1945. package/dist/esm/internal/ref.js +105 -0
  1946. package/dist/esm/internal/ref.js.map +1 -0
  1947. package/dist/esm/internal/reloadable.js +50 -0
  1948. package/dist/esm/internal/reloadable.js.map +1 -0
  1949. package/dist/esm/internal/request.js +90 -0
  1950. package/dist/esm/internal/request.js.map +1 -0
  1951. package/dist/esm/internal/resource.js +28 -0
  1952. package/dist/esm/internal/resource.js.map +1 -0
  1953. package/dist/esm/internal/ringBuffer.js +56 -0
  1954. package/dist/esm/internal/ringBuffer.js.map +1 -0
  1955. package/dist/esm/internal/runtime.js +244 -0
  1956. package/dist/esm/internal/runtime.js.map +1 -0
  1957. package/dist/esm/internal/runtimeFlags.js +107 -0
  1958. package/dist/esm/internal/runtimeFlags.js.map +1 -0
  1959. package/dist/esm/internal/runtimeFlagsPatch.js +38 -0
  1960. package/dist/esm/internal/runtimeFlagsPatch.js.map +1 -0
  1961. package/dist/esm/internal/schedule/decision.js +33 -0
  1962. package/dist/esm/internal/schedule/decision.js.map +1 -0
  1963. package/dist/esm/internal/schedule/interval.js +70 -0
  1964. package/dist/esm/internal/schedule/interval.js.map +1 -0
  1965. package/dist/esm/internal/schedule/intervals.js +121 -0
  1966. package/dist/esm/internal/schedule/intervals.js.map +1 -0
  1967. package/dist/esm/internal/schedule.js +715 -0
  1968. package/dist/esm/internal/schedule.js.map +1 -0
  1969. package/dist/esm/internal/scopedCache.js +382 -0
  1970. package/dist/esm/internal/scopedCache.js.map +1 -0
  1971. package/dist/esm/internal/scopedRef.js +41 -0
  1972. package/dist/esm/internal/scopedRef.js.map +1 -0
  1973. package/dist/esm/internal/secret.js +53 -0
  1974. package/dist/esm/internal/secret.js.map +1 -0
  1975. package/dist/esm/internal/singleShotGen.js +30 -0
  1976. package/dist/esm/internal/singleShotGen.js.map +1 -0
  1977. package/dist/esm/internal/sink.js +796 -0
  1978. package/dist/esm/internal/sink.js.map +1 -0
  1979. package/dist/esm/internal/stack.js +10 -0
  1980. package/dist/esm/internal/stack.js.map +1 -0
  1981. package/dist/esm/internal/stm/core.js +498 -0
  1982. package/dist/esm/internal/stm/core.js.map +1 -0
  1983. package/dist/esm/internal/stm/opCodes/stm.js +25 -0
  1984. package/dist/esm/internal/stm/opCodes/stm.js.map +1 -0
  1985. package/dist/esm/internal/stm/opCodes/stmState.js +7 -0
  1986. package/dist/esm/internal/stm/opCodes/stmState.js.map +1 -0
  1987. package/dist/esm/internal/stm/opCodes/strategy.js +7 -0
  1988. package/dist/esm/internal/stm/opCodes/strategy.js.map +1 -0
  1989. package/dist/esm/internal/stm/opCodes/tExit.js +11 -0
  1990. package/dist/esm/internal/stm/opCodes/tExit.js.map +1 -0
  1991. package/dist/esm/internal/stm/opCodes/tryCommit.js +5 -0
  1992. package/dist/esm/internal/stm/opCodes/tryCommit.js.map +1 -0
  1993. package/dist/esm/internal/stm/stm/entry.js +42 -0
  1994. package/dist/esm/internal/stm/stm/entry.js.map +1 -0
  1995. package/dist/esm/internal/stm/stm/journal.js +89 -0
  1996. package/dist/esm/internal/stm/stm/journal.js.map +1 -0
  1997. package/dist/esm/internal/stm/stm/opCodes/stm.js +25 -0
  1998. package/dist/esm/internal/stm/stm/opCodes/stm.js.map +1 -0
  1999. package/dist/esm/internal/stm/stm/opCodes/stmState.js +7 -0
  2000. package/dist/esm/internal/stm/stm/opCodes/stmState.js.map +1 -0
  2001. package/dist/esm/internal/stm/stm/opCodes/strategy.js +7 -0
  2002. package/dist/esm/internal/stm/stm/opCodes/strategy.js.map +1 -0
  2003. package/dist/esm/internal/stm/stm/opCodes/tExit.js +11 -0
  2004. package/dist/esm/internal/stm/stm/opCodes/tExit.js.map +1 -0
  2005. package/dist/esm/internal/stm/stm/opCodes/tryCommit.js +5 -0
  2006. package/dist/esm/internal/stm/stm/opCodes/tryCommit.js.map +1 -0
  2007. package/dist/esm/internal/stm/stm/stmState.js +87 -0
  2008. package/dist/esm/internal/stm/stm/stmState.js.map +1 -0
  2009. package/dist/esm/internal/stm/stm/tExit.js +99 -0
  2010. package/dist/esm/internal/stm/stm/tExit.js.map +1 -0
  2011. package/dist/esm/internal/stm/stm/tryCommit.js +16 -0
  2012. package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -0
  2013. package/dist/esm/internal/stm/stm/txnId.js +11 -0
  2014. package/dist/esm/internal/stm/stm/txnId.js.map +1 -0
  2015. package/dist/esm/internal/stm/stm/versioned.js +8 -0
  2016. package/dist/esm/internal/stm/stm/versioned.js.map +1 -0
  2017. package/dist/esm/internal/stm/stm.js +491 -0
  2018. package/dist/esm/internal/stm/stm.js.map +1 -0
  2019. package/dist/esm/internal/stm/tArray.js +243 -0
  2020. package/dist/esm/internal/stm/tArray.js.map +1 -0
  2021. package/dist/esm/internal/stm/tDeferred.js +39 -0
  2022. package/dist/esm/internal/stm/tDeferred.js.map +1 -0
  2023. package/dist/esm/internal/stm/tMap.js +428 -0
  2024. package/dist/esm/internal/stm/tMap.js.map +1 -0
  2025. package/dist/esm/internal/stm/tPriorityQueue.js +135 -0
  2026. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -0
  2027. package/dist/esm/internal/stm/tPubSub.js +376 -0
  2028. package/dist/esm/internal/stm/tPubSub.js.map +1 -0
  2029. package/dist/esm/internal/stm/tQueue.js +259 -0
  2030. package/dist/esm/internal/stm/tQueue.js.map +1 -0
  2031. package/dist/esm/internal/stm/tRandom.js +82 -0
  2032. package/dist/esm/internal/stm/tRandom.js.map +1 -0
  2033. package/dist/esm/internal/stm/tReentrantLock.js +192 -0
  2034. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -0
  2035. package/dist/esm/internal/stm/tRef.js +96 -0
  2036. package/dist/esm/internal/stm/tRef.js.map +1 -0
  2037. package/dist/esm/internal/stm/tSemaphore.js +59 -0
  2038. package/dist/esm/internal/stm/tSemaphore.js.map +1 -0
  2039. package/dist/esm/internal/stm/tSet.js +88 -0
  2040. package/dist/esm/internal/stm/tSet.js.map +1 -0
  2041. package/dist/esm/internal/stream/debounceState.js +21 -0
  2042. package/dist/esm/internal/stream/debounceState.js.map +1 -0
  2043. package/dist/esm/internal/stream/emit.js +49 -0
  2044. package/dist/esm/internal/stream/emit.js.map +1 -0
  2045. package/dist/esm/internal/stream/haltStrategy.js +63 -0
  2046. package/dist/esm/internal/stream/haltStrategy.js.map +1 -0
  2047. package/dist/esm/internal/stream/handoff.js +55 -0
  2048. package/dist/esm/internal/stream/handoff.js.map +1 -0
  2049. package/dist/esm/internal/stream/handoffSignal.js +22 -0
  2050. package/dist/esm/internal/stream/handoffSignal.js.map +1 -0
  2051. package/dist/esm/internal/stream/pull.js +20 -0
  2052. package/dist/esm/internal/stream/pull.js.map +1 -0
  2053. package/dist/esm/internal/stream/sinkEndReason.js +13 -0
  2054. package/dist/esm/internal/stream/sinkEndReason.js.map +1 -0
  2055. package/dist/esm/internal/stream/zipAllState.js +33 -0
  2056. package/dist/esm/internal/stream/zipAllState.js.map +1 -0
  2057. package/dist/esm/internal/stream/zipChunksState.js +21 -0
  2058. package/dist/esm/internal/stream/zipChunksState.js.map +1 -0
  2059. package/dist/esm/internal/stream.js +2703 -0
  2060. package/dist/esm/internal/stream.js.map +1 -0
  2061. package/dist/esm/internal/string-utils.js +77 -0
  2062. package/dist/esm/internal/string-utils.js.map +1 -0
  2063. package/dist/esm/internal/subscriptionRef.js +56 -0
  2064. package/dist/esm/internal/subscriptionRef.js.map +1 -0
  2065. package/dist/esm/internal/supervisor/patch.js +125 -0
  2066. package/dist/esm/internal/supervisor/patch.js.map +1 -0
  2067. package/dist/esm/internal/supervisor.js +207 -0
  2068. package/dist/esm/internal/supervisor.js.map +1 -0
  2069. package/dist/esm/internal/synchronizedRef.js +44 -0
  2070. package/dist/esm/internal/synchronizedRef.js.map +1 -0
  2071. package/dist/esm/internal/take.js +108 -0
  2072. package/dist/esm/internal/take.js.map +1 -0
  2073. package/dist/esm/internal/testing/sleep.js +7 -0
  2074. package/dist/esm/internal/testing/sleep.js.map +1 -0
  2075. package/dist/esm/internal/testing/suspendedWarningData.js +48 -0
  2076. package/dist/esm/internal/testing/suspendedWarningData.js.map +1 -0
  2077. package/dist/esm/internal/testing/warningData.js +49 -0
  2078. package/dist/esm/internal/testing/warningData.js.map +1 -0
  2079. package/dist/esm/internal/timeout.js +18 -0
  2080. package/dist/esm/internal/timeout.js.map +1 -0
  2081. package/dist/esm/internal/tracer.js +74 -0
  2082. package/dist/esm/internal/tracer.js.map +1 -0
  2083. package/dist/esm/internal/version.js +2 -0
  2084. package/dist/esm/internal/version.js.map +1 -0
  2085. package/dist/esm/package.json +4 -0
  2086. package/package.json +1166 -31
  2087. package/src/BigDecimal.ts +1012 -0
  2088. package/src/BigInt.ts +547 -0
  2089. package/src/Boolean.ts +261 -0
  2090. package/src/Brand.ts +333 -0
  2091. package/src/Cache.ts +252 -0
  2092. package/src/Cause.ts +896 -0
  2093. package/src/Channel.ts +2267 -0
  2094. package/src/ChildExecutorDecision.ts +146 -0
  2095. package/src/Chunk.ts +1390 -0
  2096. package/src/Clock.ts +111 -0
  2097. package/src/Config.ts +462 -0
  2098. package/src/ConfigError.ts +267 -0
  2099. package/src/ConfigProvider.ts +328 -0
  2100. package/src/ConfigProviderPathPatch.ts +100 -0
  2101. package/src/Console.ts +232 -0
  2102. package/src/Context.ts +369 -0
  2103. package/src/Data.ts +476 -0
  2104. package/src/DefaultServices.ts +34 -0
  2105. package/src/Deferred.ts +284 -0
  2106. package/src/Differ.ts +449 -0
  2107. package/src/Duration.ts +642 -0
  2108. package/src/Effect.ts +5292 -0
  2109. package/src/Effectable.ts +107 -0
  2110. package/src/Either.ts +708 -0
  2111. package/src/Encoding.ts +130 -0
  2112. package/src/Equal.ts +65 -0
  2113. package/src/Equivalence.ts +235 -0
  2114. package/src/ExecutionStrategy.ts +111 -0
  2115. package/src/Exit.ts +480 -0
  2116. package/src/Fiber.ts +657 -0
  2117. package/src/FiberId.ts +187 -0
  2118. package/src/FiberRef.ts +399 -0
  2119. package/src/FiberRefs.ts +204 -0
  2120. package/src/FiberRefsPatch.ts +105 -0
  2121. package/src/FiberStatus.ts +108 -0
  2122. package/src/Function.ts +825 -0
  2123. package/src/GlobalValue.ts +22 -0
  2124. package/src/GroupBy.ts +107 -0
  2125. package/src/HKT.ts +45 -0
  2126. package/src/Hash.ts +158 -0
  2127. package/src/HashMap.ts +421 -0
  2128. package/src/HashSet.ts +300 -0
  2129. package/src/Inspectable.ts +47 -0
  2130. package/src/KeyedPool.ts +167 -0
  2131. package/src/Layer.ts +1051 -0
  2132. package/src/List.ts +968 -0
  2133. package/src/LogLevel.ts +256 -0
  2134. package/src/LogSpan.ts +25 -0
  2135. package/src/Logger.ts +329 -0
  2136. package/src/Match.ts +774 -0
  2137. package/src/MergeDecision.ts +95 -0
  2138. package/src/MergeState.ts +172 -0
  2139. package/src/MergeStrategy.ts +107 -0
  2140. package/src/Metric.ts +755 -0
  2141. package/src/MetricBoundaries.ts +69 -0
  2142. package/src/MetricHook.ts +140 -0
  2143. package/src/MetricKey.ts +216 -0
  2144. package/src/MetricKeyType.ts +257 -0
  2145. package/src/MetricLabel.ts +47 -0
  2146. package/src/MetricPair.ts +71 -0
  2147. package/src/MetricPolling.ts +148 -0
  2148. package/src/MetricRegistry.ts +48 -0
  2149. package/src/MetricState.ts +257 -0
  2150. package/src/MutableHashMap.ts +353 -0
  2151. package/src/MutableHashSet.ts +120 -0
  2152. package/src/MutableList.ts +289 -0
  2153. package/src/MutableQueue.ts +227 -0
  2154. package/src/MutableRef.ts +204 -0
  2155. package/src/NonEmptyIterable.ts +32 -0
  2156. package/src/Number.ts +450 -0
  2157. package/src/Option.ts +1235 -0
  2158. package/src/Order.ts +356 -0
  2159. package/src/Ordering.ts +112 -0
  2160. package/src/Pipeable.ts +318 -0
  2161. package/src/Pool.ts +147 -0
  2162. package/src/Predicate.ts +743 -0
  2163. package/src/PrimaryKey.ts +23 -0
  2164. package/src/PubSub.ts +175 -0
  2165. package/src/Queue.ts +606 -0
  2166. package/src/Random.ts +115 -0
  2167. package/src/ReadonlyArray.ts +2069 -0
  2168. package/src/ReadonlyRecord.ts +1011 -0
  2169. package/src/RedBlackTree.ts +421 -0
  2170. package/src/Ref.ts +160 -0
  2171. package/src/Reloadable.ts +137 -0
  2172. package/src/Request.ts +342 -0
  2173. package/src/RequestBlock.ts +118 -0
  2174. package/src/RequestResolver.ts +328 -0
  2175. package/src/Resource.ts +98 -0
  2176. package/src/Runtime.ts +215 -0
  2177. package/src/RuntimeFlags.ts +336 -0
  2178. package/src/RuntimeFlagsPatch.ts +183 -0
  2179. package/src/STM.ts +2098 -0
  2180. package/src/Schedule.ts +1405 -0
  2181. package/src/ScheduleDecision.ts +62 -0
  2182. package/src/ScheduleInterval.ts +151 -0
  2183. package/src/ScheduleIntervals.ts +122 -0
  2184. package/src/Scheduler.ts +359 -0
  2185. package/src/Scope.ts +171 -0
  2186. package/src/ScopedCache.ts +149 -0
  2187. package/src/ScopedRef.ts +96 -0
  2188. package/src/Secret.ts +75 -0
  2189. package/src/SingleProducerAsyncInput.ts +68 -0
  2190. package/src/Sink.ts +1470 -0
  2191. package/src/SortedMap.ts +248 -0
  2192. package/src/SortedSet.ts +379 -0
  2193. package/src/Stream.ts +4662 -0
  2194. package/src/StreamEmit.ts +83 -0
  2195. package/src/StreamHaltStrategy.ts +111 -0
  2196. package/src/Streamable.ts +45 -0
  2197. package/src/String.ts +682 -0
  2198. package/src/Struct.ts +152 -0
  2199. package/src/SubscriptionRef.ts +276 -0
  2200. package/src/Supervisor.ts +240 -0
  2201. package/src/Symbol.ts +28 -0
  2202. package/src/SynchronizedRef.ts +250 -0
  2203. package/src/TArray.ts +495 -0
  2204. package/src/TDeferred.ts +100 -0
  2205. package/src/TMap.ts +515 -0
  2206. package/src/TPriorityQueue.ts +224 -0
  2207. package/src/TPubSub.ts +191 -0
  2208. package/src/TQueue.ts +432 -0
  2209. package/src/TRandom.ts +129 -0
  2210. package/src/TReentrantLock.ts +224 -0
  2211. package/src/TRef.ts +177 -0
  2212. package/src/TSemaphore.ts +129 -0
  2213. package/src/TSet.ts +365 -0
  2214. package/src/Take.ts +258 -0
  2215. package/src/TestAnnotation.ts +169 -0
  2216. package/src/TestAnnotationMap.ts +123 -0
  2217. package/src/TestAnnotations.ts +116 -0
  2218. package/src/TestClock.ts +550 -0
  2219. package/src/TestConfig.ts +49 -0
  2220. package/src/TestContext.ts +36 -0
  2221. package/src/TestLive.ts +55 -0
  2222. package/src/TestServices.ts +392 -0
  2223. package/src/TestSized.ts +55 -0
  2224. package/src/Tracer.ts +135 -0
  2225. package/src/Tuple.ts +204 -0
  2226. package/src/Types.ts +176 -0
  2227. package/src/Unify.ts +118 -0
  2228. package/src/UpstreamPullRequest.ts +117 -0
  2229. package/src/UpstreamPullStrategy.ts +121 -0
  2230. package/src/Utils.ts +700 -0
  2231. package/src/index.ts +867 -0
  2232. package/src/internal/Iterable.ts +54 -0
  2233. package/src/internal/blockedRequests.ts +504 -0
  2234. package/src/internal/cache.ts +714 -0
  2235. package/src/internal/cause.ts +1072 -0
  2236. package/src/internal/channel/channelExecutor.ts +1194 -0
  2237. package/src/internal/channel/channelState.ts +134 -0
  2238. package/src/internal/channel/childExecutorDecision.ts +96 -0
  2239. package/src/internal/channel/continuation.ts +200 -0
  2240. package/src/internal/channel/mergeDecision.ts +115 -0
  2241. package/src/internal/channel/mergeState.ts +120 -0
  2242. package/src/internal/channel/mergeStrategy.ts +72 -0
  2243. package/src/internal/channel/singleProducerAsyncInput.ts +261 -0
  2244. package/src/internal/channel/subexecutor.ts +229 -0
  2245. package/src/internal/channel/upstreamPullRequest.ts +84 -0
  2246. package/src/internal/channel/upstreamPullStrategy.ts +87 -0
  2247. package/src/internal/channel.ts +2539 -0
  2248. package/src/internal/clock.ts +97 -0
  2249. package/src/internal/completedRequestMap.ts +9 -0
  2250. package/src/internal/concurrency.ts +54 -0
  2251. package/src/internal/config.ts +615 -0
  2252. package/src/internal/configError.ts +291 -0
  2253. package/src/internal/configProvider/pathPatch.ts +97 -0
  2254. package/src/internal/configProvider.ts +807 -0
  2255. package/src/internal/console.ts +153 -0
  2256. package/src/internal/context.ts +253 -0
  2257. package/src/internal/core-effect.ts +2159 -0
  2258. package/src/internal/core-stream.ts +1003 -0
  2259. package/src/internal/core.ts +3004 -0
  2260. package/src/internal/data.ts +37 -0
  2261. package/src/internal/dataSource.ts +302 -0
  2262. package/src/internal/defaultServices/console.ts +97 -0
  2263. package/src/internal/defaultServices.ts +140 -0
  2264. package/src/internal/deferred.ts +46 -0
  2265. package/src/internal/differ/chunkPatch.ts +211 -0
  2266. package/src/internal/differ/contextPatch.ts +232 -0
  2267. package/src/internal/differ/hashMapPatch.ts +220 -0
  2268. package/src/internal/differ/hashSetPatch.ts +176 -0
  2269. package/src/internal/differ/orPatch.ts +311 -0
  2270. package/src/internal/differ/readonlyArrayPatch.ts +208 -0
  2271. package/src/internal/differ.ts +196 -0
  2272. package/src/internal/effect/circular.ts +672 -0
  2273. package/src/internal/effectable.ts +127 -0
  2274. package/src/internal/either.ts +107 -0
  2275. package/src/internal/encoding/base64.ts +282 -0
  2276. package/src/internal/encoding/base64Url.ts +28 -0
  2277. package/src/internal/encoding/common.ts +30 -0
  2278. package/src/internal/encoding/hex.ts +315 -0
  2279. package/src/internal/executionStrategy.ts +72 -0
  2280. package/src/internal/fiber.ts +349 -0
  2281. package/src/internal/fiberId.ts +269 -0
  2282. package/src/internal/fiberMessage.ts +82 -0
  2283. package/src/internal/fiberRefs/patch.ts +144 -0
  2284. package/src/internal/fiberRefs.ts +298 -0
  2285. package/src/internal/fiberRuntime.ts +3491 -0
  2286. package/src/internal/fiberScope.ts +72 -0
  2287. package/src/internal/fiberStatus.ts +118 -0
  2288. package/src/internal/groupBy.ts +541 -0
  2289. package/src/internal/hashMap/array.ts +49 -0
  2290. package/src/internal/hashMap/bitwise.ts +32 -0
  2291. package/src/internal/hashMap/config.ts +14 -0
  2292. package/src/internal/hashMap/keySet.ts +8 -0
  2293. package/src/internal/hashMap/node.ts +391 -0
  2294. package/src/internal/hashMap.ts +540 -0
  2295. package/src/internal/hashSet.ts +319 -0
  2296. package/src/internal/internalize.ts +5 -0
  2297. package/src/internal/keyedPool.ts +242 -0
  2298. package/src/internal/layer/circular.ts +217 -0
  2299. package/src/internal/layer.ts +1231 -0
  2300. package/src/internal/logSpan.ts +15 -0
  2301. package/src/internal/logger-circular.ts +24 -0
  2302. package/src/internal/logger.ts +305 -0
  2303. package/src/internal/matcher.ts +594 -0
  2304. package/src/internal/metric/boundaries.ts +75 -0
  2305. package/src/internal/metric/hook.ts +449 -0
  2306. package/src/internal/metric/key.ts +164 -0
  2307. package/src/internal/metric/keyType.ts +269 -0
  2308. package/src/internal/metric/label.ts +41 -0
  2309. package/src/internal/metric/pair.ts +48 -0
  2310. package/src/internal/metric/polling.ts +143 -0
  2311. package/src/internal/metric/registry.ts +187 -0
  2312. package/src/internal/metric/state.ts +289 -0
  2313. package/src/internal/metric.ts +548 -0
  2314. package/src/internal/opCodes/cause.ts +35 -0
  2315. package/src/internal/opCodes/channel.ts +83 -0
  2316. package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
  2317. package/src/internal/opCodes/channelMergeDecision.ts +11 -0
  2318. package/src/internal/opCodes/channelMergeState.ts +17 -0
  2319. package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
  2320. package/src/internal/opCodes/channelState.ts +23 -0
  2321. package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
  2322. package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
  2323. package/src/internal/opCodes/config.ts +65 -0
  2324. package/src/internal/opCodes/configError.ts +35 -0
  2325. package/src/internal/opCodes/continuation.ts +11 -0
  2326. package/src/internal/opCodes/deferred.ts +11 -0
  2327. package/src/internal/opCodes/effect.ts +83 -0
  2328. package/src/internal/opCodes/layer.ts +53 -0
  2329. package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
  2330. package/src/internal/option.ts +79 -0
  2331. package/src/internal/pool.ts +496 -0
  2332. package/src/internal/pubsub.ts +1561 -0
  2333. package/src/internal/query.ts +203 -0
  2334. package/src/internal/queue.ts +765 -0
  2335. package/src/internal/random.ts +88 -0
  2336. package/src/internal/readonlyArray.ts +8 -0
  2337. package/src/internal/redBlackTree/iterator.ts +200 -0
  2338. package/src/internal/redBlackTree/node.ts +48 -0
  2339. package/src/internal/redBlackTree.ts +1210 -0
  2340. package/src/internal/ref.ts +165 -0
  2341. package/src/internal/reloadable.ts +163 -0
  2342. package/src/internal/request.ts +176 -0
  2343. package/src/internal/resource.ts +65 -0
  2344. package/src/internal/ringBuffer.ts +68 -0
  2345. package/src/internal/runtime.ts +346 -0
  2346. package/src/internal/runtimeFlags.ts +178 -0
  2347. package/src/internal/runtimeFlagsPatch.ts +103 -0
  2348. package/src/internal/schedule/decision.ts +47 -0
  2349. package/src/internal/schedule/interval.ts +101 -0
  2350. package/src/internal/schedule/intervals.ts +179 -0
  2351. package/src/internal/schedule.ts +2103 -0
  2352. package/src/internal/scopedCache.ts +641 -0
  2353. package/src/internal/scopedRef.ts +134 -0
  2354. package/src/internal/secret.ts +69 -0
  2355. package/src/internal/singleShotGen.ts +35 -0
  2356. package/src/internal/sink.ts +2159 -0
  2357. package/src/internal/stack.ts +4 -0
  2358. package/src/internal/stm/core.ts +809 -0
  2359. package/src/internal/stm/opCodes/stm.ts +71 -0
  2360. package/src/internal/stm/opCodes/stmState.ts +17 -0
  2361. package/src/internal/stm/opCodes/strategy.ts +17 -0
  2362. package/src/internal/stm/opCodes/tExit.ts +29 -0
  2363. package/src/internal/stm/opCodes/tryCommit.ts +11 -0
  2364. package/src/internal/stm/stm/entry.ts +59 -0
  2365. package/src/internal/stm/stm/journal.ts +123 -0
  2366. package/src/internal/stm/stm/opCodes/stm.ts +71 -0
  2367. package/src/internal/stm/stm/opCodes/stmState.ts +17 -0
  2368. package/src/internal/stm/stm/opCodes/strategy.ts +17 -0
  2369. package/src/internal/stm/stm/opCodes/tExit.ts +29 -0
  2370. package/src/internal/stm/stm/opCodes/tryCommit.ts +11 -0
  2371. package/src/internal/stm/stm/stmState.ts +131 -0
  2372. package/src/internal/stm/stm/tExit.ts +181 -0
  2373. package/src/internal/stm/stm/tryCommit.ts +34 -0
  2374. package/src/internal/stm/stm/txnId.ts +14 -0
  2375. package/src/internal/stm/stm/versioned.ts +4 -0
  2376. package/src/internal/stm/stm.ts +1491 -0
  2377. package/src/internal/stm/tArray.ts +550 -0
  2378. package/src/internal/stm/tDeferred.ts +79 -0
  2379. package/src/internal/stm/tMap.ts +823 -0
  2380. package/src/internal/stm/tPriorityQueue.ts +260 -0
  2381. package/src/internal/stm/tPubSub.ts +551 -0
  2382. package/src/internal/stm/tQueue.ts +397 -0
  2383. package/src/internal/stm/tRandom.ts +140 -0
  2384. package/src/internal/stm/tReentrantLock.ts +352 -0
  2385. package/src/internal/stm/tRef.ts +190 -0
  2386. package/src/internal/stm/tSemaphore.ts +113 -0
  2387. package/src/internal/stm/tSet.ts +260 -0
  2388. package/src/internal/stream/debounceState.ts +57 -0
  2389. package/src/internal/stream/emit.ts +46 -0
  2390. package/src/internal/stream/haltStrategy.ts +85 -0
  2391. package/src/internal/stream/handoff.ts +187 -0
  2392. package/src/internal/stream/handoffSignal.ts +59 -0
  2393. package/src/internal/stream/pull.ts +35 -0
  2394. package/src/internal/stream/sinkEndReason.ts +30 -0
  2395. package/src/internal/stream/zipAllState.ts +88 -0
  2396. package/src/internal/stream/zipChunksState.ts +56 -0
  2397. package/src/internal/stream.ts +8171 -0
  2398. package/src/internal/string-utils.ts +107 -0
  2399. package/src/internal/subscriptionRef.ts +131 -0
  2400. package/src/internal/supervisor/patch.ts +190 -0
  2401. package/src/internal/supervisor.ts +310 -0
  2402. package/src/internal/synchronizedRef.ts +115 -0
  2403. package/src/internal/take.ts +199 -0
  2404. package/src/internal/testing/sleep.ts +27 -0
  2405. package/src/internal/testing/suspendedWarningData.ts +85 -0
  2406. package/src/internal/testing/warningData.ts +94 -0
  2407. package/src/internal/timeout.ts +23 -0
  2408. package/src/internal/tracer.ts +101 -0
  2409. package/src/internal/version.ts +1 -0
  2410. package/Debug.d.ts +0 -31
  2411. package/Debug.d.ts.map +0 -1
  2412. package/Debug.js +0 -31
  2413. package/Debug.js.map +0 -1
  2414. package/Differ.d.ts +0 -61
  2415. package/Differ.d.ts.map +0 -1
  2416. package/Differ.js +0 -38
  2417. package/Differ.js.map +0 -1
  2418. package/Fiber.d.ts +0 -51
  2419. package/Fiber.d.ts.map +0 -1
  2420. package/Fiber.js +0 -35
  2421. package/Fiber.js.map +0 -1
  2422. package/FiberRefs.d.ts +0 -21
  2423. package/FiberRefs.d.ts.map +0 -1
  2424. package/FiberRefs.js +0 -26
  2425. package/FiberRefs.js.map +0 -1
  2426. package/Logger.d.ts +0 -31
  2427. package/Logger.d.ts.map +0 -1
  2428. package/Logger.js +0 -29
  2429. package/Logger.js.map +0 -1
  2430. package/Metric.d.ts +0 -101
  2431. package/Metric.d.ts.map +0 -1
  2432. package/Metric.js +0 -50
  2433. package/Metric.js.map +0 -1
  2434. package/Optic.d.ts +0 -62
  2435. package/Optic.d.ts.map +0 -1
  2436. package/Optic.js +0 -70
  2437. package/Optic.js.map +0 -1
  2438. package/Ref.d.ts +0 -31
  2439. package/Ref.d.ts.map +0 -1
  2440. package/Ref.js +0 -29
  2441. package/Ref.js.map +0 -1
  2442. package/Schedule.d.ts +0 -41
  2443. package/Schedule.d.ts.map +0 -1
  2444. package/Schedule.js +0 -32
  2445. package/Schedule.js.map +0 -1
  2446. package/_mjs/Debug.mjs +0 -27
  2447. package/_mjs/Debug.mjs.map +0 -1
  2448. package/_mjs/Differ.mjs +0 -61
  2449. package/_mjs/Differ.mjs.map +0 -1
  2450. package/_mjs/Fiber.mjs +0 -51
  2451. package/_mjs/Fiber.mjs.map +0 -1
  2452. package/_mjs/FiberRefs.mjs +0 -21
  2453. package/_mjs/FiberRefs.mjs.map +0 -1
  2454. package/_mjs/Logger.mjs +0 -31
  2455. package/_mjs/Logger.mjs.map +0 -1
  2456. package/_mjs/Metric.mjs +0 -101
  2457. package/_mjs/Metric.mjs.map +0 -1
  2458. package/_mjs/Optic.mjs +0 -62
  2459. package/_mjs/Optic.mjs.map +0 -1
  2460. package/_mjs/Ref.mjs +0 -31
  2461. package/_mjs/Ref.mjs.map +0 -1
  2462. package/_mjs/Schedule.mjs +0 -41
  2463. package/_mjs/Schedule.mjs.map +0 -1
  2464. package/_mjs/index.mjs +0 -939
  2465. package/_mjs/index.mjs.map +0 -1
  2466. package/index.d.ts +0 -939
  2467. package/index.d.ts.map +0 -1
  2468. package/index.js +0 -217
  2469. package/index.js.map +0 -1
@@ -0,0 +1,3491 @@
1
+ import * as Boolean from "../Boolean.js"
2
+ import type * as Cause from "../Cause.js"
3
+ import * as Chunk from "../Chunk.js"
4
+ import type * as Clock from "../Clock.js"
5
+ import type { ConfigProvider } from "../ConfigProvider.js"
6
+ import * as Context from "../Context.js"
7
+ import * as Deferred from "../Deferred.js"
8
+ import type * as Effect from "../Effect.js"
9
+ import { EffectTypeId } from "../Effectable.js"
10
+ import type * as Either from "../Either.js"
11
+ import * as ExecutionStrategy from "../ExecutionStrategy.js"
12
+ import type * as Exit from "../Exit.js"
13
+ import type * as Fiber from "../Fiber.js"
14
+ import * as FiberId from "../FiberId.js"
15
+ import type * as FiberRef from "../FiberRef.js"
16
+ import * as FiberRefs from "../FiberRefs.js"
17
+ import * as FiberRefsPatch from "../FiberRefsPatch.js"
18
+ import * as FiberStatus from "../FiberStatus.js"
19
+ import type { LazyArg } from "../Function.js"
20
+ import { dual, identity, pipe } from "../Function.js"
21
+ import { globalValue } from "../GlobalValue.js"
22
+ import * as HashMap from "../HashMap.js"
23
+ import * as HashSet from "../HashSet.js"
24
+ import type { Logger } from "../Logger.js"
25
+ import * as LogLevel from "../LogLevel.js"
26
+ import type * as MetricLabel from "../MetricLabel.js"
27
+ import * as MRef from "../MutableRef.js"
28
+ import * as Option from "../Option.js"
29
+ import { pipeArguments } from "../Pipeable.js"
30
+ import * as Predicate from "../Predicate.js"
31
+ import * as RA from "../ReadonlyArray.js"
32
+ import * as Ref from "../Ref.js"
33
+ import type { Entry, Request } from "../Request.js"
34
+ import type * as RequestBlock from "../RequestBlock.js"
35
+ import type * as RuntimeFlags from "../RuntimeFlags.js"
36
+ import * as RuntimeFlagsPatch from "../RuntimeFlagsPatch.js"
37
+ import { currentScheduler, type Scheduler } from "../Scheduler.js"
38
+ import type * as Scope from "../Scope.js"
39
+ import type * as Supervisor from "../Supervisor.js"
40
+ import type * as Tracer from "../Tracer.js"
41
+ import type { Concurrency } from "../Types.js"
42
+ import * as _RequestBlock from "./blockedRequests.js"
43
+ import * as internalCause from "./cause.js"
44
+ import * as clock from "./clock.js"
45
+ import { currentRequestMap } from "./completedRequestMap.js"
46
+ import * as concurrency from "./concurrency.js"
47
+ import { configProviderTag } from "./configProvider.js"
48
+ import * as internalEffect from "./core-effect.js"
49
+ import * as core from "./core.js"
50
+ import * as defaultServices from "./defaultServices.js"
51
+ import { consoleTag } from "./defaultServices/console.js"
52
+ import * as executionStrategy from "./executionStrategy.js"
53
+ import * as internalFiber from "./fiber.js"
54
+ import * as FiberMessage from "./fiberMessage.js"
55
+ import * as fiberRefs from "./fiberRefs.js"
56
+ import * as fiberScope from "./fiberScope.js"
57
+ import * as internalLogger from "./logger.js"
58
+ import * as metric from "./metric.js"
59
+ import * as metricBoundaries from "./metric/boundaries.js"
60
+ import * as metricLabel from "./metric/label.js"
61
+ import * as OpCodes from "./opCodes/effect.js"
62
+ import { complete } from "./request.js"
63
+ import * as _runtimeFlags from "./runtimeFlags.js"
64
+ import { OpSupervision } from "./runtimeFlags.js"
65
+ import * as supervisor from "./supervisor.js"
66
+ import * as SupervisorPatch from "./supervisor/patch.js"
67
+ import * as tracer from "./tracer.js"
68
+ import { moduleVersion } from "./version.js"
69
+
70
+ /** @internal */
71
+ export const fiberStarted = metric.counter("effect_fiber_started")
72
+ /** @internal */
73
+ export const fiberActive = metric.counter("effect_fiber_active")
74
+ /** @internal */
75
+ export const fiberSuccesses = metric.counter("effect_fiber_successes")
76
+ /** @internal */
77
+ export const fiberFailures = metric.counter("effect_fiber_failures")
78
+ /** @internal */
79
+ export const fiberLifetimes = metric.tagged(
80
+ metric.histogram(
81
+ "effect_fiber_lifetimes",
82
+ metricBoundaries.exponential({
83
+ start: 0.5,
84
+ factor: 2,
85
+ count: 35
86
+ })
87
+ ),
88
+ "time_unit",
89
+ "milliseconds"
90
+ )
91
+
92
+ /** @internal */
93
+ type EvaluationSignal =
94
+ | EvaluationSignalContinue
95
+ | EvaluationSignalDone
96
+ | EvaluationSignalYieldNow
97
+
98
+ /** @internal */
99
+ const EvaluationSignalContinue = "Continue" as const
100
+
101
+ /** @internal */
102
+ type EvaluationSignalContinue = typeof EvaluationSignalContinue
103
+
104
+ /** @internal */
105
+ const EvaluationSignalDone = "Done" as const
106
+
107
+ /** @internal */
108
+ type EvaluationSignalDone = typeof EvaluationSignalDone
109
+
110
+ /** @internal */
111
+ const EvaluationSignalYieldNow = "Yield" as const
112
+
113
+ /** @internal */
114
+ type EvaluationSignalYieldNow = typeof EvaluationSignalYieldNow
115
+
116
+ const runtimeFiberVariance = {
117
+ /* c8 ignore next */
118
+ _E: (_: never) => _,
119
+ /* c8 ignore next */
120
+ _A: (_: never) => _
121
+ }
122
+
123
+ const absurd = (_: never): never => {
124
+ throw new Error(
125
+ `BUG: FiberRuntime - ${JSON.stringify(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`
126
+ )
127
+ }
128
+
129
+ const YieldedOp = Symbol.for("effect/internal/fiberRuntime/YieldedOp")
130
+ type YieldedOp = typeof YieldedOp
131
+ const yieldedOpChannel: {
132
+ currentOp: core.Primitive | null
133
+ } = globalValue("effect/internal/fiberRuntime/yieldedOpChannel", () => ({
134
+ currentOp: null
135
+ }))
136
+
137
+ const contOpSuccess = {
138
+ [OpCodes.OP_ON_SUCCESS]: (
139
+ _: FiberRuntime<any, any>,
140
+ cont: core.OnSuccess,
141
+ value: unknown
142
+ ) => {
143
+ return cont.i1(value)
144
+ },
145
+ ["OnStep"]: (
146
+ _: FiberRuntime<any, any>,
147
+ _cont: core.OnStep,
148
+ value: unknown
149
+ ) => {
150
+ return core.exitSucceed(core.exitSucceed(value))
151
+ },
152
+ [OpCodes.OP_ON_SUCCESS_AND_FAILURE]: (
153
+ _: FiberRuntime<any, any>,
154
+ cont: core.OnSuccessAndFailure,
155
+ value: unknown
156
+ ) => {
157
+ return cont.i2(value)
158
+ },
159
+ [OpCodes.OP_REVERT_FLAGS]: (
160
+ self: FiberRuntime<any, any>,
161
+ cont: core.RevertFlags,
162
+ value: unknown
163
+ ) => {
164
+ self.patchRuntimeFlags(self._runtimeFlags, cont.patch)
165
+ if (_runtimeFlags.interruptible(self._runtimeFlags) && self.isInterrupted()) {
166
+ return core.exitFailCause(self.getInterruptedCause())
167
+ } else {
168
+ return core.exitSucceed(value)
169
+ }
170
+ },
171
+ [OpCodes.OP_WHILE]: (
172
+ self: FiberRuntime<any, any>,
173
+ cont: core.While,
174
+ value: unknown
175
+ ) => {
176
+ cont.i2(value)
177
+ if (cont.i0()) {
178
+ self.pushStack(cont)
179
+ return cont.i1()
180
+ } else {
181
+ return core.unit
182
+ }
183
+ }
184
+ }
185
+
186
+ const drainQueueWhileRunningTable = {
187
+ [FiberMessage.OP_INTERRUPT_SIGNAL]: (
188
+ self: FiberRuntime<any, any>,
189
+ runtimeFlags: RuntimeFlags.RuntimeFlags,
190
+ cur: Effect.Effect<any, any, any>,
191
+ message: FiberMessage.FiberMessage & { _tag: FiberMessage.OP_INTERRUPT_SIGNAL }
192
+ ) => {
193
+ self.processNewInterruptSignal(message.cause)
194
+ return _runtimeFlags.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur
195
+ },
196
+ [FiberMessage.OP_RESUME]: (
197
+ _self: FiberRuntime<any, any>,
198
+ _runtimeFlags: RuntimeFlags.RuntimeFlags,
199
+ _cur: Effect.Effect<any, any, any>,
200
+ _message: FiberMessage.FiberMessage
201
+ ) => {
202
+ throw new Error("It is illegal to have multiple concurrent run loops in a single fiber")
203
+ },
204
+ [FiberMessage.OP_STATEFUL]: (
205
+ self: FiberRuntime<any, any>,
206
+ runtimeFlags: RuntimeFlags.RuntimeFlags,
207
+ cur: Effect.Effect<any, any, any>,
208
+ message: FiberMessage.FiberMessage & { _tag: FiberMessage.OP_STATEFUL }
209
+ ) => {
210
+ message.onFiber(self, FiberStatus.running(runtimeFlags))
211
+ return cur
212
+ },
213
+ [FiberMessage.OP_YIELD_NOW]: (
214
+ _self: FiberRuntime<any, any>,
215
+ _runtimeFlags: RuntimeFlags.RuntimeFlags,
216
+ cur: Effect.Effect<any, any, any>,
217
+ _message: FiberMessage.FiberMessage & { _tag: FiberMessage.OP_YIELD_NOW }
218
+ ) => {
219
+ return core.flatMap(core.yieldNow(), () => cur)
220
+ }
221
+ }
222
+
223
+ /**
224
+ * Executes all requests, submitting requests to each data source in parallel.
225
+ */
226
+ const runBlockedRequests = (self: RequestBlock.RequestBlock) =>
227
+ core.forEachSequentialDiscard(
228
+ _RequestBlock.flatten(self),
229
+ (requestsByRequestResolver) =>
230
+ forEachConcurrentDiscard(
231
+ _RequestBlock.sequentialCollectionToChunk(requestsByRequestResolver),
232
+ ([dataSource, sequential]) => {
233
+ const map = new Map<Request<any, any>, Entry<any>>()
234
+ for (const block of sequential) {
235
+ for (const entry of block) {
236
+ map.set(entry.request as Request<any, any>, entry)
237
+ }
238
+ }
239
+ return core.fiberRefLocally(
240
+ invokeWithInterrupt(dataSource.runAll(sequential), sequential.flat()),
241
+ currentRequestMap,
242
+ map
243
+ )
244
+ },
245
+ false,
246
+ false
247
+ )
248
+ )
249
+
250
+ /** @internal */
251
+ export interface Snapshot {
252
+ refs: FiberRefs.FiberRefs
253
+ flags: RuntimeFlags.RuntimeFlags
254
+ }
255
+
256
+ /** @internal */
257
+ export class FiberRuntime<in out E, in out A> implements Fiber.RuntimeFiber<E, A> {
258
+ readonly [internalFiber.FiberTypeId] = internalFiber.fiberVariance
259
+ readonly [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance
260
+
261
+ pipe() {
262
+ return pipeArguments(this, arguments)
263
+ }
264
+
265
+ private _fiberRefs: FiberRefs.FiberRefs
266
+ private _fiberId: FiberId.Runtime
267
+ public _runtimeFlags: RuntimeFlags.RuntimeFlags
268
+
269
+ private _queue = new Array<FiberMessage.FiberMessage>()
270
+ private _children: Set<FiberRuntime<any, any>> | null = null
271
+ private _observers = new Array<(exit: Exit.Exit<E, A>) => void>()
272
+ private _running = false
273
+ private _stack: Array<core.Continuation> = []
274
+ private _asyncInterruptor: ((effect: Effect.Effect<any, any, any>) => any) | null = null
275
+ private _asyncBlockingOn: FiberId.FiberId | null = null
276
+ private _exitValue: Exit.Exit<E, A> | null = null
277
+ private _steps: Array<Snapshot> = []
278
+ public _supervisor: Supervisor.Supervisor<any>
279
+ public _scheduler: Scheduler
280
+ private _tracer: Tracer.Tracer
281
+ public currentOpCount: number = 0
282
+ private isYielding = false
283
+
284
+ constructor(
285
+ fiberId: FiberId.Runtime,
286
+ fiberRefs0: FiberRefs.FiberRefs,
287
+ runtimeFlags0: RuntimeFlags.RuntimeFlags
288
+ ) {
289
+ this._runtimeFlags = runtimeFlags0
290
+ this._fiberId = fiberId
291
+ this._fiberRefs = fiberRefs0
292
+ this._supervisor = this.getFiberRef(currentSupervisor)
293
+ this._scheduler = this.getFiberRef(currentScheduler)
294
+ if (_runtimeFlags.runtimeMetrics(runtimeFlags0)) {
295
+ const tags = this.getFiberRef(core.currentMetricLabels)
296
+ fiberStarted.unsafeUpdate(1, tags)
297
+ fiberActive.unsafeUpdate(1, tags)
298
+ }
299
+ this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag)
300
+ }
301
+
302
+ /**
303
+ * The identity of the fiber.
304
+ */
305
+ id(): FiberId.Runtime {
306
+ return this._fiberId
307
+ }
308
+
309
+ /**
310
+ * Begins execution of the effect associated with this fiber on in the
311
+ * background. This can be called to "kick off" execution of a fiber after
312
+ * it has been created.
313
+ */
314
+ resume<E, A>(effect: Effect.Effect<any, E, A>): void {
315
+ this.tell(FiberMessage.resume(effect))
316
+ }
317
+
318
+ /**
319
+ * The status of the fiber.
320
+ */
321
+ get status(): Effect.Effect<never, never, FiberStatus.FiberStatus> {
322
+ return this.ask((_, status) => status)
323
+ }
324
+
325
+ /**
326
+ * Gets the fiber runtime flags.
327
+ */
328
+ get runtimeFlags(): Effect.Effect<never, never, RuntimeFlags.RuntimeFlags> {
329
+ return this.ask((state, status) => {
330
+ if (FiberStatus.isDone(status)) {
331
+ return state._runtimeFlags
332
+ }
333
+ return status.runtimeFlags
334
+ })
335
+ }
336
+
337
+ /**
338
+ * Returns the current `FiberScope` for the fiber.
339
+ */
340
+ scope(): fiberScope.FiberScope {
341
+ return fiberScope.unsafeMake(this)
342
+ }
343
+
344
+ /**
345
+ * Retrieves the immediate children of the fiber.
346
+ */
347
+ get children(): Effect.Effect<never, never, Array<Fiber.RuntimeFiber<any, any>>> {
348
+ return this.ask((fiber) => Array.from(fiber.getChildren()))
349
+ }
350
+
351
+ /**
352
+ * Gets the fiber's set of children.
353
+ */
354
+ getChildren(): Set<FiberRuntime<any, any>> {
355
+ if (this._children === null) {
356
+ this._children = new Set()
357
+ }
358
+ return this._children
359
+ }
360
+
361
+ /**
362
+ * Retrieves the interrupted cause of the fiber, which will be `Cause.empty`
363
+ * if the fiber has not been interrupted.
364
+ *
365
+ * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
366
+ * on this fiber, then values derived from the fiber's state (including the
367
+ * log annotations and log level) may not be up-to-date.
368
+ */
369
+ getInterruptedCause() {
370
+ return this.getFiberRef(core.currentInterruptedCause)
371
+ }
372
+
373
+ /**
374
+ * Retrieves the whole set of fiber refs.
375
+ */
376
+ fiberRefs(): Effect.Effect<never, never, FiberRefs.FiberRefs> {
377
+ return this.ask((fiber) => fiber.getFiberRefs())
378
+ }
379
+
380
+ /**
381
+ * Returns an effect that will contain information computed from the fiber
382
+ * state and status while running on the fiber.
383
+ *
384
+ * This allows the outside world to interact safely with mutable fiber state
385
+ * without locks or immutable data.
386
+ */
387
+ ask<Z>(
388
+ f: (runtime: FiberRuntime<any, any>, status: FiberStatus.FiberStatus) => Z
389
+ ): Effect.Effect<never, never, Z> {
390
+ return core.suspend(() => {
391
+ const deferred = core.deferredUnsafeMake<never, Z>(this._fiberId)
392
+ this.tell(
393
+ FiberMessage.stateful((fiber, status) => {
394
+ core.deferredUnsafeDone(deferred, core.sync(() => f(fiber, status)))
395
+ })
396
+ )
397
+ return core.deferredAwait(deferred)
398
+ })
399
+ }
400
+
401
+ /**
402
+ * Adds a message to be processed by the fiber on the fiber.
403
+ */
404
+ tell(message: FiberMessage.FiberMessage): void {
405
+ this._queue.push(message)
406
+ if (!this._running) {
407
+ this._running = true
408
+ this.drainQueueLaterOnExecutor()
409
+ }
410
+ }
411
+
412
+ get await(): Effect.Effect<never, never, Exit.Exit<E, A>> {
413
+ return core.async<never, never, Exit.Exit<E, A>>((resume) => {
414
+ const cb = (exit: Exit.Exit<E, A>) => resume(core.succeed(exit))
415
+ this.tell(
416
+ FiberMessage.stateful((fiber, _) => {
417
+ if (fiber._exitValue !== null) {
418
+ cb(this._exitValue!)
419
+ } else {
420
+ fiber.addObserver(cb)
421
+ }
422
+ })
423
+ )
424
+ return core.sync(() =>
425
+ this.tell(
426
+ FiberMessage.stateful((fiber, _) => {
427
+ fiber.removeObserver(cb)
428
+ })
429
+ )
430
+ )
431
+ }, this.id())
432
+ }
433
+
434
+ get inheritAll(): Effect.Effect<never, never, void> {
435
+ return core.withFiberRuntime<never, never, void>((parentFiber, parentStatus) => {
436
+ const parentFiberId = parentFiber.id()
437
+ const parentFiberRefs = parentFiber.getFiberRefs()
438
+ const parentRuntimeFlags = parentStatus.runtimeFlags
439
+ const childFiberRefs = this.getFiberRefs()
440
+ const updatedFiberRefs = fiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs)
441
+
442
+ parentFiber.setFiberRefs(updatedFiberRefs)
443
+
444
+ const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags)
445
+
446
+ const patch = pipe(
447
+ _runtimeFlags.diff(parentRuntimeFlags, updatedRuntimeFlags),
448
+ // Do not inherit WindDown or Interruption!
449
+ RuntimeFlagsPatch.exclude(_runtimeFlags.Interruption),
450
+ RuntimeFlagsPatch.exclude(_runtimeFlags.WindDown)
451
+ )
452
+
453
+ return core.updateRuntimeFlags(patch)
454
+ })
455
+ }
456
+
457
+ /**
458
+ * Tentatively observes the fiber, but returns immediately if it is not
459
+ * already done.
460
+ */
461
+ get poll(): Effect.Effect<never, never, Option.Option<Exit.Exit<E, A>>> {
462
+ return core.sync(() => Option.fromNullable(this._exitValue))
463
+ }
464
+
465
+ /**
466
+ * Unsafely observes the fiber, but returns immediately if it is not
467
+ * already done.
468
+ */
469
+ unsafePoll(): Exit.Exit<E, A> | null {
470
+ return this._exitValue
471
+ }
472
+
473
+ /**
474
+ * In the background, interrupts the fiber as if interrupted from the specified fiber.
475
+ */
476
+ interruptAsFork(fiberId: FiberId.FiberId): Effect.Effect<never, never, void> {
477
+ return core.sync(() => this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId))))
478
+ }
479
+
480
+ /**
481
+ * In the background, interrupts the fiber as if interrupted from the specified fiber.
482
+ */
483
+ unsafeInterruptAsFork(fiberId: FiberId.FiberId) {
484
+ this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId)))
485
+ }
486
+
487
+ /**
488
+ * Adds an observer to the list of observers.
489
+ *
490
+ * **NOTE**: This method must be invoked by the fiber itself.
491
+ */
492
+ addObserver(observer: (exit: Exit.Exit<E, A>) => void): void {
493
+ if (this._exitValue !== null) {
494
+ observer(this._exitValue!)
495
+ } else {
496
+ this._observers.push(observer)
497
+ }
498
+ }
499
+
500
+ /**
501
+ * Removes the specified observer from the list of observers that will be
502
+ * notified when the fiber exits.
503
+ *
504
+ * **NOTE**: This method must be invoked by the fiber itself.
505
+ */
506
+ removeObserver(observer: (exit: Exit.Exit<E, A>) => void): void {
507
+ this._observers = this._observers.filter((o) => o !== observer)
508
+ }
509
+ /**
510
+ * Retrieves all fiber refs of the fiber.
511
+ *
512
+ * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
513
+ * on this fiber, then values derived from the fiber's state (including the
514
+ * log annotations and log level) may not be up-to-date.
515
+ */
516
+ getFiberRefs(): FiberRefs.FiberRefs {
517
+ this.setFiberRef(currentRuntimeFlags, this._runtimeFlags)
518
+ return this._fiberRefs
519
+ }
520
+
521
+ /**
522
+ * Deletes the specified fiber ref.
523
+ *
524
+ * **NOTE**: This method must be invoked by the fiber itself.
525
+ */
526
+ unsafeDeleteFiberRef<X>(fiberRef: FiberRef.FiberRef<X>): void {
527
+ this._fiberRefs = fiberRefs.delete_(this._fiberRefs, fiberRef)
528
+ }
529
+
530
+ /**
531
+ * Retrieves the state of the fiber ref, or else its initial value.
532
+ *
533
+ * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
534
+ * on this fiber, then values derived from the fiber's state (including the
535
+ * log annotations and log level) may not be up-to-date.
536
+ */
537
+ getFiberRef<X>(fiberRef: FiberRef.FiberRef<X>): X {
538
+ if (this._fiberRefs.locals.has(fiberRef)) {
539
+ return this._fiberRefs.locals.get(fiberRef)![0][1] as X
540
+ }
541
+ return fiberRef.initial
542
+ }
543
+
544
+ /**
545
+ * Sets the fiber ref to the specified value.
546
+ *
547
+ * **NOTE**: This method must be invoked by the fiber itself.
548
+ */
549
+ setFiberRef<X>(fiberRef: FiberRef.FiberRef<X>, value: X): void {
550
+ this._fiberRefs = fiberRefs.updateAs(this._fiberRefs, {
551
+ fiberId: this._fiberId,
552
+ fiberRef,
553
+ value
554
+ })
555
+ this.refreshRefCache()
556
+ }
557
+
558
+ refreshRefCache() {
559
+ this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag)
560
+ this._supervisor = this.getFiberRef(currentSupervisor)
561
+ this._scheduler = this.getFiberRef(currentScheduler)
562
+ }
563
+
564
+ /**
565
+ * Wholesale replaces all fiber refs of this fiber.
566
+ *
567
+ * **NOTE**: This method must be invoked by the fiber itself.
568
+ */
569
+ setFiberRefs(fiberRefs: FiberRefs.FiberRefs): void {
570
+ this._fiberRefs = fiberRefs
571
+ this.refreshRefCache()
572
+ }
573
+
574
+ /**
575
+ * Adds a reference to the specified fiber inside the children set.
576
+ *
577
+ * **NOTE**: This method must be invoked by the fiber itself.
578
+ */
579
+ addChild(child: FiberRuntime<any, any>) {
580
+ this.getChildren().add(child)
581
+ }
582
+
583
+ /**
584
+ * Removes a reference to the specified fiber inside the children set.
585
+ *
586
+ * **NOTE**: This method must be invoked by the fiber itself.
587
+ */
588
+ removeChild(child: FiberRuntime<any, any>) {
589
+ this.getChildren().delete(child)
590
+ }
591
+
592
+ /**
593
+ * On the current thread, executes all messages in the fiber's inbox. This
594
+ * method may return before all work is done, in the event the fiber executes
595
+ * an asynchronous operation.
596
+ *
597
+ * **NOTE**: This method must be invoked by the fiber itself.
598
+ */
599
+ drainQueueOnCurrentThread() {
600
+ let recurse = true
601
+ while (recurse) {
602
+ let evaluationSignal: EvaluationSignal = EvaluationSignalContinue
603
+ const prev = (globalThis as any)[internalFiber.currentFiberURI]
604
+ ;(globalThis as any)[internalFiber.currentFiberURI] = this
605
+ try {
606
+ while (evaluationSignal === EvaluationSignalContinue) {
607
+ evaluationSignal = this._queue.length === 0 ?
608
+ EvaluationSignalDone :
609
+ this.evaluateMessageWhileSuspended(this._queue.splice(0, 1)[0]!)
610
+ }
611
+ } finally {
612
+ this._running = false
613
+ ;(globalThis as any)[internalFiber.currentFiberURI] = prev
614
+ }
615
+ // Maybe someone added something to the queue between us checking, and us
616
+ // giving up the drain. If so, we need to restart the draining, but only
617
+ // if we beat everyone else to the restart:
618
+ if (this._queue.length > 0 && !this._running) {
619
+ this._running = true
620
+ if (evaluationSignal === EvaluationSignalYieldNow) {
621
+ this.drainQueueLaterOnExecutor()
622
+ recurse = false
623
+ } else {
624
+ recurse = true
625
+ }
626
+ } else {
627
+ recurse = false
628
+ }
629
+ }
630
+ }
631
+
632
+ /**
633
+ * Schedules the execution of all messages in the fiber's inbox.
634
+ *
635
+ * This method will return immediately after the scheduling
636
+ * operation is completed, but potentially before such messages have been
637
+ * executed.
638
+ *
639
+ * **NOTE**: This method must be invoked by the fiber itself.
640
+ */
641
+ drainQueueLaterOnExecutor() {
642
+ this._scheduler.scheduleTask(
643
+ this.run,
644
+ this.getFiberRef(core.currentSchedulingPriority)
645
+ )
646
+ }
647
+
648
+ /**
649
+ * Drains the fiber's message queue while the fiber is actively running,
650
+ * returning the next effect to execute, which may be the input effect if no
651
+ * additional effect needs to be executed.
652
+ *
653
+ * **NOTE**: This method must be invoked by the fiber itself.
654
+ */
655
+ drainQueueWhileRunning(
656
+ runtimeFlags: RuntimeFlags.RuntimeFlags,
657
+ cur0: Effect.Effect<any, any, any>
658
+ ) {
659
+ let cur = cur0
660
+ while (this._queue.length > 0) {
661
+ const message = this._queue.splice(0, 1)[0]
662
+ // @ts-expect-error
663
+ cur = drainQueueWhileRunningTable[message._tag](this, runtimeFlags, cur, message)
664
+ }
665
+ return cur
666
+ }
667
+
668
+ /**
669
+ * Determines if the fiber is interrupted.
670
+ *
671
+ * **NOTE**: This method is safe to invoke on any fiber, but if not invoked
672
+ * on this fiber, then values derived from the fiber's state (including the
673
+ * log annotations and log level) may not be up-to-date.
674
+ */
675
+ isInterrupted(): boolean {
676
+ return !internalCause.isEmpty(this.getFiberRef(core.currentInterruptedCause))
677
+ }
678
+
679
+ /**
680
+ * Adds an interruptor to the set of interruptors that are interrupting this
681
+ * fiber.
682
+ *
683
+ * **NOTE**: This method must be invoked by the fiber itself.
684
+ */
685
+ addInterruptedCause(cause: Cause.Cause<never>) {
686
+ const oldSC = this.getFiberRef(core.currentInterruptedCause)
687
+ this.setFiberRef(core.currentInterruptedCause, internalCause.sequential(oldSC, cause))
688
+ }
689
+
690
+ /**
691
+ * Processes a new incoming interrupt signal.
692
+ *
693
+ * **NOTE**: This method must be invoked by the fiber itself.
694
+ */
695
+ processNewInterruptSignal(cause: Cause.Cause<never>): void {
696
+ this.addInterruptedCause(cause)
697
+ this.sendInterruptSignalToAllChildren()
698
+ }
699
+
700
+ /**
701
+ * Interrupts all children of the current fiber, returning an effect that will
702
+ * await the exit of the children. This method will return null if the fiber
703
+ * has no children.
704
+ *
705
+ * **NOTE**: This method must be invoked by the fiber itself.
706
+ */
707
+ sendInterruptSignalToAllChildren(): boolean {
708
+ if (this._children === null || this._children.size === 0) {
709
+ return false
710
+ }
711
+ let told = false
712
+ for (const child of this._children) {
713
+ child.tell(FiberMessage.interruptSignal(internalCause.interrupt(this.id())))
714
+ told = true
715
+ }
716
+ return told
717
+ }
718
+
719
+ /**
720
+ * Interrupts all children of the current fiber, returning an effect that will
721
+ * await the exit of the children. This method will return null if the fiber
722
+ * has no children.
723
+ *
724
+ * **NOTE**: This method must be invoked by the fiber itself.
725
+ */
726
+ interruptAllChildren() {
727
+ if (this.sendInterruptSignalToAllChildren()) {
728
+ const it = this._children!.values()
729
+ this._children = null
730
+ let isDone = false
731
+ const body = () => {
732
+ const next = it.next()
733
+ if (!next.done) {
734
+ return core.asUnit(next.value.await)
735
+ } else {
736
+ return core.sync(() => {
737
+ isDone = true
738
+ })
739
+ }
740
+ }
741
+ return core.whileLoop({
742
+ while: () => !isDone,
743
+ body,
744
+ step: () => {
745
+ //
746
+ }
747
+ })
748
+ }
749
+ return null
750
+ }
751
+
752
+ reportExitValue(exit: Exit.Exit<E, A>) {
753
+ if (_runtimeFlags.runtimeMetrics(this._runtimeFlags)) {
754
+ const tags = this.getFiberRef(core.currentMetricLabels)
755
+ const startTimeMillis = this.id().startTimeMillis
756
+ const endTimeMillis = Date.now()
757
+ fiberLifetimes.unsafeUpdate(endTimeMillis - startTimeMillis, tags)
758
+ fiberActive.unsafeUpdate(-1, tags)
759
+ switch (exit._tag) {
760
+ case OpCodes.OP_SUCCESS: {
761
+ fiberSuccesses.unsafeUpdate(1, tags)
762
+ break
763
+ }
764
+ case OpCodes.OP_FAILURE: {
765
+ fiberFailures.unsafeUpdate(1, tags)
766
+ break
767
+ }
768
+ }
769
+ }
770
+ if (exit._tag === "Failure") {
771
+ const level = this.getFiberRef(core.currentUnhandledErrorLogLevel)
772
+ if (!internalCause.isInterruptedOnly(exit.cause) && level._tag === "Some") {
773
+ this.log("Fiber terminated with a non handled error", exit.cause, level)
774
+ }
775
+ }
776
+ }
777
+
778
+ setExitValue(exit: Exit.Exit<E, A>) {
779
+ this._exitValue = exit
780
+ this.reportExitValue(exit)
781
+ for (let i = this._observers.length - 1; i >= 0; i--) {
782
+ this._observers[i](exit)
783
+ }
784
+ }
785
+
786
+ getLoggers() {
787
+ return this.getFiberRef(currentLoggers)
788
+ }
789
+
790
+ log(
791
+ message: unknown,
792
+ cause: Cause.Cause<any>,
793
+ overrideLogLevel: Option.Option<LogLevel.LogLevel>
794
+ ): void {
795
+ const logLevel = Option.isSome(overrideLogLevel) ?
796
+ overrideLogLevel.value :
797
+ this.getFiberRef(core.currentLogLevel)
798
+ const minimumLogLevel = this.getFiberRef(currentMinimumLogLevel)
799
+ if (LogLevel.greaterThan(minimumLogLevel, logLevel)) {
800
+ return
801
+ }
802
+ const spans = this.getFiberRef(core.currentLogSpan)
803
+ const annotations = this.getFiberRef(core.currentLogAnnotations)
804
+ const loggers = this.getLoggers()
805
+ const contextMap = this.getFiberRefs()
806
+ if (HashSet.size(loggers) > 0) {
807
+ const clockService = Context.get(this.getFiberRef(defaultServices.currentServices), clock.clockTag)
808
+ const date = new Date(clockService.unsafeCurrentTimeMillis())
809
+ for (const logger of loggers) {
810
+ logger.log({
811
+ fiberId: this.id(),
812
+ logLevel,
813
+ message,
814
+ cause,
815
+ context: contextMap,
816
+ spans,
817
+ annotations,
818
+ date
819
+ })
820
+ }
821
+ }
822
+ }
823
+
824
+ /**
825
+ * Evaluates a single message on the current thread, while the fiber is
826
+ * suspended. This method should only be called while evaluation of the
827
+ * fiber's effect is suspended due to an asynchronous operation.
828
+ *
829
+ * **NOTE**: This method must be invoked by the fiber itself.
830
+ */
831
+ evaluateMessageWhileSuspended(message: FiberMessage.FiberMessage): EvaluationSignal {
832
+ switch (message._tag) {
833
+ case FiberMessage.OP_YIELD_NOW: {
834
+ return EvaluationSignalYieldNow
835
+ }
836
+ case FiberMessage.OP_INTERRUPT_SIGNAL: {
837
+ this.processNewInterruptSignal(message.cause)
838
+ if (this._asyncInterruptor !== null) {
839
+ this._asyncInterruptor(core.exitFailCause(message.cause))
840
+ this._asyncInterruptor = null
841
+ }
842
+ return EvaluationSignalContinue
843
+ }
844
+ case FiberMessage.OP_RESUME: {
845
+ this._asyncInterruptor = null
846
+ this._asyncBlockingOn = null
847
+ this.evaluateEffect(message.effect)
848
+ return EvaluationSignalContinue
849
+ }
850
+ case FiberMessage.OP_STATEFUL: {
851
+ message.onFiber(
852
+ this,
853
+ this._exitValue !== null ?
854
+ FiberStatus.done :
855
+ FiberStatus.suspended(this._runtimeFlags, this._asyncBlockingOn!)
856
+ )
857
+ return EvaluationSignalContinue
858
+ }
859
+ default: {
860
+ return absurd(message)
861
+ }
862
+ }
863
+ }
864
+
865
+ /**
866
+ * Evaluates an effect until completion, potentially asynchronously.
867
+ *
868
+ * **NOTE**: This method must be invoked by the fiber itself.
869
+ */
870
+ evaluateEffect(effect0: Effect.Effect<any, any, any>) {
871
+ this._supervisor.onResume(this)
872
+ try {
873
+ let effect: Effect.Effect<any, any, any> | null =
874
+ _runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted() ?
875
+ core.exitFailCause(this.getInterruptedCause()) :
876
+ effect0
877
+ while (effect !== null) {
878
+ const eff: Effect.Effect<any, any, any> = effect
879
+ const exit = this.runLoop(eff)
880
+ if (exit === YieldedOp) {
881
+ const op = yieldedOpChannel.currentOp!
882
+ yieldedOpChannel.currentOp = null
883
+ if (op._op === OpCodes.OP_YIELD) {
884
+ if (_runtimeFlags.cooperativeYielding(this._runtimeFlags)) {
885
+ this.tell(FiberMessage.yieldNow())
886
+ this.tell(FiberMessage.resume(core.exitUnit))
887
+ effect = null
888
+ } else {
889
+ effect = core.exitUnit
890
+ }
891
+ } else if (op._op === OpCodes.OP_ASYNC) {
892
+ // Terminate this evaluation, async resumption will continue evaluation:
893
+ effect = null
894
+ }
895
+ } else {
896
+ this._runtimeFlags = pipe(this._runtimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown))
897
+ const interruption = this.interruptAllChildren()
898
+ if (interruption !== null) {
899
+ effect = core.flatMap(interruption, () => exit)
900
+ } else {
901
+ if (this._queue.length === 0) {
902
+ // No more messages to process, so we will allow the fiber to end life:
903
+ this.setExitValue(exit)
904
+ } else {
905
+ // There are messages, possibly added by the final op executed by
906
+ // the fiber. To be safe, we should execute those now before we
907
+ // allow the fiber to end life:
908
+ this.tell(FiberMessage.resume(exit))
909
+ }
910
+ effect = null
911
+ }
912
+ }
913
+ }
914
+ } finally {
915
+ this._supervisor.onSuspend(this)
916
+ }
917
+ }
918
+
919
+ /**
920
+ * Begins execution of the effect associated with this fiber on the current
921
+ * thread. This can be called to "kick off" execution of a fiber after it has
922
+ * been created, in hopes that the effect can be executed synchronously.
923
+ *
924
+ * This is not the normal way of starting a fiber, but it is useful when the
925
+ * express goal of executing the fiber is to synchronously produce its exit.
926
+ */
927
+ start<R>(effect: Effect.Effect<R, E, A>): void {
928
+ if (!this._running) {
929
+ this._running = true
930
+ const prev = (globalThis as any)[internalFiber.currentFiberURI]
931
+ ;(globalThis as any)[internalFiber.currentFiberURI] = this
932
+ try {
933
+ this.evaluateEffect(effect)
934
+ } finally {
935
+ this._running = false
936
+ ;(globalThis as any)[internalFiber.currentFiberURI] = prev
937
+ // Because we're special casing `start`, we have to be responsible
938
+ // for spinning up the fiber if there were new messages added to
939
+ // the queue between the completion of the effect and the transition
940
+ // to the not running state.
941
+ if (this._queue.length > 0) {
942
+ this.drainQueueLaterOnExecutor()
943
+ }
944
+ }
945
+ } else {
946
+ this.tell(FiberMessage.resume(effect))
947
+ }
948
+ }
949
+
950
+ /**
951
+ * Begins execution of the effect associated with this fiber on in the
952
+ * background, and on the correct thread pool. This can be called to "kick
953
+ * off" execution of a fiber after it has been created, in hopes that the
954
+ * effect can be executed synchronously.
955
+ */
956
+ startFork<R>(effect: Effect.Effect<R, E, A>): void {
957
+ this.tell(FiberMessage.resume(effect))
958
+ }
959
+
960
+ /**
961
+ * Takes the current runtime flags, patches them to return the new runtime
962
+ * flags, and then makes any changes necessary to fiber state based on the
963
+ * specified patch.
964
+ *
965
+ * **NOTE**: This method must be invoked by the fiber itself.
966
+ */
967
+ patchRuntimeFlags(oldRuntimeFlags: RuntimeFlags.RuntimeFlags, patch: RuntimeFlagsPatch.RuntimeFlagsPatch) {
968
+ const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, patch)
969
+ ;(globalThis as any)[internalFiber.currentFiberURI] = this
970
+ this._runtimeFlags = newRuntimeFlags
971
+ return newRuntimeFlags
972
+ }
973
+
974
+ /**
975
+ * Initiates an asynchronous operation, by building a callback that will
976
+ * resume execution, and then feeding that callback to the registration
977
+ * function, handling error cases and repeated resumptions appropriately.
978
+ *
979
+ * **NOTE**: This method must be invoked by the fiber itself.
980
+ */
981
+ initiateAsync(
982
+ runtimeFlags: RuntimeFlags.RuntimeFlags,
983
+ asyncRegister: (resume: (effect: Effect.Effect<any, any, any>) => void) => void
984
+ ) {
985
+ let alreadyCalled = false
986
+ const callback = (effect: Effect.Effect<any, any, any>) => {
987
+ if (!alreadyCalled) {
988
+ alreadyCalled = true
989
+ this.tell(FiberMessage.resume(effect))
990
+ }
991
+ }
992
+ if (_runtimeFlags.interruptible(runtimeFlags)) {
993
+ this._asyncInterruptor = callback
994
+ }
995
+ try {
996
+ asyncRegister(callback)
997
+ } catch (e) {
998
+ callback(core.failCause(internalCause.die(e)))
999
+ }
1000
+ }
1001
+
1002
+ pushStack(cont: core.Continuation) {
1003
+ this._stack.push(cont)
1004
+ if (cont._op === "OnStep") {
1005
+ this._steps.push({ refs: this.getFiberRefs(), flags: this._runtimeFlags })
1006
+ }
1007
+ }
1008
+
1009
+ popStack() {
1010
+ const item = this._stack.pop()
1011
+ if (item) {
1012
+ if (item._op === "OnStep") {
1013
+ this._steps.pop()
1014
+ }
1015
+ return item
1016
+ }
1017
+ return
1018
+ }
1019
+
1020
+ getNextSuccessCont() {
1021
+ let frame = this.popStack()
1022
+ while (frame) {
1023
+ if (frame._op !== OpCodes.OP_ON_FAILURE) {
1024
+ return frame
1025
+ }
1026
+ frame = this.popStack()
1027
+ }
1028
+ }
1029
+
1030
+ getNextFailCont() {
1031
+ let frame = this.popStack()
1032
+ while (frame) {
1033
+ if (frame._op !== OpCodes.OP_ON_SUCCESS && frame._op !== OpCodes.OP_WHILE) {
1034
+ return frame
1035
+ }
1036
+ frame = this.popStack()
1037
+ }
1038
+ }
1039
+
1040
+ [OpCodes.OP_TAG](op: core.Primitive & { _op: OpCodes.OP_SYNC }) {
1041
+ return core.map(
1042
+ core.fiberRefGet(core.currentContext),
1043
+ (context) => Context.unsafeGet(context, op as unknown as Context.Tag<any, any>)
1044
+ )
1045
+ }
1046
+
1047
+ ["Left"](op: core.Primitive & { _op: "Left" }) {
1048
+ return core.fail(op.left)
1049
+ }
1050
+
1051
+ ["None"](_: core.Primitive & { _op: "None" }) {
1052
+ return core.fail(new core.NoSuchElementException())
1053
+ }
1054
+
1055
+ ["Right"](op: core.Primitive & { _op: "Right" }) {
1056
+ return core.exitSucceed(op.right)
1057
+ }
1058
+
1059
+ ["Some"](op: core.Primitive & { _op: "Some" }) {
1060
+ return core.exitSucceed(op.value)
1061
+ }
1062
+
1063
+ [OpCodes.OP_SYNC](op: core.Primitive & { _op: OpCodes.OP_SYNC }) {
1064
+ const value = op.i0()
1065
+ const cont = this.getNextSuccessCont()
1066
+ if (cont !== undefined) {
1067
+ if (!(cont._op in contOpSuccess)) {
1068
+ // @ts-expect-error
1069
+ absurd(cont)
1070
+ }
1071
+ // @ts-expect-error
1072
+ return contOpSuccess[cont._op](this, cont, value)
1073
+ } else {
1074
+ yieldedOpChannel.currentOp = core.exitSucceed(value) as any
1075
+ return YieldedOp
1076
+ }
1077
+ }
1078
+
1079
+ [OpCodes.OP_SUCCESS](op: core.Primitive & { _op: OpCodes.OP_SUCCESS }) {
1080
+ const oldCur = op
1081
+ const cont = this.getNextSuccessCont()
1082
+ if (cont !== undefined) {
1083
+ if (!(cont._op in contOpSuccess)) {
1084
+ // @ts-expect-error
1085
+ absurd(cont)
1086
+ }
1087
+ // @ts-expect-error
1088
+ return contOpSuccess[cont._op](this, cont, oldCur.i0)
1089
+ } else {
1090
+ yieldedOpChannel.currentOp = oldCur
1091
+ return YieldedOp
1092
+ }
1093
+ }
1094
+
1095
+ [OpCodes.OP_FAILURE](op: core.Primitive & { _op: OpCodes.OP_FAILURE }) {
1096
+ const cause = op.i0
1097
+ const cont = this.getNextFailCont()
1098
+ if (cont !== undefined) {
1099
+ switch (cont._op) {
1100
+ case OpCodes.OP_ON_FAILURE:
1101
+ case OpCodes.OP_ON_SUCCESS_AND_FAILURE: {
1102
+ if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
1103
+ return cont.i1(cause)
1104
+ } else {
1105
+ return core.exitFailCause(internalCause.stripFailures(cause))
1106
+ }
1107
+ }
1108
+ case "OnStep": {
1109
+ if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
1110
+ return core.exitSucceed(core.exitFailCause(cause))
1111
+ } else {
1112
+ return core.exitFailCause(internalCause.stripFailures(cause))
1113
+ }
1114
+ }
1115
+ case OpCodes.OP_REVERT_FLAGS: {
1116
+ this.patchRuntimeFlags(this._runtimeFlags, cont.patch)
1117
+ if (_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted()) {
1118
+ return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()))
1119
+ } else {
1120
+ return core.exitFailCause(cause)
1121
+ }
1122
+ }
1123
+ default: {
1124
+ absurd(cont)
1125
+ }
1126
+ }
1127
+ } else {
1128
+ yieldedOpChannel.currentOp = core.exitFailCause(cause) as any
1129
+ return YieldedOp
1130
+ }
1131
+ }
1132
+
1133
+ [OpCodes.OP_WITH_RUNTIME](op: core.Primitive & { _op: OpCodes.OP_WITH_RUNTIME }) {
1134
+ return op.i0(
1135
+ this as FiberRuntime<unknown, unknown>,
1136
+ FiberStatus.running(this._runtimeFlags) as FiberStatus.Running
1137
+ )
1138
+ }
1139
+
1140
+ ["Blocked"](op: core.Primitive & { _op: "Blocked" }) {
1141
+ const refs = this.getFiberRefs()
1142
+ const flags = this._runtimeFlags
1143
+ if (this._steps.length > 0) {
1144
+ const frames: Array<core.Continuation> = []
1145
+ const snap = this._steps[this._steps.length - 1]
1146
+ let frame = this.popStack()
1147
+ while (frame && frame._op !== "OnStep") {
1148
+ frames.push(frame)
1149
+ frame = this.popStack()
1150
+ }
1151
+ this.setFiberRefs(snap.refs)
1152
+ this._runtimeFlags = snap.flags
1153
+ const patchRefs = FiberRefsPatch.diff(snap.refs, refs)
1154
+ const patchFlags = _runtimeFlags.diff(snap.flags, flags)
1155
+ return core.exitSucceed(core.blocked(
1156
+ op.i0,
1157
+ core.withFiberRuntime((newFiber) => {
1158
+ while (frames.length > 0) {
1159
+ newFiber.pushStack(frames.pop()!)
1160
+ }
1161
+ newFiber.setFiberRefs(
1162
+ FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs)
1163
+ )
1164
+ newFiber._runtimeFlags = _runtimeFlags.patch(patchFlags)(newFiber._runtimeFlags)
1165
+ return op.i1
1166
+ })
1167
+ ))
1168
+ }
1169
+ return core.uninterruptibleMask((restore) =>
1170
+ core.flatMap(
1171
+ forkDaemon(core.runRequestBlock(op.i0)),
1172
+ () => restore(op.i1)
1173
+ )
1174
+ )
1175
+ }
1176
+
1177
+ ["RunBlocked"](op: core.Primitive & { _op: "RunBlocked" }) {
1178
+ return runBlockedRequests(op.i0)
1179
+ }
1180
+
1181
+ [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op: core.Primitive & { _op: OpCodes.OP_UPDATE_RUNTIME_FLAGS }) {
1182
+ const updateFlags = op.i0
1183
+ const oldRuntimeFlags = this._runtimeFlags
1184
+ const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, updateFlags)
1185
+ // One more chance to short circuit: if we're immediately going
1186
+ // to interrupt. Interruption will cause immediate reversion of
1187
+ // the flag, so as long as we "peek ahead", there's no need to
1188
+ // set them to begin with.
1189
+ if (_runtimeFlags.interruptible(newRuntimeFlags) && this.isInterrupted()) {
1190
+ return core.exitFailCause(this.getInterruptedCause())
1191
+ } else {
1192
+ // Impossible to short circuit, so record the changes
1193
+ this.patchRuntimeFlags(this._runtimeFlags, updateFlags)
1194
+ if (op.i1) {
1195
+ // Since we updated the flags, we need to revert them
1196
+ const revertFlags = _runtimeFlags.diff(newRuntimeFlags, oldRuntimeFlags)
1197
+ this.pushStack(new core.RevertFlags(revertFlags, op))
1198
+ return op.i1(oldRuntimeFlags)
1199
+ } else {
1200
+ return core.exitUnit
1201
+ }
1202
+ }
1203
+ }
1204
+
1205
+ [OpCodes.OP_ON_SUCCESS](op: core.Primitive & { _op: OpCodes.OP_ON_SUCCESS }) {
1206
+ this.pushStack(op)
1207
+ return op.i0
1208
+ }
1209
+
1210
+ ["OnStep"](op: core.Primitive & { _op: "OnStep" }) {
1211
+ this.pushStack(op)
1212
+ return op.i0
1213
+ }
1214
+
1215
+ [OpCodes.OP_ON_FAILURE](op: core.Primitive & { _op: OpCodes.OP_ON_FAILURE }) {
1216
+ this.pushStack(op)
1217
+ return op.i0
1218
+ }
1219
+
1220
+ [OpCodes.OP_ON_SUCCESS_AND_FAILURE](op: core.Primitive & { _op: OpCodes.OP_ON_SUCCESS_AND_FAILURE }) {
1221
+ this.pushStack(op)
1222
+ return op.i0
1223
+ }
1224
+
1225
+ [OpCodes.OP_ASYNC](op: core.Primitive & { _op: OpCodes.OP_ASYNC }) {
1226
+ this._asyncBlockingOn = op.i1
1227
+ this.initiateAsync(this._runtimeFlags, op.i0)
1228
+ yieldedOpChannel.currentOp = op
1229
+ return YieldedOp
1230
+ }
1231
+
1232
+ [OpCodes.OP_YIELD](op: core.Primitive & { op: OpCodes.OP_YIELD }) {
1233
+ this.isYielding = false
1234
+ yieldedOpChannel.currentOp = op
1235
+ return YieldedOp
1236
+ }
1237
+
1238
+ [OpCodes.OP_WHILE](op: core.Primitive & { _op: OpCodes.OP_WHILE }) {
1239
+ const check = op.i0
1240
+ const body = op.i1
1241
+ if (check()) {
1242
+ this.pushStack(op)
1243
+ return body()
1244
+ } else {
1245
+ return core.exitUnit
1246
+ }
1247
+ }
1248
+
1249
+ [OpCodes.OP_COMMIT](op: core.Primitive & { _op: OpCodes.OP_COMMIT }) {
1250
+ return op.commit()
1251
+ }
1252
+
1253
+ /**
1254
+ * The main run-loop for evaluating effects.
1255
+ *
1256
+ * **NOTE**: This method must be invoked by the fiber itself.
1257
+ */
1258
+ runLoop(effect0: Effect.Effect<any, any, any>): Exit.Exit<any, any> | YieldedOp {
1259
+ let cur: Effect.Effect<any, any, any> | YieldedOp = effect0
1260
+ this.currentOpCount = 0
1261
+ // eslint-disable-next-line no-constant-condition
1262
+ while (true) {
1263
+ if ((this._runtimeFlags & OpSupervision) !== 0) {
1264
+ this._supervisor.onEffect(this, cur)
1265
+ }
1266
+ if (this._queue.length > 0) {
1267
+ cur = this.drainQueueWhileRunning(this._runtimeFlags, cur)
1268
+ }
1269
+ if (!this.isYielding) {
1270
+ this.currentOpCount += 1
1271
+ const shouldYield = this._scheduler.shouldYield(this)
1272
+ if (shouldYield !== false) {
1273
+ this.isYielding = true
1274
+ this.currentOpCount = 0
1275
+ const oldCur = cur
1276
+ cur = core.flatMap(core.yieldNow({ priority: shouldYield }), () => oldCur)
1277
+ }
1278
+ }
1279
+ try {
1280
+ if (!("_op" in cur) || !((cur as core.Primitive)._op in this)) {
1281
+ // @ts-expect-error
1282
+ absurd(cur)
1283
+ }
1284
+
1285
+ // @ts-expect-error
1286
+ cur = this._tracer.context(
1287
+ () => {
1288
+ if (moduleVersion !== (cur as core.Primitive)[EffectTypeId]._V) {
1289
+ return core.dieMessage(
1290
+ `Cannot execute an Effect versioned ${
1291
+ (cur as core.Primitive)[EffectTypeId]._V
1292
+ } with a Runtime of version ${moduleVersion}`
1293
+ )
1294
+ }
1295
+ // @ts-expect-error
1296
+ return this[(cur as core.Primitive)._op](cur as core.Primitive)
1297
+ },
1298
+ this
1299
+ )
1300
+
1301
+ if (cur === YieldedOp) {
1302
+ const op = yieldedOpChannel.currentOp!
1303
+ if (
1304
+ op._op === OpCodes.OP_YIELD ||
1305
+ op._op === OpCodes.OP_ASYNC
1306
+ ) {
1307
+ return YieldedOp
1308
+ }
1309
+
1310
+ yieldedOpChannel.currentOp = null
1311
+ return (
1312
+ op._op === OpCodes.OP_SUCCESS ||
1313
+ op._op === OpCodes.OP_FAILURE
1314
+ ) ?
1315
+ op as unknown as Exit.Exit<E, A> :
1316
+ core.exitFailCause(internalCause.die(op))
1317
+ }
1318
+ } catch (e) {
1319
+ if (core.isEffectError(e)) {
1320
+ cur = core.exitFailCause(e.cause)
1321
+ } else if (core.isInterruptedException(e)) {
1322
+ cur = core.exitFailCause(
1323
+ internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none))
1324
+ )
1325
+ } else {
1326
+ cur = core.exitFailCause(internalCause.die(e))
1327
+ }
1328
+ }
1329
+ }
1330
+ }
1331
+
1332
+ run = () => {
1333
+ this.drainQueueOnCurrentThread()
1334
+ }
1335
+ }
1336
+
1337
+ // circular with Logger
1338
+
1339
+ /** @internal */
1340
+ export const currentMinimumLogLevel: FiberRef.FiberRef<LogLevel.LogLevel> = globalValue(
1341
+ "effect/FiberRef/currentMinimumLogLevel",
1342
+ () => core.fiberRefUnsafeMake<LogLevel.LogLevel>(LogLevel.fromLiteral("Info"))
1343
+ )
1344
+
1345
+ /** @internal */
1346
+ export const getConsole = (refs: FiberRefs.FiberRefs) => {
1347
+ const defaultServicesValue = FiberRefs.getOrDefault(refs, defaultServices.currentServices)
1348
+ const cnsl = Context.get(defaultServicesValue, consoleTag)
1349
+ return cnsl.unsafe
1350
+ }
1351
+
1352
+ /** @internal */
1353
+ export const defaultLogger: Logger<unknown, void> = globalValue(
1354
+ Symbol.for("effect/Logger/defaultLogger"),
1355
+ () =>
1356
+ internalLogger.makeLogger((options) => {
1357
+ const formatted = internalLogger.stringLogger.log(options)
1358
+ getConsole(options.context).log(formatted)
1359
+ })
1360
+ )
1361
+
1362
+ /** @internal */
1363
+ export const logFmtLogger: Logger<unknown, void> = globalValue(
1364
+ Symbol.for("effect/Logger/logFmtLogger"),
1365
+ () =>
1366
+ internalLogger.makeLogger((options) => {
1367
+ const formatted = internalLogger.logfmtLogger.log(options)
1368
+ getConsole(options.context).log(formatted)
1369
+ })
1370
+ )
1371
+
1372
+ /** @internal */
1373
+ export const tracerLogger = globalValue(
1374
+ Symbol.for("effect/Logger/tracerLogger"),
1375
+ () =>
1376
+ internalLogger.makeLogger<unknown, void>(({
1377
+ annotations,
1378
+ cause,
1379
+ context,
1380
+ fiberId,
1381
+ logLevel,
1382
+ message
1383
+ }) => {
1384
+ const span = Option.flatMap(fiberRefs.get(context, core.currentContext), Context.getOption(tracer.spanTag))
1385
+ const clockService = Option.map(
1386
+ fiberRefs.get(context, defaultServices.currentServices),
1387
+ (_) => Context.get(_, clock.clockTag)
1388
+ )
1389
+ if (span._tag === "None" || span.value._tag === "ExternalSpan" || clockService._tag === "None") {
1390
+ return
1391
+ }
1392
+
1393
+ const attributes = Object.fromEntries(HashMap.map(annotations, (value) => internalLogger.serializeUnknown(value)))
1394
+ attributes["effect.fiberId"] = FiberId.threadName(fiberId)
1395
+ attributes["effect.logLevel"] = logLevel.label
1396
+
1397
+ if (cause !== null && cause._tag !== "Empty") {
1398
+ attributes["effect.cause"] = internalCause.pretty(cause)
1399
+ }
1400
+
1401
+ span.value.event(
1402
+ String(message),
1403
+ clockService.value.unsafeCurrentTimeNanos(),
1404
+ attributes
1405
+ )
1406
+ })
1407
+ )
1408
+
1409
+ /** @internal */
1410
+ export const loggerWithSpanAnnotations = <Message, Output>(self: Logger<Message, Output>): Logger<Message, Output> =>
1411
+ internalLogger.mapInputOptions(self, (options: Logger.Options<Message>) => {
1412
+ const span = Option.flatMap(fiberRefs.get(options.context, core.currentContext), Context.getOption(tracer.spanTag))
1413
+ if (span._tag === "None") {
1414
+ return options
1415
+ }
1416
+ return {
1417
+ ...options,
1418
+ annotations: pipe(
1419
+ options.annotations,
1420
+ HashMap.set("effect.traceId", span.value.traceId as unknown),
1421
+ HashMap.set("effect.spanId", span.value.spanId as unknown),
1422
+ span.value._tag === "Span" ? HashMap.set("effect.spanName", span.value.name as unknown) : identity
1423
+ )
1424
+ }
1425
+ })
1426
+
1427
+ /** @internal */
1428
+ export const currentLoggers: FiberRef.FiberRef<
1429
+ HashSet.HashSet<Logger<unknown, any>>
1430
+ > = globalValue(
1431
+ Symbol.for("effect/FiberRef/currentLoggers"),
1432
+ () => core.fiberRefUnsafeMakeHashSet(HashSet.make(defaultLogger, tracerLogger))
1433
+ )
1434
+
1435
+ // circular with Effect
1436
+
1437
+ /* @internal */
1438
+ export const acquireRelease: {
1439
+ <A, R2, X>(
1440
+ release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1441
+ ): <R, E>(acquire: Effect.Effect<R, E, A>) => Effect.Effect<R2 | R | Scope.Scope, E, A>
1442
+ <R, E, A, R2, X>(
1443
+ acquire: Effect.Effect<R, E, A>,
1444
+ release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1445
+ ): Effect.Effect<Scope.Scope | R | R2, E, A>
1446
+ } = dual<
1447
+ {
1448
+ <A, R2, X>(
1449
+ release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1450
+ ): <R, E>(acquire: Effect.Effect<R, E, A>) => Effect.Effect<R | R2 | Scope.Scope, E, A>
1451
+ },
1452
+ {
1453
+ <R, E, A, R2, X>(
1454
+ acquire: Effect.Effect<R, E, A>,
1455
+ release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1456
+ ): Effect.Effect<R | R2 | Scope.Scope, E, A>
1457
+ }
1458
+ >((args) => core.isEffect(args[0]), (acquire, release) => {
1459
+ return core.uninterruptible(
1460
+ core.tap(acquire, (a) => addFinalizer((exit) => release(a, exit)))
1461
+ )
1462
+ })
1463
+
1464
+ /* @internal */
1465
+ export const acquireReleaseInterruptible: {
1466
+ <A, R2, X>(
1467
+ release: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1468
+ ): <R, E>(acquire: Effect.Effect<R, E, A>) => Effect.Effect<Scope.Scope | R2 | R, E, A>
1469
+ <R, E, A, R2, X>(
1470
+ acquire: Effect.Effect<R, E, A>,
1471
+ release: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1472
+ ): Effect.Effect<Scope.Scope | R | R2, E, A>
1473
+ } = dual<
1474
+ {
1475
+ <A, R2, X>(
1476
+ release: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1477
+ ): <R, E>(acquire: Effect.Effect<R, E, A>) => Effect.Effect<R | R2 | Scope.Scope, E, A>
1478
+ },
1479
+ {
1480
+ <R, E, A, R2, X>(
1481
+ acquire: Effect.Effect<R, E, A>,
1482
+ release: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R2, never, X>
1483
+ ): Effect.Effect<R | R2 | Scope.Scope, E, A>
1484
+ }
1485
+ >((args) => core.isEffect(args[0]), (acquire, release) => {
1486
+ return ensuring(
1487
+ acquire,
1488
+ addFinalizer((exit) => release(exit))
1489
+ )
1490
+ })
1491
+
1492
+ /* @internal */
1493
+ export const addFinalizer = <R, X>(
1494
+ finalizer: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<R, never, X>
1495
+ ): Effect.Effect<R | Scope.Scope, never, void> =>
1496
+ core.withFiberRuntime(
1497
+ (runtime) => {
1498
+ const acquireRefs = runtime.getFiberRefs()
1499
+ const acquireFlags = runtime._runtimeFlags
1500
+ return core.flatMap(scope, (scope) =>
1501
+ core.scopeAddFinalizerExit(scope, (exit) =>
1502
+ core.withFiberRuntime((runtimeFinalizer) => {
1503
+ const preRefs = runtimeFinalizer.getFiberRefs()
1504
+ const preFlags = runtimeFinalizer._runtimeFlags
1505
+ const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs)
1506
+ const patchFlags = _runtimeFlags.diff(preFlags, acquireFlags)
1507
+ const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs)
1508
+ runtimeFinalizer.setFiberRefs(
1509
+ FiberRefsPatch.patch(patchRefs, runtimeFinalizer.id(), acquireRefs)
1510
+ )
1511
+
1512
+ return ensuring(
1513
+ core.withRuntimeFlags(finalizer(exit) as Effect.Effect<never, never, X>, patchFlags),
1514
+ core.sync(() => {
1515
+ runtimeFinalizer.setFiberRefs(
1516
+ FiberRefsPatch.patch(inverseRefs, runtimeFinalizer.id(), runtimeFinalizer.getFiberRefs())
1517
+ )
1518
+ })
1519
+ )
1520
+ })))
1521
+ }
1522
+ )
1523
+
1524
+ /* @internal */
1525
+ export const daemonChildren = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> => {
1526
+ const forkScope = core.fiberRefLocally(core.currentForkScopeOverride, Option.some(fiberScope.globalScope))
1527
+ return forkScope(self)
1528
+ }
1529
+
1530
+ /** @internal */
1531
+ const _existsParFound = Symbol.for("effect/Effect/existsPar/found")
1532
+
1533
+ /* @internal */
1534
+ export const exists = dual<
1535
+ <R, E, A>(f: (a: A, i: number) => Effect.Effect<R, E, boolean>, options?: {
1536
+ readonly concurrency?: Concurrency | undefined
1537
+ readonly batching?: boolean | "inherit" | undefined
1538
+ }) => (elements: Iterable<A>) => Effect.Effect<R, E, boolean>,
1539
+ <R, E, A>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<R, E, boolean>, options?: {
1540
+ readonly concurrency?: Concurrency | undefined
1541
+ readonly batching?: boolean | "inherit" | undefined
1542
+ }) => Effect.Effect<R, E, boolean>
1543
+ >((args) => Predicate.isIterable(args[0]), (elements, f, options) =>
1544
+ concurrency.matchSimple(
1545
+ options?.concurrency,
1546
+ () => core.suspend(() => existsLoop(elements[Symbol.iterator](), 0, f)),
1547
+ () =>
1548
+ core.matchEffect(
1549
+ forEach(
1550
+ elements,
1551
+ (a, i) => core.if_(f(a, i), { onTrue: core.fail(_existsParFound), onFalse: core.unit }),
1552
+ options
1553
+ ),
1554
+ {
1555
+ onFailure: (e) => e === _existsParFound ? core.succeed(true) : core.fail(e),
1556
+ onSuccess: () => core.succeed(false)
1557
+ }
1558
+ )
1559
+ ))
1560
+
1561
+ const existsLoop = <R, E, A>(
1562
+ iterator: Iterator<A>,
1563
+ index: number,
1564
+ f: (a: A, i: number) => Effect.Effect<R, E, boolean>
1565
+ ): Effect.Effect<R, E, boolean> => {
1566
+ const next = iterator.next()
1567
+ if (next.done) {
1568
+ return core.succeed(false)
1569
+ }
1570
+ return pipe(core.flatMap(
1571
+ f(next.value, index),
1572
+ (b) => b ? core.succeed(b) : existsLoop(iterator, index + 1, f)
1573
+ ))
1574
+ }
1575
+
1576
+ /* @internal */
1577
+ export const filter = dual<
1578
+ <A, R, E>(
1579
+ f: (a: A, i: number) => Effect.Effect<R, E, boolean>,
1580
+ options?: {
1581
+ readonly concurrency?: Concurrency | undefined
1582
+ readonly batching?: boolean | "inherit" | undefined
1583
+ readonly negate?: boolean | undefined
1584
+ }
1585
+ ) => (elements: Iterable<A>) => Effect.Effect<R, E, Array<A>>,
1586
+ <A, R, E>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<R, E, boolean>, options?: {
1587
+ readonly concurrency?: Concurrency | undefined
1588
+ readonly batching?: boolean | "inherit" | undefined
1589
+ readonly negate?: boolean | undefined
1590
+ }) => Effect.Effect<R, E, Array<A>>
1591
+ >(
1592
+ (args) => Predicate.isIterable(args[0]),
1593
+ <A, R, E>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<R, E, boolean>, options?: {
1594
+ readonly concurrency?: Concurrency | undefined
1595
+ readonly batching?: boolean | "inherit" | undefined
1596
+ readonly negate?: boolean | undefined
1597
+ }) => {
1598
+ const predicate = options?.negate ? (a: A, i: number) => core.map(f(a, i), Boolean.not) : f
1599
+ return concurrency.matchSimple(
1600
+ options?.concurrency,
1601
+ () =>
1602
+ core.suspend(() =>
1603
+ RA.fromIterable(elements).reduceRight(
1604
+ (effect, a, i) =>
1605
+ core.zipWith(
1606
+ effect,
1607
+ core.suspend(() => predicate(a, i)),
1608
+ (list, b) => b ? [a, ...list] : list
1609
+ ),
1610
+ core.sync(() => new Array<A>()) as Effect.Effect<R, E, Array<A>>
1611
+ )
1612
+ ),
1613
+ () =>
1614
+ core.map(
1615
+ forEach(
1616
+ elements,
1617
+ (a, i) => core.map(predicate(a, i), (b) => (b ? Option.some(a) : Option.none())),
1618
+ options
1619
+ ),
1620
+ RA.getSomes
1621
+ )
1622
+ )
1623
+ }
1624
+ )
1625
+
1626
+ // === all
1627
+
1628
+ const allResolveInput = (
1629
+ input: Iterable<Effect.Effect<any, any, any>> | Record<string, Effect.Effect<any, any, any>>
1630
+ ): [Iterable<Effect.Effect<any, any, any>>, Option.Option<(as: ReadonlyArray<any>) => any>] => {
1631
+ if (Array.isArray(input) || Predicate.isIterable(input)) {
1632
+ return [input, Option.none()]
1633
+ }
1634
+ const keys = Object.keys(input)
1635
+ const size = keys.length
1636
+ return [
1637
+ keys.map((k) => input[k]),
1638
+ Option.some((values: ReadonlyArray<any>) => {
1639
+ const res = {}
1640
+ for (let i = 0; i < size; i++) {
1641
+ ;(res as any)[keys[i]] = values[i]
1642
+ }
1643
+ return res
1644
+ })
1645
+ ]
1646
+ }
1647
+
1648
+ const allValidate = (
1649
+ effects: Iterable<Effect.Effect<any, any, any>>,
1650
+ reconcile: Option.Option<(as: ReadonlyArray<any>) => any>,
1651
+ options?: {
1652
+ readonly concurrency?: Concurrency | undefined
1653
+ readonly batching?: boolean | "inherit" | undefined
1654
+ readonly discard?: boolean | undefined
1655
+ readonly mode?: "default" | "validate" | "either" | undefined
1656
+ }
1657
+ ) => {
1658
+ const eitherEffects: Array<Effect.Effect<unknown, never, Either.Either<unknown, unknown>>> = []
1659
+ for (const effect of effects) {
1660
+ eitherEffects.push(core.either(effect))
1661
+ }
1662
+ return core.flatMap(
1663
+ forEach(eitherEffects, identity, {
1664
+ concurrency: options?.concurrency,
1665
+ batching: options?.batching
1666
+ }),
1667
+ (eithers) => {
1668
+ const none = Option.none()
1669
+ const size = eithers.length
1670
+ const errors: Array<unknown> = new Array(size)
1671
+ const successes: Array<unknown> = new Array(size)
1672
+ let errored = false
1673
+ for (let i = 0; i < size; i++) {
1674
+ const either = eithers[i] as Either.Either<unknown, unknown>
1675
+ if (either._tag === "Left") {
1676
+ errors[i] = Option.some(either.left)
1677
+ errored = true
1678
+ } else {
1679
+ successes[i] = either.right
1680
+ errors[i] = none
1681
+ }
1682
+ }
1683
+ if (errored) {
1684
+ return reconcile._tag === "Some" ?
1685
+ core.fail(reconcile.value(errors)) :
1686
+ core.fail(errors)
1687
+ } else if (options?.discard) {
1688
+ return core.unit
1689
+ }
1690
+ return reconcile._tag === "Some" ?
1691
+ core.succeed(reconcile.value(successes)) :
1692
+ core.succeed(successes)
1693
+ }
1694
+ )
1695
+ }
1696
+
1697
+ const allEither = (
1698
+ effects: Iterable<Effect.Effect<any, any, any>>,
1699
+ reconcile: Option.Option<(as: ReadonlyArray<any>) => any>,
1700
+ options?: {
1701
+ readonly concurrency?: Concurrency | undefined
1702
+ readonly batching?: boolean | "inherit" | undefined
1703
+ readonly discard?: boolean | undefined
1704
+ readonly mode?: "default" | "validate" | "either" | undefined
1705
+ }
1706
+ ) => {
1707
+ const eitherEffects: Array<Effect.Effect<unknown, never, Either.Either<unknown, unknown>>> = []
1708
+ for (const effect of effects) {
1709
+ eitherEffects.push(core.either(effect))
1710
+ }
1711
+
1712
+ if (options?.discard) {
1713
+ return forEach(eitherEffects, identity, {
1714
+ concurrency: options?.concurrency,
1715
+ batching: options?.batching,
1716
+ discard: true
1717
+ })
1718
+ }
1719
+
1720
+ return core.map(
1721
+ forEach(eitherEffects, identity, {
1722
+ concurrency: options?.concurrency,
1723
+ batching: options?.batching
1724
+ }),
1725
+ (eithers) =>
1726
+ reconcile._tag === "Some" ?
1727
+ reconcile.value(eithers) :
1728
+ eithers
1729
+ )
1730
+ }
1731
+
1732
+ /* @internal */
1733
+ export const all = <
1734
+ const Arg extends Iterable<Effect.Effect<any, any, any>> | Record<string, Effect.Effect<any, any, any>>,
1735
+ O extends {
1736
+ readonly concurrency?: Concurrency | undefined
1737
+ readonly batching?: boolean | "inherit" | undefined
1738
+ readonly discard?: boolean | undefined
1739
+ readonly mode?: "default" | "validate" | "either" | undefined
1740
+ }
1741
+ >(
1742
+ arg: Arg,
1743
+ options?: O
1744
+ ): Effect.All.Return<Arg, O> => {
1745
+ const [effects, reconcile] = allResolveInput(arg)
1746
+
1747
+ if (options?.mode === "validate") {
1748
+ return allValidate(effects, reconcile, options) as any
1749
+ } else if (options?.mode === "either") {
1750
+ return allEither(effects, reconcile, options) as any
1751
+ }
1752
+
1753
+ return reconcile._tag === "Some"
1754
+ ? core.map(
1755
+ forEach(effects, identity, options as any),
1756
+ reconcile.value
1757
+ ) as any
1758
+ : forEach(effects, identity, options as any) as any
1759
+ }
1760
+
1761
+ /* @internal */
1762
+ export const allWith = <
1763
+ O extends {
1764
+ readonly concurrency?: Concurrency | undefined
1765
+ readonly batching?: boolean | "inherit" | undefined
1766
+ readonly discard?: boolean | undefined
1767
+ readonly mode?: "default" | "validate" | "either" | undefined
1768
+ }
1769
+ >(options?: O) =>
1770
+ <const Arg extends Iterable<Effect.Effect<any, any, any>> | Record<string, Effect.Effect<any, any, any>>>(
1771
+ arg: Arg
1772
+ ): Effect.All.Return<Arg, O> => all(arg, options)
1773
+
1774
+ /* @internal */
1775
+ export const allSuccesses = <R, E, A>(
1776
+ elements: Iterable<Effect.Effect<R, E, A>>,
1777
+ options?: {
1778
+ readonly concurrency?: Concurrency | undefined
1779
+ readonly batching?: boolean | "inherit" | undefined
1780
+ }
1781
+ ): Effect.Effect<R, never, Array<A>> =>
1782
+ core.map(
1783
+ all(RA.fromIterable(elements).map(core.exit), options),
1784
+ RA.filterMap((exit) => core.exitIsSuccess(exit) ? Option.some(exit.i0) : Option.none())
1785
+ )
1786
+
1787
+ /* @internal */
1788
+ export const replicate = dual<
1789
+ (n: number) => <R, E, A>(self: Effect.Effect<R, E, A>) => Array<Effect.Effect<R, E, A>>,
1790
+ <R, E, A>(self: Effect.Effect<R, E, A>, n: number) => Array<Effect.Effect<R, E, A>>
1791
+ >(2, (self, n) => Array.from({ length: n }, () => self))
1792
+
1793
+ /* @internal */
1794
+ export const replicateEffect: {
1795
+ (
1796
+ n: number,
1797
+ options?: {
1798
+ readonly concurrency?: Concurrency | undefined
1799
+ readonly batching?: boolean | "inherit" | undefined
1800
+ readonly discard?: false | undefined
1801
+ }
1802
+ ): <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, Array<A>>
1803
+ (
1804
+ n: number,
1805
+ options: {
1806
+ readonly concurrency?: Concurrency | undefined
1807
+ readonly batching?: boolean | "inherit" | undefined
1808
+ readonly discard: true
1809
+ }
1810
+ ): <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, void>
1811
+ <R, E, A>(
1812
+ self: Effect.Effect<R, E, A>,
1813
+ n: number,
1814
+ options?: {
1815
+ readonly concurrency?: Concurrency | undefined
1816
+ readonly batching?: boolean | "inherit" | undefined
1817
+ readonly discard?: false | undefined
1818
+ }
1819
+ ): Effect.Effect<R, E, Array<A>>
1820
+ <R, E, A>(
1821
+ self: Effect.Effect<R, E, A>,
1822
+ n: number,
1823
+ options: {
1824
+ readonly concurrency?: Concurrency | undefined
1825
+ readonly batching?: boolean | "inherit" | undefined
1826
+ readonly discard: true
1827
+ }
1828
+ ): Effect.Effect<R, E, void>
1829
+ } = dual(
1830
+ (args) => core.isEffect(args[0]),
1831
+ (self, n, options) => all(replicate(self, n), options)
1832
+ )
1833
+
1834
+ /* @internal */
1835
+ export const forEach: {
1836
+ <A, R, E, B>(
1837
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1838
+ options?: {
1839
+ readonly concurrency?: Concurrency | undefined
1840
+ readonly batching?: boolean | "inherit" | undefined
1841
+ readonly discard?: false | undefined
1842
+ }
1843
+ ): (self: Iterable<A>) => Effect.Effect<R, E, Array<B>>
1844
+ <A, R, E, B>(
1845
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1846
+ options: {
1847
+ readonly concurrency?: Concurrency | undefined
1848
+ readonly batching?: boolean | "inherit" | undefined
1849
+ readonly discard: true
1850
+ }
1851
+ ): (self: Iterable<A>) => Effect.Effect<R, E, void>
1852
+ <A, R, E, B>(
1853
+ self: Iterable<A>,
1854
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1855
+ options?: {
1856
+ readonly concurrency?: Concurrency | undefined
1857
+ readonly batching?: boolean | "inherit" | undefined
1858
+ readonly discard?: false | undefined
1859
+ }
1860
+ ): Effect.Effect<R, E, Array<B>>
1861
+ <A, R, E, B>(
1862
+ self: Iterable<A>,
1863
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1864
+ options: {
1865
+ readonly concurrency?: Concurrency | undefined
1866
+ readonly batching?: boolean | "inherit" | undefined
1867
+ readonly discard: true
1868
+ }
1869
+ ): Effect.Effect<R, E, void>
1870
+ } = dual((args) => Predicate.isIterable(args[0]), <A, R, E, B>(
1871
+ self: Iterable<A>,
1872
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1873
+ options?: {
1874
+ readonly concurrency?: Concurrency | undefined
1875
+ readonly batching?: boolean | "inherit" | undefined
1876
+ readonly discard?: boolean | undefined
1877
+ }
1878
+ ) =>
1879
+ core.withFiberRuntime<R, E, A | void>((r) => {
1880
+ const isRequestBatchingEnabled = options?.batching === true ||
1881
+ (options?.batching === "inherit" && r.getFiberRef(core.currentRequestBatching))
1882
+
1883
+ if (options?.discard) {
1884
+ return concurrency.match(
1885
+ options.concurrency,
1886
+ () =>
1887
+ finalizersMask(ExecutionStrategy.sequential)((restore) =>
1888
+ isRequestBatchingEnabled
1889
+ ? forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), true, false, 1)
1890
+ : core.forEachSequentialDiscard(self, (a, i) => restore(f(a, i)))
1891
+ ),
1892
+ () =>
1893
+ finalizersMask(ExecutionStrategy.parallel)((restore) =>
1894
+ forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false)
1895
+ ),
1896
+ (n) =>
1897
+ finalizersMask(ExecutionStrategy.parallelN(n))((restore) =>
1898
+ forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false, n)
1899
+ )
1900
+ )
1901
+ }
1902
+
1903
+ return concurrency.match(
1904
+ options?.concurrency,
1905
+ () =>
1906
+ finalizersMask(ExecutionStrategy.sequential)((restore) =>
1907
+ isRequestBatchingEnabled
1908
+ ? forEachParN(self, 1, (a, i) => restore(f(a, i)), true)
1909
+ : core.forEachSequential(self, (a, i) => restore(f(a, i)))
1910
+ ),
1911
+ () =>
1912
+ finalizersMask(ExecutionStrategy.parallel)((restore) =>
1913
+ forEachParUnbounded(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)
1914
+ ),
1915
+ (n) =>
1916
+ finalizersMask(ExecutionStrategy.parallelN(n))((restore) =>
1917
+ forEachParN(self, n, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)
1918
+ )
1919
+ )
1920
+ }))
1921
+
1922
+ /* @internal */
1923
+ export const forEachParUnbounded = <A, R, E, B>(
1924
+ self: Iterable<A>,
1925
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
1926
+ batching: boolean
1927
+ ): Effect.Effect<R, E, Array<B>> =>
1928
+ core.suspend(() => {
1929
+ const as = RA.fromIterable(self)
1930
+ const array = new Array<B>(as.length)
1931
+ const fn = (a: A, i: number) => core.flatMap(f(a, i), (b) => core.sync(() => array[i] = b))
1932
+ return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false), core.succeed(array))
1933
+ })
1934
+
1935
+ /** @internal */
1936
+ export const forEachConcurrentDiscard = <R, E, A, _>(
1937
+ self: Iterable<A>,
1938
+ f: (a: A, i: number) => Effect.Effect<R, E, _>,
1939
+ batching: boolean,
1940
+ processAll: boolean,
1941
+ n?: number
1942
+ ): Effect.Effect<R, E, void> =>
1943
+ core.uninterruptibleMask((restore) =>
1944
+ core.transplant((graft) =>
1945
+ core.withFiberRuntime((parent) => {
1946
+ let todos = Array.from(self).reverse()
1947
+ let target = todos.length
1948
+ if (target === 0) {
1949
+ return core.unit
1950
+ }
1951
+ let counter = 0
1952
+ let interrupted = false
1953
+ const fibersCount = n ? Math.min(todos.length, n) : todos.length
1954
+ const fibers = new Set<FiberRuntime<never, Exit.Exit<E, _> | Effect.Blocked<E, _>>>()
1955
+ const results = new Array()
1956
+ const interruptAll = () =>
1957
+ fibers.forEach((fiber) => {
1958
+ fiber._scheduler.scheduleTask(() => {
1959
+ fiber.unsafeInterruptAsFork(parent.id())
1960
+ }, 0)
1961
+ })
1962
+ const startOrder = new Array<FiberRuntime<never, Exit.Exit<E, _> | Effect.Blocked<E, _>>>()
1963
+ const joinOrder = new Array<FiberRuntime<never, Exit.Exit<E, _> | Effect.Blocked<E, _>>>()
1964
+ const residual = new Array<core.Blocked>()
1965
+ const collectExits = () => {
1966
+ const exits: Array<Exit.Exit<E, any>> = results
1967
+ .filter(({ exit }) => exit._tag === "Failure")
1968
+ .sort((a, b) => a.index < b.index ? -1 : a.index === b.index ? 0 : 1)
1969
+ .map(({ exit }) => exit)
1970
+ if (exits.length === 0) {
1971
+ exits.push(core.exitUnit)
1972
+ }
1973
+ return exits
1974
+ }
1975
+ const runFiber = <R, E, A>(eff: Effect.Effect<R, E, A>) => {
1976
+ const runnable = core.uninterruptible(graft(eff))
1977
+ const fiber = unsafeForkUnstarted(
1978
+ runnable,
1979
+ parent,
1980
+ parent._runtimeFlags,
1981
+ fiberScope.globalScope
1982
+ )
1983
+ parent._scheduler.scheduleTask(() => {
1984
+ fiber.resume(runnable)
1985
+ }, 0)
1986
+ return fiber
1987
+ }
1988
+ const onInterruptSignal = () => {
1989
+ if (!processAll) {
1990
+ target -= todos.length
1991
+ todos = []
1992
+ }
1993
+ interrupted = true
1994
+ interruptAll()
1995
+ }
1996
+ const stepOrExit = batching ? core.step : core.exit
1997
+ const processingFiber = runFiber(
1998
+ core.async<any, any, any>((resume) => {
1999
+ const pushResult = <E, _>(res: Exit.Exit<E, _> | Effect.Blocked<E, _>, index: number) => {
2000
+ if (res._op === "Blocked") {
2001
+ residual.push(res as core.Blocked)
2002
+ } else {
2003
+ results.push({ index, exit: res })
2004
+ if (res._op === "Failure" && !interrupted) {
2005
+ onInterruptSignal()
2006
+ }
2007
+ }
2008
+ }
2009
+ const next = () => {
2010
+ if (todos.length > 0) {
2011
+ const a = todos.pop()!
2012
+ let index = counter++
2013
+ const returnNextElement = () => {
2014
+ const a = todos.pop()!
2015
+ index = counter++
2016
+ return core.flatMap(core.yieldNow(), () =>
2017
+ core.flatMap(
2018
+ stepOrExit(restore(f(a, index))),
2019
+ onRes
2020
+ ))
2021
+ }
2022
+ const onRes = (
2023
+ res: Exit.Exit<E, _> | Effect.Blocked<E, _>
2024
+ ): Effect.Effect<R, never, Exit.Exit<E, _> | Effect.Blocked<E, _>> => {
2025
+ if (todos.length > 0) {
2026
+ pushResult(res, index)
2027
+ if (todos.length > 0) {
2028
+ return returnNextElement()
2029
+ }
2030
+ }
2031
+ return core.succeed(res)
2032
+ }
2033
+ const todo = core.flatMap(
2034
+ stepOrExit(restore(f(a, index))),
2035
+ onRes
2036
+ )
2037
+ const fiber = runFiber(todo)
2038
+ startOrder.push(fiber)
2039
+ fibers.add(fiber)
2040
+ if (interrupted) {
2041
+ fiber._scheduler.scheduleTask(() => {
2042
+ fiber.unsafeInterruptAsFork(parent.id())
2043
+ }, 0)
2044
+ }
2045
+ fiber.addObserver((wrapped) => {
2046
+ let exit: Exit.Exit<any, any> | core.Blocked
2047
+ if (wrapped._op === "Failure") {
2048
+ exit = wrapped
2049
+ } else {
2050
+ exit = wrapped.i0 as any
2051
+ }
2052
+ joinOrder.push(fiber)
2053
+ fibers.delete(fiber)
2054
+ pushResult(exit, index)
2055
+ if (results.length === target) {
2056
+ resume(core.succeed(Option.getOrElse(
2057
+ core.exitCollectAll(collectExits(), { parallel: true }),
2058
+ () => core.exitUnit
2059
+ )))
2060
+ } else if (residual.length + results.length === target) {
2061
+ const requests = residual.map((blocked) => blocked.i0).reduce(_RequestBlock.par)
2062
+ resume(core.succeed(core.blocked(
2063
+ requests,
2064
+ forEachConcurrentDiscard(
2065
+ [
2066
+ Option.getOrElse(
2067
+ core.exitCollectAll(collectExits(), { parallel: true }),
2068
+ () => core.exitUnit
2069
+ ),
2070
+ ...residual.map((blocked) => blocked.i1)
2071
+ ],
2072
+ (i) => i,
2073
+ batching,
2074
+ true,
2075
+ n
2076
+ )
2077
+ )))
2078
+ } else {
2079
+ next()
2080
+ }
2081
+ })
2082
+ }
2083
+ }
2084
+ for (let i = 0; i < fibersCount; i++) {
2085
+ next()
2086
+ }
2087
+ })
2088
+ )
2089
+ return core.asUnit(core.tap(
2090
+ core.flatten(core.onInterrupt(
2091
+ restore(internalFiber.join(processingFiber)),
2092
+ () => {
2093
+ onInterruptSignal()
2094
+ return internalFiber._await(processingFiber)
2095
+ }
2096
+ )),
2097
+ () => core.forEachSequential(joinOrder, (f) => f.inheritAll)
2098
+ ))
2099
+ })
2100
+ )
2101
+ )
2102
+
2103
+ /* @internal */
2104
+ export const forEachParN = <A, R, E, B>(
2105
+ self: Iterable<A>,
2106
+ n: number,
2107
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2108
+ batching: boolean
2109
+ ): Effect.Effect<R, E, Array<B>> =>
2110
+ core.suspend(() => {
2111
+ const as = RA.fromIterable(self)
2112
+ const array = new Array<B>(as.length)
2113
+ const fn = (a: A, i: number) => core.map(f(a, i), (b) => array[i] = b)
2114
+ return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false, n), core.succeed(array))
2115
+ })
2116
+
2117
+ /* @internal */
2118
+ export const fork = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>> =>
2119
+ core.withFiberRuntime<R, never, Fiber.RuntimeFiber<E, A>>((state, status) =>
2120
+ core.succeed(unsafeFork(self, state, status.runtimeFlags))
2121
+ )
2122
+
2123
+ /* @internal */
2124
+ export const forkDaemon = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>> =>
2125
+ forkWithScopeOverride(self, fiberScope.globalScope)
2126
+
2127
+ /* @internal */
2128
+ export const forkWithErrorHandler = dual<
2129
+ <E, X>(
2130
+ handler: (e: E) => Effect.Effect<never, never, X>
2131
+ ) => <R, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>>,
2132
+ <R, E, A, X>(
2133
+ self: Effect.Effect<R, E, A>,
2134
+ handler: (e: E) => Effect.Effect<never, never, X>
2135
+ ) => Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>>
2136
+ >(2, (self, handler) =>
2137
+ fork(core.onError(self, (cause) => {
2138
+ const either = internalCause.failureOrCause(cause)
2139
+ switch (either._tag) {
2140
+ case "Left": {
2141
+ return handler(either.left)
2142
+ }
2143
+ case "Right": {
2144
+ return core.failCause(either.right)
2145
+ }
2146
+ }
2147
+ })))
2148
+
2149
+ /** @internal */
2150
+ export const unsafeFork = <R, E, A, E2, B>(
2151
+ effect: Effect.Effect<R, E, A>,
2152
+ parentFiber: FiberRuntime<E2, B>,
2153
+ parentRuntimeFlags: RuntimeFlags.RuntimeFlags,
2154
+ overrideScope: fiberScope.FiberScope | null = null
2155
+ ): FiberRuntime<E, A> => {
2156
+ const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope)
2157
+ childFiber.resume(effect)
2158
+ return childFiber
2159
+ }
2160
+
2161
+ /** @internal */
2162
+ export const unsafeForkUnstarted = <R, E, A, E2, B>(
2163
+ effect: Effect.Effect<R, E, A>,
2164
+ parentFiber: FiberRuntime<E2, B>,
2165
+ parentRuntimeFlags: RuntimeFlags.RuntimeFlags,
2166
+ overrideScope: fiberScope.FiberScope | null = null
2167
+ ): FiberRuntime<E, A> => {
2168
+ const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope)
2169
+ return childFiber
2170
+ }
2171
+
2172
+ /** @internal */
2173
+ export const unsafeMakeChildFiber = <R, E, A, E2, B>(
2174
+ effect: Effect.Effect<R, E, A>,
2175
+ parentFiber: FiberRuntime<E2, B>,
2176
+ parentRuntimeFlags: RuntimeFlags.RuntimeFlags,
2177
+ overrideScope: fiberScope.FiberScope | null = null
2178
+ ): FiberRuntime<E, A> => {
2179
+ const childId = FiberId.unsafeMake()
2180
+ const parentFiberRefs = parentFiber.getFiberRefs()
2181
+ const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId)
2182
+ const childFiber = new FiberRuntime<E, A>(childId, childFiberRefs, parentRuntimeFlags)
2183
+ const childContext = fiberRefs.getOrDefault(
2184
+ childFiberRefs,
2185
+ core.currentContext as unknown as FiberRef.FiberRef<Context.Context<R>>
2186
+ )
2187
+ const supervisor = childFiber._supervisor
2188
+
2189
+ supervisor.onStart(
2190
+ childContext,
2191
+ effect,
2192
+ Option.some(parentFiber),
2193
+ childFiber
2194
+ )
2195
+
2196
+ childFiber.addObserver((exit) => supervisor.onEnd(exit, childFiber))
2197
+
2198
+ const parentScope = overrideScope !== null ? overrideScope : pipe(
2199
+ parentFiber.getFiberRef(core.currentForkScopeOverride),
2200
+ Option.getOrElse(() => parentFiber.scope())
2201
+ )
2202
+
2203
+ parentScope.add(parentRuntimeFlags, childFiber)
2204
+
2205
+ return childFiber
2206
+ }
2207
+
2208
+ /* @internal */
2209
+ const forkWithScopeOverride = <R, E, A>(
2210
+ self: Effect.Effect<R, E, A>,
2211
+ scopeOverride: fiberScope.FiberScope
2212
+ ): Effect.Effect<R, never, Fiber.RuntimeFiber<E, A>> =>
2213
+ core.withFiberRuntime<R, never, Fiber.RuntimeFiber<E, A>>((parentFiber, parentStatus) =>
2214
+ core.succeed(unsafeFork(self, parentFiber, parentStatus.runtimeFlags, scopeOverride))
2215
+ )
2216
+
2217
+ /* @internal */
2218
+ export const mergeAll = dual<
2219
+ <Z, A>(zero: Z, f: (z: Z, a: A, i: number) => Z, options?: {
2220
+ readonly concurrency?: Concurrency | undefined
2221
+ readonly batching?: boolean | "inherit" | undefined
2222
+ }) => <R, E>(elements: Iterable<Effect.Effect<R, E, A>>) => Effect.Effect<R, E, Z>,
2223
+ <R, E, A, Z>(elements: Iterable<Effect.Effect<R, E, A>>, zero: Z, f: (z: Z, a: A, i: number) => Z, options?: {
2224
+ readonly concurrency?: Concurrency | undefined
2225
+ readonly batching?: boolean | "inherit" | undefined
2226
+ }) => Effect.Effect<R, E, Z>
2227
+ >(
2228
+ (args) => Predicate.isFunction(args[2]),
2229
+ <R, E, A, Z>(elements: Iterable<Effect.Effect<R, E, A>>, zero: Z, f: (z: Z, a: A, i: number) => Z, options?: {
2230
+ readonly concurrency?: Concurrency | undefined
2231
+ readonly batching?: boolean | "inherit" | undefined
2232
+ }) =>
2233
+ concurrency.matchSimple(
2234
+ options?.concurrency,
2235
+ () =>
2236
+ RA.fromIterable(elements).reduce(
2237
+ (acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)),
2238
+ core.succeed(zero) as Effect.Effect<R, E, Z>
2239
+ ),
2240
+ () =>
2241
+ core.flatMap(Ref.make(zero), (acc) =>
2242
+ core.flatMap(
2243
+ forEach(
2244
+ elements,
2245
+ (effect, i) => core.flatMap(effect, (a) => Ref.update(acc, (b) => f(b, a, i))),
2246
+ options
2247
+ ),
2248
+ () => Ref.get(acc)
2249
+ ))
2250
+ )
2251
+ )
2252
+
2253
+ /* @internal */
2254
+ export const partition = dual<
2255
+ <R, E, A, B>(
2256
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2257
+ options?: {
2258
+ readonly concurrency?: Concurrency | undefined
2259
+ readonly batching?: boolean | "inherit" | undefined
2260
+ }
2261
+ ) => (elements: Iterable<A>) => Effect.Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>,
2262
+ <R, E, A, B>(
2263
+ elements: Iterable<A>,
2264
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2265
+ options?: {
2266
+ readonly concurrency?: Concurrency | undefined
2267
+ readonly batching?: boolean | "inherit" | undefined
2268
+ }
2269
+ ) => Effect.Effect<R, never, [excluded: Array<E>, satisfying: Array<B>]>
2270
+ >((args) => Predicate.isIterable(args[0]), (elements, f, options) =>
2271
+ pipe(
2272
+ forEach(elements, (a, i) => core.either(f(a, i)), options),
2273
+ core.map((chunk) => core.partitionMap(chunk, identity))
2274
+ ))
2275
+
2276
+ /* @internal */
2277
+ export const validateAll = dual<
2278
+ {
2279
+ <R, E, A, B>(
2280
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2281
+ options?: {
2282
+ readonly concurrency?: Concurrency | undefined
2283
+ readonly batching?: boolean | "inherit" | undefined
2284
+ readonly discard?: false | undefined
2285
+ }
2286
+ ): (elements: Iterable<A>) => Effect.Effect<R, Array<E>, Array<B>>
2287
+ <R, E, A, B>(
2288
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2289
+ options: {
2290
+ readonly concurrency?: Concurrency | undefined
2291
+ readonly batching?: boolean | "inherit" | undefined
2292
+ readonly discard: true
2293
+ }
2294
+ ): (elements: Iterable<A>) => Effect.Effect<R, Array<E>, void>
2295
+ },
2296
+ {
2297
+ <R, E, A, B>(
2298
+ elements: Iterable<A>,
2299
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2300
+ options?: {
2301
+ readonly concurrency?: Concurrency | undefined
2302
+ readonly batching?: boolean | "inherit" | undefined
2303
+ readonly discard?: false | undefined
2304
+ }
2305
+ ): Effect.Effect<R, Array<E>, Array<B>>
2306
+ <R, E, A, B>(
2307
+ elements: Iterable<A>,
2308
+ f: (a: A, i: number) => Effect.Effect<R, E, B>,
2309
+ options: {
2310
+ readonly concurrency?: Concurrency | undefined
2311
+ readonly batching?: boolean | "inherit" | undefined
2312
+ readonly discard: true
2313
+ }
2314
+ ): Effect.Effect<R, Array<E>, void>
2315
+ }
2316
+ >(
2317
+ (args) => Predicate.isIterable(args[0]),
2318
+ <R, E, A, B>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<R, E, B>, options?: {
2319
+ readonly concurrency?: Concurrency | undefined
2320
+ readonly batching?: boolean | "inherit" | undefined
2321
+ readonly discard?: boolean | undefined
2322
+ }): Effect.Effect<R, Array<E>, any> =>
2323
+ core.flatMap(
2324
+ partition(elements, f, {
2325
+ concurrency: options?.concurrency,
2326
+ batching: options?.batching
2327
+ }),
2328
+ ([es, bs]) =>
2329
+ es.length === 0
2330
+ ? options?.discard ? core.unit : core.succeed(bs)
2331
+ : core.fail(es)
2332
+ )
2333
+ )
2334
+
2335
+ /* @internal */
2336
+ export const raceAll = <R, E, A>(all: Iterable<Effect.Effect<R, E, A>>) => {
2337
+ const list = Chunk.fromIterable(all)
2338
+ if (!Chunk.isNonEmpty(list)) {
2339
+ return core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`))
2340
+ }
2341
+ const self = Chunk.headNonEmpty(list)
2342
+ const effects = Chunk.tailNonEmpty(list)
2343
+ const inheritAll = (res: readonly [A, Fiber.Fiber<E, A>]) =>
2344
+ pipe(
2345
+ internalFiber.inheritAll(res[1]),
2346
+ core.as(res[0])
2347
+ )
2348
+ return pipe(
2349
+ core.deferredMake<E, readonly [A, Fiber.Fiber<E, A>]>(),
2350
+ core.flatMap((done) =>
2351
+ pipe(
2352
+ Ref.make(effects.length),
2353
+ core.flatMap((fails) =>
2354
+ core.uninterruptibleMask<R, E, A>((restore) =>
2355
+ pipe(
2356
+ fork(core.interruptible(self)),
2357
+ core.flatMap((head) =>
2358
+ pipe(
2359
+ effects,
2360
+ core.forEachSequential((effect) => fork(core.interruptible(effect))),
2361
+ core.map(Chunk.unsafeFromArray),
2362
+ core.map((tail) => pipe(tail, Chunk.prepend(head)) as Chunk.Chunk<Fiber.RuntimeFiber<E, A>>),
2363
+ core.tap((fibers) =>
2364
+ pipe(
2365
+ fibers,
2366
+ RA.reduce(core.unit, (effect, fiber) =>
2367
+ pipe(
2368
+ effect,
2369
+ core.zipRight(
2370
+ pipe(
2371
+ internalFiber._await(fiber),
2372
+ core.flatMap(raceAllArbiter(fibers, fiber, done, fails)),
2373
+ fork,
2374
+ core.asUnit
2375
+ )
2376
+ )
2377
+ ))
2378
+ )
2379
+ ),
2380
+ core.flatMap((fibers) =>
2381
+ pipe(
2382
+ restore(pipe(Deferred.await(done), core.flatMap(inheritAll))),
2383
+ core.onInterrupt(() =>
2384
+ pipe(
2385
+ fibers,
2386
+ RA.reduce(
2387
+ core.unit,
2388
+ (effect, fiber) => pipe(effect, core.zipLeft(core.interruptFiber(fiber)))
2389
+ )
2390
+ )
2391
+ )
2392
+ )
2393
+ )
2394
+ )
2395
+ )
2396
+ )
2397
+ )
2398
+ )
2399
+ )
2400
+ )
2401
+ )
2402
+ }
2403
+
2404
+ /* @internal */
2405
+ const raceAllArbiter = <E, E1, A, A1>(
2406
+ fibers: Iterable<Fiber.Fiber<E | E1, A | A1>>,
2407
+ winner: Fiber.Fiber<E | E1, A | A1>,
2408
+ deferred: Deferred.Deferred<E | E1, readonly [A | A1, Fiber.Fiber<E | E1, A | A1>]>,
2409
+ fails: Ref.Ref<number>
2410
+ ) =>
2411
+ (exit: Exit.Exit<E | E1, A | A1>): Effect.Effect<never, never, void> =>
2412
+ core.exitMatchEffect(exit, {
2413
+ onFailure: (cause) =>
2414
+ pipe(
2415
+ Ref.modify(fails, (fails) =>
2416
+ [
2417
+ fails === 0 ?
2418
+ pipe(core.deferredFailCause(deferred, cause), core.asUnit) :
2419
+ core.unit,
2420
+ fails - 1
2421
+ ] as const),
2422
+ core.flatten
2423
+ ),
2424
+ onSuccess: (value): Effect.Effect<never, never, void> =>
2425
+ pipe(
2426
+ core.deferredSucceed(deferred, [value, winner] as const),
2427
+ core.flatMap((set) =>
2428
+ set ?
2429
+ pipe(
2430
+ Chunk.fromIterable(fibers),
2431
+ RA.reduce(
2432
+ core.unit,
2433
+ (effect, fiber) =>
2434
+ fiber === winner ?
2435
+ effect :
2436
+ pipe(effect, core.zipLeft(core.interruptFiber(fiber)))
2437
+ )
2438
+ ) :
2439
+ core.unit
2440
+ )
2441
+ )
2442
+ })
2443
+
2444
+ /* @internal */
2445
+ export const reduceEffect = dual<
2446
+ <R, E, A>(
2447
+ zero: Effect.Effect<R, E, A>,
2448
+ f: (acc: A, a: A, i: number) => A,
2449
+ options?: {
2450
+ readonly concurrency?: Concurrency | undefined
2451
+ readonly batching?: boolean | "inherit" | undefined
2452
+ }
2453
+ ) => (elements: Iterable<Effect.Effect<R, E, A>>) => Effect.Effect<R, E, A>,
2454
+ <R, E, A>(
2455
+ elements: Iterable<Effect.Effect<R, E, A>>,
2456
+ zero: Effect.Effect<R, E, A>,
2457
+ f: (acc: A, a: A, i: number) => A,
2458
+ options?: {
2459
+ readonly concurrency?: Concurrency | undefined
2460
+ readonly batching?: boolean | "inherit" | undefined
2461
+ }
2462
+ ) => Effect.Effect<R, E, A>
2463
+ >((args) => Predicate.isIterable(args[0]), <R, E, A>(
2464
+ elements: Iterable<Effect.Effect<R, E, A>>,
2465
+ zero: Effect.Effect<R, E, A>,
2466
+ f: (acc: A, a: A, i: number) => A,
2467
+ options?: {
2468
+ readonly concurrency?: Concurrency | undefined
2469
+ readonly batching?: boolean | "inherit" | undefined
2470
+ }
2471
+ ) =>
2472
+ concurrency.matchSimple(
2473
+ options?.concurrency,
2474
+ () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), zero),
2475
+ () =>
2476
+ core.suspend(() =>
2477
+ pipe(
2478
+ mergeAll(
2479
+ [zero, ...elements],
2480
+ Option.none() as Option.Option<A>,
2481
+ (acc, elem, i) => {
2482
+ switch (acc._tag) {
2483
+ case "None": {
2484
+ return Option.some(elem)
2485
+ }
2486
+ case "Some": {
2487
+ return Option.some(f(acc.value, elem, i))
2488
+ }
2489
+ }
2490
+ },
2491
+ options
2492
+ ),
2493
+ core.map((option) => {
2494
+ switch (option._tag) {
2495
+ case "None": {
2496
+ throw new Error(
2497
+ "BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues"
2498
+ )
2499
+ }
2500
+ case "Some": {
2501
+ return option.value
2502
+ }
2503
+ }
2504
+ })
2505
+ )
2506
+ )
2507
+ ))
2508
+
2509
+ /* @internal */
2510
+ export const parallelFinalizers = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
2511
+ core.contextWithEffect((context) =>
2512
+ Option.match(Context.getOption(context, scopeTag), {
2513
+ onNone: () => self,
2514
+ onSome: (scope) => {
2515
+ switch (scope.strategy._tag) {
2516
+ case "Parallel":
2517
+ return self
2518
+ case "Sequential":
2519
+ case "ParallelN":
2520
+ return core.flatMap(
2521
+ core.scopeFork(scope, ExecutionStrategy.parallel),
2522
+ (inner) => scopeExtend(self, inner)
2523
+ )
2524
+ }
2525
+ }
2526
+ })
2527
+ )
2528
+
2529
+ /* @internal */
2530
+ export const parallelNFinalizers =
2531
+ (parallelism: number) => <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
2532
+ core.contextWithEffect((context) =>
2533
+ Option.match(Context.getOption(context, scopeTag), {
2534
+ onNone: () => self,
2535
+ onSome: (scope) => {
2536
+ if (scope.strategy._tag === "ParallelN" && scope.strategy.parallelism === parallelism) {
2537
+ return self
2538
+ }
2539
+ return core.flatMap(
2540
+ core.scopeFork(scope, ExecutionStrategy.parallelN(parallelism)),
2541
+ (inner) => scopeExtend(self, inner)
2542
+ )
2543
+ }
2544
+ })
2545
+ )
2546
+
2547
+ /* @internal */
2548
+ export const finalizersMask = (strategy: ExecutionStrategy.ExecutionStrategy) =>
2549
+ <R, E, A>(
2550
+ self: (restore: <R1, E1, A1>(self: Effect.Effect<R1, E1, A1>) => Effect.Effect<R1, E1, A1>) => Effect.Effect<R, E, A>
2551
+ ): Effect.Effect<R, E, A> =>
2552
+ core.contextWithEffect((context) =>
2553
+ Option.match(Context.getOption(context, scopeTag), {
2554
+ onNone: () => self(identity),
2555
+ onSome: (scope) => {
2556
+ const patch = strategy._tag === "Parallel"
2557
+ ? parallelFinalizers
2558
+ : strategy._tag === "Sequential"
2559
+ ? sequentialFinalizers
2560
+ : parallelNFinalizers(strategy.parallelism)
2561
+ switch (scope.strategy._tag) {
2562
+ case "Parallel":
2563
+ return patch(self(parallelFinalizers))
2564
+ case "Sequential":
2565
+ return patch(self(sequentialFinalizers))
2566
+ case "ParallelN":
2567
+ return patch(self(parallelNFinalizers(scope.strategy.parallelism)))
2568
+ }
2569
+ }
2570
+ })
2571
+ )
2572
+
2573
+ /* @internal */
2574
+ export const scopeWith = <R, E, A>(
2575
+ f: (scope: Scope.Scope) => Effect.Effect<R, E, A>
2576
+ ): Effect.Effect<R | Scope.Scope, E, A> => core.flatMap(scopeTag, f)
2577
+
2578
+ /* @internal */
2579
+ export const scopedEffect = <R, E, A>(effect: Effect.Effect<R, E, A>): Effect.Effect<Exclude<R, Scope.Scope>, E, A> =>
2580
+ core.flatMap(scopeMake(), (scope) => scopeUse(scope)(effect))
2581
+
2582
+ /* @internal */
2583
+ export const sequentialFinalizers = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
2584
+ core.contextWithEffect((context) =>
2585
+ Option.match(Context.getOption(context, scopeTag), {
2586
+ onNone: () => self,
2587
+ onSome: (scope) => {
2588
+ switch (scope.strategy._tag) {
2589
+ case "Sequential":
2590
+ return self
2591
+ case "Parallel":
2592
+ case "ParallelN":
2593
+ return core.flatMap(
2594
+ core.scopeFork(scope, ExecutionStrategy.sequential),
2595
+ (inner) => scopeExtend(self, inner)
2596
+ )
2597
+ }
2598
+ }
2599
+ })
2600
+ )
2601
+
2602
+ /* @internal */
2603
+ export const tagMetricsScoped = (key: string, value: string): Effect.Effect<Scope.Scope, never, void> =>
2604
+ labelMetricsScoped([metricLabel.make(key, value)])
2605
+
2606
+ /* @internal */
2607
+ export const labelMetricsScoped = (
2608
+ labels: Iterable<MetricLabel.MetricLabel>
2609
+ ): Effect.Effect<Scope.Scope, never, void> =>
2610
+ fiberRefLocallyScopedWith(core.currentMetricLabels, (old) => RA.union(old, labels))
2611
+
2612
+ /* @internal */
2613
+ export const using = dual<
2614
+ <A, R2, E2, A2>(
2615
+ use: (a: A) => Effect.Effect<R2, E2, A2>
2616
+ ) => <R, E>(self: Effect.Effect<R, E, A>) => Effect.Effect<Exclude<R, Scope.Scope> | R2, E | E2, A2>,
2617
+ <R, E, A, R2, E2, A2>(
2618
+ self: Effect.Effect<R, E, A>,
2619
+ use: (a: A) => Effect.Effect<R2, E2, A2>
2620
+ ) => Effect.Effect<Exclude<R, Scope.Scope> | R2, E | E2, A2>
2621
+ >(2, (self, use) =>
2622
+ core.acquireUseRelease(
2623
+ scopeMake(),
2624
+ (scope) => core.flatMap(scopeExtend(self, scope), use),
2625
+ (scope, exit) => core.scopeClose(scope, exit)
2626
+ ))
2627
+
2628
+ /** @internal */
2629
+ export const validate = dual<
2630
+ <R1, E1, B>(
2631
+ that: Effect.Effect<R1, E1, B>,
2632
+ options?: {
2633
+ readonly concurrent?: boolean | undefined
2634
+ readonly batching?: boolean | "inherit" | undefined
2635
+ }
2636
+ ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R1, E | E1, [A, B]>,
2637
+ <R, E, A, R1, E1, B>(
2638
+ self: Effect.Effect<R, E, A>,
2639
+ that: Effect.Effect<R1, E1, B>,
2640
+ options?: {
2641
+ readonly concurrent?: boolean | undefined
2642
+ readonly batching?: boolean | "inherit" | undefined
2643
+ }
2644
+ ) => Effect.Effect<R | R1, E | E1, [A, B]>
2645
+ >(
2646
+ (args) => core.isEffect(args[1]),
2647
+ (self, that, options) => validateWith(self, that, (a, b) => [a, b], options)
2648
+ )
2649
+
2650
+ /** @internal */
2651
+ export const validateWith = dual<
2652
+ <A, R1, E1, B, C>(
2653
+ that: Effect.Effect<R1, E1, B>,
2654
+ f: (a: A, b: B) => C,
2655
+ options?: {
2656
+ readonly concurrent?: boolean | undefined
2657
+ readonly batching?: boolean | "inherit" | undefined
2658
+ }
2659
+ ) => <R, E>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R1, E | E1, C>,
2660
+ <R, E, A, R1, E1, B, C>(
2661
+ self: Effect.Effect<R, E, A>,
2662
+ that: Effect.Effect<R1, E1, B>,
2663
+ f: (a: A, b: B) => C,
2664
+ options?: {
2665
+ readonly concurrent?: boolean | undefined
2666
+ readonly batching?: boolean | "inherit" | undefined
2667
+ }
2668
+ ) => Effect.Effect<R | R1, E | E1, C>
2669
+ >((args) => core.isEffect(args[1]), (self, that, f, options) =>
2670
+ core.flatten(zipWithOptions(
2671
+ core.exit(self),
2672
+ core.exit(that),
2673
+ (ea, eb) =>
2674
+ core.exitZipWith(ea, eb, {
2675
+ onSuccess: f,
2676
+ onFailure: (ca, cb) => options?.concurrent ? internalCause.parallel(ca, cb) : internalCause.sequential(ca, cb)
2677
+ }),
2678
+ options
2679
+ )))
2680
+
2681
+ /* @internal */
2682
+ export const validateAllPar = dual<
2683
+ <R, E, A, B>(
2684
+ f: (a: A) => Effect.Effect<R, E, B>
2685
+ ) => (elements: Iterable<A>) => Effect.Effect<R, Array<E>, Array<B>>,
2686
+ <R, E, A, B>(
2687
+ elements: Iterable<A>,
2688
+ f: (a: A) => Effect.Effect<R, E, B>
2689
+ ) => Effect.Effect<R, Array<E>, Array<B>>
2690
+ >(2, (elements, f) =>
2691
+ core.flatMap(
2692
+ partition(elements, f),
2693
+ ([es, bs]) =>
2694
+ es.length === 0
2695
+ ? core.succeed(bs)
2696
+ : core.fail(es)
2697
+ ))
2698
+
2699
+ /* @internal */
2700
+ export const validateAllParDiscard = dual<
2701
+ <R, E, A, B>(
2702
+ f: (a: A) => Effect.Effect<R, E, B>
2703
+ ) => (elements: Iterable<A>) => Effect.Effect<R, Array<E>, void>,
2704
+ <R, E, A, B>(elements: Iterable<A>, f: (a: A) => Effect.Effect<R, E, B>) => Effect.Effect<R, Array<E>, void>
2705
+ >(2, (elements, f) =>
2706
+ core.flatMap(
2707
+ partition(elements, f),
2708
+ ([es, _]) =>
2709
+ es.length === 0
2710
+ ? core.unit
2711
+ : core.fail(es)
2712
+ ))
2713
+
2714
+ /* @internal */
2715
+ export const validateFirst = dual<
2716
+ <R, E, A, B>(f: (a: A, i: number) => Effect.Effect<R, E, B>, options?: {
2717
+ readonly concurrency?: Concurrency | undefined
2718
+ readonly batching?: boolean | "inherit" | undefined
2719
+ }) => (elements: Iterable<A>) => Effect.Effect<R, Array<E>, B>,
2720
+ <R, E, A, B>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<R, E, B>, options?: {
2721
+ readonly concurrency?: Concurrency | undefined
2722
+ readonly batching?: boolean | "inherit" | undefined
2723
+ }) => Effect.Effect<R, Array<E>, B>
2724
+ >(
2725
+ (args) => Predicate.isIterable(args[0]),
2726
+ (elements, f, options) => core.flip(forEach(elements, (a, i) => core.flip(f(a, i)), options))
2727
+ )
2728
+
2729
+ /* @internal */
2730
+ export const withClockScoped = <A extends Clock.Clock>(value: A) =>
2731
+ fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, value))
2732
+
2733
+ /* @internal */
2734
+ export const withConfigProviderScoped = (value: ConfigProvider) =>
2735
+ fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(configProviderTag, value))
2736
+
2737
+ /* @internal */
2738
+ export const withEarlyRelease = <R, E, A>(
2739
+ self: Effect.Effect<R, E, A>
2740
+ ): Effect.Effect<R | Scope.Scope, E, [Effect.Effect<never, never, void>, A]> =>
2741
+ scopeWith((parent) =>
2742
+ core.flatMap(core.scopeFork(parent, executionStrategy.sequential), (child) =>
2743
+ pipe(
2744
+ self,
2745
+ scopeExtend(child),
2746
+ core.map((value) => [
2747
+ core.fiberIdWith((fiberId) => core.scopeClose(child, core.exitInterrupt(fiberId))),
2748
+ value
2749
+ ])
2750
+ ))
2751
+ )
2752
+
2753
+ /** @internal */
2754
+ export const zipOptions = dual<
2755
+ <R2, E2, A2>(
2756
+ that: Effect.Effect<R2, E2, A2>,
2757
+ options?: {
2758
+ readonly concurrent?: boolean | undefined
2759
+ readonly batching?: boolean | "inherit" | undefined
2760
+ }
2761
+ ) => <R, E, A>(
2762
+ self: Effect.Effect<R, E, A>
2763
+ ) => Effect.Effect<R | R2, E | E2, [A, A2]>,
2764
+ <R, E, A, R2, E2, A2>(
2765
+ self: Effect.Effect<R, E, A>,
2766
+ that: Effect.Effect<R2, E2, A2>,
2767
+ options?: {
2768
+ readonly concurrent?: boolean | undefined
2769
+ readonly batching?: boolean | "inherit" | undefined
2770
+ }
2771
+ ) => Effect.Effect<R | R2, E | E2, [A, A2]>
2772
+ >((args) => core.isEffect(args[1]), (
2773
+ self,
2774
+ that,
2775
+ options
2776
+ ) => zipWithOptions(self, that, (a, b) => [a, b], options))
2777
+
2778
+ /** @internal */
2779
+ export const zipLeftOptions = dual<
2780
+ <R2, E2, A2>(
2781
+ that: Effect.Effect<R2, E2, A2>,
2782
+ options?: {
2783
+ readonly concurrent?: boolean | undefined
2784
+ readonly batching?: boolean | "inherit" | undefined
2785
+ }
2786
+ ) => <R, E, A>(
2787
+ self: Effect.Effect<R, E, A>
2788
+ ) => Effect.Effect<R | R2, E | E2, A>,
2789
+ <R, E, A, R2, E2, A2>(
2790
+ self: Effect.Effect<R, E, A>,
2791
+ that: Effect.Effect<R2, E2, A2>,
2792
+ options?: {
2793
+ readonly concurrent?: boolean | undefined
2794
+ readonly batching?: boolean | "inherit" | undefined
2795
+ }
2796
+ ) => Effect.Effect<R | R2, E | E2, A>
2797
+ >(
2798
+ (args) => core.isEffect(args[1]),
2799
+ (self, that, options) => zipWithOptions(self, that, (a, _) => a, options)
2800
+ )
2801
+
2802
+ /** @internal */
2803
+ export const zipRightOptions = dual<
2804
+ <R2, E2, A2>(
2805
+ that: Effect.Effect<R2, E2, A2>,
2806
+ options?: {
2807
+ readonly concurrent?: boolean | undefined
2808
+ readonly batching?: boolean | "inherit" | undefined
2809
+ }
2810
+ ) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R2, E | E2, A2>,
2811
+ <R, E, A, R2, E2, A2>(
2812
+ self: Effect.Effect<R, E, A>,
2813
+ that: Effect.Effect<R2, E2, A2>,
2814
+ options?: {
2815
+ readonly concurrent?: boolean | undefined
2816
+ readonly batching?: boolean | "inherit" | undefined
2817
+ }
2818
+ ) => Effect.Effect<R | R2, E | E2, A2>
2819
+ >((args) => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (_, b) => b, options))
2820
+
2821
+ /** @internal */
2822
+ export const zipWithOptions = dual<
2823
+ <R2, E2, A2, A, B>(
2824
+ that: Effect.Effect<R2, E2, A2>,
2825
+ f: (a: A, b: A2) => B,
2826
+ options?: {
2827
+ readonly concurrent?: boolean | undefined
2828
+ readonly batching?: boolean | "inherit" | undefined
2829
+ }
2830
+ ) => <R, E>(
2831
+ self: Effect.Effect<R, E, A>
2832
+ ) => Effect.Effect<R | R2, E | E2, B>,
2833
+ <R, E, A, R2, E2, A2, B>(
2834
+ self: Effect.Effect<R, E, A>,
2835
+ that: Effect.Effect<R2, E2, A2>,
2836
+ f: (a: A, b: A2) => B,
2837
+ options?: {
2838
+ readonly concurrent?: boolean | undefined
2839
+ readonly batching?: boolean | "inherit" | undefined
2840
+ }
2841
+ ) => Effect.Effect<R | R2, E | E2, B>
2842
+ >((args) => core.isEffect(args[1]), <R, E, A, R2, E2, A2, B>(
2843
+ self: Effect.Effect<R, E, A>,
2844
+ that: Effect.Effect<R2, E2, A2>,
2845
+ f: (a: A, b: A2) => B,
2846
+ options?: {
2847
+ readonly concurrent?: boolean | undefined
2848
+ readonly batching?: boolean | "inherit" | undefined
2849
+ }
2850
+ ): Effect.Effect<R | R2, E | E2, B> =>
2851
+ core.map(
2852
+ all([self, that], {
2853
+ concurrency: options?.concurrent ? 2 : 1,
2854
+ batching: options?.batching
2855
+ }),
2856
+ ([a, a2]) => f(a, a2)
2857
+ ))
2858
+
2859
+ /* @internal */
2860
+ export const withRuntimeFlagsScoped = (
2861
+ update: RuntimeFlagsPatch.RuntimeFlagsPatch
2862
+ ): Effect.Effect<Scope.Scope, never, void> => {
2863
+ if (update === RuntimeFlagsPatch.empty) {
2864
+ return core.unit
2865
+ }
2866
+ return pipe(
2867
+ core.runtimeFlags,
2868
+ core.flatMap((runtimeFlags) => {
2869
+ const updatedRuntimeFlags = _runtimeFlags.patch(runtimeFlags, update)
2870
+ const revertRuntimeFlags = _runtimeFlags.diff(updatedRuntimeFlags, runtimeFlags)
2871
+ return pipe(
2872
+ core.updateRuntimeFlags(update),
2873
+ core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))),
2874
+ core.asUnit
2875
+ )
2876
+ }),
2877
+ core.uninterruptible
2878
+ )
2879
+ }
2880
+
2881
+ // circular with ReleaseMap
2882
+
2883
+ /* @internal */
2884
+ export const releaseMapReleaseAll = (
2885
+ strategy: ExecutionStrategy.ExecutionStrategy,
2886
+ exit: Exit.Exit<unknown, unknown>
2887
+ ) =>
2888
+ (self: core.ReleaseMap): Effect.Effect<never, never, void> =>
2889
+ core.suspend(() => {
2890
+ switch (self.state._tag) {
2891
+ case "Exited": {
2892
+ return core.unit
2893
+ }
2894
+ case "Running": {
2895
+ const finalizersMap = self.state.finalizers
2896
+ const update = self.state.update
2897
+ const finalizers = Array.from(finalizersMap.keys()).sort((a, b) => b - a).map((key) => finalizersMap.get(key)!)
2898
+ self.state = { _tag: "Exited", nextKey: self.state.nextKey, exit, update }
2899
+ return executionStrategy.isSequential(strategy) ?
2900
+ pipe(
2901
+ finalizers,
2902
+ core.forEachSequential((fin) => core.exit(update(fin)(exit))),
2903
+ core.flatMap((results) =>
2904
+ pipe(
2905
+ core.exitCollectAll(results),
2906
+ Option.map(core.exitAsUnit),
2907
+ Option.getOrElse(() => core.exitUnit)
2908
+ )
2909
+ )
2910
+ ) :
2911
+ executionStrategy.isParallel(strategy) ?
2912
+ pipe(
2913
+ forEachParUnbounded(finalizers, (fin) => core.exit(update(fin)(exit)), false),
2914
+ core.flatMap((results) =>
2915
+ pipe(
2916
+ core.exitCollectAll(results, { parallel: true }),
2917
+ Option.map(core.exitAsUnit),
2918
+ Option.getOrElse(() => core.exitUnit)
2919
+ )
2920
+ )
2921
+ ) :
2922
+ pipe(
2923
+ forEachParN(finalizers, strategy.parallelism, (fin) => core.exit(update(fin)(exit)), false),
2924
+ core.flatMap((results) =>
2925
+ pipe(
2926
+ core.exitCollectAll(results, { parallel: true }),
2927
+ Option.map(core.exitAsUnit),
2928
+ Option.getOrElse(() => core.exitUnit)
2929
+ )
2930
+ )
2931
+ )
2932
+ }
2933
+ }
2934
+ })
2935
+
2936
+ // circular with Scope
2937
+
2938
+ /** @internal */
2939
+ export const scopeTag = Context.Tag<Scope.Scope>(core.ScopeTypeId)
2940
+
2941
+ /* @internal */
2942
+ export const scope: Effect.Effect<Scope.Scope, never, Scope.Scope> = scopeTag
2943
+
2944
+ /* @internal */
2945
+ export const scopeMake = (
2946
+ strategy: ExecutionStrategy.ExecutionStrategy = executionStrategy.sequential
2947
+ ): Effect.Effect<never, never, Scope.Scope.Closeable> =>
2948
+ core.map(core.releaseMapMake, (rm): Scope.Scope.Closeable => ({
2949
+ [core.ScopeTypeId]: core.ScopeTypeId,
2950
+ [core.CloseableScopeTypeId]: core.CloseableScopeTypeId,
2951
+ strategy,
2952
+ pipe() {
2953
+ return pipeArguments(this, arguments)
2954
+ },
2955
+ fork: (strategy) =>
2956
+ core.uninterruptible(
2957
+ pipe(
2958
+ scopeMake(strategy),
2959
+ core.flatMap((scope) =>
2960
+ pipe(
2961
+ core.releaseMapAdd(rm, (exit) => core.scopeClose(scope, exit)),
2962
+ core.tap((fin) => core.scopeAddFinalizerExit(scope, fin)),
2963
+ core.as(scope)
2964
+ )
2965
+ )
2966
+ )
2967
+ ),
2968
+ close: (exit) => core.asUnit(releaseMapReleaseAll(strategy, exit)(rm)),
2969
+ addFinalizer: (fin) => core.asUnit(core.releaseMapAdd(fin)(rm))
2970
+ }))
2971
+
2972
+ /* @internal */
2973
+ export const scopeExtend = dual<
2974
+ (scope: Scope.Scope) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Exclude<R, Scope.Scope>, E, A>,
2975
+ <R, E, A>(effect: Effect.Effect<R, E, A>, scope: Scope.Scope) => Effect.Effect<Exclude<R, Scope.Scope>, E, A>
2976
+ >(
2977
+ 2,
2978
+ <R, E, A>(effect: Effect.Effect<R, E, A>, scope: Scope.Scope) =>
2979
+ core.mapInputContext<Exclude<R, Scope.Scope>, R, E, A>(
2980
+ effect,
2981
+ // @ts-expect-error
2982
+ Context.merge(Context.make(scopeTag, scope))
2983
+ )
2984
+ )
2985
+
2986
+ /* @internal */
2987
+ export const scopeUse = dual<
2988
+ (
2989
+ scope: Scope.Scope.Closeable
2990
+ ) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Exclude<R, Scope.Scope>, E, A>,
2991
+ <R, E, A>(
2992
+ effect: Effect.Effect<R, E, A>,
2993
+ scope: Scope.Scope.Closeable
2994
+ ) => Effect.Effect<Exclude<R, Scope.Scope>, E, A>
2995
+ >(2, (effect, scope) =>
2996
+ pipe(
2997
+ effect,
2998
+ scopeExtend(scope),
2999
+ core.onExit((exit) => scope.close(exit))
3000
+ ))
3001
+
3002
+ // circular with Supervisor
3003
+
3004
+ /** @internal */
3005
+ export const fiberRefUnsafeMakeSupervisor = (
3006
+ initial: Supervisor.Supervisor<any>
3007
+ ): FiberRef.FiberRef<Supervisor.Supervisor<any>> =>
3008
+ core.fiberRefUnsafeMakePatch(initial, {
3009
+ differ: SupervisorPatch.differ,
3010
+ fork: SupervisorPatch.empty
3011
+ })
3012
+
3013
+ // circular with FiberRef
3014
+
3015
+ /* @internal */
3016
+ export const fiberRefLocallyScoped = dual<
3017
+ <A>(value: A) => (self: FiberRef.FiberRef<A>) => Effect.Effect<Scope.Scope, never, void>,
3018
+ <A>(self: FiberRef.FiberRef<A>, value: A) => Effect.Effect<Scope.Scope, never, void>
3019
+ >(2, (self, value) =>
3020
+ core.asUnit(
3021
+ acquireRelease(
3022
+ core.flatMap(
3023
+ core.fiberRefGet(self),
3024
+ (oldValue) => core.as(core.fiberRefSet(self, value), oldValue)
3025
+ ),
3026
+ (oldValue) => core.fiberRefSet(self, oldValue)
3027
+ )
3028
+ ))
3029
+
3030
+ /* @internal */
3031
+ export const fiberRefLocallyScopedWith = dual<
3032
+ <A>(f: (a: A) => A) => (self: FiberRef.FiberRef<A>) => Effect.Effect<Scope.Scope, never, void>,
3033
+ <A>(self: FiberRef.FiberRef<A>, f: (a: A) => A) => Effect.Effect<Scope.Scope, never, void>
3034
+ >(2, (self, f) => core.fiberRefGetWith(self, (a) => fiberRefLocallyScoped(self, f(a))))
3035
+
3036
+ /* @internal */
3037
+ export const fiberRefMake = <A>(
3038
+ initial: A,
3039
+ options?: {
3040
+ readonly fork?: ((a: A) => A) | undefined
3041
+ readonly join?: ((left: A, right: A) => A) | undefined
3042
+ }
3043
+ ): Effect.Effect<Scope.Scope, never, FiberRef.FiberRef<A>> =>
3044
+ fiberRefMakeWith(() => core.fiberRefUnsafeMake(initial, options))
3045
+
3046
+ /* @internal */
3047
+ export const fiberRefMakeWith = <Value>(
3048
+ ref: LazyArg<FiberRef.FiberRef<Value>>
3049
+ ): Effect.Effect<Scope.Scope, never, FiberRef.FiberRef<Value>> =>
3050
+ acquireRelease(
3051
+ core.tap(core.sync(ref), (ref) => core.fiberRefUpdate(ref, identity)),
3052
+ (fiberRef) => core.fiberRefDelete(fiberRef)
3053
+ )
3054
+
3055
+ /* @internal */
3056
+ export const fiberRefMakeContext = <A>(
3057
+ initial: Context.Context<A>
3058
+ ): Effect.Effect<Scope.Scope, never, FiberRef.FiberRef<Context.Context<A>>> =>
3059
+ fiberRefMakeWith(() => core.fiberRefUnsafeMakeContext(initial))
3060
+
3061
+ /* @internal */
3062
+ export const fiberRefMakeRuntimeFlags = (
3063
+ initial: RuntimeFlags.RuntimeFlags
3064
+ ): Effect.Effect<Scope.Scope, never, FiberRef.FiberRef<RuntimeFlags.RuntimeFlags>> =>
3065
+ fiberRefMakeWith(() => core.fiberRefUnsafeMakeRuntimeFlags(initial))
3066
+
3067
+ /** @internal */
3068
+ export const currentRuntimeFlags: FiberRef.FiberRef<RuntimeFlags.RuntimeFlags> = core.fiberRefUnsafeMakeRuntimeFlags(
3069
+ _runtimeFlags.none
3070
+ )
3071
+
3072
+ /** @internal */
3073
+ export const currentSupervisor: FiberRef.FiberRef<Supervisor.Supervisor<any>> = fiberRefUnsafeMakeSupervisor(
3074
+ supervisor.none
3075
+ )
3076
+
3077
+ // circular with Fiber
3078
+
3079
+ /* @internal */
3080
+ export const fiberAwaitAll = (fibers: Iterable<Fiber.Fiber<any, any>>): Effect.Effect<never, never, void> =>
3081
+ core.asUnit(internalFiber._await(fiberAll(fibers)))
3082
+
3083
+ /** @internal */
3084
+ export const fiberAll = <E, A>(fibers: Iterable<Fiber.Fiber<E, A>>): Fiber.Fiber<E, Array<A>> => ({
3085
+ [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
3086
+ id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),
3087
+ await: core.exit(forEachParUnbounded(fibers, (fiber) => core.flatten(fiber.await), false)),
3088
+ children: core.map(forEachParUnbounded(fibers, (fiber) => fiber.children, false), RA.flatten),
3089
+ inheritAll: core.forEachSequentialDiscard(fibers, (fiber) => fiber.inheritAll),
3090
+ poll: core.map(
3091
+ core.forEachSequential(fibers, (fiber) => fiber.poll),
3092
+ RA.reduceRight(
3093
+ Option.some<Exit.Exit<E, Array<A>>>(core.exitSucceed(new Array())),
3094
+ (optionB, optionA) => {
3095
+ switch (optionA._tag) {
3096
+ case "None": {
3097
+ return Option.none()
3098
+ }
3099
+ case "Some": {
3100
+ switch (optionB._tag) {
3101
+ case "None": {
3102
+ return Option.none()
3103
+ }
3104
+ case "Some": {
3105
+ return Option.some(
3106
+ core.exitZipWith(optionA.value, optionB.value, {
3107
+ onSuccess: (a, chunk) => [a, ...chunk],
3108
+ onFailure: internalCause.parallel
3109
+ })
3110
+ )
3111
+ }
3112
+ }
3113
+ }
3114
+ }
3115
+ }
3116
+ )
3117
+ ),
3118
+ interruptAsFork: (fiberId) => core.forEachSequentialDiscard(fibers, (fiber) => fiber.interruptAsFork(fiberId)),
3119
+ pipe() {
3120
+ return pipeArguments(this, arguments)
3121
+ }
3122
+ })
3123
+
3124
+ /* @internal */
3125
+ export const fiberInterruptFork = <E, A>(self: Fiber.Fiber<E, A>): Effect.Effect<never, never, void> =>
3126
+ core.asUnit(forkDaemon(core.interruptFiber(self)))
3127
+
3128
+ /* @internal */
3129
+ export const fiberJoinAll = <E, A>(fibers: Iterable<Fiber.Fiber<E, A>>): Effect.Effect<never, E, void> =>
3130
+ core.asUnit(internalFiber.join(fiberAll(fibers)))
3131
+
3132
+ /* @internal */
3133
+ export const fiberScoped = <E, A>(self: Fiber.Fiber<E, A>): Effect.Effect<Scope.Scope, never, Fiber.Fiber<E, A>> =>
3134
+ acquireRelease(core.succeed(self), core.interruptFiber)
3135
+
3136
+ //
3137
+ // circular race
3138
+ //
3139
+
3140
+ /** @internal */
3141
+ export const raceWith = dual<
3142
+ <E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3143
+ other: Effect.Effect<R1, E1, A1>,
3144
+ options: {
3145
+ readonly onSelfDone: (exit: Exit.Exit<E, A>, fiber: Fiber.Fiber<E1, A1>) => Effect.Effect<R2, E2, A2>
3146
+ readonly onOtherDone: (exit: Exit.Exit<E1, A1>, fiber: Fiber.Fiber<E, A>) => Effect.Effect<R3, E3, A3>
3147
+ }
3148
+ ) => <R>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R1 | R2 | R3, E2 | E3, A2 | A3>,
3149
+ <R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3150
+ self: Effect.Effect<R, E, A>,
3151
+ other: Effect.Effect<R1, E1, A1>,
3152
+ options: {
3153
+ readonly onSelfDone: (exit: Exit.Exit<E, A>, fiber: Fiber.Fiber<E1, A1>) => Effect.Effect<R2, E2, A2>
3154
+ readonly onOtherDone: (exit: Exit.Exit<E1, A1>, fiber: Fiber.Fiber<E, A>) => Effect.Effect<R3, E3, A3>
3155
+ }
3156
+ ) => Effect.Effect<R | R1 | R2 | R3, E2 | E3, A2 | A3>
3157
+ >(3, <R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3158
+ self: Effect.Effect<R, E, A>,
3159
+ other: Effect.Effect<R1, E1, A1>,
3160
+ options: {
3161
+ readonly onSelfDone: (exit: Exit.Exit<E, A>, fiber: Fiber.Fiber<E1, A1>) => Effect.Effect<R2, E2, A2>
3162
+ readonly onOtherDone: (exit: Exit.Exit<E1, A1>, fiber: Fiber.Fiber<E, A>) => Effect.Effect<R3, E3, A3>
3163
+ }
3164
+ ) =>
3165
+ raceFibersWith(self, other, {
3166
+ onSelfWin: (winner, loser) =>
3167
+ core.flatMap(winner.await, (exit) => {
3168
+ switch (exit._tag) {
3169
+ case OpCodes.OP_SUCCESS: {
3170
+ return core.flatMap(
3171
+ winner.inheritAll,
3172
+ () => options.onSelfDone(exit, loser)
3173
+ )
3174
+ }
3175
+ case OpCodes.OP_FAILURE: {
3176
+ return options.onSelfDone(exit, loser)
3177
+ }
3178
+ }
3179
+ }),
3180
+ onOtherWin: (winner, loser) =>
3181
+ core.flatMap(winner.await, (exit) => {
3182
+ switch (exit._tag) {
3183
+ case OpCodes.OP_SUCCESS: {
3184
+ return core.flatMap(
3185
+ winner.inheritAll,
3186
+ () => options.onOtherDone(exit, loser)
3187
+ )
3188
+ }
3189
+ case OpCodes.OP_FAILURE: {
3190
+ return options.onOtherDone(exit, loser)
3191
+ }
3192
+ }
3193
+ })
3194
+ }))
3195
+
3196
+ /** @internal */
3197
+ export const disconnect = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
3198
+ core.uninterruptibleMask((restore) =>
3199
+ core.fiberIdWith((fiberId) =>
3200
+ core.flatMap(forkDaemon(restore(self)), (fiber) =>
3201
+ pipe(
3202
+ restore(internalFiber.join(fiber)),
3203
+ core.onInterrupt(() => pipe(fiber, internalFiber.interruptAsFork(fiberId)))
3204
+ ))
3205
+ )
3206
+ )
3207
+
3208
+ /** @internal */
3209
+ export const race = dual<
3210
+ <R2, E2, A2>(
3211
+ that: Effect.Effect<R2, E2, A2>
3212
+ ) => <R, E, A>(
3213
+ self: Effect.Effect<R, E, A>
3214
+ ) => Effect.Effect<R | R2, E | E2, A | A2>,
3215
+ <R, E, A, R2, E2, A2>(
3216
+ self: Effect.Effect<R, E, A>,
3217
+ that: Effect.Effect<R2, E2, A2>
3218
+ ) => Effect.Effect<R | R2, E | E2, A | A2>
3219
+ >(
3220
+ 2,
3221
+ (self, that) =>
3222
+ core.fiberIdWith((parentFiberId) =>
3223
+ raceWith(self, that, {
3224
+ onSelfDone: (exit, right) =>
3225
+ core.exitMatchEffect(exit, {
3226
+ onFailure: (cause) =>
3227
+ pipe(
3228
+ internalFiber.join(right),
3229
+ internalEffect.mapErrorCause((cause2) => internalCause.parallel(cause, cause2))
3230
+ ),
3231
+ onSuccess: (value) =>
3232
+ pipe(
3233
+ right,
3234
+ core.interruptAsFiber(parentFiberId),
3235
+ core.as(value)
3236
+ )
3237
+ }),
3238
+ onOtherDone: (exit, left) =>
3239
+ core.exitMatchEffect(exit, {
3240
+ onFailure: (cause) =>
3241
+ pipe(
3242
+ internalFiber.join(left),
3243
+ internalEffect.mapErrorCause((cause2) => internalCause.parallel(cause2, cause))
3244
+ ),
3245
+ onSuccess: (value) =>
3246
+ pipe(
3247
+ left,
3248
+ core.interruptAsFiber(parentFiberId),
3249
+ core.as(value)
3250
+ )
3251
+ })
3252
+ })
3253
+ )
3254
+ )
3255
+
3256
+ /** @internal */
3257
+ export const raceFibersWith = dual<
3258
+ <E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3259
+ other: Effect.Effect<R1, E1, A1>,
3260
+ options: {
3261
+ readonly onSelfWin: (
3262
+ winner: Fiber.RuntimeFiber<E, A>,
3263
+ loser: Fiber.RuntimeFiber<E1, A1>
3264
+ ) => Effect.Effect<R2, E2, A2>
3265
+ readonly onOtherWin: (
3266
+ winner: Fiber.RuntimeFiber<E1, A1>,
3267
+ loser: Fiber.RuntimeFiber<E, A>
3268
+ ) => Effect.Effect<R3, E3, A3>
3269
+ readonly selfScope?: fiberScope.FiberScope | undefined
3270
+ readonly otherScope?: fiberScope.FiberScope | undefined
3271
+ }
3272
+ ) => <R>(self: Effect.Effect<R, E, A>) => Effect.Effect<
3273
+ R | R1 | R2 | R3,
3274
+ E2 | E3,
3275
+ A2 | A3
3276
+ >,
3277
+ <R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3278
+ self: Effect.Effect<R, E, A>,
3279
+ other: Effect.Effect<R1, E1, A1>,
3280
+ options: {
3281
+ readonly onSelfWin: (
3282
+ winner: Fiber.RuntimeFiber<E, A>,
3283
+ loser: Fiber.RuntimeFiber<E1, A1>
3284
+ ) => Effect.Effect<R2, E2, A2>
3285
+ readonly onOtherWin: (
3286
+ winner: Fiber.RuntimeFiber<E1, A1>,
3287
+ loser: Fiber.RuntimeFiber<E, A>
3288
+ ) => Effect.Effect<R3, E3, A3>
3289
+ readonly selfScope?: fiberScope.FiberScope | undefined
3290
+ readonly otherScope?: fiberScope.FiberScope | undefined
3291
+ }
3292
+ ) => Effect.Effect<
3293
+ R | R1 | R2 | R3,
3294
+ E2 | E3,
3295
+ A2 | A3
3296
+ >
3297
+ >(3, <R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(
3298
+ self: Effect.Effect<R, E, A>,
3299
+ other: Effect.Effect<R1, E1, A1>,
3300
+ options: {
3301
+ readonly onSelfWin: (
3302
+ winner: Fiber.RuntimeFiber<E, A>,
3303
+ loser: Fiber.RuntimeFiber<E1, A1>
3304
+ ) => Effect.Effect<R2, E2, A2>
3305
+ readonly onOtherWin: (
3306
+ winner: Fiber.RuntimeFiber<E1, A1>,
3307
+ loser: Fiber.RuntimeFiber<E, A>
3308
+ ) => Effect.Effect<R3, E3, A3>
3309
+ readonly selfScope?: fiberScope.FiberScope | undefined
3310
+ readonly otherScope?: fiberScope.FiberScope | undefined
3311
+ }
3312
+ ) =>
3313
+ core.withFiberRuntime<R | R1 | R2 | R3, E2 | E3, A2 | A3>((parentFiber, parentStatus) => {
3314
+ const parentRuntimeFlags = parentStatus.runtimeFlags
3315
+ const raceIndicator = MRef.make(true)
3316
+ const leftFiber: FiberRuntime<E, A> = unsafeMakeChildFiber(
3317
+ self,
3318
+ parentFiber,
3319
+ parentRuntimeFlags,
3320
+ options.selfScope
3321
+ )
3322
+ const rightFiber: FiberRuntime<E1, A1> = unsafeMakeChildFiber(
3323
+ other,
3324
+ parentFiber,
3325
+ parentRuntimeFlags,
3326
+ options.otherScope
3327
+ )
3328
+ return core.async<R | R1 | R2 | R3, E2 | E3, A2 | A3>((cb) => {
3329
+ leftFiber.addObserver(() => completeRace(leftFiber, rightFiber, options.onSelfWin, raceIndicator, cb))
3330
+ rightFiber.addObserver(() => completeRace(rightFiber, leftFiber, options.onOtherWin, raceIndicator, cb))
3331
+ leftFiber.startFork(self)
3332
+ rightFiber.startFork(other)
3333
+ }, FiberId.combine(leftFiber.id(), rightFiber.id()))
3334
+ }))
3335
+
3336
+ const completeRace = <R, R1, R2, E2, A2, R3, E3, A3>(
3337
+ winner: Fiber.RuntimeFiber<any, any>,
3338
+ loser: Fiber.RuntimeFiber<any, any>,
3339
+ cont: (winner: Fiber.RuntimeFiber<any, any>, loser: Fiber.RuntimeFiber<any, any>) => Effect.Effect<any, any, any>,
3340
+ ab: MRef.MutableRef<boolean>,
3341
+ cb: (_: Effect.Effect<R | R1 | R2 | R3, E2 | E3, A2 | A3>) => void
3342
+ ): void => {
3343
+ if (MRef.compareAndSet(true, false)(ab)) {
3344
+ cb(cont(winner, loser))
3345
+ }
3346
+ }
3347
+
3348
+ /** @internal */
3349
+ export const ensuring = dual<
3350
+ <R1, X>(
3351
+ finalizer: Effect.Effect<R1, never, X>
3352
+ ) => <R, E, A>(
3353
+ self: Effect.Effect<R, E, A>
3354
+ ) => Effect.Effect<R | R1, E, A>,
3355
+ <R, E, A, R1, X>(
3356
+ self: Effect.Effect<R, E, A>,
3357
+ finalizer: Effect.Effect<R1, never, X>
3358
+ ) => Effect.Effect<R | R1, E, A>
3359
+ >(2, (self, finalizer) =>
3360
+ core.uninterruptibleMask((restore) =>
3361
+ core.matchCauseEffect(restore(self), {
3362
+ onFailure: (cause1) =>
3363
+ core.matchCauseEffect(finalizer, {
3364
+ onFailure: (cause2) => core.failCause(internalCause.sequential(cause1, cause2)),
3365
+ onSuccess: () => core.failCause(cause1)
3366
+ }),
3367
+ onSuccess: (a) => core.as(finalizer, a)
3368
+ })
3369
+ ))
3370
+
3371
+ /** @internal */
3372
+ export const invokeWithInterrupt: <R, E, A>(
3373
+ self: Effect.Effect<R, E, A>,
3374
+ entries: ReadonlyArray<Entry<unknown>>
3375
+ ) => Effect.Effect<R, E, void> = <R, E, A>(dataSource: Effect.Effect<R, E, A>, all: ReadonlyArray<Entry<unknown>>) =>
3376
+ core.fiberIdWith((id) =>
3377
+ core.flatMap(
3378
+ core.flatMap(
3379
+ forkDaemon(core.interruptible(dataSource)),
3380
+ (processing) =>
3381
+ core.async<never, E, void>((cb) => {
3382
+ const counts = all.map((_) => _.listeners.count)
3383
+ const checkDone = () => {
3384
+ if (counts.every((count) => count === 0)) {
3385
+ cleanup.forEach((f) => f())
3386
+ cb(core.interruptFiber(processing))
3387
+ }
3388
+ }
3389
+ processing.addObserver((exit) => {
3390
+ cleanup.forEach((f) => f())
3391
+ cb(exit)
3392
+ })
3393
+ const cleanup = all.map((r, i) => {
3394
+ const observer = (count: number) => {
3395
+ counts[i] = count
3396
+ checkDone()
3397
+ }
3398
+ r.listeners.addObserver(observer)
3399
+ return () => r.listeners.removeObserver(observer)
3400
+ })
3401
+ checkDone()
3402
+ return core.sync(() => {
3403
+ cleanup.forEach((f) => f())
3404
+ })
3405
+ })
3406
+ ),
3407
+ () =>
3408
+ core.suspend(() => {
3409
+ const residual = all.flatMap((entry) => {
3410
+ if (!entry.state.completed) {
3411
+ return [entry]
3412
+ }
3413
+ return []
3414
+ })
3415
+ return core.forEachSequentialDiscard(
3416
+ residual,
3417
+ (entry) => complete(entry.request as any, core.exitInterrupt(id))
3418
+ )
3419
+ })
3420
+ )
3421
+ )
3422
+
3423
+ /** @internal */
3424
+ export const interruptWhenPossible = dual<
3425
+ (all: Iterable<Request<any, any>>) => <R, E, A>(
3426
+ self: Effect.Effect<R, E, A>
3427
+ ) => Effect.Effect<R, E, void>,
3428
+ <R, E, A>(
3429
+ self: Effect.Effect<R, E, A>,
3430
+ all: Iterable<Request<any, any>>
3431
+ ) => Effect.Effect<R, E, void>
3432
+ >(2, (self, all) =>
3433
+ core.fiberRefGetWith(
3434
+ currentRequestMap,
3435
+ (map) =>
3436
+ core.suspend(() => {
3437
+ const entries = RA.fromIterable(all).flatMap((_) => map.has(_) ? [map.get(_)!] : [])
3438
+ return invokeWithInterrupt(self, entries)
3439
+ })
3440
+ ))
3441
+
3442
+ // circular Tracer
3443
+
3444
+ /** @internal */
3445
+ export const makeSpanScoped = (
3446
+ name: string,
3447
+ options?: {
3448
+ readonly attributes?: Record<string, unknown> | undefined
3449
+ readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
3450
+ readonly parent?: Tracer.ParentSpan | undefined
3451
+ readonly root?: boolean | undefined
3452
+ readonly context?: Context.Context<never> | undefined
3453
+ }
3454
+ ): Effect.Effect<Scope.Scope, never, Tracer.Span> =>
3455
+ acquireRelease(
3456
+ internalEffect.makeSpan(name, options),
3457
+ (span, exit) =>
3458
+ core.flatMap(
3459
+ internalEffect.currentTimeNanosTracing,
3460
+ (endTime) => core.sync(() => span.end(endTime, exit))
3461
+ )
3462
+ )
3463
+
3464
+ /* @internal */
3465
+ export const withTracerScoped = (value: Tracer.Tracer): Effect.Effect<Scope.Scope, never, void> =>
3466
+ fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(tracer.tracerTag, value))
3467
+
3468
+ /** @internal */
3469
+ export const withSpanScoped = dual<
3470
+ (name: string, options?: {
3471
+ readonly attributes?: Record<string, unknown> | undefined
3472
+ readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
3473
+ readonly parent?: Tracer.ParentSpan | undefined
3474
+ readonly root?: boolean | undefined
3475
+ readonly context?: Context.Context<never> | undefined
3476
+ }) => <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<Exclude<R, Tracer.ParentSpan> | Scope.Scope, E, A>,
3477
+ <R, E, A>(self: Effect.Effect<R, E, A>, name: string, options?: {
3478
+ readonly attributes?: Record<string, unknown> | undefined
3479
+ readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
3480
+ readonly parent?: Tracer.ParentSpan | undefined
3481
+ readonly root?: boolean | undefined
3482
+ readonly context?: Context.Context<never> | undefined
3483
+ }) => Effect.Effect<Exclude<R, Tracer.ParentSpan> | Scope.Scope, E, A>
3484
+ >(
3485
+ (args) => typeof args[0] !== "string",
3486
+ (self, name, options) =>
3487
+ core.flatMap(
3488
+ makeSpanScoped(name, options),
3489
+ (span) => internalEffect.provideService(self, tracer.spanTag, span)
3490
+ )
3491
+ )