effect 2.0.0-next.55 → 2.0.0-next.57

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 (1063) hide show
  1. package/README.md +14 -9
  2. package/dist/cjs/BigDecimal.js +9 -9
  3. package/dist/cjs/BigDecimal.js.map +1 -1
  4. package/dist/cjs/BigInt.js.map +1 -1
  5. package/dist/cjs/Boolean.js.map +1 -1
  6. package/dist/cjs/Brand.js.map +1 -1
  7. package/dist/cjs/Cache.js.map +1 -1
  8. package/dist/cjs/Cause.js +53 -18
  9. package/dist/cjs/Cause.js.map +1 -1
  10. package/dist/cjs/Channel.js.map +1 -1
  11. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  12. package/dist/cjs/Chunk.js +43 -34
  13. package/dist/cjs/Chunk.js.map +1 -1
  14. package/dist/cjs/Config.js +3 -3
  15. package/dist/cjs/Config.js.map +1 -1
  16. package/dist/cjs/Context.js.map +1 -1
  17. package/dist/cjs/Data.js +11 -20
  18. package/dist/cjs/Data.js.map +1 -1
  19. package/dist/cjs/Deferred.js.map +1 -1
  20. package/dist/cjs/Differ.js.map +1 -1
  21. package/dist/cjs/Duration.js +49 -2
  22. package/dist/cjs/Duration.js.map +1 -1
  23. package/dist/cjs/Effect.js +10 -8
  24. package/dist/cjs/Effect.js.map +1 -1
  25. package/dist/cjs/Either.js +44 -8
  26. package/dist/cjs/Either.js.map +1 -1
  27. package/dist/cjs/Equal.js.map +1 -1
  28. package/dist/cjs/Equivalence.js +1 -1
  29. package/dist/cjs/Equivalence.js.map +1 -1
  30. package/dist/cjs/Exit.js.map +1 -1
  31. package/dist/cjs/Fiber.js.map +1 -1
  32. package/dist/cjs/FiberRef.js +6 -1
  33. package/dist/cjs/FiberRef.js.map +1 -1
  34. package/dist/cjs/Function.js.map +1 -1
  35. package/dist/cjs/GlobalValue.js.map +1 -1
  36. package/dist/cjs/GroupBy.js.map +1 -1
  37. package/dist/cjs/Hash.js.map +1 -1
  38. package/dist/cjs/HashMap.js.map +1 -1
  39. package/dist/cjs/Inspectable.js +4 -6
  40. package/dist/cjs/Inspectable.js.map +1 -1
  41. package/dist/cjs/KeyedPool.js.map +1 -1
  42. package/dist/cjs/Layer.js +9 -29
  43. package/dist/cjs/Layer.js.map +1 -1
  44. package/dist/cjs/List.js +25 -22
  45. package/dist/cjs/List.js.map +1 -1
  46. package/dist/cjs/LogLevel.js.map +1 -1
  47. package/dist/cjs/Logger.js.map +1 -1
  48. package/dist/cjs/Match.js.map +1 -1
  49. package/dist/cjs/MergeDecision.js.map +1 -1
  50. package/dist/cjs/MergeState.js.map +1 -1
  51. package/dist/cjs/Metric.js.map +1 -1
  52. package/dist/cjs/MetricHook.js.map +1 -1
  53. package/dist/cjs/MetricKey.js.map +1 -1
  54. package/dist/cjs/MetricKeyType.js.map +1 -1
  55. package/dist/cjs/MetricPair.js.map +1 -1
  56. package/dist/cjs/MetricPolling.js +2 -2
  57. package/dist/cjs/MetricPolling.js.map +1 -1
  58. package/dist/cjs/MetricState.js.map +1 -1
  59. package/dist/cjs/MutableHashMap.js +1 -1
  60. package/dist/cjs/MutableHashMap.js.map +1 -1
  61. package/dist/cjs/MutableHashSet.js +1 -1
  62. package/dist/cjs/MutableHashSet.js.map +1 -1
  63. package/dist/cjs/MutableList.js +1 -1
  64. package/dist/cjs/MutableList.js.map +1 -1
  65. package/dist/cjs/MutableQueue.js +1 -1
  66. package/dist/cjs/MutableQueue.js.map +1 -1
  67. package/dist/cjs/MutableRef.js +1 -1
  68. package/dist/cjs/MutableRef.js.map +1 -1
  69. package/dist/cjs/NonEmptyIterable.js.map +1 -1
  70. package/dist/cjs/Number.js.map +1 -1
  71. package/dist/cjs/Option.js +21 -14
  72. package/dist/cjs/Option.js.map +1 -1
  73. package/dist/cjs/Order.js +1 -1
  74. package/dist/cjs/Order.js.map +1 -1
  75. package/dist/cjs/Ordering.js.map +1 -1
  76. package/dist/cjs/Pipeable.js.map +1 -1
  77. package/dist/cjs/Pool.js +15 -17
  78. package/dist/cjs/Pool.js.map +1 -1
  79. package/dist/cjs/Predicate.js +17 -1
  80. package/dist/cjs/Predicate.js.map +1 -1
  81. package/dist/cjs/PrimaryKey.js +21 -0
  82. package/dist/cjs/PrimaryKey.js.map +1 -0
  83. package/dist/cjs/Queue.js +6 -1
  84. package/dist/cjs/Queue.js.map +1 -1
  85. package/dist/cjs/ReadonlyArray.js +202 -187
  86. package/dist/cjs/ReadonlyArray.js.map +1 -1
  87. package/dist/cjs/ReadonlyRecord.js +61 -8
  88. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  89. package/dist/cjs/RedBlackTree.js.map +1 -1
  90. package/dist/cjs/Ref.js.map +1 -1
  91. package/dist/cjs/Reloadable.js.map +1 -1
  92. package/dist/cjs/Request.js +42 -1
  93. package/dist/cjs/Request.js.map +1 -1
  94. package/dist/cjs/RequestBlock.js +5 -24
  95. package/dist/cjs/RequestBlock.js.map +1 -1
  96. package/dist/cjs/RequestResolver.js.map +1 -1
  97. package/dist/cjs/Resource.js.map +1 -1
  98. package/dist/cjs/STM.js +1 -1
  99. package/dist/cjs/STM.js.map +1 -1
  100. package/dist/cjs/Schedule.js.map +1 -1
  101. package/dist/cjs/Scheduler.js.map +1 -1
  102. package/dist/cjs/ScopedCache.js.map +1 -1
  103. package/dist/cjs/ScopedRef.js.map +1 -1
  104. package/dist/cjs/Sink.js.map +1 -1
  105. package/dist/cjs/SortedMap.js +5 -2
  106. package/dist/cjs/SortedMap.js.map +1 -1
  107. package/dist/cjs/SortedSet.js +3 -3
  108. package/dist/cjs/SortedSet.js.map +1 -1
  109. package/dist/cjs/Stream.js.map +1 -1
  110. package/dist/cjs/Streamable.js +3 -0
  111. package/dist/cjs/Streamable.js.map +1 -1
  112. package/dist/cjs/String.js.map +1 -1
  113. package/dist/cjs/Struct.js.map +1 -1
  114. package/dist/cjs/SubscriptionRef.js.map +1 -1
  115. package/dist/cjs/Supervisor.js.map +1 -1
  116. package/dist/cjs/SynchronizedRef.js.map +1 -1
  117. package/dist/cjs/TArray.js.map +1 -1
  118. package/dist/cjs/TDeferred.js.map +1 -1
  119. package/dist/cjs/TMap.js.map +1 -1
  120. package/dist/cjs/TPriorityQueue.js.map +1 -1
  121. package/dist/cjs/TPubSub.js.map +1 -1
  122. package/dist/cjs/TQueue.js.map +1 -1
  123. package/dist/cjs/TRef.js.map +1 -1
  124. package/dist/cjs/TSet.js.map +1 -1
  125. package/dist/cjs/Take.js.map +1 -1
  126. package/dist/cjs/TestAnnotation.js +3 -1
  127. package/dist/cjs/TestAnnotation.js.map +1 -1
  128. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  129. package/dist/cjs/TestAnnotations.js.map +1 -1
  130. package/dist/cjs/TestClock.js.map +1 -1
  131. package/dist/cjs/TestContext.js +2 -2
  132. package/dist/cjs/TestContext.js.map +1 -1
  133. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  134. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  135. package/dist/cjs/Utils.js.map +1 -1
  136. package/dist/cjs/index.js +4 -2
  137. package/dist/cjs/index.js.map +1 -1
  138. package/dist/cjs/internal/Iterable.js.map +1 -1
  139. package/dist/cjs/internal/blockedRequests.js +3 -2
  140. package/dist/cjs/internal/blockedRequests.js.map +1 -1
  141. package/dist/cjs/internal/cache.js +3 -0
  142. package/dist/cjs/internal/cache.js.map +1 -1
  143. package/dist/cjs/internal/cause.js +5 -104
  144. package/dist/cjs/internal/cause.js.map +1 -1
  145. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  146. package/dist/cjs/internal/channel/channelState.js +2 -1
  147. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  148. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
  149. package/dist/cjs/internal/channel/continuation.js +9 -1
  150. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  151. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  152. package/dist/cjs/internal/channel/mergeState.js.map +1 -1
  153. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
  154. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  155. package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
  156. package/dist/cjs/internal/channel/upstreamPullRequest.js +1 -1
  157. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
  158. package/dist/cjs/internal/channel/upstreamPullStrategy.js +1 -1
  159. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
  160. package/dist/cjs/internal/channel.js.map +1 -1
  161. package/dist/cjs/internal/clock.js.map +1 -1
  162. package/dist/cjs/internal/concurrency.js.map +1 -1
  163. package/dist/cjs/internal/config.js +16 -24
  164. package/dist/cjs/internal/config.js.map +1 -1
  165. package/dist/cjs/internal/configError.js +2 -2
  166. package/dist/cjs/internal/configError.js.map +1 -1
  167. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  168. package/dist/cjs/internal/configProvider.js +18 -4
  169. package/dist/cjs/internal/configProvider.js.map +1 -1
  170. package/dist/cjs/internal/configSecret.js.map +1 -1
  171. package/dist/cjs/internal/context.js +5 -5
  172. package/dist/cjs/internal/context.js.map +1 -1
  173. package/dist/cjs/internal/core-effect.js +19 -15
  174. package/dist/cjs/internal/core-effect.js.map +1 -1
  175. package/dist/cjs/internal/core-stream.js +7 -1
  176. package/dist/cjs/internal/core-stream.js.map +1 -1
  177. package/dist/cjs/internal/core.js +203 -85
  178. package/dist/cjs/internal/core.js.map +1 -1
  179. package/dist/cjs/internal/data.js +4 -22
  180. package/dist/cjs/internal/data.js.map +1 -1
  181. package/dist/cjs/internal/dataSource.js +1 -1
  182. package/dist/cjs/internal/dataSource.js.map +1 -1
  183. package/dist/cjs/internal/deferred.js +2 -0
  184. package/dist/cjs/internal/deferred.js.map +1 -1
  185. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
  186. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  187. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
  188. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
  189. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  190. package/dist/cjs/internal/differ.js.map +1 -1
  191. package/dist/cjs/internal/effect/circular.js +1 -0
  192. package/dist/cjs/internal/effect/circular.js.map +1 -1
  193. package/dist/cjs/internal/effectable.js +38 -7
  194. package/dist/cjs/internal/effectable.js.map +1 -1
  195. package/dist/cjs/internal/either.js +1 -1
  196. package/dist/cjs/internal/either.js.map +1 -1
  197. package/dist/cjs/internal/encoding/base64.js.map +1 -1
  198. package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
  199. package/dist/cjs/internal/encoding/common.js.map +1 -1
  200. package/dist/cjs/internal/encoding/hex.js.map +1 -1
  201. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  202. package/dist/cjs/internal/fiber.js +2 -0
  203. package/dist/cjs/internal/fiber.js.map +1 -1
  204. package/dist/cjs/internal/fiberId.js +3 -3
  205. package/dist/cjs/internal/fiberId.js.map +1 -1
  206. package/dist/cjs/internal/fiberMessage.js.map +1 -1
  207. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  208. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  209. package/dist/cjs/internal/fiberRuntime.js +181 -218
  210. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  211. package/dist/cjs/internal/groupBy.js +4 -1
  212. package/dist/cjs/internal/groupBy.js.map +1 -1
  213. package/dist/cjs/internal/hashMap/array.js.map +1 -1
  214. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  215. package/dist/cjs/internal/hashMap.js +2 -2
  216. package/dist/cjs/internal/hashMap.js.map +1 -1
  217. package/dist/cjs/internal/hashSet.js +3 -3
  218. package/dist/cjs/internal/hashSet.js.map +1 -1
  219. package/dist/cjs/internal/keyedPool.js +3 -0
  220. package/dist/cjs/internal/keyedPool.js.map +1 -1
  221. package/dist/cjs/internal/layer.js +23 -53
  222. package/dist/cjs/internal/layer.js.map +1 -1
  223. package/dist/cjs/internal/logger.js +2 -1
  224. package/dist/cjs/internal/logger.js.map +1 -1
  225. package/dist/cjs/internal/matcher.js.map +1 -1
  226. package/dist/cjs/internal/metric/hook.js +2 -1
  227. package/dist/cjs/internal/metric/hook.js.map +1 -1
  228. package/dist/cjs/internal/metric/key.js +1 -1
  229. package/dist/cjs/internal/metric/key.js.map +1 -1
  230. package/dist/cjs/internal/metric/keyType.js +2 -1
  231. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  232. package/dist/cjs/internal/metric/pair.js +1 -1
  233. package/dist/cjs/internal/metric/pair.js.map +1 -1
  234. package/dist/cjs/internal/metric/polling.js +7 -7
  235. package/dist/cjs/internal/metric/polling.js.map +1 -1
  236. package/dist/cjs/internal/metric/registry.js.map +1 -1
  237. package/dist/cjs/internal/metric/state.js +1 -1
  238. package/dist/cjs/internal/metric/state.js.map +1 -1
  239. package/dist/cjs/internal/metric.js +11 -5
  240. package/dist/cjs/internal/metric.js.map +1 -1
  241. package/dist/cjs/internal/opCodes/layer.js +4 -4
  242. package/dist/cjs/internal/opCodes/layer.js.map +1 -1
  243. package/dist/cjs/internal/option.js +1 -1
  244. package/dist/cjs/internal/option.js.map +1 -1
  245. package/dist/cjs/internal/pool.js +2 -0
  246. package/dist/cjs/internal/pool.js.map +1 -1
  247. package/dist/cjs/internal/pubsub.js +25 -24
  248. package/dist/cjs/internal/pubsub.js.map +1 -1
  249. package/dist/cjs/internal/query.js +1 -1
  250. package/dist/cjs/internal/query.js.map +1 -1
  251. package/dist/cjs/internal/queue.js +14 -3
  252. package/dist/cjs/internal/queue.js.map +1 -1
  253. package/dist/cjs/internal/random.js.map +1 -1
  254. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  255. package/dist/cjs/internal/redBlackTree.js +8 -2
  256. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  257. package/dist/cjs/internal/ref.js +1 -0
  258. package/dist/cjs/internal/ref.js.map +1 -1
  259. package/dist/cjs/internal/reloadable.js +1 -1
  260. package/dist/cjs/internal/reloadable.js.map +1 -1
  261. package/dist/cjs/internal/request.js +33 -16
  262. package/dist/cjs/internal/request.js.map +1 -1
  263. package/dist/cjs/internal/resource.js +4 -3
  264. package/dist/cjs/internal/resource.js.map +1 -1
  265. package/dist/cjs/internal/ringBuffer.js.map +1 -1
  266. package/dist/cjs/internal/runtime.js +3 -4
  267. package/dist/cjs/internal/runtime.js.map +1 -1
  268. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  269. package/dist/cjs/internal/schedule/interval.js.map +1 -1
  270. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  271. package/dist/cjs/internal/schedule.js +12 -8
  272. package/dist/cjs/internal/schedule.js.map +1 -1
  273. package/dist/cjs/internal/scopedCache.js +5 -2
  274. package/dist/cjs/internal/scopedCache.js.map +1 -1
  275. package/dist/cjs/internal/scopedRef.js +1 -0
  276. package/dist/cjs/internal/scopedRef.js.map +1 -1
  277. package/dist/cjs/internal/sink.js +6 -2
  278. package/dist/cjs/internal/sink.js.map +1 -1
  279. package/dist/cjs/internal/stm/core.js +5 -3
  280. package/dist/cjs/internal/stm/core.js.map +1 -1
  281. package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
  282. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  283. package/dist/cjs/internal/stm/stm/tExit.js +2 -1
  284. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  285. package/dist/cjs/internal/stm/stm.js.map +1 -1
  286. package/dist/cjs/internal/stm/tArray.js +1 -1
  287. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  288. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  289. package/dist/cjs/internal/stm/tMap.js +2 -1
  290. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  291. package/dist/cjs/internal/stm/tPriorityQueue.js +1 -1
  292. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  293. package/dist/cjs/internal/stm/tPubSub.js +17 -14
  294. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  295. package/dist/cjs/internal/stm/tQueue.js +8 -7
  296. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  297. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  298. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  299. package/dist/cjs/internal/stm/tRef.js +1 -1
  300. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  301. package/dist/cjs/internal/stm/tSemaphore.js +2 -2
  302. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  303. package/dist/cjs/internal/stm/tSet.js +1 -1
  304. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  305. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  306. package/dist/cjs/internal/stream/handoff.js +1 -1
  307. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  308. package/dist/cjs/internal/stream.js +5 -5
  309. package/dist/cjs/internal/stream.js.map +1 -1
  310. package/dist/cjs/internal/string-utils.js.map +1 -1
  311. package/dist/cjs/internal/subscriptionRef.js +1 -1
  312. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  313. package/dist/cjs/internal/supervisor/patch.js.map +1 -1
  314. package/dist/cjs/internal/supervisor.js +1 -0
  315. package/dist/cjs/internal/supervisor.js.map +1 -1
  316. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  317. package/dist/cjs/internal/take.js +3 -2
  318. package/dist/cjs/internal/take.js.map +1 -1
  319. package/dist/cjs/internal/version.js +1 -1
  320. package/dist/dts/BigDecimal.d.ts +5 -5
  321. package/dist/dts/BigDecimal.d.ts.map +1 -1
  322. package/dist/dts/Brand.d.ts +4 -4
  323. package/dist/dts/Brand.d.ts.map +1 -1
  324. package/dist/dts/Cache.d.ts +18 -16
  325. package/dist/dts/Cache.d.ts.map +1 -1
  326. package/dist/dts/Cause.d.ts +94 -26
  327. package/dist/dts/Cause.d.ts.map +1 -1
  328. package/dist/dts/Channel.d.ts +12 -11
  329. package/dist/dts/Channel.d.ts.map +1 -1
  330. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  331. package/dist/dts/Chunk.d.ts +81 -69
  332. package/dist/dts/Chunk.d.ts.map +1 -1
  333. package/dist/dts/Clock.d.ts +4 -4
  334. package/dist/dts/Clock.d.ts.map +1 -1
  335. package/dist/dts/Config.d.ts +20 -19
  336. package/dist/dts/Config.d.ts.map +1 -1
  337. package/dist/dts/ConfigError.d.ts +7 -7
  338. package/dist/dts/ConfigError.d.ts.map +1 -1
  339. package/dist/dts/ConfigProvider.d.ts +3 -3
  340. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  341. package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
  342. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  343. package/dist/dts/Console.d.ts +36 -36
  344. package/dist/dts/Console.d.ts.map +1 -1
  345. package/dist/dts/Context.d.ts +8 -7
  346. package/dist/dts/Context.d.ts.map +1 -1
  347. package/dist/dts/Data.d.ts +6 -20
  348. package/dist/dts/Data.d.ts.map +1 -1
  349. package/dist/dts/Deferred.d.ts +5 -4
  350. package/dist/dts/Deferred.d.ts.map +1 -1
  351. package/dist/dts/Differ.d.ts +24 -23
  352. package/dist/dts/Differ.d.ts.map +1 -1
  353. package/dist/dts/Duration.d.ts +12 -1
  354. package/dist/dts/Duration.d.ts.map +1 -1
  355. package/dist/dts/Effect.d.ts +62 -45
  356. package/dist/dts/Effect.d.ts.map +1 -1
  357. package/dist/dts/Either.d.ts +61 -13
  358. package/dist/dts/Either.d.ts.map +1 -1
  359. package/dist/dts/Equal.d.ts +1 -1
  360. package/dist/dts/Equal.d.ts.map +1 -1
  361. package/dist/dts/Equivalence.d.ts +2 -2
  362. package/dist/dts/Equivalence.d.ts.map +1 -1
  363. package/dist/dts/Exit.d.ts +5 -3
  364. package/dist/dts/Exit.d.ts.map +1 -1
  365. package/dist/dts/Fiber.d.ts +17 -16
  366. package/dist/dts/Fiber.d.ts.map +1 -1
  367. package/dist/dts/FiberRef.d.ts +9 -3
  368. package/dist/dts/FiberRef.d.ts.map +1 -1
  369. package/dist/dts/GroupBy.d.ts +7 -6
  370. package/dist/dts/GroupBy.d.ts.map +1 -1
  371. package/dist/dts/HKT.d.ts +5 -4
  372. package/dist/dts/HKT.d.ts.map +1 -1
  373. package/dist/dts/Hash.d.ts +1 -1
  374. package/dist/dts/Hash.d.ts.map +1 -1
  375. package/dist/dts/HashMap.d.ts +6 -4
  376. package/dist/dts/HashMap.d.ts.map +1 -1
  377. package/dist/dts/HashSet.d.ts +9 -9
  378. package/dist/dts/HashSet.d.ts.map +1 -1
  379. package/dist/dts/Inspectable.d.ts +3 -7
  380. package/dist/dts/Inspectable.d.ts.map +1 -1
  381. package/dist/dts/KeyedPool.d.ts +8 -7
  382. package/dist/dts/KeyedPool.d.ts.map +1 -1
  383. package/dist/dts/Layer.d.ts +16 -41
  384. package/dist/dts/Layer.d.ts.map +1 -1
  385. package/dist/dts/List.d.ts +48 -49
  386. package/dist/dts/List.d.ts.map +1 -1
  387. package/dist/dts/Logger.d.ts +7 -6
  388. package/dist/dts/Logger.d.ts.map +1 -1
  389. package/dist/dts/Match.d.ts +31 -19
  390. package/dist/dts/Match.d.ts.map +1 -1
  391. package/dist/dts/MergeDecision.d.ts +8 -7
  392. package/dist/dts/MergeDecision.d.ts.map +1 -1
  393. package/dist/dts/MergeState.d.ts +5 -5
  394. package/dist/dts/MergeState.d.ts.map +1 -1
  395. package/dist/dts/Metric.d.ts +11 -10
  396. package/dist/dts/Metric.d.ts.map +1 -1
  397. package/dist/dts/MetricHook.d.ts +7 -6
  398. package/dist/dts/MetricHook.d.ts.map +1 -1
  399. package/dist/dts/MetricKey.d.ts +4 -3
  400. package/dist/dts/MetricKey.d.ts.map +1 -1
  401. package/dist/dts/MetricKeyType.d.ts +5 -4
  402. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  403. package/dist/dts/MetricPair.d.ts +4 -3
  404. package/dist/dts/MetricPair.d.ts.map +1 -1
  405. package/dist/dts/MetricPolling.d.ts +16 -16
  406. package/dist/dts/MetricPolling.d.ts.map +1 -1
  407. package/dist/dts/MetricRegistry.d.ts +7 -7
  408. package/dist/dts/MetricRegistry.d.ts.map +1 -1
  409. package/dist/dts/MetricState.d.ts +6 -5
  410. package/dist/dts/MetricState.d.ts.map +1 -1
  411. package/dist/dts/MutableHashMap.d.ts +1 -1
  412. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  413. package/dist/dts/MutableHashSet.d.ts +1 -1
  414. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  415. package/dist/dts/MutableList.d.ts +1 -1
  416. package/dist/dts/MutableList.d.ts.map +1 -1
  417. package/dist/dts/MutableQueue.d.ts +1 -1
  418. package/dist/dts/MutableQueue.d.ts.map +1 -1
  419. package/dist/dts/MutableRef.d.ts +1 -1
  420. package/dist/dts/MutableRef.d.ts.map +1 -1
  421. package/dist/dts/NonEmptyIterable.d.ts +2 -2
  422. package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
  423. package/dist/dts/Option.d.ts +39 -24
  424. package/dist/dts/Option.d.ts.map +1 -1
  425. package/dist/dts/Order.d.ts +2 -2
  426. package/dist/dts/Order.d.ts.map +1 -1
  427. package/dist/dts/Pipeable.d.ts +21 -23
  428. package/dist/dts/Pipeable.d.ts.map +1 -1
  429. package/dist/dts/Pool.d.ts +21 -22
  430. package/dist/dts/Pool.d.ts.map +1 -1
  431. package/dist/dts/Predicate.d.ts +17 -2
  432. package/dist/dts/Predicate.d.ts.map +1 -1
  433. package/dist/dts/PrimaryKey.d.ts +21 -0
  434. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  435. package/dist/dts/PubSub.d.ts +3 -3
  436. package/dist/dts/PubSub.d.ts.map +1 -1
  437. package/dist/dts/Queue.d.ts +49 -29
  438. package/dist/dts/Queue.d.ts.map +1 -1
  439. package/dist/dts/Random.d.ts +3 -3
  440. package/dist/dts/Random.d.ts.map +1 -1
  441. package/dist/dts/ReadonlyArray.d.ts +170 -206
  442. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  443. package/dist/dts/ReadonlyRecord.d.ts +51 -16
  444. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  445. package/dist/dts/RedBlackTree.d.ts +6 -2
  446. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  447. package/dist/dts/Ref.d.ts +5 -4
  448. package/dist/dts/Ref.d.ts.map +1 -1
  449. package/dist/dts/Reloadable.d.ts +4 -3
  450. package/dist/dts/Reloadable.d.ts.map +1 -1
  451. package/dist/dts/Request.d.ts +63 -11
  452. package/dist/dts/Request.d.ts.map +1 -1
  453. package/dist/dts/RequestBlock.d.ts +20 -39
  454. package/dist/dts/RequestBlock.d.ts.map +1 -1
  455. package/dist/dts/RequestResolver.d.ts +7 -6
  456. package/dist/dts/RequestResolver.d.ts.map +1 -1
  457. package/dist/dts/Resource.d.ts +5 -4
  458. package/dist/dts/Resource.d.ts.map +1 -1
  459. package/dist/dts/Runtime.d.ts +3 -3
  460. package/dist/dts/Runtime.d.ts.map +1 -1
  461. package/dist/dts/STM.d.ts +13 -12
  462. package/dist/dts/STM.d.ts.map +1 -1
  463. package/dist/dts/Schedule.d.ts +13 -12
  464. package/dist/dts/Schedule.d.ts.map +1 -1
  465. package/dist/dts/Scheduler.d.ts +3 -3
  466. package/dist/dts/Scheduler.d.ts.map +1 -1
  467. package/dist/dts/ScopedCache.d.ts +13 -12
  468. package/dist/dts/ScopedCache.d.ts.map +1 -1
  469. package/dist/dts/ScopedRef.d.ts +4 -3
  470. package/dist/dts/ScopedRef.d.ts.map +1 -1
  471. package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
  472. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  473. package/dist/dts/Sink.d.ts +13 -9
  474. package/dist/dts/Sink.d.ts.map +1 -1
  475. package/dist/dts/SortedMap.d.ts +6 -2
  476. package/dist/dts/SortedMap.d.ts.map +1 -1
  477. package/dist/dts/SortedSet.d.ts +7 -12
  478. package/dist/dts/SortedSet.d.ts.map +1 -1
  479. package/dist/dts/Stream.d.ts +32 -23
  480. package/dist/dts/Stream.d.ts.map +1 -1
  481. package/dist/dts/StreamEmit.d.ts +12 -12
  482. package/dist/dts/StreamEmit.d.ts.map +1 -1
  483. package/dist/dts/Streamable.d.ts.map +1 -1
  484. package/dist/dts/SubscriptionRef.d.ts +4 -3
  485. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  486. package/dist/dts/Supervisor.d.ts +11 -10
  487. package/dist/dts/Supervisor.d.ts.map +1 -1
  488. package/dist/dts/SynchronizedRef.d.ts +5 -4
  489. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  490. package/dist/dts/TArray.d.ts +4 -3
  491. package/dist/dts/TArray.d.ts.map +1 -1
  492. package/dist/dts/TDeferred.d.ts +5 -4
  493. package/dist/dts/TDeferred.d.ts.map +1 -1
  494. package/dist/dts/TMap.d.ts +5 -4
  495. package/dist/dts/TMap.d.ts.map +1 -1
  496. package/dist/dts/TPriorityQueue.d.ts +4 -3
  497. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  498. package/dist/dts/TPubSub.d.ts +5 -1
  499. package/dist/dts/TPubSub.d.ts.map +1 -1
  500. package/dist/dts/TQueue.d.ts +12 -11
  501. package/dist/dts/TQueue.d.ts.map +1 -1
  502. package/dist/dts/TRandom.d.ts +3 -3
  503. package/dist/dts/TRandom.d.ts.map +1 -1
  504. package/dist/dts/TRef.d.ts +5 -4
  505. package/dist/dts/TRef.d.ts.map +1 -1
  506. package/dist/dts/TSet.d.ts +4 -3
  507. package/dist/dts/TSet.d.ts.map +1 -1
  508. package/dist/dts/Take.d.ts +5 -4
  509. package/dist/dts/Take.d.ts.map +1 -1
  510. package/dist/dts/TestAnnotation.d.ts +6 -3
  511. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  512. package/dist/dts/TestAnnotations.d.ts +2 -2
  513. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  514. package/dist/dts/TestClock.d.ts +3 -3
  515. package/dist/dts/TestClock.d.ts.map +1 -1
  516. package/dist/dts/TestContext.d.ts.map +1 -1
  517. package/dist/dts/TestLive.d.ts +1 -1
  518. package/dist/dts/TestLive.d.ts.map +1 -1
  519. package/dist/dts/TestSized.d.ts +1 -1
  520. package/dist/dts/TestSized.d.ts.map +1 -1
  521. package/dist/dts/Tracer.d.ts +5 -5
  522. package/dist/dts/Tracer.d.ts.map +1 -1
  523. package/dist/dts/Types.d.ts +28 -0
  524. package/dist/dts/Types.d.ts.map +1 -1
  525. package/dist/dts/UpstreamPullRequest.d.ts +4 -3
  526. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  527. package/dist/dts/UpstreamPullStrategy.d.ts +5 -4
  528. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  529. package/dist/dts/Utils.d.ts +7 -6
  530. package/dist/dts/Utils.d.ts.map +1 -1
  531. package/dist/dts/index.d.ts +4 -0
  532. package/dist/dts/index.d.ts.map +1 -1
  533. package/dist/dts/internal/config.d.ts +1 -2
  534. package/dist/dts/internal/config.d.ts.map +1 -1
  535. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  536. package/dist/dts/internal/fiberScope.d.ts +1 -1
  537. package/dist/dts/internal/fiberScope.d.ts.map +1 -1
  538. package/dist/dts/internal/logger.d.ts.map +1 -1
  539. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  540. package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
  541. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
  542. package/dist/dts/internal/version.d.ts +1 -1
  543. package/dist/esm/BigDecimal.js +7 -7
  544. package/dist/esm/BigDecimal.js.map +1 -1
  545. package/dist/esm/BigInt.js.map +1 -1
  546. package/dist/esm/Boolean.js.map +1 -1
  547. package/dist/esm/Brand.js.map +1 -1
  548. package/dist/esm/Cache.js.map +1 -1
  549. package/dist/esm/Cause.js +52 -17
  550. package/dist/esm/Cause.js.map +1 -1
  551. package/dist/esm/Channel.js.map +1 -1
  552. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  553. package/dist/esm/Chunk.js +43 -34
  554. package/dist/esm/Chunk.js.map +1 -1
  555. package/dist/esm/Config.js +3 -3
  556. package/dist/esm/Config.js.map +1 -1
  557. package/dist/esm/Context.js.map +1 -1
  558. package/dist/esm/Data.js +10 -19
  559. package/dist/esm/Data.js.map +1 -1
  560. package/dist/esm/Deferred.js.map +1 -1
  561. package/dist/esm/Differ.js.map +1 -1
  562. package/dist/esm/Duration.js +48 -2
  563. package/dist/esm/Duration.js.map +1 -1
  564. package/dist/esm/Effect.js +9 -7
  565. package/dist/esm/Effect.js.map +1 -1
  566. package/dist/esm/Either.js +43 -7
  567. package/dist/esm/Either.js.map +1 -1
  568. package/dist/esm/Equal.js.map +1 -1
  569. package/dist/esm/Equivalence.js +1 -1
  570. package/dist/esm/Equivalence.js.map +1 -1
  571. package/dist/esm/Exit.js.map +1 -1
  572. package/dist/esm/Fiber.js.map +1 -1
  573. package/dist/esm/FiberRef.js +5 -0
  574. package/dist/esm/FiberRef.js.map +1 -1
  575. package/dist/esm/Function.js.map +1 -1
  576. package/dist/esm/GlobalValue.js.map +1 -1
  577. package/dist/esm/GroupBy.js.map +1 -1
  578. package/dist/esm/HKT.js +0 -3
  579. package/dist/esm/HKT.js.map +1 -1
  580. package/dist/esm/Hash.js.map +1 -1
  581. package/dist/esm/HashMap.js.map +1 -1
  582. package/dist/esm/Inspectable.js +2 -4
  583. package/dist/esm/Inspectable.js.map +1 -1
  584. package/dist/esm/KeyedPool.js.map +1 -1
  585. package/dist/esm/Layer.js +8 -28
  586. package/dist/esm/Layer.js.map +1 -1
  587. package/dist/esm/List.js +25 -22
  588. package/dist/esm/List.js.map +1 -1
  589. package/dist/esm/LogLevel.js.map +1 -1
  590. package/dist/esm/Logger.js.map +1 -1
  591. package/dist/esm/Match.js.map +1 -1
  592. package/dist/esm/MergeDecision.js.map +1 -1
  593. package/dist/esm/MergeState.js.map +1 -1
  594. package/dist/esm/Metric.js.map +1 -1
  595. package/dist/esm/MetricHook.js.map +1 -1
  596. package/dist/esm/MetricKey.js.map +1 -1
  597. package/dist/esm/MetricKeyType.js.map +1 -1
  598. package/dist/esm/MetricPair.js.map +1 -1
  599. package/dist/esm/MetricPolling.js +1 -1
  600. package/dist/esm/MetricPolling.js.map +1 -1
  601. package/dist/esm/MetricState.js.map +1 -1
  602. package/dist/esm/MutableHashMap.js +2 -2
  603. package/dist/esm/MutableHashMap.js.map +1 -1
  604. package/dist/esm/MutableHashSet.js +2 -2
  605. package/dist/esm/MutableHashSet.js.map +1 -1
  606. package/dist/esm/MutableList.js +2 -2
  607. package/dist/esm/MutableList.js.map +1 -1
  608. package/dist/esm/MutableQueue.js +2 -2
  609. package/dist/esm/MutableQueue.js.map +1 -1
  610. package/dist/esm/MutableRef.js +2 -2
  611. package/dist/esm/MutableRef.js.map +1 -1
  612. package/dist/esm/NonEmptyIterable.js.map +1 -1
  613. package/dist/esm/Number.js.map +1 -1
  614. package/dist/esm/Option.js +21 -14
  615. package/dist/esm/Option.js.map +1 -1
  616. package/dist/esm/Order.js +1 -1
  617. package/dist/esm/Order.js.map +1 -1
  618. package/dist/esm/Ordering.js.map +1 -1
  619. package/dist/esm/Pipeable.js.map +1 -1
  620. package/dist/esm/Pool.js +15 -17
  621. package/dist/esm/Pool.js.map +1 -1
  622. package/dist/esm/Predicate.js +15 -0
  623. package/dist/esm/Predicate.js.map +1 -1
  624. package/dist/esm/PrimaryKey.js +14 -0
  625. package/dist/esm/PrimaryKey.js.map +1 -0
  626. package/dist/esm/Queue.js +5 -0
  627. package/dist/esm/Queue.js.map +1 -1
  628. package/dist/esm/ReadonlyArray.js +195 -177
  629. package/dist/esm/ReadonlyArray.js.map +1 -1
  630. package/dist/esm/ReadonlyRecord.js +58 -7
  631. package/dist/esm/ReadonlyRecord.js.map +1 -1
  632. package/dist/esm/RedBlackTree.js.map +1 -1
  633. package/dist/esm/Ref.js.map +1 -1
  634. package/dist/esm/Reloadable.js.map +1 -1
  635. package/dist/esm/Request.js +41 -0
  636. package/dist/esm/Request.js.map +1 -1
  637. package/dist/esm/RequestBlock.js +3 -22
  638. package/dist/esm/RequestBlock.js.map +1 -1
  639. package/dist/esm/RequestResolver.js.map +1 -1
  640. package/dist/esm/Resource.js.map +1 -1
  641. package/dist/esm/STM.js +1 -1
  642. package/dist/esm/STM.js.map +1 -1
  643. package/dist/esm/Schedule.js.map +1 -1
  644. package/dist/esm/Scheduler.js.map +1 -1
  645. package/dist/esm/ScopedCache.js.map +1 -1
  646. package/dist/esm/ScopedRef.js.map +1 -1
  647. package/dist/esm/Sink.js.map +1 -1
  648. package/dist/esm/SortedMap.js +6 -3
  649. package/dist/esm/SortedMap.js.map +1 -1
  650. package/dist/esm/SortedSet.js +4 -4
  651. package/dist/esm/SortedSet.js.map +1 -1
  652. package/dist/esm/Stream.js.map +1 -1
  653. package/dist/esm/Streamable.js +3 -0
  654. package/dist/esm/Streamable.js.map +1 -1
  655. package/dist/esm/String.js.map +1 -1
  656. package/dist/esm/Struct.js.map +1 -1
  657. package/dist/esm/SubscriptionRef.js.map +1 -1
  658. package/dist/esm/Supervisor.js.map +1 -1
  659. package/dist/esm/SynchronizedRef.js.map +1 -1
  660. package/dist/esm/TArray.js.map +1 -1
  661. package/dist/esm/TDeferred.js.map +1 -1
  662. package/dist/esm/TMap.js.map +1 -1
  663. package/dist/esm/TPriorityQueue.js.map +1 -1
  664. package/dist/esm/TPubSub.js.map +1 -1
  665. package/dist/esm/TQueue.js.map +1 -1
  666. package/dist/esm/TRef.js.map +1 -1
  667. package/dist/esm/TSet.js.map +1 -1
  668. package/dist/esm/Take.js.map +1 -1
  669. package/dist/esm/TestAnnotation.js +3 -1
  670. package/dist/esm/TestAnnotation.js.map +1 -1
  671. package/dist/esm/TestAnnotationMap.js.map +1 -1
  672. package/dist/esm/TestAnnotations.js.map +1 -1
  673. package/dist/esm/TestClock.js.map +1 -1
  674. package/dist/esm/TestContext.js +2 -2
  675. package/dist/esm/TestContext.js.map +1 -1
  676. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  677. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  678. package/dist/esm/Utils.js.map +1 -1
  679. package/dist/esm/index.js +4 -0
  680. package/dist/esm/index.js.map +1 -1
  681. package/dist/esm/internal/Iterable.js.map +1 -1
  682. package/dist/esm/internal/blockedRequests.js +3 -2
  683. package/dist/esm/internal/blockedRequests.js.map +1 -1
  684. package/dist/esm/internal/cache.js +3 -0
  685. package/dist/esm/internal/cache.js.map +1 -1
  686. package/dist/esm/internal/cause.js +4 -97
  687. package/dist/esm/internal/cause.js.map +1 -1
  688. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  689. package/dist/esm/internal/channel/channelState.js +2 -1
  690. package/dist/esm/internal/channel/channelState.js.map +1 -1
  691. package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -1
  692. package/dist/esm/internal/channel/continuation.js +9 -1
  693. package/dist/esm/internal/channel/continuation.js.map +1 -1
  694. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  695. package/dist/esm/internal/channel/mergeState.js.map +1 -1
  696. package/dist/esm/internal/channel/mergeStrategy.js.map +1 -1
  697. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  698. package/dist/esm/internal/channel/subexecutor.js.map +1 -1
  699. package/dist/esm/internal/channel/upstreamPullRequest.js +1 -1
  700. package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -1
  701. package/dist/esm/internal/channel/upstreamPullStrategy.js +1 -1
  702. package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -1
  703. package/dist/esm/internal/channel.js.map +1 -1
  704. package/dist/esm/internal/clock.js.map +1 -1
  705. package/dist/esm/internal/concurrency.js.map +1 -1
  706. package/dist/esm/internal/config.js +15 -22
  707. package/dist/esm/internal/config.js.map +1 -1
  708. package/dist/esm/internal/configError.js +2 -2
  709. package/dist/esm/internal/configError.js.map +1 -1
  710. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
  711. package/dist/esm/internal/configProvider.js +18 -4
  712. package/dist/esm/internal/configProvider.js.map +1 -1
  713. package/dist/esm/internal/configSecret.js.map +1 -1
  714. package/dist/esm/internal/context.js +6 -6
  715. package/dist/esm/internal/context.js.map +1 -1
  716. package/dist/esm/internal/core-effect.js +19 -15
  717. package/dist/esm/internal/core-effect.js.map +1 -1
  718. package/dist/esm/internal/core-stream.js +7 -1
  719. package/dist/esm/internal/core-stream.js.map +1 -1
  720. package/dist/esm/internal/core.js +196 -84
  721. package/dist/esm/internal/core.js.map +1 -1
  722. package/dist/esm/internal/data.js +3 -21
  723. package/dist/esm/internal/data.js.map +1 -1
  724. package/dist/esm/internal/dataSource.js +1 -1
  725. package/dist/esm/internal/dataSource.js.map +1 -1
  726. package/dist/esm/internal/deferred.js +2 -0
  727. package/dist/esm/internal/deferred.js.map +1 -1
  728. package/dist/esm/internal/differ/chunkPatch.js.map +1 -1
  729. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  730. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -1
  731. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -1
  732. package/dist/esm/internal/differ/orPatch.js.map +1 -1
  733. package/dist/esm/internal/differ.js.map +1 -1
  734. package/dist/esm/internal/effect/circular.js +1 -0
  735. package/dist/esm/internal/effect/circular.js.map +1 -1
  736. package/dist/esm/internal/effectable.js +37 -6
  737. package/dist/esm/internal/effectable.js.map +1 -1
  738. package/dist/esm/internal/either.js +2 -2
  739. package/dist/esm/internal/either.js.map +1 -1
  740. package/dist/esm/internal/encoding/base64.js.map +1 -1
  741. package/dist/esm/internal/encoding/base64Url.js.map +1 -1
  742. package/dist/esm/internal/encoding/common.js.map +1 -1
  743. package/dist/esm/internal/encoding/hex.js.map +1 -1
  744. package/dist/esm/internal/executionStrategy.js.map +1 -1
  745. package/dist/esm/internal/fiber.js +2 -0
  746. package/dist/esm/internal/fiber.js.map +1 -1
  747. package/dist/esm/internal/fiberId.js +4 -4
  748. package/dist/esm/internal/fiberId.js.map +1 -1
  749. package/dist/esm/internal/fiberMessage.js.map +1 -1
  750. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  751. package/dist/esm/internal/fiberRefs.js.map +1 -1
  752. package/dist/esm/internal/fiberRuntime.js +178 -215
  753. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  754. package/dist/esm/internal/groupBy.js +4 -1
  755. package/dist/esm/internal/groupBy.js.map +1 -1
  756. package/dist/esm/internal/hashMap/array.js.map +1 -1
  757. package/dist/esm/internal/hashMap/node.js.map +1 -1
  758. package/dist/esm/internal/hashMap.js +3 -3
  759. package/dist/esm/internal/hashMap.js.map +1 -1
  760. package/dist/esm/internal/hashSet.js +4 -4
  761. package/dist/esm/internal/hashSet.js.map +1 -1
  762. package/dist/esm/internal/keyedPool.js +3 -0
  763. package/dist/esm/internal/keyedPool.js.map +1 -1
  764. package/dist/esm/internal/layer.js +22 -52
  765. package/dist/esm/internal/layer.js.map +1 -1
  766. package/dist/esm/internal/logger.js +2 -1
  767. package/dist/esm/internal/logger.js.map +1 -1
  768. package/dist/esm/internal/matcher.js.map +1 -1
  769. package/dist/esm/internal/metric/hook.js +2 -1
  770. package/dist/esm/internal/metric/hook.js.map +1 -1
  771. package/dist/esm/internal/metric/key.js +1 -1
  772. package/dist/esm/internal/metric/key.js.map +1 -1
  773. package/dist/esm/internal/metric/keyType.js +2 -1
  774. package/dist/esm/internal/metric/keyType.js.map +1 -1
  775. package/dist/esm/internal/metric/pair.js +1 -1
  776. package/dist/esm/internal/metric/pair.js.map +1 -1
  777. package/dist/esm/internal/metric/polling.js +6 -6
  778. package/dist/esm/internal/metric/polling.js.map +1 -1
  779. package/dist/esm/internal/metric/registry.js.map +1 -1
  780. package/dist/esm/internal/metric/state.js +1 -1
  781. package/dist/esm/internal/metric/state.js.map +1 -1
  782. package/dist/esm/internal/metric.js +11 -5
  783. package/dist/esm/internal/metric.js.map +1 -1
  784. package/dist/esm/internal/opCodes/layer.js +3 -3
  785. package/dist/esm/internal/opCodes/layer.js.map +1 -1
  786. package/dist/esm/internal/option.js +2 -2
  787. package/dist/esm/internal/option.js.map +1 -1
  788. package/dist/esm/internal/pool.js +2 -0
  789. package/dist/esm/internal/pool.js.map +1 -1
  790. package/dist/esm/internal/pubsub.js +25 -24
  791. package/dist/esm/internal/pubsub.js.map +1 -1
  792. package/dist/esm/internal/query.js +1 -1
  793. package/dist/esm/internal/query.js.map +1 -1
  794. package/dist/esm/internal/queue.js +13 -2
  795. package/dist/esm/internal/queue.js.map +1 -1
  796. package/dist/esm/internal/random.js.map +1 -1
  797. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
  798. package/dist/esm/internal/redBlackTree.js +9 -3
  799. package/dist/esm/internal/redBlackTree.js.map +1 -1
  800. package/dist/esm/internal/ref.js +1 -0
  801. package/dist/esm/internal/ref.js.map +1 -1
  802. package/dist/esm/internal/reloadable.js +1 -1
  803. package/dist/esm/internal/reloadable.js.map +1 -1
  804. package/dist/esm/internal/request.js +31 -15
  805. package/dist/esm/internal/request.js.map +1 -1
  806. package/dist/esm/internal/resource.js +4 -3
  807. package/dist/esm/internal/resource.js.map +1 -1
  808. package/dist/esm/internal/ringBuffer.js.map +1 -1
  809. package/dist/esm/internal/runtime.js +3 -4
  810. package/dist/esm/internal/runtime.js.map +1 -1
  811. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  812. package/dist/esm/internal/schedule/interval.js.map +1 -1
  813. package/dist/esm/internal/schedule/intervals.js.map +1 -1
  814. package/dist/esm/internal/schedule.js +12 -8
  815. package/dist/esm/internal/schedule.js.map +1 -1
  816. package/dist/esm/internal/scopedCache.js +5 -2
  817. package/dist/esm/internal/scopedCache.js.map +1 -1
  818. package/dist/esm/internal/scopedRef.js +1 -0
  819. package/dist/esm/internal/scopedRef.js.map +1 -1
  820. package/dist/esm/internal/sink.js +6 -2
  821. package/dist/esm/internal/sink.js.map +1 -1
  822. package/dist/esm/internal/stm/core.js +5 -3
  823. package/dist/esm/internal/stm/core.js.map +1 -1
  824. package/dist/esm/internal/stm/stm/journal.js.map +1 -1
  825. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  826. package/dist/esm/internal/stm/stm/tExit.js +2 -1
  827. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  828. package/dist/esm/internal/stm/stm.js.map +1 -1
  829. package/dist/esm/internal/stm/tArray.js +1 -1
  830. package/dist/esm/internal/stm/tArray.js.map +1 -1
  831. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  832. package/dist/esm/internal/stm/tMap.js +2 -1
  833. package/dist/esm/internal/stm/tMap.js.map +1 -1
  834. package/dist/esm/internal/stm/tPriorityQueue.js +1 -1
  835. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  836. package/dist/esm/internal/stm/tPubSub.js +17 -14
  837. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  838. package/dist/esm/internal/stm/tQueue.js +8 -7
  839. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  840. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  841. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  842. package/dist/esm/internal/stm/tRef.js +1 -1
  843. package/dist/esm/internal/stm/tRef.js.map +1 -1
  844. package/dist/esm/internal/stm/tSemaphore.js +2 -2
  845. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  846. package/dist/esm/internal/stm/tSet.js +1 -1
  847. package/dist/esm/internal/stm/tSet.js.map +1 -1
  848. package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
  849. package/dist/esm/internal/stream/handoff.js +1 -1
  850. package/dist/esm/internal/stream/handoff.js.map +1 -1
  851. package/dist/esm/internal/stream.js +5 -5
  852. package/dist/esm/internal/stream.js.map +1 -1
  853. package/dist/esm/internal/string-utils.js.map +1 -1
  854. package/dist/esm/internal/subscriptionRef.js +1 -1
  855. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  856. package/dist/esm/internal/supervisor/patch.js.map +1 -1
  857. package/dist/esm/internal/supervisor.js +1 -0
  858. package/dist/esm/internal/supervisor.js.map +1 -1
  859. package/dist/esm/internal/synchronizedRef.js.map +1 -1
  860. package/dist/esm/internal/take.js +3 -2
  861. package/dist/esm/internal/take.js.map +1 -1
  862. package/dist/esm/internal/version.js +1 -1
  863. package/dist/esm/package.json +1 -1
  864. package/package.json +10 -2
  865. package/src/BigDecimal.ts +7 -7
  866. package/src/Brand.ts +4 -4
  867. package/src/Cache.ts +18 -19
  868. package/src/Cause.ts +126 -41
  869. package/src/Channel.ts +12 -11
  870. package/src/ChildExecutorDecision.ts +10 -2
  871. package/src/Chunk.ts +110 -93
  872. package/src/Clock.ts +4 -4
  873. package/src/Config.ts +20 -20
  874. package/src/ConfigError.ts +8 -8
  875. package/src/ConfigProvider.ts +5 -5
  876. package/src/ConfigProviderPathPatch.ts +1 -1
  877. package/src/Console.ts +36 -36
  878. package/src/Context.ts +8 -7
  879. package/src/Data.ts +17 -48
  880. package/src/Deferred.ts +5 -4
  881. package/src/Differ.ts +24 -23
  882. package/src/Duration.ts +59 -2
  883. package/src/Effect.ts +104 -53
  884. package/src/Either.ts +93 -15
  885. package/src/Equal.ts +1 -1
  886. package/src/Equivalence.ts +2 -2
  887. package/src/Exit.ts +21 -7
  888. package/src/Fiber.ts +25 -18
  889. package/src/FiberRef.ts +14 -7
  890. package/src/GroupBy.ts +7 -6
  891. package/src/HKT.ts +5 -4
  892. package/src/Hash.ts +1 -1
  893. package/src/HashMap.ts +6 -4
  894. package/src/HashSet.ts +11 -11
  895. package/src/Inspectable.ts +5 -7
  896. package/src/KeyedPool.ts +16 -9
  897. package/src/Layer.ts +21 -58
  898. package/src/List.ts +68 -65
  899. package/src/Logger.ts +7 -6
  900. package/src/Match.ts +61 -49
  901. package/src/MergeDecision.ts +8 -7
  902. package/src/MergeState.ts +11 -5
  903. package/src/Metric.ts +13 -10
  904. package/src/MetricHook.ts +7 -6
  905. package/src/MetricKey.ts +4 -3
  906. package/src/MetricKeyType.ts +5 -4
  907. package/src/MetricPair.ts +4 -3
  908. package/src/MetricPolling.ts +22 -22
  909. package/src/MetricRegistry.ts +9 -9
  910. package/src/MetricState.ts +8 -5
  911. package/src/MutableHashMap.ts +3 -3
  912. package/src/MutableHashSet.ts +3 -3
  913. package/src/MutableList.ts +3 -3
  914. package/src/MutableQueue.ts +3 -3
  915. package/src/MutableRef.ts +3 -3
  916. package/src/NonEmptyIterable.ts +2 -2
  917. package/src/Option.ts +50 -29
  918. package/src/Order.ts +2 -2
  919. package/src/Pipeable.ts +275 -277
  920. package/src/Pool.ts +21 -22
  921. package/src/Predicate.ts +21 -2
  922. package/src/PrimaryKey.ts +23 -0
  923. package/src/PubSub.ts +3 -3
  924. package/src/Queue.ts +55 -32
  925. package/src/Random.ts +3 -3
  926. package/src/ReadonlyArray.ts +351 -390
  927. package/src/ReadonlyRecord.ts +97 -40
  928. package/src/RedBlackTree.ts +6 -2
  929. package/src/Ref.ts +5 -4
  930. package/src/Reloadable.ts +4 -3
  931. package/src/Request.ts +68 -11
  932. package/src/RequestBlock.ts +27 -66
  933. package/src/RequestResolver.ts +7 -6
  934. package/src/Resource.ts +5 -4
  935. package/src/Runtime.ts +3 -3
  936. package/src/STM.ts +27 -15
  937. package/src/Schedule.ts +14 -13
  938. package/src/Scheduler.ts +3 -3
  939. package/src/Scope.ts +3 -3
  940. package/src/ScopedCache.ts +13 -12
  941. package/src/ScopedRef.ts +4 -3
  942. package/src/SingleProducerAsyncInput.ts +7 -7
  943. package/src/Sink.ts +29 -14
  944. package/src/SortedMap.ts +12 -5
  945. package/src/SortedSet.ts +29 -43
  946. package/src/Stream.ts +75 -33
  947. package/src/StreamEmit.ts +12 -12
  948. package/src/Streamable.ts +3 -0
  949. package/src/SubscriptionRef.ts +6 -3
  950. package/src/Supervisor.ts +12 -11
  951. package/src/SynchronizedRef.ts +5 -4
  952. package/src/TArray.ts +5 -4
  953. package/src/TDeferred.ts +6 -5
  954. package/src/TMap.ts +6 -5
  955. package/src/TPriorityQueue.ts +5 -4
  956. package/src/TPubSub.ts +7 -3
  957. package/src/TQueue.ts +12 -11
  958. package/src/TRandom.ts +3 -3
  959. package/src/TRef.ts +6 -5
  960. package/src/TSet.ts +5 -4
  961. package/src/Take.ts +5 -4
  962. package/src/TestAnnotation.ts +9 -5
  963. package/src/TestAnnotations.ts +2 -2
  964. package/src/TestClock.ts +3 -5
  965. package/src/TestContext.ts +5 -4
  966. package/src/TestLive.ts +1 -1
  967. package/src/TestSized.ts +1 -1
  968. package/src/Tracer.ts +6 -6
  969. package/src/Types.ts +32 -0
  970. package/src/UpstreamPullRequest.ts +12 -5
  971. package/src/UpstreamPullStrategy.ts +5 -4
  972. package/src/Utils.ts +7 -6
  973. package/src/index.ts +5 -0
  974. package/src/internal/blockedRequests.ts +78 -81
  975. package/src/internal/cache.ts +15 -12
  976. package/src/internal/cause.ts +15 -139
  977. package/src/internal/channel/channelExecutor.ts +1 -1
  978. package/src/internal/channel/channelState.ts +10 -8
  979. package/src/internal/channel/continuation.ts +71 -42
  980. package/src/internal/channel/mergeDecision.ts +1 -1
  981. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  982. package/src/internal/channel/subexecutor.ts +7 -7
  983. package/src/internal/channel/upstreamPullRequest.ts +1 -1
  984. package/src/internal/channel/upstreamPullStrategy.ts +1 -1
  985. package/src/internal/config.ts +21 -29
  986. package/src/internal/configError.ts +2 -2
  987. package/src/internal/configProvider.ts +20 -5
  988. package/src/internal/context.ts +6 -6
  989. package/src/internal/core-effect.ts +75 -67
  990. package/src/internal/core-stream.ts +25 -22
  991. package/src/internal/core.ts +360 -152
  992. package/src/internal/data.ts +3 -22
  993. package/src/internal/dataSource.ts +1 -1
  994. package/src/internal/deferred.ts +7 -5
  995. package/src/internal/differ/contextPatch.ts +5 -5
  996. package/src/internal/differ/orPatch.ts +18 -6
  997. package/src/internal/effect/circular.ts +4 -3
  998. package/src/internal/effectable.ts +41 -8
  999. package/src/internal/either.ts +2 -2
  1000. package/src/internal/fiber.ts +2 -0
  1001. package/src/internal/fiberId.ts +4 -4
  1002. package/src/internal/fiberMessage.ts +1 -4
  1003. package/src/internal/fiberRuntime.ts +242 -284
  1004. package/src/internal/fiberScope.ts +1 -1
  1005. package/src/internal/groupBy.ts +5 -2
  1006. package/src/internal/hashMap/node.ts +5 -5
  1007. package/src/internal/hashMap.ts +25 -24
  1008. package/src/internal/hashSet.ts +20 -22
  1009. package/src/internal/keyedPool.ts +7 -4
  1010. package/src/internal/layer.ts +35 -89
  1011. package/src/internal/logger.ts +2 -1
  1012. package/src/internal/metric/hook.ts +2 -1
  1013. package/src/internal/metric/key.ts +2 -2
  1014. package/src/internal/metric/keyType.ts +2 -1
  1015. package/src/internal/metric/pair.ts +1 -1
  1016. package/src/internal/metric/polling.ts +26 -26
  1017. package/src/internal/metric/state.ts +1 -1
  1018. package/src/internal/metric.ts +12 -5
  1019. package/src/internal/opCodes/layer.ts +6 -6
  1020. package/src/internal/option.ts +2 -2
  1021. package/src/internal/pool.ts +4 -2
  1022. package/src/internal/pubsub.ts +66 -62
  1023. package/src/internal/query.ts +1 -1
  1024. package/src/internal/queue.ts +36 -14
  1025. package/src/internal/redBlackTree/iterator.ts +1 -1
  1026. package/src/internal/redBlackTree/node.ts +1 -1
  1027. package/src/internal/redBlackTree.ts +11 -4
  1028. package/src/internal/ref.ts +2 -1
  1029. package/src/internal/reloadable.ts +2 -2
  1030. package/src/internal/request.ts +53 -14
  1031. package/src/internal/resource.ts +6 -5
  1032. package/src/internal/ringBuffer.ts +1 -1
  1033. package/src/internal/runtime.ts +4 -5
  1034. package/src/internal/schedule.ts +12 -8
  1035. package/src/internal/scopedCache.ts +14 -7
  1036. package/src/internal/scopedRef.ts +2 -1
  1037. package/src/internal/sink.ts +11 -4
  1038. package/src/internal/stack.ts +1 -1
  1039. package/src/internal/stm/core.ts +6 -4
  1040. package/src/internal/stm/stm/stmState.ts +1 -1
  1041. package/src/internal/stm/stm/tExit.ts +8 -6
  1042. package/src/internal/stm/stm/tryCommit.ts +1 -1
  1043. package/src/internal/stm/stm/versioned.ts +1 -1
  1044. package/src/internal/stm/stm.ts +2 -2
  1045. package/src/internal/stm/tArray.ts +3 -3
  1046. package/src/internal/stm/tDeferred.ts +3 -3
  1047. package/src/internal/stm/tMap.ts +5 -4
  1048. package/src/internal/stm/tPriorityQueue.ts +3 -3
  1049. package/src/internal/stm/tPubSub.ts +43 -38
  1050. package/src/internal/stm/tQueue.ts +9 -8
  1051. package/src/internal/stm/tReentrantLock.ts +2 -2
  1052. package/src/internal/stm/tRef.ts +2 -2
  1053. package/src/internal/stm/tSemaphore.ts +2 -2
  1054. package/src/internal/stm/tSet.ts +3 -3
  1055. package/src/internal/stream/debounceState.ts +2 -2
  1056. package/src/internal/stream/handoff.ts +4 -4
  1057. package/src/internal/stream/handoffSignal.ts +2 -2
  1058. package/src/internal/stream/pull.ts +1 -1
  1059. package/src/internal/stream.ts +68 -35
  1060. package/src/internal/subscriptionRef.ts +3 -3
  1061. package/src/internal/supervisor.ts +4 -3
  1062. package/src/internal/take.ts +4 -3
  1063. package/src/internal/version.ts +1 -1
