effect 2.3.7 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/cjs/BigDecimal.js +1 -1
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/BigInt.js +14 -1
  4. package/dist/cjs/BigInt.js.map +1 -1
  5. package/dist/cjs/Chunk.js +1 -1
  6. package/dist/cjs/Chunk.js.map +1 -1
  7. package/dist/cjs/Cron.js +1 -1
  8. package/dist/cjs/Cron.js.map +1 -1
  9. package/dist/cjs/Duration.js +1 -1
  10. package/dist/cjs/Duration.js.map +1 -1
  11. package/dist/cjs/Effect.js +16 -61
  12. package/dist/cjs/Effect.js.map +1 -1
  13. package/dist/cjs/Either.js +35 -6
  14. package/dist/cjs/Either.js.map +1 -1
  15. package/dist/cjs/Equal.js +1 -1
  16. package/dist/cjs/Equal.js.map +1 -1
  17. package/dist/cjs/Exit.js +1 -1
  18. package/dist/cjs/FiberMap.js.map +1 -1
  19. package/dist/cjs/Hash.js +29 -1
  20. package/dist/cjs/Hash.js.map +1 -1
  21. package/dist/cjs/List.js +3 -2
  22. package/dist/cjs/List.js.map +1 -1
  23. package/dist/cjs/Number.js +25 -1
  24. package/dist/cjs/Number.js.map +1 -1
  25. package/dist/cjs/ReadonlyArray.js +2 -2
  26. package/dist/cjs/ReadonlyArray.js.map +1 -1
  27. package/dist/cjs/ReadonlyRecord.js +71 -76
  28. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  29. package/dist/cjs/STM.js.map +1 -1
  30. package/dist/cjs/Schedule.js.map +1 -1
  31. package/dist/cjs/Sink.js.map +1 -1
  32. package/dist/cjs/SortedMap.js +1 -1
  33. package/dist/cjs/SortedMap.js.map +1 -1
  34. package/dist/cjs/SortedSet.js +1 -1
  35. package/dist/cjs/SortedSet.js.map +1 -1
  36. package/dist/cjs/Stream.js +3 -23
  37. package/dist/cjs/Stream.js.map +1 -1
  38. package/dist/cjs/Struct.js +3 -1
  39. package/dist/cjs/Struct.js.map +1 -1
  40. package/dist/cjs/TestAnnotation.js +1 -1
  41. package/dist/cjs/TestAnnotation.js.map +1 -1
  42. package/dist/cjs/internal/cache.js +1 -1
  43. package/dist/cjs/internal/cache.js.map +1 -1
  44. package/dist/cjs/internal/cause.js +1 -1
  45. package/dist/cjs/internal/cause.js.map +1 -1
  46. package/dist/cjs/internal/channel/channelExecutor.js +5 -5
  47. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  48. package/dist/cjs/internal/channel/channelState.js +5 -5
  49. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  50. package/dist/cjs/internal/channel.js.map +1 -1
  51. package/dist/cjs/internal/clock.js +3 -4
  52. package/dist/cjs/internal/clock.js.map +1 -1
  53. package/dist/cjs/internal/context.js +1 -1
  54. package/dist/cjs/internal/context.js.map +1 -1
  55. package/dist/cjs/internal/core-effect.js +6 -23
  56. package/dist/cjs/internal/core-effect.js.map +1 -1
  57. package/dist/cjs/internal/core.js +15 -31
  58. package/dist/cjs/internal/core.js.map +1 -1
  59. package/dist/cjs/internal/data.js +1 -1
  60. package/dist/cjs/internal/data.js.map +1 -1
  61. package/dist/cjs/internal/effect/circular.js +5 -6
  62. package/dist/cjs/internal/effect/circular.js.map +1 -1
  63. package/dist/cjs/internal/effectable.js +2 -2
  64. package/dist/cjs/internal/effectable.js.map +1 -1
  65. package/dist/cjs/internal/either.js +1 -1
  66. package/dist/cjs/internal/either.js.map +1 -1
  67. package/dist/cjs/internal/fiberId.js +2 -9
  68. package/dist/cjs/internal/fiberId.js.map +1 -1
  69. package/dist/cjs/internal/fiberStatus.js +4 -3
  70. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  71. package/dist/cjs/internal/groupBy.js.map +1 -1
  72. package/dist/cjs/internal/hashMap.js +1 -1
  73. package/dist/cjs/internal/hashMap.js.map +1 -1
  74. package/dist/cjs/internal/hashSet.js +1 -1
  75. package/dist/cjs/internal/hashSet.js.map +1 -1
  76. package/dist/cjs/internal/keyedPool.js +2 -2
  77. package/dist/cjs/internal/keyedPool.js.map +1 -1
  78. package/dist/cjs/internal/layer.js +0 -2
  79. package/dist/cjs/internal/layer.js.map +1 -1
  80. package/dist/cjs/internal/metric/keyType.js +4 -4
  81. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  82. package/dist/cjs/internal/metric/state.js +5 -9
  83. package/dist/cjs/internal/metric/state.js.map +1 -1
  84. package/dist/cjs/internal/option.js +1 -1
  85. package/dist/cjs/internal/option.js.map +1 -1
  86. package/dist/cjs/internal/pool.js +1 -1
  87. package/dist/cjs/internal/pool.js.map +1 -1
  88. package/dist/cjs/internal/redBlackTree.js +1 -1
  89. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  90. package/dist/cjs/internal/runtime.js +12 -1
  91. package/dist/cjs/internal/runtime.js.map +1 -1
  92. package/dist/cjs/internal/schedule.js +4 -4
  93. package/dist/cjs/internal/schedule.js.map +1 -1
  94. package/dist/cjs/internal/secret.js +1 -1
  95. package/dist/cjs/internal/secret.js.map +1 -1
  96. package/dist/cjs/internal/sink.js +0 -2
  97. package/dist/cjs/internal/sink.js.map +1 -1
  98. package/dist/cjs/internal/stm/core.js +1 -1
  99. package/dist/cjs/internal/stm/core.js.map +1 -1
  100. package/dist/cjs/internal/stm/stm/stmState.js +6 -4
  101. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  102. package/dist/cjs/internal/stm/stm/tExit.js +7 -6
  103. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  104. package/dist/cjs/internal/stm/stm.js +1 -0
  105. package/dist/cjs/internal/stm/stm.js.map +1 -1
  106. package/dist/cjs/internal/stream.js +51 -64
  107. package/dist/cjs/internal/stream.js.map +1 -1
  108. package/dist/cjs/internal/trie.js +1 -1
  109. package/dist/cjs/internal/trie.js.map +1 -1
  110. package/dist/cjs/internal/version.js +1 -1
  111. package/dist/dts/BigDecimal.d.ts.map +1 -1
  112. package/dist/dts/BigInt.d.ts +7 -0
  113. package/dist/dts/BigInt.d.ts.map +1 -1
  114. package/dist/dts/Brand.d.ts +1 -1
  115. package/dist/dts/Brand.d.ts.map +1 -1
  116. package/dist/dts/Cause.d.ts +1 -1
  117. package/dist/dts/Cause.d.ts.map +1 -1
  118. package/dist/dts/Channel.d.ts +11 -11
  119. package/dist/dts/Channel.d.ts.map +1 -1
  120. package/dist/dts/Chunk.d.ts +3 -3
  121. package/dist/dts/Config.d.ts +4 -4
  122. package/dist/dts/Config.d.ts.map +1 -1
  123. package/dist/dts/Cron.d.ts +1 -1
  124. package/dist/dts/Cron.d.ts.map +1 -1
  125. package/dist/dts/Differ.d.ts +2 -2
  126. package/dist/dts/Differ.d.ts.map +1 -1
  127. package/dist/dts/Effect.d.ts +52 -108
  128. package/dist/dts/Effect.d.ts.map +1 -1
  129. package/dist/dts/Either.d.ts +126 -83
  130. package/dist/dts/Either.d.ts.map +1 -1
  131. package/dist/dts/Encoding.d.ts +6 -6
  132. package/dist/dts/Encoding.d.ts.map +1 -1
  133. package/dist/dts/Equal.d.ts.map +1 -1
  134. package/dist/dts/Exit.d.ts +2 -2
  135. package/dist/dts/Fiber.d.ts +2 -2
  136. package/dist/dts/Fiber.d.ts.map +1 -1
  137. package/dist/dts/FiberMap.d.ts +4 -5
  138. package/dist/dts/FiberMap.d.ts.map +1 -1
  139. package/dist/dts/GroupBy.d.ts +12 -12
  140. package/dist/dts/GroupBy.d.ts.map +1 -1
  141. package/dist/dts/Hash.d.ts +8 -0
  142. package/dist/dts/Hash.d.ts.map +1 -1
  143. package/dist/dts/Layer.d.ts +26 -26
  144. package/dist/dts/Layer.d.ts.map +1 -1
  145. package/dist/dts/List.d.ts +2 -2
  146. package/dist/dts/List.d.ts.map +1 -1
  147. package/dist/dts/Logger.d.ts +4 -4
  148. package/dist/dts/Match.d.ts +2 -2
  149. package/dist/dts/Match.d.ts.map +1 -1
  150. package/dist/dts/MergeDecision.d.ts +1 -1
  151. package/dist/dts/MergeState.d.ts +5 -5
  152. package/dist/dts/MergeState.d.ts.map +1 -1
  153. package/dist/dts/Metric.d.ts +13 -13
  154. package/dist/dts/Metric.d.ts.map +1 -1
  155. package/dist/dts/MetricPolling.d.ts +4 -4
  156. package/dist/dts/MetricPolling.d.ts.map +1 -1
  157. package/dist/dts/Number.d.ts +8 -0
  158. package/dist/dts/Number.d.ts.map +1 -1
  159. package/dist/dts/Option.d.ts +11 -11
  160. package/dist/dts/ReadonlyArray.d.ts +9 -8
  161. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  162. package/dist/dts/ReadonlyRecord.d.ts +111 -94
  163. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  164. package/dist/dts/Reloadable.d.ts +4 -4
  165. package/dist/dts/Reloadable.d.ts.map +1 -1
  166. package/dist/dts/RequestResolver.d.ts +13 -13
  167. package/dist/dts/RequestResolver.d.ts.map +1 -1
  168. package/dist/dts/Resource.d.ts +1 -1
  169. package/dist/dts/Resource.d.ts.map +1 -1
  170. package/dist/dts/STM.d.ts +144 -139
  171. package/dist/dts/STM.d.ts.map +1 -1
  172. package/dist/dts/Schedule.d.ts +171 -179
  173. package/dist/dts/Schedule.d.ts.map +1 -1
  174. package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
  175. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  176. package/dist/dts/Sink.d.ts +13 -13
  177. package/dist/dts/Sink.d.ts.map +1 -1
  178. package/dist/dts/SortedMap.d.ts.map +1 -1
  179. package/dist/dts/SortedSet.d.ts.map +1 -1
  180. package/dist/dts/Stream.d.ts +355 -366
  181. package/dist/dts/Stream.d.ts.map +1 -1
  182. package/dist/dts/Struct.d.ts +3 -3
  183. package/dist/dts/Struct.d.ts.map +1 -1
  184. package/dist/dts/SubscriptionRef.d.ts +2 -2
  185. package/dist/dts/TArray.d.ts +2 -2
  186. package/dist/dts/TDeferred.d.ts +3 -3
  187. package/dist/dts/TMap.d.ts +10 -10
  188. package/dist/dts/TSet.d.ts +4 -4
  189. package/dist/dts/Take.d.ts +2 -2
  190. package/dist/dts/TestAnnotation.d.ts +2 -2
  191. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  192. package/dist/dts/Types.d.ts +7 -0
  193. package/dist/dts/Types.d.ts.map +1 -1
  194. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  195. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  196. package/dist/dts/internal/stm/stm.d.ts +2 -15
  197. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  198. package/dist/esm/BigDecimal.js +1 -1
  199. package/dist/esm/BigDecimal.js.map +1 -1
  200. package/dist/esm/BigInt.js +12 -0
  201. package/dist/esm/BigInt.js.map +1 -1
  202. package/dist/esm/Chunk.js +1 -1
  203. package/dist/esm/Chunk.js.map +1 -1
  204. package/dist/esm/Cron.js +1 -1
  205. package/dist/esm/Cron.js.map +1 -1
  206. package/dist/esm/Duration.js +1 -1
  207. package/dist/esm/Duration.js.map +1 -1
  208. package/dist/esm/Effect.js +13 -58
  209. package/dist/esm/Effect.js.map +1 -1
  210. package/dist/esm/Either.js +42 -5
  211. package/dist/esm/Either.js.map +1 -1
  212. package/dist/esm/Equal.js +1 -1
  213. package/dist/esm/Equal.js.map +1 -1
  214. package/dist/esm/Exit.js +1 -1
  215. package/dist/esm/FiberMap.js.map +1 -1
  216. package/dist/esm/Hash.js +27 -0
  217. package/dist/esm/Hash.js.map +1 -1
  218. package/dist/esm/List.js +3 -2
  219. package/dist/esm/List.js.map +1 -1
  220. package/dist/esm/Number.js +23 -0
  221. package/dist/esm/Number.js.map +1 -1
  222. package/dist/esm/ReadonlyArray.js +2 -2
  223. package/dist/esm/ReadonlyArray.js.map +1 -1
  224. package/dist/esm/ReadonlyRecord.js +70 -75
  225. package/dist/esm/ReadonlyRecord.js.map +1 -1
  226. package/dist/esm/STM.js.map +1 -1
  227. package/dist/esm/Schedule.js.map +1 -1
  228. package/dist/esm/Sink.js.map +1 -1
  229. package/dist/esm/SortedMap.js +1 -1
  230. package/dist/esm/SortedMap.js.map +1 -1
  231. package/dist/esm/SortedSet.js +1 -1
  232. package/dist/esm/SortedSet.js.map +1 -1
  233. package/dist/esm/Stream.js +5 -22
  234. package/dist/esm/Stream.js.map +1 -1
  235. package/dist/esm/Struct.js +3 -1
  236. package/dist/esm/Struct.js.map +1 -1
  237. package/dist/esm/TestAnnotation.js +1 -1
  238. package/dist/esm/TestAnnotation.js.map +1 -1
  239. package/dist/esm/internal/cache.js +1 -1
  240. package/dist/esm/internal/cache.js.map +1 -1
  241. package/dist/esm/internal/cause.js +1 -1
  242. package/dist/esm/internal/cause.js.map +1 -1
  243. package/dist/esm/internal/channel/channelExecutor.js +5 -5
  244. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  245. package/dist/esm/internal/channel/channelState.js +3 -3
  246. package/dist/esm/internal/channel/channelState.js.map +1 -1
  247. package/dist/esm/internal/channel.js.map +1 -1
  248. package/dist/esm/internal/clock.js +3 -4
  249. package/dist/esm/internal/clock.js.map +1 -1
  250. package/dist/esm/internal/context.js +1 -1
  251. package/dist/esm/internal/context.js.map +1 -1
  252. package/dist/esm/internal/core-effect.js +4 -20
  253. package/dist/esm/internal/core-effect.js.map +1 -1
  254. package/dist/esm/internal/core.js +12 -26
  255. package/dist/esm/internal/core.js.map +1 -1
  256. package/dist/esm/internal/data.js +1 -1
  257. package/dist/esm/internal/data.js.map +1 -1
  258. package/dist/esm/internal/effect/circular.js +5 -6
  259. package/dist/esm/internal/effect/circular.js.map +1 -1
  260. package/dist/esm/internal/effectable.js +2 -2
  261. package/dist/esm/internal/effectable.js.map +1 -1
  262. package/dist/esm/internal/either.js +1 -1
  263. package/dist/esm/internal/either.js.map +1 -1
  264. package/dist/esm/internal/fiberId.js +2 -9
  265. package/dist/esm/internal/fiberId.js.map +1 -1
  266. package/dist/esm/internal/fiberStatus.js +4 -3
  267. package/dist/esm/internal/fiberStatus.js.map +1 -1
  268. package/dist/esm/internal/groupBy.js.map +1 -1
  269. package/dist/esm/internal/hashMap.js +1 -1
  270. package/dist/esm/internal/hashMap.js.map +1 -1
  271. package/dist/esm/internal/hashSet.js +1 -1
  272. package/dist/esm/internal/hashSet.js.map +1 -1
  273. package/dist/esm/internal/keyedPool.js +2 -2
  274. package/dist/esm/internal/keyedPool.js.map +1 -1
  275. package/dist/esm/internal/layer.js +0 -2
  276. package/dist/esm/internal/layer.js.map +1 -1
  277. package/dist/esm/internal/metric/keyType.js +4 -4
  278. package/dist/esm/internal/metric/keyType.js.map +1 -1
  279. package/dist/esm/internal/metric/state.js +5 -9
  280. package/dist/esm/internal/metric/state.js.map +1 -1
  281. package/dist/esm/internal/option.js +1 -1
  282. package/dist/esm/internal/option.js.map +1 -1
  283. package/dist/esm/internal/pool.js +1 -1
  284. package/dist/esm/internal/pool.js.map +1 -1
  285. package/dist/esm/internal/redBlackTree.js +1 -1
  286. package/dist/esm/internal/redBlackTree.js.map +1 -1
  287. package/dist/esm/internal/runtime.js +12 -1
  288. package/dist/esm/internal/runtime.js.map +1 -1
  289. package/dist/esm/internal/schedule.js +4 -4
  290. package/dist/esm/internal/schedule.js.map +1 -1
  291. package/dist/esm/internal/secret.js +1 -1
  292. package/dist/esm/internal/secret.js.map +1 -1
  293. package/dist/esm/internal/sink.js +0 -2
  294. package/dist/esm/internal/sink.js.map +1 -1
  295. package/dist/esm/internal/stm/core.js +1 -1
  296. package/dist/esm/internal/stm/core.js.map +1 -1
  297. package/dist/esm/internal/stm/stm/stmState.js +5 -3
  298. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  299. package/dist/esm/internal/stm/stm/tExit.js +6 -5
  300. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  301. package/dist/esm/internal/stm/stm.js +1 -0
  302. package/dist/esm/internal/stm/stm.js.map +1 -1
  303. package/dist/esm/internal/stream.js +49 -59
  304. package/dist/esm/internal/stream.js.map +1 -1
  305. package/dist/esm/internal/trie.js +1 -1
  306. package/dist/esm/internal/trie.js.map +1 -1
  307. package/dist/esm/internal/version.js +1 -1
  308. package/package.json +3 -2
  309. package/src/BigDecimal.ts +2 -1
  310. package/src/BigInt.ts +13 -0
  311. package/src/Brand.ts +4 -4
  312. package/src/Cause.ts +1 -1
  313. package/src/Channel.ts +17 -17
  314. package/src/Chunk.ts +5 -5
  315. package/src/Config.ts +4 -4
  316. package/src/Cron.ts +4 -3
  317. package/src/Differ.ts +2 -2
  318. package/src/Duration.ts +2 -2
  319. package/src/Effect.ts +68 -145
  320. package/src/Either.ts +215 -133
  321. package/src/Encoding.ts +3 -3
  322. package/src/Equal.ts +1 -1
  323. package/src/Exit.ts +2 -2
  324. package/src/Fiber.ts +2 -2
  325. package/src/FiberMap.ts +0 -1
  326. package/src/GroupBy.ts +16 -16
  327. package/src/Hash.ts +31 -0
  328. package/src/Layer.ts +32 -32
  329. package/src/List.ts +6 -5
  330. package/src/Logger.ts +4 -4
  331. package/src/Match.ts +3 -3
  332. package/src/MergeDecision.ts +1 -1
  333. package/src/MergeState.ts +8 -8
  334. package/src/Metric.ts +13 -13
  335. package/src/MetricPolling.ts +9 -9
  336. package/src/Number.ts +26 -0
  337. package/src/Option.ts +17 -17
  338. package/src/ReadonlyArray.ts +23 -15
  339. package/src/ReadonlyRecord.ts +421 -265
  340. package/src/Reloadable.ts +4 -4
  341. package/src/RequestResolver.ts +19 -19
  342. package/src/Resource.ts +3 -3
  343. package/src/STM.ts +166 -213
  344. package/src/Schedule.ts +331 -361
  345. package/src/SingleProducerAsyncInput.ts +1 -1
  346. package/src/Sink.ts +19 -19
  347. package/src/SortedMap.ts +5 -1
  348. package/src/SortedSet.ts +5 -1
  349. package/src/Stream.ts +449 -456
  350. package/src/Struct.ts +8 -5
  351. package/src/SubscriptionRef.ts +2 -2
  352. package/src/TArray.ts +2 -2
  353. package/src/TDeferred.ts +4 -4
  354. package/src/TMap.ts +10 -10
  355. package/src/TSet.ts +4 -4
  356. package/src/Take.ts +4 -4
  357. package/src/TestAnnotation.ts +7 -9
  358. package/src/Types.ts +11 -0
  359. package/src/internal/blockedRequests.ts +2 -2
  360. package/src/internal/cache.ts +2 -1
  361. package/src/internal/cause.ts +4 -3
  362. package/src/internal/channel/channelExecutor.ts +26 -26
  363. package/src/internal/channel/channelState.ts +13 -13
  364. package/src/internal/channel/mergeDecision.ts +1 -1
  365. package/src/internal/channel/mergeState.ts +6 -6
  366. package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
  367. package/src/internal/channel.ts +43 -43
  368. package/src/internal/clock.ts +3 -4
  369. package/src/internal/config.ts +7 -7
  370. package/src/internal/configError.ts +1 -1
  371. package/src/internal/configProvider/pathPatch.ts +2 -2
  372. package/src/internal/configProvider.ts +1 -1
  373. package/src/internal/context.ts +1 -1
  374. package/src/internal/core-effect.ts +28 -43
  375. package/src/internal/core.ts +19 -44
  376. package/src/internal/data.ts +1 -1
  377. package/src/internal/dataSource.ts +26 -26
  378. package/src/internal/differ/orPatch.ts +7 -7
  379. package/src/internal/differ.ts +2 -2
  380. package/src/internal/effect/circular.ts +10 -11
  381. package/src/internal/effectable.ts +3 -3
  382. package/src/internal/either.ts +23 -20
  383. package/src/internal/encoding/base64.ts +1 -1
  384. package/src/internal/encoding/base64Url.ts +1 -1
  385. package/src/internal/encoding/hex.ts +1 -1
  386. package/src/internal/fiber.ts +2 -2
  387. package/src/internal/fiberId.ts +7 -13
  388. package/src/internal/fiberRuntime.ts +9 -9
  389. package/src/internal/fiberStatus.ts +7 -6
  390. package/src/internal/groupBy.ts +40 -40
  391. package/src/internal/hashMap.ts +2 -2
  392. package/src/internal/hashSet.ts +4 -1
  393. package/src/internal/keyedPool.ts +4 -2
  394. package/src/internal/layer/circular.ts +4 -4
  395. package/src/internal/layer.ts +52 -54
  396. package/src/internal/matcher.ts +5 -5
  397. package/src/internal/metric/keyType.ts +7 -5
  398. package/src/internal/metric/polling.ts +8 -8
  399. package/src/internal/metric/state.ts +11 -10
  400. package/src/internal/metric.ts +6 -6
  401. package/src/internal/option.ts +1 -1
  402. package/src/internal/pool.ts +2 -1
  403. package/src/internal/redBlackTree.ts +2 -2
  404. package/src/internal/reloadable.ts +4 -4
  405. package/src/internal/resource.ts +2 -2
  406. package/src/internal/runtime.ts +32 -19
  407. package/src/internal/schedule.ts +430 -500
  408. package/src/internal/secret.ts +2 -1
  409. package/src/internal/sink.ts +27 -29
  410. package/src/internal/stm/core.ts +24 -24
  411. package/src/internal/stm/stm/stmState.ts +16 -11
  412. package/src/internal/stm/stm/tExit.ts +15 -9
  413. package/src/internal/stm/stm.ts +158 -157
  414. package/src/internal/stm/tArray.ts +3 -3
  415. package/src/internal/stm/tDeferred.ts +5 -5
  416. package/src/internal/stm/tMap.ts +13 -13
  417. package/src/internal/stm/tSet.ts +4 -4
  418. package/src/internal/stream.ts +688 -723
  419. package/src/internal/subscriptionRef.ts +3 -3
  420. package/src/internal/take.ts +6 -6
  421. package/src/internal/trie.ts +2 -2
  422. package/src/internal/version.ts +1 -1
