effect 2.0.0-next.55 → 2.0.0-next.56

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 (652) hide show
  1. package/README.md +14 -9
  2. package/dist/cjs/Cache.js.map +1 -1
  3. package/dist/cjs/Cause.js +53 -18
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  6. package/dist/cjs/Chunk.js +5 -5
  7. package/dist/cjs/Chunk.js.map +1 -1
  8. package/dist/cjs/Data.js +11 -20
  9. package/dist/cjs/Data.js.map +1 -1
  10. package/dist/cjs/Duration.js +4 -0
  11. package/dist/cjs/Duration.js.map +1 -1
  12. package/dist/cjs/Effect.js +11 -4
  13. package/dist/cjs/Effect.js.map +1 -1
  14. package/dist/cjs/Either.js +9 -2
  15. package/dist/cjs/Either.js.map +1 -1
  16. package/dist/cjs/Exit.js.map +1 -1
  17. package/dist/cjs/Fiber.js.map +1 -1
  18. package/dist/cjs/HashMap.js.map +1 -1
  19. package/dist/cjs/KeyedPool.js.map +1 -1
  20. package/dist/cjs/List.js.map +1 -1
  21. package/dist/cjs/MergeState.js.map +1 -1
  22. package/dist/cjs/MetricPolling.js +2 -2
  23. package/dist/cjs/MetricPolling.js.map +1 -1
  24. package/dist/cjs/MetricState.js.map +1 -1
  25. package/dist/cjs/NonEmptyIterable.js.map +1 -1
  26. package/dist/cjs/Option.js +2 -2
  27. package/dist/cjs/Option.js.map +1 -1
  28. package/dist/cjs/Pipeable.js.map +1 -1
  29. package/dist/cjs/Predicate.js +17 -1
  30. package/dist/cjs/Predicate.js.map +1 -1
  31. package/dist/cjs/PrimaryKey.js +15 -0
  32. package/dist/cjs/PrimaryKey.js.map +1 -0
  33. package/dist/cjs/Queue.js +6 -1
  34. package/dist/cjs/Queue.js.map +1 -1
  35. package/dist/cjs/ReadonlyArray.js +2 -0
  36. package/dist/cjs/ReadonlyArray.js.map +1 -1
  37. package/dist/cjs/ReadonlyRecord.js +2 -2
  38. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  39. package/dist/cjs/RedBlackTree.js.map +1 -1
  40. package/dist/cjs/Request.js +35 -1
  41. package/dist/cjs/Request.js.map +1 -1
  42. package/dist/cjs/STM.js +1 -1
  43. package/dist/cjs/STM.js.map +1 -1
  44. package/dist/cjs/Sink.js.map +1 -1
  45. package/dist/cjs/SortedMap.js +4 -1
  46. package/dist/cjs/SortedMap.js.map +1 -1
  47. package/dist/cjs/SortedSet.js +2 -2
  48. package/dist/cjs/SortedSet.js.map +1 -1
  49. package/dist/cjs/Stream.js.map +1 -1
  50. package/dist/cjs/SubscriptionRef.js.map +1 -1
  51. package/dist/cjs/TPubSub.js.map +1 -1
  52. package/dist/cjs/TestAnnotation.js +3 -1
  53. package/dist/cjs/TestAnnotation.js.map +1 -1
  54. package/dist/cjs/TestClock.js.map +1 -1
  55. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  56. package/dist/cjs/index.js +4 -2
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/cjs/internal/cache.js.map +1 -1
  59. package/dist/cjs/internal/cause.js +4 -103
  60. package/dist/cjs/internal/cause.js.map +1 -1
  61. package/dist/cjs/internal/channel/continuation.js.map +1 -1
  62. package/dist/cjs/internal/configProvider.js +13 -1
  63. package/dist/cjs/internal/configProvider.js.map +1 -1
  64. package/dist/cjs/internal/core-effect.js +7 -7
  65. package/dist/cjs/internal/core-effect.js.map +1 -1
  66. package/dist/cjs/internal/core-stream.js.map +1 -1
  67. package/dist/cjs/internal/core.js +159 -11
  68. package/dist/cjs/internal/core.js.map +1 -1
  69. package/dist/cjs/internal/data.js +4 -22
  70. package/dist/cjs/internal/data.js.map +1 -1
  71. package/dist/cjs/internal/dataSource.js +1 -1
  72. package/dist/cjs/internal/dataSource.js.map +1 -1
  73. package/dist/cjs/internal/deferred.js.map +1 -1
  74. package/dist/cjs/internal/differ/orPatch.js.map +1 -1
  75. package/dist/cjs/internal/effect/circular.js.map +1 -1
  76. package/dist/cjs/internal/effectable.js +21 -3
  77. package/dist/cjs/internal/effectable.js.map +1 -1
  78. package/dist/cjs/internal/fiberMessage.js.map +1 -1
  79. package/dist/cjs/internal/fiberRuntime.js +9 -10
  80. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  81. package/dist/cjs/internal/hashMap.js +1 -1
  82. package/dist/cjs/internal/hashMap.js.map +1 -1
  83. package/dist/cjs/internal/hashSet.js +2 -2
  84. package/dist/cjs/internal/hashSet.js.map +1 -1
  85. package/dist/cjs/internal/keyedPool.js.map +1 -1
  86. package/dist/cjs/internal/layer.js.map +1 -1
  87. package/dist/cjs/internal/metric/polling.js +7 -7
  88. package/dist/cjs/internal/metric/polling.js.map +1 -1
  89. package/dist/cjs/internal/metric.js +4 -0
  90. package/dist/cjs/internal/metric.js.map +1 -1
  91. package/dist/cjs/internal/pool.js.map +1 -1
  92. package/dist/cjs/internal/pubsub.js +24 -23
  93. package/dist/cjs/internal/pubsub.js.map +1 -1
  94. package/dist/cjs/internal/queue.js +10 -1
  95. package/dist/cjs/internal/queue.js.map +1 -1
  96. package/dist/cjs/internal/redBlackTree.js +5 -1
  97. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  98. package/dist/cjs/internal/reloadable.js.map +1 -1
  99. package/dist/cjs/internal/request.js +29 -15
  100. package/dist/cjs/internal/request.js.map +1 -1
  101. package/dist/cjs/internal/resource.js +2 -2
  102. package/dist/cjs/internal/resource.js.map +1 -1
  103. package/dist/cjs/internal/runtime.js +2 -3
  104. package/dist/cjs/internal/runtime.js.map +1 -1
  105. package/dist/cjs/internal/schedule.js +6 -7
  106. package/dist/cjs/internal/schedule.js.map +1 -1
  107. package/dist/cjs/internal/scopedCache.js.map +1 -1
  108. package/dist/cjs/internal/scopedRef.js.map +1 -1
  109. package/dist/cjs/internal/sink.js +1 -1
  110. package/dist/cjs/internal/sink.js.map +1 -1
  111. package/dist/cjs/internal/stm/core.js +2 -2
  112. package/dist/cjs/internal/stm/core.js.map +1 -1
  113. package/dist/cjs/internal/stm/tArray.js.map +1 -1
  114. package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
  115. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  116. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  117. package/dist/cjs/internal/stm/tPubSub.js +17 -14
  118. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  119. package/dist/cjs/internal/stm/tQueue.js +6 -7
  120. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  121. package/dist/cjs/internal/stm/tSemaphore.js +2 -2
  122. package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
  123. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  124. package/dist/cjs/internal/stream.js +4 -4
  125. package/dist/cjs/internal/stream.js.map +1 -1
  126. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  127. package/dist/cjs/internal/take.js +1 -1
  128. package/dist/cjs/internal/take.js.map +1 -1
  129. package/dist/cjs/internal/version.js +1 -1
  130. package/dist/dts/Brand.d.ts +4 -4
  131. package/dist/dts/Brand.d.ts.map +1 -1
  132. package/dist/dts/Cache.d.ts +15 -14
  133. package/dist/dts/Cache.d.ts.map +1 -1
  134. package/dist/dts/Cause.d.ts +92 -25
  135. package/dist/dts/Cause.d.ts.map +1 -1
  136. package/dist/dts/Channel.d.ts +4 -4
  137. package/dist/dts/Channel.d.ts.map +1 -1
  138. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  139. package/dist/dts/Chunk.d.ts +26 -24
  140. package/dist/dts/Chunk.d.ts.map +1 -1
  141. package/dist/dts/Clock.d.ts +4 -4
  142. package/dist/dts/Clock.d.ts.map +1 -1
  143. package/dist/dts/Config.d.ts +4 -4
  144. package/dist/dts/Config.d.ts.map +1 -1
  145. package/dist/dts/ConfigError.d.ts +7 -7
  146. package/dist/dts/ConfigError.d.ts.map +1 -1
  147. package/dist/dts/ConfigProvider.d.ts +3 -3
  148. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  149. package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
  150. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  151. package/dist/dts/Console.d.ts +36 -36
  152. package/dist/dts/Console.d.ts.map +1 -1
  153. package/dist/dts/Context.d.ts +4 -4
  154. package/dist/dts/Context.d.ts.map +1 -1
  155. package/dist/dts/Data.d.ts +3 -17
  156. package/dist/dts/Data.d.ts.map +1 -1
  157. package/dist/dts/Deferred.d.ts +4 -4
  158. package/dist/dts/Deferred.d.ts.map +1 -1
  159. package/dist/dts/Differ.d.ts +9 -9
  160. package/dist/dts/Differ.d.ts.map +1 -1
  161. package/dist/dts/Duration.d.ts +1 -1
  162. package/dist/dts/Duration.d.ts.map +1 -1
  163. package/dist/dts/Effect.d.ts +34 -20
  164. package/dist/dts/Effect.d.ts.map +1 -1
  165. package/dist/dts/Either.d.ts +15 -3
  166. package/dist/dts/Either.d.ts.map +1 -1
  167. package/dist/dts/Equal.d.ts +1 -1
  168. package/dist/dts/Equal.d.ts.map +1 -1
  169. package/dist/dts/Equivalence.d.ts +1 -1
  170. package/dist/dts/Equivalence.d.ts.map +1 -1
  171. package/dist/dts/Exit.d.ts +5 -3
  172. package/dist/dts/Exit.d.ts.map +1 -1
  173. package/dist/dts/Fiber.d.ts +12 -12
  174. package/dist/dts/Fiber.d.ts.map +1 -1
  175. package/dist/dts/FiberRef.d.ts +3 -3
  176. package/dist/dts/FiberRef.d.ts.map +1 -1
  177. package/dist/dts/GroupBy.d.ts +2 -2
  178. package/dist/dts/GroupBy.d.ts.map +1 -1
  179. package/dist/dts/Hash.d.ts +1 -1
  180. package/dist/dts/Hash.d.ts.map +1 -1
  181. package/dist/dts/HashMap.d.ts +6 -4
  182. package/dist/dts/HashMap.d.ts.map +1 -1
  183. package/dist/dts/HashSet.d.ts +9 -9
  184. package/dist/dts/HashSet.d.ts.map +1 -1
  185. package/dist/dts/Inspectable.d.ts +3 -3
  186. package/dist/dts/Inspectable.d.ts.map +1 -1
  187. package/dist/dts/KeyedPool.d.ts +5 -5
  188. package/dist/dts/KeyedPool.d.ts.map +1 -1
  189. package/dist/dts/Layer.d.ts +2 -2
  190. package/dist/dts/Layer.d.ts.map +1 -1
  191. package/dist/dts/List.d.ts +16 -16
  192. package/dist/dts/List.d.ts.map +1 -1
  193. package/dist/dts/Logger.d.ts +4 -4
  194. package/dist/dts/Logger.d.ts.map +1 -1
  195. package/dist/dts/Match.d.ts +11 -11
  196. package/dist/dts/Match.d.ts.map +1 -1
  197. package/dist/dts/MergeDecision.d.ts +2 -2
  198. package/dist/dts/MergeDecision.d.ts.map +1 -1
  199. package/dist/dts/MergeState.d.ts +5 -5
  200. package/dist/dts/MergeState.d.ts.map +1 -1
  201. package/dist/dts/Metric.d.ts +5 -5
  202. package/dist/dts/Metric.d.ts.map +1 -1
  203. package/dist/dts/MetricHook.d.ts +4 -4
  204. package/dist/dts/MetricHook.d.ts.map +1 -1
  205. package/dist/dts/MetricKey.d.ts +2 -2
  206. package/dist/dts/MetricKey.d.ts.map +1 -1
  207. package/dist/dts/MetricKeyType.d.ts +2 -2
  208. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  209. package/dist/dts/MetricPair.d.ts +2 -2
  210. package/dist/dts/MetricPair.d.ts.map +1 -1
  211. package/dist/dts/MetricPolling.d.ts +16 -16
  212. package/dist/dts/MetricPolling.d.ts.map +1 -1
  213. package/dist/dts/MetricRegistry.d.ts +7 -7
  214. package/dist/dts/MetricRegistry.d.ts.map +1 -1
  215. package/dist/dts/MetricState.d.ts +4 -4
  216. package/dist/dts/MetricState.d.ts.map +1 -1
  217. package/dist/dts/MutableHashMap.d.ts +1 -1
  218. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  219. package/dist/dts/MutableHashSet.d.ts +1 -1
  220. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  221. package/dist/dts/MutableList.d.ts +1 -1
  222. package/dist/dts/MutableList.d.ts.map +1 -1
  223. package/dist/dts/MutableQueue.d.ts +1 -1
  224. package/dist/dts/MutableQueue.d.ts.map +1 -1
  225. package/dist/dts/MutableRef.d.ts +1 -1
  226. package/dist/dts/MutableRef.d.ts.map +1 -1
  227. package/dist/dts/NonEmptyIterable.d.ts +2 -2
  228. package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
  229. package/dist/dts/Option.d.ts +13 -11
  230. package/dist/dts/Option.d.ts.map +1 -1
  231. package/dist/dts/Order.d.ts +1 -1
  232. package/dist/dts/Order.d.ts.map +1 -1
  233. package/dist/dts/Pipeable.d.ts +21 -23
  234. package/dist/dts/Pipeable.d.ts.map +1 -1
  235. package/dist/dts/Pool.d.ts +4 -4
  236. package/dist/dts/Pool.d.ts.map +1 -1
  237. package/dist/dts/Predicate.d.ts +17 -2
  238. package/dist/dts/Predicate.d.ts.map +1 -1
  239. package/dist/dts/PrimaryKey.d.ts +16 -0
  240. package/dist/dts/PrimaryKey.d.ts.map +1 -0
  241. package/dist/dts/PubSub.d.ts +3 -3
  242. package/dist/dts/PubSub.d.ts.map +1 -1
  243. package/dist/dts/Queue.d.ts +46 -27
  244. package/dist/dts/Queue.d.ts.map +1 -1
  245. package/dist/dts/Random.d.ts +3 -3
  246. package/dist/dts/Random.d.ts.map +1 -1
  247. package/dist/dts/ReadonlyArray.d.ts +36 -36
  248. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  249. package/dist/dts/ReadonlyRecord.d.ts +13 -11
  250. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  251. package/dist/dts/RedBlackTree.d.ts +5 -2
  252. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  253. package/dist/dts/Ref.d.ts +3 -3
  254. package/dist/dts/Ref.d.ts.map +1 -1
  255. package/dist/dts/Reloadable.d.ts +3 -3
  256. package/dist/dts/Reloadable.d.ts.map +1 -1
  257. package/dist/dts/Request.d.ts +49 -8
  258. package/dist/dts/Request.d.ts.map +1 -1
  259. package/dist/dts/RequestBlock.d.ts +8 -8
  260. package/dist/dts/RequestBlock.d.ts.map +1 -1
  261. package/dist/dts/RequestResolver.d.ts +5 -5
  262. package/dist/dts/RequestResolver.d.ts.map +1 -1
  263. package/dist/dts/Resource.d.ts +4 -4
  264. package/dist/dts/Resource.d.ts.map +1 -1
  265. package/dist/dts/Runtime.d.ts +3 -3
  266. package/dist/dts/Runtime.d.ts.map +1 -1
  267. package/dist/dts/STM.d.ts +9 -9
  268. package/dist/dts/STM.d.ts.map +1 -1
  269. package/dist/dts/Schedule.d.ts +6 -6
  270. package/dist/dts/Schedule.d.ts.map +1 -1
  271. package/dist/dts/Scheduler.d.ts +3 -3
  272. package/dist/dts/Scheduler.d.ts.map +1 -1
  273. package/dist/dts/ScopedCache.d.ts +9 -9
  274. package/dist/dts/ScopedCache.d.ts.map +1 -1
  275. package/dist/dts/ScopedRef.d.ts +3 -3
  276. package/dist/dts/ScopedRef.d.ts.map +1 -1
  277. package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
  278. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  279. package/dist/dts/Sink.d.ts +7 -4
  280. package/dist/dts/Sink.d.ts.map +1 -1
  281. package/dist/dts/SortedMap.d.ts +5 -2
  282. package/dist/dts/SortedMap.d.ts.map +1 -1
  283. package/dist/dts/SortedSet.d.ts +6 -12
  284. package/dist/dts/SortedSet.d.ts.map +1 -1
  285. package/dist/dts/Stream.d.ts +27 -19
  286. package/dist/dts/Stream.d.ts.map +1 -1
  287. package/dist/dts/StreamEmit.d.ts +12 -12
  288. package/dist/dts/StreamEmit.d.ts.map +1 -1
  289. package/dist/dts/SubscriptionRef.d.ts +3 -3
  290. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  291. package/dist/dts/Supervisor.d.ts +9 -9
  292. package/dist/dts/Supervisor.d.ts.map +1 -1
  293. package/dist/dts/SynchronizedRef.d.ts +4 -4
  294. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  295. package/dist/dts/TArray.d.ts +3 -3
  296. package/dist/dts/TArray.d.ts.map +1 -1
  297. package/dist/dts/TDeferred.d.ts +4 -4
  298. package/dist/dts/TDeferred.d.ts.map +1 -1
  299. package/dist/dts/TMap.d.ts +4 -4
  300. package/dist/dts/TMap.d.ts.map +1 -1
  301. package/dist/dts/TPriorityQueue.d.ts +3 -3
  302. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  303. package/dist/dts/TPubSub.d.ts +4 -1
  304. package/dist/dts/TPubSub.d.ts.map +1 -1
  305. package/dist/dts/TQueue.d.ts +9 -9
  306. package/dist/dts/TQueue.d.ts.map +1 -1
  307. package/dist/dts/TRandom.d.ts +3 -3
  308. package/dist/dts/TRandom.d.ts.map +1 -1
  309. package/dist/dts/TRef.d.ts +3 -3
  310. package/dist/dts/TRef.d.ts.map +1 -1
  311. package/dist/dts/TSet.d.ts +3 -3
  312. package/dist/dts/TSet.d.ts.map +1 -1
  313. package/dist/dts/Take.d.ts +2 -2
  314. package/dist/dts/Take.d.ts.map +1 -1
  315. package/dist/dts/TestAnnotation.d.ts +5 -3
  316. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  317. package/dist/dts/TestAnnotations.d.ts +2 -2
  318. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  319. package/dist/dts/TestClock.d.ts +3 -3
  320. package/dist/dts/TestClock.d.ts.map +1 -1
  321. package/dist/dts/TestLive.d.ts +1 -1
  322. package/dist/dts/TestLive.d.ts.map +1 -1
  323. package/dist/dts/TestSized.d.ts +1 -1
  324. package/dist/dts/TestSized.d.ts.map +1 -1
  325. package/dist/dts/Tracer.d.ts +5 -5
  326. package/dist/dts/Tracer.d.ts.map +1 -1
  327. package/dist/dts/Types.d.ts +7 -0
  328. package/dist/dts/Types.d.ts.map +1 -1
  329. package/dist/dts/UpstreamPullRequest.d.ts +2 -2
  330. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  331. package/dist/dts/UpstreamPullStrategy.d.ts +3 -3
  332. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  333. package/dist/dts/Utils.d.ts +1 -1
  334. package/dist/dts/Utils.d.ts.map +1 -1
  335. package/dist/dts/index.d.ts +4 -0
  336. package/dist/dts/index.d.ts.map +1 -1
  337. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  338. package/dist/dts/internal/fiberScope.d.ts +1 -1
  339. package/dist/dts/internal/fiberScope.d.ts.map +1 -1
  340. package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
  341. package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
  342. package/dist/dts/internal/version.d.ts +1 -1
  343. package/dist/esm/Cache.js.map +1 -1
  344. package/dist/esm/Cause.js +52 -17
  345. package/dist/esm/Cause.js.map +1 -1
  346. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  347. package/dist/esm/Chunk.js +5 -5
  348. package/dist/esm/Chunk.js.map +1 -1
  349. package/dist/esm/Data.js +10 -19
  350. package/dist/esm/Data.js.map +1 -1
  351. package/dist/esm/Duration.js +4 -0
  352. package/dist/esm/Duration.js.map +1 -1
  353. package/dist/esm/Effect.js +7 -0
  354. package/dist/esm/Effect.js.map +1 -1
  355. package/dist/esm/Either.js +8 -1
  356. package/dist/esm/Either.js.map +1 -1
  357. package/dist/esm/Exit.js.map +1 -1
  358. package/dist/esm/Fiber.js.map +1 -1
  359. package/dist/esm/HashMap.js.map +1 -1
  360. package/dist/esm/KeyedPool.js.map +1 -1
  361. package/dist/esm/List.js.map +1 -1
  362. package/dist/esm/MergeState.js.map +1 -1
  363. package/dist/esm/MetricPolling.js +1 -1
  364. package/dist/esm/MetricPolling.js.map +1 -1
  365. package/dist/esm/MetricState.js.map +1 -1
  366. package/dist/esm/NonEmptyIterable.js.map +1 -1
  367. package/dist/esm/Option.js +2 -2
  368. package/dist/esm/Option.js.map +1 -1
  369. package/dist/esm/Pipeable.js.map +1 -1
  370. package/dist/esm/Predicate.js +15 -0
  371. package/dist/esm/Predicate.js.map +1 -1
  372. package/dist/esm/PrimaryKey.js +9 -0
  373. package/dist/esm/PrimaryKey.js.map +1 -0
  374. package/dist/esm/Queue.js +5 -0
  375. package/dist/esm/Queue.js.map +1 -1
  376. package/dist/esm/ReadonlyArray.js +2 -0
  377. package/dist/esm/ReadonlyArray.js.map +1 -1
  378. package/dist/esm/ReadonlyRecord.js +2 -2
  379. package/dist/esm/ReadonlyRecord.js.map +1 -1
  380. package/dist/esm/RedBlackTree.js.map +1 -1
  381. package/dist/esm/Request.js +34 -0
  382. package/dist/esm/Request.js.map +1 -1
  383. package/dist/esm/STM.js +1 -1
  384. package/dist/esm/STM.js.map +1 -1
  385. package/dist/esm/Sink.js.map +1 -1
  386. package/dist/esm/SortedMap.js +4 -1
  387. package/dist/esm/SortedMap.js.map +1 -1
  388. package/dist/esm/SortedSet.js +2 -2
  389. package/dist/esm/SortedSet.js.map +1 -1
  390. package/dist/esm/Stream.js.map +1 -1
  391. package/dist/esm/SubscriptionRef.js.map +1 -1
  392. package/dist/esm/TPubSub.js.map +1 -1
  393. package/dist/esm/TestAnnotation.js +3 -1
  394. package/dist/esm/TestAnnotation.js.map +1 -1
  395. package/dist/esm/TestClock.js.map +1 -1
  396. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  397. package/dist/esm/index.js +4 -0
  398. package/dist/esm/index.js.map +1 -1
  399. package/dist/esm/internal/cache.js.map +1 -1
  400. package/dist/esm/internal/cause.js +3 -96
  401. package/dist/esm/internal/cause.js.map +1 -1
  402. package/dist/esm/internal/channel/continuation.js.map +1 -1
  403. package/dist/esm/internal/configProvider.js +13 -1
  404. package/dist/esm/internal/configProvider.js.map +1 -1
  405. package/dist/esm/internal/core-effect.js +7 -7
  406. package/dist/esm/internal/core-effect.js.map +1 -1
  407. package/dist/esm/internal/core-stream.js.map +1 -1
  408. package/dist/esm/internal/core.js +151 -10
  409. package/dist/esm/internal/core.js.map +1 -1
  410. package/dist/esm/internal/data.js +3 -21
  411. package/dist/esm/internal/data.js.map +1 -1
  412. package/dist/esm/internal/dataSource.js +1 -1
  413. package/dist/esm/internal/dataSource.js.map +1 -1
  414. package/dist/esm/internal/deferred.js.map +1 -1
  415. package/dist/esm/internal/differ/orPatch.js.map +1 -1
  416. package/dist/esm/internal/effect/circular.js.map +1 -1
  417. package/dist/esm/internal/effectable.js +20 -2
  418. package/dist/esm/internal/effectable.js.map +1 -1
  419. package/dist/esm/internal/fiberMessage.js.map +1 -1
  420. package/dist/esm/internal/fiberRuntime.js +9 -10
  421. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  422. package/dist/esm/internal/hashMap.js +1 -1
  423. package/dist/esm/internal/hashMap.js.map +1 -1
  424. package/dist/esm/internal/hashSet.js +2 -2
  425. package/dist/esm/internal/hashSet.js.map +1 -1
  426. package/dist/esm/internal/keyedPool.js.map +1 -1
  427. package/dist/esm/internal/layer.js.map +1 -1
  428. package/dist/esm/internal/metric/polling.js +6 -6
  429. package/dist/esm/internal/metric/polling.js.map +1 -1
  430. package/dist/esm/internal/metric.js +4 -0
  431. package/dist/esm/internal/metric.js.map +1 -1
  432. package/dist/esm/internal/pool.js.map +1 -1
  433. package/dist/esm/internal/pubsub.js +24 -23
  434. package/dist/esm/internal/pubsub.js.map +1 -1
  435. package/dist/esm/internal/queue.js +9 -0
  436. package/dist/esm/internal/queue.js.map +1 -1
  437. package/dist/esm/internal/redBlackTree.js +5 -1
  438. package/dist/esm/internal/redBlackTree.js.map +1 -1
  439. package/dist/esm/internal/reloadable.js.map +1 -1
  440. package/dist/esm/internal/request.js +27 -14
  441. package/dist/esm/internal/request.js.map +1 -1
  442. package/dist/esm/internal/resource.js +2 -2
  443. package/dist/esm/internal/resource.js.map +1 -1
  444. package/dist/esm/internal/runtime.js +1 -2
  445. package/dist/esm/internal/runtime.js.map +1 -1
  446. package/dist/esm/internal/schedule.js +6 -7
  447. package/dist/esm/internal/schedule.js.map +1 -1
  448. package/dist/esm/internal/scopedCache.js.map +1 -1
  449. package/dist/esm/internal/scopedRef.js.map +1 -1
  450. package/dist/esm/internal/sink.js +1 -1
  451. package/dist/esm/internal/sink.js.map +1 -1
  452. package/dist/esm/internal/stm/core.js +2 -2
  453. package/dist/esm/internal/stm/core.js.map +1 -1
  454. package/dist/esm/internal/stm/tArray.js.map +1 -1
  455. package/dist/esm/internal/stm/tDeferred.js.map +1 -1
  456. package/dist/esm/internal/stm/tMap.js.map +1 -1
  457. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  458. package/dist/esm/internal/stm/tPubSub.js +17 -14
  459. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  460. package/dist/esm/internal/stm/tQueue.js +6 -7
  461. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  462. package/dist/esm/internal/stm/tSemaphore.js +2 -2
  463. package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
  464. package/dist/esm/internal/stm/tSet.js.map +1 -1
  465. package/dist/esm/internal/stream.js +4 -4
  466. package/dist/esm/internal/stream.js.map +1 -1
  467. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  468. package/dist/esm/internal/take.js +1 -1
  469. package/dist/esm/internal/take.js.map +1 -1
  470. package/dist/esm/internal/version.js +1 -1
  471. package/dist/esm/package.json +1 -1
  472. package/package.json +10 -2
  473. package/src/Brand.ts +4 -4
  474. package/src/Cache.ts +15 -17
  475. package/src/Cause.ts +124 -40
  476. package/src/Channel.ts +4 -4
  477. package/src/ChildExecutorDecision.ts +10 -2
  478. package/src/Chunk.ts +44 -36
  479. package/src/Clock.ts +4 -4
  480. package/src/Config.ts +4 -4
  481. package/src/ConfigError.ts +8 -8
  482. package/src/ConfigProvider.ts +5 -5
  483. package/src/ConfigProviderPathPatch.ts +1 -1
  484. package/src/Console.ts +36 -36
  485. package/src/Context.ts +4 -4
  486. package/src/Data.ts +13 -44
  487. package/src/Deferred.ts +4 -4
  488. package/src/Differ.ts +9 -9
  489. package/src/Duration.ts +5 -0
  490. package/src/Effect.ts +88 -26
  491. package/src/Either.ts +28 -5
  492. package/src/Equal.ts +1 -1
  493. package/src/Equivalence.ts +1 -1
  494. package/src/Exit.ts +21 -7
  495. package/src/Fiber.ts +20 -14
  496. package/src/FiberRef.ts +7 -7
  497. package/src/GroupBy.ts +2 -2
  498. package/src/Hash.ts +1 -1
  499. package/src/HashMap.ts +6 -4
  500. package/src/HashSet.ts +11 -11
  501. package/src/Inspectable.ts +3 -3
  502. package/src/KeyedPool.ts +13 -7
  503. package/src/Layer.ts +2 -2
  504. package/src/List.ts +24 -22
  505. package/src/Logger.ts +4 -4
  506. package/src/Match.ts +11 -11
  507. package/src/MergeDecision.ts +2 -2
  508. package/src/MergeState.ts +11 -5
  509. package/src/Metric.ts +5 -5
  510. package/src/MetricHook.ts +4 -4
  511. package/src/MetricKey.ts +2 -2
  512. package/src/MetricKeyType.ts +2 -2
  513. package/src/MetricPair.ts +2 -2
  514. package/src/MetricPolling.ts +22 -22
  515. package/src/MetricRegistry.ts +9 -9
  516. package/src/MetricState.ts +6 -4
  517. package/src/MutableHashMap.ts +1 -1
  518. package/src/MutableHashSet.ts +1 -1
  519. package/src/MutableList.ts +1 -1
  520. package/src/MutableQueue.ts +1 -1
  521. package/src/MutableRef.ts +1 -1
  522. package/src/NonEmptyIterable.ts +2 -2
  523. package/src/Option.ts +18 -15
  524. package/src/Order.ts +1 -1
  525. package/src/Pipeable.ts +275 -277
  526. package/src/Pool.ts +4 -4
  527. package/src/Predicate.ts +21 -2
  528. package/src/PrimaryKey.ts +17 -0
  529. package/src/PubSub.ts +3 -3
  530. package/src/Queue.ts +52 -30
  531. package/src/Random.ts +3 -3
  532. package/src/ReadonlyArray.ts +51 -66
  533. package/src/ReadonlyRecord.ts +37 -35
  534. package/src/RedBlackTree.ts +5 -2
  535. package/src/Ref.ts +3 -3
  536. package/src/Reloadable.ts +3 -3
  537. package/src/Request.ts +53 -8
  538. package/src/RequestBlock.ts +9 -9
  539. package/src/RequestResolver.ts +5 -5
  540. package/src/Resource.ts +4 -4
  541. package/src/Runtime.ts +3 -3
  542. package/src/STM.ts +23 -12
  543. package/src/Schedule.ts +7 -7
  544. package/src/Scheduler.ts +3 -3
  545. package/src/Scope.ts +3 -3
  546. package/src/ScopedCache.ts +9 -9
  547. package/src/ScopedRef.ts +3 -3
  548. package/src/SingleProducerAsyncInput.ts +7 -7
  549. package/src/Sink.ts +23 -9
  550. package/src/SortedMap.ts +9 -3
  551. package/src/SortedSet.ts +26 -41
  552. package/src/Stream.ts +70 -29
  553. package/src/StreamEmit.ts +12 -12
  554. package/src/SubscriptionRef.ts +5 -3
  555. package/src/Supervisor.ts +10 -10
  556. package/src/SynchronizedRef.ts +4 -4
  557. package/src/TArray.ts +4 -4
  558. package/src/TDeferred.ts +5 -5
  559. package/src/TMap.ts +5 -5
  560. package/src/TPriorityQueue.ts +4 -4
  561. package/src/TPubSub.ts +6 -3
  562. package/src/TQueue.ts +9 -9
  563. package/src/TRandom.ts +3 -3
  564. package/src/TRef.ts +4 -4
  565. package/src/TSet.ts +4 -4
  566. package/src/Take.ts +2 -2
  567. package/src/TestAnnotation.ts +8 -4
  568. package/src/TestAnnotations.ts +2 -2
  569. package/src/TestClock.ts +3 -5
  570. package/src/TestLive.ts +1 -1
  571. package/src/TestSized.ts +1 -1
  572. package/src/Tracer.ts +6 -6
  573. package/src/Types.ts +8 -0
  574. package/src/UpstreamPullRequest.ts +10 -4
  575. package/src/UpstreamPullStrategy.ts +3 -3
  576. package/src/Utils.ts +1 -1
  577. package/src/index.ts +5 -0
  578. package/src/internal/blockedRequests.ts +6 -6
  579. package/src/internal/cache.ts +12 -12
  580. package/src/internal/cause.ts +14 -138
  581. package/src/internal/channel/channelExecutor.ts +1 -1
  582. package/src/internal/channel/channelState.ts +5 -5
  583. package/src/internal/channel/continuation.ts +52 -32
  584. package/src/internal/channel/mergeDecision.ts +1 -1
  585. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  586. package/src/internal/channel/subexecutor.ts +7 -7
  587. package/src/internal/config.ts +6 -6
  588. package/src/internal/configProvider.ts +14 -1
  589. package/src/internal/core-effect.ts +49 -38
  590. package/src/internal/core-stream.ts +18 -21
  591. package/src/internal/core.ts +286 -38
  592. package/src/internal/data.ts +3 -22
  593. package/src/internal/dataSource.ts +1 -1
  594. package/src/internal/deferred.ts +5 -5
  595. package/src/internal/differ/contextPatch.ts +5 -5
  596. package/src/internal/differ/orPatch.ts +18 -6
  597. package/src/internal/effect/circular.ts +3 -3
  598. package/src/internal/effectable.ts +23 -4
  599. package/src/internal/fiberMessage.ts +1 -4
  600. package/src/internal/fiberRuntime.ts +14 -15
  601. package/src/internal/fiberScope.ts +1 -1
  602. package/src/internal/groupBy.ts +1 -1
  603. package/src/internal/hashMap/node.ts +5 -5
  604. package/src/internal/hashMap.ts +23 -22
  605. package/src/internal/hashSet.ts +18 -20
  606. package/src/internal/keyedPool.ts +4 -4
  607. package/src/internal/layer.ts +6 -12
  608. package/src/internal/metric/key.ts +1 -1
  609. package/src/internal/metric/polling.ts +26 -26
  610. package/src/internal/metric.ts +4 -0
  611. package/src/internal/pool.ts +2 -2
  612. package/src/internal/pubsub.ts +64 -61
  613. package/src/internal/queue.ts +20 -6
  614. package/src/internal/redBlackTree/iterator.ts +1 -1
  615. package/src/internal/redBlackTree/node.ts +1 -1
  616. package/src/internal/redBlackTree.ts +7 -2
  617. package/src/internal/ref.ts +1 -1
  618. package/src/internal/reloadable.ts +1 -1
  619. package/src/internal/request.ts +39 -13
  620. package/src/internal/resource.ts +4 -4
  621. package/src/internal/ringBuffer.ts +1 -1
  622. package/src/internal/runtime.ts +2 -3
  623. package/src/internal/schedule.ts +6 -7
  624. package/src/internal/scopedCache.ts +7 -5
  625. package/src/internal/scopedRef.ts +1 -1
  626. package/src/internal/sink.ts +6 -3
  627. package/src/internal/stack.ts +1 -1
  628. package/src/internal/stm/core.ts +3 -3
  629. package/src/internal/stm/stm/stmState.ts +1 -1
  630. package/src/internal/stm/stm/tExit.ts +3 -3
  631. package/src/internal/stm/stm/tryCommit.ts +1 -1
  632. package/src/internal/stm/stm/versioned.ts +1 -1
  633. package/src/internal/stm/stm.ts +2 -2
  634. package/src/internal/stm/tArray.ts +2 -2
  635. package/src/internal/stm/tDeferred.ts +3 -3
  636. package/src/internal/stm/tMap.ts +3 -3
  637. package/src/internal/stm/tPriorityQueue.ts +2 -2
  638. package/src/internal/stm/tPubSub.ts +43 -38
  639. package/src/internal/stm/tQueue.ts +7 -8
  640. package/src/internal/stm/tReentrantLock.ts +2 -2
  641. package/src/internal/stm/tRef.ts +1 -1
  642. package/src/internal/stm/tSemaphore.ts +2 -2
  643. package/src/internal/stm/tSet.ts +2 -2
  644. package/src/internal/stream/debounceState.ts +2 -2
  645. package/src/internal/stream/handoff.ts +3 -3
  646. package/src/internal/stream/handoffSignal.ts +2 -2
  647. package/src/internal/stream/pull.ts +1 -1
  648. package/src/internal/stream.ts +66 -33
  649. package/src/internal/subscriptionRef.ts +2 -2
  650. package/src/internal/supervisor.ts +3 -3
  651. package/src/internal/take.ts +2 -2
  652. package/src/internal/version.ts +1 -1