@@ -18,7 +18,7 @@ import { globalValue } from "../GlobalValue.js"
18
18
  import * as Hash from "../Hash.js"
19
19
  import * as HashMap from "../HashMap.js"
20
20
  import * as HashSet from "../HashSet.js"
21
- import { NodeInspectSymbol, toJSON, toString } from "../Inspectable.js"
21
+ import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
22
22
  import * as List from "../List.js"
23
23
  import type * as LogLevel from "../LogLevel.js"
24
24
  import type * as LogSpan from "../LogSpan.js"
@@ -26,7 +26,7 @@ import type * as MetricLabel from "../MetricLabel.js"
26
26
  import * as MutableRef from "../MutableRef.js"
27
27
  import * as Option from "../Option.js"
28
28
  import { pipeArguments } from "../Pipeable.js"
29
- import { hasProperty, isObject, type Predicate, type Refinement } from "../Predicate.js"
29
+ import { hasProperty, isObject, isPromise, isString, type Predicate, type Refinement } from "../Predicate.js"
30
30
  import * as ReadonlyArray from "../ReadonlyArray.js"
31
31
  import type * as Request from "../Request.js"
32
32
  import type * as BlockedRequests from "../RequestBlock.js"
@@ -35,11 +35,12 @@ import type * as RuntimeFlags from "../RuntimeFlags.js"
35
35
  import * as RuntimeFlagsPatch from "../RuntimeFlagsPatch.js"
