@dxos/echo 0.8.4-staging.ac66bdf99f → 0.9.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 (437) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +7 -7
  3. package/dist/lib/neutral/Annotation.mjs +37 -6
  4. package/dist/lib/neutral/Database.mjs +6 -17
  5. package/dist/lib/neutral/Entity.mjs +31 -20
  6. package/dist/lib/neutral/Err.mjs +3 -3
  7. package/dist/lib/neutral/Feed.mjs +23 -19
  8. package/dist/lib/neutral/Filter.mjs +13 -15
  9. package/dist/lib/neutral/Format.mjs +23 -3
  10. package/dist/lib/neutral/JsonSchema.mjs +7 -8
  11. package/dist/lib/neutral/Key.mjs +9 -5
  12. package/dist/lib/neutral/Migration.mjs +11 -10
  13. package/dist/lib/neutral/Obj.mjs +29 -20
  14. package/dist/lib/neutral/Order.mjs +7 -3
  15. package/dist/lib/neutral/Query.mjs +17 -17
  16. package/dist/lib/neutral/QueryResult.mjs +1 -1
  17. package/dist/lib/neutral/Ref.mjs +10 -9
  18. package/dist/lib/neutral/Registry.mjs +14 -0
  19. package/dist/lib/neutral/Relation.mjs +28 -25
  20. package/dist/lib/neutral/Scope.mjs +12 -0
  21. package/dist/lib/neutral/Tag.mjs +17 -14
  22. package/dist/lib/neutral/Type.mjs +54 -26
  23. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-35INCYOE.mjs} +1 -1
  24. package/dist/lib/neutral/chunk-35INCYOE.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-3PBP4V4O.mjs +101 -0
  26. package/dist/lib/neutral/chunk-3PBP4V4O.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-4ZUHOTCG.mjs +184 -0
  28. package/dist/lib/neutral/chunk-4ZUHOTCG.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-5SMDBFVB.mjs +108 -0
  30. package/dist/lib/neutral/chunk-5SMDBFVB.mjs.map +7 -0
  31. package/dist/lib/neutral/{chunk-OS35K56T.mjs → chunk-5SUJPHAE.mjs} +3 -3
  32. package/dist/lib/neutral/{chunk-OS35K56T.mjs.map → chunk-5SUJPHAE.mjs.map} +2 -2
  33. package/dist/lib/neutral/{chunk-GZQTCRJB.mjs → chunk-6M2Z6WBH.mjs} +22 -2
  34. package/dist/lib/neutral/chunk-6M2Z6WBH.mjs.map +7 -0
  35. package/dist/lib/neutral/{chunk-V36VO5SS.mjs → chunk-6YDI3J37.mjs} +32 -40
  36. package/dist/lib/neutral/chunk-6YDI3J37.mjs.map +7 -0
  37. package/dist/lib/neutral/{chunk-MOR5ERFM.mjs → chunk-7FPIAJIV.mjs} +701 -1256
  38. package/dist/lib/neutral/chunk-7FPIAJIV.mjs.map +7 -0
  39. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7LOUAPYZ.mjs} +9 -5
  40. package/dist/lib/neutral/chunk-7LOUAPYZ.mjs.map +7 -0
  41. package/dist/lib/neutral/{chunk-JUXPFOEI.mjs → chunk-7PI7C4EF.mjs} +48 -88
  42. package/dist/lib/neutral/chunk-7PI7C4EF.mjs.map +7 -0
  43. package/dist/lib/neutral/{chunk-UBEZSGXY.mjs → chunk-BBFJWWAV.mjs} +6 -6
  44. package/dist/lib/neutral/chunk-BBFJWWAV.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-UI6MWK5W.mjs → chunk-EVK6XBXO.mjs} +16 -2
  46. package/dist/lib/neutral/chunk-EVK6XBXO.mjs.map +7 -0
  47. package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs → chunk-IGK6FN65.mjs} +2 -2
  48. package/dist/lib/neutral/{chunk-HBUZJNZO.mjs → chunk-LWXVKPPW.mjs} +94 -99
  49. package/dist/lib/neutral/chunk-LWXVKPPW.mjs.map +7 -0
  50. package/dist/lib/neutral/{chunk-BVOFLCVF.mjs → chunk-MZ7K3MLL.mjs} +9 -6
  51. package/dist/lib/neutral/chunk-MZ7K3MLL.mjs.map +7 -0
  52. package/dist/lib/neutral/{chunk-TBKX6JQO.mjs → chunk-O6BH7EPN.mjs} +30 -3
  53. package/dist/lib/neutral/chunk-O6BH7EPN.mjs.map +7 -0
  54. package/dist/lib/neutral/{chunk-EAMSSLZC.mjs → chunk-QQIYS74I.mjs} +83 -46
  55. package/dist/lib/neutral/chunk-QQIYS74I.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-R5W6DXR4.mjs +678 -0
  57. package/dist/lib/neutral/chunk-R5W6DXR4.mjs.map +7 -0
  58. package/dist/lib/neutral/{chunk-WAK4DMFV.mjs → chunk-RIVWNMSF.mjs} +12 -7
  59. package/dist/lib/neutral/chunk-RIVWNMSF.mjs.map +7 -0
  60. package/dist/lib/neutral/{chunk-T6W2LEZU.mjs → chunk-SBVFRTST.mjs} +73 -38
  61. package/dist/lib/neutral/chunk-SBVFRTST.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-T6E37YIP.mjs +251 -0
  63. package/dist/lib/neutral/chunk-T6E37YIP.mjs.map +7 -0
  64. package/dist/lib/neutral/{chunk-DQYLD2RB.mjs → chunk-TFEWTY5A.mjs} +155 -129
  65. package/dist/lib/neutral/chunk-TFEWTY5A.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-B4BASU6W.mjs → chunk-TYGKCRMK.mjs} +85 -76
  67. package/dist/lib/neutral/chunk-TYGKCRMK.mjs.map +7 -0
  68. package/dist/lib/neutral/{chunk-4OIBYSXE.mjs → chunk-UUP46KUQ.mjs} +78 -32
  69. package/dist/lib/neutral/chunk-UUP46KUQ.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-WISOH2XH.mjs +36 -0
  71. package/dist/lib/neutral/chunk-WISOH2XH.mjs.map +7 -0
  72. package/dist/lib/neutral/{chunk-G3IQMKF7.mjs → chunk-WTQJHC75.mjs} +111 -112
  73. package/dist/lib/neutral/chunk-WTQJHC75.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-WU3GIANS.mjs +31 -0
  75. package/dist/lib/neutral/chunk-WU3GIANS.mjs.map +7 -0
  76. package/dist/lib/neutral/{chunk-TU3GW67D.mjs → chunk-ZGNNFYHS.mjs} +40 -40
  77. package/dist/lib/neutral/chunk-ZGNNFYHS.mjs.map +7 -0
  78. package/dist/lib/neutral/index.mjs +47 -41
  79. package/dist/lib/neutral/internal/index.mjs +137 -72
  80. package/dist/lib/neutral/meta.json +1 -1
  81. package/dist/lib/neutral/testing/index.mjs +261 -178
  82. package/dist/lib/neutral/testing/index.mjs.map +4 -4
  83. package/dist/types/src/Annotation.d.ts +108 -4
  84. package/dist/types/src/Annotation.d.ts.map +1 -1
  85. package/dist/types/src/Annotation.test.d.ts +2 -0
  86. package/dist/types/src/Annotation.test.d.ts.map +1 -0
  87. package/dist/types/src/Collection.d.ts +2 -3
  88. package/dist/types/src/Collection.d.ts.map +1 -1
  89. package/dist/types/src/Database.d.ts +56 -49
  90. package/dist/types/src/Database.d.ts.map +1 -1
  91. package/dist/types/src/Dataset.d.ts +16 -6
  92. package/dist/types/src/Dataset.d.ts.map +1 -1
  93. package/dist/types/src/Entity.d.ts +101 -28
  94. package/dist/types/src/Entity.d.ts.map +1 -1
  95. package/dist/types/src/Err.d.ts +27 -27
  96. package/dist/types/src/Err.d.ts.map +1 -1
  97. package/dist/types/src/Feed.d.ts +66 -19
  98. package/dist/types/src/Feed.d.ts.map +1 -1
  99. package/dist/types/src/Filter.d.ts +38 -12
  100. package/dist/types/src/Filter.d.ts.map +1 -1
  101. package/dist/types/src/Format.d.ts +0 -2
  102. package/dist/types/src/Format.d.ts.map +1 -1
  103. package/dist/types/src/Hypergraph.d.ts +14 -9
  104. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  105. package/dist/types/src/Json.d.ts +33 -0
  106. package/dist/types/src/Json.d.ts.map +1 -0
  107. package/dist/types/src/Json.test.d.ts +2 -0
  108. package/dist/types/src/Json.test.d.ts.map +1 -0
  109. package/dist/types/src/JsonSchema.d.ts +2 -2
  110. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  111. package/dist/types/src/Key.d.ts +1 -1
  112. package/dist/types/src/Key.d.ts.map +1 -1
  113. package/dist/types/src/Migration.d.ts +26 -11
  114. package/dist/types/src/Migration.d.ts.map +1 -1
  115. package/dist/types/src/Obj.d.ts +104 -61
  116. package/dist/types/src/Obj.d.ts.map +1 -1
  117. package/dist/types/src/Order.d.ts +10 -0
  118. package/dist/types/src/Order.d.ts.map +1 -1
  119. package/dist/types/src/Query.d.ts +34 -12
  120. package/dist/types/src/Query.d.ts.map +1 -1
  121. package/dist/types/src/QueryResult.d.ts +21 -0
  122. package/dist/types/src/QueryResult.d.ts.map +1 -1
  123. package/dist/types/src/Ref.d.ts +15 -7
  124. package/dist/types/src/Ref.d.ts.map +1 -1
  125. package/dist/types/src/Registry.d.ts +131 -0
  126. package/dist/types/src/Registry.d.ts.map +1 -0
  127. package/dist/types/src/Relation.d.ts +73 -41
  128. package/dist/types/src/Relation.d.ts.map +1 -1
  129. package/dist/types/src/Scope.d.ts +35 -0
  130. package/dist/types/src/Scope.d.ts.map +1 -0
  131. package/dist/types/src/Tag.d.ts +21 -5
  132. package/dist/types/src/Tag.d.ts.map +1 -1
  133. package/dist/types/src/Type.d.ts +362 -95
  134. package/dist/types/src/Type.d.ts.map +1 -1
  135. package/dist/types/src/View.d.ts +9 -12
  136. package/dist/types/src/View.d.ts.map +1 -1
  137. package/dist/types/src/exemplars.test.d.ts +2 -0
  138. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  139. package/dist/types/src/index.d.ts +4 -3
  140. package/dist/types/src/index.d.ts.map +1 -1
  141. package/dist/types/src/internal/Annotation/annotations.d.ts +79 -38
  142. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -1
  143. package/dist/types/src/internal/Annotation/dictionary.d.ts +24 -0
  144. package/dist/types/src/internal/Annotation/dictionary.d.ts.map +1 -0
  145. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts +14 -0
  146. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts.map +1 -0
  147. package/dist/types/src/internal/Annotation/index.d.ts +4 -2
  148. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -1
  149. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -1
  150. package/dist/types/src/internal/Annotation/util.d.ts +14 -5
  151. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -1
  152. package/dist/types/src/internal/Entity/api.d.ts +17 -3
  153. package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
  154. package/dist/types/src/internal/Entity/entity.d.ts +72 -8
  155. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -1
  156. package/dist/types/src/internal/Entity/guard.d.ts +10 -0
  157. package/dist/types/src/internal/Entity/guard.d.ts.map +1 -0
  158. package/dist/types/src/internal/Entity/index.d.ts +2 -0
  159. package/dist/types/src/internal/Entity/index.d.ts.map +1 -1
  160. package/dist/types/src/internal/Entity/model.d.ts +21 -17
  161. package/dist/types/src/internal/Entity/model.d.ts.map +1 -1
  162. package/dist/types/src/internal/Entity/object.d.ts +3 -3
  163. package/dist/types/src/internal/Entity/object.d.ts.map +1 -1
  164. package/dist/types/src/internal/Entity/relation.d.ts +30 -7
  165. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -1
  166. package/dist/types/src/internal/Entity/type-kind.d.ts +24 -0
  167. package/dist/types/src/internal/Entity/type-kind.d.ts.map +1 -0
  168. package/dist/types/src/internal/Entity/type-uri.d.ts +24 -0
  169. package/dist/types/src/internal/Entity/type-uri.d.ts.map +1 -0
  170. package/dist/types/src/internal/Entity/version.d.ts.map +1 -1
  171. package/dist/types/src/internal/Format/date.d.ts.map +1 -1
  172. package/dist/types/src/internal/Format/format.d.ts +3 -2
  173. package/dist/types/src/internal/Format/format.d.ts.map +1 -1
  174. package/dist/types/src/internal/Format/index.d.ts +2 -2
  175. package/dist/types/src/internal/Format/index.d.ts.map +1 -1
  176. package/dist/types/src/internal/Format/number.d.ts.map +1 -1
  177. package/dist/types/src/internal/Format/object.d.ts +3 -1
  178. package/dist/types/src/internal/Format/object.d.ts.map +1 -1
  179. package/dist/types/src/internal/Format/types.d.ts.map +1 -1
  180. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -1
  181. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +34 -34
  182. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
  183. package/dist/types/src/internal/JsonSchema/json-schema.d.ts +3 -2
  184. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
  185. package/dist/types/src/internal/Obj/atoms.d.ts +38 -0
  186. package/dist/types/src/internal/Obj/atoms.d.ts.map +1 -0
  187. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -1
  188. package/dist/types/src/internal/Obj/common.d.ts.map +1 -1
  189. package/dist/types/src/internal/Obj/create-object.d.ts +12 -12
  190. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -1
  191. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -1
  192. package/dist/types/src/internal/Obj/index.d.ts +1 -1
  193. package/dist/types/src/internal/Obj/index.d.ts.map +1 -1
  194. package/dist/types/src/internal/Obj/json-serializer.d.ts +8 -8
  195. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
  196. package/dist/types/src/internal/Obj/set-value.d.ts +1 -1
  197. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -1
  198. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -1
  199. package/dist/types/src/internal/Obj/typed-object.d.ts +1 -1
  200. package/dist/types/src/internal/Query/index.d.ts +2 -0
  201. package/dist/types/src/internal/Query/index.d.ts.map +1 -0
  202. package/dist/types/src/internal/{Query.d.ts → Query/pretty.d.ts} +1 -1
  203. package/dist/types/src/internal/Query/pretty.d.ts.map +1 -0
  204. package/dist/types/src/internal/Ref/atoms.d.ts +10 -0
  205. package/dist/types/src/internal/Ref/atoms.d.ts.map +1 -0
  206. package/dist/types/src/internal/Ref/ref-array.d.ts +2 -2
  207. package/dist/types/src/internal/Ref/ref.d.ts +50 -19
  208. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -1
  209. package/dist/types/src/internal/Ref/utils.d.ts +8 -0
  210. package/dist/types/src/internal/Ref/utils.d.ts.map +1 -0
  211. package/dist/types/src/internal/Type/compose.d.ts.map +1 -1
  212. package/dist/types/src/internal/Type/index.d.ts +1 -2
  213. package/dist/types/src/internal/Type/index.d.ts.map +1 -1
  214. package/dist/types/src/internal/Type/manipulation.d.ts +0 -1
  215. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -1
  216. package/dist/types/src/internal/Type/type-schema.d.ts +52 -0
  217. package/dist/types/src/internal/Type/type-schema.d.ts.map +1 -0
  218. package/dist/types/src/internal/common/api/meta.d.ts +14 -11
  219. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -1
  220. package/dist/types/src/internal/common/proxy/change-context.d.ts +1 -1
  221. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -1
  222. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -1
  223. package/dist/types/src/internal/common/proxy/errors.d.ts +1 -1
  224. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -1
  225. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -1
  226. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -1
  227. package/dist/types/src/internal/common/proxy/make-object.d.ts +11 -5
  228. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -1
  229. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -1
  230. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -1
  231. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +1 -1
  232. package/dist/types/src/internal/common/proxy/reactive.d.ts +1 -1
  233. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
  234. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  235. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  236. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -1
  237. package/dist/types/src/internal/common/proxy/typed-handler.d.ts +18 -2
  238. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
  239. package/dist/types/src/internal/common/types/base.d.ts +4 -4
  240. package/dist/types/src/internal/common/types/base.d.ts.map +1 -1
  241. package/dist/types/src/internal/common/types/entity.d.ts +62 -5
  242. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -1
  243. package/dist/types/src/internal/common/types/index.d.ts +1 -1
  244. package/dist/types/src/internal/common/types/index.d.ts.map +1 -1
  245. package/dist/types/src/internal/common/types/meta.d.ts +33 -12
  246. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -1
  247. package/dist/types/src/internal/common/types/model-symbols.d.ts +15 -4
  248. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -1
  249. package/dist/types/src/internal/common/types/typename.d.ts +7 -0
  250. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -1
  251. package/dist/types/src/internal/common/types/version.d.ts +1 -1
  252. package/dist/types/src/internal/common/types/well-known-types.d.ts +11 -0
  253. package/dist/types/src/internal/common/types/well-known-types.d.ts.map +1 -0
  254. package/dist/types/src/internal/index.d.ts +2 -2
  255. package/dist/types/src/internal/index.d.ts.map +1 -1
  256. package/dist/types/src/testing/index.d.ts +1 -0
  257. package/dist/types/src/testing/index.d.ts.map +1 -1
  258. package/dist/types/src/testing/registry.d.ts +9 -0
  259. package/dist/types/src/testing/registry.d.ts.map +1 -0
  260. package/dist/types/src/testing/test-data.d.ts +8 -8
  261. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  262. package/dist/types/src/testing/test-schema.d.ts +83 -89
  263. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  264. package/dist/types/src/testing/util.d.ts +5 -3
  265. package/dist/types/src/testing/util.d.ts.map +1 -1
  266. package/dist/types/tsconfig.tsbuildinfo +1 -1
  267. package/package.json +26 -24
  268. package/src/Annotation.test.ts +439 -0
  269. package/src/Annotation.ts +158 -4
  270. package/src/Collection.ts +5 -9
  271. package/src/Database.ts +93 -100
  272. package/src/Dataset.ts +10 -2
  273. package/src/Entity.test.ts +116 -6
  274. package/src/Entity.ts +134 -32
  275. package/src/Err.ts +4 -4
  276. package/src/Feed.ts +92 -44
  277. package/src/Filter.ts +70 -40
  278. package/src/Format.ts +0 -4
  279. package/src/Hypergraph.ts +14 -9
  280. package/src/Json.test.ts +175 -0
  281. package/src/Json.ts +103 -0
  282. package/src/Key.ts +1 -1
  283. package/src/Migration.ts +39 -19
  284. package/src/Obj.test.ts +122 -20
  285. package/src/Obj.ts +168 -91
  286. package/src/Order.ts +22 -0
  287. package/src/Query.test.ts +183 -154
  288. package/src/Query.ts +172 -85
  289. package/src/QueryResult.ts +26 -0
  290. package/src/Ref.ts +22 -4
  291. package/src/Registry.ts +155 -0
  292. package/src/Relation.test.ts +10 -10
  293. package/src/Relation.ts +116 -69
  294. package/src/Scope.ts +50 -0
  295. package/src/Tag.md +88 -0
  296. package/src/Tag.ts +49 -6
  297. package/src/Type.test.ts +223 -18
  298. package/src/Type.ts +609 -131
  299. package/src/View.ts +14 -23
  300. package/src/exemplars.test.ts +21 -0
  301. package/src/index.ts +4 -4
  302. package/src/internal/Annotation/annotations.test.ts +31 -11
  303. package/src/internal/Annotation/annotations.ts +143 -111
  304. package/src/internal/Annotation/dictionary.ts +47 -0
  305. package/src/internal/Annotation/entity-dictionary.ts +74 -0
  306. package/src/internal/Annotation/index.ts +4 -2
  307. package/src/internal/Annotation/util.ts +17 -8
  308. package/src/internal/Entity/api.ts +54 -7
  309. package/src/internal/Entity/entity.ts +196 -47
  310. package/src/internal/Entity/guard.ts +26 -0
  311. package/src/internal/Entity/index.ts +2 -0
  312. package/src/internal/Entity/model.ts +38 -28
  313. package/src/internal/Entity/object.ts +21 -5
  314. package/src/internal/Entity/relation.ts +68 -34
  315. package/src/internal/Entity/type-kind.ts +75 -0
  316. package/src/internal/Entity/type-uri.ts +92 -0
  317. package/src/internal/Entity/util.ts +9 -9
  318. package/src/internal/Format/date.ts +0 -4
  319. package/src/internal/Format/format.test.ts +21 -0
  320. package/src/internal/Format/index.ts +2 -3
  321. package/src/internal/Format/object.ts +21 -4
  322. package/src/internal/Format/types.ts +1 -1
  323. package/src/internal/JsonSchema/annotations.ts +1 -1
  324. package/src/internal/JsonSchema/json-schema-type.ts +4 -4
  325. package/src/internal/JsonSchema/json-schema.test.ts +71 -145
  326. package/src/internal/JsonSchema/json-schema.ts +49 -35
  327. package/src/internal/Obj/atoms.ts +244 -0
  328. package/src/internal/Obj/clone.ts +9 -4
  329. package/src/internal/Obj/create-object.test.ts +12 -10
  330. package/src/internal/Obj/create-object.ts +68 -22
  331. package/src/internal/Obj/index.ts +1 -1
  332. package/src/internal/Obj/inspect.ts +5 -3
  333. package/src/internal/Obj/json-serializer.test.ts +101 -22
  334. package/src/internal/Obj/json-serializer.ts +89 -33
  335. package/src/internal/Obj/set-value.test.ts +22 -45
  336. package/src/internal/Obj/set-value.ts +12 -19
  337. package/src/internal/Obj/snapshot.ts +13 -4
  338. package/src/internal/Obj/typed-object.test.ts +9 -11
  339. package/src/internal/Obj/typed-object.ts +1 -1
  340. package/src/internal/Query/index.ts +5 -0
  341. package/src/internal/{Query.ts → Query/pretty.ts} +40 -12
  342. package/src/internal/Ref/atoms.ts +20 -0
  343. package/src/internal/Ref/ref-array.ts +3 -3
  344. package/src/internal/Ref/ref.test.ts +18 -27
  345. package/src/internal/Ref/ref.ts +137 -59
  346. package/src/internal/Ref/utils.ts +45 -0
  347. package/src/internal/Type/compose.test.ts +3 -1
  348. package/src/internal/Type/index.ts +1 -2
  349. package/src/internal/Type/manipulation.ts +0 -25
  350. package/src/internal/Type/type-schema.ts +60 -0
  351. package/src/internal/common/README.md +2 -2
  352. package/src/internal/common/api/meta.ts +19 -17
  353. package/src/internal/common/proxy/change-context.ts +1 -1
  354. package/src/internal/common/proxy/change.test.ts +91 -83
  355. package/src/internal/common/proxy/errors.ts +2 -2
  356. package/src/internal/common/proxy/handler.test.ts +1 -1
  357. package/src/internal/common/proxy/json-serializer.ts +27 -16
  358. package/src/internal/common/proxy/make-object.ts +44 -20
  359. package/src/internal/common/proxy/ownership.ts +2 -2
  360. package/src/internal/common/proxy/reactive-array.ts +1 -1
  361. package/src/internal/common/proxy/reactive.test.ts +54 -0
  362. package/src/internal/common/proxy/reactive.ts +11 -2
  363. package/src/internal/common/proxy/schema.test.ts +48 -86
  364. package/src/internal/common/proxy/typed-handler.test.ts +12 -11
  365. package/src/internal/common/proxy/typed-handler.ts +78 -16
  366. package/src/internal/common/proxy/typed-object.test.ts +16 -28
  367. package/src/internal/common/types/base.ts +4 -4
  368. package/src/internal/common/types/entity.ts +80 -1
  369. package/src/internal/common/types/index.ts +6 -1
  370. package/src/internal/common/types/meta.ts +62 -20
  371. package/src/internal/common/types/model-symbols.ts +24 -4
  372. package/src/internal/common/types/typename.ts +39 -3
  373. package/src/internal/common/types/well-known-types.ts +15 -0
  374. package/src/internal/index.ts +6 -4
  375. package/src/testing/api.test.ts +15 -9
  376. package/src/testing/index.ts +1 -0
  377. package/src/testing/registry.ts +44 -0
  378. package/src/testing/test-data.ts +159 -99
  379. package/src/testing/test-schema.ts +22 -58
  380. package/src/testing/util.ts +14 -11
  381. package/dist/lib/neutral/Extension.mjs +0 -18
  382. package/dist/lib/neutral/SchemaRegistry.mjs +0 -2
  383. package/dist/lib/neutral/chunk-2KHZ36F5.mjs +0 -361
  384. package/dist/lib/neutral/chunk-2KHZ36F5.mjs.map +0 -7
  385. package/dist/lib/neutral/chunk-4OIBYSXE.mjs.map +0 -7
  386. package/dist/lib/neutral/chunk-4P3IXBLT.mjs +0 -45
  387. package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +0 -7
  388. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +0 -7
  389. package/dist/lib/neutral/chunk-B4BASU6W.mjs.map +0 -7
  390. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +0 -7
  391. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +0 -7
  392. package/dist/lib/neutral/chunk-BVOFLCVF.mjs.map +0 -7
  393. package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +0 -7
  394. package/dist/lib/neutral/chunk-EAMSSLZC.mjs.map +0 -7
  395. package/dist/lib/neutral/chunk-G3IQMKF7.mjs.map +0 -7
  396. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +0 -7
  397. package/dist/lib/neutral/chunk-HBUZJNZO.mjs.map +0 -7
  398. package/dist/lib/neutral/chunk-JUXPFOEI.mjs.map +0 -7
  399. package/dist/lib/neutral/chunk-MOR5ERFM.mjs.map +0 -7
  400. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +0 -7
  401. package/dist/lib/neutral/chunk-PHU22NLC.mjs +0 -136
  402. package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +0 -7
  403. package/dist/lib/neutral/chunk-ROG4RXXL.mjs +0 -97
  404. package/dist/lib/neutral/chunk-ROG4RXXL.mjs.map +0 -7
  405. package/dist/lib/neutral/chunk-T6W2LEZU.mjs.map +0 -7
  406. package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +0 -7
  407. package/dist/lib/neutral/chunk-TU3GW67D.mjs.map +0 -7
  408. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +0 -7
  409. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +0 -7
  410. package/dist/lib/neutral/chunk-V36VO5SS.mjs.map +0 -7
  411. package/dist/lib/neutral/chunk-WAK4DMFV.mjs.map +0 -7
  412. package/dist/lib/neutral/chunk-YAHXAYOW.mjs +0 -56
  413. package/dist/lib/neutral/chunk-YAHXAYOW.mjs.map +0 -7
  414. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +0 -50
  415. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +0 -7
  416. package/dist/types/src/Extension.d.ts +0 -80
  417. package/dist/types/src/Extension.d.ts.map +0 -1
  418. package/dist/types/src/Extension.test.d.ts +0 -2
  419. package/dist/types/src/Extension.test.d.ts.map +0 -1
  420. package/dist/types/src/SchemaRegistry.d.ts +0 -84
  421. package/dist/types/src/SchemaRegistry.d.ts.map +0 -1
  422. package/dist/types/src/internal/Obj/ids.d.ts +0 -6
  423. package/dist/types/src/internal/Obj/ids.d.ts.map +0 -1
  424. package/dist/types/src/internal/Query.d.ts.map +0 -1
  425. package/dist/types/src/internal/Type/echo-schema.d.ts +0 -181
  426. package/dist/types/src/internal/Type/echo-schema.d.ts.map +0 -1
  427. package/dist/types/src/internal/Type/persistent-schema.d.ts +0 -20
  428. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +0 -1
  429. package/src/Extension.test.ts +0 -235
  430. package/src/Extension.ts +0 -122
  431. package/src/SchemaRegistry.ts +0 -106
  432. package/src/internal/Obj/ids.ts +0 -12
  433. package/src/internal/Type/echo-schema.ts +0 -423
  434. package/src/internal/Type/persistent-schema.ts +0 -33
  435. /package/dist/lib/neutral/{Extension.mjs.map → Registry.mjs.map} +0 -0
  436. /package/dist/lib/neutral/{SchemaRegistry.mjs.map → Scope.mjs.map} +0 -0
  437. /package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs.map → chunk-IGK6FN65.mjs.map} +0 -0
