effect 2.0.0-next.56 → 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 (887) hide show
  1. package/dist/cjs/BigDecimal.js +9 -9
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/BigInt.js.map +1 -1
  4. package/dist/cjs/Boolean.js.map +1 -1
  5. package/dist/cjs/Brand.js.map +1 -1
  6. package/dist/cjs/Cache.js.map +1 -1
  7. package/dist/cjs/Cause.js.map +1 -1
  8. package/dist/cjs/Channel.js.map +1 -1
  9. package/dist/cjs/Chunk.js +38 -29
  10. package/dist/cjs/Chunk.js.map +1 -1
  11. package/dist/cjs/Config.js +3 -3
  12. package/dist/cjs/Config.js.map +1 -1
  13. package/dist/cjs/Context.js.map +1 -1
  14. package/dist/cjs/Data.js.map +1 -1
  15. package/dist/cjs/Deferred.js.map +1 -1
  16. package/dist/cjs/Differ.js.map +1 -1
  17. package/dist/cjs/Duration.js +45 -2
  18. package/dist/cjs/Duration.js.map +1 -1
  19. package/dist/cjs/Effect.js +6 -11
  20. package/dist/cjs/Effect.js.map +1 -1
  21. package/dist/cjs/Either.js +36 -7
  22. package/dist/cjs/Either.js.map +1 -1
  23. package/dist/cjs/Equal.js.map +1 -1
  24. package/dist/cjs/Equivalence.js +1 -1
  25. package/dist/cjs/Equivalence.js.map +1 -1
  26. package/dist/cjs/Fiber.js.map +1 -1
  27. package/dist/cjs/FiberRef.js +6 -1
  28. package/dist/cjs/FiberRef.js.map +1 -1
  29. package/dist/cjs/Function.js.map +1 -1
  30. package/dist/cjs/GlobalValue.js.map +1 -1
  31. package/dist/cjs/GroupBy.js.map +1 -1
  32. package/dist/cjs/Hash.js.map +1 -1
  33. package/dist/cjs/Inspectable.js +4 -6
  34. package/dist/cjs/Inspectable.js.map +1 -1
  35. package/dist/cjs/KeyedPool.js.map +1 -1
  36. package/dist/cjs/Layer.js +9 -29
  37. package/dist/cjs/Layer.js.map +1 -1
  38. package/dist/cjs/List.js +25 -22
  39. package/dist/cjs/List.js.map +1 -1
  40. package/dist/cjs/LogLevel.js.map +1 -1
  41. package/dist/cjs/Logger.js.map +1 -1
  42. package/dist/cjs/Match.js.map +1 -1
  43. package/dist/cjs/MergeDecision.js.map +1 -1
  44. package/dist/cjs/Metric.js.map +1 -1
  45. package/dist/cjs/MetricHook.js.map +1 -1
  46. package/dist/cjs/MetricKey.js.map +1 -1
  47. package/dist/cjs/MetricKeyType.js.map +1 -1
  48. package/dist/cjs/MetricPair.js.map +1 -1
  49. package/dist/cjs/MetricState.js.map +1 -1
  50. package/dist/cjs/MutableHashMap.js +1 -1
  51. package/dist/cjs/MutableHashMap.js.map +1 -1
  52. package/dist/cjs/MutableHashSet.js +1 -1
  53. package/dist/cjs/MutableHashSet.js.map +1 -1
  54. package/dist/cjs/MutableList.js +1 -1
  55. package/dist/cjs/MutableList.js.map +1 -1
  56. package/dist/cjs/MutableQueue.js +1 -1
  57. package/dist/cjs/MutableQueue.js.map +1 -1
  58. package/dist/cjs/MutableRef.js +1 -1
  59. package/dist/cjs/MutableRef.js.map +1 -1
  60. package/dist/cjs/NonEmptyIterable.js.map +1 -1
  61. package/dist/cjs/Number.js.map +1 -1
  62. package/dist/cjs/Option.js +19 -12
  63. package/dist/cjs/Option.js.map +1 -1
  64. package/dist/cjs/Order.js +1 -1
  65. package/dist/cjs/Order.js.map +1 -1
  66. package/dist/cjs/Ordering.js.map +1 -1
  67. package/dist/cjs/Pipeable.js.map +1 -1
  68. package/dist/cjs/Pool.js +15 -17
  69. package/dist/cjs/Pool.js.map +1 -1
  70. package/dist/cjs/Predicate.js.map +1 -1
  71. package/dist/cjs/PrimaryKey.js +7 -1
  72. package/dist/cjs/PrimaryKey.js.map +1 -1
  73. package/dist/cjs/Queue.js.map +1 -1
  74. package/dist/cjs/ReadonlyArray.js +200 -187
  75. package/dist/cjs/ReadonlyArray.js.map +1 -1
  76. package/dist/cjs/ReadonlyRecord.js +59 -6
  77. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  78. package/dist/cjs/RedBlackTree.js.map +1 -1
  79. package/dist/cjs/Ref.js.map +1 -1
  80. package/dist/cjs/Reloadable.js.map +1 -1
  81. package/dist/cjs/Request.js +8 -1
  82. package/dist/cjs/Request.js.map +1 -1
  83. package/dist/cjs/RequestBlock.js +5 -24
  84. package/dist/cjs/RequestBlock.js.map +1 -1
  85. package/dist/cjs/RequestResolver.js.map +1 -1
  86. package/dist/cjs/Resource.js.map +1 -1
  87. package/dist/cjs/STM.js.map +1 -1
  88. package/dist/cjs/Schedule.js.map +1 -1
  89. package/dist/cjs/Scheduler.js.map +1 -1
  90. package/dist/cjs/ScopedCache.js.map +1 -1
  91. package/dist/cjs/ScopedRef.js.map +1 -1
  92. package/dist/cjs/Sink.js.map +1 -1
  93. package/dist/cjs/SortedMap.js +1 -1
  94. package/dist/cjs/SortedMap.js.map +1 -1
  95. package/dist/cjs/SortedSet.js +1 -1
  96. package/dist/cjs/SortedSet.js.map +1 -1
  97. package/dist/cjs/Stream.js.map +1 -1
  98. package/dist/cjs/Streamable.js +3 -0
  99. package/dist/cjs/Streamable.js.map +1 -1
  100. package/dist/cjs/String.js.map +1 -1
  101. package/dist/cjs/Struct.js.map +1 -1
  102. package/dist/cjs/SubscriptionRef.js.map +1 -1
  103. package/dist/cjs/Supervisor.js.map +1 -1
  104. package/dist/cjs/SynchronizedRef.js.map +1 -1
  105. package/dist/cjs/TArray.js.map +1 -1
  106. package/dist/cjs/TDeferred.js.map +1 -1
  107. package/dist/cjs/TMap.js.map +1 -1
  108. package/dist/cjs/TPriorityQueue.js.map +1 -1
  109. package/dist/cjs/TPubSub.js.map +1 -1
  110. package/dist/cjs/TQueue.js.map +1 -1
  111. package/dist/cjs/TRef.js.map +1 -1
  112. package/dist/cjs/TSet.js.map +1 -1
  113. package/dist/cjs/Take.js.map +1 -1
  114. package/dist/cjs/TestAnnotation.js.map +1 -1
  115. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  116. package/dist/cjs/TestAnnotations.js.map +1 -1
  117. package/dist/cjs/TestClock.js.map +1 -1
  118. package/dist/cjs/TestContext.js +2 -2
  119. package/dist/cjs/TestContext.js.map +1 -1
  120. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  121. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  122. package/dist/cjs/Utils.js.map +1 -1
  123. package/dist/cjs/internal/Iterable.js.map +1 -1
  124. package/dist/cjs/internal/blockedRequests.js +3 -2
  125. package/dist/cjs/internal/blockedRequests.js.map +1 -1
  126. package/dist/cjs/internal/cache.js +3 -0
  127. package/dist/cjs/internal/cache.js.map +1 -1
  128. package/dist/cjs/internal/cause.js +1 -1
  129. package/dist/cjs/internal/cause.js.map +1 -1
  130. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  131. package/dist/cjs/internal/channel/channelState.js +2 -1
  132. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  133. package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
  134. package/dist/cjs/internal/channel/continuation.js +9 -1
  135. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  136. package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
  137. package/dist/cjs/internal/channel/mergeState.js.map +1 -1
  138. package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
  139. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  140. package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
  141. package/dist/cjs/internal/channel/upstreamPullRequest.js +1 -1
  142. package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
  143. package/dist/cjs/internal/channel/upstreamPullStrategy.js +1 -1
  144. package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
  145. package/dist/cjs/internal/channel.js.map +1 -1
  146. package/dist/cjs/internal/clock.js.map +1 -1
  147. package/dist/cjs/internal/concurrency.js.map +1 -1
  148. package/dist/cjs/internal/config.js +16 -24
  149. package/dist/cjs/internal/config.js.map +1 -1
  150. package/dist/cjs/internal/configError.js +2 -2
  151. package/dist/cjs/internal/configError.js.map +1 -1
  152. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  153. package/dist/cjs/internal/configProvider.js +5 -3
  154. package/dist/cjs/internal/configProvider.js.map +1 -1
  155. package/dist/cjs/internal/configSecret.js.map +1 -1
  156. package/dist/cjs/internal/context.js +5 -5
  157. package/dist/cjs/internal/context.js.map +1 -1
  158. package/dist/cjs/internal/core-effect.js +13 -9
  159. package/dist/cjs/internal/core-effect.js.map +1 -1
  160. package/dist/cjs/internal/core-stream.js +7 -1
  161. package/dist/cjs/internal/core-stream.js.map +1 -1
  162. package/dist/cjs/internal/core.js +47 -77
  163. package/dist/cjs/internal/core.js.map +1 -1
  164. package/dist/cjs/internal/data.js.map +1 -1
  165. package/dist/cjs/internal/dataSource.js.map +1 -1
  166. package/dist/cjs/internal/deferred.js +2 -0
  167. package/dist/cjs/internal/deferred.js.map +1 -1
  168. package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
  169. package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
  170. package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
  171. package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
  172. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  173. package/dist/cjs/internal/differ.js.map +1 -1
  174. package/dist/cjs/internal/effect/circular.js +1 -0
  175. package/dist/cjs/internal/effect/circular.js.map +1 -1
  176. package/dist/cjs/internal/effectable.js +18 -5
  177. package/dist/cjs/internal/effectable.js.map +1 -1
  178. package/dist/cjs/internal/either.js +1 -1
  179. package/dist/cjs/internal/either.js.map +1 -1
  180. package/dist/cjs/internal/encoding/base64.js.map +1 -1
  181. package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
  182. package/dist/cjs/internal/encoding/common.js.map +1 -1
  183. package/dist/cjs/internal/encoding/hex.js.map +1 -1
  184. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  185. package/dist/cjs/internal/fiber.js +2 -0
  186. package/dist/cjs/internal/fiber.js.map +1 -1
  187. package/dist/cjs/internal/fiberId.js +3 -3
  188. package/dist/cjs/internal/fiberId.js.map +1 -1
  189. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  190. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  191. package/dist/cjs/internal/fiberRuntime.js +172 -208
  192. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  193. package/dist/cjs/internal/groupBy.js +4 -1
  194. package/dist/cjs/internal/groupBy.js.map +1 -1
  195. package/dist/cjs/internal/hashMap/array.js.map +1 -1
  196. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  197. package/dist/cjs/internal/hashMap.js +1 -1
  198. package/dist/cjs/internal/hashMap.js.map +1 -1
  199. package/dist/cjs/internal/hashSet.js +1 -1
  200. package/dist/cjs/internal/hashSet.js.map +1 -1
  201. package/dist/cjs/internal/keyedPool.js +3 -0
  202. package/dist/cjs/internal/keyedPool.js.map +1 -1
  203. package/dist/cjs/internal/layer.js +23 -53
  204. package/dist/cjs/internal/layer.js.map +1 -1
  205. package/dist/cjs/internal/logger.js +2 -1
  206. package/dist/cjs/internal/logger.js.map +1 -1
  207. package/dist/cjs/internal/matcher.js.map +1 -1
  208. package/dist/cjs/internal/metric/hook.js +2 -1
  209. package/dist/cjs/internal/metric/hook.js.map +1 -1
  210. package/dist/cjs/internal/metric/key.js +1 -1
  211. package/dist/cjs/internal/metric/key.js.map +1 -1
  212. package/dist/cjs/internal/metric/keyType.js +2 -1
  213. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  214. package/dist/cjs/internal/metric/pair.js +1 -1
  215. package/dist/cjs/internal/metric/pair.js.map +1 -1
  216. package/dist/cjs/internal/metric/polling.js.map +1 -1
  217. package/dist/cjs/internal/metric/registry.js.map +1 -1
  218. package/dist/cjs/internal/metric/state.js +1 -1
  219. package/dist/cjs/internal/metric/state.js.map +1 -1
  220. package/dist/cjs/internal/metric.js +7 -5
  221. package/dist/cjs/internal/metric.js.map +1 -1
  222. package/dist/cjs/internal/opCodes/layer.js +4 -4
  223. package/dist/cjs/internal/opCodes/layer.js.map +1 -1
  224. package/dist/cjs/internal/option.js +1 -1
  225. package/dist/cjs/internal/option.js.map +1 -1
  226. package/dist/cjs/internal/pool.js +2 -0
  227. package/dist/cjs/internal/pool.js.map +1 -1
  228. package/dist/cjs/internal/pubsub.js +1 -1
  229. package/dist/cjs/internal/pubsub.js.map +1 -1
  230. package/dist/cjs/internal/query.js +1 -1
  231. package/dist/cjs/internal/query.js.map +1 -1
  232. package/dist/cjs/internal/queue.js +6 -4
  233. package/dist/cjs/internal/queue.js.map +1 -1
  234. package/dist/cjs/internal/random.js.map +1 -1
  235. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  236. package/dist/cjs/internal/redBlackTree.js +3 -1
  237. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  238. package/dist/cjs/internal/ref.js +1 -0
  239. package/dist/cjs/internal/ref.js.map +1 -1
  240. package/dist/cjs/internal/reloadable.js +1 -1
  241. package/dist/cjs/internal/reloadable.js.map +1 -1
  242. package/dist/cjs/internal/request.js +5 -2
  243. package/dist/cjs/internal/request.js.map +1 -1
  244. package/dist/cjs/internal/resource.js +2 -1
  245. package/dist/cjs/internal/resource.js.map +1 -1
  246. package/dist/cjs/internal/ringBuffer.js.map +1 -1
  247. package/dist/cjs/internal/runtime.js +1 -1
  248. package/dist/cjs/internal/runtime.js.map +1 -1
  249. package/dist/cjs/internal/runtimeFlags.js.map +1 -1
  250. package/dist/cjs/internal/schedule/interval.js.map +1 -1
  251. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  252. package/dist/cjs/internal/schedule.js +6 -1
  253. package/dist/cjs/internal/schedule.js.map +1 -1
  254. package/dist/cjs/internal/scopedCache.js +5 -2
  255. package/dist/cjs/internal/scopedCache.js.map +1 -1
  256. package/dist/cjs/internal/scopedRef.js +1 -0
  257. package/dist/cjs/internal/scopedRef.js.map +1 -1
  258. package/dist/cjs/internal/sink.js +5 -1
  259. package/dist/cjs/internal/sink.js.map +1 -1
  260. package/dist/cjs/internal/stm/core.js +3 -1
  261. package/dist/cjs/internal/stm/core.js.map +1 -1
  262. package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
  263. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  264. package/dist/cjs/internal/stm/stm/tExit.js +2 -1
  265. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  266. package/dist/cjs/internal/stm/stm.js.map +1 -1
  267. package/dist/cjs/internal/stm/tArray.js +1 -1
  268. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  269. package/dist/cjs/internal/stm/tMap.js +2 -1
  270. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  271. package/dist/cjs/internal/stm/tPriorityQueue.js +1 -1
  272. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  273. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  274. package/dist/cjs/internal/stm/tQueue.js +2 -0
  275. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  276. package/dist/cjs/internal/stm/tRandom.js.map +1 -1
  277. package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
  278. package/dist/cjs/internal/stm/tRef.js +1 -1
  279. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  280. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  281. package/dist/cjs/internal/stm/tSet.js +1 -1
  282. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  283. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  284. package/dist/cjs/internal/stream/handoff.js +1 -1
  285. package/dist/cjs/internal/stream/handoff.js.map +1 -1
  286. package/dist/cjs/internal/stream.js +1 -1
  287. package/dist/cjs/internal/stream.js.map +1 -1
  288. package/dist/cjs/internal/string-utils.js.map +1 -1
  289. package/dist/cjs/internal/subscriptionRef.js +1 -1
  290. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  291. package/dist/cjs/internal/supervisor/patch.js.map +1 -1
  292. package/dist/cjs/internal/supervisor.js +1 -0
  293. package/dist/cjs/internal/supervisor.js.map +1 -1
  294. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  295. package/dist/cjs/internal/take.js +2 -1
  296. package/dist/cjs/internal/take.js.map +1 -1
  297. package/dist/cjs/internal/version.js +1 -1
  298. package/dist/dts/BigDecimal.d.ts +5 -5
  299. package/dist/dts/BigDecimal.d.ts.map +1 -1
  300. package/dist/dts/Cache.d.ts +4 -3
  301. package/dist/dts/Cache.d.ts.map +1 -1
  302. package/dist/dts/Cause.d.ts +2 -1
  303. package/dist/dts/Cause.d.ts.map +1 -1
  304. package/dist/dts/Channel.d.ts +8 -7
  305. package/dist/dts/Channel.d.ts.map +1 -1
  306. package/dist/dts/Chunk.d.ts +55 -45
  307. package/dist/dts/Chunk.d.ts.map +1 -1
  308. package/dist/dts/Config.d.ts +16 -15
  309. package/dist/dts/Config.d.ts.map +1 -1
  310. package/dist/dts/Context.d.ts +4 -3
  311. package/dist/dts/Context.d.ts.map +1 -1
  312. package/dist/dts/Data.d.ts +4 -4
  313. package/dist/dts/Data.d.ts.map +1 -1
  314. package/dist/dts/Deferred.d.ts +3 -2
  315. package/dist/dts/Deferred.d.ts.map +1 -1
  316. package/dist/dts/Differ.d.ts +15 -14
  317. package/dist/dts/Differ.d.ts.map +1 -1
  318. package/dist/dts/Duration.d.ts +11 -0
  319. package/dist/dts/Duration.d.ts.map +1 -1
  320. package/dist/dts/Effect.d.ts +30 -27
  321. package/dist/dts/Effect.d.ts.map +1 -1
  322. package/dist/dts/Either.d.ts +46 -10
  323. package/dist/dts/Either.d.ts.map +1 -1
  324. package/dist/dts/Equivalence.d.ts +1 -1
  325. package/dist/dts/Fiber.d.ts +5 -4
  326. package/dist/dts/Fiber.d.ts.map +1 -1
  327. package/dist/dts/FiberRef.d.ts +7 -1
  328. package/dist/dts/FiberRef.d.ts.map +1 -1
  329. package/dist/dts/GroupBy.d.ts +5 -4
  330. package/dist/dts/GroupBy.d.ts.map +1 -1
  331. package/dist/dts/HKT.d.ts +5 -4
  332. package/dist/dts/HKT.d.ts.map +1 -1
  333. package/dist/dts/Inspectable.d.ts +0 -4
  334. package/dist/dts/Inspectable.d.ts.map +1 -1
  335. package/dist/dts/KeyedPool.d.ts +4 -3
  336. package/dist/dts/KeyedPool.d.ts.map +1 -1
  337. package/dist/dts/Layer.d.ts +14 -39
  338. package/dist/dts/Layer.d.ts.map +1 -1
  339. package/dist/dts/List.d.ts +32 -33
  340. package/dist/dts/List.d.ts.map +1 -1
  341. package/dist/dts/Logger.d.ts +3 -2
  342. package/dist/dts/Logger.d.ts.map +1 -1
  343. package/dist/dts/Match.d.ts +20 -8
  344. package/dist/dts/Match.d.ts.map +1 -1
  345. package/dist/dts/MergeDecision.d.ts +6 -5
  346. package/dist/dts/MergeDecision.d.ts.map +1 -1
  347. package/dist/dts/Metric.d.ts +6 -5
  348. package/dist/dts/Metric.d.ts.map +1 -1
  349. package/dist/dts/MetricHook.d.ts +3 -2
  350. package/dist/dts/MetricHook.d.ts.map +1 -1
  351. package/dist/dts/MetricKey.d.ts +2 -1
  352. package/dist/dts/MetricKey.d.ts.map +1 -1
  353. package/dist/dts/MetricKeyType.d.ts +3 -2
  354. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  355. package/dist/dts/MetricPair.d.ts +2 -1
  356. package/dist/dts/MetricPair.d.ts.map +1 -1
  357. package/dist/dts/MetricState.d.ts +2 -1
  358. package/dist/dts/MetricState.d.ts.map +1 -1
  359. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  360. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  361. package/dist/dts/MutableQueue.d.ts.map +1 -1
  362. package/dist/dts/MutableRef.d.ts.map +1 -1
  363. package/dist/dts/Option.d.ts +26 -13
  364. package/dist/dts/Option.d.ts.map +1 -1
  365. package/dist/dts/Order.d.ts +1 -1
  366. package/dist/dts/Pool.d.ts +18 -19
  367. package/dist/dts/Pool.d.ts.map +1 -1
  368. package/dist/dts/PrimaryKey.d.ts +5 -0
  369. package/dist/dts/PrimaryKey.d.ts.map +1 -1
  370. package/dist/dts/Queue.d.ts +5 -4
  371. package/dist/dts/Queue.d.ts.map +1 -1
  372. package/dist/dts/ReadonlyArray.d.ts +134 -170
  373. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  374. package/dist/dts/ReadonlyRecord.d.ts +38 -5
  375. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  376. package/dist/dts/RedBlackTree.d.ts +3 -2
  377. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  378. package/dist/dts/Ref.d.ts +2 -1
  379. package/dist/dts/Ref.d.ts.map +1 -1
  380. package/dist/dts/Reloadable.d.ts +2 -1
  381. package/dist/dts/Reloadable.d.ts.map +1 -1
  382. package/dist/dts/Request.d.ts +14 -3
  383. package/dist/dts/Request.d.ts.map +1 -1
  384. package/dist/dts/RequestBlock.d.ts +17 -36
  385. package/dist/dts/RequestBlock.d.ts.map +1 -1
  386. package/dist/dts/RequestResolver.d.ts +3 -2
  387. package/dist/dts/RequestResolver.d.ts.map +1 -1
  388. package/dist/dts/Resource.d.ts +3 -2
  389. package/dist/dts/Resource.d.ts.map +1 -1
  390. package/dist/dts/STM.d.ts +4 -3
  391. package/dist/dts/STM.d.ts.map +1 -1
  392. package/dist/dts/Schedule.d.ts +7 -6
  393. package/dist/dts/Schedule.d.ts.map +1 -1
  394. package/dist/dts/ScopedCache.d.ts +4 -3
  395. package/dist/dts/ScopedCache.d.ts.map +1 -1
  396. package/dist/dts/ScopedRef.d.ts +2 -1
  397. package/dist/dts/ScopedRef.d.ts.map +1 -1
  398. package/dist/dts/Sink.d.ts +6 -5
  399. package/dist/dts/Sink.d.ts.map +1 -1
  400. package/dist/dts/SortedMap.d.ts +3 -2
  401. package/dist/dts/SortedMap.d.ts.map +1 -1
  402. package/dist/dts/SortedSet.d.ts +2 -1
  403. package/dist/dts/SortedSet.d.ts.map +1 -1
  404. package/dist/dts/Stream.d.ts +5 -4
  405. package/dist/dts/Stream.d.ts.map +1 -1
  406. package/dist/dts/Streamable.d.ts.map +1 -1
  407. package/dist/dts/SubscriptionRef.d.ts +2 -1
  408. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  409. package/dist/dts/Supervisor.d.ts +2 -1
  410. package/dist/dts/Supervisor.d.ts.map +1 -1
  411. package/dist/dts/SynchronizedRef.d.ts +2 -1
  412. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  413. package/dist/dts/TArray.d.ts +2 -1
  414. package/dist/dts/TArray.d.ts.map +1 -1
  415. package/dist/dts/TDeferred.d.ts +3 -2
  416. package/dist/dts/TDeferred.d.ts.map +1 -1
  417. package/dist/dts/TMap.d.ts +3 -2
  418. package/dist/dts/TMap.d.ts.map +1 -1
  419. package/dist/dts/TPriorityQueue.d.ts +2 -1
  420. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  421. package/dist/dts/TPubSub.d.ts +2 -1
  422. package/dist/dts/TPubSub.d.ts.map +1 -1
  423. package/dist/dts/TQueue.d.ts +3 -2
  424. package/dist/dts/TQueue.d.ts.map +1 -1
  425. package/dist/dts/TRef.d.ts +2 -1
  426. package/dist/dts/TRef.d.ts.map +1 -1
  427. package/dist/dts/TSet.d.ts +2 -1
  428. package/dist/dts/TSet.d.ts.map +1 -1
  429. package/dist/dts/Take.d.ts +3 -2
  430. package/dist/dts/Take.d.ts.map +1 -1
  431. package/dist/dts/TestAnnotation.d.ts +2 -1
  432. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  433. package/dist/dts/TestContext.d.ts.map +1 -1
  434. package/dist/dts/Types.d.ts +21 -0
  435. package/dist/dts/Types.d.ts.map +1 -1
  436. package/dist/dts/UpstreamPullRequest.d.ts +2 -1
  437. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  438. package/dist/dts/UpstreamPullStrategy.d.ts +2 -1
  439. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  440. package/dist/dts/Utils.d.ts +6 -5
  441. package/dist/dts/Utils.d.ts.map +1 -1
  442. package/dist/dts/internal/config.d.ts +1 -2
  443. package/dist/dts/internal/config.d.ts.map +1 -1
  444. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  445. package/dist/dts/internal/logger.d.ts.map +1 -1
  446. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  447. package/dist/dts/internal/version.d.ts +1 -1
  448. package/dist/esm/BigDecimal.js +7 -7
  449. package/dist/esm/BigDecimal.js.map +1 -1
  450. package/dist/esm/BigInt.js.map +1 -1
  451. package/dist/esm/Boolean.js.map +1 -1
  452. package/dist/esm/Brand.js.map +1 -1
  453. package/dist/esm/Cache.js.map +1 -1
  454. package/dist/esm/Cause.js.map +1 -1
  455. package/dist/esm/Channel.js.map +1 -1
  456. package/dist/esm/Chunk.js +38 -29
  457. package/dist/esm/Chunk.js.map +1 -1
  458. package/dist/esm/Config.js +3 -3
  459. package/dist/esm/Config.js.map +1 -1
  460. package/dist/esm/Context.js.map +1 -1
  461. package/dist/esm/Data.js.map +1 -1
  462. package/dist/esm/Deferred.js.map +1 -1
  463. package/dist/esm/Differ.js.map +1 -1
  464. package/dist/esm/Duration.js +44 -2
  465. package/dist/esm/Duration.js.map +1 -1
  466. package/dist/esm/Effect.js +2 -7
  467. package/dist/esm/Effect.js.map +1 -1
  468. package/dist/esm/Either.js +35 -6
  469. package/dist/esm/Either.js.map +1 -1
  470. package/dist/esm/Equal.js.map +1 -1
  471. package/dist/esm/Equivalence.js +1 -1
  472. package/dist/esm/Equivalence.js.map +1 -1
  473. package/dist/esm/Fiber.js.map +1 -1
  474. package/dist/esm/FiberRef.js +5 -0
  475. package/dist/esm/FiberRef.js.map +1 -1
  476. package/dist/esm/Function.js.map +1 -1
  477. package/dist/esm/GlobalValue.js.map +1 -1
  478. package/dist/esm/GroupBy.js.map +1 -1
  479. package/dist/esm/HKT.js +0 -3
  480. package/dist/esm/HKT.js.map +1 -1
  481. package/dist/esm/Hash.js.map +1 -1
  482. package/dist/esm/Inspectable.js +2 -4
  483. package/dist/esm/Inspectable.js.map +1 -1
  484. package/dist/esm/KeyedPool.js.map +1 -1
  485. package/dist/esm/Layer.js +8 -28
  486. package/dist/esm/Layer.js.map +1 -1
  487. package/dist/esm/List.js +25 -22
  488. package/dist/esm/List.js.map +1 -1
  489. package/dist/esm/LogLevel.js.map +1 -1
  490. package/dist/esm/Logger.js.map +1 -1
  491. package/dist/esm/Match.js.map +1 -1
  492. package/dist/esm/MergeDecision.js.map +1 -1
  493. package/dist/esm/Metric.js.map +1 -1
  494. package/dist/esm/MetricHook.js.map +1 -1
  495. package/dist/esm/MetricKey.js.map +1 -1
  496. package/dist/esm/MetricKeyType.js.map +1 -1
  497. package/dist/esm/MetricPair.js.map +1 -1
  498. package/dist/esm/MetricState.js.map +1 -1
  499. package/dist/esm/MutableHashMap.js +2 -2
  500. package/dist/esm/MutableHashMap.js.map +1 -1
  501. package/dist/esm/MutableHashSet.js +2 -2
  502. package/dist/esm/MutableHashSet.js.map +1 -1
  503. package/dist/esm/MutableList.js +2 -2
  504. package/dist/esm/MutableList.js.map +1 -1
  505. package/dist/esm/MutableQueue.js +2 -2
  506. package/dist/esm/MutableQueue.js.map +1 -1
  507. package/dist/esm/MutableRef.js +2 -2
  508. package/dist/esm/MutableRef.js.map +1 -1
  509. package/dist/esm/NonEmptyIterable.js.map +1 -1
  510. package/dist/esm/Number.js.map +1 -1
  511. package/dist/esm/Option.js +19 -12
  512. package/dist/esm/Option.js.map +1 -1
  513. package/dist/esm/Order.js +1 -1
  514. package/dist/esm/Order.js.map +1 -1
  515. package/dist/esm/Ordering.js.map +1 -1
  516. package/dist/esm/Pipeable.js.map +1 -1
  517. package/dist/esm/Pool.js +15 -17
  518. package/dist/esm/Pool.js.map +1 -1
  519. package/dist/esm/Predicate.js.map +1 -1
  520. package/dist/esm/PrimaryKey.js +5 -0
  521. package/dist/esm/PrimaryKey.js.map +1 -1
  522. package/dist/esm/Queue.js.map +1 -1
  523. package/dist/esm/ReadonlyArray.js +193 -177
  524. package/dist/esm/ReadonlyArray.js.map +1 -1
  525. package/dist/esm/ReadonlyRecord.js +56 -5
  526. package/dist/esm/ReadonlyRecord.js.map +1 -1
  527. package/dist/esm/RedBlackTree.js.map +1 -1
  528. package/dist/esm/Ref.js.map +1 -1
  529. package/dist/esm/Reloadable.js.map +1 -1
  530. package/dist/esm/Request.js +7 -0
  531. package/dist/esm/Request.js.map +1 -1
  532. package/dist/esm/RequestBlock.js +3 -22
  533. package/dist/esm/RequestBlock.js.map +1 -1
  534. package/dist/esm/RequestResolver.js.map +1 -1
  535. package/dist/esm/Resource.js.map +1 -1
  536. package/dist/esm/STM.js.map +1 -1
  537. package/dist/esm/Schedule.js.map +1 -1
  538. package/dist/esm/Scheduler.js.map +1 -1
  539. package/dist/esm/ScopedCache.js.map +1 -1
  540. package/dist/esm/ScopedRef.js.map +1 -1
  541. package/dist/esm/Sink.js.map +1 -1
  542. package/dist/esm/SortedMap.js +2 -2
  543. package/dist/esm/SortedMap.js.map +1 -1
  544. package/dist/esm/SortedSet.js +2 -2
  545. package/dist/esm/SortedSet.js.map +1 -1
  546. package/dist/esm/Stream.js.map +1 -1
  547. package/dist/esm/Streamable.js +3 -0
  548. package/dist/esm/Streamable.js.map +1 -1
  549. package/dist/esm/String.js.map +1 -1
  550. package/dist/esm/Struct.js.map +1 -1
  551. package/dist/esm/SubscriptionRef.js.map +1 -1
  552. package/dist/esm/Supervisor.js.map +1 -1
  553. package/dist/esm/SynchronizedRef.js.map +1 -1
  554. package/dist/esm/TArray.js.map +1 -1
  555. package/dist/esm/TDeferred.js.map +1 -1
  556. package/dist/esm/TMap.js.map +1 -1
  557. package/dist/esm/TPriorityQueue.js.map +1 -1
  558. package/dist/esm/TPubSub.js.map +1 -1
  559. package/dist/esm/TQueue.js.map +1 -1
  560. package/dist/esm/TRef.js.map +1 -1
  561. package/dist/esm/TSet.js.map +1 -1
  562. package/dist/esm/Take.js.map +1 -1
  563. package/dist/esm/TestAnnotation.js.map +1 -1
  564. package/dist/esm/TestAnnotationMap.js.map +1 -1
  565. package/dist/esm/TestAnnotations.js.map +1 -1
  566. package/dist/esm/TestClock.js.map +1 -1
  567. package/dist/esm/TestContext.js +2 -2
  568. package/dist/esm/TestContext.js.map +1 -1
  569. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  570. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  571. package/dist/esm/Utils.js.map +1 -1
  572. package/dist/esm/internal/Iterable.js.map +1 -1
  573. package/dist/esm/internal/blockedRequests.js +3 -2
  574. package/dist/esm/internal/blockedRequests.js.map +1 -1
  575. package/dist/esm/internal/cache.js +3 -0
  576. package/dist/esm/internal/cache.js.map +1 -1
  577. package/dist/esm/internal/cause.js +1 -1
  578. package/dist/esm/internal/cause.js.map +1 -1
  579. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  580. package/dist/esm/internal/channel/channelState.js +2 -1
  581. package/dist/esm/internal/channel/channelState.js.map +1 -1
  582. package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -1
  583. package/dist/esm/internal/channel/continuation.js +9 -1
  584. package/dist/esm/internal/channel/continuation.js.map +1 -1
  585. package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
  586. package/dist/esm/internal/channel/mergeState.js.map +1 -1
  587. package/dist/esm/internal/channel/mergeStrategy.js.map +1 -1
  588. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  589. package/dist/esm/internal/channel/subexecutor.js.map +1 -1
  590. package/dist/esm/internal/channel/upstreamPullRequest.js +1 -1
  591. package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -1
  592. package/dist/esm/internal/channel/upstreamPullStrategy.js +1 -1
  593. package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -1
  594. package/dist/esm/internal/channel.js.map +1 -1
  595. package/dist/esm/internal/clock.js.map +1 -1
  596. package/dist/esm/internal/concurrency.js.map +1 -1
  597. package/dist/esm/internal/config.js +15 -22
  598. package/dist/esm/internal/config.js.map +1 -1
  599. package/dist/esm/internal/configError.js +2 -2
  600. package/dist/esm/internal/configError.js.map +1 -1
  601. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
  602. package/dist/esm/internal/configProvider.js +5 -3
  603. package/dist/esm/internal/configProvider.js.map +1 -1
  604. package/dist/esm/internal/configSecret.js.map +1 -1
  605. package/dist/esm/internal/context.js +6 -6
  606. package/dist/esm/internal/context.js.map +1 -1
  607. package/dist/esm/internal/core-effect.js +13 -9
  608. package/dist/esm/internal/core-effect.js.map +1 -1
  609. package/dist/esm/internal/core-stream.js +7 -1
  610. package/dist/esm/internal/core-stream.js.map +1 -1
  611. package/dist/esm/internal/core.js +46 -75
  612. package/dist/esm/internal/core.js.map +1 -1
  613. package/dist/esm/internal/data.js.map +1 -1
  614. package/dist/esm/internal/dataSource.js.map +1 -1
  615. package/dist/esm/internal/deferred.js +2 -0
  616. package/dist/esm/internal/deferred.js.map +1 -1
  617. package/dist/esm/internal/differ/chunkPatch.js.map +1 -1
  618. package/dist/esm/internal/differ/contextPatch.js.map +1 -1
  619. package/dist/esm/internal/differ/hashMapPatch.js.map +1 -1
  620. package/dist/esm/internal/differ/hashSetPatch.js.map +1 -1
  621. package/dist/esm/internal/differ/orPatch.js.map +1 -1
  622. package/dist/esm/internal/differ.js.map +1 -1
  623. package/dist/esm/internal/effect/circular.js +1 -0
  624. package/dist/esm/internal/effect/circular.js.map +1 -1
  625. package/dist/esm/internal/effectable.js +17 -4
  626. package/dist/esm/internal/effectable.js.map +1 -1
  627. package/dist/esm/internal/either.js +2 -2
  628. package/dist/esm/internal/either.js.map +1 -1
  629. package/dist/esm/internal/encoding/base64.js.map +1 -1
  630. package/dist/esm/internal/encoding/base64Url.js.map +1 -1
  631. package/dist/esm/internal/encoding/common.js.map +1 -1
  632. package/dist/esm/internal/encoding/hex.js.map +1 -1
  633. package/dist/esm/internal/executionStrategy.js.map +1 -1
  634. package/dist/esm/internal/fiber.js +2 -0
  635. package/dist/esm/internal/fiber.js.map +1 -1
  636. package/dist/esm/internal/fiberId.js +4 -4
  637. package/dist/esm/internal/fiberId.js.map +1 -1
  638. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  639. package/dist/esm/internal/fiberRefs.js.map +1 -1
  640. package/dist/esm/internal/fiberRuntime.js +169 -205
  641. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  642. package/dist/esm/internal/groupBy.js +4 -1
  643. package/dist/esm/internal/groupBy.js.map +1 -1
  644. package/dist/esm/internal/hashMap/array.js.map +1 -1
  645. package/dist/esm/internal/hashMap/node.js.map +1 -1
  646. package/dist/esm/internal/hashMap.js +2 -2
  647. package/dist/esm/internal/hashMap.js.map +1 -1
  648. package/dist/esm/internal/hashSet.js +2 -2
  649. package/dist/esm/internal/hashSet.js.map +1 -1
  650. package/dist/esm/internal/keyedPool.js +3 -0
  651. package/dist/esm/internal/keyedPool.js.map +1 -1
  652. package/dist/esm/internal/layer.js +22 -52
  653. package/dist/esm/internal/layer.js.map +1 -1
  654. package/dist/esm/internal/logger.js +2 -1
  655. package/dist/esm/internal/logger.js.map +1 -1
  656. package/dist/esm/internal/matcher.js.map +1 -1
  657. package/dist/esm/internal/metric/hook.js +2 -1
  658. package/dist/esm/internal/metric/hook.js.map +1 -1
  659. package/dist/esm/internal/metric/key.js +1 -1
  660. package/dist/esm/internal/metric/key.js.map +1 -1
  661. package/dist/esm/internal/metric/keyType.js +2 -1
  662. package/dist/esm/internal/metric/keyType.js.map +1 -1
  663. package/dist/esm/internal/metric/pair.js +1 -1
  664. package/dist/esm/internal/metric/pair.js.map +1 -1
  665. package/dist/esm/internal/metric/polling.js.map +1 -1
  666. package/dist/esm/internal/metric/registry.js.map +1 -1
  667. package/dist/esm/internal/metric/state.js +1 -1
  668. package/dist/esm/internal/metric/state.js.map +1 -1
  669. package/dist/esm/internal/metric.js +7 -5
  670. package/dist/esm/internal/metric.js.map +1 -1
  671. package/dist/esm/internal/opCodes/layer.js +3 -3
  672. package/dist/esm/internal/opCodes/layer.js.map +1 -1
  673. package/dist/esm/internal/option.js +2 -2
  674. package/dist/esm/internal/option.js.map +1 -1
  675. package/dist/esm/internal/pool.js +2 -0
  676. package/dist/esm/internal/pool.js.map +1 -1
  677. package/dist/esm/internal/pubsub.js +1 -1
  678. package/dist/esm/internal/pubsub.js.map +1 -1
  679. package/dist/esm/internal/query.js +1 -1
  680. package/dist/esm/internal/query.js.map +1 -1
  681. package/dist/esm/internal/queue.js +6 -4
  682. package/dist/esm/internal/queue.js.map +1 -1
  683. package/dist/esm/internal/random.js.map +1 -1
  684. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
  685. package/dist/esm/internal/redBlackTree.js +4 -2
  686. package/dist/esm/internal/redBlackTree.js.map +1 -1
  687. package/dist/esm/internal/ref.js +1 -0
  688. package/dist/esm/internal/ref.js.map +1 -1
  689. package/dist/esm/internal/reloadable.js +1 -1
  690. package/dist/esm/internal/reloadable.js.map +1 -1
  691. package/dist/esm/internal/request.js +4 -1
  692. package/dist/esm/internal/request.js.map +1 -1
  693. package/dist/esm/internal/resource.js +2 -1
  694. package/dist/esm/internal/resource.js.map +1 -1
  695. package/dist/esm/internal/ringBuffer.js.map +1 -1
  696. package/dist/esm/internal/runtime.js +2 -2
  697. package/dist/esm/internal/runtime.js.map +1 -1
  698. package/dist/esm/internal/runtimeFlags.js.map +1 -1
  699. package/dist/esm/internal/schedule/interval.js.map +1 -1
  700. package/dist/esm/internal/schedule/intervals.js.map +1 -1
  701. package/dist/esm/internal/schedule.js +6 -1
  702. package/dist/esm/internal/schedule.js.map +1 -1
  703. package/dist/esm/internal/scopedCache.js +5 -2
  704. package/dist/esm/internal/scopedCache.js.map +1 -1
  705. package/dist/esm/internal/scopedRef.js +1 -0
  706. package/dist/esm/internal/scopedRef.js.map +1 -1
  707. package/dist/esm/internal/sink.js +5 -1
  708. package/dist/esm/internal/sink.js.map +1 -1
  709. package/dist/esm/internal/stm/core.js +3 -1
  710. package/dist/esm/internal/stm/core.js.map +1 -1
  711. package/dist/esm/internal/stm/stm/journal.js.map +1 -1
  712. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  713. package/dist/esm/internal/stm/stm/tExit.js +2 -1
  714. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  715. package/dist/esm/internal/stm/stm.js.map +1 -1
  716. package/dist/esm/internal/stm/tArray.js +1 -1
  717. package/dist/esm/internal/stm/tArray.js.map +1 -1
  718. package/dist/esm/internal/stm/tMap.js +2 -1
  719. package/dist/esm/internal/stm/tMap.js.map +1 -1
  720. package/dist/esm/internal/stm/tPriorityQueue.js +1 -1
  721. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  722. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  723. package/dist/esm/internal/stm/tQueue.js +2 -0
  724. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  725. package/dist/esm/internal/stm/tRandom.js.map +1 -1
  726. package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
  727. package/dist/esm/internal/stm/tRef.js +1 -1
  728. package/dist/esm/internal/stm/tRef.js.map +1 -1
  729. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  730. package/dist/esm/internal/stm/tSet.js +1 -1
  731. package/dist/esm/internal/stm/tSet.js.map +1 -1
  732. package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
  733. package/dist/esm/internal/stream/handoff.js +1 -1
  734. package/dist/esm/internal/stream/handoff.js.map +1 -1
  735. package/dist/esm/internal/stream.js +1 -1
  736. package/dist/esm/internal/stream.js.map +1 -1
  737. package/dist/esm/internal/string-utils.js.map +1 -1
  738. package/dist/esm/internal/subscriptionRef.js +1 -1
  739. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  740. package/dist/esm/internal/supervisor/patch.js.map +1 -1
  741. package/dist/esm/internal/supervisor.js +1 -0
  742. package/dist/esm/internal/supervisor.js.map +1 -1
  743. package/dist/esm/internal/synchronizedRef.js.map +1 -1
  744. package/dist/esm/internal/take.js +2 -1
  745. package/dist/esm/internal/take.js.map +1 -1
  746. package/dist/esm/internal/version.js +1 -1
  747. package/package.json +1 -1
  748. package/src/BigDecimal.ts +7 -7
  749. package/src/Cache.ts +4 -3
  750. package/src/Cause.ts +2 -1
  751. package/src/Channel.ts +8 -7
  752. package/src/Chunk.ts +66 -57
  753. package/src/Config.ts +16 -16
  754. package/src/Context.ts +4 -3
  755. package/src/Data.ts +4 -4
  756. package/src/Deferred.ts +3 -2
  757. package/src/Differ.ts +15 -14
  758. package/src/Duration.ts +54 -2
  759. package/src/Effect.ts +18 -29
  760. package/src/Either.ts +65 -10
  761. package/src/Equivalence.ts +1 -1
  762. package/src/Fiber.ts +5 -4
  763. package/src/FiberRef.ts +8 -1
  764. package/src/GroupBy.ts +5 -4
  765. package/src/HKT.ts +5 -4
  766. package/src/Inspectable.ts +2 -4
  767. package/src/KeyedPool.ts +4 -3
  768. package/src/Layer.ts +19 -56
  769. package/src/List.ts +44 -43
  770. package/src/Logger.ts +3 -2
  771. package/src/Match.ts +50 -38
  772. package/src/MergeDecision.ts +6 -5
  773. package/src/Metric.ts +8 -5
  774. package/src/MetricHook.ts +3 -2
  775. package/src/MetricKey.ts +2 -1
  776. package/src/MetricKeyType.ts +3 -2
  777. package/src/MetricPair.ts +2 -1
  778. package/src/MetricState.ts +2 -1
  779. package/src/MutableHashMap.ts +2 -2
  780. package/src/MutableHashSet.ts +2 -2
  781. package/src/MutableList.ts +2 -2
  782. package/src/MutableQueue.ts +2 -2
  783. package/src/MutableRef.ts +2 -2
  784. package/src/Option.ts +32 -14
  785. package/src/Order.ts +1 -1
  786. package/src/Pool.ts +18 -19
  787. package/src/PrimaryKey.ts +6 -0
  788. package/src/Queue.ts +5 -4
  789. package/src/ReadonlyArray.ts +300 -324
  790. package/src/ReadonlyRecord.ts +60 -5
  791. package/src/RedBlackTree.ts +3 -2
  792. package/src/Ref.ts +2 -1
  793. package/src/Reloadable.ts +2 -1
  794. package/src/Request.ts +15 -3
  795. package/src/RequestBlock.ts +22 -61
  796. package/src/RequestResolver.ts +3 -2
  797. package/src/Resource.ts +3 -2
  798. package/src/STM.ts +4 -3
  799. package/src/Schedule.ts +7 -6
  800. package/src/ScopedCache.ts +4 -3
  801. package/src/ScopedRef.ts +2 -1
  802. package/src/Sink.ts +6 -5
  803. package/src/SortedMap.ts +5 -4
  804. package/src/SortedSet.ts +4 -3
  805. package/src/Stream.ts +5 -4
  806. package/src/Streamable.ts +3 -0
  807. package/src/SubscriptionRef.ts +2 -1
  808. package/src/Supervisor.ts +2 -1
  809. package/src/SynchronizedRef.ts +2 -1
  810. package/src/TArray.ts +2 -1
  811. package/src/TDeferred.ts +3 -2
  812. package/src/TMap.ts +3 -2
  813. package/src/TPriorityQueue.ts +2 -1
  814. package/src/TPubSub.ts +2 -1
  815. package/src/TQueue.ts +3 -2
  816. package/src/TRef.ts +2 -1
  817. package/src/TSet.ts +2 -1
  818. package/src/Take.ts +3 -2
  819. package/src/TestAnnotation.ts +2 -2
  820. package/src/TestContext.ts +5 -4
  821. package/src/Types.ts +24 -0
  822. package/src/UpstreamPullRequest.ts +2 -1
  823. package/src/UpstreamPullStrategy.ts +2 -1
  824. package/src/Utils.ts +6 -5
  825. package/src/internal/blockedRequests.ts +78 -81
  826. package/src/internal/cache.ts +3 -0
  827. package/src/internal/cause.ts +1 -1
  828. package/src/internal/channel/channelState.ts +5 -3
  829. package/src/internal/channel/continuation.ts +19 -10
  830. package/src/internal/channel/upstreamPullRequest.ts +1 -1
  831. package/src/internal/channel/upstreamPullStrategy.ts +1 -1
  832. package/src/internal/config.ts +15 -23
  833. package/src/internal/configError.ts +2 -2
  834. package/src/internal/configProvider.ts +6 -4
  835. package/src/internal/context.ts +6 -6
  836. package/src/internal/core-effect.ts +27 -30
  837. package/src/internal/core-stream.ts +7 -1
  838. package/src/internal/core.ts +78 -118
  839. package/src/internal/deferred.ts +2 -0
  840. package/src/internal/effect/circular.ts +1 -0
  841. package/src/internal/effectable.ts +18 -4
  842. package/src/internal/either.ts +2 -2
  843. package/src/internal/fiber.ts +2 -0
  844. package/src/internal/fiberId.ts +4 -4
  845. package/src/internal/fiberRuntime.ts +228 -269
  846. package/src/internal/groupBy.ts +4 -1
  847. package/src/internal/hashMap.ts +2 -2
  848. package/src/internal/hashSet.ts +2 -2
  849. package/src/internal/keyedPool.ts +3 -0
  850. package/src/internal/layer.ts +29 -77
  851. package/src/internal/logger.ts +2 -1
  852. package/src/internal/metric/hook.ts +2 -1
  853. package/src/internal/metric/key.ts +1 -1
  854. package/src/internal/metric/keyType.ts +2 -1
  855. package/src/internal/metric/pair.ts +1 -1
  856. package/src/internal/metric/state.ts +1 -1
  857. package/src/internal/metric.ts +8 -5
  858. package/src/internal/opCodes/layer.ts +6 -6
  859. package/src/internal/option.ts +2 -2
  860. package/src/internal/pool.ts +2 -0
  861. package/src/internal/pubsub.ts +2 -1
  862. package/src/internal/query.ts +1 -1
  863. package/src/internal/queue.ts +18 -10
  864. package/src/internal/redBlackTree.ts +4 -2
  865. package/src/internal/ref.ts +1 -0
  866. package/src/internal/reloadable.ts +1 -1
  867. package/src/internal/request.ts +14 -1
  868. package/src/internal/resource.ts +2 -1
  869. package/src/internal/runtime.ts +2 -2
  870. package/src/internal/schedule.ts +6 -1
  871. package/src/internal/scopedCache.ts +7 -2
  872. package/src/internal/scopedRef.ts +1 -0
  873. package/src/internal/sink.ts +5 -1
  874. package/src/internal/stm/core.ts +3 -1
  875. package/src/internal/stm/stm/tExit.ts +5 -3
  876. package/src/internal/stm/tArray.ts +1 -1
  877. package/src/internal/stm/tMap.ts +2 -1
  878. package/src/internal/stm/tPriorityQueue.ts +1 -1
  879. package/src/internal/stm/tQueue.ts +2 -0
  880. package/src/internal/stm/tRef.ts +1 -1
  881. package/src/internal/stm/tSet.ts +1 -1
  882. package/src/internal/stream/handoff.ts +1 -1
  883. package/src/internal/stream.ts +2 -2
  884. package/src/internal/subscriptionRef.ts +1 -1
  885. package/src/internal/supervisor.ts +1 -0
  886. package/src/internal/take.ts +2 -1
  887. package/src/internal/version.ts +1 -1
