@dxos/echo 0.8.4-main.406dc2a → 0.8.4-main.59c2e9b

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 (600) hide show
  1. package/README.md +1 -2
  2. package/dist/lib/browser/Annotation.mjs +33 -0
  3. package/dist/lib/browser/Database.mjs +18 -0
  4. package/dist/lib/browser/Entity.mjs +52 -0
  5. package/dist/lib/browser/Entity.mjs.map +7 -0
  6. package/dist/lib/browser/Err.mjs +11 -0
  7. package/dist/lib/browser/Err.mjs.map +7 -0
  8. package/dist/lib/browser/Filter.mjs +62 -0
  9. package/dist/lib/browser/Filter.mjs.map +7 -0
  10. package/dist/lib/browser/Format.mjs +67 -0
  11. package/dist/lib/browser/Format.mjs.map +7 -0
  12. package/dist/lib/browser/JsonSchema.mjs +20 -0
  13. package/dist/lib/browser/JsonSchema.mjs.map +7 -0
  14. package/dist/lib/browser/Key.mjs +13 -0
  15. package/dist/lib/browser/Key.mjs.map +7 -0
  16. package/dist/lib/browser/Obj.mjs +91 -0
  17. package/dist/lib/browser/Obj.mjs.map +7 -0
  18. package/dist/lib/browser/Order.mjs +13 -0
  19. package/dist/lib/browser/Order.mjs.map +7 -0
  20. package/dist/lib/browser/Query.mjs +27 -0
  21. package/dist/lib/browser/Query.mjs.map +7 -0
  22. package/dist/lib/browser/QueryResult.mjs +3 -0
  23. package/dist/lib/browser/QueryResult.mjs.map +7 -0
  24. package/dist/lib/browser/Ref.mjs +23 -0
  25. package/dist/lib/browser/Ref.mjs.map +7 -0
  26. package/dist/lib/browser/Relation.mjs +85 -0
  27. package/dist/lib/browser/Relation.mjs.map +7 -0
  28. package/dist/lib/browser/SchemaRegistry.mjs +3 -0
  29. package/dist/lib/browser/SchemaRegistry.mjs.map +7 -0
  30. package/dist/lib/browser/Tag.mjs +26 -0
  31. package/dist/lib/browser/Tag.mjs.map +7 -0
  32. package/dist/lib/browser/Type.mjs +48 -0
  33. package/dist/lib/browser/Type.mjs.map +7 -0
  34. package/dist/lib/browser/chunk-22JMFST2.mjs +24 -0
  35. package/dist/lib/browser/chunk-22JMFST2.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-2SBB7OWV.mjs +250 -0
  37. package/dist/lib/browser/chunk-2SBB7OWV.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-6L5HHUVU.mjs +158 -0
  39. package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-7STIBCP7.mjs +133 -0
  41. package/dist/lib/browser/chunk-7STIBCP7.mjs.map +7 -0
  42. package/dist/lib/browser/chunk-BJPE6CIC.mjs +3847 -0
  43. package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +7 -0
  44. package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
  45. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-CJ5YELTO.mjs +39 -0
  47. package/dist/lib/browser/chunk-CJ5YELTO.mjs.map +7 -0
  48. package/dist/lib/browser/chunk-FPOISFQK.mjs +40 -0
  49. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +7 -0
  50. package/dist/lib/browser/chunk-FRDT7RA4.mjs +403 -0
  51. package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +7 -0
  52. package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
  53. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
  54. package/dist/lib/browser/chunk-IXVWLTG7.mjs +9 -0
  55. package/dist/lib/browser/chunk-IXVWLTG7.mjs.map +7 -0
  56. package/dist/lib/browser/chunk-JMKVF2YQ.mjs +43 -0
  57. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +7 -0
  58. package/dist/lib/browser/chunk-KQQGVHFN.mjs +143 -0
  59. package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +7 -0
  60. package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
  61. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
  62. package/dist/lib/browser/chunk-NOPVNWPT.mjs +204 -0
  63. package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +7 -0
  64. package/dist/lib/browser/chunk-PQZW3S6L.mjs +74 -0
  65. package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +7 -0
  66. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs +283 -0
  67. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +7 -0
  68. package/dist/lib/browser/chunk-U2J7TA7K.mjs +57 -0
  69. package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +7 -0
  70. package/dist/lib/browser/chunk-W5D2GWAW.mjs +98 -0
  71. package/dist/lib/browser/chunk-W5D2GWAW.mjs.map +7 -0
  72. package/dist/lib/browser/chunk-XDIUHAAX.mjs +41 -0
  73. package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +7 -0
  74. package/dist/lib/browser/chunk-YKTSSMDS.mjs +69 -0
  75. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +7 -0
  76. package/dist/lib/browser/chunk-ZAGAOZVY.mjs +288 -0
  77. package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +7 -0
  78. package/dist/lib/browser/chunk-ZHXZGIXD.mjs +9 -0
  79. package/dist/lib/browser/chunk-ZHXZGIXD.mjs.map +7 -0
  80. package/dist/lib/browser/index.mjs +72 -22
  81. package/dist/lib/browser/internal/index.mjs +245 -120
  82. package/dist/lib/browser/meta.json +1 -1
  83. package/dist/lib/browser/testing/index.mjs +295 -226
  84. package/dist/lib/browser/testing/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/Annotation.mjs +33 -0
  86. package/dist/lib/node-esm/Annotation.mjs.map +7 -0
  87. package/dist/lib/node-esm/Database.mjs +18 -0
  88. package/dist/lib/node-esm/Database.mjs.map +7 -0
  89. package/dist/lib/node-esm/Entity.mjs +52 -0
  90. package/dist/lib/node-esm/Entity.mjs.map +7 -0
  91. package/dist/lib/node-esm/Err.mjs +11 -0
  92. package/dist/lib/node-esm/Err.mjs.map +7 -0
  93. package/dist/lib/node-esm/Filter.mjs +62 -0
  94. package/dist/lib/node-esm/Filter.mjs.map +7 -0
  95. package/dist/lib/node-esm/Format.mjs +67 -0
  96. package/dist/lib/node-esm/Format.mjs.map +7 -0
  97. package/dist/lib/node-esm/JsonSchema.mjs +20 -0
  98. package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
  99. package/dist/lib/node-esm/Key.mjs +13 -0
  100. package/dist/lib/node-esm/Key.mjs.map +7 -0
  101. package/dist/lib/node-esm/Obj.mjs +91 -0
  102. package/dist/lib/node-esm/Obj.mjs.map +7 -0
  103. package/dist/lib/node-esm/Order.mjs +13 -0
  104. package/dist/lib/node-esm/Order.mjs.map +7 -0
  105. package/dist/lib/node-esm/Query.mjs +27 -0
  106. package/dist/lib/node-esm/Query.mjs.map +7 -0
  107. package/dist/lib/node-esm/QueryResult.mjs +3 -0
  108. package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
  109. package/dist/lib/node-esm/Ref.mjs +23 -0
  110. package/dist/lib/node-esm/Ref.mjs.map +7 -0
  111. package/dist/lib/node-esm/Relation.mjs +85 -0
  112. package/dist/lib/node-esm/Relation.mjs.map +7 -0
  113. package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
  114. package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
  115. package/dist/lib/node-esm/Tag.mjs +26 -0
  116. package/dist/lib/node-esm/Tag.mjs.map +7 -0
  117. package/dist/lib/node-esm/Type.mjs +48 -0
  118. package/dist/lib/node-esm/Type.mjs.map +7 -0
  119. package/dist/lib/node-esm/chunk-4PNXQA64.mjs +250 -0
  120. package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +7 -0
  121. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +158 -0
  122. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs.map +7 -0
  123. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
  124. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
  125. package/dist/lib/node-esm/chunk-ANLVLWME.mjs +98 -0
  126. package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +7 -0
  127. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +57 -0
  128. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs.map +7 -0
  129. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +133 -0
  130. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +7 -0
  131. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  132. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  133. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +204 -0
  134. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs.map +7 -0
  135. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +43 -0
  136. package/dist/lib/node-esm/chunk-K37NA7PO.mjs.map +7 -0
  137. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +3847 -0
  138. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +7 -0
  139. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +9 -0
  140. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +7 -0
  141. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
  142. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
  143. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +40 -0
  144. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs.map +7 -0
  145. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +143 -0
  146. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs.map +7 -0
  147. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +41 -0
  148. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs.map +7 -0
  149. package/dist/lib/node-esm/chunk-QYR67VBV.mjs +288 -0
  150. package/dist/lib/node-esm/chunk-QYR67VBV.mjs.map +7 -0
  151. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +9 -0
  152. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +7 -0
  153. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +403 -0
  154. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs.map +7 -0
  155. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +69 -0
  156. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +7 -0
  157. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +74 -0
  158. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs.map +7 -0
  159. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +283 -0
  160. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +7 -0
  161. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +39 -0
  162. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +7 -0
  163. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs +24 -0
  164. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +7 -0
  165. package/dist/lib/node-esm/index.mjs +72 -22
  166. package/dist/lib/node-esm/internal/index.mjs +245 -120
  167. package/dist/lib/node-esm/meta.json +1 -1
  168. package/dist/lib/node-esm/testing/index.mjs +295 -226
  169. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  170. package/dist/types/src/Annotation.d.ts +2 -0
  171. package/dist/types/src/Annotation.d.ts.map +1 -0
  172. package/dist/types/src/Database.d.ts +194 -0
  173. package/dist/types/src/Database.d.ts.map +1 -0
  174. package/dist/types/src/Entity.d.ts +142 -0
  175. package/dist/types/src/Entity.d.ts.map +1 -0
  176. package/dist/types/src/Entity.test.d.ts +2 -0
  177. package/dist/types/src/Entity.test.d.ts.map +1 -0
  178. package/dist/types/src/{errors.d.ts → Err.d.ts} +23 -31
  179. package/dist/types/src/Err.d.ts.map +1 -0
  180. package/dist/types/src/Filter.d.ts +120 -0
  181. package/dist/types/src/Filter.d.ts.map +1 -0
  182. package/dist/types/src/Format.d.ts +4 -0
  183. package/dist/types/src/Format.d.ts.map +1 -0
  184. package/dist/types/src/Hypergraph.d.ts +60 -0
  185. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  186. package/dist/types/src/JsonSchema.d.ts +9 -0
  187. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  188. package/dist/types/src/Key.d.ts +1 -0
  189. package/dist/types/src/Key.d.ts.map +1 -1
  190. package/dist/types/src/Obj.d.ts +302 -99
  191. package/dist/types/src/Obj.d.ts.map +1 -1
  192. package/dist/types/src/Obj.test.d.ts +2 -0
  193. package/dist/types/src/Obj.test.d.ts.map +1 -0
  194. package/dist/types/src/Order.d.ts +16 -0
  195. package/dist/types/src/Order.d.ts.map +1 -0
  196. package/dist/types/src/Query.d.ts +115 -0
  197. package/dist/types/src/Query.d.ts.map +1 -0
  198. package/dist/types/src/Query.test.d.ts +2 -0
  199. package/dist/types/src/Query.test.d.ts.map +1 -0
  200. package/dist/types/src/QueryResult.d.ts +80 -0
  201. package/dist/types/src/QueryResult.d.ts.map +1 -0
  202. package/dist/types/src/Ref.d.ts +13 -11
  203. package/dist/types/src/Ref.d.ts.map +1 -1
  204. package/dist/types/src/Relation.d.ts +242 -22
  205. package/dist/types/src/Relation.d.ts.map +1 -1
  206. package/dist/types/src/Relation.test.d.ts +2 -0
  207. package/dist/types/src/Relation.test.d.ts.map +1 -0
  208. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  209. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  210. package/dist/types/src/Tag.d.ts +17 -0
  211. package/dist/types/src/Tag.d.ts.map +1 -0
  212. package/dist/types/src/Type.d.ts +225 -72
  213. package/dist/types/src/Type.d.ts.map +1 -1
  214. package/dist/types/src/Type.test.d.ts +2 -0
  215. package/dist/types/src/Type.test.d.ts.map +1 -0
  216. package/dist/types/src/index.d.ts +15 -5
  217. package/dist/types/src/index.d.ts.map +1 -1
  218. package/dist/types/src/internal/annotations/annotations.d.ts +170 -0
  219. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  220. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  221. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  222. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  223. package/dist/types/src/internal/annotations/util.d.ts +27 -0
  224. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  225. package/dist/types/src/internal/api/annotations.d.ts +23 -0
  226. package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
  227. package/dist/types/src/internal/api/entity.d.ts +13 -0
  228. package/dist/types/src/internal/api/entity.d.ts.map +1 -0
  229. package/dist/types/src/internal/api/index.d.ts +15 -0
  230. package/dist/types/src/internal/api/index.d.ts.map +1 -0
  231. package/dist/types/src/internal/api/meta.d.ts +42 -0
  232. package/dist/types/src/internal/api/meta.d.ts.map +1 -0
  233. package/dist/types/src/internal/api/sorting.d.ts +24 -0
  234. package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
  235. package/dist/types/src/internal/api/version.d.ts +42 -0
  236. package/dist/types/src/internal/api/version.d.ts.map +1 -0
  237. package/dist/types/src/internal/entities/entity.d.ts +20 -0
  238. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  239. package/dist/types/src/internal/entities/index.d.ts +6 -0
  240. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  241. package/dist/types/src/internal/entities/model.d.ts +77 -0
  242. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  243. package/dist/types/src/internal/entities/object.d.ts +18 -0
  244. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  245. package/dist/types/src/internal/entities/relation.d.ts +62 -0
  246. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  247. package/dist/types/src/internal/entities/util.d.ts +2 -0
  248. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  249. package/dist/types/src/internal/formats/format.d.ts +4 -2
  250. package/dist/types/src/internal/formats/format.d.ts.map +1 -1
  251. package/dist/types/src/internal/formats/select.d.ts +5 -3
  252. package/dist/types/src/internal/formats/select.d.ts.map +1 -1
  253. package/dist/types/src/internal/formats/string.d.ts +4 -0
  254. package/dist/types/src/internal/formats/string.d.ts.map +1 -1
  255. package/dist/types/src/internal/formats/types.d.ts +13 -9
  256. package/dist/types/src/internal/formats/types.d.ts.map +1 -1
  257. package/dist/types/src/internal/index.d.ts +7 -10
  258. package/dist/types/src/internal/index.d.ts.map +1 -1
  259. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  260. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  261. package/dist/types/src/internal/json-schema/index.d.ts +2 -0
  262. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -1
  263. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
  264. package/dist/types/src/internal/{json → json-schema}/json-schema.d.ts +2 -1
  265. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  266. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  267. package/dist/types/src/internal/object/clone.d.ts +8 -0
  268. package/dist/types/src/internal/object/clone.d.ts.map +1 -0
  269. package/dist/types/src/internal/object/common.d.ts.map +1 -1
  270. package/dist/types/src/internal/object/{create.d.ts → create-object.d.ts} +10 -11
  271. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  272. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  273. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  274. package/dist/types/src/internal/object/deleted.d.ts +2 -2
  275. package/dist/types/src/internal/object/deleted.d.ts.map +1 -1
  276. package/dist/types/src/internal/object/ids.d.ts.map +1 -1
  277. package/dist/types/src/internal/object/index.d.ts +6 -11
  278. package/dist/types/src/internal/object/index.d.ts.map +1 -1
  279. package/dist/types/src/internal/object/json-serializer.d.ts +14 -9
  280. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
  281. package/dist/types/src/internal/object/schema-validator.d.ts +1 -14
  282. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
  283. package/dist/types/src/internal/object/set-value.d.ts +7 -0
  284. package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
  285. package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
  286. package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
  287. package/dist/types/src/internal/object/snapshot.d.ts +6 -0
  288. package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
  289. package/dist/types/src/internal/object/typed-object.d.ts +8 -14
  290. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
  291. package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
  292. package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
  293. package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
  294. package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
  295. package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
  296. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
  297. package/dist/types/src/internal/proxy/errors.d.ts +19 -0
  298. package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
  299. package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
  300. package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
  301. package/dist/types/src/internal/proxy/index.d.ts +14 -0
  302. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  303. package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
  304. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
  305. package/dist/types/src/internal/proxy/make-object.d.ts +14 -0
  306. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  307. package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
  308. package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
  309. package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
  310. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
  311. package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
  312. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
  313. package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
  314. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
  315. package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
  316. package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
  317. package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
  318. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
  319. package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
  320. package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
  321. package/dist/types/src/internal/proxy/typed-handler.d.ts +15 -12
  322. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
  323. package/dist/types/src/internal/ref/ref-array.d.ts +4 -4
  324. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -1
  325. package/dist/types/src/internal/ref/ref.d.ts +27 -16
  326. package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
  327. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  328. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  329. package/dist/types/src/internal/schema/echo-schema.d.ts +24 -12
  330. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
  331. package/dist/types/src/internal/schema/index.d.ts +1 -4
  332. package/dist/types/src/internal/schema/index.d.ts.map +1 -1
  333. package/dist/types/src/internal/schema/persistent-schema.d.ts +20 -0
  334. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  335. package/dist/types/src/internal/types/base.d.ts +26 -0
  336. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  337. package/dist/types/src/internal/types/entity.d.ts +37 -0
  338. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  339. package/dist/types/src/internal/types/index.d.ts +5 -2
  340. package/dist/types/src/internal/types/index.d.ts.map +1 -1
  341. package/dist/types/src/internal/{object → types}/meta.d.ts +12 -11
  342. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  343. package/dist/types/src/internal/types/typename.d.ts +13 -0
  344. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  345. package/dist/types/src/internal/{object → types}/version.d.ts +3 -2
  346. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  347. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  348. package/dist/types/src/testing/index.d.ts +3 -3
  349. package/dist/types/src/testing/index.d.ts.map +1 -1
  350. package/dist/types/src/testing/test-data.d.ts +18 -0
  351. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  352. package/dist/types/src/testing/test-schema.d.ts +303 -0
  353. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  354. package/dist/types/src/testing/util.d.ts +21 -0
  355. package/dist/types/src/testing/util.d.ts.map +1 -0
  356. package/dist/types/tsconfig.tsbuildinfo +1 -1
  357. package/package.json +160 -45
  358. package/src/Annotation.ts +18 -0
  359. package/src/Database.ts +336 -0
  360. package/src/Entity.test.ts +22 -0
  361. package/src/Entity.ts +217 -0
  362. package/src/{errors.ts → Err.ts} +2 -2
  363. package/src/Filter.ts +376 -0
  364. package/src/Format.ts +9 -0
  365. package/src/Hypergraph.ts +74 -0
  366. package/src/JsonSchema.ts +16 -0
  367. package/src/Key.ts +3 -0
  368. package/src/Obj.test.ts +386 -0
  369. package/src/Obj.ts +449 -275
  370. package/src/Order.ts +44 -0
  371. package/src/Query.test.ts +465 -0
  372. package/src/Query.ts +296 -0
  373. package/src/QueryResult.ts +106 -0
  374. package/src/Ref.ts +26 -9
  375. package/src/Relation.test.ts +82 -0
  376. package/src/Relation.ts +411 -60
  377. package/src/SchemaRegistry.ts +105 -0
  378. package/src/{query/tag.ts → Tag.ts} +10 -7
  379. package/src/Type.test.ts +52 -0
  380. package/src/Type.ts +361 -114
  381. package/src/index.ts +16 -6
  382. package/src/internal/README.md +100 -0
  383. package/src/internal/{ast → annotations}/annotations.test.ts +18 -20
  384. package/src/internal/annotations/annotations.ts +460 -0
  385. package/src/internal/annotations/index.ts +6 -0
  386. package/src/internal/annotations/util.ts +72 -0
  387. package/src/internal/api/annotations.ts +60 -0
  388. package/src/internal/api/entity.ts +29 -0
  389. package/src/internal/api/index.ts +19 -0
  390. package/src/internal/api/meta.ts +88 -0
  391. package/src/internal/api/sorting.ts +53 -0
  392. package/src/internal/api/version.ts +96 -0
  393. package/src/internal/entities/entity.ts +126 -0
  394. package/src/internal/entities/index.ts +9 -0
  395. package/src/internal/entities/model.ts +134 -0
  396. package/src/internal/entities/object.ts +60 -0
  397. package/src/internal/entities/relation.ts +173 -0
  398. package/src/internal/entities/util.ts +33 -0
  399. package/src/internal/formats/date.test.ts +1 -1
  400. package/src/internal/formats/date.ts +5 -5
  401. package/src/internal/formats/format.test.ts +5 -5
  402. package/src/internal/formats/format.ts +8 -6
  403. package/src/internal/formats/number.ts +5 -5
  404. package/src/internal/formats/object.ts +4 -4
  405. package/src/internal/formats/select.ts +5 -3
  406. package/src/internal/formats/string.ts +14 -9
  407. package/src/internal/formats/types.ts +53 -42
  408. package/src/internal/index.ts +30 -13
  409. package/src/internal/{json → json-schema}/annotations.ts +1 -1
  410. package/src/internal/json-schema/index.ts +2 -0
  411. package/src/internal/json-schema/json-schema-type.ts +5 -4
  412. package/src/internal/{json → json-schema}/json-schema.test.ts +73 -69
  413. package/src/internal/{json → json-schema}/json-schema.ts +17 -8
  414. package/src/internal/object/clone.ts +48 -0
  415. package/src/internal/object/common.ts +3 -4
  416. package/src/internal/object/{create.test.ts → create-object.test.ts} +31 -33
  417. package/src/internal/object/{create.ts → create-object.ts} +36 -37
  418. package/src/internal/object/deleted.ts +6 -6
  419. package/src/internal/object/ids.ts +1 -1
  420. package/src/internal/object/index.ts +6 -11
  421. package/src/internal/object/inspect.ts +5 -7
  422. package/src/internal/object/json-serializer.test.ts +35 -37
  423. package/src/internal/object/json-serializer.ts +65 -102
  424. package/src/internal/object/schema-validator.ts +2 -237
  425. package/src/internal/object/set-value.test.ts +281 -0
  426. package/src/internal/object/set-value.ts +165 -0
  427. package/src/internal/object/snapshot.ts +70 -0
  428. package/src/internal/object/typed-object.test.ts +11 -11
  429. package/src/internal/object/typed-object.ts +8 -66
  430. package/src/internal/proxy/change-context.ts +138 -0
  431. package/src/internal/proxy/change.test.ts +519 -0
  432. package/src/internal/proxy/define-hidden-property.ts +14 -0
  433. package/src/internal/proxy/errors.ts +42 -0
  434. package/src/internal/proxy/event-batch.ts +44 -0
  435. package/src/internal/proxy/handler.test.ts +51 -91
  436. package/src/internal/proxy/index.ts +17 -0
  437. package/src/internal/proxy/json-serializer.ts +87 -0
  438. package/src/internal/proxy/make-object.ts +96 -0
  439. package/src/internal/proxy/ownership.ts +253 -0
  440. package/src/internal/proxy/proxy-types.ts +23 -0
  441. package/src/internal/proxy/proxy-utils.ts +150 -0
  442. package/src/internal/proxy/reactive-array.ts +71 -0
  443. package/src/internal/proxy/reactive.ts +69 -0
  444. package/src/internal/proxy/schema-validator.ts +244 -0
  445. package/src/internal/proxy/schema.test.ts +27 -18
  446. package/src/internal/proxy/symbols.ts +7 -0
  447. package/src/internal/proxy/typed-handler.test.ts +264 -48
  448. package/src/internal/proxy/typed-handler.ts +275 -61
  449. package/src/internal/proxy/typed-object.test.ts +43 -27
  450. package/src/internal/ref/ref-array.ts +4 -4
  451. package/src/internal/ref/ref.test.ts +9 -8
  452. package/src/internal/ref/ref.ts +81 -54
  453. package/src/internal/{projection → schema}/compose.test.ts +8 -9
  454. package/src/internal/{projection → schema}/compose.ts +1 -1
  455. package/src/internal/schema/echo-schema.ts +73 -33
  456. package/src/internal/schema/index.ts +1 -4
  457. package/src/internal/schema/manipulation.ts +1 -1
  458. package/src/internal/schema/persistent-schema.ts +27 -0
  459. package/src/internal/types/base.ts +43 -0
  460. package/src/internal/types/entity.ts +54 -0
  461. package/src/internal/types/index.ts +5 -2
  462. package/src/internal/{object → types}/meta.ts +22 -17
  463. package/src/internal/types/typename.ts +45 -0
  464. package/src/internal/types/version.ts +20 -0
  465. package/src/testing/api.test.ts +126 -0
  466. package/src/testing/index.ts +3 -3
  467. package/src/testing/test-data.ts +130 -0
  468. package/src/testing/test-schema.ts +238 -0
  469. package/src/testing/util.ts +85 -0
  470. package/dist/lib/browser/chunk-HKFCK2GL.mjs +0 -175
  471. package/dist/lib/browser/chunk-HKFCK2GL.mjs.map +0 -7
  472. package/dist/lib/browser/chunk-MAAYELT7.mjs +0 -830
  473. package/dist/lib/browser/chunk-MAAYELT7.mjs.map +0 -7
  474. package/dist/lib/browser/chunk-MB6MMNFP.mjs +0 -3857
  475. package/dist/lib/browser/chunk-MB6MMNFP.mjs.map +0 -7
  476. package/dist/lib/browser/query/index.mjs +0 -15
  477. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs +0 -830
  478. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs.map +0 -7
  479. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs +0 -175
  480. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs.map +0 -7
  481. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs +0 -3857
  482. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs.map +0 -7
  483. package/dist/lib/node-esm/query/index.mjs +0 -15
  484. package/dist/types/src/errors.d.ts.map +0 -1
  485. package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
  486. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
  487. package/dist/types/src/internal/ast/annotations.d.ts +0 -125
  488. package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
  489. package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
  490. package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
  491. package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
  492. package/dist/types/src/internal/ast/index.d.ts +0 -5
  493. package/dist/types/src/internal/ast/index.d.ts.map +0 -1
  494. package/dist/types/src/internal/ast/types.d.ts +0 -6
  495. package/dist/types/src/internal/ast/types.d.ts.map +0 -1
  496. package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
  497. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
  498. package/dist/types/src/internal/json/index.d.ts +0 -2
  499. package/dist/types/src/internal/json/index.d.ts.map +0 -1
  500. package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
  501. package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
  502. package/dist/types/src/internal/object/accessors.d.ts +0 -37
  503. package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
  504. package/dist/types/src/internal/object/create.d.ts.map +0 -1
  505. package/dist/types/src/internal/object/create.test.d.ts +0 -2
  506. package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
  507. package/dist/types/src/internal/object/entity.d.ts +0 -33
  508. package/dist/types/src/internal/object/entity.d.ts.map +0 -1
  509. package/dist/types/src/internal/object/expando.d.ts +0 -14
  510. package/dist/types/src/internal/object/expando.d.ts.map +0 -1
  511. package/dist/types/src/internal/object/meta.d.ts.map +0 -1
  512. package/dist/types/src/internal/object/model.d.ts +0 -117
  513. package/dist/types/src/internal/object/model.d.ts.map +0 -1
  514. package/dist/types/src/internal/object/relation.d.ts +0 -17
  515. package/dist/types/src/internal/object/relation.d.ts.map +0 -1
  516. package/dist/types/src/internal/object/typename.d.ts +0 -15
  517. package/dist/types/src/internal/object/typename.d.ts.map +0 -1
  518. package/dist/types/src/internal/object/version.d.ts.map +0 -1
  519. package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
  520. package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
  521. package/dist/types/src/internal/projection/index.d.ts +0 -2
  522. package/dist/types/src/internal/projection/index.d.ts.map +0 -1
  523. package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
  524. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
  525. package/dist/types/src/internal/query/index.d.ts +0 -2
  526. package/dist/types/src/internal/query/index.d.ts.map +0 -1
  527. package/dist/types/src/internal/query/query.d.ts +0 -17
  528. package/dist/types/src/internal/query/query.d.ts.map +0 -1
  529. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  530. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  531. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  532. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  533. package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
  534. package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
  535. package/dist/types/src/internal/testing/index.d.ts +0 -3
  536. package/dist/types/src/internal/testing/index.d.ts.map +0 -1
  537. package/dist/types/src/internal/testing/types.d.ts +0 -455
  538. package/dist/types/src/internal/testing/types.d.ts.map +0 -1
  539. package/dist/types/src/internal/testing/utils.d.ts +0 -10
  540. package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
  541. package/dist/types/src/internal/types/types.d.ts +0 -79
  542. package/dist/types/src/internal/types/types.d.ts.map +0 -1
  543. package/dist/types/src/internal/types/types.test.d.ts +0 -2
  544. package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
  545. package/dist/types/src/internal/types/util.d.ts +0 -5
  546. package/dist/types/src/internal/types/util.d.ts.map +0 -1
  547. package/dist/types/src/query/index.d.ts +0 -3
  548. package/dist/types/src/query/index.d.ts.map +0 -1
  549. package/dist/types/src/query/query.d.ts +0 -248
  550. package/dist/types/src/query/query.d.ts.map +0 -1
  551. package/dist/types/src/query/query.test.d.ts +0 -2
  552. package/dist/types/src/query/query.test.d.ts.map +0 -1
  553. package/dist/types/src/query/tag.d.ts +0 -17
  554. package/dist/types/src/query/tag.d.ts.map +0 -1
  555. package/dist/types/src/testing/echo-schema.d.ts +0 -7
  556. package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
  557. package/dist/types/src/testing/types.d.ts +0 -113
  558. package/dist/types/src/testing/types.d.ts.map +0 -1
  559. package/src/internal/ast/annotation-helper.ts +0 -22
  560. package/src/internal/ast/annotations.ts +0 -219
  561. package/src/internal/ast/entity-kind.ts +0 -15
  562. package/src/internal/ast/index.ts +0 -8
  563. package/src/internal/ast/types.ts +0 -17
  564. package/src/internal/json/index.ts +0 -5
  565. package/src/internal/object/accessors.ts +0 -153
  566. package/src/internal/object/entity.ts +0 -248
  567. package/src/internal/object/expando.ts +0 -21
  568. package/src/internal/object/model.ts +0 -170
  569. package/src/internal/object/relation.ts +0 -24
  570. package/src/internal/object/typename.ts +0 -61
  571. package/src/internal/object/version.ts +0 -22
  572. package/src/internal/projection/index.ts +0 -5
  573. package/src/internal/proxy/reactive-object.ts +0 -108
  574. package/src/internal/query/index.ts +0 -5
  575. package/src/internal/query/query.ts +0 -23
  576. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  577. package/src/internal/schema/snapshot.ts +0 -25
  578. package/src/internal/schema/stored-schema.ts +0 -26
  579. package/src/internal/testing/index.ts +0 -6
  580. package/src/internal/testing/types.ts +0 -211
  581. package/src/internal/testing/utils.ts +0 -54
  582. package/src/internal/types/types.test.ts +0 -48
  583. package/src/internal/types/types.ts +0 -176
  584. package/src/internal/types/util.ts +0 -9
  585. package/src/query/index.ts +0 -6
  586. package/src/query/query.test.ts +0 -401
  587. package/src/query/query.ts +0 -789
  588. package/src/test/api.test.ts +0 -180
  589. package/src/testing/echo-schema.ts +0 -39
  590. package/src/testing/types.ts +0 -91
  591. /package/dist/lib/browser/{query/index.mjs.map → Annotation.mjs.map} +0 -0
  592. /package/dist/lib/{node-esm/query/index.mjs.map → browser/Database.mjs.map} +0 -0
  593. /package/dist/types/src/internal/{ast → annotations}/annotations.test.d.ts +0 -0
  594. /package/dist/types/src/internal/{json → json-schema}/annotations.d.ts +0 -0
  595. /package/dist/types/src/internal/{json → json-schema}/effect-schema.test.d.ts +0 -0
  596. /package/dist/types/src/internal/{json → json-schema}/json-schema.test.d.ts +0 -0
  597. /package/dist/types/src/internal/{projection → schema}/compose.d.ts +0 -0
  598. /package/dist/types/src/internal/{projection → schema}/compose.test.d.ts +0 -0
  599. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
  600. /package/src/internal/{json → json-schema}/effect-schema.test.ts +0 -0
