@dxos/echo 0.8.4-main.fffef41 → 0.8.4-staging.ac66bdf99f

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 (677) hide show
  1. package/README.md +3 -4
  2. package/dist/lib/neutral/Annotation.mjs +37 -0
  3. package/dist/lib/neutral/Database.mjs +49 -0
  4. package/dist/lib/neutral/Entity.mjs +61 -0
  5. package/dist/lib/neutral/Err.mjs +12 -0
  6. package/dist/lib/neutral/Extension.mjs +18 -0
  7. package/dist/lib/neutral/Feed.mjs +50 -0
  8. package/dist/lib/neutral/Filter.mjs +72 -0
  9. package/dist/lib/neutral/Filter.mjs.map +7 -0
  10. package/dist/lib/neutral/Format.mjs +66 -0
  11. package/dist/lib/neutral/Format.mjs.map +7 -0
  12. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  13. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  14. package/dist/lib/neutral/Key.mjs +12 -0
  15. package/dist/lib/neutral/Key.mjs.map +7 -0
  16. package/dist/lib/neutral/Migration.mjs +17 -0
  17. package/dist/lib/neutral/Migration.mjs.map +7 -0
  18. package/dist/lib/neutral/Obj.mjs +113 -0
  19. package/dist/lib/neutral/Obj.mjs.map +7 -0
  20. package/dist/lib/neutral/Order.mjs +12 -0
  21. package/dist/lib/neutral/Order.mjs.map +7 -0
  22. package/dist/lib/neutral/Query.mjs +38 -0
  23. package/dist/lib/neutral/Query.mjs.map +7 -0
  24. package/dist/lib/neutral/QueryResult.mjs +2 -0
  25. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  26. package/dist/lib/neutral/Ref.mjs +24 -0
  27. package/dist/lib/neutral/Ref.mjs.map +7 -0
  28. package/dist/lib/neutral/Relation.mjs +94 -0
  29. package/dist/lib/neutral/Relation.mjs.map +7 -0
  30. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  31. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  32. package/dist/lib/neutral/Tag.mjs +29 -0
  33. package/dist/lib/neutral/Tag.mjs.map +7 -0
  34. package/dist/lib/neutral/Type.mjs +37 -0
  35. package/dist/lib/neutral/Type.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-2KHZ36F5.mjs +361 -0
  37. package/dist/lib/neutral/chunk-2KHZ36F5.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-4OIBYSXE.mjs +159 -0
  39. package/dist/lib/neutral/chunk-4OIBYSXE.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-4P3IXBLT.mjs +45 -0
  41. package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-7RO7CPBZ.mjs +27 -0
  43. package/dist/lib/neutral/chunk-7RO7CPBZ.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  45. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-B4BASU6W.mjs +428 -0
  47. package/dist/lib/neutral/chunk-B4BASU6W.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +7 -0
  49. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-BVOFLCVF.mjs +45 -0
  51. package/dist/lib/neutral/chunk-BVOFLCVF.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-DQYLD2RB.mjs +402 -0
  53. package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-EAMSSLZC.mjs +299 -0
  55. package/dist/lib/neutral/chunk-EAMSSLZC.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-G3IQMKF7.mjs +396 -0
  57. package/dist/lib/neutral/chunk-G3IQMKF7.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-GZQTCRJB.mjs +73 -0
  59. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-HBUZJNZO.mjs +286 -0
  61. package/dist/lib/neutral/chunk-HBUZJNZO.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  63. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-JUXPFOEI.mjs +787 -0
  65. package/dist/lib/neutral/chunk-JUXPFOEI.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-MOR5ERFM.mjs +2834 -0
  67. package/dist/lib/neutral/chunk-MOR5ERFM.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  69. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-OS35K56T.mjs +34 -0
  71. package/dist/lib/neutral/chunk-OS35K56T.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-PHU22NLC.mjs +136 -0
  73. package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-ROG4RXXL.mjs +97 -0
  75. package/dist/lib/neutral/chunk-ROG4RXXL.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-T6W2LEZU.mjs +125 -0
  77. package/dist/lib/neutral/chunk-T6W2LEZU.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-TBKX6JQO.mjs +67 -0
  79. package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-TU3GW67D.mjs +132 -0
  81. package/dist/lib/neutral/chunk-TU3GW67D.mjs.map +7 -0
  82. package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
  83. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  84. package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
  85. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  86. package/dist/lib/neutral/chunk-V36VO5SS.mjs +354 -0
  87. package/dist/lib/neutral/chunk-V36VO5SS.mjs.map +7 -0
  88. package/dist/lib/neutral/chunk-WAK4DMFV.mjs +36 -0
  89. package/dist/lib/neutral/chunk-WAK4DMFV.mjs.map +7 -0
  90. package/dist/lib/neutral/chunk-YAHXAYOW.mjs +56 -0
  91. package/dist/lib/neutral/chunk-YAHXAYOW.mjs.map +7 -0
  92. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  93. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  94. package/dist/lib/neutral/index.mjs +105 -0
  95. package/dist/lib/neutral/index.mjs.map +7 -0
  96. package/dist/lib/{node-esm → neutral}/internal/index.mjs +290 -152
  97. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  98. package/dist/lib/neutral/meta.json +1 -0
  99. package/dist/lib/neutral/testing/index.mjs +375 -0
  100. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  101. package/dist/types/src/Annotation.d.ts +24 -0
  102. package/dist/types/src/Annotation.d.ts.map +1 -0
  103. package/dist/types/src/Collection.d.ts +16 -0
  104. package/dist/types/src/Collection.d.ts.map +1 -0
  105. package/dist/types/src/Database.d.ts +201 -0
  106. package/dist/types/src/Database.d.ts.map +1 -0
  107. package/dist/types/src/Dataset.d.ts +19 -0
  108. package/dist/types/src/Dataset.d.ts.map +1 -0
  109. package/dist/types/src/Entity.d.ts +174 -0
  110. package/dist/types/src/Entity.d.ts.map +1 -0
  111. package/dist/types/src/Entity.test.d.ts +2 -0
  112. package/dist/types/src/Entity.test.d.ts.map +1 -0
  113. package/dist/types/src/Err.d.ts +107 -0
  114. package/dist/types/src/Err.d.ts.map +1 -0
  115. package/dist/types/src/Extension.d.ts +80 -0
  116. package/dist/types/src/Extension.d.ts.map +1 -0
  117. package/dist/types/src/Extension.test.d.ts +2 -0
  118. package/dist/types/src/Extension.test.d.ts.map +1 -0
  119. package/dist/types/src/Feed.d.ts +182 -0
  120. package/dist/types/src/Feed.d.ts.map +1 -0
  121. package/dist/types/src/Filter.d.ts +149 -0
  122. package/dist/types/src/Filter.d.ts.map +1 -0
  123. package/dist/types/src/Filter.test.d.ts +2 -0
  124. package/dist/types/src/Filter.test.d.ts.map +1 -0
  125. package/dist/types/src/Format.d.ts +4 -0
  126. package/dist/types/src/Format.d.ts.map +1 -0
  127. package/dist/types/src/Hypergraph.d.ts +65 -0
  128. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  129. package/dist/types/src/JsonSchema.d.ts +16 -0
  130. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  131. package/dist/types/src/Key.d.ts +1 -0
  132. package/dist/types/src/Key.d.ts.map +1 -1
  133. package/dist/types/src/Migration.d.ts +57 -0
  134. package/dist/types/src/Migration.d.ts.map +1 -0
  135. package/dist/types/src/Obj.d.ts +434 -104
  136. package/dist/types/src/Obj.d.ts.map +1 -1
  137. package/dist/types/src/Obj.test.d.ts +2 -0
  138. package/dist/types/src/Obj.test.d.ts.map +1 -0
  139. package/dist/types/src/Order.d.ts +16 -0
  140. package/dist/types/src/Order.d.ts.map +1 -0
  141. package/dist/types/src/Query.d.ts +209 -0
  142. package/dist/types/src/Query.d.ts.map +1 -0
  143. package/dist/types/src/Query.test.d.ts +2 -0
  144. package/dist/types/src/Query.test.d.ts.map +1 -0
  145. package/dist/types/src/QueryResult.d.ts +80 -0
  146. package/dist/types/src/QueryResult.d.ts.map +1 -0
  147. package/dist/types/src/Ref.d.ts +61 -11
  148. package/dist/types/src/Ref.d.ts.map +1 -1
  149. package/dist/types/src/Relation.d.ts +287 -21
  150. package/dist/types/src/Relation.d.ts.map +1 -1
  151. package/dist/types/src/Relation.test.d.ts +2 -0
  152. package/dist/types/src/Relation.test.d.ts.map +1 -0
  153. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  154. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  155. package/dist/types/src/Tag.d.ts +8 -7
  156. package/dist/types/src/Tag.d.ts.map +1 -1
  157. package/dist/types/src/Type.d.ts +123 -99
  158. package/dist/types/src/Type.d.ts.map +1 -1
  159. package/dist/types/src/Type.test.d.ts +2 -0
  160. package/dist/types/src/Type.test.d.ts.map +1 -0
  161. package/dist/types/src/View.d.ts +68 -0
  162. package/dist/types/src/View.d.ts.map +1 -0
  163. package/dist/types/src/hierarchy.test.d.ts +2 -0
  164. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  165. package/dist/types/src/index.d.ts +20 -5
  166. package/dist/types/src/index.d.ts.map +1 -1
  167. package/dist/types/src/internal/Annotation/annotations.d.ts +231 -0
  168. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  169. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  170. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  171. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  172. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  173. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  174. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  175. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  176. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  177. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  178. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  179. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  180. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  181. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  182. package/dist/types/src/internal/Entity/model.d.ts +55 -0
  183. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  184. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  185. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  186. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  187. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  188. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  189. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  190. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  191. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  192. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  193. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  194. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -2
  195. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  196. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  197. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  198. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  199. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  200. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  201. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  202. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  203. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  204. package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
  205. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  206. package/dist/types/src/internal/{json → JsonSchema}/annotations.d.ts +1 -1
  207. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  208. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  209. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  210. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  211. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  212. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  213. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  214. package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +4 -2
  215. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  216. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  218. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  219. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  220. package/dist/types/src/internal/{object/create.d.ts → Obj/create-object.d.ts} +10 -11
  221. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  222. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  223. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  225. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  227. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  228. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  229. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  230. package/dist/types/src/internal/Obj/json-serializer.d.ts +45 -0
  231. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  232. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  233. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  234. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  235. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  236. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  237. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  238. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  239. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  240. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  241. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  242. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  243. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  244. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  245. package/dist/types/src/internal/Query.d.ts +10 -0
  246. package/dist/types/src/internal/Query.d.ts.map +1 -0
  247. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  248. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  249. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  250. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +44 -19
  251. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  252. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  253. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  254. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  255. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  256. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +27 -14
  257. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  258. package/dist/types/src/internal/Type/index.d.ts +4 -0
  259. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  260. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  261. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  262. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  263. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  264. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  265. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  266. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  267. package/dist/types/src/internal/common/index.d.ts +4 -0
  268. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  269. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  270. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  272. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  273. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  274. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  275. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  276. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  277. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  278. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  280. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  281. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  282. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  283. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  284. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  285. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  286. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  287. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  289. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  290. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  291. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  292. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  293. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  295. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  296. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  297. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  298. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  299. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  300. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  301. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  302. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  303. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  304. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  305. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  306. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  307. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  308. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  309. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  310. package/dist/types/src/internal/{object → common/types}/meta.d.ts +18 -16
  311. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  312. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  313. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  314. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  315. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  316. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  317. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  318. package/dist/types/src/internal/index.d.ts +10 -14
  319. package/dist/types/src/internal/index.d.ts.map +1 -1
  320. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  321. package/dist/types/src/testing/index.d.ts +3 -3
  322. package/dist/types/src/testing/index.d.ts.map +1 -1
  323. package/dist/types/src/testing/test-data.d.ts +18 -0
  324. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  325. package/dist/types/src/testing/test-schema.d.ts +304 -0
  326. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  327. package/dist/types/src/testing/util.d.ts +21 -0
  328. package/dist/types/src/testing/util.d.ts.map +1 -0
  329. package/dist/types/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +116 -65
  331. package/src/Annotation.ts +48 -0
  332. package/src/Collection.ts +37 -0
  333. package/src/Database.ts +352 -0
  334. package/src/Dataset.ts +26 -0
  335. package/src/Entity.test.ts +22 -0
  336. package/src/Entity.ts +243 -0
  337. package/src/Err.ts +40 -0
  338. package/src/Extension.test.ts +235 -0
  339. package/src/Extension.ts +122 -0
  340. package/src/Feed.ts +304 -0
  341. package/src/Filter.test.ts +90 -0
  342. package/src/Filter.ts +454 -0
  343. package/src/Format.ts +9 -0
  344. package/src/Hypergraph.ts +79 -0
  345. package/src/JsonSchema.ts +26 -0
  346. package/src/Key.ts +3 -0
  347. package/src/Migration.ts +94 -0
  348. package/src/Obj.test.ts +539 -0
  349. package/src/Obj.ts +697 -277
  350. package/src/Order.ts +46 -0
  351. package/src/Query.test.ts +806 -0
  352. package/src/Query.ts +547 -0
  353. package/src/QueryResult.ts +106 -0
  354. package/src/Ref.ts +79 -9
  355. package/src/Relation.test.ts +88 -0
  356. package/src/Relation.ts +449 -60
  357. package/src/SchemaRegistry.ts +106 -0
  358. package/src/Tag.ts +7 -5
  359. package/src/Type.test.ts +52 -0
  360. package/src/Type.ts +167 -153
  361. package/src/View.ts +107 -0
  362. package/src/hierarchy.test.ts +33 -0
  363. package/src/index.ts +22 -6
  364. package/src/internal/Annotation/annotations.test.ts +145 -0
  365. package/src/internal/Annotation/annotations.ts +577 -0
  366. package/src/internal/Annotation/index.ts +7 -0
  367. package/src/internal/Annotation/sorting.ts +51 -0
  368. package/src/internal/Annotation/util.ts +85 -0
  369. package/src/internal/Entity/api.ts +30 -0
  370. package/src/internal/Entity/entity.ts +128 -0
  371. package/src/internal/Entity/index.ts +11 -0
  372. package/src/internal/Entity/model.ts +109 -0
  373. package/src/internal/Entity/object.ts +57 -0
  374. package/src/internal/Entity/relation.ts +154 -0
  375. package/src/internal/Entity/util.ts +33 -0
  376. package/src/internal/Entity/version.ts +96 -0
  377. package/src/internal/{formats → Format}/date.test.ts +1 -2
  378. package/src/internal/{formats → Format}/date.ts +5 -5
  379. package/src/internal/{formats → Format}/format.test.ts +6 -7
  380. package/src/internal/{formats → Format}/format.ts +8 -6
  381. package/src/internal/{formats → Format}/number.ts +5 -5
  382. package/src/internal/{formats → Format}/object.ts +4 -4
  383. package/src/internal/{formats → Format}/select.ts +6 -4
  384. package/src/internal/{formats → Format}/string.ts +14 -9
  385. package/src/internal/{formats → Format}/types.ts +54 -43
  386. package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
  387. package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
  388. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  389. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
  390. package/src/internal/{json → JsonSchema}/json-schema.test.ts +106 -95
  391. package/src/internal/{json → JsonSchema}/json-schema.ts +29 -15
  392. package/src/internal/Obj/clone.ts +48 -0
  393. package/src/internal/{object → Obj}/common.ts +3 -4
  394. package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +32 -36
  395. package/src/internal/{object/create.ts → Obj/create-object.ts} +35 -37
  396. package/src/internal/Obj/deleted.ts +19 -0
  397. package/src/internal/{object → Obj}/ids.ts +1 -1
  398. package/src/internal/Obj/index.ts +14 -0
  399. package/src/internal/{object → Obj}/inspect.ts +5 -7
  400. package/src/internal/Obj/json-serializer.test.ts +120 -0
  401. package/src/internal/{object → Obj}/json-serializer.ts +106 -109
  402. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  403. package/src/internal/Obj/schema-validator.ts +6 -0
  404. package/src/internal/Obj/set-value.test.ts +281 -0
  405. package/src/internal/Obj/set-value.ts +165 -0
  406. package/src/internal/Obj/snapshot.ts +105 -0
  407. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  408. package/src/internal/Obj/typed-object.ts +30 -0
  409. package/src/internal/Query.ts +134 -0
  410. package/src/internal/{ref → Ref}/ref-array.ts +4 -5
  411. package/src/internal/{ref → Ref}/ref.test.ts +11 -11
  412. package/src/internal/{ref → Ref}/ref.ts +108 -57
  413. package/src/internal/{projection → Type}/compose.test.ts +8 -10
  414. package/src/internal/{projection → Type}/compose.ts +14 -9
  415. package/src/internal/{schema → Type}/echo-schema.ts +74 -34
  416. package/src/internal/Type/index.ts +7 -0
  417. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  418. package/src/internal/Type/persistent-schema.ts +33 -0
  419. package/src/internal/common/README.md +102 -0
  420. package/src/internal/common/api/index.ts +15 -0
  421. package/src/internal/common/api/meta.ts +88 -0
  422. package/src/internal/{testing → common}/index.ts +2 -1
  423. package/src/internal/common/proxy/change-context.ts +138 -0
  424. package/src/internal/common/proxy/change.test.ts +519 -0
  425. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  426. package/src/internal/common/proxy/errors.ts +42 -0
  427. package/src/internal/common/proxy/event-batch.ts +44 -0
  428. package/src/internal/common/proxy/handler.test.ts +121 -0
  429. package/src/internal/common/proxy/index.ts +17 -0
  430. package/src/internal/common/proxy/json-serializer.ts +90 -0
  431. package/src/internal/common/proxy/make-object.ts +105 -0
  432. package/src/internal/common/proxy/ownership.ts +252 -0
  433. package/src/internal/common/proxy/proxy-types.ts +23 -0
  434. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  435. package/src/internal/common/proxy/reactive-array.ts +71 -0
  436. package/src/internal/common/proxy/reactive.ts +68 -0
  437. package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
  438. package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
  439. package/src/internal/common/proxy/symbols.ts +7 -0
  440. package/src/internal/common/proxy/typed-handler.test.ts +313 -0
  441. package/src/internal/common/proxy/typed-handler.ts +447 -0
  442. package/src/internal/common/proxy/typed-object.test.ts +115 -0
  443. package/src/internal/common/types/base.ts +43 -0
  444. package/src/internal/common/types/entity.ts +54 -0
  445. package/src/internal/common/types/index.ts +10 -0
  446. package/src/internal/common/types/meta.ts +67 -0
  447. package/src/internal/common/types/model-symbols.ts +69 -0
  448. package/src/internal/common/types/typename.ts +55 -0
  449. package/src/internal/common/types/version.ts +19 -0
  450. package/src/internal/index.ts +12 -17
  451. package/src/testing/api.test.ts +125 -0
  452. package/src/testing/index.ts +3 -3
  453. package/src/testing/test-data.ts +129 -0
  454. package/src/testing/test-schema.ts +240 -0
  455. package/src/testing/util.ts +85 -0
  456. package/dist/lib/browser/chunk-BIDAASFK.mjs +0 -3727
  457. package/dist/lib/browser/chunk-BIDAASFK.mjs.map +0 -7
  458. package/dist/lib/browser/chunk-ZDLCWGEW.mjs +0 -410
  459. package/dist/lib/browser/chunk-ZDLCWGEW.mjs.map +0 -7
  460. package/dist/lib/browser/chunk-ZFRJKT4A.mjs +0 -585
  461. package/dist/lib/browser/chunk-ZFRJKT4A.mjs.map +0 -7
  462. package/dist/lib/browser/index.mjs +0 -35
  463. package/dist/lib/browser/internal/index.mjs +0 -336
  464. package/dist/lib/browser/meta.json +0 -1
  465. package/dist/lib/browser/query/index.mjs +0 -13
  466. package/dist/lib/browser/testing/index.mjs +0 -267
  467. package/dist/lib/browser/testing/index.mjs.map +0 -7
  468. package/dist/lib/node-esm/chunk-3SVRRCUU.mjs +0 -3727
  469. package/dist/lib/node-esm/chunk-3SVRRCUU.mjs.map +0 -7
  470. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs +0 -585
  471. package/dist/lib/node-esm/chunk-CGDHRZWH.mjs.map +0 -7
  472. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs +0 -410
  473. package/dist/lib/node-esm/chunk-HWS6VBQC.mjs.map +0 -7
  474. package/dist/lib/node-esm/index.mjs +0 -35
  475. package/dist/lib/node-esm/meta.json +0 -1
  476. package/dist/lib/node-esm/query/index.mjs +0 -13
  477. package/dist/lib/node-esm/testing/index.mjs +0 -267
  478. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  479. package/dist/types/src/errors.d.ts +0 -68
  480. package/dist/types/src/errors.d.ts.map +0 -1
  481. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  482. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  483. package/dist/types/src/internal/ast/annotations.d.ts +0 -131
  484. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  485. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  486. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  487. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  488. package/dist/types/src/internal/ast/index.d.ts +0 -5
  489. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  490. package/dist/types/src/internal/ast/types.d.ts +0 -6
  491. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  492. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  493. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  494. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  495. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  496. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  497. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  498. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  499. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  500. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  501. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  502. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  503. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  504. package/dist/types/src/internal/json/index.d.ts +0 -2
  505. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  506. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  507. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  508. package/dist/types/src/internal/json-schema/index.d.ts +0 -3
  509. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  510. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  511. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  512. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  513. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  514. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  515. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  516. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  517. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  518. package/dist/types/src/internal/object/deleted.d.ts +0 -6
  519. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  520. package/dist/types/src/internal/object/entity.d.ts +0 -33
  521. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  522. package/dist/types/src/internal/object/expando.d.ts +0 -14
  523. package/dist/types/src/internal/object/expando.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 +0 -16
  526. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  527. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  528. package/dist/types/src/internal/object/json-serializer.d.ts +0 -32
  529. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  530. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  531. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  532. package/dist/types/src/internal/object/model.d.ts +0 -117
  533. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  534. package/dist/types/src/internal/object/relation.d.ts +0 -17
  535. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  536. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  537. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  538. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  539. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  540. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  541. package/dist/types/src/internal/object/typename.d.ts +0 -15
  542. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  543. package/dist/types/src/internal/object/version.d.ts +0 -14
  544. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  545. package/dist/types/src/internal/projection/compose.d.ts +0 -6
  546. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  547. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  548. package/dist/types/src/internal/projection/index.d.ts +0 -2
  549. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  550. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  551. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  552. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  553. package/dist/types/src/internal/proxy/schema.test.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/query/index.d.ts +0 -2
  558. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  559. package/dist/types/src/internal/query/query.d.ts +0 -17
  560. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  561. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  562. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  563. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  564. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  565. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  566. package/dist/types/src/internal/schema/index.d.ts +0 -7
  567. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  568. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  569. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  570. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  571. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  572. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  573. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  574. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  575. package/dist/types/src/internal/testing/index.d.ts +0 -3
  576. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  577. package/dist/types/src/internal/testing/types.d.ts +0 -381
  578. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  579. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  580. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  581. package/dist/types/src/internal/types/index.d.ts +0 -3
  582. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  583. package/dist/types/src/internal/types/types.d.ts +0 -79
  584. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  585. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  586. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  587. package/dist/types/src/internal/types/util.d.ts +0 -5
  588. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  589. package/dist/types/src/query/index.d.ts +0 -2
  590. package/dist/types/src/query/index.d.ts.map +0 -1
  591. package/dist/types/src/query/query.d.ts +0 -248
  592. package/dist/types/src/query/query.d.ts.map +0 -1
  593. package/dist/types/src/query/query.test.d.ts +0 -2
  594. package/dist/types/src/query/query.test.d.ts.map +0 -1
  595. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  596. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  597. package/dist/types/src/testing/types.d.ts +0 -228
  598. package/dist/types/src/testing/types.d.ts.map +0 -1
  599. package/src/errors.ts +0 -18
  600. package/src/internal/ast/annotation-helper.ts +0 -22
  601. package/src/internal/ast/annotations.test.ts +0 -98
  602. package/src/internal/ast/annotations.ts +0 -226
  603. package/src/internal/ast/entity-kind.ts +0 -15
  604. package/src/internal/ast/index.ts +0 -8
  605. package/src/internal/ast/types.ts +0 -17
  606. package/src/internal/json/index.ts +0 -5
  607. package/src/internal/object/accessors.ts +0 -153
  608. package/src/internal/object/deleted.ts +0 -19
  609. package/src/internal/object/entity.ts +0 -248
  610. package/src/internal/object/expando.ts +0 -21
  611. package/src/internal/object/index.ts +0 -19
  612. package/src/internal/object/json-serializer.test.ts +0 -99
  613. package/src/internal/object/meta.ts +0 -61
  614. package/src/internal/object/model.ts +0 -170
  615. package/src/internal/object/relation.ts +0 -24
  616. package/src/internal/object/typed-object.ts +0 -88
  617. package/src/internal/object/typename.ts +0 -61
  618. package/src/internal/object/version.ts +0 -22
  619. package/src/internal/projection/index.ts +0 -5
  620. package/src/internal/proxy/handler.test.ts +0 -163
  621. package/src/internal/proxy/reactive-object.ts +0 -108
  622. package/src/internal/proxy/typed-handler.test.ts +0 -102
  623. package/src/internal/proxy/typed-handler.ts +0 -228
  624. package/src/internal/proxy/typed-object.test.ts +0 -100
  625. package/src/internal/query/index.ts +0 -5
  626. package/src/internal/query/query.ts +0 -23
  627. package/src/internal/schema/index.ts +0 -10
  628. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  629. package/src/internal/schema/snapshot.ts +0 -25
  630. package/src/internal/schema/stored-schema.ts +0 -26
  631. package/src/internal/testing/types.ts +0 -144
  632. package/src/internal/testing/utils.ts +0 -54
  633. package/src/internal/types/index.ts +0 -6
  634. package/src/internal/types/types.test.ts +0 -48
  635. package/src/internal/types/types.ts +0 -176
  636. package/src/internal/types/util.ts +0 -9
  637. package/src/query/index.ts +0 -6
  638. package/src/query/query.test.ts +0 -401
  639. package/src/query/query.ts +0 -789
  640. package/src/test/api.test.ts +0 -180
  641. package/src/testing/echo-schema.ts +0 -39
  642. package/src/testing/types.ts +0 -108
  643. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  644. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  645. /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  646. /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
  647. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Extension.mjs.map} +0 -0
  648. /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Feed.mjs.map} +0 -0
  649. /package/dist/types/src/internal/{ast → Annotation}/annotations.test.d.ts +0 -0
  650. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  651. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  652. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  653. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  654. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  655. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  656. /package/dist/types/src/internal/{json → JsonSchema}/effect-schema.test.d.ts +0 -0
  657. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  658. /package/dist/types/src/internal/{json → JsonSchema}/json-schema.test.d.ts +0 -0
  659. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  660. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  661. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  662. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  663. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  664. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  665. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  666. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  667. /package/dist/types/src/internal/{projection → Type}/compose.test.d.ts +0 -0
  668. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  669. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  670. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  671. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  672. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  673. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  674. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  675. /package/src/internal/{formats → Format}/index.ts +0 -0
  676. /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
  677. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -0,0 +1,106 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import type * as Types from 'effect/Types';