36
36
  import type * as Scope from "../Scope.js"
37
37
  import type * as Tracer from "../Tracer.js"
38
+ import type { NoInfer } from "../Types.js"
38
39
  import * as _blockedRequests from "./blockedRequests.js"
39
40
  import * as internalCause from "./cause.js"
40
41
  import * as deferred from "./deferred.js"
41
42
  import * as internalDiffer from "./differ.js"
42
- import { effectVariance } from "./effectable.js"
43
+ import { effectVariance, StructuralCommitPrototype } from "./effectable.js"
43
44
  import type * as FiberRuntime from "./fiberRuntime.js"
44
45
  import type * as fiberScope from "./fiberScope.js"
45
46
  import * as DeferredOpCodes from "./opCodes/deferred.js"
@@ -61,7 +62,7 @@ export const EffectErrorTypeId = Symbol.for(EffectErrorSymbolKey)
61
62
  export type EffectErrorTypeId = typeof EffectErrorTypeId
62
63
 
63
64
  /** @internal */
64
- export interface EffectError<E> {
65
+ export interface EffectError<out E> {
65
66
  readonly [EffectErrorTypeId]: EffectErrorTypeId
66
67
  readonly _tag: "EffectError"
67
68
  readonly cause: Cause.Cause<E>
@@ -80,10 +81,10 @@ export const makeEffectError = <E>(cause: Cause.Cause<E>): EffectError<E> => ({
80
81
  /**
81
82
  * @internal
82
83
  */
83
- export const blocked = <R, E, A>(
84
- blockedRequests: BlockedRequests.RequestBlock<R>,
85
- _continue: Effect.Effect<R, E, A>
86
- ): Effect.Blocked<R, E, A> => {
84
+ export const blocked = <E, A>(
85
+ blockedRequests: BlockedRequests.RequestBlock,
86
+ _continue: Effect.Effect<never, E, A>
87
+ ): Effect.Blocked<E, A> => {
87
88
  const effect = new EffectPrimitive("Blocked") as any
88
89
  effect.i0 = blockedRequests
89
90
  effect.i1 = _continue
@@ -93,9 +94,9 @@ export const blocked = <R, E, A>(
93
94
  /**
94
95
  * @internal
95
96
  */
96
- export const runRequestBlock = <R>(
97
- blockedRequests: BlockedRequests.RequestBlock<R>
98
- ): Effect.Blocked<R, never, void> => {
97
+ export const runRequestBlock = (
98
+ blockedRequests: BlockedRequests.RequestBlock
99
+ ): Effect.Effect<never, never, void> => {
99
100
  const effect = new EffectPrimitive("RunBlocked") as any
100
101
  effect.i0 = blockedRequests
101
102
  return effect
@@ -171,7 +172,7 @@ class EffectPrimitive {
171
172
  }
172
173
  }
173
174
  toString() {
174
- return toString(this.toJSON())
175
+ return format(this.toJSON())
175
176
  }
176
177
  [NodeInspectSymbol]() {
177
178
  return this.toJSON()
@@ -209,7 +210,7 @@ class EffectPrimitiveFailure {
209
210
  }
210
211
  }
211
212
  toString() {
212
- return toString(this.toJSON())
213
+ return format(this.toJSON())
213
214
  }
214
215
  [NodeInspectSymbol]() {
215
216
  return this.toJSON()
@@ -247,7 +248,7 @@ class EffectPrimitiveSuccess {
247
248
  }
248
249
  }
249
250
  toString() {
250
- return toString(this.toJSON())
251
+ return format(this.toJSON())
251
252
  }
252
253
  [NodeInspectSymbol]() {
253
254
  return this.toJSON()
@@ -262,23 +263,23 @@ export type Op<Tag extends string, Body = {}> = Effect.Effect<never, never, neve
262
263
  /** @internal */
263
264
  export interface Async extends
264
265
  Op<OpCodes.OP_ASYNC, {
265
- readonly i0: (resume: (effect: Primitive) => void) => void
266
+ i0(resume: (effect: Primitive) => void): void
266
267
  readonly i1: FiberId.FiberId
267
268
  }>
268
269
  {}
269
270
 
270
271
  /** @internal */
271
- export interface Blocked<R = any, E = any, A = any> extends
272
+ export interface Blocked<out E = any, out A = any> extends
272
273
  Op<"Blocked", {
273
- readonly i0: BlockedRequests.RequestBlock<R>
274
- readonly i1: Effect.Effect<R, E, A>
274
+ readonly i0: BlockedRequests.RequestBlock
275
+ readonly i1: Effect.Effect<never, E, A>
275
276
  }>
276
277
  {}
277
278
 
278
279
  /** @internal */
279
- export interface RunBlocked<R = any> extends
280
+ export interface RunBlocked extends
280
281
  Op<"RunBlocked", {
281
- readonly i0: BlockedRequests.RequestBlock<R>
282
+ readonly i0: BlockedRequests.RequestBlock
282
283
  }>
283
284
  {}
284
285
 
@@ -295,7 +296,7 @@ export interface OpTag extends Op<OpCodes.OP_TAG, {}> {}
295
296
  /** @internal */
296
297
  export interface Commit extends
297
298
  Op<OpCodes.OP_COMMIT, {
298
- readonly commit: () => Effect.Effect<unknown, unknown, unknown>
299
+ commit(): Effect.Effect<unknown, unknown, unknown>
299
300
  }>
300
301
  {}
301
302
 
@@ -303,7 +304,7 @@ export interface Commit extends
303
304
  export interface OnFailure extends
304
305
  Op<OpCodes.OP_ON_FAILURE, {
305
306
  readonly i0: Primitive
306
- readonly i1: (a: Cause.Cause<unknown>) => Primitive
307
+ i1(a: Cause.Cause<unknown>): Primitive
307
308
  }>
308
309
  {}
309
310
 
@@ -311,24 +312,19 @@ export interface OnFailure extends
311
312
  export interface OnSuccess extends
312
313
  Op<OpCodes.OP_ON_SUCCESS, {
313
314
  readonly i0: Primitive
314
- readonly i1: (a: unknown) => Primitive
315
+ i1(a: unknown): Primitive
315
316
  }>
316
317
  {}
317
318
 
318
319
  /** @internal */
319
- export interface OnStep extends
320
- Op<"OnStep", {
321
- readonly i0: Primitive
322
- readonly i1: (result: Exit.Exit<any, any> | Blocked) => Primitive
323
- }>
324
- {}
320
+ export interface OnStep extends Op<"OnStep", { readonly i0: Primitive }> {}
325
321
 
326
322
  /** @internal */
327
323
  export interface OnSuccessAndFailure extends
328
324
  Op<OpCodes.OP_ON_SUCCESS_AND_FAILURE, {
329
325
  readonly i0: Primitive
330
- readonly i1: (a: Cause.Cause<unknown>) => Primitive
331
- readonly i2: (a: unknown) => Primitive
326
+ i1(a: Cause.Cause<unknown>): Primitive
327
+ i2(a: unknown): Primitive
332
328
  }>
333
329
  {}
334
330
 
@@ -342,7 +338,7 @@ export interface Success extends
342
338
  /** @internal */
343
339
  export interface Sync extends
344
340
  Op<OpCodes.OP_SYNC, {
345
- readonly i0: LazyArg<unknown>
341
+ i0(): unknown
346
342
  }>
347
343
  {}
348
344
 
@@ -357,16 +353,16 @@ export interface UpdateRuntimeFlags extends
357
353
  /** @internal */
358
354
  export interface While extends
359
355
  Op<OpCodes.OP_WHILE, {
360
- readonly i0: () => boolean
361
- readonly i1: () => Primitive
362
- readonly i2: (a: unknown) => void
356
+ i0(): boolean
357
+ i1(): Primitive
358
+ i2(a: unknown): void
363
359
  }>
364
360
  {}
365
361
 
366
362
  /** @internal */
367
363
  export interface WithRuntime extends
368
364
  Op<OpCodes.OP_WITH_RUNTIME, {
369
- readonly i0: (fiber: FiberRuntime.FiberRuntime<unknown, unknown>, status: FiberStatus.Running) => Primitive
365
+ i0(fiber: FiberRuntime.FiberRuntime<unknown, unknown>, status: FiberStatus.Running): Primitive
370
366
  }>
371
367
  {}
372
368
 
@@ -405,28 +401,20 @@ export const acquireUseRelease = dual<
405
401
  flatMap(
406
402
  acquire,
407
403
  (a) =>
408
- flatMap(exit(suspend(() => restore(step(use(a))))), (exit): Effect.Effect<R | R2 | R3, E | E2, A2> => {
409
- if (exit._tag === "Success" && exit.value._op === "Blocked") {
410
- const value = exit.value
411
- return blocked(
412
- value.i0,
413
- acquireUseRelease(succeed(a), () => value.i1, release)
414
- )
415
- }
416
- const flat = exitFlatten(exit as Exit.Exit<E2, Exit.Exit<E2, A2>>)
417
- return suspend(() => release(a, flat)).pipe(
404
+ flatMap(exit(suspend(() => restore(use(a)))), (exit): Effect.Effect<R | R2 | R3, E | E2, A2> => {
405
+ return suspend(() => release(a, exit)).pipe(
418
406
  matchCauseEffect({
419
407
  onFailure: (cause) => {
420
- switch (flat._tag) {
408
+ switch (exit._tag) {
421
409
  case OpCodes.OP_FAILURE: {
422
- return failCause(internalCause.parallel(flat.i0, cause))
410
+ return failCause(internalCause.parallel(exit.i0, cause))
423
411
  }
424
412
  case OpCodes.OP_SUCCESS: {
425
413
  return failCause(cause)
426
414
  }
427
415
  }
428
416
  },
429
- onSuccess: () => flat
417
+ onSuccess: () => exit
430
418
  })
431
419
  )
432
420
  })
@@ -451,28 +439,41 @@ export const async = <R, E, A>(
451
439
  blockingOn: FiberId.FiberId = FiberId.none
452
440
  ): Effect.Effect<R, E, A> =>
453
441
  suspend(() => {
442
+ let backingResume: ((_: Effect.Effect<R, E, A>) => void) | undefined = undefined
443
+ let pendingEffect: Effect.Effect<R, E, A> | undefined = undefined
444
+ function proxyResume(effect: Effect.Effect<R, E, A>) {
445
+ if (backingResume) {
446
+ backingResume(effect)
447
+ } else if (pendingEffect === undefined) {
448
+ pendingEffect = effect
449
+ }
450
+ }
451
+ const effect = new EffectPrimitive(OpCodes.OP_ASYNC) as any
452
+ effect.i0 = (resume: (_: Effect.Effect<R, E, A>) => void) => {
453
+ backingResume = resume
454
+ if (pendingEffect) {
455
+ resume(pendingEffect)
456
+ }
457
+ }
458
+ effect.i1 = blockingOn
459
+
454
460
  let cancelerRef: Effect.Effect<R, never, void> | void = undefined
455
461
  let controllerRef: AbortController | void = undefined
456
- const effect = new EffectPrimitive(OpCodes.OP_ASYNC) as any
457
462
  if (register.length !== 1) {
458
- const controller = new AbortController()
459
- controllerRef = controller
460
- effect.i0 = (resume: (_: Effect.Effect<R, E, A>) => void) => {
461
- cancelerRef = register(resume, controller.signal)
462
- }
463
+ controllerRef = new AbortController()
464
+ cancelerRef = register(proxyResume, controllerRef.signal)
463
465
  } else {
464
- effect.i0 = (resume: (_: Effect.Effect<R, E, A>) => void) => {
465
- // @ts-expect-error
466
- cancelerRef = register(resume)
467
- }
466
+ cancelerRef = (register as any)(proxyResume)
468
467
  }
469
- effect.i1 = blockingOn
470
- return onInterrupt(effect, () => {
471
- if (controllerRef) {
472
- controllerRef.abort()
473
- }
474
- return cancelerRef ?? unit
475
- })
468
+
469
+ return (cancelerRef || controllerRef) ?
470
+ onInterrupt(effect, (_) => {
471
+ if (controllerRef) {
472
+ controllerRef.abort()
473
+ }
474
+ return cancelerRef ?? unit
475
+ }) :
476
+ effect
476
477
  })
477
478
 
478
479
  /* @internal */
@@ -641,7 +642,7 @@ export const die = (defect: unknown): Effect.Effect<never, never, never> =>
641
642
 
642
643
  /* @internal */
643
644
  export const dieMessage = (message: string): Effect.Effect<never, never, never> =>
644
- failCauseSync(() => internalCause.die(internalCause.RuntimeException(message)))
645
+ failCauseSync(() => internalCause.die(new RuntimeException(message)))
645
646
 
646
647
  /* @internal */
647
648
  export const dieSync = (evaluate: LazyArg<unknown>): Effect.Effect<never, never, never> => flatMap(sync(evaluate), die)
@@ -708,23 +709,56 @@ export const flatMap = dual<
708
709
  })
709
710
 
710
711
  /* @internal */
711
- export const step = <R, E, A>(
712
- self: Effect.Effect<R, E, A>
713
- ): Effect.Effect<R, E, Exit.Exit<E, A> | Effect.Blocked<R, E, A>> => {
714
- const effect = new EffectPrimitive("OnStep") as any
715
- effect.i0 = self
716
- effect.i1 = exitSucceed
717
- return effect
718
- }
712
+ export const andThen = dual<
713
+ {
714
+ <A, X>(
715
+ f: (a: NoInfer<A>) => X
716
+ ): <R, E>(
717
+ self: Effect.Effect<R, E, A>
718
+ ) => [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
719
+ : [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
720
+ : Effect.Effect<R, E, X>
721
+ <X>(
722
+ f: X
723
+ ): <R, E, A>(
724
+ self: Effect.Effect<R, E, A>
725
+ ) => [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
726
+ : [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
727
+ : Effect.Effect<R, E, X>
728
+ },
729
+ {
730
+ <A, R, E, X>(
731
+ self: Effect.Effect<R, E, A>,
732
+ f: (a: NoInfer<A>) => X
733
+ ): [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
734
+ : [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
735
+ : Effect.Effect<R, E, X>
736
+ <A, R, E, X>(
737
+ self: Effect.Effect<R, E, A>,
738
+ f: X
739
+ ): [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
740
+ : [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
741
+ : Effect.Effect<R, E, X>
742
+ }
743
+ >(2, (self, f) =>
744
+ flatMap(self, (a) => {
745
+ const b = typeof f === "function" ? (f as any)(a) : f
746
+ if (isEffect(b)) {
747
+ return b
748
+ } else if (isPromise(b)) {
749
+ return async<never, Cause.UnknownException, any>((resume) => {
750
+ b.then((a) => resume(succeed(a))).catch((e) => resume(fail(new UnknownException(e))))
751
+ })
752
+ }
753
+ return succeed(b)
754
+ }))
719
755
 
720
756
  /* @internal */
721
- export const flatMapStep = <R, E, A, R1, E1, B>(
722
- self: Effect.Effect<R, E, A>,
723
- f: (step: Exit.Exit<E, A> | Effect.Blocked<R, E, A>) => Effect.Effect<R1, E1, B>
724
- ): Effect.Effect<R | R1, E1, B> => {
757
+ export const step = <R, E, A>(
758
+ self: Effect.Effect<R, E, A>
759
+ ): Effect.Effect<R, never, Exit.Exit<E, A> | Effect.Blocked<E, A>> => {
725
760
  const effect = new EffectPrimitive("OnStep") as any
726
761
  effect.i0 = self
727
- effect.i1 = f
728
762
  return effect
729
763
  }
730
764
 
@@ -893,14 +927,7 @@ export const interruptWith = (fiberId: FiberId.FiberId): Effect.Effect<never, ne
893
927
  export const interruptible = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> => {
894
928
  const effect = new EffectPrimitive(OpCodes.OP_UPDATE_RUNTIME_FLAGS) as any
895
929
  effect.i0 = RuntimeFlagsPatch.enable(_runtimeFlags.Interruption)
896
- const _continue = (orBlock: any) => {
897
- if (orBlock._tag === "Blocked") {
898
- return blocked(orBlock.i0, interruptible(orBlock.i1))
899
- } else {
900
- return orBlock
901
- }
902
- }
903
- effect.i1 = () => flatMapStep(self, _continue)
930
+ effect.i1 = () => self
904
931
  return effect
905
932
  }
906
933
 
@@ -910,17 +937,11 @@ export const interruptibleMask = <R, E, A>(
910
937
  ): Effect.Effect<R, E, A> => {
911
938
  const effect = new EffectPrimitive(OpCodes.OP_UPDATE_RUNTIME_FLAGS) as any
912
939
  effect.i0 = RuntimeFlagsPatch.enable(_runtimeFlags.Interruption)
913
- const _continue = (step: Exit.Exit<E, A> | Effect.Blocked<R, E, A>): Exit.Exit<E, A> | Effect.Blocked<R, E, A> => {
914
- if (step._op === "Blocked") {
915
- return blocked(step.i0, interruptible(step.i1))
916
- }
917
- return step
918
- }
919
940
  effect.i1 = (oldFlags: RuntimeFlags.RuntimeFlags) =>
920
941
  _runtimeFlags.interruption(oldFlags)
921
- ? step(f(interruptible))
922
- : step(f(uninterruptible))
923
- return flatMap(effect, _continue)
942
+ ? f(interruptible)
943
+ : f(uninterruptible)
944
+ return effect
924
945
  }
925
946
 
926
947
  /* @internal */
@@ -1062,7 +1083,7 @@ export const orDieWith = dual<
1062
1083
  export const partitionMap = <A, A1, A2>(
1063
1084
  elements: Iterable<A>,
1064
1085
  f: (a: A) => Either.Either<A1, A2>
1065
- ): [Array<A1>, Array<A2>] =>
1086
+ ): [left: Array<A1>, right: Array<A2>] =>
1066
1087
  ReadonlyArray.fromIterable(elements).reduceRight(
1067
1088
  ([lefts, rights], current) => {
1068
1089
  const either = f(current)
@@ -1105,14 +1126,48 @@ export const sync = <A>(evaluate: LazyArg<A>): Effect.Effect<never, never, A> =>
1105
1126
 
1106
1127
  /* @internal */
1107
1128
  export const tap = dual<
1108
- <A, X extends A, R2, E2, _>(
1109
- f: (a: X) => Effect.Effect<R2, E2, _>
1110
- ) => <R, E>(self: Effect.Effect<R, E, A>) => Effect.Effect<R | R2, E | E2, A>,
1111
- <R, E, A, X extends A, R2, E2, _>(
1112
- self: Effect.Effect<R, E, A>,
1113
- f: (a: X) => Effect.Effect<R2, E2, _>
1114
- ) => Effect.Effect<R | R2, E | E2, A>
1115
- >(2, (self, f) => flatMap(self, (a) => as(f(a as any), a)))
1129
+ {
1130
+ <A, X>(
1131
+ f: (a: NoInfer<A>) => X
1132
+ ): <R, E>(
1133
+ self: Effect.Effect<R, E, A>
1134
+ ) => [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
1135
+ : [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
1136
+ : Effect.Effect<R, E, A>
1137
+ <X>(
1138
+ f: X
1139
+ ): <R, E, A>(
1140
+ self: Effect.Effect<R, E, A>
1141
+ ) => [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
1142
+ : [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
1143
+ : Effect.Effect<R, E, A>
1144
+ },
1145
+ {
1146
+ <A, R, E, X>(
1147
+ self: Effect.Effect<R, E, A>,
1148
+ f: (a: NoInfer<A>) => X
1149
+ ): [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
1150
+ : [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
1151
+ : Effect.Effect<R, E, A>
1152
+ <A, R, E, X>(
1153
+ self: Effect.Effect<R, E, A>,
1154
+ f: X
1155
+ ): [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
1156
+ : [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
1157
+ : Effect.Effect<R, E, A>
1158
+ }
1159
+ >(2, (self, f) =>
1160
+ flatMap(self, (a) => {
1161
+ const b = typeof f === "function" ? (f as any)(a) : f
1162
+ if (isEffect(b)) {
1163
+ return as(b, a)
1164
+ } else if (isPromise(b)) {
1165
+ return async<never, Cause.UnknownException, any>((resume) => {
1166
+ b.then((_) => resume(succeed(a))).catch((e) => resume(fail(new UnknownException(e))))
1167
+ })
1168
+ }
1169
+ return succeed(a)
1170
+ }))
1116
1171
 
1117
1172
  /* @internal */
1118
1173
  export const transplant = <R, E, A>(
@@ -1153,14 +1208,7 @@ export const uninterruptible: <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.
1153
1208
  ): Effect.Effect<R, E, A> => {
1154
1209
  const effect = new EffectPrimitive(OpCodes.OP_UPDATE_RUNTIME_FLAGS) as any
1155
1210
  effect.i0 = RuntimeFlagsPatch.disable(_runtimeFlags.Interruption)
1156
- effect.i1 = () => flatMapStep(self, _continue)
1157
- const _continue = (orBlock: any) => {
1158
- if (orBlock._tag === "Blocked") {
1159
- return blocked(orBlock.i0, uninterruptible(orBlock.i1))
1160
- } else {
1161
- return orBlock
1162
- }
1163
- }
1211
+ effect.i1 = () => self
1164
1212
  return effect
1165
1213
  }
1166
1214
 
@@ -1170,17 +1218,11 @@ export const uninterruptibleMask = <R, E, A>(
1170
1218
  ): Effect.Effect<R, E, A> => {
1171
1219
  const effect = new EffectPrimitive(OpCodes.OP_UPDATE_RUNTIME_FLAGS) as any
1172
1220
  effect.i0 = RuntimeFlagsPatch.disable(_runtimeFlags.Interruption)
1173
- const _continue = (step: Exit.Exit<E, A> | Effect.Blocked<R, E, A>): Exit.Exit<E, A> | Effect.Blocked<R, E, A> => {
1174
- if (step._op === "Blocked") {
1175
- return blocked(step.i0, uninterruptible(step.i1))
1176
- }
1177
- return step
1178
- }
1179
1221
  effect.i1 = (oldFlags: RuntimeFlags.RuntimeFlags) =>
1180
1222
  _runtimeFlags.interruption(oldFlags)
1181
- ? step(f(interruptible))
1182
- : step(f(uninterruptible))
1183
- return flatMap(effect, _continue)
1223
+ ? f(interruptible)
1224
+ : f(uninterruptible)
1225
+ return effect
1184
1226
  }
1185
1227
 
1186
1228
  /* @internal */
@@ -1477,9 +1519,9 @@ export const FiberRefTypeId: FiberRef.FiberRefTypeId = Symbol.for(
1477
1519
  FiberRefSymbolKey
1478
1520
  ) as FiberRef.FiberRefTypeId
1479
1521
 
1480
- /** @internal */
1481
1522
  const fiberRefVariance = {
1482
- _A: (_: never) => _
1523
+ /* c8 ignore next */
1524
+ _A: (_: any) => _
1483
1525
  }
1484
1526
 
1485
1527
  /* @internal */
@@ -1594,14 +1636,16 @@ export const RequestResolverTypeId: RequestResolver.RequestResolverTypeId = Symb
1594
1636
  RequestResolverSymbolKey
1595
1637
  ) as RequestResolver.RequestResolverTypeId
1596
1638
 
1597
- const dataSourceVariance = {
1598
- _R: (_: never) => _,
1599
- _A: (_: never) => _
1639
+ const requestResolverVariance = {
1640
+ /* c8 ignore next */
1641
+ _A: (_: unknown) => _,
1642
+ /* c8 ignore next */
1643
+ _R: (_: never) => _
1600
1644
  }
1601
1645
 
1602
1646
  /** @internal */
1603
- export class RequestResolverImpl<R, A> implements RequestResolver.RequestResolver<A, R> {
1604
- readonly [RequestResolverTypeId] = dataSourceVariance
1647
+ export class RequestResolverImpl<out R, in A> implements RequestResolver.RequestResolver<A, R> {
1648
+ readonly [RequestResolverTypeId] = requestResolverVariance
1605
1649
  constructor(
1606
1650
  readonly runAll: (
1607
1651
  requests: Array<Array<Request.Entry<A>>>
@@ -1661,16 +1705,16 @@ export const resolverLocally = dual<
1661
1705
  ))
1662
1706
 
1663
1707
  /** @internal */
1664
- export const requestBlockLocally = <R, A>(
1665
- self: BlockedRequests.RequestBlock<R>,
1708
+ export const requestBlockLocally = <A>(
1709
+ self: BlockedRequests.RequestBlock,
1666
1710
  ref: FiberRef.FiberRef<A>,
1667
1711
  value: A
1668
- ): BlockedRequests.RequestBlock<R> => _blockedRequests.reduce(self, LocallyReducer(ref, value))
1712
+ ): BlockedRequests.RequestBlock => _blockedRequests.reduce(self, LocallyReducer(ref, value))
1669
1713
 
1670
- const LocallyReducer = <R, A>(
1714
+ const LocallyReducer = <A>(
1671
1715
  ref: FiberRef.FiberRef<A>,
1672
1716
  value: A
1673
- ): BlockedRequests.RequestBlock.Reducer<R, BlockedRequests.RequestBlock<R>> => ({
1717
+ ): BlockedRequests.RequestBlock.Reducer<BlockedRequests.RequestBlock> => ({
1674
1718
  emptyCase: () => _blockedRequests.empty,
1675
1719
  parCase: (left, right) => _blockedRequests.par(left, right),
1676
1720
  seqCase: (left, right) => _blockedRequests.seq(left, right),
@@ -1689,18 +1733,10 @@ export const fiberRefLocally: {
1689
1733
  <A>(self: FiberRef.FiberRef<A>, value: A) => <R, E, B>(use: Effect.Effect<R, E, B>) => Effect.Effect<R, E, B>,
1690
1734
  <R, E, B, A>(use: Effect.Effect<R, E, B>, self: FiberRef.FiberRef<A>, value: A) => Effect.Effect<R, E, B>
1691
1735
  >(3, (use, self, value) =>
1692
- flatMap(
1693
- acquireUseRelease(
1694
- zipLeft(fiberRefGet(self), fiberRefSet(self, value)),
1695
- () => step(use),
1696
- (oldValue) => fiberRefSet(self, oldValue)
1697
- ),
1698
- (res) => {
1699
- if (res._op === "Blocked") {
1700
- return blocked(res.i0, fiberRefLocally(res.i1, self, value))
1701
- }
1702
- return res
1703
- }
1736
+ acquireUseRelease(
1737
+ zipLeft(fiberRefGet(self), fiberRefSet(self, value)),
1738
+ () => use,
1739
+ (oldValue) => fiberRefSet(self, oldValue)
1704
1740
  ))
1705
1741
 
1706
1742
  /* @internal */
@@ -2071,6 +2107,176 @@ export const releaseMapMake: Effect.Effect<never, never, ReleaseMap> = sync(():
2071
2107
  }
2072
2108
  }))
2073
2109
 
2110
+ // -----------------------------------------------------------------------------
2111
+ // Cause
2112
+ // -----------------------------------------------------------------------------
2113
+
2114
+ /** @internal */
2115
+ export const causeSquash = <E>(self: Cause.Cause<E>): unknown => {
2116
+ return causeSquashWith(identity)(self)
2117
+ }
2118
+
2119
+ /** @internal */
2120
+ export const causeSquashWith = dual<
2121
+ <E>(f: (error: E) => unknown) => (self: Cause.Cause<E>) => unknown,
2122
+ <E>(self: Cause.Cause<E>, f: (error: E) => unknown) => unknown
2123
+ >(2, (self, f) => {
2124
+ const option = pipe(self, internalCause.failureOption, Option.map(f))
2125
+ switch (option._tag) {
2126
+ case "None": {
2127
+ return pipe(
2128
+ internalCause.defects(self),
2129
+ Chunk.head,
2130
+ Option.match({
2131
+ onNone: () => {
2132
+ const interrupts = Array.from(internalCause.interruptors(self)).flatMap((fiberId) =>
2133
+ Array.from(FiberId.ids(fiberId)).map((id) => `#${id}`)
2134
+ )
2135
+ return new InterruptedException(interrupts ? `Interrupted by fibers: ${interrupts.join(", ")}` : void 0)
2136
+ },
2137
+ onSome: identity
2138
+ })
2139
+ )
2140
+ }
2141
+ case "Some": {
2142
+ return option.value
2143
+ }
2144
+ }
2145
+ })
2146
+
2147
+ // -----------------------------------------------------------------------------
2148
+ // Errors
2149
+ // -----------------------------------------------------------------------------
2150
+
2151
+ /** @internal */
2152
+ export const YieldableError: new(message?: string) => Cause.YieldableError = (function() {
2153
+ class YieldableError extends globalThis.Error {
2154
+ commit() {
2155
+ return fail(this)
2156
+ }
2157
+ toString() {
2158
+ return this.message ? `${this.name}: ${this.message}` : this.name
2159
+ }
2160
+ toJSON() {
2161
+ return { ...this }
2162
+ }
2163
+ [NodeInspectSymbol](): string {
2164
+ const stack = this.stack
2165
+ if (stack) {
2166
+ return `${this.toString()}\n${stack.split("\n").slice(1).join("\n")}`
2167
+ }
2168
+ return this.toString()
2169
+ }
2170
+ }
2171
+ Object.assign(YieldableError.prototype, StructuralCommitPrototype)
2172
+ return YieldableError as any
2173
+ })()
2174
+
2175
+ const makeException = <T extends { _tag: string; message?: string }>(
2176
+ proto: Omit<T, keyof Cause.YieldableError | "_tag">,
2177
+ tag: T["_tag"]
2178
+ ): new(message?: string | undefined) => T => {
2179
+ class Base extends YieldableError {
2180
+ readonly _tag = tag
2181
+ }
2182
+ Object.assign(Base.prototype, proto)
2183
+ ;(Base.prototype as any).name = tag
2184
+ return Base as any
2185
+ }
2186
+
2187
+ /** @internal */
2188
+ export const RuntimeExceptionTypeId: Cause.RuntimeExceptionTypeId = Symbol.for(
2189
+ "effect/Cause/errors/RuntimeException"
2190
+ ) as Cause.RuntimeExceptionTypeId
2191
+
2192
+ /** @internal */
2193
+ export const RuntimeException = makeException<Cause.RuntimeException>({
2194
+ [RuntimeExceptionTypeId]: RuntimeExceptionTypeId
2195
+ }, "RuntimeException")
2196
+
2197
+ /** @internal */
2198
+ export const isRuntimeException = (u: unknown): u is Cause.RuntimeException => hasProperty(u, RuntimeExceptionTypeId)
2199
+
2200
+ /** @internal */
2201
+ export const InterruptedExceptionTypeId: Cause.InterruptedExceptionTypeId = Symbol.for(
2202
+ "effect/Cause/errors/InterruptedException"
2203
+ ) as Cause.InterruptedExceptionTypeId
2204
+
2205
+ /** @internal */
2206
+ export const InterruptedException = makeException<Cause.InterruptedException>({
2207
+ [InterruptedExceptionTypeId]: InterruptedExceptionTypeId
2208
+ }, "InterruptedException")
2209
+
2210
+ /** @internal */
2211
+ export const isInterruptedException = (u: unknown): u is Cause.InterruptedException =>
2212
+ hasProperty(u, InterruptedExceptionTypeId)
2213
+
2214
+ /** @internal */
2215
+ export const IllegalArgumentExceptionTypeId: Cause.IllegalArgumentExceptionTypeId = Symbol.for(
2216
+ "effect/Cause/errors/IllegalArgument"
2217
+ ) as Cause.IllegalArgumentExceptionTypeId
2218
+
2219
+ /** @internal */
2220
+ export const IllegalArgumentException = makeException<Cause.IllegalArgumentException>({
2221
+ [IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId
2222
+ }, "IllegalArgumentException")
2223
+
2224
+ /** @internal */
2225
+ export const isIllegalArgumentException = (u: unknown): u is Cause.IllegalArgumentException =>
2226
+ hasProperty(u, IllegalArgumentExceptionTypeId)
2227
+
2228
+ /** @internal */
2229
+ export const NoSuchElementExceptionTypeId: Cause.NoSuchElementExceptionTypeId = Symbol.for(
2230
+ "effect/Cause/errors/NoSuchElement"
2231
+ ) as Cause.NoSuchElementExceptionTypeId
2232
+
2233
+ /** @internal */
2234
+ export const NoSuchElementException = makeException<Cause.NoSuchElementException>({
2235
+ [NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId
2236
+ }, "NoSuchElementException")
2237
+
2238
+ /** @internal */
2239
+ export const isNoSuchElementException = (u: unknown): u is Cause.NoSuchElementException =>
2240
+ hasProperty(u, NoSuchElementExceptionTypeId)
2241
+
2242
+ /** @internal */
2243
+ export const InvalidPubSubCapacityExceptionTypeId: Cause.InvalidPubSubCapacityExceptionTypeId = Symbol.for(
2244
+ "effect/Cause/errors/InvalidPubSubCapacityException"
2245
+ ) as Cause.InvalidPubSubCapacityExceptionTypeId
2246
+
2247
+ /** @internal */
2248
+ export const InvalidPubSubCapacityException = makeException<Cause.InvalidPubSubCapacityException>({
2249
+ [InvalidPubSubCapacityExceptionTypeId]: InvalidPubSubCapacityExceptionTypeId
2250
+ }, "InvalidPubSubCapacityException")
2251
+
2252
+ /** @internal */
2253
+ export const isInvalidCapacityError = (u: unknown): u is Cause.InvalidPubSubCapacityException =>
2254
+ hasProperty(u, InvalidPubSubCapacityExceptionTypeId)
2255
+
2256
+ /** @internal */
2257
+ export const UnknownExceptionTypeId: Cause.UnknownExceptionTypeId = Symbol.for(
2258
+ "effect/Cause/errors/UnknownException"
2259
+ ) as Cause.UnknownExceptionTypeId
2260
+
2261
+ /** @internal */
2262
+ export const UnknownException: new(error: unknown, message?: string | undefined) => Cause.UnknownException =
2263
+ (function() {
2264
+ class UnknownException extends YieldableError {
2265
+ readonly _tag = "UnknownException"
2266
+ constructor(readonly error: unknown, message?: string) {
2267
+ super(message ?? (hasProperty(error, "message") && isString(error.message) ? error.message : void 0))
2268
+ }
2269
+ }
2270
+ Object.assign(UnknownException.prototype, {
2271
+ [UnknownExceptionTypeId]: UnknownExceptionTypeId,
2272
+ name: "UnknownException"
2273
+ })
2274
+ return UnknownException as any
2275
+ })()
2276
+
2277
+ /** @internal */
2278
+ export const isUnknownException = (u: unknown): u is Cause.UnknownException => hasProperty(u, UnknownExceptionTypeId)
2279
+
2074
2280
  // -----------------------------------------------------------------------------
2075
2281
  // Exit
2076
2282
  // -----------------------------------------------------------------------------
@@ -2142,16 +2348,18 @@ export const exitDie = (defect: unknown): Exit.Exit<never, never> =>
2142
2348
  exitFailCause(internalCause.die(defect)) as Exit.Exit<never, never>
2143
2349
 
2144
2350
  /** @internal */
2145
- export const exitExists = dual<
2146
- <A>(predicate: Predicate<A>) => <E>(self: Exit.Exit<E, A>) => boolean,
2147
- <E, A>(self: Exit.Exit<E, A>, predicate: Predicate<A>) => boolean
2148
- >(2, (self, predicate) => {
2351
+ export const exitExists: {
2352
+ <A, B extends A>(refinement: Refinement<A, B>): <E>(self: Exit.Exit<E, A>) => self is Exit.Exit<never, B>
2353
+ <A>(predicate: Predicate<A>): <E>(self: Exit.Exit<E, A>) => boolean
2354
+ <E, A, B extends A>(self: Exit.Exit<E, A>, refinement: Refinement<A, B>): self is Exit.Exit<never, B>
2355
+ <E, A>(self: Exit.Exit<E, A>, predicate: Predicate<A>): boolean
2356
+ } = dual(2, <E, A, B extends A>(self: Exit.Exit<E, A>, refinement: Refinement<A, B>): self is Exit.Exit<never, B> => {
2149
2357
  switch (self._tag) {
2150
2358
  case OpCodes.OP_FAILURE: {
2151
2359
  return false
2152
2360
  }
2153
2361
  case OpCodes.OP_SUCCESS: {
2154
- return predicate(self.i0)
2362
+ return refinement(self.i0)
2155
2363
  }
2156
2364
  }
2157
2365
  })