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

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 (536) 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/Extension.mjs +18 -0
  7. package/dist/lib/neutral/Extension.mjs.map +7 -0
  8. package/dist/lib/neutral/Feed.mjs +45 -0
  9. package/dist/lib/neutral/Feed.mjs.map +7 -0
  10. package/dist/lib/neutral/Filter.mjs +17 -10
  11. package/dist/lib/neutral/Format.mjs +3 -3
  12. package/dist/lib/neutral/JsonSchema.mjs +9 -9
  13. package/dist/lib/neutral/Obj.mjs +35 -15
  14. package/dist/lib/neutral/Order.mjs +1 -1
  15. package/dist/lib/neutral/Query.mjs +19 -9
  16. package/dist/lib/neutral/Ref.mjs +9 -7
  17. package/dist/lib/neutral/Relation.mjs +20 -11
  18. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  19. package/dist/lib/neutral/Tag.mjs +13 -10
  20. package/dist/lib/neutral/Type.mjs +13 -23
  21. package/dist/lib/neutral/{chunk-HMOXCO27.mjs → chunk-35O3JYTV.mjs} +8 -3
  22. package/dist/lib/neutral/chunk-35O3JYTV.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-4BT7QVIT.mjs +34 -0
  24. package/dist/lib/neutral/chunk-4BT7QVIT.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-4O4AV6CL.mjs +787 -0
  26. package/dist/lib/neutral/chunk-4O4AV6CL.mjs.map +7 -0
  27. package/dist/lib/neutral/{chunk-62DWJ6CE.mjs → chunk-B5OXLWZL.mjs} +14 -14
  28. package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
  29. package/dist/lib/neutral/{chunk-NWUO5FKZ.mjs → chunk-B7HTUIZA.mjs} +8 -2
  30. package/dist/lib/neutral/chunk-B7HTUIZA.mjs.map +7 -0
  31. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-BNCCGLJN.mjs} +1 -1
  32. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs.map → chunk-BNCCGLJN.mjs.map} +1 -1
  33. package/dist/lib/neutral/{chunk-3ZEAZF7T.mjs → chunk-EIX4KLES.mjs} +8 -4
  34. package/dist/lib/neutral/chunk-EIX4KLES.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-FLSFS6UB.mjs +117 -0
  36. package/dist/lib/neutral/chunk-FLSFS6UB.mjs.map +7 -0
  37. package/dist/lib/neutral/{chunk-VR4A4WGG.mjs → chunk-FXQ52LDX.mjs} +72 -23
  38. package/dist/lib/neutral/chunk-FXQ52LDX.mjs.map +7 -0
  39. package/dist/lib/neutral/{chunk-4TT624YA.mjs → chunk-FZO7LQO7.mjs} +2 -2
  40. package/dist/lib/neutral/{chunk-4TT624YA.mjs.map → chunk-FZO7LQO7.mjs.map} +1 -1
  41. package/dist/lib/neutral/chunk-HIMJ3MXL.mjs +283 -0
  42. package/dist/lib/neutral/chunk-HIMJ3MXL.mjs.map +7 -0
  43. package/dist/lib/neutral/{chunk-VB5HVDCA.mjs → chunk-HITCYIP2.mjs} +47 -5
  44. package/dist/lib/neutral/chunk-HITCYIP2.mjs.map +7 -0
  45. package/dist/lib/neutral/{chunk-SU2LVM7J.mjs → chunk-JJTRVYRD.mjs} +1596 -2730
  46. package/dist/lib/neutral/chunk-JJTRVYRD.mjs.map +7 -0
  47. package/dist/lib/neutral/{chunk-6QPSGMEF.mjs → chunk-JX5K6AY3.mjs} +32 -8
  48. package/dist/lib/neutral/chunk-JX5K6AY3.mjs.map +7 -0
  49. package/dist/lib/neutral/{chunk-IP2GHXWA.mjs → chunk-PRQVBGFG.mjs} +5 -5
  50. package/dist/lib/neutral/chunk-PRQVBGFG.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-RUYH5REG.mjs +130 -0
  52. package/dist/lib/neutral/chunk-RUYH5REG.mjs.map +7 -0
  53. package/dist/lib/neutral/{chunk-2MTHJ5UW.mjs → chunk-T74ABBRN.mjs} +134 -24
  54. package/dist/lib/neutral/chunk-T74ABBRN.mjs.map +7 -0
  55. package/dist/lib/neutral/{chunk-XMIDBDE6.mjs → chunk-TJRQTGXR.mjs} +11 -56
  56. package/dist/lib/neutral/chunk-TJRQTGXR.mjs.map +7 -0
  57. package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-UBEZSGXY.mjs} +14 -1
  58. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-UI6MWK5W.mjs} +2 -2
  60. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  61. package/dist/lib/neutral/chunk-VF2IHN6I.mjs +396 -0
  62. package/dist/lib/neutral/chunk-VF2IHN6I.mjs.map +7 -0
  63. package/dist/lib/neutral/{chunk-YQYMWZAD.mjs → chunk-WYOKA6AE.mjs} +4 -4
  64. package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
  65. package/dist/lib/neutral/{chunk-CUDIBUM4.mjs → chunk-XEBKJROJ.mjs} +104 -25
  66. package/dist/lib/neutral/chunk-XEBKJROJ.mjs.map +7 -0
  67. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  68. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  69. package/dist/lib/neutral/chunk-ZZEIMPNC.mjs +159 -0
  70. package/dist/lib/neutral/chunk-ZZEIMPNC.mjs.map +7 -0
  71. package/dist/lib/neutral/index.mjs +42 -25
  72. package/dist/lib/neutral/internal/index.mjs +52 -38
  73. package/dist/lib/neutral/meta.json +1 -1
  74. package/dist/lib/neutral/testing/index.mjs +42 -34
  75. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  76. package/dist/types/src/Annotation.d.ts +23 -1
  77. package/dist/types/src/Annotation.d.ts.map +1 -1
  78. package/dist/types/src/Collection.d.ts +16 -0
  79. package/dist/types/src/Collection.d.ts.map +1 -0
  80. package/dist/types/src/Database.d.ts +79 -84
  81. package/dist/types/src/Database.d.ts.map +1 -1
  82. package/dist/types/src/Dataset.d.ts +19 -0
  83. package/dist/types/src/Dataset.d.ts.map +1 -0
  84. package/dist/types/src/Entity.d.ts +41 -15
  85. package/dist/types/src/Entity.d.ts.map +1 -1
  86. package/dist/types/src/Err.d.ts +43 -0
  87. package/dist/types/src/Err.d.ts.map +1 -1
  88. package/dist/types/src/Extension.d.ts +80 -0
  89. package/dist/types/src/Extension.d.ts.map +1 -0
  90. package/dist/types/src/Extension.test.d.ts +2 -0
  91. package/dist/types/src/Extension.test.d.ts.map +1 -0
  92. package/dist/types/src/Feed.d.ts +163 -0
  93. package/dist/types/src/Feed.d.ts.map +1 -0
  94. package/dist/types/src/Filter.d.ts +13 -1
  95. package/dist/types/src/Filter.d.ts.map +1 -1
  96. package/dist/types/src/Filter.test.d.ts +2 -0
  97. package/dist/types/src/Filter.test.d.ts.map +1 -0
  98. package/dist/types/src/Format.d.ts +3 -3
  99. package/dist/types/src/Format.d.ts.map +1 -1
  100. package/dist/types/src/Hypergraph.d.ts +8 -3
  101. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  102. package/dist/types/src/JsonSchema.d.ts +11 -4
  103. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  104. package/dist/types/src/Obj.d.ts +158 -43
  105. package/dist/types/src/Obj.d.ts.map +1 -1
  106. package/dist/types/src/Order.d.ts.map +1 -1
  107. package/dist/types/src/Query.d.ts +101 -14
  108. package/dist/types/src/Query.d.ts.map +1 -1
  109. package/dist/types/src/Ref.d.ts +58 -10
  110. package/dist/types/src/Ref.d.ts.map +1 -1
  111. package/dist/types/src/Relation.d.ts +75 -28
  112. package/dist/types/src/Relation.d.ts.map +1 -1
  113. package/dist/types/src/SchemaRegistry.d.ts +4 -4
  114. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  115. package/dist/types/src/Tag.d.ts +4 -3
  116. package/dist/types/src/Tag.d.ts.map +1 -1
  117. package/dist/types/src/Type.d.ts +51 -180
  118. package/dist/types/src/Type.d.ts.map +1 -1
  119. package/dist/types/src/View.d.ts +68 -0
  120. package/dist/types/src/View.d.ts.map +1 -0
  121. package/dist/types/src/hierarchy.test.d.ts +2 -0
  122. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  123. package/dist/types/src/index.d.ts +5 -0
  124. package/dist/types/src/index.d.ts.map +1 -1
  125. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +69 -8
  126. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  127. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  128. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  129. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  130. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  131. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  132. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +13 -1
  133. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  134. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  135. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  136. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
  137. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  138. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  139. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  140. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  141. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  142. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  143. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  144. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  145. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  146. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  147. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  148. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  149. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  150. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  151. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  152. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  153. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  154. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  155. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  156. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  157. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  158. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  159. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  160. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  161. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  162. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  163. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  164. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  165. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +19 -19
  166. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  167. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  168. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  169. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  170. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  171. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  172. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  173. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  174. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  175. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  176. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  177. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  178. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  179. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +12 -5
  180. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  181. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  182. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  183. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  184. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  185. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +1 -1
  186. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  187. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  188. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  189. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
  190. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  191. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  192. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  193. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  194. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  195. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +16 -3
  196. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  197. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  198. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  199. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  200. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  201. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +8 -7
  202. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  203. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  204. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  205. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  206. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  207. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  208. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  209. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  210. package/dist/types/src/internal/common/index.d.ts +4 -0
  211. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  212. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  213. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  214. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  215. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  216. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  217. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  218. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  219. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  220. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  221. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  222. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  223. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  224. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  225. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +1 -1
  226. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  227. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  228. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  229. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  230. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +2 -1
  231. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  232. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  233. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  234. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  235. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  236. package/dist/types/src/internal/{types → common/types}/entity.d.ts +2 -2
  237. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  238. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  239. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  240. package/dist/types/src/internal/{types → common/types}/meta.d.ts +2 -1
  241. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  243. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  244. package/dist/types/src/internal/{types → common/types}/typename.d.ts +8 -0
  245. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  246. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  247. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  248. package/dist/types/src/internal/index.d.ts +8 -10
  249. package/dist/types/src/internal/index.d.ts.map +1 -1
  250. package/dist/types/src/testing/test-schema.d.ts +19 -18
  251. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  252. package/dist/types/tsconfig.tsbuildinfo +1 -1
  253. package/package.json +24 -14
  254. package/src/Annotation.ts +31 -1
  255. package/src/Collection.ts +37 -0
  256. package/src/Database.ts +154 -173
  257. package/src/Dataset.ts +26 -0
  258. package/src/Entity.ts +73 -54
  259. package/src/Err.ts +22 -0
  260. package/src/Extension.test.ts +235 -0
  261. package/src/Extension.ts +122 -0
  262. package/src/Feed.ts +267 -0
  263. package/src/Filter.test.ts +90 -0
  264. package/src/Filter.ts +47 -4
  265. package/src/Format.ts +3 -3
  266. package/src/Hypergraph.ts +9 -4
  267. package/src/JsonSchema.ts +14 -4
  268. package/src/Obj.test.ts +69 -8
  269. package/src/Obj.ts +285 -140
  270. package/src/Order.ts +3 -1
  271. package/src/Query.test.ts +190 -15
  272. package/src/Query.ts +249 -23
  273. package/src/Ref.ts +64 -11
  274. package/src/Relation.test.ts +8 -2
  275. package/src/Relation.ts +165 -131
  276. package/src/SchemaRegistry.ts +5 -4
  277. package/src/Tag.ts +6 -5
  278. package/src/Type.test.ts +10 -10
  279. package/src/Type.ts +70 -303
  280. package/src/View.ts +107 -0
  281. package/src/hierarchy.test.ts +33 -0
  282. package/src/index.ts +5 -0
  283. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -6
  284. package/src/internal/{annotations → Annotation}/annotations.ts +128 -10
  285. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  286. package/src/internal/{api → Annotation}/sorting.ts +2 -3
  287. package/src/internal/{annotations → Annotation}/util.ts +14 -1
  288. package/src/internal/{api/entity.ts → Entity/api.ts} +4 -2
  289. package/src/internal/{entities → Entity}/entity.ts +6 -4
  290. package/src/internal/{entities → Entity}/index.ts +2 -0
  291. package/src/internal/{entities → Entity}/model.ts +17 -42
  292. package/src/internal/{entities → Entity}/object.ts +2 -2
  293. package/src/internal/{entities → Entity}/relation.ts +19 -36
  294. package/src/internal/{api → Entity}/version.ts +3 -2
  295. package/src/internal/{formats → Format}/date.test.ts +1 -1
  296. package/src/internal/{formats → Format}/format.test.ts +1 -1
  297. package/src/internal/{formats → Format}/types.ts +3 -3
  298. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  299. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  300. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -48
  301. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +6 -4
  302. package/src/internal/{object → Obj}/clone.ts +3 -3
  303. package/src/internal/{object → Obj}/common.ts +2 -2
  304. package/src/internal/{object → Obj}/create-object.test.ts +4 -4
  305. package/src/internal/{object → Obj}/create-object.ts +5 -5
  306. package/src/internal/{object → Obj}/deleted.ts +2 -2
  307. package/src/internal/{object → Obj}/inspect.ts +2 -2
  308. package/src/internal/{object → Obj}/json-serializer.test.ts +31 -8
  309. package/src/internal/{object → Obj}/json-serializer.ts +42 -15
  310. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  311. package/src/internal/{object → Obj}/set-value.test.ts +24 -24
  312. package/src/internal/{object → Obj}/set-value.ts +2 -2
  313. package/src/internal/Obj/snapshot.ts +105 -0
  314. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  315. package/src/internal/{object → Obj}/typed-object.ts +4 -4
  316. package/src/internal/{ref → Ref}/ref-array.ts +1 -1
  317. package/src/internal/{ref → Ref}/ref.test.ts +4 -4
  318. package/src/internal/{ref → Ref}/ref.ts +27 -4
  319. package/src/internal/{schema → Type}/compose.test.ts +5 -5
  320. package/src/internal/{schema → Type}/compose.ts +1 -1
  321. package/src/internal/{schema → Type}/echo-schema.ts +11 -10
  322. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  323. package/src/internal/{schema → Type}/persistent-schema.ts +10 -4
  324. package/src/internal/{README.md → common/README.md} +1 -1
  325. package/src/internal/{api → common/api}/index.ts +0 -4
  326. package/src/internal/common/index.ts +7 -0
  327. package/src/internal/{proxy → common/proxy}/change.test.ts +58 -58
  328. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -2
  329. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  330. package/src/internal/{proxy → common/proxy}/make-object.ts +13 -3
  331. package/src/internal/{proxy → common/proxy}/reactive.ts +1 -1
  332. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  333. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -6
  334. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -3
  335. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +4 -4
  336. package/src/internal/{types → common/types}/base.ts +1 -1
  337. package/src/internal/{types → common/types}/entity.ts +2 -2
  338. package/src/internal/{types → common/types}/index.ts +1 -0
  339. package/src/internal/{types → common/types}/meta.ts +4 -1
  340. package/src/internal/common/types/model-symbols.ts +69 -0
  341. package/src/internal/{types → common/types}/typename.ts +10 -0
  342. package/src/internal/{types → common/types}/version.ts +2 -3
  343. package/src/internal/index.ts +8 -31
  344. package/src/testing/api.test.ts +4 -4
  345. package/src/testing/test-schema.ts +20 -18
  346. package/dist/lib/neutral/chunk-2MTHJ5UW.mjs.map +0 -7
  347. package/dist/lib/neutral/chunk-3ZEAZF7T.mjs.map +0 -7
  348. package/dist/lib/neutral/chunk-62DWJ6CE.mjs.map +0 -7
  349. package/dist/lib/neutral/chunk-6QPSGMEF.mjs.map +0 -7
  350. package/dist/lib/neutral/chunk-CUDIBUM4.mjs.map +0 -7
  351. package/dist/lib/neutral/chunk-HMOXCO27.mjs.map +0 -7
  352. package/dist/lib/neutral/chunk-IP2GHXWA.mjs.map +0 -7
  353. package/dist/lib/neutral/chunk-KRHDMXSU.mjs +0 -132
  354. package/dist/lib/neutral/chunk-KRHDMXSU.mjs.map +0 -7
  355. package/dist/lib/neutral/chunk-NWUO5FKZ.mjs.map +0 -7
  356. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
  357. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
  358. package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +0 -7
  359. package/dist/lib/neutral/chunk-VB5HVDCA.mjs.map +0 -7
  360. package/dist/lib/neutral/chunk-VR4A4WGG.mjs.map +0 -7
  361. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
  362. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
  363. package/dist/lib/neutral/chunk-XK5OUUBY.mjs +0 -157
  364. package/dist/lib/neutral/chunk-XK5OUUBY.mjs.map +0 -7
  365. package/dist/lib/neutral/chunk-XMIDBDE6.mjs.map +0 -7
  366. package/dist/lib/neutral/chunk-YQYMWZAD.mjs.map +0 -7
  367. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  368. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  369. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  370. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  371. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  372. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  373. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  374. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  375. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  376. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  377. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  378. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  379. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  380. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  381. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  382. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  383. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  384. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  385. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  386. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  387. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  388. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  389. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  390. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  391. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  392. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  393. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  394. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  395. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  396. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  397. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  398. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  399. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  400. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  401. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  402. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  403. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  404. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  405. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  406. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  407. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  408. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  409. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  410. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  411. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  412. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  413. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  414. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  415. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  416. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  417. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  418. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  419. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  420. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  421. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  422. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  423. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  424. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  425. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  426. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  427. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  428. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  429. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  430. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  431. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  432. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  433. package/dist/types/src/internal/proxy/reactive.d.ts.map +0 -1
  434. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  435. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  436. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  437. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  438. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  439. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  440. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  441. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  442. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  443. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  444. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  445. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  446. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  447. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  448. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  449. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  450. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  451. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  452. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  453. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  454. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  455. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  456. package/src/internal/api/annotations.ts +0 -60
  457. package/src/internal/object/snapshot.ts +0 -70
  458. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  459. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  460. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  461. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  462. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  463. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  464. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  465. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  466. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  467. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  468. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  469. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  470. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  471. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  472. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +0 -0
  473. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  474. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  475. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  476. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  477. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  478. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  479. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  480. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  481. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  482. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  483. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  484. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  485. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  486. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  487. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  488. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  489. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  490. /package/dist/types/src/internal/{api → common/api}/meta.d.ts +0 -0
  491. /package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +0 -0
  492. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  493. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  494. /package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +0 -0
  495. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  496. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  497. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  498. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  499. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  500. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  501. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  502. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  503. /package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +0 -0
  504. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  505. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  506. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  507. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  508. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  509. /package/src/internal/{entities → Entity}/util.ts +0 -0
  510. /package/src/internal/{formats → Format}/date.ts +0 -0
  511. /package/src/internal/{formats → Format}/format.ts +0 -0
  512. /package/src/internal/{formats → Format}/index.ts +0 -0
  513. /package/src/internal/{formats → Format}/number.ts +0 -0
  514. /package/src/internal/{formats → Format}/object.ts +0 -0
  515. /package/src/internal/{formats → Format}/select.ts +0 -0
  516. /package/src/internal/{formats → Format}/string.ts +0 -0
  517. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  518. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  519. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  520. /package/src/internal/{object → Obj}/ids.ts +0 -0
  521. /package/src/internal/{object → Obj}/index.ts +0 -0
  522. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  523. /package/src/internal/{ref → Ref}/index.ts +0 -0
  524. /package/src/internal/{schema → Type}/index.ts +0 -0
  525. /package/src/internal/{api → common/api}/meta.ts +0 -0
  526. /package/src/internal/{proxy → common/proxy}/change-context.ts +0 -0
  527. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  528. /package/src/internal/{proxy → common/proxy}/errors.ts +0 -0
  529. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  530. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  531. /package/src/internal/{proxy → common/proxy}/ownership.ts +0 -0
  532. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  533. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  534. /package/src/internal/{proxy → common/proxy}/reactive-array.ts +0 -0
  535. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  536. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