@@ -1,29 +1,32 @@
1
+ import * as Schema from 'effect/Schema';
1
2
  import type { ForeignKey } from '@dxos/echo-protocol';
2
- import type { DXN, ObjectId } from '@dxos/keys';
3
+ import type { EntityId, URI } from '@dxos/keys';
3
4
  import * as internal from './internal';
5
+ import type * as Ref from './Ref';
4
6
  import type * as Relation from './Relation';
5
- import type * as Type from './Type';
7
+ import type * as Tag from './Tag';
8
+ import * as Type from './Type';
6
9
  export declare const KindId: "~@dxos/echo/Kind";
7
10
  export type KindId = typeof internal.KindId;
8
11
  export declare const SnapshotKindId: "~@dxos/echo/SnapshotKind";
9
12
  export type SnapshotKindId = typeof internal.SnapshotKindId;
10
13
  export declare const Kind: typeof internal.EntityKind;
11
14
  export type Kind = internal.EntityKind;
12
- export declare const KindSchema: import("effect/Schema").Enums<typeof internal.EntityKind>;
15
+ export declare const KindSchema: Schema.Enums<typeof internal.EntityKind>;
13
16
  /**
14
17
  * Assigns a kind to an Object or Relation instance.
15
18
  * NOTE: Needed to make `isRelation` and `isObject` checks work.
16
19
  */
