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