@dxos/echo 0.8.4-main.ef1bc66f44 → 0.8.4-main.f466a3d56e

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 (565) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +5 -5
  3. package/dist/lib/neutral/Annotation.mjs +7 -3
  4. package/dist/lib/neutral/Database.mjs +8 -4
  5. package/dist/lib/neutral/Entity.mjs +24 -14
  6. package/dist/lib/neutral/Err.mjs +3 -1
  7. package/dist/lib/neutral/Extension.mjs +18 -0
  8. package/dist/lib/neutral/Extension.mjs.map +7 -0
  9. package/dist/lib/neutral/Feed.mjs +52 -0
  10. package/dist/lib/neutral/Feed.mjs.map +7 -0
  11. package/dist/lib/neutral/Filter.mjs +23 -10
  12. package/dist/lib/neutral/Format.mjs +3 -3
  13. package/dist/lib/neutral/JsonSchema.mjs +9 -9
  14. package/dist/lib/neutral/Key.mjs +1 -1
  15. package/dist/lib/neutral/Migration.mjs +17 -0
  16. package/dist/lib/neutral/Migration.mjs.map +7 -0
  17. package/dist/lib/neutral/Obj.mjs +34 -17
  18. package/dist/lib/neutral/Order.mjs +1 -1
  19. package/dist/lib/neutral/Query.mjs +21 -9
  20. package/dist/lib/neutral/QueryResult.mjs +1 -1
  21. package/dist/lib/neutral/Ref.mjs +11 -7
  22. package/dist/lib/neutral/Relation.mjs +23 -13
  23. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  24. package/dist/lib/neutral/Tag.mjs +14 -10
  25. package/dist/lib/neutral/Type.mjs +13 -23
  26. package/dist/lib/neutral/{chunk-N2QNHMT5.mjs → chunk-44HT3MEC.mjs} +2 -2
  27. package/dist/lib/neutral/{chunk-N2QNHMT5.mjs.map → chunk-44HT3MEC.mjs.map} +1 -1
  28. package/dist/lib/neutral/{chunk-XAJMXQ4H.mjs → chunk-5SL5LDLD.mjs} +6 -2
  29. package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
  30. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
  31. package/dist/lib/neutral/chunk-APHSOTIX.mjs +34 -0
  32. package/dist/lib/neutral/chunk-APHSOTIX.mjs.map +7 -0
  33. package/dist/lib/neutral/{chunk-ZAHWXGK4.mjs → chunk-APJKDGFL.mjs} +85 -7
  34. package/dist/lib/neutral/chunk-APJKDGFL.mjs.map +7 -0
  35. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-BICZKPQG.mjs} +1 -1
  36. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs.map → chunk-BICZKPQG.mjs.map} +1 -1
  37. package/dist/lib/neutral/chunk-BMB7IHGB.mjs +346 -0
  38. package/dist/lib/neutral/chunk-BMB7IHGB.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-FIWO2FZK.mjs +36 -0
  40. package/dist/lib/neutral/chunk-FIWO2FZK.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-G54OX4IX.mjs +2452 -0
  42. package/dist/lib/neutral/chunk-G54OX4IX.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  44. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-LKFNEFHF.mjs → chunk-I2DARWPX.mjs} +18 -20
  46. package/dist/lib/neutral/chunk-I2DARWPX.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-J54QMAKF.mjs +421 -0
  48. package/dist/lib/neutral/chunk-J54QMAKF.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-MGSQGHOD.mjs +206 -0
  50. package/dist/lib/neutral/chunk-MGSQGHOD.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-MLS7U7AT.mjs +734 -0
  52. package/dist/lib/neutral/chunk-MLS7U7AT.mjs.map +7 -0
  53. package/dist/lib/neutral/{chunk-KB7RIVLK.mjs → chunk-N4B7FHQT.mjs} +4 -4
  54. package/dist/lib/neutral/{chunk-KB7RIVLK.mjs.map → chunk-N4B7FHQT.mjs.map} +2 -2
  55. package/dist/lib/neutral/{chunk-K5K3Z62A.mjs → chunk-N7VOEPSV.mjs} +11 -3
  56. package/dist/lib/neutral/chunk-N7VOEPSV.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-PSZBLH53.mjs +81 -0
  58. package/dist/lib/neutral/chunk-PSZBLH53.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-MTEHHY62.mjs → chunk-PT37DG2F.mjs} +77 -58
  60. package/dist/lib/neutral/chunk-PT37DG2F.mjs.map +7 -0
  61. package/dist/lib/neutral/{chunk-DLPC7DHQ.mjs → chunk-Q2KKKJSV.mjs} +5 -5
  62. package/dist/lib/neutral/chunk-Q2KKKJSV.mjs.map +7 -0
  63. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs +320 -0
  64. package/dist/lib/neutral/chunk-Q7ZL2P5H.mjs.map +7 -0
  65. package/dist/lib/neutral/{chunk-QARLJVDB.mjs → chunk-QRZ2I3ZM.mjs} +8 -4
  66. package/dist/lib/neutral/chunk-QRZ2I3ZM.mjs.map +7 -0
  67. package/dist/lib/neutral/{chunk-VUQGRDRI.mjs → chunk-SCPFDS2E.mjs} +40 -12
  68. package/dist/lib/neutral/chunk-SCPFDS2E.mjs.map +7 -0
  69. package/dist/lib/neutral/{chunk-RIMHNJ3E.mjs → chunk-TNBK56IN.mjs} +98 -44
  70. package/dist/lib/neutral/chunk-TNBK56IN.mjs.map +7 -0
  71. package/dist/lib/neutral/{chunk-7WE7SBA2.mjs → chunk-TRPZU2HV.mjs} +13 -13
  72. package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
  73. package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-TTCSATUD.mjs} +2 -2
  74. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  75. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  76. package/dist/lib/neutral/chunk-ZFACXBY6.mjs +136 -0
  77. package/dist/lib/neutral/chunk-ZFACXBY6.mjs.map +7 -0
  78. package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-ZISMEVKD.mjs} +14 -1
  79. package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
  80. package/dist/lib/neutral/index.mjs +51 -28
  81. package/dist/lib/neutral/internal/index.mjs +52 -38
  82. package/dist/lib/neutral/meta.json +1 -1
  83. package/dist/lib/neutral/testing/index.mjs +199 -136
  84. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  85. package/dist/types/src/Annotation.d.ts +3 -3
  86. package/dist/types/src/Annotation.d.ts.map +1 -1
  87. package/dist/types/src/Collection.d.ts +16 -0
  88. package/dist/types/src/Collection.d.ts.map +1 -0
  89. package/dist/types/src/Database.d.ts +21 -36
  90. package/dist/types/src/Database.d.ts.map +1 -1
  91. package/dist/types/src/Dataset.d.ts +19 -0
  92. package/dist/types/src/Dataset.d.ts.map +1 -0
  93. package/dist/types/src/Entity.d.ts +54 -22
  94. package/dist/types/src/Entity.d.ts.map +1 -1
  95. package/dist/types/src/Err.d.ts +55 -12
  96. package/dist/types/src/Err.d.ts.map +1 -1
  97. package/dist/types/src/Extension.d.ts +80 -0
  98. package/dist/types/src/Extension.d.ts.map +1 -0
  99. package/dist/types/src/Extension.test.d.ts +2 -0
  100. package/dist/types/src/Extension.test.d.ts.map +1 -0
  101. package/dist/types/src/Feed.d.ts +206 -0
  102. package/dist/types/src/Feed.d.ts.map +1 -0
  103. package/dist/types/src/Filter.d.ts +55 -5
  104. package/dist/types/src/Filter.d.ts.map +1 -1
  105. package/dist/types/src/Filter.test.d.ts +2 -0
  106. package/dist/types/src/Filter.test.d.ts.map +1 -0
  107. package/dist/types/src/Format.d.ts +3 -3
  108. package/dist/types/src/Format.d.ts.map +1 -1
  109. package/dist/types/src/Hypergraph.d.ts +11 -6
  110. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  111. package/dist/types/src/Json.d.ts +33 -0
  112. package/dist/types/src/Json.d.ts.map +1 -0
  113. package/dist/types/src/Json.test.d.ts +2 -0
  114. package/dist/types/src/Json.test.d.ts.map +1 -0
  115. package/dist/types/src/JsonSchema.d.ts +11 -4
  116. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  117. package/dist/types/src/Migration.d.ts +69 -0
  118. package/dist/types/src/Migration.d.ts.map +1 -0
  119. package/dist/types/src/Obj.d.ts +163 -59
  120. package/dist/types/src/Obj.d.ts.map +1 -1
  121. package/dist/types/src/Order.d.ts.map +1 -1
  122. package/dist/types/src/Query.d.ts +105 -17
  123. package/dist/types/src/Query.d.ts.map +1 -1
  124. package/dist/types/src/Ref.d.ts +59 -10
  125. package/dist/types/src/Ref.d.ts.map +1 -1
  126. package/dist/types/src/Relation.d.ts +86 -40
  127. package/dist/types/src/Relation.d.ts.map +1 -1
  128. package/dist/types/src/SchemaRegistry.d.ts +4 -4
  129. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  130. package/dist/types/src/Tag.d.ts +2 -1
  131. package/dist/types/src/Tag.d.ts.map +1 -1
  132. package/dist/types/src/Type.d.ts +51 -180
  133. package/dist/types/src/Type.d.ts.map +1 -1
  134. package/dist/types/src/View.d.ts +68 -0
  135. package/dist/types/src/View.d.ts.map +1 -0
  136. package/dist/types/src/exemplars.test.d.ts +2 -0
  137. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  138. package/dist/types/src/index.d.ts +7 -0
  139. package/dist/types/src/index.d.ts.map +1 -1
  140. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +65 -2
  141. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  142. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  143. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  144. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  145. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  146. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  147. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +2 -2
  148. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  149. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  150. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  151. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
  152. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  153. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  154. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  155. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  156. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  157. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  158. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  159. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  160. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  161. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  162. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  163. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  164. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  165. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  166. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  167. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  168. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  169. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  170. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  171. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  172. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  173. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  174. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  175. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  176. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  177. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  178. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  179. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  180. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +37 -37
  181. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  182. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +1 -1
  183. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  184. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  185. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  186. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  187. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  188. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  189. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  190. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  191. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  192. package/dist/types/src/internal/{object → Obj}/ids.d.ts +1 -1
  193. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  194. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  196. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +13 -5
  197. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  200. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  201. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  202. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +2 -2
  203. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  204. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  205. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  206. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
  207. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  208. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  209. package/dist/types/src/internal/Query.d.ts +10 -0
  210. package/dist/types/src/internal/Query.d.ts.map +1 -0
  211. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  212. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  213. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  214. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +15 -2
  215. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  216. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  218. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  219. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  220. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +7 -7
  221. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  222. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  223. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  224. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  225. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  226. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  227. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  228. package/dist/types/src/internal/{api → common/api}/meta.d.ts +3 -3
  229. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  230. package/dist/types/src/internal/common/index.d.ts +4 -0
  231. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  232. package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +1 -1
  233. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  234. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  235. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  236. package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +1 -1
  237. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  239. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  241. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  243. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  244. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  245. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  246. package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +1 -1
  247. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  248. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +2 -2
  249. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts.map +1 -1
  250. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  251. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  253. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  254. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  255. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  256. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  257. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  258. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  259. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  260. package/dist/types/src/internal/{types → common/types}/entity.d.ts +5 -5
  261. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  262. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  263. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/{types → common/types}/meta.d.ts +12 -1
  265. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  266. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  267. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  268. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  269. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  270. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  271. package/dist/types/src/internal/index.d.ts +9 -10
  272. package/dist/types/src/internal/index.d.ts.map +1 -1
  273. package/dist/types/src/testing/test-data.d.ts +8 -8
  274. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  275. package/dist/types/src/testing/test-schema.d.ts +47 -46
  276. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  277. package/dist/types/src/testing/util.d.ts.map +1 -1
  278. package/dist/types/tsconfig.tsbuildinfo +1 -1
  279. package/package.json +30 -15
  280. package/src/Annotation.ts +7 -3
  281. package/src/Collection.ts +37 -0
  282. package/src/Database.ts +64 -65
  283. package/src/Dataset.ts +26 -0
  284. package/src/Entity.ts +87 -61
  285. package/src/Err.ts +22 -0
  286. package/src/Extension.test.ts +235 -0
  287. package/src/Extension.ts +122 -0
  288. package/src/Feed.ts +335 -0
  289. package/src/Filter.test.ts +90 -0
  290. package/src/Filter.ts +116 -7
  291. package/src/Format.ts +3 -3
  292. package/src/Hypergraph.ts +12 -7
  293. package/src/Json.test.ts +175 -0
  294. package/src/Json.ts +102 -0
  295. package/src/JsonSchema.ts +14 -4
  296. package/src/Migration.ts +106 -0
  297. package/src/Obj.test.ts +142 -15
  298. package/src/Obj.ts +382 -161
  299. package/src/Order.ts +3 -1
  300. package/src/Query.test.ts +372 -15
  301. package/src/Query.ts +274 -26
  302. package/src/Ref.ts +66 -11
  303. package/src/Relation.test.ts +8 -2
  304. package/src/Relation.ts +183 -147
  305. package/src/SchemaRegistry.ts +5 -4
  306. package/src/Tag.ts +6 -5
  307. package/src/Type.test.ts +10 -10
  308. package/src/Type.ts +70 -303
  309. package/src/View.ts +107 -0
  310. package/src/exemplars.test.ts +21 -0
  311. package/src/index.ts +8 -0
  312. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -7
  313. package/src/internal/{annotations → Annotation}/annotations.ts +122 -19
  314. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  315. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  316. package/src/internal/{annotations → Annotation}/util.ts +1 -1
  317. package/src/internal/{api/entity.ts → Entity/api.ts} +3 -2
  318. package/src/internal/{entities → Entity}/entity.ts +6 -4
  319. package/src/internal/{entities → Entity}/index.ts +2 -0
  320. package/src/internal/{entities → Entity}/model.ts +15 -42
  321. package/src/internal/{entities → Entity}/object.ts +2 -3
  322. package/src/internal/{entities → Entity}/relation.ts +19 -36
  323. package/src/internal/{api → Entity}/version.ts +2 -2
  324. package/src/internal/{formats → Format}/date.test.ts +1 -2
  325. package/src/internal/{formats → Format}/format.test.ts +1 -2
  326. package/src/internal/{formats → Format}/types.ts +2 -2
  327. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  328. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  329. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -49
  330. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +6 -5
  331. package/src/internal/{object → Obj}/clone.ts +3 -3
  332. package/src/internal/{object → Obj}/common.ts +2 -2
  333. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  334. package/src/internal/{object → Obj}/create-object.ts +5 -6
  335. package/src/internal/{object → Obj}/deleted.ts +2 -2
  336. package/src/internal/{object → Obj}/ids.ts +1 -1
  337. package/src/internal/{object → Obj}/inspect.ts +2 -2
  338. package/src/internal/{object → Obj}/json-serializer.test.ts +31 -9
  339. package/src/internal/{object → Obj}/json-serializer.ts +60 -35
  340. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  341. package/src/internal/{object → Obj}/set-value.test.ts +24 -24
  342. package/src/internal/{object → Obj}/set-value.ts +3 -3
  343. package/src/internal/{object → Obj}/snapshot.ts +35 -23
  344. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  345. package/src/internal/{object → Obj}/typed-object.ts +4 -4
  346. package/src/internal/Query.ts +156 -0
  347. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  348. package/src/internal/{ref → Ref}/ref.test.ts +4 -5
  349. package/src/internal/{ref → Ref}/ref.ts +20 -3
  350. package/src/internal/{schema → Type}/compose.test.ts +5 -6
  351. package/src/internal/{schema → Type}/compose.ts +1 -1
  352. package/src/internal/{schema → Type}/echo-schema.ts +9 -10
  353. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  354. package/src/internal/{schema → Type}/persistent-schema.ts +9 -4
  355. package/src/internal/{README.md → common/README.md} +2 -2
  356. package/src/internal/{api → common/api}/index.ts +0 -4
  357. package/src/internal/{api → common/api}/meta.ts +3 -3
  358. package/src/internal/common/index.ts +7 -0
  359. package/src/internal/{proxy → common/proxy}/change-context.ts +1 -1
  360. package/src/internal/{proxy → common/proxy}/change.test.ts +97 -97
  361. package/src/internal/{proxy → common/proxy}/errors.ts +2 -2
  362. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  363. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  364. package/src/internal/{proxy → common/proxy}/make-object.ts +1 -2
  365. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  366. package/src/internal/{proxy → common/proxy}/reactive-array.ts +1 -1
  367. package/src/internal/common/proxy/reactive.test.ts +54 -0
  368. package/src/internal/{proxy → common/proxy}/reactive.ts +12 -4
  369. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  370. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -7
  371. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -13
  372. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +5 -6
  373. package/src/internal/{types → common/types}/base.ts +1 -1
  374. package/src/internal/{types → common/types}/entity.ts +2 -2
  375. package/src/internal/{types → common/types}/index.ts +1 -0
  376. package/src/internal/{types → common/types}/meta.ts +15 -1
  377. package/src/internal/common/types/model-symbols.ts +69 -0
  378. package/src/internal/{types → common/types}/version.ts +2 -3
  379. package/src/internal/index.ts +9 -31
  380. package/src/testing/api.test.ts +4 -5
  381. package/src/testing/test-data.ts +157 -98
  382. package/src/testing/test-schema.ts +20 -18
  383. package/dist/lib/neutral/chunk-2AF5GMG6.mjs +0 -171
  384. package/dist/lib/neutral/chunk-2AF5GMG6.mjs.map +0 -7
  385. package/dist/lib/neutral/chunk-7WE7SBA2.mjs.map +0 -7
  386. package/dist/lib/neutral/chunk-DLPC7DHQ.mjs.map +0 -7
  387. package/dist/lib/neutral/chunk-EBUAT5ID.mjs +0 -229
  388. package/dist/lib/neutral/chunk-EBUAT5ID.mjs.map +0 -7
  389. package/dist/lib/neutral/chunk-K5K3Z62A.mjs.map +0 -7
  390. package/dist/lib/neutral/chunk-LKFNEFHF.mjs.map +0 -7
  391. package/dist/lib/neutral/chunk-MTEHHY62.mjs.map +0 -7
  392. package/dist/lib/neutral/chunk-QARLJVDB.mjs.map +0 -7
  393. package/dist/lib/neutral/chunk-RIMHNJ3E.mjs.map +0 -7
  394. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
  395. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
  396. package/dist/lib/neutral/chunk-TLGNKUUG.mjs +0 -3905
  397. package/dist/lib/neutral/chunk-TLGNKUUG.mjs.map +0 -7
  398. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs +0 -142
  399. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs.map +0 -7
  400. package/dist/lib/neutral/chunk-VUQGRDRI.mjs.map +0 -7
  401. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
  402. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
  403. package/dist/lib/neutral/chunk-XAJMXQ4H.mjs.map +0 -7
  404. package/dist/lib/neutral/chunk-ZAHWXGK4.mjs.map +0 -7
  405. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  406. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  407. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  408. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  409. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  410. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  411. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  412. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  413. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  414. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  415. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  416. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  417. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  418. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  419. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  420. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  421. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  422. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  423. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  424. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  425. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  426. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  427. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  428. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  429. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  430. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  431. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  432. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  433. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  434. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  435. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  436. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  437. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  438. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  439. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  440. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  441. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  442. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  443. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  444. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  445. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  446. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  447. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  448. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  449. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  450. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  451. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  452. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  453. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  454. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  455. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  456. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  457. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  458. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  459. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  460. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  461. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  462. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  463. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  464. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  465. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  466. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  467. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  468. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  469. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  470. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  471. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  472. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  473. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  474. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  475. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  476. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  477. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  478. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  479. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  480. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  481. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  482. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  483. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  484. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  485. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  486. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  487. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  488. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  489. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  490. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  491. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  492. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  493. package/src/internal/api/annotations.ts +0 -60
  494. /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
  495. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
  496. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  497. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  498. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  499. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  500. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  501. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  502. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  503. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  504. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  505. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  506. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  507. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  508. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  509. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  510. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  511. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  512. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  513. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  514. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  515. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  516. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  517. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  518. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  519. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  520. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  521. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  522. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  523. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  524. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  525. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  526. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  527. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  528. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  529. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  530. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  531. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  532. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  533. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  534. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  535. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  536. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  537. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  538. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  539. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +0 -0
  540. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  541. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  542. /package/dist/types/src/internal/{types → common/types}/typename.d.ts +0 -0
  543. /package/src/internal/{entities → Entity}/util.ts +0 -0
  544. /package/src/internal/{formats → Format}/date.ts +0 -0
  545. /package/src/internal/{formats → Format}/format.ts +0 -0
  546. /package/src/internal/{formats → Format}/index.ts +0 -0
  547. /package/src/internal/{formats → Format}/number.ts +0 -0
  548. /package/src/internal/{formats → Format}/object.ts +0 -0
  549. /package/src/internal/{formats → Format}/select.ts +0 -0
  550. /package/src/internal/{formats → Format}/string.ts +0 -0
  551. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  552. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  553. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  554. /package/src/internal/{object → Obj}/index.ts +0 -0
  555. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  556. /package/src/internal/{ref → Ref}/index.ts +0 -0
  557. /package/src/internal/{schema → Type}/index.ts +0 -0
  558. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  559. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  560. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  561. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  562. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  563. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  564. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
  565. /package/src/internal/{types → common/types}/typename.ts +0 -0
