@typed/fx 2.0.0-beta.3 → 2.0.0-beta.5

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 (663) hide show
  1. package/README.md +34 -20
  2. package/dist/Fx/Fx.d.ts +364 -12
  3. package/dist/Fx/Fx.d.ts.map +1 -1
  4. package/dist/Fx/Fx.js +37 -6
  5. package/dist/Fx/TypeId.d.ts +49 -3
  6. package/dist/Fx/TypeId.d.ts.map +1 -1
  7. package/dist/Fx/TypeId.js +39 -2
  8. package/dist/Fx/combinators/additive.d.ts +156 -5
  9. package/dist/Fx/combinators/additive.d.ts.map +1 -1
  10. package/dist/Fx/combinators/additive.js +156 -5
  11. package/dist/Fx/combinators/catch.d.ts +195 -22
  12. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  13. package/dist/Fx/combinators/catch.js +186 -16
  14. package/dist/Fx/combinators/causes.d.ts +24 -1
  15. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  16. package/dist/Fx/combinators/causes.js +24 -1
  17. package/dist/Fx/combinators/changesWithEffect.d.ts +20 -0
  18. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -1
  19. package/dist/Fx/combinators/changesWithEffect.js +20 -0
  20. package/dist/Fx/combinators/compact.d.ts +17 -0
  21. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  22. package/dist/Fx/combinators/compact.js +17 -0
  23. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  24. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  25. package/dist/Fx/combinators/concatMap.js +86 -0
  26. package/dist/Fx/combinators/continueWith.d.ts +109 -1
  27. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  28. package/dist/Fx/combinators/continueWith.js +109 -1
  29. package/dist/Fx/combinators/debounce.d.ts +34 -0
  30. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  31. package/dist/Fx/combinators/debounce.js +35 -0
  32. package/dist/Fx/combinators/delay.d.ts +34 -0
  33. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  34. package/dist/Fx/combinators/delay.js +31 -0
  35. package/dist/Fx/combinators/dropUntil.d.ts +42 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -1
  37. package/dist/Fx/combinators/dropUntil.js +42 -0
  38. package/dist/Fx/combinators/during.d.ts +38 -0
  39. package/dist/Fx/combinators/during.d.ts.map +1 -0
  40. package/dist/Fx/combinators/during.js +85 -0
  41. package/dist/Fx/combinators/ensuring.d.ts +33 -3
  42. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  43. package/dist/Fx/combinators/ensuring.js +33 -3
  44. package/dist/Fx/combinators/exhaustLatestMap.d.ts +40 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  46. package/dist/Fx/combinators/exhaustLatestMap.js +40 -4
  47. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +39 -3
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.js +39 -3
  50. package/dist/Fx/combinators/exhaustMap.d.ts +37 -0
  51. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  52. package/dist/Fx/combinators/exhaustMap.js +37 -0
  53. package/dist/Fx/combinators/exhaustMapEffect.d.ts +32 -0
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.js +32 -0
  56. package/dist/Fx/combinators/exit.d.ts +22 -1
  57. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  58. package/dist/Fx/combinators/exit.js +22 -1
  59. package/dist/Fx/combinators/filter.d.ts +16 -0
  60. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  61. package/dist/Fx/combinators/filter.js +16 -0
  62. package/dist/Fx/combinators/filterEffect.d.ts +21 -0
  63. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  64. package/dist/Fx/combinators/filterEffect.js +21 -0
  65. package/dist/Fx/combinators/filterMap.d.ts +19 -0
  66. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  67. package/dist/Fx/combinators/filterMap.js +19 -0
  68. package/dist/Fx/combinators/filterMapEffect.d.ts +20 -0
  69. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  70. package/dist/Fx/combinators/filterMapEffect.js +20 -0
  71. package/dist/Fx/combinators/filterMapLoop.d.ts +19 -0
  72. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  73. package/dist/Fx/combinators/filterMapLoop.js +19 -0
  74. package/dist/Fx/combinators/filterMapLoopCause.d.ts +20 -0
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.js +20 -0
  77. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +20 -0
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +20 -0
  80. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +20 -0
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.js +20 -0
  83. package/dist/Fx/combinators/flatMap.d.ts +48 -3
  84. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  85. package/dist/Fx/combinators/flatMap.js +35 -2
  86. package/dist/Fx/combinators/flatMapConcurrently.d.ts +50 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  88. package/dist/Fx/combinators/flatMapConcurrently.js +47 -1
  89. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +47 -3
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +39 -1
  92. package/dist/Fx/combinators/flatMapEffect.d.ts +44 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  94. package/dist/Fx/combinators/flatMapEffect.js +31 -1
  95. package/dist/Fx/combinators/flip.d.ts +33 -1
  96. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  97. package/dist/Fx/combinators/flip.js +33 -1
  98. package/dist/Fx/combinators/gen.d.ts +28 -9
  99. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  100. package/dist/Fx/combinators/gen.js +27 -3
  101. package/dist/Fx/combinators/genScoped.d.ts +32 -9
  102. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  103. package/dist/Fx/combinators/genScoped.js +30 -2
  104. package/dist/Fx/combinators/grouped.d.ts +89 -0
  105. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  106. package/dist/Fx/combinators/grouped.js +146 -0
  107. package/dist/Fx/combinators/index.d.ts +35 -0
  108. package/dist/Fx/combinators/index.d.ts.map +1 -1
  109. package/dist/Fx/combinators/index.js +35 -0
  110. package/dist/Fx/combinators/keyed.d.ts +121 -7
  111. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  112. package/dist/Fx/combinators/keyed.js +68 -10
  113. package/dist/Fx/combinators/loop.d.ts +16 -0
  114. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  115. package/dist/Fx/combinators/loop.js +16 -0
  116. package/dist/Fx/combinators/loopCause.d.ts +17 -0
  117. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  118. package/dist/Fx/combinators/loopCause.js +17 -0
  119. package/dist/Fx/combinators/loopCauseEffect.d.ts +18 -0
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  121. package/dist/Fx/combinators/loopCauseEffect.js +18 -0
  122. package/dist/Fx/combinators/loopEffect.d.ts +23 -0
  123. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  124. package/dist/Fx/combinators/loopEffect.js +23 -0
  125. package/dist/Fx/combinators/map.d.ts +45 -0
  126. package/dist/Fx/combinators/map.d.ts.map +1 -1
  127. package/dist/Fx/combinators/map.js +42 -0
  128. package/dist/Fx/combinators/mapBoth.d.ts +19 -0
  129. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -1
  130. package/dist/Fx/combinators/mapBoth.js +19 -0
  131. package/dist/Fx/combinators/mapEffect.d.ts +24 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  133. package/dist/Fx/combinators/mapEffect.js +24 -0
  134. package/dist/Fx/combinators/mapError.d.ts +20 -4
  135. package/dist/Fx/combinators/mapError.d.ts.map +1 -1
  136. package/dist/Fx/combinators/mapError.js +20 -4
  137. package/dist/Fx/combinators/mergeAll.d.ts +34 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  139. package/dist/Fx/combinators/mergeAll.js +34 -0
  140. package/dist/Fx/combinators/mergeOrdered.d.ts +35 -3
  141. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  142. package/dist/Fx/combinators/mergeOrdered.js +35 -3
  143. package/dist/Fx/combinators/onError.d.ts +33 -3
  144. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  145. package/dist/Fx/combinators/onError.js +33 -3
  146. package/dist/Fx/combinators/onExit.d.ts +28 -2
  147. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  148. package/dist/Fx/combinators/onExit.js +28 -2
  149. package/dist/Fx/combinators/onInterrupt.d.ts +48 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  151. package/dist/Fx/combinators/onInterrupt.js +48 -3
  152. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  153. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  154. package/dist/Fx/combinators/pairwise.js +31 -0
  155. package/dist/Fx/combinators/provide.d.ts +138 -17
  156. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  157. package/dist/Fx/combinators/provide.js +134 -13
  158. package/dist/Fx/combinators/race.d.ts +92 -0
  159. package/dist/Fx/combinators/race.d.ts.map +1 -0
  160. package/dist/Fx/combinators/race.js +149 -0
  161. package/dist/Fx/combinators/repeat.d.ts +41 -0
  162. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  163. package/dist/Fx/combinators/repeat.js +57 -0
  164. package/dist/Fx/combinators/result.d.ts +22 -0
  165. package/dist/Fx/combinators/result.d.ts.map +1 -1
  166. package/dist/Fx/combinators/result.js +26 -12
  167. package/dist/Fx/combinators/retry.d.ts +53 -0
  168. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  169. package/dist/Fx/combinators/retry.js +71 -0
  170. package/dist/Fx/combinators/sample.d.ts +31 -0
  171. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  172. package/dist/Fx/combinators/sample.js +42 -0
  173. package/dist/Fx/combinators/scan.d.ts +39 -0
  174. package/dist/Fx/combinators/scan.d.ts.map +1 -1
  175. package/dist/Fx/combinators/scan.js +41 -2
  176. package/dist/Fx/combinators/since.d.ts +30 -0
  177. package/dist/Fx/combinators/since.d.ts.map +1 -0
  178. package/dist/Fx/combinators/since.js +39 -0
  179. package/dist/Fx/combinators/skip.d.ts +31 -0
  180. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  181. package/dist/Fx/combinators/skip.js +31 -0
  182. package/dist/Fx/combinators/skipRepeats.d.ts +16 -0
  183. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  184. package/dist/Fx/combinators/skipRepeats.js +16 -0
  185. package/dist/Fx/combinators/skipRepeatsWith.d.ts +17 -0
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.js +17 -0
  188. package/dist/Fx/combinators/skipWhile.d.ts +68 -0
  189. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -1
  190. package/dist/Fx/combinators/skipWhile.js +68 -0
  191. package/dist/Fx/combinators/slice.d.ts +82 -0
  192. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  193. package/dist/Fx/combinators/slice.js +33 -0
  194. package/dist/Fx/combinators/switchMap.d.ts +38 -0
  195. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  196. package/dist/Fx/combinators/switchMap.js +42 -4
  197. package/dist/Fx/combinators/switchMapEffect.d.ts +37 -0
  198. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  199. package/dist/Fx/combinators/switchMapEffect.js +37 -0
  200. package/dist/Fx/combinators/take.d.ts +32 -0
  201. package/dist/Fx/combinators/take.d.ts.map +1 -1
  202. package/dist/Fx/combinators/take.js +32 -0
  203. package/dist/Fx/combinators/takeUntil.d.ts +46 -0
  204. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  205. package/dist/Fx/combinators/takeUntil.js +46 -0
  206. package/dist/Fx/combinators/takeWhile.d.ts +31 -0
  207. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -1
  208. package/dist/Fx/combinators/takeWhile.js +31 -0
  209. package/dist/Fx/combinators/tapEffect.d.ts +16 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  211. package/dist/Fx/combinators/tapEffect.js +16 -0
  212. package/dist/Fx/combinators/throttle.d.ts +79 -0
  213. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  214. package/dist/Fx/combinators/throttle.js +99 -0
  215. package/dist/Fx/combinators/timeout.d.ts +76 -0
  216. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  217. package/dist/Fx/combinators/timeout.js +110 -0
  218. package/dist/Fx/combinators/tuple.d.ts +30 -0
  219. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  220. package/dist/Fx/combinators/tuple.js +34 -3
  221. package/dist/Fx/combinators/until.d.ts +27 -0
  222. package/dist/Fx/combinators/until.d.ts.map +1 -0
  223. package/dist/Fx/combinators/until.js +56 -0
  224. package/dist/Fx/combinators/unwrap.d.ts +29 -0
  225. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  226. package/dist/Fx/combinators/unwrap.js +29 -0
  227. package/dist/Fx/combinators/unwrapScoped.d.ts +33 -0
  228. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  229. package/dist/Fx/combinators/unwrapScoped.js +33 -0
  230. package/dist/Fx/combinators/when.d.ts +35 -0
  231. package/dist/Fx/combinators/when.d.ts.map +1 -1
  232. package/dist/Fx/combinators/when.js +36 -1
  233. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  234. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  235. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  236. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  237. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  238. package/dist/Fx/combinators/withSpan.js +34 -3
  239. package/dist/Fx/combinators/zip.d.ts +60 -0
  240. package/dist/Fx/combinators/zip.d.ts.map +1 -1
  241. package/dist/Fx/combinators/zip.js +60 -0
  242. package/dist/Fx/constructors/at.d.ts +20 -0
  243. package/dist/Fx/constructors/at.d.ts.map +1 -1
  244. package/dist/Fx/constructors/at.js +20 -0
  245. package/dist/Fx/constructors/die.d.ts +21 -0
  246. package/dist/Fx/constructors/die.d.ts.map +1 -1
  247. package/dist/Fx/constructors/die.js +21 -0
  248. package/dist/Fx/constructors/empty.d.ts +18 -0
  249. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  250. package/dist/Fx/constructors/empty.js +18 -0
  251. package/dist/Fx/constructors/fail.d.ts +21 -0
  252. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  253. package/dist/Fx/constructors/fail.js +21 -0
  254. package/dist/Fx/constructors/failCause.d.ts +22 -0
  255. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  256. package/dist/Fx/constructors/failCause.js +22 -0
  257. package/dist/Fx/constructors/fn.d.ts +113 -13
  258. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  259. package/dist/Fx/constructors/fn.js +36 -0
  260. package/dist/Fx/constructors/fromEffect.d.ts +43 -1
  261. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  262. package/dist/Fx/constructors/fromEffect.js +43 -1
  263. package/dist/Fx/constructors/fromFailures.d.ts +24 -0
  264. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  265. package/dist/Fx/constructors/fromFailures.js +24 -0
  266. package/dist/Fx/constructors/fromIterable.d.ts +22 -0
  267. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  268. package/dist/Fx/constructors/fromIterable.js +22 -0
  269. package/dist/Fx/constructors/fromSchedule.d.ts +23 -0
  270. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  271. package/dist/Fx/constructors/fromSchedule.js +25 -2
  272. package/dist/Fx/constructors/index.d.ts +2 -1
  273. package/dist/Fx/constructors/index.d.ts.map +1 -1
  274. package/dist/Fx/constructors/index.js +2 -1
  275. package/dist/Fx/constructors/interrupt.d.ts +21 -1
  276. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  277. package/dist/Fx/constructors/interrupt.js +21 -1
  278. package/dist/Fx/constructors/make.d.ts +146 -1
  279. package/dist/Fx/constructors/make.d.ts.map +1 -1
  280. package/dist/Fx/constructors/make.js +56 -5
  281. package/dist/Fx/constructors/periodic.d.ts +29 -0
  282. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  283. package/dist/Fx/constructors/periodic.js +29 -0
  284. package/dist/Fx/constructors/succeed.d.ts +75 -3
  285. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  286. package/dist/Fx/constructors/succeed.js +75 -3
  287. package/dist/Fx/constructors/suspend.d.ts +28 -0
  288. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  289. package/dist/Fx/constructors/suspend.js +28 -0
  290. package/dist/Fx/constructors/sync.d.ts +32 -0
  291. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  292. package/dist/Fx/constructors/sync.js +32 -0
  293. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  294. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  295. package/dist/Fx/internal/DeferredRef.js +260 -9
  296. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  297. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  298. package/dist/Fx/internal/diff.d.ts +586 -0
  299. package/dist/Fx/internal/diff.d.ts.map +1 -1
  300. package/dist/Fx/internal/diff.js +120 -9
  301. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  304. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  306. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  307. package/dist/Fx/internal/equivalence.d.ts +29 -0
  308. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  309. package/dist/Fx/internal/equivalence.js +29 -0
  310. package/dist/Fx/internal/multicast.d.ts +145 -2
  311. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  312. package/dist/Fx/internal/multicast.js +146 -4
  313. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  314. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  315. package/dist/Fx/internal/ring-buffer.js +155 -0
  316. package/dist/Fx/internal/scope.d.ts +184 -0
  317. package/dist/Fx/internal/scope.d.ts.map +1 -1
  318. package/dist/Fx/internal/scope.js +150 -0
  319. package/dist/Fx/internal/yieldable.d.ts +117 -2
  320. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  321. package/dist/Fx/internal/yieldable.js +86 -3
  322. package/dist/Fx/run/collect.d.ts +89 -0
  323. package/dist/Fx/run/collect.d.ts.map +1 -1
  324. package/dist/Fx/run/collect.js +90 -1
  325. package/dist/Fx/run/first.d.ts +22 -0
  326. package/dist/Fx/run/first.d.ts.map +1 -1
  327. package/dist/Fx/run/first.js +22 -0
  328. package/dist/Fx/run/fork.d.ts +50 -0
  329. package/dist/Fx/run/fork.d.ts.map +1 -1
  330. package/dist/Fx/run/fork.js +50 -0
  331. package/dist/Fx/run/observe.d.ts +106 -0
  332. package/dist/Fx/run/observe.d.ts.map +1 -1
  333. package/dist/Fx/run/observe.js +108 -2
  334. package/dist/Fx/run/runPromise.d.ts +43 -0
  335. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  336. package/dist/Fx/run/runPromise.js +43 -0
  337. package/dist/Fx/stream.d.ts +92 -0
  338. package/dist/Fx/stream.d.ts.map +1 -1
  339. package/dist/Fx/stream.js +60 -1
  340. package/dist/Push/Push.d.ts +1219 -94
  341. package/dist/Push/Push.d.ts.map +1 -1
  342. package/dist/Push/Push.js +1015 -86
  343. package/dist/RefArray.d.ts +2 -0
  344. package/dist/RefArray.d.ts.map +1 -0
  345. package/dist/RefArray.js +1 -0
  346. package/dist/RefBigDecimal.d.ts +2 -0
  347. package/dist/RefBigDecimal.d.ts.map +1 -0
  348. package/dist/RefBigDecimal.js +1 -0
  349. package/dist/RefBigInt.d.ts +2 -0
  350. package/dist/RefBigInt.d.ts.map +1 -0
  351. package/dist/RefBigInt.js +1 -0
  352. package/dist/RefBoolean.d.ts +2 -0
  353. package/dist/RefBoolean.d.ts.map +1 -0
  354. package/dist/RefBoolean.js +1 -0
  355. package/dist/RefCause.d.ts +2 -0
  356. package/dist/RefCause.d.ts.map +1 -0
  357. package/dist/RefCause.js +1 -0
  358. package/dist/RefChunk.d.ts +2 -0
  359. package/dist/RefChunk.d.ts.map +1 -0
  360. package/dist/RefChunk.js +1 -0
  361. package/dist/RefDateTime.d.ts +2 -0
  362. package/dist/RefDateTime.d.ts.map +1 -0
  363. package/dist/RefDateTime.js +1 -0
  364. package/dist/RefDuration.d.ts +2 -0
  365. package/dist/RefDuration.d.ts.map +1 -0
  366. package/dist/RefDuration.js +1 -0
  367. package/dist/RefGraph.d.ts +2 -0
  368. package/dist/RefGraph.d.ts.map +1 -0
  369. package/dist/RefGraph.js +1 -0
  370. package/dist/RefHashMap.d.ts +2 -0
  371. package/dist/RefHashMap.d.ts.map +1 -0
  372. package/dist/RefHashMap.js +1 -0
  373. package/dist/RefHashRing.d.ts +2 -0
  374. package/dist/RefHashRing.d.ts.map +1 -0
  375. package/dist/RefHashRing.js +1 -0
  376. package/dist/RefHashSet.d.ts +2 -0
  377. package/dist/RefHashSet.d.ts.map +1 -0
  378. package/dist/RefHashSet.js +1 -0
  379. package/dist/RefIterable.d.ts +2 -0
  380. package/dist/RefIterable.d.ts.map +1 -0
  381. package/dist/RefIterable.js +1 -0
  382. package/dist/RefOption.d.ts +2 -0
  383. package/dist/RefOption.d.ts.map +1 -0
  384. package/dist/RefOption.js +1 -0
  385. package/dist/RefRecord.d.ts +2 -0
  386. package/dist/RefRecord.d.ts.map +1 -0
  387. package/dist/RefRecord.js +1 -0
  388. package/dist/RefResult.d.ts +2 -0
  389. package/dist/RefResult.d.ts.map +1 -0
  390. package/dist/RefResult.js +1 -0
  391. package/dist/RefString.d.ts +2 -0
  392. package/dist/RefString.d.ts.map +1 -0
  393. package/dist/RefString.js +1 -0
  394. package/dist/RefStruct.d.ts +2 -0
  395. package/dist/RefStruct.d.ts.map +1 -0
  396. package/dist/RefStruct.js +1 -0
  397. package/dist/RefSubject/Hydration.d.ts +504 -0
  398. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  399. package/dist/RefSubject/Hydration.js +300 -0
  400. package/dist/RefSubject/RefArray.d.ts +351 -4
  401. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  402. package/dist/RefSubject/RefArray.js +339 -3
  403. package/dist/RefSubject/RefBigDecimal.d.ts +221 -1
  404. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  405. package/dist/RefSubject/RefBigDecimal.js +210 -1
  406. package/dist/RefSubject/RefBigInt.d.ts +166 -1
  407. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  408. package/dist/RefSubject/RefBigInt.js +155 -1
  409. package/dist/RefSubject/RefBoolean.d.ts +166 -1
  410. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  411. package/dist/RefSubject/RefBoolean.js +155 -1
  412. package/dist/RefSubject/RefCause.d.ts +122 -1
  413. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  414. package/dist/RefSubject/RefCause.js +111 -1
  415. package/dist/RefSubject/RefChunk.d.ts +406 -1
  416. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  417. package/dist/RefSubject/RefChunk.js +394 -0
  418. package/dist/RefSubject/RefDateTime.d.ts +122 -1
  419. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  420. package/dist/RefSubject/RefDateTime.js +111 -1
  421. package/dist/RefSubject/RefDuration.d.ts +155 -1
  422. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  423. package/dist/RefSubject/RefDuration.js +144 -1
  424. package/dist/RefSubject/RefGraph.d.ts +320 -6
  425. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  426. package/dist/RefSubject/RefGraph.js +303 -0
  427. package/dist/RefSubject/RefHashMap.d.ts +296 -1
  428. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  429. package/dist/RefSubject/RefHashMap.js +284 -0
  430. package/dist/RefSubject/RefHashRing.d.ts +146 -2
  431. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  432. package/dist/RefSubject/RefHashRing.js +133 -0
  433. package/dist/RefSubject/RefHashSet.d.ts +230 -1
  434. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  435. package/dist/RefSubject/RefHashSet.js +218 -0
  436. package/dist/RefSubject/RefIterable.d.ts +327 -1
  437. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  438. package/dist/RefSubject/RefIterable.js +315 -0
  439. package/dist/RefSubject/RefOption.d.ts +144 -1
  440. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  441. package/dist/RefSubject/RefOption.js +133 -1
  442. package/dist/RefSubject/RefRecord.d.ts +339 -1
  443. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  444. package/dist/RefSubject/RefRecord.js +327 -0
  445. package/dist/RefSubject/RefResult.d.ts +155 -23
  446. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  447. package/dist/RefSubject/RefResult.js +122 -1
  448. package/dist/RefSubject/RefString.d.ts +188 -1
  449. package/dist/RefSubject/RefString.d.ts.map +1 -1
  450. package/dist/RefSubject/RefString.js +177 -1
  451. package/dist/RefSubject/RefStruct.d.ts +156 -1
  452. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  453. package/dist/RefSubject/RefStruct.js +145 -1
  454. package/dist/RefSubject/RefSubject.d.ts +1168 -15
  455. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  456. package/dist/RefSubject/RefSubject.js +850 -58
  457. package/dist/RefSubject/RefTrie.d.ts +290 -4
  458. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  459. package/dist/RefSubject/RefTrie.js +278 -3
  460. package/dist/RefSubject/RefTuple.d.ts +117 -1
  461. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  462. package/dist/RefSubject/RefTuple.js +106 -1
  463. package/dist/RefSubject/index.d.ts +1 -0
  464. package/dist/RefSubject/index.d.ts.map +1 -1
  465. package/dist/RefSubject/index.js +1 -0
  466. package/dist/RefSubject.d.ts +2 -1
  467. package/dist/RefSubject.d.ts.map +1 -1
  468. package/dist/RefSubject.js +2 -1
  469. package/dist/RefTrie.d.ts +2 -0
  470. package/dist/RefTrie.d.ts.map +1 -0
  471. package/dist/RefTrie.js +1 -0
  472. package/dist/RefTuple.d.ts +2 -0
  473. package/dist/RefTuple.d.ts.map +1 -0
  474. package/dist/RefTuple.js +1 -0
  475. package/dist/Sink/Sink.d.ts +385 -14
  476. package/dist/Sink/Sink.d.ts.map +1 -1
  477. package/dist/Sink/Sink.js +53 -6
  478. package/dist/Sink/combinators.d.ts +731 -2
  479. package/dist/Sink/combinators.d.ts.map +1 -1
  480. package/dist/Sink/combinators.js +707 -5
  481. package/dist/Subject/Subject.d.ts +1016 -22
  482. package/dist/Subject/Subject.d.ts.map +1 -1
  483. package/dist/Subject/Subject.js +904 -39
  484. package/dist/Versioned/Versioned.d.ts +426 -9
  485. package/dist/Versioned/Versioned.d.ts.map +1 -1
  486. package/dist/Versioned/Versioned.js +241 -15
  487. package/dist/index.d.ts +22 -3
  488. package/dist/index.d.ts.map +1 -1
  489. package/dist/index.js +22 -3
  490. package/package.json +120 -11
  491. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  492. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  493. package/dist/Fx/constructors/fromYieldable.js +0 -12
  494. package/src/Fx/Fx.ts +0 -164
  495. package/src/Fx/TypeId.ts +0 -25
  496. package/src/Fx/combinators/additive.ts +0 -142
  497. package/src/Fx/combinators/catch.ts +0 -416
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/changesWithEffect.ts +0 -66
  500. package/src/Fx/combinators/compact.ts +0 -15
  501. package/src/Fx/combinators/continueWith.ts +0 -78
  502. package/src/Fx/combinators/dropUntil.ts +0 -47
  503. package/src/Fx/combinators/ensuring.ts +0 -23
  504. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  505. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  506. package/src/Fx/combinators/exhaustMap.ts +0 -36
  507. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  508. package/src/Fx/combinators/exit.ts +0 -15
  509. package/src/Fx/combinators/filter.ts +0 -22
  510. package/src/Fx/combinators/filterEffect.ts +0 -31
  511. package/src/Fx/combinators/filterMap.ts +0 -23
  512. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  513. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  514. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  515. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  516. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  517. package/src/Fx/combinators/flatMap.ts +0 -51
  518. package/src/Fx/combinators/flatMapConcurrently.ts +0 -39
  519. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  520. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  521. package/src/Fx/combinators/flip.ts +0 -14
  522. package/src/Fx/combinators/gen.ts +0 -24
  523. package/src/Fx/combinators/genScoped.ts +0 -24
  524. package/src/Fx/combinators/index.ts +0 -61
  525. package/src/Fx/combinators/keyed.ts +0 -369
  526. package/src/Fx/combinators/loop.ts +0 -27
  527. package/src/Fx/combinators/loopCause.ts +0 -34
  528. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  529. package/src/Fx/combinators/loopEffect.ts +0 -34
  530. package/src/Fx/combinators/map.ts +0 -22
  531. package/src/Fx/combinators/mapBoth.ts +0 -40
  532. package/src/Fx/combinators/mapEffect.ts +0 -32
  533. package/src/Fx/combinators/mapError.ts +0 -28
  534. package/src/Fx/combinators/mergeAll.ts +0 -22
  535. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  536. package/src/Fx/combinators/onError.ts +0 -40
  537. package/src/Fx/combinators/onExit.ts +0 -82
  538. package/src/Fx/combinators/onInterrupt.ts +0 -87
  539. package/src/Fx/combinators/provide.ts +0 -124
  540. package/src/Fx/combinators/result.ts +0 -39
  541. package/src/Fx/combinators/scan.ts +0 -82
  542. package/src/Fx/combinators/skip.ts +0 -41
  543. package/src/Fx/combinators/skipRepeats.ts +0 -15
  544. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  545. package/src/Fx/combinators/skipWhile.ts +0 -100
  546. package/src/Fx/combinators/slice.ts +0 -55
  547. package/src/Fx/combinators/switchMap.ts +0 -55
  548. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  549. package/src/Fx/combinators/take.ts +0 -38
  550. package/src/Fx/combinators/takeUntil.ts +0 -88
  551. package/src/Fx/combinators/takeWhile.ts +0 -47
  552. package/src/Fx/combinators/tapEffect.ts +0 -39
  553. package/src/Fx/combinators/tuple.ts +0 -79
  554. package/src/Fx/combinators/unwrap.ts +0 -21
  555. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  556. package/src/Fx/combinators/when.ts +0 -64
  557. package/src/Fx/combinators/withSpan.ts +0 -24
  558. package/src/Fx/combinators/zip.ts +0 -175
  559. package/src/Fx/constructors/at.ts +0 -23
  560. package/src/Fx/constructors/die.ts +0 -17
  561. package/src/Fx/constructors/empty.ts +0 -10
  562. package/src/Fx/constructors/fail.ts +0 -14
  563. package/src/Fx/constructors/failCause.ts +0 -14
  564. package/src/Fx/constructors/fn.ts +0 -245
  565. package/src/Fx/constructors/fromEffect.ts +0 -24
  566. package/src/Fx/constructors/fromFailures.ts +0 -19
  567. package/src/Fx/constructors/fromIterable.ts +0 -15
  568. package/src/Fx/constructors/fromSchedule.ts +0 -18
  569. package/src/Fx/constructors/fromYieldable.ts +0 -17
  570. package/src/Fx/constructors/index.ts +0 -15
  571. package/src/Fx/constructors/interrupt.ts +0 -13
  572. package/src/Fx/constructors/make.ts +0 -103
  573. package/src/Fx/constructors/periodic.ts +0 -15
  574. package/src/Fx/constructors/succeed.ts +0 -37
  575. package/src/Fx/constructors/suspend.ts +0 -6
  576. package/src/Fx/index.ts +0 -6
  577. package/src/Fx/internal/DeferredRef.ts +0 -87
  578. package/src/Fx/internal/UnionToTuple.ts +0 -12
  579. package/src/Fx/internal/diff.ts +0 -191
  580. package/src/Fx/internal/equivalence.ts +0 -12
  581. package/src/Fx/internal/multicast.ts +0 -51
  582. package/src/Fx/internal/ring-buffer.ts +0 -60
  583. package/src/Fx/internal/scope.ts +0 -58
  584. package/src/Fx/internal/yieldable.ts +0 -31
  585. package/src/Fx/run/collect.ts +0 -79
  586. package/src/Fx/run/first.ts +0 -20
  587. package/src/Fx/run/fork.ts +0 -40
  588. package/src/Fx/run/index.ts +0 -5
  589. package/src/Fx/run/observe.ts +0 -114
  590. package/src/Fx/run/runPromise.ts +0 -32
  591. package/src/Fx/stream.ts +0 -42
  592. package/src/Fx.additive-combinators.test.ts +0 -126
  593. package/src/Fx.catch-additive.test.ts +0 -206
  594. package/src/Fx.catch.test.ts +0 -60
  595. package/src/Fx.dropUntil.test.ts +0 -61
  596. package/src/Fx.fn.test.ts +0 -51
  597. package/src/Fx.lifecycle.test.ts +0 -79
  598. package/src/Fx.mapError-mapBoth.test.ts +0 -101
  599. package/src/Fx.provide-combinators.test.ts +0 -94
  600. package/src/Fx.result-changesWithEffect.test.ts +0 -112
  601. package/src/Fx.scan.test.ts +0 -73
  602. package/src/Fx.takeWhile-skipWhile.test.ts +0 -84
  603. package/src/Fx.test.ts +0 -71
  604. package/src/Fx.ts +0 -1
  605. package/src/Fx.zip-merge-additive.test.ts +0 -171
  606. package/src/Fx.zip.test.ts +0 -133
  607. package/src/Push/Push.ts +0 -1072
  608. package/src/Push/index.ts +0 -1
  609. package/src/Push.additive.test.ts +0 -256
  610. package/src/Push.test.ts +0 -26
  611. package/src/Push.ts +0 -1
  612. package/src/RefSubject/RefArray.ts +0 -516
  613. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  614. package/src/RefSubject/RefBigDecimal.ts +0 -295
  615. package/src/RefSubject/RefBigInt.test.ts +0 -56
  616. package/src/RefSubject/RefBigInt.ts +0 -189
  617. package/src/RefSubject/RefBoolean.test.ts +0 -57
  618. package/src/RefSubject/RefBoolean.ts +0 -185
  619. package/src/RefSubject/RefCause.test.ts +0 -53
  620. package/src/RefSubject/RefCause.ts +0 -146
  621. package/src/RefSubject/RefChunk.ts +0 -516
  622. package/src/RefSubject/RefDateTime.test.ts +0 -43
  623. package/src/RefSubject/RefDateTime.ts +0 -261
  624. package/src/RefSubject/RefDuration.test.ts +0 -49
  625. package/src/RefSubject/RefDuration.ts +0 -188
  626. package/src/RefSubject/RefGraph.ts +0 -649
  627. package/src/RefSubject/RefHashMap.ts +0 -474
  628. package/src/RefSubject/RefHashRing.ts +0 -262
  629. package/src/RefSubject/RefHashSet.ts +0 -308
  630. package/src/RefSubject/RefIterable.ts +0 -454
  631. package/src/RefSubject/RefOption.test.ts +0 -67
  632. package/src/RefSubject/RefOption.ts +0 -193
  633. package/src/RefSubject/RefRecord.ts +0 -621
  634. package/src/RefSubject/RefResult.test.ts +0 -63
  635. package/src/RefSubject/RefResult.ts +0 -209
  636. package/src/RefSubject/RefString.test.ts +0 -61
  637. package/src/RefSubject/RefString.ts +0 -256
  638. package/src/RefSubject/RefStruct.test.ts +0 -60
  639. package/src/RefSubject/RefStruct.ts +0 -253
  640. package/src/RefSubject/RefSubject.ts +0 -2644
  641. package/src/RefSubject/RefTrie.ts +0 -365
  642. package/src/RefSubject/RefTuple.test.ts +0 -60
  643. package/src/RefSubject/RefTuple.ts +0 -231
  644. package/src/RefSubject/index.ts +0 -21
  645. package/src/RefSubject.additive-parity.test.ts +0 -101
  646. package/src/RefSubject.test.ts +0 -65
  647. package/src/RefSubject.ts +0 -1
  648. package/src/Sink/Sink.ts +0 -159
  649. package/src/Sink/combinators.ts +0 -1115
  650. package/src/Sink/index.ts +0 -2
  651. package/src/Sink.combinators.test.ts +0 -88
  652. package/src/Sink.reduce-collect-head-last.test.ts +0 -107
  653. package/src/Sink.ts +0 -1
  654. package/src/Subject/Subject.ts +0 -441
  655. package/src/Subject/index.ts +0 -1
  656. package/src/Subject.test.ts +0 -47
  657. package/src/Subject.ts +0 -1
  658. package/src/Versioned/Versioned.ts +0 -597
  659. package/src/Versioned/index.ts +0 -1
  660. package/src/Versioned.filterMap.test.ts +0 -91
  661. package/src/Versioned.test.ts +0 -23
  662. package/src/Versioned.ts +0 -1
  663. package/src/index.ts +0 -7
