@typed/fx 1.18.4 → 1.20.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 (423) hide show
  1. package/AsyncData/package.json +6 -0
  2. package/Emitter/package.json +6 -0
  3. package/Form/package.json +6 -0
  4. package/FormEntry/package.json +6 -0
  5. package/Fx/package.json +6 -0
  6. package/Guard/package.json +6 -0
  7. package/Idle/package.json +6 -0
  8. package/Match/package.json +6 -0
  9. package/Pull/package.json +6 -0
  10. package/Push/package.json +6 -0
  11. package/RefArray/package.json +6 -0
  12. package/RefChunk/package.json +6 -0
  13. package/RefHashMap/package.json +6 -0
  14. package/RefHashSet/package.json +6 -0
  15. package/RefSubject/package.json +6 -0
  16. package/Sink/package.json +6 -0
  17. package/Stream/package.json +6 -0
  18. package/Subject/package.json +6 -0
  19. package/TypeId/package.json +6 -0
  20. package/Typeclass/package.json +6 -0
  21. package/Versioned/package.json +6 -0
  22. package/dist/cjs/AsyncData.js +177 -0
  23. package/dist/cjs/AsyncData.js.map +1 -0
  24. package/dist/cjs/Emitter.js +24 -21
  25. package/dist/cjs/Emitter.js.map +1 -1
  26. package/dist/cjs/Form.js +78 -21
  27. package/dist/cjs/Form.js.map +1 -1
  28. package/dist/cjs/FormEntry.js +75 -48
  29. package/dist/cjs/FormEntry.js.map +1 -1
  30. package/dist/cjs/Fx.js +517 -872
  31. package/dist/cjs/Fx.js.map +1 -1
  32. package/dist/cjs/Guard.js +21 -13
  33. package/dist/cjs/Guard.js.map +1 -1
  34. package/dist/cjs/Idle.js +49 -37
  35. package/dist/cjs/Idle.js.map +1 -1
  36. package/dist/cjs/Match.js +99 -61
  37. package/dist/cjs/Match.js.map +1 -1
  38. package/dist/cjs/Pull.js.map +1 -1
  39. package/dist/cjs/Push.js +168 -0
  40. package/dist/cjs/Push.js.map +1 -0
  41. package/dist/cjs/RefArray.js +32 -30
  42. package/dist/cjs/RefArray.js.map +1 -1
  43. package/dist/cjs/RefChunk.js +26 -24
  44. package/dist/cjs/RefChunk.js.map +1 -1
  45. package/dist/cjs/RefHashMap.js +20 -20
  46. package/dist/cjs/RefHashMap.js.map +1 -1
  47. package/dist/cjs/RefHashSet.js +11 -8
  48. package/dist/cjs/RefHashSet.js.map +1 -1
  49. package/dist/cjs/RefSubject.js +899 -158
  50. package/dist/cjs/RefSubject.js.map +1 -1
  51. package/dist/cjs/Sink.js +588 -62
  52. package/dist/cjs/Sink.js.map +1 -1
  53. package/dist/cjs/Stream.js +15 -10
  54. package/dist/cjs/Stream.js.map +1 -1
  55. package/dist/cjs/Subject.js +153 -55
  56. package/dist/cjs/Subject.js.map +1 -1
  57. package/dist/cjs/TypeId.js +10 -5
  58. package/dist/cjs/TypeId.js.map +1 -1
  59. package/dist/cjs/Typeclass.js +28 -31
  60. package/dist/cjs/Typeclass.js.map +1 -1
  61. package/dist/cjs/Versioned.js +118 -57
  62. package/dist/cjs/Versioned.js.map +1 -1
  63. package/dist/cjs/index.js +44 -8
  64. package/dist/cjs/index.js.map +1 -1
  65. package/dist/cjs/internal/{deferred-ref.js → DeferredRef.js} +45 -13
  66. package/dist/cjs/internal/DeferredRef.js.map +1 -0
  67. package/dist/cjs/internal/UnionToTuple.js +6 -0
  68. package/dist/cjs/internal/UnionToTuple.js.map +1 -0
  69. package/dist/cjs/internal/core.js +1590 -779
  70. package/dist/cjs/internal/core.js.map +1 -1
  71. package/dist/cjs/internal/diff.js +114 -0
  72. package/dist/cjs/internal/diff.js.map +1 -0
  73. package/dist/cjs/internal/effect-loop-operator.js +288 -0
  74. package/dist/cjs/internal/effect-loop-operator.js.map +1 -0
  75. package/dist/cjs/internal/effect-operator.js +46 -37
  76. package/dist/cjs/internal/effect-operator.js.map +1 -1
  77. package/dist/cjs/internal/effect-producer.js +74 -0
  78. package/dist/cjs/internal/effect-producer.js.map +1 -0
  79. package/dist/cjs/internal/helpers.js +158 -128
  80. package/dist/cjs/internal/helpers.js.map +1 -1
  81. package/dist/cjs/internal/keyed.js +136 -173
  82. package/dist/cjs/internal/keyed.js.map +1 -1
  83. package/dist/cjs/internal/loop-operator.js +213 -0
  84. package/dist/cjs/internal/loop-operator.js.map +1 -0
  85. package/dist/cjs/internal/operator.js +79 -0
  86. package/dist/cjs/internal/operator.js.map +1 -0
  87. package/dist/cjs/internal/protos.js +19 -81
  88. package/dist/cjs/internal/protos.js.map +1 -1
  89. package/dist/cjs/internal/provide.js +47 -25
  90. package/dist/cjs/internal/provide.js.map +1 -1
  91. package/dist/cjs/internal/requestIdleCallback.js +5 -5
  92. package/dist/cjs/internal/requestIdleCallback.js.map +1 -1
  93. package/dist/cjs/internal/share.js +12 -15
  94. package/dist/cjs/internal/share.js.map +1 -1
  95. package/dist/cjs/internal/sync-operator.js +50 -22
  96. package/dist/cjs/internal/sync-operator.js.map +1 -1
  97. package/dist/cjs/internal/sync-producer.js +114 -0
  98. package/dist/cjs/internal/sync-producer.js.map +1 -0
  99. package/dist/cjs/internal/withKey.js +45 -51
  100. package/dist/cjs/internal/withKey.js.map +1 -1
  101. package/dist/dts/AsyncData.d.ts +185 -0
  102. package/dist/dts/AsyncData.d.ts.map +1 -0
  103. package/dist/dts/Emitter.d.ts +13 -20
  104. package/dist/dts/Emitter.d.ts.map +1 -1
  105. package/dist/dts/Form.d.ts +45 -28
  106. package/dist/dts/Form.d.ts.map +1 -1
  107. package/dist/dts/FormEntry.d.ts +25 -13
  108. package/dist/dts/FormEntry.d.ts.map +1 -1
  109. package/dist/dts/Fx.d.ts +983 -1387
  110. package/dist/dts/Fx.d.ts.map +1 -1
  111. package/dist/dts/Guard.d.ts +8 -1
  112. package/dist/dts/Guard.d.ts.map +1 -1
  113. package/dist/dts/Idle.d.ts +3 -3
  114. package/dist/dts/Idle.d.ts.map +1 -1
  115. package/dist/dts/Match.d.ts +8 -8
  116. package/dist/dts/Match.d.ts.map +1 -1
  117. package/dist/dts/Pull.d.ts +5 -5
  118. package/dist/dts/Pull.d.ts.map +1 -1
  119. package/dist/dts/Push.d.ts +170 -0
  120. package/dist/dts/Push.d.ts.map +1 -0
  121. package/dist/dts/RefArray.d.ts +21 -23
  122. package/dist/dts/RefArray.d.ts.map +1 -1
  123. package/dist/dts/RefChunk.d.ts +17 -19
  124. package/dist/dts/RefChunk.d.ts.map +1 -1
  125. package/dist/dts/RefHashMap.d.ts +19 -20
  126. package/dist/dts/RefHashMap.d.ts.map +1 -1
  127. package/dist/dts/RefHashSet.d.ts +12 -16
  128. package/dist/dts/RefHashSet.d.ts.map +1 -1
  129. package/dist/dts/RefSubject.d.ts +396 -187
  130. package/dist/dts/RefSubject.d.ts.map +1 -1
  131. package/dist/dts/Sink.d.ts +193 -93
  132. package/dist/dts/Sink.d.ts.map +1 -1
  133. package/dist/dts/Stream.d.ts +7 -1
  134. package/dist/dts/Stream.d.ts.map +1 -1
  135. package/dist/dts/Subject.d.ts +27 -36
  136. package/dist/dts/Subject.d.ts.map +1 -1
  137. package/dist/dts/TypeId.d.ts +10 -0
  138. package/dist/dts/TypeId.d.ts.map +1 -1
  139. package/dist/dts/Typeclass.d.ts +2 -2
  140. package/dist/dts/Typeclass.d.ts.map +1 -1
  141. package/dist/dts/Versioned.d.ts +50 -78
  142. package/dist/dts/Versioned.d.ts.map +1 -1
  143. package/dist/dts/index.d.ts +66 -6
  144. package/dist/dts/index.d.ts.map +1 -1
  145. package/dist/dts/internal/DeferredRef.d.ts +20 -0
  146. package/dist/dts/internal/DeferredRef.d.ts.map +1 -0
  147. package/dist/dts/internal/UnionToTuple.d.ts +6 -0
  148. package/dist/dts/internal/UnionToTuple.d.ts.map +1 -0
  149. package/dist/dts/internal/core.d.ts +218 -450
  150. package/dist/dts/internal/core.d.ts.map +1 -1
  151. package/dist/dts/internal/diff.d.ts +38 -0
  152. package/dist/dts/internal/diff.d.ts.map +1 -0
  153. package/dist/dts/internal/effect-loop-operator.d.ts +34 -0
  154. package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -0
  155. package/dist/dts/internal/effect-operator.d.ts +8 -5
  156. package/dist/dts/internal/effect-operator.d.ts.map +1 -1
  157. package/dist/dts/internal/effect-producer.d.ts +25 -0
  158. package/dist/dts/internal/effect-producer.d.ts.map +1 -0
  159. package/dist/dts/internal/helpers.d.ts +33 -24
  160. package/dist/dts/internal/helpers.d.ts.map +1 -1
  161. package/dist/dts/internal/keyed.d.ts +3 -3
  162. package/dist/dts/internal/keyed.d.ts.map +1 -1
  163. package/dist/dts/internal/loop-operator.d.ts +40 -0
  164. package/dist/dts/internal/loop-operator.d.ts.map +1 -0
  165. package/dist/dts/internal/operator.d.ts +16 -0
  166. package/dist/dts/internal/operator.d.ts.map +1 -0
  167. package/dist/dts/internal/protos.d.ts +16 -43
  168. package/dist/dts/internal/protos.d.ts.map +1 -1
  169. package/dist/dts/internal/provide.d.ts +7 -1
  170. package/dist/dts/internal/provide.d.ts.map +1 -1
  171. package/dist/dts/internal/share.d.ts +12 -9
  172. package/dist/dts/internal/share.d.ts.map +1 -1
  173. package/dist/dts/internal/sync-operator.d.ts +7 -3
  174. package/dist/dts/internal/sync-operator.d.ts.map +1 -1
  175. package/dist/dts/internal/sync-producer.d.ts +36 -0
  176. package/dist/dts/internal/sync-producer.d.ts.map +1 -0
  177. package/dist/dts/internal/withKey.d.ts +3 -3
  178. package/dist/dts/internal/withKey.d.ts.map +1 -1
  179. package/dist/esm/AsyncData.js +151 -0
  180. package/dist/esm/AsyncData.js.map +1 -0
  181. package/dist/esm/Emitter.js +24 -21
  182. package/dist/esm/Emitter.js.map +1 -1
  183. package/dist/esm/Form.js +69 -14
  184. package/dist/esm/Form.js.map +1 -1
  185. package/dist/esm/FormEntry.js +77 -52
  186. package/dist/esm/FormEntry.js.map +1 -1
  187. package/dist/esm/Fx.js +509 -874
  188. package/dist/esm/Fx.js.map +1 -1
  189. package/dist/esm/Guard.js +5 -1
  190. package/dist/esm/Guard.js.map +1 -1
  191. package/dist/esm/Idle.js +49 -39
  192. package/dist/esm/Idle.js.map +1 -1
  193. package/dist/esm/Match.js +103 -63
  194. package/dist/esm/Match.js.map +1 -1
  195. package/dist/esm/Pull.js.map +1 -1
  196. package/dist/esm/Push.js +159 -0
  197. package/dist/esm/Push.js.map +1 -0
  198. package/dist/esm/RefArray.js +32 -30
  199. package/dist/esm/RefArray.js.map +1 -1
  200. package/dist/esm/RefChunk.js +26 -24
  201. package/dist/esm/RefChunk.js.map +1 -1
  202. package/dist/esm/RefHashMap.js +20 -20
  203. package/dist/esm/RefHashMap.js.map +1 -1
  204. package/dist/esm/RefHashSet.js +11 -8
  205. package/dist/esm/RefHashSet.js.map +1 -1
  206. package/dist/esm/RefSubject.js +873 -150
  207. package/dist/esm/RefSubject.js.map +1 -1
  208. package/dist/esm/Sink.js +608 -57
  209. package/dist/esm/Sink.js.map +1 -1
  210. package/dist/esm/Stream.js +13 -9
  211. package/dist/esm/Stream.js.map +1 -1
  212. package/dist/esm/Subject.js +151 -56
  213. package/dist/esm/Subject.js.map +1 -1
  214. package/dist/esm/TypeId.js +9 -4
  215. package/dist/esm/TypeId.js.map +1 -1
  216. package/dist/esm/Typeclass.js +29 -29
  217. package/dist/esm/Typeclass.js.map +1 -1
  218. package/dist/esm/Versioned.js +110 -53
  219. package/dist/esm/Versioned.js.map +1 -1
  220. package/dist/esm/index.js +66 -6
  221. package/dist/esm/index.js.map +1 -1
  222. package/dist/esm/internal/DeferredRef.js +54 -0
  223. package/dist/esm/internal/DeferredRef.js.map +1 -0
  224. package/dist/esm/internal/UnionToTuple.js +2 -0
  225. package/dist/esm/internal/UnionToTuple.js.map +1 -0
  226. package/dist/esm/internal/core.js +1439 -719
  227. package/dist/esm/internal/core.js.map +1 -1
  228. package/dist/esm/internal/diff.js +82 -0
  229. package/dist/esm/internal/diff.js.map +1 -0
  230. package/dist/esm/internal/effect-loop-operator.js +269 -0
  231. package/dist/esm/internal/effect-loop-operator.js.map +1 -0
  232. package/dist/esm/internal/effect-operator.js +44 -37
  233. package/dist/esm/internal/effect-operator.js.map +1 -1
  234. package/dist/esm/internal/effect-producer.js +47 -0
  235. package/dist/esm/internal/effect-producer.js.map +1 -0
  236. package/dist/esm/internal/helpers.js +157 -129
  237. package/dist/esm/internal/helpers.js.map +1 -1
  238. package/dist/esm/internal/keyed.js +128 -139
  239. package/dist/esm/internal/keyed.js.map +1 -1
  240. package/dist/esm/internal/loop-operator.js +186 -0
  241. package/dist/esm/internal/loop-operator.js.map +1 -0
  242. package/dist/esm/internal/operator.js +68 -0
  243. package/dist/esm/internal/operator.js.map +1 -0
  244. package/dist/esm/internal/protos.js +16 -75
  245. package/dist/esm/internal/protos.js.map +1 -1
  246. package/dist/esm/internal/provide.js +33 -25
  247. package/dist/esm/internal/provide.js.map +1 -1
  248. package/dist/esm/internal/requestIdleCallback.js +5 -5
  249. package/dist/esm/internal/requestIdleCallback.js.map +1 -1
  250. package/dist/esm/internal/share.js +12 -12
  251. package/dist/esm/internal/share.js.map +1 -1
  252. package/dist/esm/internal/sync-operator.js +49 -21
  253. package/dist/esm/internal/sync-operator.js.map +1 -1
  254. package/dist/esm/internal/sync-producer.js +88 -0
  255. package/dist/esm/internal/sync-producer.js.map +1 -0
  256. package/dist/esm/internal/withKey.js +46 -47
  257. package/dist/esm/internal/withKey.js.map +1 -1
  258. package/package.json +22 -62
  259. package/src/AsyncData.ts +447 -0
  260. package/src/Emitter.ts +47 -38
  261. package/src/Form.ts +185 -65
  262. package/src/FormEntry.ts +142 -109
  263. package/src/Fx.ts +1685 -1851
  264. package/src/Guard.ts +12 -1
  265. package/src/Idle.ts +76 -62
  266. package/src/Match.ts +149 -93
  267. package/src/Pull.ts +8 -8
  268. package/src/Push.ts +472 -0
  269. package/src/RefArray.ts +53 -51
  270. package/src/RefChunk.ts +44 -41
  271. package/src/RefHashMap.ts +57 -43
  272. package/src/RefHashSet.ts +21 -31
  273. package/src/RefSubject.ts +1984 -457
  274. package/src/Sink.ts +922 -171
  275. package/src/Stream.ts +32 -20
  276. package/src/Subject.ts +230 -87
  277. package/src/TypeId.ts +16 -4
  278. package/src/Typeclass.ts +31 -32
  279. package/src/Versioned.ts +220 -168
  280. package/src/index.ts +78 -6
  281. package/src/internal/DeferredRef.ts +62 -0
  282. package/src/internal/UnionToTuple.ts +11 -0
  283. package/src/internal/core.ts +2491 -1950
  284. package/src/internal/diff.ts +157 -0
  285. package/src/internal/effect-loop-operator.ts +466 -0
  286. package/src/internal/effect-operator.ts +89 -54
  287. package/src/internal/effect-producer.ts +125 -0
  288. package/src/internal/helpers.ts +275 -205
  289. package/src/internal/keyed.ts +192 -241
  290. package/src/internal/loop-operator.ts +266 -0
  291. package/src/internal/operator.ts +87 -0
  292. package/src/internal/protos.ts +29 -104
  293. package/src/internal/provide.ts +48 -40
  294. package/src/internal/requestIdleCallback.ts +5 -6
  295. package/src/internal/share.ts +26 -24
  296. package/src/internal/sync-operator.ts +68 -27
  297. package/src/internal/sync-producer.ts +146 -0
  298. package/src/internal/withKey.ts +64 -74
  299. package/dist/cjs/Computed.js +0 -115
  300. package/dist/cjs/Computed.js.map +0 -1
  301. package/dist/cjs/Filtered.js +0 -95
  302. package/dist/cjs/Filtered.js.map +0 -1
  303. package/dist/cjs/Model.js +0 -119
  304. package/dist/cjs/Model.js.map +0 -1
  305. package/dist/cjs/RefAsyncData.js +0 -187
  306. package/dist/cjs/RefAsyncData.js.map +0 -1
  307. package/dist/cjs/RefAsyncDataArray.js +0 -38
  308. package/dist/cjs/RefAsyncDataArray.js.map +0 -1
  309. package/dist/cjs/RefBoolean.js +0 -45
  310. package/dist/cjs/RefBoolean.js.map +0 -1
  311. package/dist/cjs/RefNumber.js +0 -49
  312. package/dist/cjs/RefNumber.js.map +0 -1
  313. package/dist/cjs/internal/core-ref-subject.js +0 -254
  314. package/dist/cjs/internal/core-ref-subject.js.map +0 -1
  315. package/dist/cjs/internal/core-subject.js +0 -108
  316. package/dist/cjs/internal/core-subject.js.map +0 -1
  317. package/dist/cjs/internal/deferred-ref.js.map +0 -1
  318. package/dist/cjs/internal/effect-primitive.js +0 -47
  319. package/dist/cjs/internal/effect-primitive.js.map +0 -1
  320. package/dist/cjs/internal/fx-effect-proto.js +0 -58
  321. package/dist/cjs/internal/fx-effect-proto.js.map +0 -1
  322. package/dist/cjs/internal/fx-primitive.js +0 -193
  323. package/dist/cjs/internal/fx-primitive.js.map +0 -1
  324. package/dist/cjs/internal/fx.js +0 -240
  325. package/dist/cjs/internal/fx.js.map +0 -1
  326. package/dist/cjs/internal/matchers.js +0 -34
  327. package/dist/cjs/internal/matchers.js.map +0 -1
  328. package/dist/cjs/internal/run.js +0 -54
  329. package/dist/cjs/internal/run.js.map +0 -1
  330. package/dist/cjs/internal/schema-ref-subject.js +0 -132
  331. package/dist/cjs/internal/schema-ref-subject.js.map +0 -1
  332. package/dist/cjs/internal/versioned-transform.js +0 -46
  333. package/dist/cjs/internal/versioned-transform.js.map +0 -1
  334. package/dist/dts/Computed.d.ts +0 -106
  335. package/dist/dts/Computed.d.ts.map +0 -1
  336. package/dist/dts/Filtered.d.ts +0 -97
  337. package/dist/dts/Filtered.d.ts.map +0 -1
  338. package/dist/dts/Model.d.ts +0 -200
  339. package/dist/dts/Model.d.ts.map +0 -1
  340. package/dist/dts/RefAsyncData.d.ts +0 -236
  341. package/dist/dts/RefAsyncData.d.ts.map +0 -1
  342. package/dist/dts/RefAsyncDataArray.d.ts +0 -56
  343. package/dist/dts/RefAsyncDataArray.d.ts.map +0 -1
  344. package/dist/dts/RefBoolean.d.ts +0 -47
  345. package/dist/dts/RefBoolean.d.ts.map +0 -1
  346. package/dist/dts/RefNumber.d.ts +0 -48
  347. package/dist/dts/RefNumber.d.ts.map +0 -1
  348. package/dist/dts/internal/core-ref-subject.d.ts +0 -100
  349. package/dist/dts/internal/core-ref-subject.d.ts.map +0 -1
  350. package/dist/dts/internal/core-subject.d.ts +0 -5
  351. package/dist/dts/internal/core-subject.d.ts.map +0 -1
  352. package/dist/dts/internal/deferred-ref.d.ts +0 -12
  353. package/dist/dts/internal/deferred-ref.d.ts.map +0 -1
  354. package/dist/dts/internal/effect-primitive.d.ts +0 -6
  355. package/dist/dts/internal/effect-primitive.d.ts.map +0 -1
  356. package/dist/dts/internal/fx-effect-proto.d.ts +0 -30
  357. package/dist/dts/internal/fx-effect-proto.d.ts.map +0 -1
  358. package/dist/dts/internal/fx-primitive.d.ts +0 -109
  359. package/dist/dts/internal/fx-primitive.d.ts.map +0 -1
  360. package/dist/dts/internal/fx.d.ts +0 -245
  361. package/dist/dts/internal/fx.d.ts.map +0 -1
  362. package/dist/dts/internal/matchers.d.ts +0 -33
  363. package/dist/dts/internal/matchers.d.ts.map +0 -1
  364. package/dist/dts/internal/run.d.ts +0 -8
  365. package/dist/dts/internal/run.d.ts.map +0 -1
  366. package/dist/dts/internal/schema-ref-subject.d.ts +0 -5
  367. package/dist/dts/internal/schema-ref-subject.d.ts.map +0 -1
  368. package/dist/dts/internal/versioned-transform.d.ts +0 -17
  369. package/dist/dts/internal/versioned-transform.d.ts.map +0 -1
  370. package/dist/esm/Computed.js +0 -103
  371. package/dist/esm/Computed.js.map +0 -1
  372. package/dist/esm/Filtered.js +0 -83
  373. package/dist/esm/Filtered.js.map +0 -1
  374. package/dist/esm/Model.js +0 -100
  375. package/dist/esm/Model.js.map +0 -1
  376. package/dist/esm/RefAsyncData.js +0 -163
  377. package/dist/esm/RefAsyncData.js.map +0 -1
  378. package/dist/esm/RefAsyncDataArray.js +0 -27
  379. package/dist/esm/RefAsyncDataArray.js.map +0 -1
  380. package/dist/esm/RefBoolean.js +0 -31
  381. package/dist/esm/RefBoolean.js.map +0 -1
  382. package/dist/esm/RefNumber.js +0 -35
  383. package/dist/esm/RefNumber.js.map +0 -1
  384. package/dist/esm/internal/core-ref-subject.js +0 -242
  385. package/dist/esm/internal/core-ref-subject.js.map +0 -1
  386. package/dist/esm/internal/core-subject.js +0 -90
  387. package/dist/esm/internal/core-subject.js.map +0 -1
  388. package/dist/esm/internal/deferred-ref.js +0 -23
  389. package/dist/esm/internal/deferred-ref.js.map +0 -1
  390. package/dist/esm/internal/effect-primitive.js +0 -41
  391. package/dist/esm/internal/effect-primitive.js.map +0 -1
  392. package/dist/esm/internal/fx-effect-proto.js +0 -43
  393. package/dist/esm/internal/fx-effect-proto.js.map +0 -1
  394. package/dist/esm/internal/fx-primitive.js +0 -175
  395. package/dist/esm/internal/fx-primitive.js.map +0 -1
  396. package/dist/esm/internal/fx.js +0 -216
  397. package/dist/esm/internal/fx.js.map +0 -1
  398. package/dist/esm/internal/matchers.js +0 -38
  399. package/dist/esm/internal/matchers.js.map +0 -1
  400. package/dist/esm/internal/run.js +0 -32
  401. package/dist/esm/internal/run.js.map +0 -1
  402. package/dist/esm/internal/schema-ref-subject.js +0 -121
  403. package/dist/esm/internal/schema-ref-subject.js.map +0 -1
  404. package/dist/esm/internal/versioned-transform.js +0 -37
  405. package/dist/esm/internal/versioned-transform.js.map +0 -1
  406. package/src/Computed.ts +0 -289
  407. package/src/Filtered.ts +0 -274
  408. package/src/Model.ts +0 -483
  409. package/src/RefAsyncData.ts +0 -547
  410. package/src/RefAsyncDataArray.ts +0 -135
  411. package/src/RefBoolean.ts +0 -71
  412. package/src/RefNumber.ts +0 -77
  413. package/src/internal/core-ref-subject.ts +0 -528
  414. package/src/internal/core-subject.ts +0 -143
  415. package/src/internal/deferred-ref.ts +0 -26
  416. package/src/internal/effect-primitive.ts +0 -230
  417. package/src/internal/fx-effect-proto.ts +0 -56
  418. package/src/internal/fx-primitive.ts +0 -223
  419. package/src/internal/fx.ts +0 -619
  420. package/src/internal/matchers.ts +0 -83
  421. package/src/internal/run.ts +0 -51
  422. package/src/internal/schema-ref-subject.ts +0 -163
  423. package/src/internal/versioned-transform.ts +0 -48
