@fncts/io 0.0.10 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (439) hide show
  1. package/Cached/api.d.ts +2 -3
  2. package/Channel/api/interruptWhen.d.ts +1 -1
  3. package/Channel/api/mapOutIOC.d.ts +1 -1
  4. package/Channel/api/mergeAll.d.ts +1 -1
  5. package/Channel/api/mergeAllUnboundedWith.d.ts +1 -1
  6. package/Channel/api/mergeAllWith.d.ts +1 -1
  7. package/Channel/api/mergeMap.d.ts +1 -1
  8. package/Channel/api/mergeWith.d.ts +1 -1
  9. package/Channel/api/runScoped.d.ts +1 -2
  10. package/Channel/api/toPull.d.ts +1 -2
  11. package/Channel/api/zipC.d.ts +3 -3
  12. package/Channel/api.d.ts +48 -49
  13. package/Channel/core-api.d.ts +10 -10
  14. package/Channel/definition.d.ts +12 -12
  15. package/Channel/internal/MergeDecision.d.ts +1 -1
  16. package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
  17. package/Clock/api.d.ts +1 -1
  18. package/Fiber/FiberContext.d.ts +3 -3
  19. package/Fiber/api/awaitAll.d.ts +1 -1
  20. package/Fiber/api/evalOnIO.d.ts +1 -1
  21. package/Fiber/api/joinAll.d.ts +1 -1
  22. package/Fiber/definition.d.ts +1 -1
  23. package/FiberRef/api/locallyScoped.d.ts +1 -2
  24. package/FiberRef/api/locallyScopedWith.d.ts +1 -2
  25. package/FiberRef/constructors.d.ts +1 -2
  26. package/FiberRef/unsafe.d.ts +6 -0
  27. package/Future/api.d.ts +1 -1
  28. package/Future/constructors.d.ts +1 -1
  29. package/Hub/api.d.ts +6 -7
  30. package/Hub/definition.d.ts +6 -7
  31. package/Hub/internal.d.ts +0 -1
  32. package/IO/api/acquireRelease.d.ts +1 -2
  33. package/IO/api/acquireReleaseExit.d.ts +1 -2
  34. package/IO/api/acquireReleaseInterruptible.d.ts +1 -2
  35. package/IO/api/acquireReleaseInterruptibleExit.d.ts +1 -2
  36. package/IO/api/addFinalizer.d.ts +1 -2
  37. package/IO/api/addFinalizerExit.d.ts +1 -2
  38. package/IO/api/bracket.d.ts +1 -1
  39. package/IO/api/bracketExit.d.ts +1 -1
  40. package/IO/api/clockWith.d.ts +1 -1
  41. package/IO/api/concurrentFinalizers.d.ts +1 -2
  42. package/IO/api/consoleWith.d.ts +1 -1
  43. package/IO/api/core-scope.d.ts +1 -1
  44. package/IO/api/ensuringChildren.d.ts +1 -1
  45. package/IO/api/environment.d.ts +8 -10
  46. package/IO/api/forkScoped.d.ts +1 -2
  47. package/IO/api/interrupt.d.ts +3 -3
  48. package/IO/api/onExit.d.ts +1 -1
  49. package/IO/api/onTermination.d.ts +1 -1
  50. package/IO/api/provideSomeLayer.d.ts +1 -1
  51. package/IO/api/race.d.ts +1 -1
  52. package/IO/api/raceFirst.d.ts +1 -1
  53. package/IO/api/randomWith.d.ts +1 -1
  54. package/IO/api/repeat.d.ts +3 -3
  55. package/IO/api/retry.d.ts +3 -3
  56. package/IO/api/schedule.d.ts +2 -2
  57. package/IO/api/scope.d.ts +1 -2
  58. package/IO/api/scopeWith.d.ts +1 -2
  59. package/IO/api/scoped.d.ts +2 -3
  60. package/IO/api/sequenceT.d.ts +3 -3
  61. package/IO/api/stateful.d.ts +1 -2
  62. package/IO/api/withEarlyRelease.d.ts +1 -2
  63. package/IO/api/withFinalizer.d.ts +1 -2
  64. package/IO/api/withFinalizerExit.d.ts +1 -2
  65. package/IO/api/zipC.d.ts +2 -2
  66. package/IO/api.d.ts +50 -50
  67. package/IO/definition.d.ts +28 -24
  68. package/IO/runtime.d.ts +23 -10
  69. package/IOEnv/definition.d.ts +2 -3
  70. package/IOEnv/live.d.ts +1 -1
  71. package/IOSpec.d.ts +1 -2
  72. package/Layer/MemoMap.d.ts +2 -3
  73. package/Layer/api.d.ts +30 -32
  74. package/Layer/definition.d.ts +7 -8
  75. package/Queue/api/dimapIO.d.ts +3 -3
  76. package/Queue/api/filterInputIO.d.ts +4 -4
  77. package/Queue/api/filterOutputIO.d.ts +6 -6
  78. package/Queue/api/zipWithIO.d.ts +9 -9
  79. package/Queue/definition.d.ts +7 -7
  80. package/Queue/internal.d.ts +1 -1
  81. package/Random/api.d.ts +4 -4
  82. package/Random/live.d.ts +1 -1
  83. package/Ref/Atomic/Atomic.d.ts +3 -3
  84. package/Ref/Derived.d.ts +3 -3
  85. package/Ref/DerivedAll.d.ts +3 -3
  86. package/Ref/Synchronized/api.d.ts +15 -15
  87. package/Ref/Synchronized/definition.d.ts +2 -2
  88. package/Ref/api/get.d.ts +1 -1
  89. package/Ref/api/modify.d.ts +9 -9
  90. package/Ref/api/set.d.ts +1 -1
  91. package/Ref/definition.d.ts +13 -13
  92. package/STM/api/core-api.d.ts +4 -4
  93. package/STM/api/core-constructors.d.ts +7 -7
  94. package/STM/api.d.ts +27 -39
  95. package/STM/definition.d.ts +9 -8
  96. package/STM/driver.d.ts +1 -1
  97. package/STM/internal/Journal.d.ts +4 -3
  98. package/Schedule/Decision.d.ts +10 -4
  99. package/Schedule/Driver.d.ts +3 -3
  100. package/Schedule/api.d.ts +55 -43
  101. package/Schedule/definition.d.ts +1 -1
  102. package/Scope/Finalizer/definition.d.ts +2 -2
  103. package/Scope/ReleaseMap/api.d.ts +1 -1
  104. package/Scope/ReleaseMap/definition.d.ts +1 -1
  105. package/Scope/api.d.ts +3 -4
  106. package/ScopedRef/api.d.ts +1 -2
  107. package/ScopedRef/definition.d.ts +1 -2
  108. package/Sink/api.d.ts +255 -75
  109. package/State/api.d.ts +1 -2
  110. package/Stream/api/zipAllWith.d.ts +1 -1
  111. package/Stream/api/zipWith.d.ts +1 -1
  112. package/Stream/api/zipWithChunks.d.ts +1 -1
  113. package/Stream/api.d.ts +91 -93
  114. package/Stream/definition.d.ts +3 -3
  115. package/Stream/internal/Take.d.ts +1 -1
  116. package/Supervisor/constructors.d.ts +2 -2
  117. package/TFuture/api.d.ts +1 -1
  118. package/TFuture/definition.d.ts +1 -1
  119. package/TReentrantLock/api.d.ts +2 -3
  120. package/TRef/api.d.ts +11 -11
  121. package/TRef/constructors.d.ts +2 -2
  122. package/TSemaphore/api.d.ts +2 -2
  123. package/TSemaphore/definition.d.ts +1 -1
  124. package/_cjs/Cached/api.cjs.map +1 -1
  125. package/_cjs/Channel/api/mapOutIOC.cjs +1 -1
  126. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  127. package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
  128. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  129. package/_cjs/Channel/api.cjs.map +1 -1
  130. package/_cjs/Channel/definition.cjs.map +1 -1
  131. package/_cjs/Clock/live.cjs.map +1 -1
  132. package/_cjs/Fiber/FiberContext.cjs +5 -7
  133. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  134. package/_cjs/FiberRef/unsafe.cjs +9 -1
  135. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  136. package/_cjs/Future/api.cjs.map +1 -1
  137. package/_cjs/Hub/api.cjs +1 -1
  138. package/_cjs/Hub/api.cjs.map +1 -1
  139. package/_cjs/Hub/internal.cjs +4 -12
  140. package/_cjs/Hub/internal.cjs.map +1 -1
  141. package/_cjs/IO/api/addFinalizerExit.cjs +4 -8
  142. package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
  143. package/_cjs/IO/api/ensuringChildren.cjs +1 -1
  144. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  145. package/_cjs/IO/api/environment.cjs +2 -3
  146. package/_cjs/IO/api/environment.cjs.map +1 -1
  147. package/_cjs/IO/api/interrupt.cjs +1 -1
  148. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  149. package/_cjs/IO/api/memoize.cjs +4 -8
  150. package/_cjs/IO/api/memoize.cjs.map +1 -1
  151. package/_cjs/IO/api/provideSomeLayer.cjs +1 -2
  152. package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
  153. package/_cjs/IO/api/scope.cjs +1 -1
  154. package/_cjs/IO/api/scope.cjs.map +1 -1
  155. package/_cjs/IO/api/scoped.cjs.map +1 -1
  156. package/_cjs/IO/api/withChildren.cjs +1 -1
  157. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  158. package/_cjs/IO/api.cjs +1 -1
  159. package/_cjs/IO/api.cjs.map +1 -1
  160. package/_cjs/IO/definition.cjs +5 -8
  161. package/_cjs/IO/definition.cjs.map +1 -1
  162. package/_cjs/IO/runtime.cjs +69 -21
  163. package/_cjs/IO/runtime.cjs.map +1 -1
  164. package/_cjs/Layer/MemoMap.cjs +22 -38
  165. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  166. package/_cjs/Layer/api.cjs +6 -4
  167. package/_cjs/Layer/api.cjs.map +1 -1
  168. package/_cjs/Layer/definition.cjs.map +1 -1
  169. package/_cjs/Queue/internal.cjs +2 -2
  170. package/_cjs/Queue/internal.cjs.map +1 -1
  171. package/_cjs/Queue/strategy.cjs +1 -5
  172. package/_cjs/Queue/strategy.cjs.map +1 -1
  173. package/_cjs/Ref/Atomic/Atomic.cjs.map +1 -1
  174. package/_cjs/Ref/Derived.cjs.map +1 -1
  175. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  176. package/_cjs/Ref/Synchronized/constructors.cjs +7 -11
  177. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  178. package/_cjs/STM/api/core-constructors.cjs.map +1 -1
  179. package/_cjs/STM/api.cjs +59 -78
  180. package/_cjs/STM/api.cjs.map +1 -1
  181. package/_cjs/STM/definition.cjs.map +1 -1
  182. package/_cjs/STM/driver.cjs +7 -5
  183. package/_cjs/STM/driver.cjs.map +1 -1
  184. package/_cjs/STM/internal/Journal.cjs +20 -22
  185. package/_cjs/STM/internal/Journal.cjs.map +1 -1
  186. package/_cjs/Schedule/Decision.cjs +17 -0
  187. package/_cjs/Schedule/Decision.cjs.map +1 -1
  188. package/_cjs/Schedule/api/driver.cjs +22 -21
  189. package/_cjs/Schedule/api/driver.cjs.map +1 -1
  190. package/_cjs/Schedule/api.cjs +91 -66
  191. package/_cjs/Schedule/api.cjs.map +1 -1
  192. package/_cjs/Scope/Finalizer/definition.cjs +4 -6
  193. package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
  194. package/_cjs/Scope/ReleaseMap/definition.cjs +2 -4
  195. package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
  196. package/_cjs/Scope/api.cjs +2 -12
  197. package/_cjs/Scope/api.cjs.map +1 -1
  198. package/_cjs/ScopedRef/api.cjs +14 -22
  199. package/_cjs/ScopedRef/api.cjs.map +1 -1
  200. package/_cjs/Sink/api.cjs +424 -131
  201. package/_cjs/Sink/api.cjs.map +1 -1
  202. package/_cjs/Stream/api.cjs +94 -94
  203. package/_cjs/Stream/api.cjs.map +1 -1
  204. package/_cjs/Supervisor/constructors.cjs +14 -8
  205. package/_cjs/Supervisor/constructors.cjs.map +1 -1
  206. package/_cjs/TFuture/definition.cjs +2 -4
  207. package/_cjs/TFuture/definition.cjs.map +1 -1
  208. package/_cjs/TSemaphore/api.cjs +7 -7
  209. package/_cjs/TSemaphore/api.cjs.map +1 -1
  210. package/_cjs/TSemaphore/definition.cjs +2 -4
  211. package/_cjs/TSemaphore/definition.cjs.map +1 -1
  212. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
  213. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
  214. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
  215. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
  216. package/_cjs/internal/Scheduler.cjs +64 -14
  217. package/_cjs/internal/Scheduler.cjs.map +1 -1
  218. package/_mjs/Cached/api.mjs.map +1 -1
  219. package/_mjs/Channel/api/mapOutIOC.mjs +1 -1
  220. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  221. package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
  222. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  223. package/_mjs/Channel/api.mjs.map +1 -1
  224. package/_mjs/Channel/definition.mjs.map +1 -1
  225. package/_mjs/Clock/live.mjs.map +1 -1
  226. package/_mjs/Fiber/FiberContext.mjs +5 -6
  227. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  228. package/_mjs/FiberRef/unsafe.mjs +6 -0
  229. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  230. package/_mjs/Future/api.mjs.map +1 -1
  231. package/_mjs/Hub/api.mjs +1 -1
  232. package/_mjs/Hub/api.mjs.map +1 -1
  233. package/_mjs/Hub/internal.mjs +4 -12
  234. package/_mjs/Hub/internal.mjs.map +1 -1
  235. package/_mjs/IO/api/addFinalizerExit.mjs +4 -8
  236. package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
  237. package/_mjs/IO/api/ensuringChildren.mjs +1 -1
  238. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  239. package/_mjs/IO/api/environment.mjs +2 -3
  240. package/_mjs/IO/api/environment.mjs.map +1 -1
  241. package/_mjs/IO/api/interrupt.mjs +1 -1
  242. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  243. package/_mjs/IO/api/memoize.mjs +4 -8
  244. package/_mjs/IO/api/memoize.mjs.map +1 -1
  245. package/_mjs/IO/api/provideSomeLayer.mjs +1 -2
  246. package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
  247. package/_mjs/IO/api/scope.mjs +1 -1
  248. package/_mjs/IO/api/scope.mjs.map +1 -1
  249. package/_mjs/IO/api/scoped.mjs.map +1 -1
  250. package/_mjs/IO/api/withChildren.mjs +1 -1
  251. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  252. package/_mjs/IO/api.mjs +1 -1
  253. package/_mjs/IO/api.mjs.map +1 -1
  254. package/_mjs/IO/definition.mjs +3 -5
  255. package/_mjs/IO/definition.mjs.map +1 -1
  256. package/_mjs/IO/runtime.mjs +61 -18
  257. package/_mjs/IO/runtime.mjs.map +1 -1
  258. package/_mjs/Layer/MemoMap.mjs +22 -38
  259. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  260. package/_mjs/Layer/api.mjs +5 -4
  261. package/_mjs/Layer/api.mjs.map +1 -1
  262. package/_mjs/Layer/definition.mjs.map +1 -1
  263. package/_mjs/Queue/internal.mjs +2 -2
  264. package/_mjs/Queue/internal.mjs.map +1 -1
  265. package/_mjs/Queue/strategy.mjs +1 -5
  266. package/_mjs/Queue/strategy.mjs.map +1 -1
  267. package/_mjs/Ref/Atomic/Atomic.mjs.map +1 -1
  268. package/_mjs/Ref/Derived.mjs.map +1 -1
  269. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  270. package/_mjs/Ref/Synchronized/constructors.mjs +7 -11
  271. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  272. package/_mjs/STM/api/core-constructors.mjs.map +1 -1
  273. package/_mjs/STM/api.mjs +52 -72
  274. package/_mjs/STM/api.mjs.map +1 -1
  275. package/_mjs/STM/definition.mjs.map +1 -1
  276. package/_mjs/STM/driver.mjs +6 -5
  277. package/_mjs/STM/driver.mjs.map +1 -1
  278. package/_mjs/STM/internal/Journal.mjs +20 -21
  279. package/_mjs/STM/internal/Journal.mjs.map +1 -1
  280. package/_mjs/Schedule/Decision.mjs +9 -0
  281. package/_mjs/Schedule/Decision.mjs.map +1 -1
  282. package/_mjs/Schedule/api/driver.mjs +20 -20
  283. package/_mjs/Schedule/api/driver.mjs.map +1 -1
  284. package/_mjs/Schedule/api.mjs +84 -63
  285. package/_mjs/Schedule/api.mjs.map +1 -1
  286. package/_mjs/Scope/Finalizer/definition.mjs +4 -5
  287. package/_mjs/Scope/Finalizer/definition.mjs.map +1 -1
  288. package/_mjs/Scope/ReleaseMap/definition.mjs +2 -3
  289. package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
  290. package/_mjs/Scope/api.mjs +2 -12
  291. package/_mjs/Scope/api.mjs.map +1 -1
  292. package/_mjs/ScopedRef/api.mjs +14 -22
  293. package/_mjs/ScopedRef/api.mjs.map +1 -1
  294. package/_mjs/Sink/api.mjs +414 -129
  295. package/_mjs/Sink/api.mjs.map +1 -1
  296. package/_mjs/Stream/api.mjs +94 -94
  297. package/_mjs/Stream/api.mjs.map +1 -1
  298. package/_mjs/Supervisor/constructors.mjs +9 -6
  299. package/_mjs/Supervisor/constructors.mjs.map +1 -1
  300. package/_mjs/TFuture/definition.mjs +2 -3
  301. package/_mjs/TFuture/definition.mjs.map +1 -1
  302. package/_mjs/TSemaphore/api.mjs +4 -4
  303. package/_mjs/TSemaphore/api.mjs.map +1 -1
  304. package/_mjs/TSemaphore/definition.mjs +2 -3
  305. package/_mjs/TSemaphore/definition.mjs.map +1 -1
  306. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
  307. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
  308. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
  309. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
  310. package/_mjs/internal/Scheduler.mjs +62 -15
  311. package/_mjs/internal/Scheduler.mjs.map +1 -1
  312. package/_src/Cached/api.ts +3 -3
  313. package/_src/Channel/api/interruptWhen.ts +1 -1
  314. package/_src/Channel/api/mapOutIOC.ts +2 -2
  315. package/_src/Channel/api/mergeAll.ts +1 -1
  316. package/_src/Channel/api/mergeAllUnboundedWith.ts +1 -1
  317. package/_src/Channel/api/mergeAllWith.ts +3 -3
  318. package/_src/Channel/api/mergeMap.ts +1 -1
  319. package/_src/Channel/api/mergeWith.ts +9 -9
  320. package/_src/Channel/api/runScoped.ts +1 -1
  321. package/_src/Channel/api/toPull.ts +1 -1
  322. package/_src/Channel/api/zipC.ts +3 -3
  323. package/_src/Channel/api.ts +69 -69
  324. package/_src/Channel/core-api.ts +11 -11
  325. package/_src/Channel/definition.ts +12 -12
  326. package/_src/Channel/internal/MergeDecision.ts +1 -1
  327. package/_src/Clock/live.ts +1 -1
  328. package/_src/Fiber/FiberContext.ts +10 -8
  329. package/_src/Fiber/api/awaitAll.ts +1 -1
  330. package/_src/Fiber/api/evalOnIO.ts +1 -1
  331. package/_src/Fiber/api/joinAll.ts +1 -1
  332. package/_src/Fiber/definition.ts +1 -1
  333. package/_src/FiberRef/api/locallyScoped.ts +1 -1
  334. package/_src/FiberRef/api/locallyScopedWith.ts +1 -1
  335. package/_src/FiberRef/constructors.ts +2 -2
  336. package/_src/FiberRef/unsafe.ts +7 -0
  337. package/_src/Future/api.ts +3 -3
  338. package/_src/Future/constructors.ts +1 -1
  339. package/_src/Hub/api.ts +11 -11
  340. package/_src/Hub/definition.ts +6 -6
  341. package/_src/Hub/internal.ts +15 -15
  342. package/_src/IO/api/acquireRelease.ts +1 -1
  343. package/_src/IO/api/acquireReleaseExit.ts +1 -1
  344. package/_src/IO/api/acquireReleaseInterruptible.ts +1 -1
  345. package/_src/IO/api/acquireReleaseInterruptibleExit.ts +1 -1
  346. package/_src/IO/api/addFinalizer.ts +1 -1
  347. package/_src/IO/api/addFinalizerExit.ts +5 -7
  348. package/_src/IO/api/bracket.ts +1 -1
  349. package/_src/IO/api/bracketExit.ts +1 -1
  350. package/_src/IO/api/concurrentFinalizers.ts +1 -1
  351. package/_src/IO/api/core-scope.ts +1 -1
  352. package/_src/IO/api/ensuringChildren.ts +2 -2
  353. package/_src/IO/api/environment.ts +9 -11
  354. package/_src/IO/api/forkScoped.ts +1 -1
  355. package/_src/IO/api/interrupt.ts +3 -3
  356. package/_src/IO/api/memoize.ts +3 -3
  357. package/_src/IO/api/onExit.ts +1 -1
  358. package/_src/IO/api/onTermination.ts +1 -1
  359. package/_src/IO/api/provideSomeLayer.ts +1 -2
  360. package/_src/IO/api/race.ts +1 -1
  361. package/_src/IO/api/raceFirst.ts +1 -1
  362. package/_src/IO/api/repeat.ts +4 -4
  363. package/_src/IO/api/retry.ts +4 -4
  364. package/_src/IO/api/schedule.ts +3 -3
  365. package/_src/IO/api/scope.ts +1 -1
  366. package/_src/IO/api/scopeWith.ts +1 -1
  367. package/_src/IO/api/scoped.ts +2 -2
  368. package/_src/IO/api/sequenceT.ts +1 -1
  369. package/_src/IO/api/stateful.ts +1 -1
  370. package/_src/IO/api/withChildren.ts +1 -1
  371. package/_src/IO/api/withEarlyRelease.ts +1 -1
  372. package/_src/IO/api/withFinalizer.ts +1 -1
  373. package/_src/IO/api/withFinalizerExit.ts +1 -1
  374. package/_src/IO/api/zipC.ts +2 -2
  375. package/_src/IO/api.ts +48 -48
  376. package/_src/IO/definition.ts +29 -24
  377. package/_src/IO/runtime.ts +66 -12
  378. package/_src/IOEnv/definition.ts +1 -1
  379. package/_src/Layer/MemoMap.ts +19 -19
  380. package/_src/Layer/api.ts +38 -38
  381. package/_src/Layer/definition.ts +5 -5
  382. package/_src/Queue/api/dimapIO.ts +10 -10
  383. package/_src/Queue/api/filterInputIO.ts +4 -4
  384. package/_src/Queue/api/filterOutputIO.ts +6 -6
  385. package/_src/Queue/api/zipWithIO.ts +10 -10
  386. package/_src/Queue/definition.ts +7 -7
  387. package/_src/Queue/internal.ts +7 -7
  388. package/_src/Queue/strategy.ts +4 -4
  389. package/_src/Random/api.ts +1 -1
  390. package/_src/Ref/Atomic/Atomic.ts +3 -3
  391. package/_src/Ref/Derived.ts +3 -3
  392. package/_src/Ref/DerivedAll.ts +3 -3
  393. package/_src/Ref/Synchronized/api.ts +15 -15
  394. package/_src/Ref/Synchronized/constructors.ts +4 -4
  395. package/_src/Ref/Synchronized/definition.ts +2 -2
  396. package/_src/Ref/api/get.ts +2 -2
  397. package/_src/Ref/api/modify.ts +9 -9
  398. package/_src/Ref/api/set.ts +1 -1
  399. package/_src/Ref/definition.ts +13 -13
  400. package/_src/STM/api/core-api.ts +6 -6
  401. package/_src/STM/api/core-constructors.ts +7 -7
  402. package/_src/STM/api.ts +58 -89
  403. package/_src/STM/definition.ts +6 -6
  404. package/_src/STM/driver.ts +3 -3
  405. package/_src/STM/internal/Journal.ts +25 -16
  406. package/_src/Schedule/Decision.ts +10 -3
  407. package/_src/Schedule/Driver.ts +2 -2
  408. package/_src/Schedule/api/driver.ts +6 -6
  409. package/_src/Schedule/api.ts +97 -77
  410. package/_src/Schedule/definition.ts +1 -1
  411. package/_src/Scope/Finalizer/definition.ts +2 -2
  412. package/_src/Scope/ReleaseMap/api.ts +1 -1
  413. package/_src/Scope/ReleaseMap/definition.ts +1 -1
  414. package/_src/Scope/api.ts +11 -11
  415. package/_src/ScopedRef/api.ts +12 -17
  416. package/_src/ScopedRef/definition.ts +1 -1
  417. package/_src/Sink/api.ts +441 -86
  418. package/_src/State/api.ts +1 -1
  419. package/_src/Stream/api/zipAllWith.ts +2 -2
  420. package/_src/Stream/api/zipWith.ts +1 -1
  421. package/_src/Stream/api/zipWithChunks.ts +2 -2
  422. package/_src/Stream/api.ts +150 -149
  423. package/_src/Stream/definition.ts +3 -3
  424. package/_src/Stream/internal/Take.ts +1 -1
  425. package/_src/Supervisor/constructors.ts +7 -3
  426. package/_src/TFuture/api.ts +1 -1
  427. package/_src/TFuture/definition.ts +1 -1
  428. package/_src/TReentrantLock/api.ts +2 -2
  429. package/_src/TRef/api.ts +11 -11
  430. package/_src/TRef/constructors.ts +2 -2
  431. package/_src/TSemaphore/api.ts +2 -2
  432. package/_src/TSemaphore/definition.ts +1 -1
  433. package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
  434. package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
  435. package/_src/internal/Scheduler.ts +59 -15
  436. package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
  437. package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
  438. package/internal/Scheduler.d.ts +18 -1
  439. package/package.json +3 -3
