@dxos/echo 0.8.4-main.c85a9c8dae → 0.8.4-main.cb12b3f963

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 (554) hide show
  1. package/dist/lib/neutral/Annotation.mjs +3 -3
  2. package/dist/lib/neutral/Database.mjs +8 -4
  3. package/dist/lib/neutral/Entity.mjs +16 -11
  4. package/dist/lib/neutral/Err.mjs +1 -1
  5. package/dist/lib/neutral/Extension.mjs +18 -0
  6. package/dist/lib/neutral/Extension.mjs.map +7 -0
  7. package/dist/lib/neutral/Feed.mjs +21 -14
  8. package/dist/lib/neutral/Filter.mjs +21 -10
  9. package/dist/lib/neutral/Format.mjs +3 -3
  10. package/dist/lib/neutral/JsonSchema.mjs +8 -7
  11. package/dist/lib/neutral/Key.mjs +1 -1
  12. package/dist/lib/neutral/Migration.mjs +17 -0
  13. package/dist/lib/neutral/Migration.mjs.map +7 -0
  14. package/dist/lib/neutral/Obj.mjs +16 -10
  15. package/dist/lib/neutral/Order.mjs +1 -1
  16. package/dist/lib/neutral/Query.mjs +19 -13
  17. package/dist/lib/neutral/QueryResult.mjs +1 -1
  18. package/dist/lib/neutral/Ref.mjs +7 -7
  19. package/dist/lib/neutral/Relation.mjs +15 -11
  20. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  21. package/dist/lib/neutral/Tag.mjs +14 -10
  22. package/dist/lib/neutral/Type.mjs +10 -7
  23. package/dist/lib/neutral/{chunk-ALOGSVBP.mjs → chunk-3U5PIVPZ.mjs} +59 -4
  24. package/dist/lib/neutral/chunk-3U5PIVPZ.mjs.map +7 -0
  25. package/dist/lib/neutral/{chunk-DZQSL6RW.mjs → chunk-44HT3MEC.mjs} +2 -2
  26. package/dist/lib/neutral/{chunk-DZQSL6RW.mjs.map → chunk-44HT3MEC.mjs.map} +1 -1
  27. package/dist/lib/neutral/{chunk-5ELDDYWE.mjs → chunk-4VTRFJV3.mjs} +17 -19
  28. package/dist/lib/neutral/chunk-4VTRFJV3.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-5NR2KWDU.mjs +34 -0
  30. package/dist/lib/neutral/chunk-5NR2KWDU.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-62RJTYOZ.mjs +346 -0
  32. package/dist/lib/neutral/chunk-62RJTYOZ.mjs.map +7 -0
  33. package/dist/lib/neutral/{chunk-OVUBTQLT.mjs → chunk-7OO5B5DD.mjs} +2 -2
  34. package/dist/lib/neutral/chunk-7OO5B5DD.mjs.map +7 -0
  35. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
  36. package/dist/lib/neutral/{chunk-GAWKQ5DZ.mjs → chunk-AG7JS76F.mjs} +5 -5
  37. package/dist/lib/neutral/chunk-AG7JS76F.mjs.map +7 -0
  38. package/dist/lib/neutral/{chunk-PP4DNUZU.mjs → chunk-AVPYX7FF.mjs} +1399 -2882
  39. package/dist/lib/neutral/chunk-AVPYX7FF.mjs.map +7 -0
  40. package/dist/lib/neutral/{chunk-ZWKJ4LZJ.mjs → chunk-BCKTAKBX.mjs} +23 -51
  41. package/dist/lib/neutral/chunk-BCKTAKBX.mjs.map +7 -0
  42. package/dist/lib/neutral/{chunk-T6JEFNP6.mjs → chunk-BICZKPQG.mjs} +1 -1
  43. package/dist/lib/neutral/{chunk-T6JEFNP6.mjs.map → chunk-BICZKPQG.mjs.map} +1 -1
  44. package/dist/lib/neutral/{chunk-F7KMHDPJ.mjs → chunk-GECFB2UL.mjs} +49 -31
  45. package/dist/lib/neutral/chunk-GECFB2UL.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  47. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  48. package/dist/lib/neutral/{chunk-BRJSLACP.mjs → chunk-M7ET73JD.mjs} +71 -17
  49. package/dist/lib/neutral/chunk-M7ET73JD.mjs.map +7 -0
  50. package/dist/lib/neutral/{chunk-4KG6IGL4.mjs → chunk-N4B7FHQT.mjs} +4 -4
  51. package/dist/lib/neutral/{chunk-4KG6IGL4.mjs.map → chunk-N4B7FHQT.mjs.map} +2 -2
  52. package/dist/lib/neutral/{chunk-KGV3QIRX.mjs → chunk-NCSIQP3L.mjs} +124 -17
  53. package/dist/lib/neutral/chunk-NCSIQP3L.mjs.map +7 -0
  54. package/dist/lib/neutral/{chunk-QXF3LGN2.mjs → chunk-NGQNU3KX.mjs} +5 -3
  55. package/dist/lib/neutral/chunk-NGQNU3KX.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-PRCRETDK.mjs +36 -0
  57. package/dist/lib/neutral/chunk-PRCRETDK.mjs.map +7 -0
  58. package/dist/lib/neutral/{chunk-AQP4QKYP.mjs → chunk-S4JXD2RO.mjs} +44 -9
  59. package/dist/lib/neutral/chunk-S4JXD2RO.mjs.map +7 -0
  60. package/dist/lib/neutral/{chunk-W7OP5HGZ.mjs → chunk-SVEGO3DJ.mjs} +14 -10
  61. package/dist/lib/neutral/chunk-SVEGO3DJ.mjs.map +7 -0
  62. package/dist/lib/neutral/{chunk-M2KVTHZM.mjs → chunk-TRPZU2HV.mjs} +10 -10
  63. package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
  64. package/dist/lib/neutral/{chunk-ZTUBYOGB.mjs → chunk-TTCSATUD.mjs} +1 -1
  65. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-GFNCSK7F.mjs → chunk-TTUIJXGD.mjs} +54 -23
  67. package/dist/lib/neutral/chunk-TTUIJXGD.mjs.map +7 -0
  68. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  69. package/dist/lib/neutral/{chunk-T4MPQJ7X.mjs → chunk-WGMPVUUL.mjs} +6 -22
  70. package/dist/lib/neutral/chunk-WGMPVUUL.mjs.map +7 -0
  71. package/dist/lib/neutral/{chunk-O3TZFQCT.mjs → chunk-YDRLYZKW.mjs} +2 -2
  72. package/dist/lib/neutral/chunk-YDRLYZKW.mjs.map +7 -0
  73. package/dist/lib/neutral/chunk-Z25FPDXG.mjs +734 -0
  74. package/dist/lib/neutral/chunk-Z25FPDXG.mjs.map +7 -0
  75. package/dist/lib/neutral/{chunk-MXQJZCPY.mjs → chunk-ZISMEVKD.mjs} +1 -1
  76. package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
  77. package/dist/lib/neutral/index.mjs +38 -25
  78. package/dist/lib/neutral/internal/index.mjs +48 -38
  79. package/dist/lib/neutral/meta.json +1 -1
  80. package/dist/lib/neutral/testing/index.mjs +41 -35
  81. package/dist/lib/neutral/testing/index.mjs.map +2 -2
  82. package/dist/types/src/Annotation.d.ts +3 -3
  83. package/dist/types/src/Annotation.d.ts.map +1 -1
  84. package/dist/types/src/Collection.d.ts.map +1 -1
  85. package/dist/types/src/Database.d.ts +15 -3
  86. package/dist/types/src/Database.d.ts.map +1 -1
  87. package/dist/types/src/Dataset.d.ts +2 -1
  88. package/dist/types/src/Dataset.d.ts.map +1 -1
  89. package/dist/types/src/Entity.d.ts +17 -11
  90. package/dist/types/src/Entity.d.ts.map +1 -1
  91. package/dist/types/src/Err.d.ts +18 -18
  92. package/dist/types/src/Err.d.ts.map +1 -1
  93. package/dist/types/src/Extension.d.ts +80 -0
  94. package/dist/types/src/Extension.d.ts.map +1 -0
  95. package/dist/types/src/Extension.test.d.ts +2 -0
  96. package/dist/types/src/Extension.test.d.ts.map +1 -0
  97. package/dist/types/src/Feed.d.ts +40 -23
  98. package/dist/types/src/Feed.d.ts.map +1 -1
  99. package/dist/types/src/Filter.d.ts +33 -4
  100. package/dist/types/src/Filter.d.ts.map +1 -1
  101. package/dist/types/src/Filter.test.d.ts +2 -0
  102. package/dist/types/src/Filter.test.d.ts.map +1 -0
  103. package/dist/types/src/Format.d.ts +1 -1
  104. package/dist/types/src/Format.d.ts.map +1 -1
  105. package/dist/types/src/Hypergraph.d.ts +6 -1
  106. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  107. package/dist/types/src/Json.d.ts +33 -0
  108. package/dist/types/src/Json.d.ts.map +1 -0
  109. package/dist/types/src/Json.test.d.ts +2 -0
  110. package/dist/types/src/Json.test.d.ts.map +1 -0
  111. package/dist/types/src/JsonSchema.d.ts +5 -5
  112. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  113. package/dist/types/src/Migration.d.ts +57 -0
  114. package/dist/types/src/Migration.d.ts.map +1 -0
  115. package/dist/types/src/Obj.d.ts +45 -29
  116. package/dist/types/src/Obj.d.ts.map +1 -1
  117. package/dist/types/src/Order.d.ts.map +1 -1
  118. package/dist/types/src/Query.d.ts +13 -2
  119. package/dist/types/src/Query.d.ts.map +1 -1
  120. package/dist/types/src/Ref.d.ts +11 -11
  121. package/dist/types/src/Ref.d.ts.map +1 -1
  122. package/dist/types/src/Relation.d.ts +16 -16
  123. package/dist/types/src/Relation.d.ts.map +1 -1
  124. package/dist/types/src/SchemaRegistry.d.ts +1 -1
  125. package/dist/types/src/Tag.d.ts +2 -2
  126. package/dist/types/src/Tag.d.ts.map +1 -1
  127. package/dist/types/src/Type.d.ts +10 -9
  128. package/dist/types/src/Type.d.ts.map +1 -1
  129. package/dist/types/src/View.d.ts +1 -1
  130. package/dist/types/src/View.d.ts.map +1 -1
  131. package/dist/types/src/exemplars.test.d.ts +2 -0
  132. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  133. package/dist/types/src/index.d.ts +3 -0
  134. package/dist/types/src/index.d.ts.map +1 -1
  135. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +24 -2
  136. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  137. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  138. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  139. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  140. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  141. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  142. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +2 -2
  143. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  144. package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
  145. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  146. package/dist/types/src/internal/{entities → Entity}/entity.d.ts +2 -2
  147. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  148. package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
  149. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  150. package/dist/types/src/internal/{entities → Entity}/model.d.ts +2 -26
  151. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  152. package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
  153. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  154. package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
  155. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  156. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  157. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  158. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  159. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  160. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  161. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  162. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  163. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  164. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  165. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  166. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  167. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  168. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  169. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  170. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  171. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  172. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  173. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  174. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  175. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +23 -23
  176. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  177. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +1 -1
  178. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  179. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  180. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  181. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  182. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
  183. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  184. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  185. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  186. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  187. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  188. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  189. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  190. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +13 -5
  191. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  192. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  193. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  194. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  196. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +2 -2
  197. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  200. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +2 -2
  201. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  202. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  203. package/dist/types/src/internal/Query.d.ts +10 -0
  204. package/dist/types/src/internal/Query.d.ts.map +1 -0
  205. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  206. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  207. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  208. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +15 -2
  209. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  210. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  211. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  212. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  213. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  214. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +6 -6
  215. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  216. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  217. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  218. package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
  219. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  220. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  221. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  222. package/dist/types/src/internal/{api → common/api}/meta.d.ts +3 -3
  223. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  224. package/dist/types/src/internal/common/index.d.ts +4 -0
  225. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  226. package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +1 -1
  227. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  228. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  229. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  230. package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +1 -1
  231. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  232. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  233. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  234. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  235. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  236. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  237. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  239. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  240. package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +1 -1
  241. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  242. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +2 -2
  243. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts.map +1 -1
  244. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  245. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  246. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  247. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  248. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  249. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  250. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  251. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  253. package/dist/types/src/internal/{types → common/types}/entity.d.ts +4 -4
  254. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  255. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  256. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  257. package/dist/types/src/internal/{types → common/types}/meta.d.ts +3 -3
  258. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  259. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  260. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  261. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  262. package/dist/types/src/internal/{types → common/types}/version.d.ts +1 -1
  263. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  264. package/dist/types/src/internal/index.d.ts +9 -10
  265. package/dist/types/src/internal/index.d.ts.map +1 -1
  266. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  267. package/dist/types/src/testing/test-schema.d.ts +53 -53
  268. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  269. package/dist/types/src/testing/util.d.ts.map +1 -1
  270. package/dist/types/tsconfig.tsbuildinfo +1 -1
  271. package/package.json +24 -14
  272. package/src/Annotation.ts +5 -3
  273. package/src/Collection.ts +8 -1
  274. package/src/Database.ts +54 -17
  275. package/src/Dataset.ts +2 -0
  276. package/src/Entity.ts +20 -11
  277. package/src/Err.ts +2 -0
  278. package/src/Extension.test.ts +235 -0
  279. package/src/Extension.ts +122 -0
  280. package/src/Feed.ts +86 -36
  281. package/src/Filter.test.ts +90 -0
  282. package/src/Filter.ts +68 -3
  283. package/src/Format.ts +1 -1
  284. package/src/Hypergraph.ts +7 -2
  285. package/src/Json.test.ts +175 -0
  286. package/src/Json.ts +102 -0
  287. package/src/JsonSchema.ts +7 -5
  288. package/src/Migration.ts +94 -0
  289. package/src/Obj.test.ts +107 -15
  290. package/src/Obj.ts +166 -40
  291. package/src/Order.ts +2 -0
  292. package/src/Query.test.ts +221 -31
  293. package/src/Query.ts +50 -3
  294. package/src/Ref.ts +14 -12
  295. package/src/Relation.test.ts +2 -2
  296. package/src/Relation.ts +28 -21
  297. package/src/SchemaRegistry.ts +1 -1
  298. package/src/Tag.ts +3 -1
  299. package/src/Type.ts +14 -11
  300. package/src/View.ts +9 -2
  301. package/src/exemplars.test.ts +21 -0
  302. package/src/index.ts +4 -0
  303. package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -7
  304. package/src/internal/{annotations → Annotation}/annotations.ts +71 -20
  305. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  306. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  307. package/src/internal/{annotations → Annotation}/util.ts +1 -1
  308. package/src/internal/{api/entity.ts → Entity/api.ts} +3 -2
  309. package/src/internal/{entities → Entity}/entity.ts +2 -2
  310. package/src/internal/{entities → Entity}/index.ts +2 -0
  311. package/src/internal/{entities → Entity}/model.ts +13 -42
  312. package/src/internal/{entities → Entity}/object.ts +2 -3
  313. package/src/internal/{entities → Entity}/relation.ts +19 -36
  314. package/src/internal/{api → Entity}/version.ts +2 -2
  315. package/src/internal/{formats → Format}/date.test.ts +1 -2
  316. package/src/internal/{formats → Format}/format.test.ts +1 -2
  317. package/src/internal/{formats → Format}/types.ts +2 -2
  318. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  319. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  320. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -49
  321. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +3 -4
  322. package/src/internal/{object → Obj}/clone.ts +3 -3
  323. package/src/internal/{object → Obj}/common.ts +2 -2
  324. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  325. package/src/internal/{object → Obj}/create-object.ts +5 -6
  326. package/src/internal/{object → Obj}/deleted.ts +2 -2
  327. package/src/internal/{object → Obj}/inspect.ts +2 -2
  328. package/src/internal/{object → Obj}/json-serializer.test.ts +8 -9
  329. package/src/internal/{object → Obj}/json-serializer.ts +36 -18
  330. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  331. package/src/internal/{object → Obj}/set-value.test.ts +24 -24
  332. package/src/internal/{object → Obj}/set-value.ts +3 -3
  333. package/src/internal/{object → Obj}/snapshot.ts +14 -5
  334. package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
  335. package/src/internal/{object → Obj}/typed-object.ts +2 -2
  336. package/src/internal/Query.ts +137 -0
  337. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  338. package/src/internal/{ref → Ref}/ref.test.ts +4 -5
  339. package/src/internal/{ref → Ref}/ref.ts +20 -3
  340. package/src/internal/{schema → Type}/compose.test.ts +5 -6
  341. package/src/internal/{schema → Type}/compose.ts +1 -1
  342. package/src/internal/{schema → Type}/echo-schema.ts +7 -8
  343. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  344. package/src/internal/{schema → Type}/persistent-schema.ts +7 -7
  345. package/src/internal/{README.md → common/README.md} +1 -1
  346. package/src/internal/{api → common/api}/index.ts +0 -4
  347. package/src/internal/{api → common/api}/meta.ts +3 -3
  348. package/src/internal/common/index.ts +7 -0
  349. package/src/internal/{proxy → common/proxy}/change-context.ts +1 -1
  350. package/src/internal/{proxy → common/proxy}/change.test.ts +97 -97
  351. package/src/internal/{proxy → common/proxy}/errors.ts +2 -2
  352. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  353. package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
  354. package/src/internal/{proxy → common/proxy}/make-object.ts +1 -2
  355. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  356. package/src/internal/{proxy → common/proxy}/reactive-array.ts +1 -1
  357. package/src/internal/common/proxy/reactive.test.ts +54 -0
  358. package/src/internal/{proxy → common/proxy}/reactive.ts +12 -4
  359. package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
  360. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -7
  361. package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -13
  362. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +5 -6
  363. package/src/internal/{types → common/types}/entity.ts +1 -1
  364. package/src/internal/{types → common/types}/index.ts +1 -0
  365. package/src/internal/{types → common/types}/meta.ts +1 -2
  366. package/src/internal/common/types/model-symbols.ts +69 -0
  367. package/src/internal/index.ts +9 -31
  368. package/src/testing/api.test.ts +2 -3
  369. package/src/testing/test-data.ts +0 -1
  370. package/src/testing/test-schema.ts +9 -9
  371. package/dist/lib/neutral/chunk-5ELDDYWE.mjs.map +0 -7
  372. package/dist/lib/neutral/chunk-ALOGSVBP.mjs.map +0 -7
  373. package/dist/lib/neutral/chunk-AQP4QKYP.mjs.map +0 -7
  374. package/dist/lib/neutral/chunk-BRJSLACP.mjs.map +0 -7
  375. package/dist/lib/neutral/chunk-F7KMHDPJ.mjs.map +0 -7
  376. package/dist/lib/neutral/chunk-GAWKQ5DZ.mjs.map +0 -7
  377. package/dist/lib/neutral/chunk-GFNCSK7F.mjs.map +0 -7
  378. package/dist/lib/neutral/chunk-KGV3QIRX.mjs.map +0 -7
  379. package/dist/lib/neutral/chunk-M2KVTHZM.mjs.map +0 -7
  380. package/dist/lib/neutral/chunk-MXQJZCPY.mjs.map +0 -7
  381. package/dist/lib/neutral/chunk-O3TZFQCT.mjs.map +0 -7
  382. package/dist/lib/neutral/chunk-OVUBTQLT.mjs.map +0 -7
  383. package/dist/lib/neutral/chunk-PP4DNUZU.mjs.map +0 -7
  384. package/dist/lib/neutral/chunk-QXF3LGN2.mjs.map +0 -7
  385. package/dist/lib/neutral/chunk-T4MPQJ7X.mjs.map +0 -7
  386. package/dist/lib/neutral/chunk-W7OP5HGZ.mjs.map +0 -7
  387. package/dist/lib/neutral/chunk-ZTUBYOGB.mjs.map +0 -7
  388. package/dist/lib/neutral/chunk-ZWKJ4LZJ.mjs.map +0 -7
  389. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  390. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  391. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  392. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  393. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  394. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  395. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  396. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  397. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  398. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  399. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  400. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  401. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  402. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  403. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  404. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  405. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  406. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  407. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  408. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  409. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  410. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  411. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  412. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  413. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  414. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  415. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  416. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  417. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  418. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  419. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  420. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  421. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  422. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  423. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  424. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  425. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  426. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  427. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  428. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  429. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  430. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  431. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  432. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  433. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  434. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  435. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  436. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  437. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  438. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  439. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  440. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  441. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  442. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  443. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  444. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  445. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  446. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  447. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  448. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  449. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  450. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  451. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  452. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  453. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  454. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  455. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  456. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  457. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  458. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  459. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  460. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  461. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  462. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  463. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  464. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  465. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  466. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  467. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  468. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  469. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  470. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  471. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  472. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  473. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  474. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  475. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  476. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  477. package/src/internal/api/annotations.ts +0 -60
  478. /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
  479. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
  480. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  481. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  482. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  483. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  484. /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
  485. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  486. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  487. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  488. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  489. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  490. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  491. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  492. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  493. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  494. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  495. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  496. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  497. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  498. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  499. /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
  500. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  501. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  502. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  503. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  504. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  505. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  506. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  507. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  508. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  509. /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
  510. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  511. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  512. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  513. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  514. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  515. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  516. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  517. /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
  518. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  519. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  520. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  521. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  522. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  523. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  524. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +0 -0
  525. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  526. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  527. /package/dist/types/src/internal/{types → common/types}/base.d.ts +0 -0
  528. /package/dist/types/src/internal/{types → common/types}/typename.d.ts +0 -0
  529. /package/src/internal/{entities → Entity}/util.ts +0 -0
  530. /package/src/internal/{formats → Format}/date.ts +0 -0
  531. /package/src/internal/{formats → Format}/format.ts +0 -0
  532. /package/src/internal/{formats → Format}/index.ts +0 -0
  533. /package/src/internal/{formats → Format}/number.ts +0 -0
  534. /package/src/internal/{formats → Format}/object.ts +0 -0
  535. /package/src/internal/{formats → Format}/select.ts +0 -0
  536. /package/src/internal/{formats → Format}/string.ts +0 -0
  537. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  538. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  539. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  540. /package/src/internal/{object → Obj}/ids.ts +0 -0
  541. /package/src/internal/{object → Obj}/index.ts +0 -0
  542. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  543. /package/src/internal/{ref → Ref}/index.ts +0 -0
  544. /package/src/internal/{schema → Type}/index.ts +0 -0
  545. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  546. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  547. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  548. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  549. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  550. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  551. /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
  552. /package/src/internal/{types → common/types}/base.ts +0 -0
  553. /package/src/internal/{types → common/types}/typename.ts +0 -0
  554. /package/src/internal/{types → common/types}/version.ts +0 -0