17
20
  export interface OfKind<K extends Kind> {
18
21
  readonly [KindId]: K;
19
- readonly id: ObjectId;
22
+ readonly id: EntityId;
20
23
  }
21
24
  /**
22
25
  * Assigns a snapshot kind to an Object or Relation snapshot.
23
26
  */
24
27
  export interface SnapshotOfKind<K extends Kind> {
25
28
  readonly [SnapshotKindId]: K;
26
- readonly id: ObjectId;
29
+ readonly id: EntityId;
27
30
  }
28
31
  /**
29
32
  * Obj or Relation with a specific set of properties.
@@ -34,6 +37,22 @@ export type Entity<Props> = OfKind<Kind> & Props;
34
37
  */
35
38
  export interface Unknown extends OfKind<Kind> {
36
39
  }
40
+ /**
41
+ * Effect Schema for any ECHO entity (object or relation).
42
+ *
43
+ * Kind-agnostic counterpart to `Obj.Unknown` / `Relation.Unknown` — validates
44
+ * the structural shape (id + properties) without constraining `[KindId]`. Used
45
+ * in operation input schemas that accept any entity flavour (e.g.
46
+ * `Schema.Array(Entity.Unknown)`).
47
+ *
48
+ * The cast bridges the runtime structural schema to the branded `Unknown` type:
49
+ * `[KindId]` is a symbol brand that can't be expressed in a runtime `Struct`,
50
+ * so the entity guarantee is carried at the type level only (same approach as
51
+ * `Obj.Unknown` / `Relation.Unknown`). Unlike those, this is kind-agnostic so it
52
+ * isn't an `UnknownTypeSchema<_, K>` (there's no single `K`) and carries no
53
+ * `TypeAnnotation`.
54
+ */
55
+ export declare const Unknown: Schema.Schema<Unknown>;
37
56
  /**
38
57
  * Snapshot of an Obj or Relation.
39
58
  * Branded with SnapshotKindId instead of KindId.
@@ -61,12 +80,29 @@ export type Properties<T> = Omit<T, 'id' | KindId | Relation.Source | Relation.T
61
80
  * Returns `false` for snapshots.
62
81
  */
