@dxos/echo 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (523) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/neutral/Annotation.mjs +8 -3
  3. package/dist/lib/neutral/Database.mjs +34 -6
  4. package/dist/lib/neutral/Entity.mjs +18 -10
  5. package/dist/lib/neutral/Err.mjs +3 -1
  6. package/dist/lib/neutral/Feed.mjs +47 -0
  7. package/dist/lib/neutral/Feed.mjs.map +7 -0
  8. package/dist/lib/neutral/Filter.mjs +11 -8
  9. package/dist/lib/neutral/Format.mjs +3 -3
  10. package/dist/lib/neutral/JsonSchema.mjs +9 -9
  11. package/dist/lib/neutral/Obj.mjs +35 -15
  12. package/dist/lib/neutral/Order.mjs +1 -1
  13. package/dist/lib/neutral/Query.mjs +19 -9
  14. package/dist/lib/neutral/Ref.mjs +9 -7
  15. package/dist/lib/neutral/Relation.mjs +20 -11
  16. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  17. package/dist/lib/neutral/Tag.mjs +13 -10
  18. package/dist/lib/neutral/Type.mjs +13 -23
  19. package/dist/lib/neutral/chunk-43Y5DOS6.mjs +396 -0
  20. package/dist/lib/neutral/chunk-43Y5DOS6.mjs.map +7 -0
  21. package/dist/lib/neutral/{chunk-2MTHJ5UW.mjs → chunk-4JRI2ZJI.mjs} +134 -24
  22. package/dist/lib/neutral/chunk-4JRI2ZJI.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-6DNYDXCV.mjs +159 -0
  24. package/dist/lib/neutral/chunk-6DNYDXCV.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-6GPU7XC3.mjs +283 -0
  26. package/dist/lib/neutral/chunk-6GPU7XC3.mjs.map +7 -0
  27. package/dist/lib/neutral/{chunk-IP2GHXWA.mjs → chunk-6K2MVI2O.mjs} +5 -5
  28. package/dist/lib/neutral/chunk-6K2MVI2O.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-7VNVH63N.mjs +106 -0
  30. package/dist/lib/neutral/chunk-7VNVH63N.mjs.map +7 -0
  31. package/dist/lib/neutral/{chunk-62DWJ6CE.mjs → chunk-B5OXLWZL.mjs} +14 -14
  32. package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
  33. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-BNCCGLJN.mjs} +1 -1
  34. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs.map → chunk-BNCCGLJN.mjs.map} +1 -1
  35. package/dist/lib/neutral/chunk-BOZZPUXE.mjs +787 -0
  36. package/dist/lib/neutral/chunk-BOZZPUXE.mjs.map +7 -0
  37. package/dist/lib/neutral/{chunk-SU2LVM7J.mjs → chunk-C4JZK4J7.mjs} +1596 -2730
  38. package/dist/lib/neutral/chunk-C4JZK4J7.mjs.map +7 -0
  39. package/dist/lib/neutral/{chunk-HMOXCO27.mjs → chunk-FXEG7EOK.mjs} +8 -3
  40. package/dist/lib/neutral/chunk-FXEG7EOK.mjs.map +7 -0
  41. package/dist/lib/neutral/{chunk-4TT624YA.mjs → chunk-FZO7LQO7.mjs} +2 -2
  42. package/dist/lib/neutral/{chunk-4TT624YA.mjs.map → chunk-FZO7LQO7.mjs.map} +1 -1
  43. package/dist/lib/neutral/chunk-NEGC54NE.mjs +130 -0
  44. package/dist/lib/neutral/chunk-NEGC54NE.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-VB5HVDCA.mjs → chunk-NXMFBIT5.mjs} +16 -4
  46. package/dist/lib/neutral/chunk-NXMFBIT5.mjs.map +7 -0
  47. package/dist/lib/neutral/{chunk-NWUO5FKZ.mjs → chunk-OENWMTE6.mjs} +8 -2
  48. package/dist/lib/neutral/chunk-OENWMTE6.mjs.map +7 -0
  49. package/dist/lib/neutral/{chunk-6QPSGMEF.mjs → chunk-ROAGDPV7.mjs} +32 -8
  50. package/dist/lib/neutral/chunk-ROAGDPV7.mjs.map +7 -0
  51. package/dist/lib/neutral/{chunk-CUDIBUM4.mjs → chunk-SEMVAGBM.mjs} +97 -24
  52. package/dist/lib/neutral/chunk-SEMVAGBM.mjs.map +7 -0
  53. package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-UBEZSGXY.mjs} +14 -1
  54. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  55. package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-UI6MWK5W.mjs} +2 -2
  56. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  57. package/dist/lib/neutral/{chunk-3ZEAZF7T.mjs → chunk-UTBRYVQC.mjs} +8 -4
  58. package/dist/lib/neutral/chunk-UTBRYVQC.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-VR4A4WGG.mjs → chunk-W47JKR3X.mjs} +72 -23
  60. package/dist/lib/neutral/chunk-W47JKR3X.mjs.map +7 -0
  61. package/dist/lib/neutral/{chunk-YQYMWZAD.mjs → chunk-WYOKA6AE.mjs} +4 -4
  62. package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
  63. package/dist/lib/neutral/{chunk-XMIDBDE6.mjs → chunk-YMNSMKKW.mjs} +11 -56
  64. package/dist/lib/neutral/chunk-YMNSMKKW.mjs.map +7 -0
  65. package/dist/lib/neutral/chunk-YWXWXIE5.mjs +34 -0
  66. package/dist/lib/neutral/chunk-YWXWXIE5.mjs.map +7 -0
  67. package/dist/lib/neutral/index.mjs +39 -26
  68. package/dist/lib/neutral/internal/index.mjs +52 -38
  69. package/dist/lib/neutral/meta.json +1 -1
  70. package/dist/lib/neutral/testing/index.mjs +41 -34
  71. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  72. package/dist/types/src/Annotation.d.ts +23 -1
  73. package/dist/types/src/Annotation.d.ts.map +1 -1
  74. package/dist/types/src/Collection.d.ts +16 -0
  75. package/dist/types/src/Collection.d.ts.map +1 -0
  76. package/dist/types/src/Database.d.ts +79 -84
  77. package/dist/types/src/Database.d.ts.map +1 -1
  78. package/dist/types/src/Dataset.d.ts +18 -0
  79. package/dist/types/src/Dataset.d.ts.map +1 -0
  80. package/dist/types/src/Entity.d.ts +38 -12
  81. package/dist/types/src/Entity.d.ts.map +1 -1
  82. package/dist/types/src/Err.d.ts +43 -0
  83. package/dist/types/src/Err.d.ts.map +1 -1
  84. package/dist/types/src/Feed.d.ts +165 -0
  85. package/dist/types/src/Feed.d.ts.map +1 -0
  86. package/dist/types/src/Filter.d.ts +1 -1
  87. package/dist/types/src/Filter.d.ts.map +1 -1
  88. package/dist/types/src/Format.d.ts +3 -3
  89. package/dist/types/src/Format.d.ts.map +1 -1
  90. package/dist/types/src/Hypergraph.d.ts +8 -3
  91. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  92. package/dist/types/src/JsonSchema.d.ts +11 -4
  93. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  94. package/dist/types/src/Obj.d.ts +151 -36
  95. package/dist/types/src/Obj.d.ts.map +1 -1
  96. package/dist/types/src/Order.d.ts.map +1 -1
  97. package/dist/types/src/Query.d.ts +101 -14
  98. package/dist/types/src/Query.d.ts.map +1 -1
  99. package/dist/types/src/Ref.d.ts +58 -10
  100. package/dist/types/src/Ref.d.ts.map +1 -1
  101. package/dist/types/src/Relation.d.ts +73 -26
  102. package/dist/types/src/Relation.d.ts.map +1 -1
  103. package/dist/types/src/SchemaRegistry.d.ts +4 -4
  104. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  105. package/dist/types/src/Tag.d.ts +4 -3
  106. package/dist/types/src/Tag.d.ts.map +1 -1
  107. package/dist/types/src/Type.d.ts +51 -180
  108. package/dist/types/src/Type.d.ts.map +1 -1
  109. package/dist/types/src/View.d.ts +68 -0
  110. package/dist/types/src/View.d.ts.map +1 -0
  111. package/dist/types/src/hierarchy.test.d.ts +2 -0
  112. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  113. package/dist/types/src/index.d.ts +4 -0
  114. package/dist/types/src/index.d.ts.map +1 -1
  115. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +68 -8
  116. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  117. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  118. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  119. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  120. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  121. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  122. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +13 -1
  123. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  124. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  125. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  126. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
  127. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  128. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  129. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  130. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  131. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  132. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  133. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  134. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  135. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  136. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  137. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  138. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  139. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  140. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  141. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  142. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  143. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  144. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  145. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  146. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  147. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  148. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  149. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  150. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  151. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  152. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  153. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  154. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  155. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +19 -19
  156. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  157. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  158. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  159. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  160. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  161. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  162. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  163. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  164. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  165. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  166. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  167. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  168. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  169. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +12 -5
  170. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  171. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  172. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  173. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  174. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  175. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +1 -1
  176. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  177. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  178. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  179. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
  180. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  181. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  182. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  183. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  184. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  185. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +16 -3
  186. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  187. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  188. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  189. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  190. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  191. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +8 -7
  192. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  193. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  194. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  195. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  196. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  197. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  198. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  199. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  200. package/dist/types/src/internal/common/index.d.ts +4 -0
  201. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  202. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  203. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  204. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  205. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  206. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  207. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  208. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  209. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  210. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  211. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  212. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  213. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  214. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  215. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +1 -1
  216. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  217. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  218. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  219. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  220. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +2 -1
  221. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  222. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  223. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  225. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  226. package/dist/types/src/internal/{types → common/types}/entity.d.ts +2 -2
  227. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  228. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  229. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  230. package/dist/types/src/internal/{types → common/types}/meta.d.ts +2 -1
  231. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  232. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  233. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  234. package/dist/types/src/internal/{types → common/types}/typename.d.ts +8 -0
  235. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  236. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  237. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  238. package/dist/types/src/internal/index.d.ts +8 -10
  239. package/dist/types/src/internal/index.d.ts.map +1 -1
  240. package/dist/types/src/testing/test-schema.d.ts +19 -18
  241. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  242. package/dist/types/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +19 -14
  244. package/src/Annotation.ts +31 -1
  245. package/src/Collection.ts +37 -0
  246. package/src/Database.ts +154 -173
  247. package/src/Dataset.ts +26 -0
  248. package/src/Entity.ts +71 -51
  249. package/src/Err.ts +22 -0
  250. package/src/Feed.ts +262 -0
  251. package/src/Filter.ts +19 -4
  252. package/src/Format.ts +3 -3
  253. package/src/Hypergraph.ts +9 -4
  254. package/src/JsonSchema.ts +14 -4
  255. package/src/Obj.test.ts +63 -2
  256. package/src/Obj.ts +278 -133
  257. package/src/Order.ts +3 -1
  258. package/src/Query.test.ts +181 -14
  259. package/src/Query.ts +249 -23
  260. package/src/Ref.ts +64 -11
  261. package/src/Relation.test.ts +8 -2
  262. package/src/Relation.ts +163 -129
  263. package/src/SchemaRegistry.ts +5 -4
  264. package/src/Tag.ts +6 -5
  265. package/src/Type.test.ts +10 -10
  266. package/src/Type.ts +70 -303
  267. package/src/View.ts +107 -0
  268. package/src/hierarchy.test.ts +33 -0
  269. package/src/index.ts +4 -0
  270. package/src/internal/{annotations → Annotation}/annotations.test.ts +6 -6
  271. package/src/internal/{annotations → Annotation}/annotations.ts +120 -9
  272. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  273. package/src/internal/{api → Annotation}/sorting.ts +2 -3
  274. package/src/internal/{annotations → Annotation}/util.ts +14 -1
  275. package/src/internal/{api/entity.ts → Entity/api.ts} +4 -2
  276. package/src/internal/{entities → Entity}/entity.ts +6 -4
  277. package/src/internal/{entities → Entity}/index.ts +2 -0
  278. package/src/internal/{entities → Entity}/model.ts +17 -42
  279. package/src/internal/{entities → Entity}/object.ts +2 -2
  280. package/src/internal/{entities → Entity}/relation.ts +19 -36
  281. package/src/internal/{api → Entity}/version.ts +3 -2
  282. package/src/internal/{formats → Format}/date.test.ts +1 -1
  283. package/src/internal/{formats → Format}/format.test.ts +1 -1
  284. package/src/internal/{formats → Format}/types.ts +3 -3
  285. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  286. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  287. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -48
  288. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +6 -4
  289. package/src/internal/{object → Obj}/clone.ts +3 -3
  290. package/src/internal/{object → Obj}/common.ts +2 -2
  291. package/src/internal/{object → Obj}/create-object.test.ts +4 -4
  292. package/src/internal/{object → Obj}/create-object.ts +5 -5
  293. package/src/internal/{object → Obj}/deleted.ts +2 -2
  294. package/src/internal/{object → Obj}/inspect.ts +2 -2
  295. package/src/internal/{object → Obj}/json-serializer.test.ts +29 -6
  296. package/src/internal/{object → Obj}/json-serializer.ts +42 -15
  297. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  298. package/src/internal/{object → Obj}/set-value.ts +2 -2
  299. package/src/internal/Obj/snapshot.ts +105 -0
  300. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  301. package/src/internal/{object → Obj}/typed-object.ts +4 -4
  302. package/src/internal/{ref → Ref}/ref-array.ts +1 -1
  303. package/src/internal/{ref → Ref}/ref.test.ts +4 -4
  304. package/src/internal/{ref → Ref}/ref.ts +27 -4
  305. package/src/internal/{schema → Type}/compose.test.ts +5 -5
  306. package/src/internal/{schema → Type}/compose.ts +1 -1
  307. package/src/internal/{schema → Type}/echo-schema.ts +11 -10
  308. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  309. package/src/internal/{schema → Type}/persistent-schema.ts +10 -4
  310. package/src/internal/{README.md → common/README.md} +1 -1
  311. package/src/internal/{api → common/api}/index.ts +0 -4
  312. package/src/internal/common/index.ts +7 -0
  313. package/src/internal/{proxy → common/proxy}/change.test.ts +3 -3
  314. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -2
  315. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  316. package/src/internal/{proxy → common/proxy}/make-object.ts +13 -3
  317. package/src/internal/{proxy → common/proxy}/reactive.ts +1 -1
  318. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  319. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -6
  320. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -3
  321. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +4 -4
  322. package/src/internal/{types → common/types}/base.ts +1 -1
  323. package/src/internal/{types → common/types}/entity.ts +2 -2
  324. package/src/internal/{types → common/types}/index.ts +1 -0
  325. package/src/internal/{types → common/types}/meta.ts +4 -1
  326. package/src/internal/common/types/model-symbols.ts +69 -0
  327. package/src/internal/{types → common/types}/typename.ts +10 -0
  328. package/src/internal/{types → common/types}/version.ts +2 -3
  329. package/src/internal/index.ts +8 -31
  330. package/src/testing/api.test.ts +4 -4
  331. package/src/testing/test-schema.ts +20 -18
  332. package/dist/lib/neutral/chunk-2MTHJ5UW.mjs.map +0 -7
  333. package/dist/lib/neutral/chunk-3ZEAZF7T.mjs.map +0 -7
  334. package/dist/lib/neutral/chunk-62DWJ6CE.mjs.map +0 -7
  335. package/dist/lib/neutral/chunk-6QPSGMEF.mjs.map +0 -7
  336. package/dist/lib/neutral/chunk-CUDIBUM4.mjs.map +0 -7
  337. package/dist/lib/neutral/chunk-HMOXCO27.mjs.map +0 -7
  338. package/dist/lib/neutral/chunk-IP2GHXWA.mjs.map +0 -7
  339. package/dist/lib/neutral/chunk-KRHDMXSU.mjs +0 -132
  340. package/dist/lib/neutral/chunk-KRHDMXSU.mjs.map +0 -7
  341. package/dist/lib/neutral/chunk-NWUO5FKZ.mjs.map +0 -7
  342. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
  343. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
  344. package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +0 -7
  345. package/dist/lib/neutral/chunk-VB5HVDCA.mjs.map +0 -7
  346. package/dist/lib/neutral/chunk-VR4A4WGG.mjs.map +0 -7
  347. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
  348. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
  349. package/dist/lib/neutral/chunk-XK5OUUBY.mjs +0 -157
  350. package/dist/lib/neutral/chunk-XK5OUUBY.mjs.map +0 -7
  351. package/dist/lib/neutral/chunk-XMIDBDE6.mjs.map +0 -7
  352. package/dist/lib/neutral/chunk-YQYMWZAD.mjs.map +0 -7
  353. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  354. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  355. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  356. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  357. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  358. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  359. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  360. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  361. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  362. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  363. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  364. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  365. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  366. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  367. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  368. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  369. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  370. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  371. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  372. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  373. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  374. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  375. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  376. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  377. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  378. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  379. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  380. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  381. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  382. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  383. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  384. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  385. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  386. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  387. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  388. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  389. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  390. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  391. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  392. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  393. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  394. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  395. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  396. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  397. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  398. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  399. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  400. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  401. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  402. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  403. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  404. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  405. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  406. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  407. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  408. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  409. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  410. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  411. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  412. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  413. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  414. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  415. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  416. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  417. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  418. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  419. package/dist/types/src/internal/proxy/reactive.d.ts.map +0 -1
  420. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  421. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  422. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  423. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  424. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  425. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  426. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  427. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  428. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  429. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  430. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  431. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  432. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  433. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  434. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  435. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  436. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  437. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  438. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  439. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  440. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  441. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  442. package/src/internal/api/annotations.ts +0 -60
  443. package/src/internal/object/snapshot.ts +0 -70
  444. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  445. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  446. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  447. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  448. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  449. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  450. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  451. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  452. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  453. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  454. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  455. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  456. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  457. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  458. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +0 -0
  459. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  460. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  461. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  462. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  463. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  464. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  465. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  466. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  467. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  468. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  469. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  470. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  471. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  472. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  473. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  474. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  475. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  476. /package/dist/types/src/internal/{api → common/api}/meta.d.ts +0 -0
  477. /package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +0 -0
  478. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  479. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  480. /package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +0 -0
  481. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  482. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  483. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  484. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  485. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  486. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  487. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  488. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  489. /package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +0 -0
  490. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  491. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  492. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  493. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  494. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  495. /package/src/internal/{entities → Entity}/util.ts +0 -0
  496. /package/src/internal/{formats → Format}/date.ts +0 -0
  497. /package/src/internal/{formats → Format}/format.ts +0 -0
  498. /package/src/internal/{formats → Format}/index.ts +0 -0
  499. /package/src/internal/{formats → Format}/number.ts +0 -0
  500. /package/src/internal/{formats → Format}/object.ts +0 -0
  501. /package/src/internal/{formats → Format}/select.ts +0 -0
  502. /package/src/internal/{formats → Format}/string.ts +0 -0
  503. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  504. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  505. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  506. /package/src/internal/{object → Obj}/ids.ts +0 -0
  507. /package/src/internal/{object → Obj}/index.ts +0 -0
  508. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  509. /package/src/internal/{object → Obj}/set-value.test.ts +0 -0
  510. /package/src/internal/{ref → Ref}/index.ts +0 -0
  511. /package/src/internal/{schema → Type}/index.ts +0 -0
  512. /package/src/internal/{api → common/api}/meta.ts +0 -0
  513. /package/src/internal/{proxy → common/proxy}/change-context.ts +0 -0
  514. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  515. /package/src/internal/{proxy → common/proxy}/errors.ts +0 -0
  516. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  517. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  518. /package/src/internal/{proxy → common/proxy}/ownership.ts +0 -0
  519. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  520. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  521. /package/src/internal/{proxy → common/proxy}/reactive-array.ts +0 -0
  522. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  523. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Relation.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { raise } from '@dxos/debug';\nimport type { ForeignKey } from '@dxos/echo-protocol';\nimport { createJsonPath } from '@dxos/effect';\nimport { assertArgument, invariant } from '@dxos/invariant';\nimport { DXN, type ObjectId } from '@dxos/keys';\nimport { assumeType } from '@dxos/util';\n\nimport type * as Database from './Database';\nimport * as Entity from './Entity';\nimport * as entityInternal from './internal/Entity';\nimport * as internal from './internal';\nimport * as Obj from './Obj';\nimport type * as Type from './Type';\n\nexport type Endpoints<Source, Target> = {\n [Source]: Source;\n [Target]: Target;\n};\n\n/**\n * Base type for all ECHO relations.\n * @private\n */\ninterface BaseRelation<Source, Target>\n extends internal.AnyEntity, Endpoints<Source, Target>, Entity.OfKind<internal.EntityKind.Relation> {}\n\n/**\n * Relation with no known properties beyond id, kind, source, and target.\n * Use this when the relation's schema/properties are not known.\n *\n * NOTE: This is a TypeScript type only, not a schema.\n * To validate that a value is an ECHO relation, use `Relation.isRelation`.\n */\nexport interface Unknown extends BaseRelation<Obj.Unknown, Obj.Unknown> {}\n\n/**\n * Runtime Effect schema for any ECHO relation.\n * Use for validation, parsing, or as a reference target for collections.\n * A relation has `id`, source, and target fields plus any additional properties.\n *\n * NOTE: `Schema.is(Type.Relation)` does STRUCTURAL validation only (checks for `id` field).\n * Use `Relation.isRelation()` for proper ECHO instance type guards that check the KindId brand.\n *\n * @example\n * ```ts\n * // Structural type guard (accepts any object with id field)\n * if (Schema.is(Type.Relation)(unknownValue)) { ... }\n *\n * // ECHO instance type guard (checks KindId brand)\n * if (Relation.isRelation(unknownValue)) { ... }\n * ```\n */\n// TODO(dmaretskyi): Change ObjModule.Any to ObjModule.Unknown to have stricter types.\nexport const Unknown: Type.Relation<Unknown, Obj.Any, Obj.Any> = Schema.Struct({\n id: Schema.String,\n}).pipe(\n Schema.extend(Schema.Record({ key: Schema.String, value: Schema.Unknown })),\n // TODO(dmaretskyi): Clean this up.\n // NOTE: The EchoRelationSchema annotation is required for Ref.Ref(Relation.Unknown) to work.\n // The typename/version/source/target only satisfy ECHO schema machinery for reference targets.\n internal.EchoRelationSchema({\n typename: 'org.dxos.schema.any-relation',\n version: '0.0.0',\n source: Obj.Unknown,\n target: Obj.Unknown,\n }),\n (schema) =>\n Object.assign(schema, {\n [internal.SchemaKindId]: (schema as any)[internal.SchemaKindId],\n }) as unknown as Type.Relation<Unknown, Obj.Any, Obj.Any>,\n);\n\n/**\n * Relation type with specific source and target types.\n */\nexport type OfShape<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> &\n Props;\n\n/**\n * Base type for snapshot relations (has SnapshotKindId instead of KindId).\n */\ninterface BaseRelationSnapshot<Source, Target> extends internal.AnyEntity, Endpoints<Source, Target> {\n readonly [Entity.SnapshotKindId]: internal.EntityKind.Relation;\n readonly id: ObjectId;\n}\n\n/**\n * JSON-encoded properties for relations.\n */\nexport interface BaseRelationJson {\n id: string;\n [internal.ATTR_RELATION_SOURCE]: string;\n [internal.ATTR_RELATION_TARGET]: string;\n}\n\n/**\n * Immutable snapshot of an ECHO relation.\n * Branded with SnapshotKindId (not KindId).\n * Property values are frozen at the time the snapshot was created.\n * Returned by getSnapshot() and hooks.\n */\nexport type Snapshot<T extends Unknown = Unknown> = Omit<T, Entity.KindId> &\n BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;\n\nexport const Source: unique symbol = entityInternal.RelationSourceId as any;\nexport type Source = typeof Source;\n\nexport const Target: unique symbol = entityInternal.RelationTargetId as any;\nexport type Target = typeof Target;\n\n/**\n * Get relation source type.\n */\nexport type SourceOf<A> = A extends Endpoints<infer S, infer _T> ? S : never;\n\n/**\n * Get relation target type.\n */\nexport type TargetOf<A> = A extends Endpoints<infer _S, infer T> ? T : never;\n\n/**\n * Internal props type for relation instance creation.\n */\ntype MakePropsInternal<T extends Unknown> = {\n id?: ObjectId;\n [Meta]?: internal.ObjectMeta;\n [Source]: T[Source];\n [Target]: T[Target];\n} & Entity.Properties<T>;\n\n/**\n * Props type for relation creation with a given schema.\n * Takes a schema type (created with Type.Relation) and extracts the props type.\n */\nexport type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<Schema.Schema.Type<S>>;\n\n/**\n * Creates new relation.\n * @param schema - Relation schema.\n * @param props - Relation properties. Endpoints are passed as [Relation.Source] and [Relation.Target] keys.\n * @param meta - Relation metadata. (deprecated; use [Obj.Meta] instead)\n * @returns\n */\n// NOTE: Writing the definition this way (with generic over schema) makes typescript perfer to infer the type from the first param (this schema) rather than the second param (the props).\n// TODO(dmaretskyi): Move meta into props.\nexport const make = <S extends Type.AnyRelation>(\n schema: S,\n props: NoInfer<MakeProps<S>>,\n): Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation> => {\n assertArgument(\n internal.getTypeAnnotation(schema)?.kind === internal.EntityKind.Relation,\n 'schema',\n 'Expected a relation schema',\n );\n assertArgument(props[internal.ParentId] === undefined, 'props', 'Parent is not allowed for relations');\n\n let meta: internal.ObjectMeta | undefined = undefined;\n\n if (props[internal.MetaId] != null) {\n meta = props[internal.MetaId] as any;\n delete props[internal.MetaId];\n }\n\n const sourceDXN = internal.getObjectDXN(props[Source]) ?? raise(new Error('Unresolved relation source'));\n const targetDXN = internal.getObjectDXN(props[Target]) ?? raise(new Error('Unresolved relation target'));\n\n (props as any)[internal.RelationSourceDXNId] = sourceDXN;\n (props as any)[internal.RelationTargetDXNId] = targetDXN;\n\n return internal.makeObject<Schema.Schema.Type<S>>(schema, props as any, meta);\n};\n\n/**\n * Type guard for relations.\n * Returns true for both reactive relations and relation snapshots.\n */\nexport const isRelation = (value: unknown): value is Unknown => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n if (internal.ATTR_RELATION_SOURCE in value || internal.ATTR_RELATION_TARGET in value) {\n return true;\n }\n\n // Check for reactive relation (KindId) or snapshot (SnapshotKindId).\n const kind = (value as any)[Entity.KindId] ?? (value as any)[Entity.SnapshotKindId];\n return kind === internal.EntityKind.Relation;\n};\n\nexport const isSnapshot = (value: unknown): value is Snapshot => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n return (value as any)[Entity.SnapshotKindId] === internal.EntityKind.Relation;\n};\n\n/**\n * @returns Relation source DXN.\n * Accepts both reactive relations and snapshots.\n * @throws If the object is not a relation.\n */\nexport const getSourceDXN = (value: Unknown | Snapshot): DXN => {\n assertArgument(isRelation(value), 'Expected a relation');\n assumeType<internal.InternalObjectProps>(value);\n const dxn = (value as internal.InternalObjectProps)[internal.RelationSourceDXNId];\n invariant(dxn instanceof DXN);\n return dxn;\n};\n\n/**\n * @returns Relation target DXN.\n * Accepts both reactive relations and snapshots.\n * @throws If the object is not a relation.\n */\nexport const getTargetDXN = (value: Unknown | Snapshot): DXN => {\n assertArgument(isRelation(value), 'Expected a relation');\n assumeType<internal.InternalObjectProps>(value);\n const dxn = (value as internal.InternalObjectProps)[internal.RelationTargetDXNId];\n invariant(dxn instanceof DXN);\n return dxn;\n};\n\n/**\n * @returns Relation source.\n * Accepts both reactive relations and snapshots.\n * @throws If the object is not a relation.\n */\nexport const getSource = <T extends Unknown | Snapshot>(relation: T): SourceOf<T> => {\n assertArgument(isRelation(relation), 'Expected a relation');\n assumeType<internal.InternalObjectProps>(relation);\n const obj = (relation as internal.InternalObjectProps)[internal.RelationSourceId];\n invariant(obj !== undefined, `Invalid source: ${relation.id}`);\n return obj as SourceOf<T>;\n};\n\n/**\n * @returns Relation target.\n * Accepts both reactive relations and snapshots.\n * @throws If the object is not a relation.\n */\nexport const getTarget = <T extends Unknown | Snapshot>(relation: T): TargetOf<T> => {\n assertArgument(isRelation(relation), 'Expected a relation');\n assumeType<internal.InternalObjectProps>(relation);\n const obj = (relation as internal.InternalObjectProps)[internal.RelationTargetId];\n invariant(obj !== undefined, `Invalid target: ${relation.id}`);\n return obj as TargetOf<T>;\n};\n\n//\n// Change\n//\n\n/**\n * Makes all properties mutable recursively.\n * Used to provide a mutable view of a relation within `Relation.change`.\n */\nexport type Mutable<T> = internal.Mutable<T>;\n\n/**\n * Perform mutations on an echo relation within a controlled context.\n *\n * All mutations within the callback are batched and trigger a single notification\n * when the callback completes. Direct mutations outside of `Relation.change` will throw\n * an error for echo relations.\n *\n * @param relation - The echo relation to mutate. Use `Obj.change` for objects.\n * @param callback - The callback that performs mutations on the relation.\n *\n * @example\n * ```ts\n * const worksFor = Relation.make(EmployedBy, {\n * [Relation.Source]: person,\n * [Relation.Target]: company,\n * role: 'Engineer',\n * });\n *\n * // Mutate within Relation.change\n * Relation.change(worksFor, (r) => {\n * r.role = 'Senior Engineer';\n * });\n * ```\n *\n * Note: Only accepts relations. Use `Obj.change` for objects.\n */\nexport const change = <T extends Unknown>(relation: T, callback: internal.ChangeCallback<T>): void => {\n internal.change(relation, callback);\n};\n\n//\n// Snapshot\n//\n\n/**\n * Returns an immutable snapshot of a relation.\n * The snapshot is branded with SnapshotKindId instead of KindId,\n * making it distinguishable from the reactive relation at the type level.\n */\nexport const getSnapshot: <T extends Unknown>(rel: T) => Snapshot<T> = internal.getSnapshot as any;\n\n//\n// Subscribe\n//\n\n/**\n * Subscribe to relation updates.\n * The callback is called synchronously when the relation is modified.\n * Only accepts reactive relations (not snapshots).\n * @returns Unsubscribe function.\n */\nexport const subscribe = (rel: Unknown, callback: () => void): (() => void) => {\n return internal.subscribe(rel, callback);\n};\n\n//\n// Property Access\n//\n\n/**\n * Get a deeply nested property from a relation.\n * Accepts both reactive relations and snapshots.\n */\nexport const getValue = (rel: Unknown | Snapshot, path: readonly (string | number)[]): any => {\n return internal.getValue(rel, createJsonPath(path));\n};\n\n/**\n * Set a deeply nested property on a relation.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const setValue: (rel: Mutable<Unknown>, path: readonly (string | number)[], value: any) => void =\n internal.setValue as any;\n\n//\n// Type\n//\n\n/**\n * Get the DXN of the relation.\n * Accepts both reactive relations and snapshots.\n */\nexport const getDXN = (entity: Unknown | Snapshot): DXN => internal.getDXN(entity);\n\n/**\n * @returns The DXN of the relation's type.\n */\nexport const getTypeDXN = internal.getTypeDXN;\n\n/**\n * Get the schema of the relation.\n * Returns the branded ECHO schema used to create the relation.\n */\nexport const getSchema: (rel: unknown | undefined) => Type.AnyEntity | undefined = internal.getSchema as any;\n\n/**\n * @returns The typename of the relation's type.\n * Accepts both reactive relations and snapshots.\n */\nexport const getTypename = (entity: Unknown | Snapshot): string | undefined => internal.getTypename(entity);\n\n//\n// Database\n//\n\n/**\n * Get the database the relation belongs to.\n * Accepts both reactive relations and snapshots.\n */\nexport const getDatabase = (entity: Unknown | Snapshot): Database.Database | undefined => internal.getDatabase(entity);\n\n//\n// Meta\n//\n\n/**\n * Property that accesses metadata for an entity.\n *\n * Alias for `Entity.Meta`.\n */\nexport const Meta = internal.MetaId;\n\n/**\n * Deeply read-only version of ObjectMeta.\n */\nexport type ReadonlyMeta = internal.ReadonlyMeta;\n\n/**\n * Mutable meta type returned by `Relation.getMeta` inside a `Relation.change` callback.\n */\nexport type Meta = internal.Meta;\n\n/**\n * Get the metadata for a relation.\n * Returns mutable meta when passed a mutable relation (inside `Relation.change` callback).\n * Returns read-only meta when passed a regular relation or snapshot.\n */\n// TODO(wittjosiah): When passed a Snapshot, should return a snapshot of meta, not the live meta proxy.\nexport function getMeta(entity: Mutable<Unknown>): Meta;\nexport function getMeta(entity: Unknown | Snapshot): ReadonlyMeta;\nexport function getMeta(entity: Unknown | Snapshot | Mutable<Unknown>): Meta | ReadonlyMeta {\n return internal.getMetaChecked(entity);\n}\n\n/**\n * @returns Foreign keys for the relation from the specified source.\n * Accepts both reactive relations and snapshots.\n */\nexport const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[] => internal.getKeys(entity, source);\n\n/**\n * Delete all keys from the relation for the specified source.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const deleteKeys = (entity: Mutable<Unknown>, source: string): void => internal.deleteKeys(entity, source);\n\n/**\n * Add a tag to the relation.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const addTag = (entity: Mutable<Unknown>, tag: string): void => internal.addTag(entity, tag);\n\n/**\n * Remove a tag from the relation.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const removeTag = (entity: Mutable<Unknown>, tag: string): void => internal.removeTag(entity, tag);\n\n/**\n * Check if the relation is deleted.\n * Accepts both reactive relations and snapshots.\n */\nexport const isDeleted = (entity: Unknown | Snapshot): boolean => internal.isDeleted(entity);\n\n//\n// Annotations\n//\n\n/**\n * Get the label of the relation.\n * Accepts both reactive relations and snapshots.\n */\nexport const getLabel = (entity: Unknown | Snapshot): string | undefined => internal.getLabel(entity);\n\n/**\n * Set the label of the relation.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const setLabel = (entity: Mutable<Unknown>, label: string): void => internal.setLabel(entity, label);\n\n/**\n * Get the description of the relation.\n * Accepts both reactive relations and snapshots.\n */\nexport const getDescription = (entity: Unknown | Snapshot): string | undefined => internal.getDescription(entity);\n\n/**\n * Set the description of the relation.\n * Must be called within a `Relation.change` callback.\n *\n * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`\n * parameters, so there is no compile-time error. Enforcement is runtime-only.\n */\nexport const setDescription = (entity: Mutable<Unknown>, description: string): void =>\n internal.setDescription(entity, description);\n\n//\n// JSON\n//\n\n/**\n * JSON representation of a relation.\n */\nexport type JSON = internal.ObjectJSON;\n\n/**\n * Converts relation to its JSON representation.\n * Accepts both reactive relations and snapshots.\n */\nexport const toJSON = (entity: Unknown | Snapshot): JSON => internal.objectToJSON(entity);\n\n//\n// Sorting\n//\n\n/**\n * Comparator function type for sorting relations.\n * Accepts both reactive relations and snapshots.\n */\nexport type Comparator = internal.Comparator<Unknown | Snapshot>;\n\nexport const sortByLabel: Comparator = internal.sortByLabel as Comparator;\nexport const sortByTypename: Comparator = internal.sortByTypename as Comparator;\nexport const sort = (...comparators: Comparator[]): Comparator => internal.sort(...comparators) as Comparator;\n\n//\n// Version\n//\n\nexport const VersionTypeId = internal.VersionTypeId;\nexport const isVersion = internal.isVersion;\n\n/**\n * Represent relation version.\n */\nexport type Version = internal.EntityVersion;\n\n/**\n * Returns the version of the relation.\n * Accepts both reactive relations and snapshots.\n */\nexport const version = (entity: Unknown | Snapshot): Version => internal.version(entity);\n"],