6
+
7
+ import type * as JsonSchema from './JsonSchema';
8
+ import type * as Key from './Key';
9
+ import type * as QueryResult from './QueryResult';
10
+ import type * as Type from './Type';
11
+
12
+ // TODO(wittjosiah): Replace w/ Query.Query.
13
+ export type Query = {
14
+ /**
15
+ * Filter by schema ID.
16
+ * Schema id is a DXN with `echo` or `type` kind.
17
+ */
18
+ id?: string | string[];
19
+
20
+ /**
21
+ * Id of the backing ECHO object.
22
+ */
23
+ backingObjectId?: Key.ObjectId | Key.ObjectId[];
24
+
25
+ /**
26
+ * One or more typenames to filter by.
27
+ */
28
+ typename?: string | string[];
29
+
30
+ /**
31
+ * [Semver Range](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges) for the schema version.
32
+ */
33
+ version?: string;
34
+
35
+ /**
36
+ * Where to look for the schema.
37
+ *
38
+ * Database schema are stored in the database of the current space.
39
+ * Runtime schema are registered in the runtime.
40
+ *
41
+ * @default ['database']
42
+ */
43
+ location?: ('database' | 'runtime')[];
44
+
45
+ /**
46
+ * Include system schemas.
47
+ * @default false
48
+ *
49
+ * The system schema include but are not limited to:
50
+ * - org.dxos.type.schema
51
+ */
52
+ includeSystem?: boolean;
53
+ };
54
+
55
+ /**
56
+ * Input for schema registration.
57
+ * The typename, version and schema mutability metadata is read from the schema annotations.
58
+ *
59
+ * Accepts:
60
+ * - Branded ECHO schemas created with Type.Obj() or Type.Relation()
61
+ * - JSON schema with typename and version
62
+ */
63
+ export type RegisterSchemaInput =
64
+ | Type.AnyEntity
65
+ | {
66
+ typename: string;
67
+ version: string;
68
+ jsonSchema: JsonSchema.JsonSchema;
69
+ /**
70
+ * Display name of the schema.
71
+ */
72
+ name?: string;
73
+ };
74
+
75
+ export type ExtractQueryResult<Query> = Query extends { location: ('database' | 'runtime')[] }
76
+ ? Type.AnyEntity
77
+ : Type.RuntimeType;
78
+
79
+ // TODO(dmaretskyi): Rename TypeRegistry
80
+ export interface SchemaRegistry {
81
+ /**
82
+ * Checks if the provided schema is registered.
83
+ */
84
+ // TODO(burdon): Type?
85
+ hasSchema(schema: Type.AnyEntity): boolean;
86
+
87
+ /**
88
+ * Registers the provided schema.
89
+ *
90
+ * @returns Mutable runtime instances of schemas that were registered.
91
+ *
92
+ * The behavior of this method depends on the state of the database.
93
+ * The general principle is that the schema will be upserted into the space.
94
+ * If an equivalent schema with the same name and version already exists, the method does nothing.
95
+ * If a different schema with the same name and version exists, the method throws an error.
96
+ * If no schema with the same name and version exists, a new schema will be inserted based on semantic versioning rules.
97
+ */
98
+ register(input: RegisterSchemaInput[]): Promise<Type.RuntimeType[]>;
99
+
100
+ /**
101
+ *
102
+ */
103
+ query<Q extends Types.NoExcessProperties<Query, Q>>(
104
+ query?: Q & Query,
105
+ ): QueryResult.QueryResult<ExtractQueryResult<Q>>;
106
+ }
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 } from './internal';
9
+ import * as internal from './internal';
8
10
  import * as Obj from './Obj';