63
82
  export declare const isEntity: (value: unknown) => value is Unknown;
83
+ /**
84
+ * Test if a value is an instance of a given object or relation type.
85
+ *
86
+ * Kind-agnostic counterpart to `Obj.instanceOf` / `Relation.instanceOf` —
87
+ * use this when the caller's input type is `Type.AnyObj | Type.AnyRelation`.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * // Caller doesn't know whether `type` is object- or relation-kind.
92
+ * const matches = <T extends Type.AnyObj | Type.AnyRelation>(type: T, value: unknown) =>
93
+ * Entity.instanceOf(type, value);
94
+ * ```
95
+ */
96
+ export declare const instanceOf: {
97
+ <S extends Type.AnyEntity>(schema: S): (value: unknown) => value is Type.InstanceType<S>;
98
+ <S extends Type.AnyEntity>(schema: S, value: unknown): value is Type.InstanceType<S>;
99
+ };
64
100
  /**
65
101
  * Check if a value is an ECHO entity snapshot.
66
102
  * Returns `false` for entities.
67
103
  */
68
104
  export declare const isSnapshot: (value: unknown) => value is Snapshot;
69
- export declare const getKind: (schema: import("effect/Schema").Schema.All) => internal.EntityKind | undefined;
105
+ export declare const getKind: (schema: Schema.Schema.All) => internal.EntityKind | undefined;
70
106
  /**
71
107
  * Property that accesses metadata for an entity.
72
108
  */