@@ -30,8 +30,11 @@ export const Direction = RBTI.Direction
30
30
  * @since 2.0.0
31
31
  * @category models
32
32
  */
33
- export interface RedBlackTree<Key, Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
34
- readonly [TypeId]: TypeId
33
+ export interface RedBlackTree<in out Key, out Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
34
+ readonly [TypeId]: {
35
+ readonly _Key: (_: Key) => Key
36
+ readonly _Value: (_: never) => Value
37
+ }
35
38
  }
36
39
 
37
40
  /**
package/src/Ref.ts CHANGED
@@ -22,8 +22,8 @@ export type RefTypeId = typeof RefTypeId
22
22
  * @since 2.0.0
23
23
  * @category models
24
24
  */
25
- export interface Ref<A> extends Ref.Variance<A>, Pipeable {
26
- readonly modify: <B>(f: (a: A) => readonly [B, A]) => Effect.Effect<never, never, B>
25
+ export interface Ref<in out A> extends Ref.Variance<A>, Pipeable {
26
+ modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<never, never, B>
27
27
  }
28
28
 
29
29
  /**
@@ -34,7 +34,7 @@ export declare namespace Ref {
34
34
  /**
35
35
  * @since 2.0.0
36
36
  */
37
- export interface Variance<A> {
37
+ export interface Variance<in out A> {
38
38
  readonly [RefTypeId]: {
39
39
  readonly _A: (_: A) => A
40
40
  }
package/src/Reloadable.ts CHANGED
@@ -27,7 +27,7 @@ export type ReloadableTypeId = typeof ReloadableTypeId
27
27
  * @since 2.0.0
28
28
  * @category models
29
29
  */
30
- export interface Reloadable<A> extends Reloadable.Variance<A> {
30
+ export interface Reloadable<in out A> extends Reloadable.Variance<A> {
31
31
  /**
32
32
  * @internal
33
33
  */
@@ -46,9 +46,9 @@ export declare namespace Reloadable {
46
46
  * @since 2.0.0
47
47
  * @category models
48
48
  */
49
- export interface Variance<A> {
49
+ export interface Variance<in out A> {
50
50
  readonly [ReloadableTypeId]: {
51
- readonly _A: (_: never) => A
51
+ readonly _A: (_: A) => A
52
52
  }
53
53
  }
54
54
  }
package/src/Request.ts CHANGED
@@ -14,6 +14,7 @@ import * as core from "./internal/core.js"
14
14
  import * as fiberRuntime from "./internal/fiberRuntime.js"
15
15
  import * as internal from "./internal/request.js"
16
16
  import type * as Option from "./Option.js"
17
+ import type * as Types from "./Types.js"
17
18
 
18
19
  /**
19
20
  * @since 2.0.0
@@ -34,7 +35,7 @@ export type RequestTypeId = typeof RequestTypeId
34
35
  * @since 2.0.0
35
36
  * @category models
36
37
  */
37
- export interface Request<E, A> extends Request.Variance<E, A>, Data.Case {}
38
+ export interface Request<out E, out A> extends Request.Variance<E, A>, Data.Case {}
38
39
 
39
40
  /**
40
41
  * @since 2.0.0
@@ -44,7 +45,7 @@ export declare namespace Request {
44
45
  * @since 2.0.0
45
46
  * @category models
46
47
  */
47
- export interface Variance<E, A> {
48
+ export interface Variance<out E, out A> {
48
49
  readonly [RequestTypeId]: {
49
50
  readonly _E: (_: never) => E
50
51
  readonly _A: (_: never) => A
@@ -120,6 +121,50 @@ export const tagged: <R extends Request<any, any> & { _tag: string }>(
120
121
  tag: R["_tag"]
121
122
  ) => Request.Constructor<R, "_tag"> = internal.tagged
122
123
 
124
+ /**
125
+ * Provides a constructor for a Request Class.
126
+ *
127
+ * @example
128
+ * import * as Request from "effect/Request"
129
+ *
130
+ * type Error = never
131
+ * type Success = string
132
+ *
133
+ * class MyRequest extends Request.Class<Error, Success, {
134
+ * readonly id: string
135
+ * }> {}
136
+ *
137
+ * @since 2.0.0
138
+ * @category constructors
139
+ */
140
+ export const Class: new<Error, Success, A extends Record<string, any>>(
141
+ args: Types.Equals<Omit<A, keyof Request<unknown, unknown>>, {}> extends true ? void
142
+ : { readonly [P in keyof A as P extends keyof Request<unknown, unknown> ? never : P]: A[P] }
143
+ ) => Request<Error, Success> & Readonly<A> = internal.Class as any
144
+
145
+ /**
146
+ * Provides a Tagged constructor for a Request Class.
147
+ *
148
+ * @example
149
+ * import * as Request from "effect/Request"
150
+ *
151
+ * type Error = never
152
+ * type Success = string
153
+ *
154
+ * class MyRequest extends Request.TaggedClass("MyRequest")<Error, Success, {
155
+ * readonly name: string
156
+ * }> {}
157
+ *
158
+ * @since 2.0.0
159
+ * @category constructors
160
+ */
161
+ export const TaggedClass: <Tag extends string>(
162
+ tag: Tag
163
+ ) => new<Error, Success, A extends Record<string, any>>(
164
+ args: Types.Equals<Omit<A, keyof Request<unknown, unknown>>, {}> extends true ? void
165
+ : { readonly [P in keyof A as P extends "_tag" | keyof Request<unknown, unknown> ? never : P]: A[P] }
166
+ ) => Request<Error, Success> & Readonly<A> & { readonly _tag: Tag } = internal.TaggedClass as any
167
+
123
168
  /**
124
169
  * Complete a `Request` with the specified result.
125
170
  *
@@ -189,10 +234,10 @@ export const succeed: {
189
234
  export interface Listeners {
190
235
  readonly count: number
191
236
  readonly observers: Set<(count: number) => void>
192
- readonly addObserver: (f: (count: number) => void) => void
193
- readonly removeObserver: (f: (count: number) => void) => void
194
- readonly increment: () => void
195
- readonly decrement: () => void
237
+ addObserver(f: (count: number) => void): void
238
+ removeObserver(f: (count: number) => void): void
239
+ increment(): void
240
+ decrement(): void
196
241
  }
197
242
 
198
243
  /**
@@ -243,7 +288,7 @@ export type EntryTypeId = typeof EntryTypeId
243
288
  * @since 2.0.0
244
289
  * @category models
245
290
  */
246
- export interface Entry<R> extends Entry.Variance<R> {
291
+ export interface Entry<out R> extends Entry.Variance<R> {
247
292
  readonly request: R
248
293
  readonly result: Deferred<
249
294
  [R] extends [Request<infer _E, infer _A>] ? _E : never,
@@ -265,7 +310,7 @@ export declare namespace Entry {
265
310
  * @since 2.0.0
266
311
  * @category models
267
312
  */
268
- export interface Variance<R> {
313
+ export interface Variance<out R> {
269
314
  readonly [EntryTypeId]: {
270
315
  readonly _R: (_: never) => R
271
316
  }
@@ -30,14 +30,14 @@ export declare namespace RequestBlock {
30
30
  * @since 2.0.0
31
31
  * @category models
32
32
  */
33
- export interface Reducer<R, Z> {
34
- readonly emptyCase: () => Z
35
- readonly parCase: (left: Z, right: Z) => Z
36
- readonly singleCase: (
33
+ export interface Reducer<in R, in out Z> {
34
+ emptyCase(): Z
35
+ parCase(left: Z, right: Z): Z
36
+ singleCase(
37
37
  dataSource: RequestResolver.RequestResolver<unknown, R>,
38
38
  blockedRequest: Request.Entry<unknown>
39
- ) => Z
40
- readonly seqCase: (left: Z, right: Z) => Z
39
+ ): Z
40
+ seqCase(left: Z, right: Z): Z
41
41
  }
42
42
  }
43
43
 
@@ -53,7 +53,7 @@ export interface Empty {
53
53
  * @since 2.0.0
54
54
  * @category models
55
55
  */
56
- export interface Par<R> {
56
+ export interface Par<out R> {
57
57
  readonly _tag: "Par"
58
58
  readonly left: RequestBlock<R>
59
59
  readonly right: RequestBlock<R>
@@ -63,7 +63,7 @@ export interface Par<R> {
63
63
  * @since 2.0.0
64
64
  * @category models
65
65
  */
66
- export interface Seq<R> {
66
+ export interface Seq<out R> {
67
67
  readonly _tag: "Seq"
68
68
  readonly left: RequestBlock<R>
69
69
  readonly right: RequestBlock<R>
@@ -73,7 +73,7 @@ export interface Seq<R> {
73
73
  * @since 2.0.0
74
74
  * @category models
75
75
  */
76
- export interface Single<R> {
76
+ export interface Single<out R> {
77
77
  readonly _tag: "Single"
78
78
  readonly dataSource: RequestResolver.RequestResolver<unknown, R>
79
79
  readonly blockedRequest: Request.Entry<unknown>
@@ -48,18 +48,18 @@ export type RequestResolverTypeId = typeof RequestResolverTypeId
48
48
  * @since 2.0.0
49
49
  * @category models
50
50
  */
51
- export interface RequestResolver<A, R = never> extends Equal.Equal, Pipeable {
51
+ export interface RequestResolver<in A, out R = never> extends RequestResolver.Variance<A, R>, Equal.Equal, Pipeable {
52
52
  /**
53
53
  * Execute a collection of requests. The outer `Chunk` represents batches
54
54
  * of requests that must be performed sequentially. The inner `Chunk`
55
55
  * represents a batch of requests that can be performed in parallel.
56
56
  */
57
- readonly runAll: (requests: Array<Array<Request.Entry<A>>>) => Effect.Effect<R, never, void>
57
+ runAll(requests: Array<Array<Request.Entry<A>>>): Effect.Effect<R, never, void>
58
58
 
59
59
  /**
60
60
  * Identify the data source using the specific identifier
61
61
  */
62
- readonly identified: (...identifiers: Array<unknown>) => RequestResolver<A, R>
62
+ identified(...identifiers: Array<unknown>): RequestResolver<A, R>
63
63
  }
64
64
 
65
65
  /**
@@ -70,10 +70,10 @@ export declare namespace RequestResolver {
70
70
  * @since 2.0.0
71
71
  * @category models
72
72
  */
73
- export interface Variance<R, A> {
73
+ export interface Variance<in A, out R> {
74
74
  readonly [RequestResolverTypeId]: {
75
+ readonly _A: (_: A) => void
75
76
  readonly _R: (_: never) => R
76
- readonly _A: (_: never) => A
77
77
  }
78
78
  }
79
79
  }
package/src/Resource.ts CHANGED
@@ -27,7 +27,7 @@ export type ResourceTypeId = typeof ResourceTypeId
27
27
  * @since 2.0.0
28
28
  * @category models
29
29
  */
30
- export interface Resource<E, A> extends Resource.Variance<E, A> {
30
+ export interface Resource<in out E, in out A> extends Resource.Variance<E, A> {
31
31
  /** @internal */
32
32
  readonly scopedRef: ScopedRef.ScopedRef<Exit.Exit<E, A>>
33
33
  /** @internal */
@@ -42,10 +42,10 @@ export declare namespace Resource {
42
42
  * @since 2.0.0
43
43
  * @category models
44
44
  */
45
- export interface Variance<E, A> {
45
+ export interface Variance<in out E, in out A> {
46
46
  readonly [ResourceTypeId]: {
47
- _E: (_: never) => E
48
- _A: (_: never) => A
47
+ _E: (_: E) => E
48
+ _A: (_: A) => A
49
49
  }
50
50
  }
51
51
  }
package/src/Runtime.ts CHANGED
@@ -18,7 +18,7 @@ import type { Scheduler } from "./Scheduler.js"
18
18
  * @since 2.0.0
19
19
  * @category models
20
20
  */
21
- export interface AsyncFiberException<E, A> {
21
+ export interface AsyncFiberException<out E, out A> {
22
22
  readonly _tag: "AsyncFiberException"
23
23
  readonly fiber: Fiber.RuntimeFiber<E, A>
24
24
  }
@@ -27,7 +27,7 @@ export interface AsyncFiberException<E, A> {
27
27
  * @since 2.0.0
28
28
  * @category models
29
29
  */
30
- export interface Cancel<E, A> {
30
+ export interface Cancel<out E, out A> {
31
31
  (fiberId?: FiberId.FiberId, onExit?: (exit: Exit.Exit<E, A>) => void): void
32
32
  }
33
33
 
@@ -35,7 +35,7 @@ export interface Cancel<E, A> {
35
35
  * @since 2.0.0
36
36
  * @category models
37
37
  */
38
- export interface Runtime<R> extends Pipeable {
38
+ export interface Runtime<in R> extends Pipeable {
39
39
  /**
40
40
  * The context used as initial for forks
41
41
  */
package/src/STM.ts CHANGED
@@ -65,7 +65,7 @@ export type STMTypeId = typeof STMTypeId
65
65
  * @since 2.0.0
66
66
  * @category models
67
67
  */
68
- export interface STM<R, E, A> extends Effect.Effect<R, E, A>, STM.Variance<R, E, A>, Pipeable {
68
+ export interface STM<out R, out E, out A> extends Effect.Effect<R, E, A>, STM.Variance<R, E, A>, Pipeable {
69
69
  [Unify.typeSymbol]?: unknown
70
70
  [Unify.unifySymbol]?: STMUnify<this>
71
71
  [Unify.ignoreSymbol]?: STMUnifyIgnore
@@ -137,7 +137,7 @@ export declare namespace STM {
137
137
  * @since 2.0.0
138
138
  * @category models
139
139
  */
140
- export interface Variance<R, E, A> {
140
+ export interface Variance<out R, out E, out A> {
141
141
  readonly [STMTypeId]: {
142
142
  readonly _R: (_: never) => R
143
143
  readonly _E: (_: never) => E
@@ -150,12 +150,12 @@ export declare namespace STM {
150
150
  * @category models
151
151
  * @since 2.0.0
152
152
  */
153
- export interface STMGen<R, E, A> {
153
+ export interface STMGen<out R, out E, out A> {
154
154
  readonly _R: () => R
155
155
  readonly _E: () => E
156
156
  readonly _A: () => A
157
157
  readonly value: STM<R, E, A>
158
- readonly [Symbol.iterator]: () => Generator<STMGen<R, E, A>, A>
158
+ [Symbol.iterator](): Generator<STMGen<R, E, A>, A>
159
159
  }
160
160
 
161
161
  /**
@@ -1208,7 +1208,7 @@ export const isSuccess: <R, E, A>(self: STM<R, E, A>) => STM<R, never, boolean>
1208
1208
  export const iterate: <R, E, Z>(
1209
1209
  initial: Z,
1210
1210
  options: {
1211
- readonly while: (z: Z) => boolean
1211
+ readonly while: Predicate<Z>
1212
1212
  readonly body: (z: Z) => STM<R, E, Z>
1213
1213
  }
1214
1214
  ) => STM<R, E, Z> = stm.iterate
@@ -1236,7 +1236,7 @@ export const loop: {
1236
1236
  <Z, R, E, A>(
1237
1237
  initial: Z,
1238
1238
  options: {
1239
- readonly while: (z: Z) => boolean
1239
+ readonly while: Predicate<Z>
1240
1240
  readonly step: (z: Z) => Z
1241
1241
  readonly body: (z: Z) => STM<R, E, A>
1242
1242
  readonly discard?: false | undefined
@@ -1245,7 +1245,7 @@ export const loop: {
1245
1245
  <Z, R, E, A>(
1246
1246
  initial: Z,
1247
1247
  options: {
1248
- readonly while: (z: Z) => boolean
1248
+ readonly while: Predicate<Z>
1249
1249
  readonly step: (z: Z) => Z
1250
1250
  readonly body: (z: Z) => STM<R, E, A>
1251
1251
  readonly discard: true
@@ -1465,8 +1465,13 @@ export const orTry: {
1465
1465
  * @category traversing
1466
1466
  */
1467
1467
  export const partition: {
1468
- <R, E, A, A2>(f: (a: A) => STM<R, E, A2>): (elements: Iterable<A>) => STM<R, never, [Array<E>, Array<A2>]>
1469
- <R, E, A, A2>(elements: Iterable<A>, f: (a: A) => STM<R, E, A2>): STM<R, never, [Array<E>, Array<A2>]>
1468
+ <R, E, A, A2>(
1469
+ f: (a: A) => STM<R, E, A2>
1470
+ ): (elements: Iterable<A>) => STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>
1471
+ <R, E, A, A2>(
1472
+ elements: Iterable<A>,
1473
+ f: (a: A) => STM<R, E, A2>
1474
+ ): STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>
1470
1475
  } = stm.partition
1471
1476
 
1472
1477
  /**
@@ -1823,11 +1828,17 @@ export const tap: {
1823
1828
  */
1824
1829
  export const tapBoth: {
1825
1830
  <E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(
1826
- options: { readonly onFailure: (error: XE) => STM<R2, E2, A2>; readonly onSuccess: (value: XA) => STM<R3, E3, A3> }
1831
+ options: {
1832
+ readonly onFailure: (error: XE) => STM<R2, E2, A2>
1833
+ readonly onSuccess: (value: XA) => STM<R3, E3, A3>
1834
+ }
1827
1835
  ): <R>(self: STM<R, E, A>) => STM<R2 | R3 | R, E | E2 | E3, A>
1828
1836
  <R, E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(
1829
1837
  self: STM<R, E, A>,
1830
- options: { readonly onFailure: (error: XE) => STM<R2, E2, A2>; readonly onSuccess: (value: XA) => STM<R3, E3, A3> }
1838
+ options: {
1839
+ readonly onFailure: (error: XE) => STM<R2, E2, A2>
1840
+ readonly onSuccess: (value: XA) => STM<R3, E3, A3>
1841
+ }
1831
1842
  ): STM<R | R2 | R3, E | E2 | E3, A>
1832
1843
  } = stm.tapBoth
1833
1844
 
@@ -2026,7 +2037,7 @@ export const firstSuccessOf = <R, E, A>(effects: Iterable<STM<R, E, A>>): STM<R,
2026
2037
  suspend<R, E, A>(() => {
2027
2038
  const list = Chunk.fromIterable(effects)
2028
2039
  if (!Chunk.isNonEmpty(list)) {
2029
- return dieSync(() => Cause.IllegalArgumentException(`Received an empty collection of effects`))
2040
+ return dieSync(() => new Cause.IllegalArgumentException(`Received an empty collection of effects`))
2030
2041
  }
2031
2042
  return Chunk.reduce(
2032
2043
  Chunk.tailNonEmpty(list),
package/src/Schedule.ts CHANGED
@@ -67,7 +67,7 @@ export type ScheduleDriverTypeId = typeof ScheduleDriverTypeId
67
67
  * @category model
68
68
  * @since 2.0.0
69
69
  */
70
- export interface Schedule<Env, In, Out> extends Schedule.Variance<Env, In, Out>, Pipeable {
70
+ export interface Schedule<out Env, in In, out Out> extends Schedule.Variance<Env, In, Out>, Pipeable {
71
71
  /**
72
72
  * Initial State
73
73
  */
@@ -75,11 +75,11 @@ export interface Schedule<Env, In, Out> extends Schedule.Variance<Env, In, Out>,
75
75
  /**
76
76
  * Schedule Step
77
77
  */
78
- readonly step: (
78
+ step(
79
79
  now: number,
80
80
  input: In,
81
81
  state: any
82
- ) => Effect.Effect<Env, never, readonly [any, Out, ScheduleDecision.ScheduleDecision]>
82
+ ): Effect.Effect<Env, never, readonly [any, Out, ScheduleDecision.ScheduleDecision]>
83
83
  }
84
84
 
85
85
  /**
@@ -90,7 +90,7 @@ export declare namespace Schedule {
90
90
  * @since 2.0.0
91
91
  * @category models
92
92
  */
93
- export interface Variance<Env, In, Out> {
93
+ export interface Variance<out Env, in In, out Out> {
94
94
  readonly [ScheduleTypeId]: {
95
95
  readonly _Env: (_: never) => Env
96
96
  readonly _In: (_: In) => void
@@ -101,7 +101,7 @@ export declare namespace Schedule {
101
101
  /**
102
102
  * @since 2.0.0
103
103
  */
104
- export interface DriverVariance<Env, In, Out> {
104
+ export interface DriverVariance<out Env, in In, out Out> {
105
105
  readonly [ScheduleDriverTypeId]: {
106
106
  readonly _Env: (_: never) => Env
107
107
  readonly _In: (_: In) => void
@@ -114,11 +114,11 @@ export declare namespace Schedule {
114
114
  * @since 2.0.0
115
115
  * @category models
116
116
  */
117
- export interface ScheduleDriver<Env, In, Out> extends Schedule.DriverVariance<Env, In, Out> {
117
+ export interface ScheduleDriver<out Env, in In, out Out> extends Schedule.DriverVariance<Env, In, Out> {
118
118
  readonly state: Effect.Effect<never, never, unknown>
119
119
  readonly last: Effect.Effect<never, Cause.NoSuchElementException, Out>
120
120
  readonly reset: Effect.Effect<never, never, void>
121
- readonly next: (input: In) => Effect.Effect<Env, Option.Option<never>, Out>
121
+ next(input: In): Effect.Effect<Env, Option.Option<never>, Out>
122
122
  }
123
123
 
124
124
  /**
package/src/Scheduler.ts CHANGED
@@ -21,15 +21,15 @@ export type Task = () => void
21
21
  * @category models
22
22
  */
23
23
  export interface Scheduler {
24
- readonly shouldYield: (fiber: RuntimeFiber<unknown, unknown>) => number | false
25
- readonly scheduleTask: (task: Task, priority: number) => void
24
+ shouldYield(fiber: RuntimeFiber<unknown, unknown>): number | false
25
+ scheduleTask(task: Task, priority: number): void
26
26
  }
27
27
 
28
28
  /**
29
29
  * @since 2.0.0
30
30
  * @category utils
31
31
  */
32
- export class PriorityBuckets<T = Task> {
32
+ export class PriorityBuckets<in out T = Task> {
33
33
  /**
34
34
  * @since 2.0.0
35
35
  */
package/src/Scope.ts CHANGED
@@ -44,11 +44,11 @@ export interface Scope extends Pipeable {
44
44
  /**
45
45
  * @internal
46
46
  */
47
- readonly fork: (strategy: ExecutionStrategy.ExecutionStrategy) => Effect.Effect<never, never, Scope.Closeable>
47
+ fork(strategy: ExecutionStrategy.ExecutionStrategy): Effect.Effect<never, never, Scope.Closeable>
48
48
  /**
49
49
  * @internal
50
50
  */
51
- readonly addFinalizer: (finalizer: Scope.Finalizer) => Effect.Effect<never, never, void>
51
+ addFinalizer(finalizer: Scope.Finalizer): Effect.Effect<never, never, void>
52
52
  }
53
53
 
54
54
  /**
@@ -61,7 +61,7 @@ export interface CloseableScope extends Scope, Pipeable {
61
61
  /**
62
62
  * @internal
63
63
  */
64
- readonly close: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<never, never, void>
64
+ close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<never, never, void>
65
65
  }
66
66
 
67
67
  /**
@@ -26,18 +26,18 @@ export type ScopedCacheTypeId = typeof ScopedCacheTypeId
26
26
  * @since 2.0.0
27
27
  * @category models
28
28
  */
29
- export interface ScopedCache<Key, Error, Value> extends ScopedCache.Variance<Key, Error, Value>, Pipeable {
29
+ export interface ScopedCache<in Key, out Error, out Value> extends ScopedCache.Variance<Key, Error, Value>, Pipeable {
30
30
  /**
31
31
  * Retrieves the value associated with the specified key if it exists.
32
32
  * Otherwise returns `Option.none`.
33
33
  */
34
- readonly getOption: (key: Key) => Effect.Effect<Scope.Scope, Error, Option.Option<Value>>
34
+ getOption(key: Key): Effect.Effect<Scope.Scope, Error, Option.Option<Value>>
35
35
 
36
36
  /**
37
37
  * Retrieves the value associated with the specified key if it exists and the
38
38
  * lookup function has completed. Otherwise returns `Option.none`.
39
39
  */
40
- readonly getOptionComplete: (key: Key) => Effect.Effect<Scope.Scope, never, Option.Option<Value>>
40
+ getOptionComplete(key: Key): Effect.Effect<Scope.Scope, never, Option.Option<Value>>
41
41
 
42
42
  /**
43
43
  * Returns statistics for this cache.
@@ -49,24 +49,24 @@ export interface ScopedCache<Key, Error, Value> extends ScopedCache.Variance<Key
49
49
  * cache. Sometime `contains` can return true if the resource is currently
50
50
  * being created but not yet totally created.
51
51
  */
52
- readonly contains: (key: Key) => Effect.Effect<never, never, boolean>
52
+ contains(key: Key): Effect.Effect<never, never, boolean>
53
53
 
54
54
  /**
55
55
  * Return statistics for the specified entry.
56
56
  */
57
- readonly entryStats: (key: Key) => Effect.Effect<never, never, Option.Option<Cache.EntryStats>>
57
+ entryStats(key: Key): Effect.Effect<never, never, Option.Option<Cache.EntryStats>>
58
58
 
59
59
  /**
60
60
  * Gets the value from the cache if it exists or otherwise computes it, the
61
61
  * release action signals to the cache that the value is no longer being used
62
62
  * and can potentially be finalized subject to the policies of the cache.
63
63
  */
64
- readonly get: (key: Key) => Effect.Effect<Scope.Scope, Error, Value>
64
+ get(key: Key): Effect.Effect<Scope.Scope, Error, Value>
65
65
 
66
66
  /**
67
67
  * Invalidates the resource associated with the specified key.
68
68
  */
69
- readonly invalidate: (key: Key) => Effect.Effect<never, never, void>
69
+ invalidate(key: Key): Effect.Effect<never, never, void>
70
70
 
71
71
  /**
72
72
  * Invalidates all values in the cache.
@@ -81,7 +81,7 @@ export interface ScopedCache<Key, Error, Value> extends ScopedCache.Variance<Key
81
81
  * computed, concurrent call the .get will use the old resource if this one is
82
82
  * not expired.
83
83
  */
84
- readonly refresh: (key: Key) => Effect.Effect<never, Error, void>
84
+ refresh(key: Key): Effect.Effect<never, Error, void>
85
85
 
86
86
  /**
87
87
  * Returns the approximate number of values in the cache.
@@ -97,7 +97,7 @@ export declare namespace ScopedCache {
97
97
  * @since 2.0.0
98
98
  * @category models
99
99
  */
100
- export interface Variance<Key, Error, Value> {
100
+ export interface Variance<in Key, out Error, out Value> {
101
101
  readonly [ScopedCacheTypeId]: {
102
102
  _Key: (_: Key) => void
103
103
  _Error: (_: never) => Error
package/src/ScopedRef.ts CHANGED
@@ -30,7 +30,7 @@ export type ScopedRefTypeId = typeof ScopedRefTypeId
30
30
  * @since 2.0.0
31
31
  * @category models
32
32
  */
33
- export interface ScopedRef<A> extends ScopedRef.Variance<A>, Pipeable {
33
+ export interface ScopedRef<in out A> extends ScopedRef.Variance<A>, Pipeable {
34
34
  /** @internal */
35
35
  readonly ref: Synchronized.SynchronizedRef<readonly [Scope.Scope.Closeable, A]>
36
36
  }
@@ -43,9 +43,9 @@ export declare namespace ScopedRef {
43
43
  * @since 2.0.0
44
44
  * @category models
45
45
  */
46
- export interface Variance<A> {
46
+ export interface Variance<in out A> {
47
47
  readonly [ScopedRefTypeId]: {
48
- readonly _A: (_: never) => A
48
+ readonly _A: (_: A) => A
49
49
  }
50
50
  }
51
51
  }
@@ -26,7 +26,7 @@ import * as internal from "./internal/channel/singleProducerAsyncInput.js"
26
26
  * @since 2.0.0
27
27
  * @category models
28
28
  */
29
- export interface SingleProducerAsyncInput<Err, Elem, Done>
29
+ export interface SingleProducerAsyncInput<in out Err, in out Elem, in out Done>
30
30
  extends AsyncInputProducer<Err, Elem, Done>, AsyncInputConsumer<Err, Elem, Done>
31
31
  {
32
32
  readonly close: Effect.Effect<never, never, unknown>
@@ -39,11 +39,11 @@ export interface SingleProducerAsyncInput<Err, Elem, Done>
39
39
  * @since 2.0.0
40
40
  * @category models
41
41
  */
42
- export interface AsyncInputProducer<Err, Elem, Done> {
43
- readonly awaitRead: () => Effect.Effect<never, never, unknown>
44
- readonly done: (value: Done) => Effect.Effect<never, never, unknown>
45
- readonly emit: (element: Elem) => Effect.Effect<never, never, unknown>
46
- readonly error: (cause: Cause.Cause<Err>) => Effect.Effect<never, never, unknown>
42
+ export interface AsyncInputProducer<in Err, in Elem, in Done> {
43
+ awaitRead(): Effect.Effect<never, never, unknown>
44
+ done(value: Done): Effect.Effect<never, never, unknown>
45
+ emit(element: Elem): Effect.Effect<never, never, unknown>
46
+ error(cause: Cause.Cause<Err>): Effect.Effect<never, never, unknown>
47
47
  }
48
48
 
49
49
  /**
@@ -52,7 +52,7 @@ export interface AsyncInputProducer<Err, Elem, Done> {
52
52
  * @since 2.0.0
53
53
  * @category models
54
54
  */
55
- export interface AsyncInputConsumer<Err, Elem, Done> {
55
+ export interface AsyncInputConsumer<out Err, out Elem, out Done> {
56
56
  takeWith<A>(
57
57
  onError: (cause: Cause.Cause<Err>) => A,
58
58
  onElement: (element: Elem) => A,