@@ -25,9 +25,9 @@ export type StreamTypeId = typeof StreamTypeId;
25
25
  */
26
26
  export class Stream<R, E, A> {
27
27
  readonly [StreamTypeId]: StreamTypeId = StreamTypeId;
28
- readonly _R!: (_: R) => void;
29
- readonly _E!: () => E;
30
- readonly _A!: () => A;
28
+ declare _R: () => R;
29
+ declare _E: () => E;
30
+ declare _A: () => A;
31
31
 
32
32
  constructor(readonly channel: Channel<R, unknown, unknown, unknown, E, Conc<A>, unknown>) {}
33
33
  }
@@ -52,7 +52,7 @@ export function matchIO_<R, R1, R2, E, E1, E2, E3, A, Z>(
52
52
  end: IO<R, E1, Z>,
53
53
  error: (cause: Cause<E>) => IO<R1, E2, Z>,
54
54
  value: (chunk: Conc<A>) => IO<R2, E3, Z>,
55
- ): IO<R & R1 & R2, E1 | E2 | E3, Z> {
55
+ ): IO<R | R1 | R2, E1 | E2 | E3, Z> {
56
56
  return self.exit.match((cause) => cause.flipCauseMaybe.match(() => end, error), value);
57
57
  }
58
58
 
@@ -1,12 +1,14 @@
1
1
  import type { AtomicReference } from "@fncts/base/internal/AtomicReference";