@@ -1,10 +1,13 @@
1
1
  import type * as EffectArray from 'effect/Array';
2
2
  import type * as Schema from 'effect/Schema';
3
3
  import { type QueryAST } from '@dxos/echo-protocol';
4
+ import * as Database from './Database';
5
+ import type * as Dataset from './Dataset';
6
+ import * as Feed from './Feed';
4
7
  import * as Filter from './Filter';
5
8
  import type * as Order from './Order';
6
9
  import type * as Ref from './Ref';
7
- import type * as Type$ from './Type';
10
+ import type * as Relation from './Relation';
8
11
  /**
9
12
  * All property paths inside T that are references.
10
13
  */
@@ -19,74 +22,142 @@ export interface Query<T> {
19
22
  * @param filter - Filter to select the objects.
20
23
  * @returns Query for the selected objects.
21
24
  */
22
- select(filter: Filter.Filter<T>): Query<T>;
23
- select(props: Filter.Props<T>): Query<T>;
25
+ 'select'(filter: Filter.Filter<T>): Query<T>;
26
+ 'select'(props: Filter.Props<T>): Query<T>;
24
27
  /**
25
28
  * Traverse an outgoing reference.
26
29
  * @param key - Property path inside T that is a reference or optional reference.
27
30
  * @returns Query for the target of the reference.
28
31
  */
29
- reference<K extends RefPropKey<T>>(key: K): Query<T[K] extends Ref.Unknown ? Ref.Target<T[K]> : T[K] extends Ref.Unknown | undefined ? Ref.Target<Exclude<T[K], undefined>> : never>;
32
+ 'reference'<K extends RefPropKey<T>>(key: K): Query<T[K] extends Ref.Unknown ? Ref.Target<T[K]> : T[K] extends Ref.Unknown | undefined ? Ref.Target<Exclude<T[K], undefined>> : never>;
30
33
  /**
31
34
  * Find objects referencing this object.
32
35
  * @param target - Schema of the referencing object. If not provided, matches any type.
33
36
  * @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.
34
37
  * @returns Query for the referencing objects.
35
38
  */
36
- referencedBy<S extends Schema.Schema.All>(target: S | string, key: RefPropKey<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
37
- referencedBy<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;
38
- referencedBy(): Query<any>;
39
+ 'referencedBy'<S extends Schema.Schema.All>(target: S | string, key: RefPropKey<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
40
+ 'referencedBy'<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;
41
+ 'referencedBy'(): Query<any>;
39
42
  /**
40
43
  * Find relations where this object is the source.
41
44
  * @returns Query for the relation objects.
42
45
  * @param relation - Schema of the relation.
43
46
  * @param predicates - Predicates to filter the relation objects.
44
47
  */
45
- sourceOf<S extends Schema.Schema.All>(relation: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
48
+ 'sourceOf'<S extends Schema.Schema.All>(relation?: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
46
49
  /**
47
50
  * Find relations where this object is the target.
48
51
  * @returns Query for the relation objects.
49
52
  * @param relation - Schema of the relation.
50
53
  * @param predicates - Predicates to filter the relation objects.
51
54
  */
52
- targetOf<S extends Schema.Schema.All>(relation: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
55
+ 'targetOf'<S extends Schema.Schema.All>(relation?: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
53
56
  /**
54
57
  * For a query for relations, get the source objects.
55
58
  * @returns Query for the source objects.
56
59
  */
57
- source(): Query<Type$.Relation.Source<T>>;
60
+ 'source'(): Query<Relation.SourceOf<T>>;
58
61
  /**
59
62
  * For a query for relations, get the target objects.
60
63
  * @returns Query for the target objects.
61
64
  */
62
- target(): Query<Type$.Relation.Target<T>>;
65
+ 'target'(): Query<Relation.TargetOf<T>>;
63
66
  /**
64
67
  * Get the parent object of the current selection.
65
68
  * @returns Query for the parent objects.
66
69
  */
67
- parent(): Query<any>;
70
+ 'parent'(): Query<any>;
68
71
  /**
69
72
  * Get all child objects of the current selection.
70
73
  * @returns Query for the child objects.
71
74
  */
72
- children(): Query<any>;
75
+ 'children'(): Query<any>;
73
76
  /**
74
77
  * Order the query results.
75
78
  * Orders are specified in priority order. The first order will be applied first, etc.
76
79
  * @param order - Order to sort the results.
77
80
  * @returns Query for the ordered results.
78
81
  */
79
- orderBy(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;
82
+ 'orderBy'(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;
80
83
  /**
81
84
  * Limit the number of results.
82
85
  * @param limit - Maximum number of results to return.
83
86
  * @returns Query for the limited results.
84
87
  */
85
- limit(limit: number): Query<T>;
88
+ 'limit'(limit: number): Query<T>;
89
+ /**
90
+ * Query from selected databases only.
91
+ *
92
+ * Example:
93
+ *
94
+ * ```ts
95
+ * Query.select(Filter.type(Person)).from(db);
96
+ * ```
97
+ *
98
+ * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.
99
+ */
100
+ 'from'(database: Database.Database | Database.Database[], options?: {
101
+ includeFeeds?: boolean;
102
+ }): Query<T>;
103
+ /**
104
+ * Query from selected feeds only.
105
+ *
106
+ * Example:
107
+ *
108
+ * ```ts
109
+ * Query.select(Filter.type(Person)).from(feed);
110
+ * ```
111
+ *
112
+ */
113
+ 'from'(feeds: Feed.Feed | Feed.Feed[]): Query<T>;
114
+ /**
115
+ * Query from all accessible spaces.
116
+ *
117
+ * Example:
118
+ *
119
+ * ```ts
120
+ * Query.select(Filter.type(Person)).from('all-accessible-spaces');
121
+ * ```
122
+ *
123
+ * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.
124
+ */
125
+ 'from'(allSpaces: 'all-accessible-spaces', options?: {
126
+ includeFeeds?: boolean;
127
+ }): Query<T>;
128
+ /**
129
+ * Query from a dataset.
130
+ * Currently only feeds are supported.
131
+ *
132
+ * Example:
133
+ *
134
+ * ```ts
135
+ * Query.type(Person).from(feed);
136
+ * ```
137
+ */
138
+ 'from'(dataset: Dataset.Dataset): Query<T>;
139
+ /**
140
+ * Query from the results of another query.
141
+ *
142
+ * Example:
143
+ *
144
+ * ```ts
145
+ * Query.select(Filter.props({ foo: 'foo' })).from(Query.select(Filter.type(Contact)).reference('org'));
146
+ * ```
147
+ */
148
+ 'from'(query: Any): Query<T>;
149
+ /**
150
+ * Query from a raw scope specification.
151
+ */
152
+ 'from'(scope: QueryAST.Scope): Query<T>;
86
153
  /**
87
154
  * Add options to a query.
88
155
  */
89
- options(options: QueryAST.QueryOptions): Query<T>;
156
+ 'options'(options: QueryAST.QueryOptions): Query<T>;
157
+ /**
158
+ * Attach a diagnostic label for logs and tooling (execution semantics unchanged).
159
+ */
160
+ 'debugLabel'(label: string): Query<T>;
90
161
  }
91
162
  export type Any = Query<any>;
92
163
  export type Type<Q extends Any> = Q extends Query<infer T> ? T : never;
@@ -107,7 +178,10 @@ export declare const select: <F extends Filter.Any>(filter: F) => Query<Filter.T
107
178
  *
108
179
  * Shorthand for: `Query.select(Filter.type(schema, predicates))`.
109
180
  */
110
- export declare const type: (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>) => Any;
181
+ export declare const type: {
182
+ <S extends Schema.Schema.All>(schema: S, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
183
+ (schema: string, predicates?: Filter.Props<unknown>): Query<any>;
184
+ };
111
185
  /**
112
186
  * Combine results of multiple queries.
113
187
  * @param queries - Queries to combine.
@@ -121,5 +195,19 @@ export declare const all: (...queries: Any[]) => Any;
121
195
  * @returns Query for the results of the source query minus the results of the exclude query.
122
196
  */
123
197
  export declare const without: <T>(source: Query<T>, exclude: Query<T>) => Query<T>;
198
+ /**
199
+ * Create a query scoped to a data source.
200
+ * The returned query selects everything from the source; chain `.select()` to narrow results.
201
+ *
202
+ * @param source - Data source: database, feed, 'all-accessible-spaces', or another query.
203
+ * @returns Query scoped to the given source.
204
+ */
205
+ export declare const from: (source: Database.Database | Database.Database[] | Feed.Feed | Feed.Feed[] | Any | QueryAST.Scope | 'all-accessible-spaces', options?: {
206
+ includeFeeds?: boolean;
207
+ }) => Any;
208
+ /**
209
+ * Returns a human-readable string representation of a Query AST.
210
+ */
211
+ export declare const pretty: (query: Any) => string;
124
212
  export {};
125
213
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,72 @@
1
+ import type * as Schema from 'effect/Schema';
1
2
  import * as SchemaAST from 'effect/SchemaAST';
2
- import { Ref as Ref$, type RefResolver } from './internal';
3
+ import type * as Entity from './Entity';
4
+ import * as refInternal from './internal/Ref';
3
5
  import type * as Obj from './Obj';
4
- export type Ref<T> = Ref$<T>;
5
- export type Unknown = Ref$<Obj.Unknown>;
6
+ /**
7
+ * Instance type for a reference.
8
+ *
9
+ * Reference can point to any object or relation.
10
+ * References are lazy loaded.
11
+ *
12
+ * `ref.dxn` is the DXN of the referenced object.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const taskRef: Ref<Task> = Ref.make(task);
17
+ *
18
+ * await taskRef.load(); // Returns Promise<Task>
19
+ * yield* Database.load(taskRef); // Effectful version.
20
+ *
21
+ * database.makeRef(dxn); // Create a ref from a DXN.
22
+ * ```
23
+ */
24
+ export type Ref<T> = refInternal.Ref<T>;
25
+ export type Unknown = refInternal.Ref<Obj.Unknown>;
26
+ /**
27
+ * Factory function to create a Ref schema for the given target schema.
28
+ * Use this in schema definitions to declare reference fields.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const Task = Schema.Struct({
33
+ * assignee: Ref.Ref(Person), // Creates a Ref schema
34
+ * }).pipe(Type.object({ typename: 'Task', version: '0.1.0' }));
35
+ * ```
36
+ */
37
+ export declare const Ref: <S extends Schema.Schema.Any>(schema: S) => RefSchema<Schema.Schema.Type<S>>;
6
38
  export declare const Array: Readonly<{
7
- targets: <T extends import("./internal").AnyEntity>(refs: readonly Ref$<T>[]) => T[];
8
- loadAll: <T extends import("./internal").AnyEntity>(refs: readonly Ref$<T>[]) => Promise<T[]>;
9
- removeById: (refs: Ref$<import("./internal").AnyEntity>[], id: import("@dxos/keys").ObjectId) => void;
39
+ targets: <T extends import("./internal").AnyEntity>(refs: readonly refInternal.Ref<T>[]) => T[];
40
+ loadAll: <T extends import("./internal").AnyEntity>(refs: readonly refInternal.Ref<T>[]) => Promise<T[]>;
41
+ removeById: (refs: refInternal.Ref<import("./internal").AnyEntity>[], id: import("@dxos/keys").ObjectId) => void;
10
42
  }>;
43
+ /**
44
+ * TypeScript type for a Ref schema.
45
+ * This is the type of the SCHEMA itself, not the runtime ref instance.
46
+ * For the instance type, use `Ref.Ref<T>` from the Ref module.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * // Schema type annotation (rarely needed, usually inferred):
51
+ * const refSchema: Ref.RefSchema<typeof Task> = Ref.Ref(Task);
52
+ *
53
+ * // Instance type annotation (use Ref.Ref instead):
54
+ * const refInstance: Ref.Ref<Task> = Ref.make(task);
55
+ * ```
56
+ */
57
+ export interface RefSchema<T extends Entity.Unknown> extends refInternal.RefSchema<T> {
58
+ }
11
59
  /**
12
60
  * Extract reference target.
13
61
  */
14
- export type Target<R extends Unknown> = R extends Ref$<infer T> ? T : never;
62
+ export type Target<R extends Unknown> = R extends refInternal.Ref<infer T> ? T : never;
15
63
  /**
16
64
  * Reference resolver.
17
65
  */
18
- export type Resolver = RefResolver;
66
+ export type Resolver = refInternal.RefResolver;
19
67
  export declare const isRef: (value: unknown) => value is Unknown;
20
- export declare const make: <T extends import("./internal").AnyEntity>(object: T) => Ref$<T>;
21
- export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => Ref$<any>;
68
+ export declare const make: <T extends import("./internal").AnyEntity>(object: T) => refInternal.Ref<T>;
69
+ export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => refInternal.Ref<any>;
70
+ export declare const hasObjectId: (id: import("@dxos/keys").ObjectId) => (ref: refInternal.Ref<any>) => boolean;
22
71
  export declare const isRefType: (ast: SchemaAST.AST) => boolean;
23
72
  //# sourceMappingURL=Ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,GAAG,IAAI,IAAI,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExC,eAAO,MAAM,KAAK;;;;EAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,OAAoB,CAAC;AAEtE,eAAO,MAAM,IAAI,kEAAY,CAAC;AAG9B,eAAO,MAAM,OAAO,8CAAe,CAAC;AAGpC,eAAO,MAAM,SAAS,GAAI,KAAK,SAAS,CAAC,GAAG,KAAG,OAS9C,CAAC"}
1
+ {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAmB,CAAC;AAEjH,eAAO,MAAM,KAAK;;;;EAAuB,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,CAAE,SAAQ,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG;AAExF;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC;AAE/C,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,OAA+B,CAAC;AAEjF,eAAO,MAAM,IAAI,6EAAuB,CAAC;AAGzC,eAAO,MAAM,OAAO,yDAA0B,CAAC;AAE/C,eAAO,MAAM,WAAW,+EAA8B,CAAC;AAGvD,eAAO,MAAM,SAAS,QAAS,SAAS,CAAC,GAAG,KAAG,OAS9C,CAAC"}
@@ -1,16 +1,20 @@
1
- import type * as Schema from 'effect/Schema';
1
+ import * as Schema from 'effect/Schema';
2
2
  import type { ForeignKey } from '@dxos/echo-protocol';
3
3
  import { DXN, type ObjectId } from '@dxos/keys';
4
4
  import type * as Database from './Database';
5
5
  import * as Entity from './Entity';
6
- import { type ObjectJSON as APIJSON, type AnyEntity, type Comparator as ApiComparator, type Meta as ApiMeta, type ReadonlyMeta as ApiReadonlyMeta, type EntityVersion as ApiVersion, type ChangeCallback, EntityKind, type KindId, MetaId, type Mutable, type ObjectMeta, SnapshotKindId, VersionTypeId, isVersion } from './internal';
7
- import type * as Obj from './Obj';
6
+ import * as internal from './internal';
7
+ import * as Obj from './Obj';
8
8
  import type * as Type from './Type';
9
+ export type Endpoints<Source, Target> = {
10
+ [Source]: Source;
11
+ [Target]: Target;
12
+ };
9
13
  /**
10
14
  * Base type for all ECHO relations.
11
15
  * @private
12
16
  */
13
- interface BaseRelation<Source, Target> extends AnyEntity, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
17
+ interface BaseRelation<Source, Target> extends internal.AnyEntity, Endpoints<Source, Target>, Entity.OfKind<internal.EntityKind.Relation> {
14
18
  }
15
19
  /**
16
20
  * Relation with no known properties beyond id, kind, source, and target.
@@ -21,42 +25,75 @@ interface BaseRelation<Source, Target> extends AnyEntity, Type.Relation.Endpoint
21
25
  */
22
26
  export interface Unknown extends BaseRelation<Obj.Unknown, Obj.Unknown> {
23
27
  }
28
+ /**
29
+ * Runtime Effect schema for any ECHO relation.
30
+ * Use for validation, parsing, or as a reference target for collections.
31
+ * A relation has `id`, source, and target fields plus any additional properties.
32
+ *
33
+ * NOTE: `Schema.is(Type.Relation)` does STRUCTURAL validation only (checks for `id` field).
34
+ * Use `Relation.isRelation()` for proper ECHO instance type guards that check the KindId brand.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * // Structural type guard (accepts any object with id field)
39
+ * if (Schema.is(Type.Relation)(unknownValue)) { ... }
40
+ *
41
+ * // ECHO instance type guard (checks KindId brand)
42
+ * if (Relation.isRelation(unknownValue)) { ... }
43
+ * ```
44
+ */
45
+ export declare const Unknown: Type.Relation<Unknown, Obj.Any, Obj.Any>;
24
46
  /**
25
47
  * Relation type with specific source and target types.
26
48
  */
27
- export type Relation<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> & Props;
49
+ export type OfShape<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> & Props;
28
50
  /**
29
51
  * Base type for snapshot relations (has SnapshotKindId instead of KindId).
30
52
  */
31
- interface BaseRelationSnapshot<Source, Target> extends AnyEntity, Type.Relation.Endpoints<Source, Target> {
32
- readonly [SnapshotKindId]: EntityKind.Relation;
53
+ interface BaseRelationSnapshot<Source, Target> extends internal.AnyEntity, Endpoints<Source, Target> {
54
+ readonly [Entity.SnapshotKindId]: internal.EntityKind.Relation;
33
55
  readonly id: ObjectId;
34
56
  }
57
+ /**
58
+ * JSON-encoded properties for relations.
59
+ */
60
+ export interface BaseRelationJson {
61
+ id: string;
62
+ [internal.ATTR_RELATION_SOURCE]: string;
63
+ [internal.ATTR_RELATION_TARGET]: string;
64
+ }
35
65
  /**
36
66
  * Immutable snapshot of an ECHO relation.
37
67
  * Branded with SnapshotKindId (not KindId).
38
68
  * Property values are frozen at the time the snapshot was created.
39
69
  * Returned by getSnapshot() and hooks.
40
70
  */
41
- export type Snapshot<T extends Unknown = Unknown> = Omit<T, KindId> & BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;
71
+ export type Snapshot<T extends Unknown = Unknown> = Omit<T, Entity.KindId> & BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;
42
72
  export declare const Source: unique symbol;
43
73
  export type Source = typeof Source;
44
74
  export declare const Target: unique symbol;
45
75
  export type Target = typeof Target;
76
+ /**
77
+ * Get relation source type.
78
+ */
79
+ export type SourceOf<A> = A extends Endpoints<infer S, infer _T> ? S : never;
80
+ /**
81
+ * Get relation target type.
82
+ */
83
+ export type TargetOf<A> = A extends Endpoints<infer _S, infer T> ? T : never;
46
84
  /**
47
85
  * Internal props type for relation instance creation.
48
86
  */
49
- type RelationMakeProps<T extends Unknown> = {
87
+ type MakePropsInternal<T extends Unknown> = {
50
88
  id?: ObjectId;
51
- [MetaId]?: ObjectMeta;
52
89
  [Source]: T[Source];
53
90
  [Target]: T[Target];
54
- } & Type.Properties<T>;
91
+ } & Entity.Properties<T>;
55
92
  /**
56
93
  * Props type for relation creation with a given schema.
57
94
  * Takes a schema type (created with Type.Relation) and extracts the props type.
58
95
  */
59
- export type MakeProps<S extends Type.Relation.Any> = RelationMakeProps<Schema.Schema.Type<S>>;
96
+ export type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<Schema.Schema.Type<S>>;
60
97
  /**
61
98
  * Creates new relation.
62
99
  * @param schema - Relation schema.
@@ -64,12 +101,13 @@ export type MakeProps<S extends Type.Relation.Any> = RelationMakeProps<Schema.Sc
64
101
  * @param meta - Relation metadata. (deprecated; use [Obj.Meta] instead)
65
102
  * @returns
66
103
  */
67
- export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<RelationMakeProps<Schema.Schema.Type<S>>>, meta?: ObjectMeta) => Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>;
104
+ export declare const make: <S extends Type.AnyRelation>(schema: S, props: NoInfer<MakeProps<S>>) => Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>;
68
105
  /**
69
106
  * Type guard for relations.
70
107
  * Returns true for both reactive relations and relation snapshots.
71
108
  */
72
109
  export declare const isRelation: (value: unknown) => value is Unknown;
110
+ export declare const isSnapshot: (value: unknown) => value is Snapshot;
73
111
  /**
74
112
  * @returns Relation source DXN.
75
113
  * Accepts both reactive relations and snapshots.
@@ -87,26 +125,26 @@ export declare const getTargetDXN: (value: Unknown | Snapshot) => DXN;
87
125
  * Accepts both reactive relations and snapshots.
88
126
  * @throws If the object is not a relation.
89
127
  */
90
- export declare const getSource: <T extends Unknown | Snapshot>(relation: T) => Type.Relation.Source<T>;
128
+ export declare const getSource: <T extends Unknown | Snapshot>(relation: T) => SourceOf<T>;
91
129
  /**
92
130
  * @returns Relation target.
93
131
  * Accepts both reactive relations and snapshots.
94
132
  * @throws If the object is not a relation.
95
133
  */
96
- export declare const getTarget: <T extends Unknown | Snapshot>(relation: T) => Type.Relation.Target<T>;
134
+ export declare const getTarget: <T extends Unknown | Snapshot>(relation: T) => TargetOf<T>;
97
135
  /**
98
136
  * Makes all properties mutable recursively.
99
- * Used to provide a mutable view of a relation within `Relation.change`.
137
+ * Used to provide a mutable view of a relation within `Relation.update`.
100
138
  */
101
- export type { Mutable };
139
+ export type Mutable<T> = internal.Mutable<T>;
102
140
  /**
103
141
  * Perform mutations on an echo relation within a controlled context.
104
142
  *
105
143
  * All mutations within the callback are batched and trigger a single notification
106
- * when the callback completes. Direct mutations outside of `Relation.change` will throw
144
+ * when the callback completes. Direct mutations outside of `Relation.update` will throw
107
145
  * an error for echo relations.
108
146
  *
109
- * @param relation - The echo relation to mutate. Use `Obj.change` for objects.
147
+ * @param relation - The echo relation to mutate. Use `Obj.update` for objects.
110
148
  * @param callback - The callback that performs mutations on the relation.
111
149
  *
112
150
  * @example
@@ -117,15 +155,15 @@ export type { Mutable };
117
155
  * role: 'Engineer',
118
156
  * });
119
157
  *
120
- * // Mutate within Relation.change
121
- * Relation.change(worksFor, (r) => {
122
- * r.role = 'Senior Engineer';
158
+ * // Mutate within Relation.update
159
+ * Relation.update(worksFor, (obj) => {
160
+ * obj.role = 'Senior Engineer';
123
161
  * });
124
162
  * ```
125
163
  *
126
- * Note: Only accepts relations. Use `Obj.change` for objects.
164
+ * Note: Only accepts relations. Use `Obj.update` for objects.
127
165
  */
128
- export declare const change: <T extends Unknown>(relation: T, callback: ChangeCallback<T>) => void;
166
+ export declare const update: <T extends Unknown>(relation: T, callback: internal.ChangeCallback<T>) => void;
129
167
  /**
130
168
  * Returns an immutable snapshot of a relation.
131
169
  * The snapshot is branded with SnapshotKindId instead of KindId,
@@ -146,7 +184,7 @@ export declare const subscribe: (rel: Unknown, callback: () => void) => (() => v
146
184
  export declare const getValue: (rel: Unknown | Snapshot, path: readonly (string | number)[]) => any;
147
185
  /**
148
186
  * Set a deeply nested property on a relation.
149
- * Must be called within a `Relation.change` callback.
187
+ * Must be called within a `Relation.update` callback.
150
188
  *
151
189
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
152
190
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -160,12 +198,12 @@ export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
160
198
  /**
161
199
  * @returns The DXN of the relation's type.
162
200
  */
163
- export declare const getTypeDXN: (obj: import("./internal").AnyProperties) => DXN | undefined;
201
+ export declare const getTypeDXN: (obj: internal.AnyProperties) => DXN | undefined;
164
202
  /**
165
203
  * Get the schema of the relation.
166
204
  * Returns the branded ECHO schema used to create the relation.
167
205
  */
168
- export declare const getSchema: (rel: unknown | undefined) => Type.Entity.Any | undefined;
206
+ export declare const getSchema: (rel: unknown | undefined) => Type.AnyEntity | undefined;
169
207
  /**
170
208
  * @returns The typename of the relation's type.
171
209
  * Accepts both reactive relations and snapshots.
@@ -176,17 +214,23 @@ export declare const getTypename: (entity: Unknown | Snapshot) => string | undef
176
214
  * Accepts both reactive relations and snapshots.
177
215
  */
178
216
  export declare const getDatabase: (entity: Unknown | Snapshot) => Database.Database | undefined;
217
+ /**
218
+ * Property that accesses metadata for an entity.
219
+ *
220
+ * Alias for `Entity.Meta`.
221
+ */
222
+ export declare const Meta: symbol;
179
223
  /**
180
224
  * Deeply read-only version of ObjectMeta.
181
225
  */
182
- export type ReadonlyMeta = ApiReadonlyMeta;
226
+ export type ReadonlyMeta = internal.ReadonlyMeta;
183
227
  /**
184
- * Mutable meta type returned by `Relation.getMeta` inside a `Relation.change` callback.
228
+ * Mutable meta type returned by `Relation.getMeta` inside a `Relation.update` callback.
185
229
  */
186
- export type Meta = ApiMeta;
230
+ export type Meta = internal.Meta;
187
231
  /**
188
232
  * Get the metadata for a relation.
189
- * Returns mutable meta when passed a mutable relation (inside `Relation.change` callback).
233
+ * Returns mutable meta when passed a mutable relation (inside `Relation.update` callback).
190
234
  * Returns read-only meta when passed a regular relation or snapshot.
191
235
  */
192
236
  export declare function getMeta(entity: Mutable<Unknown>): Meta;
@@ -198,7 +242,7 @@ export declare function getMeta(entity: Unknown | Snapshot): ReadonlyMeta;
198
242
  export declare const getKeys: (entity: Unknown | Snapshot, source: string) => ForeignKey[];
199
243
  /**
200
244
  * Delete all keys from the relation for the specified source.
201
- * Must be called within a `Relation.change` callback.
245
+ * Must be called within a `Relation.update` callback.
202
246
  *
203
247
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
204
248
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -206,7 +250,7 @@ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => Fo
206
250
  export declare const deleteKeys: (entity: Mutable<Unknown>, source: string) => void;
207
251
  /**
208
252
  * Add a tag to the relation.
209
- * Must be called within a `Relation.change` callback.
253
+ * Must be called within a `Relation.update` callback.
210
254
  *
211
255
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
212
256
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -214,7 +258,7 @@ export declare const deleteKeys: (entity: Mutable<Unknown>, source: string) => v
214
258
  export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
215
259
  /**
216
260
  * Remove a tag from the relation.
217
- * Must be called within a `Relation.change` callback.
261
+ * Must be called within a `Relation.update` callback.
218
262
  *
219
263
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
220
264
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -232,7 +276,7 @@ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
232
276
  export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
233
277
  /**
234
278
  * Set the label of the relation.
235
- * Must be called within a `Relation.change` callback.
279
+ * Must be called within a `Relation.update` callback.
236
280
  *
237
281
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
238
282
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -245,7 +289,7 @@ export declare const setLabel: (entity: Mutable<Unknown>, label: string) => void
245
289
  export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
246
290
  /**
247
291
  * Set the description of the relation.
248
- * Must be called within a `Relation.change` callback.
292
+ * Must be called within a `Relation.update` callback.
249
293
  *
250
294
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
251
295
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
@@ -254,7 +298,7 @@ export declare const setDescription: (entity: Mutable<Unknown>, description: str
254
298
  /**
255
299
  * JSON representation of a relation.
256
300
  */
257
- export type JSON = APIJSON;
301
+ export type JSON = internal.ObjectJSON;
258
302
  /**
259
303
  * Converts relation to its JSON representation.
260
304
  * Accepts both reactive relations and snapshots.
@@ -264,18 +308,20 @@ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
264
308
  * Comparator function type for sorting relations.
265
309
  * Accepts both reactive relations and snapshots.
266
310
  */
267
- export type Comparator = ApiComparator<Unknown | Snapshot>;
311
+ export type Comparator = internal.Comparator<Unknown | Snapshot>;
268
312
  export declare const sortByLabel: Comparator;
269
313
  export declare const sortByTypename: Comparator;
270
314
  export declare const sort: (...comparators: Comparator[]) => Comparator;
271
- export { VersionTypeId, isVersion };
315
+ export declare const VersionTypeId: "~@dxos/echo/VersionTypeId";
316
+ export declare const isVersion: (entity: unknown) => entity is internal.EntityVersion;
272
317
  /**
273
318
  * Represent relation version.
274
319
  */
275
- export type Version = ApiVersion;
320
+ export type Version = internal.EntityVersion;
276
321
  /**
277
322
  * Returns the version of the relation.
278
323
  * Accepts both reactive relations and snapshots.
279
324
  */
280
325
  export declare const version: (entity: Unknown | Snapshot) => Version;
326
+ export {};
281
327
  //# sourceMappingURL=Relation.d.ts.map