package/src/Stream.ts CHANGED
@@ -12,7 +12,7 @@ import * as Queue from "effect/Queue"
12
12
  import type * as Scope from "effect/Scope"
13
13
  import * as Stream from "effect/Stream"
14
14
  import * as Fx from "./Fx.js"
15
- import { Sink } from "./Sink.js"
15
+ import * as Sink from "./Sink.js"
16
16
 
17
17
  /**
18
18
  * Convert an Fx to a Stream
@@ -21,9 +21,8 @@ import { Sink } from "./Sink.js"
21
21
  */
22
22
  export function toStream<R, E, A>(fx: Fx.Fx<R, E, A>): Stream.Stream<R, E, A> {
23
23
  return Stream.asyncScoped<R | Scope.Scope, E, A>((emit) =>
24
- Fx.run(
25
- fx,
26
- Sink(
24
+ fx.run(
25
+ Sink.make(
27
26
  (cause) => Effect.promise(() => emit(Effect.failCause(Cause.map(cause, Option.some)))),
28
27
  (a) => Effect.promise(() => emit(Effect.succeed(Chunk.of(a))))
29
28
  )
@@ -54,20 +53,20 @@ export const toStreamQueued: {
54
53
  fx: Fx.Fx<R, E, A>,
55
54
  make: Effect.Effect<R2, E2, Queue.Queue<Exit.Exit<Option.Option<E>, A>>>
56
55
  ): Stream.Stream<R | R2, E | E2, A> {
57
- return Stream.flattenExitOption(Stream.unwrapScoped(Effect.gen(function*(_) {
58
- const queue = yield* _(make)
59
-
60
- yield* _(
61
- fx,
62
- Fx.mapError(Option.some),
63
- Fx.exit,
64
- Fx.toEnqueue(queue),
65
- Effect.ensuring(queue.offer(Exit.fail(Option.none()))),
66
- Effect.forkScoped
67
- )
68
-
69
- return Stream.fromQueue(queue)
70
- })))
56
+ return make.pipe(
57
+ Effect.tap((queue) =>
58
+ fx.pipe(
59
+ Fx.mapError(Option.some),
60
+ Fx.exit,
61
+ Fx.toEnqueue(queue),
62
+ Effect.ensuring(queue.offer(Exit.fail(Option.none()))),
63
+ Effect.forkScoped
64
+ )
65
+ ),
66
+ Effect.map((queue) => Stream.fromQueue(queue)),
67
+ Stream.unwrapScoped,
68
+ Stream.flattenExitOption
69
+ )
71
70
  })
72
71
 
73
72
  /**
@@ -118,11 +117,24 @@ export const toStreamBounded: {
118
117
  }
119
118
  )
120
119
 
120
+ /**
121
+ * Convert a Stream to an Fx
122
+ * @since 1.18.0
123
+ * @category conversions
124
+ */
125
+ export function fromStream<R, E, A>(
126
+ stream: Stream.Stream<R, E, A>
127
+ ): Fx.Fx<R, E, A> {
128
+ return Fx.make<R, E, A>((sink) => Effect.catchAllCause(Stream.runForEach(stream, sink.onSuccess), sink.onFailure))
129
+ }
130
+
121
131
  /**
122
132
  * Convert a Stream to an Fx of chunks
123
133
  * @since 1.18.0
124
134
  * @category conversions
125
135
  */
126
- export function chunked<R, E, A>(stream: Stream.Stream<R, E, A>): Fx.Fx<R, E, Chunk.Chunk<A>> {
127
- return Fx.fromSink((sink) => Effect.catchAllCause(Stream.runForEachChunk(stream, sink.onSuccess), sink.onFailure))
136
+ export function fromStreamChunked<R, E, A>(stream: Stream.Stream<R, E, A>): Fx.Fx<R, E, Chunk.Chunk<A>> {
137
+ return Fx.make<R, E, Chunk.Chunk<A>>((sink) =>
138
+ Effect.catchAllCause(Stream.runForEachChunk(stream, sink.onSuccess), sink.onFailure)
139
+ )
128
140
  }
package/src/Subject.ts CHANGED
@@ -1,143 +1,286 @@
1
1
  /**
2
- * Subjects are the basis for sharing events between multiple consumers in an effecient manner
3
- * and for event-bus-like functionality.
4
- * @since 1.18.0
2
+ * Subject is an Fx type which can also be imperatively pushed into.
3
+ * @since 1.20.0
5
4
  */
6
5
 
7
6
  import * as C from "@typed/context"
8
- import type { Cause } from "effect/Cause"
7
+ import type { Cause, Layer, Pipeable } from "effect"
8
+ import * as Context from "effect/Context"
9
9
  import * as Effect from "effect/Effect"
10
- import type * as Layer from "effect/Layer"
11
- import { type Fx, ToFx } from "./Fx.js"
12
- import * as internal from "./internal/core-subject.js"
10
+ import * as ExecutionStrategy from "effect/ExecutionStrategy"
11
+ import * as Exit from "effect/Exit"
12
+ import { dual, identity } from "effect/Function"
13
+ import * as MutableRef from "effect/MutableRef"
14
+ import * as Option from "effect/Option"
15
+ import { hasProperty } from "effect/Predicate"
16
+ import * as Scope from "effect/Scope"
17
+ import { type Fx } from "./Fx.js"
13
18
  import { provide } from "./internal/core.js"
14
- import { fromFxEffect } from "./internal/fx.js"
15
- import type { WithContext } from "./Sink.js"
19
+ import { awaitScopeClose, RingBuffer, withScope } from "./internal/helpers.js"
20
+ import { FxBase } from "./internal/protos.js"
21
+ import type { Push } from "./Push.js"
22
+ import type { Sink } from "./Sink.js"
23
+ import { TypeId } from "./TypeId.js"
16
24
 
17
25
  /**
18
- * A Subject is an Fx which is also a Sink, and can be used to
19
- * broadcast events to many consumers.
20
- * @since 1.18.0
21
- * @category models
26
+ * Subject is an Fx type which can also be imperatively pushed into.
27
+ * @since 1.20.0
22
28
  */
23
- export interface Subject<R, E, A> extends Fx<R, E, A>, WithContext<R, E, A> {
29
+ export interface Subject<R, E, A>
30
+ extends Push<R, E, A, R | Scope.Scope, E, A>, Fx<R | Scope.Scope, E, A>, Pipeable.Pipeable
31
+ {
24
32
  readonly subscriberCount: Effect.Effect<R, never, number>
25
33
  readonly interrupt: Effect.Effect<R, never, void>
26
34
  }
27
35
 
28
36
  /**
29
- * @since 1.18.0
37
+ * @since 1.20.0
30
38
  */
31
39
  export namespace Subject {
32
40
  /**
33
- * A Contextual wrapper around a Subject
34
- * @since 1.18.0
35
- * @category models
41
+ * @since 1.20.0
36
42
  */
37
43
  export interface Tagged<I, E, A> extends Subject<I, E, A> {
38
44
  readonly tag: C.Tagged<I, Subject<never, E, A>>
39
45
 
40
- readonly interrupt: Effect.Effect<I, never, void>
46
+ readonly make: (replay?: number) => Layer.Layer<never, never, I>
47
+ readonly provide: Provide<I>
48
+ }
49
+
50
+ /**
51
+ * @since 1.20.0
52
+ */
53
+ export type Provide<I> = <
54
+ const Args extends
55
+ | readonly [
56
+ | Fx<any, any, any>
57
+ | Effect.Effect<any, any, any>,
58
+ number?
59
+ ]
60
+ | readonly [
61
+ number
62
+ ]
63
+ >(
64
+ ...args: Args
65
+ ) => Args extends readonly [infer _ extends number] ? <T extends Fx<any, any, any> | Effect.Effect<any, any, any>>(
66
+ fxOrEffect: T
67
+ ) => [T] extends [Fx<infer R2, infer E2, infer B>] ? Fx<Exclude<R2, I>, E2, B>
68
+ : [T] extends [Effect.Effect<infer R2, infer E2, infer B>] ? Effect.Effect<Exclude<R2, I>, E2, B>
69
+ : never
70
+ : Args extends readonly [Fx<infer R2, infer E2, infer B>] ? Fx<Exclude<R2, I>, E2, B>
71
+ : Args extends readonly [Effect.Effect<infer R2, infer E2, infer B>] ? Effect.Effect<Exclude<R2, I>, E2, B>
72
+ : never
73
+ }
41
74
 
42
- readonly provide: (
43
- replay?: number
44
- ) => <R2, E2, B>(effect: Effect.Effect<R2, E2, B>) => Effect.Effect<Exclude<R2, I>, E2, B>
75
+ const DISCARD = { discard: true } as const
45
76
 
46
- readonly provideFx: (
47
- replay?: number
48
- ) => <R2, E2, B>(fx: Fx<R2, E2, B>) => Fx<Exclude<R2, I>, E2, B>
77
+ /**
78
+ * @internal
79
+ */
80
+ export class SubjectImpl<E, A> extends FxBase<Scope.Scope, E, A> implements Subject<never, E, A> {
81
+ protected sinks: Set<readonly [Sink<any, E, A>, Context.Context<any>]> = new Set()
82
+ protected scopes: Set<Scope.CloseableScope> = new Set()
49
83
 
50
- readonly make: (replay?: number) => Layer.Layer<never, never, I>
84
+ constructor() {
85
+ super()
86
+ this.onFailure = this.onFailure.bind(this)
87
+ this.onSuccess = this.onSuccess.bind(this)
88
+ }
89
+
90
+ run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
91
+ return this.addSink(sink, awaitScopeClose)
92
+ }
93
+
94
+ // Emit a failure to all sinks
95
+ onFailure(cause: Cause.Cause<E>) {
96
+ return this.onCause(cause)
97
+ }
98
+
99
+ // Emit an event to all sinks
100
+ onSuccess(a: A) {
101
+ return this.onEvent(a)
102
+ }
103
+
104
+ readonly interrupt = Effect.fiberIdWith((id) =>
105
+ Effect.forEach(this.scopes, (scope) => Scope.close(scope, Exit.interrupt(id)), DISCARD)
106
+ )
107
+
108
+ protected addSink<R, R2, B>(
109
+ sink: Sink<R, E, A>,
110
+ f: (scope: Scope.Scope) => Effect.Effect<R2, never, B>
111
+ ): Effect.Effect<R2 | Scope.Scope, never, B> {
112
+ return withScope(
113
+ (innerScope) =>
114
+ Effect.contextWithEffect((ctx) => {
115
+ const entry = [sink, Context.add(ctx, Scope.Scope, innerScope)] as const
116
+ const add = Effect.sync(() => {
117
+ this.sinks.add(entry)
118
+ this.scopes.add(innerScope)
119
+ })
120
+ const remove = Effect.sync(() => {
121
+ this.sinks.delete(entry)
122
+ this.scopes.delete(innerScope)
123
+ })
124
+
125
+ return Effect.zipRight(
126
+ Scope.addFinalizer(innerScope, remove),
127
+ Effect.zipRight(add, f(innerScope))
128
+ )
129
+ }),
130
+ ExecutionStrategy.sequential
131
+ )
132
+ }
133
+
134
+ readonly subscriberCount: Effect.Effect<never, never, number> = Effect.sync(() => this.sinks.size)
135
+
136
+ protected onEvent(a: A) {
137
+ if (this.sinks.size === 0) return Effect.unit
138
+ else {
139
+ return Effect.forEach(this.sinks, ([sink, ctx]) => Effect.provide(sink.onSuccess(a), ctx), DISCARD)
140
+ }
141
+ }
142
+
143
+ protected onCause(cause: Cause.Cause<E>) {
144
+ return Effect.forEach(
145
+ this.sinks,
146
+ ([sink, ctx]) => Effect.provide(sink.onFailure(cause), ctx),
147
+ DISCARD
148
+ )
51
149
  }
52
150
  }
53
151
 
54
152
  /**
55
- * Constructs a Subject that can be used to broadcast events to many consumers.
56
- * @since 1.18.0
57
- * @category constructors
153
+ * @internal
58
154
  */
59
- export const make: <E, A>() => Subject<never, E, A> = internal.makeSubject
155
+ export class HoldSubjectImpl<E, A> extends SubjectImpl<E, A> implements Subject<never, E, A> {
156
+ private lastValue: MutableRef.MutableRef<Option.Option<A>> = MutableRef.make(Option.none())
157
+
158
+ // Emit an event to all sinks
159
+ onSuccess = (a: A) =>
160
+ Effect.suspend(() => {
161
+ MutableRef.set(this.lastValue, Option.some(a))
162
+
163
+ return this.onEvent(a)
164
+ })
165
+
166
+ run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
167
+ return this.addSink(sink, (scope) =>
168
+ Option.match(MutableRef.get(this.lastValue), {
169
+ onNone: () => awaitScopeClose(scope),
170
+ onSome: (a) => Effect.zipRight(sink.onSuccess(a), awaitScopeClose(scope))
171
+ }))
172
+ }
173
+ }
60
174
 
61
175
  /**
62
- * Constructs a Subject that can be used to broadcast events to many consumers.
63
- * If a previous event has been consumed previously, any "late" subscribers will
64
- * receive that previous event.
65
- * @since 1.18.0
66
- * @category constructors
176
+ * @internal
67
177
  */
68
- export const makeHold: <E, A>() => Subject<never, E, A> = internal.makeHoldSubject
178
+ export class ReplaySubjectImpl<E, A> extends SubjectImpl<E, A> {
179
+ constructor(readonly buffer: RingBuffer<A>) {
180
+ super()
181
+ }
182
+
183
+ // Emit an event to all sinks
184
+ onSuccess = (a: A) =>
185
+ Effect.suspend(() => {
186
+ this.buffer.push(a)
187
+
188
+ return this.onEvent(a)
189
+ })
190
+
191
+ run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R2 | Scope.Scope, never, unknown> {
192
+ return this.addSink(
193
+ sink,
194
+ (scope) => Effect.zipRight(this.buffer.forEach((a) => sink.onSuccess(a)), awaitScopeClose(scope))
195
+ )
196
+ }
197
+ }
69
198
 
70
199
  /**
71
- * Constructs a Subject that can be used to broadcast events to many consumers.
72
- * If a previous event has been consumed previously, any "late" subscribers will
73
- * receive _up to_ `capacity` previous events.
74
- * @since 1.18.0
75
- * @category constructors
200
+ * @since 1.20.0
76
201
  */
77
- export const makeReplay: <E, A>(capacity: number) => Subject<never, E, A> = internal.makeReplaySubject
202
+ export function unsafeMake<E, A>(replay: number = 0): Subject<never, E, A> {
203
+ replay = Math.max(0, replay)
204
+
205
+ if (replay === 0) {
206
+ return new SubjectImpl<E, A>()
207
+ } else if (replay === 1) {
208
+ return new HoldSubjectImpl<E, A>()
209
+ } else {
210
+ return new ReplaySubjectImpl<E, A>(new RingBuffer(replay))
211
+ }
212
+ }
78
213
 
79
214
  /**
80
- * Construct a contextual Subject
81
- * @since 1.18.0
82
- * @category constructors
215
+ * @since 1.20.0
83
216
  */
84
- export function tagged<E, A>(): {
85
- <const I extends C.IdentifierFactory<any>>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
86
- <const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
87
- } {
88
- function makeTagged<const I extends C.IdentifierFactory<any>>(
89
- identifier: I
90
- ): Subject.Tagged<C.IdentifierOf<I>, E, A>
91
- function makeTagged<const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
92
- function makeTagged<const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A> {
93
- return new ContextImpl(C.Tagged<I, Subject<never, E, A>>(identifier))
94
- }
217
+ export function make<E, A>(replay?: number): Effect.Effect<Scope.Scope, never, Subject<never, E, A>> {
218
+ return Effect.acquireRelease(Effect.sync(() => unsafeMake(replay)), (subject) => subject.interrupt)
219
+ }
95
220
 
96
- return makeTagged
221
+ /**
222
+ * @since 1.20.0
223
+ */
224
+ export function fromTag<I, S, R, E, A>(tag: C.Tag<I, S>, f: (s: S) => Subject<R, E, A>): Subject<I | R, E, A> {
225
+ return new FromTag(tag, f)
97
226
  }
98
227
 
99
- class ContextImpl<I, E, A> extends ToFx<I, E, A> implements Subject.Tagged<I, E, A> {
100
- interrupt: Subject.Tagged<I, E, A>["interrupt"]
101
- subscriberCount: Subject.Tagged<I, E, A>["subscriberCount"]
228
+ class FromTag<I, S, R, E, A> extends FxBase<I | R | Scope.Scope, E, A> implements Subject<I | R, E, A> {
229
+ private get: Effect.Effect<I, never, Subject<R, E, A>>
102
230
 
103
- constructor(readonly tag: C.Tagged<I, Subject<never, E, A>>) {
231
+ readonly subscriberCount: Effect.Effect<I | R, never, number>
232
+ readonly interrupt: Effect.Effect<I | R, never, void>
233
+
234
+ constructor(readonly tag: C.Tag<I, S>, readonly f: (s: S) => Subject<R, E, A>) {
104
235
  super()
105
236
 
106
- this.onFailure = this.onFailure.bind(this)
107
- this.onSuccess = this.onSuccess.bind(this)
108
- this.provide = this.provide.bind(this)
109
- this.make = this.make.bind(this)
110
- this.interrupt = tag.withEffect((subject) => subject.interrupt)
111
- this.subscriberCount = tag.withEffect((subject) => subject.subscriberCount)
237
+ this.get = Effect.map(tag, f)
238
+ this.subscriberCount = Effect.flatMap(this.get, (subject) => subject.subscriberCount)
239
+ this.interrupt = Effect.flatMap(this.get, (subject) => subject.interrupt)
112
240
  }
113
241
 
114
- toFx() {
115
- return fromFxEffect(this.tag)
242
+ run<R2>(sink: Sink<R2, E, A>): Effect.Effect<I | R | R2 | Scope.Scope, never, unknown> {
243
+ return Effect.flatMap(this.get, (subject) => subject.run(sink))
116
244
  }
117
245
 
118
- onFailure(cause: Cause<E>) {
119
- return this.tag.withEffect((subject) => subject.onFailure(cause))
246
+ onFailure(cause: Cause.Cause<E>): Effect.Effect<I | R, never, unknown> {
247
+ return Effect.flatMap(this.get, (subject) => subject.onFailure(cause))
120
248
  }
121
249
 
122
- onSuccess(a: A) {
123
- return this.tag.withEffect((subject) => subject.onSuccess(a))
250
+ onSuccess(value: A): Effect.Effect<I | R, never, unknown> {
251
+ return Effect.flatMap(this.get, (subject) => subject.onSuccess(value))
124
252
  }
253
+ }
125
254
 
126
- make(replay?: number): Layer.Layer<never, never, I> {
127
- return this.tag.layer(Effect.sync(() => {
128
- if (replay === undefined || replay <= 0) {
129
- return make<E, A>()
130
- } else if (replay === 1) {
131
- return makeHold<E, A>()
132
- } else {
133
- return makeReplay<E, A>(replay)
255
+ /**
256
+ * @since 1.20.0
257
+ */
258
+ export function tagged<E, A>(): {
259
+ <const I extends C.IdentifierFactory<any>>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
260
+ <const I>(identifier: I): Subject.Tagged<C.IdentifierOf<I>, E, A>
261
+ } {
262
+ return <const I>(identifier: I) => new TaggedImpl(C.Tagged<I, Subject<never, E, A>>(identifier))
263
+ }
264
+
265
+ const isDataFirst = (args: IArguments): boolean =>
266
+ args.length === 2 || Effect.isEffect(args[0]) || hasProperty(args[0], TypeId)
267
+
268
+ class TaggedImpl<I, E, A> extends FromTag<I, Subject<never, E, A>, never, E, A> implements Subject.Tagged<I, E, A> {
269
+ readonly provide: Subject.Tagged<I, E, A>["provide"]
270
+
271
+ constructor(readonly tag: C.Tagged<I, Subject<never, E, A>>) {
272
+ super(tag, identity)
273
+
274
+ this.provide = dual(
275
+ isDataFirst,
276
+ <R2, E2, B>(fxOrEffect: Fx<R2, E2, B> | Effect.Effect<R2, E2, B>, replay?: number) => {
277
+ if (TypeId in fxOrEffect) return provide(fxOrEffect as Fx<Exclude<R2, I>, E2, B>, this.make(replay))
278
+ else return Effect.provide(fxOrEffect as Effect.Effect<R2, E2, B>, this.make(replay))
134
279
  }
135
- }))
280
+ )
136
281
  }
137
282
 
138
- provide: (replay?: number) => <R2, E2, B>(effect: Effect.Effect<R2, E2, B>) => Effect.Effect<Exclude<R2, I>, E2, B> =
139
- (replay) => (effect) => Effect.provide(effect, this.make(replay))
140
-
141
- provideFx: (replay?: number) => <R2, E2, B>(fx: Fx<R2, E2, B>) => Fx<Exclude<R2, I>, E2, B> = (replay) => (fx) =>
142
- provide(fx, this.make(replay))
283
+ make(replay?: number): Layer.Layer<never, never, I> {
284
+ return this.tag.scoped(make(replay))
285
+ }
143
286
  }
package/src/TypeId.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * @since 1.18.0
3
3
  * @category symbols
4
4
  */
5
- export const TypeId = Symbol.for("./Fx.js")
5
+ export const TypeId = Symbol.for("@typed/fx/Fx")
6
6
 
7
7
  /**
8
8
  * @since 1.18.0
@@ -14,7 +14,7 @@ export type TypeId = typeof TypeId
14
14
  * @since 1.18.0
15
15
  * @category symbols
16
16
  */
17
- export const RefSubjectTypeId = Symbol.for("./RefSubject.js")
17
+ export const RefSubjectTypeId = Symbol.for("@typed/fx/RefSubject")
18
18
 
19
19
  /**
20
20
  * @since 1.18.0
@@ -26,7 +26,7 @@ export type RefSubjectTypeId = typeof RefSubjectTypeId
26
26
  * @since 1.18.0
27
27
  * @category symbols
28
28
  */
29
- export const ComputedTypeId = Symbol.for("./Computed.js")
29
+ export const ComputedTypeId = Symbol.for("@typed/fx/Computed")
30
30
 
31
31
  /**
32
32
  * @since 1.18.0
@@ -38,10 +38,22 @@ export type ComputedTypeId = typeof ComputedTypeId
38
38
  * @since 1.18.0
39
39
  * @category symbols
40
40
  */
41
- export const FilteredTypeId = Symbol.for("./Filtered.js")
41
+ export const FilteredTypeId = Symbol.for("@typed/fx/Filtered")
42
42
 
43
43
  /**
44
44
  * @since 1.18.0
45
45
  * @category symbols
46
46
  */
47
47
  export type FilteredTypeId = typeof FilteredTypeId
48
+
49
+ /**
50
+ * @since 1.18.0
51
+ * @category symbols
52
+ */
53
+ export const PushTypeId = Symbol.for("@typed/fx/Push")
54
+
55
+ /**
56
+ * @since 1.18.0
57
+ * @category symbols
58
+ */
59
+ export type PushTypeId = typeof PushTypeId