@@ -8,7 +8,7 @@ import * as SchemaAST from 'effect/SchemaAST';
8
8
  import { invariant } from '@dxos/invariant';
9
9
  import { DXN } from '@dxos/keys';
10
10
 
11
- import { type TypeAnnotation, TypeAnnotationId, TypeIdentifierAnnotationId } from '../annotations';
11
+ import { type TypeAnnotation, TypeAnnotationId, TypeIdentifierAnnotationId } from '../Annotation';
12
12
 
13
13
  // TODO(ZaymonFC): Do this one at a time. This might be dangerous.
14
14
  export const addFieldsToSchema = (
@@ -4,9 +4,10 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { TypenameSchema, VersionSchema } from '../annotations';
8
- import { EchoObjectSchema } from '../entities';
9
- import { JsonSchemaType } from '../json-schema';
7
+ import { IconAnnotation } from '../Annotation';
8
+ import { LabelAnnotation, TypenameSchema, VersionSchema } from '../Annotation';
9
+ import { EchoObjectSchema } from '../Entity';
10
+ import { JsonSchemaType } from '../JsonSchema';
10
11
 
11
12
  /**
12
13
  * Persistent representation of a schema.
@@ -19,9 +20,14 @@ export const PersistentSchema = Schema.Struct({
19
20
  jsonSchema: JsonSchemaType,
20
21
  }).pipe(
21
22
  EchoObjectSchema({
22
- typename: 'dxos.org/type/Schema',
23
+ typename: 'org.dxos.type.schema',
23
24
  version: '0.1.0',
24
25
  }),
26
+ LabelAnnotation.set(['name']),
27
+ IconAnnotation.set({
28
+ icon: 'ph--database--regular',
29
+ hue: 'green',
30
+ }),
25
31
  );
26
32
 
27
33
  export interface PersistentSchema extends Schema.Schema.Type<typeof PersistentSchema> {}
@@ -30,7 +30,7 @@
30
30
 
31
31
  - [x] QueryResult namespace
32
32
  - [x] SchemaRegistry interface
33
- - [x] Schema registry should return Type.Entity.Any instead of Schema.Schema.AnyNoContext.
33
+ - [x] Schema registry should return Type.AnyEntity instead of Schema.Schema.AnyNoContext.
34
34
  - [x] Hypergraph interface
35
35
  - [x] Obj.getDatabase
36
36
  - [x] SpaceAction.AddObject target should be a db not a space.
@@ -12,8 +12,4 @@
12
12
  * and prevent external packages from using internals directly.
13
13
  */
14
14
 
15
- export * from './annotations';
16
- export * from './entity';
17
15
  export * from './meta';
18
- export * from './sorting';
19
- export * from './version';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './api';
6
+ export * from './proxy';
7
+ export * from './types';
@@ -4,9 +4,9 @@
4
4
 
5
5
  import { describe, test } from 'vitest';
6
6
 
7
- import * as Obj from '../../Obj';
8
- import * as Relation from '../../Relation';
9
- import { TestSchema } from '../../testing';
7
+ import * as Obj from '../../../Obj';
8
+ import * as Relation from '../../../Relation';
9
+ import { TestSchema } from '../../../testing';
10
10
 
11
11
  /**
12
12
  * Tests for Obj.change context enforcement and mutator type safety.
@@ -122,8 +122,8 @@ describe('Obj.change enforcement', () => {
122
122
  // Person schema uses 'name' as label field.
123
123
  expect(Obj.getLabel(obj)).toBe('John');
124
124
 
125
- Obj.change(obj, (o) => {
126
- Obj.setLabel(o, 'Jane');
125
+ Obj.change(obj, (obj) => {
126
+ Obj.setLabel(obj, 'Jane');
127
127
  });
128
128
 
129
129
  // setLabel updates the name field.
@@ -140,8 +140,8 @@ describe('Obj.change enforcement', () => {
140
140
 
141
141
  // setDescription only works if schema has description annotation.
142
142
  // For schemas without it, this is a no-op.
143
- Obj.change(obj, (o) => {
144
- Obj.setDescription(o, 'My Description');
143
+ Obj.change(obj, (obj) => {
144
+ Obj.setDescription(obj, 'My Description');
145
145
  });
146
146
 
147
147
  // Verify setDescription doesn't throw.
@@ -153,15 +153,15 @@ describe('Obj.change enforcement', () => {
153
153
 
154
154
  expect(Obj.getMeta(obj).tags).toBeUndefined();
155
155
 
156
- Obj.change(obj, (o) => {
157
- Obj.addTag(o, 'tag-1');
158
- Obj.addTag(o, 'tag-2');
156
+ Obj.change(obj, (obj) => {
157
+ Obj.addTag(obj, 'tag-1');
158
+ Obj.addTag(obj, 'tag-2');
159
159
  });
160
160
 
161
161
  expect(Obj.getMeta(obj).tags).toEqual(['tag-1', 'tag-2']);
162
162
 
163
- Obj.change(obj, (o) => {
164
- Obj.removeTag(o, 'tag-1');
163
+ Obj.change(obj, (obj) => {
164
+ Obj.removeTag(obj, 'tag-1');
165
165
  });
166
166
 
167
167
  expect(Obj.getMeta(obj).tags).toEqual(['tag-2']);
@@ -170,8 +170,8 @@ describe('Obj.change enforcement', () => {
170
170
  test('deleteKeys removes foreign keys by source', ({ expect }) => {
171
171
  const obj = Obj.make(TestSchema.Person, { name: 'Test' });
172
172
 
173
- Obj.change(obj, (o) => {
174
- const meta = Obj.getMeta(o);
173
+ Obj.change(obj, (obj) => {
174
+ const meta = Obj.getMeta(obj);
175
175
  meta.keys.push({ source: 'source-a', id: '1' });
176
176
  meta.keys.push({ source: 'source-a', id: '2' });
177
177
  meta.keys.push({ source: 'source-b', id: '3' });
@@ -179,8 +179,8 @@ describe('Obj.change enforcement', () => {
179
179
 
180
180
  expect(Obj.getMeta(obj).keys).toHaveLength(3);
181
181
 
182
- Obj.change(obj, (o) => {
183
- Obj.deleteKeys(o, 'source-a');
182
+ Obj.change(obj, (obj) => {
183
+ Obj.deleteKeys(obj, 'source-a');
184
184
  });
185
185
 
186
186
  expect(Obj.getMeta(obj).keys).toHaveLength(1);
@@ -190,8 +190,8 @@ describe('Obj.change enforcement', () => {
190
190
  test('setValue sets nested properties', ({ expect }) => {
191
191
  const obj = Obj.make(TestSchema.Person, { name: 'Test' });
192
192
 
193
- Obj.change(obj, (o) => {
194
- Obj.setValue(o, ['name'], 'Updated Name');
193
+ Obj.change(obj, (obj) => {
194
+ Obj.setValue(obj, ['name'], 'Updated Name');
195
195
  });
196
196
 
197
197
  expect(obj.name).toBe('Updated Name');
@@ -200,8 +200,8 @@ describe('Obj.change enforcement', () => {
200
200
  test('getMeta is mutable inside change and changes persist', ({ expect }) => {
201
201
  const obj = Obj.make(TestSchema.Person, { name: 'Test' });
202
202
 
203
- Obj.change(obj, (o) => {
204
- const meta = Obj.getMeta(o);
203
+ Obj.change(obj, (obj) => {
204
+ const meta = Obj.getMeta(obj);
205
205
  meta.tags = ['tag-1', 'tag-2'];
206
206
  meta.keys.push({ source: 'external', id: '123' });
207
207
  });
@@ -214,12 +214,12 @@ describe('Obj.change enforcement', () => {
214
214
  test('multiple mutations in single change all persist', ({ expect }) => {
215
215
  const obj = Obj.make(TestSchema.Person, { name: 'Test' });
216
216
 
217
- Obj.change(obj, (o) => {
218
- o.name = 'Name 1';
219
- o.name = 'Name 2';
220
- o.name = 'Name 3';
221
- Obj.addTag(o, 'tag-1');
222
- Obj.addTag(o, 'tag-2');
217
+ Obj.change(obj, (obj) => {
218
+ obj.name = 'Name 1';
219
+ obj.name = 'Name 2';
220
+ obj.name = 'Name 3';
221
+ Obj.addTag(obj, 'tag-1');
222
+ Obj.addTag(obj, 'tag-2');
223
223
  });
224
224
 
225
225
  // All mutations should persist.
@@ -237,9 +237,9 @@ describe('Obj.change enforcement', () => {
237
237
  notificationCount++;
238
238
  });
239
239
 
240
- Obj.change(obj, (p) => {
241
- p.name = 'Jane';
242
- p.age = 30;
240
+ Obj.change(obj, (obj) => {
241
+ obj.name = 'Jane';
242
+ obj.age = 30;
243
243
  });
244
244
 
245
245
  // Should only fire one notification for all changes.
@@ -256,8 +256,8 @@ describe('Obj.change enforcement', () => {
256
256
  address: { city: 'NYC', coordinates: {} },
257
257
  });
258
258
 
259
- Obj.change(obj, (p) => {
260
- p.address!.state = 'NY';
259
+ Obj.change(obj, (obj) => {
260
+ obj.address!.state = 'NY';
261
261
  });
262
262
 
263
263
  expect(obj.address?.state).toBe('NY');
@@ -270,9 +270,9 @@ describe('Obj.change enforcement', () => {
270
270
  address: { city: 'NYC', coordinates: { lat: 40.7128, lng: -74.006 } },
271
271
  });
272
272
 
273
- Obj.change(obj, (p) => {
274
- p.address!.coordinates!.lat = 51.5074;
275
- p.address!.coordinates!.lng = -0.1278;
273
+ Obj.change(obj, (obj) => {
274
+ obj.address!.coordinates!.lat = 51.5074;
275
+ obj.address!.coordinates!.lng = -0.1278;
276
276
  });
277
277
 
278
278
  expect(obj.address?.coordinates?.lat).toBe(51.5074);
@@ -306,8 +306,8 @@ describe('Obj.change enforcement', () => {
306
306
  test('nested Obj.change calls work correctly', ({ expect }) => {
307
307
  const obj = Obj.make(TestSchema.Person, { name: 'John' });
308
308
 
309
- Obj.change(obj, (p) => {
310
- p.name = 'Jane';
309
+ Obj.change(obj, (obj) => {
310
+ obj.name = 'Jane';
311
311
 
312
312
  // Nested change should work (already in change context).
313
313
  Obj.change(obj, (p2) => {
@@ -323,8 +323,8 @@ describe('Obj.change enforcement', () => {
323
323
  const obj = Obj.make(TestSchema.Person, { name: 'John' });
324
324
 
325
325
  expect(() => {
326
- Obj.change(obj, (p) => {
327
- p.name = 'Jane';
326
+ Obj.change(obj, (obj) => {
327
+ obj.name = 'Jane';
328
328
  throw new Error('Test error');
329
329
  });
330
330
  }).toThrow('Test error');
@@ -344,8 +344,8 @@ describe('Obj.change enforcement', () => {
344
344
  fields: [{ label: 'tag1', value: 'val1' }],
345
345
  });
346
346
 
347
- Obj.change(obj, (p) => {
348
- p.fields!.push({ label: 'tag2', value: 'val2' });
347
+ Obj.change(obj, (obj) => {
348
+ obj.fields!.push({ label: 'tag2', value: 'val2' });
349
349
  });
350
350
 
351
351
  expect(obj.fields).toHaveLength(2);
@@ -362,8 +362,8 @@ describe('Obj.change enforcement', () => {
362
362
  });
363
363
 
364
364
  let popped: any;
365
- Obj.change(obj, (p) => {
366
- popped = p.fields!.pop();
365
+ Obj.change(obj, (obj) => {
366
+ popped = obj.fields!.pop();
367
367
  });
368
368
 
369
369
  expect(popped.label).toBe('b');
@@ -380,8 +380,8 @@ describe('Obj.change enforcement', () => {
380
380
  ],
381
381
  });
382
382
 
383
- Obj.change(obj, (p) => {
384
- p.fields!.splice(1, 1, { label: 'x', value: 'x' });
383
+ Obj.change(obj, (obj) => {
384
+ obj.fields!.splice(1, 1, { label: 'x', value: 'x' });
385
385
  });
386
386
 
387
387
  expect(obj.fields).toHaveLength(3);
@@ -429,8 +429,8 @@ describe('Obj.change enforcement', () => {
429
429
  test('delete property within Obj.change', ({ expect }) => {
430
430
  const obj = Obj.make(TestSchema.Person, { name: 'John', age: 25 });
431
431
 
432
- Obj.change(obj, (p) => {
433
- delete p.age;
432
+ Obj.change(obj, (obj) => {
433
+ delete obj.age;
434
434
  });
435
435
 
436
436
  expect(obj.age).toBeUndefined();
@@ -455,8 +455,8 @@ describe('Obj.change enforcement', () => {
455
455
  [Relation.Target]: target,
456
456
  });
457
457
 
458
- Relation.change(rel, (r) => {
459
- const meta = Relation.getMeta(r);
458
+ Relation.change(rel, (obj) => {
459
+ const meta = Relation.getMeta(obj);
460
460
  meta.tags = ['rel-tag'];
461
461
  meta.keys.push({ source: 'rel-source', id: 'rel-key' });
462
462
  });
@@ -473,14 +473,14 @@ describe('Obj.change enforcement', () => {
473
473
  [Relation.Target]: target,
474
474
  });
475
475
 
476
- Relation.change(rel, (r) => {
477
- Relation.addTag(r, 'important');
476
+ Relation.change(rel, (obj) => {
477
+ Relation.addTag(obj, 'important');
478
478
  });
479
479
 
480
480
  expect(Relation.getMeta(rel).tags).toContain('important');
481
481
 
482
- Relation.change(rel, (r) => {
483
- Relation.removeTag(r, 'important');
482
+ Relation.change(rel, (obj) => {
483
+ Relation.removeTag(obj, 'important');
484
484
  });
485
485
 
486
486
  expect(Relation.getMeta(rel).tags).not.toContain('important');
@@ -494,8 +494,8 @@ describe('Obj.change enforcement', () => {
494
494
 
495
495
  // Direct assignment of root ECHO objects (created with Obj.make) is not allowed.
496
496
  expect(() => {
497
- Obj.change(obj, (o) => {
498
- o.other = other;
497
+ Obj.change(obj, (obj) => {
498
+ obj.other = other;
499
499
  });
500
500
  }).toThrow(/Object references must be wrapped with `Ref\.make`/);
501
501
  });
@@ -504,14 +504,14 @@ describe('Obj.change enforcement', () => {
504
504
  const obj = Obj.make(TestSchema.Expando, {});
505
505
 
506
506
  // Assign a plain object (not created with Obj.make).
507
- Obj.change(obj, (o) => {
508
- o.nested = { value: 'initial' };
507
+ Obj.change(obj, (obj) => {
508
+ obj.nested = { value: 'initial' };
509
509
  });
510
510
  expect(obj.nested.value).toBe('initial');
511
511
 
512
512
  // Modify plain nested object through parent's change context.
513
- Obj.change(obj, (o) => {
514
- o.nested.value = 'modified';
513
+ Obj.change(obj, (obj) => {
514
+ obj.nested.value = 'modified';
515
515
  });
516
516
  expect(obj.nested.value).toBe('modified');
517
517
  });
@@ -8,8 +8,8 @@ import { describe, expect, test } from 'vitest';
8
8
 
9
9
  import { isNode } from '@dxos/util';
10
10
 
11
- import { TestSchema, updateCounter } from '../../testing';
12
- import { createObject } from '../object';
11
+ import { TestSchema, updateCounter } from '../../../testing';
12
+ import { createObject } from '../../Obj';
13
13
  import { ATTR_META } from '../types';
14
14
 
15
15
  import { makeObject } from './make-object';
@@ -7,16 +7,19 @@ import { invariant } from '@dxos/invariant';
7
7
  import { DXN } from '@dxos/keys';
8
8
  import { deepMapValues } from '@dxos/util';
9
9
 
10
+ import { Ref } from '../../Ref';
10
11
  import {
12
+ ATTR_META,
11
13
  ATTR_RELATION_SOURCE,
12
14
  ATTR_RELATION_TARGET,
13
15
  ATTR_SELF_DXN,
16
+ ATTR_TYPE,
17
+ MetaId,
14
18
  RelationSourceDXNId,
15
19
  RelationTargetDXNId,
16
20
  SelfDXNId,
17
- } from '../entities';
18
- import { Ref } from '../ref';
19
- import { ATTR_META, ATTR_TYPE, MetaId, TypeId } from '../types';
21
+ TypeId,
22
+ } from '../types';
20
23
 
21
24
  /**
22
25
  * Attaches a toJSON method to the object for typed serialization.
@@ -6,8 +6,8 @@ import type * as Schema from 'effect/Schema';
6
6
 
7
7
  import { ObjectId } from '@dxos/keys';
8
8
 
9
- import { getTypeAnnotation } from '../annotations';
10
- import { type AnyProperties, KindId, MetaId, type ObjectMeta, ObjectMetaSchema } from '../types';
9
+ import { getTypeAnnotation } from '../../Annotation';
10
+ import { type AnyProperties, KindId, MetaId, type ObjectMeta, ObjectMetaSchema, ParentId } from '../types';
11
11
 
12
12
  import { defineHiddenProperty } from './define-hidden-property';
13
13
  import { attachTypedJsonSerializer } from './json-serializer';
@@ -35,7 +35,8 @@ export const makeObject: {
35
35
  meta?: ObjectMeta,
36
36
  ): T;
37
37
  } = <T extends AnyProperties>(schema: Schema.Schema<T, any>, obj: MakeObjectProps<T>, meta?: ObjectMeta): T => {
38
- return createReactiveObject<T>({ ...obj } as T, meta, schema);
38
+ // Use Object.assign to copy symbol properties (like ParentId) that spread operator doesn't copy.
39
+ return createReactiveObject<T>(Object.assign({}, obj) as T, meta, schema);
39
40
  };
40
41
 
41
42
  const createReactiveObject = <T extends AnyProperties>(obj: T, meta?: ObjectMeta, schema?: Schema.Schema<T>): T => {
@@ -47,12 +48,21 @@ const createReactiveObject = <T extends AnyProperties>(obj: T, meta?: ObjectMeta
47
48
  throw new Error('Schema is required for reactive objects. Use Atom for untyped reactive state.');
48
49
  }
49
50
 
51
+ // Extract parent from props (can be set via [Obj.Parent]).
52
+ const parent = (obj as any)[ParentId];
53
+ if (parent !== undefined) {
54
+ delete (obj as any)[ParentId];
55
+ }
56
+
50
57
  const annotation = getTypeAnnotation(schema);
51
58
  if (annotation) {
52
59
  setIdOnTarget(obj);
53
60
  defineHiddenProperty(obj, KindId, annotation.kind);
54
61
  }
55
62
  initMeta(obj, meta);
63
+ if (parent !== undefined) {
64
+ defineHiddenProperty(obj, ParentId, parent);
65
+ }
56
66
  prepareTypedTarget(obj, schema);
57
67
  attachTypedJsonSerializer(obj);
58
68
  const proxy = createProxy<T>(obj, TypedReactiveHandler.instance);
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type RefTypeId } from '../ref/ref';
5
+ import { type RefTypeId } from '../../Ref/ref';
6
6
 
7
7
  import { getProxyTarget } from './proxy-utils';
8
8
  import { ChangeId, EventId } from './symbols';
@@ -6,14 +6,14 @@ import * as Schema from 'effect/Schema';
6
6
  import * as SchemaAST from 'effect/SchemaAST';
7
7
  import { describe, expect, test } from 'vitest';
8
8
 
9
- import { createEchoSchema } from '../../testing';
10
- import { PropertyMeta, getPropertyMetaAnnotation, getTypeAnnotation } from '../annotations';
11
- import { EchoObjectSchema } from '../entities';
9
+ import { createEchoSchema } from '../../../testing';
10
+ import { PropertyMeta, getPropertyMetaAnnotation, getTypeAnnotation } from '../../Annotation';
11
+ import { EchoObjectSchema } from '../../Entity';
12
12
 
13
13
  // TODO(dmaretskyi): Comment.
14
14
  const EmptySchemaType = Schema.Struct({}).pipe(
15
15
  EchoObjectSchema({
16
- typename: 'example.com/type/Empty',
16
+ typename: 'com.example.type.empty',
17
17
  version: '0.1.0',
18
18
  }),
19
19
  );
@@ -27,7 +27,7 @@ describe('dynamic schema', () => {
27
27
  field2: Schema.Boolean,
28
28
  }).pipe(
29
29
  EchoObjectSchema({
30
- typename: 'example.com/type/Test',
30
+ typename: 'com.example.type.test',
31
31
  version: '0.1.0',
32
32
  }),
33
33
  );
@@ -44,7 +44,7 @@ describe('dynamic schema', () => {
44
44
  field1: Schema.String,
45
45
  }).pipe(
46
46
  EchoObjectSchema({
47
- typename: 'example.com/type/Test',
47
+ typename: 'com.example.type.test',
48
48
  version: '0.1.0',
49
49
  }),
50
50
  );
@@ -95,7 +95,7 @@ describe('dynamic schema', () => {
95
95
  registered.updateFields({ field3: Schema.Boolean });
96
96
  registered.removeFields(['field2']);
97
97
  expect(getTypeAnnotation(registered)).to.deep.contain({
98
- typename: 'example.com/type/Empty',
98
+ typename: 'com.example.type.empty',
99
99
  version: '0.1.0',
100
100
  });
101
101
  expect(getPropertyMetaAnnotation(registered.getProperties()[0], metaNamespace)).to.deep.eq(metaInfo);
@@ -111,7 +111,7 @@ describe('dynamic schema', () => {
111
111
  });
112
112
 
113
113
  // First update.
114
- const newTypename1 = 'example.com/type/Individual';
114
+ const newTypename1 = 'com.example.type.individual';
115
115
  registered.updateTypename(newTypename1);
116
116
 
117
117
  // Basic typename update checks.
@@ -132,13 +132,13 @@ describe('dynamic schema', () => {
132
132
  expect(nameMeta).toEqual({ maxLength: 10 });
133
133
 
134
134
  // Second update to ensure multiple updates work.
135
- const newTypename2 = 'example.com/type/Person';
135
+ const newTypename2 = 'com.example.type.person';
136
136
  registered.updateTypename(newTypename2);
137
137
  expect(registered.typename).toBe(newTypename2);
138
138
  expect(registered.jsonSchema.$id).toBe(`dxn:type:${newTypename2}`);
139
139
  expect(registered.jsonSchema.typename).toBe(newTypename2);
140
140
  expect(getTypeAnnotation(registered)).to.deep.contain({
141
- typename: 'example.com/type/Person',
141
+ typename: 'com.example.type.person',
142
142
  version: '0.1.0',
143
143
  });
144
144
  });
@@ -5,10 +5,10 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
  import { describe, expect, test } from 'vitest';
7
7
 
8
- import { TestSchema } from '../../testing';
9
- import { EchoObjectSchema } from '../entities';
10
- import { setValue } from '../object';
11
- import { Ref } from '../ref';
8
+ import { TestSchema } from '../../../testing';
9
+ import { EchoObjectSchema } from '../../Entity';
10
+ import { setValue } from '../../Obj';
11
+ import { Ref } from '../../Ref';
12
12
  import { foreignKey, getMeta } from '../types';
13
13
 
14
14
  import { makeObject } from './make-object';
@@ -40,10 +40,10 @@ describe('complex schema validations', () => {
40
40
 
41
41
  test('references', () => {
42
42
  const Foo = Schema.Struct({ field: Schema.String }).pipe(
43
- EchoObjectSchema({ typename: 'example.com/type/Foo', version: '0.1.0' }),
43
+ EchoObjectSchema({ typename: 'com.example.type.foo', version: '0.1.0' }),
44
44
  );
45
45
  const Bar = Schema.Struct({ fooRef: Ref(Foo) }).pipe(
46
- EchoObjectSchema({ typename: 'example.com/type/Bar', version: '0.1.0' }),
46
+ EchoObjectSchema({ typename: 'com.example.type.bar', version: '0.1.0' }),
47
47
  );
48
48
  const field = 'hello';
49
49
  expect(() => makeObject(Bar, { fooRef: { id: '1', field } as any })).to.throw();
@@ -11,9 +11,8 @@ import { Event } from '@dxos/async';
11
11
  import { inspectCustom } from '@dxos/debug';
12
12
  import { invariant } from '@dxos/invariant';
13
13
 
14
- import { getSchemaDXN } from '../annotations';
15
- import { ObjectDeletedId } from '../entities';
16
- import { SchemaId, TypeId } from '../types';
14
+ import { getSchemaDXN } from '../../Annotation';
15
+ import { ObjectDeletedId, ParentId, SchemaId, TypeId } from '../types';
17
16
 
18
17
  import { executeChange, isInChangeContext, queueNotification } from './change-context';
19
18
  import { defineHiddenProperty } from './define-hidden-property';
@@ -47,6 +46,7 @@ type ProxyTarget = {
47
46
  * Schema for the root.
48
47
  */
49
48
  [SchemaId]: Schema.Schema.AnyNoContext;
49
+ [ParentId]?: any;
50
50
 
51
51
  /**
52
52
  * For modifications.
@@ -320,6 +320,10 @@ export class TypedReactiveHandler implements ReactiveHandler<ProxyTarget> {
320
320
  ): { echoRoot: object; preparedValue: any } {
321
321
  const echoRoot = getEchoRoot(target);
322
322
 
323
+ if (prop === ParentId) {
324
+ return { echoRoot, preparedValue: value }; // Short-circuit for parent assignment.
325
+ }
326
+
323
327
  // Check for cycles before assignment.
324
328
  if (isValidProxyTarget(value) || isProxy(value)) {
325
329
  if (wouldCreateCycle(echoRoot, value)) {
@@ -363,6 +367,9 @@ export class TypedReactiveHandler implements ReactiveHandler<ProxyTarget> {
363
367
  }
364
368
 
365
369
  private _validateValue(target: any, prop: string | symbol, value: any) {
370
+ if (prop === ParentId) {
371
+ return value;
372
+ }
366
373
  const schema = SchemaValidator.getTargetPropertySchema(target, prop);
367
374
  const _ = Schema.asserts(schema)(value);
368
375
  if (isValidProxyTarget(value)) {
@@ -6,7 +6,7 @@ import * as Schema from 'effect/Schema';
6
6
  import type * as Types from 'effect/Types';
7
7
  import { describe, expect, test } from 'vitest';
8
8
 
9
- import { EchoObjectSchema } from '../entities';
9
+ import { EchoObjectSchema } from '../../Entity';
10
10
  import { getSchema } from '../types';
11
11
 
12
12
  import { makeObject } from './make-object';
@@ -16,7 +16,7 @@ const Organization = Schema.Struct({
16
16
  name: Schema.String,
17
17
  }).pipe(
18
18
  EchoObjectSchema({
19
- typename: 'example.com/type/Organization',
19
+ typename: 'com.example.type.organization',
20
20
  version: '0.1.0',
21
21
  }),
22
22
  );
@@ -34,7 +34,7 @@ const Contact = Schema.Struct(
34
34
  ).pipe(
35
35
  Schema.partial,
36
36
  EchoObjectSchema({
37
- typename: 'example.com/type/Person',
37
+ typename: 'com.example.type.person',
38
38
  version: '0.1.0',
39
39
  }),
40
40
  );
@@ -101,7 +101,7 @@ describe('EchoObjectSchema class DSL', () => {
101
101
  meta: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
102
102
  }).pipe(
103
103
  EchoObjectSchema({
104
- typename: 'dxos.org/type/FunctionTrigger',
104
+ typename: 'org.dxos.type.function-trigger',
105
105
  version: '0.1.0',
106
106
  }),
107
107
  );
@@ -14,12 +14,12 @@ import { type ATTR_META, type ObjectMeta } from './meta';
14
14
  * NOTE: This describes the base type for all database objects.
15
15
  * It is stricter than `T extends {}` or `T extends object`.
16
16
  */
17
- // TODO(burdon): Make internal.
18
17
  // TODO(burdon): Prefer Record<string, unknown>.
19
18
  export type AnyProperties = Record<string, any>;
20
19
 
21
20
  /**
22
21
  * Canonical type for all ECHO entities (objects and relations).
22
+ * @depreacted Remove, use Entity.Unknown instead.
23
23
  */
24
24
  // TODO(wittjosiah): Remove. Prefer higher level types (e.g. Entity.Unknown).
25
25
  export interface AnyEntity {
@@ -43,10 +43,10 @@ export enum EntityKind {
43
43
  export const EntityKindSchema = Schema.Enums(EntityKind);
44
44
 
45
45
  /**
46
- * Typename for generic object references (Type.Obj / Type.Ref(Type.Obj)).
46
+ * Typename for generic object references (Type.Obj / Ref.Ref(Obj.Unknown)).
47
47
  * Used when referencing any object without a specific schema.
48
48
  */
49
- export const ANY_OBJECT_TYPENAME = 'dxos.org/schema/AnyObject';
49
+ export const ANY_OBJECT_TYPENAME = 'org.dxos.schema.any-object';
50
50
 
51
51
  /**
52
52
  * Version for generic object references.
@@ -5,5 +5,6 @@
5
5
  export * from './base';
6
6
  export * from './entity';
7
7
  export * from './meta';
8
+ export * from './model-symbols';
8
9
  export * from './typename';
9
10
  export * from './version';