package/src/Config.ts CHANGED
@@ -13,6 +13,7 @@ import type * as LogLevel from "./LogLevel.js"
13
13
  import type * as Option from "./Option.js"
14
14
  import type { Pipeable } from "./Pipeable.js"
15
15
  import type { Predicate, Refinement } from "./Predicate.js"
16
+ import type * as Types from "./Types.js"
16
17
 
17
18
  /**
18
19
  * @since 2.0.0
@@ -44,7 +45,7 @@ export declare namespace Config {
44
45
  */
45
46
  export interface Variance<out A> {
46
47
  readonly [ConfigTypeId]: {
47
- readonly _A: (_: never) => A
48
+ readonly _A: Types.Covariant<A>
48
49
  }
49
50
  }
50
51
 
@@ -100,7 +101,7 @@ export const all: <const Arg extends Iterable<Config<any>> | Record<string, Conf
100
101
  * @since 2.0.0
101
102
  * @category constructors
102
103
  */
103
- export const array: <A>(config: Config<A>, name?: string | undefined) => Config<ReadonlyArray<A>> = internal.array
104
+ export const array: <A>(config: Config<A>, name?: string) => Config<ReadonlyArray<A>> = internal.array
104
105
 
105
106
  /**
106
107
  * Constructs a config for a boolean value.
@@ -108,7 +109,7 @@ export const array: <A>(config: Config<A>, name?: string | undefined) => Config<
108
109
  * @since 2.0.0
109
110
  * @category constructors
110
111
  */
