@dxos/echo 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549

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 (332) hide show
  1. package/dist/lib/browser/{chunk-BIDAASFK.mjs → chunk-7GH6RXJ3.mjs} +2246 -2290
  2. package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-E4UTVJNF.mjs +1111 -0
  4. package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +18 -8
  6. package/dist/lib/browser/internal/index.mjs +45 -45
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/testing/index.mjs +252 -191
  9. package/dist/lib/browser/testing/index.mjs.map +4 -4
  10. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +1111 -0
  11. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +7 -0
  12. package/dist/lib/node-esm/{chunk-3SVRRCUU.mjs → chunk-M4B6BMD2.mjs} +2246 -2290
  13. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +7 -0
  14. package/dist/lib/node-esm/index.mjs +18 -8
  15. package/dist/lib/node-esm/internal/index.mjs +45 -45
  16. package/dist/lib/node-esm/meta.json +1 -1
  17. package/dist/lib/node-esm/testing/index.mjs +252 -191
  18. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  19. package/dist/types/src/Annotation.d.ts +2 -0
  20. package/dist/types/src/Annotation.d.ts.map +1 -0
  21. package/dist/types/src/Database.d.ts +137 -0
  22. package/dist/types/src/Database.d.ts.map +1 -0
  23. package/dist/types/src/Entity.d.ts +36 -0
  24. package/dist/types/src/Entity.d.ts.map +1 -0
  25. package/dist/types/src/Format.d.ts +4 -0
  26. package/dist/types/src/Format.d.ts.map +1 -0
  27. package/dist/types/src/JsonSchema.d.ts +9 -0
  28. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  29. package/dist/types/src/Key.d.ts +1 -0
  30. package/dist/types/src/Key.d.ts.map +1 -1
  31. package/dist/types/src/Obj.d.ts +79 -70
  32. package/dist/types/src/Obj.d.ts.map +1 -1
  33. package/dist/types/src/Ref.d.ts +10 -10
  34. package/dist/types/src/Ref.d.ts.map +1 -1
  35. package/dist/types/src/Relation.d.ts +14 -11
  36. package/dist/types/src/Relation.d.ts.map +1 -1
  37. package/dist/types/src/Tag.d.ts +1 -1
  38. package/dist/types/src/Tag.d.ts.map +1 -1
  39. package/dist/types/src/Type.d.ts +39 -49
  40. package/dist/types/src/Type.d.ts.map +1 -1
  41. package/dist/types/src/index.d.ts +6 -3
  42. package/dist/types/src/index.d.ts.map +1 -1
  43. package/dist/types/src/internal/annotations/annotations.d.ts +174 -0
  44. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  45. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  46. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  47. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  48. package/dist/types/src/internal/annotations/util.d.ts +26 -0
  49. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  50. package/dist/types/src/internal/entities/entity.d.ts +10 -0
  51. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  52. package/dist/types/src/internal/{object → entities}/expando.d.ts +3 -1
  53. package/dist/types/src/internal/entities/expando.d.ts.map +1 -0
  54. package/dist/types/src/internal/entities/index.d.ts +6 -0
  55. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  56. package/dist/types/src/internal/entities/model.d.ts +70 -0
  57. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  58. package/dist/types/src/internal/entities/object.d.ts +11 -0
  59. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  60. package/dist/types/src/internal/entities/relation.d.ts +55 -0
  61. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  62. package/dist/types/src/internal/entities/util.d.ts +2 -0
  63. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  64. package/dist/types/src/internal/formats/format.d.ts +2 -0
  65. package/dist/types/src/internal/formats/format.d.ts.map +1 -1
  66. package/dist/types/src/internal/formats/types.d.ts +7 -7
  67. package/dist/types/src/internal/formats/types.d.ts.map +1 -1
  68. package/dist/types/src/internal/index.d.ts +6 -10
  69. package/dist/types/src/internal/index.d.ts.map +1 -1
  70. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  71. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  72. package/dist/types/src/internal/json-schema/index.d.ts +2 -0
  73. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -1
  74. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  75. package/dist/types/src/internal/{json → json-schema}/json-schema.d.ts +2 -1
  76. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  77. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  78. package/dist/types/src/internal/object/common.d.ts.map +1 -1
  79. package/dist/types/src/internal/object/{create.d.ts → create-object.d.ts} +8 -9
  80. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  81. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  82. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  83. package/dist/types/src/internal/object/deleted.d.ts +2 -2
  84. package/dist/types/src/internal/object/deleted.d.ts.map +1 -1
  85. package/dist/types/src/internal/object/ids.d.ts.map +1 -1
  86. package/dist/types/src/internal/object/index.d.ts +3 -11
  87. package/dist/types/src/internal/object/index.d.ts.map +1 -1
  88. package/dist/types/src/internal/object/json-serializer.d.ts +1 -2
  89. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
  90. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
  91. package/dist/types/src/internal/object/typed-object.d.ts +1 -1
  92. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
  93. package/dist/types/src/internal/proxy/index.d.ts +3 -0
  94. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  95. package/dist/types/src/internal/proxy/make-object.d.ts +16 -0
  96. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  97. package/dist/types/src/internal/proxy/typed-handler.d.ts +1 -1
  98. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
  99. package/dist/types/src/internal/ref/ref.d.ts +15 -12
  100. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  101. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  102. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  103. package/dist/types/src/internal/schema/echo-schema.d.ts +9 -9
  104. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
  105. package/dist/types/src/internal/schema/index.d.ts +3 -4
  106. package/dist/types/src/internal/schema/index.d.ts.map +1 -1
  107. package/dist/types/src/internal/schema/persistent-schema.d.ts +18 -0
  108. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  109. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +1 -1
  110. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -1
  111. package/dist/types/src/internal/types/base.d.ts +37 -0
  112. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  113. package/dist/types/src/internal/{ast/entity-kind.d.ts → types/entity.d.ts} +3 -1
  114. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  115. package/dist/types/src/internal/types/index.d.ts +5 -2
  116. package/dist/types/src/internal/types/index.d.ts.map +1 -1
  117. package/dist/types/src/internal/{object → types}/meta.d.ts +20 -11
  118. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  119. package/dist/types/src/internal/types/typename.d.ts +13 -0
  120. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  121. package/dist/types/src/internal/{object → types}/version.d.ts +3 -2
  122. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  123. package/dist/types/src/query/filter.d.ts +167 -0
  124. package/dist/types/src/query/filter.d.ts.map +1 -0
  125. package/dist/types/src/query/index.d.ts +3 -0
  126. package/dist/types/src/query/index.d.ts.map +1 -1
  127. package/dist/types/src/query/order.d.ts +12 -0
  128. package/dist/types/src/query/order.d.ts.map +1 -0
  129. package/dist/types/src/query/query.d.ts +9 -145
  130. package/dist/types/src/query/query.d.ts.map +1 -1
  131. package/dist/types/src/query/testing.d.ts +51 -0
  132. package/dist/types/src/query/testing.d.ts.map +1 -0
  133. package/dist/types/src/{internal/query/query.d.ts → query/types.d.ts} +1 -1
  134. package/dist/types/src/query/types.d.ts.map +1 -0
  135. package/dist/types/src/query/util.d.ts +8 -0
  136. package/dist/types/src/query/util.d.ts.map +1 -0
  137. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  138. package/dist/types/src/testing/index.d.ts +3 -3
  139. package/dist/types/src/testing/index.d.ts.map +1 -1
  140. package/dist/types/src/testing/test-data.d.ts +18 -0
  141. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  142. package/dist/types/src/testing/{types.d.ts → test-schema.d.ts} +166 -57
  143. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  144. package/dist/types/src/{internal/testing/utils.d.ts → testing/util.d.ts} +11 -5
  145. package/dist/types/src/testing/util.d.ts.map +1 -0
  146. package/dist/types/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +46 -38
  148. package/src/Annotation.ts +17 -0
  149. package/src/Database.ts +189 -0
  150. package/src/Entity.ts +51 -0
  151. package/src/Format.ts +11 -0
  152. package/src/JsonSchema.ts +16 -0
  153. package/src/Key.ts +3 -0
  154. package/src/Obj.ts +248 -181
  155. package/src/Ref.ts +9 -9
  156. package/src/Relation.ts +58 -44
  157. package/src/Tag.ts +2 -1
  158. package/src/Type.ts +96 -83
  159. package/src/index.ts +9 -4
  160. package/src/internal/README.md +83 -0
  161. package/src/internal/{ast → annotations}/annotations.test.ts +13 -15
  162. package/src/internal/annotations/annotations.ts +463 -0
  163. package/src/internal/annotations/index.ts +6 -0
  164. package/src/internal/annotations/util.ts +70 -0
  165. package/src/internal/entities/entity.ts +109 -0
  166. package/src/internal/{object → entities}/expando.ts +7 -5
  167. package/src/internal/entities/index.ts +9 -0
  168. package/src/internal/{object → entities}/model.ts +49 -90
  169. package/src/internal/entities/object.ts +45 -0
  170. package/src/internal/entities/relation.ts +155 -0
  171. package/src/internal/entities/util.ts +33 -0
  172. package/src/internal/formats/date.test.ts +1 -1
  173. package/src/internal/formats/date.ts +5 -5
  174. package/src/internal/formats/format.test.ts +5 -5
  175. package/src/internal/formats/format.ts +3 -0
  176. package/src/internal/formats/number.ts +5 -5
  177. package/src/internal/formats/object.ts +2 -2
  178. package/src/internal/formats/string.ts +9 -9
  179. package/src/internal/formats/types.ts +44 -39
  180. package/src/internal/index.ts +29 -13
  181. package/src/internal/{json → json-schema}/annotations.ts +1 -1
  182. package/src/internal/json-schema/index.ts +2 -0
  183. package/src/internal/json-schema/json-schema-type.ts +4 -3
  184. package/src/internal/{json → json-schema}/json-schema.test.ts +48 -38
  185. package/src/internal/{json → json-schema}/json-schema.ts +16 -7
  186. package/src/internal/object/common.ts +3 -4
  187. package/src/internal/object/{create.test.ts → create-object.test.ts} +30 -32
  188. package/src/internal/object/{create.ts → create-object.ts} +33 -34
  189. package/src/internal/object/deleted.ts +6 -6
  190. package/src/internal/object/ids.ts +1 -1
  191. package/src/internal/object/index.ts +3 -11
  192. package/src/internal/object/inspect.ts +3 -5
  193. package/src/internal/object/json-serializer.test.ts +33 -38
  194. package/src/internal/object/json-serializer.ts +43 -38
  195. package/src/internal/object/schema-validator.ts +3 -2
  196. package/src/internal/object/typed-object.test.ts +1 -1
  197. package/src/internal/object/typed-object.ts +11 -5
  198. package/src/internal/proxy/handler.test.ts +30 -20
  199. package/src/internal/proxy/index.ts +6 -0
  200. package/src/internal/proxy/{reactive-object.ts → make-object.ts} +19 -14
  201. package/src/internal/proxy/schema.test.ts +5 -4
  202. package/src/internal/proxy/typed-handler.test.ts +28 -28
  203. package/src/internal/proxy/typed-handler.ts +8 -3
  204. package/src/internal/proxy/typed-object.test.ts +16 -11
  205. package/src/internal/ref/ref.test.ts +8 -7
  206. package/src/internal/ref/ref.ts +24 -20
  207. package/src/internal/{projection → schema}/compose.test.ts +5 -6
  208. package/src/internal/{projection → schema}/compose.ts +2 -1
  209. package/src/internal/schema/echo-schema.ts +30 -28
  210. package/src/internal/schema/index.ts +3 -4
  211. package/src/internal/schema/manipulation.ts +1 -1
  212. package/src/internal/schema/persistent-schema.ts +28 -0
  213. package/src/internal/schema/runtime-schema-registry.ts +4 -4
  214. package/src/internal/types/base.ts +58 -0
  215. package/src/internal/{ast/entity-kind.ts → types/entity.ts} +8 -0
  216. package/src/internal/types/index.ts +5 -2
  217. package/src/internal/{object → types}/meta.ts +32 -17
  218. package/src/internal/types/typename.ts +45 -0
  219. package/src/internal/types/version.ts +20 -0
  220. package/src/query/filter.ts +455 -0
  221. package/src/query/index.ts +4 -1
  222. package/src/query/order.ts +34 -0
  223. package/src/query/query.test.ts +48 -115
  224. package/src/query/query.ts +16 -502
  225. package/src/query/testing.ts +64 -0
  226. package/src/query/util.ts +25 -0
  227. package/src/testing/api.test.ts +100 -0
  228. package/src/testing/index.ts +3 -3
  229. package/src/testing/test-data.ts +130 -0
  230. package/src/testing/test-schema.ts +213 -0
  231. package/src/{internal/testing/utils.ts → testing/util.ts} +38 -14
  232. package/dist/lib/browser/chunk-BIDAASFK.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-ZDLCWGEW.mjs +0 -410
  234. package/dist/lib/browser/chunk-ZDLCWGEW.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-ZFRJKT4A.mjs +0 -585
  236. package/dist/lib/browser/chunk-ZFRJKT4A.mjs.map +0 -7
  237. package/dist/lib/browser/query/index.mjs +0 -13
  238. package/dist/lib/browser/query/index.mjs.map +0 -7
  239. package/dist/lib/node-esm/chunk-3SVRRCUU.mjs.map +0 -7
  240. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs +0 -585
  241. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs +0 -410
  243. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs.map +0 -7
  244. package/dist/lib/node-esm/query/index.mjs +0 -13
  245. package/dist/lib/node-esm/query/index.mjs.map +0 -7
  246. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  247. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  248. package/dist/types/src/internal/ast/annotations.d.ts +0 -131
  249. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  250. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  251. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  252. package/dist/types/src/internal/ast/index.d.ts +0 -5
  253. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  254. package/dist/types/src/internal/ast/types.d.ts +0 -6
  255. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  256. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  257. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  258. package/dist/types/src/internal/json/index.d.ts +0 -2
  259. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  260. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  261. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  262. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  263. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  264. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  265. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  266. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  267. package/dist/types/src/internal/object/entity.d.ts +0 -33
  268. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  269. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  270. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  271. package/dist/types/src/internal/object/model.d.ts +0 -117
  272. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  273. package/dist/types/src/internal/object/relation.d.ts +0 -17
  274. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  275. package/dist/types/src/internal/object/typename.d.ts +0 -15
  276. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  277. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  278. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  279. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  280. package/dist/types/src/internal/projection/index.d.ts +0 -2
  281. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  282. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  283. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  284. package/dist/types/src/internal/query/index.d.ts +0 -2
  285. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  286. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  287. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  288. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  289. package/dist/types/src/internal/testing/index.d.ts +0 -3
  290. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  291. package/dist/types/src/internal/testing/types.d.ts +0 -381
  292. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  293. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  294. package/dist/types/src/internal/types/types.d.ts +0 -79
  295. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  296. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  297. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  298. package/dist/types/src/internal/types/util.d.ts +0 -5
  299. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  300. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  301. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  302. package/dist/types/src/testing/types.d.ts.map +0 -1
  303. package/src/internal/ast/annotation-helper.ts +0 -22
  304. package/src/internal/ast/annotations.ts +0 -226
  305. package/src/internal/ast/index.ts +0 -8
  306. package/src/internal/ast/types.ts +0 -17
  307. package/src/internal/json/index.ts +0 -5
  308. package/src/internal/object/accessors.ts +0 -153
  309. package/src/internal/object/entity.ts +0 -248
  310. package/src/internal/object/relation.ts +0 -24
  311. package/src/internal/object/typename.ts +0 -61
  312. package/src/internal/object/version.ts +0 -22
  313. package/src/internal/projection/index.ts +0 -5
  314. package/src/internal/query/index.ts +0 -5
  315. package/src/internal/schema/stored-schema.ts +0 -26
  316. package/src/internal/testing/index.ts +0 -6
  317. package/src/internal/testing/types.ts +0 -144
  318. package/src/internal/types/types.test.ts +0 -48
  319. package/src/internal/types/types.ts +0 -176
  320. package/src/internal/types/util.ts +0 -9
  321. package/src/test/api.test.ts +0 -180
  322. package/src/testing/echo-schema.ts +0 -39
  323. package/src/testing/types.ts +0 -108
  324. /package/dist/types/src/internal/{ast → annotations}/annotations.test.d.ts +0 -0
  325. /package/dist/types/src/internal/{json → json-schema}/annotations.d.ts +0 -0
  326. /package/dist/types/src/internal/{json → json-schema}/effect-schema.test.d.ts +0 -0
  327. /package/dist/types/src/internal/{json → json-schema}/json-schema.test.d.ts +0 -0
  328. /package/dist/types/src/internal/{projection → schema}/compose.d.ts +0 -0
  329. /package/dist/types/src/internal/{projection → schema}/compose.test.d.ts +0 -0
  330. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  331. /package/src/internal/{json → json-schema}/effect-schema.test.ts +0 -0
  332. /package/src/{internal/query/query.ts → query/types.ts} +0 -0