9
11
  import * as Type from './Type';
10
12
 
@@ -12,18 +14,18 @@ export const Tag = Schema.Struct({
12
14
  label: Schema.String,
13
15
  hue: Schema.optional(Schema.String), // TODO(burdon): Color name?
14
16
  }).pipe(
15
- Type.Obj({
16
- typename: 'dxos.org/type/Tag',
17
+ Type.object({
18
+ typename: 'org.dxos.type.tag',
17
19
  version: '0.1.0',
18
20
  }),
19
- LabelAnnotation.set(['label']),
21
+ internal.LabelAnnotation.set(['label']),
22
+ internal.SystemTypeAnnotation.set(true),
20
23
  );
21
24
 
22
25
  export type Tag = Schema.Schema.Type<typeof Tag>;
23
26
 
24
27
  export const make = (props: Obj.MakeProps<typeof Tag>) => Obj.make(Tag, props);
25
28
 
26
- // TODO(burdon): Rename Map.
27
29
  export type Map = Record<string, Tag>;
28
30
 
29
31
  export const sortTags = ({ label: a }: Tag, { label: b }: Tag) => a.localeCompare(b);
@@ -0,0 +1,52 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+ import { describe, test } from 'vitest';
7
+
8
+ import * as Obj from './Obj';
9
+ import * as Relation from './Relation';
10
+ import { TestSchema } from './testing';
11
+ import * as Type from './Type';
12
+
13
+ describe('Type', () => {
14
+ describe('Obj.Unknown schema', () => {
15
+ test('has SchemaKindId for schema type checking', ({ expect }) => {
16
+ // Type.isObjectSchema uses SchemaKindId to check if a schema is an object schema.
17
+ expect(Type.isObjectSchema(Obj.Unknown)).toBe(true);
18
+ expect(Type.isObjectSchema(TestSchema.Person)).toBe(true);
19
+ expect(Type.isObjectSchema(Relation.Unknown)).toBe(false);
20
+ });
21
+
22
+ test('Schema.is validates structural compatibility only', ({ expect }) => {
23
+ // Schema.is does structural validation (has id field).
24
+ // It accepts both ECHO objects and plain objects with compatible structure.
25
+ expect(Schema.is(Obj.Unknown)({ id: 'plain-object' })).toBe(true);
26
+ const obj = Obj.make(TestSchema.Person, { name: 'Test' });
27
+ expect(Schema.is(Obj.Unknown)(obj)).toBe(true);
28
+ });
29
+ });
30
+
31
+ describe('Relation.Unknown schema', () => {
32
+ test('has SchemaKindId for schema type checking', ({ expect }) => {
33
+ // Type.isRelationSchema uses SchemaKindId to check if a schema is a relation schema.
34
+ expect(Type.isRelationSchema(Relation.Unknown)).toBe(true);
35
+ expect(Type.isRelationSchema(TestSchema.HasManager)).toBe(true);
36
+ expect(Type.isRelationSchema(Obj.Unknown)).toBe(false);
37
+ });
38
+
39
+ test('Schema.is validates structural compatibility only', ({ expect }) => {
40
+ // Schema.is does structural validation (has id field).
41
+ // It accepts both ECHO relations and plain objects with compatible structure.
42
+ expect(Schema.is(Relation.Unknown)({ id: 'plain-object' })).toBe(true);
43
+ const obj1 = Obj.make(TestSchema.Person, { name: 'Alice' });
44
+ const obj2 = Obj.make(TestSchema.Person, { name: 'Bob' });
45
+ const rel = Relation.make(TestSchema.HasManager, {
46
+ [Relation.Source]: obj1,
47
+ [Relation.Target]: obj2,
48
+ });
49
+ expect(Schema.is(Relation.Unknown)(rel)).toBe(true);
50
+ });
51
+ });
52
+ });
package/src/Type.ts CHANGED
@@ -2,212 +2,231 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import type * as EffectSchema from 'effect/Schema';
5
+ // @import-as-namespace
6
+
7
+ import type * as Schema from 'effect/Schema';
6
8
 
7
9
  import { type EncodedReference } from '@dxos/echo-protocol';
8
10
  import { invariant } from '@dxos/invariant';
9
- import type * as Keys from '@dxos/keys';
11
+ import { type DXN } from '@dxos/keys';
12
+ import { type ToMutable } from '@dxos/util';
10
13
 
11
- import { type ToMutable } from './internal';
12
- import * as EchoSchema from './internal';
14
+ import type * as Entity from './Entity';
15
+ import * as internal from './internal';
16
+ import * as typeInternal from './internal/Type';
17
+ import type * as ObjModule from './Obj';
13
18
  import type * as RelationModule from './Relation';
14
19
 
15
- //
16
- // Kind
17
- //
18
-
19
- export const KindId: unique symbol = EchoSchema.EntityKindId as any;
20
- export type KindId = typeof KindId;
21
-
22
- export const Kind = EchoSchema.EntityKind;
23
-
24
20
  /**
25
- * Assigns a kind to an Object or Relation instance.
21
+ * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.
26
22
  */
27
- // NOTE: Needed to make `isRelation` and `isObject` checks work.
28
- export interface OfKind<Kind extends EchoSchema.EntityKind> {
29
- readonly id: Keys.ObjectId;
30
- readonly [KindId]: Kind;
31
- }
23
+ export const RuntimeType = typeInternal.EchoSchema;
32
24
 
33
25
  /**
34
- * Base ECHO schema type.
26
+ * Dynamic type that can be constructed, mutated, and persisted in the ECHO database.
35
27
  */
36
- export type Schema = EchoSchema.EchoSchema;
28
+ export type RuntimeType = typeInternal.EchoSchema;
29
+
30
+ //
31
+ // Internal types (not exported)
32
+ //
37
33
 
38
34
  /**
39
- * Returns all properties of an object or relation except for the id and kind.
35
+ * Type that marks a schema as an ECHO schema.
36
+ * The value indicates the entity kind (Object or Relation).
40
37
  */
41
- export type Properties<T = any> = Omit<T, 'id' | KindId | RelationModule.Source | RelationModule.Target>;
38
+ type EchoSchemaKind<K extends internal.EntityKind = internal.EntityKind> = {
39
+ readonly [internal.SchemaKindId]: K;
40
+ };
42
41
 
43
42
  //
44
- // Obj
43
+ // Obj - Runtime schema for any ECHO object
45
44
  //
46
45
 
47
- interface ObjJsonProps {
48
- id: string;
46
+ /**
47
+ * TypeScript type for an ECHO object schema.
48
+ * `T` is the instance type produced by the schema.
49
+ * `Fields` is the optional struct fields type for introspection.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const PersonSchema: Type.Obj<Person> = Schema.Struct({
54
+ * name: Schema.String,
55
+ * }).pipe(Type.object({ typename: 'Person', version: '0.1.0' }));
56
+ *
57
+ * // Access fields for introspection:
58
+ * Object.keys(PersonSchema.fields); // ['name']
59
+ * ```
60
+ */
61
+ export interface Obj<T, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>
62
+ extends
63
+ internal.TypeMeta,
64
+ EchoSchemaKind<internal.EntityKind.Object>,
65
+ Schema.AnnotableClass<
66
+ Obj<T, Fields>,
67
+ Entity.OfKind<typeof Entity.Kind.Object> & T,
68
+ Schema.Simplify<ObjModule.BaseObjJson & ToMutable<T>>,
69
+ never
70
+ > {
71
+ /**
72
+ * The fields defined in the original struct schema.
73
+ * Allows accessing field definitions for introspection.
74
+ */
75
+ readonly fields: Fields;
49
76
  }
50
77
 
51
78
  /**
52
- * Return type of the `Obj` schema constructor.
53
- *
54
- * This typedef avoids `TS4023` error (name from external module cannot be used named).
55
- * See Effect's note on interface types.
79
+ * Structural base type for any ECHO object schema.
80
+ * Accepts both static schemas (created with Type.object()) and EchoSchema.
81
+ * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.
82
+ * Use Type.isObjectSchema() for runtime type guards.
56
83
  */
57
- export interface obj<Self extends EffectSchema.Schema.Any>
58
- extends EchoSchema.TypeMeta,
59
- EffectSchema.AnnotableClass<
60
- obj<Self>,
61
- OfKind<EchoSchema.EntityKind.Object> & ToMutable<EffectSchema.Schema.Type<Self>>,
62
- EffectSchema.Simplify<ObjJsonProps & ToMutable<EffectSchema.Schema.Encoded<Self>>>,
63
- EffectSchema.Schema.Context<Self>
64
- > {}
84
+ type ObjectSchemaBase = Schema.Schema.AnyNoContext & {
85
+ readonly typename: string;
86
+ readonly version: string;
87
+ };
65
88
 
66
89
  /**
67
- * Object schema.
90
+ * Type that represents any ECHO object schema.
91
+ * Accepts both static schemas (Type.object()) and mutable schemas (EchoSchema).
68
92
  */
69
- export const Obj: {
70
- (opts: EchoSchema.TypeMeta): <Self extends EffectSchema.Schema.Any>(self: Self) => obj<Self>;
71
- } = EchoSchema.EchoObject as any;
93
+ export type AnyObj = ObjectSchemaBase;
72
94
 
73
95
  /**
74
- * Object schema type definitions.
96
+ * Factory function to create an ECHO object schema.
97
+ * Adds object metadata annotations to an Effect schema.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * const Person = Schema.Struct({
102
+ * name: Schema.String,
103
+ * }).pipe(Type.object({ typename: 'com.example.type.person', version: '0.1.0' }));
104
+ * ```
75
105
  */
76
- export declare namespace Obj {
77
- /**
78
- * Type that represents an arbitrary schema type of an object.
79
- * NOTE: This is not an instance type.
80
- */
81
- // TODO(dmaretskyi): If schema was covariant, we could specify props in here, like `id: ObjectId`.
82
- // TODO(burdon): This erases the ECHO type info (e.g., id, typename).
83
- export type Any = EffectSchema.Schema.AnyNoContext;
84
- }
106
+ export const object: {
107
+ (opts: internal.TypeMeta): <Self extends Schema.Schema.Any>(self: Self) => Obj<Schema.Schema.Type<Self>>;
108
+ } = internal.EchoObjectSchema as any;
85
109
 
86
110
  //
87
- // Expando
111
+ // PersistentType (Schema stored in database)
88
112
  //
89
113
 
90
- // TODO(burdon): We're using Expando in many places as a base type.
91
- export interface Expando extends OfKind<EchoSchema.EntityKind.Object> {
92
- [key: string]: any;
93
- }
114
+ export const PersistentType: Obj<typeInternal.PersistentSchema> = typeInternal.PersistentSchema as any;
94
115
 
95
- type ExpandoEncoded = EffectSchema.Simplify<ObjJsonProps & { [key: string]: any }>;
116
+ export interface PersistentType extends Schema.Schema.Type<typeof PersistentType> {}
96
117
 
97
- export const Expando: EffectSchema.Schema<Expando, ExpandoEncoded, never> = EchoSchema.Expando as any;
98
-
99
- //
100
- // Relation
101
- //
102
-
103
- interface RelationJsonProps {
104
- id: string;
105
- [EchoSchema.ATTR_RELATION_SOURCE]: string;
106
- [EchoSchema.ATTR_RELATION_TARGET]: string;
118
+ /**
119
+ * TypeScript type for an ECHO relation schema.
120
+ * `T` is the instance type produced by the schema (excluding source/target).
121
+ * `Source` and `Target` are the endpoint types.
122
+ * `Fields` is the optional struct fields type for introspection.
123
+ */
124
+ export interface Relation<T, Source, Target, Fields extends Schema.Struct.Fields = Schema.Struct.Fields>
125
+ extends
126
+ internal.TypeMeta,
127
+ EchoSchemaKind<internal.EntityKind.Relation>,
128
+ Schema.AnnotableClass<
129
+ Relation<T, Source, Target, Fields>,
130
+ Entity.OfKind<typeof Entity.Kind.Relation> & RelationModule.Endpoints<Source, Target> & T,
131
+ Schema.Simplify<RelationModule.BaseRelationJson & ToMutable<T>>,
132
+ never
133
+ > {
134
+ /**
135
+ * The fields defined in the original struct schema.
136
+ * Allows accessing field definitions for introspection.
137
+ */
138
+ readonly fields: Fields;
107
139
  }
108
140
 
109
141
  /**
110
- * Return type of the `Relation` schema constructor.
111
- *
112
- * This typedef avoids `TS4023` error (name from external module cannot be used named).
113
- * See Effect's note on interface types.
142
+ * Structural base type for any ECHO relation schema.
143
+ * Accepts static schemas (created with Type.relation()).
144
+ * NOTE: Does not include the brand symbol to avoid TS4053 declaration portability issues.
145
+ * Use Type.isRelationSchema() for runtime type guards.
114
146
  */
115
- export interface relation<
116
- Self extends EffectSchema.Schema.Any,
117
- SourceSchema extends EffectSchema.Schema.Any,
118
- TargetSchema extends EffectSchema.Schema.Any,
119
- > extends EchoSchema.TypeMeta,
120
- EffectSchema.AnnotableClass<
121
- relation<Self, SourceSchema, TargetSchema>,
122
- OfKind<EchoSchema.EntityKind.Relation> &
123
- Relation.Endpoints<EffectSchema.Schema.Type<SourceSchema>, EffectSchema.Schema.Type<TargetSchema>> &
124
- ToMutable<EffectSchema.Schema.Type<Self>>,
125
- EffectSchema.Simplify<RelationJsonProps & ToMutable<EffectSchema.Schema.Encoded<Self>>>,
126
- EffectSchema.Schema.Context<Self>
127
- > {}
147
+ type RelationSchemaBase = Schema.Schema.AnyNoContext & {
148
+ readonly typename: string;
149
+ readonly version: string;
150
+ };
128
151
 
129
152
  /**
130
- * Relation schema.
153
+ * Type that represents any ECHO relation schema.
154
+ * Accepts static schemas (Type.relation()).
131
155
  */
132
- // TODO(dmaretskyi): I have to redefine the type here so that the definition uses symbols from @dxos/echo/Relation.
133
- export const Relation: {
134
- <Source extends EffectSchema.Schema.AnyNoContext, Target extends EffectSchema.Schema.AnyNoContext>(
135
- opts: EchoSchema.EchoRelationOptions<Source, Target>,
136
- ): <Self extends EffectSchema.Schema.Any>(self: Self) => relation<Self, Source, Target>;
137
- } = EchoSchema.EchoRelation as any;
156
+ export type AnyRelation = RelationSchemaBase;
138
157
 
139
158
  /**
140
- * Relation schema type definitions.
159
+ * Factory function to create an ECHO relation schema.
160
+ * Adds relation metadata annotations to an Effect schema.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * const WorksFor = Schema.Struct({
165
+ * role: Schema.String,
166
+ * }).pipe(Type.relation({
167
+ * typename: 'com.example.type.works-for',
168
+ * version: '0.1.0',
169
+ * source: Person,
170
+ * target: Company,
171
+ * }));
172
+ * ```
141
173
  */
142
- export namespace Relation {
143
- /**
144
- * Type that represents an arbitrary schema type of a relation.
145
- * NOTE: This is not an instance type.
146
- */
147
- // TODO(dmaretskyi): If schema was covariant, we could specify props in here, like `id: ObjectId`.
148
- export type Any = EffectSchema.Schema.AnyNoContext;
174
+ export const relation: {
175
+ <SourceSchema extends Schema.Schema.AnyNoContext, TargetSchema extends Schema.Schema.AnyNoContext>(
176
+ opts: internal.EchoRelationSchemaOptions<SourceSchema, TargetSchema>,
177
+ ): <Self extends Schema.Schema.Any>(
178
+ self: Self,
179
+ ) => Relation<Schema.Schema.Type<Self>, Schema.Schema.Type<SourceSchema>, Schema.Schema.Type<TargetSchema>>;
180
+ } = internal.EchoRelationSchema as any;
149
181
 
150
- /**
151
- * Get relation source type.
152
- */
153
- export type Source<A> = A extends Relation.Endpoints<infer S, infer _T> ? S : never;
154
-
155
- /**
156
- * Get relation target type.
157
- */
158
- export type Target<A> = A extends Relation.Endpoints<infer _S, infer T> ? T : never;
159
-
160
- export type Endpoints<Source, Target> = {
161
- [RelationModule.Source]: Source;
162
- [RelationModule.Target]: Target;
163
- };
164
- }
165
-
166
- //
167
- // Ref
168
- //
182
+ /**
183
+ * Type alias for any ECHO entity schema (object or relation).
184
+ * Use this in type annotations for schema parameters.
185
+ */
186
+ export type AnyEntity = AnyObj | AnyRelation;
169
187
 
170
188
  /**
171
- * Return type of the `Ref` schema constructor.
172
- *
173
- * This typedef avoids `TS4023` error (name from external module cannot be used named).
174
- * See Effect's note on interface types.
189
+ * Type guard to check if a schema is an object schema.
190
+ * NOTE: This checks SCHEMAS, not instances. Use Obj.isObject for instances.
175
191
  */
176
- export interface ref<TargetSchema extends EffectSchema.Schema.Any>
177
- extends EchoSchema.Ref$<EffectSchema.Schema.Type<TargetSchema>> {}
192
+ export const isObjectSchema = (schema: AnyEntity): schema is AnyObj => {
193
+ return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Object;
194
+ };
178
195
 
179
196
  /**
180
- * Ref schema.
197
+ * Type guard to check if a schema is a relation schema.
198
+ * NOTE: This checks SCHEMAS, not instances. Use Relation.isRelation for instances.
181
199
  */
182
- export const Ref: <S extends Obj.Any>(schema: S) => ref<S> = EchoSchema.Ref;
200
+ export const isRelationSchema = (schema: AnyEntity): schema is AnyRelation => {
201
+ return (schema as any)[internal.SchemaKindId] === internal.EntityKind.Relation;
202
+ };
183
203
 
184
- export interface Ref<T> extends EffectSchema.SchemaClass<EchoSchema.Ref<T>, EncodedReference> {}
204
+ /**
205
+ * Type that represents any Ref schema (with unknown target type).
206
+ * This is a schema type, not an instance type.
207
+ */
208
+ export type AnyRef = Schema.Schema<internal.Ref<any>, EncodedReference>;
185
209
 
186
- // TODO(buurdon): Move to Ref?
187
- export namespace Ref {
188
- /**
189
- * Type that represents an arbitrary schema type of a reference.
190
- * NOTE: This is not an instance type.
191
- */
192
- export type Any = EffectSchema.Schema<EchoSchema.Ref<any>, EncodedReference>;
193
- }
210
+ //
211
+ // Schema utility functions
212
+ //
194
213
 
195
214
  /**
196
215
  * Gets the full DXN of the schema.
197
216
  * Will include the version if it's a `type` DXN.
198
- * @example "dxn:example.com/type/Person:0.1.0"
217
+ * @example "dxn:com.example.type.person:0.1.0"
199
218
  * @example "dxn:echo:SSSSSSSSSS:XXXXXXXXXXXXX"
200
219
  */
201
- export const getDXN = (schema: Obj.Any | Relation.Any): Keys.DXN | undefined => {
202
- return EchoSchema.getSchemaDXN(schema);
220
+ export const getDXN = (schema: AnyEntity): DXN | undefined => {
221
+ return internal.getSchemaDXN(schema);
203
222
  };
204
223
 
205
224
  /**
206
225
  * @param schema - Schema to get the typename from.
207
- * @returns The typename of the schema. Example: `example.com/type/Person`.
226
+ * @returns The typename of the schema. Example: `com.example.type.person`.
208
227
  */
209
- export const getTypename = (schema: Obj.Any | Relation.Any): string => {
210
- const typename = EchoSchema.getSchemaTypename(schema);
228
+ export const getTypename = (schema: AnyEntity): string => {
229
+ const typename = internal.getSchemaTypename(schema);
211
230
  invariant(typeof typename === 'string' && !typename.startsWith('dxn:'), 'Invalid typename');
212
231
  return typename;
213
232
  };
@@ -216,8 +235,8 @@ export const getTypename = (schema: Obj.Any | Relation.Any): string => {
216
235
  * Gets the version of the schema.
217
236
  * @example 0.1.0
218
237
  */
219
- export const getVersion = (schema: Obj.Any | Relation.Any): string => {
220
- const version = EchoSchema.getSchemaVersion(schema);
238
+ export const getVersion = (schema: AnyEntity): string => {
239
+ const version = internal.getSchemaVersion(schema);
221
240
  invariant(typeof version === 'string' && version.match(/^\d+\.\d+\.\d+$/), 'Invalid version');
222
241
  return version;
223
242
  };
@@ -225,21 +244,16 @@ export const getVersion = (schema: Obj.Any | Relation.Any): string => {
225
244
  /**
226
245
  * @returns True if the schema is mutable.
227
246
  */
228
- export const isMutable = EchoSchema.isMutable;
247
+ export const isMutable = typeInternal.isMutable;
229
248
 
230
249
  /**
231
250
  * ECHO type metadata.
232
251
  */
233
- export type Meta = EchoSchema.TypeAnnotation;
252
+ export type Meta = internal.TypeAnnotation;
234
253
 
235
254
  /**
236
255
  * Gets the meta data of the schema.
237
256
  */
238
- export const getMeta = (schema: Obj.Any | Relation.Any): Meta | undefined => {
239
- return EchoSchema.getTypeAnnotation(schema);
257
+ export const getMeta = (schema: AnyEntity): Meta | undefined => {
258
+ return internal.getTypeAnnotation(schema);
240
259
  };
241
-
242
- // TODO(dmaretskyi): Remove re-exports.
243
- export { SpaceId, ObjectId, DXN } from '@dxos/keys';
244
-
245
- export { Format, JsonSchemaType as JsonSchema, toEffectSchema, toJsonSchema } from './internal';