@@ -80,22 +116,44 @@ export type Meta = typeof Meta;
80
116
  */
81
117
  export type JSON = internal.ObjectJSON;
82
118
  /**
83
- * Get the DXN of an entity (object or relation).
119
+ * Any value the read accessors operate on: a reactive entity or a snapshot.
120
+ * Type entities (`Type.AnyEntity`) are also accepted — they're first-class
121
+ * entities, and `Unknown`'s kind-agnostic brand already subsumes them.
84
122
  */
85
- export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
123
+ export type AnyInput = Unknown | Snapshot;
86
124
  /**
87
- * Get the DXN of an entity's type.
125
+ * Get the canonical URI of an entity (object, relation, or type). Returns `URI.URI` —
126
+ * an `EID` for object/relation instances and persisted types, or a typename
127
+ * `DXN` for static type entities; narrow with `EID.parse(uri)` or
128
+ * `DXN.tryMake(uri)` at the point of use.
129
+ *
130
+ * @param options.prefer - Controls the URI form (see {@link internal.GetURIOptions}).
131
+ */
132
+ export declare const getURI: (entity: AnyInput, options?: internal.GetURIOptions) => URI.URI;
133
+ /**
134
+ * Get the DXN of an entity's type. For object/relation instances this is the URI
135
+ * of the type they were created from; for a type entity it is the URI of the
136
+ * meta-type ({@link Type.Type}, `dxn:org.dxos.type.schema:0.1.0`).
88
137
  */
89
- export declare const getTypeDXN: (obj: internal.AnyProperties) => DXN | undefined;
138
+ export declare const getTypeURI: (entity: AnyInput) => URI.URI | undefined;
90
139
  /**
91
- * Get the schema of an entity.
92
- * Returns the branded ECHO schema used to create the entity.
140
+ * Get the type entity (`Type.AnyEntity`) the instance was created from.
141
+ *
142
+ * Returns `undefined` when the entity's type isn't registered in this runtime
143
+ * (e.g. a freshly deserialized snapshot whose type entity hasn't been wired
144
+ * up yet, or an entity loaded from storage before its schema is known). To
145
+ * get the Effect Schema from the returned entity, use `Type.getSchema(...)`.
146
+ *
147
+ * For a type entity, returns the meta-type {@link Type.Type} (a type entity's
148
+ * type is "Type").
93
149
  */
94
- export declare const getSchema: (entity: Unknown | Snapshot) => Type.AnyEntity | undefined;
150
+ export declare const getType: (entity: AnyInput) => Type.AnyEntity | undefined;
95
151
  /**
96
- * Get the typename of an entity's type.
152
+ * Get the typename of an entity's type. For object/relation instances this is the
153
+ * typename of the type they were created from; for a type entity it is the type's
154
+ * own typename (e.g. `com.example.type.person`).
97
155
  */