2
2
 
3
+ import { IterableWeakSet } from "@fncts/base/collection/weak/IterableWeakSet";
4
+
3
5
  import { ConstSupervisor } from "./definition.js";
4
6
 
5
7
  /**
6
8
  * @tsplus static fncts.io.SupervisorOps unsafeTrack
7
9
  */
8
- export function unsafeTrack(): Supervisor<Conc<Fiber.Runtime<any, any>>> {
9
- const set = new Set<Fiber.Runtime<any, any>>();
10
+ export function unsafeTrack(weak: boolean): Supervisor<Conc<Fiber.Runtime<any, any>>> {
11
+ const set = weak ? new IterableWeakSet<Fiber.Runtime<any, any>>() : new Set<Fiber.Runtime<any, any>>();
10
12
  return new (class extends Supervisor<Conc<Fiber.Runtime<any, any>>> {
11
13
  value = IO.succeed(Conc.from(set));
12
14
  unsafeOnStart<R, E, A>(
@@ -62,4 +64,6 @@ export const none = new ConstSupervisor(IO.unit);
62
64
  /**
63
65
  * @tsplus static fncts.io.SupervisorOps track
64
66
  */
65
- export const track: UIO<Supervisor<Conc<Fiber.Runtime<any, any>>>> = IO.succeed(unsafeTrack());
67
+ export function track(weak: boolean, __tsplusTrace?: string): UIO<Supervisor<Conc<Fiber.Runtime<any, any>>>> {
68
+ return IO.succeed(unsafeTrack(weak));
69
+ }
@@ -37,6 +37,6 @@ export function succeed_<E, A>(self: TFuture<E, A>, a: A): USTM<boolean> {
37
37
  /**
38
38
  * @tsplus getter fncts.io.TFuture await
39
39
  */
40
- export function wait<E, A>(self: TFuture<E, A>): STM<unknown, E, A> {
40
+ export function wait<E, A>(self: TFuture<E, A>): STM<never, E, A> {
41
41
  return TFuture.reverseGet(self).get.filterMapSTM((mea) => mea.map(STM.fromEitherNow));
42
42
  }
@@ -1,7 +1,7 @@
1
1
  import type { UTRef } from "../TRef.js";
2
2
 
3
3
  interface TFutureN extends HKT {
4
- readonly [HKT.T]: TFuture<HKT._E<this>, HKT._A<this>>;
4
+ readonly type: TFuture<this["E"], this["A"]>;
5
5
  }
6
6
 
7
7
  /**
@@ -107,14 +107,14 @@ export function withWriteLock<R, E, A>(self: TReentrantLock, io: IO<R, E, A>): I
107
107
  /**
108
108
  * @tsplus getter fncts.io.TReentrantLock readLock
109
109
  */
110
- export function readLock(self: TReentrantLock, __tsplusTrace?: string): IO<Has<Scope>, never, number> {
110
+ export function readLock(self: TReentrantLock, __tsplusTrace?: string): IO<Scope, never, number> {
111
111
  return self.acquireRead.commit.acquireRelease(() => self.releaseRead.commit);
112
112
  }
113
113
 
114
114
  /**
115
115
  * @tsplus getter fncts.io.TReentrantLock writeLock
116
116
  */
117
- export function writeLock(self: TReentrantLock, __tsplusTrace?: string): IO<Has<Scope>, never, number> {
117
+ export function writeLock(self: TReentrantLock, __tsplusTrace?: string): IO<Scope, never, number> {
118
118
  return self.acquireWrite.commit.acquireRelease(() => self.releaseWrite.commit);
119
119
  }
120
120
 
package/_src/TRef/api.ts CHANGED
@@ -19,7 +19,7 @@ function getOrMakeEntry<A>(self: Atomic<A>, journal: Journal): Entry {
19
19
  *
20
20
  * @tsplus getter fncts.io.TRef get
21
21
  */
22
- export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<unknown, EB, B> {
22
+ export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<never, EB, B> {
23
23
  concrete(self);
24
24
  switch (self._tag) {
25
25
  case "Atomic": {
@@ -47,7 +47,7 @@ export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<unknown, EB, B>
47
47
  *
48
48
  * @tsplus fluent fncts.io.TRef modify
49
49
  */
50
- export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [B, A]): STM<unknown, E, B> {
50
+ export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [B, A]): STM<never, E, B> {
51
51
  concrete(self);
52
52
  switch (self._tag) {
53
53
  case "Atomic": {
@@ -99,7 +99,7 @@ export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [
99
99
  *
100
100
  * @tsplus fluent fncts.io.TRef set
101
101
  */
102
- export function set_<EA, EB, A, B>(self: TRef<EA, EB, A, B>, a: A): STM<unknown, EA, void> {
102
+ export function set_<EA, EB, A, B>(self: TRef<EA, EB, A, B>, a: A): STM<never, EA, void> {
103
103
  concrete(self);
104
104
  switch (self._tag) {
105
105
  case "Atomic": {
@@ -153,7 +153,7 @@ export function modifyJust_<E, A, B>(
153
153
  self: TRef<E, E, A, A>,
154
154
  b: B,
155
155
  f: (a: A) => Maybe<readonly [B, A]>,
156
- ): STM<unknown, E, B> {
156
+ ): STM<never, E, B> {
157
157
  return self.modify((a) => f(a).getOrElse([b, a]));
158
158
  }
159
159
 
@@ -162,7 +162,7 @@ export function modifyJust_<E, A, B>(
162
162
  *
163
163
  * @tsplus fluent fncts.io.TRef getAndSet
164
164
  */
165
- export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<unknown, E, A> {
165
+ export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<never, E, A> {
166
166
  concrete(self);
167
167
  switch (self._tag) {
168
168
  case "Atomic": {
@@ -184,7 +184,7 @@ export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<unknown, E,
184
184
  *
185
185
  * @tsplus fluent fncts.io.TRef getAndUpdate
186
186
  */
187
- export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<unknown, E, A> {
187
+ export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, A> {
188
188
  concrete(self);
189
189
  switch (self._tag) {
190
190
  case "Atomic": {
@@ -207,7 +207,7 @@ export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM
207
207
  *
208
208
  * @tsplus fluent fncts.io.TRef getAndUpdateJust
209
209
  */
210
- export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<unknown, E, A> {
210
+ export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, A> {
211
211
  concrete(self);
212
212
  switch (self._tag) {
213
213
  case "Atomic": {
@@ -237,7 +237,7 @@ export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => May
237
237
  *
238
238
  * @tsplus fluent fncts.io.TRef update
239
239
  */
240
- export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<unknown, E, void> {
240
+ export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, void> {
241
241
  concrete(self);
242
242
  switch (self._tag) {
243
243
  case "Atomic": {
@@ -257,7 +257,7 @@ export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<unkno
257
257
  *
258
258
  * @tsplus fluent fncts.io.TRef updateJust
259
259
  */
260
- export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<unknown, E, void> {
260
+ export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, void> {
261
261
  return self.update((a) => f(a).getOrElse(a));
262
262
  }
263
263
 
@@ -266,7 +266,7 @@ export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>)
266
266
  *
267
267
  * @tsplus fluent fncts.io.TRef updateAndGet
268
268
  */
269
- export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<unknown, E, A> {
269
+ export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, A> {
270
270
  concrete(self);
271
271
  switch (self._tag) {
272
272
  case "Atomic": {
@@ -292,7 +292,7 @@ export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM
292
292
  *
293
293
  * @tsplus fluent fncts.io.TRef updateJustAndGet
294
294
  */
295
- export function updateJustAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<unknown, E, A> {
295
+ export function updateJustAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, A> {
296
296
  return self.updateAndGet((a) => f(a).getOrElse(a));
297
297
  }
298
298
 
@@ -13,7 +13,7 @@ import { Atomic } from "./definition.js";
13
13
  *
14
14
  * @tsplus static fncts.io.TRefOps makeNow
15
15
  */
16
- export function makeNow<A>(a: A): STM<unknown, never, UTRef<A>> {
16
+ export function makeNow<A>(a: A): STM<never, never, UTRef<A>> {
17
17
  return new Effect((journal) => {
18
18
  const value = a;
19
19
  const versioned = new Versioned(value);
@@ -29,7 +29,7 @@ export function makeNow<A>(a: A): STM<unknown, never, UTRef<A>> {
29
29
  *
30
30
  * @tsplus static fncts.io.TRefOps make
31
31
  */
32
- export function make<A>(a: Lazy<A>): STM<unknown, never, UTRef<A>> {
32
+ export function make<A>(a: Lazy<A>): STM<never, never, UTRef<A>> {
33
33
  return new Effect((journal) => {
34
34
  const value = a();
35
35
  const versioned = new Versioned(value);
@@ -52,7 +52,7 @@ export function releaseN_(self: TSemaphore, n: number): USTM<void> {
52
52
  /**
53
53
  * @tsplus getter fncts.io.TSemaphore withPermits
54
54
  */
55
- export function withPermitsSelf(self: TSemaphore) {
55
+ export function withPermits(self: TSemaphore) {
56
56
  return (n: number) =>
57
57
  <R, E, A>(io: IO<R, E, A>) =>
58
58
  IO.uninterruptibleMask(({ restore }) =>
@@ -63,6 +63,6 @@ export function withPermitsSelf(self: TSemaphore) {
63
63
  /**
64
64
  * @tsplus getter fncts.io.TSemaphore withPermit
65
65
  */
66
- export function withPermitSelf(self: TSemaphore) {
66
+ export function withPermit(self: TSemaphore) {
67
67
  return <R, E, A>(io: IO<R, E, A>) => self.withPermits(1)(io);
68
68
  }
@@ -1,5 +1,5 @@
1
1
  interface TSemaphoreN extends HKT {
2
- readonly [HKT.T]: TSemaphore;
2
+ readonly type: TSemaphore;
3
3
  }
4
4
 
5
5
  /**
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @tsplus fluent fncts.Conc dropUntilIO
3
+ */
4
+ export function dropUntilIO<A, R, E>(
5
+ self: Conc<A>,
6
+ p: (a: A) => IO<R, E, boolean>,
7
+ __tsplusTrace?: string,
8
+ ): IO<R, E, Conc<A>> {
9
+ return IO.defer(() => {
10
+ const builder = new ConcBuilder<A>();
11
+ let dropping: IO<R, E, boolean> = IO.succeedNow(false);
12
+ for (const elem of self) {
13
+ dropping = dropping.flatMap((b) => {
14
+ if (b) {
15
+ builder.append(elem);
16
+ return IO.succeedNow(true);
17
+ } else {
18
+ return p(elem);
19
+ }
20
+ });
21
+ }
22
+ return dropping.as(builder.result());
23
+ });
24
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @tsplus fluent fncts.Conc dropWhileIO
3
+ */
4
+ export function dropWhileIO<A, R, E>(
5
+ self: Conc<A>,
6
+ p: (a: A) => IO<R, E, boolean>,
7
+ __tsplusTrace?: string,
8
+ ): IO<R, E, Conc<A>> {
9
+ return IO.defer(() => {
10
+ const builder = new ConcBuilder<A>();
11
+ let dropping: IO<R, E, boolean> = IO.succeedNow(true);
12
+ for (const elem of self) {
13
+ dropping = dropping.flatMap((d) =>
14
+ (d ? p(elem) : IO.succeedNow(false)).map((b) => {
15
+ if (b) {
16
+ return true;
17
+ } else {
18
+ builder.append(elem);
19
+ return false;
20
+ }
21
+ }),
22
+ );
23
+ }
24
+ return dropping.as(builder.result());
25
+ });
26
+ }
@@ -1,15 +1,59 @@
1
- let isRunning = false;
2
- const tasks = new ListBuffer<() => void>();
3
-
4
- export const defaultScheduler: (thunk: () => void) => void = (thunk) => {
5
- tasks.append(thunk);
6
- if (!isRunning) {
7
- isRunning = true;
8
- Promise.resolve().then(() => {
9
- while (tasks.length > 0) {
10
- tasks.unprepend()!();
11
- }
12
- isRunning = false;
13
- });
14
- }
15
- };
1
+ export interface Scheduler {
2
+ scheduleTask(task: () => void): void;
3
+ }
4
+
5
+ export class AsyncScheduler implements Scheduler {
6
+ private running = false;
7
+ private tasks = new ListBuffer<() => void>();
8
+
9
+ private starveInternal(depth: number) {
10
+ const toRun = this.tasks;
11
+ this.tasks = new ListBuffer();
12
+ for (const task of toRun) {
13
+ task();
14
+ }
15
+ if (this.tasks.isEmpty) {
16
+ this.running = false;
17
+ } else {
18
+ this.starve(depth);
19
+ }
20
+ }
21
+
22
+ starve(depth = 0) {
23
+ if (depth >= 2048) {
24
+ setTimeout(() => this.starveInternal(0), 0);
25
+ } else {
26
+ queueMicrotask(() => this.starveInternal(depth + 1));
27
+ }
28
+ }
29
+
30
+ scheduleTask(task: () => void) {
31
+ this.tasks.append(task);
32
+ if (!this.running) {
33
+ this.running = true;
34
+ this.starve();
35
+ }
36
+ }
37
+ }
38
+
39
+ export const defaultScheduler: Scheduler = new AsyncScheduler();
40
+
41
+ export class StagedScheduler implements Scheduler {
42
+ private tasks = new ListBuffer<() => void>();
43
+ private deferred = false;
44
+
45
+ scheduleTask(task: () => void) {
46
+ if (this.deferred) {
47
+ defaultScheduler.scheduleTask(task);
48
+ } else {
49
+ this.tasks.append(task);
50
+ }
51
+ }
52
+
53
+ flush() {
54
+ while (!this.tasks.isEmpty) {
55
+ this.tasks.unprepend()();
56
+ }
57
+ this.deferred = true;
58
+ }
59
+ }
@@ -0,0 +1,7 @@
1
+ import { Conc } from "@fncts/base/collection/immutable/Conc";
2
+ import { IO } from "@fncts/io/IO/definition";
3
+ /**
4
+ * @tsplus fluent fncts.Conc dropUntilIO
5
+ * @tsplus location "@fncts/io/collection/immutable/Conc/dropUntilIO"
6
+ */
7
+ export declare function dropUntilIO<A, R, E>(self: Conc<A>, p: (a: A) => IO<R, E, boolean>, __tsplusTrace?: string): IO<R, E, Conc<A>>;
@@ -0,0 +1,7 @@
1
+ import { Conc } from "@fncts/base/collection/immutable/Conc";
2
+ import { IO } from "@fncts/io/IO/definition";
3
+ /**
4
+ * @tsplus fluent fncts.Conc dropWhileIO
5
+ * @tsplus location "@fncts/io/collection/immutable/Conc/dropWhileIO"
6
+ */
7
+ export declare function dropWhileIO<A, R, E>(self: Conc<A>, p: (a: A) => IO<R, E, boolean>, __tsplusTrace?: string): IO<R, E, Conc<A>>;
@@ -1 +1,18 @@
1
- export declare const defaultScheduler: (thunk: () => void) => void;
1
+ import { ListBuffer } from "@fncts/base/collection/mutable/ListBuffer";
2
+ export interface Scheduler {
3
+ scheduleTask(task: () => void): void;
4
+ }
5
+ export declare class AsyncScheduler implements Scheduler {
6
+ private running;
7
+ private tasks;
8
+ private starveInternal;
9
+ starve(depth?: number): void;
10
+ scheduleTask(task: () => void): void;
11
+ }
12
+ export declare const defaultScheduler: Scheduler;
13
+ export declare class StagedScheduler implements Scheduler {
14
+ private tasks;
15
+ private deferred;
16
+ scheduleTask(task: () => void): void;
17
+ flush(): void;
18
+ }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@fncts/io",
3
- "version": "0.0.10",
3
+ "version": "0.0.13",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.10",
6
- "@fncts/typelevel": "0.0.8"
5
+ "@fncts/base": "0.0.13",
6
+ "@fncts/typelevel": "0.0.11"
7
7
  },
8
8
  "exports": {
9
9
  "./*": {