@@ -0,0 +1,80 @@
1
+ import * as Option from 'effect/Option';
2
+ import * as Schema from 'effect/Schema';
3
+ import type * as Types from 'effect/Types';
4
+ /**
5
+ * Extensions allow objects to contain typed properties that are not part of the schema.
6
+ */
7
+ export declare const TypeId: '~@dxos/echo/Extension';
8
+ export type TypeId = typeof TypeId;
9
+ export interface Extension<T> extends Record<TypeId, {
10
+ _Type: T;
11
+ }> {
12
+ readonly [TypeId]: {
13
+ _Type: T;
14
+ };
15
+ readonly key: Key;
16
+ readonly valueSchema: Schema.Schema<T>;
17
+ }
18
+ /**
19
+ * Create a new typed extension.
20
+ *
21
+ * ```ts
22
+ * const ColorExtension = Extension.make('color', Schema.String);
23
+ *
24
+ * const obj = Obj.make(Person, {
25
+ * [Obj.Meta]: { keys: [{ source: 'external', id: '123' }] },
26
+ * name: 'John',
27
+ * email: 'john@example.com',
28
+ * });
29
+ *
30
+ * Obj.update(obj, (obj) => {
31
+ * Extension.set(obj.extensions, ColorExtension, 'red');
32
+ * });
33
+ *
34
+ * console.log(Extension.get(obj.extensions, ColorExtension)); // 'red'
35
+ * ```
36
+ */
37
+ export declare const make: <S extends Schema.Schema.AnyNoContext>(key: string, valueSchema: S) => Extension<Schema.Schema.Type<S>>;
38
+ /**
39
+ * Unique identifier for an extension.
40
+ */
41
+ export declare const Key: Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">;
42
+ export type Key = Schema.Schema.Type<typeof Key>;
43
+ /**
44
+ * Set of extension values.
45
+ *
46
+ * Can be used inside an object/relation schema:
47
+ *
48
+ * ```ts
49
+ * const Person = Schema.Struct({
50
+ * name: Schema.String,
51
+ * extensions: Extension.Values,
52
+ * });
53
+ * ```
54
+ */
55
+ export declare const Values: Schema.Record$<Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">, typeof Schema.Unknown>;
56
+ export interface Values extends Schema.Schema.Type<typeof Values> {
57
+ }
58
+ /**
59
+ * Get the value of an extension from a set of values.
60
+ */
61
+ export declare const get: {
62
+ <T>(extension: Extension<T>): (values: Values) => Option.Option<T>;
63
+ <T>(values: Values, extension: Extension<T>): Option.Option<T>;
64
+ };
65
+ /**
66
+ * Set the value of an extension in a set of values.
67
+ *
68
+ * Can also be used within Obj.update callback:
69
+ *
70
+ * ```ts
71
+ * Obj.update(obj, (obj) => {
72
+ * Extension.set(obj.extensions, ColorExtension, 'red');
73
+ * });
74
+ * ```
75
+ */
76
+ export declare const set: {
77
+ <T>(extension: Extension<T>, value: T): (values: Values) => void;
78
+ <T>(values: Types.Mutable<Values>, extension: Extension<T>, value: T): void;
79
+ };
80
+ //# sourceMappingURL=Extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../../../src/Extension.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C;;GAEG;AAEH,eAAO,MAAM,MAAM,EAAG,uBAAgC,CAAC;AACvD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,MAAM,CAC1C,MAAM,EACN;IACE,KAAK,EAAE,CAAC,CAAC;CACV,CACF;IACC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC;KACV,CAAC;IAEF,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,OAClD,MAAM,eACE,CAAC,KACb,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAMjC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,GAAG,gEAA+D,CAAC;AAChF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,uGAAqD,CAAC;AACzE,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC;CAAG;AAEpE;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAU/D,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAM5E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Extension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.test.d.ts","sourceRoot":"","sources":["../../../src/Extension.test.ts"],"names":[],"mappings":""}
@@ -15,22 +15,19 @@ import * as Type from './Type';
15
15
  *