111
- export const boolean: (name?: string | undefined) => Config<boolean> = internal.boolean
112
+ export const boolean: (name?: string) => Config<boolean> = internal.boolean
112
113
 
113
114
  /**
114
115
  * Constructs a config for a sequence of values.
@@ -116,7 +117,7 @@ export const boolean: (name?: string | undefined) => Config<boolean> = internal.
116
117
  * @since 2.0.0
117
118
  * @category constructors
118
119
  */
119
- export const chunk: <A>(config: Config<A>, name?: string | undefined) => Config<Chunk.Chunk<A>> = internal.chunk
120
+ export const chunk: <A>(config: Config<A>, name?: string) => Config<Chunk.Chunk<A>> = internal.chunk
120
121
 
121
122
  /**
122
123
  * Constructs a config for a date value.
@@ -124,7 +125,7 @@ export const chunk: <A>(config: Config<A>, name?: string | undefined) => Config<
124
125
  * @since 2.0.0
125
126
  * @category constructors
126
127
  */
127
- export const date: (name?: string | undefined) => Config<Date> = internal.date
128
+ export const date: (name?: string) => Config<Date> = internal.date
128
129
 
129
130
  /**
130
131
  * Constructs a config that fails with the specified message.
@@ -140,7 +141,7 @@ export const fail: (message: string) => Config<never> = internal.fail
140
141
  * @since 2.0.0
141
142
  * @category constructors
142
143
  */