@@ -1,6 +1,30 @@
1
1
  /**
2
2
  * Creates an Fx from a collection of failures (errors).
3
3
  *
4
+ * @remarks
5
+ * ## Why
6
+ *
7
+ * Validation and batch operations can preserve every independent typed failure in a
8
+ * single Effect `Cause` rather than choosing one error or emitting partial values.
9
+ * Equal reasons are de-duplicated by `Cause.combine`.
10
+ *
11
+ * ## Ownership and lifetime
12
+ *
13
+ * The iterable is consumed eagerly when `fromFailures` is called. Running the result
14
+ * forwards the combined cause once, emits no values, and acquires no resources. An
15
+ * empty iterable produces the empty Cause.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { Effect } from "effect"
20
+ * import { fromFailures, observe } from "@typed/fx/Fx"
21
+ *
22
+ * const failures = fromFailures(["name", "email"])
23
+ * const program = observe(failures, () => Effect.void).pipe(
24
+ * Effect.catch((error) => Effect.succeed(error))
25
+ * )
26
+ * ```
27
+ *
4
28
  * @param failures - An iterable of failures.
5
29
  * @returns An `Fx` that fails with the combined failures.
6
30
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"fromFailures.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromFailures.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAdE,CAAC,kEAcgD,CAAC"}
1
+ {"version":3,"file":"fromFailures.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromFailures.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GAtCE,CAAC,kEAsCgD,CAAC"}
@@ -5,6 +5,30 @@ const fromFailuresCause = (failures) => Array.from(failures).reduce((acc, e) =>
5
5
  /**
6
6
  * Creates an Fx from a collection of failures (errors).
7
7
  *
8
+ * @remarks
9
+ * ## Why
10
+ *
11
+ * Validation and batch operations can preserve every independent typed failure in a
12
+ * single Effect `Cause` rather than choosing one error or emitting partial values.
13
+ * Equal reasons are de-duplicated by `Cause.combine`.
14
+ *
15
+ * ## Ownership and lifetime
16
+ *
17
+ * The iterable is consumed eagerly when `fromFailures` is called. Running the result
18
+ * forwards the combined cause once, emits no values, and acquires no resources. An
19
+ * empty iterable produces the empty Cause.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Effect } from "effect"
24
+ * import { fromFailures, observe } from "@typed/fx/Fx"
25
+ *
26
+ * const failures = fromFailures(["name", "email"])
27
+ * const program = observe(failures, () => Effect.void).pipe(
28
+ * Effect.catch((error) => Effect.succeed(error))
29
+ * )
30
+ * ```
31
+ *
8
32
  * @param failures - An iterable of failures.
9
33
  * @returns An `Fx` that fails with the combined failures.
10
34
  * @since 1.0.0
@@ -3,6 +3,28 @@ import type { Fx } from "../Fx.js";
3
3
  * Creates an Fx from an Iterable.
4
4
  * Emits each value from the iterable in order and then completes.
5
5
  *
6
+ * @remarks
7
+ * ## Why
8
+ *
9
+ * Finite synchronous collections can participate in push composition without
10
+ * changing their iteration order or introducing a separate collection protocol.
11
+ *
12
+ * ## Ownership and lifetime
13
+ *
14
+ * Construction stores the iterable but does not iterate it. Each run obtains a fresh
15
+ * iterator, offers values sequentially to the sink, and completes after iteration.
16
+ * Interruption stops further iteration. No child fiber or buffer is created.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { Effect } from "effect"
21
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
22
+ *
23
+ * const program = collectAll(fromIterable(new Set([1, 2, 3]))).pipe(
24
+ * Effect.map((values) => values.join(","))
25
+ * )
26
+ * ```
27
+ *
6
28
  * @param iterable - The iterable to emit values from.
7
29
  * @returns An `Fx` that emits the values from the iterable.
8
30
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"fromIterable.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromIterable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,CACa,CAAC"}
1
+ {"version":3,"file":"fromIterable.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromIterable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAG,EAAE,CAAC,CAAC,CACa,CAAC"}
@@ -4,6 +4,28 @@ import { make } from "./make.js";
4
4
  * Creates an Fx from an Iterable.
5
5
  * Emits each value from the iterable in order and then completes.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Finite synchronous collections can participate in push composition without
11
+ * changing their iteration order or introducing a separate collection protocol.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction stores the iterable but does not iterate it. Each run obtains a fresh
16
+ * iterator, offers values sequentially to the sink, and completes after iteration.
17
+ * Interruption stops further iteration. No child fiber or buffer is created.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Effect } from "effect"
22
+ * import { collectAll, fromIterable } from "@typed/fx/Fx"
23
+ *
24
+ * const program = collectAll(fromIterable(new Set([1, 2, 3]))).pipe(
25
+ * Effect.map((values) => values.join(","))
26
+ * )
27
+ * ```
28
+ *
7
29
  * @param iterable - The iterable to emit values from.
8
30
  * @returns An `Fx` that emits the values from the iterable.
9
31
  * @since 1.0.0
@@ -4,6 +4,29 @@ import type { Fx } from "../Fx.js";
4
4
  * Creates an Fx that emits values according to a Schedule.
5
5
  * The Fx emits `void` each time the schedule fires.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Effect [Schedule](https://effect.website/docs/v4/api/effect/Schedule) values already
11
+ * encode recurrence, delay, and typed schedule failures. `fromSchedule` exposes
12
+ * those decisions as producer-driven ticks without another timing model.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * Construction starts no clock. Running the `Fx` repeatedly invokes the sink under
17
+ * the schedule and completes when the schedule completes. Schedule failures are
18
+ * forwarded as causes; interruption cancels waiting and stops further ticks. The
19
+ * returned `Fx` retains the schedule's `Error` and `Env` channels.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Schedule } from "effect"
24
+ * import { collectAll, fromSchedule } from "@typed/fx/Fx"
25
+ *
26
+ * const threeTicks = fromSchedule(Schedule.recurs(2))
27
+ * const program = collectAll(threeTicks)
28
+ * ```
29
+ *
7
30
  * @param schedule - The schedule to follow.
8
31
  * @returns An `Fx` that emits periodically according to the schedule.
9
32
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"fromSchedule.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromSchedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,EAAE,GAAG,EACrC,UAAU,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAC/C,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CACuE,CAAC"}
1
+ {"version":3,"file":"fromSchedule.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/fromSchedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,EAAE,GAAG,YAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAC/C,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAGnB,CAAC"}
@@ -1,13 +1,36 @@
1
- import { schedule as schedule_Effect } from "effect/Effect";
1
+ import { catchCause, schedule as schedule_Effect } from "effect/Effect";
2
2
  import { make } from "./make.js";
3
3
  /**
4
4
  * Creates an Fx that emits values according to a Schedule.
5
5
  * The Fx emits `void` each time the schedule fires.
6
6
  *
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * Effect [Schedule](https://effect.website/docs/v4/api/effect/Schedule) values already
11
+ * encode recurrence, delay, and typed schedule failures. `fromSchedule` exposes
12
+ * those decisions as producer-driven ticks without another timing model.
13
+ *
14
+ * ## Ownership and lifetime
15
+ *
16
+ * Construction starts no clock. Running the `Fx` repeatedly invokes the sink under
17
+ * the schedule and completes when the schedule completes. Schedule failures are
18
+ * forwarded as causes; interruption cancels waiting and stops further ticks. The
19
+ * returned `Fx` retains the schedule's `Error` and `Env` channels.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * import { Schedule } from "effect"
24
+ * import { collectAll, fromSchedule } from "@typed/fx/Fx"
25
+ *
26
+ * const threeTicks = fromSchedule(Schedule.recurs(2))
27
+ * const program = collectAll(threeTicks)
28
+ * ```
29
+ *
7
30
  * @param schedule - The schedule to follow.
8
31
  * @returns An `Fx` that emits periodically according to the schedule.
9
32
  * @since 1.0.0
10
33
  * @category constructors
11
34
  */