16
16
  * @example
17
17
  * ```ts
18
- * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'dxos.org/plugin/notifications/v1' });
18
+ * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });
19
19
  * ```
20
20
  */
21
21
  export declare const Feed: Type.Obj<{
22
- readonly kind?: string | undefined;
23
22
  readonly name?: string | undefined;
23
+ readonly kind?: string | undefined;
24
+ readonly namespace?: "data" | "trace" | undefined;
24
25
  }, Schema.Struct.Fields>;
25
26
  /**
26
27
  * TypeScript instance type for a Feed object.
27
28
  */
28
29
  export interface Feed extends Schema.Schema.Type<typeof Feed> {
29
30
  }
30
- /**
31
- * Meta key source for storing the backing DXN bound to a feed object.
32
- */
33
- export declare const DXN_KEY = "dxos.org/key/feed";
34
31
  /**
35
32
  * Opaque cursor for iterating over feed items.
36
33
  */
@@ -49,17 +46,29 @@ export interface RetentionOptions {
49
46
  *
50
47
  * @example
51
48
  * ```ts
52
- * const feed = Feed.make({ name: 'notifications', kind: 'dxos.org/plugin/notifications/v1' });
49
+ * const feed = Feed.make({ name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });
53
50
  * ```
54
51
  */
55
- export declare const make: (props: Obj.MakeProps<typeof Feed>) => Feed;
52
+ export declare const make: (props?: Obj.MakeProps<typeof Feed>) => Feed;
56
53
  /**
57
- * Reads the queue DXN from feed metadata.
54
+ * Derives the queue DXN from the feed object's DXN.
55
+ * Returns `undefined` when the feed is not stored in a space yet.
58
56
  *
59
- * @deprecated
57
+ * Used internally by the feed service layer.
60
58
  */
61
59
  export declare const getQueueDxn: (feed: Feed) => DXN | undefined;
62
- declare const Service_base: Context.TagClass<Service, "@dxos/echo/Feed/Service", {
60
+ /**
61
+ * Creates a Feed object from a queue DXN, inferring the feed's id and namespace from the DXN parts.
62
+ *
63
+ * The resulting Feed, when added to the same space as the queue, will have a queue DXN
64
+ * equal to the input (see `Feed.getQueueDxn`). Useful when migrating `Ref(Queue)` fields to
65
+ * `Ref(Feed.Feed)`.
66
+ *
67
+ * @remarks Unsafe because the caller must ensure the queue DXN's space matches the database
68
+ * the feed is added to; the feed id is set from the queue id, bypassing id generation.
69
+ */
70
+ export declare const unsafeFromQueueDXN: (queueDxn: DXN) => Feed;
71
+ declare const FeedService_base: Context.TagClass<FeedService, "@dxos/echo/Feed/FeedService", {
63
72
  /**
64
73
  * Appends items to a feed.
65
74
  */
@@ -81,13 +90,21 @@ declare const Service_base: Context.TagClass<Service, "@dxos/echo/Feed/Service",
81
90
  * Provides the bridge to the underlying storage implementation.
82
91
  * Must be provided by the application layer (e.g., echo-db).
83
92
  */
84
- export declare class Service extends Service_base {
93
+ export declare class FeedService extends FeedService_base {
85
94
  }
95
+ /**
96
+ * @deprecated Use `FeedService` instead.
97
+ */
98
+ export type Service = FeedService;
99
+ /**
100
+ * @deprecated Use `FeedService` instead.
101
+ */
102
+ export declare const Service: typeof FeedService;
86
103
  /**
87
104
  * Layer that provides a Feed service that throws when accessed.
88
105
  * Useful as a default layer when no feed service is available.
89
106
  */
90
- export declare const notAvailable: Layer.Layer<Service>;
107
+ export declare const notAvailable: Layer.Layer<FeedService>;
91
108
  /**
92
109
  * Appends items to a feed.
93
110
  *
@@ -96,7 +113,7 @@ export declare const notAvailable: Layer.Layer<Service>;
96
113
  * yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);
97
114
  * ```
98
115
  */
99
- export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never, Service>;
116
+ export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never, FeedService>;
100
117
  /**
101
118
  * Removes items from a feed.
102
119
  *
@@ -105,7 +122,7 @@ export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Eff
105
122
  * yield* Feed.remove(feed, [item]);
106
123
  * ```
107
124
  */
108
- export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never, Service>;
125
+ export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never, FeedService>;
109
126
  /**
110
127
  * Creates a reactive query over items in a feed.
111
128
  *
@@ -115,8 +132,8 @@ export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)
115
132
  * ```
116
133
  */
117
134
  export declare const query: {
118
- <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;
119
- <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;
135
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, FeedService>;
136
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, FeedService>;
120
137
  };
121
138
  /**
122
139
  * Executes a feed query once and returns the results.
@@ -127,8 +144,8 @@ export declare const query: {
127
144
  * ```
128
145
  */
129
146
  export declare const runQuery: {
130
- <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
131
- <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
147
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;
148
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;
132
149
  };
133
150
  /**
134
151
  * Creates a cursor for iterating over feed items.
@@ -140,17 +157,17 @@ export declare const runQuery: {
140
157
  * const item = yield* Feed.next(cursor);
141
158
  * ```
142
159
  */
143
- export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never, Service>;
160
+ export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never, FeedService>;
144
161
  /**
145
162
  * Returns the next item from a feed cursor.
146
163
  * Currently stubbed — cursor operations are not yet implemented.
147
164
  */
148
- export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never, Service>;
165
+ export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never, FeedService>;
149
166
  /**
150
167
  * Returns the next item from a feed cursor as an Option.
151
168
  * Currently stubbed — cursor operations are not yet implemented.
152
169
  */
153
- export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, Service>;
170
+ export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, FeedService>;
154
171
  /**
155
172
  * Sets the local retention policy for a feed.
156
173
  * Currently stubbed — queues do not yet support retention.
@@ -160,6 +177,6 @@ export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effec
160
177
  * yield* Feed.setRetention(feed, { count: 1000 });
161
178
  * ```
162
179
  */
163
- export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never, Service>;
180
+ export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never, FeedService>;
164
181
  export {};
165
182
  //# sourceMappingURL=Feed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@ import * as Schema from 'effect/Schema';
2
2
  import type * as Types from 'effect/Types';
3
3
  import { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';
4
4
  import { DXN, ObjectId } from '@dxos/keys';
5
+ import type * as Obj from './Obj';
6
+ import * as Ref from './Ref';
5
7
  export interface Filter<T> {
6
8
  '~Filter': {
7
- value: Types.Contravariant<T>;
9
+ value: Types.Covariant<T>;
8
10
  };
9
11
  ast: QueryAST.Filter;
10
12
  }
@@ -18,7 +20,7 @@ declare class FilterClass implements Any {
18
20
  private static 'variance';
19
21
  constructor(ast: QueryAST.Filter);
20
22
  '~Filter': {
21
- value: Types.Contravariant<any>;
23
+ value: Types.Covariant<any>;
22
24
  };
23
25
  }
24
26
  export declare const is: (value: unknown) => value is Any;
@@ -92,7 +94,7 @@ export declare const lte: <T>(value: T) => Filter<T | undefined>;
92
94
  * Predicate for property to be in the provided array.
93
95
  * @param values - Values to check against.
94
96
  */
95
- declare const in$: <T>(...values: T[]) => Filter<T | undefined>;
97
+ declare const in$: <T>(...values: T[]) => Filter<T>;
96
98
  export { in$ as in };
97
99
  /**
98
100
  * Predicate for an array property to contain the provided value.
@@ -104,7 +106,30 @@ export declare const contains: <T>(value: T) => Filter<readonly T[] | undefined>
104
106
  * @param from - Start of the range (inclusive).
105
107
  * @param to - End of the range (exclusive).
106
108
  */
107
- export declare const between: <T>(from: T, to: T) => Filter<unknown>;
109
+ export declare const between: <T>(from: T, to: T) => Filter<T>;
110
+ type TimeRange = {
111
+ after?: Date | number;
112
+ before?: Date | number;
113
+ };
114
+ /**
115
+ * Filter objects by updatedAt timestamp.
116
+ */
117
+ export declare const updated: (range: TimeRange) => Any;
118
+ /**
119
+ * Filter objects by createdAt timestamp.
120
+ */
121
+ export declare const created: (range: TimeRange) => Any;
122
+ export type ChildOfOptions = {
123
+ /** Whether to match transitively (grandchildren, etc.). Defaults to true. */
124
+ transitive?: boolean;
125
+ };
126
+ /**
127
+ * Filter objects that are children of the specified parent(s).
128
+ * Accepts ECHO objects, Refs, or arrays of either.
129
+ * Refs are resolved to DXNs without loading; objects use {@link Obj.getDXN}.
130
+ * With transitive=true (default), also matches grandchildren and beyond.
131
+ */
132
+ export declare const childOf: (parents: Obj.Unknown | Ref.Unknown | readonly (Obj.Unknown | Ref.Unknown)[], options?: ChildOfOptions) => Any;
108
133
  /**
109
134
  * Negate the filter.
110
135
  */
@@ -117,4 +142,8 @@ export declare const and: <Filters extends readonly Any[]>(...filters: Filters)
117
142
  * Combine filters with a logical OR.
118
143
  */
119
144
  export declare const or: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
145
+ /**
146
+ * Returns a human-readable string representation of a Filter AST.
147
+ */
148
+ export declare const pretty: (filter: Any) => string;
120
149
  //# sourceMappingURL=Filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Filter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.test.d.ts","sourceRoot":"","sources":["../../../src/Filter.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
1
  import type * as internal from './internal';
2
- export * from './internal/formats';
2
+ export * from './internal/Format';
3
3
  export type Format = internal.TypeFormat;
4
4
  //# sourceMappingURL=Format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,cAAc,oBAAoB,CAAC;AAEnC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC"}
1
+ {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,cAAc,mBAAmB,CAAC;AAElC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC"}
@@ -33,7 +33,7 @@ export interface RefResolverOptions {
33
33
  middleware?: (obj: internal.AnyProperties) => internal.AnyProperties;
34
34
  }
35
35
  /**
36
- *
36
+ * Manages cross-space database interactions.
37
37
  */
38
38
  export interface Hypergraph extends Database.Queryable {
39
39
  get schemaRegistry(): SchemaRegistry.SchemaRegistry;
@@ -56,5 +56,10 @@ export interface Hypergraph extends Database.Queryable {
56
56
  * @returns Result of `onLoad`.
57
57
  */
58
58
  createRefResolver(options: RefResolverOptions): Ref.Resolver;
59
+ /**
60
+ * Get a database by space ID.
61
+ * @returns The database for the given space ID, or undefined if not found.
62
+ */
63
+ getDatabase(spaceId: Key.SpaceId): Database.Database | undefined;
59
64
  }
60
65
  //# sourceMappingURL=Hypergraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hypergraph.d.ts","sourceRoot":"","sources":["../../../src/Hypergraph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,CAAC;CACtE;AAED;;GAEG;AAEH,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,SAAS;IACpD,IAAI,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;OAIG;IAEH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC;CAC9D"}
1
+ {"version":3,"file":"Hypergraph.d.ts","sourceRoot":"","sources":["../../../src/Hypergraph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,SAAS;IACpD,IAAI,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;OAIG;IAEH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE7D;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;CAClE"}
@@ -0,0 +1,33 @@
1
+ import * as Database from './Database';
2
+ /**
3
+ * `JSON.stringify` replacer signature.
4
+ *
5
+ * Defined here (rather than re-imported from a UI package) so other ECHO-aware utilities can
6
+ * share a stable signature without creating a dependency edge into the UI tree.
7
+ */
8
+ export type JsonReplacer = (key: string, value: any) => any;
9
+ export type CreateRefReplacerOptions = {
10
+ db: Database.Database;
11
+ /** How many ref hops to follow. `0` leaves all refs as-is. Default: `1`. */
12
+ depth?: number;
13
+ };
14
+ /**
15
+ * Returns a {@link JsonReplacer} that inlines ECHO ref objects (`{ "/": "dxn:echo:..." }`) up to
16
+ * `depth` ref hops. Beyond that depth refs are left in their encoded form.
17
+ *
18
+ * Implemented as a per-call `JSON.stringify` replacer (not a one-shot tree walk at root) so it
19
+ * composes with wrappers like `safeStringify` that intercept the root call. JSON.stringify
20
+ * already drives the recursion; we only need to (a) detect a ref at the current callback,
21
+ * (b) resolve and return the target if hop budget remains, and (c) tag the returned object
22
+ * with its hop count so children know how far in they are.
23
+ *
24
+ * The hop count is tracked per-object via a `WeakMap`: a ref-resolved target's children inherit
25
+ * `parentHops + 1`; a regular intermediate object's children inherit `parentHops`. This makes the
26
+ * budget count *ref hops*, not tree depth — a ref deep in a tree still resolves once when
27
+ * `depth >= 1`.
28
+ *
29
+ * Note: ECHO objects' `toJSON` runs before the replacer is invoked, so by the time we see a
30
+ * value refs are already encoded as `{ "/": "dxn:..." }`.
31
+ */
32
+ export declare const createRefReplacer: ({ db, depth }: CreateRefReplacerOptions) => JsonReplacer;
33
+ //# sourceMappingURL=Json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../src/Json.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,kBAAuB,wBAAwB,KAAG,YAoD/E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Json.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Json.test.d.ts","sourceRoot":"","sources":["../../../src/Json.test.ts"],"names":[],"mappings":""}
@@ -1,16 +1,16 @@
1
1
  import type * as Schema from 'effect/Schema';
2
- import * as internal from './internal';
2
+ import * as jsonSchemaInternal from './internal/JsonSchema';
3
3
  /**
4
4
  * Decode JSON Schema to Effect Schema.
5
5
  */
6
- export declare const toEffectSchema: (root: internal.JsonSchemaType, _defs?: internal.JsonSchemaType["$defs"]) => Schema.Schema.AnyNoContext;
6
+ export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType['$defs']) => Schema.Schema.AnyNoContext;
7
7
  /**
8
8
  * Encode Effect Schema to JSON Schema.
9
9
  */
10
- export declare const toJsonSchema: (schema: Schema.Schema.All, options?: internal.JsonSchemaOptions) => import("effect/Types").DeepMutable<internal.JsonSchemaType>;
10
+ export declare const toJsonSchema: (schema: Schema.Schema.All, options?: jsonSchemaInternal.JsonSchemaOptions) => import("effect/Types").DeepMutable<jsonSchemaInternal.JsonSchemaType>;
11
11
  /**
12
12
  * Serializable JsonSchema type definition.
13
13
  */
14
- export type JsonSchema = internal.JsonSchemaType;
15
- export declare const JsonSchema: Schema.Schema<internal.JsonSchemaType>;
14
+ export type JsonSchema = jsonSchemaInternal.JsonSchemaType;
15
+ export declare const JsonSchema: Schema.Schema<jsonSchemaInternal.JsonSchemaType>;
16
16
  //# sourceMappingURL=JsonSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../src/JsonSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,cAAc,yGAA0B,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY,kIAAwB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC;AAEjD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA2B,CAAC"}
1
+ {"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../src/JsonSchema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,6HAAoC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,sJAAkC,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAqC,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type * as Schema from 'effect/Schema';
2
+ import { type DXN } from '@dxos/keys';
3
+ import type * as Database from './Database';
4
+ import type * as Entity from './Entity';
5
+ type DefineObjectMigrationOptions<From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext> = {
6
+ from: From;
7
+ to: To;
8
+ /**
9
+ * Pure function that converts the old object data to the new object data.
10
+ */
11
+ transform: (from: Schema.Schema.Type<From>, context: ObjectMigrationContext) => Promise<Omit<Schema.Schema.Type<To>, 'id' | Entity.KindId>>;
12
+ /**
13
+ * Callback that is called after the object is migrated. Called for every object that is migrated.
14
+ *
15
+ * NOTE: Database mutations performed in this callback are not guaranteed to be idempotent.
16
+ * If multiple peers run the migration separately, the effects may be applied multiple times.
17
+ */
18
+ onMigration: (params: OnMigrateProps<From, To>) => Promise<void>;
19
+ };
20
+ /**
21
+ * Context passed to object migration callbacks.
22
+ */
23
+ export type ObjectMigrationContext = {
24
+ db: Database.Database;
25
+ };
26
+ type OnMigrateProps<From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext> = {
27
+ before: Schema.Schema.Type<From>;
28
+ object: Schema.Schema.Type<To>;
29
+ db: Database.Database;
30
+ };
31
+ /**
32
+ * Definition of a migration from one object schema version to another.
33
+ */
34
+ export type ObjectMigration = {
35
+ fromType: DXN;
36
+ toType: DXN;
37
+ fromSchema: Schema.Schema.AnyNoContext;
38
+ toSchema: Schema.Schema.AnyNoContext;
39
+ transform: (from: unknown, context: ObjectMigrationContext) => Promise<unknown>;
40
+ onMigration: (params: OnMigrateProps<any, any>) => Promise<void>;
41
+ };
42
+ /**
43
+ * Define a migration between two object schemas.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const migration = Migration.define({
48
+ * from: ContactV1,
49
+ * to: ContactV2,
50
+ * transform: async (from) => ({ name: `${from.firstName} ${from.lastName}` }),
51
+ * onMigration: async () => {},
52
+ * });
53
+ * ```
54
+ */
55
+ export declare const define: <From extends Schema.Schema.AnyNoContext, To extends Schema.Schema.AnyNoContext>(options: DefineObjectMigrationOptions<From, To>) => ObjectMigration;
56
+ export {};
57
+ //# sourceMappingURL=Migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../../src/Migration.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAGxC,KAAK,4BAA4B,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI;IAClH,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,EAAE,CAAC;IACP;;OAEG;IAEH,SAAS,EAAE,CACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB,CAAC;AAEF,KAAK,cAAc,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI;IACpG,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,WAAW,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,WAC1F,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,KAC9C,eAkBF,CAAC"}