98
- export declare const getTypename: (entity: Unknown | Snapshot) => string | undefined;
156
+ export declare const getTypename: (entity: AnyInput) => string | undefined;
99
157
  /**
100
158
  * Get the database an entity belongs to.
101
159
  */
@@ -105,7 +163,7 @@ export declare const getDatabase: (entity: Unknown | Snapshot) => any | undefine
105
163
  * Returns mutable meta when passed a mutable entity (inside change callback).
106
164
  * Returns read-only meta when passed a regular entity or snapshot.
107
165
  */
108
- export declare function getMeta(entity: Mutable<Unknown>): internal.ObjectMeta;
166
+ export declare function getMeta(entity: Mutable<Unknown>): internal.EntityMeta;
109
167
  export declare function getMeta(entity: Unknown | Snapshot): internal.ReadonlyMeta;
110
168
  /**
111
169
  * Get foreign keys for an entity from the specified source.
@@ -117,12 +175,26 @@ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => Fo
117
175
  export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
118
176
  /**
119
177
  * Get the label of an entity.
178
+ *
179
+ * @param options.fallback `'typename'` returns the entity's typename when no
180
+ * label is set (e.g. `org.dxos.type.table`).
181
+ */
182
+ export declare const getLabel: (entity: Unknown | Snapshot, options?: internal.GetLabelOptions) => string | undefined;
183
+ /**
184
+ * Set the label of an entity.
185
+ * Must be called within an `Entity.update` / `Obj.update` / `Relation.update` callback.
120
186
  */
121
- export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
187
+ export declare const setLabel: (entity: Mutable<Unknown>, label: string) => void;
122
188
  /**
123
189
  * Get the description of an entity.
124
190
  */
125
191
  export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
192
+ /**
193
+ * Get the icon annotation for an entity (object or relation), resolved via its type-level
194
+ * `IconAnnotation`. Returns the full `{ icon, hue }` annotation so callers can use both
195
+ * the phosphor icon name and the suggested colour.
196
+ */
197
+ export declare const getIcon: (entity: Unknown | Snapshot) => internal.IconAnnotation | undefined;
126
198
  /**
127
199
  * Convert an entity to its JSON representation.
128
200
  */
@@ -133,14 +205,14 @@ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
133
205
  */
134
206
  export declare const subscribe: (entity: Unknown, callback: () => void) => (() => void);
135
207
  /**
136
- * Used to provide a mutable view of an entity within `Entity.change`.
208
+ * Used to provide a mutable view of an entity within `Entity.update`.
137
209
  */
138
210
  export type Mutable<T> = internal.Mutable<T>;
139
211
  /**
140
212
  * Perform mutations on an entity (object or relation) within a change context.
141
213
  *
142
214
  * Entities are read-only by default. Mutations are batched and notifications fire
143
- * when the callback completes. Direct mutations outside of `Entity.change` will throw
215
+ * when the callback completes. Direct mutations outside of `Entity.update` will throw
144
216
  * at runtime.
145
217
  *
146
218
  * @param entity - The echo entity (object or relation) to mutate.
@@ -148,27 +220,28 @@ export type Mutable<T> = internal.Mutable<T>;
148
220
  *
149
221
  * @example
150
222
  * ```typescript
151
- * // Mutate within Entity.change
152
- * Entity.change(entity, (obj) => {
223
+ * // Mutate within Entity.update
224
+ * Entity.update(entity, (obj) => {
153
225
  * obj.name = 'Updated';
154
226
  * obj.count = 42;
155
227
  * });
156
228
  *
157
229
  * // Direct mutation throws
158
- * entity.name = 'Bob'; // Error: Cannot modify outside Entity.change()
230
+ * entity.name = 'Bob'; // Error: Cannot modify outside Entity.update()
159
231
  * ```
160
232
  *
161
- * Note: For type-specific operations, prefer `Obj.change` or `Relation.change`.
233
+ * Note: For type-specific operations, prefer `Obj.update` or `Relation.update`.
162
234
  */
163
- export declare const change: <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>) => void;
235
+ export declare const update: <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>) => void;
164
236
  /**
165
237
  * Add a tag to an entity.
166
- * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.
238
+ * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
167
239
  */
168
- export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
240
+ export declare const addTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
169
241
  /**
170
242
  * Remove a tag from an entity.
171
- * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.
243
+ * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
172
244
  */
173
- export declare const removeTag: (entity: Mutable<Unknown>, tag: string) => void;
245
+ export declare const removeTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
246
+ export declare const atom: <T extends Unknown>(entity: T) => import("@effect-atom/atom/Atom").Atom<Snapshot>;
174
247
  //# sourceMappingURL=Entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,28 @@
1
1
  import { BaseError, type BaseErrorOptions } from '@dxos/errors';