12
35
  export const fromSchedule = (schedule) =>
13
- /*#__PURE__*/ make((sink) => schedule_Effect(sink.onSuccess(), schedule));
36
+ /*#__PURE__*/ make((sink) => catchCause(schedule_Effect(sink.onSuccess(), schedule), sink.onFailure));
@@ -8,9 +8,10 @@ export * from "./fromEffect.js";
8
8
  export * from "./fromFailures.js";
9
9
  export * from "./fromIterable.js";
10
10
  export * from "./fromSchedule.js";
11
- export * from "./fromYieldable.js";
12
11
  export * from "./interrupt.js";
13
12
  export * from "./make.js";
14
13
  export * from "./periodic.js";
15
14
  export * from "./succeed.js";
15
+ export * from "./suspend.js";
16
+ export * from "./sync.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -8,8 +8,9 @@ export * from "./fromEffect.js";
8
8
  export * from "./fromFailures.js";
9
9
  export * from "./fromIterable.js";
10
10
  export * from "./fromSchedule.js";
11
- export * from "./fromYieldable.js";
12
11
  export * from "./interrupt.js";
13
12
  export * from "./make.js";
14
13
  export * from "./periodic.js";
15
14
  export * from "./succeed.js";
15
+ export * from "./suspend.js";
16
+ export * from "./sync.js";
@@ -1,7 +1,27 @@
1
1
  /**
2
2
  * Creates an Fx that immediately interrupts.
3
3
  *
4
- * @param id - The FiberId responsible for the interruption.
4
+ * @remarks
5
+ * ## Why
6
+ *
7
+ * A known Effect interruption cause can be represented as an `Fx` branch without
8
+ * disguising it as a typed failure or defect.
9
+ *
10
+ * ## Ownership and lifetime
11
+ *
12
+ * Construction is inert. Each run forwards one interruption cause carrying `id` to
13
+ * the sink, emits no values, and acquires no resources.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { Effect } from "effect"
18
+ * import { interrupt, observe } from "@typed/fx/Fx"
19
+ *
20
+ * const source = interrupt(1)
21
+ * const program = observe(source, () => Effect.void)
22
+ * ```
23
+ *
24
+ * @param id - Optional numeric fiber identifier responsible for the interruption.
5
25
  * @returns An `Fx` that is interrupted.
6
26
  * @since 1.0.0
7
27
  * @category constructors
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,8EAAiD,CAAC"}
1
+ {"version":3,"file":"interrupt.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/interrupt.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,8EAAiD,CAAC"}
@@ -4,7 +4,27 @@ import { failCause } from "./failCause.js";
4
4
  /**
5
5
  * Creates an Fx that immediately interrupts.
6
6
  *
7
- * @param id - The FiberId responsible for the interruption.
7
+ * @remarks
8
+ * ## Why
9
+ *
10
+ * A known Effect interruption cause can be represented as an `Fx` branch without
11
+ * disguising it as a typed failure or defect.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction is inert. Each run forwards one interruption cause carrying `id` to
16
+ * the sink, emits no values, and acquires no resources.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { Effect } from "effect"
21
+ * import { interrupt, observe } from "@typed/fx/Fx"
22
+ *
23
+ * const source = interrupt(1)
24
+ * const program = observe(source, () => Effect.void)
25
+ * ```
26
+ *
27
+ * @param id - Optional numeric fiber identifier responsible for the interruption.
8
28
  * @returns An `Fx` that is interrupted.
9
29
  * @since 1.0.0
10
30
  * @category constructors
@@ -9,6 +9,31 @@ import type { Fx } from "../Fx.js";
9
9
  * This is the lowest-level constructor for Fx, giving you full control over
10
10
  * the stream's behavior.
11
11
  *
12
+ * @remarks
13
+ * ## Why
14
+ *
15
+ * `make` is the protocol boundary for custom producers. It exposes the real `Sink`
16
+ * operation so libraries can define cardinality, ordering, concurrency, causes, and
17
+ * services without an opinionated source wrapper.
18
+ *
19
+ * ## Ownership and lifetime
20
+ *
21
+ * `make` only stores `run`; it starts no work. Every call to `Fx.run` executes that
22
+ * function in the caller's fiber. The function must keep all acquisition and cleanup
23
+ * inside its returned Effect or a required `Scope`; its error channel is `never`
24
+ * because producer failures must be sent to `sink.onFailure`.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { Effect } from "effect"
29
+ * import { collectAll, make } from "@typed/fx/Fx"
30
+ *
31
+ * const pair = make<number>((sink) =>
32
+ * Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
33
+ * )
34
+ * const program = collectAll(pair)
35
+ * ```
36
+ *
12
37
  * @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
13
38
  * @returns An `Fx` instance.
14
39
  * @since 1.0.0
@@ -16,20 +41,140 @@ import type { Fx } from "../Fx.js";
16
41
  */
