@typed/fx 0.0.4 → 0.0.8

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 (461) hide show
  1. package/.eslintcache +1 -1
  2. package/cjs/Cause/Cause.d.ts +10 -0
  3. package/cjs/Cause/Cause.d.ts.map +1 -1
  4. package/cjs/Cause/Cause.js +37 -2
  5. package/cjs/Cause/Cause.js.map +1 -1
  6. package/cjs/Cause/Renderer.js +1 -1
  7. package/cjs/Cause/Renderer.js.map +1 -1
  8. package/cjs/Env/Env.d.ts +9 -1
  9. package/cjs/Env/Env.d.ts.map +1 -1
  10. package/cjs/Env/Env.js +32 -5
  11. package/cjs/Env/Env.js.map +1 -1
  12. package/cjs/Fiber/fromScope.d.ts +5 -0
  13. package/cjs/Fiber/fromScope.d.ts.map +1 -0
  14. package/cjs/Fiber/fromScope.js +17 -0
  15. package/cjs/Fiber/fromScope.js.map +1 -0
  16. package/cjs/FiberRef/builtins.d.ts +4 -1
  17. package/cjs/FiberRef/builtins.d.ts.map +1 -1
  18. package/cjs/FiberRef/builtins.js +40 -13
  19. package/cjs/FiberRef/builtins.js.map +1 -1
  20. package/cjs/FiberRuntime/FiberRuntime.d.ts.map +1 -1
  21. package/cjs/FiberRuntime/FiberRuntime.js +23 -14
  22. package/cjs/FiberRuntime/FiberRuntime.js.map +1 -1
  23. package/cjs/Fx/Fx.d.ts +4 -3
  24. package/cjs/Fx/Fx.d.ts.map +1 -1
  25. package/cjs/Fx/Fx.js +25 -24
  26. package/cjs/Fx/Fx.js.map +1 -1
  27. package/cjs/Fx/join.d.ts +1 -1
  28. package/cjs/Fx/join.d.ts.map +1 -1
  29. package/cjs/Fx/join.js +1 -1
  30. package/cjs/Fx/join.js.map +1 -1
  31. package/cjs/Schedule/ScheduleState.d.ts +3 -0
  32. package/cjs/Schedule/ScheduleState.d.ts.map +1 -1
  33. package/cjs/Schedule/ScheduleState.js +3 -0
  34. package/cjs/Schedule/ScheduleState.js.map +1 -1
  35. package/cjs/Scheduler/RootScheduler.d.ts.map +1 -1
  36. package/cjs/Scheduler/RootScheduler.js +4 -5
  37. package/cjs/Scheduler/RootScheduler.js.map +1 -1
  38. package/cjs/Scheduler/Scheduler.d.ts +2 -2
  39. package/cjs/Scheduler/Scheduler.d.ts.map +1 -1
  40. package/cjs/Scheduler/Scheduler.js.map +1 -1
  41. package/cjs/Scheduler/callbackScheduler.d.ts.map +1 -1
  42. package/cjs/Scheduler/callbackScheduler.js +1 -0
  43. package/cjs/Scheduler/callbackScheduler.js.map +1 -1
  44. package/cjs/Scheduler/runSchedule.d.ts +1 -1
  45. package/cjs/Scheduler/runSchedule.d.ts.map +1 -1
  46. package/cjs/Scheduler/runSchedule.js +3 -2
  47. package/cjs/Scheduler/runSchedule.js.map +1 -1
  48. package/cjs/Scope/LocalScope.d.ts.map +1 -1
  49. package/cjs/Scope/LocalScope.js +8 -8
  50. package/cjs/Scope/LocalScope.js.map +1 -1
  51. package/cjs/Semaphore/Semaphore.d.ts +9 -9
  52. package/cjs/Semaphore/Semaphore.d.ts.map +1 -1
  53. package/cjs/Semaphore/Semaphore.js +34 -15
  54. package/cjs/Semaphore/Semaphore.js.map +1 -1
  55. package/cjs/Sink/Sink.d.ts +1 -0
  56. package/cjs/Sink/Sink.d.ts.map +1 -1
  57. package/cjs/Sink/Sink.js +11 -1
  58. package/cjs/Sink/Sink.js.map +1 -1
  59. package/cjs/Stream/Stream.d.ts +5 -14
  60. package/cjs/Stream/Stream.d.ts.map +1 -1
  61. package/cjs/Stream/Stream.js.map +1 -1
  62. package/cjs/Stream/acquirePermit.d.ts +15 -0
  63. package/cjs/Stream/acquirePermit.d.ts.map +1 -0
  64. package/cjs/Stream/acquirePermit.js +43 -0
  65. package/cjs/Stream/acquirePermit.js.map +1 -0
  66. package/cjs/Stream/bimap.d.ts +33 -4
  67. package/cjs/Stream/bimap.d.ts.map +1 -1
  68. package/cjs/Stream/bimap.js +109 -12
  69. package/cjs/Stream/bimap.js.map +1 -1
  70. package/cjs/Stream/continueWith.d.ts +4 -3
  71. package/cjs/Stream/continueWith.d.ts.map +1 -1
  72. package/cjs/Stream/continueWith.js +9 -6
  73. package/cjs/Stream/continueWith.js.map +1 -1
  74. package/cjs/Stream/delay.d.ts +4 -0
  75. package/cjs/Stream/delay.d.ts.map +1 -0
  76. package/cjs/Stream/delay.js +30 -0
  77. package/cjs/Stream/delay.js.map +1 -0
  78. package/cjs/Stream/drain.d.ts +2 -2
  79. package/cjs/Stream/drain.d.ts.map +1 -1
  80. package/cjs/Stream/drain.js +5 -5
  81. package/cjs/Stream/drain.js.map +1 -1
  82. package/cjs/Stream/empty.d.ts.map +1 -1
  83. package/cjs/Stream/empty.js +1 -2
  84. package/cjs/Stream/empty.js.map +1 -1
  85. package/cjs/Stream/flatMap.d.ts +7 -5
  86. package/cjs/Stream/flatMap.d.ts.map +1 -1
  87. package/cjs/Stream/flatMap.js +33 -19
  88. package/cjs/Stream/flatMap.js.map +1 -1
  89. package/cjs/Stream/flatMapConcurrently.d.ts +6 -0
  90. package/cjs/Stream/flatMapConcurrently.d.ts.map +1 -0
  91. package/cjs/Stream/flatMapConcurrently.js +25 -0
  92. package/cjs/Stream/flatMapConcurrently.js.map +1 -0
  93. package/cjs/Stream/flatMapFx.d.ts +5 -1
  94. package/cjs/Stream/flatMapFx.d.ts.map +1 -1
  95. package/cjs/Stream/flatMapFx.js +18 -3
  96. package/cjs/Stream/flatMapFx.js.map +1 -1
  97. package/cjs/Stream/foldMap.d.ts +11 -0
  98. package/cjs/Stream/foldMap.d.ts.map +1 -0
  99. package/cjs/Stream/foldMap.js +67 -0
  100. package/cjs/Stream/foldMap.js.map +1 -0
  101. package/cjs/Stream/fromArray.d.ts +2 -0
  102. package/cjs/Stream/fromArray.d.ts.map +1 -0
  103. package/cjs/Stream/fromArray.js +12 -0
  104. package/cjs/Stream/fromArray.js.map +1 -0
  105. package/cjs/Stream/fromCallback.d.ts +4 -3
  106. package/cjs/Stream/fromCallback.d.ts.map +1 -1
  107. package/cjs/Stream/fromCallback.js +26 -26
  108. package/cjs/Stream/fromCallback.js.map +1 -1
  109. package/cjs/Stream/fromFx.d.ts +23 -8
  110. package/cjs/Stream/fromFx.d.ts.map +1 -1
  111. package/cjs/Stream/fromFx.js +36 -16
  112. package/cjs/Stream/fromFx.js.map +1 -1
  113. package/cjs/Stream/hkt.d.ts +24 -1
  114. package/cjs/Stream/hkt.d.ts.map +1 -1
  115. package/cjs/Stream/hkt.js +43 -5
  116. package/cjs/Stream/hkt.js.map +1 -1
  117. package/cjs/Stream/hold.d.ts +27 -0
  118. package/cjs/Stream/hold.d.ts.map +1 -0
  119. package/cjs/Stream/hold.js +94 -0
  120. package/cjs/Stream/hold.js.map +1 -0
  121. package/cjs/Stream/index.d.ts +14 -1
  122. package/cjs/Stream/index.d.ts.map +1 -1
  123. package/cjs/Stream/index.js +14 -1
  124. package/cjs/Stream/index.js.map +1 -1
  125. package/cjs/Stream/lazy.d.ts +3 -0
  126. package/cjs/Stream/lazy.d.ts.map +1 -0
  127. package/cjs/Stream/lazy.js +9 -0
  128. package/cjs/Stream/lazy.js.map +1 -0
  129. package/cjs/Stream/merge.d.ts +18 -0
  130. package/cjs/Stream/merge.d.ts.map +1 -0
  131. package/cjs/Stream/merge.js +84 -0
  132. package/cjs/Stream/merge.js.map +1 -0
  133. package/cjs/Stream/multicast.d.ts +27 -0
  134. package/cjs/Stream/multicast.d.ts.map +1 -0
  135. package/cjs/Stream/multicast.js +83 -0
  136. package/cjs/Stream/multicast.js.map +1 -0
  137. package/cjs/Stream/orElse.d.ts +17 -0
  138. package/cjs/Stream/orElse.d.ts.map +1 -0
  139. package/cjs/Stream/orElse.js +105 -0
  140. package/cjs/Stream/orElse.js.map +1 -0
  141. package/cjs/Stream/periodic.d.ts +1 -1
  142. package/cjs/Stream/periodic.d.ts.map +1 -1
  143. package/cjs/Stream/periodic.js +1 -1
  144. package/cjs/Stream/periodic.js.map +1 -1
  145. package/cjs/Stream/provide.d.ts +8 -0
  146. package/cjs/Stream/provide.d.ts.map +1 -0
  147. package/cjs/Stream/provide.js +42 -0
  148. package/cjs/Stream/provide.js.map +1 -0
  149. package/cjs/Stream/run.d.ts +2 -2
  150. package/cjs/Stream/run.d.ts.map +1 -1
  151. package/cjs/Stream/run.js +1 -1
  152. package/cjs/Stream/run.js.map +1 -1
  153. package/cjs/Stream/scan.d.ts +17 -0
  154. package/cjs/Stream/scan.d.ts.map +1 -0
  155. package/cjs/Stream/scan.js +32 -0
  156. package/cjs/Stream/scan.js.map +1 -0
  157. package/cjs/Stream/scheduled.d.ts +12 -3
  158. package/cjs/Stream/scheduled.d.ts.map +1 -1
  159. package/cjs/Stream/scheduled.js +23 -5
  160. package/cjs/Stream/scheduled.js.map +1 -1
  161. package/cjs/Stream/setFiberRefLocally.d.ts +15 -0
  162. package/cjs/Stream/setFiberRefLocally.d.ts.map +1 -0
  163. package/cjs/Stream/setFiberRefLocally.js +53 -0
  164. package/cjs/Stream/setFiberRefLocally.js.map +1 -0
  165. package/cjs/Stream/skipRepeats.d.ts +5 -0
  166. package/cjs/Stream/skipRepeats.d.ts.map +1 -0
  167. package/cjs/Stream/skipRepeats.js +36 -0
  168. package/cjs/Stream/skipRepeats.js.map +1 -0
  169. package/cjs/Stream/switchMap.d.ts +18 -0
  170. package/cjs/Stream/switchMap.d.ts.map +1 -0
  171. package/cjs/Stream/switchMap.js +124 -0
  172. package/cjs/Stream/switchMap.js.map +1 -0
  173. package/cjs/Stream/tap.d.ts +2 -1
  174. package/cjs/Stream/tap.d.ts.map +1 -1
  175. package/cjs/Stream/tap.js +4 -2
  176. package/cjs/Stream/tap.js.map +1 -1
  177. package/cjs/Supervisor/index.d.ts +2 -0
  178. package/cjs/Supervisor/index.d.ts.map +1 -1
  179. package/cjs/Supervisor/index.js +2 -0
  180. package/cjs/Supervisor/index.js.map +1 -1
  181. package/cjs/Supervisor/inheritFiberRefs.d.ts +2 -0
  182. package/cjs/Supervisor/inheritFiberRefs.d.ts.map +1 -0
  183. package/cjs/Supervisor/inheritFiberRefs.js +17 -0
  184. package/cjs/Supervisor/inheritFiberRefs.js.map +1 -0
  185. package/cjs/Timeline/index.js.map +1 -1
  186. package/esm/Cause/Cause.d.ts +10 -0
  187. package/esm/Cause/Cause.d.ts.map +1 -1
  188. package/esm/Cause/Cause.js +27 -0
  189. package/esm/Cause/Cause.js.map +1 -1
  190. package/esm/Cause/Renderer.js +1 -1
  191. package/esm/Cause/Renderer.js.map +1 -1
  192. package/esm/Env/Env.d.ts +9 -1
  193. package/esm/Env/Env.d.ts.map +1 -1
  194. package/esm/Env/Env.js +8 -5
  195. package/esm/Env/Env.js.map +1 -1
  196. package/esm/Fiber/fromScope.d.ts +5 -0
  197. package/esm/Fiber/fromScope.d.ts.map +1 -0
  198. package/esm/Fiber/fromScope.js +13 -0
  199. package/esm/Fiber/fromScope.js.map +1 -0
  200. package/esm/FiberRef/builtins.d.ts +4 -1
  201. package/esm/FiberRef/builtins.d.ts.map +1 -1
  202. package/esm/FiberRef/builtins.js +36 -12
  203. package/esm/FiberRef/builtins.js.map +1 -1
  204. package/esm/FiberRuntime/FiberRuntime.d.ts.map +1 -1
  205. package/esm/FiberRuntime/FiberRuntime.js +23 -14
  206. package/esm/FiberRuntime/FiberRuntime.js.map +1 -1
  207. package/esm/Fx/Fx.d.ts +4 -3
  208. package/esm/Fx/Fx.d.ts.map +1 -1
  209. package/esm/Fx/Fx.js +22 -22
  210. package/esm/Fx/Fx.js.map +1 -1
  211. package/esm/Fx/join.d.ts +1 -1
  212. package/esm/Fx/join.d.ts.map +1 -1
  213. package/esm/Fx/join.js +1 -1
  214. package/esm/Fx/join.js.map +1 -1
  215. package/esm/Schedule/ScheduleState.d.ts +3 -0
  216. package/esm/Schedule/ScheduleState.d.ts.map +1 -1
  217. package/esm/Schedule/ScheduleState.js +3 -0
  218. package/esm/Schedule/ScheduleState.js.map +1 -1
  219. package/esm/Scheduler/RootScheduler.d.ts.map +1 -1
  220. package/esm/Scheduler/RootScheduler.js +4 -5
  221. package/esm/Scheduler/RootScheduler.js.map +1 -1
  222. package/esm/Scheduler/Scheduler.d.ts +2 -2
  223. package/esm/Scheduler/Scheduler.d.ts.map +1 -1
  224. package/esm/Scheduler/Scheduler.js.map +1 -1
  225. package/esm/Scheduler/callbackScheduler.d.ts.map +1 -1
  226. package/esm/Scheduler/callbackScheduler.js +1 -0
  227. package/esm/Scheduler/callbackScheduler.js.map +1 -1
  228. package/esm/Scheduler/runSchedule.d.ts +1 -1
  229. package/esm/Scheduler/runSchedule.d.ts.map +1 -1
  230. package/esm/Scheduler/runSchedule.js +4 -3
  231. package/esm/Scheduler/runSchedule.js.map +1 -1
  232. package/esm/Scope/LocalScope.d.ts.map +1 -1
  233. package/esm/Scope/LocalScope.js +8 -8
  234. package/esm/Scope/LocalScope.js.map +1 -1
  235. package/esm/Semaphore/Semaphore.d.ts +9 -9
  236. package/esm/Semaphore/Semaphore.d.ts.map +1 -1
  237. package/esm/Semaphore/Semaphore.js +11 -15
  238. package/esm/Semaphore/Semaphore.js.map +1 -1
  239. package/esm/Sink/Sink.d.ts +1 -0
  240. package/esm/Sink/Sink.d.ts.map +1 -1
  241. package/esm/Sink/Sink.js +10 -1
  242. package/esm/Sink/Sink.js.map +1 -1
  243. package/esm/Stream/Stream.d.ts +5 -14
  244. package/esm/Stream/Stream.d.ts.map +1 -1
  245. package/esm/Stream/Stream.js.map +1 -1
  246. package/esm/Stream/acquirePermit.d.ts +15 -0
  247. package/esm/Stream/acquirePermit.d.ts.map +1 -0
  248. package/esm/Stream/acquirePermit.js +15 -0
  249. package/esm/Stream/acquirePermit.js.map +1 -0
  250. package/esm/Stream/bimap.d.ts +33 -4
  251. package/esm/Stream/bimap.d.ts.map +1 -1
  252. package/esm/Stream/bimap.js +102 -11
  253. package/esm/Stream/bimap.js.map +1 -1
  254. package/esm/Stream/continueWith.d.ts +4 -3
  255. package/esm/Stream/continueWith.d.ts.map +1 -1
  256. package/esm/Stream/continueWith.js +9 -6
  257. package/esm/Stream/continueWith.js.map +1 -1
  258. package/esm/Stream/delay.d.ts +4 -0
  259. package/esm/Stream/delay.d.ts.map +1 -0
  260. package/esm/Stream/delay.js +26 -0
  261. package/esm/Stream/delay.js.map +1 -0
  262. package/esm/Stream/drain.d.ts +2 -2
  263. package/esm/Stream/drain.d.ts.map +1 -1
  264. package/esm/Stream/drain.js +6 -6
  265. package/esm/Stream/drain.js.map +1 -1
  266. package/esm/Stream/empty.d.ts.map +1 -1
  267. package/esm/Stream/empty.js +1 -2
  268. package/esm/Stream/empty.js.map +1 -1
  269. package/esm/Stream/flatMap.d.ts +7 -5
  270. package/esm/Stream/flatMap.d.ts.map +1 -1
  271. package/esm/Stream/flatMap.js +32 -19
  272. package/esm/Stream/flatMap.js.map +1 -1
  273. package/esm/Stream/flatMapConcurrently.d.ts +6 -0
  274. package/esm/Stream/flatMapConcurrently.d.ts.map +1 -0
  275. package/esm/Stream/flatMapConcurrently.js +19 -0
  276. package/esm/Stream/flatMapConcurrently.js.map +1 -0
  277. package/esm/Stream/flatMapFx.d.ts +5 -1
  278. package/esm/Stream/flatMapFx.d.ts.map +1 -1
  279. package/esm/Stream/flatMapFx.js +16 -4
  280. package/esm/Stream/flatMapFx.js.map +1 -1
  281. package/esm/Stream/foldMap.d.ts +11 -0
  282. package/esm/Stream/foldMap.d.ts.map +1 -0
  283. package/esm/Stream/foldMap.js +38 -0
  284. package/esm/Stream/foldMap.js.map +1 -0
  285. package/esm/Stream/fromArray.d.ts +2 -0
  286. package/esm/Stream/fromArray.d.ts.map +1 -0
  287. package/esm/Stream/fromArray.js +8 -0
  288. package/esm/Stream/fromArray.js.map +1 -0
  289. package/esm/Stream/fromCallback.d.ts +4 -3
  290. package/esm/Stream/fromCallback.d.ts.map +1 -1
  291. package/esm/Stream/fromCallback.js +26 -26
  292. package/esm/Stream/fromCallback.js.map +1 -1
  293. package/esm/Stream/fromFx.d.ts +23 -8
  294. package/esm/Stream/fromFx.d.ts.map +1 -1
  295. package/esm/Stream/fromFx.js +24 -14
  296. package/esm/Stream/fromFx.js.map +1 -1
  297. package/esm/Stream/hkt.d.ts +24 -1
  298. package/esm/Stream/hkt.d.ts.map +1 -1
  299. package/esm/Stream/hkt.js +41 -4
  300. package/esm/Stream/hkt.js.map +1 -1
  301. package/esm/Stream/hold.d.ts +27 -0
  302. package/esm/Stream/hold.d.ts.map +1 -0
  303. package/esm/Stream/hold.js +66 -0
  304. package/esm/Stream/hold.js.map +1 -0
  305. package/esm/Stream/index.d.ts +14 -1
  306. package/esm/Stream/index.d.ts.map +1 -1
  307. package/esm/Stream/index.js +14 -1
  308. package/esm/Stream/index.js.map +1 -1
  309. package/esm/Stream/lazy.d.ts +3 -0
  310. package/esm/Stream/lazy.d.ts.map +1 -0
  311. package/esm/Stream/lazy.js +5 -0
  312. package/esm/Stream/lazy.js.map +1 -0
  313. package/esm/Stream/merge.d.ts +18 -0
  314. package/esm/Stream/merge.d.ts.map +1 -0
  315. package/esm/Stream/merge.js +55 -0
  316. package/esm/Stream/merge.js.map +1 -0
  317. package/esm/Stream/multicast.d.ts +27 -0
  318. package/esm/Stream/multicast.d.ts.map +1 -0
  319. package/esm/Stream/multicast.js +55 -0
  320. package/esm/Stream/multicast.js.map +1 -0
  321. package/esm/Stream/orElse.d.ts +17 -0
  322. package/esm/Stream/orElse.d.ts.map +1 -0
  323. package/esm/Stream/orElse.js +77 -0
  324. package/esm/Stream/orElse.js.map +1 -0
  325. package/esm/Stream/periodic.d.ts +1 -1
  326. package/esm/Stream/periodic.d.ts.map +1 -1
  327. package/esm/Stream/periodic.js +1 -1
  328. package/esm/Stream/periodic.js.map +1 -1
  329. package/esm/Stream/provide.d.ts +8 -0
  330. package/esm/Stream/provide.d.ts.map +1 -0
  331. package/esm/Stream/provide.js +13 -0
  332. package/esm/Stream/provide.js.map +1 -0
  333. package/esm/Stream/run.d.ts +2 -2
  334. package/esm/Stream/run.d.ts.map +1 -1
  335. package/esm/Stream/run.js +2 -2
  336. package/esm/Stream/run.js.map +1 -1
  337. package/esm/Stream/scan.d.ts +17 -0
  338. package/esm/Stream/scan.d.ts.map +1 -0
  339. package/esm/Stream/scan.js +27 -0
  340. package/esm/Stream/scan.js.map +1 -0
  341. package/esm/Stream/scheduled.d.ts +12 -3
  342. package/esm/Stream/scheduled.d.ts.map +1 -1
  343. package/esm/Stream/scheduled.js +16 -4
  344. package/esm/Stream/scheduled.js.map +1 -1
  345. package/esm/Stream/setFiberRefLocally.d.ts +15 -0
  346. package/esm/Stream/setFiberRefLocally.d.ts.map +1 -0
  347. package/esm/Stream/setFiberRefLocally.js +25 -0
  348. package/esm/Stream/setFiberRefLocally.js.map +1 -0
  349. package/esm/Stream/skipRepeats.d.ts +5 -0
  350. package/esm/Stream/skipRepeats.d.ts.map +1 -0
  351. package/esm/Stream/skipRepeats.js +31 -0
  352. package/esm/Stream/skipRepeats.js.map +1 -0
  353. package/esm/Stream/switchMap.d.ts +18 -0
  354. package/esm/Stream/switchMap.d.ts.map +1 -0
  355. package/esm/Stream/switchMap.js +95 -0
  356. package/esm/Stream/switchMap.js.map +1 -0
  357. package/esm/Stream/tap.d.ts +2 -1
  358. package/esm/Stream/tap.d.ts.map +1 -1
  359. package/esm/Stream/tap.js +3 -2
  360. package/esm/Stream/tap.js.map +1 -1
  361. package/esm/Supervisor/index.d.ts +2 -0
  362. package/esm/Supervisor/index.d.ts.map +1 -1
  363. package/esm/Supervisor/index.js +2 -0
  364. package/esm/Supervisor/index.js.map +1 -1
  365. package/esm/Supervisor/inheritFiberRefs.d.ts +2 -0
  366. package/esm/Supervisor/inheritFiberRefs.d.ts.map +1 -0
  367. package/esm/Supervisor/inheritFiberRefs.js +14 -0
  368. package/esm/Supervisor/inheritFiberRefs.js.map +1 -0
  369. package/esm/Timeline/index.js.map +1 -1
  370. package/package.json +173 -37
  371. package/perf/Stream-filter-map-reduce.test.ts +103 -0
  372. package/readme.md +1 -1
  373. package/src/Cause/Cause.ts +63 -0
  374. package/src/Cause/Renderer.ts +1 -1
  375. package/src/Env/Env.ts +15 -5
  376. package/src/Fiber/fromScope.ts +19 -0
  377. package/src/FiberRef/builtins.ts +63 -11
  378. package/src/FiberRuntime/FiberRuntime.ts +35 -28
  379. package/src/Fx/Fx.test.ts +2 -2
  380. package/src/Fx/Fx.ts +11 -10
  381. package/src/Fx/join.ts +4 -4
  382. package/src/Schedule/ScheduleState.ts +3 -0
  383. package/src/Scheduler/RootScheduler.ts +7 -9
  384. package/src/Scheduler/Scheduler.ts +5 -6
  385. package/src/Scheduler/callbackScheduler.ts +1 -0
  386. package/src/Scheduler/runSchedule.ts +5 -2
  387. package/src/Scope/LocalScope.ts +8 -6
  388. package/src/Semaphore/Semaphore.ts +12 -19
  389. package/src/Sink/Sink.ts +11 -1
  390. package/src/Stream/Stream.ts +9 -15
  391. package/src/Stream/acquirePermit.ts +32 -0
  392. package/src/Stream/bimap.ts +164 -12
  393. package/src/Stream/continueWith.ts +11 -7
  394. package/src/Stream/delay.ts +43 -0
  395. package/src/Stream/drain.ts +8 -7
  396. package/src/Stream/empty.ts +1 -2
  397. package/src/Stream/flatMap.test.ts +8 -21
  398. package/src/Stream/flatMap.ts +46 -24
  399. package/src/Stream/flatMapConcurrently.test.ts +77 -0
  400. package/src/Stream/flatMapConcurrently.ts +34 -0
  401. package/src/Stream/flatMapFx.ts +37 -4
  402. package/src/Stream/foldMap.ts +88 -0
  403. package/src/Stream/fromArray.ts +8 -0
  404. package/src/Stream/fromCallback.test.ts +3 -16
  405. package/src/Stream/fromCallback.ts +48 -29
  406. package/src/Stream/fromFx.test.ts +3 -24
  407. package/src/Stream/fromFx.ts +54 -28
  408. package/src/Stream/hkt.ts +59 -10
  409. package/src/Stream/hold.test.ts +52 -0
  410. package/src/Stream/hold.ts +117 -0
  411. package/src/Stream/index.ts +14 -1
  412. package/src/Stream/lazy.ts +5 -0
  413. package/src/Stream/logging.test.ts +8 -3
  414. package/src/Stream/merge.test.ts +31 -0
  415. package/src/Stream/merge.ts +76 -0
  416. package/src/Stream/multicast.test.ts +32 -0
  417. package/src/Stream/multicast.ts +114 -0
  418. package/src/Stream/orElse.ts +107 -0
  419. package/src/Stream/periodic.ts +2 -2
  420. package/src/Stream/provide.test.ts +78 -0
  421. package/src/Stream/provide.ts +34 -0
  422. package/src/Stream/run.ts +6 -3
  423. package/src/Stream/scan.test.ts +28 -0
  424. package/src/Stream/scan.ts +46 -0
  425. package/src/Stream/scheduled.test.ts +9 -1
  426. package/src/Stream/scheduled.ts +46 -12
  427. package/src/Stream/setFiberRefLocally.ts +38 -0
  428. package/src/Stream/skipRepeats.ts +41 -0
  429. package/src/Stream/switchMap.test.ts +43 -0
  430. package/src/Stream/switchMap.ts +145 -0
  431. package/src/Stream/tap.ts +6 -3
  432. package/src/Supervisor/index.ts +2 -0
  433. package/src/Supervisor/inheritFiberRefs.ts +17 -0
  434. package/src/Timeline/index.ts +1 -0
  435. package/cjs/Effect/Effect.d.ts +0 -199
  436. package/cjs/Effect/Effect.d.ts.map +0 -1
  437. package/cjs/Effect/Effect.js +0 -66
  438. package/cjs/Effect/Effect.js.map +0 -1
  439. package/cjs/Stream/map.d.ts +0 -14
  440. package/cjs/Stream/map.d.ts.map +0 -1
  441. package/cjs/Stream/map.js +0 -30
  442. package/cjs/Stream/map.js.map +0 -1
  443. package/cjs/test.d.ts +0 -1
  444. package/cjs/test.d.ts.map +0 -1
  445. package/cjs/test.js +0 -2
  446. package/cjs/test.js.map +0 -1
  447. package/esm/Effect/Effect.d.ts +0 -199
  448. package/esm/Effect/Effect.d.ts.map +0 -1
  449. package/esm/Effect/Effect.js +0 -50
  450. package/esm/Effect/Effect.js.map +0 -1
  451. package/esm/Stream/map.d.ts +0 -14
  452. package/esm/Stream/map.d.ts.map +0 -1
  453. package/esm/Stream/map.js +0 -25
  454. package/esm/Stream/map.js.map +0 -1
  455. package/esm/test.d.ts +0 -1
  456. package/esm/test.d.ts.map +0 -1
  457. package/esm/test.js +0 -2
  458. package/esm/test.js.map +0 -1
  459. package/src/Effect/Effect.ts +0 -109
  460. package/src/Stream/map.ts +0 -35
  461. package/src/test.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"runSchedule.js","sourceRoot":"","sources":["../../src/Scheduler/runSchedule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,oBAAkB;AAE/B,OAAO,EAAE,aAAa,EAAE,qCAAmC;AAG3D;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,EAAe,EACf,QAAkB,EAClB,KAAkB,EAClB,KAAqD;IAErD,OAAO,EAAE,CAAC,QAAQ,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC,CAAA;QAElF,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE;YAClC,uDAAuD;YACvD,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEhC,yCAAyC;YACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9E,KAAK,GAAG,SAAS,CAAA;YACjB,QAAQ,GAAG,YAAY,CAAA;SACxB;QAED,yBAAyB;QACzB,OAAO,KAAK,CAAA;IACd,CAAC,sEAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"runSchedule.js","sourceRoot":"","sources":["../../src/Scheduler/runSchedule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAkB;AAErC,OAAO,EAAE,aAAa,EAAE,qCAAmC;AAG3D;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,EAAe,EACf,QAAkB,EAClB,KAAkB,EAClB,KAAqD,EACrD,KAA6C;IAE7C,OAAO,EAAE,CAAC,QAAQ,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC,CAAA;QAElF,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE;YAClC,uDAAuD;YACvD,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEhC,yCAAyC;YACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9E,KAAK,GAAG,SAAS,CAAA;YACjB,QAAQ,GAAG,YAAY,CAAA;SACxB;QAED,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;QAE7B,yBAAyB;QACzB,OAAO,KAAK,CAAA;IACd,CAAC,sEAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalScope.d.ts","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAyB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAwB,mCAAiC;AAC/E,OAAO,EAAE,IAAI,EAA6B,wBAAsB;AAChE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,kCAAgC;AAC1E,OAAO,EAAE,EAAE,EAAqE,oBAAkB;AAIlG,qBAAa,UAAW,YAAW,SAAS;IAM9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IALnD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAO;IACnC,SAAS,CAAC,WAAW,aAAgC;IACrD,SAAS,CAAC,SAAS,gBAAuC;IAC1D,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAgB;gBAEvC,QAAQ,EAAE,oBAAoB;IAEnD,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,CAQrD;IAED,QAAQ,CAAC,IAAI,cAAc,oBAAoB,KAAmB,UAAU,CAa3E;IAED,QAAQ,CAAC,KAAK,SAAU,KAAK,GAAG,EAAE,GAAG,CAAC,KAAG,GAAG,OAAO,CAAC,CAOhD;IAIJ,SAAS,CAAC,OAAO,cAkBf;IAEF,SAAS,KAAK,QAAQ,YAErB;IAGD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;CAGvC"}
1
+ {"version":3,"file":"LocalScope.d.ts","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAyB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAwB,mCAAiC;AAC/E,OAAO,EAAE,IAAI,EAA6B,wBAAsB;AAChE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,kCAAgC;AAC1E,OAAO,EAAE,EAAE,EAAqE,oBAAkB;AAIlG,qBAAa,UAAW,YAAW,SAAS;IAM9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IALnD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAO;IACnC,SAAS,CAAC,WAAW,aAAgC;IACrD,SAAS,CAAC,SAAS,gBAAkB;IACrC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAgB;gBAEvC,QAAQ,EAAE,oBAAoB;IAEnD,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,CAQrD;IAED,QAAQ,CAAC,IAAI,cAAc,oBAAoB,KAAmB,UAAU,CAgB3E;IAED,QAAQ,CAAC,KAAK,SAAU,KAAK,GAAG,EAAE,GAAG,CAAC,KAAG,GAAG,OAAO,CAAC,CAOhD;IAIJ,SAAS,CAAC,OAAO,cAkBf;IAEF,SAAS,KAAK,QAAQ,YAErB;IAGD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;CAGvC"}
@@ -2,7 +2,6 @@ import { mapTo } from 'hkt-ts/Either';
2
2
  import * as Maybe from 'hkt-ts/Maybe';
3
3
  import { First } from 'hkt-ts/Typeclass/Associative';
4
4
  import { pipe } from 'hkt-ts/function';
5
- import { NonNegativeInteger } from 'hkt-ts/number';
6
5
  import { ReleaseMap } from './ReleaseMap.js';
7
6
  import { Closed, Closing, Open } from './ScopeState.js';
8
7
  import { AtomicCounter, decrement, increment } from "../Atomic/AtomicCounter.js";
@@ -13,7 +12,7 @@ export class LocalScope {
13
12
  strategy;
14
13
  _state = Open;
15
14
  _releaseMap = new ReleaseMap(this.strategy);
16
- _refCount = AtomicCounter(NonNegativeInteger(1));
15
+ _refCount = AtomicCounter();
17
16
  _exit = Maybe.Nothing;
18
17
  constructor(strategy) {
19
18
  this.strategy = strategy;
@@ -33,9 +32,10 @@ export class LocalScope {
33
32
  throw new Error(`Unable to Fork a Closed Scope`);
34
33
  }
35
34
  const extended = new LocalScope(strategy);
36
- // Mutually track resources
37
- extended.ensuring(() => this.release);
38
- extended.ensuring(this.ensuring(() => extended.release));
35
+ extended.ensuring(() => {
36
+ decrement(this._refCount);
37
+ return this.release;
38
+ });
39
39
  increment(this._refCount);
40
40
  return extended;
41
41
  };
@@ -44,15 +44,15 @@ export class LocalScope {
44
44
  this.setExit(exit);
45
45
  }
46
46
  return this.release;
47
- }, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:56:9");
47
+ }, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:58:9");
48
48
  // Internals
