@typed/fx 2.0.0-beta.0 → 2.0.0-beta.10

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 (640) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -21
  3. package/dist/Fx/Fx.d.ts +371 -19
  4. package/dist/Fx/Fx.d.ts.map +1 -1
  5. package/dist/Fx/Fx.js +37 -6
  6. package/dist/Fx/TypeId.d.ts +52 -6
  7. package/dist/Fx/TypeId.d.ts.map +1 -1
  8. package/dist/Fx/TypeId.js +41 -4
  9. package/dist/Fx/combinators/additive.d.ts +245 -0
  10. package/dist/Fx/combinators/additive.d.ts.map +1 -0
  11. package/dist/Fx/combinators/additive.js +243 -0
  12. package/dist/Fx/combinators/catch.d.ts +246 -12
  13. package/dist/Fx/combinators/catch.d.ts.map +1 -1
  14. package/dist/Fx/combinators/catch.js +236 -12
  15. package/dist/Fx/combinators/causes.d.ts +25 -2
  16. package/dist/Fx/combinators/causes.d.ts.map +1 -1
  17. package/dist/Fx/combinators/causes.js +25 -2
  18. package/dist/Fx/combinators/changesWithEffect.d.ts +40 -0
  19. package/dist/Fx/combinators/changesWithEffect.d.ts.map +1 -0
  20. package/dist/Fx/combinators/changesWithEffect.js +48 -0
  21. package/dist/Fx/combinators/compact.d.ts +18 -1
  22. package/dist/Fx/combinators/compact.d.ts.map +1 -1
  23. package/dist/Fx/combinators/compact.js +18 -1
  24. package/dist/Fx/combinators/concatMap.d.ts +86 -0
  25. package/dist/Fx/combinators/concatMap.d.ts.map +1 -0
  26. package/dist/Fx/combinators/concatMap.js +86 -0
  27. package/dist/Fx/combinators/continueWith.d.ts +113 -5
  28. package/dist/Fx/combinators/continueWith.d.ts.map +1 -1
  29. package/dist/Fx/combinators/continueWith.js +113 -5
  30. package/dist/Fx/combinators/debounce.d.ts +34 -0
  31. package/dist/Fx/combinators/debounce.d.ts.map +1 -0
  32. package/dist/Fx/combinators/debounce.js +35 -0
  33. package/dist/Fx/combinators/delay.d.ts +36 -0
  34. package/dist/Fx/combinators/delay.d.ts.map +1 -0
  35. package/dist/Fx/combinators/delay.js +33 -0
  36. package/dist/Fx/combinators/dropUntil.d.ts +71 -0
  37. package/dist/Fx/combinators/dropUntil.d.ts.map +1 -0
  38. package/dist/Fx/combinators/dropUntil.js +65 -0
  39. package/dist/Fx/combinators/during.d.ts +38 -0
  40. package/dist/Fx/combinators/during.d.ts.map +1 -0
  41. package/dist/Fx/combinators/during.js +85 -0
  42. package/dist/Fx/combinators/ensuring.d.ts +34 -4
  43. package/dist/Fx/combinators/ensuring.d.ts.map +1 -1
  44. package/dist/Fx/combinators/ensuring.js +34 -4
  45. package/dist/Fx/combinators/exhaustLatestMap.d.ts +41 -5
  46. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -1
  47. package/dist/Fx/combinators/exhaustLatestMap.js +41 -5
  48. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +40 -4
  49. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -1
  50. package/dist/Fx/combinators/exhaustLatestMapEffect.js +40 -4
  51. package/dist/Fx/combinators/exhaustMap.d.ts +38 -1
  52. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -1
  53. package/dist/Fx/combinators/exhaustMap.js +38 -1
  54. package/dist/Fx/combinators/exhaustMapEffect.d.ts +33 -1
  55. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -1
  56. package/dist/Fx/combinators/exhaustMapEffect.js +33 -1
  57. package/dist/Fx/combinators/exit.d.ts +23 -2
  58. package/dist/Fx/combinators/exit.d.ts.map +1 -1
  59. package/dist/Fx/combinators/exit.js +23 -2
  60. package/dist/Fx/combinators/filter.d.ts +17 -1
  61. package/dist/Fx/combinators/filter.d.ts.map +1 -1
  62. package/dist/Fx/combinators/filter.js +17 -1
  63. package/dist/Fx/combinators/filterEffect.d.ts +22 -1
  64. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -1
  65. package/dist/Fx/combinators/filterEffect.js +22 -1
  66. package/dist/Fx/combinators/filterMap.d.ts +20 -1
  67. package/dist/Fx/combinators/filterMap.d.ts.map +1 -1
  68. package/dist/Fx/combinators/filterMap.js +20 -1
  69. package/dist/Fx/combinators/filterMapEffect.d.ts +21 -1
  70. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -1
  71. package/dist/Fx/combinators/filterMapEffect.js +21 -1
  72. package/dist/Fx/combinators/filterMapLoop.d.ts +20 -1
  73. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -1
  74. package/dist/Fx/combinators/filterMapLoop.js +20 -1
  75. package/dist/Fx/combinators/filterMapLoopCause.d.ts +21 -1
  76. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -1
  77. package/dist/Fx/combinators/filterMapLoopCause.js +21 -1
  78. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +21 -1
  79. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -1
  80. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +21 -1
  81. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +21 -1
  82. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -1
  83. package/dist/Fx/combinators/filterMapLoopEffect.js +21 -1
  84. package/dist/Fx/combinators/flatMap.d.ts +50 -5
  85. package/dist/Fx/combinators/flatMap.d.ts.map +1 -1
  86. package/dist/Fx/combinators/flatMap.js +36 -3
  87. package/dist/Fx/combinators/flatMapConcurrently.d.ts +51 -4
  88. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -1
  89. package/dist/Fx/combinators/flatMapConcurrently.js +51 -4
  90. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +48 -4
  91. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -1
  92. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +40 -2
  93. package/dist/Fx/combinators/flatMapEffect.d.ts +46 -4
  94. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -1
  95. package/dist/Fx/combinators/flatMapEffect.js +32 -2
  96. package/dist/Fx/combinators/flip.d.ts +34 -2
  97. package/dist/Fx/combinators/flip.d.ts.map +1 -1
  98. package/dist/Fx/combinators/flip.js +34 -2
  99. package/dist/Fx/combinators/gen.d.ts +29 -10
  100. package/dist/Fx/combinators/gen.d.ts.map +1 -1
  101. package/dist/Fx/combinators/gen.js +28 -4
  102. package/dist/Fx/combinators/genScoped.d.ts +33 -10
  103. package/dist/Fx/combinators/genScoped.d.ts.map +1 -1
  104. package/dist/Fx/combinators/genScoped.js +31 -3
  105. package/dist/Fx/combinators/grouped.d.ts +89 -0
  106. package/dist/Fx/combinators/grouped.d.ts.map +1 -0
  107. package/dist/Fx/combinators/grouped.js +146 -0
  108. package/dist/Fx/combinators/index.d.ts +45 -0
  109. package/dist/Fx/combinators/index.d.ts.map +1 -1
  110. package/dist/Fx/combinators/index.js +45 -0
  111. package/dist/Fx/combinators/keyed.d.ts +124 -10
  112. package/dist/Fx/combinators/keyed.d.ts.map +1 -1
  113. package/dist/Fx/combinators/keyed.js +69 -11
  114. package/dist/Fx/combinators/loop.d.ts +17 -1
  115. package/dist/Fx/combinators/loop.d.ts.map +1 -1
  116. package/dist/Fx/combinators/loop.js +17 -1
  117. package/dist/Fx/combinators/loopCause.d.ts +18 -1
  118. package/dist/Fx/combinators/loopCause.d.ts.map +1 -1
  119. package/dist/Fx/combinators/loopCause.js +18 -1
  120. package/dist/Fx/combinators/loopCauseEffect.d.ts +19 -1
  121. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -1
  122. package/dist/Fx/combinators/loopCauseEffect.js +19 -1
  123. package/dist/Fx/combinators/loopEffect.d.ts +24 -1
  124. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -1
  125. package/dist/Fx/combinators/loopEffect.js +24 -1
  126. package/dist/Fx/combinators/map.d.ts +46 -1
  127. package/dist/Fx/combinators/map.d.ts.map +1 -1
  128. package/dist/Fx/combinators/map.js +43 -1
  129. package/dist/Fx/combinators/mapBoth.d.ts +40 -0
  130. package/dist/Fx/combinators/mapBoth.d.ts.map +1 -0
  131. package/dist/Fx/combinators/mapBoth.js +33 -0
  132. package/dist/Fx/combinators/mapEffect.d.ts +25 -1
  133. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -1
  134. package/dist/Fx/combinators/mapEffect.js +25 -1
  135. package/dist/Fx/combinators/mapError.d.ts +33 -0
  136. package/dist/Fx/combinators/mapError.d.ts.map +1 -0
  137. package/dist/Fx/combinators/mapError.js +32 -0
  138. package/dist/Fx/combinators/mergeAll.d.ts +35 -1
  139. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -1
  140. package/dist/Fx/combinators/mergeAll.js +35 -1
  141. package/dist/Fx/combinators/mergeOrdered.d.ts +36 -4
  142. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -1
  143. package/dist/Fx/combinators/mergeOrdered.js +68 -14
  144. package/dist/Fx/combinators/onError.d.ts +34 -4
  145. package/dist/Fx/combinators/onError.d.ts.map +1 -1
  146. package/dist/Fx/combinators/onError.js +34 -4
  147. package/dist/Fx/combinators/onExit.d.ts +29 -3
  148. package/dist/Fx/combinators/onExit.d.ts.map +1 -1
  149. package/dist/Fx/combinators/onExit.js +29 -3
  150. package/dist/Fx/combinators/onInterrupt.d.ts +49 -4
  151. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -1
  152. package/dist/Fx/combinators/onInterrupt.js +49 -4
  153. package/dist/Fx/combinators/pairwise.d.ts +28 -0
  154. package/dist/Fx/combinators/pairwise.d.ts.map +1 -0
  155. package/dist/Fx/combinators/pairwise.js +31 -0
  156. package/dist/Fx/combinators/provide.d.ts +162 -8
  157. package/dist/Fx/combinators/provide.d.ts.map +1 -1
  158. package/dist/Fx/combinators/provide.js +154 -6
  159. package/dist/Fx/combinators/race.d.ts +92 -0
  160. package/dist/Fx/combinators/race.d.ts.map +1 -0
  161. package/dist/Fx/combinators/race.js +149 -0
  162. package/dist/Fx/combinators/repeat.d.ts +41 -0
  163. package/dist/Fx/combinators/repeat.d.ts.map +1 -0
  164. package/dist/Fx/combinators/repeat.js +57 -0
  165. package/dist/Fx/combinators/result.d.ts +45 -0
  166. package/dist/Fx/combinators/result.d.ts.map +1 -0
  167. package/dist/Fx/combinators/result.js +46 -0
  168. package/dist/Fx/combinators/retry.d.ts +53 -0
  169. package/dist/Fx/combinators/retry.d.ts.map +1 -0
  170. package/dist/Fx/combinators/retry.js +71 -0
  171. package/dist/Fx/combinators/sample.d.ts +31 -0
  172. package/dist/Fx/combinators/sample.d.ts.map +1 -0
  173. package/dist/Fx/combinators/sample.js +42 -0
  174. package/dist/Fx/combinators/scan.d.ts +72 -0
  175. package/dist/Fx/combinators/scan.d.ts.map +1 -0
  176. package/dist/Fx/combinators/scan.js +77 -0
  177. package/dist/Fx/combinators/since.d.ts +30 -0
  178. package/dist/Fx/combinators/since.d.ts.map +1 -0
  179. package/dist/Fx/combinators/since.js +39 -0
  180. package/dist/Fx/combinators/skip.d.ts +45 -1
  181. package/dist/Fx/combinators/skip.d.ts.map +1 -1
  182. package/dist/Fx/combinators/skip.js +43 -1
  183. package/dist/Fx/combinators/skipRepeats.d.ts +17 -1
  184. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -1
  185. package/dist/Fx/combinators/skipRepeats.js +17 -1
  186. package/dist/Fx/combinators/skipRepeatsWith.d.ts +18 -1
  187. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -1
  188. package/dist/Fx/combinators/skipRepeatsWith.js +18 -1
  189. package/dist/Fx/combinators/skipWhile.d.ts +117 -0
  190. package/dist/Fx/combinators/skipWhile.d.ts.map +1 -0
  191. package/dist/Fx/combinators/skipWhile.js +134 -0
  192. package/dist/Fx/combinators/slice.d.ts +97 -2
  193. package/dist/Fx/combinators/slice.d.ts.map +1 -1
  194. package/dist/Fx/combinators/slice.js +45 -1
  195. package/dist/Fx/combinators/switchMap.d.ts +39 -1
  196. package/dist/Fx/combinators/switchMap.d.ts.map +1 -1
  197. package/dist/Fx/combinators/switchMap.js +43 -5
  198. package/dist/Fx/combinators/switchMapEffect.d.ts +38 -1
  199. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -1
  200. package/dist/Fx/combinators/switchMapEffect.js +38 -1
  201. package/dist/Fx/combinators/take.d.ts +46 -1
  202. package/dist/Fx/combinators/take.d.ts.map +1 -1
  203. package/dist/Fx/combinators/take.js +44 -1
  204. package/dist/Fx/combinators/takeUntil.d.ts +62 -2
  205. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -1
  206. package/dist/Fx/combinators/takeUntil.js +62 -2
  207. package/dist/Fx/combinators/takeWhile.d.ts +60 -0
  208. package/dist/Fx/combinators/takeWhile.d.ts.map +1 -0
  209. package/dist/Fx/combinators/takeWhile.js +54 -0
  210. package/dist/Fx/combinators/tapEffect.d.ts +17 -1
  211. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -1
  212. package/dist/Fx/combinators/tapEffect.js +17 -1
  213. package/dist/Fx/combinators/throttle.d.ts +79 -0
  214. package/dist/Fx/combinators/throttle.d.ts.map +1 -0
  215. package/dist/Fx/combinators/throttle.js +99 -0
  216. package/dist/Fx/combinators/timeout.d.ts +76 -0
  217. package/dist/Fx/combinators/timeout.d.ts.map +1 -0
  218. package/dist/Fx/combinators/timeout.js +110 -0
  219. package/dist/Fx/combinators/tuple.d.ts +32 -2
  220. package/dist/Fx/combinators/tuple.d.ts.map +1 -1
  221. package/dist/Fx/combinators/tuple.js +36 -5
  222. package/dist/Fx/combinators/until.d.ts +27 -0
  223. package/dist/Fx/combinators/until.d.ts.map +1 -0
  224. package/dist/Fx/combinators/until.js +56 -0
  225. package/dist/Fx/combinators/unwrap.d.ts +31 -2
  226. package/dist/Fx/combinators/unwrap.d.ts.map +1 -1
  227. package/dist/Fx/combinators/unwrap.js +30 -1
  228. package/dist/Fx/combinators/unwrapScoped.d.ts +34 -1
  229. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -1
  230. package/dist/Fx/combinators/unwrapScoped.js +34 -1
  231. package/dist/Fx/combinators/when.d.ts +37 -2
  232. package/dist/Fx/combinators/when.d.ts.map +1 -1
  233. package/dist/Fx/combinators/when.js +38 -3
  234. package/dist/Fx/combinators/withLatestFrom.d.ts +58 -0
  235. package/dist/Fx/combinators/withLatestFrom.d.ts.map +1 -0
  236. package/dist/Fx/combinators/withLatestFrom.js +68 -0
  237. package/dist/Fx/combinators/withSpan.d.ts +35 -1
  238. package/dist/Fx/combinators/withSpan.d.ts.map +1 -1
  239. package/dist/Fx/combinators/withSpan.js +34 -3
  240. package/dist/Fx/combinators/zip.d.ts +135 -0
  241. package/dist/Fx/combinators/zip.d.ts.map +1 -0
  242. package/dist/Fx/combinators/zip.js +160 -0
  243. package/dist/Fx/constructors/at.d.ts +23 -3
  244. package/dist/Fx/constructors/at.d.ts.map +1 -1
  245. package/dist/Fx/constructors/at.js +21 -1
  246. package/dist/Fx/constructors/die.d.ts +22 -1
  247. package/dist/Fx/constructors/die.d.ts.map +1 -1
  248. package/dist/Fx/constructors/die.js +22 -1
  249. package/dist/Fx/constructors/empty.d.ts +19 -1
  250. package/dist/Fx/constructors/empty.d.ts.map +1 -1
  251. package/dist/Fx/constructors/empty.js +19 -1
  252. package/dist/Fx/constructors/fail.d.ts +22 -1
  253. package/dist/Fx/constructors/fail.d.ts.map +1 -1
  254. package/dist/Fx/constructors/fail.js +22 -1
  255. package/dist/Fx/constructors/failCause.d.ts +23 -1
  256. package/dist/Fx/constructors/failCause.d.ts.map +1 -1
  257. package/dist/Fx/constructors/failCause.js +23 -1
  258. package/dist/Fx/constructors/fn.d.ts +116 -16
  259. package/dist/Fx/constructors/fn.d.ts.map +1 -1
  260. package/dist/Fx/constructors/fn.js +36 -0
  261. package/dist/Fx/constructors/fromEffect.d.ts +45 -3
  262. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -1
  263. package/dist/Fx/constructors/fromEffect.js +45 -3
  264. package/dist/Fx/constructors/fromFailures.d.ts +25 -1
  265. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -1
  266. package/dist/Fx/constructors/fromFailures.js +25 -1
  267. package/dist/Fx/constructors/fromIterable.d.ts +23 -1
  268. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -1
  269. package/dist/Fx/constructors/fromIterable.js +23 -1
  270. package/dist/Fx/constructors/fromSchedule.d.ts +26 -1
  271. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -1
  272. package/dist/Fx/constructors/fromSchedule.js +28 -3
  273. package/dist/Fx/constructors/index.d.ts +2 -1
  274. package/dist/Fx/constructors/index.d.ts.map +1 -1
  275. package/dist/Fx/constructors/index.js +2 -1
  276. package/dist/Fx/constructors/interrupt.d.ts +22 -2
  277. package/dist/Fx/constructors/interrupt.d.ts.map +1 -1
  278. package/dist/Fx/constructors/interrupt.js +22 -2
  279. package/dist/Fx/constructors/make.d.ts +151 -4
  280. package/dist/Fx/constructors/make.d.ts.map +1 -1
  281. package/dist/Fx/constructors/make.js +60 -7
  282. package/dist/Fx/constructors/periodic.d.ts +31 -2
  283. package/dist/Fx/constructors/periodic.d.ts.map +1 -1
  284. package/dist/Fx/constructors/periodic.js +30 -1
  285. package/dist/Fx/constructors/succeed.d.ts +79 -7
  286. package/dist/Fx/constructors/succeed.d.ts.map +1 -1
  287. package/dist/Fx/constructors/succeed.js +79 -7
  288. package/dist/Fx/constructors/suspend.d.ts +28 -0
  289. package/dist/Fx/constructors/suspend.d.ts.map +1 -1
  290. package/dist/Fx/constructors/suspend.js +28 -0
  291. package/dist/Fx/constructors/sync.d.ts +32 -0
  292. package/dist/Fx/constructors/sync.d.ts.map +1 -0
  293. package/dist/Fx/constructors/sync.js +32 -0
  294. package/dist/Fx/internal/DeferredRef.d.ts +259 -7
  295. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -1
  296. package/dist/Fx/internal/DeferredRef.js +260 -9
  297. package/dist/Fx/internal/UnionToTuple.d.ts +22 -0
  298. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -1
  299. package/dist/Fx/internal/diff.d.ts +586 -0
  300. package/dist/Fx/internal/diff.d.ts.map +1 -1
  301. package/dist/Fx/internal/diff.js +120 -9
  302. package/dist/Fx/internal/effectableEvaluateKey.d.ts +30 -0
  303. package/dist/Fx/internal/effectableEvaluateKey.d.ts.map +1 -0
  304. package/dist/Fx/internal/effectableEvaluateKey.js +29 -0
  305. package/dist/Fx/internal/effectableWithOverride.d.ts +55 -0
  306. package/dist/Fx/internal/effectableWithOverride.d.ts.map +1 -0
  307. package/dist/Fx/internal/effectableWithOverride.js +46 -0
  308. package/dist/Fx/internal/equivalence.d.ts +29 -0
  309. package/dist/Fx/internal/equivalence.d.ts.map +1 -1
  310. package/dist/Fx/internal/equivalence.js +29 -0
  311. package/dist/Fx/internal/multicast.d.ts +145 -2
  312. package/dist/Fx/internal/multicast.d.ts.map +1 -1
  313. package/dist/Fx/internal/multicast.js +146 -4
  314. package/dist/Fx/internal/ring-buffer.d.ts +149 -0
  315. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -1
  316. package/dist/Fx/internal/ring-buffer.js +155 -0
  317. package/dist/Fx/internal/scope.d.ts +184 -0
  318. package/dist/Fx/internal/scope.d.ts.map +1 -1
  319. package/dist/Fx/internal/scope.js +150 -0
  320. package/dist/Fx/internal/yieldable.d.ts +117 -2
  321. package/dist/Fx/internal/yieldable.d.ts.map +1 -1
  322. package/dist/Fx/internal/yieldable.js +86 -3
  323. package/dist/Fx/run/collect.d.ts +93 -4
  324. package/dist/Fx/run/collect.d.ts.map +1 -1
  325. package/dist/Fx/run/collect.js +94 -5
  326. package/dist/Fx/run/first.d.ts +23 -1
  327. package/dist/Fx/run/first.d.ts.map +1 -1
  328. package/dist/Fx/run/first.js +23 -1
  329. package/dist/Fx/run/fork.d.ts +52 -2
  330. package/dist/Fx/run/fork.d.ts.map +1 -1
  331. package/dist/Fx/run/fork.js +52 -2
  332. package/dist/Fx/run/observe.d.ts +112 -4
  333. package/dist/Fx/run/observe.d.ts.map +1 -1
  334. package/dist/Fx/run/observe.js +137 -16
  335. package/dist/Fx/run/runPromise.d.ts +45 -2
  336. package/dist/Fx/run/runPromise.d.ts.map +1 -1
  337. package/dist/Fx/run/runPromise.js +45 -2
  338. package/dist/Fx/stream.d.ts +92 -0
  339. package/dist/Fx/stream.d.ts.map +1 -1
  340. package/dist/Fx/stream.js +60 -1
  341. package/dist/Push/Push.d.ts +1286 -98
  342. package/dist/Push/Push.d.ts.map +1 -1
  343. package/dist/Push/Push.js +1074 -88
  344. package/dist/RefArray.d.ts +2 -0
  345. package/dist/RefArray.d.ts.map +1 -0
  346. package/dist/RefArray.js +1 -0
  347. package/dist/RefBigDecimal.d.ts +2 -0
  348. package/dist/RefBigDecimal.d.ts.map +1 -0
  349. package/dist/RefBigDecimal.js +1 -0
  350. package/dist/RefBigInt.d.ts +2 -0
  351. package/dist/RefBigInt.d.ts.map +1 -0
  352. package/dist/RefBigInt.js +1 -0
  353. package/dist/RefBoolean.d.ts +2 -0
  354. package/dist/RefBoolean.d.ts.map +1 -0
  355. package/dist/RefBoolean.js +1 -0
  356. package/dist/RefCause.d.ts +2 -0
  357. package/dist/RefCause.d.ts.map +1 -0
  358. package/dist/RefCause.js +1 -0
  359. package/dist/RefChunk.d.ts +2 -0
  360. package/dist/RefChunk.d.ts.map +1 -0
  361. package/dist/RefChunk.js +1 -0
  362. package/dist/RefDateTime.d.ts +2 -0
  363. package/dist/RefDateTime.d.ts.map +1 -0
  364. package/dist/RefDateTime.js +1 -0
  365. package/dist/RefDuration.d.ts +2 -0
  366. package/dist/RefDuration.d.ts.map +1 -0
  367. package/dist/RefDuration.js +1 -0
  368. package/dist/RefGraph.d.ts +2 -0
  369. package/dist/RefGraph.d.ts.map +1 -0
  370. package/dist/RefGraph.js +1 -0
  371. package/dist/RefHashMap.d.ts +2 -0
  372. package/dist/RefHashMap.d.ts.map +1 -0
  373. package/dist/RefHashMap.js +1 -0
  374. package/dist/RefHashRing.d.ts +2 -0
  375. package/dist/RefHashRing.d.ts.map +1 -0
  376. package/dist/RefHashRing.js +1 -0
  377. package/dist/RefHashSet.d.ts +2 -0
  378. package/dist/RefHashSet.d.ts.map +1 -0
  379. package/dist/RefHashSet.js +1 -0
  380. package/dist/RefIterable.d.ts +2 -0
  381. package/dist/RefIterable.d.ts.map +1 -0
  382. package/dist/RefIterable.js +1 -0
  383. package/dist/RefOption.d.ts +2 -0
  384. package/dist/RefOption.d.ts.map +1 -0
  385. package/dist/RefOption.js +1 -0
  386. package/dist/RefRecord.d.ts +2 -0
  387. package/dist/RefRecord.d.ts.map +1 -0
  388. package/dist/RefRecord.js +1 -0
  389. package/dist/RefResult.d.ts +2 -0
  390. package/dist/RefResult.d.ts.map +1 -0
  391. package/dist/RefResult.js +1 -0
  392. package/dist/RefString.d.ts +2 -0
  393. package/dist/RefString.d.ts.map +1 -0
  394. package/dist/RefString.js +1 -0
  395. package/dist/RefStruct.d.ts +2 -0
  396. package/dist/RefStruct.d.ts.map +1 -0
  397. package/dist/RefStruct.js +1 -0
  398. package/dist/RefSubject/Hydration.d.ts +504 -0
  399. package/dist/RefSubject/Hydration.d.ts.map +1 -0
  400. package/dist/RefSubject/Hydration.js +300 -0
  401. package/dist/RefSubject/RefArray.d.ts +382 -35
  402. package/dist/RefSubject/RefArray.d.ts.map +1 -1
  403. package/dist/RefSubject/RefArray.js +374 -40
  404. package/dist/RefSubject/RefBigDecimal.d.ts +241 -21
  405. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -1
  406. package/dist/RefSubject/RefBigDecimal.js +229 -20
  407. package/dist/RefSubject/RefBigInt.d.ts +181 -16
  408. package/dist/RefSubject/RefBigInt.d.ts.map +1 -1
  409. package/dist/RefSubject/RefBigInt.js +169 -15
  410. package/dist/RefSubject/RefBoolean.d.ts +181 -16
  411. package/dist/RefSubject/RefBoolean.d.ts.map +1 -1
  412. package/dist/RefSubject/RefBoolean.js +169 -15
  413. package/dist/RefSubject/RefCause.d.ts +133 -12
  414. package/dist/RefSubject/RefCause.d.ts.map +1 -1
  415. package/dist/RefSubject/RefCause.js +121 -11
  416. package/dist/RefSubject/RefChunk.d.ts +481 -76
  417. package/dist/RefSubject/RefChunk.d.ts.map +1 -1
  418. package/dist/RefSubject/RefChunk.js +471 -75
  419. package/dist/RefSubject/RefDateTime.d.ts +137 -16
  420. package/dist/RefSubject/RefDateTime.d.ts.map +1 -1
  421. package/dist/RefSubject/RefDateTime.js +122 -12
  422. package/dist/RefSubject/RefDuration.d.ts +169 -15
  423. package/dist/RefSubject/RefDuration.d.ts.map +1 -1
  424. package/dist/RefSubject/RefDuration.js +157 -14
  425. package/dist/RefSubject/RefGraph.d.ts +349 -35
  426. package/dist/RefSubject/RefGraph.d.ts.map +1 -1
  427. package/dist/RefSubject/RefGraph.js +334 -32
  428. package/dist/RefSubject/RefHashMap.d.ts +323 -28
  429. package/dist/RefSubject/RefHashMap.d.ts.map +1 -1
  430. package/dist/RefSubject/RefHashMap.js +317 -29
  431. package/dist/RefSubject/RefHashRing.d.ts +159 -15
  432. package/dist/RefSubject/RefHashRing.d.ts.map +1 -1
  433. package/dist/RefSubject/RefHashRing.js +145 -12
  434. package/dist/RefSubject/RefHashSet.d.ts +251 -22
  435. package/dist/RefSubject/RefHashSet.d.ts.map +1 -1
  436. package/dist/RefSubject/RefHashSet.js +238 -20
  437. package/dist/RefSubject/RefIterable.d.ts +358 -32
  438. package/dist/RefSubject/RefIterable.d.ts.map +1 -1
  439. package/dist/RefSubject/RefIterable.js +350 -30
  440. package/dist/RefSubject/RefOption.d.ts +157 -14
  441. package/dist/RefSubject/RefOption.d.ts.map +1 -1
  442. package/dist/RefSubject/RefOption.js +145 -13
  443. package/dist/RefSubject/RefRecord.d.ts +402 -64
  444. package/dist/RefSubject/RefRecord.d.ts.map +1 -1
  445. package/dist/RefSubject/RefRecord.js +364 -39
  446. package/dist/RefSubject/RefResult.d.ts +167 -35
  447. package/dist/RefSubject/RefResult.d.ts.map +1 -1
  448. package/dist/RefSubject/RefResult.js +133 -12
  449. package/dist/RefSubject/RefString.d.ts +205 -18
  450. package/dist/RefSubject/RefString.d.ts.map +1 -1
  451. package/dist/RefSubject/RefString.js +193 -17
  452. package/dist/RefSubject/RefStruct.d.ts +169 -14
  453. package/dist/RefSubject/RefStruct.d.ts.map +1 -1
  454. package/dist/RefSubject/RefStruct.js +157 -13
  455. package/dist/RefSubject/RefSubject.d.ts +1242 -43
  456. package/dist/RefSubject/RefSubject.d.ts.map +1 -1
  457. package/dist/RefSubject/RefSubject.js +1012 -86
  458. package/dist/RefSubject/RefTrie.d.ts +323 -37
  459. package/dist/RefSubject/RefTrie.d.ts.map +1 -1
  460. package/dist/RefSubject/RefTrie.js +311 -31
  461. package/dist/RefSubject/RefTuple.d.ts +127 -11
  462. package/dist/RefSubject/RefTuple.d.ts.map +1 -1
  463. package/dist/RefSubject/RefTuple.js +114 -9
  464. package/dist/RefSubject/index.d.ts +1 -0
  465. package/dist/RefSubject/index.d.ts.map +1 -1
  466. package/dist/RefSubject/index.js +1 -0
  467. package/dist/RefSubject.d.ts +2 -1
  468. package/dist/RefSubject.d.ts.map +1 -1
  469. package/dist/RefSubject.js +2 -1
  470. package/dist/RefTrie.d.ts +2 -0
  471. package/dist/RefTrie.d.ts.map +1 -0
  472. package/dist/RefTrie.js +1 -0
  473. package/dist/RefTuple.d.ts +2 -0
  474. package/dist/RefTuple.d.ts.map +1 -0
  475. package/dist/RefTuple.js +1 -0
  476. package/dist/Sink/Sink.d.ts +396 -23
  477. package/dist/Sink/Sink.d.ts.map +1 -1
  478. package/dist/Sink/Sink.js +55 -7
  479. package/dist/Sink/combinators.d.ts +789 -3
  480. package/dist/Sink/combinators.d.ts.map +1 -1
  481. package/dist/Sink/combinators.js +812 -7
  482. package/dist/Subject/Subject.d.ts +1022 -27
  483. package/dist/Subject/Subject.d.ts.map +1 -1
  484. package/dist/Subject/Subject.js +909 -43
  485. package/dist/Versioned/Versioned.d.ts +475 -25
  486. package/dist/Versioned/Versioned.d.ts.map +1 -1
  487. package/dist/Versioned/Versioned.js +298 -46
  488. package/dist/index.d.ts +22 -3
  489. package/dist/index.d.ts.map +1 -1
  490. package/dist/index.js +22 -3
  491. package/package.json +125 -11
  492. package/dist/Fx/constructors/fromYieldable.d.ts +0 -12
  493. package/dist/Fx/constructors/fromYieldable.d.ts.map +0 -1
  494. package/dist/Fx/constructors/fromYieldable.js +0 -12
  495. package/src/Fx/Fx.ts +0 -164
  496. package/src/Fx/TypeId.ts +0 -25
  497. package/src/Fx/combinators/catch.ts +0 -165
  498. package/src/Fx/combinators/causes.ts +0 -23
  499. package/src/Fx/combinators/compact.ts +0 -15
  500. package/src/Fx/combinators/continueWith.ts +0 -78
  501. package/src/Fx/combinators/ensuring.ts +0 -23
  502. package/src/Fx/combinators/exhaustLatestMap.ts +0 -74
  503. package/src/Fx/combinators/exhaustLatestMapEffect.ts +0 -25
  504. package/src/Fx/combinators/exhaustMap.ts +0 -36
  505. package/src/Fx/combinators/exhaustMapEffect.ts +0 -23
  506. package/src/Fx/combinators/exit.ts +0 -15
  507. package/src/Fx/combinators/filter.ts +0 -22
  508. package/src/Fx/combinators/filterEffect.ts +0 -31
  509. package/src/Fx/combinators/filterMap.ts +0 -23
  510. package/src/Fx/combinators/filterMapEffect.ts +0 -32
  511. package/src/Fx/combinators/filterMapLoop.ts +0 -35
  512. package/src/Fx/combinators/filterMapLoopCause.ts +0 -36
  513. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +0 -46
  514. package/src/Fx/combinators/filterMapLoopEffect.ts +0 -36
  515. package/src/Fx/combinators/flatMap.ts +0 -51
  516. package/src/Fx/combinators/flatMapConcurrently.ts +0 -36
  517. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +0 -26
  518. package/src/Fx/combinators/flatMapEffect.ts +0 -42
  519. package/src/Fx/combinators/flip.ts +0 -14
  520. package/src/Fx/combinators/gen.ts +0 -24
  521. package/src/Fx/combinators/genScoped.ts +0 -24
  522. package/src/Fx/combinators/index.ts +0 -51
  523. package/src/Fx/combinators/keyed.ts +0 -369
  524. package/src/Fx/combinators/loop.ts +0 -27
  525. package/src/Fx/combinators/loopCause.ts +0 -34
  526. package/src/Fx/combinators/loopCauseEffect.ts +0 -36
  527. package/src/Fx/combinators/loopEffect.ts +0 -34
  528. package/src/Fx/combinators/map.ts +0 -22
  529. package/src/Fx/combinators/mapEffect.ts +0 -32
  530. package/src/Fx/combinators/mergeAll.ts +0 -22
  531. package/src/Fx/combinators/mergeOrdered.ts +0 -123
  532. package/src/Fx/combinators/onError.ts +0 -40
  533. package/src/Fx/combinators/onExit.ts +0 -82
  534. package/src/Fx/combinators/onInterrupt.ts +0 -87
  535. package/src/Fx/combinators/provide.ts +0 -62
  536. package/src/Fx/combinators/skip.ts +0 -20
  537. package/src/Fx/combinators/skipRepeats.ts +0 -15
  538. package/src/Fx/combinators/skipRepeatsWith.ts +0 -40
  539. package/src/Fx/combinators/slice.ts +0 -32
  540. package/src/Fx/combinators/switchMap.ts +0 -55
  541. package/src/Fx/combinators/switchMapEffect.ts +0 -25
  542. package/src/Fx/combinators/take.ts +0 -17
  543. package/src/Fx/combinators/takeUntil.ts +0 -50
  544. package/src/Fx/combinators/tapEffect.ts +0 -39
  545. package/src/Fx/combinators/tuple.ts +0 -79
  546. package/src/Fx/combinators/unwrap.ts +0 -21
  547. package/src/Fx/combinators/unwrapScoped.ts +0 -26
  548. package/src/Fx/combinators/when.ts +0 -64
  549. package/src/Fx/combinators/withSpan.ts +0 -24
  550. package/src/Fx/constructors/at.ts +0 -23
  551. package/src/Fx/constructors/die.ts +0 -17
  552. package/src/Fx/constructors/empty.ts +0 -10
  553. package/src/Fx/constructors/fail.ts +0 -14
  554. package/src/Fx/constructors/failCause.ts +0 -14
  555. package/src/Fx/constructors/fn.ts +0 -245
  556. package/src/Fx/constructors/fromEffect.ts +0 -24
  557. package/src/Fx/constructors/fromFailures.ts +0 -19
  558. package/src/Fx/constructors/fromIterable.ts +0 -15
  559. package/src/Fx/constructors/fromSchedule.ts +0 -18
  560. package/src/Fx/constructors/fromYieldable.ts +0 -17
  561. package/src/Fx/constructors/index.ts +0 -15
  562. package/src/Fx/constructors/interrupt.ts +0 -13
  563. package/src/Fx/constructors/make.ts +0 -103
  564. package/src/Fx/constructors/periodic.ts +0 -15
  565. package/src/Fx/constructors/succeed.ts +0 -37
  566. package/src/Fx/constructors/suspend.ts +0 -6
  567. package/src/Fx/index.ts +0 -6
  568. package/src/Fx/internal/DeferredRef.ts +0 -87
  569. package/src/Fx/internal/UnionToTuple.ts +0 -12
  570. package/src/Fx/internal/diff.ts +0 -191
  571. package/src/Fx/internal/equivalence.ts +0 -12
  572. package/src/Fx/internal/multicast.ts +0 -51
  573. package/src/Fx/internal/ring-buffer.ts +0 -60
  574. package/src/Fx/internal/scope.ts +0 -58
  575. package/src/Fx/internal/yieldable.ts +0 -31
  576. package/src/Fx/run/collect.ts +0 -79
  577. package/src/Fx/run/first.ts +0 -20
  578. package/src/Fx/run/fork.ts +0 -40
  579. package/src/Fx/run/index.ts +0 -5
  580. package/src/Fx/run/observe.ts +0 -114
  581. package/src/Fx/run/runPromise.ts +0 -32
  582. package/src/Fx/stream.ts +0 -42
  583. package/src/Fx.catch.test.ts +0 -61
  584. package/src/Fx.fn.test.ts +0 -51
  585. package/src/Fx.lifecycle.test.ts +0 -80
  586. package/src/Fx.test.ts +0 -71
  587. package/src/Fx.ts +0 -1
  588. package/src/Push/Push.ts +0 -903
  589. package/src/Push/index.ts +0 -1
  590. package/src/Push.test.ts +0 -26
  591. package/src/Push.ts +0 -1
  592. package/src/RefSubject/RefArray.ts +0 -512
  593. package/src/RefSubject/RefBigDecimal.test.ts +0 -56
  594. package/src/RefSubject/RefBigDecimal.ts +0 -295
  595. package/src/RefSubject/RefBigInt.test.ts +0 -56
  596. package/src/RefSubject/RefBigInt.ts +0 -189
  597. package/src/RefSubject/RefBoolean.test.ts +0 -57
  598. package/src/RefSubject/RefBoolean.ts +0 -185
  599. package/src/RefSubject/RefCause.test.ts +0 -53
  600. package/src/RefSubject/RefCause.ts +0 -146
  601. package/src/RefSubject/RefChunk.ts +0 -510
  602. package/src/RefSubject/RefDateTime.test.ts +0 -43
  603. package/src/RefSubject/RefDateTime.ts +0 -264
  604. package/src/RefSubject/RefDuration.test.ts +0 -49
  605. package/src/RefSubject/RefDuration.ts +0 -188
  606. package/src/RefSubject/RefGraph.ts +0 -650
  607. package/src/RefSubject/RefHashMap.ts +0 -465
  608. package/src/RefSubject/RefHashRing.ts +0 -262
  609. package/src/RefSubject/RefHashSet.ts +0 -308
  610. package/src/RefSubject/RefIterable.ts +0 -445
  611. package/src/RefSubject/RefOption.test.ts +0 -67
  612. package/src/RefSubject/RefOption.ts +0 -193
  613. package/src/RefSubject/RefRecord.ts +0 -612
  614. package/src/RefSubject/RefResult.test.ts +0 -63
  615. package/src/RefSubject/RefResult.ts +0 -209
  616. package/src/RefSubject/RefString.test.ts +0 -61
  617. package/src/RefSubject/RefString.ts +0 -256
  618. package/src/RefSubject/RefStruct.test.ts +0 -60
  619. package/src/RefSubject/RefStruct.ts +0 -253
  620. package/src/RefSubject/RefSubject.ts +0 -2545
  621. package/src/RefSubject/RefTrie.ts +0 -356
  622. package/src/RefSubject/RefTuple.test.ts +0 -60
  623. package/src/RefSubject/RefTuple.ts +0 -231
  624. package/src/RefSubject/index.ts +0 -21
  625. package/src/RefSubject.test.ts +0 -65
  626. package/src/RefSubject.ts +0 -1
  627. package/src/Sink/Sink.ts +0 -159
  628. package/src/Sink/combinators.ts +0 -993
  629. package/src/Sink/index.ts +0 -2
  630. package/src/Sink.ts +0 -1
  631. package/src/Subject/Subject.ts +0 -441
  632. package/src/Subject/index.ts +0 -1
  633. package/src/Subject.test.ts +0 -47
  634. package/src/Subject.ts +0 -1
  635. package/src/Versioned/Versioned.ts +0 -521
  636. package/src/Versioned/index.ts +0 -1
  637. package/src/Versioned.test.ts +0 -23
  638. package/src/Versioned.ts +0 -1
  639. package/src/index.ts +0 -7
  640. package/tsconfig.json +0 -6