17
42
  export declare const make: <A, E = never, R = never>(run: <RSink = never>(sink: Sink<A, E, RSink>) => Effect.Effect<unknown, never, R | RSink>) => Fx<A, E, R>;
18
43
  /**
19
- * Interface for emitting values, errors, or completion signals in a callback-based Fx.
44
+ * Operations supplied to a callback producer for emitting values or ending its run.
45
+ *
46
+ * @remarks
47
+ * ## Why
48
+ *
49
+ * Callback sources need an explicit bridge into Sink operations while retaining the
50
+ * distinction between typed failures, defects, interruption causes, and completion.
51
+ *
52
+ * ## Ownership and lifetime
53
+ *
54
+ * An `Emit` is valid only for the active callback run. Every operation forks the
55
+ * corresponding sink Effect in that run's scope and returns its `Fiber`; callers may
56
+ * inspect or interrupt that delivery. Retaining it after cleanup is unsupported.
57
+ *
20
58
  * @since 1.0.0
21
59
  * @category models
22
60
  */
23
61
  export type Emit<A, E = never> = {
62
+ /**
63
+ * Starts delivery of one value and returns the delivery fiber.
64
+ *
65
+ * @remarks
66
+ * ## Why
67
+ *
68
+ * Callback producers push values when they arrive instead of waiting to be pulled.
69
+ *
70
+ * ## Ownership and lifetime
71
+ *
72
+ * The active callback scope owns the returned fiber; deliveries can overlap when
73
+ * `succeed` is called again before an earlier sink Effect completes.
74
+ *
75
+ * @since 1.0.0
76
+ * @category emitters
77
+ */
24
78
  succeed: (value: A) => Fiber<unknown, never>;
79
+ /**
80
+ * Starts delivery of a complete Effect `Cause` and returns the delivery fiber.
81
+ *
82
+ * @remarks
83
+ * ## Why
84
+ *
85
+ * Typed failures, defects, and interruption remain structurally distinct.
86
+ *
87
+ * ## Ownership and lifetime
88
+ *
89
+ * The active callback scope owns the returned fiber. This operation does not
90
+ * automatically call `done`; terminal behavior is determined by the sink.
91
+ *
92
+ * @since 1.0.0
93
+ * @category emitters
94
+ */
25
95
  failCause: (cause: Cause.Cause<E>) => Fiber<unknown, never>;
96
+ /**
97
+ * Starts delivery of one typed failure and returns the delivery fiber.
98
+ *
99
+ * @remarks
100
+ * ## Why
101
+ *
102
+ * Expected callback errors enter `E` without being converted to defects.
103
+ *
104
+ * ## Ownership and lifetime
105
+ *
106
+ * The active callback scope owns the returned fiber. The error is wrapped with
107
+ * `Cause.fail` and forwarded to the sink.
108
+ *
109
+ * @since 1.0.0
110
+ * @category emitters
111
+ */
26
112
  fail: (error: E) => Fiber<unknown, never>;
113
+ /**
114
+ * Starts delivery of one unexpected defect and returns the delivery fiber.
115
+ *
116
+ * @remarks
117
+ * ## Why
118
+ *
119
+ * Programming defects remain outside the typed `E` channel.
120
+ *
121
+ * ## Ownership and lifetime
122
+ *
123
+ * The active callback scope owns the returned fiber. The value is wrapped with
124
+ * `Cause.die` and forwarded to the sink.
125
+ *
126
+ * @since 1.0.0
127
+ * @category emitters
128
+ */
27
129
  die: (error: unknown) => Fiber<unknown, never>;
130
+ /**
131
+ * Requests early completion and returns the sink's early-exit fiber.
132
+ *
133
+ * @remarks
134
+ * ## Why
135
+ *
136
+ * Finite callback APIs need an explicit completion signal distinct from failure.
137
+ *
138
+ * ## Ownership and lifetime
139
+ *
140
+ * The active callback scope owns the returned fiber. Early exit ends the run and
141
+ * causes callback cleanup registered by `callback` to execute.
142
+ *
143
+ * @since 1.0.0
144
+ * @category emitters
145
+ */
28
146
  done: () => Fiber<unknown, never>;
29
147
  };