@@ -0,0 +1,137 @@
1
+ import { type CleanupFn } from '@dxos/async';
2
+ import { type QueryAST } from '@dxos/echo-protocol';
3
+ import { type DXN, type PublicKey, type SpaceId } from '@dxos/keys';
4
+ import { type QueryOptions as QueryOptionsProto } from '@dxos/protocols/proto/dxos/echo/filter';
5
+ import type * as Entity from './Entity';
6
+ import type { Filter, Query } from './query';
7
+ import type * as Ref from './Ref';
8
+ /**
9
+ * Individual query result entry.
10
+ */
11
+ export type QueryResultEntry<T extends Entity.Unknown = Entity.Unknown> = {
12
+ id: string;
13
+ spaceId: SpaceId;
14
+ /**
15
+ * May not be present for remote results.
16
+ */
17
+ object?: T;
18
+ match?: {
19
+ /**
20
+ * Higher means better match.
21
+ */
22
+ rank: number;
23
+ };
24
+ /**
25
+ * Query resolution metadata.
26
+ */
27
+ resolution?: {
28
+ source: 'remote' | 'local' | 'index';
29
+ /**
30
+ * Query resolution time in milliseconds.
31
+ */
32
+ time: number;
33
+ };
34
+ };
35
+ export type OneShotQueryResult<T extends Entity.Unknown = Entity.Unknown> = {
36
+ results: QueryResultEntry<T>[];
37
+ objects: T[];
38
+ };
39
+ export type QuerySubscriptionOptions = {
40
+ /**
41
+ * Fire the callback immediately.
42
+ */
43
+ fire?: boolean;
44
+ };
45
+ export interface QueryResult<T extends Entity.Unknown = Entity.Unknown> {
46
+ readonly query: Query<T>;
47
+ readonly results: QueryResultEntry<T>[];
48
+ readonly objects: T[];
49
+ run(opts?: QueryRunOptions): Promise<OneShotQueryResult<T>>;
50
+ runSync(): QueryResultEntry<T>[];
51
+ first(opts?: QueryRunOptions): Promise<T>;
52
+ subscribe(callback?: (query: QueryResult<T>) => void, opts?: QuerySubscriptionOptions): CleanupFn;
53
+ }
54
+ export type QueryRunOptions = {
55
+ timeout?: number;
56
+ };
57
+ /**
58
+ * @deprecated Use `QueryAST.QueryOptions` instead.
59
+ */
60
+ export type QueryOptions = {
61
+ /**
62
+ * @deprecated Use `spaceIds` instead.
63
+ */
64
+ spaces?: PublicKey[];
65
+ /**
66
+ * Query only in specific spaces.
67
+ */
68
+ spaceIds?: string[];
69
+ /**
70
+ * Return only the first `limit` results.
71
+ */
72
+ limit?: number;
73
+ /**
74
+ * Query only local spaces, or remote on agent.
75
+ * @default `QueryOptions.DataLocation.LOCAL`
76
+ *
77
+ * Options:
78
+ * - proto3_optional = true
79
+ */
80
+ dataLocation?: QueryOptionsProto.DataLocation;
81
+ };
82
+ /**
83
+ * `query` API function declaration.
84
+ */
85
+ export interface QueryFn {
86
+ <Q extends Query.Any>(query: Q, options?: (QueryAST.QueryOptions & QueryOptions) | undefined): QueryResult<Query.Type<Q>>;
87
+ <F extends Filter.Any>(filter: F, options?: (QueryAST.QueryOptions & QueryOptions) | undefined): QueryResult<Filter.Type<F>>;
88
+ }
89
+ /**
90
+ * Common interface for Database and Queue.
91
+ */
92
+ export interface Queryable {
93
+ query: QueryFn;
94
+ }
95
+ export type GetObjectByIdOptions = {
96
+ deleted?: boolean;
97
+ };
98
+ export type ObjectPlacement = 'root-doc' | 'linked-doc';
99
+ export type AddOptions = {
100
+ /**
101
+ * Where to place the object in the Automerge document tree.
102
+ * Root document is always loaded with the space.
103
+ * Linked documents are loaded lazily.
104
+ * Placing large number of objects in the root document may slow down the initial load.
105
+ *
106
+ * @default 'linked-doc'
107
+ */
108
+ placeIn?: ObjectPlacement;
109
+ };
110
+ /**
111
+ * ECHO Database interface.
112
+ */
113
+ export interface Database extends Queryable {
114
+ get spaceId(): SpaceId;
115
+ /**
116
+ * Creates a reference to an existing object in the database.
117
+ *
118
+ * NOTE: The reference may be dangling if the object is not present in the database.
119
+ * NOTE: Difference from `Ref.fromDXN`
120
+ * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
121
+ * `db.makeRef(dxn)` is preferable in cases with access to the database.
122
+ */
123
+ makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref.Ref<T>;
124
+ /**
125
+ * Query objects.
126
+ */
127
+ query: QueryFn;
128
+ /**
129
+ * Adds object to the database.
130
+ */
131
+ add<T extends Entity.Unknown = Entity.Unknown>(obj: T, opts?: AddOptions): T;
132
+ /**
133
+ * Removes object from the database.
134
+ */
135
+ remove(obj: Entity.Unknown): void;
136
+ }
137
+ //# sourceMappingURL=Database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../src/Database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ObjectId } from '@dxos/keys';
2
+ import { EntityKind, KindId } from './internal';
3
+ export { KindId };
4
+ export declare const Kind: typeof EntityKind;
5
+ export type Kind = EntityKind;
6
+ export declare const KindSchema: import("effect/Schema").Enums<typeof EntityKind>;
7
+ /**
8
+ * Assigns a kind to an Object or Relation instance.
9
+ */
10
+ export interface OfKind<K extends Kind> {
11
+ readonly [KindId]: K;
12
+ readonly id: ObjectId;
13
+ }
14
+ /**
15
+ * Obj or Relation with a specific set of properties.
16
+ */
17
+ export type Entity<Props> = OfKind<Kind> & Props;
18
+ /**
19
+ * Unknown Obj or Relation.
20
+ */
21
+ export interface Unknown extends OfKind<Kind> {
22
+ }
23
+ /**
24
+ * Object with arbitrary properties.
25
+ *
26
+ * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.
27
+ * In that case, use `Obj.instanceOf` to check if an object is of a specific type.
28
+ *
29
+ * This type is very permissive and allows accessing any property on the object.
30
+ * We should move to Obj.Any that is not permissive and requires explicit instanceof checks..
31
+ */
32
+ export interface Any extends OfKind<Kind> {
33
+ [key: string]: unknown;
34
+ }
35
+ export declare const getKind: (schema: import("effect/Schema").Schema.All) => EntityKind | undefined;
36
+ //# sourceMappingURL=Entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAoB,MAAM,EAAiB,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,CAAC;AAMlB,eAAO,MAAM,IAAI,mBAAa,CAAC;AAC/B,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC;AAC9B,eAAO,MAAM,UAAU,kDAAmB,CAAC;AAE3C;;GAEG;AAEH,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,IAAI;IACpC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,IAAI,CAAC;CAAG;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAI,SAAQ,MAAM,CAAC,IAAI,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,wEAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type TypeFormat as Format } from './internal';
2
+ export * from './internal/formats';
3
+ export type { Format };
4
+ //# sourceMappingURL=Format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAIvD,cAAc,oBAAoB,CAAC;AAEnC,YAAY,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type * as Schema from 'effect/Schema';
2
+ import { JsonSchemaType } from './internal';
3
+ export { toEffectSchema, toJsonSchema } from './internal';
4
+ /**
5
+ * Serializable JsonSchema type definition.
6
+ */
7
+ export type JsonSchema = JsonSchemaType;
8
+ export declare const JsonSchema: Schema.Schema<JsonSchemaType>;
9
+ //# sourceMappingURL=JsonSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../src/JsonSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AAExC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAkB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { ForeignKey } from '@dxos/echo-protocol';
1
2
  export { SpaceId, ObjectId } from '@dxos/keys';