49
49
  release = lazy(() => {
50
- if (decrement(this._refCount) > 0 || Maybe.isNothing(this._exit) || this.isClosed) {
50
+ if (this._refCount.get() > 0 || Maybe.isNothing(this._exit) || this.isClosed) {
51
51
  return success(false);
52
52
  }
53
53
  const exit = this._exit.value;
54
54
  return pipe(fromLazy(() => (this._state = Closing(exit))), flatMap(() => this._releaseMap.releaseAll(exit)), flatMap((exit) => pipe(fromLazy(() => (this._state = Closed(exit))), flatMap(() => pipe(exit, mapTo(true), fromExit)))), uninterruptable);
55
- }, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:66:27");
55
+ }, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:68:27");
56
56
  get isClosed() {
57
57
  return this.state.tag === 'Closed';
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalScope.js","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalScope.js","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { NonNegativeInteger } from 'hkt-ts/number';
2
2
  import { AtomicCounter } from "../Atomic/AtomicCounter.js";
3
3
  import { MutableFutureQueue } from "../Future/MutableFutureQueue.js";
4
- import { Fx, Of } from "../Fx/Fx.js";
4
+ import * as Fx from "../Fx/Fx.js";
5
5
  export declare class Semaphore {
6
6
  readonly maxPermits: NonNegativeInteger;
7
7
  protected waiting: MutableFutureQueue<never, never, void>;
@@ -9,13 +9,13 @@ export declare class Semaphore {
9
9
  constructor(maxPermits: NonNegativeInteger);
10
10
  get available(): NonNegativeInteger;
11
11
  get acquired(): NonNegativeInteger;
12
- readonly prepare: Of<Acquisition>;
13
- protected release: Of<void>;
12
+ readonly prepare: Fx.Of<Acquisition>;
13
+ protected release: Fx.Of<void>;
14
14
  }
15
15
  export declare class Acquisition {
16
- readonly acquire: Of<void>;
17
- readonly release: Of<void>;
18
- constructor(acquire: Of<void>, release: Of<void>);
16
+ readonly acquire: Fx.Of<void>;
17
+ readonly release: Fx.Of<void>;
18
+ constructor(acquire: Fx.Of<void>, release: Fx.Of<void>);
19
19
  }
20
20
  /**
21
21
  * Specialization of Semaphore which only allows 1 permit.
@@ -27,13 +27,13 @@ export declare class Lock extends Semaphore {
27
27
  * Acquire a permit from a given semaphore, blocking until it is available.
28
28
  * Must be used with Fx.scoped() to release the permit at the desired time.
29
29
  */
30
- export declare function acquirePermit(semaphore: Semaphore): Fx<import("../Scope/Scope.js").Scope, never, void>;
30
+ export declare function acquirePermit(semaphore: Semaphore): Fx.Fx<import("../Scope/Scope.js").Scope, never, void>;
31
31
  /**
32
32
  * Acquire a permit from a given semaphore, run an Fx, and then release the permit.
33
33
  */
34
- export declare function acquire(semaphore: Semaphore): <R, E, A>(fx: Fx<R, E, A>) => Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
34
+ export declare function acquire(semaphore: Semaphore): <R, E, A>(fx: Fx.Fx<R, E, A>) => Fx.Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
35
35
  /**
36
36
  * Acquire a permit from a given semaphore, run an Fx, and then release the permit.
37
37
  */
38
- export declare function acquireFiber(semaphore: Semaphore): <R, E, A>(fx: Fx<R, E, A>) => Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
38
+ export declare function acquireFiber(semaphore: Semaphore): <R, E, A>(fx: Fx.Fx<R, E, A>) => Fx.Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
39
39
  //# sourceMappingURL=Semaphore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,aAAa,EAAwB,mCAAiC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,wCAAsC;AAEnE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAgC,oBAAkB;AAGjE,qBAAa,SAAS;IAIR,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAHnD,SAAS,CAAC,OAAO,yCAA2C;IAC5D,SAAS,CAAC,OAAO,gBAAkB;gBAEd,UAAU,EAAE,kBAAkB;IAGnD,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAED,QAAQ,CAAC,OAAO,kBA2Bd;IAEF,SAAS,CAAC,OAAO,WAMf;CACH;AAED,qBAAa,WAAW;IACV,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;gBAA7C,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,EAAW,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;CACnE;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,SAAS;;CAIlC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,sDAKjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,yFAO3C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,yFAOhD"}
1
+ {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,aAAa,EAAwB,mCAAiC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,wCAAsC;AAEnE,OAAO,KAAK,EAAE,oBAAkB;AAGhC,qBAAa,SAAS;IAIR,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAHnD,SAAS,CAAC,OAAO,yCAA2C;IAC5D,SAAS,CAAC,OAAO,gBAAkB;gBAEd,UAAU,EAAE,kBAAkB;IAGnD,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAED,QAAQ,CAAC,OAAO,qBAuBd;IAEF,SAAS,CAAC,OAAO,cAGf;CACH;AAED,qBAAa,WAAW;IACV,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAAnD,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAW,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;CACzE;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,SAAS;;CAIlC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,yDAKjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,+FAO3C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,+FAOhD"}
@@ -3,7 +3,7 @@ import { NonNegativeInteger } from 'hkt-ts/number';
3
3
  import { AtomicCounter, decrement, increment } from "../Atomic/AtomicCounter.js";
4
4
  import { MutableFutureQueue } from "../Future/MutableFutureQueue.js";
5
5
  import { wait } from "../Future/wait.js";
6
- import { flatMap, fromLazy, tap, unit } from "../Fx/Fx.js";
6
+ import * as Fx from "../Fx/Fx.js";
7
7
  import { fiberScoped, managed, scoped } from "../Fx/scoped.js";
8
8
  export class Semaphore {
9
9
  maxPermits;
@@ -19,26 +19,22 @@ export class Semaphore {
19
19
  get acquired() {
20
20
  return this.running.get();
21
21
  }
22
- prepare = fromLazy(() => {
22
+ prepare = Fx.fromLazy(() => {
23
23
  if (this.available > 0) {
24
- return new Acquisition(fromLazy(() => {
24
+ return new Acquisition(Fx.fromLazy(() => {
25
25
  increment(this.running);
26
26
  }), this.release);
27
27
  }
28
28
  const [future] = this.waiting.waitFor(1);
29
29
  // eslint-disable-next-line @typescript-eslint/no-this-alias
30
30
  const that = this;
31
- const acquisition = new Acquisition(pipe(wait(future), tap(() => fromLazy(() => {
32
- increment(that.running);
33
- }))), this.release);
31
+ const acquisition = new Acquisition(pipe(wait(future), Fx.tapLazy(() => increment(that.running))), this.release);
34
32
  return acquisition;
35
- }, "fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:25:30");
36
- release = fromLazy(() => {
33
+ }, "Fx.fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:25:33");
34
+ release = Fx.fromLazy(() => {
37
35
  decrement(this.running);
38
- if (this.waiting.size() > 0) {
39
- this.waiting.next(unit);
40
- }
41
- }, "fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:54:31");
36
+ this.waiting.next(Fx.unit);
37
+ }, "Fx.fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:50:34");
42
38
  }
43
39
  export class Acquisition {
44
40
  acquire;
@@ -61,18 +57,18 @@ export class Lock extends Semaphore {
61
57
  * Must be used with Fx.scoped() to release the permit at the desired time.
62
58
  */
63
59
  export function acquirePermit(semaphore) {
64
- return pipe(semaphore.prepare, flatMap(({ acquire, release }) => managed(acquire, constant(release))));
60
+ return pipe(semaphore.prepare, Fx.flatMap(({ acquire, release }) => managed(acquire, constant(release))));
65
61
  }
66
62
  /**
67
63
  * Acquire a permit from a given semaphore, run an Fx, and then release the permit.
68
64
  */
69
65
  export function acquire(semaphore) {
70
- return (fx) => pipe(acquirePermit(semaphore), flatMap(() => fx), scoped);
66
+ return (fx) => pipe(acquirePermit(semaphore), Fx.flatMap(() => fx), scoped);
71
67
  }
72
68
  /**
73
69
  * Acquire a permit from a given semaphore, run an Fx, and then release the permit.
74
70
  */
75
71
  export function acquireFiber(semaphore) {
76
- return (fx) => pipe(acquirePermit(semaphore), flatMap(() => fx), fiberScoped);
72
+ return (fx) => pipe(acquirePermit(semaphore), Fx.flatMap(() => fx), fiberScoped);
77
73
  }
78
74
  //# sourceMappingURL=Semaphore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,5 @@ export interface SinkFx<E, A, R2 = never, E2 = never, R3 = never, E3 = never, R4
19
19
  readonly end?: Fx<R4, E4, any>;
20
20
  }
21
21
  export declare function makeDrain<E, A, R2 = never, E2 = never, R3 = never, E3 = never, R4 = never, E4 = never>(scope: Closeable, fx: SinkFx<E, A, R2, E2, R3, E3, R4, E4>): Fx<R2 | R3 | R4, never, Sink<E, A, E2 | E3 | E4>>;
22
+ export declare function addTrace<E, A, E2>(sink: Sink<E, A, E2>, trace?: string): Sink<E, A, E2>;
22
23
  //# sourceMappingURL=Sink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sink.d.ts","sourceRoot":"","sources":["../../src/Sink/Sink.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,0BAAwB;AACxC,OAAO,EAAE,EAAE,EAAE,EAAE,EAA4C,oBAAkB;AAC7E,OAAO,EAAE,SAAS,EAAE,8BAA4B;AAEhD,MAAM,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAChD,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;CAC1B;AAED,qBAAa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS;gBAAhB,KAAK,EAAE,SAAS;IAErC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAa;IAChD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAA2C;IAC9E,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAqC;CACrE;AAED,MAAM,WAAW,MAAM,CACrB,CAAC,EACD,CAAC,EACD,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK;IAEV,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACrD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,wBAAgB,SAAS,CACvB,CAAC,EACD,CAAC,EACD,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EAEV,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACvC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CA8BnD"}
1
+ {"version":3,"file":"Sink.d.ts","sourceRoot":"","sources":["../../src/Sink/Sink.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,0BAAwB;AACxC,OAAO,EAAE,EAAE,EAAE,EAAE,EAA4D,oBAAkB;AAC7F,OAAO,EAAE,SAAS,EAAE,8BAA4B;AAEhD,MAAM,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK;IAC9C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAChD,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;CAC1B;AAED,qBAAa,KAAK,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS;gBAAhB,KAAK,EAAE,SAAS;IAErC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAa;IAChD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAA2C;IAC9E,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAqC;CACrE;AAED,MAAM,WAAW,MAAM,CACrB,CAAC,EACD,CAAC,EACD,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK;IAEV,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACrD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;CAC/B;AAED,wBAAgB,SAAS,CACvB,CAAC,EACD,CAAC,EACD,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EACV,EAAE,GAAG,KAAK,EAEV,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACvC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CA8BnD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAQvF"}
package/esm/Sink/Sink.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { flow, pipe } from 'hkt-ts';
2
2
  import { Left, Right } from 'hkt-ts/Either';
3
- import { access, flatMap, fromLazy, provide, unit } from "../Fx/Fx.js";
3
+ import { access, addCustomTrace, flatMap, fromLazy, provide, unit } from "../Fx/Fx.js";
4
4
  export class Drain {
5
5
  scope;
6
6
  constructor(scope) {
@@ -27,4 +27,13 @@ export function makeDrain(scope, fx) {
27
27
  return sink;
28
28
  }), "access" + " node_modules/@typed/fx/src/Sink/Sink.ts:50:16");
29
29
  }
30
+ export function addTrace(sink, trace) {
31
+ if (trace === undefined)
32
+ return sink;
33
+ return {
34
+ event: flow(sink.event, addCustomTrace(trace)),
35
+ error: flow(sink.error, addCustomTrace(trace)),
36
+ end: pipe(sink.end, addCustomTrace(trace)),
37
+ };
38
+ }
30
39
  //# sourceMappingURL=Sink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sink.js","sourceRoot":"","sources":["../../src/Sink/Sink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,EAAU,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAkB;AAS7E,MAAM,OAAO,KAAK;IACK;IAArB,YAAqB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAEhC,KAAK,GAAwB,GAAG,EAAE,CAAC,IAAI,CAAA;IACvC,KAAK,GAAwB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,GAAG,GAAsB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;CACrE;AAiBD,MAAM,UAAU,SAAS,CAUvB,KAAgB,EAChB,EAAwC;IAExC,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAO,KAAK,CAAC,CAAA;QAIpC,MAAM,IAAI,GAAM;YACd,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YAC5D,KAAK,EAAE,EAAE,CAAC,KAAK;gBACb,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI;gBACF,oEAAoE;gBACpE,EAAE,CAAC,KAAM,CAAC,CAAQ,CAAC,EACnB,OAAO,CAAC,GAAG,CAAC,EACZ,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B;gBACL,CAAC,CAAC,KAAK,CAAC,KAAK;YACf,GAAG,EAAE,EAAE,CAAC,GAAG;gBACT,CAAC,CAAC,IAAI,CACF,EAAE,CAAC,GAAG,EACN,OAAO,CAAC,GAAG,CAAC,EACZ,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CACzB;gBACH,CAAC,CAAC,KAAK,CAAC,GAAG;SACd,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,8DACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Sink.js","sourceRoot":"","sources":["../../src/Sink/Sink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,EAAU,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAkB;AAS7F,MAAM,OAAO,KAAK;IACK;IAArB,YAAqB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAEhC,KAAK,GAAwB,GAAG,EAAE,CAAC,IAAI,CAAA;IACvC,KAAK,GAAwB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,GAAG,GAAsB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;CACrE;AAiBD,MAAM,UAAU,SAAS,CAUvB,KAAgB,EAChB,EAAwC;IAExC,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,QAAQ,CAAC,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAO,KAAK,CAAC,CAAA;QAIpC,MAAM,IAAI,GAAM;YACd,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YAC5D,KAAK,EAAE,EAAE,CAAC,KAAK;gBACb,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI;gBACF,oEAAoE;gBACpE,EAAE,CAAC,KAAM,CAAC,CAAQ,CAAC,EACnB,OAAO,CAAC,GAAG,CAAC,EACZ,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B;gBACL,CAAC,CAAC,KAAK,CAAC,KAAK;YACf,GAAG,EAAE,EAAE,CAAC,GAAG;gBACT,CAAC,CAAC,IAAI,CACF,EAAE,CAAC,GAAG,EACN,OAAO,CAAC,GAAG,CAAC,EACZ,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CACzB;gBACH,CAAC,CAAC,KAAK,CAAC,GAAG;SACd,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,8DACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAW,IAAoB,EAAE,KAAc;IACrE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAEpC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;KAC3C,CAAA;AACH,CAAC"}
@@ -6,19 +6,13 @@ import { Scheduler } from "../Scheduler/Scheduler.js";
6
6
  import { Sink } from "../Sink/Sink.js";
7
7
  /**
8
8
  * TODOS:
9
- * - Scan
10
9
  * - Loop
11
10
  * - zipItems
12
11
  * - withItems
13
- * - switchLatest
14
- * - concatMap
15
- * - mergeConcurrently
16
- * - merge/mergeArray
17
12
  * - combine/combineArray
18
13
  * - zip/zipArray
19
14
  * - sample
20
15
  * - snapshot
21
- * - skipRepeats
22
16
  * - slice/take/skip
23
17
  * - takeWhile/skipWhile
24
18
  * - takeUntil/skipUntil
@@ -26,21 +20,18 @@ import { Sink } from "../Sink/Sink.js";
26
20
  * - since
27
21
  * - during
28
22
  * - until
29
- * - delay
30
23
  * - throttle
31
24
  * - debounce
32
- * - orElse
33
- * - multicast
34
- * - hold
35
- * - reduce
36
- * - run
37
25
  * - Fusion/Commutation
38
26
  * - Unique Identification for streams to add to tracing
39
27
  * - How to build a dynamic stream graph?
40
28
  */
41
- export interface Stream<R = never, E = never, A = unknown> {
42
- readonly fork: <E2 = never>(sink: Sink<E, A, E2>, scheduler: Scheduler, context: FiberContext<FiberId.Live>) => Fx.RIO<R, Fiber<E2, any>>;
29
+ export interface Stream<out R = never, out E = never, out A = unknown> {
30
+ fork<E2 = never>(sink: Sink<E, A, E2>, scheduler: Scheduler, context: FiberContext<FiberId.Live>): Fx.RIO<R, Fiber<E2, any>>;
43
31
  }
32
+ export declare type ResourcesOf<T> = T extends Stream<infer R, infer _, infer __> ? R : never;
33
+ export declare type ErrorsOf<T> = T extends Stream<infer _, infer E, infer __> ? E : never;
34
+ export declare type OutputOf<T> = T extends Stream<infer _, infer __, infer A> ? A : never;
44
35
  export interface RIO<R, A> extends Stream<R, never, A> {
45
36
  }
46
37
  export interface IO<E, A> extends Stream<never, E, A> {
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/Stream/Stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,0BAAwB;AACxC,OAAO,EAAE,YAAY,EAAE,wCAAsC;AAC7D,OAAO,EAAE,OAAO,EAAE,8BAA4B;AAC9C,OAAO,KAAK,EAAE,oBAAkB;AAChC,OAAO,EAAE,SAAS,EAAE,kCAAgC;AACpD,OAAO,EAAE,IAAI,EAAE,wBAAsB;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,OAAO;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EACxB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAChC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;CAAG;AACzD,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;CAAG;AACxD,MAAM,WAAW,EAAE,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;CAAG;AAEzD,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAE9E"}
1
+ {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/Stream/Stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,0BAAwB;AACxC,OAAO,EAAE,YAAY,EAAE,wCAAsC;AAC7D,OAAO,EAAE,OAAO,EAAE,8BAA4B;AAC9C,OAAO,KAAK,EAAE,oBAAkB;AAChC,OAAO,EAAE,SAAS,EAAE,kCAAgC;AACpD,OAAO,EAAE,IAAI,EAAE,wBAAsB;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO;IACnE,IAAI,CAAC,EAAE,GAAG,KAAK,EACb,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAClC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;CAC7B;AAGD,oBAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACrF,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAClF,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAGlF,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;CAAG;AACzD,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;CAAG;AACxD,MAAM,WAAW,EAAE,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;CAAG;AAEzD,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAE9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/Stream/Stream.ts"],"names":[],"mappings":"AAsDA,MAAM,UAAU,MAAM,CAAU,IAA6B;IAC3D,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/Stream/Stream.ts"],"names":[],"mappings":"AAgDA,MAAM,UAAU,MAAM,CAAU,IAA6B;IAC3D,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Stream } from './Stream.js';
2
+ import { FiberContext } from "../FiberContext/FiberContext.js";
3
+ import { Live } from "../FiberId/FiberId.js";
4
+ import * as Fx from "../Fx/Fx.js";
5
+ import { Scheduler } from "../Scheduler/index.js";
6
+ import * as Semaphore from "../Semaphore/index.js";
7
+ import { Sink } from "../Sink/Sink.js";
8
+ export declare function acquirePermit(semaphore: Semaphore.Semaphore): <R, E, A>(stream: Stream<R, E, A>) => Stream<R, E, A>;
9
+ export declare class AcquirePermitStream<R, E, A> implements Stream<R, E, A> {
10
+ readonly stream: Stream<R, E, A>;
11
+ readonly semaphore: Semaphore.Semaphore;
12
+ constructor(stream: Stream<R, E, A>, semaphore: Semaphore.Semaphore);
13
+ fork: <E2>(sink: Sink<E, A, E2>, scheduler: Scheduler, context: FiberContext<Live>) => Fx.Fx<R, never, import("../Fiber/Fiber.js").Fiber<E2, any>>;
14
+ }
15
+ //# sourceMappingURL=acquirePermit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquirePermit.d.ts","sourceRoot":"","sources":["../../src/Stream/acquirePermit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,YAAY,EAAE,wCAAsC;AAC7D,OAAO,EAAE,IAAI,EAAE,8BAA4B;AAC3C,OAAO,KAAK,EAAE,oBAAkB;AAChC,OAAO,EAAE,SAAS,EAAE,8BAA4B;AAChD,OAAO,KAAK,SAAS,8BAA4B;AACjD,OAAO,EAAE,IAAI,EAAE,wBAAsB;AAErC,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,yDAG3D;AAED,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAAhE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAW,SAAS,EAAE,SAAS,CAAC,SAAS;IAErF,IAAI,wCAAyC,SAAS,WAAW,aAAa,IAAI,CAAC,iEAWhF;CACJ"}
@@ -0,0 +1,15 @@
1
+ import { pipe } from 'hkt-ts/function';
2
+ import * as Fx from "../Fx/Fx.js";
3
+ export function acquirePermit(semaphore) {
4
+ return (stream) => new AcquirePermitStream(stream, semaphore);
5
+ }
6
+ export class AcquirePermitStream {
7
+ stream;
8
+ semaphore;
9
+ constructor(stream, semaphore) {
10
+ this.stream = stream;
11
+ this.semaphore = semaphore;
12
+ }
13
+ fork = (sink, scheduler, context) => pipe(this.semaphore.prepare, Fx.flatMap(({ acquire, release }) => pipe(acquire, Fx.uninterruptable, Fx.tapLazy(() => context.scope.ensuring(() => release)), Fx.flatMap(() => this.stream.fork(sink, scheduler, context)))));
14
+ }
15
+ //# sourceMappingURL=acquirePermit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquirePermit.js","sourceRoot":"","sources":["../../src/Stream/acquirePermit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAMtC,OAAO,KAAK,EAAE,oBAAkB;AAKhC,MAAM,UAAU,aAAa,CAAC,SAA8B;IAC1D,OAAO,CAAU,MAAuB,EAAmB,EAAE,CAC3D,IAAI,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,OAAO,mBAAmB;IACT;IAAkC;IAAvD,YAAqB,MAAuB,EAAW,SAA8B;QAAhE,WAAM,GAAN,MAAM,CAAiB;QAAW,cAAS,GAAT,SAAS,CAAqB;IAAG,CAAC;IAEzF,IAAI,GAAG,CAAK,IAAoB,EAAE,SAAoB,EAAE,OAA2B,EAAE,EAAE,CACrF,IAAI,CACF,IAAI,CAAC,SAAS,CAAC,OAAO,EACtB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,IAAI,CACF,OAAO,EACP,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EACvD,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAC7D,CACF,CACF,CAAA;CACJ"}
@@ -1,15 +1,44 @@
1
+ import { Maybe } from 'hkt-ts';
1
2
  import { Stream } from './Stream.js';
2
3
  import { FiberContext } from "../FiberContext/FiberContext.js";
3
4
  import { Live } from "../FiberId/FiberId.js";
4
5
  import { Scheduler } from "../Scheduler/Scheduler.js";
5
6
  import { Sink } from "../Sink/Sink.js";
6
- export declare function bimap<A, B, C, D>(f: (a: A) => B, g: (c: C) => D): <R>(stream: Stream<R, A, C>) => Stream<R, B, D>;
7
+ export declare function bimap<A, B, C, D>(f: (a: A) => B, g: (c: C) => D, __trace?: string): <R>(stream: Stream<R, A, C>) => Stream<R, B, D>;
7
8
  export declare class BimapStream<R, A, B, C, D> implements Stream<R, B, D> {
8
9
  readonly stream: Stream<R, A, C>;
9
10
  readonly f: (a: A) => B;
10
11
  readonly g: (c: C) => D;
11
- constructor(stream: Stream<R, A, C>, f: (a: A) => B, g: (c: C) => D);
12
- fork: <E2>(sink: Sink<B, D, E2>, scheduler: Scheduler, context: FiberContext<Live>) => import("../index.js").RIO<R, import("../Fiber/Fiber.js").Fiber<E2, any>>;
13
- static make<R, A, B, C, D>(stream: Stream<R, A, C>, f: (a: A) => B, g: (c: C) => D): Stream<R, B, D>;
12
+ readonly __trace?: string | undefined;
13
+ constructor(stream: Stream<R, A, C>, f: (a: A) => B, g: (c: C) => D, __trace?: string | undefined);
14
+ fork: <E>(sink: Sink<B, D, E>, scheduler: Scheduler, context: FiberContext<Live>) => import("../Fx/Fx.js").RIO<R, import("../Fiber/Fiber.js").Fiber<E, any>>;
15
+ static make<R, A, B, C, D>(stream: Stream<R, A, C>, f: (a: A) => B, g: (c: C) => D, __trace?: string): Stream<R, B, D>;
16
+ }
17
+ export declare function map<A, B>(f: (a: A) => B, __trace?: string): <R, E>(stream: Stream<R, E, A>) => Stream<R, E, B>;
18
+ export declare class MapStream<R, E, A, B> implements Stream<R, E, B> {
19
+ readonly stream: Stream<R, E, A>;
20
+ readonly f: (a: A) => B;
21
+ readonly __trace?: string | undefined;
22
+ constructor(stream: Stream<R, E, A>, f: (a: A) => B, __trace?: string | undefined);
23
+ fork<E2>(sink: Sink<E, B, E2>, scheduler: Scheduler, context: FiberContext<Live>): import("../Fx/Fx.js").RIO<R, import("../Fiber/Fiber.js").Fiber<E2, any>>;
24
+ static make<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) => B, __trace?: string): Stream<R, E, B>;
25
+ }
26
+ export declare function mapLeft<E1, E2>(f: (error: E1) => E2, __trace?: string): <R, A>(stream: Stream<R, E1, A>) => Stream<R, E2, A>;
27
+ export declare class MapLeftStream<R, E1, A, E2> implements Stream<R, E2, A> {
28
+ readonly stream: Stream<R, E1, A>;
29
+ readonly f: (error: E1) => E2;
30
+ readonly __trace?: string | undefined;
31
+ constructor(stream: Stream<R, E1, A>, f: (error: E1) => E2, __trace?: string | undefined);
32
+ fork<E3>(sink: Sink<E2, A, E3>, scheduler: Scheduler, context: FiberContext<Live>): import("../Fx/Fx.js").RIO<R, import("../Fiber/Fiber.js").Fiber<E3, any>>;
33
+ static make<R, E1, A, E2>(stream: Stream<R, E1, A>, f: (e: E1) => E2, __trace?: string): Stream<R, E2, A>;
34
+ }
35
+ export declare function filterMap<A, B>(f: (a: A) => Maybe.Maybe<B>, __trace?: string): <R, E>(stream: Stream<R, E, A>) => Stream<R, E, B>;
36
+ export declare class FilterMapStream<R, E, A, B> implements Stream<R, E, B> {
37
+ readonly stream: Stream<R, E, A>;
38
+ readonly f: (a: A) => Maybe.Maybe<B>;
39
+ readonly __trace?: string | undefined;
40
+ constructor(stream: Stream<R, E, A>, f: (a: A) => Maybe.Maybe<B>, __trace?: string | undefined);
41
+ fork<E2>(sink: Sink<E, B, E2>, scheduler: Scheduler, context: FiberContext<Live>): import("../Fx/Fx.js").RIO<R, import("../Fiber/Fiber.js").Fiber<E2, any>>;
42
+ static make<R, E, A, B>(stream: Stream<R, E, A>, f: (a: A) => Maybe.Maybe<B>, __trace?: string): Stream<R, E, B>;
14
43
  }
15
44
  //# sourceMappingURL=bimap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bimap.d.ts","sourceRoot":"","sources":["../../src/Stream/bimap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,OAAO,EAAE,YAAY,EAAE,wCAAsC;AAC7D,OAAO,EAAE,IAAI,EAAE,8BAA4B;AAC3C,OAAO,EAAE,SAAS,EAAE,kCAAgC;AACpD,OAAO,EAAE,IAAI,EAAE,wBAAsB;AAErC,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACd,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACb,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEjD;AAED,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;gBAAzE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAE9F,IAAI,wCAAyC,SAAS,WAAW,aAAa,IAAI,CAAC,8EAMlF;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACvB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACvB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACd,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACb,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAWnB"}
1
+ {"version":3,"file":"bimap.d.ts","sourceRoot":"","sources":["../../src/Stream/bimap.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,33 @@
1
- import { flow } from 'hkt-ts/function';
2
- import { MapStream } from './map.js';
1
+ import { Maybe } from 'hkt-ts';
2
+ import { flow, pipe } from 'hkt-ts/function';
3
3
  import * as Cause from "../Cause/index.js";
4
- export function bimap(f, g) {
5
- return (stream) => BimapStream.make(stream, f, g);
4
+ import { unit } from "../Fx/Fx.js";
5
+ import { addTrace } from "../Sink/Sink.js";
6
+ export function bimap(f, g, __trace) {
7
+ return (stream) => BimapStream.make(stream, f, g, __trace);
6
8
  }
7
9
  export class BimapStream {
8
10
  stream;
9
11
  f;
10
12
  g;
11
- constructor(stream, f, g) {
13
+ __trace;
14
+ constructor(stream, f, g, __trace) {
12
15
  this.stream = stream;
13
16
  this.f = f;
14
17
  this.g = g;
18
+ this.__trace = __trace;
15
19
  }
16
20
  fork = (sink, scheduler, context) => {
17
21
  return this.stream.fork(new BimapSink(sink, scheduler, context, this.f, this.g), scheduler, context);
18
22
  };
19
- static make(stream, f, g) {
23
+ static make(stream, f, g, __trace) {
20
24
  if (stream instanceof MapStream) {
21
- return BimapStream.make(stream.stream, f, flow(stream.f, g));
25
+ return BimapStream.make(stream.stream, f, flow(stream.f, g), __trace);
22
26
  }
23
27
  if (stream instanceof BimapStream) {
24
- return BimapStream.make(stream.stream, flow(stream.f, f), flow(stream.g, g));
28
+ return BimapStream.make(stream.stream, flow(stream.f, f), flow(stream.g, g), __trace);
25
29
  }
26
- return new BimapStream(stream, f, g);
30
+ return new BimapStream(stream, f, g, __trace);
27
31
  }
28
32
  }
29
33
  class BimapSink {
@@ -39,8 +43,95 @@ class BimapSink {
39
43
  this.f = f;
40
44
  this.g = g;
41
45
  }
42
- event = (c) => this.sink.event(this.g(c));
43
- error = (cause) => this.sink.error(Cause.map(this.f)(cause));
46
+ event = flow(this.g, this.sink.event);
47
+ error = flow(Cause.map(this.f), this.sink.error);
44
48
  end = this.sink.end;
45
49
  }
50
+ export function map(f, __trace) {
51
+ return (stream) => MapStream.make(stream, f, __trace);
52
+ }
53
+ export class MapStream {
54
+ stream;
55
+ f;
56
+ __trace;
57
+ constructor(stream, f, __trace) {
58
+ this.stream = stream;
59
+ this.f = f;
60
+ this.__trace = __trace;
61
+ }
62
+ fork(sink, scheduler, context) {
63
+ return this.stream.fork(addTrace({
64
+ ...sink,
65
+ event: flow(this.f, sink.event),
66
+ }, this.__trace), scheduler, context);
67
+ }
68
+ static make(stream, f, __trace) {
69
+ if (stream instanceof MapStream) {
70
+ return MapStream.make(stream.stream, flow(stream.f, f), __trace);
71
+ }
72
+ if (stream instanceof MapLeftStream) {
73
+ return BimapStream.make(stream.stream, stream.f, f, __trace);
74
+ }
75
+ if (stream instanceof FilterMapStream) {
76
+ return FilterMapStream.make(stream.stream, flow(stream.f, Maybe.map(f)), __trace);
77
+ }
78
+ return new MapStream(stream, f, __trace);
79
+ }
80
+ }
81
+ export function mapLeft(f, __trace) {
82
+ return (stream) => MapLeftStream.make(stream, f, __trace);
83
+ }
84
+ export class MapLeftStream {
85
+ stream;
86
+ f;
87
+ __trace;
88
+ constructor(stream, f, __trace) {
89
+ this.stream = stream;
90
+ this.f = f;
91
+ this.__trace = __trace;
92
+ }
93
+ fork(sink, scheduler, context) {
94
+ return this.stream.fork(addTrace({
95
+ ...sink,
96
+ error: flow(Cause.map(this.f), sink.error),
97
+ }, this.__trace), scheduler, context);
98
+ }
99
+ static make(stream, f, __trace) {
100
+ if (stream instanceof MapLeftStream) {
101
+ return MapLeftStream.make(stream.stream, flow(stream.f, f), __trace);
102
+ }
103
+ if (stream instanceof MapStream) {
104
+ return BimapStream.make(stream.stream, f, stream.f, __trace);
105
+ }
106
+ return new MapLeftStream(stream, f, __trace);
107
+ }
108
+ }
109
+ export function filterMap(f, __trace) {
110
+ return (stream) => FilterMapStream.make(stream, f, __trace);
111
+ }
112
+ export class FilterMapStream {
113
+ stream;
114
+ f;
115
+ __trace;
116
+ constructor(stream, f, __trace) {
117
+ this.stream = stream;
118
+ this.f = f;
119
+ this.__trace = __trace;
120
+ }
121
+ fork(sink, scheduler, context) {
122
+ return this.stream.fork(addTrace({
123
+ ...sink,
124
+ event: (a) => pipe(a, this.f, Maybe.match(() => unit, sink.event)),
125
+ }, this.__trace), scheduler, context);
126
+ }
127
+ static make(stream, f, __trace) {
128
+ if (stream instanceof MapStream) {
129
+ return FilterMapStream.make(stream.stream, flow(stream.f, f), __trace);
130
+ }
131
+ if (stream instanceof FilterMapStream) {
132
+ return FilterMapStream.make(stream.stream, flow(stream.f, Maybe.flatMap(f)), __trace);
133
+ }
134
+ return new FilterMapStream(stream, f, __trace);
135
+ }
136
+ }
46
137
  //# sourceMappingURL=bimap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bimap.js","sourceRoot":"","sources":["../../src/Stream/bimap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,OAAO,KAAK,KAAK,0BAAwB;AAMzC,MAAM,UAAU,KAAK,CACnB,CAAc,EACd,CAAc;IAEd,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,OAAO,WAAW;IACD;IAAkC;IAAyB;IAAhF,YAAqB,MAAuB,EAAW,CAAc,EAAW,CAAc;QAAzE,WAAM,GAAN,MAAM,CAAiB;QAAW,MAAC,GAAD,CAAC,CAAa;QAAW,MAAC,GAAD,CAAC,CAAa;IAAG,CAAC;IAElG,IAAI,GAAG,CAAK,IAAoB,EAAE,SAAoB,EAAE,OAA2B,EAAE,EAAE;QACrF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,IAAI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACvD,SAAS,EACT,OAAO,CACR,CAAA;IACH,CAAC,CAAA;IAED,MAAM,CAAC,IAAI,CACT,MAAuB,EACvB,CAAc,EACd,CAAc;QAEd,IAAI,MAAM,YAAY,SAAS,EAAE;YAC/B,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC7D;QAED,IAAI,MAAM,YAAY,WAAW,EAAE;YACjC,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC7E;QAED,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;CACF;AAED,MAAM,SAAS;IAEF;IACA;IACA;IACA;IACA;IALX,YACW,IAAmB,EACnB,SAAoB,EACpB,OAA2B,EAC3B,CAAc,EACd,CAAc;QAJd,SAAI,GAAJ,IAAI,CAAe;QACnB,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAoB;QAC3B,MAAC,GAAD,CAAC,CAAa;QACd,MAAC,GAAD,CAAC,CAAa;IACtB,CAAC;IAEJ,KAAK,GAAG,CAAC,CAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,KAAK,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5E,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;CACpB"}
1
+ {"version":3,"file":"bimap.js","sourceRoot":"","sources":["../../src/Stream/bimap.ts"],"names":[],"mappings":"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"}