@@ -8,21 +8,22 @@ import * as ParseResult from 'effect/ParseResult';
8
8
  import * as Schema from 'effect/Schema';
9
9
  import * as SchemaAST from 'effect/SchemaAST';
10
10
 
11
- import { type EncodedReference, Reference } from '@dxos/echo-protocol';
12
- import { compositeRuntime } from '@dxos/echo-signals/runtime';
11
+ import { Event } from '@dxos/async';
12
+ import { type CustomInspectFunction, inspectCustom } from '@dxos/debug';
13
+ import { EncodedReference } from '@dxos/echo-protocol';
13
14
  import { assertArgument, invariant } from '@dxos/invariant';
14
15
  import { DXN, ObjectId } from '@dxos/keys';
15
16
 
16
- import { ReferenceAnnotationId, getSchemaDXN, getTypeAnnotation, getTypeIdentifierAnnotation } from '../ast';
17
+ import * as Database from '../../Database';
18
+ import { ReferenceAnnotationId, getSchemaDXN, getTypeAnnotation, getTypeIdentifierAnnotation } from '../annotations';
17
19
  import { type JsonSchemaType } from '../json-schema';
18
- import type { BaseObject, WithId } from '../types';
20
+ import type { AnyEntity, AnyProperties } from '../types';
19
21
 