2
3
  //# sourceMappingURL=Key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -1,44 +1,44 @@
1
1
  import * as Schema from 'effect/Schema';
2
- import { type DXN } from '@dxos/keys';
3
- import * as LiveObject from '@dxos/live-object';
4
- import * as EchoSchema from './internal';
5
- import type * as Ref from './Ref';
6
- import type * as Relation from './Relation';
2
+ import { type ForeignKey } from '@dxos/echo-protocol';
3
+ import { type DXN, ObjectId } from '@dxos/keys';
4
+ import * as Entity from './Entity';
5
+ import { type AnyEchoObject, type AnyProperties, type ObjectJSON, type ObjectMeta, VersionTypeId } from './internal';
6
+ import * as Ref from './Ref';
7
7
  import * as Type from './Type';
8
8
  /**
9
- * NOTE: Don't export: Obj.Any and Obj.Obj form the public API.
9
+ * Base type for all ECHO objects.
10
+ * @private
10
11
  */
11
- interface BaseObj extends EchoSchema.HasId, Type.OfKind<EchoSchema.EntityKind.Object> {
12
+ interface BaseObj extends AnyEchoObject, Entity.OfKind<typeof Entity.Kind.Object> {
12
13
  }
13
14
  /**
14
- * Object type with specific properties.
15
- */
16
- export type Obj<Props> = BaseObj & Props;
17
- /**
18
- * Base type for all ECHO objects.
19
- * This type does not define any properties.
15
+ * Base type for all Obj objects.
20
16
  */
21
17
  export interface Any extends BaseObj {
22
18
  }
19
+ export declare const Any: Type.obj<Schema.Struct<{}>>;
20
+ /**
21
+ * Object type with specific properties.
22
+ */
23
+ export type Obj<Props> = BaseObj & Props;
23
24
  /**
24
25
  * Object with arbitrary properties.
25
26
  *
26
27
  * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.
27
28
  * In that case, use `Obj.instanceOf` to check if an object is of a specific type.
28
29
  */
29
- export interface AnyProps extends BaseObj {
30
- [key: string]: any;
30
+ export interface AnyProps extends BaseObj, AnyProperties {
31
31
  }
32
- export declare const Any: Type.obj<Schema.Struct<{}>>;
33
32
  type Props<T = any> = {
34
- id?: EchoSchema.ObjectId;
33
+ id?: ObjectId;
34
+ [Meta]?: Partial<ObjectMeta>;
35
35
  } & Type.Properties<T>;
36
- export type MakeProps<T extends Type.Obj.Any> = NoInfer<Props<Schema.Schema.Type<T>>> & {
37
- [Meta]?: Partial<EchoSchema.ObjectMeta>;
38
- };
39
- export declare const Meta: unique symbol;
36
+ export type MakeProps<T extends Schema.Schema.AnyNoContext> = {
37
+ id?: ObjectId;
38
+ [Meta]?: Partial<ObjectMeta>;
39
+ } & NoInfer<Props<Schema.Schema.Type<T>>>;
40
40
  /**
41
- * Creates new object.
41
+ * Creates a new object of the given types.
42
42
  * @param schema - Object schema.
43
43
  * @param props - Object properties.
44
44
  * @param meta - Object metadata (deprecated) -- pass with Obj.Meta.
@@ -50,15 +50,35 @@ export declare const Meta: unique symbol;
50
50
  * const obj = Obj.make(Person, { [Obj.Meta]: { keys: [...] }, name: 'John' });
51
51
  * ```
52
52
  */
53
- export declare const make: <S extends Type.Obj.Any>(schema: S, props: MakeProps<S>, meta?: Partial<EchoSchema.ObjectMeta>) => LiveObject.Live<Schema.Schema.Type<S>>;
53
+ export declare const make: <S extends Schema.Schema.AnyNoContext>(schema: S, props: MakeProps<S>, meta?: Partial<ObjectMeta>) => Obj<Schema.Schema.Type<S>>;
54
+ /**
55
+ * Determine if object is an ECHO object.
56
+ */
54
57
  export declare const isObject: (obj: unknown) => obj is Any;
58
+ /**
59
+ * Returns an immutable snapshot of an object.
60
+ */
61
+ export declare const getSnapshot: <T extends Any>(obj: Obj<T>) => T;
62
+ export type CloneOptions = {
63
+ /**
64
+ * Retain the original object's ID.
65
+ * @default false
66
+ */
67
+ retainId?: boolean;
68
+ };
69
+ /**
70
+ * Clones an object or relation.
71
+ * This does not clone referenced objects, only the properties in the object.
72
+ * @returns A new object with the same schema and properties.
73
+ */
74
+ export declare const clone: <T extends Any>(obj: T, opts?: CloneOptions) => T;
75
+ export declare const ID: import("@dxos/keys").ObjectIdClass;
76
+ export type ID = ObjectId;
55
77
  /**
56
78
  * Test if object or relation is an instance of a schema.
57
79
  * @example
58
80
  * ```ts
59
81
  * const john = Obj.make(Person, { name: 'John' });
60
- * const johnIsPerson = Obj.instanceOf(Person)(john);
61
- *
62
82
  * const isPerson = Obj.instanceOf(Person);
63
83
  * if (isPerson(john)) {
64
84
  * // john is Person
@@ -66,61 +86,61 @@ export declare const isObject: (obj: unknown) => obj is Any;
66
86
  * ```
67
87
  */
68
88
  export declare const instanceOf: {
69
- <S extends Type.Relation.Any | Type.Obj.Any>(schema: S): (value: unknown) => value is Schema.Schema.Type<S>;
70
- <S extends Type.Relation.Any | Type.Obj.Any>(schema: S, value: unknown): value is Schema.Schema.Type<S>;
89
+ <S extends Type.Entity.Any>(schema: S): (value: unknown) => value is Schema.Schema.Type<S>;
90
+ <S extends Type.Entity.Any>(schema: S, value: unknown): value is Schema.Schema.Type<S>;
71
91
  };
72
- export declare const getSchema: (obj: unknown | undefined) => Schema.Schema.AnyNoContext | undefined;
73
- export declare const getDXN: (obj: Any | Relation.Any) => DXN;
92
+ export declare const getDXN: (entity: Entity.Unknown) => DXN;
74
93
  /**
75
94
  * @returns The DXN of the object's type.
76
95
  * @example dxn:example.com/type/Person:1.0.0
77
96
  */
78
- export declare const getTypeDXN: (obj: EchoSchema.BaseObject) => DXN | undefined;
97
+ export declare const getTypeDXN: (obj: AnyProperties) => DXN | undefined;
98
+ /**
99
+ * Get the schema of the object.
100
+ */
101
+ export declare const getSchema: (obj: unknown | undefined) => Schema.Schema.AnyNoContext | undefined;
79
102
  /**
80
103
  * @returns The typename of the object's type.
81
104
  * @example `example.com/type/Person`
82
105
  */
83
- export declare const getTypename: (obj: Any | Relation.Any) => string | undefined;
84
- export declare const getMeta: (obj: Any | Relation.Any) => EchoSchema.ObjectMeta;
106
+ export declare const getTypename: (entity: Entity.Unknown) => string | undefined;
107
+ export declare const Meta: unique symbol;
108
+ export declare const getMeta: (entity: AnyProperties) => ObjectMeta;
85
109
  /**
86
110
  * @returns Foreign keys for the object from the specified source.
87
111
  */
88
112
  export declare const getKeys: {
89
- (obj: Any | Relation.Any, source: string): EchoSchema.ForeignKey[];
90
- (source: string): (obj: Any | Relation.Any) => EchoSchema.ForeignKey[];
113
+ (entity: Entity.Unknown, source: string): ForeignKey[];
114
+ (source: string): (entity: Entity.Unknown) => ForeignKey[];
91
115
  };
92
116
  /**
93
117
  * Delete all keys from the object for the specified source.
94
- * @param obj
118
+ * @param entity
95
119
  * @param source
96
120
  */
97
- export declare const deleteKeys: (obj: Any | Relation.Any, source: string) => void;
98
- export declare const isDeleted: (obj: Any | Relation.Any) => boolean;
99
- export declare const getLabel: (obj: Any | Relation.Any) => string | undefined;
100
- export declare const setLabel: (obj: Any | Relation.Any, label: string) => void;
101
- export declare const getDescription: (obj: Any | Relation.Any) => string | undefined;
102
- export declare const setDescription: (obj: Any | Relation.Any, description: string) => void;
103
- export declare const addTag: (obj: Any | Relation.Any, tag: string) => void;
104
- export declare const removeTag: (obj: Any | Relation.Any, tag: string) => void;
105
- export type Comparator = (a: Any, b: Any) => number;
106
- export declare const sortByLabel: Comparator;
107
- export declare const sortByTypename: Comparator;
108
- export declare const sort: (...comparators: Comparator[]) => Comparator;
121
+ export declare const deleteKeys: (entity: Entity.Unknown, source: string) => void;
122
+ export declare const addTag: (entity: Entity.Unknown, tag: string) => void;
123
+ export declare const removeTag: (entity: Entity.Unknown, tag: string) => void;
124
+ export declare const isDeleted: (entity: Entity.Unknown) => boolean;
125
+ export declare const getLabel: (entity: Entity.Unknown) => string | undefined;
126
+ export declare const setLabel: (entity: Entity.Unknown, label: string) => void;
127
+ export declare const getDescription: (entity: Entity.Unknown) => string | undefined;
128
+ export declare const setDescription: (entity: Entity.Unknown, description: string) => void;
109
129
  /**
110
130
  * JSON representation of an object.
111
131
  */
112
- export type JSON = EchoSchema.ObjectJSON;
132
+ export type JSON = ObjectJSON;
113
133
  /**
114
134
  * Converts object to its JSON representation.
115
135
  *
116
136
  * The same algorithm is used when calling the standard `JSON.stringify(obj)` function.
117
137
  */
118
- export declare const toJSON: (obj: Any | Relation.Any) => JSON;
138
+ export declare const toJSON: (entity: Entity.Unknown) => JSON;
119
139
  /**
120
140
  * Creates an object from its json representation, performing schema validation.
121
141
  * References and schemas will be resolvable if the `refResolver` is provided.
122
142
  *
123
- * The function need to be async to support resolving the schema as well as the relation endpoints.
143
+ * The function must be async to support resolving the schema as well as the relation endpoints.
124
144
  *
125
145
  * @param options.refResolver - Resolver for references. Produces hydrated references that can be resolved.
126
146
  * @param options.dxn - Override object DXN. Changes the result of `Obj.getDXN`.
@@ -129,31 +149,21 @@ export declare const fromJSON: (json: unknown, options?: {
129
149
  refResolver?: Ref.Resolver;
130
150
  dxn?: DXN;
131
151
  }) => Promise<Any>;
152
+ export type Comparator = (a: Entity.Unknown, b: Entity.Unknown) => number;
153
+ export declare const sortByLabel: Comparator;
154
+ export declare const sortByTypename: Comparator;
155
+ export declare const sort: (...comparators: Comparator[]) => Comparator;
132
156
  /**
133
- * Returns an immutable snapshot of an object.
134
- */
135
- export declare const getSnapshot: <T extends Any>(obj: Obj<T>) => T;
136
- export type CloneOptions = {
137
- /**
138
- * Retain the original object's ID.
139
- * @default false
140
- */
141
- retainId?: boolean;
142
- };
143
- /**
144
- * Clones an object or relation.
145
- * This does not clone referenced objects, only the properties in the object.
146
- * @returns A new object with the same schema and properties.
157
+ * Unique symbol for version type identification.
147
158
  */
148
- export declare const clone: <T extends Any | Relation.Any>(obj: T, opts?: CloneOptions) => T;
149
- export declare const VersionTypeId: symbol;
150
- export type VersionType = typeof VersionTypeId;
159
+ export { VersionTypeId };
151
160
  /**
152
161
  * Represent object version.
153
162
  * May be backed by Automerge.
154
163
  * Objects with no history are not versioned.
155
164
  */
156
165
  export interface Version {
166
+ [VersionTypeId]: {};
157
167
  /**
158
168
  * Whether the object is versioned.
159
169
  */
@@ -166,11 +176,11 @@ export interface Version {
166
176
  /**
167
177
  * Checks that `obj` is a version object.
168
178
  */
169
- export declare const isVersion: (obj: unknown) => obj is Version;
179
+ export declare const isVersion: (entity: unknown) => entity is Version;
170
180
  /**
171
181
  * Returns the version of the object.
172
182
  */
173
- export declare const version: (obj: Any | Relation.Any) => Version;
183
+ export declare const version: (entity: Entity.Unknown) => Version;
174
184
  /**
175
185
  * Checks that `version` is a valid version object.
176
186
  */
@@ -185,5 +195,4 @@ export type VersionCompareResult = 'unversioned' | 'equal' | 'different';
185
195
  export declare const compareVersions: (version1: Version, version2: Version) => VersionCompareResult;
186
196
  export declare const encodeVersion: (version: Version) => string;
187
197
  export declare const decodeVersion: (version: string) => Version;
188
- export {};
189
198
  //# sourceMappingURL=Obj.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import * as EchoSchema from './internal';
1
+ import { Ref as Ref$, type RefResolver } from './internal';
2
2
  import type * as Obj from './Obj';
3
- export type Ref<T> = EchoSchema.Ref<T>;
4
- export type Any = EchoSchema.Ref<Obj.Any>;
3
+ export type Ref<T> = Ref$<T>;
4
+ export type Any = Ref$<Obj.Any>;
5
5
  export declare const Array: Readonly<{
6
- targets: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => T[];
7
- loadAll: <T extends EchoSchema.AnyEchoObject>(refs: readonly EchoSchema.Ref<T>[]) => Promise<T[]>;
8
- removeById: (refs: EchoSchema.Ref<EchoSchema.AnyEchoObject>[], id: EchoSchema.ObjectId) => void;
6
+ targets: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => T[];
7
+ loadAll: <T extends import("./internal").AnyEchoObject>(refs: readonly Ref$<T>[]) => Promise<T[]>;
8
+ removeById: (refs: Ref$<import("./internal").AnyEchoObject>[], id: import("@dxos/keys").ObjectId) => void;
9
9
  }>;
10
10
  /**
11
11
  * Extract reference target.
12
12
  */
13
- export type Target<R extends Any> = R extends EchoSchema.Ref<infer T> ? T : never;
13
+ export type Target<R extends Any> = R extends Ref$<infer T> ? T : never;
14
14
  /**
15
15
  * Reference resolver.
16
16
  */
17
- export type Resolver = EchoSchema.RefResolver;
17
+ export type Resolver = RefResolver;
18
18
  export declare const isRef: (value: unknown) => value is Any;
19
- export declare const make: <T extends EchoSchema.WithId>(object: T) => EchoSchema.Ref<T>;
20
- export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => EchoSchema.Ref<any>;
19
+ export declare const make: <T extends import("./internal").WithId>(object: T) => Ref$<T>;
20
+ export declare const fromDXN: (dxn: import("@dxos/keys").DXN) => Ref$<any>;
21
21
  //# sourceMappingURL=Ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,eAAO,MAAM,KAAK;;;;EAAsB,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;AAE9C,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAA0B,CAAC;AAE5E,eAAO,MAAM,IAAI,+DAAsB,CAAC;AAGxC,eAAO,MAAM,OAAO,wDAAyB,CAAC"}
1
+ {"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,IAAI,IAAI,EAAY,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEhC,eAAO,MAAM,KAAK;;;;EAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,GAAgB,CAAC;AAElE,eAAO,MAAM,IAAI,+DAAY,CAAC;AAG9B,eAAO,MAAM,OAAO,8CAAe,CAAC"}
@@ -1,30 +1,33 @@
1
1
  import * as Schema from 'effect/Schema';
2
- import { DXN } from '@dxos/keys';
2
+ import { DXN, type ObjectId } from '@dxos/keys';
3
3
  import { type Live } from '@dxos/live-object';
4
- import * as EchoSchema from './internal';
4
+ import * as Entity from './Entity';
5
+ import { type AnyEchoObject, EntityKind, MetaId, type ObjectMeta } from './internal';
5
6
  import * as Obj from './Obj';
6
7
  import * as Type from './Type';
7
8
  /**
8
- * NOTE: Don't export: Relation.Relation and Relation.Any form the public API.
9
+ * Base type for all ECHO relations.
10
+ * @private
9
11
  */
10
- interface BaseRelation<Source, Target> extends EchoSchema.HasId, Type.Relation.Endpoints<Source, Target>, Type.OfKind<EchoSchema.EntityKind.Relation> {
12
+ interface BaseRelation<Source, Target> extends AnyEchoObject, Type.Relation.Endpoints<Source, Target>, Entity.OfKind<EntityKind.Relation> {
11
13
  }
12
14
  /**
13
- * Relation type with specific properties.
14
- */
15
- export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
16
- /**
17
- * Base type for all ECHO relations.
15
+ * Base type for all Relations objects.
18
16
  */
19
17
  export interface Any extends BaseRelation<Obj.Any, Obj.Any> {
20
18
  }
21
19
  export declare const Any: Type.relation<Schema.Struct<{}>, Type.obj<Schema.Struct<{}>>, Type.obj<Schema.Struct<{}>>>;
20
+ /**
21
+ * Relation type with specific source and target types.
22
+ */
23
+ export type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;
22
24
  export declare const Source: unique symbol;
23
25
  export type Source = typeof Source;
24
26
  export declare const Target: unique symbol;
25
27
  export type Target = typeof Target;
26
28
  type MakeProps<T extends Any> = {
27
- id?: EchoSchema.ObjectId;
29
+ id?: ObjectId;
30
+ [MetaId]?: ObjectMeta;
28
31
  [Source]: T[Source];
29
32
  [Target]: T[Target];
30
33
  } & Type.Properties<T>;
@@ -35,7 +38,7 @@ type MakeProps<T extends Any> = {
35
38
  * @param meta - Relation metadata.
36
39
  * @returns
37
40
  */
38
- export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: EchoSchema.ObjectMeta) => Live<Schema.Schema.Type<S> & Type.OfKind<EchoSchema.EntityKind.Relation>>;
41
+ export declare const make: <S extends Type.Relation.Any>(schema: S, props: NoInfer<MakeProps<Schema.Schema.Type<S>>>, meta?: ObjectMeta) => Live<Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>>;
39
42
  export declare const isRelation: (value: unknown) => value is Any;
40
43
  /**
41
44
  * @returns Relation source DXN.
@@ -1 +1 @@
1
- {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAI9C,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,UAAU,CAAC,KAAK,EACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;CAAG;AAElD;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAE9D,eAAO,MAAM,GAAG,4FAOf,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AACnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACzB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACrB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;GAMG;AAGH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAC9C,QAAQ,CAAC,EACT,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,UAAU,CAAC,UAAU,KAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAkB1E,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,GAUpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC"}
1
+ {"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAGL,KAAK,aAAa,EAClB,UAAU,EAEV,MAAM,EACN,KAAK,UAAU,EAQhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;;GAGG;AACH,UAAU,YAAY,CAAC,MAAM,EAAE,MAAM,CACnC,SAAQ,aAAa,EACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;CAAG;AAEzC;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;CAAG;AAE9D,eAAO,MAAM,GAAG,4FAOf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAEnH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,OAAO,MAAgC,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;IAC9B,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;IACtB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CACrB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;GAMG;AAGH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAC9C,QAAQ,CAAC,EACT,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,UAAU,KAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAezE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,GAUpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,GAMzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,GAAG,EAAE,UAAU,CAAC,KAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAM5E,CAAC"}
@@ -6,7 +6,7 @@ export declare const Tag: Type.obj<Schema.Struct<{
6
6
  hue: Schema.optional<typeof Schema.String>;
7
7
  }>>;
8
8
  export type Tag = Schema.Schema.Type<typeof Tag>;
9
- export declare const make: (props: Obj.MakeProps<typeof Tag>) => import("@dxos/live-object").Live<Type.OfKind<import("./internal").EntityKind.Object> & {
9
+ export declare const make: (props: Obj.MakeProps<typeof Tag>) => Obj.Obj<import("./Entity").OfKind<import("./internal").EntityKind.Object> & {
10
10
  label: string;
11
11
  hue?: string | undefined;
12
12
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;GASf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,GAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;EAAyB,CAAC;AAG/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,cAAc,GAAG,EAAE,cAAc,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC"}
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;GAUf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,GAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;EAAyB,CAAC;AAG/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,cAAc,GAAG,EAAE,cAAc,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC"}