30
148
  /**
31
149
  * Creates an Fx from a callback-based source.
32
150
  *
151
+ * @remarks
152
+ * ## Why
153
+ *
154
+ * DOM events, sockets, observers, and foreign libraries decide when values exist.
155
+ * `callback` turns that push boundary into `Fx` while keeping failure and cleanup
156
+ * inside Effect's structured lifetime.
157
+ *
158
+ * ## Ownership and lifetime
159
+ *
160
+ * Registration is lazy: `run` is called once for each `Fx` run. The run creates a
161
+ * child scope and stays active until `emit.done()`, sink early exit, or interruption.
162
+ * If `run` returns an Effect, it is registered as the scope finalizer. Each emit
163
+ * operation starts its sink handler in a fiber, so handler completion can overlap;
164
+ * use the returned fibers or a serialized source when ordering of effects matters.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import { Effect } from "effect"
169
+ * import { callback, collectUpTo } from "@typed/fx/Fx"
170
+ *
171
+ * const messages = callback<string>((emit) => {
172
+ * const timer = setInterval(() => emit.succeed("tick"), 10)
173
+ * return Effect.sync(() => clearInterval(timer))
174
+ * })
175
+ * const program = collectUpTo(messages, 2)
176
+ * ```
177
+ *
33
178
  * @param run - A function that receives an `Emit` object to push values/errors.
34
179
  * It can return a cleanup effect.
35
180
  * @returns An `Fx` adapted from the callback.
@@ -1 +1 @@
1
- {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC1C,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KACxF,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA2B,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC9C,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KACjE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAiCV,CAAC"}
1
+ {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAsBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACrC,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KACxF,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAA2B,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C;;;;;;;;;;;;;;;OAeG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;;OAeG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,OACzC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KACjE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CA6BV,CAAC"}
@@ -26,6 +26,31 @@ class Make {
26
26
  * This is the lowest-level constructor for Fx, giving you full control over
27
27
  * the stream's behavior.
28
28
  *
29
+ * @remarks
30
+ * ## Why
31
+ *
32
+ * `make` is the protocol boundary for custom producers. It exposes the real `Sink`
33
+ * operation so libraries can define cardinality, ordering, concurrency, causes, and
34
+ * services without an opinionated source wrapper.
35
+ *
36
+ * ## Ownership and lifetime
37
+ *
38
+ * `make` only stores `run`; it starts no work. Every call to `Fx.run` executes that
39
+ * function in the caller's fiber. The function must keep all acquisition and cleanup
40
+ * inside its returned Effect or a required `Scope`; its error channel is `never`
41
+ * because producer failures must be sent to `sink.onFailure`.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { Effect } from "effect"
46
+ * import { collectAll, make } from "@typed/fx/Fx"
47
+ *
48
+ * const pair = make<number>((sink) =>
49
+ * Effect.andThen(sink.onSuccess(1), sink.onSuccess(2))
50
+ * )
51
+ * const program = collectAll(pair)
52
+ * ```
53
+ *
29
54
  * @param run - A function that takes a `Sink` and returns an `Effect` that drives the stream.
30
55
  * @returns An `Fx` instance.
31
56
  * @since 1.0.0
@@ -35,6 +60,33 @@ export const make = (run) => new Make(run);
35
60
  /**
36
61
  * Creates an Fx from a callback-based source.
37
62
  *
63
+ * @remarks
64
+ * ## Why
65
+ *
66
+ * DOM events, sockets, observers, and foreign libraries decide when values exist.
67
+ * `callback` turns that push boundary into `Fx` while keeping failure and cleanup
68
+ * inside Effect's structured lifetime.
69
+ *
70
+ * ## Ownership and lifetime
71
+ *
72
+ * Registration is lazy: `run` is called once for each `Fx` run. The run creates a
73
+ * child scope and stays active until `emit.done()`, sink early exit, or interruption.
74
+ * If `run` returns an Effect, it is registered as the scope finalizer. Each emit
75
+ * operation starts its sink handler in a fiber, so handler completion can overlap;
76
+ * use the returned fibers or a serialized source when ordering of effects matters.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * import { Effect } from "effect"
81
+ * import { callback, collectUpTo } from "@typed/fx/Fx"
82
+ *
83
+ * const messages = callback<string>((emit) => {
84
+ * const timer = setInterval(() => emit.succeed("tick"), 10)
85
+ * return Effect.sync(() => clearInterval(timer))
86
+ * })
87
+ * const program = collectUpTo(messages, 2)
88
+ * ```
89
+ *
38
90
  * @param run - A function that receives an `Emit` object to push values/errors.
39
91
  * It can return a cleanup effect.
40
92
  * @returns An `Fx` adapted from the callback.
@@ -42,11 +94,10 @@ export const make = (run) => new Make(run);
42
94
  * @category constructors
43
95
  */