@@ -39,7 +39,7 @@ import * as pull from "./stream/pull.js";
39
39
  import * as SinkEndReason from "./stream/sinkEndReason.js";
40
40
  import * as ZipAllState from "./stream/zipAllState.js";
41
41
  import * as ZipChunksState from "./stream/zipChunksState.js";
42
- import * as _take from "./take.js";
42
+ import * as InternalTake from "./take.js";
43
43
  /** @internal */
44
44
  const StreamSymbolKey = "effect/Stream";
45
45
  /** @internal */
@@ -162,19 +162,35 @@ export const aggregateWithinEither = /*#__PURE__*/dual(3, (self, sink, schedule)
162
162
  /** @internal */
163
163
  export const as = /*#__PURE__*/dual(2, (self, value) => map(self, () => value));
164
164
  /** @internal */
165
- export const _async = (register, outputBuffer = 16) => asyncOption(cb => {
166
- register(cb);
167
- return Option.none();
168
- }, outputBuffer);
165
+ export const _async = (register, outputBuffer = 16) => Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)).pipe(Effect.flatMap(output => Effect.runtime().pipe(Effect.flatMap(runtime => Effect.sync(() => {
166
+ const runPromiseExit = Runtime.runPromiseExit(runtime);
167
+ const canceler = register(emit.make(resume => InternalTake.fromPull(resume).pipe(Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, runPromiseExit).then(exit => {
168
+ if (Exit.isFailure(exit)) {
169
+ if (!Cause.isInterrupted(exit.cause)) {
170
+ throw Cause.squash(exit.cause);
171
+ }
172
+ }
173
+ })));
174
+ return canceler;
175
+ })), Effect.map(value => {
176
+ const loop = Queue.take(output).pipe(Effect.flatMap(take => InternalTake.done(take)), Effect.match({
177
+ onFailure: maybeError => core.fromEffect(Queue.shutdown(output)).pipe(channel.zipRight(Option.match(maybeError, {
178
+ onNone: () => core.unit,
179
+ onSome: error => core.fail(error)
180
+ }))),
181
+ onSuccess: chunk => core.write(chunk).pipe(core.flatMap(() => loop))
182
+ }), channel.unwrap);
183
+ return fromChannel(loop).pipe(ensuring(value ?? Effect.unit));
184
+ }))), unwrapScoped);
169
185
  /** @internal */