5
+ "mappings": "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",
6
+ "names": ["Unknown", "VersionTypeId", "addTag", "change", "deleteKeys", "getDXN", "getDatabase", "getDescription", "getKeys", "getLabel", "getSchema", "getSnapshot", "getTypeDXN", "getTypename", "getValue", "isDeleted", "isVersion", "removeTag", "setDescription", "setLabel", "setValue", "sort", "sortByLabel", "sortByTypename", "subscribe", "version", "Schema", "raise", "createJsonPath", "assertArgument", "invariant", "DXN", "assumeType", "Unknown", "Struct", "id", "String", "pipe", "extend", "Record", "key", "value", "EchoRelationSchema", "typename", "version", "source", "target", "schema", "Object", "assign", "SchemaKindId", "Source", "RelationSourceId", "Target", "RelationTargetId", "make", "props", "assertArgument", "getTypeAnnotation", "kind", "EntityKind", "Relation", "ParentId", "undefined", "meta", "MetaId", "sourceDXN", "getObjectDXN", "raise", "Error", "targetDXN", "RelationSourceDXNId", "RelationTargetDXNId", "makeObject", "isRelation", "ATTR_RELATION_SOURCE", "ATTR_RELATION_TARGET", "KindId", "SnapshotKindId", "isSnapshot", "getSourceDXN", "assumeType", "dxn", "invariant", "DXN", "getTargetDXN", "getSource", "relation", "obj", "getTarget", "change", "callback", "internal", "getSnapshot", "subscribe", "rel", "getValue", "path", "createJsonPath", "setValue", "getDXN", "entity", "getTypeDXN", "getSchema", "getTypename", "getDatabase", "Meta", "getMeta", "getMetaChecked", "getKeys", "deleteKeys", "addTag", "tag", "removeTag", "isDeleted", "getLabel", "setLabel", "label", "getDescription", "setDescription", "description", "toJSON", "objectToJSON", "sortByLabel", "sortByTypename", "sort", "comparators", "VersionTypeId", "isVersion"]
7
+ }
@@ -1,4 +1,4 @@
1
- // src/internal/types/entity.ts
1
+ // src/internal/common/types/entity.ts
2
2
  import * as Schema from "effect/Schema";
