@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
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fromRefSubject = fromRefSubject;
7
- exports.toRefSubject = toRefSubject;
8
- var SchemaEquivalence = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Equivalence"));
9
- var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
10
- var _effect = /*#__PURE__*/require("effect");
11
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
12
- var _TypeId = /*#__PURE__*/require("../TypeId.js");
13
- var _coreRefSubject = /*#__PURE__*/require("./core-ref-subject.js");
14
- var _core = /*#__PURE__*/require("./core.js");
15
- var _matchers = /*#__PURE__*/require("./matchers.js");
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
- const makeSchema = f => f;
19
- const memoizeThunk = f => {
20
- let memoized = _effect.Option.none();
21
- return () => {
22
- if (_effect.Option.isNone(memoized)) {
23
- memoized = _effect.Option.some(f());
24
- }
25
- return memoized.value;
26
- };
27
- };
28
- const defaultSchema = defaultEq => makeSchema((input, eq) => (0, _coreRefSubject.make)(input, eq || defaultEq));
29
- const go = (ast, getDefaultEq) => {
30
- switch (ast._tag) {
31
- case "AnyKeyword":
32
- case "BigIntKeyword":
33
- case "BooleanKeyword":
34
- case "Literal":
35
- case "Enums":
36
- case "NeverKeyword":
37
- case "NumberKeyword":
38
- case "ObjectKeyword":
39
- case "StringKeyword":
40
- case "SymbolKeyword":
41
- case "TemplateLiteral":
42
- case "Tuple":
43
- case "UndefinedKeyword":
44
- case "UniqueSymbol":
45
- case "UnknownKeyword":
46
- case "VoidKeyword":
47
- case "Union":
48
- // TODO: Union should probably be better somehow
49
- return defaultSchema(getDefaultEq(ast));
50
- case "Lazy":
51
- {
52
- const get = memoizeThunk(() => go(ast.f(), getDefaultEq));
53
- return makeSchema((input, eq) => get()(input, eq));
54
- }
55
- case "Refinement":
56
- return go(ast.from, getDefaultEq);
57
- case "Transform":
58
- return go(ast.to, getDefaultEq);
59
- case "Declaration":
60
- return go(ast.type, getDefaultEq);
61
- case "TypeLiteral":
62
- {
63
- if (ast.propertySignatures.length === 0) {
64
- return defaultSchema(getDefaultEq(ast));
65
- }
66
- const propertySignaturesTypes = ast.propertySignatures.map(propertySignature => [propertySignature.name, go(propertySignature.type, getDefaultEq)]);
67
- const makeSubjects = inputs => Effect.gen(function* (_) {
68
- const subjects = {};
69
- for (const [name, make] of propertySignaturesTypes) {
70
- subjects[name] = yield* _(make(inputs[name]));
71
- }
72
- return subjects;
73
- });
74
- const makeFxInputs = input => {
75
- const types = {};
76
- if (_TypeId.RefSubjectTypeId in input || _TypeId.ComputedTypeId in input || _TypeId.FilteredTypeId in input) {
77
- for (const [name] of propertySignaturesTypes) {
78
- types[name] = input.map(o => o[name]);
79
- }
80
- } else {
81
- for (const [name] of propertySignaturesTypes) {
82
- types[name] = (0, _core.map)(input, o => o[name]);
83
- }
84
- }
85
- return types;
86
- };
87
- const makeEffectInputs = input => {
88
- const types = {};
89
- for (const [name] of propertySignaturesTypes) {
90
- types[name] = Effect.map(input, o => o[name]);
91
- }
92
- return types;
93
- };
94
- return makeSchema((input, eq) => (0, _matchers.matchFxInput)(input, {
95
- RefSubject: source => {
96
- return Effect.map(makeSubjects(makeFxInputs(source)), subjects => {
97
- const ref = rebuild(subjects);
98
- return Object.assign(subjects, {
99
- persist: Effect.tap(Effect.matchCauseEffect(ref, source), () => "persist" in source ? source.persist : Effect.unit)
100
- });
101
- });
102
- },
103
- // TODO: Expand
104
- Fx: fx => makeSubjects(makeFxInputs(fx)),
105
- Effect: effect => makeSubjects(makeEffectInputs(effect)),
106
- Cause: cause => makeSubjects(makeEffectInputs(Effect.failCause(cause))),
107
- // Shouldn't really happen, but just in case fallback to default Schema
108
- Iterable: () => defaultSchema()(input, eq),
109
- Otherwise: () => defaultSchema()(input, eq)
110
- }));
111
- }
112
- }
113
- };
114
- function fromRefSubject(source) {
115
- return go(Schema.from(source).ast, ast => SchemaEquivalence.from(Schema.make(ast)));
116
- }
117
- function toRefSubject(source) {
118
- return go(Schema.to(source).ast, ast => SchemaEquivalence.to(Schema.make(ast)));
119
- }
120
- const rebuild = subjects => {
121
- const output = {};
122
- for (const key of Reflect.ownKeys(subjects)) {
123
- const value = subjects[key];
124
- if (_TypeId.RefSubjectTypeId in value) {
125
- output[key] = value;
126
- } else {
127
- output[key] = rebuild(value);
128
- }
129
- }
130
- return (0, _coreRefSubject.struct)(output);
131
- };
132
- //# sourceMappingURL=schema-ref-subject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-ref-subject.js","names":["SchemaEquivalence","_interopRequireWildcard","require","Schema","_effect","Effect","_TypeId","_coreRefSubject","_core","_matchers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","makeSchema","f","memoizeThunk","memoized","Option","none","isNone","some","value","defaultSchema","defaultEq","input","eq","make","go","ast","getDefaultEq","_tag","from","to","type","propertySignatures","length","propertySignaturesTypes","map","propertySignature","name","makeSubjects","inputs","gen","_","subjects","makeFxInputs","types","RefSubjectTypeId","ComputedTypeId","FilteredTypeId","o","makeEffectInputs","matchFxInput","RefSubject","source","ref","rebuild","assign","persist","tap","matchCauseEffect","unit","Fx","fx","effect","Cause","cause","failCause","Iterable","Otherwise","fromRefSubject","toRefSubject","output","key","Reflect","ownKeys","struct"],"sources":["../../../src/internal/schema-ref-subject.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.VersionedTransform = void 0;
7
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
8
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
9
- var _helpers = /*#__PURE__*/require("./helpers.js");
10
- var _protos = /*#__PURE__*/require("./protos.js");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- class VersionedTransform extends _protos.FxEffectBase {
14
- input;
15
- _transformFx;
16
- _transformGet;
17
- _version = 0;
18
- _currentValue = Option.none();
19
- constructor(input, _transformFx, _transformGet) {
20
- super();
21
- this.input = input;
22
- this._transformFx = _transformFx;
23
- this._transformGet = _transformGet;
24
- }
25
- version = Effect.sync(() => this._version);
26
- toFx() {
27
- return this._transformFx(this.input);
28
- }
29
- toEffect() {
30
- // Use MulticastEffect to ensure at most 1 effect is running at a time
31
- const update = new _helpers.MulticastEffect(Effect.gen(this, function* (_) {
32
- const x = yield* _(this._transformGet(this.input));
33
- this._currentValue = Option.some(x);
34
- this._version = yield* _(this.input.version);
35
- return x;
36
- }));
37
- return Effect.gen(this, function* (_) {
38
- if (Option.isSome(this._currentValue) && (yield* _(this.input.version)) === this._version) {
39
- return this._currentValue.value;
40
- }
41
- return yield* _(update);
42
- });
43
- }
44
- }
45
- exports.VersionedTransform = VersionedTransform;
46
- //# sourceMappingURL=versioned-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versioned-transform.js","names":["Effect","_interopRequireWildcard","require","Option","_helpers","_protos","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","VersionedTransform","FxEffectBase","input","_transformFx","_transformGet","_version","_currentValue","none","constructor","version","sync","toFx","toEffect","update","MulticastEffect","gen","_","x","some","isSome","value","exports"],"sources":["../../../src/internal/versioned-transform.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,106 +0,0 @@
1
- /**
2
- * A Computed is a Subject that has a current value that can be read and observed
3
- * @since 1.18.0
4
- */
5
- import type { Tag } from "@typed/context";
6
- import type { Context, Equivalence, Layer, Runtime } from "effect";
7
- import * as Effect from "effect/Effect";
8
- import * as Option from "effect/Option";
9
- import { Filtered } from "./Filtered.js";
10
- import { type Fx } from "./Fx.js";
11
- import { ComputedTypeId } from "./TypeId.js";
12
- import * as Versioned from "./Versioned.js";
13
- /**
14
- * A Computed is a Subject that has a current value that can be read and observed
15
- * @since 1.18.0
16
- * @category models
17
- */
18
- export interface Computed<out R, out E, out A> extends Versioned.Versioned<R, never, R, E, A, R, E, A> {
19
- readonly [ComputedTypeId]: ComputedTypeId;
20
- /**
21
- * Map the current value of this Computed to a new value using an Effect
22
- * @since 1.18.0
23
- */
24
- readonly mapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>) => Computed<R | R2, E | E2, B>;
25
- /**
26
- * Map the current value of this Computed to a new value
27
- * @since 1.18.0
28
- */
29
- readonly map: <B>(f: (a: A) => B) => Computed<R, E, B>;
30
- /**
31
- * Map the current value of this Filtered to a new value using an Effect
32
- * @since 1.18.0
33
- */
34
- readonly filterMapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>) => Filtered<R | R2, E | E2, B>;
35
- /**
36
- * Map the current value of this Filtered to a new value
37
- * @since 1.18.0
38
- */
39
- readonly filterMap: <B>(f: (a: A) => Option.Option<B>) => Filtered<R, E, B>;
40
- /**
41
- * Filter the current value of this Filtered to a new value using an Effect
42
- */
43
- readonly filterEffect: <R2, E2>(f: (a: A) => Effect.Effect<R2, E2, boolean>) => Filtered<R | R2, E | E2, A>;
44
- /**
45
- * Filter the current value of this Filtered to a new value
46
- */
47
- readonly filter: (f: (a: A) => boolean) => Filtered<R, E, A>;
48
- /**
49
- * Skip values that match the provided Equivalence instance
50
- */
51
- readonly skipRepeats: (eq?: Equivalence.Equivalence<A>) => Computed<R, E, A>;
52
- }
53
- /**
54
- * Create a Computed from a data type which is an Fx and an Effect.
55
- * @since 1.18.0
56
- */
57
- export declare function Computed<R, E, A, R2, E2, B>(input: Versioned.Versioned<R, never, R, E, A, R, E, A>, f: (a: A) => Effect.Effect<R2, E2, B>): Computed<R | R2, E | E2, B>;
58
- /**
59
- * @since 1.18.0
60
- */
61
- export declare namespace Computed {
62
- /**
63
- * @since 1.18.0
64
- */
65
- type Context<T> = [T] extends [Computed<infer R, infer _E, infer _A>] ? R : never;
66
- /**
67
- * @since 1.18.0
68
- */
69
- type Error<T> = [T] extends [Computed<infer _R, infer E, infer _A>] ? E : never;
70
- /**
71
- * @since 1.18.0
72
- */
73
- type Success<T> = [T] extends [Computed<infer _R, infer _E, infer A>] ? A : never;
74
- }
75
- /**
76
- * @since 1.18.0
77
- */
78
- export declare function combine<const Computeds extends ReadonlyArray<Computed<any, any, any>>>(computeds: Computeds): Computed<Fx.Context<Computeds[keyof Computeds]>, Fx.Error<Computeds[keyof Computeds]>, {
79
- readonly [K in keyof Computeds]: Fx.Success<Computeds[keyof Computeds]>;
80
- }>;
81
- /**
82
- * @since 1.18.0
83
- */
84
- export declare function struct<const Computeds extends Readonly<Record<string, Computed<any, any, any>>>>(computeds: Computeds): Computed<Computed.Context<Computeds[keyof Computeds]>, Computed.Error<Computeds[keyof Computeds]>, {
85
- readonly [K in keyof Computeds]: Computed.Success<Computeds[K]>;
86
- }>;
87
- /**
88
- * @since 1.18.0
89
- */
90
- export declare const fromTag: {
91
- <S, R2, E2, B>(f: (s: S) => Computed<R2, E2, B>): <I>(tag: Tag<I, S>) => Computed<I | R2, E2, B>;
92
- <I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Computed<R2, E2, B>): Computed<I | R2, E2, B>;
93
- };
94
- /**
95
- * @since 1.18.0
96
- */
97
- export declare const provide: {
98
- <R2, E2, S>(layer: Layer.Layer<R2, E2, S>): <R, E, A>(computed: Computed<R, E, A>) => Computed<R2 | Exclude<R, S>, E | E2, A>;
99
- <S>(runtime: Runtime.Runtime<S>): <R, E, A>(computed: Computed<R, E, A>) => Computed<Exclude<R, S>, E, A>;
100
- <S>(context: Context.Context<S>): <R, E, A>(computed: Computed<R, E, A>) => Computed<Exclude<R, S>, E, A>;
101
- <R2, E2, S>(layer: Layer.Layer<R2, E2, S>): <R, E, A>(computed: Computed<R, E, A>) => Computed<R2 | Exclude<R, S>, E | E2, A>;
102
- <R, E, A, R2, E2, S>(computed: Computed<R, E, A>, layer: Layer.Layer<R2, E2, S>): Computed<R2 | Exclude<R, S>, E | E2, A>;
103
- <R, E, A, S>(computed: Computed<R, E, A>, runtime: Runtime.Runtime<S>): Computed<Exclude<R, S>, E, A>;
104
- <R, E, A, S>(computed: Computed<R, E, A>, context: Context.Context<S>): Computed<Exclude<R, S>, E, A>;
105
- };
106
- //# sourceMappingURL=Computed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Computed.d.ts","sourceRoot":"","sources":["../../src/Computed.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- /**
2
- * A Filtered is a Subject that has a current value that can be read and observed
3
- * but getting the value might not succeed
4
- * @since 1.18.0
5
- */
6
- import type { Tag } from "@typed/context";
7
- import type { Context, Layer, Runtime } from "effect";
8
- import type * as Cause from "effect/Cause";
9
- import * as Effect from "effect/Effect";
10
- import type { Equivalence } from "effect/Equivalence";
11
- import * as Option from "effect/Option";
12
- import { Computed } from "./Computed.js";
13
- import type * as Fx from "./Fx.js";
14
- import { FilteredTypeId } from "./TypeId.js";
15
- import * as Versioned from "./Versioned.js";
16
- /**
17
- * A Filtered is a Subject that has a current value that can be read and observed
18
- * but getting the value might not succeed
19
- * @since 1.18.0
20
- * @category models
21
- */
22
- export interface Filtered<out R, out E, out A> extends Versioned.Versioned<R, never, R, E, A, R, E | Cause.NoSuchElementException, A> {
23
- readonly [FilteredTypeId]: FilteredTypeId;
24
- /**
25
- * Map the current value of this Filtered to a new value using an Effect
26
- * @since 1.18.0
27
- */
28
- readonly filterMapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>) => Filtered<R | R2, E | E2, B>;
29
- /**
30
- * Map the current value of this Filtered to a new value
31
- * @since 1.18.0
32
- */
33
- readonly filterMap: <B>(f: (a: A) => Option.Option<B>) => Filtered<R, E, B>;
34
- /**
35
- * Filter the current value of this Filtered to a new value using an Effect
36
- */
37
- readonly filterEffect: <R2, E2>(f: (a: A) => Effect.Effect<R2, E2, boolean>) => Filtered<R | R2, E | E2, A>;
38
- /**
39
- * Filter the current value of this Filtered to a new value
40
- */
41
- readonly filter: (f: (a: A) => boolean) => Filtered<R, E, A>;
42
- /**
43
- * Convert a Filtered back into a Computed of an Option
44
- */
45
- readonly option: Computed<R, E, Option.Option<A>>;
46
- /**
47
- * Map the current value of this Computed to a new value using an Effect
48
- * @since 1.18.0
49
- */
50
- readonly mapEffect: <R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>) => Filtered<R | R2, E | E2, B>;
51
- /**
52
- * Map the current value of this Computed to a new value
53
- * @since 1.18.0
54
- */
55
- readonly map: <B>(f: (a: A) => B) => Filtered<R, E, B>;
56
- /**
57
- * Skip values that match the provided Equivalence instance
58
- */
59
- readonly skipRepeats: (eq?: Equivalence<A>) => Filtered<R, E, A>;
60
- }
61
- /**
62
- * Create a Filtered from a data type which is an Fx and an Effect.
63
- * @since 1.18.0
64
- */
65
- export declare function Filtered<R, E, A, R2, E2, B>(input: Versioned.Versioned<R, never, R, E, A, R, E | Cause.NoSuchElementException, A>, f: (a: A) => Effect.Effect<R2, E2, Option.Option<B>>): Filtered<R | R2, E | E2, B>;
66
- /**
67
- * @since 1.18.0
68
- */
69
- export declare function combine<const Computeds extends ReadonlyArray<Filtered<any, any, any> | Computed<any, any, any>>>(computeds: Computeds): Filtered<Fx.Fx.Context<Computeds[number]>, Fx.Fx.Error<Computeds[number]>, {
70
- readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[number]>;
71
- }>;
72
- /**
73
- * @since 1.18.0
74
- */
75
- export declare function struct<const Computeds extends Readonly<Record<string, Filtered<any, any, any | Computed<any, any, any>>>>>(computeds: Computeds): Filtered<Fx.Fx.Context<Computeds[keyof Computeds]>, Fx.Fx.Error<Computeds[keyof Computeds]>, {
76
- readonly [K in keyof Computeds]: Fx.Fx.Success<Computeds[K]>;
77
- }>;
78
- /**
79
- * @since 1.18.0
80
- */
81
- export declare const fromTag: {
82
- <S, R2, E2, B>(f: (s: S) => Filtered<R2, E2, B>): <I>(tag: Tag<I, S>) => Filtered<I | R2, E2, B>;
83
- <I, S, R2, E2, B>(tag: Tag<I, S>, f: (s: S) => Filtered<R2, E2, B>): Filtered<I | R2, E2, B>;
84
- };
85
- /**
86
- * @since 1.18.0
87
- */
88
- export declare const provide: {
89
- <R2, E2, S>(layer: Layer.Layer<R2, E2, S>): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<R2 | Exclude<R, S>, E | E2, A>;
90
- <S>(runtime: Runtime.Runtime<S>): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<Exclude<R, S>, E, A>;
91
- <S>(context: Context.Context<S>): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<Exclude<R, S>, E, A>;
92
- <R2, E2, S>(layer: Layer.Layer<R2, E2, S>): <R, E, A>(filtered: Filtered<R, E, A>) => Filtered<R2 | Exclude<R, S>, E | E2, A>;
93
- <R, E, A, R2, E2, S>(filtered: Filtered<R, E, A>, layer: Layer.Layer<R2, E2, S>): Filtered<R2 | Exclude<R, S>, E | E2, A>;
94
- <R, E, A, S>(filtered: Filtered<R, E, A>, runtime: Runtime.Runtime<S>): Filtered<Exclude<R, S>, E, A>;
95
- <R, E, A, S>(filtered: Filtered<R, E, A>, context: Context.Context<S>): Filtered<Exclude<R, S>, E, A>;
96
- };
97
- //# sourceMappingURL=Filtered.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Filtered.d.ts","sourceRoot":"","sources":["../../src/Filtered.ts"],"names":[],"mappings":"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"}
@@ -1,200 +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
- import * as Effect from "effect/Effect";
7
- import type { Equivalence } from "effect/Equivalence";
8
- import * as Layer from "effect/Layer";
9
- import * as Option from "effect/Option";
10
- import type { Scope } from "effect/Scope";
11
- import { Computed } from "./Computed.js";
12
- import { Filtered } from "./Filtered.js";
13
- import type { Fx, FxInput } from "./Fx.js";
14
- import type { RefSubject } from "./RefSubject.js";
15
- import type { Versioned } from "./Versioned.js";
16
- /**
17
- * @since 1.18.0
18
- * @category symbols
19
- */
20
- export declare const ModelTypeId: unique symbol;
21
- /**
22
- * @since 1.18.0
23
- * @category symbols
24
- */
25
- export type ModelTypeId = typeof ModelTypeId;
26
- type Any = RefSubject<any, any, any> | RefSubject<any, never, any> | Model<any>;
27
- /**
28
- * A Model is a collection of Refs that can be utilized as a single unit from the Effect Context.
29
- * @since 1.18.0
30
- * @category models
31
- */
32
- export interface Model<Refs extends Readonly<Record<string, Any>>> extends Versioned<Model.Identifier<Refs[keyof Refs]>, never, Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, {
33
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
34
- }, Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, {
35
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
36
- }> {
37
- readonly [ModelTypeId]: ModelTypeId;
38
- /**
39
- * A Lens into a Ref from any given model at a particular key.
40
- * @since 1.18.0
41
- */
42
- readonly fromKey: <K extends keyof Refs>(key: K) => Refs[K];
43
- /**
44
- * Get the current state of the Model
45
- * @since 1.18.0
46
- */
47
- readonly get: Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, {
48
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
49
- }>;
50
- /**
51
- * Set the state of the Model
52
- * @since 1.18.0
53
- */
54
- readonly set: (state: {
55
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
56
- }) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, void>;
57
- /**
58
- * Update the state of the Model
59
- * @since 1.18.0
60
- */
61
- readonly update: (f: (state: {
62
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
63
- }) => {
64
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
65
- }) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, void>;
66
- /**
67
- * Modify the state of the Model and return a value
68
- * @since 1.18.0
69
- */
70
- readonly modify: <B>(f: (state: {
71
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
72
- }) => readonly [
73
- B,
74
- {
75
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
76
- }
77
- ]) => Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, B>;
78
- /**
79
- * Delete the model's state
80
- */
81
- readonly delete: Effect.Effect<Model.Identifier<Refs[keyof Refs]>, never, Option.Option<{
82
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
83
- }>>;
84
- readonly mapEffect: <R2, E2, B>(f: (state: {
85
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
86
- }) => Effect.Effect<R2, E2, B>) => Computed<Model.Identifier<Refs[keyof Refs]> | R2, Model.Error<Refs[keyof Refs]> | E2, B>;
87
- readonly map: <B>(f: (state: {
88
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
89
- }) => B) => Computed<Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, B>;
90
- readonly filterMapEffect: <R2, E2, B>(f: (state: {
91
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
92
- }) => Effect.Effect<R2, E2, Option.Option<B>>) => Filtered<Model.Identifier<Refs[keyof Refs]> | R2, Model.Error<Refs[keyof Refs]> | E2, B>;
93
- readonly filterMap: <B>(f: (state: {
94
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
95
- }) => Option.Option<B>) => Filtered<Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, B>;
96
- readonly filterEffect: <R2, E2>(f: (state: {
97
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
98
- }) => Effect.Effect<R2, E2, boolean>) => Filtered<Model.Identifier<Refs[keyof Refs]> | R2, Model.Error<Refs[keyof Refs]> | E2, {
99
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
100
- }>;
101
- readonly filter: (f: (state: {
102
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
103
- }) => boolean) => Filtered<Model.Identifier<Refs[keyof Refs]>, Model.Error<Refs[keyof Refs]>, {
104
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
105
- }>;
106
- }
107
- /**
108
- * @since 1.18.0
109
- */
110
- export declare namespace Model {
111
- /**
112
- * @since 1.18.0
113
- */
114
- type AnyTagged = RefSubject.Tagged<any, any, any> | RefSubject.Tagged<any, never, any> | Model.Tagged<any>;
115
- /**
116
- * @since 1.18.0
117
- */
118
- interface Tagged<Refs extends Readonly<Record<string, AnyTagged>>> extends Model<Refs> {
119
- /**
120
- * Provide a Model to an Effect
121
- * @since 1.18.0
122
- */
123
- readonly of: (state: {
124
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
125
- }, eqs?: MakeEqivalenceOptions<Refs>) => Layer.Layer<never, never, Model.Identifier<Refs[keyof Refs]>>;
126
- /**
127
- * Construct a Layer to provide a Model to an Effect
128
- * @since 1.18.0
129
- */
130
- readonly fromEffect: <R, E>(effect: Effect.Effect<R, E, {
131
- readonly [K in keyof Refs]: Model.State<Refs[K]>;
132
- }>, eqs?: MakeEqivalenceOptions<Refs>) => Layer.Layer<Exclude<R, Scope>, E, Model.Identifier<Refs[keyof Refs]>>;
133
- /**
134
- * Create a Layer from a Model using the Layers of each Ref
135
- * @since 1.18.0
136
- */
137
- readonly makeWith: <Opts extends {
138
- readonly [K in keyof Refs]: (ref: Refs[K]) => Layer.Layer<any, any, Model.Identifier<Refs[K]>> | Layer.Layer<any, never, Model.Identifier<Refs[K]>>;
139
- }>(options: Opts) => Layer.Layer<Exclude<Layer.Layer.Context<ReturnType<Opts[keyof Refs]>>, Scope>, Layer.Layer.Error<ReturnType<Opts[keyof Refs]>>, Model.Identifier<Refs[keyof Refs]>>;
140
- /**
141
- * Create a Layer from a Model using the Layers of each Ref
142
- * @since 1.18.0
143
- */
144
- readonly make: <Opts extends MakeOptions<Refs>>(options: Opts, eqs?: MakeEqivalenceOptions<Refs>) => Layer.Layer<Exclude<Fx.Context<Opts[keyof Refs]>, Scope>, never, Model.Identifier<Refs[keyof Refs]>>;
145
- }
146
- }
147
- type MakeOptions<Refs extends Readonly<Record<string, Any>>> = {
148
- readonly [K in keyof Refs]: Refs[K] extends Model.Tagged<infer Refs2> ? MakeOptions<Refs2> : Refs[K] extends Model<infer Refs2> ? MakeOptions<Refs2> : FxInput<any, Model.Error<Refs[K]>, Model.State<Refs[K]>>;
149
- };
150
- type MakeEqivalenceOptions<Refs extends Readonly<Record<string, Any>>> = {
151
- readonly [K in keyof Refs]?: Refs[K] extends Model.Tagged<infer Refs2> ? MakeEqivalenceOptions<Refs2> : Refs[K] extends Model<infer Refs2> ? MakeEqivalenceOptions<Refs2> : Equivalence<Model.State<Refs[K]>>;
152
- };
153
- /**
154
- * Create a Model from a collection of Refs.
155
- * @since 1.18.0
156
- * @category constructors
157
- */
158
- export declare function Model<const Refs extends Readonly<Record<string, Any>>>(refs: Refs): Model<Refs>;
159
- /**
160
- * Create a Model from a collection of Refs.
161
- * @since 1.18.0
162
- * @category constructors
163
- */
164
- export declare function tagged<const Refs extends Readonly<Record<string, Model.AnyTagged>>>(refs: Refs): Model.Tagged<Refs>;
165
- /**
166
- * @since 1.18.0
167
- */
168
- export declare namespace Model {
169
- /**
170
- * Extract the Identifier of a Model
171
- * @since 1.18.0
172
- */
173
- type Identifier<T> = T extends RefSubject<infer I, infer _, infer __> ? I : [
174
- T
175
- ] extends [Model.Tagged<infer R>] ? {
176
- readonly [K in keyof R]: Identifier<R[K]>;
177
- }[keyof R] : T extends Model<infer R> ? {
178
- readonly [K in keyof R]: Identifier<R[K]>;
179
- }[keyof R] : never;
180
- /**
181
- * Extract the Error of a Model
182
- * @since 1.18.0
183
- */
184
- type Error<T> = T extends RefSubject<infer _, infer E, infer _> ? E : T extends Model.Tagged<infer R> ? {
185
- readonly [K in keyof R]: Error<R[K]>;
186
- }[keyof R] : T extends Model<infer R> ? {
187
- readonly [K in keyof R]: Error<R[K]>;
188
- }[keyof R] : never;
189
- /**
190
- * Extract the State of a Model
191
- * @since 1.18.0
192
- */
193
- type State<T> = T extends RefSubject<infer _, infer __, infer S> ? S : T extends Model.Tagged<infer R> ? [keyof R] extends [never] ? R : {
194
- readonly [K in keyof R]: State<R[K]>;
195
- } : T extends Model<infer R> ? [keyof R] extends [never] ? R : {
196
- readonly [K in keyof R]: State<R[K]>;
197
- } : never;
198
- }
199
- export {};
200
- //# sourceMappingURL=Model.d.ts.map