@dxos/echo 0.8.4-main.937b3ca → 0.8.4-main.9be5663bfe

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 (668) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/{browser → neutral}/Annotation.mjs +9 -5
  3. package/dist/lib/neutral/Database.mjs +47 -0
  4. package/dist/lib/{browser → neutral}/Entity.mjs +19 -12
  5. package/dist/lib/{browser → neutral}/Err.mjs +4 -3
  6. package/dist/lib/neutral/Extension.mjs +18 -0
  7. package/dist/lib/neutral/Feed.mjs +48 -0
  8. package/dist/lib/neutral/Filter.mjs +72 -0
  9. package/dist/lib/{browser → neutral}/Format.mjs +4 -5
  10. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  11. package/dist/lib/{browser → neutral}/Key.mjs +2 -3
  12. package/dist/lib/{node-esm → neutral}/Obj.mjs +39 -17
  13. package/dist/lib/{browser → neutral}/Order.mjs +2 -3
  14. package/dist/lib/neutral/Query.mjs +38 -0
  15. package/dist/lib/neutral/QueryResult.mjs +2 -0
  16. package/dist/lib/neutral/Ref.mjs +24 -0
  17. package/dist/lib/{browser → neutral}/Relation.mjs +22 -13
  18. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  19. package/dist/lib/neutral/Tag.mjs +29 -0
  20. package/dist/lib/neutral/Type.mjs +37 -0
  21. package/dist/lib/{browser/chunk-XDIUHAAX.mjs → neutral/chunk-46QNGNTY.mjs} +9 -5
  22. package/dist/lib/neutral/chunk-46QNGNTY.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-5VKHCUDA.mjs +299 -0
  24. package/dist/lib/neutral/chunk-5VKHCUDA.mjs.map +7 -0
  25. package/dist/lib/{node-esm/chunk-YOLH5KS4.mjs → neutral/chunk-6URFBQJH.mjs} +104 -26
  26. package/dist/lib/neutral/chunk-6URFBQJH.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-7SQD3FRZ.mjs +159 -0
  28. package/dist/lib/neutral/chunk-7SQD3FRZ.mjs.map +7 -0
  29. package/dist/lib/{browser/chunk-INHXFXY5.mjs → neutral/chunk-ANHVGJI4.mjs} +2 -3
  30. package/dist/lib/{node-esm/chunk-AJEMYSIR.mjs.map → neutral/chunk-ANHVGJI4.mjs.map} +1 -1
  31. package/dist/lib/{browser/chunk-ZHXZGIXD.mjs → neutral/chunk-BNCCGLJN.mjs} +1 -3
  32. package/dist/lib/{node-esm/chunk-MOLNWFNL.mjs.map → neutral/chunk-BNCCGLJN.mjs.map} +2 -2
  33. package/dist/lib/{browser/chunk-FRDT7RA4.mjs → neutral/chunk-DQYLD2RB.mjs} +15 -16
  34. package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +7 -0
  35. package/dist/lib/{node-esm/chunk-ZBB67AKD.mjs → neutral/chunk-E5PBQJWV.mjs} +9 -6
  36. package/dist/lib/neutral/chunk-E5PBQJWV.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-EBVB5NOH.mjs +133 -0
  38. package/dist/lib/neutral/chunk-EBVB5NOH.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-FNEFSO2C.mjs +787 -0
  40. package/dist/lib/neutral/chunk-FNEFSO2C.mjs.map +7 -0
  41. package/dist/lib/{browser/chunk-BJPE6CIC.mjs → neutral/chunk-FW7UJX25.mjs} +1708 -2721
  42. package/dist/lib/neutral/chunk-FW7UJX25.mjs.map +7 -0
  43. package/dist/lib/{browser/chunk-PQZW3S6L.mjs → neutral/chunk-GZQTCRJB.mjs} +3 -4
  44. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-HBJ7JT5A.mjs +120 -0
  46. package/dist/lib/neutral/chunk-HBJ7JT5A.mjs.map +7 -0
  47. package/dist/lib/{browser/chunk-CGS2ULMK.mjs → neutral/chunk-J5LGTIGS.mjs} +1 -2
  48. package/dist/lib/{browser/chunk-U2J7TA7K.mjs → neutral/chunk-OLFCVPOO.mjs} +6 -7
  49. package/dist/lib/neutral/chunk-OLFCVPOO.mjs.map +7 -0
  50. package/dist/lib/{browser/chunk-IXVWLTG7.mjs → neutral/chunk-OMUPQMLR.mjs} +1 -3
  51. package/dist/lib/{browser/chunk-IXVWLTG7.mjs.map → neutral/chunk-OMUPQMLR.mjs.map} +1 -1
  52. package/dist/lib/neutral/chunk-QWAOTFCY.mjs +396 -0
  53. package/dist/lib/neutral/chunk-QWAOTFCY.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-R72KFH2X.mjs +34 -0
  55. package/dist/lib/neutral/chunk-R72KFH2X.mjs.map +7 -0
  56. package/dist/lib/{browser/chunk-ZAGAOZVY.mjs → neutral/chunk-T2JOLN37.mjs} +73 -7
  57. package/dist/lib/neutral/chunk-T2JOLN37.mjs.map +7 -0
  58. package/dist/lib/{browser/chunk-YKTSSMDS.mjs → neutral/chunk-TBKX6JQO.mjs} +4 -6
  59. package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +7 -0
  60. package/dist/lib/{browser/chunk-CJ5YELTO.mjs → neutral/chunk-UBEZSGXY.mjs} +15 -3
  61. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  62. package/dist/lib/{browser/chunk-JMKVF2YQ.mjs → neutral/chunk-UI6MWK5W.mjs} +3 -4
  63. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  64. package/dist/lib/{browser/chunk-KQQGVHFN.mjs → neutral/chunk-UPWIIW2V.mjs} +12 -58
  65. package/dist/lib/neutral/chunk-UPWIIW2V.mjs.map +7 -0
  66. package/dist/lib/{node-esm/chunk-ANLVLWME.mjs → neutral/chunk-WVLOCXB5.mjs} +33 -10
  67. package/dist/lib/neutral/chunk-WVLOCXB5.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  69. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  70. package/dist/lib/{browser/chunk-2SBB7OWV.mjs → neutral/chunk-YSLSJ7QS.mjs} +73 -25
  71. package/dist/lib/neutral/chunk-YSLSJ7QS.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-ZGVZNBBJ.mjs +415 -0
  73. package/dist/lib/neutral/chunk-ZGVZNBBJ.mjs.map +7 -0
  74. package/dist/lib/{node-esm/chunk-NBWL7UCZ.mjs → neutral/chunk-ZIXGDU6F.mjs} +9 -4
  75. package/dist/lib/neutral/chunk-ZIXGDU6F.mjs.map +7 -0
  76. package/dist/lib/neutral/index.mjs +101 -0
  77. package/dist/lib/{browser → neutral}/internal/index.mjs +57 -40
  78. package/dist/lib/neutral/meta.json +1 -0
  79. package/dist/lib/{node-esm → neutral}/testing/index.mjs +44 -37
  80. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  81. package/dist/types/src/Annotation.d.ts +23 -1
  82. package/dist/types/src/Annotation.d.ts.map +1 -1
  83. package/dist/types/src/Collection.d.ts +16 -0
  84. package/dist/types/src/Collection.d.ts.map +1 -0
  85. package/dist/types/src/Database.d.ts +86 -84
  86. package/dist/types/src/Database.d.ts.map +1 -1
  87. package/dist/types/src/Dataset.d.ts +19 -0
  88. package/dist/types/src/Dataset.d.ts.map +1 -0
  89. package/dist/types/src/Entity.d.ts +41 -15
  90. package/dist/types/src/Entity.d.ts.map +1 -1
  91. package/dist/types/src/Err.d.ts +43 -0
  92. package/dist/types/src/Err.d.ts.map +1 -1
  93. package/dist/types/src/Extension.d.ts +80 -0
  94. package/dist/types/src/Extension.d.ts.map +1 -0
  95. package/dist/types/src/Extension.test.d.ts +2 -0
  96. package/dist/types/src/Extension.test.d.ts.map +1 -0
  97. package/dist/types/src/Feed.d.ts +171 -0
  98. package/dist/types/src/Feed.d.ts.map +1 -0
  99. package/dist/types/src/Filter.d.ts +32 -5
  100. package/dist/types/src/Filter.d.ts.map +1 -1
  101. package/dist/types/src/Filter.test.d.ts +2 -0
  102. package/dist/types/src/Filter.test.d.ts.map +1 -0
  103. package/dist/types/src/Format.d.ts +3 -3
  104. package/dist/types/src/Format.d.ts.map +1 -1
  105. package/dist/types/src/Hypergraph.d.ts +8 -3
  106. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  107. package/dist/types/src/JsonSchema.d.ts +11 -4
  108. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  109. package/dist/types/src/Obj.d.ts +174 -46
  110. package/dist/types/src/Obj.d.ts.map +1 -1
  111. package/dist/types/src/Order.d.ts.map +1 -1
  112. package/dist/types/src/Query.d.ts +109 -15
  113. package/dist/types/src/Query.d.ts.map +1 -1
  114. package/dist/types/src/Ref.d.ts +58 -10
  115. package/dist/types/src/Ref.d.ts.map +1 -1
  116. package/dist/types/src/Relation.d.ts +75 -29
  117. package/dist/types/src/Relation.d.ts.map +1 -1
  118. package/dist/types/src/SchemaRegistry.d.ts +4 -4
  119. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  120. package/dist/types/src/Tag.d.ts +4 -3
  121. package/dist/types/src/Tag.d.ts.map +1 -1
  122. package/dist/types/src/Type.d.ts +51 -180
  123. package/dist/types/src/Type.d.ts.map +1 -1
  124. package/dist/types/src/View.d.ts +68 -0
  125. package/dist/types/src/View.d.ts.map +1 -0
  126. package/dist/types/src/hierarchy.test.d.ts +2 -0
  127. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  128. package/dist/types/src/index.d.ts +5 -0
  129. package/dist/types/src/index.d.ts.map +1 -1
  130. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +69 -8
  131. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  132. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  133. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  134. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  135. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  136. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  137. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +13 -1
  138. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  139. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  140. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  141. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
  142. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  143. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  144. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  145. package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
  146. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  147. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  148. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  149. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  150. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  151. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  152. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  153. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  154. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  155. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  156. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  157. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  158. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  159. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  160. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  161. package/dist/types/src/internal/{formats → Format}/select.d.ts +2 -2
  162. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  163. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  164. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  165. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  166. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  167. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  168. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  169. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  170. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  171. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  172. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  173. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +2 -1
  174. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  175. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  176. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  177. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  178. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  179. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  180. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  181. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  182. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  183. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  184. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  185. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  186. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +13 -5
  187. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  188. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  189. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  190. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  191. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  192. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +1 -1
  193. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  194. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  196. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
  197. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/Query.d.ts +10 -0
  200. package/dist/types/src/internal/Query.d.ts.map +1 -0
  201. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  202. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  203. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  204. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +18 -4
  205. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  206. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  207. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  208. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  209. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  210. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +8 -7
  211. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  212. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  213. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  214. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  215. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  216. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  217. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  218. package/dist/types/src/internal/{api → common/api}/meta.d.ts +2 -2
  219. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  220. package/dist/types/src/internal/common/index.d.ts +4 -0
  221. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  222. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  223. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  225. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  226. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  227. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  228. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  229. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  230. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  231. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  232. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  233. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  234. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  235. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +1 -1
  236. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  237. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  239. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  240. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +2 -1
  241. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  243. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  244. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  245. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  246. package/dist/types/src/internal/{types → common/types}/entity.d.ts +2 -2
  247. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  248. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  249. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  250. package/dist/types/src/internal/{types → common/types}/meta.d.ts +7 -6
  251. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  253. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  254. package/dist/types/src/internal/{types → common/types}/typename.d.ts +8 -0
  255. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  256. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  257. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  258. package/dist/types/src/internal/index.d.ts +9 -10
  259. package/dist/types/src/internal/index.d.ts.map +1 -1
  260. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  261. package/dist/types/src/testing/test-schema.d.ts +19 -18
  262. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  263. package/dist/types/tsconfig.tsbuildinfo +1 -1
  264. package/package.json +44 -113
  265. package/src/Annotation.ts +31 -1
  266. package/src/Collection.ts +37 -0
  267. package/src/Database.ts +167 -173
  268. package/src/Dataset.ts +26 -0
  269. package/src/Entity.ts +73 -54
  270. package/src/Err.ts +22 -0
  271. package/src/Extension.test.ts +235 -0
  272. package/src/Extension.ts +122 -0
  273. package/src/Feed.ts +283 -0
  274. package/src/Filter.test.ts +90 -0
  275. package/src/Filter.ts +81 -7
  276. package/src/Format.ts +3 -3
  277. package/src/Hypergraph.ts +9 -4
  278. package/src/JsonSchema.ts +14 -4
  279. package/src/Obj.test.ts +166 -13
  280. package/src/Obj.ts +407 -145
  281. package/src/Order.ts +3 -1
  282. package/src/Query.test.ts +339 -15
  283. package/src/Query.ts +275 -24
  284. package/src/Ref.ts +64 -11
  285. package/src/Relation.test.ts +8 -2
  286. package/src/Relation.ts +167 -133
  287. package/src/SchemaRegistry.ts +5 -4
  288. package/src/Tag.ts +6 -5
  289. package/src/Type.test.ts +10 -10
  290. package/src/Type.ts +70 -303
  291. package/src/View.ts +107 -0
  292. package/src/hierarchy.test.ts +33 -0
  293. package/src/index.ts +5 -0
  294. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -7
  295. package/src/internal/{annotations → Annotation}/annotations.ts +134 -16
  296. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  297. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  298. package/src/internal/{annotations → Annotation}/util.ts +14 -1
  299. package/src/internal/{api/entity.ts → Entity/api.ts} +3 -2
  300. package/src/internal/{entities → Entity}/entity.ts +6 -4
  301. package/src/internal/{entities → Entity}/index.ts +2 -0
  302. package/src/internal/{entities → Entity}/model.ts +17 -42
  303. package/src/internal/{entities → Entity}/object.ts +3 -6
  304. package/src/internal/{entities → Entity}/relation.ts +20 -39
  305. package/src/internal/{api → Entity}/version.ts +2 -2
  306. package/src/internal/{formats → Format}/date.test.ts +1 -2
  307. package/src/internal/{formats → Format}/format.test.ts +2 -3
  308. package/src/internal/{formats → Format}/select.ts +1 -1
  309. package/src/internal/{formats → Format}/types.ts +3 -3
  310. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  311. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  312. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +33 -34
  313. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -49
  314. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +16 -11
  315. package/src/internal/{object → Obj}/clone.ts +3 -3
  316. package/src/internal/{object → Obj}/common.ts +2 -2
  317. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  318. package/src/internal/{object → Obj}/create-object.ts +5 -6
  319. package/src/internal/{object → Obj}/deleted.ts +2 -2
  320. package/src/internal/{object → Obj}/inspect.ts +2 -2
  321. package/src/internal/{object → Obj}/json-serializer.test.ts +31 -8
  322. package/src/internal/{object → Obj}/json-serializer.ts +58 -24
  323. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  324. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  325. package/src/internal/{object → Obj}/set-value.test.ts +33 -33
  326. package/src/internal/{object → Obj}/set-value.ts +2 -2
  327. package/src/internal/Obj/snapshot.ts +105 -0
  328. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  329. package/src/internal/{object → Obj}/typed-object.ts +4 -4
  330. package/src/internal/Query.ts +134 -0
  331. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  332. package/src/internal/{ref → Ref}/ref.test.ts +5 -6
  333. package/src/internal/{ref → Ref}/ref.ts +29 -5
  334. package/src/internal/{schema → Type}/compose.test.ts +5 -6
  335. package/src/internal/{schema → Type}/compose.ts +14 -9
  336. package/src/internal/{schema → Type}/echo-schema.ts +11 -11
  337. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  338. package/src/internal/{schema → Type}/persistent-schema.ts +10 -4
  339. package/src/internal/{README.md → common/README.md} +1 -1
  340. package/src/internal/{api → common/api}/index.ts +0 -4
  341. package/src/internal/{api → common/api}/meta.ts +3 -3
  342. package/src/internal/common/index.ts +7 -0
  343. package/src/internal/{proxy → common/proxy}/change.test.ts +65 -65
  344. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  345. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  346. package/src/internal/{proxy → common/proxy}/make-object.ts +13 -4
  347. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  348. package/src/internal/{proxy → common/proxy}/reactive.ts +1 -2
  349. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  350. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +14 -19
  351. package/src/internal/{proxy → common/proxy}/typed-handler.ts +11 -6
  352. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +15 -16
  353. package/src/internal/{types → common/types}/base.ts +1 -1
  354. package/src/internal/{types → common/types}/entity.ts +2 -2
  355. package/src/internal/{types → common/types}/index.ts +1 -0
  356. package/src/internal/{types → common/types}/meta.ts +15 -14
  357. package/src/internal/common/types/model-symbols.ts +69 -0
  358. package/src/internal/{types → common/types}/typename.ts +10 -0
  359. package/src/internal/{types → common/types}/version.ts +2 -3
  360. package/src/internal/index.ts +9 -31
  361. package/src/testing/api.test.ts +4 -5
  362. package/src/testing/test-data.ts +0 -1
  363. package/src/testing/test-schema.ts +20 -18
  364. package/dist/lib/browser/Database.mjs +0 -18
  365. package/dist/lib/browser/Filter.mjs +0 -62
  366. package/dist/lib/browser/JsonSchema.mjs +0 -20
  367. package/dist/lib/browser/Obj.mjs +0 -91
  368. package/dist/lib/browser/Query.mjs +0 -27
  369. package/dist/lib/browser/QueryResult.mjs +0 -3
  370. package/dist/lib/browser/Ref.mjs +0 -23
  371. package/dist/lib/browser/SchemaRegistry.mjs +0 -3
  372. package/dist/lib/browser/Tag.mjs +0 -26
  373. package/dist/lib/browser/Type.mjs +0 -48
  374. package/dist/lib/browser/chunk-22JMFST2.mjs +0 -24
  375. package/dist/lib/browser/chunk-22JMFST2.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-2SBB7OWV.mjs.map +0 -7
  377. package/dist/lib/browser/chunk-6L5HHUVU.mjs +0 -158
  378. package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +0 -7
  379. package/dist/lib/browser/chunk-7STIBCP7.mjs +0 -133
  380. package/dist/lib/browser/chunk-7STIBCP7.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +0 -7
  382. package/dist/lib/browser/chunk-CJ5YELTO.mjs.map +0 -7
  383. package/dist/lib/browser/chunk-FPOISFQK.mjs +0 -40
  384. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +0 -7
  385. package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +0 -7
  386. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +0 -7
  387. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +0 -7
  388. package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +0 -7
  389. package/dist/lib/browser/chunk-MYCCGG2T.mjs +0 -15
  390. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +0 -7
  391. package/dist/lib/browser/chunk-NOPVNWPT.mjs +0 -204
  392. package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +0 -7
  393. package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +0 -7
  394. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs +0 -283
  395. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +0 -7
  396. package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +0 -7
  397. package/dist/lib/browser/chunk-W5D2GWAW.mjs +0 -98
  398. package/dist/lib/browser/chunk-W5D2GWAW.mjs.map +0 -7
  399. package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +0 -7
  400. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +0 -7
  401. package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +0 -7
  402. package/dist/lib/browser/chunk-ZHXZGIXD.mjs.map +0 -7
  403. package/dist/lib/browser/index.mjs +0 -85
  404. package/dist/lib/browser/meta.json +0 -1
  405. package/dist/lib/browser/testing/index.mjs +0 -367
  406. package/dist/lib/browser/testing/index.mjs.map +0 -7
  407. package/dist/lib/node-esm/Annotation.mjs +0 -33
  408. package/dist/lib/node-esm/Annotation.mjs.map +0 -7
  409. package/dist/lib/node-esm/Database.mjs +0 -18
  410. package/dist/lib/node-esm/Database.mjs.map +0 -7
  411. package/dist/lib/node-esm/Entity.mjs +0 -52
  412. package/dist/lib/node-esm/Entity.mjs.map +0 -7
  413. package/dist/lib/node-esm/Err.mjs +0 -11
  414. package/dist/lib/node-esm/Err.mjs.map +0 -7
  415. package/dist/lib/node-esm/Filter.mjs +0 -62
  416. package/dist/lib/node-esm/Format.mjs +0 -67
  417. package/dist/lib/node-esm/JsonSchema.mjs +0 -20
  418. package/dist/lib/node-esm/JsonSchema.mjs.map +0 -7
  419. package/dist/lib/node-esm/Key.mjs +0 -13
  420. package/dist/lib/node-esm/Key.mjs.map +0 -7
  421. package/dist/lib/node-esm/Obj.mjs.map +0 -7
  422. package/dist/lib/node-esm/Order.mjs +0 -13
  423. package/dist/lib/node-esm/Order.mjs.map +0 -7
  424. package/dist/lib/node-esm/Query.mjs +0 -27
  425. package/dist/lib/node-esm/Query.mjs.map +0 -7
  426. package/dist/lib/node-esm/QueryResult.mjs +0 -3
  427. package/dist/lib/node-esm/QueryResult.mjs.map +0 -7
  428. package/dist/lib/node-esm/Ref.mjs +0 -23
  429. package/dist/lib/node-esm/Ref.mjs.map +0 -7
  430. package/dist/lib/node-esm/Relation.mjs +0 -85
  431. package/dist/lib/node-esm/Relation.mjs.map +0 -7
  432. package/dist/lib/node-esm/SchemaRegistry.mjs +0 -3
  433. package/dist/lib/node-esm/SchemaRegistry.mjs.map +0 -7
  434. package/dist/lib/node-esm/Tag.mjs +0 -26
  435. package/dist/lib/node-esm/Tag.mjs.map +0 -7
  436. package/dist/lib/node-esm/Type.mjs +0 -48
  437. package/dist/lib/node-esm/Type.mjs.map +0 -7
  438. package/dist/lib/node-esm/chunk-4PNXQA64.mjs +0 -250
  439. package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +0 -7
  440. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +0 -158
  441. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs.map +0 -7
  442. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +0 -22
  443. package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +0 -7
  444. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +0 -57
  445. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs.map +0 -7
  446. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +0 -133
  447. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +0 -7
  448. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  449. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  450. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +0 -204
  451. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs.map +0 -7
  452. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +0 -43
  453. package/dist/lib/node-esm/chunk-K37NA7PO.mjs.map +0 -7
  454. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +0 -3847
  455. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +0 -7
  456. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +0 -9
  457. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +0 -15
  458. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +0 -7
  459. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs.map +0 -7
  460. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +0 -143
  461. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs.map +0 -7
  462. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +0 -41
  463. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs.map +0 -7
  464. package/dist/lib/node-esm/chunk-QYR67VBV.mjs +0 -288
  465. package/dist/lib/node-esm/chunk-QYR67VBV.mjs.map +0 -7
  466. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +0 -9
  467. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +0 -7
  468. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +0 -403
  469. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs.map +0 -7
  470. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +0 -69
  471. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +0 -7
  472. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +0 -74
  473. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs.map +0 -7
  474. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +0 -7
  475. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +0 -39
  476. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +0 -7
  477. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +0 -7
  478. package/dist/lib/node-esm/index.mjs +0 -85
  479. package/dist/lib/node-esm/index.mjs.map +0 -7
  480. package/dist/lib/node-esm/internal/index.mjs +0 -457
  481. package/dist/lib/node-esm/internal/index.mjs.map +0 -7
  482. package/dist/lib/node-esm/meta.json +0 -1
  483. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  484. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  485. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  486. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  487. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  488. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  489. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  490. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  491. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  492. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  493. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  494. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  495. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  496. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  497. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  498. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  499. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  500. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  501. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  502. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  503. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  504. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  505. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  506. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  507. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  508. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  509. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  510. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  511. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  512. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  513. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  514. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  515. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  516. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  517. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  518. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  519. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  520. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  521. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  522. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  523. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  524. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  525. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  526. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  527. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  528. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  529. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  530. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  531. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  532. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  533. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  534. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  535. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  536. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  537. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  538. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  539. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  540. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  541. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  542. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  543. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  544. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  545. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  546. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  547. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  548. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  549. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  550. package/dist/types/src/internal/proxy/reactive.d.ts.map +0 -1
  551. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  552. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  553. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  554. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  555. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  556. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  557. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  558. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  559. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  560. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  561. package/dist/types/src/internal/schema/compose.d.ts +0 -6
  562. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  563. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  564. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  565. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  566. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  567. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  568. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  569. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  570. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  571. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  572. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  573. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  574. package/src/internal/api/annotations.ts +0 -60
  575. package/src/internal/object/snapshot.ts +0 -70
  576. /package/dist/lib/{browser → neutral}/Annotation.mjs.map +0 -0
  577. /package/dist/lib/{browser → neutral}/Database.mjs.map +0 -0
  578. /package/dist/lib/{browser → neutral}/Entity.mjs.map +0 -0
  579. /package/dist/lib/{browser → neutral}/Err.mjs.map +0 -0
  580. /package/dist/lib/{browser/Filter.mjs.map → neutral/Extension.mjs.map} +0 -0
  581. /package/dist/lib/{browser/Format.mjs.map → neutral/Feed.mjs.map} +0 -0
  582. /package/dist/lib/{node-esm → neutral}/Filter.mjs.map +0 -0
  583. /package/dist/lib/{node-esm → neutral}/Format.mjs.map +0 -0
  584. /package/dist/lib/{browser → neutral}/JsonSchema.mjs.map +0 -0
  585. /package/dist/lib/{browser → neutral}/Key.mjs.map +0 -0
  586. /package/dist/lib/{browser → neutral}/Obj.mjs.map +0 -0
  587. /package/dist/lib/{browser → neutral}/Order.mjs.map +0 -0
  588. /package/dist/lib/{browser → neutral}/Query.mjs.map +0 -0
  589. /package/dist/lib/{browser → neutral}/QueryResult.mjs.map +0 -0
  590. /package/dist/lib/{browser → neutral}/Ref.mjs.map +0 -0
  591. /package/dist/lib/{browser → neutral}/Relation.mjs.map +0 -0
  592. /package/dist/lib/{browser → neutral}/SchemaRegistry.mjs.map +0 -0
  593. /package/dist/lib/{browser → neutral}/Tag.mjs.map +0 -0
  594. /package/dist/lib/{browser → neutral}/Type.mjs.map +0 -0
  595. /package/dist/lib/{browser/chunk-CGS2ULMK.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  596. /package/dist/lib/{browser → neutral}/index.mjs.map +0 -0
  597. /package/dist/lib/{browser → neutral}/internal/index.mjs.map +0 -0
  598. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  599. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  600. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  601. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  602. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  603. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  604. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  605. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  606. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  607. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  608. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  609. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  610. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  611. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  612. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  613. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  614. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  615. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  616. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  617. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  618. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  619. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  620. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  621. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  622. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  623. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  624. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  625. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  626. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  627. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  628. /package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +0 -0
  629. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  630. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  631. /package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +0 -0
  632. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  633. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  634. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  635. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  636. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  637. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  638. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  639. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  640. /package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +0 -0
  641. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  642. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  643. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  644. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  645. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  646. /package/src/internal/{entities → Entity}/util.ts +0 -0
  647. /package/src/internal/{formats → Format}/date.ts +0 -0
  648. /package/src/internal/{formats → Format}/format.ts +0 -0
  649. /package/src/internal/{formats → Format}/index.ts +0 -0
  650. /package/src/internal/{formats → Format}/number.ts +0 -0
  651. /package/src/internal/{formats → Format}/object.ts +0 -0
  652. /package/src/internal/{formats → Format}/string.ts +0 -0
  653. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  654. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  655. /package/src/internal/{object → Obj}/ids.ts +0 -0
  656. /package/src/internal/{object → Obj}/index.ts +0 -0
  657. /package/src/internal/{ref → Ref}/index.ts +0 -0
  658. /package/src/internal/{schema → Type}/index.ts +0 -0
  659. /package/src/internal/{proxy → common/proxy}/change-context.ts +0 -0
  660. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  661. /package/src/internal/{proxy → common/proxy}/errors.ts +0 -0
  662. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  663. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  664. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  665. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  666. /package/src/internal/{proxy → common/proxy}/reactive-array.ts +0 -0
  667. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  668. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
package/src/Relation.ts CHANGED
@@ -2,79 +2,35 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import type * as Schema from 'effect/Schema';
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
6
8
 
7
9
  import { raise } from '@dxos/debug';
8
10
  import type { ForeignKey } from '@dxos/echo-protocol';
9
- import { createJsonPath, getValue as getValue$ } from '@dxos/effect';
11
+ import { createJsonPath } from '@dxos/effect';
10
12
  import { assertArgument, invariant } from '@dxos/invariant';
11
13
  import { DXN, type ObjectId } from '@dxos/keys';
12
14
  import { assumeType } from '@dxos/util';
13
15
 
14
16
  import type * as Database from './Database';
15
17
  import * as Entity from './Entity';
16
- import {
17
- type ObjectJSON as APIJSON,
18
- ATTR_RELATION_SOURCE,
19
- ATTR_RELATION_TARGET,
20
- type AnyEntity,
21
- type Comparator as ApiComparator,
22
- type Meta as ApiMeta,
23
- type ReadonlyMeta as ApiReadonlyMeta,
24
- type EntityVersion as ApiVersion,
25
- type ChangeCallback,
26
- EntityKind,
27
- type InternalObjectProps,
28
- type KindId,
29
- MetaId,
30
- type Mutable,
31
- type ObjectMeta,
32
- RelationSourceDXNId,
33
- RelationSourceId,
34
- RelationTargetDXNId,
35
- RelationTargetId,
36
- SnapshotKindId,
37
- VersionTypeId,
38
- addTag as addTag$,
39
- change as change$,
40
- deleteKeys as deleteKeys$,
41
- getDXN as getDXN$,
42
- getDatabase as getDatabase$,
43
- getDescription as getDescription$,
44
- getKeys as getKeys$,
45
- getLabel as getLabel$,
46
- getMetaChecked as getMeta$,
47
- getObjectDXN,
48
- getSchema as getSchema$,
49
- getSnapshot as getSnapshot$,
50
- getTypeAnnotation,
51
- getTypeDXN as getTypeDXN$,
52
- getTypename as getTypename$,
53
- isDeleted as isDeleted$,
54
- isVersion,
55
- makeObject,
56
- removeTag as removeTag$,
57
- setDescription as setDescription$,
58
- setLabel as setLabel$,
59
- setValue as setValue$,
60
- sort as sort$,
61
- sortByLabel as sortByLabel$,
62
- sortByTypename as sortByTypename$,
63
- subscribe as subscribe$,
64
- objectToJSON as toJSON$,
65
- version as version$,
66
- } from './internal';
67
- import type * as Obj from './Obj';
18
+ import * as internal from './internal';
19
+ import * as entityInternal from './internal/Entity';
20
+ import * as Obj from './Obj';
68
21
  import type * as Type from './Type';
69
22
 
23
+ export type Endpoints<Source, Target> = {
24
+ [Source]: Source;
25
+ [Target]: Target;
26
+ };
27
+
70
28
  /**
71
29
  * Base type for all ECHO relations.
72
30
  * @private
73
31
  */
74
32
  interface BaseRelation<Source, Target>
75
- extends AnyEntity,
76
- Type.Relation.Endpoints<Source, Target>,
77
- Entity.OfKind<EntityKind.Relation> {}
33
+ extends internal.AnyEntity, Endpoints<Source, Target>, Entity.OfKind<internal.EntityKind.Relation> {}
78
34
 
79
35
  /**
80
36
  * Relation with no known properties beyond id, kind, source, and target.
@@ -85,78 +41,141 @@ interface BaseRelation<Source, Target>
85
41
  */
86
42
  export interface Unknown extends BaseRelation<Obj.Unknown, Obj.Unknown> {}
87
43
 
44
+ /**
45
+ * Runtime Effect schema for any ECHO relation.
46
+ * Use for validation, parsing, or as a reference target for collections.
47
+ * A relation has `id`, source, and target fields plus any additional properties.
48
+ *
49
+ * NOTE: `Schema.is(Type.Relation)` does STRUCTURAL validation only (checks for `id` field).
50
+ * Use `Relation.isRelation()` for proper ECHO instance type guards that check the KindId brand.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * // Structural type guard (accepts any object with id field)
55
+ * if (Schema.is(Type.Relation)(unknownValue)) { ... }
56
+ *
57
+ * // ECHO instance type guard (checks KindId brand)
58
+ * if (Relation.isRelation(unknownValue)) { ... }
59
+ * ```
60
+ */
61
+ // TODO(dmaretskyi): Change ObjModule.Any to ObjModule.Unknown to have stricter types.
62
+ export const Unknown: Type.Relation<Unknown, Obj.Any, Obj.Any> = Schema.Struct({
63
+ id: Schema.String,
64
+ }).pipe(
65
+ Schema.extend(Schema.Record({ key: Schema.String, value: Schema.Unknown })),
66
+ // TODO(dmaretskyi): Clean this up.
67
+ // NOTE: The EchoRelationSchema annotation is required for Ref.Ref(Relation.Unknown) to work.
68
+ // The typename/version/source/target only satisfy ECHO schema machinery for reference targets.
69
+ internal.EchoRelationSchema({
70
+ typename: 'org.dxos.schema.anyRelation',
71
+ version: '0.0.0',
72
+ source: Obj.Unknown,
73
+ target: Obj.Unknown,
74
+ }),
75
+ (schema) =>
76
+ Object.assign(schema, {
77
+ [internal.SchemaKindId]: (schema as any)[internal.SchemaKindId],
78
+ }) as unknown as Type.Relation<Unknown, Obj.Any, Obj.Any>,
79
+ );
80
+
88
81
  /**
89
82
  * Relation type with specific source and target types.
90
83
  */
91
- export type Relation<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> &
84
+ export type OfShape<Source extends Obj.Unknown, Target extends Obj.Unknown, Props> = BaseRelation<Source, Target> &
92
85
  Props;
93
86
 
94
87
  /**
95
88
  * Base type for snapshot relations (has SnapshotKindId instead of KindId).
96
89
  */
97
- interface BaseRelationSnapshot<Source, Target> extends AnyEntity, Type.Relation.Endpoints<Source, Target> {
98
- readonly [SnapshotKindId]: EntityKind.Relation;
90
+ interface BaseRelationSnapshot<Source, Target> extends internal.AnyEntity, Endpoints<Source, Target> {
91
+ readonly [Entity.SnapshotKindId]: internal.EntityKind.Relation;
99
92
  readonly id: ObjectId;
100
93
  }
101
94
 
95
+ /**
96
+ * JSON-encoded properties for relations.
97
+ */
98
+ export interface BaseRelationJson {
99
+ id: string;
100
+ [internal.ATTR_RELATION_SOURCE]: string;
101
+ [internal.ATTR_RELATION_TARGET]: string;
102
+ }
103
+
102
104
  /**
103
105
  * Immutable snapshot of an ECHO relation.
104
106
  * Branded with SnapshotKindId (not KindId).
105
107
  * Property values are frozen at the time the snapshot was created.
106
108
  * Returned by getSnapshot() and hooks.
107
109
  */
108
- export type Snapshot<T extends Unknown = Unknown> = Omit<T, KindId> & BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;
110
+ export type Snapshot<T extends Unknown = Unknown> = Omit<T, Entity.KindId> &
111
+ BaseRelationSnapshot<Obj.Unknown, Obj.Unknown>;
109
112
 
110
- export const Source: unique symbol = RelationSourceId as any;
113
+ export const Source: unique symbol = entityInternal.RelationSourceId as any;
111
114
  export type Source = typeof Source;
112
115
 
113
- export const Target: unique symbol = RelationTargetId as any;
116
+ export const Target: unique symbol = entityInternal.RelationTargetId as any;
114
117
  export type Target = typeof Target;
115
118
 
119
+ /**
120
+ * Get relation source type.
121
+ */
122
+ export type SourceOf<A> = A extends Endpoints<infer S, infer _T> ? S : never;
123
+
124
+ /**
125
+ * Get relation target type.
126
+ */
127
+ export type TargetOf<A> = A extends Endpoints<infer _S, infer T> ? T : never;
128
+
116
129
  /**
117
130
  * Internal props type for relation instance creation.
118
131
  */
119
- type RelationMakeProps<T extends Unknown> = {
132
+ type MakePropsInternal<T extends Unknown> = {
120
133
  id?: ObjectId;
121
- [MetaId]?: ObjectMeta;
134
+ [Meta]?: internal.ObjectMeta;
122
135
  [Source]: T[Source];
123
136
  [Target]: T[Target];
124
- } & Type.Properties<T>;
137
+ } & Entity.Properties<T>;
125
138
 
126
139
  /**
127
140
  * Props type for relation creation with a given schema.
128
141
  * Takes a schema type (created with Type.Relation) and extracts the props type.
129
142
  */
130
- export type MakeProps<S extends Type.Relation.Any> = RelationMakeProps<Schema.Schema.Type<S>>;
143
+ export type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<Schema.Schema.Type<S>>;
131
144
 
132
145
  /**
133
146
  * Creates new relation.
134
147
  * @param schema - Relation schema.
135
148
  * @param props - Relation properties. Endpoints are passed as [Relation.Source] and [Relation.Target] keys.
136
- * @param meta - Relation metadata.
149
+ * @param meta - Relation metadata. (deprecated; use [Obj.Meta] instead)
137
150
  * @returns
138
151
  */
139
152
  // 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).
140
153
  // TODO(dmaretskyi): Move meta into props.
141
- export const make = <S extends Type.Relation.Any>(
154
+ export const make = <S extends Type.AnyRelation>(
142
155
  schema: S,
143
- props: NoInfer<RelationMakeProps<Schema.Schema.Type<S>>>,
144
- meta?: ObjectMeta,
156
+ props: NoInfer<MakeProps<S>>,
145
157
  ): Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation> => {
146
- assertArgument(getTypeAnnotation(schema)?.kind === EntityKind.Relation, 'schema', 'Expected a relation schema');
147
-
148
- if (props[MetaId] != null) {
149
- meta = props[MetaId] as any;
150
- delete props[MetaId];
158
+ assertArgument(
159
+ internal.getTypeAnnotation(schema)?.kind === internal.EntityKind.Relation,
160
+ 'schema',
161
+ 'Expected a relation schema',
162
+ );
163
+ assertArgument(props[internal.ParentId] === undefined, 'props', 'Parent is not allowed for relations');
164
+
165
+ let meta: internal.ObjectMeta | undefined = undefined;
166
+
167
+ if (props[internal.MetaId] != null) {
168
+ meta = props[internal.MetaId] as any;
169
+ delete props[internal.MetaId];
151
170
  }
152
171
 
153
- const sourceDXN = getObjectDXN(props[Source]) ?? raise(new Error('Unresolved relation source'));
154
- const targetDXN = getObjectDXN(props[Target]) ?? raise(new Error('Unresolved relation target'));
172
+ const sourceDXN = internal.getObjectDXN(props[Source]) ?? raise(new Error('Unresolved relation source'));
173
+ const targetDXN = internal.getObjectDXN(props[Target]) ?? raise(new Error('Unresolved relation target'));
155
174
 
156
- (props as any)[RelationSourceDXNId] = sourceDXN;
157
- (props as any)[RelationTargetDXNId] = targetDXN;
175
+ (props as any)[internal.RelationSourceDXNId] = sourceDXN;
176
+ (props as any)[internal.RelationTargetDXNId] = targetDXN;
158
177
 
159
- return makeObject<Schema.Schema.Type<S>>(schema, props as any, meta);
178
+ return internal.makeObject<Schema.Schema.Type<S>>(schema, props as any, meta);
160
179
  };
161
180
 
162
181
  /**
@@ -167,13 +186,20 @@ export const isRelation = (value: unknown): value is Unknown => {
167
186
  if (typeof value !== 'object' || value === null) {
168
187
  return false;
169
188
  }
170
- if (ATTR_RELATION_SOURCE in value || ATTR_RELATION_TARGET in value) {
189
+ if (internal.ATTR_RELATION_SOURCE in value || internal.ATTR_RELATION_TARGET in value) {
171
190
  return true;
172
191
  }
173
192
 
174
193
  // Check for reactive relation (KindId) or snapshot (SnapshotKindId).
175
- const kind = (value as any)[Entity.KindId] ?? (value as any)[SnapshotKindId];
176
- return kind === EntityKind.Relation;
194
+ const kind = (value as any)[Entity.KindId] ?? (value as any)[Entity.SnapshotKindId];
195
+ return kind === internal.EntityKind.Relation;
196
+ };
197
+
198
+ export const isSnapshot = (value: unknown): value is Snapshot => {
199
+ if (typeof value !== 'object' || value === null) {
200
+ return false;
201
+ }
202
+ return (value as any)[Entity.SnapshotKindId] === internal.EntityKind.Relation;
177
203
  };
178
204
 
179
205
  /**
@@ -183,8 +209,8 @@ export const isRelation = (value: unknown): value is Unknown => {
183
209
  */
184
210
  export const getSourceDXN = (value: Unknown | Snapshot): DXN => {
185
211
  assertArgument(isRelation(value), 'Expected a relation');
186
- assumeType<InternalObjectProps>(value);
187
- const dxn = (value as InternalObjectProps)[RelationSourceDXNId];
212
+ assumeType<internal.InternalObjectProps>(value);
213
+ const dxn = (value as internal.InternalObjectProps)[internal.RelationSourceDXNId];
188
214
  invariant(dxn instanceof DXN);
189
215
  return dxn;
190
216
  };
@@ -196,8 +222,8 @@ export const getSourceDXN = (value: Unknown | Snapshot): DXN => {
196
222
  */
197
223
  export const getTargetDXN = (value: Unknown | Snapshot): DXN => {
198
224
  assertArgument(isRelation(value), 'Expected a relation');
199
- assumeType<InternalObjectProps>(value);
200
- const dxn = (value as InternalObjectProps)[RelationTargetDXNId];
225
+ assumeType<internal.InternalObjectProps>(value);
226
+ const dxn = (value as internal.InternalObjectProps)[internal.RelationTargetDXNId];
201
227
  invariant(dxn instanceof DXN);
202
228
  return dxn;
203
229
  };
@@ -207,12 +233,12 @@ export const getTargetDXN = (value: Unknown | Snapshot): DXN => {
207
233
  * Accepts both reactive relations and snapshots.
208
234
  * @throws If the object is not a relation.
209
235
  */
210
- export const getSource = <T extends Unknown | Snapshot>(relation: T): Type.Relation.Source<T> => {
236
+ export const getSource = <T extends Unknown | Snapshot>(relation: T): SourceOf<T> => {
211
237
  assertArgument(isRelation(relation), 'Expected a relation');
212
- assumeType<InternalObjectProps>(relation);
213
- const obj = (relation as InternalObjectProps)[RelationSourceId];
238
+ assumeType<internal.InternalObjectProps>(relation);
239
+ const obj = (relation as internal.InternalObjectProps)[internal.RelationSourceId];
214
240
  invariant(obj !== undefined, `Invalid source: ${relation.id}`);
215
- return obj as Type.Relation.Source<T>;
241
+ return obj as SourceOf<T>;
216
242
  };
217
243
 
218
244
  /**
@@ -220,12 +246,12 @@ export const getSource = <T extends Unknown | Snapshot>(relation: T): Type.Relat
220
246
  * Accepts both reactive relations and snapshots.
221
247
  * @throws If the object is not a relation.
222
248
  */
223
- export const getTarget = <T extends Unknown | Snapshot>(relation: T): Type.Relation.Target<T> => {
249
+ export const getTarget = <T extends Unknown | Snapshot>(relation: T): TargetOf<T> => {
224
250
  assertArgument(isRelation(relation), 'Expected a relation');
225
- assumeType<InternalObjectProps>(relation);
226
- const obj = (relation as InternalObjectProps)[RelationTargetId];
251
+ assumeType<internal.InternalObjectProps>(relation);
252
+ const obj = (relation as internal.InternalObjectProps)[internal.RelationTargetId];
227
253
  invariant(obj !== undefined, `Invalid target: ${relation.id}`);
228
- return obj as Type.Relation.Target<T>;
254
+ return obj as TargetOf<T>;
229
255
  };
230
256
 
231
257
  //
@@ -236,7 +262,7 @@ export const getTarget = <T extends Unknown | Snapshot>(relation: T): Type.Relat
236
262
  * Makes all properties mutable recursively.
237
263
  * Used to provide a mutable view of a relation within `Relation.change`.
238
264
  */
239
- export type { Mutable };
265
+ export type Mutable<T> = internal.Mutable<T>;
240
266
 
241
267
  /**
242
268
  * Perform mutations on an echo relation within a controlled context.
@@ -257,15 +283,15 @@ export type { Mutable };
257
283
  * });
258
284
  *
259
285
  * // Mutate within Relation.change
260
- * Relation.change(worksFor, (r) => {
261
- * r.role = 'Senior Engineer';
286
+ * Relation.change(worksFor, (obj) => {
287
+ * obj.role = 'Senior Engineer';
262
288
  * });
263
289
  * ```
264
290
  *
265
291
  * Note: Only accepts relations. Use `Obj.change` for objects.
266
292
  */
267
- export const change = <T extends Unknown>(relation: T, callback: ChangeCallback<T>): void => {
268
- change$(relation, callback);
293
+ export const change = <T extends Unknown>(relation: T, callback: internal.ChangeCallback<T>): void => {
294
+ internal.change(relation, callback);
269
295
  };
270
296
 
271
297
  //
@@ -277,7 +303,7 @@ export const change = <T extends Unknown>(relation: T, callback: ChangeCallback<
277
303
  * The snapshot is branded with SnapshotKindId instead of KindId,
278
304
  * making it distinguishable from the reactive relation at the type level.
279
305
  */
280
- export const getSnapshot: <T extends Unknown>(rel: T) => Snapshot<T> = getSnapshot$ as any;
306
+ export const getSnapshot: <T extends Unknown>(rel: T) => Snapshot<T> = internal.getSnapshot as any;
281
307
 
282
308
  //
283
309
  // Subscribe
@@ -290,7 +316,7 @@ export const getSnapshot: <T extends Unknown>(rel: T) => Snapshot<T> = getSnapsh
290
316
  * @returns Unsubscribe function.
291
317
  */
292
318
  export const subscribe = (rel: Unknown, callback: () => void): (() => void) => {
293
- return subscribe$(rel, callback);
319
+ return internal.subscribe(rel, callback);
294
320
  };
295
321
 
296
322
  //
@@ -302,7 +328,7 @@ export const subscribe = (rel: Unknown, callback: () => void): (() => void) => {
302
328
  * Accepts both reactive relations and snapshots.
303
329
  */
304
330
  export const getValue = (rel: Unknown | Snapshot, path: readonly (string | number)[]): any => {
305
- return getValue$(rel, createJsonPath(path));
331
+ return internal.getValue(rel, createJsonPath(path));
306
332
  };
307
333
 
308
334
  /**
@@ -313,7 +339,7 @@ export const getValue = (rel: Unknown | Snapshot, path: readonly (string | numbe
313
339
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
314
340
  */
315
341
  export const setValue: (rel: Mutable<Unknown>, path: readonly (string | number)[], value: any) => void =
316
- setValue$ as any;
342
+ internal.setValue as any;
317
343
 
318
344
  //
319
345
  // Type
@@ -323,24 +349,24 @@ export const setValue: (rel: Mutable<Unknown>, path: readonly (string | number)[
323
349
  * Get the DXN of the relation.
324
350
  * Accepts both reactive relations and snapshots.
325
351
  */
326
- export const getDXN = (entity: Unknown | Snapshot): DXN => getDXN$(entity);
352
+ export const getDXN = (entity: Unknown | Snapshot): DXN => internal.getDXN(entity);
327
353
 
328
354
  /**
329
355
  * @returns The DXN of the relation's type.
330
356
  */
331
- export const getTypeDXN = getTypeDXN$;
357
+ export const getTypeDXN = internal.getTypeDXN;
332
358
 
333
359
  /**
334
360
  * Get the schema of the relation.
335
361
  * Returns the branded ECHO schema used to create the relation.
336
362
  */
337
- export const getSchema: (rel: unknown | undefined) => Type.Entity.Any | undefined = getSchema$ as any;
363
+ export const getSchema: (rel: unknown | undefined) => Type.AnyEntity | undefined = internal.getSchema as any;
338
364
 
339
365
  /**
340
366
  * @returns The typename of the relation's type.
341
367
  * Accepts both reactive relations and snapshots.
342
368
  */
343
- export const getTypename = (entity: Unknown | Snapshot): string | undefined => getTypename$(entity);
369
+ export const getTypename = (entity: Unknown | Snapshot): string | undefined => internal.getTypename(entity);
344
370
 
345
371
  //
346
372
  // Database
@@ -350,21 +376,28 @@ export const getTypename = (entity: Unknown | Snapshot): string | undefined => g
350
376
  * Get the database the relation belongs to.
351
377
  * Accepts both reactive relations and snapshots.
352
378
  */
353
- export const getDatabase = (entity: Unknown | Snapshot): Database.Database | undefined => getDatabase$(entity);
379
+ export const getDatabase = (entity: Unknown | Snapshot): Database.Database | undefined => internal.getDatabase(entity);
354
380
 
355
381
  //
356
382
  // Meta
357
383
  //
358
384
 
385
+ /**
386
+ * Property that accesses metadata for an entity.
387
+ *
388
+ * Alias for `Entity.Meta`.
389
+ */
390
+ export const Meta = internal.MetaId;
391
+
359
392
  /**
360
393
  * Deeply read-only version of ObjectMeta.
361
394
  */
362
- export type ReadonlyMeta = ApiReadonlyMeta;
395
+ export type ReadonlyMeta = internal.ReadonlyMeta;
363
396
 
364
397
  /**
365
398
  * Mutable meta type returned by `Relation.getMeta` inside a `Relation.change` callback.
366
399
  */
367
- export type Meta = ApiMeta;
400
+ export type Meta = internal.Meta;
368
401
 
369
402
  /**
370
403
  * Get the metadata for a relation.
@@ -372,17 +405,17 @@ export type Meta = ApiMeta;
372
405
  * Returns read-only meta when passed a regular relation or snapshot.
373
406
  */
374
407
  // TODO(wittjosiah): When passed a Snapshot, should return a snapshot of meta, not the live meta proxy.
375
- export function getMeta(entity: Mutable<Unknown>): ObjectMeta;
408
+ export function getMeta(entity: Mutable<Unknown>): Meta;
376
409
  export function getMeta(entity: Unknown | Snapshot): ReadonlyMeta;
377
- export function getMeta(entity: Unknown | Snapshot | Mutable<Unknown>): ObjectMeta | ReadonlyMeta {
378
- return getMeta$(entity);
410
+ export function getMeta(entity: Unknown | Snapshot | Mutable<Unknown>): Meta | ReadonlyMeta {
411
+ return internal.getMetaChecked(entity);
379
412
  }
380
413
 
381
414
  /**
382
415
  * @returns Foreign keys for the relation from the specified source.
383
416
  * Accepts both reactive relations and snapshots.
384
417
  */
385
- export const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[] => getKeys$(entity, source);
418
+ export const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[] => internal.getKeys(entity, source);
386
419
 
387
420
  /**
388
421
  * Delete all keys from the relation for the specified source.
@@ -391,7 +424,7 @@ export const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[
391
424
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
392
425
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
393
426
  */
394
- export const deleteKeys = (entity: Mutable<Unknown>, source: string): void => deleteKeys$(entity, source);
427
+ export const deleteKeys = (entity: Mutable<Unknown>, source: string): void => internal.deleteKeys(entity, source);
395
428
 
396
429
  /**
397
430
  * Add a tag to the relation.
@@ -400,7 +433,7 @@ export const deleteKeys = (entity: Mutable<Unknown>, source: string): void => de
400
433
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
401
434
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
402
435
  */
403
- export const addTag = (entity: Mutable<Unknown>, tag: string): void => addTag$(entity, tag);
436
+ export const addTag = (entity: Mutable<Unknown>, tag: string): void => internal.addTag(entity, tag);
404
437
 
405
438
  /**
406
439
  * Remove a tag from the relation.
@@ -409,13 +442,13 @@ export const addTag = (entity: Mutable<Unknown>, tag: string): void => addTag$(e
409
442
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
410
443
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
411
444
  */
412
- export const removeTag = (entity: Mutable<Unknown>, tag: string): void => removeTag$(entity, tag);
445
+ export const removeTag = (entity: Mutable<Unknown>, tag: string): void => internal.removeTag(entity, tag);
413
446
 
414
447
  /**
415
448
  * Check if the relation is deleted.
416
449
  * Accepts both reactive relations and snapshots.
417
450
  */
418
- export const isDeleted = (entity: Unknown | Snapshot): boolean => isDeleted$(entity);
451
+ export const isDeleted = (entity: Unknown | Snapshot): boolean => internal.isDeleted(entity);
419
452
 
420
453
  //
421
454
  // Annotations
@@ -425,7 +458,7 @@ export const isDeleted = (entity: Unknown | Snapshot): boolean => isDeleted$(ent
425
458
  * Get the label of the relation.
426
459
  * Accepts both reactive relations and snapshots.
427
460
  */
428
- export const getLabel = (entity: Unknown | Snapshot): string | undefined => getLabel$(entity);
461
+ export const getLabel = (entity: Unknown | Snapshot): string | undefined => internal.getLabel(entity);
429
462
 
430
463
  /**
431
464
  * Set the label of the relation.
@@ -434,13 +467,13 @@ export const getLabel = (entity: Unknown | Snapshot): string | undefined => getL
434
467
  * NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
435
468
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
436
469
  */
437
- export const setLabel = (entity: Mutable<Unknown>, label: string): void => setLabel$(entity, label);
470
+ export const setLabel = (entity: Mutable<Unknown>, label: string): void => internal.setLabel(entity, label);
438
471
 
439
472
  /**
440
473
  * Get the description of the relation.
441
474
  * Accepts both reactive relations and snapshots.
442
475
  */
443
- export const getDescription = (entity: Unknown | Snapshot): string | undefined => getDescription$(entity);
476
+ export const getDescription = (entity: Unknown | Snapshot): string | undefined => internal.getDescription(entity);
444
477
 
445
478
  /**
446
479
  * Set the description of the relation.
@@ -450,7 +483,7 @@ export const getDescription = (entity: Unknown | Snapshot): string | undefined =
450
483
  * parameters, so there is no compile-time error. Enforcement is runtime-only.
451
484
  */
452
485
  export const setDescription = (entity: Mutable<Unknown>, description: string): void =>
453
- setDescription$(entity, description);
486
+ internal.setDescription(entity, description);
454
487
 
455
488
  //
456
489
  // JSON
@@ -459,13 +492,13 @@ export const setDescription = (entity: Mutable<Unknown>, description: string): v
459
492
  /**
460
493
  * JSON representation of a relation.
461
494
  */
462
- export type JSON = APIJSON;
495
+ export type JSON = internal.ObjectJSON;
463
496
 
464
497
  /**
465
498
  * Converts relation to its JSON representation.
466
499
  * Accepts both reactive relations and snapshots.
467
500
  */
468
- export const toJSON = (entity: Unknown | Snapshot): JSON => toJSON$(entity);
501
+ export const toJSON = (entity: Unknown | Snapshot): JSON => internal.objectToJSON(entity);
469
502
 
470
503
  //
471
504
  // Sorting
@@ -475,25 +508,26 @@ export const toJSON = (entity: Unknown | Snapshot): JSON => toJSON$(entity);
475
508
  * Comparator function type for sorting relations.
476
509
  * Accepts both reactive relations and snapshots.
477
510
  */
478
- export type Comparator = ApiComparator<Unknown | Snapshot>;
511
+ export type Comparator = internal.Comparator<Unknown | Snapshot>;
479
512
 
480
- export const sortByLabel: Comparator = sortByLabel$ as Comparator;
481
- export const sortByTypename: Comparator = sortByTypename$ as Comparator;
482
- export const sort = (...comparators: Comparator[]): Comparator => sort$(...comparators) as Comparator;
513
+ export const sortByLabel: Comparator = internal.sortByLabel as Comparator;
514
+ export const sortByTypename: Comparator = internal.sortByTypename as Comparator;
515
+ export const sort = (...comparators: Comparator[]): Comparator => internal.sort(...comparators) as Comparator;
483
516
 
484
517
  //
485
518
  // Version
486
519
  //
487
520
 
488
- export { VersionTypeId, isVersion };
521
+ export const VersionTypeId = internal.VersionTypeId;
522
+ export const isVersion = internal.isVersion;
489
523
 
490
524
  /**
491
525
  * Represent relation version.
492
526
  */
493
- export type Version = ApiVersion;
527
+ export type Version = internal.EntityVersion;
494
528
 
495
529
  /**
496
530
  * Returns the version of the relation.
497
531
  * Accepts both reactive relations and snapshots.
498
532
  */
499
- export const version = (entity: Unknown | Snapshot): Version => version$(entity);
533
+ export const version = (entity: Unknown | Snapshot): Version => internal.version(entity);
@@ -47,7 +47,7 @@ export type Query = {
47
47
  * @default false
48
48
  *
49
49
  * The system schema include but are not limited to:
50
- * - dxos.org/type/Schema
50
+ * - org.dxos.type.schema
51
51
  */
52
52
  includeSystem?: boolean;
53
53
  };
@@ -61,7 +61,7 @@ export type Query = {
61
61
  * - JSON schema with typename and version
62
62
  */
63
63
  export type RegisterSchemaInput =
64
- | Type.Entity.Any
64
+ | Type.AnyEntity
65
65
  | {
66
66
  typename: string;
67
67
  version: string;
@@ -73,15 +73,16 @@ export type RegisterSchemaInput =
73
73
  };
74
74
 
75
75
  export type ExtractQueryResult<Query> = Query extends { location: ('database' | 'runtime')[] }
76
- ? Type.Entity.Any
76
+ ? Type.AnyEntity
77
77
  : Type.RuntimeType;
78
78
 
79
+ // TODO(dmaretskyi): Rename TypeRegistry
79
80
  export interface SchemaRegistry {
80
81
  /**
81
82
  * Checks if the provided schema is registered.
82
83
  */
83
84
  // TODO(burdon): Type?
84
- hasSchema(schema: Type.Entity.Any): boolean;
85
+ hasSchema(schema: Type.AnyEntity): boolean;
85
86
 
86
87
  /**
87
88
  * Registers the provided schema.
package/src/Tag.ts CHANGED
@@ -2,9 +2,11 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ // @import-as-namespace
6
+
5
7
  import * as Schema from 'effect/Schema';
6
8
 
7
- import { LabelAnnotation, SystemTypeAnnotation } from './internal';
9
+ import * as internal from './internal';
8
10
  import * as Obj from './Obj';
9
11
  import * as Type from './Type';
10
12
 
@@ -13,18 +15,17 @@ export const Tag = Schema.Struct({
13
15
  hue: Schema.optional(Schema.String), // TODO(burdon): Color name?
14
16
  }).pipe(
15
17
  Type.object({
16
- typename: 'dxos.org/type/Tag',
18
+ typename: 'org.dxos.type.tag',
17
19
  version: '0.1.0',
18
20
  }),
19
- LabelAnnotation.set(['label']),
20
- SystemTypeAnnotation.set(true),
21
+ internal.LabelAnnotation.set(['label']),
22
+ internal.SystemTypeAnnotation.set(true),
21
23
  );
22
24
 
23
25
  export type Tag = Schema.Schema.Type<typeof Tag>;
24
26
 
25
27
  export const make = (props: Obj.MakeProps<typeof Tag>) => Obj.make(Tag, props);
26
28
 
27
- // TODO(burdon): Rename Map.
28
29
  export type Map = Record<string, Tag>;
29
30
 
30
31
  export const sortTags = ({ label: a }: Tag, { label: b }: Tag) => a.localeCompare(b);