@typed/fx 2.0.0-beta.1 → 2.0.0-beta.11

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