2
- import { type DXN } from '@dxos/keys';
2
+ import { type URI } from '@dxos/keys';
3
3
  declare const SchemaNotFoundError_base: {
4
4
  new (options?: BaseErrorOptions): {
5
+ cause?: unknown;
6
+ stack?: string;
5
7
  name: "SchemaNotFoundError";
6
8
  context: Record<string, unknown>;
7
9
  readonly message: string;
8
10
  readonly _tag: "SchemaNotFoundError";
9
- stack?: string;
10
- cause?: unknown;
11
11
  };
12
+ isError(error: unknown): error is Error;
12
13
  name: "SchemaNotFoundError";
13
14
  is(error: unknown): error is BaseError;
14
- wrap(options?: Omit<BaseErrorOptions, "cause"> & {
15
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
15
16
  ifTypeDiffers?: boolean;
16
17
  }): (error: unknown) => {
18
+ cause?: unknown;
19
+ stack?: string;
17
20
  name: "SchemaNotFoundError";
18
21
  context: Record<string, unknown>;
19
22
  readonly message: string;
20
23
  readonly _tag: "SchemaNotFoundError";
21
- stack?: string;
22
- cause?: unknown;
23
24
  };
24
25
  extend<Name extends string = string>(name: Name, message?: string): any;
25
- isError(error: unknown): error is Error;
26
26
  captureStackTrace(targetObject: object, constructorOpt?: Function): void;
27
27
  prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
28
28
  stackTraceLimit: number;
@@ -30,35 +30,35 @@ declare const SchemaNotFoundError_base: {
30
30
  export declare class SchemaNotFoundError extends SchemaNotFoundError_base {
31
31
  constructor(schema: string, options?: BaseErrorOptions);
32
32
  }
33
- declare const ObjectNotFoundError_base: {
33
+ declare const EntityNotFoundError_base: {
34
34
  new (options?: BaseErrorOptions): {
35
- name: "ObjectNotFoundError";
35
+ cause?: unknown;
36
+ stack?: string;
37
+ name: "EntityNotFoundError";
36
38
  context: Record<string, unknown>;
37
39
  readonly message: string;
38
- readonly _tag: "ObjectNotFoundError";
39
- stack?: string;
40
- cause?: unknown;
40
+ readonly _tag: "EntityNotFoundError";
41
41
  };
42
- name: "ObjectNotFoundError";
42
+ isError(error: unknown): error is Error;
43
+ name: "EntityNotFoundError";
43
44
  is(error: unknown): error is BaseError;
44
- wrap(options?: Omit<BaseErrorOptions, "cause"> & {
45
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
45
46
  ifTypeDiffers?: boolean;
46
47
  }): (error: unknown) => {
47
- name: "ObjectNotFoundError";
48
+ cause?: unknown;
49
+ stack?: string;
50
+ name: "EntityNotFoundError";
48
51
  context: Record<string, unknown>;
49
52
  readonly message: string;
50
- readonly _tag: "ObjectNotFoundError";
51
- stack?: string;
52
- cause?: unknown;
53
+ readonly _tag: "EntityNotFoundError";
53
54
  };
54
55
  extend<Name extends string = string>(name: Name, message?: string): any;
55
- isError(error: unknown): error is Error;
56
56
  captureStackTrace(targetObject: object, constructorOpt?: Function): void;
57
57
  prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
58
58
  stackTraceLimit: number;
59
59
  };
60
- export declare class ObjectNotFoundError extends ObjectNotFoundError_base {
61
- constructor(dxn: DXN, options?: BaseErrorOptions);
60
+ export declare class EntityNotFoundError extends EntityNotFoundError_base {
61
+ constructor(uri: URI.URI, options?: BaseErrorOptions);
62
62
  }
63
63
  /**
64
64
  * Reason why getting a reactive object from a snapshot failed.
@@ -68,27 +68,27 @@ export declare class ObjectNotFoundError extends ObjectNotFoundError_base {
68
68
  export type GetReactiveErrorReason = 'no-database' | 'object-not-found';
69
69
  declare const GetReactiveError_base: {
70
70
  new (options?: BaseErrorOptions): {
71
+ cause?: unknown;
72
+ stack?: string;
71
73
  name: "GetReactiveError";
72
74
  context: Record<string, unknown>;
73
75
  readonly message: string;
74
76
  readonly _tag: "GetReactiveError";
75
- stack?: string;
76
- cause?: unknown;
77
77
  };
78
+ isError(error: unknown): error is Error;
78
79
  name: "GetReactiveError";
79
80
  is(error: unknown): error is BaseError;
80
- wrap(options?: Omit<BaseErrorOptions, "cause"> & {
81
+ wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
81
82
  ifTypeDiffers?: boolean;
82
83
  }): (error: unknown) => {
84
+ cause?: unknown;
85
+ stack?: string;
83
86
  name: "GetReactiveError";
84
87
  context: Record<string, unknown>;
85
88
  readonly message: string;
86
89
  readonly _tag: "GetReactiveError";
87
- stack?: string;
88
- cause?: unknown;
89
90
  };
90
91
  extend<Name extends string = string>(name: Name, message?: string): any;
91
- isError(error: unknown): error is Error;
92
92
  captureStackTrace(targetObject: object, constructorOpt?: Function): void;
93
93
  prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
94
94
  stackTraceLimit: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Err.d.ts","sourceRoot":"","sources":["../../../src/Err.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;qBA0BvB,CAAC;;;;;;;;;;;;;;;AAxBhB,qBAAa,mBAAoB,SAAQ,wBAA2D;gBACtF,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;CAGvD;;;;;;;;;;;;;qBAoBc,CAAC;;;;;;;;;;;;;;;AAlBhB,qBAAa,mBAAoB,SAAQ,wBAA2D;gBACtF,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB;CAGjD;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,kBAAkB,CAAC;;;;;;;;;;;;;qBAOzD,CAAC;;;;;;;;;;;;;;;AALhB;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGrC;gBACa,OAAO,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB;CAGhG"}
1
+ {"version":3,"file":"Err.d.ts","sourceRoot":"","sources":["../../../src/Err.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAErD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAEnD;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGrC;IACC,YAAY,OAAO,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAE9F;CACF"}
@@ -3,7 +3,7 @@ import * as Effect from 'effect/Effect';
3
3
  import * as Layer from 'effect/Layer';
4
4
  import type * as Option from 'effect/Option';
5
5
  import * as Schema from 'effect/Schema';
6
- import { DXN } from '@dxos/keys';
6
+ import { EID } from '@dxos/keys';
7
7
  import type * as Entity from './Entity';
8
8
  import type * as Filter from './Filter';
9
9
  import * as Obj from './Obj';
@@ -19,15 +19,14 @@ import * as Type from './Type';
19
19
  * ```
20
20
  */
21
21
  export declare const Feed: Type.Obj<{
22
- readonly kind?: string | undefined;
23
22
  readonly name?: string | undefined;
23
+ readonly kind?: string | undefined;
24
24
  readonly namespace?: "data" | "trace" | undefined;
25
25
  }, Schema.Struct.Fields>;
26
26
  /**
27
27
  * TypeScript instance type for a Feed object.
28
28
  */
29
- export interface Feed extends Schema.Schema.Type<typeof Feed> {
30
- }
29
+ export type Feed = Type.InstanceType<typeof Feed>;
31
30
  /**
32
31
  * Opaque cursor for iterating over feed items.
33
32
  */
@@ -41,6 +40,27 @@ export interface RetentionOptions {
41
40
  /** Retain items after this cursor position. */
42
41
  cursor?: string;
43
42
  }
43
+ /**
44
+ * Sync options for a feed.
45
+ */
46
+ export interface SyncOptions {
47
+ /** Push local changes to the server. Defaults to true. */
48
+ shouldPush?: boolean;
49
+ /** Pull remote changes from the server. Defaults to true. */
50
+ shouldPull?: boolean;
51
+ }
52
+ /**
53
+ * Queue replication backlog for a feed namespace.
54
+ * `0` / `0` means caught up on pull and push.
55
+ */
56
+ export interface SyncState {
57
+ /** Blocks still to pull from remote. */
58
+ blocksToPull: number;
59
+ /** Unpositioned blocks still to push to remote. */
60
+ blocksToPush: number;
61
+ /** Total blocks stored locally for the feed namespace. */
62
+ totalBlocks: number;
63
+ }
44
64
  /**
45
65
  * Creates a new feed object.
46
66
  *
@@ -51,23 +71,11 @@ export interface RetentionOptions {
51
71
  */
52
72
  export declare const make: (props?: Obj.MakeProps<typeof Feed>) => Feed;
53
73
  /**
54
- * Derives the queue DXN from the feed object's DXN.
55
- * Returns `undefined` when the feed is not stored in a space yet.
74
+ * Returns the feed object's EID when the feed is stored in a space.
56
75
  *
57
76
  * Used internally by the feed service layer.
58
77
  */
59
- export declare const getQueueDxn: (feed: Feed) => DXN | undefined;
60
- /**
61
- * Creates a Feed object from a queue DXN, inferring the feed's id and namespace from the DXN parts.
62
- *
63
- * The resulting Feed, when added to the same space as the queue, will have a queue DXN
64
- * equal to the input (see `Feed.getQueueDxn`). Useful when migrating `Ref(Queue)` fields to
65
- * `Ref(Feed.Feed)`.
66
- *
67
- * @remarks Unsafe because the caller must ensure the queue DXN's space matches the database
68
- * the feed is added to; the feed id is set from the queue id, bypassing id generation.
69
- */
70
- export declare const unsafeFromQueueDXN: (queueDxn: DXN) => Feed;
78
+ export declare const getQueueUri: (feed: Feed) => EID.EID | undefined;
71
79
  declare const FeedService_base: Context.TagClass<FeedService, "@dxos/echo/Feed/FeedService", {
72
80
  /**
73
81
  * Appends items to a feed.
@@ -84,6 +92,14 @@ declare const FeedService_base: Context.TagClass<FeedService, "@dxos/echo/Feed/F
84
92
  <Q extends Query.Any>(feed: Feed, query: Q): QueryResult.QueryResult<Query.Type<Q>>;
85
93
  <F extends Filter.Any>(feed: Feed, filter: F): QueryResult.QueryResult<Filter.Type<F>>;
86
94
  };
95
+ /**
96
+ * Syncs the feed with the server.
97
+ */
98
+ sync(feed: Feed, options?: SyncOptions): Promise<void>;
99
+ /**
100
+ * Returns queue replication backlog for the feed's namespace.
101
+ */
102
+ getSyncState(feed: Feed): Promise<SyncState>;
87
103
  }>;
88
104
  /**
89
105
  * Effect service for feed operations.
@@ -100,6 +116,18 @@ export type Service = FeedService;
100
116
  * @deprecated Use `FeedService` instead.
101
117
  */
102
118
  export declare const Service: typeof FeedService;
119
+ declare const ContextFeedService_base: Context.TagClass<ContextFeedService, "@dxos/echo/Feed/ContextFeedService", {
120
+ readonly feed: Feed;
121
+ }>;
122
+ /**
123
+ * Effect context service that holds the current feed for a scoped operation.
124
+ *
125
+ * @deprecated Prefer threading a `Feed.Feed` explicitly through function signatures
126
+ * over hiding it behind a context service.
127
+ */
128
+ export declare class ContextFeedService extends ContextFeedService_base {
129
+ static layer: (feed: Feed) => Layer.Layer<ContextFeedService>;
130
+ }
103
131
  /**
104
132
  * Layer that provides a Feed service that throws when accessed.
105
133
  * Useful as a default layer when no feed service is available.
@@ -147,6 +175,25 @@ export declare const runQuery: {
147
175
  <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;
148
176
  <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;
149
177
  };
178
+ /**
179
+ * Syncs the feed with the server.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * yield* Feed.sync(feed);
184
+ * yield* Feed.sync(feed, { shouldPush: false });
185
+ * ```
186
+ */
187
+ export declare const sync: (feed: Feed, options?: SyncOptions) => Effect.Effect<void, never, FeedService>;
188
+ /**
189
+ * Returns queue replication backlog for the feed's namespace.
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * const { blocksToPull, blocksToPush } = yield* Feed.getSyncState(feed);
194
+ * ```
195
+ */
196
+ export declare const getSyncState: (feed: Feed) => Effect.Effect<SyncState, never, FeedService>;
150
197
  /**
151
198
  * Creates a cursor for iterating over feed items.
152
199
  * Currently stubbed — cursor operations are not yet implemented.
@@ -170,7 +217,7 @@ export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effe
170
217
  export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, FeedService>;
171
218
  /**
172
219
  * Sets the local retention policy for a feed.
173
- * Currently stubbed — queues do not yet support retention.
220
+ * Currently stubbed — feeds do not yet support retention.
174
221
  *
175
222
  * @example
176
223
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  import type * as Types from 'effect/Types';
3
3
  import { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';
4
- import { DXN, ObjectId } from '@dxos/keys';
4
+ import { EntityId, type URI } from '@dxos/keys';
5
+ import * as internal from './internal';
5
6
  import type * as Obj from './Obj';
6
7
  import * as Ref from './Ref';
8
+ import type * as Type$ from './Type';
7
9
  export interface Filter<T> {
8
10
  '~Filter': {
9
11
  value: Types.Covariant<T>;
@@ -34,23 +36,47 @@ export declare const everything: () => FilterClass;
34
36
  * Filter that matches no objects.
35
37
  */
36
38
  export declare const nothing: () => FilterClass;
37
- export declare const id: (...ids: ObjectId[]) => Any;
39
+ export declare const id: (...ids: EntityId[]) => Any;
38
40
  /**
39
41
  * Filter by type.
40
- */
41
- export declare const type: <S extends Schema.Schema.All>(schema: S | string, props?: Props<Schema.Schema.Type<S>>) => Filter<Schema.Schema.Type<S>>;
42
+ *
43
+ * Accepts a `Type.Type` entity (the value produced by `Type.makeObject` /
44
+ * `Type.makeRelation`), a `Schema.Union` of such entities (for filtering across a
45
+ * union of ECHO types), or a fully-qualified type URI — an `echo:` EID (stored schema)
46
+ * or a `dxn:` DXN (static schema). To filter by a bare typename, wrap it: `DXN.make(typename)`.
47
+ */
48
+ export declare const type: {
49
+ <T extends Type$.AnyEntity>(type: T, props?: Props<Type$.InstanceType<T>>): Filter<Type$.InstanceType<T>>;
50
+ <S extends internal.UnknownTypeSchema<any, any>>(schema: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
51
+ <S extends Schema.Union<readonly Schema.Schema.AnyNoContext[]>>(union: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
52
+ (uri: URI.URI, props?: Props<unknown>): Filter<any>;
53
+ (input: Type$.AnyEntity | URI.URI, props?: Props<unknown>): Filter<unknown>;
54
+ };
42
55
  /**
43
- * Filter by non-qualified typename.
56
+ * Filter by tag.
44
57
  */
45
- export declare const typename: (typename: string) => Any;
58
+ export declare const tag: (tag: string) => Any;
46
59
  /**
47
- * Filter by fully qualified type DXN.
60
+ * Options for {@link key} filter.
48
61
  */
49
- export declare const typeDXN: (dxn: DXN) => Any;
62
+ export type KeyFilterOptions = {
63
+ /**
64
+ * Optional semver range expression (e.g. `^1.2.3`, `~2.0.0`, `>=1.0.0 <2.0.0`).
65
+ * Matches the object's meta `version` field against the range.
66
+ * If omitted, matches any version (including objects with no version).
67
+ */
68
+ version?: string;
69
+ };
50
70
  /**
51
- * Filter by tag.
71
+ * Filter by registry key stored in object meta.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * Filter.key('org.example.type.foo');
76
+ * Filter.key('org.example.type.foo', { version: '^1.2.3' });
77
+ * ```
52
78
  */
53
- export declare const tag: (tag: string) => Any;
79
+ export declare const key: (key: string, options?: KeyFilterOptions) => Any;
54
80
  /**
55
81
  * Filter by properties.
56
82
  */
@@ -65,7 +91,7 @@ export declare const text: (text: string, options?: TextSearchOptions) => Any;
65
91
  /**
66
92
  * Filter by foreign keys.
67
93
  */
68
- export declare const foreignKeys: <S extends Schema.Schema.All>(schema: S | string, keys: ForeignKey[]) => Filter<Schema.Schema.Type<S>>;
94
+ export declare const foreignKeys: <S extends Type$.AnyEntity | URI.URI>(schema: S, keys: ForeignKey[]) => Filter<S extends Type$.AnyEntity ? Type$.InstanceType<S> : unknown>;
69
95
  /**
70
96
  * Predicate for property to be equal to the provided value.
71
97
  */
@@ -126,7 +152,7 @@ export type ChildOfOptions = {
126
152
  /**
127
153
  * Filter objects that are children of the specified parent(s).
128
154
  * Accepts ECHO objects, Refs, or arrays of either.
129
- * Refs are resolved to DXNs without loading; objects use {@link Obj.getDXN}.
155
+ * Refs are resolved to DXNs without loading; objects use {@link Obj.getURI}.
130
156
  * With transitive=true (default), also matches grandchildren and beyond.
131
157
  */
132
158
  export declare const childOf: (parents: Obj.Unknown | Ref.Unknown | readonly (Obj.Unknown | Ref.Unknown)[], options?: ChildOfOptions) => Any;