@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/Model.ts DELETED
@@ -1,483 +0,0 @@
1
- /**
2
- * @typed/context/Model provides a way to group Refs together into a single Ref
3
- * that is utilized as a single unit from the Effect Context.
4
- * @since 1.18.0
5
- */
6
-
7
- import { type Context, ContextBuilder } from "@typed/context"
8
- import * as Effect from "effect/Effect"
9
- import type { Equivalence } from "effect/Equivalence"
10
- import * as Layer from "effect/Layer"
11
- import * as Option from "effect/Option"
12
- import type { Scope } from "effect/Scope"
13
- import { Computed } from "./Computed.js"
14
- import { Filtered } from "./Filtered.js"
15
- import type { Fx, FxInput } from "./Fx.js"
16
- import { struct } from "./Fx.js"
17
- import { FxEffectBase } from "./internal/protos.js"
18
- import type { RefSubject } from "./RefSubject.js"
19
- import type { Versioned } from "./Versioned.js"
20
-
21
- /**
22
- * @since 1.18.0
23
- * @category symbols
24
- */
25
- export const ModelTypeId = Symbol.for("./Model.js")
26
-
27
- /**
28
- * @since 1.18.0
29
- * @category symbols
30
- */
31
- export type ModelTypeId = typeof ModelTypeId
32
-
33
- type Any = RefSubject<any, any, any> | RefSubject<any, never, any> | Model<any>
34
-
35
- /**
36
- * A Model is a collection of Refs that can be utilized as a single unit from the Effect Context.
37
- * @since 1.18.0
38
- * @category models
39
- */
40
- export interface Model<Refs extends Readonly<Record<string, Any>>> extends
41
- Versioned<
42
- Model.Identifier<Refs[keyof Refs]>,
43
- never,
44
- Model.Identifier<Refs[keyof Refs]>,
45
- Model.Error<Refs[keyof Refs]>,
46
- {
47
- readonly [K in keyof Refs]: Model.State<Refs[K]>
48
- },
49
- Model.Identifier<Refs[keyof Refs]>,
50
- Model.Error<Refs[keyof Refs]>,
51
- {
52
- readonly [K in keyof Refs]: Model.State<Refs[K]>
53
- }
54
- >
55
- {
56
- readonly [ModelTypeId]: ModelTypeId
57
-
58
- /**
59
- * A Lens into a Ref from any given model at a particular key.
60
- * @since 1.18.0
61
- */
62
- readonly fromKey: <K extends keyof Refs>(key: K) => Refs[K]
63
-
64
- /**
65
- * Get the current state of the Model
66
- * @since 1.18.0
67
- */
68
- readonly get: Effect.Effect<
69
- Model.Identifier<Refs[keyof Refs]>,
70
- never,
71
- {
72
- readonly [K in keyof Refs]: Model.State<Refs[K]>
73
- }
74
- >
75
-
76
- /**
77
- * Set the state of the Model
78
- * @since 1.18.0
79
- */
80
- readonly set: (
81
- state: {
82
- readonly [K in keyof Refs]: Model.State<Refs[K]>
83
- }
84
- ) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, void>
85
-
86
- /**
87
- * Update the state of the Model
88
- * @since 1.18.0
89
- */
90
- readonly update: (
91
- f: (
92
- state: {
93
- readonly [K in keyof Refs]: Model.State<Refs[K]>
94
- }
95
- ) => {
96
- readonly [K in keyof Refs]: Model.State<Refs[K]>
97
- }
98
- ) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, void>
99
-
100
- /**
101
- * Modify the state of the Model and return a value
102
- * @since 1.18.0
103
- */
104
- readonly modify: <B>(
105
- f: (
106
- state: {
107
- readonly [K in keyof Refs]: Model.State<Refs[K]>
108
- }
109
- ) => readonly [
110
- B,
111
- {
112
- readonly [K in keyof Refs]: Model.State<Refs[K]>
113
- }
114
- ]
115
- ) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, B>
116
-
117
- /**
118
- * Delete the model's state
119
- */
120
- readonly delete: Effect.Effect<
121
- Model.Identifier<Refs[keyof Refs]>,
122
- never,
123
- Option.Option<
124
- {
125
- readonly [K in keyof Refs]: Model.State<Refs[K]>
126
- }
127
- >
128
- >
129
-
130
- readonly mapEffect: <R2, E2, B>(
131
- f: (
132
- state: {
133
- readonly [K in keyof Refs]: Model.State<Refs[K]>
134
- }
135
- ) => Effect.Effect<R2, E2, B>
136
- ) => Computed<Model.Identifier<Refs[keyof Refs]> | R2, Model.Error<Refs[keyof Refs]> | E2, B>
137
-
138
- readonly map: <B>(
139
- f: (
140
- state: {
141
- readonly [K in keyof Refs]: Model.State<Refs[K]>
142
- }
143
- ) => B
144
- ) => Computed<Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, B>
145
-
146
- readonly filterMapEffect: <R2, E2, B>(
147
- f: (
148
- state: {
149
- readonly [K in keyof Refs]: Model.State<Refs[K]>
150
- }
151
- ) => Effect.Effect<R2, E2, Option.Option<B>>
152
- ) => Filtered<Model.Identifier<Refs[keyof Refs]> | R2, Model.Error<Refs[keyof Refs]> | E2, B>
153
-
154
- readonly filterMap: <B>(
155
- f: (
156
- state: {
157
- readonly [K in keyof Refs]: Model.State<Refs[K]>
158
- }
159
- ) => Option.Option<B>
160
- ) => Filtered<Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, B>
161
-
162
- readonly filterEffect: <R2, E2>(
163
- f: (
164
- state: {
165
- readonly [K in keyof Refs]: Model.State<Refs[K]>
166
- }
167
- ) => Effect.Effect<R2, E2, boolean>
168
- ) => Filtered<
169
- Model.Identifier<Refs[keyof Refs]> | R2,
170
- Model.Error<Refs[keyof Refs]> | E2,
171
- {
172
- readonly [K in keyof Refs]: Model.State<Refs[K]>
173
- }
174
- >
175
-
176
- readonly filter: (
177
- f: (
178
- state: {
179
- readonly [K in keyof Refs]: Model.State<Refs[K]>
180
- }
181
- ) => boolean
182
- ) => Filtered<
183
- Model.Identifier<Refs[keyof Refs]>,
184
- Model.Error<Refs[keyof Refs]>,
185
- {
186
- readonly [K in keyof Refs]: Model.State<Refs[K]>
187
- }
188
- >
189
- }
190
-
191
- /**
192
- * @since 1.18.0
193
- */
194
- export namespace Model {
195
- /**
196
- * @since 1.18.0
197
- */
198
- export type AnyTagged = RefSubject.Tagged<any, any, any> | RefSubject.Tagged<any, never, any> | Model.Tagged<any>
199
-
200
- /**
201
- * @since 1.18.0
202
- */
203
- export interface Tagged<Refs extends Readonly<Record<string, AnyTagged>>> extends Model<Refs> {
204
- /**
205
- * Provide a Model to an Effect
206
- * @since 1.18.0
207
- */
208
- readonly of: (
209
- state: {
210
- readonly [K in keyof Refs]: Model.State<Refs[K]>
211
- },
212
- eqs?: MakeEqivalenceOptions<Refs>
213
- ) => Layer.Layer<never, never, Model.Identifier<Refs[keyof Refs]>>
214
-
215
- /**
216
- * Construct a Layer to provide a Model to an Effect
217
- * @since 1.18.0
218
- */
219
- readonly fromEffect: <R, E>(
220
- effect: Effect.Effect<
221
- R,
222
- E,
223
- {
224
- readonly [K in keyof Refs]: Model.State<Refs[K]>
225
- }
226
- >,
227
- eqs?: MakeEqivalenceOptions<Refs>
228
- ) => Layer.Layer<Exclude<R, Scope>, E, Model.Identifier<Refs[keyof Refs]>>
229
-
230
- /**
231
- * Create a Layer from a Model using the Layers of each Ref
232
- * @since 1.18.0
233
- */
234
- readonly makeWith: <
235
- Opts extends {
236
- readonly [K in keyof Refs]: (
237
- ref: Refs[K]
238
- ) => Layer.Layer<any, any, Model.Identifier<Refs[K]>> | Layer.Layer<any, never, Model.Identifier<Refs[K]>>
239
- }
240
- >(
241
- options: Opts
242
- ) => Layer.Layer<
243
- Exclude<Layer.Layer.Context<ReturnType<Opts[keyof Refs]>>, Scope>,
244
- Layer.Layer.Error<ReturnType<Opts[keyof Refs]>>,
245
- Model.Identifier<Refs[keyof Refs]>
246
- >
247
-
248
- /**
249
- * Create a Layer from a Model using the Layers of each Ref
250
- * @since 1.18.0
251
- */
252
- readonly make: <
253
- Opts extends MakeOptions<Refs>
254
- >(
255
- options: Opts,
256
- eqs?: MakeEqivalenceOptions<Refs>
257
- ) => Layer.Layer<
258
- Exclude<Fx.Context<Opts[keyof Refs]>, Scope>,
259
- never,
260
- Model.Identifier<Refs[keyof Refs]>
261
- >
262
- }
263
- }
264
-
265
- type MakeOptions<Refs extends Readonly<Record<string, Any>>> = {
266
- readonly [K in keyof Refs]: Refs[K] extends Model.Tagged<infer Refs2> ? MakeOptions<Refs2> :
267
- Refs[K] extends Model<infer Refs2> ? MakeOptions<Refs2>
268
- : FxInput<any, Model.Error<Refs[K]>, Model.State<Refs[K]>>
269
- }
270
-
271
- type MakeEqivalenceOptions<Refs extends Readonly<Record<string, Any>>> = {
272
- readonly [K in keyof Refs]?: Refs[K] extends Model.Tagged<infer Refs2> ? MakeEqivalenceOptions<Refs2> :
273
- Refs[K] extends Model<infer Refs2> ? MakeEqivalenceOptions<Refs2>
274
- : Equivalence<Model.State<Refs[K]>>
275
- }
276
-
277
- /**
278
- * Create a Model from a collection of Refs.
279
- * @since 1.18.0
280
- * @category constructors
281
- */
282
- export function Model<const Refs extends Readonly<Record<string, Any>>>(
283
- refs: Refs
284
- ): Model<Refs> {
285
- return new ModelImpl(refs) as any
286
- }
287
-
288
- /**
289
- * Create a Model from a collection of Refs.
290
- * @since 1.18.0
291
- * @category constructors
292
- */
293
- export function tagged<const Refs extends Readonly<Record<string, Model.AnyTagged>>>(
294
- refs: Refs
295
- ): Model.Tagged<Refs> {
296
- return new TaggedImpl(refs) as any
297
- }
298
-
299
- /**
300
- * @since 1.18.0
301
- */
302
- export namespace Model {
303
- /**
304
- * Extract the Identifier of a Model
305
- * @since 1.18.0
306
- */
307
- export type Identifier<T> = T extends RefSubject<infer I, infer _, infer __> ? I :
308
- [T] extends [Model.Tagged<infer R>] ? { readonly [K in keyof R]: Identifier<R[K]> }[keyof R] :
309
- T extends Model<infer R> ? { readonly [K in keyof R]: Identifier<R[K]> }[keyof R]
310
- : never
311
-
312
- /**
313
- * Extract the Error of a Model
314
- * @since 1.18.0
315
- */
316
- export type Error<T> = T extends RefSubject<infer _, infer E, infer _> ? E
317
- : T extends Model.Tagged<infer R> ? { readonly [K in keyof R]: Error<R[K]> }[keyof R]
318
- : T extends Model<infer R> ? { readonly [K in keyof R]: Error<R[K]> }[keyof R]
319
- : never
320
-
321
- /**
322
- * Extract the State of a Model
323
- * @since 1.18.0
324
- */
325
- export type State<T> = T extends RefSubject<infer _, infer __, infer S> ? S
326
- : T extends Model.Tagged<infer R> ? [keyof R] extends [never] ? R : { readonly [K in keyof R]: State<R[K]> } :
327
- T extends Model<infer R> ? [keyof R] extends [never] ? R : { readonly [K in keyof R]: State<R[K]> }
328
- : never
329
- }
330
-
331
- class ModelImpl<Refs extends Readonly<Record<string, Any>>> extends FxEffectBase<
332
- Model.Identifier<Refs[keyof Refs]>,
333
- Model.Error<Refs[keyof Refs]>,
334
- {
335
- readonly [K in keyof Refs]: Model.State<Refs[K]>
336
- },
337
- Model.Identifier<Refs[keyof Refs]>,
338
- Model.Error<Refs[keyof Refs]>,
339
- {
340
- readonly [K in keyof Refs]: Model.State<Refs[K]>
341
- }
342
- > implements Model<Refs> {
343
- get: Model<Refs>["get"]
344
- set: Model<Refs>["set"]
345
- delete: Model<Refs>["delete"]
346
- version: Effect.Effect<any, never, number>
347
-
348
- constructor(readonly refs: Refs) {
349
- super()
350
-
351
- const entries = Object.entries(refs)
352
-
353
- this.get = Effect.map(
354
- Effect.all(entries.map(([key, ref]) => Effect.map(ref.get, (v) => [key, v])), { concurrency: "unbounded" }),
355
- Object.fromEntries
356
- ) as Model<Refs>["get"]
357
-
358
- this.set = (
359
- state: {
360
- readonly [K in keyof Refs]: Model.State<Refs[K]>
361
- }
362
- ) =>
363
- Effect.all(
364
- entries.map(([k, ref]) => ref.set(state[k])),
365
- { concurrency: "unbounded" }
366
- )
367
-
368
- this.delete = Effect.map(
369
- Effect.all(entries.map(([k, ref]) => Effect.map(ref.delete, Option.map((v) => [k, v] as const)))),
370
- (options) => Option.map(Option.all(options), Object.fromEntries)
371
- ) as Model<Refs>["delete"]
372
-
373
- this.version = Effect.map(
374
- Effect.all(Object.values(this.refs).map((ref) => ref.version)),
375
- (versions) => versions.reduce((a, b) => a + b, 0)
376
- )
377
- }
378
-
379
- toFx() {
380
- return struct(this.refs) as any
381
- }
382
-
383
- toEffect() {
384
- return this.get
385
- }
386
-
387
- readonly [ModelTypeId]: ModelTypeId = ModelTypeId
388
-
389
- fromKey<K extends keyof Refs>(key: K): Refs[K] {
390
- return this.refs[key]
391
- }
392
-
393
- update = (
394
- f: (
395
- state: { readonly [K in keyof Refs]: Model.State<Refs[K]> }
396
- ) => { readonly [K in keyof Refs]: Model.State<Refs[K]> }
397
- ) => Effect.flatMap(this.get, (state) => this.set(f(state)))
398
-
399
- modify: <B>(
400
- f: (
401
- state: { readonly [K in keyof Refs]: Model.State<Refs[K]> }
402
- ) => readonly [B, { readonly [K in keyof Refs]: Model.State<Refs[K]> }]
403
- ) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, B> = (f) =>
404
- Effect.flatMap(this.get, (state) =>
405
- Effect.suspend(() => {
406
- const [b, newState] = f(state)
407
-
408
- return Effect.as(this.set(newState), b)
409
- }))
410
-
411
- mapEffect: Model<Refs>["mapEffect"] = (f) => Computed(this as any, f)
412
-
413
- map: Model<Refs>["map"] = (f) => this.mapEffect((state) => Effect.sync(() => f(state)))
414
-
415
- filterMapEffect: Model<Refs>["filterMapEffect"] = (f) => Filtered(this as any, f)
416
-
417
- filterMap: Model<Refs>["filterMap"] = (f) => this.filterMapEffect((state) => Effect.sync(() => f(state)))
418
-
419
- filterEffect: Model<Refs>["filterEffect"] = (f) =>
420
- this.filterMapEffect((state) => Effect.map(f(state), (b) => (b ? Option.some(state) : Option.none())))
421
-
422
- filter: Model<Refs>["filter"] = (f) => this.filterMap((state) => (f(state) ? Option.some(state) : Option.none()))
423
- }
424
-
425
- class TaggedImpl<Refs extends Readonly<Record<string, Model.AnyTagged>>> extends ModelImpl<Refs> {
426
- of: Model.Tagged<Refs>["of"] = (state, eqs) => {
427
- const [first, ...rest] = Object.entries(this.refs).map(
428
- ([k, ref]) =>
429
- ModelTypeId in ref ? ref.of(state[k], eqs?.[k] as any) : ref.make(Effect.succeed(state[k]), eqs?.[k] as any)
430
- )
431
-
432
- return Layer.mergeAll(
433
- first,
434
- ...rest
435
- ) as any
436
- }
437
-
438
- fromEffect: Model.Tagged<Refs>["fromEffect"] = (effect, eq) => {
439
- const { of } = this
440
-
441
- return Layer.scopedContext(Effect.gen(function*(_) {
442
- const scope = yield* _(Effect.scope)
443
- const initial = yield* _(effect)
444
- const layer = of(initial, eq)
445
- const context = yield* _(Layer.buildWithScope(
446
- layer,
447
- scope
448
- ))
449
-
450
- return context as Context<Model.Identifier<Refs[keyof Refs]>>
451
- }))
452
- }
453
-
454
- makeWith: Model.Tagged<Refs>["makeWith"] = (options) => {
455
- const { refs } = this
456
-
457
- return Layer.scopedContext(Effect.gen(function*(_) {
458
- const scope = yield* _(Effect.scope)
459
-
460
- let context = ContextBuilder.empty
461
-
462
- for (const [k, ref] of Object.entries(refs)) {
463
- context = context.mergeContext(
464
- yield* _(Layer.buildWithScope(
465
- options[k](ref as any),
466
- scope
467
- ))
468
- )
469
- }
470
-
471
- return context.context as Context<Model.Identifier<Refs[keyof Refs]>>
472
- }))
473
- }
474
-
475
- make: Model.Tagged<Refs>["make"] = (options, eqs) =>
476
- this.makeWith(
477
- Object.fromEntries(
478
- Object.entries(options).map(([k, fx]) => [k, (ref: RefSubject.Tagged<any, any, any>) =>
479
- ref.make(fx, eqs?.[k] as any)]
480
- )
481
- ) as any
482
- ) as any
483
- }