@fncts/io 0.0.10 → 0.0.13

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 (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
  "./*": {