3
3
  var KindId = "~@dxos/echo/Kind";
4
4
  var SchemaKindId = "~@dxos/echo/SchemaKind";
@@ -9,10 +9,10 @@ var EntityKind = /* @__PURE__ */ (function(EntityKind2) {
9
9
  return EntityKind2;
10
10
  })({});
11
11
  var EntityKindSchema = Schema.Enums(EntityKind);
12
- var ANY_OBJECT_TYPENAME = "dxos.org/schema/AnyObject";
12
+ var ANY_OBJECT_TYPENAME = "org.dxos.schema.any-object";
13
13
  var ANY_OBJECT_VERSION = "0.0.0";
14
14
 
15
- // src/internal/annotations/util.ts
15
+ // src/internal/Annotation/util.ts
16
16
  import * as SchemaAST from "effect/SchemaAST";
17
17
  import { assertArgument } from "@dxos/invariant";
18
18
  import { DXN } from "@dxos/keys";
@@ -64,4 +64,4 @@ export {
64
64
  unwrapOptional,
65
65
  makeTypeJsonSchemaAnnotation
66
66
  };
67
- //# sourceMappingURL=chunk-YQYMWZAD.mjs.map
67
+ //# sourceMappingURL=chunk-WYOKA6AE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/common/types/entity.ts", "../../../src/internal/Annotation/util.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\n// NOTE: String literals are used instead of unique symbols for both KindId and SchemaKindId.\n// Unique symbols cause TS4023 \"cannot be named\" errors when external packages\n// try to export types that reference this key (e.g., `export const Graph = ...`).\n// TypeScript cannot emit declaration files that reference unique symbols from\n// external modules. Using a string literal allows the type to be inlined in\n// declaration files, making the API portable across package boundaries.\n\n/**\n * String key used to identify the kind of an entity instance (object or relation).\n */\nexport const KindId = '~@dxos/echo/Kind' as const;\nexport type KindId = typeof KindId;\n\n/**\n * String key used to identify the kind of a schema (object schema or relation schema).\n * Parallels KindId which identifies instance kinds.\n */\nexport const SchemaKindId = '~@dxos/echo/SchemaKind' as const;\nexport type SchemaKindId = typeof SchemaKindId;\n\n/**\n * String key used to brand snapshot types.\n * Snapshots have SnapshotKindId instead of KindId, making them\n * distinguishable from reactive objects at the type level.\n */\nexport const SnapshotKindId = '~@dxos/echo/SnapshotKind' as const;\nexport type SnapshotKindId = typeof SnapshotKindId;\n\n/**\n * Kinds of entities stored in ECHO: objects and relations.\n */\nexport enum EntityKind {\n Object = 'object',\n Relation = 'relation',\n}\n\nexport const EntityKindSchema = Schema.Enums(EntityKind);\n\n/**\n * Typename for generic object references (Type.Obj / Ref.Ref(Obj.Unknown)).\n * Used when referencing any object without a specific schema.\n */\nexport const ANY_OBJECT_TYPENAME = 'org.dxos.schema.any-object';\n\n/**\n * Version for generic object references.\n */\nexport const ANY_OBJECT_VERSION = '0.0.0';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { DXN } from '@dxos/keys';\n\nimport { EntityKind } from '../common/types';\n\nexport interface AnnotationHelper<T> {\n /**\n * Get the annotation value from the schema.\n */\n get: (schema: Schema.Schema.Any) => Option.Option<T>;\n /**\n * Get the annotation value from the AST.\n */\n getFromAst: (ast: SchemaAST.AST) => Option.Option<T>;\n /**\n * Set the annotation value on the schema.\n */\n set: (value: T) => <S extends Schema.Schema.Any>(schema: S) => S;\n}\n\n/**\n * Note: only for system annotations.\n */\n// TODO(dmaretskyi): Rename to createSystemAnnotationHelper.\nexport const createAnnotationHelper = <T>(id: symbol): AnnotationHelper<T> => {\n return {\n get: (schema) => SchemaAST.getAnnotation(schema.ast, id),\n getFromAst: (ast) => SchemaAST.getAnnotation(ast, id),\n set:\n (value) =>\n <S extends Schema.Schema.Any>(schema: S) =>\n schema.annotations({ [id]: value }) as S,\n };\n};\n\n/**\n * If property is optional returns the nested property, otherwise returns the property.\n */\n// TODO(wittjosiah): Is there a way to do this as a generic?\nexport const unwrapOptional = (property: SchemaAST.PropertySignature) => {\n if (!property.isOptional || !SchemaAST.isUnion(property.type)) {\n return property;\n }\n\n return property.type.types[0];\n};\n\n/**\n * @see JSONSchemaAnnotationId\n * @returns JSON-schema annotation so that the schema can be serialized with correct parameters.\n */\n// TODO(burdon): Required type.\nexport const makeTypeJsonSchemaAnnotation = (options: {\n identifier?: string;\n kind: EntityKind;\n typename: string;\n version: string;\n relationSource?: string;\n relationTarget?: string;\n}) => {\n assertArgument(!!options.relationSource === (options.kind === EntityKind.Relation), 'relationSource');\n assertArgument(!!options.relationTarget === (options.kind === EntityKind.Relation), 'relationTarget');\n\n const obj = {\n // TODO(dmaretskyi): Should this include the version?\n $id: options.identifier ?? DXN.fromTypename(options.typename).toString(),\n entityKind: options.kind,\n version: options.version,\n typename: options.typename,\n } as any;\n if (options.kind === EntityKind.Relation) {\n obj.relationSource = { $ref: options.relationSource };\n obj.relationTarget = { $ref: options.relationTarget };\n }\n\n return obj;\n};\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAYjB,IAAMC,SAAS;AAOf,IAAMC,eAAe;AAQrB,IAAMC,iBAAiB;AAMvB,IAAKC,aAAAA,0BAAAA,aAAAA;;;SAAAA;;AAKL,IAAMC,mBAA0BC,aAAMF,UAAAA;AAMtC,IAAMG,sBAAsB;AAK5B,IAAMC,qBAAqB;;;AC/ClC,YAAYC,eAAe;AAE3B,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAuBb,IAAMC,yBAAyB,CAAIC,OAAAA;AACxC,SAAO;IACLC,KAAK,CAACC,WAAqBC,wBAAcD,OAAOE,KAAKJ,EAAAA;IACrDK,YAAY,CAACD,QAAkBD,wBAAcC,KAAKJ,EAAAA;IAClDM,KACE,CAACC,UACD,CAA8BL,WAC5BA,OAAOM,YAAY;MAAE,CAACR,EAAAA,GAAKO;IAAM,CAAA;EACvC;AACF;AAMO,IAAME,iBAAiB,CAACC,aAAAA;AAC7B,MAAI,CAACA,SAASC,cAAc,CAAWC,kBAAQF,SAASG,IAAI,GAAG;AAC7D,WAAOH;EACT;AAEA,SAAOA,SAASG,KAAKC,MAAM,CAAA;AAC7B;AAOO,IAAMC,+BAA+B,CAACC,YAAAA;AAQ3CC,iBAAe,CAAC,CAACD,QAAQE,oBAAoBF,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AACpFJ,iBAAe,CAAC,CAACD,QAAQM,oBAAoBN,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AAEpF,QAAME,MAAM;;IAEVC,KAAKR,QAAQS,cAAcC,IAAIC,aAAaX,QAAQY,QAAQ,EAAEC,SAAQ;IACtEC,YAAYd,QAAQG;IACpBY,SAASf,QAAQe;IACjBH,UAAUZ,QAAQY;EACpB;AACA,MAAIZ,QAAQG,SAASC,WAAWC,UAAU;AACxCE,QAAIL,iBAAiB;MAAEc,MAAMhB,QAAQE;IAAe;AACpDK,QAAID,iBAAiB;MAAEU,MAAMhB,QAAQM;IAAe;EACtD;AAEA,SAAOC;AACT;",
6
+ "names": ["Schema", "KindId", "SchemaKindId", "SnapshotKindId", "EntityKind", "EntityKindSchema", "Enums", "ANY_OBJECT_TYPENAME", "ANY_OBJECT_VERSION", "SchemaAST", "assertArgument", "DXN", "createAnnotationHelper", "id", "get", "schema", "getAnnotation", "ast", "getFromAst", "set", "value", "annotations", "unwrapOptional", "property", "isOptional", "isUnion", "type", "types", "makeTypeJsonSchemaAnnotation", "options", "assertArgument", "relationSource", "kind", "EntityKind", "Relation", "relationTarget", "obj", "$id", "identifier", "DXN", "fromTypename", "typename", "toString", "entityKind", "version", "$ref"]
7
+ }
@@ -3,23 +3,18 @@ import {
3
3
  EchoRelationSchema,
4
4
  EchoSchema,
5
5
  PersistentSchema,
6
- Ref,
7
- isMutable,
8
- toEffectSchema,
9
- toJsonSchema
10
- } from "./chunk-SU2LVM7J.mjs";
6
+ isMutable
7
+ } from "./chunk-C4JZK4J7.mjs";
11
8
  import {
12
9
  getSchemaDXN,
13
10
  getSchemaTypename,
14
11
  getSchemaVersion,
15
12
  getTypeAnnotation
16
- } from "./chunk-CUDIBUM4.mjs";
13
+ } from "./chunk-SEMVAGBM.mjs";
17
14
  import {
18
- ANY_OBJECT_TYPENAME,
19
- ANY_OBJECT_VERSION,
20
15
  EntityKind,
21
16
  SchemaKindId
22
- } from "./chunk-YQYMWZAD.mjs";
17
+ } from "./chunk-WYOKA6AE.mjs";
23
18
  import {
24
19
  __export
25
20
  } from "./chunk-J5LGTIGS.mjs";