@@ -2,14 +2,27 @@
2
2
  * Extensions to RefSubject for working with Iterable values
3
3
  * @since 1.18.0
4
4
  */
5
+ import { Result } from "effect";
5
6
  import { equals } from "effect/Equal";
6
7
  import { dual } from "effect/Function";
7
8
  import * as Iterable from "effect/Iterable";
9
+ import * as Option from "effect/Option";
8
10
  import * as RefSubject from "./RefSubject.js";
9
11
  /**
10
12
  * Creates a new `RefIterable` from an Iterable, `Effect`, or `Fx`.
13
+ * @remarks
14
+ * ## Why
15
+ *
16
+ * Creates iterable state with equality suited to that Effect data type, so unchanged values do not
17
+ * produce redundant pushed updates.
18
+ *
19
+ * ## Ownership and lifetime
20
+ *
21
+ * The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
22
+ * and cleanup; source failures and services stay on reads and pushes.
23
+ *
11
24
  * @since 1.18.0
12
- * @category constructors
25
+ * @category Constructors
13
26
  */
14
27
  export function make(initial) {
15
28
  return RefSubject.make(initial, { eq: equals });
@@ -19,118 +32,282 @@ export function make(initial) {
19
32
  // ========================================
20
33
  /**
21
34
  * Prepend a value to the current state of a RefIterable.
35
+ * @remarks
36
+ * ## Why
37
+ *
38
+ * Expresses prepend as one ordered iterable transition; readers never observe the intermediate
39
+ * collection used to build the result.
40
+ *
41
+ * ## Ownership and lifetime
42
+ *
43
+ * Running prepend performs one serialized iterable transition and resolves with its committed
44
+ * value. It acquires no resource; failures and services remain those of the source ref.
45
+ *
22
46
  * @since 1.18.0
23
- * @category combinators
47
+ * @category State updates
24
48
  */
25
49
  export const prepend = dual(2, function prepend(ref, value) {
26
50
  return RefSubject.update(ref, Iterable.prepend(value));
27
51
  });
28
52
  /**
29
53
  * Prepend an iterable of values to the current state of a RefIterable.
54
+ * @remarks
55
+ * ## Why
56
+ *
57
+ * Expresses prepend all as one ordered iterable transition; readers never observe the intermediate
58
+ * collection used to build the result.
59
+ *
60
+ * ## Ownership and lifetime
61
+ *
62
+ * Running prepend all performs one serialized iterable transition and resolves with its committed
63
+ * value. It acquires no resource; failures and services remain those of the source ref.
64
+ *
30
65
  * @since 1.18.0
31
- * @category combinators
66
+ * @category State updates
32
67
  */
33
68
  export const prependAll = dual(2, function prependAll(ref, value) {
34
69
  return RefSubject.update(ref, Iterable.prependAll(value));
35
70
  });
36
71
  /**
37
72
  * Append a value to the current state of a RefIterable.
73
+ * @remarks
74
+ * ## Why
75
+ *
76
+ * Expresses append as one ordered iterable transition; readers never observe the intermediate
77
+ * collection used to build the result.
78
+ *
79
+ * ## Ownership and lifetime
80
+ *
81
+ * Running append performs one serialized iterable transition and resolves with its committed
82
+ * value. It acquires no resource; failures and services remain those of the source ref.
83
+ *
38
84
  * @since 1.18.0
39
- * @category combinators
85
+ * @category State updates
40
86
  */
41
87
  export const append = dual(2, function append(ref, value) {
42
88
  return RefSubject.update(ref, Iterable.append(value));
43
89
  });
44
90
  /**
45
91
  * Append an iterable of values to the current state of a RefIterable.
92
+ * @remarks
93
+ * ## Why
94
+ *
95
+ * Expresses append all as one ordered iterable transition; readers never observe the intermediate
96
+ * collection used to build the result.
97
+ *
98
+ * ## Ownership and lifetime
99
+ *
100
+ * Running append all performs one serialized iterable transition and resolves with its committed
101
+ * value. It acquires no resource; failures and services remain those of the source ref.
102
+ *
46
103
  * @since 1.18.0
47
- * @category combinators
104
+ * @category State updates
48
105
  */
49
106
  export const appendAll = dual(2, function appendAll(ref, value) {
50
107
  return RefSubject.update(ref, Iterable.appendAll(value));
51
108
  });
52
109
  /**
53
110
  * Drop the first `n` values from a RefIterable.
111
+ * @remarks
112
+ * ## Why
113
+ *
114
+ * Applies drop to the committed iterable value and publishes only the result, preserving its
115
+ * element order and equality rules.
116
+ *
117
+ * ## Ownership and lifetime
118
+ *
119
+ * Running drop performs one serialized iterable transition and resolves with its committed value.
120
+ * It acquires no resource; failures and services remain those of the source ref.
121
+ *
54
122
  * @since 1.18.0
55
- * @category combinators
123
+ * @category State updates
56
124
  */
57
125
  export const drop = dual(2, function drop(ref, n) {
58
126
  return RefSubject.update(ref, Iterable.drop(n));
59
127
  });
60
128
  /**
61
129
  * Take the first `n` values from a RefIterable.
130
+ * @remarks
131
+ * ## Why
132
+ *
133
+ * Applies take to the committed iterable value and publishes only the result, preserving its
134
+ * element order and equality rules.
135
+ *
136
+ * ## Ownership and lifetime
137
+ *
138
+ * Running take performs one serialized iterable transition and resolves with its committed value.
139
+ * It acquires no resource; failures and services remain those of the source ref.
140
+ *
62
141
  * @since 1.18.0
63
- * @category combinators
142
+ * @category State updates
64
143
  */
65
144
  export const take = dual(2, function take(ref, n) {
66
145
  return RefSubject.update(ref, Iterable.take(n));
67
146
  });
68
147
  /**
69
148
  * Take values from a RefIterable while a predicate is true.
149
+ * @remarks
150
+ * ## Why
151
+ *
152
+ * Applies take while to the committed iterable value and publishes only the result, preserving its
153
+ * element order and equality rules.
154
+ *
155
+ * ## Ownership and lifetime
156
+ *
157
+ * Running take while performs one serialized iterable transition and resolves with its committed
158
+ * value. It acquires no resource; failures and services remain those of the source ref.
159
+ *
70
160
  * @since 1.18.0
71
- * @category combinators
161
+ * @category State updates
72
162
  */
73
163
  export const takeWhile = dual(2, function takeWhile(ref, predicate) {
74
164
  return RefSubject.update(ref, Iterable.takeWhile(predicate));
75
165
  });
76
166
  /**
77
167
  * Filter the values of a RefIterable (mutating).
168
+ * @remarks
169
+ * ## Why
170
+ *
171
+ * Applies filter to the committed Iterable through `RefSubject.update` and publishes one coherent
172
+ * replacement; this is a mutation, not a read-only Computed projection.
173
+ *
174
+ * ## Ownership and lifetime
175
+ *
176
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
177
+ * acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
78
178
  * @since 1.18.0
79
- * @category combinators
179
+ * @category State updates
80
180
  */
81
181
  export const filter = dual(2, function filter(ref, predicate) {
82
182
  return RefSubject.update(ref, Iterable.filter(predicate));
83
183
  });
84
184
  /**
85
185
  * Map (Endomorphic) the values of a RefIterable.
186
+ * @remarks
187
+ * ## Why
188
+ *
189
+ * Applies map to the committed Iterable through `RefSubject.update` and publishes one coherent
190
+ * replacement; this is a mutation, not a read-only Computed projection.
191
+ *
192
+ * ## Ownership and lifetime
193
+ *
194
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
195
+ * acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
86
196
  * @since 1.18.0
87
- * @category combinators
197
+ * @category State updates
88
198
  */
89
199
  export const map = dual(2, function map(ref, f) {
90
200
  return RefSubject.update(ref, Iterable.map(f));
91
201
  });
92
202
  /**
93
203
  * Remove adjacent duplicate values from a RefIterable.
204
+ * @remarks
205
+ * ## Why
206
+ *
207
+ * Derives the reordered iterable through its Effect collection operation while retaining
208
+ * RefSubject equality and version tracking.
209
+ *
210
+ * ## Ownership and lifetime
211
+ *
212
+ * Running dedupe adjacent performs one serialized iterable transition and resolves with its
213
+ * committed value. It acquires no resource; failures and services remain those of the source ref.
214
+ *
94
215
  * @since 1.18.0
95
- * @category combinators
216
+ * @category State updates
96
217
  */
97
218
  export const dedupeAdjacent = (ref) => RefSubject.update(ref, Iterable.dedupeAdjacent);
98
219
  /**
99
220
  * Intersperse a separator between elements.
221
+ * @remarks
222
+ * ## Why
223
+ *
224
+ * Intersperse a separator between elements. The operation remains attached to the RefSubject's
225
+ * versioned state boundary.
226
+ *
227
+ * ## Ownership and lifetime
228
+ *
229
+ * Running intersperse performs one serialized iterable transition and resolves with its committed
230
+ * value. It acquires no resource; failures and services remain those of the source ref.
231
+ *
100
232
  * @since 1.18.0
101
- * @category combinators
233
+ * @category State updates
102
234
  */
103
235
  export const intersperse = dual(2, function intersperse(ref, middle) {
104
236
  return RefSubject.update(ref, Iterable.intersperse(middle));
105
237
  });
106
238
  /**
107
239
  * Repeat the iterable n times.
240
+ * @remarks
241
+ * ## Why
242
+ *
243
+ * Repeat the iterable n times. The operation remains attached to the RefSubject's versioned state
244
+ * boundary.
245
+ *
246
+ * ## Ownership and lifetime
247
+ *
248
+ * Running repeat performs one serialized iterable transition and resolves with its committed
249
+ * value. It acquires no resource; failures and services remain those of the source ref.
250
+ *
108
251
  * @since 1.18.0
109
- * @category combinators
252
+ * @category State updates
110
253
  */
111
254
  export const repeat = dual(2, function repeat(ref, n) {
112
255
  return RefSubject.update(ref, Iterable.repeat(n));
113
256
  });
114
257
  /**
115
258
  * FlatMap (endomorphic).
259
+ * @remarks
260
+ * ## Why
261
+ *
262
+ * FlatMap (endomorphic). The operation remains attached to the RefSubject's versioned state
263
+ * boundary.
264
+ *
265
+ * ## Ownership and lifetime
266
+ *
267
+ * Running flat map performs one serialized iterable transition and resolves with its committed
268
+ * value. It acquires no resource; failures and services remain those of the source ref.
269
+ *
116
270
  * @since 1.18.0
117
- * @category combinators
271
+ * @category State updates
118
272
  */
119
273
  export const flatMap = dual(2, function flatMap(ref, f) {
120
274
  return RefSubject.update(ref, Iterable.flatMap(f));
121
275
  });
122
276
  /**
123
277
  * Filter and map values in place.
278
+ * @remarks
279
+ * ## Why
280
+ *
281
+ * Applies `filterMap` to the committed Iterable through `RefSubject.update` and publishes one
282
+ * coherent replacement; this is a mutation, not a read-only Computed projection.
283
+ *
284
+ * ## Ownership and lifetime
285
+ *
286
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
287
+ * acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
124
288
  * @since 1.18.0
125
- * @category combinators
289
+ * @category State updates
126
290
  */
127
291
  export const filterMap = dual(2, function filterMap(ref, f) {
128
- return RefSubject.update(ref, Iterable.filterMap(f));
292
+ return RefSubject.update(ref, Iterable.filterMap((a, index) => Option.match(f(a, index), {
293
+ onNone: () => Result.failVoid,
294
+ onSome: (b) => Result.succeed(b),
295
+ })));
129
296
  });
130
297
  /**
131
298
  * Extract Some values from Option iterable.
299
+ * @remarks
300
+ * ## Why
301
+ *
302
+ * Applies `getSomes` to the committed Iterable through `RefSubject.update` and publishes one
303
+ * coherent replacement; this is a mutation, not a read-only Computed projection.
304
+ *
305
+ * ## Ownership and lifetime
306
+ *
307
+ * The Effect starts when run, participates in the source ref's serialized update boundary, and
308
+ * acquires no resource. It returns the committed Iterable and retains the ref's E and R channels.
132
309
  * @since 1.18.0
133
- * @category combinators
310
+ * @category State updates
134
311
  */
135
312
  export const getSomes = (ref) => RefSubject.update(ref, (iter) => Iterable.getSomes(iter));
136
313
  // ========================================
@@ -138,76 +315,186 @@ export const getSomes = (ref) => RefSubject.update(ref, (iter) => Iterable.getSo
138
315
  // ========================================
139
316
  /**
140
317
  * Check if a RefIterable is empty.
318
+ * @remarks
319
+ * ## Why
320
+ *
321
+ * Makes is empty a live projection of the iterable; consumers can sample it now or observe it
322
+ * without copying the source state.
323
+ *
324
+ * ## Ownership and lifetime
325
+ *
326
+ * The is empty view retains no independent state. An Effect read samples the source once; Fx
327
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
328
+ *
141
329
  * @since 1.18.0
142
- * @category computed
330
+ * @category State predicates
143
331
  */
144
332
  export const isEmpty = (ref) => RefSubject.map(ref, Iterable.isEmpty);
145
333
  /**
146
334
  * Get the current size of a RefIterable.
335
+ * @remarks
336
+ * ## Why
337
+ *
338
+ * Makes size a live projection of the iterable; consumers can sample it now or observe it without
339
+ * copying the source state.
340
+ *
341
+ * ## Ownership and lifetime
342
+ *
343
+ * The size view retains no independent state. An Effect read samples the source once; Fx
344
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
345
+ *
147
346
  * @since 1.18.0
148
- * @category computed
347
+ * @category Derived queries
149
348
  */
150
349
  export const size = (ref) => RefSubject.map(ref, Iterable.size);
151
350
  /**
152
351
  * Map the values of a RefIterable to a different type.
352
+ * @remarks
353
+ * ## Why
354
+ *
355
+ * Projects iterable state with map values for both current reads and future pushes, avoiding a
356
+ * second mutable cache of the derived value.
357
+ *
358
+ * ## Ownership and lifetime
359
+ *
360
+ * The map values view retains no independent state. An Effect read samples the source once; Fx
361
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
362
+ *
153
363
  * @since 1.18.0
154
- * @category computed
364
+ * @category Derived queries
155
365
  */
156
366
  export const mapValues = dual(2, function mapValues(ref, f) {
157
367
  return RefSubject.map(ref, Iterable.map(f));
158
368
  });
159
369
  /**
160
370
  * Filter the values of a RefIterable creating a Computed value.
371
+ * @remarks
372
+ * ## Why
373
+ *
374
+ * Projects iterable state with filter values for both current reads and future pushes, avoiding a
375
+ * second mutable cache of the derived value.
376
+ *
377
+ * ## Ownership and lifetime
378
+ *
379
+ * The filter values view retains no independent state. An Effect read samples the source once; Fx
380
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
381
+ *
161
382
  * @since 1.18.0
162
- * @category computed
383
+ * @category Derived queries
163
384
  */
164
385
  export const filterValues = dual(2, function filterValues(ref, predicate) {
165
386
  return RefSubject.map(ref, Iterable.filter(predicate));
166
387
  });
167
388
  /**
168
389
  * Group the values of a RefIterable by a key.
390
+ * @remarks
391
+ * ## Why
392
+ *
393
+ * Projects iterable state with group by for both current reads and future pushes, avoiding a
394
+ * second mutable cache of the derived value.
395
+ *
396
+ * ## Ownership and lifetime
397
+ *
398
+ * The group by view retains no independent state. An Effect read samples the source once; Fx
399
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
400
+ *
169
401
  * @since 1.18.0
170
- * @category computed
402
+ * @category Derived queries
171
403
  */
172
404
  export const groupBy = dual(2, function groupBy(ref, f) {
173
405
  return RefSubject.map(ref, Iterable.groupBy(f));
174
406
  });
175
407
  /**
176
408
  * Reduce the values of a RefIterable to a single value.
409
+ * @remarks
410
+ * ## Why
411
+ *
412
+ * Makes reduce a live projection of the iterable; consumers can sample it now or observe it
413
+ * without copying the source state.
414
+ *
415
+ * ## Ownership and lifetime
416
+ *
417
+ * The reduce view retains no independent state. An Effect read samples the source once; Fx
418
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
419
+ *
177
420
  * @since 1.18.0
178
- * @category computed
421
+ * @category Derived queries
179
422
  */
180
423
  export const reduce = dual(3, function reduce(ref, b, f) {
181
424
  return RefSubject.map(ref, Iterable.reduce(b, f));
182
425
  });
183
426
  /**
184
427
  * Check if any value satisfies a predicate.
428
+ * @remarks
429
+ * ## Why
430
+ *
431
+ * Makes some a live projection of the iterable; consumers can sample it now or observe it without
432
+ * copying the source state.
433
+ *
434
+ * ## Ownership and lifetime
435
+ *
436
+ * The some view retains no independent state. An Effect read samples the source once; Fx
437
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
438
+ *
185
439
  * @since 1.18.0
186
- * @category computed
440
+ * @category State predicates
187
441
  */
188
442
  export const some = dual(2, function some(ref, predicate) {
189
443
  return RefSubject.map(ref, Iterable.some(predicate));
190
444
  });
191
445
  /**
192
446
  * Check if a RefIterable contains a value.
447
+ * @remarks
448
+ * ## Why
449
+ *
450
+ * Makes contains a live projection of the iterable; consumers can sample it now or observe it
451
+ * without copying the source state.
452
+ *
453
+ * ## Ownership and lifetime
454
+ *
455
+ * The contains view retains no independent state. An Effect read samples the source once; Fx
456
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
457
+ *
193
458
  * @since 1.18.0
194
- * @category computed
459
+ * @category State predicates
195
460
  */
196
461
  export const contains = dual(2, function contains(ref, value) {
197
462
  return RefSubject.map(ref, Iterable.contains(value));
198
463
  });
199
464
  /**
200
465
  * Count elements satisfying a predicate.
466
+ * @remarks
467
+ * ## Why
468
+ *
469
+ * Makes count by a live projection of the iterable; consumers can sample it now or observe it
470
+ * without copying the source state.
471
+ *
472
+ * ## Ownership and lifetime
473
+ *
474
+ * The count by view retains no independent state. An Effect read samples the source once; Fx
475
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
476
+ *
201
477
  * @since 1.18.0
202
- * @category computed
478
+ * @category Derived queries
203
479
  */
204
480
  export const countBy = dual(2, function countBy(ref, predicate) {
205
481
  return RefSubject.map(ref, Iterable.countBy(predicate));
206
482
  });
207
483
  /**
208
484
  * Convert to array.
485
+ * @remarks
486
+ * ## Why
487
+ *
488
+ * Projects iterable state with to array for both current reads and future pushes, avoiding a
489
+ * second mutable cache of the derived value.
490
+ *
491
+ * ## Ownership and lifetime
492
+ *
493
+ * The to array view retains no independent state. An Effect read samples the source once; Fx
494
+ * observation follows later pushes and its observing Scope owns subscription cleanup.
495
+ *
209
496
  * @since 1.18.0
210
- * @category computed
497
+ * @category Derived queries
211
498
  */
212
499
  export const toArray = (ref) => RefSubject.map(ref, (iter) => Array.from(iter));
213
500
  // ========================================
@@ -215,22 +502,55 @@ export const toArray = (ref) => RefSubject.map(ref, (iter) => Array.from(iter));
215
502
  // ========================================
216
503
  /**
217
504
  * Get the first element of a RefIterable as a Filtered.
505
+ * @remarks
506
+ * ## Why
507
+ *
508
+ * Models the possibly absent result of head as Filtered state, so absence stays explicit while
509
+ * later source versions can make a value available.
510
+ *
511
+ * ## Ownership and lifetime
512
+ *
513
+ * The head view retains no independent value. Its Effect read fails with NoSuchElement
514
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
515
+ *
218
516
  * @since 1.18.0
219
- * @category filtered
517
+ * @category Optional queries
220
518
  */
221
519
  export const head = (ref) => RefSubject.filterMap(ref, Iterable.head);
222
520
  /**
223
521
  * Find the first value satisfying a predicate.
522
+ * @remarks
523
+ * ## Why
524
+ *
525
+ * Models the possibly absent result of find first as Filtered state, so absence stays explicit
526
+ * while later source versions can make a value available.
527
+ *
528
+ * ## Ownership and lifetime
529
+ *
530
+ * The find first view retains no independent value. Its Effect read fails with NoSuchElement
531
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
532
+ *
224
533
  * @since 1.18.0
225
- * @category filtered
534
+ * @category Optional queries
226
535
  */
227
536
  export const findFirst = dual(2, function findFirst(ref, predicate) {
228
537
  return RefSubject.filterMap(ref, Iterable.findFirst(predicate));
229
538
  });
230
539
  /**
231
540
  * Find the last value satisfying a predicate.
541
+ * @remarks
542
+ * ## Why
543
+ *
544
+ * Models the possibly absent result of find last as Filtered state, so absence stays explicit
545
+ * while later source versions can make a value available.
546
+ *
547
+ * ## Ownership and lifetime
548
+ *
549
+ * The find last view retains no independent value. Its Effect read fails with NoSuchElement
550
+ * while absent; the observing Scope owns and finalizes its Fx subscription.
551
+ *
232
552
  * @since 1.18.0
233
- * @category filtered
553
+ * @category Optional queries
234
554
  */
235
555
  export const findLast = dual(2, function findLast(ref, predicate) {
236
556
  return RefSubject.filterMap(ref, Iterable.findLast(predicate));