44
96
  export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.make(), (scope) => withEarlyExit(sink, Effect.fn(function* (sink) {
45
- const services = yield* Effect.services();
97
+ const services = yield* Effect.context();
46
98
  const runFork = Effect.runForkWith(services);
47
- const controller = new AbortController();
48
- yield* Scope.addFinalizer(scope, Effect.sync(() => controller.abort()));
49
- const runEffect = (effect) => runFork(effect, { signal: controller.signal });
99
+ const signal = yield* Scope.provide(Effect.abortSignal, scope);
100
+ const runEffect = (effect) => runFork(effect, { signal });
50
101
  const emit = {
51
102
  succeed: (value) => runEffect(sink.onSuccess(value)),
52
103
  failCause: (cause) => runEffect(sink.onFailure(cause)),
@@ -56,6 +107,6 @@ export const callback = (run) => make((sink) => Effect.acquireUseRelease(Scope.m
56
107
  };
57
108
  const effect = run(emit);
58
109
  if (effect)
59
- yield* Scope.addFinalizer(scope, Effect.provideServices(effect, services));
110
+ yield* Scope.addFinalizer(scope, Effect.provideContext(effect, services));
60
111
  return yield* Effect.never;
61
112
  })), Scope.close));
@@ -3,6 +3,35 @@ import type { Fx } from "../Fx.js";
3
3
  /**
4
4
  * Creates an Fx that emits a `void` value periodically.
5
5
  *
6
+ * @remarks
7
+ * ## Why
8
+ *
9
+ * Common interval work can use Effect's
10
+ * [Schedule](https://effect.website/docs/v4/api/effect/Schedule) clock and
11
+ * interruption semantics rather than an unmanaged platform timer.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction starts no clock. A run waits `period` before the first emission and
16
+ * again between every subsequent emission. The run fiber owns the schedule; no ticks
17
+ * continue after interruption.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Effect, Fiber } from "effect"
22
+ * import * as TestClock from "effect/testing/TestClock"
23
+ * import { collectUpTo, periodic } from "@typed/fx/Fx"
24
+ *
25
+ * const program = Effect.gen(function* () {
26
+ * const fiber = yield* Effect.forkChild(collectUpTo(periodic("1 second"), 1))
27
+ * yield* TestClock.adjust("999 millis")
28
+ * const beforeFirstPeriod = fiber.pollUnsafe()
29
+ * yield* TestClock.adjust("1 millis")
30
+ * const firstTick = yield* Fiber.join(fiber)
31
+ * return { beforeFirstPeriod, firstTick }
32
+ * })
33
+ * ```
34
+ *
6
35
  * @param period - The duration between emissions.
7
36
  * @returns An `Fx` that emits repeatedly.
8
37
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,QAAQ,CAAC,KAAK,KAAG,EAAE,CAAC,IAAI,CACb,CAAC"}
1
+ {"version":3,"file":"periodic.d.ts","sourceRoot":"","sources":["../../../src/Fx/constructors/periodic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,QAAQ,WAAY,QAAQ,CAAC,KAAK,KAAG,EAAE,CAAC,IAAI,CACb,CAAC"}
@@ -3,6 +3,35 @@ import { fromSchedule } from "./fromSchedule.js";
3
3
  /**
4
4
  * Creates an Fx that emits a `void` value periodically.
5
5
  *
6
+ * @remarks
7
+ * ## Why
8
+ *
9
+ * Common interval work can use Effect's
10
+ * [Schedule](https://effect.website/docs/v4/api/effect/Schedule) clock and
11
+ * interruption semantics rather than an unmanaged platform timer.
12
+ *
13
+ * ## Ownership and lifetime
14
+ *
15
+ * Construction starts no clock. A run waits `period` before the first emission and
16
+ * again between every subsequent emission. The run fiber owns the schedule; no ticks
17
+ * continue after interruption.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Effect, Fiber } from "effect"
22
+ * import * as TestClock from "effect/testing/TestClock"
23
+ * import { collectUpTo, periodic } from "@typed/fx/Fx"
24
+ *
25
+ * const program = Effect.gen(function* () {
26
+ * const fiber = yield* Effect.forkChild(collectUpTo(periodic("1 second"), 1))
27
+ * yield* TestClock.adjust("999 millis")
28
+ * const beforeFirstPeriod = fiber.pollUnsafe()
29
+ * yield* TestClock.adjust("1 millis")
30
+ * const firstTick = yield* Fiber.join(fiber)
31
+ * return { beforeFirstPeriod, firstTick }
32
+ * })
33
+ * ```
34
+ *
6
35
  * @param period - The duration between emissions.
7
36
  * @returns An `Fx` that emits repeatedly.
8
37
  * @since 1.0.0