143
- export const number: (name?: string | undefined) => Config<number> = internal.number
144
+ export const number: (name?: string) => Config<number> = internal.number
144
145
 
145
146
  /**
146
147
  * Constructs a config for a integer value.
@@ -148,7 +149,7 @@ export const number: (name?: string | undefined) => Config<number> = internal.nu
148
149
  * @since 2.0.0
149
150
  * @category constructors
150
151
  */
151
- export const integer: (name?: string | undefined) => Config<number> = internal.integer
152
+ export const integer: (name?: string) => Config<number> = internal.integer
152
153
 
153
154
  /**
154
155
  * Constructs a config for a `LogLevel` value.
@@ -156,7 +157,7 @@ export const integer: (name?: string | undefined) => Config<number> = internal.i
156
157
  * @since 2.0.0
157
158
  * @category constructors
158
159
  */
159
- export const logLevel: (name?: string | undefined) => Config<LogLevel.LogLevel> = internal.logLevel
160
+ export const logLevel: (name?: string) => Config<LogLevel.LogLevel> = internal.logLevel
160
161
 
161
162
  /**
162
163
  * This function returns `true` if the specified value is an `Config` value,
@@ -182,7 +183,7 @@ export const isConfig: (u: unknown) => u is Config<unknown> = internal.isConfig
182
183
  * a different value, constructed using the specified function.
183
184
  *
184
185
  * @since 2.0.0
185
- * @category utils
186
+ * @category mapping
186
187
  */