@@ -27,12 +22,8 @@ import {
27
22
  // src/Type.ts
28
23
  var Type_exports = {};
29
24
  __export(Type_exports, {
30
- Entity: () => Entity,
31
- Obj: () => Obj,
32
25
  PersistentType: () => PersistentType,
33
- Ref: () => Ref2,
34
- Relation: () => Relation,
35
- RuntimeType: () => EchoSchema,
26
+ RuntimeType: () => RuntimeType,
36
27
  getDXN: () => getDXN,
37
28
  getMeta: () => getMeta,
38
29
  getTypename: () => getTypename,
@@ -41,52 +32,20 @@ __export(Type_exports, {
41
32
  isObjectSchema: () => isObjectSchema,
42
33
  isRelationSchema: () => isRelationSchema,
43
34
  object: () => object,
44
- relation: () => relation,
45
- toEffectSchema: () => toEffectSchema,
46
- toJsonSchema: () => toJsonSchema
35
+ relation: () => relation
47
36
  });
48
- import * as Schema from "effect/Schema";
49
37
  import { invariant } from "@dxos/invariant";
50
38
  var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
51
- var ObjSchema = Schema.Struct({
52
- id: Schema.String
53
- }).pipe(Schema.extend(Schema.Record({
54
- key: Schema.String,
55
- value: Schema.Unknown
56
- })), EchoObjectSchema({
57
- typename: ANY_OBJECT_TYPENAME,
58
- version: ANY_OBJECT_VERSION
59
- }));
60
- var Obj = Object.assign(ObjSchema, {
61
- [SchemaKindId]: ObjSchema[SchemaKindId]
62
- });
39
+ var RuntimeType = EchoSchema;
63
40
  var object = EchoObjectSchema;
64
41
  var PersistentType = PersistentSchema;
65
- var RelationSchema = Schema.Struct({
66
- id: Schema.String
67
- }).pipe(Schema.extend(Schema.Record({
68
- key: Schema.String,
69
- value: Schema.Unknown
70
- })), EchoRelationSchema({
71
- typename: "dxos.org/schema/AnyRelation",
72
- version: "0.0.0",
73
- source: ObjSchema,
74
- target: ObjSchema
75
- }));
76
- var Relation = Object.assign(RelationSchema, {
77
- [SchemaKindId]: RelationSchema[SchemaKindId]
78
- });
79
42
  var relation = EchoRelationSchema;
80
- (function(Entity2) {
81
- Entity2.Any = Schema.Union(Obj, Relation);
82
- })(Entity || (Entity = {}));
83
43
  var isObjectSchema = (schema) => {
84
44
  return schema[SchemaKindId] === EntityKind.Object;
85
45
  };
86
46
  var isRelationSchema = (schema) => {
87
47
  return schema[SchemaKindId] === EntityKind.Relation;
88
48
  };
89
- var Ref2 = Ref;
90
49
  var getDXN = (schema) => {
91
50
  return getSchemaDXN(schema);
92
51
  };
@@ -94,7 +53,7 @@ var getTypename = (schema) => {
94
53
  const typename = getSchemaTypename(schema);
95
54
  invariant(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
96
55
  F: __dxlog_file,
97
- L: 463,
56
+ L: 230,
98
57
  S: void 0,
99
58
  A: [
100
59
  "typeof typename === 'string' && !typename.startsWith('dxn:')",
@@ -107,7 +66,7 @@ var getVersion = (schema) => {
107
66
  const version = getSchemaVersion(schema);
108
67
  invariant(typeof version === "string" && version.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
109
68
  F: __dxlog_file,
110
- L: 473,
69
+ L: 240,
111
70
  S: void 0,
112
71
  A: [
113
72
  "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
@@ -120,23 +79,19 @@ var isMutable2 = isMutable;
120
79
  var getMeta = (schema) => {
121
80
  return getTypeAnnotation(schema);
122
81
  };
123
- var Entity;
124
82
 
125
83
  export {
126
- Obj,
84
+ RuntimeType,
127
85
  object,
128
86
  PersistentType,
129
- Relation,
130
87
  relation,
131
88
  isObjectSchema,
132
89
  isRelationSchema,
133
- Ref2 as Ref,
134
90
  getDXN,
135
91
  getTypename,
136
92
  getVersion,
137
93
  isMutable2 as isMutable,
138
94
  getMeta,
139
- Entity,
140
95
  Type_exports
141
96
  };
142
- //# sourceMappingURL=chunk-XMIDBDE6.mjs.map
97
+ //# sourceMappingURL=chunk-YMNSMKKW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Type.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type * as Schema from 'effect/Schema';\n\nimport { type EncodedReference } from '@dxos/echo-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { type DXN } from '@dxos/keys';\nimport { type ToMutable } from '@dxos/util';\n\nimport type * as Entity from './Entity';\nimport * as typeInternal from './internal/Type';\nimport * as internal from './internal';\nimport type * as ObjModule from './Obj';\nimport type * as RelationModule from './Relation';\n\n/**\n * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.\n */\nexport const RuntimeType = typeInternal.EchoSchema;\n\n/**\n * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.\n */\nexport type RuntimeType = typeInternal.EchoSchema;\n\n//\n// Internal types (not exported)\n//\n\n/**\n * Type that marks a schema as an ECHO schema.\n * The value indicates the entity kind (Object or Relation).\n */\ntype EchoSchemaKind<K extends internal.EntityKind = internal.EntityKind> = {\n readonly [internal.SchemaKindId]: K;\n};\n\n//\n// Obj - Runtime schema for any ECHO object\n//\n\n/**\n * TypeScript type for an ECHO object schema.\n * `T` is the instance type produced by the schema.\n * `Fields` is the optional struct fields type for introspection.\n *\n * @example\n * ```ts\n * const PersonSchema: Type.Obj<Person> = Schema.Struct({\n * name: Schema.String,\n * }).pipe(Type.object({ typename: 'Person', version: '0.1.0' }));\n *\n * // Access fields for introspection:\n * Object.keys(PersonSchema.fields); // ['name']\n * ```\n */\nexport interface Obj<T, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>\n extends\n internal.TypeMeta,\n EchoSchemaKind<internal.EntityKind.Object>,\n Schema.AnnotableClass<\n Obj<T, Fields>,\n Entity.OfKind<typeof Entity.Kind.Object> & T,\n Schema.Simplify<ObjModule.BaseObjJson & ToMutable<T>>,\n never\n > {\n /**\n * The fields defined in the original struct schema.\n * Allows accessing field definitions for introspection.\n */\n readonly fields: Fields;\n}\n\n/**\n * Structural base type for any ECHO object schema.\n * Accepts both static schemas (created with Type.object()) and EchoSchema.\n * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.\n * Use Type.isObjectSchema() for runtime type guards.\n */\ntype ObjectSchemaBase = Schema.Schema.AnyNoContext & {\n readonly typename: string;\n readonly version: string;\n};\n\n/**\n * Type that represents any ECHO object schema.\n * Accepts both static schemas (Type.object()) and mutable schemas (EchoSchema).\n */\nexport type AnyObj = ObjectSchemaBase;\n\n/**\n * Factory function to create an ECHO object schema.\n * Adds object metadata annotations to an Effect schema.\n *\n * @example\n * ```ts\n * const Person = Schema.Struct({\n * name: Schema.String,\n * }).pipe(Type.object({ typename: 'com.example.type.person', version: '0.1.0' }));\n * ```\n */\nexport const object: {\n (opts: internal.TypeMeta): <Self extends Schema.Schema.Any>(self: Self) => Obj<Schema.Schema.Type<Self>>;\n} = internal.EchoObjectSchema as any;\n\n//\n// PersistentType (Schema stored in database)\n//\n\nexport const PersistentType: Obj<typeInternal.PersistentSchema> = typeInternal.PersistentSchema as any;\n\nexport interface PersistentType extends Schema.Schema.Type<typeof PersistentType> {}\n\n/**\n * TypeScript type for an ECHO relation schema.\n * `T` is the instance type produced by the schema (excluding source/target).\n * `Source` and `Target` are the endpoint types.\n * `Fields` is the optional struct fields type for introspection.\n */\nexport interface Relation<T, Source, Target, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>\n extends\n internal.TypeMeta,\n EchoSchemaKind<internal.EntityKind.Relation>,\n Schema.AnnotableClass<\n Relation<T, Source, Target, Fields>,\n Entity.OfKind<typeof Entity.Kind.Relation> & RelationModule.Endpoints<Source, Target> & T,\n Schema.Simplify<RelationModule.BaseRelationJson & ToMutable<T>>,\n never\n > {\n /**\n * The fields defined in the original struct schema.\n * Allows accessing field definitions for introspection.\n */\n readonly fields: Fields;\n}\n\n/**\n * Structural base type for any ECHO relation schema.\n * Accepts static schemas (created with Type.relation()).\n * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.\n * Use Type.isRelationSchema() for runtime type guards.\n */\ntype RelationSchemaBase = Schema.Schema.AnyNoContext & {\n readonly typename: string;\n readonly version: string;\n};\n\n/**\n * Type that represents any ECHO relation schema.\n * Accepts static schemas (Type.relation()).\n */\nexport type AnyRelation = RelationSchemaBase;\n\n/**\n * Factory function to create an ECHO relation schema.\n * Adds relation metadata annotations to an Effect schema.\n *\n * @example\n * ```ts\n * const WorksFor = Schema.Struct({\n * role: Schema.String,\n * }).pipe(Type.relation({\n * typename: 'com.example.type.works-for',\n * version: '0.1.0',\n * source: Person,\n * target: Company,\n * }));\n * ```\n */\nexport const relation: {\n <SourceSchema extends Schema.Schema.AnyNoContext, TargetSchema extends Schema.Schema.AnyNoContext>(\n opts: internal.EchoRelationSchemaOptions<SourceSchema, TargetSchema>,\n ): <Self extends Schema.Schema.Any>(\n self: Self,\n ) => Relation<Schema.Schema.Type<Self>, Schema.Schema.Type<SourceSchema>, Schema.Schema.Type<TargetSchema>>;\n} = internal.EchoRelationSchema as any;\n\n/**\n * Type alias for any ECHO entity schema (object or relation).\n * Use this in type annotations for schema parameters.\n */\nexport type AnyEntity = AnyObj | AnyRelation;\n\n/**\n * Type guard to check if a schema is an object schema.\n * NOTE: This checks SCHEMAS, not instances. Use Obj.isObject for instances.\n */\nexport const isObjectSchema = (schema: AnyEntity): schema is AnyObj => {\n return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Object;\n};\n\n/**\n * Type guard to check if a schema is a relation schema.\n * NOTE: This checks SCHEMAS, not instances. Use Relation.isRelation for instances.\n */\nexport const isRelationSchema = (schema: AnyEntity): schema is AnyRelation => {\n return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Relation;\n};\n\n/**\n * Type that represents any Ref schema (with unknown target type).\n * This is a schema type, not an instance type.\n */\nexport type AnyRef = Schema.Schema<internal.Ref<any>, EncodedReference>;\n\n//\n// Schema utility functions\n//\n\n/**\n * Gets the full DXN of the schema.\n * Will include the version if it's a `type` DXN.\n * @example \"dxn:com.example.type.person:0.1.0\"\n * @example \"dxn:echo:SSSSSSSSSS:XXXXXXXXXXXXX\"\n */\nexport const getDXN = (schema: AnyEntity): DXN | undefined => {\n return internal.getSchemaDXN(schema);\n};\n\n/**\n * @param schema - Schema to get the typename from.\n * @returns The typename of the schema. Example: `com.example.type.person`.\n */\nexport const getTypename = (schema: AnyEntity): string => {\n const typename = internal.getSchemaTypename(schema);\n invariant(typeof typename === 'string' && !typename.startsWith('dxn:'), 'Invalid typename');\n return typename;\n};\n\n/**\n * Gets the version of the schema.\n * @example 0.1.0\n */\nexport const getVersion = (schema: AnyEntity): string => {\n const version = internal.getSchemaVersion(schema);\n invariant(typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/), 'Invalid version');\n return version;\n};\n\n/**\n * @returns True if the schema is mutable.\n */\nexport const isMutable = typeInternal.isMutable;\n\n/**\n * ECHO type metadata.\n */\nexport type Meta = internal.TypeAnnotation;\n\n/**\n * Gets the meta data of the schema.\n */\nexport const getMeta = (schema: AnyEntity): Meta | undefined => {\n return internal.getTypeAnnotation(schema);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;mBAAAA;EAAA;;;;;AASA,SAASC,iBAAiB;;AAanB,IAAMC,cAA2BC;AAmFjC,IAAMC,SAEAC;AAMN,IAAMC,iBAAkEC;AA4DxE,IAAMC,WAMAC;AAYN,IAAMC,iBAAiB,CAACC,WAAAA;AAC7B,SAAQA,OAAwBC,YAAY,MAAeC,WAAWC;AACxE;AAMO,IAAMC,mBAAmB,CAACJ,WAAAA;AAC/B,SAAQA,OAAwBC,YAAY,MAAeC,WAAWG;AACxE;AAkBO,IAAMC,SAAS,CAACN,WAAAA;AACrB,SAAgBO,aAAaP,MAAAA;AAC/B;AAMO,IAAMQ,cAAc,CAACR,WAAAA;AAC1B,QAAMS,WAAoBC,kBAAkBV,MAAAA;AAC5CW,YAAU,OAAOF,aAAa,YAAY,CAACA,SAASG,WAAW,MAAA,GAAS,oBAAA;;;;;;;;;AACxE,SAAOH;AACT;AAMO,IAAMI,aAAa,CAACb,WAAAA;AACzB,QAAMc,UAAmBC,iBAAiBf,MAAAA;AAC1CW,YAAU,OAAOG,YAAY,YAAYA,QAAQE,MAAM,iBAAA,GAAoB,mBAAA;;;;;;;;;AAC3E,SAAOF;AACT;AAKO,IAAMG,aAAyBA;AAU/B,IAAMC,UAAU,CAAClB,WAAAA;AACtB,SAAgBmB,kBAAkBnB,MAAAA;AACpC;",
6
+ "names": ["isMutable", "invariant", "RuntimeType", "EchoSchema", "object", "EchoObjectSchema", "PersistentType", "PersistentSchema", "relation", "EchoRelationSchema", "isObjectSchema", "schema", "SchemaKindId", "EntityKind", "Object", "isRelationSchema", "Relation", "getDXN", "getSchemaDXN", "getTypename", "typename", "getSchemaTypename", "invariant", "startsWith", "getVersion", "version", "getSchemaVersion", "match", "isMutable", "getMeta", "getTypeAnnotation"]
7
+ }
@@ -0,0 +1,34 @@
1
+ import {
2
+ Ref
3
+ } from "./chunk-43Y5DOS6.mjs";
4
+
5
+ // src/internal/Ref/ref-array.ts
6
+ import { isNonNullable } from "@dxos/util";
7
+ var RefArray = Object.freeze({
8
+ /**
9
+ * @returns all resolved targets.
10
+ */
11
+ targets: (refs) => {
12
+ return refs.map((ref) => ref.target).filter(isNonNullable);
13
+ },
14
+ /**
15
+ * Load all referenced objects.
16
+ */
17
+ loadAll: (refs) => {
18
+ return Promise.all(refs.map((ref) => ref.load()));
19
+ },
20
+ /**
21
+ * Removes the ref with the given id.
22
+ */
23
+ removeById: (refs, id) => {
24
+ const index = refs.findIndex(Ref.hasObjectId(id));
25
+ if (index >= 0) {
26
+ refs.splice(index, 1);
27
+ }
28
+ }
29
+ });
30
+
31
+ export {
32
+ RefArray
33
+ };
34
+ //# sourceMappingURL=chunk-YWXWXIE5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/Ref/ref-array.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ObjectId } from '@dxos/keys';\nimport { isNonNullable } from '@dxos/util';\n\nimport { type AnyEntity } from '../common/types';\n\nimport { Ref } from './ref';\n\n/**\n * Helper functions for working with arrays of refs.\n */\nexport const RefArray = Object.freeze({\n /**\n * @returns all resolved targets.\n */\n targets: <T extends AnyEntity>(refs: readonly Ref<T>[]): T[] => {\n return refs.map((ref) => ref.target).filter(isNonNullable);\n },\n\n /**\n * Load all referenced objects.\n */\n loadAll: <T extends AnyEntity>(refs: readonly Ref<T>[]): Promise<T[]> => {\n return Promise.all(refs.map((ref) => ref.load()));\n },\n\n /**\n * Removes the ref with the given id.\n */\n removeById: (refs: Ref<AnyEntity>[], id: ObjectId) => {\n const index = refs.findIndex(Ref.hasObjectId(id));\n if (index >= 0) {\n refs.splice(index, 1);\n }\n },\n});\n"],
5
+ "mappings": ";;;;;AAKA,SAASA,qBAAqB;AASvB,IAAMC,WAAWC,OAAOC,OAAO;;;;EAIpCC,SAAS,CAAsBC,SAAAA;AAC7B,WAAOA,KAAKC,IAAI,CAACC,QAAQA,IAAIC,MAAM,EAAEC,OAAOC,aAAAA;EAC9C;;;;EAKAC,SAAS,CAAsBN,SAAAA;AAC7B,WAAOO,QAAQC,IAAIR,KAAKC,IAAI,CAACC,QAAQA,IAAIO,KAAI,CAAA,CAAA;EAC/C;;;;EAKAC,YAAY,CAACV,MAAwBW,OAAAA;AACnC,UAAMC,QAAQZ,KAAKa,UAAUC,IAAIC,YAAYJ,EAAAA,CAAAA;AAC7C,QAAIC,SAAS,GAAG;AACdZ,WAAKgB,OAAOJ,OAAO,CAAA;IACrB;EACF;AACF,CAAA;",
6
+ "names": ["isNonNullable", "RefArray", "Object", "freeze", "targets", "refs", "map", "ref", "target", "filter", "isNonNullable", "loadAll", "Promise", "all", "load", "removeById", "id", "index", "findIndex", "Ref", "hasObjectId", "splice"]
7
+ }
@@ -1,70 +1,82 @@
1
1
  import {
2
+ Collection_exports,
2
3
  DXN,
4
+ Dataset_exports,
3
5
  Hypergraph_exports,
4
- QueryAST
5
- } from "./chunk-X2MPMYYN.mjs";
6
+ QueryAST,
7
+ View_exports
8
+ } from "./chunk-6DNYDXCV.mjs";
9
+ import {
10
+ SchemaRegistry_exports
11
+ } from "./chunk-BNCCGLJN.mjs";
6
12
  import {
7
13
  Tag_exports
8
- } from "./chunk-IP2GHXWA.mjs";
14
+ } from "./chunk-6K2MVI2O.mjs";
9
15
  import {
10
16
  Order_exports
11
- } from "./chunk-ROKO4RKJ.mjs";
17
+ } from "./chunk-UI6MWK5W.mjs";
12
18
  import {
13
19
  Key_exports
14
20
  } from "./chunk-ANHVGJI4.mjs";
15
- import {
16
- Type_exports
17
- } from "./chunk-XMIDBDE6.mjs";
18
21
  import {
19
22
  Format_exports
20
- } from "./chunk-4TT624YA.mjs";
23
+ } from "./chunk-FZO7LQO7.mjs";
21
24
  import {
22
25
  Relation_exports
23
- } from "./chunk-VR4A4WGG.mjs";
26
+ } from "./chunk-W47JKR3X.mjs";
24
27
  import {
25
28
  JsonSchema_exports
26
- } from "./chunk-3ZEAZF7T.mjs";
29
+ } from "./chunk-UTBRYVQC.mjs";
27
30
  import {
28
31
  QueryResult_exports
29
32
  } from "./chunk-OMUPQMLR.mjs";
30
33
  import {
31
34
  Query_exports
32
- } from "./chunk-XK5OUUBY.mjs";
35
+ } from "./chunk-6GPU7XC3.mjs";
36
+ import {
37
+ Feed_exports
38
+ } from "./chunk-7VNVH63N.mjs";
39
+ import {
40
+ Type_exports
41
+ } from "./chunk-YMNSMKKW.mjs";
33
42
  import {
34
43
  Filter_exports
35
- } from "./chunk-VB5HVDCA.mjs";
44
+ } from "./chunk-NXMFBIT5.mjs";
36
45
  import {
37
46
  Ref_exports
38
- } from "./chunk-HMOXCO27.mjs";
39
- import {
40
- SchemaRegistry_exports
41
- } from "./chunk-4L6DOFXP.mjs";
47
+ } from "./chunk-FXEG7EOK.mjs";
42
48
  import {
43
49
  Obj_exports
44
- } from "./chunk-2MTHJ5UW.mjs";
50
+ } from "./chunk-4JRI2ZJI.mjs";
45
51
  import {
46
52
  Entity_exports
47
- } from "./chunk-6QPSGMEF.mjs";
48
- import "./chunk-SU2LVM7J.mjs";
49
- import "./chunk-62DWJ6CE.mjs";
53
+ } from "./chunk-ROAGDPV7.mjs";
54
+ import "./chunk-C4JZK4J7.mjs";
55
+ import "./chunk-YWXWXIE5.mjs";
56
+ import "./chunk-BOZZPUXE.mjs";
57
+ import "./chunk-B5OXLWZL.mjs";
58
+ import "./chunk-43Y5DOS6.mjs";
50
59
  import {
51
60
  Annotation_exports
52
- } from "./chunk-NWUO5FKZ.mjs";
61
+ } from "./chunk-OENWMTE6.mjs";
53
62
  import {
54
63
  Database_exports
55
- } from "./chunk-KRHDMXSU.mjs";
56
- import "./chunk-CUDIBUM4.mjs";
57
- import "./chunk-YQYMWZAD.mjs";
64
+ } from "./chunk-NEGC54NE.mjs";
65
+ import "./chunk-SEMVAGBM.mjs";
66
+ import "./chunk-WYOKA6AE.mjs";
58
67
  import {
59
68
  Err_exports
60
- } from "./chunk-RPB6V4BE.mjs";
69
+ } from "./chunk-UBEZSGXY.mjs";
61
70
  import "./chunk-J5LGTIGS.mjs";
62
71
  export {
63
72
  Annotation_exports as Annotation,
73
+ Collection_exports as Collection,
64
74
  DXN,
65
75
  Database_exports as Database,
76
+ Dataset_exports as Dataset,
66
77
  Entity_exports as Entity,
67
78
  Err_exports as Err,
79
+ Feed_exports as Feed,
68
80
  Filter_exports as Filter,
69
81
  Format_exports as Format,
70
82
  Hypergraph_exports as Hypergraph,
@@ -79,6 +91,7 @@ export {
79
91
  Relation_exports as Relation,
80
92
  SchemaRegistry_exports as SchemaRegistry,
81
93
  Tag_exports as Tag,
82
- Type_exports as Type
94
+ Type_exports as Type,
95
+ View_exports as View
83
96
  };
84
97
  //# sourceMappingURL=index.mjs.map