170
- export const asyncEffect = (register, outputBuffer = 16) => pipe(Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)), Effect.flatMap(output => pipe(Effect.runtime(), Effect.flatMap(runtime => pipe(register(emit.make(k => pipe(_take.fromPull(k), Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, Runtime.runPromiseExit(runtime)).then(exit => {
186
+ export const asyncEffect = (register, outputBuffer = 16) => pipe(Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)), Effect.flatMap(output => pipe(Effect.runtime(), Effect.flatMap(runtime => pipe(register(emit.make(k => pipe(InternalTake.fromPull(k), Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, Runtime.runPromiseExit(runtime)).then(exit => {
171
187
  if (Exit.isFailure(exit)) {
172
188
  if (!Cause.isInterrupted(exit.cause)) {
173
189
  throw Cause.squash(exit.cause);
174
190
  }
175
191
  }
176
192
  }))), Effect.map(() => {
177
- const loop = pipe(Queue.take(output), Effect.flatMap(_take.done), Effect.match({
193
+ const loop = pipe(Queue.take(output), Effect.flatMap(InternalTake.done), Effect.match({
178
194
  onFailure: maybeError => pipe(core.fromEffect(Queue.shutdown(output)), channel.zipRight(Option.match(maybeError, {
179
195
  onNone: () => core.unit,
180
196
  onSome: core.fail
@@ -184,38 +200,13 @@ export const asyncEffect = (register, outputBuffer = 16) => pipe(Effect.acquireR
184
200
  return loop;
185
201
  }))))), channel.unwrapScoped, fromChannel);
186
202
  /** @internal */
187
- export const asyncInterrupt = (register, outputBuffer = 16) => pipe(Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)), Effect.flatMap(output => pipe(Effect.runtime(), Effect.flatMap(runtime => pipe(Effect.sync(() => register(emit.make(k => pipe(_take.fromPull(k), Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, Runtime.runPromiseExit(runtime)).then(exit => {
188
- if (Exit.isFailure(exit)) {
189
- if (!Cause.isInterrupted(exit.cause)) {
190
- throw Cause.squash(exit.cause);
191
- }
192
- }
193
- })))), Effect.map(Either.match({
194
- onLeft: canceler => {
195
- const loop = pipe(Queue.take(output), Effect.flatMap(_take.done), Effect.match({
196
- onFailure: maybeError => channel.zipRight(core.fromEffect(Queue.shutdown(output)), Option.match(maybeError, {
197
- onNone: () => core.unit,
198
- onSome: core.fail
199
- })),
200
- onSuccess: chunk => pipe(core.write(chunk), core.flatMap(() => loop))
201
- }), channel.unwrap);
202
- return pipe(fromChannel(loop), ensuring(canceler));
203
- },
204
- onRight: stream => unwrap(pipe(Queue.shutdown(output), Effect.as(stream)))
205
- })))))), unwrapScoped);
206
- /** @internal */
207
- export const asyncOption = (register, outputBuffer = 16) => asyncInterrupt(emit => Option.match(register(emit), {
208
- onNone: () => Either.left(Effect.unit),
209
- onSome: Either.right
210
- }), outputBuffer);
211
- /** @internal */
212
- export const asyncScoped = (register, outputBuffer = 16) => pipe(Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)), Effect.flatMap(output => pipe(Effect.runtime(), Effect.flatMap(runtime => pipe(register(emit.make(k => pipe(_take.fromPull(k), Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, Runtime.runPromiseExit(runtime)).then(exit => {
203
+ export const asyncScoped = (register, outputBuffer = 16) => pipe(Effect.acquireRelease(Queue.bounded(outputBuffer), queue => Queue.shutdown(queue)), Effect.flatMap(output => pipe(Effect.runtime(), Effect.flatMap(runtime => pipe(register(emit.make(k => pipe(InternalTake.fromPull(k), Effect.flatMap(take => Queue.offer(output, take)), Effect.asUnit, Runtime.runPromiseExit(runtime)).then(exit => {
213
204
  if (Exit.isFailure(exit)) {
214
205
  if (!Cause.isInterrupted(exit.cause)) {
215
206
  throw Cause.squash(exit.cause);
216
207
  }
217
208
  }
218
- }))), Effect.zipRight(Ref.make(false)), Effect.flatMap(ref => pipe(Ref.get(ref), Effect.map(isDone => isDone ? pull.end() : pipe(Queue.take(output), Effect.flatMap(_take.done), Effect.onError(() => pipe(Ref.set(ref, true), Effect.zipRight(Queue.shutdown(output)))))))))))), scoped, flatMap(repeatEffectChunkOption));
209
+ }))), Effect.zipRight(Ref.make(false)), Effect.flatMap(ref => pipe(Ref.get(ref), Effect.map(isDone => isDone ? pull.end() : pipe(Queue.take(output), Effect.flatMap(InternalTake.done), Effect.onError(() => pipe(Ref.set(ref, true), Effect.zipRight(Queue.shutdown(output)))))))))))), scoped, flatMap(repeatEffectChunkOption));
219
210
  /** @internal */
220
211
  export const branchAfter = /*#__PURE__*/dual(3, (self, n, f) => suspend(() => {
221
212
  const buffering = acc => core.readWith({
@@ -275,7 +266,7 @@ export const bufferChunks = /*#__PURE__*/dual(2, (self, options) => {
275
266
  }
276
267
  const queue = toQueue(self, options);
277
268
  return new StreamImpl(channel.unwrapScoped(Effect.map(queue, queue => {
278
- const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(_take.match({
269
+ const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(InternalTake.match({
279
270
  onEnd: () => core.unit,
280
271
  onFailure: core.failCause,
281
272
  onSuccess: value => pipe(core.write(value), core.flatMap(() => process))
@@ -304,7 +295,7 @@ const bufferUnbounded = self => {
304
295
  strategy: "unbounded"
305
296
  });
306
297
  return new StreamImpl(channel.unwrapScoped(Effect.map(queue, queue => {
307
- const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(_take.match({
298
+ const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(InternalTake.match({
308
299
  onEnd: () => core.unit,
309
300
  onFailure: core.failCause,
310
301
  onSuccess: value => core.flatMap(core.write(value), () => process)
@@ -316,13 +307,13 @@ const bufferSignal = (scoped, bufferChannel) => {
316
307
  const producer = (queue, ref) => {
317
308
  const terminate = take => pipe(Ref.get(ref), Effect.tap(Deferred.await), Effect.zipRight(Deferred.make()), Effect.flatMap(deferred => pipe(Queue.offer(queue, [take, deferred]), Effect.zipRight(Ref.set(ref, deferred)), Effect.zipRight(Deferred.await(deferred)))), Effect.asUnit, core.fromEffect);
318
309
  return core.readWithCause({
319
- onInput: input => pipe(Deferred.make(), Effect.flatMap(deferred => pipe(Queue.offer(queue, [_take.chunk(input), deferred]), Effect.flatMap(added => pipe(Ref.set(ref, deferred), Effect.when(() => added))))), Effect.asUnit, core.fromEffect, core.flatMap(() => producer(queue, ref))),
320
- onFailure: error => terminate(_take.failCause(error)),
321
- onDone: () => terminate(_take.end)
310
+ onInput: input => pipe(Deferred.make(), Effect.flatMap(deferred => pipe(Queue.offer(queue, [InternalTake.chunk(input), deferred]), Effect.flatMap(added => pipe(Ref.set(ref, deferred), Effect.when(() => added))))), Effect.asUnit, core.fromEffect, core.flatMap(() => producer(queue, ref))),
311
+ onFailure: error => terminate(InternalTake.failCause(error)),
312
+ onDone: () => terminate(InternalTake.end)
322
313
  });
323
314
  };
324
315
  const consumer = queue => {
325
- const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(([take, deferred]) => channel.zipRight(core.fromEffect(Deferred.succeed(deferred, void 0)), _take.match(take, {
316
+ const process = pipe(core.fromEffect(Queue.take(queue)), core.flatMap(([take, deferred]) => channel.zipRight(core.fromEffect(Deferred.succeed(deferred, void 0)), InternalTake.match(take, {
326
317
  onEnd: () => core.unit,
327
318
  onFailure: core.failCause,
328
319
  onSuccess: value => pipe(core.write(value), core.flatMap(() => process))
@@ -421,13 +412,13 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => {
421
412
  /** @internal */
422
413
  export const combineChunks = /*#__PURE__*/dual(4, (self, that, s, f) => {
423
414
  const producer = (handoff, latch) => channel.zipRight(core.fromEffect(Handoff.take(latch)), core.readWithCause({
424
- onInput: input => core.flatMap(core.fromEffect(pipe(handoff, Handoff.offer(_take.chunk(input)))), () => producer(handoff, latch)),
425
- onFailure: cause => core.fromEffect(Handoff.offer(handoff, _take.failCause(cause))),
426
- onDone: () => core.fromEffect(Handoff.offer(handoff, _take.end))
415
+ onInput: input => core.flatMap(core.fromEffect(pipe(handoff, Handoff.offer(InternalTake.chunk(input)))), () => producer(handoff, latch)),
416
+ onFailure: cause => core.fromEffect(Handoff.offer(handoff, InternalTake.failCause(cause))),
417
+ onDone: () => core.fromEffect(Handoff.offer(handoff, InternalTake.end))
427
418
  }));
428
419
  return new StreamImpl(pipe(Effect.all([Handoff.make(), Handoff.make(), Handoff.make(), Handoff.make()]), Effect.tap(([left, _, latchL]) => pipe(toChannel(self), core.pipeTo(producer(left, latchL)), channelExecutor.runScoped, Effect.forkScoped)), Effect.tap(([_, right, __, latchR]) => pipe(toChannel(that), core.pipeTo(producer(right, latchR)), channelExecutor.runScoped, Effect.forkScoped)), Effect.map(([left, right, latchL, latchR]) => {
429
- const pullLeft = pipe(latchL, Handoff.offer(void 0), Effect.zipRight(pipe(Handoff.take(left), Effect.flatMap(_take.done))));
430
- const pullRight = pipe(latchR, Handoff.offer(void 0), Effect.zipRight(pipe(Handoff.take(right), Effect.flatMap(_take.done))));
420
+ const pullLeft = pipe(latchL, Handoff.offer(void 0), Effect.zipRight(pipe(Handoff.take(left), Effect.flatMap(InternalTake.done))));
421
+ const pullRight = pipe(latchR, Handoff.offer(void 0), Effect.zipRight(pipe(Handoff.take(right), Effect.flatMap(InternalTake.done))));
431
422
  return toChannel(unfoldChunkEffect(s, s => Effect.flatMap(f(s, pullLeft, pullRight), unsome)));
432
423
  }), channel.unwrapScoped));
433
424
  });
@@ -1121,22 +1112,22 @@ export const interleave = /*#__PURE__*/dual(2, (self, that) => pipe(self, interl
1121
1112
  /** @internal */
1122
1113
  export const interleaveWith = /*#__PURE__*/dual(3, (self, that, decider) => {
1123
1114
  const producer = handoff => core.readWithCause({
1124
- onInput: value => core.flatMap(core.fromEffect(Handoff.offer(handoff, _take.of(value))), () => producer(handoff)),
1125
- onFailure: cause => core.fromEffect(Handoff.offer(handoff, _take.failCause(cause))),
1126
- onDone: () => core.fromEffect(Handoff.offer(handoff, _take.end))
1115
+ onInput: value => core.flatMap(core.fromEffect(Handoff.offer(handoff, InternalTake.of(value))), () => producer(handoff)),
1116
+ onFailure: cause => core.fromEffect(Handoff.offer(handoff, InternalTake.failCause(cause))),
1117
+ onDone: () => core.fromEffect(Handoff.offer(handoff, InternalTake.end))
1127
1118
  });
1128
1119
  return new StreamImpl(channel.unwrapScoped(pipe(Handoff.make(), Effect.zip(Handoff.make()), Effect.tap(([left]) => pipe(toChannel(self), channel.concatMap(channel.writeChunk), core.pipeTo(producer(left)), channelExecutor.runScoped, Effect.forkScoped)), Effect.tap(([_, right]) => pipe(toChannel(that), channel.concatMap(channel.writeChunk), core.pipeTo(producer(right)), channelExecutor.runScoped, Effect.forkScoped)), Effect.map(([left, right]) => {
1129
1120
  const process = (leftDone, rightDone) => core.readWithCause({
1130
1121
  onInput: bool => {
1131
1122
  if (bool && !leftDone) {
1132
- return pipe(core.fromEffect(Handoff.take(left)), core.flatMap(_take.match({
1123
+ return pipe(core.fromEffect(Handoff.take(left)), core.flatMap(InternalTake.match({
1133
1124
  onEnd: () => rightDone ? core.unit : process(true, rightDone),
1134
1125
  onFailure: core.failCause,
1135
1126
  onSuccess: chunk => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
1136
1127
  })));
1137
1128
  }
1138
1129
  if (!bool && !rightDone) {
1139
- return pipe(core.fromEffect(Handoff.take(right)), core.flatMap(_take.match({
1130
+ return pipe(core.fromEffect(Handoff.take(right)), core.flatMap(InternalTake.match({
1140
1131
  onEnd: () => leftDone ? core.unit : process(leftDone, true),
1141
1132
  onFailure: core.failCause,
1142
1133
  onSuccess: chunk => pipe(core.write(chunk), core.flatMap(() => process(leftDone, rightDone)))
@@ -1590,8 +1581,7 @@ export const repeatWith = /*#__PURE__*/dual(3, (self, schedule, options) => {
1590
1581
  return new StreamImpl(pipe(process, channel.zipRight(loop)));
1591
1582
  }), unwrap);
1592
1583
  });
1593
- /** @internal */
1594
- export const repeatWithSchedule = (value, schedule) => repeatEffectWithSchedule(Effect.succeed(value), schedule);
1584
+ const repeatWithSchedule = (value, schedule) => repeatEffectWithSchedule(Effect.succeed(value), schedule);
1595
1585
  /** @internal */
1596
1586
  export const repeatEffectWithSchedule = (effect, schedule) => flatMap(fromEffect(Effect.zip(effect, Schedule.driver(schedule))), ([a, driver]) => concat(succeed(a), unfoldEffect(a, s => Effect.matchEffect(driver.next(s), {
1597
1587
  onFailure: Effect.succeed,
@@ -1661,9 +1651,9 @@ export const runIntoQueueElementsScoped = /*#__PURE__*/dual(2, (self, queue) =>
1661
1651
  /** @internal */
1662
1652
  export const runIntoQueueScoped = /*#__PURE__*/dual(2, (self, queue) => {
1663
1653
  const writer = core.readWithCause({
1664
- onInput: input => core.flatMap(core.write(_take.chunk(input)), () => writer),
1665
- onFailure: cause => core.write(_take.failCause(cause)),
1666
- onDone: () => core.write(_take.end)
1654
+ onInput: input => core.flatMap(core.write(InternalTake.chunk(input)), () => writer),
1655
+ onFailure: cause => core.write(InternalTake.failCause(cause)),
1656
+ onDone: () => core.write(InternalTake.end)
1667
1657
  });
1668
1658
  return pipe(core.pipeTo(toChannel(self), writer), channel.mapOutEffect(take => Queue.offer(queue, take)), channel.drain, channelExecutor.runScoped, Effect.asUnit);
1669
1659
  });
@@ -2008,20 +1998,20 @@ export const tapSink = /*#__PURE__*/dual(2, (self, sink) => pipe(fromEffect(Effe
2008
1998
  maxChunkSize: 1
2009
1999
  }));
2010
2000
  const loop = core.readWithCause({
2011
- onInput: chunk => pipe(core.fromEffect(Queue.offer(queue, _take.chunk(chunk))), core.foldCauseChannel({
2001
+ onInput: chunk => pipe(core.fromEffect(Queue.offer(queue, InternalTake.chunk(chunk))), core.foldCauseChannel({
2012
2002
  onFailure: () => core.flatMap(core.write(chunk), () => channel.identityChannel()),
2013
2003
  onSuccess: () => core.flatMap(core.write(chunk), () => loop)
2014
2004
  })),
2015
- onFailure: cause => pipe(core.fromEffect(Queue.offer(queue, _take.failCause(cause))), core.foldCauseChannel({
2005
+ onFailure: cause => pipe(core.fromEffect(Queue.offer(queue, InternalTake.failCause(cause))), core.foldCauseChannel({
2016
2006
  onFailure: () => core.failCause(cause),
2017
2007
  onSuccess: () => core.failCause(cause)
2018
2008
  })),
2019
- onDone: () => pipe(core.fromEffect(Queue.offer(queue, _take.end)), core.foldCauseChannel({
2009
+ onDone: () => pipe(core.fromEffect(Queue.offer(queue, InternalTake.end)), core.foldCauseChannel({
2020
2010
  onFailure: () => core.unit,
2021
2011
  onSuccess: () => core.unit
2022
2012
  }))
2023
2013
  });
2024
- return pipe(new StreamImpl(pipe(core.pipeTo(toChannel(self), loop), channel.ensuring(Effect.zipRight(Effect.forkDaemon(Queue.offer(queue, _take.end)), Deferred.await(deferred))))), merge(execute(pipe(run(right, sink), Effect.ensuring(Effect.zipRight(Queue.shutdown(queue), Deferred.succeed(deferred, void 0)))))));
2014
+ return pipe(new StreamImpl(pipe(core.pipeTo(toChannel(self), loop), channel.ensuring(Effect.zipRight(Effect.forkDaemon(Queue.offer(queue, InternalTake.end)), Deferred.await(deferred))))), merge(execute(pipe(run(right, sink), Effect.ensuring(Effect.zipRight(Queue.shutdown(queue), Deferred.succeed(deferred, void 0)))))));
2025
2015
  })));
2026
2016
  /** @internal */
2027
2017
  export const throttle = /*#__PURE__*/dual(2, (self, options) => throttleEffect(self, {