187
188
  export const map: {
188
189
  <A, B>(f: (a: A) => B): (self: Config<A>) => Config<B>
@@ -299,7 +300,7 @@ export const repeat: <A>(self: Config<A>) => Config<Array<A>> = internal.repeat
299
300
  * @since 2.0.0
300
301
  * @category constructors
301
302
  */
302
- export const secret: (name?: string | undefined) => Config<ConfigSecret.ConfigSecret> = internal.secret
303
+ export const secret: (name?: string) => Config<ConfigSecret.ConfigSecret> = internal.secret
303
304
 
304
305
  /**
305
306
  * Constructs a config for a sequence of values.
@@ -307,7 +308,7 @@ export const secret: (name?: string | undefined) => Config<ConfigSecret.ConfigSe
307
308
  * @since 2.0.0
308
309
  * @category constructors
309
310
  */
310
- export const hashSet: <A>(config: Config<A>, name?: string | undefined) => Config<HashSet.HashSet<A>> = internal.hashSet
311
+ export const hashSet: <A>(config: Config<A>, name?: string) => Config<HashSet.HashSet<A>> = internal.hashSet
311
312
 
312
313
  /**
313
314
  * Constructs a config for a string value.
@@ -315,7 +316,7 @@ export const hashSet: <A>(config: Config<A>, name?: string | undefined) => Confi
315
316
  * @since 2.0.0
316
317
  * @category constructors
317
318
  */
318
- export const string: (name?: string | undefined) => Config<string> = internal.string
319
+ export const string: (name?: string) => Config<string> = internal.string
319
320
 
320
321
  /**
321
322
  * Constructs a config which contains the specified value.
@@ -347,8 +348,7 @@ export const sync: <A>(value: LazyArg<A>) => Config<A> = internal.sync
347
348
  * @since 2.0.0
348
349
  * @category constructors
349
350
  */
350
- export const hashMap: <A>(config: Config<A>, name?: string | undefined) => Config<HashMap.HashMap<string, A>> =
351
- internal.hashMap
351
+ export const hashMap: <A>(config: Config<A>, name?: string) => Config<HashMap.HashMap<string, A>> = internal.hashMap
352
352
 
353
353
  /**
354
354
  * Constructs a config from some configuration wrapped with the `Wrap<A>` utility type.
@@ -427,7 +427,7 @@ export const withDescription: {
427
427
  * config.
428
428
  *
429
429
  * @since 2.0.0
430
- * @category utils
430
+ * @category zipping
431
431
  */
432
432
  export const zip: {
433
433
  <B>(that: Config<B>): <A>(self: Config<A>) => Config<[A, B]>
@@ -439,7 +439,7 @@ export const zip: {
439
439
  * using the provided function.
440
440
  *
441
441
  * @since 2.0.0
442
- * @category utils
442
+ * @category zipping
443
443
  */
444
444
  export const zipWith: {
445
445
  <B, A, C>(that: Config<B>, f: (a: A, b: B) => C): (self: Config<A>) => Config<C>
package/src/Context.ts CHANGED
@@ -12,6 +12,7 @@ import type { Inspectable } from "./Inspectable.js"
12
12
  import * as internal from "./internal/context.js"
13
13
  import type { Option } from "./Option.js"
14
14
  import type { Pipeable } from "./Pipeable.js"
15
+ import type * as Types from "./Types.js"
15
16
  import type * as Unify from "./Unify.js"
16
17
 
17
18
  const TagTypeId: unique symbol = internal.TagTypeId
@@ -30,8 +31,8 @@ export interface Tag<in out Identifier, in out Service> extends Pipeable, Inspec
30
31
  readonly _tag: "Tag"
31
32
  readonly _op: "Tag"
32
33
  readonly [TagTypeId]: {
33
- readonly _S: (_: Service) => Service
34
- readonly _I: (_: Identifier) => Identifier
34
+ readonly _Service: Types.Invariant<Service>
35
+ readonly _Identifier: Types.Invariant<Identifier>
35
36
  }
36
37
  of(self: Service): Service
37
38
  context(self: Service): Context<Identifier>
@@ -113,7 +114,7 @@ export type ValidTagsById<R> = R extends infer S ? Tag<S, any> : never
113
114
  */
114
115
  export interface Context<in Services> extends Equal, Pipeable, Inspectable {
115
116
  readonly [TypeId]: {
116
- readonly _S: (_: Services) => unknown
117
+ readonly _Services: Types.Contravariant<Services>
117
118
  }
118
119
  readonly unsafeMap: Map<Tag<any, any>, any>
119
120
  }
package/src/Data.ts CHANGED
@@ -207,7 +207,7 @@ export const tagged = <A extends Case & { readonly _tag: string }>(
207
207
  * @since 2.0.0
208
208
  * @category constructors
209
209
  */
210
- export const Class: new<A extends Record<string, any>>(
210
+ export const Class: new<A extends Record<string, any> = {}>(
211
211
  args: Types.Equals<Omit<A, keyof Equal.Equal>, {}> extends true ? void
212
212
  : { readonly [P in keyof A as P extends keyof Equal.Equal ? never : P]: A[P] }
213
213
  ) => Data<Readonly<A>> = internal.Structural as any
@@ -237,7 +237,7 @@ export const Class: new<A extends Record<string, any>>(
237
237
  */
238
238
  export const TaggedClass = <Tag extends string>(
239
239
  tag: Tag
240
- ): new<A extends Record<string, any>>(
240
+ ): new<A extends Record<string, any> = {}>(
241
241
  args: Types.Equals<Omit<A, keyof Equal.Equal>, {}> extends true ? void
242
242
  : { readonly [P in keyof A as P extends "_tag" | keyof Equal.Equal ? never : P]: A[P] }
243
243
  ) => Data<Readonly<A> & { readonly _tag: Tag }> => {
@@ -446,7 +446,7 @@ export const taggedEnum: {
446
446
  * @since 2.0.0
447
447
  * @category constructors
448
448
  */
449
- export const Error: new<A extends Record<string, any>>(
449
+ export const Error: new<A extends Record<string, any> = {}>(
450
450
  args: Types.Equals<Omit<A, keyof Equal.Equal>, {}> extends true ? void
451
451
  : { readonly [P in keyof A as P extends keyof Equal.Equal ? never : P]: A[P] }
452
452
  ) => Cause.YieldableError & Readonly<A> = (function() {
@@ -464,7 +464,7 @@ export const Error: new<A extends Record<string, any>>(
464
464
  * @since 2.0.0
465
465
  * @category constructors
466
466
  */
467
- export const TaggedError = <Tag extends string>(tag: Tag): new<A extends Record<string, any>>(
467
+ export const TaggedError = <Tag extends string>(tag: Tag): new<A extends Record<string, any> = {}>(
468
468
  args: Types.Equals<Omit<A, keyof Equal.Equal>, {}> extends true ? void
469
469
  : { readonly [P in keyof A as P extends "_tag" | keyof Equal.Equal ? never : P]: A[P] }
470
470
  ) => Cause.YieldableError & { readonly _tag: Tag } & Readonly<A> => {
package/src/Deferred.ts CHANGED
@@ -11,6 +11,7 @@ import * as internal from "./internal/deferred.js"
11
11
  import type * as MutableRef from "./MutableRef.js"
12
12
  import type * as Option from "./Option.js"
13
13
  import type { Pipeable } from "./Pipeable.js"
14
+ import type * as Types from "./Types.js"
14
15
 
15
16
  /**
16
17
  * @since 2.0.0
@@ -53,8 +54,8 @@ export declare namespace Deferred {
53
54
  */
54
55
  export interface Variance<in out E, in out A> {
55
56
  readonly [DeferredTypeId]: {
56
- readonly _E: (_: E) => E
57
- readonly _A: (_: A) => A
57
+ readonly _E: Types.Invariant<E>
58
+ readonly _A: Types.Invariant<A>
58
59
  }
59
60
  }
60
61
  }
package/src/Differ.ts CHANGED
@@ -14,6 +14,7 @@ import * as ContextPatch from "./internal/differ/contextPatch.js"
14
14
  import * as HashMapPatch from "./internal/differ/hashMapPatch.js"
15
15
  import * as HashSetPatch from "./internal/differ/hashSetPatch.js"
16
16
  import * as OrPatch from "./internal/differ/orPatch.js"
17
+ import type * as Types from "./Types.js"
17
18
 
18
19
  /**
19
20
  * @since 2.0.0
@@ -48,8 +49,8 @@ export type TypeId = typeof TypeId
48
49
  */
49
50
  export interface Differ<in out Value, in out Patch> {
50
51
  readonly [TypeId]: {
51
- readonly _V: (_: Value) => Value
52
- readonly _P: (_: Patch) => Patch
52
+ readonly _V: Types.Invariant<Value>
53
+ readonly _P: Types.Invariant<Patch>
53
54
  }
54
55
  readonly empty: Patch
55
56
  diff(oldValue: Value, newValue: Value): Patch
@@ -86,8 +87,8 @@ export declare namespace Differ {
86
87
  */
87
88
  export interface Patch<in Input, out Output> extends Equal {
88
89
  readonly [ContextPatchTypeId]: {
89
- readonly _Input: (_: Input) => void
90
- readonly _Output: (_: never) => Output
90
+ readonly _Input: Types.Contravariant<Input>
91
+ readonly _Output: Types.Covariant<Output>
91
92
  }
92
93
  }
93
94
  }
@@ -109,8 +110,8 @@ export declare namespace Differ {
109
110
  */
110
111
  export interface Patch<in out Value, in out Patch> extends Equal {
111
112
  readonly [ChunkPatchTypeId]: {
112
- readonly _Value: (_: Value) => Value
113
- readonly _Patch: (_: Patch) => Patch
113
+ readonly _Value: Types.Invariant<Value>
114
+ readonly _Patch: Types.Invariant<Patch>
114
115
  }
115
116
  }
116
117
  }
@@ -132,9 +133,9 @@ export declare namespace Differ {
132
133
  */
133
134
  export interface Patch<in out Key, in out Value, in out Patch> extends Equal {
134
135
  readonly [HashMapPatchTypeId]: {
135
- readonly _Key: (_: Key) => Key
136
- readonly _Value: (_: Value) => Value
137
- readonly _Patch: (_: Patch) => Patch
136
+ readonly _Key: Types.Invariant<Key>
137
+ readonly _Value: Types.Invariant<Value>
138
+ readonly _Patch: Types.Invariant<Patch>
138
139
  }
139
140
  }
140
141
  }
@@ -156,7 +157,7 @@ export declare namespace Differ {
156
157
  */
157
158
  export interface Patch<in out Value> extends Equal {
158
159
  readonly [HashSetPatchTypeId]: {
159
- readonly _Value: (_: Value) => Value
160
+ readonly _Value: Types.Invariant<Value>
160
161
  }
161
162
  }
162
163
  }
@@ -178,10 +179,10 @@ export declare namespace Differ {
178
179
  */
179
180
  export interface Patch<in out Value, in out Value2, in out Patch, in out Patch2> extends Equal {
180
181
  readonly [OrPatchTypeId]: {
181
- readonly _Value: (_: Value) => Value
182
- readonly _Value2: (_: Value2) => Value2
183
- readonly _Patch: (_: Patch) => Patch
184
- readonly _Patch2: (_: Patch2) => Patch2
182
+ readonly _Value: Types.Invariant<Value>
183
+ readonly _Value2: Types.Invariant<Value2>
184
+ readonly _Patch: Types.Invariant<Patch>
185
+ readonly _Patch2: Types.Invariant<Patch2>
185
186
  }
186
187
  }
187
188
  }
package/src/Duration.ts CHANGED
@@ -6,7 +6,7 @@ import type * as equivalence from "./Equivalence.js"
6
6
  import { dual } from "./Function.js"
7
7
  import * as Hash from "./Hash.js"
8
8
  import type { Inspectable } from "./Inspectable.js"
9
- import { NodeInspectSymbol, toString } from "./Inspectable.js"
9
+ import { NodeInspectSymbol } from "./Inspectable.js"
10
10
  import * as Option from "./Option.js"
11
11
  import * as order from "./Order.js"
12
12
  import type { Pipeable } from "./Pipeable.js"
@@ -123,7 +123,7 @@ const DurationProto: Omit<Duration, "value"> = {
123
123
  return isDuration(that) && equals(this, that)
124
124
  },
125
125
  toString(this: Duration) {
126
- return toString(this.toJSON())
126
+ return `Duration(${format(this)})`
127
127
  },
128
128
  toJSON(this: Duration) {
129
129
  switch (this.value._tag) {
@@ -588,3 +588,55 @@ export const equals: {
588
588
  (that: DurationInput): (self: DurationInput) => boolean
589
589
  (self: DurationInput, that: DurationInput): boolean
590
590
  } = dual(2, (self: DurationInput, that: DurationInput): boolean => Equivalence(decode(self), decode(that)))
591
+
592
+ /**
593
+ * Converts a `Duration` to a human readable string.
594
+ * @since 2.0.0
595
+ *
596
+ * @example
597
+ * import * as Duration from "effect/Duration"
598
+ *
599
+ * Duration.format(Duration.millis(1000)) // "1s"
600
+ * Duration.format(Duration.millis(1001)) // "1s 1ms"
601
+ */
602
+ export const format = (self: DurationInput): string => {
603
+ const duration = decode(self)
604
+ const parts = []
605
+
606
+ if (duration.value._tag === "Infinity") {
607
+ return "Infinity"
608
+ }
609
+
610
+ const nanos = unsafeToNanos(duration)
611
+
612
+ if (nanos % 1000000n) {
613
+ parts.push(`${nanos % 1000000n}ns`)
614
+ }
615
+
616
+ const ms = nanos / 1000000n
617
+ if (ms % 1000n !== 0n) {
618
+ parts.push(`${ms % 1000n}ms`)
619
+ }
620
+
621
+ const sec = ms / 1000n
622
+ if (sec % 60n !== 0n) {
623
+ parts.push(`${sec % 60n}s`)
624
+ }
625
+
626
+ const min = sec / 60n
627
+ if (min % 60n !== 0n) {
628
+ parts.push(`${min % 60n}m`)
629
+ }
630
+
631
+ const hr = min / 60n
632
+ if (hr % 24n !== 0n) {
633
+ parts.push(`${hr % 24n}h`)
634
+ }
635
+
636
+ const days = hr / 24n
637
+ if (days !== 0n) {
638
+ parts.push(`${days}d`)
639
+ }
640
+
641
+ return parts.reverse().join(" ")
642
+ }
package/src/Effect.ts CHANGED
@@ -54,7 +54,7 @@ import * as Scheduler from "./Scheduler.js"
54
54
  import type * as Scope from "./Scope.js"
55
55
  import type * as Supervisor from "./Supervisor.js"
56
56
  import type * as Tracer from "./Tracer.js"
57
- import type { Concurrency, NoInfer } from "./Types.js"
57
+ import type { Concurrency, Covariant, NoInfer } from "./Types.js"
58
58
  import type * as Unify from "./Unify.js"
59
59
 
60
60
  // -------------------------------------------------------------------------------------
@@ -137,10 +137,10 @@ export interface EffectTypeLambda extends TypeLambda {
137
137
  * @since 2.0.0
138
138
  * @category models
139
139
  */
140
- export interface Blocked<out R, out E, out A> extends Effect<R, E, A> {
140
+ export interface Blocked<out E, out A> extends Effect<never, E, A> {
141
141
  readonly _op: "Blocked"
142
- readonly i0: RequestBlock<R>
143
- readonly i1: Effect<R, E, A>
142
+ readonly i0: RequestBlock
143
+ readonly i1: Effect<never, E, A>
144
144
  }
145
145
 
146
146
  /**
@@ -209,9 +209,9 @@ export declare namespace Effect {
209
209
  */
210
210
  export interface VarianceStruct<out R, out E, out A> {
211
211
  readonly _V: string
212
- readonly _R: (_: never) => R
213
- readonly _E: (_: never) => E
214
- readonly _A: (_: never) => A
212
+ readonly _R: Covariant<R>
213
+ readonly _E: Covariant<E>
214
+ readonly _A: Covariant<A>
215
215
  }
216
216
  /**
217
217
  * @since 2.0.0
@@ -1512,7 +1512,7 @@ export const catchAll: {
1512
1512
  /**
1513
1513
  * Recovers from both recoverable and unrecoverable errors.
1514
1514
  *
1515
- * See `absorb`, `sandbox`, `mapErrorCause` for other functions that can
1515
+ * See `sandbox`, `mapErrorCause` for other functions that can
1516
1516
  * recover from defects.
1517
1517
  *
1518
1518
  * @since 2.0.0
@@ -1656,10 +1656,9 @@ export const catchTag: {
1656
1656
  export const catchTags: {
1657
1657
  <
1658
1658
  E,
1659
- Cases
1660
- extends (E extends { _tag: string }
1661
- ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
1662
- : {})
1659
+ Cases extends
1660
+ & { [K in Extract<E, { _tag: string }>["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
1661
+ & (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never })
1663
1662
  >(
1664
1663
  cases: Cases
1665
1664
  ): <R, A>(
@@ -1682,10 +1681,9 @@ export const catchTags: {
1682
1681
  R,
1683
1682
  E,
1684
1683
  A,
1685
- Cases
1686
- extends (E extends { _tag: string }
1687
- ? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
1688
- : {})
1684
+ Cases extends
1685
+ & { [K in Extract<E, { _tag: string }>["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect<any, any, any>) }
1686
+ & (unknown extends E ? {} : { [K in Exclude<keyof Cases, Extract<E, { _tag: string }>["_tag"]>]: never })
1689
1687
  >(
1690
1688
  self: Effect<R, E, A>,
1691
1689
  cases: Cases
@@ -2201,7 +2199,7 @@ export const mapError: {
2201
2199
  * function. This can be used to transform errors while preserving the
2202
2200
  * original structure of `Cause`.
2203
2201
  *
2204
- * See `absorb`, `sandbox`, `catchAllCause` for other functions for dealing
2202
+ * See `sandbox`, `catchAllCause` for other functions for dealing
2205
2203
  * with defects.
2206
2204
  *
2207
2205
  * @since 2.0.0
@@ -4882,29 +4880,20 @@ export const ap: {
4882
4880
  * @category requests & batching
4883
4881
  * @since 2.0.0
4884
4882
  */
4885
- export const blocked: <R, E, A>(blockedRequests: RequestBlock<R>, _continue: Effect<R, E, A>) => Blocked<R, E, A> =
4883
+ export const blocked: <E, A>(blockedRequests: RequestBlock, _continue: Effect<never, E, A>) => Blocked<E, A> =
4886
4884
  core.blocked
4887
4885
 
4888
4886
  /**
4889
4887
  * @category requests & batching
4890
4888
  * @since 2.0.0
4891
4889
  */
4892
- export const runRequestBlock: <R>(blockedRequests: RequestBlock<R>) => Blocked<R, never, void> = core.runRequestBlock
4890
+ export const runRequestBlock: <R>(blockedRequests: RequestBlock) => Effect<R, never, void> = core.runRequestBlock
4893
4891
 
4894
4892
  /**
4895
4893
  * @category requests & batching
4896
4894
  * @since 2.0.0
4897
4895
  */
4898
- export const step: <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, Exit.Exit<E, A> | Blocked<R, E, A>> = core.step
4899
-
4900
- /**
4901
- * @category requests & batching
4902
- * @since 2.0.0
4903
- */
4904
- export const flatMapStep: <R, E, A, R1, E1, B>(
4905
- self: Effect<R, E, A>,
4906
- f: (step: Exit.Exit<E, A> | Blocked<R, E, A>) => Effect<R1, E1, B>
4907
- ) => Effect<R | R1, E1, B> = core.flatMapStep
4896
+ export const step: <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, Exit.Exit<E, A> | Blocked<E, A>> = core.step
4908
4897
 
4909
4898
  /**
4910
4899
  * @since 2.0.0
package/src/Either.ts CHANGED
@@ -11,7 +11,9 @@ import type { Inspectable } from "./Inspectable.js"
11
11
  import * as either from "./internal/either.js"
12
12
  import type { Option } from "./Option.js"
13
13
  import type { Pipeable } from "./Pipeable.js"
14
+ import type { Predicate, Refinement } from "./Predicate.js"
14
15
  import { isFunction } from "./Predicate.js"
16
+ import type * as Types from "./Types.js"
15
17
  import type * as Unify from "./Unify.js"
16
18
  import * as Gen from "./Utils.js"
17
19
 
@@ -42,8 +44,8 @@ export interface Left<out E, out A> extends Data.Case, Pipeable, Inspectable {
42
44
  readonly _op: "Left"
43
45
  readonly left: E
44
46
  readonly [TypeId]: {
45
- readonly _A: (_: never) => A
46
- readonly _E: (_: never) => E
47
+ readonly _A: Types.Covariant<A>
48
+ readonly _E: Types.Covariant<E>
47
49
  }
48
50
  [Unify.typeSymbol]?: unknown
49
51
  [Unify.unifySymbol]?: EitherUnify<this>
@@ -59,8 +61,8 @@ export interface Right<out E, out A> extends Data.Case, Pipeable, Inspectable {
59
61
  readonly _op: "Right"
60
62
  readonly right: A
61
63
  readonly [TypeId]: {
62
- readonly _A: (_: never) => A
63
- readonly _E: (_: never) => E
64
+ readonly _A: Types.Covariant<A>
65
+ readonly _E: Types.Covariant<E>
64
66
  }
65
67
  [Unify.typeSymbol]?: unknown
66
68
  [Unify.unifySymbol]?: EitherUnify<this>
@@ -374,6 +376,59 @@ export const match: {
374
376
  }): B | C => isLeft(self) ? onLeft(self.left) : onRight(self.right)
375
377
  )
376
378
 
379
+ /**
380
+ * Filter the right value with the provided function.
381
+ * If the predicate fails, set the left value with the result of the provided function.
382
+ *
383
+ * @example
384
+ * import * as E from 'effect/Either'
385
+ * import { pipe } from 'effect/Function'
386
+ *
387
+ * const isPositive = (n: number): boolean => n > 0
388
+ *
389
+ * assert.deepStrictEqual(
390
+ * pipe(
391
+ * E.right(1),
392
+ * E.filterOrLeft(isPositive, n => `${n} is not positive`)
393
+ * ),
394
+ * E.right(1)
395
+ * )
396
+ * assert.deepStrictEqual(
397
+ * pipe(
398
+ * E.right(0),
399
+ * E.filterOrLeft(isPositive, n => `${n} is not positive`)
400
+ * ),
401
+ * E.left("0 is not positive")
402
+ * )
403
+ *
404
+ * @since 2.0.0
405
+ * @category filtering & conditionals
406
+ */
407
+ export const filterOrLeft: {
408
+ <A, B extends A, X extends A, E2>(
409
+ filter: Refinement<A, B>,
410
+ orLeftWith: (a: X) => E2
411
+ ): <E>(self: Either<E, A>) => Either<E2 | E, B>
412
+ <A, X extends A, Y extends A, E2>(
413
+ filter: Predicate<X>,
414
+ orLeftWith: (a: Y) => E2
415
+ ): <E>(self: Either<E, A>) => Either<E2 | E, A>
416
+ <E, A, B extends A, X extends A, E2>(
417
+ self: Either<E, A>,
418
+ filter: Refinement<A, B>,
419
+ orLeftWith: (a: X) => E2
420
+ ): Either<E | E2, B>
421
+ <E, A, X extends A, Y extends A, E2>(
422
+ self: Either<E, A>,
423
+ filter: Predicate<X>,
424
+ orLeftWith: (a: Y) => E2
425
+ ): Either<E | E2, A>
426
+ } = dual(3, <E, A, E2>(
427
+ self: Either<E, A>,
428
+ filter: Predicate<A>,
429
+ orLeftWith: (a: A) => E2
430
+ ): Either<E | E2, A> => flatMap(self, (a) => filter(a) ? right(a) : left(orLeftWith(a))))
431
+
377
432
  /**
378
433
  * @category getters
379
434
  * @since 2.0.0
@@ -527,8 +582,8 @@ export const andThen: {
527
582
  )
528
583
 
529
584
  /**
585
+ * @category zipping
530
586
  * @since 2.0.0
531
- * @category combining
532
587
  */
533
588
  export const zipWith: {
534
589
  <E2, A2, A, B>(
@@ -560,13 +615,13 @@ export const ap: {
560
615
  )
561
616
 
562
617
  /**
563
- * Takes a structure of `Option`s and returns an `Option` of values with the same structure.
618
+ * Takes a structure of `Either`s and returns an `Either` of values with the same structure.
564
619
  *
565
- * - If a tuple is supplied, then the returned `Option` will contain a tuple with the same length.
566
- * - If a struct is supplied, then the returned `Option` will contain a struct with the same keys.
567
- * - If an iterable is supplied, then the returned `Option` will contain an array.
620
+ * - If a tuple is supplied, then the returned `Either` will contain a tuple with the same length.
621
+ * - If a struct is supplied, then the returned `Either` will contain a struct with the same keys.
622
+ * - If an iterable is supplied, then the returned `Either` will contain an array.
568
623
  *
569
- * @param fields - the struct of `Option`s to be sequenced.
624
+ * @param fields - the struct of `Either`s to be sequenced.
570
625
  *
571
626
  * @example
572
627
  * import * as Either from "effect/Either"
@@ -110,7 +110,7 @@ export const combineAll = <A>(collection: Iterable<Equivalence<A>>): Equivalence
110
110
  combineMany(isAlwaysEquivalent, collection)
111
111
 
112
112
  /**
113
- * @category combinators
113
+ * @category mapping
114
114
  * @since 2.0.0
115
115
  */
116
116
  export const mapInput: {
package/src/Fiber.ts CHANGED
@@ -19,6 +19,7 @@ import type * as order from "./Order.js"
19
19
  import type { Pipeable } from "./Pipeable.js"
20
20
  import type * as RuntimeFlags from "./RuntimeFlags.js"
21
21
  import type * as Scope from "./Scope.js"
22
+ import type * as Types from "./Types.js"
22
23
 
23
24
  /**
24
25
  * @since 2.0.0
@@ -165,8 +166,8 @@ export declare namespace Fiber {
165
166
  */
166
167
  export interface Variance<out E, out A> {
167
168
  readonly [FiberTypeId]: {
168
- readonly _E: (_: never) => E
169
- readonly _A: (_: never) => A
169
+ readonly _E: Types.Covariant<E>
170
+ readonly _A: Types.Covariant<A>
170
171
  }
171
172
  }
172
173
 
@@ -175,8 +176,8 @@ export declare namespace Fiber {
175
176
  */
176
177
  export interface RuntimeVariance<out E, out A> {
177
178
  readonly [RuntimeFiberTypeId]: {
178
- readonly _E: (_: never) => E
179
- readonly _A: (_: never) => A
179
+ readonly _E: Types.Covariant<E>
180
+ readonly _A: Types.Covariant<A>
180
181
  }
181
182
  }
182
183
 
package/src/FiberRef.ts CHANGED
@@ -25,6 +25,7 @@ import * as Scheduler from "./Scheduler.js"
25
25
  import type * as Scope from "./Scope.js"
26
26
  import type * as Supervisor from "./Supervisor.js"
27
27
  import type * as Tracer from "./Tracer.js"
28
+ import type * as Types from "./Types.js"
28
29
 
29
30
  /**
30
31
  * @since 2.0.0
@@ -63,7 +64,7 @@ export interface FiberRef<in out A> extends Variance<A>, Pipeable {
63
64
  */
64
65
  export interface Variance<in out A> {
65
66
  readonly [FiberRefTypeId]: {
66
- readonly _A: (_: A) => A
67
+ readonly _A: Types.Invariant<A>
67
68
  }
68
69
  }
69
70
 
@@ -270,6 +271,12 @@ export const updateSomeAndGet: {
270
271
  <A>(self: FiberRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<never, never, A>
271
272
  } = core.fiberRefUpdateSomeAndGet
272
273
 
274
+ /**
275
+ * @since 2.0.0
276
+ * @category fiberRefs
277
+ */
278
+ export const currentConcurrency: FiberRef<number | "unbounded"> = core.currentConcurrency
279
+
273
280
  /**
274
281
  * @since 2.0.0
275
282
  * @category fiberRefs