@typed/fx 1.31.0 → 2.0.0-beta.0

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 (818) hide show
  1. package/README.md +344 -2
  2. package/dist/Fx/Fx.d.ts +96 -0
  3. package/dist/Fx/Fx.d.ts.map +1 -0
  4. package/dist/Fx/Fx.js +35 -0
  5. package/dist/Fx/TypeId.d.ts +20 -0
  6. package/dist/Fx/TypeId.d.ts.map +1 -0
  7. package/dist/Fx/TypeId.js +15 -0
  8. package/dist/Fx/combinators/catch.d.ts +53 -0
  9. package/dist/Fx/combinators/catch.d.ts.map +1 -0
  10. package/dist/Fx/combinators/catch.js +69 -0
  11. package/dist/Fx/combinators/causes.d.ts +12 -0
  12. package/dist/Fx/combinators/causes.d.ts.map +1 -0
  13. package/dist/Fx/combinators/causes.js +16 -0
  14. package/dist/Fx/combinators/compact.d.ts +12 -0
  15. package/dist/Fx/combinators/compact.d.ts.map +1 -0
  16. package/dist/Fx/combinators/compact.js +11 -0
  17. package/dist/Fx/combinators/continueWith.d.ts +51 -0
  18. package/dist/Fx/combinators/continueWith.d.ts.map +1 -0
  19. package/dist/Fx/combinators/continueWith.js +41 -0
  20. package/dist/Fx/combinators/ensuring.d.ts +16 -0
  21. package/dist/Fx/combinators/ensuring.d.ts.map +1 -0
  22. package/dist/Fx/combinators/ensuring.js +13 -0
  23. package/dist/Fx/combinators/exhaustLatestMap.d.ts +15 -0
  24. package/dist/Fx/combinators/exhaustLatestMap.d.ts.map +1 -0
  25. package/dist/Fx/combinators/exhaustLatestMap.js +48 -0
  26. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts +13 -0
  27. package/dist/Fx/combinators/exhaustLatestMapEffect.d.ts.map +1 -0
  28. package/dist/Fx/combinators/exhaustLatestMapEffect.js +14 -0
  29. package/dist/Fx/combinators/exhaustMap.d.ts +11 -0
  30. package/dist/Fx/combinators/exhaustMap.d.ts.map +1 -0
  31. package/dist/Fx/combinators/exhaustMap.js +19 -0
  32. package/dist/Fx/combinators/exhaustMapEffect.d.ts +11 -0
  33. package/dist/Fx/combinators/exhaustMapEffect.d.ts.map +1 -0
  34. package/dist/Fx/combinators/exhaustMapEffect.js +12 -0
  35. package/dist/Fx/combinators/exit.d.ts +12 -0
  36. package/dist/Fx/combinators/exit.d.ts.map +1 -0
  37. package/dist/Fx/combinators/exit.js +11 -0
  38. package/dist/Fx/combinators/filter.d.ts +14 -0
  39. package/dist/Fx/combinators/filter.d.ts.map +1 -0
  40. package/dist/Fx/combinators/filter.js +12 -0
  41. package/dist/Fx/combinators/filterEffect.d.ts +15 -0
  42. package/dist/Fx/combinators/filterEffect.d.ts.map +1 -0
  43. package/dist/Fx/combinators/filterEffect.js +12 -0
  44. package/dist/Fx/combinators/filterMap.d.ts +15 -0
  45. package/dist/Fx/combinators/filterMap.d.ts.map +1 -0
  46. package/dist/Fx/combinators/filterMap.js +12 -0
  47. package/dist/Fx/combinators/filterMapEffect.d.ts +16 -0
  48. package/dist/Fx/combinators/filterMapEffect.d.ts.map +1 -0
  49. package/dist/Fx/combinators/filterMapEffect.js +12 -0
  50. package/dist/Fx/combinators/filterMapLoop.d.ts +17 -0
  51. package/dist/Fx/combinators/filterMapLoop.d.ts.map +1 -0
  52. package/dist/Fx/combinators/filterMapLoop.js +14 -0
  53. package/dist/Fx/combinators/filterMapLoopCause.d.ts +18 -0
  54. package/dist/Fx/combinators/filterMapLoopCause.d.ts.map +1 -0
  55. package/dist/Fx/combinators/filterMapLoopCause.js +14 -0
  56. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts +18 -0
  57. package/dist/Fx/combinators/filterMapLoopCauseEffect.d.ts.map +1 -0
  58. package/dist/Fx/combinators/filterMapLoopCauseEffect.js +13 -0
  59. package/dist/Fx/combinators/filterMapLoopEffect.d.ts +17 -0
  60. package/dist/Fx/combinators/filterMapLoopEffect.d.ts.map +1 -0
  61. package/dist/Fx/combinators/filterMapLoopEffect.js +13 -0
  62. package/dist/Fx/combinators/flatMap.d.ts +23 -0
  63. package/dist/Fx/combinators/flatMap.d.ts.map +1 -0
  64. package/dist/Fx/combinators/flatMap.js +21 -0
  65. package/dist/Fx/combinators/flatMapConcurrently.d.ts +12 -0
  66. package/dist/Fx/combinators/flatMapConcurrently.d.ts.map +1 -0
  67. package/dist/Fx/combinators/flatMapConcurrently.js +22 -0
  68. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts +12 -0
  69. package/dist/Fx/combinators/flatMapConcurrentlyEffect.d.ts.map +1 -0
  70. package/dist/Fx/combinators/flatMapConcurrentlyEffect.js +13 -0
  71. package/dist/Fx/combinators/flatMapEffect.d.ts +24 -0
  72. package/dist/Fx/combinators/flatMapEffect.d.ts.map +1 -0
  73. package/dist/Fx/combinators/flatMapEffect.js +14 -0
  74. package/dist/Fx/combinators/flip.d.ts +11 -0
  75. package/dist/Fx/combinators/flip.d.ts.map +1 -0
  76. package/dist/Fx/combinators/flip.js +11 -0
  77. package/dist/Fx/combinators/gen.d.ts +20 -0
  78. package/dist/Fx/combinators/gen.d.ts.map +1 -0
  79. package/dist/Fx/combinators/gen.js +14 -0
  80. package/dist/Fx/combinators/genScoped.d.ts +20 -0
  81. package/dist/Fx/combinators/genScoped.d.ts.map +1 -0
  82. package/dist/Fx/combinators/genScoped.js +13 -0
  83. package/dist/Fx/combinators/index.d.ts +52 -0
  84. package/dist/Fx/combinators/index.d.ts.map +1 -0
  85. package/dist/Fx/combinators/index.js +51 -0
  86. package/dist/Fx/combinators/keyed.d.ts +44 -0
  87. package/dist/Fx/combinators/keyed.d.ts.map +1 -0
  88. package/dist/Fx/combinators/keyed.js +199 -0
  89. package/dist/Fx/combinators/loop.d.ts +16 -0
  90. package/dist/Fx/combinators/loop.d.ts.map +1 -0
  91. package/dist/Fx/combinators/loop.js +14 -0
  92. package/dist/Fx/combinators/loopCause.d.ts +16 -0
  93. package/dist/Fx/combinators/loopCause.d.ts.map +1 -0
  94. package/dist/Fx/combinators/loopCause.js +13 -0
  95. package/dist/Fx/combinators/loopCauseEffect.d.ts +17 -0
  96. package/dist/Fx/combinators/loopCauseEffect.d.ts.map +1 -0
  97. package/dist/Fx/combinators/loopCauseEffect.js +13 -0
  98. package/dist/Fx/combinators/loopEffect.d.ts +16 -0
  99. package/dist/Fx/combinators/loopEffect.d.ts.map +1 -0
  100. package/dist/Fx/combinators/loopEffect.js +13 -0
  101. package/dist/Fx/combinators/map.d.ts +14 -0
  102. package/dist/Fx/combinators/map.d.ts.map +1 -0
  103. package/dist/Fx/combinators/map.js +12 -0
  104. package/dist/Fx/combinators/mapEffect.d.ts +15 -0
  105. package/dist/Fx/combinators/mapEffect.d.ts.map +1 -0
  106. package/dist/Fx/combinators/mapEffect.js +12 -0
  107. package/dist/Fx/combinators/mergeAll.d.ts +11 -0
  108. package/dist/Fx/combinators/mergeAll.d.ts.map +1 -0
  109. package/dist/Fx/combinators/mergeAll.js +15 -0
  110. package/dist/Fx/combinators/mergeOrdered.d.ts +14 -0
  111. package/dist/Fx/combinators/mergeOrdered.d.ts.map +1 -0
  112. package/dist/Fx/combinators/mergeOrdered.js +89 -0
  113. package/dist/Fx/combinators/onError.d.ts +17 -0
  114. package/dist/Fx/combinators/onError.d.ts.map +1 -0
  115. package/dist/Fx/combinators/onError.js +14 -0
  116. package/dist/Fx/combinators/onExit.d.ts +16 -0
  117. package/dist/Fx/combinators/onExit.d.ts.map +1 -0
  118. package/dist/Fx/combinators/onExit.js +39 -0
  119. package/dist/Fx/combinators/onInterrupt.d.ts +16 -0
  120. package/dist/Fx/combinators/onInterrupt.d.ts.map +1 -0
  121. package/dist/Fx/combinators/onInterrupt.js +38 -0
  122. package/dist/Fx/combinators/provide.d.ts +23 -0
  123. package/dist/Fx/combinators/provide.d.ts.map +1 -0
  124. package/dist/Fx/combinators/provide.js +27 -0
  125. package/dist/Fx/combinators/skip.d.ts +14 -0
  126. package/dist/Fx/combinators/skip.d.ts.map +1 -0
  127. package/dist/Fx/combinators/skip.js +11 -0
  128. package/dist/Fx/combinators/skipRepeats.d.ts +11 -0
  129. package/dist/Fx/combinators/skipRepeats.d.ts.map +1 -0
  130. package/dist/Fx/combinators/skipRepeats.js +12 -0
  131. package/dist/Fx/combinators/skipRepeatsWith.d.ts +12 -0
  132. package/dist/Fx/combinators/skipRepeatsWith.d.ts.map +1 -0
  133. package/dist/Fx/combinators/skipRepeatsWith.js +20 -0
  134. package/dist/Fx/combinators/slice.d.ts +23 -0
  135. package/dist/Fx/combinators/slice.d.ts.map +1 -0
  136. package/dist/Fx/combinators/slice.js +12 -0
  137. package/dist/Fx/combinators/switchMap.d.ts +13 -0
  138. package/dist/Fx/combinators/switchMap.d.ts.map +1 -0
  139. package/dist/Fx/combinators/switchMap.js +33 -0
  140. package/dist/Fx/combinators/switchMapEffect.d.ts +13 -0
  141. package/dist/Fx/combinators/switchMapEffect.d.ts.map +1 -0
  142. package/dist/Fx/combinators/switchMapEffect.js +14 -0
  143. package/dist/Fx/combinators/take.d.ts +14 -0
  144. package/dist/Fx/combinators/take.d.ts.map +1 -0
  145. package/dist/Fx/combinators/take.js +11 -0
  146. package/dist/Fx/combinators/takeUntil.d.ts +28 -0
  147. package/dist/Fx/combinators/takeUntil.d.ts.map +1 -0
  148. package/dist/Fx/combinators/takeUntil.js +31 -0
  149. package/dist/Fx/combinators/tapEffect.d.ts +15 -0
  150. package/dist/Fx/combinators/tapEffect.d.ts.map +1 -0
  151. package/dist/Fx/combinators/tapEffect.js +18 -0
  152. package/dist/Fx/combinators/tuple.d.ts +27 -0
  153. package/dist/Fx/combinators/tuple.d.ts.map +1 -0
  154. package/dist/Fx/combinators/tuple.js +46 -0
  155. package/dist/Fx/combinators/unwrap.d.ts +12 -0
  156. package/dist/Fx/combinators/unwrap.d.ts.map +1 -0
  157. package/dist/Fx/combinators/unwrap.js +14 -0
  158. package/dist/Fx/combinators/unwrapScoped.d.ts +15 -0
  159. package/dist/Fx/combinators/unwrapScoped.d.ts.map +1 -0
  160. package/dist/Fx/combinators/unwrapScoped.js +16 -0
  161. package/dist/Fx/combinators/when.d.ts +36 -0
  162. package/dist/Fx/combinators/when.d.ts.map +1 -0
  163. package/dist/Fx/combinators/when.js +28 -0
  164. package/dist/Fx/combinators/withSpan.d.ts +4 -0
  165. package/dist/Fx/combinators/withSpan.d.ts.map +1 -0
  166. package/dist/Fx/combinators/withSpan.js +6 -0
  167. package/dist/Fx/constructors/at.d.ts +16 -0
  168. package/dist/Fx/constructors/at.d.ts.map +1 -0
  169. package/dist/Fx/constructors/at.js +13 -0
  170. package/dist/Fx/constructors/die.d.ts +11 -0
  171. package/dist/Fx/constructors/die.d.ts.map +1 -0
  172. package/dist/Fx/constructors/die.js +12 -0
  173. package/dist/Fx/constructors/empty.d.ts +8 -0
  174. package/dist/Fx/constructors/empty.d.ts.map +1 -0
  175. package/dist/Fx/constructors/empty.js +8 -0
  176. package/dist/Fx/constructors/fail.d.ts +11 -0
  177. package/dist/Fx/constructors/fail.d.ts.map +1 -0
  178. package/dist/Fx/constructors/fail.js +12 -0
  179. package/dist/Fx/constructors/failCause.d.ts +12 -0
  180. package/dist/Fx/constructors/failCause.d.ts.map +1 -0
  181. package/dist/Fx/constructors/failCause.js +11 -0
  182. package/dist/Fx/constructors/fn.d.ts +47 -0
  183. package/dist/Fx/constructors/fn.d.ts.map +1 -0
  184. package/dist/Fx/constructors/fn.js +23 -0
  185. package/dist/Fx/constructors/fromEffect.d.ts +21 -0
  186. package/dist/Fx/constructors/fromEffect.d.ts.map +1 -0
  187. package/dist/Fx/constructors/fromEffect.js +21 -0
  188. package/dist/Fx/constructors/fromFailures.d.ts +10 -0
  189. package/dist/Fx/constructors/fromFailures.d.ts.map +1 -0
  190. package/dist/Fx/constructors/fromFailures.js +13 -0
  191. package/dist/Fx/constructors/fromIterable.d.ts +12 -0
  192. package/dist/Fx/constructors/fromIterable.d.ts.map +1 -0
  193. package/dist/Fx/constructors/fromIterable.js +12 -0
  194. package/dist/Fx/constructors/fromSchedule.d.ts +13 -0
  195. package/dist/Fx/constructors/fromSchedule.d.ts.map +1 -0
  196. package/dist/Fx/constructors/fromSchedule.js +13 -0
  197. package/dist/Fx/constructors/fromYieldable.d.ts +12 -0
  198. package/dist/Fx/constructors/fromYieldable.d.ts.map +1 -0
  199. package/dist/Fx/constructors/fromYieldable.js +12 -0
  200. package/dist/Fx/constructors/index.d.ts +16 -0
  201. package/dist/Fx/constructors/index.d.ts.map +1 -0
  202. package/dist/Fx/constructors/index.js +15 -0
  203. package/dist/Fx/constructors/interrupt.d.ts +10 -0
  204. package/dist/Fx/constructors/interrupt.d.ts.map +1 -0
  205. package/dist/Fx/constructors/interrupt.js +12 -0
  206. package/dist/Fx/constructors/make.d.ts +40 -0
  207. package/dist/Fx/constructors/make.d.ts.map +1 -0
  208. package/dist/Fx/constructors/make.js +61 -0
  209. package/dist/Fx/constructors/periodic.d.ts +12 -0
  210. package/dist/Fx/constructors/periodic.d.ts.map +1 -0
  211. package/dist/Fx/constructors/periodic.js +12 -0
  212. package/dist/Fx/constructors/succeed.d.ts +32 -0
  213. package/dist/Fx/constructors/succeed.d.ts.map +1 -0
  214. package/dist/Fx/constructors/succeed.js +32 -0
  215. package/dist/Fx/constructors/suspend.d.ts +3 -0
  216. package/dist/Fx/constructors/suspend.d.ts.map +1 -0
  217. package/dist/Fx/constructors/suspend.js +3 -0
  218. package/dist/Fx/index.d.ts +7 -0
  219. package/dist/Fx/index.d.ts.map +1 -0
  220. package/dist/Fx/index.js +6 -0
  221. package/dist/Fx/internal/DeferredRef.d.ts +29 -0
  222. package/dist/Fx/internal/DeferredRef.d.ts.map +1 -0
  223. package/dist/{esm → Fx}/internal/DeferredRef.js +21 -15
  224. package/dist/Fx/internal/UnionToTuple.d.ts.map +1 -0
  225. package/dist/Fx/internal/UnionToTuple.js +1 -0
  226. package/dist/{dts → Fx}/internal/diff.d.ts +3 -1
  227. package/dist/Fx/internal/diff.d.ts.map +1 -0
  228. package/dist/{esm → Fx}/internal/diff.js +37 -23
  229. package/dist/Fx/internal/equivalence.d.ts +4 -0
  230. package/dist/Fx/internal/equivalence.d.ts.map +1 -0
  231. package/dist/Fx/internal/equivalence.js +10 -0
  232. package/dist/Fx/internal/multicast.d.ts +10 -0
  233. package/dist/Fx/internal/multicast.d.ts.map +1 -0
  234. package/dist/Fx/internal/multicast.js +32 -0
  235. package/dist/Fx/internal/ring-buffer.d.ts +14 -0
  236. package/dist/Fx/internal/ring-buffer.d.ts.map +1 -0
  237. package/dist/Fx/internal/ring-buffer.js +52 -0
  238. package/dist/Fx/internal/scope.d.ts +11 -0
  239. package/dist/Fx/internal/scope.d.ts.map +1 -0
  240. package/dist/Fx/internal/scope.js +12 -0
  241. package/dist/Fx/internal/yieldable.d.ts +17 -0
  242. package/dist/Fx/internal/yieldable.d.ts.map +1 -0
  243. package/dist/Fx/internal/yieldable.js +20 -0
  244. package/dist/Fx/run/collect.d.ts +45 -0
  245. package/dist/Fx/run/collect.d.ts.map +1 -0
  246. package/dist/Fx/run/collect.js +51 -0
  247. package/dist/Fx/run/first.d.ts +14 -0
  248. package/dist/Fx/run/first.d.ts.map +1 -0
  249. package/dist/Fx/run/first.js +16 -0
  250. package/dist/Fx/run/fork.d.ts +29 -0
  251. package/dist/Fx/run/fork.d.ts.map +1 -0
  252. package/dist/Fx/run/fork.js +27 -0
  253. package/dist/Fx/run/index.d.ts +6 -0
  254. package/dist/Fx/run/index.d.ts.map +1 -0
  255. package/dist/Fx/run/index.js +5 -0
  256. package/dist/Fx/run/observe.d.ts +53 -0
  257. package/dist/Fx/run/observe.d.ts.map +1 -0
  258. package/dist/Fx/run/observe.js +55 -0
  259. package/dist/Fx/run/runPromise.d.ts +25 -0
  260. package/dist/Fx/run/runPromise.d.ts.map +1 -0
  261. package/dist/Fx/run/runPromise.js +23 -0
  262. package/dist/Fx/stream.d.ts +7 -0
  263. package/dist/Fx/stream.d.ts.map +1 -0
  264. package/dist/Fx/stream.js +7 -0
  265. package/dist/Fx.d.ts +2 -0
  266. package/dist/Fx.d.ts.map +1 -0
  267. package/dist/Fx.js +1 -0
  268. package/dist/Push/Push.d.ts +312 -0
  269. package/dist/Push/Push.d.ts.map +1 -0
  270. package/dist/Push/Push.js +289 -0
  271. package/dist/Push/index.d.ts +2 -0
  272. package/dist/Push/index.d.ts.map +1 -0
  273. package/dist/Push/index.js +1 -0
  274. package/dist/Push.d.ts +2 -0
  275. package/dist/Push.d.ts.map +1 -0
  276. package/dist/Push.js +1 -0
  277. package/dist/{dts → RefSubject}/RefArray.d.ts +68 -18
  278. package/dist/RefSubject/RefArray.d.ts.map +1 -0
  279. package/dist/{esm → RefSubject}/RefArray.js +80 -12
  280. package/dist/RefSubject/RefBigDecimal.d.ts +183 -0
  281. package/dist/RefSubject/RefBigDecimal.d.ts.map +1 -0
  282. package/dist/RefSubject/RefBigDecimal.js +161 -0
  283. package/dist/RefSubject/RefBigInt.d.ts +138 -0
  284. package/dist/RefSubject/RefBigInt.d.ts.map +1 -0
  285. package/dist/RefSubject/RefBigInt.js +126 -0
  286. package/dist/RefSubject/RefBoolean.d.ts +135 -0
  287. package/dist/RefSubject/RefBoolean.d.ts.map +1 -0
  288. package/dist/RefSubject/RefBoolean.js +124 -0
  289. package/dist/RefSubject/RefCause.d.ts +100 -0
  290. package/dist/RefSubject/RefCause.d.ts.map +1 -0
  291. package/dist/RefSubject/RefCause.js +93 -0
  292. package/dist/{dts → RefSubject}/RefChunk.d.ts +157 -71
  293. package/dist/RefSubject/RefChunk.d.ts.map +1 -0
  294. package/dist/{esm → RefSubject}/RefChunk.js +142 -52
  295. package/dist/RefSubject/RefDateTime.d.ts +155 -0
  296. package/dist/RefSubject/RefDateTime.d.ts.map +1 -0
  297. package/dist/RefSubject/RefDateTime.js +101 -0
  298. package/dist/RefSubject/RefDuration.d.ts +126 -0
  299. package/dist/RefSubject/RefDuration.d.ts.map +1 -0
  300. package/dist/RefSubject/RefDuration.js +115 -0
  301. package/dist/RefSubject/RefGraph.d.ts +239 -0
  302. package/dist/RefSubject/RefGraph.d.ts.map +1 -0
  303. package/dist/RefSubject/RefGraph.js +272 -0
  304. package/dist/RefSubject/RefHashMap.d.ts +228 -0
  305. package/dist/RefSubject/RefHashMap.d.ts.map +1 -0
  306. package/dist/RefSubject/RefHashMap.js +212 -0
  307. package/dist/RefSubject/RefHashRing.d.ts +123 -0
  308. package/dist/RefSubject/RefHashRing.d.ts.map +1 -0
  309. package/dist/RefSubject/RefHashRing.js +115 -0
  310. package/dist/RefSubject/RefHashSet.d.ts +179 -0
  311. package/dist/RefSubject/RefHashSet.d.ts.map +1 -0
  312. package/dist/RefSubject/RefHashSet.js +164 -0
  313. package/dist/RefSubject/RefIterable.d.ts +257 -0
  314. package/dist/RefSubject/RefIterable.d.ts.map +1 -0
  315. package/dist/RefSubject/RefIterable.js +237 -0
  316. package/dist/RefSubject/RefOption.d.ts +124 -0
  317. package/dist/RefSubject/RefOption.d.ts.map +1 -0
  318. package/dist/RefSubject/RefOption.js +115 -0
  319. package/dist/RefSubject/RefRecord.d.ts +264 -0
  320. package/dist/RefSubject/RefRecord.d.ts.map +1 -0
  321. package/dist/RefSubject/RefRecord.js +249 -0
  322. package/dist/RefSubject/RefResult.d.ts +121 -0
  323. package/dist/RefSubject/RefResult.d.ts.map +1 -0
  324. package/dist/RefSubject/RefResult.js +107 -0
  325. package/dist/RefSubject/RefString.d.ts +147 -0
  326. package/dist/RefSubject/RefString.d.ts.map +1 -0
  327. package/dist/RefSubject/RefString.js +137 -0
  328. package/dist/RefSubject/RefStruct.d.ts +123 -0
  329. package/dist/RefSubject/RefStruct.d.ts.map +1 -0
  330. package/dist/RefSubject/RefStruct.js +113 -0
  331. package/dist/RefSubject/RefSubject.d.ts +1010 -0
  332. package/dist/RefSubject/RefSubject.d.ts.map +1 -0
  333. package/dist/RefSubject/RefSubject.js +1310 -0
  334. package/dist/RefSubject/RefTrie.d.ts +216 -0
  335. package/dist/RefSubject/RefTrie.d.ts.map +1 -0
  336. package/dist/RefSubject/RefTrie.js +201 -0
  337. package/dist/RefSubject/RefTuple.d.ts +107 -0
  338. package/dist/RefSubject/RefTuple.d.ts.map +1 -0
  339. package/dist/RefSubject/RefTuple.js +94 -0
  340. package/dist/RefSubject/index.d.ts +22 -0
  341. package/dist/RefSubject/index.d.ts.map +1 -0
  342. package/dist/RefSubject/index.js +21 -0
  343. package/dist/RefSubject.d.ts +2 -0
  344. package/dist/RefSubject.d.ts.map +1 -0
  345. package/dist/RefSubject.js +1 -0
  346. package/dist/Sink/Sink.d.ts +94 -0
  347. package/dist/Sink/Sink.d.ts.map +1 -0
  348. package/dist/Sink/Sink.js +34 -0
  349. package/dist/Sink/combinators.d.ts +171 -0
  350. package/dist/Sink/combinators.d.ts.map +1 -0
  351. package/dist/{esm/Sink.js → Sink/combinators.js} +265 -352
  352. package/dist/Sink/index.d.ts +3 -0
  353. package/dist/Sink/index.d.ts.map +1 -0
  354. package/dist/Sink/index.js +2 -0
  355. package/dist/Sink.d.ts +2 -0
  356. package/dist/Sink.d.ts.map +1 -0
  357. package/dist/Sink.js +1 -0
  358. package/dist/Subject/Subject.d.ts +152 -0
  359. package/dist/Subject/Subject.d.ts.map +1 -0
  360. package/dist/Subject/Subject.js +272 -0
  361. package/dist/Subject/index.d.ts +2 -0
  362. package/dist/Subject/index.d.ts.map +1 -0
  363. package/dist/Subject/index.js +1 -0
  364. package/dist/Subject.d.ts +2 -0
  365. package/dist/Subject.d.ts.map +1 -0
  366. package/dist/Subject.js +1 -0
  367. package/dist/Versioned/Versioned.d.ts +176 -0
  368. package/dist/Versioned/Versioned.d.ts.map +1 -0
  369. package/dist/Versioned/Versioned.js +228 -0
  370. package/dist/Versioned/index.d.ts +2 -0
  371. package/dist/Versioned/index.d.ts.map +1 -0
  372. package/dist/Versioned/index.js +1 -0
  373. package/dist/Versioned.d.ts +2 -0
  374. package/dist/Versioned.d.ts.map +1 -0
  375. package/dist/Versioned.js +1 -0
  376. package/dist/index.d.ts +8 -0
  377. package/dist/index.d.ts.map +1 -0
  378. package/dist/index.js +7 -0
  379. package/package.json +19 -191
  380. package/src/Fx/Fx.ts +164 -0
  381. package/src/Fx/TypeId.ts +25 -0
  382. package/src/Fx/combinators/catch.ts +165 -0
  383. package/src/Fx/combinators/causes.ts +23 -0
  384. package/src/Fx/combinators/compact.ts +15 -0
  385. package/src/Fx/combinators/continueWith.ts +78 -0
  386. package/src/Fx/combinators/ensuring.ts +23 -0
  387. package/src/Fx/combinators/exhaustLatestMap.ts +74 -0
  388. package/src/Fx/combinators/exhaustLatestMapEffect.ts +25 -0
  389. package/src/Fx/combinators/exhaustMap.ts +36 -0
  390. package/src/Fx/combinators/exhaustMapEffect.ts +23 -0
  391. package/src/Fx/combinators/exit.ts +15 -0
  392. package/src/Fx/combinators/filter.ts +22 -0
  393. package/src/Fx/combinators/filterEffect.ts +31 -0
  394. package/src/Fx/combinators/filterMap.ts +23 -0
  395. package/src/Fx/combinators/filterMapEffect.ts +32 -0
  396. package/src/Fx/combinators/filterMapLoop.ts +35 -0
  397. package/src/Fx/combinators/filterMapLoopCause.ts +36 -0
  398. package/src/Fx/combinators/filterMapLoopCauseEffect.ts +46 -0
  399. package/src/Fx/combinators/filterMapLoopEffect.ts +36 -0
  400. package/src/Fx/combinators/flatMap.ts +51 -0
  401. package/src/Fx/combinators/flatMapConcurrently.ts +36 -0
  402. package/src/Fx/combinators/flatMapConcurrentlyEffect.ts +26 -0
  403. package/src/Fx/combinators/flatMapEffect.ts +42 -0
  404. package/src/Fx/combinators/flip.ts +14 -0
  405. package/src/Fx/combinators/gen.ts +24 -0
  406. package/src/Fx/combinators/genScoped.ts +24 -0
  407. package/src/Fx/combinators/index.ts +51 -0
  408. package/src/Fx/combinators/keyed.ts +369 -0
  409. package/src/Fx/combinators/loop.ts +27 -0
  410. package/src/Fx/combinators/loopCause.ts +34 -0
  411. package/src/Fx/combinators/loopCauseEffect.ts +36 -0
  412. package/src/Fx/combinators/loopEffect.ts +34 -0
  413. package/src/Fx/combinators/map.ts +22 -0
  414. package/src/Fx/combinators/mapEffect.ts +32 -0
  415. package/src/Fx/combinators/mergeAll.ts +22 -0
  416. package/src/Fx/combinators/mergeOrdered.ts +123 -0
  417. package/src/Fx/combinators/onError.ts +40 -0
  418. package/src/Fx/combinators/onExit.ts +82 -0
  419. package/src/Fx/combinators/onInterrupt.ts +87 -0
  420. package/src/Fx/combinators/provide.ts +62 -0
  421. package/src/Fx/combinators/skip.ts +20 -0
  422. package/src/Fx/combinators/skipRepeats.ts +15 -0
  423. package/src/Fx/combinators/skipRepeatsWith.ts +40 -0
  424. package/src/Fx/combinators/slice.ts +32 -0
  425. package/src/Fx/combinators/switchMap.ts +55 -0
  426. package/src/Fx/combinators/switchMapEffect.ts +25 -0
  427. package/src/Fx/combinators/take.ts +17 -0
  428. package/src/Fx/combinators/takeUntil.ts +50 -0
  429. package/src/Fx/combinators/tapEffect.ts +39 -0
  430. package/src/Fx/combinators/tuple.ts +79 -0
  431. package/src/Fx/combinators/unwrap.ts +21 -0
  432. package/src/Fx/combinators/unwrapScoped.ts +26 -0
  433. package/src/Fx/combinators/when.ts +64 -0
  434. package/src/Fx/combinators/withSpan.ts +24 -0
  435. package/src/Fx/constructors/at.ts +23 -0
  436. package/src/Fx/constructors/die.ts +17 -0
  437. package/src/Fx/constructors/empty.ts +10 -0
  438. package/src/Fx/constructors/fail.ts +14 -0
  439. package/src/Fx/constructors/failCause.ts +14 -0
  440. package/src/Fx/constructors/fn.ts +245 -0
  441. package/src/Fx/constructors/fromEffect.ts +24 -0
  442. package/src/Fx/constructors/fromFailures.ts +19 -0
  443. package/src/Fx/constructors/fromIterable.ts +15 -0
  444. package/src/Fx/constructors/fromSchedule.ts +18 -0
  445. package/src/Fx/constructors/fromYieldable.ts +17 -0
  446. package/src/Fx/constructors/index.ts +15 -0
  447. package/src/Fx/constructors/interrupt.ts +13 -0
  448. package/src/Fx/constructors/make.ts +103 -0
  449. package/src/Fx/constructors/periodic.ts +15 -0
  450. package/src/Fx/constructors/succeed.ts +37 -0
  451. package/src/Fx/constructors/suspend.ts +6 -0
  452. package/src/Fx/index.ts +6 -0
  453. package/src/Fx/internal/DeferredRef.ts +87 -0
  454. package/src/Fx/internal/UnionToTuple.ts +12 -0
  455. package/src/Fx/internal/diff.ts +191 -0
  456. package/src/Fx/internal/equivalence.ts +12 -0
  457. package/src/Fx/internal/multicast.ts +51 -0
  458. package/src/Fx/internal/ring-buffer.ts +60 -0
  459. package/src/Fx/internal/scope.ts +58 -0
  460. package/src/Fx/internal/yieldable.ts +31 -0
  461. package/src/Fx/run/collect.ts +79 -0
  462. package/src/Fx/run/first.ts +20 -0
  463. package/src/Fx/run/fork.ts +40 -0
  464. package/src/Fx/run/index.ts +5 -0
  465. package/src/Fx/run/observe.ts +114 -0
  466. package/src/Fx/run/runPromise.ts +32 -0
  467. package/src/Fx/stream.ts +42 -0
  468. package/src/Fx.catch.test.ts +61 -0
  469. package/src/Fx.fn.test.ts +51 -0
  470. package/src/Fx.lifecycle.test.ts +80 -0
  471. package/src/Fx.test.ts +71 -0
  472. package/src/Fx.ts +1 -2591
  473. package/src/Push/Push.ts +903 -0
  474. package/src/Push/index.ts +1 -0
  475. package/src/Push.test.ts +26 -0
  476. package/src/Push.ts +1 -480
  477. package/src/{RefArray.ts → RefSubject/RefArray.ts} +246 -248
  478. package/src/RefSubject/RefBigDecimal.test.ts +56 -0
  479. package/src/RefSubject/RefBigDecimal.ts +295 -0
  480. package/src/RefSubject/RefBigInt.test.ts +56 -0
  481. package/src/RefSubject/RefBigInt.ts +189 -0
  482. package/src/RefSubject/RefBoolean.test.ts +57 -0
  483. package/src/RefSubject/RefBoolean.ts +185 -0
  484. package/src/RefSubject/RefCause.test.ts +53 -0
  485. package/src/RefSubject/RefCause.ts +146 -0
  486. package/src/RefSubject/RefChunk.ts +510 -0
  487. package/src/RefSubject/RefDateTime.test.ts +43 -0
  488. package/src/RefSubject/RefDateTime.ts +264 -0
  489. package/src/RefSubject/RefDuration.test.ts +49 -0
  490. package/src/RefSubject/RefDuration.ts +188 -0
  491. package/src/RefSubject/RefGraph.ts +650 -0
  492. package/src/RefSubject/RefHashMap.ts +465 -0
  493. package/src/RefSubject/RefHashRing.ts +262 -0
  494. package/src/RefSubject/RefHashSet.ts +308 -0
  495. package/src/RefSubject/RefIterable.ts +445 -0
  496. package/src/RefSubject/RefOption.test.ts +67 -0
  497. package/src/RefSubject/RefOption.ts +193 -0
  498. package/src/RefSubject/RefRecord.ts +612 -0
  499. package/src/RefSubject/RefResult.test.ts +63 -0
  500. package/src/RefSubject/RefResult.ts +209 -0
  501. package/src/RefSubject/RefString.test.ts +61 -0
  502. package/src/RefSubject/RefString.ts +256 -0
  503. package/src/RefSubject/RefStruct.test.ts +60 -0
  504. package/src/RefSubject/RefStruct.ts +253 -0
  505. package/src/RefSubject/RefSubject.ts +2545 -0
  506. package/src/RefSubject/RefTrie.ts +356 -0
  507. package/src/RefSubject/RefTuple.test.ts +60 -0
  508. package/src/RefSubject/RefTuple.ts +231 -0
  509. package/src/RefSubject/index.ts +21 -0
  510. package/src/RefSubject.test.ts +65 -0
  511. package/src/RefSubject.ts +1 -2488
  512. package/src/Sink/Sink.ts +159 -0
  513. package/src/Sink/combinators.ts +993 -0
  514. package/src/Sink/index.ts +2 -0
  515. package/src/Sink.ts +1 -1044
  516. package/src/Subject/Subject.ts +441 -0
  517. package/src/Subject/index.ts +1 -0
  518. package/src/Subject.test.ts +47 -0
  519. package/src/Subject.ts +1 -330
  520. package/src/Versioned/Versioned.ts +521 -0
  521. package/src/Versioned/index.ts +1 -0
  522. package/src/Versioned.test.ts +23 -0
  523. package/src/Versioned.ts +1 -357
  524. package/src/index.ts +7 -130
  525. package/tsconfig.json +6 -0
  526. package/AsyncData/package.json +0 -6
  527. package/Emitter/package.json +0 -6
  528. package/Form/package.json +0 -6
  529. package/FormEntry/package.json +0 -6
  530. package/Fx/package.json +0 -6
  531. package/Idle/package.json +0 -6
  532. package/LICENSE +0 -21
  533. package/Match/package.json +0 -6
  534. package/Pull/package.json +0 -6
  535. package/Push/package.json +0 -6
  536. package/RefArray/package.json +0 -6
  537. package/RefChunk/package.json +0 -6
  538. package/RefHashMap/package.json +0 -6
  539. package/RefHashSet/package.json +0 -6
  540. package/RefSubject/package.json +0 -6
  541. package/Sink/package.json +0 -6
  542. package/Stream/package.json +0 -6
  543. package/Subject/package.json +0 -6
  544. package/TypeId/package.json +0 -6
  545. package/Typeclass/package.json +0 -6
  546. package/Versioned/package.json +0 -6
  547. package/dist/cjs/AsyncData.js +0 -188
  548. package/dist/cjs/AsyncData.js.map +0 -1
  549. package/dist/cjs/Emitter.js +0 -44
  550. package/dist/cjs/Emitter.js.map +0 -1
  551. package/dist/cjs/Form.js +0 -178
  552. package/dist/cjs/Form.js.map +0 -1
  553. package/dist/cjs/FormEntry.js +0 -110
  554. package/dist/cjs/FormEntry.js.map +0 -1
  555. package/dist/cjs/Fx.js +0 -998
  556. package/dist/cjs/Fx.js.map +0 -1
  557. package/dist/cjs/Idle.js +0 -190
  558. package/dist/cjs/Idle.js.map +0 -1
  559. package/dist/cjs/Match.js +0 -191
  560. package/dist/cjs/Match.js.map +0 -1
  561. package/dist/cjs/Pull.js +0 -52
  562. package/dist/cjs/Pull.js.map +0 -1
  563. package/dist/cjs/Push.js +0 -168
  564. package/dist/cjs/Push.js.map +0 -1
  565. package/dist/cjs/RefArray.js +0 -253
  566. package/dist/cjs/RefArray.js.map +0 -1
  567. package/dist/cjs/RefChunk.js +0 -212
  568. package/dist/cjs/RefChunk.js.map +0 -1
  569. package/dist/cjs/RefHashMap.js +0 -198
  570. package/dist/cjs/RefHashMap.js.map +0 -1
  571. package/dist/cjs/RefHashSet.js +0 -99
  572. package/dist/cjs/RefHashSet.js.map +0 -1
  573. package/dist/cjs/RefSubject.js +0 -1115
  574. package/dist/cjs/RefSubject.js.map +0 -1
  575. package/dist/cjs/Sink.js +0 -662
  576. package/dist/cjs/Sink.js.map +0 -1
  577. package/dist/cjs/Stream.js +0 -87
  578. package/dist/cjs/Stream.js.map +0 -1
  579. package/dist/cjs/Subject.js +0 -205
  580. package/dist/cjs/Subject.js.map +0 -1
  581. package/dist/cjs/TypeId.js +0 -32
  582. package/dist/cjs/TypeId.js.map +0 -1
  583. package/dist/cjs/Typeclass.js +0 -380
  584. package/dist/cjs/Typeclass.js.map +0 -1
  585. package/dist/cjs/Versioned.js +0 -172
  586. package/dist/cjs/Versioned.js.map +0 -1
  587. package/dist/cjs/index.js +0 -89
  588. package/dist/cjs/index.js.map +0 -1
  589. package/dist/cjs/internal/DeferredRef.js +0 -67
  590. package/dist/cjs/internal/DeferredRef.js.map +0 -1
  591. package/dist/cjs/internal/UnionToTuple.js +0 -6
  592. package/dist/cjs/internal/UnionToTuple.js.map +0 -1
  593. package/dist/cjs/internal/bounds.js +0 -26
  594. package/dist/cjs/internal/bounds.js.map +0 -1
  595. package/dist/cjs/internal/core.js +0 -1774
  596. package/dist/cjs/internal/core.js.map +0 -1
  597. package/dist/cjs/internal/diff.js +0 -122
  598. package/dist/cjs/internal/diff.js.map +0 -1
  599. package/dist/cjs/internal/effect-loop-operator.js +0 -288
  600. package/dist/cjs/internal/effect-loop-operator.js.map +0 -1
  601. package/dist/cjs/internal/effect-operator.js +0 -156
  602. package/dist/cjs/internal/effect-operator.js.map +0 -1
  603. package/dist/cjs/internal/effect-producer.js +0 -74
  604. package/dist/cjs/internal/effect-producer.js.map +0 -1
  605. package/dist/cjs/internal/helpers.js +0 -317
  606. package/dist/cjs/internal/helpers.js.map +0 -1
  607. package/dist/cjs/internal/keyed.js +0 -168
  608. package/dist/cjs/internal/keyed.js.map +0 -1
  609. package/dist/cjs/internal/loop-operator.js +0 -213
  610. package/dist/cjs/internal/loop-operator.js.map +0 -1
  611. package/dist/cjs/internal/operator.js +0 -79
  612. package/dist/cjs/internal/operator.js.map +0 -1
  613. package/dist/cjs/internal/protos.js +0 -48
  614. package/dist/cjs/internal/protos.js.map +0 -1
  615. package/dist/cjs/internal/provide.js +0 -100
  616. package/dist/cjs/internal/provide.js.map +0 -1
  617. package/dist/cjs/internal/requestIdleCallback.js +0 -22
  618. package/dist/cjs/internal/requestIdleCallback.js.map +0 -1
  619. package/dist/cjs/internal/share.js +0 -74
  620. package/dist/cjs/internal/share.js.map +0 -1
  621. package/dist/cjs/internal/strategies.js +0 -34
  622. package/dist/cjs/internal/strategies.js.map +0 -1
  623. package/dist/cjs/internal/sync-operator.js +0 -120
  624. package/dist/cjs/internal/sync-operator.js.map +0 -1
  625. package/dist/cjs/internal/sync-producer.js +0 -118
  626. package/dist/cjs/internal/sync-producer.js.map +0 -1
  627. package/dist/cjs/internal/withKey.js +0 -63
  628. package/dist/cjs/internal/withKey.js.map +0 -1
  629. package/dist/dts/AsyncData.d.ts +0 -179
  630. package/dist/dts/AsyncData.d.ts.map +0 -1
  631. package/dist/dts/Emitter.d.ts +0 -24
  632. package/dist/dts/Emitter.d.ts.map +0 -1
  633. package/dist/dts/Form.d.ts +0 -145
  634. package/dist/dts/Form.d.ts.map +0 -1
  635. package/dist/dts/FormEntry.d.ts +0 -65
  636. package/dist/dts/FormEntry.d.ts.map +0 -1
  637. package/dist/dts/Fx.d.ts +0 -1678
  638. package/dist/dts/Fx.d.ts.map +0 -1
  639. package/dist/dts/Idle.d.ts +0 -84
  640. package/dist/dts/Idle.d.ts.map +0 -1
  641. package/dist/dts/Match.d.ts +0 -60
  642. package/dist/dts/Match.d.ts.map +0 -1
  643. package/dist/dts/Pull.d.ts +0 -37
  644. package/dist/dts/Pull.d.ts.map +0 -1
  645. package/dist/dts/Push.d.ts +0 -176
  646. package/dist/dts/Push.d.ts.map +0 -1
  647. package/dist/dts/RefArray.d.ts.map +0 -1
  648. package/dist/dts/RefChunk.d.ts.map +0 -1
  649. package/dist/dts/RefHashMap.d.ts +0 -189
  650. package/dist/dts/RefHashMap.d.ts.map +0 -1
  651. package/dist/dts/RefHashSet.d.ts +0 -100
  652. package/dist/dts/RefHashSet.d.ts.map +0 -1
  653. package/dist/dts/RefSubject.d.ts +0 -601
  654. package/dist/dts/RefSubject.d.ts.map +0 -1
  655. package/dist/dts/Sink.d.ts +0 -252
  656. package/dist/dts/Sink.d.ts.map +0 -1
  657. package/dist/dts/Stream.d.ts +0 -66
  658. package/dist/dts/Stream.d.ts.map +0 -1
  659. package/dist/dts/Subject.d.ts +0 -61
  660. package/dist/dts/Subject.d.ts.map +0 -1
  661. package/dist/dts/TypeId.d.ts +0 -51
  662. package/dist/dts/TypeId.d.ts.map +0 -1
  663. package/dist/dts/Typeclass.d.ts +0 -284
  664. package/dist/dts/Typeclass.d.ts.map +0 -1
  665. package/dist/dts/Versioned.d.ts +0 -117
  666. package/dist/dts/Versioned.d.ts.map +0 -1
  667. package/dist/dts/index.d.ts +0 -111
  668. package/dist/dts/index.d.ts.map +0 -1
  669. package/dist/dts/internal/DeferredRef.d.ts +0 -22
  670. package/dist/dts/internal/DeferredRef.d.ts.map +0 -1
  671. package/dist/dts/internal/UnionToTuple.d.ts.map +0 -1
  672. package/dist/dts/internal/bounds.d.ts +0 -9
  673. package/dist/dts/internal/bounds.d.ts.map +0 -1
  674. package/dist/dts/internal/core.d.ts +0 -237
  675. package/dist/dts/internal/core.d.ts.map +0 -1
  676. package/dist/dts/internal/diff.d.ts.map +0 -1
  677. package/dist/dts/internal/effect-loop-operator.d.ts +0 -34
  678. package/dist/dts/internal/effect-loop-operator.d.ts.map +0 -1
  679. package/dist/dts/internal/effect-operator.d.ts +0 -40
  680. package/dist/dts/internal/effect-operator.d.ts.map +0 -1
  681. package/dist/dts/internal/effect-producer.d.ts +0 -25
  682. package/dist/dts/internal/effect-producer.d.ts.map +0 -1
  683. package/dist/dts/internal/helpers.d.ts +0 -60
  684. package/dist/dts/internal/helpers.d.ts.map +0 -1
  685. package/dist/dts/internal/keyed.d.ts +0 -4
  686. package/dist/dts/internal/keyed.d.ts.map +0 -1
  687. package/dist/dts/internal/loop-operator.d.ts +0 -40
  688. package/dist/dts/internal/loop-operator.d.ts.map +0 -1
  689. package/dist/dts/internal/operator.d.ts +0 -16
  690. package/dist/dts/internal/operator.d.ts.map +0 -1
  691. package/dist/dts/internal/protos.d.ts +0 -23
  692. package/dist/dts/internal/protos.d.ts.map +0 -1
  693. package/dist/dts/internal/provide.d.ts +0 -46
  694. package/dist/dts/internal/provide.d.ts.map +0 -1
  695. package/dist/dts/internal/requestIdleCallback.d.ts +0 -3
  696. package/dist/dts/internal/requestIdleCallback.d.ts.map +0 -1
  697. package/dist/dts/internal/share.d.ts +0 -33
  698. package/dist/dts/internal/share.d.ts.map +0 -1
  699. package/dist/dts/internal/strategies.d.ts +0 -9
  700. package/dist/dts/internal/strategies.d.ts.map +0 -1
  701. package/dist/dts/internal/sync-operator.d.ts +0 -32
  702. package/dist/dts/internal/sync-operator.d.ts.map +0 -1
  703. package/dist/dts/internal/sync-producer.d.ts +0 -36
  704. package/dist/dts/internal/sync-producer.d.ts.map +0 -1
  705. package/dist/dts/internal/withKey.d.ts +0 -4
  706. package/dist/dts/internal/withKey.d.ts.map +0 -1
  707. package/dist/esm/AsyncData.js +0 -156
  708. package/dist/esm/AsyncData.js.map +0 -1
  709. package/dist/esm/Emitter.js +0 -33
  710. package/dist/esm/Emitter.js.map +0 -1
  711. package/dist/esm/Form.js +0 -163
  712. package/dist/esm/Form.js.map +0 -1
  713. package/dist/esm/FormEntry.js +0 -100
  714. package/dist/esm/FormEntry.js.map +0 -1
  715. package/dist/esm/Fx.js +0 -984
  716. package/dist/esm/Fx.js.map +0 -1
  717. package/dist/esm/Idle.js +0 -178
  718. package/dist/esm/Idle.js.map +0 -1
  719. package/dist/esm/Match.js +0 -185
  720. package/dist/esm/Match.js.map +0 -1
  721. package/dist/esm/Pull.js +0 -41
  722. package/dist/esm/Pull.js.map +0 -1
  723. package/dist/esm/Push.js +0 -159
  724. package/dist/esm/Push.js.map +0 -1
  725. package/dist/esm/RefArray.js.map +0 -1
  726. package/dist/esm/RefChunk.js.map +0 -1
  727. package/dist/esm/RefHashMap.js +0 -176
  728. package/dist/esm/RefHashMap.js.map +0 -1
  729. package/dist/esm/RefHashSet.js +0 -86
  730. package/dist/esm/RefHashSet.js.map +0 -1
  731. package/dist/esm/RefSubject.js +0 -1076
  732. package/dist/esm/RefSubject.js.map +0 -1
  733. package/dist/esm/Sink.js.map +0 -1
  734. package/dist/esm/Stream.js +0 -76
  735. package/dist/esm/Stream.js.map +0 -1
  736. package/dist/esm/Subject.js +0 -198
  737. package/dist/esm/Subject.js.map +0 -1
  738. package/dist/esm/TypeId.js +0 -26
  739. package/dist/esm/TypeId.js.map +0 -1
  740. package/dist/esm/Typeclass.js +0 -375
  741. package/dist/esm/Typeclass.js.map +0 -1
  742. package/dist/esm/Versioned.js +0 -149
  743. package/dist/esm/Versioned.js.map +0 -1
  744. package/dist/esm/index.js +0 -111
  745. package/dist/esm/index.js.map +0 -1
  746. package/dist/esm/internal/DeferredRef.js.map +0 -1
  747. package/dist/esm/internal/UnionToTuple.js +0 -2
  748. package/dist/esm/internal/UnionToTuple.js.map +0 -1
  749. package/dist/esm/internal/bounds.js +0 -13
  750. package/dist/esm/internal/bounds.js.map +0 -1
  751. package/dist/esm/internal/core.js +0 -1606
  752. package/dist/esm/internal/core.js.map +0 -1
  753. package/dist/esm/internal/diff.js.map +0 -1
  754. package/dist/esm/internal/effect-loop-operator.js +0 -269
  755. package/dist/esm/internal/effect-loop-operator.js.map +0 -1
  756. package/dist/esm/internal/effect-operator.js +0 -134
  757. package/dist/esm/internal/effect-operator.js.map +0 -1
  758. package/dist/esm/internal/effect-producer.js +0 -47
  759. package/dist/esm/internal/effect-producer.js.map +0 -1
  760. package/dist/esm/internal/helpers.js +0 -299
  761. package/dist/esm/internal/helpers.js.map +0 -1
  762. package/dist/esm/internal/keyed.js +0 -153
  763. package/dist/esm/internal/keyed.js.map +0 -1
  764. package/dist/esm/internal/loop-operator.js +0 -186
  765. package/dist/esm/internal/loop-operator.js.map +0 -1
  766. package/dist/esm/internal/operator.js +0 -68
  767. package/dist/esm/internal/operator.js.map +0 -1
  768. package/dist/esm/internal/protos.js +0 -39
  769. package/dist/esm/internal/protos.js.map +0 -1
  770. package/dist/esm/internal/provide.js +0 -72
  771. package/dist/esm/internal/provide.js.map +0 -1
  772. package/dist/esm/internal/requestIdleCallback.js +0 -16
  773. package/dist/esm/internal/requestIdleCallback.js.map +0 -1
  774. package/dist/esm/internal/share.js +0 -62
  775. package/dist/esm/internal/share.js.map +0 -1
  776. package/dist/esm/internal/strategies.js +0 -8
  777. package/dist/esm/internal/strategies.js.map +0 -1
  778. package/dist/esm/internal/sync-operator.js +0 -95
  779. package/dist/esm/internal/sync-operator.js.map +0 -1
  780. package/dist/esm/internal/sync-producer.js +0 -90
  781. package/dist/esm/internal/sync-producer.js.map +0 -1
  782. package/dist/esm/internal/withKey.js +0 -56
  783. package/dist/esm/internal/withKey.js.map +0 -1
  784. package/dist/esm/package.json +0 -4
  785. package/src/AsyncData.ts +0 -453
  786. package/src/Emitter.ts +0 -59
  787. package/src/Form.ts +0 -489
  788. package/src/FormEntry.ts +0 -214
  789. package/src/Idle.ts +0 -294
  790. package/src/Match.ts +0 -314
  791. package/src/Pull.ts +0 -95
  792. package/src/RefChunk.ts +0 -407
  793. package/src/RefHashMap.ts +0 -335
  794. package/src/RefHashSet.ts +0 -179
  795. package/src/Stream.ts +0 -140
  796. package/src/TypeId.ts +0 -59
  797. package/src/Typeclass.ts +0 -459
  798. package/src/internal/DeferredRef.ts +0 -72
  799. package/src/internal/UnionToTuple.ts +0 -11
  800. package/src/internal/bounds.ts +0 -21
  801. package/src/internal/core.ts +0 -2771
  802. package/src/internal/diff.ts +0 -171
  803. package/src/internal/effect-loop-operator.ts +0 -466
  804. package/src/internal/effect-operator.ts +0 -317
  805. package/src/internal/effect-producer.ts +0 -125
  806. package/src/internal/helpers.ts +0 -538
  807. package/src/internal/keyed.ts +0 -235
  808. package/src/internal/loop-operator.ts +0 -266
  809. package/src/internal/operator.ts +0 -87
  810. package/src/internal/protos.ts +0 -57
  811. package/src/internal/provide.ts +0 -151
  812. package/src/internal/requestIdleCallback.ts +0 -19
  813. package/src/internal/share.ts +0 -97
  814. package/src/internal/strategies.ts +0 -15
  815. package/src/internal/sync-operator.ts +0 -166
  816. package/src/internal/sync-producer.ts +0 -148
  817. package/src/internal/withKey.ts +0 -82
  818. /package/dist/{dts → Fx}/internal/UnionToTuple.d.ts +0 -0
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Extensions to RefSubject for working with Trie values
3
+ * @since 1.18.0
4
+ */
5
+
6
+ import type * as Effect from "effect/Effect";
7
+ import { equals } from "effect/Equal";
8
+ import { dual } from "effect/Function";
9
+ import type * as Option from "effect/Option";
10
+ import type * as Scope from "effect/Scope";
11
+ import * as Trie from "effect/Trie";
12
+ import type * as Fx from "../Fx/index.js";
13
+ import * as RefSubject from "./RefSubject.js";
14
+
15
+ /**
16
+ * A RefTrie is a RefSubject specialized over a Trie.
17
+ * @since 1.18.0
18
+ * @category models
19
+ */
20
+ export interface RefTrie<in out V, in out E = never, out R = never> extends RefSubject.RefSubject<
21
+ Trie.Trie<V>,
22
+ E,
23
+ R
24
+ > {}
25
+
26
+ /**
27
+ * Creates a new `RefTrie` from a Trie, `Effect`, or `Fx`.
28
+ * @since 1.18.0
29
+ * @category constructors
30
+ */
31
+ export function make<V, E, R>(
32
+ initial: Trie.Trie<V> | Effect.Effect<Trie.Trie<V>, E, R> | Fx.Fx<Trie.Trie<V>, E, R>,
33
+ ): Effect.Effect<RefTrie<V, E>, never, R | Scope.Scope> {
34
+ return RefSubject.make(initial, { eq: equals });
35
+ }
36
+
37
+ // ========================================
38
+ // Combinators
39
+ // ========================================
40
+
41
+ /**
42
+ * Insert a key-value pair into the Trie.
43
+ * @since 1.18.0
44
+ * @category combinators
45
+ */
46
+ export const insert: {
47
+ <V>(key: string, value: V): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
48
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V): Effect.Effect<Trie.Trie<V>, E, R>;
49
+ } = dual(3, function insert<V, E, R>(ref: RefTrie<V, E, R>, key: string, value: V) {
50
+ return RefSubject.update(ref, Trie.insert(key, value));
51
+ });
52
+
53
+ /**
54
+ * Insert multiple key-value pairs into the Trie.
55
+ * @since 1.18.0
56
+ * @category combinators
57
+ */
58
+ export const insertMany: {
59
+ <V>(
60
+ entries: Iterable<[string, V]>,
61
+ ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
62
+ <V, E, R>(
63
+ ref: RefTrie<V, E, R>,
64
+ entries: Iterable<[string, V]>,
65
+ ): Effect.Effect<Trie.Trie<V>, E, R>;
66
+ } = dual(2, function insertMany<V, E, R>(ref: RefTrie<V, E, R>, entries: Iterable<[string, V]>) {
67
+ return RefSubject.update(ref, Trie.insertMany(entries));
68
+ });
69
+
70
+ /**
71
+ * Remove a key from the Trie.
72
+ * @since 1.18.0
73
+ * @category combinators
74
+ */
75
+ export const remove: {
76
+ (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
77
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string): Effect.Effect<Trie.Trie<V>, E, R>;
78
+ } = dual(2, function remove<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
79
+ return RefSubject.update(ref, Trie.remove(key));
80
+ });
81
+
82
+ /**
83
+ * Remove multiple keys from the Trie.
84
+ * @since 1.18.0
85
+ * @category combinators
86
+ */
87
+ export const removeMany: {
88
+ (keys: Iterable<string>): <V, E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
89
+ <V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>): Effect.Effect<Trie.Trie<V>, E, R>;
90
+ } = dual(2, function removeMany<V, E, R>(ref: RefTrie<V, E, R>, keys: Iterable<string>) {
91
+ return RefSubject.update(ref, Trie.removeMany(keys));
92
+ });
93
+
94
+ /**
95
+ * Modify the value at a key if it exists.
96
+ * @since 1.18.0
97
+ * @category combinators
98
+ */
99
+ export const modify: {
100
+ <V>(
101
+ key: string,
102
+ f: (v: V) => V,
103
+ ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
104
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V): Effect.Effect<Trie.Trie<V>, E, R>;
105
+ } = dual(3, function modify<V, E, R>(ref: RefTrie<V, E, R>, key: string, f: (v: V) => V) {
106
+ return RefSubject.update(ref, Trie.modify(key, f));
107
+ });
108
+
109
+ /**
110
+ * Clear all entries from the Trie.
111
+ * @since 1.18.0
112
+ * @category combinators
113
+ */
114
+ export const clear = <V, E, R>(ref: RefTrie<V, E, R>): Effect.Effect<Trie.Trie<V>, E, R> =>
115
+ RefSubject.update(ref, () => Trie.empty());
116
+
117
+ /**
118
+ * Map values in place (endomorphic).
119
+ * @since 1.18.0
120
+ * @category combinators
121
+ */
122
+ export const map: {
123
+ <V>(
124
+ f: (value: V, key: string) => V,
125
+ ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
126
+ <V, E, R>(
127
+ ref: RefTrie<V, E, R>,
128
+ f: (value: V, key: string) => V,
129
+ ): Effect.Effect<Trie.Trie<V>, E, R>;
130
+ } = dual(2, function map<V, E, R>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => V) {
131
+ return RefSubject.update(ref, Trie.map(f));
132
+ });
133
+
134
+ /**
135
+ * Filter entries in place.
136
+ * @since 1.18.0
137
+ * @category combinators
138
+ */
139
+ export const filter: {
140
+ <V>(
141
+ predicate: (value: V, key: string) => boolean,
142
+ ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
143
+ <V, E, R>(
144
+ ref: RefTrie<V, E, R>,
145
+ predicate: (value: V, key: string) => boolean,
146
+ ): Effect.Effect<Trie.Trie<V>, E, R>;
147
+ } = dual(2, function filter<
148
+ V,
149
+ E,
150
+ R,
151
+ >(ref: RefTrie<V, E, R>, predicate: (value: V, key: string) => boolean) {
152
+ return RefSubject.update(ref, Trie.filter(predicate));
153
+ });
154
+
155
+ /**
156
+ * Filter and map entries in place.
157
+ * @since 1.18.0
158
+ * @category combinators
159
+ */
160
+ export const filterMap: {
161
+ <V>(
162
+ f: (value: V, key: string) => Option.Option<V>,
163
+ ): <E, R>(ref: RefTrie<V, E, R>) => Effect.Effect<Trie.Trie<V>, E, R>;
164
+ <V, E, R>(
165
+ ref: RefTrie<V, E, R>,
166
+ f: (value: V, key: string) => Option.Option<V>,
167
+ ): Effect.Effect<Trie.Trie<V>, E, R>;
168
+ } = dual(2, function filterMap<
169
+ V,
170
+ E,
171
+ R,
172
+ >(ref: RefTrie<V, E, R>, f: (value: V, key: string) => Option.Option<V>) {
173
+ return RefSubject.update(ref, Trie.filterMap(f));
174
+ });
175
+
176
+ // ========================================
177
+ // Computed
178
+ // ========================================
179
+
180
+ /**
181
+ * Compact Option values.
182
+ * @since 1.18.0
183
+ * @category computed
184
+ */
185
+ export const compact = <V, E, R>(ref: RefTrie<Option.Option<V>, E, R>) =>
186
+ RefSubject.map(ref, Trie.compact);
187
+
188
+ /**
189
+ * Get the current size of the Trie.
190
+ * @since 1.18.0
191
+ * @category computed
192
+ */
193
+ export const size = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<number, E, R> =>
194
+ RefSubject.map(ref, Trie.size);
195
+
196
+ /**
197
+ * Check if the Trie is empty.
198
+ * @since 1.18.0
199
+ * @category computed
200
+ */
201
+ export const isEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
202
+ RefSubject.map(ref, Trie.isEmpty);
203
+
204
+ /**
205
+ * Check if the Trie is non-empty.
206
+ * @since 1.18.0
207
+ * @category computed
208
+ */
209
+ export const isNonEmpty = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<boolean, E, R> =>
210
+ RefSubject.map(ref, (t) => !Trie.isEmpty(t));
211
+
212
+ /**
213
+ * Check if a key exists in the Trie.
214
+ * @since 1.18.0
215
+ * @category computed
216
+ */
217
+ export const has: {
218
+ (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<boolean, E, R>;
219
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<boolean, E, R>;
220
+ } = dual(2, function has<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
221
+ return RefSubject.map(ref, Trie.has(key));
222
+ });
223
+
224
+ /**
225
+ * Get all keys from the Trie.
226
+ * @since 1.18.0
227
+ * @category computed
228
+ */
229
+ export const keys = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<string>, E, R> =>
230
+ RefSubject.map(ref, (t) => Array.from(Trie.keys(t)));
231
+
232
+ /**
233
+ * Get all values from the Trie.
234
+ * @since 1.18.0
235
+ * @category computed
236
+ */
237
+ export const values = <V, E, R>(ref: RefTrie<V, E, R>): RefSubject.Computed<Array<V>, E, R> =>
238
+ RefSubject.map(ref, (t) => Array.from(Trie.values(t)));
239
+
240
+ /**
241
+ * Get all entries from the Trie.
242
+ * @since 1.18.0
243
+ * @category computed
244
+ */
245
+ export const entries = <V, E, R>(
246
+ ref: RefTrie<V, E, R>,
247
+ ): RefSubject.Computed<Array<[string, V]>, E, R> => RefSubject.map(ref, Trie.toEntries);
248
+
249
+ /**
250
+ * Get all keys with a given prefix.
251
+ * @since 1.18.0
252
+ * @category computed
253
+ */
254
+ export const keysWithPrefix: {
255
+ (prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<string>, E, R>;
256
+ <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<string>, E, R>;
257
+ } = dual(2, function keysWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
258
+ return RefSubject.map(ref, (t) => Array.from(Trie.keysWithPrefix(t, prefix)));
259
+ });
260
+
261
+ /**
262
+ * Get all values with a given prefix.
263
+ * @since 1.18.0
264
+ * @category computed
265
+ */
266
+ export const valuesWithPrefix: {
267
+ (prefix: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<V>, E, R>;
268
+ <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<V>, E, R>;
269
+ } = dual(2, function valuesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
270
+ return RefSubject.map(ref, (t) => Array.from(Trie.valuesWithPrefix(t, prefix)));
271
+ });
272
+
273
+ /**
274
+ * Get all entries with a given prefix.
275
+ * @since 1.18.0
276
+ * @category computed
277
+ */
278
+ export const entriesWithPrefix: {
279
+ (
280
+ prefix: string,
281
+ ): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Array<[string, V]>, E, R>;
282
+ <V, E, R>(ref: RefTrie<V, E, R>, prefix: string): RefSubject.Computed<Array<[string, V]>, E, R>;
283
+ } = dual(2, function entriesWithPrefix<V, E, R>(ref: RefTrie<V, E, R>, prefix: string) {
284
+ return RefSubject.map(ref, Trie.toEntriesWithPrefix(prefix));
285
+ });
286
+
287
+ /**
288
+ * Get the longest prefix of a key that exists in the Trie.
289
+ * @since 1.18.0
290
+ * @category computed
291
+ */
292
+ export const longestPrefixOf: {
293
+ (
294
+ key: string,
295
+ ): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<[string, V] | undefined, E, R>;
296
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Computed<[string, V] | undefined, E, R>;
297
+ } = dual(2, function longestPrefixOf<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
298
+ return RefSubject.map(ref, Trie.longestPrefixOf(key));
299
+ });
300
+
301
+ /**
302
+ * Map values to a different type.
303
+ * @since 1.18.0
304
+ * @category computed
305
+ */
306
+ export const mapValues: {
307
+ <V, B>(
308
+ f: (value: V, key: string) => B,
309
+ ): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<Trie.Trie<B>, E, R>;
310
+ <V, E, R, B>(
311
+ ref: RefTrie<V, E, R>,
312
+ f: (value: V, key: string) => B,
313
+ ): RefSubject.Computed<Trie.Trie<B>, E, R>;
314
+ } = dual(2, function mapValues<V, E, R, B>(ref: RefTrie<V, E, R>, f: (value: V, key: string) => B) {
315
+ return RefSubject.map(ref, Trie.map(f));
316
+ });
317
+
318
+ /**
319
+ * Reduce the entries to a single value.
320
+ * @since 1.18.0
321
+ * @category computed
322
+ */
323
+ export const reduce: {
324
+ <V, B>(
325
+ b: B,
326
+ f: (b: B, value: V, key: string) => B,
327
+ ): <E, R>(ref: RefTrie<V, E, R>) => RefSubject.Computed<B, E, R>;
328
+ <V, E, R, B>(
329
+ ref: RefTrie<V, E, R>,
330
+ b: B,
331
+ f: (b: B, value: V, key: string) => B,
332
+ ): RefSubject.Computed<B, E, R>;
333
+ } = dual(3, function reduce<
334
+ V,
335
+ E,
336
+ R,
337
+ B,
338
+ >(ref: RefTrie<V, E, R>, b: B, f: (b: B, value: V, key: string) => B) {
339
+ return RefSubject.map(ref, Trie.reduce(b, f));
340
+ });
341
+
342
+ // ========================================
343
+ // Filtered
344
+ // ========================================
345
+
346
+ /**
347
+ * Get the value at a key as a Filtered.
348
+ * @since 1.18.0
349
+ * @category filtered
350
+ */
351
+ export const get: {
352
+ (key: string): <V, E, R>(ref: RefTrie<V, E, R>) => RefSubject.Filtered<V, E, R>;
353
+ <V, E, R>(ref: RefTrie<V, E, R>, key: string): RefSubject.Filtered<V, E, R>;
354
+ } = dual(2, function get<V, E, R>(ref: RefTrie<V, E, R>, key: string) {
355
+ return RefSubject.filterMap(ref, Trie.get(key));
356
+ });
@@ -0,0 +1,60 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { Effect } from "effect";
3
+ import * as Tuple from "effect/Tuple";
4
+ import * as RefTuple from "./RefTuple.js";
5
+
6
+ describe("RefTuple", () => {
7
+ it("creates and gets value", () =>
8
+ Effect.gen(function* () {
9
+ const value = Tuple.make(1, "hello", true);
10
+ const ref = yield* RefTuple.make(value);
11
+ const current = yield* ref;
12
+ expect(current).toEqual(value);
13
+ }).pipe(Effect.scoped, Effect.runPromise));
14
+
15
+ it("sets value at index", () =>
16
+ Effect.gen(function* () {
17
+ const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
18
+ yield* RefTuple.setAt(ref, 1, "world");
19
+ const result = yield* ref;
20
+ expect(result[1]).toBe("world");
21
+ expect(result[0]).toBe(1);
22
+ expect(result[2]).toBe(true);
23
+ }).pipe(Effect.scoped, Effect.runPromise));
24
+
25
+ it("updates value at index", () =>
26
+ Effect.gen(function* () {
27
+ const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
28
+ yield* RefTuple.updateAt(ref, 1, (n) => n * 2);
29
+ const result = yield* ref;
30
+ expect(result[1]).toBe(4);
31
+ }).pipe(Effect.scoped, Effect.runPromise));
32
+
33
+ it("appends element", () =>
34
+ Effect.gen(function* () {
35
+ const ref = yield* RefTuple.make(Tuple.make(1, 2));
36
+ const result = yield* RefTuple.appendElement(ref, 3);
37
+ expect(result).toEqual([1, 2, 3]);
38
+ }).pipe(Effect.scoped, Effect.runPromise));
39
+
40
+ it("prepends element", () =>
41
+ Effect.gen(function* () {
42
+ const ref = yield* RefTuple.make(Tuple.make(2, 3));
43
+ const result = yield* RefTuple.prependElement(ref, 1);
44
+ expect(result).toEqual([1, 2, 3]);
45
+ }).pipe(Effect.scoped, Effect.runPromise));
46
+
47
+ it("gets element at index", () =>
48
+ Effect.gen(function* () {
49
+ const ref = yield* RefTuple.make(Tuple.make(1, "hello", true));
50
+ const value = yield* RefTuple.get(ref, 1);
51
+ expect(value).toBe("hello");
52
+ }).pipe(Effect.scoped, Effect.runPromise));
53
+
54
+ it("gets length", () =>
55
+ Effect.gen(function* () {
56
+ const ref = yield* RefTuple.make(Tuple.make(1, 2, 3));
57
+ const length = yield* RefTuple.length(ref);
58
+ expect(length).toBe(3);
59
+ }).pipe(Effect.scoped, Effect.runPromise));
60
+ });
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Extensions to RefSubject for working with tuple values
3
+ * @since 1.18.0
4
+ */
5
+
6
+ import type * as Effect from "effect/Effect";
7
+ import { equals } from "effect/Equal";
8
+ import * as Equivalence_ from "effect/Equivalence";
9
+ import type { Equivalence } from "effect/Equivalence";
10
+ import { dual } from "effect/Function";
11
+ import type * as Scope from "effect/Scope";
12
+ import * as Tuple from "effect/Tuple";
13
+ import type * as Fx from "../Fx/index.js";
14
+ import * as RefSubject from "./RefSubject.js";
15
+
16
+ /**
17
+ * A RefTuple is a RefSubject specialized over a tuple value.
18
+ * @since 1.18.0
19
+ * @category models
20
+ */
21
+ export interface RefTuple<
22
+ in out T extends ReadonlyArray<unknown>,
23
+ in out E = never,
24
+ out R = never,
25
+ > extends RefSubject.RefSubject<T, E, R> {}
26
+
27
+ /**
28
+ * Creates a new `RefTuple` from a tuple, `Effect`, or `Fx`.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { Effect, Tuple } from "effect"
33
+ * import * as RefTuple from "effect/typed/fx/RefSubject/RefTuple"
34
+ *
35
+ * const program = Effect.gen(function* () {
36
+ * const value = yield* RefTuple.make(Tuple.make(1, "hello", true))
37
+ * const current = yield* value
38
+ * console.log(current) // [1, "hello", true]
39
+ * })
40
+ * ```
41
+ *
42
+ * @since 1.18.0
43
+ * @category constructors
44
+ */
45
+ export function make<T extends ReadonlyArray<unknown>, E = never, R = never>(
46
+ initial: T | Effect.Effect<T, E, R> | Fx.Fx<T, E, R>,
47
+ eq: Equivalence<T> = Equivalence_.make((a, b) => equals(a, b)),
48
+ ): Effect.Effect<RefTuple<T, E>, never, R | Scope.Scope> {
49
+ return RefSubject.make(initial, { eq });
50
+ }
51
+
52
+ /**
53
+ * Set the value at a specific index in the current state of a RefTuple.
54
+ * @since 1.18.0
55
+ * @category combinators
56
+ */
57
+ export const setAt: {
58
+ <T extends ReadonlyArray<unknown>, I extends number>(
59
+ index: I,
60
+ value: T[I],
61
+ ): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
62
+ <T extends ReadonlyArray<unknown>, I extends number, E, R>(
63
+ ref: RefTuple<T, E, R>,
64
+ index: I,
65
+ value: T[I],
66
+ ): Effect.Effect<T, E, R>;
67
+ } = dual(3, function setAt<
68
+ T extends ReadonlyArray<unknown>,
69
+ I extends number,
70
+ E,
71
+ R,
72
+ >(ref: RefTuple<T, E, R>, index: I, value: T[I]) {
73
+ return RefSubject.update(ref, (self) => {
74
+ const result = [...self] as unknown as T;
75
+ result[index] = value;
76
+ return result;
77
+ });
78
+ });
79
+
80
+ /**
81
+ * Update the value at a specific index in the current state of a RefTuple using a function.
82
+ * @since 1.18.0
83
+ * @category combinators
84
+ */
85
+ export const updateAt: {
86
+ <T extends ReadonlyArray<unknown>, I extends number>(
87
+ index: I,
88
+ f: (value: T[I]) => T[I],
89
+ ): <E, R>(ref: RefTuple<T, E, R>) => Effect.Effect<T, E, R>;
90
+ <T extends ReadonlyArray<unknown>, I extends number, E, R>(
91
+ ref: RefTuple<T, E, R>,
92
+ index: I,
93
+ f: (value: T[I]) => T[I],
94
+ ): Effect.Effect<T, E, R>;
95
+ } = dual(3, function updateAt<
96
+ T extends ReadonlyArray<unknown>,
97
+ I extends number,
98
+ E,
99
+ R,
100
+ >(ref: RefTuple<T, E, R>, index: I, f: (value: T[I]) => T[I]) {
101
+ return RefSubject.update(ref, (self) => Tuple.evolve(self, { [index]: f } as any) as T);
102
+ });
103
+
104
+ // ========================================
105
+ // Computed
106
+ // ========================================
107
+
108
+ /**
109
+ * Append an element to the end of the current state of a RefTuple.
110
+ * @since 1.18.0
111
+ * @category computed
112
+ */
113
+ export const appendElement: {
114
+ <E>(
115
+ element: E,
116
+ ): <T extends ReadonlyArray<unknown>, Err, R>(
117
+ ref: RefTuple<T, Err, R>,
118
+ ) => RefSubject.Computed<[...T, E], Err, R>;
119
+ <T extends ReadonlyArray<unknown>, E, Err, R>(
120
+ ref: RefTuple<T, Err, R>,
121
+ element: E,
122
+ ): RefSubject.Computed<[...T, E], Err, R>;
123
+ } = dual(2, function appendElement<
124
+ T extends ReadonlyArray<unknown>,
125
+ E,
126
+ Err,
127
+ R,
128
+ >(ref: RefTuple<T, Err, R>, element: E) {
129
+ return RefSubject.map(ref, (self) => Tuple.appendElement(self, element));
130
+ });
131
+
132
+ /**
133
+ * Prepend an element to the beginning of the current state of a RefTuple.
134
+ * @since 1.18.0
135
+ * @category computed
136
+ */
137
+ export const prependElement: {
138
+ <E>(
139
+ element: E,
140
+ ): <T extends ReadonlyArray<unknown>, Err, R>(
141
+ ref: RefTuple<T, Err, R>,
142
+ ) => RefSubject.Computed<[E, ...T], Err, R>;
143
+ <T extends ReadonlyArray<unknown>, E, Err, R>(
144
+ ref: RefTuple<T, Err, R>,
145
+ element: E,
146
+ ): RefSubject.Computed<[E, ...T], Err, R>;
147
+ } = dual(2, function prependElement<
148
+ T extends ReadonlyArray<unknown>,
149
+ E,
150
+ Err,
151
+ R,
152
+ >(ref: RefTuple<T, Err, R>, element: E) {
153
+ return RefSubject.map(ref, (self) => [element, ...self] as [E, ...T]);
154
+ });
155
+
156
+ /**
157
+ * Get the element at a specific index from the current state of a RefTuple.
158
+ * @since 1.18.0
159
+ * @category computed
160
+ */
161
+ type Indices<T extends ReadonlyArray<unknown>> = Exclude<Partial<T>["length"], T["length"]>;
162
+
163
+ export const get: {
164
+ <T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T>(
165
+ index: I,
166
+ ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<T[I], E, R>;
167
+ <T extends ReadonlyArray<unknown>, I extends Indices<T> & keyof T, E, R>(
168
+ ref: RefTuple<T, E, R>,
169
+ index: I,
170
+ ): RefSubject.Computed<T[I], E, R>;
171
+ } = dual(2, function get<
172
+ T extends ReadonlyArray<unknown>,
173
+ I extends Indices<T> & keyof T,
174
+ E,
175
+ R,
176
+ >(ref: RefTuple<T, E, R>, index: I) {
177
+ return RefSubject.map(ref, (self) => Tuple.get(self, index));
178
+ });
179
+
180
+ /**
181
+ * Get the length of the current state of a RefTuple.
182
+ * @since 1.18.0
183
+ * @category computed
184
+ */
185
+ export const length = <T extends ReadonlyArray<unknown>, E, R>(
186
+ ref: RefTuple<T, E, R>,
187
+ ): RefSubject.Computed<number, E, R> => RefSubject.map(ref, (self) => self.length);
188
+
189
+ /**
190
+ * Pick elements at specific indices from the current state of a RefTuple.
191
+ * @since 1.18.0
192
+ * @category computed
193
+ */
194
+ export const pick: {
195
+ <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
196
+ indices: I,
197
+ ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
198
+ <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
199
+ ref: RefTuple<T, E, R>,
200
+ indices: I,
201
+ ): RefSubject.Computed<Array<T[number]>, E, R>;
202
+ } = dual(2, function pick<
203
+ T extends ReadonlyArray<unknown>,
204
+ const I extends ReadonlyArray<Indices<T>>,
205
+ E,
206
+ R,
207
+ >(ref: RefTuple<T, E, R>, indices: I) {
208
+ return RefSubject.map(ref, (self) => Tuple.pick(self, indices));
209
+ });
210
+
211
+ /**
212
+ * Omit elements at specific indices from the current state of a RefTuple.
213
+ * @since 1.18.0
214
+ * @category computed
215
+ */
216
+ export const omit: {
217
+ <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>>(
218
+ indices: I,
219
+ ): <E, R>(ref: RefTuple<T, E, R>) => RefSubject.Computed<Array<T[number]>, E, R>;
220
+ <T extends ReadonlyArray<unknown>, const I extends ReadonlyArray<Indices<T>>, E, R>(
221
+ ref: RefTuple<T, E, R>,
222
+ indices: I,
223
+ ): RefSubject.Computed<Array<T[number]>, E, R>;
224
+ } = dual(2, function omit<
225
+ T extends ReadonlyArray<unknown>,
226
+ const I extends ReadonlyArray<Indices<T>>,
227
+ E,
228
+ R,
229
+ >(ref: RefTuple<T, E, R>, indices: I) {
230
+ return RefSubject.map(ref, (self) => Tuple.omit(self, indices));
231
+ });
@@ -0,0 +1,21 @@
1
+ export * as RefArray from "./RefArray.js";
2
+ export * as RefBigDecimal from "./RefBigDecimal.js";
3
+ export * as RefBigInt from "./RefBigInt.js";
4
+ export * as RefBoolean from "./RefBoolean.js";
5
+ export * as RefCause from "./RefCause.js";
6
+ export * as RefChunk from "./RefChunk.js";
7
+ export * as RefDateTime from "./RefDateTime.js";
8
+ export * as RefDuration from "./RefDuration.js";
9
+ export * as RefGraph from "./RefGraph.js";
10
+ export * as RefHashMap from "./RefHashMap.js";
11
+ export * as RefHashRing from "./RefHashRing.js";
12
+ export * as RefHashSet from "./RefHashSet.js";
13
+ export * as RefIterable from "./RefIterable.js";
14
+ export * as RefOption from "./RefOption.js";
15
+ export * as RefRecord from "./RefRecord.js";
16
+ export * as RefResult from "./RefResult.js";
17
+ export * as RefString from "./RefString.js";
18
+ export * as RefStruct from "./RefStruct.js";
19
+ export * as RefSubject from "./RefSubject.js";
20
+ export * as RefTrie from "./RefTrie.js";
21
+ export * as RefTuple from "./RefTuple.js";