20
22
  /**
21
23
  * The `$id` and `$ref` fields for an ECHO reference schema.
22
24
  */
23
25
  export const JSON_SCHEMA_ECHO_REF_ID = '/schemas/echo/ref';
24
26
 
25
- // TODO(burdon): Define return type.
26
27
  export const getSchemaReference = (property: JsonSchemaType): { typename: string } | undefined => {
27
28
  const { $id, reference: { schema: { $ref } = {} } = {} } = property;
28
29
  if ($id === JSON_SCHEMA_ECHO_REF_ID && $ref) {
@@ -71,16 +72,18 @@ export const RefTypeId: unique symbol = Symbol('@dxos/echo/internal/Ref');
71
72
  /**
72
73
  * Reference Schema.
73
74
  */
74
- export interface Ref$<T extends WithId> extends Schema.SchemaClass<Ref<T>, EncodedReference> {}
75
+ export interface RefSchema<T extends AnyEntity> extends Schema.SchemaClass<Ref<T>, EncodedReference> {}
75
76
 
76
- // Type of the `Ref` function and extra methods attached to it.
77
+ /**
78
+ * Type of the `Ref` function and extra methods attached to it.
79
+ */
77
80
  export interface RefFn {
78
- <S extends Schema.Schema.Any>(schema: S): Ref$<Schema.Schema.Type<S>>;
81
+ <S extends Schema.Schema.Any>(schema: S): RefSchema<Schema.Schema.Type<S>>;
79
82
 
80
83
  /**
81
84
  * @returns True if the object is a reference.
82
85
  */
83
- isRef: (obj: any) => obj is Ref<any>;
86
+ isRef: (obj: unknown) => obj is Ref<any>;
84
87
 
85
88
  /**
86
89
  * @returns True if the reference points to the given object id.
@@ -90,7 +93,7 @@ export interface RefFn {
90
93
  /**
91
94
  * @returns True if the schema is a reference schema.
92
95
  */
93
- isRefSchema: (schema: Schema.Schema<any, any>) => schema is Ref$<any>;
96
+ isRefSchema: (schema: Schema.Schema<any, any>) => schema is RefSchema<any>;
94
97
 
95
98
  /**
96
99
  * @returns True if the schema AST is a reference schema.
@@ -100,31 +103,26 @@ export interface RefFn {
100
103
  /**
101
104
  * Constructs a reference that points to the given object.
102
105
  */
103
- // TODO(burdon): Tighten type of T?
104
- make: <T extends WithId>(object: T) => Ref<T>;
106
+ // TODO(burdon): Narrow to Obj.Unknown?
107
+ make: <T extends AnyEntity>(object: T) => Ref<T>;
105
108
 
106
109
  /**
107
110
  * Constructs a reference that points to the object specified by the provided DXN.
108
111
  */
109
112
  fromDXN: (dxn: DXN) => Ref<any>;
110
113
  }
114
+
111
115
  /**
112
116
  * Schema builder for references.
113
117
  */
114
- export const Ref: RefFn = <S extends Schema.Schema.Any>(schema: S): Ref$<Schema.Schema.Type<S>> => {
118
+ export const Ref: RefFn = <S extends Schema.Schema.Any>(schema: S): RefSchema<Schema.Schema.Type<S>> => {
115
119
  assertArgument(Schema.isSchema(schema), 'schema', 'Must call with an instance of effect-schema');
116
-
117
120
  const annotation = getTypeAnnotation(schema);
118
121
  if (annotation == null) {
119
122
  throw new Error('Reference target must be an ECHO schema.');
120
123
  }
121
124
 
122
- return createEchoReferenceSchema(
123
- getTypeIdentifierAnnotation(schema),
124
- annotation.typename,
125
- annotation.version,
126
- getSchemaExpectedName(schema.ast),
127
- );
125
+ return createEchoReferenceSchema(getTypeIdentifierAnnotation(schema), annotation.typename, annotation.version);
128
126
  };
129
127
 
130
128
  /**
@@ -137,12 +135,15 @@ export interface Ref<T> {
137
135
  */
138
136
  get dxn(): DXN;
139
137
 
138
+ /**
139
+ * Returns true if the reference has a target available (inlined or resolver set).
140
+ */
141
+ get isAvailable(): boolean;
142
+
140
143
  /**
141
144
  * @returns The reference target.
142
145
  * May return `undefined` if the object is not loaded in the working set.
143
146
  * Accessing this property, even if it returns `undefined` will trigger the object to be loaded to the working set.
144
- *
145
- * @reactive Supports signal subscriptions.
146
147
  */
147
148
  get target(): T | undefined;
148
149
 
@@ -156,6 +157,7 @@ export interface Ref<T> {
156
157
  /**
157
158
  * @returns Promise that will resolves with the target object or undefined if the object is not loaded locally.
158
159
  */
160
+
159
161
  tryLoad(): Promise<T | undefined>;
160
162
 
161
163
  /**
@@ -201,7 +203,7 @@ Ref.isRef = (obj: any): obj is Ref<any> => {
201
203
 
202
204
  Ref.hasObjectId = (id: ObjectId) => (ref: Ref<any>) => ref.dxn.isLocalObjectId() && ref.dxn.parts[1] === id;
203
205
 
204
- Ref.isRefSchema = (schema: Schema.Schema<any, any>): schema is Ref$<any> => {
206
+ Ref.isRefSchema = (schema: Schema.Schema<any, any>): schema is RefSchema<any> => {
205
207
  return Ref.isRefSchemaAST(schema.ast);
206
208
  };
207
209
 
@@ -209,7 +211,7 @@ Ref.isRefSchemaAST = (ast: SchemaAST.AST): boolean => {
209
211
  return SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome);
210
212
  };
211
213
 
212
- Ref.make = <T extends BaseObject>(obj: T): Ref<T> => {
214
+ Ref.make = <T extends AnyProperties>(obj: T): Ref<T> => {
213
215
  if (typeof obj !== 'object' || obj === null) {
214
216
  throw new TypeError('Expected: ECHO object.');
215
217
  }
@@ -217,7 +219,7 @@ Ref.make = <T extends BaseObject>(obj: T): Ref<T> => {
217
219
  // TODO(dmaretskyi): Extract to `getObjectDXN` function.
218
220
  const id = obj.id;
219
221
  invariant(ObjectId.isValid(id), 'Invalid object ID');
220
- const dxn = Reference.localObjectReference(id).toDXN();
222
+ const dxn = DXN.fromLocalObjectId(id);
221
223
  return new RefImpl(dxn, obj);
222
224
  };
223
225
 
@@ -242,7 +244,6 @@ export const createEchoReferenceSchema = (
242
244
  echoId: string | undefined,
243
245
  typename: string | undefined,
244
246
  version: string | undefined,
245
- schemaName?: string,
246
247
  ): Schema.SchemaClass<Ref<any>, EncodedReference> => {
247
248
  if (!echoId && !typename) {
248
249
  throw new TypeError('Either echoId or typename must be provided.');
@@ -261,25 +262,39 @@ export const createEchoReferenceSchema = (
261
262
  [],
262
263
  {
263
264
  encode: () => {
264
- return (value) => {
265
- return Effect.succeed({
266
- '/': (value as Ref<any>).dxn.toString(),
265
+ return (value) =>
266
+ Effect.gen(function* () {
267
+ if (Ref.isRef(value)) {
268
+ return EncodedReference.fromDXN((value as Ref<any>).dxn);
269
+ } else if (EncodedReference.isEncodedReference(value)) {
270
+ return value;
271
+ }
272
+ throw new Error('Invalid reference');
267
273
  });
268
- };
269
274
  },
270
275
  decode: () => {
271
- return (value) => {
272
- // TODO(dmaretskyi): This branch seems to be taken by Schema.is
273
- if (Ref.isRef(value)) {
274
- return Effect.succeed(value);
275
- }
276
-
277
- if (typeof value !== 'object' || value == null || typeof (value as any)['/'] !== 'string') {
278
- return Effect.fail(new ParseResult.Unexpected(value, 'reference'));
279
- }
280
-
281
- return Effect.succeed(Ref.fromDXN(DXN.parse((value as any)['/'])));
282
- };
276
+ return (value) =>
277
+ Effect.gen(function* () {
278
+ const dbService = yield* Effect.serviceOption(Database.Service);
279
+
280
+ // TODO(dmaretskyi): This branch seems to be taken by Schema.is
281
+ if (Ref.isRef(value)) {
282
+ if (Option.isSome(dbService)) {
283
+ return dbService.value.db.makeRef(value.dxn);
284
+ } else {
285
+ return value;
286
+ }
287
+ }
288
+
289
+ if (!EncodedReference.isEncodedReference(value)) {
290
+ return yield* Effect.fail(new ParseResult.Unexpected(value, 'reference'));
291
+ }
292
+ if (Option.isSome(dbService)) {
293
+ return dbService.value.db.makeRef(EncodedReference.toDXN(value));
294
+ } else {
295
+ return Ref.fromDXN(EncodedReference.toDXN(value));
296
+ }
297
+ });
283
298
  },
284
299
  },
285
300
  {
@@ -315,12 +330,12 @@ export interface RefResolver {
315
330
  * @param load If true the resolver should attempt to load the object from disk.
316
331
  * @param onLoad Callback to call when the object is loaded.
317
332
  */
318
- resolveSync(dxn: DXN, load: boolean, onLoad?: () => void): BaseObject | undefined;
333
+ resolveSync(dxn: DXN, load: boolean, onLoad?: () => void): AnyProperties | undefined;
319
334
 
320
335
  /**
321
336
  * Resolver ref asynchronously.
322
337
  */
323
- resolve(dxn: DXN): Promise<BaseObject | undefined>;
338
+ resolve(dxn: DXN): Promise<AnyProperties | undefined>;
324
339
 
325
340
  // TODO(dmaretskyi): Combine with `resolve`.
326
341
  resolveSchema(dxn: DXN): Promise<Schema.Schema.AnyNoContext | undefined>;
@@ -329,7 +344,7 @@ export interface RefResolver {
329
344
  export class RefImpl<T> implements Ref<T> {
330
345
  #dxn: DXN;
331
346
  #resolver?: RefResolver = undefined;
332
- #signal = compositeRuntime.createSignal();
347
+ #resolved = new Event<void>();
333
348
 
334
349
  /**
335
350
  * Target is set when the reference is created from a specific object.
@@ -341,7 +356,7 @@ export class RefImpl<T> implements Ref<T> {
341
356
  * Callback to issue a reactive notification when object is resolved.
342
357
  */
343
358
  #resolverCallback = () => {
344
- this.#signal.notifyWrite();
359
+ this.#resolved.emit();
345
360
  };
346
361
 
347
362
  constructor(dxn: DXN, target?: T) {
@@ -356,11 +371,17 @@ export class RefImpl<T> implements Ref<T> {
356
371
  return this.#dxn;
357
372
  }
358
373
 
374
+ /**
375
+ * @inheritdoc
376
+ */
377
+ get isAvailable(): boolean {
378
+ return this.#target !== undefined || this.#resolver !== undefined;
379
+ }
380
+
359
381
  /**
360
382
  * @inheritdoc
361
383
  */
362
384
  get target(): T | undefined {
363
- this.#signal.notifyRead();
364
385
  if (this.#target) {
365
386
  return this.#target;
366
387
  }
@@ -388,6 +409,9 @@ export class RefImpl<T> implements Ref<T> {
388
409
  * @inheritdoc
389
410
  */
390
411
  async tryLoad(): Promise<T | undefined> {
412
+ if (this.#target) {
413
+ return this.#target;
414
+ }
391
415
  invariant(this.#resolver, 'Resolver is not set');
392
416
  return (await this.#resolver.resolve(this.#dxn)) as T | undefined;
393
417
  }
@@ -428,10 +452,15 @@ export class RefImpl<T> implements Ref<T> {
428
452
  return `Ref(${this.#dxn.toString()})`;
429
453
  }
430
454
 
455
+ [inspectCustom]: CustomInspectFunction = (depth, options, inspect) => {
456
+ return this.toString();
457
+ };
458
+
431
459
  [RefTypeId] = refVariance;
432
460
 
433
461
  /**
434
462
  * Internal method to set the resolver.
463
+ *
435
464
  * @internal
436
465
  */
437
466
  _setResolver(resolver: RefResolver): void {
@@ -439,8 +468,6 @@ export class RefImpl<T> implements Ref<T> {
439
468
  }
440
469
 
441
470
  /**
442
- * Internal method to get the saved target.
443
- * Not the same as `target` which is resolved from the resolver.
444
471
  * @internal
445
472
  */
446
473
  _getSavedTarget(): T | undefined {
@@ -459,7 +486,7 @@ export const setRefResolver = (ref: Ref<any>, resolver: RefResolver) => {
459
486
  /**
460
487
  * Internal API for getting the saved target on a reference.
461
488
  */
462
- export const getRefSavedTarget = (ref: Ref<any>): BaseObject | undefined => {
489
+ export const getRefSavedTarget = (ref: Ref<any>): AnyProperties | undefined => {
463
490
  invariant(ref instanceof RefImpl, 'Ref is not an instance of RefImpl');
464
491
  return ref._getSavedTarget();
465
492
  };
@@ -482,10 +509,10 @@ export const refFromEncodedReference = (encodedReference: EncodedReference, reso
482
509
  };
483
510
 
484
511
  export class StaticRefResolver implements RefResolver {
485
- public objects = new Map<ObjectId, BaseObject>();
512
+ public objects = new Map<ObjectId, AnyProperties>();
486
513
  public schemas = new Map<DXN.String, Schema.Schema.AnyNoContext>();
487
514
 
488
- addObject(obj: BaseObject): this {
515
+ addObject(obj: AnyProperties): this {
489
516
  this.objects.set(obj.id, obj);
490
517
  return this;
491
518
  }
@@ -497,7 +524,7 @@ export class StaticRefResolver implements RefResolver {
497
524
  return this;
498
525
  }
499
526
 
500
- resolveSync(dxn: DXN, _load: boolean, _onLoad?: () => void): BaseObject | undefined {
527
+ resolveSync(dxn: DXN, _load: boolean, _onLoad?: () => void): AnyProperties | undefined {
501
528
  const id = dxn?.asEchoDXN()?.echoId;
502
529
  if (id == null) {
503
530
  return undefined;
@@ -506,7 +533,7 @@ export class StaticRefResolver implements RefResolver {
506
533
  return this.objects.get(id);
507
534
  }
508
535
 
509
- async resolve(dxn: DXN): Promise<BaseObject | undefined> {
536
+ async resolve(dxn: DXN): Promise<AnyProperties | undefined> {
510
537
  const id = dxn?.asEchoDXN()?.echoId;
511
538
  if (id == null) {
512
539
  return undefined;
@@ -5,23 +5,22 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
  import { describe, test } from 'vitest';
7
7
 
8
- import { FieldPath } from '../ast';
9
- import { FormatAnnotation, FormatEnum } from '../formats';
10
- import { toJsonSchema } from '../json';
11
- import { ECHO_ANNOTATIONS_NS_KEY } from '../json-schema';
12
- import { TypedObject } from '../object';
8
+ import { FieldPath } from '../annotations';
9
+ import { EchoObjectSchema } from '../entities';
10
+ import { FormatAnnotation, TypeFormat } from '../formats';
11
+ import { ECHO_ANNOTATIONS_NS_KEY, toJsonSchema } from '../json-schema';
13
12
 
14
13
  import { composeSchema } from './compose';
15
14
 
16
15
  describe('schema composition', () => {
17
16
  test('schema composition', ({ expect }) => {
18
- class BaseType extends TypedObject({ typename: 'example.com/Person', version: '0.1.0' })({
17
+ const BaseType = Schema.Struct({
19
18
  name: Schema.String,
20
19
  email: Schema.String,
21
- }) {}
20
+ }).pipe(EchoObjectSchema({ typename: 'example.com/Person', version: '0.1.0' }));
22
21
 
23
22
  const OverlaySchema = Schema.Struct({
24
- email: Schema.String.pipe(FieldPath('$.email'), FormatAnnotation.set(FormatEnum.Email)),
23
+ email: Schema.String.pipe(FieldPath('$.email'), FormatAnnotation.set(TypeFormat.Email)),
25
24
  });
26
25
 
27
26
  const baseSchema = toJsonSchema(BaseType);
@@ -30,7 +29,7 @@ describe('schema composition', () => {
30
29
  expect(composedSchema.properties).to.deep.eq({
31
30
  email: {
32
31
  type: 'string',
33
- format: FormatEnum.Email,
32
+ format: TypeFormat.Email,
34
33
  // TODO(dmaretskyi): Should use the new field.
35
34
  [ECHO_ANNOTATIONS_NS_KEY]: {
36
35
  meta: {
@@ -5,7 +5,7 @@
5
5
  import { invariant } from '@dxos/invariant';
6
6
 
7
7
  import { type JsonSchemaType } from '../json-schema';
8
- import { getSnapshot } from '../schema';
8
+ import { getSnapshot } from '../object';
9
9
 
10
10
  /**
11
11
  * Creates a composite schema from the source and projection schemas.
@@ -8,10 +8,11 @@ import * as SchemaAST from 'effect/SchemaAST';
8
8
  import { invariant } from '@dxos/invariant';
9
9
  import { type ObjectId } from '@dxos/keys';
10
10
 
11
- import { type SchemaMeta, SchemaMetaSymbol, type TypeAnnotation, getTypeAnnotation } from '../ast';
12
- import { toEffectSchema, toJsonSchema } from '../json';
13
- import { type JsonSchemaType } from '../json-schema';
14
- import { type TypedObject, type TypedObjectPrototype } from '../object';
11
+ import { type SchemaMeta, SchemaMetaSymbol, type TypeAnnotation, getTypeAnnotation } from '../annotations';
12
+ import { type JsonSchemaType, toEffectSchema, toJsonSchema } from '../json-schema';
13
+ import { type TypedObject, type TypedObjectPrototype, getSnapshot } from '../object';
14
+ import { ChangeId } from '../proxy';
15
+ import { EntityKind, SchemaKindId } from '../types';
15
16
 
16
17
  import {
17
18
  addFieldsToSchema,
@@ -20,14 +21,14 @@ import {
20
21
  updateFieldNameInSchema,
21
22
  updateFieldsInSchema,
22
23
  } from './manipulation';
23
- import { getSnapshot } from './snapshot';
24
- import { StoredSchema } from './stored-schema';
24
+ import { PersistentSchema } from './persistent-schema';
25
25
 
26
26
  /**
27
27
  * Base schema type.
28
28
  */
29
29
  // TODO(burdon): Merge with ImmutableSchema.
30
30
  export interface BaseSchema<A = any, I = any> extends TypedObject<A, I> {
31
+ // TODO(burdon): Different from mutable?
31
32
  get readonly(): boolean;
32
33
  // TODO(burdon): Change to external function.
33
34
  get mutable(): EchoSchema<A, I>;
@@ -83,6 +84,10 @@ export class ImmutableSchema<A = any, I = any> implements BaseSchema<A, I> {
83
84
  // TypedObject
84
85
  //
85
86
 
87
+ get kind(): EntityKind {
88
+ return this._objectAnnotation.kind;
89
+ }
90
+
86
91
  get typename(): string {
87
92
  return this._objectAnnotation.typename;
88
93
  }
@@ -124,8 +129,10 @@ const EchoSchemaConstructor = (): TypedObjectPrototype => {
124
129
  */
125
130
  return class {
126
131
  private static get _schema() {
127
- // The field is DynamicEchoSchema in runtime, but is serialized as StoredEchoSchema in automerge.
128
- return Schema.Union(StoredSchema, Schema.instanceOf(EchoSchema)).annotations(StoredSchema.ast.annotations);
132
+ // The field is DynamicEchoSchema in runtime, but is serialized as PersisentSchema in automerge.
133
+ return Schema.Union(PersistentSchema, Schema.instanceOf(EchoSchema)).annotations(
134
+ PersistentSchema.ast.annotations,
135
+ );
129
136
  }
130
137
 
131
138
  static readonly [Schema.TypeId] = schemaVariance;
@@ -159,7 +166,7 @@ const schemaVariance = {
159
166
  };
160
167
 
161
168
  /**
162
- * Represents a schema that is stored in the ECHO database.
169
+ * Represents a schema that is persisted in the ECHO database.
163
170
  * Schema can me mutable or readonly (specified by the {@link EchoSchema.readonly} field).
164
171
  *
165
172
  * Schema that can be modified at runtime via the API.
@@ -170,20 +177,26 @@ const schemaVariance = {
170
177
  *
171
178
  * @example
172
179
  * ```ts
173
- * export class TableType extends Schema.Struct({...}).pipe(Type.Obj({ typename: 'example.org/type/Table', version: '0.1.0' })){
180
+ * export class TableType extends Schema.Struct({...}).pipe(Type.object({ typename: 'example.org/type/Table', version: '0.1.0' })){
174
181
  * title: Schema.String,
175
182
  * schema: Schema.optional(ref(EchoSchema)),
176
183
  * props: Schema.mutable(S.Array(TablePropSchema)),
177
184
  * }) {}
178
185
  * ```
179
186
  *
180
- * The ECHO API will translate any references to StoredSchema objects to be resolved as EchoSchema objects.
187
+ * The ECHO API will translate any references to PersistentSchema objects to be resolved as EchoSchema objects.
181
188
  */
182
189
  export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implements BaseSchema<A, I> {
183
190
  private _schema: Schema.Schema.AnyNoContext | undefined;
184
191
  private _isDirty = true;
185
192
 
186
- constructor(private readonly _storedSchema: StoredSchema) {
193
+ /**
194
+ * Schema kind key that marks this as an ECHO schema.
195
+ * Makes EchoSchema satisfy the Type.Obj.Any type.
196
+ */
197
+ readonly [SchemaKindId]: EntityKind.Object = EntityKind.Object;
198
+
199
+ constructor(private readonly _persistentSchema: PersistentSchema) {
187
200
  super();
188
201
  }
189
202
 
@@ -196,11 +209,11 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
196
209
  }
197
210
 
198
211
  public get Type() {
199
- return this._storedSchema as A;
212
+ return this._persistentSchema as A;
200
213
  }
201
214
 
202
215
  public get Encoded() {
203
- return this._storedSchema as I;
216
+ return this._persistentSchema as I;
204
217
  }
205
218
 
206
219
  public get Context() {
@@ -227,12 +240,17 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
227
240
  // BaseSchema
228
241
  //
229
242
 
243
+ public get kind(): EntityKind.Object {
244
+ // Dynamic schemas are always object schemas.
245
+ return EntityKind.Object;
246
+ }
247
+
230
248
  public get typename(): string {
231
- return this._storedSchema.typename;
249
+ return this._persistentSchema.typename;
232
250
  }
233
251
 
234
252
  public get version(): string {
235
- return this._storedSchema.version;
253
+ return this._persistentSchema.version;
236
254
  }
237
255
 
238
256
  public get readonly(): boolean {
@@ -247,10 +265,10 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
247
265
  }
248
266
 
249
267
  /**
250
- * @reactive
268
+ * Returns the JSON schema for the schema.
251
269
  */
252
270
  public get jsonSchema(): JsonSchemaType {
253
- return this._storedSchema.jsonSchema;
271
+ return this._persistentSchema.jsonSchema;
254
272
  }
255
273
 
256
274
  /**
@@ -269,25 +287,25 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
269
287
  * Id of the ECHO object containing the schema.
270
288
  */
271
289
  public get id(): ObjectId {
272
- return this._storedSchema.id;
290
+ return this._persistentSchema.id;
273
291
  }
274
292
 
275
293
  /**
276
294
  * Short name of the schema.
277
295
  */
278
296
  public get name(): string | undefined {
279
- return this._storedSchema.name;
297
+ return this._persistentSchema.name;
280
298
  }
281
299
 
282
300
  public get [SchemaMetaSymbol](): SchemaMeta {
283
- return { id: this.id, typename: this.typename, version: this._storedSchema.version };
301
+ return { id: this.id, typename: this.typename, version: this._persistentSchema.version };
284
302
  }
285
303
 
286
304
  /**
287
- * Reference to the underlying stored schema object.
305
+ * Reference to the underlying persistent schema object.
288
306
  */
289
- public get storedSchema(): StoredSchema {
290
- return this._storedSchema;
307
+ public get persistentSchema(): PersistentSchema {
308
+ return this._persistentSchema;
291
309
  }
292
310
 
293
311
  public getProperties(): SchemaAST.PropertySignature[] {
@@ -307,8 +325,10 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
307
325
  */
308
326
  public updateTypename(typename: string): void {
309
327
  const updated = setTypenameInSchema(this._getSchema(), typename);
310
- this._storedSchema.typename = typename;
311
- this._storedSchema.jsonSchema = toJsonSchema(updated);
328
+ this._change((schema) => {
329
+ schema.typename = typename;
330
+ schema.jsonSchema = toJsonSchema(updated);
331
+ });
312
332
  }
313
333
 
314
334
  /**
@@ -316,7 +336,9 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
316
336
  */
317
337
  public addFields(fields: Schema.Struct.Fields): void {
318
338
  const extended = addFieldsToSchema(this._getSchema(), fields);
319
- this._storedSchema.jsonSchema = toJsonSchema(extended);
339
+ this._change((schema) => {
340
+ schema.jsonSchema = toJsonSchema(extended);
341
+ });
320
342
  }
321
343
 
322
344
  /**
@@ -324,7 +346,9 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
324
346
  */
325
347
  public updateFields(fields: Schema.Struct.Fields): void {
326
348
  const updated = updateFieldsInSchema(this._getSchema(), fields);
327
- this._storedSchema.jsonSchema = toJsonSchema(updated);
349
+ this._change((schema) => {
350
+ schema.jsonSchema = toJsonSchema(updated);
351
+ });
328
352
  }
329
353
 
330
354
  /**
@@ -332,7 +356,9 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
332
356
  */
333
357
  public updateFieldPropertyName({ before, after }: { before: PropertyKey; after: PropertyKey }): void {
334
358
  const renamed = updateFieldNameInSchema(this._getSchema(), { before, after });
335
- this._storedSchema.jsonSchema = toJsonSchema(renamed);
359
+ this._change((schema) => {
360
+ schema.jsonSchema = toJsonSchema(renamed);
361
+ });
336
362
  }
337
363
 
338
364
  /**
@@ -340,7 +366,21 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
340
366
  */
341
367
  public removeFields(fieldNames: string[]): void {
342
368
  const removed = removeFieldsFromSchema(this._getSchema(), fieldNames);
343
- this._storedSchema.jsonSchema = toJsonSchema(removed);
369
+ this._change((schema) => {
370
+ schema.jsonSchema = toJsonSchema(removed);
371
+ });
372
+ }
373
+
374
+ /**
375
+ * Wrapper for Obj.change that handles the change context for the persistent schema.
376
+ */
377
+ private _change(callback: (schema: PersistentSchema) => void): void {
378
+ const changeFn = (this._persistentSchema as any)[ChangeId];
379
+ if (changeFn) {
380
+ changeFn(callback);
381
+ } else {
382
+ callback(this._persistentSchema);
383
+ }
344
384
  }
345
385
 
346
386
  //
@@ -348,7 +388,7 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
348
388
  //
349
389
 
350
390
  /**
351
- * Called by EchoSchemaRegistry on update.
391
+ * Called by DatabaseSchemaRegistry on update.
352
392
  */
353
393
  _invalidate(): void {
354
394
  this._isDirty = true;
@@ -359,12 +399,12 @@ export class EchoSchema<A = any, I = any> extends EchoSchemaConstructor() implem
359
399
  */
360
400
  _rebuild(): void {
361
401
  if (this._isDirty || this._schema == null) {
362
- this._schema = toEffectSchema(getSnapshot(this._storedSchema.jsonSchema));
402
+ this._schema = toEffectSchema(getSnapshot(this._persistentSchema.jsonSchema));
363
403
  this._isDirty = false;
364
404
  }
365
405
  }
366
406
 
367
- private _getSchema(): Schema.Schema.AnyNoContext {
407
+ _getSchema(): Schema.Schema.AnyNoContext {
368
408
  this._rebuild();
369
409
  return this._schema!;
370
410
  }
@@ -3,8 +3,5 @@
3
3
  //
4
4
 
5
5
  export * from './echo-schema';
6
- export * from './snapshot';
7
- export * from './stored-schema';
8
- export * from './runtime-schema-registry';
9
6
  export * from './manipulation';
10
- export * from './echo-schema';
7
+ export * from './persistent-schema';
@@ -8,7 +8,7 @@ import * as SchemaAST from 'effect/SchemaAST';
8
8
  import { invariant } from '@dxos/invariant';
9
9
  import { DXN } from '@dxos/keys';
10
10
 
11
- import { type TypeAnnotation, TypeAnnotationId, TypeIdentifierAnnotationId } from '../ast';
11
+ import { type TypeAnnotation, TypeAnnotationId, TypeIdentifierAnnotationId } from '../annotations';
12
12
 
13
13
  // TODO(ZaymonFC): Do this one at a time. This might be dangerous.
14
14
  export const addFieldsToSchema = (