@dxos/echo 0.8.4-main.ef1bc66f44 → 0.8.4-main.effb148878

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 (602) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +9 -9
  3. package/dist/lib/neutral/Annotation.mjs +7 -3
  4. package/dist/lib/neutral/Database.mjs +8 -4
  5. package/dist/lib/neutral/Entity.mjs +35 -18
  6. package/dist/lib/neutral/Err.mjs +3 -1
  7. package/dist/lib/neutral/Extension.mjs +18 -0
  8. package/dist/lib/neutral/Extension.mjs.map +7 -0
  9. package/dist/lib/neutral/Feed.mjs +54 -0
  10. package/dist/lib/neutral/Feed.mjs.map +7 -0
  11. package/dist/lib/neutral/Filter.mjs +25 -12
  12. package/dist/lib/neutral/Format.mjs +23 -3
  13. package/dist/lib/neutral/JsonSchema.mjs +9 -9
  14. package/dist/lib/neutral/Key.mjs +7 -3
  15. package/dist/lib/neutral/Migration.mjs +18 -0
  16. package/dist/lib/neutral/Migration.mjs.map +7 -0
  17. package/dist/lib/neutral/Obj.mjs +41 -23
  18. package/dist/lib/neutral/Order.mjs +1 -1
  19. package/dist/lib/neutral/Query.mjs +21 -9
  20. package/dist/lib/neutral/QueryResult.mjs +1 -1
  21. package/dist/lib/neutral/Ref.mjs +13 -9
  22. package/dist/lib/neutral/Relation.mjs +34 -23
  23. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  24. package/dist/lib/neutral/Tag.mjs +14 -10
  25. package/dist/lib/neutral/Type.mjs +52 -36
  26. package/dist/lib/neutral/{chunk-K5K3Z62A.mjs → chunk-4SYHDOQA.mjs} +14 -6
  27. package/dist/lib/neutral/chunk-4SYHDOQA.mjs.map +7 -0
  28. package/dist/lib/neutral/{chunk-XAJMXQ4H.mjs → chunk-4U7OD55H.mjs} +6 -2
  29. package/dist/lib/neutral/chunk-4U7OD55H.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-52NG2XEE.mjs +34 -0
  31. package/dist/lib/neutral/chunk-52NG2XEE.mjs.map +7 -0
  32. package/dist/lib/neutral/{chunk-KB7RIVLK.mjs → chunk-A5HDDVKS.mjs} +33 -6
  33. package/dist/lib/neutral/chunk-A5HDDVKS.mjs.map +7 -0
  34. package/dist/lib/neutral/{chunk-DLPC7DHQ.mjs → chunk-EZ4XJFHJ.mjs} +9 -11
  35. package/dist/lib/neutral/chunk-EZ4XJFHJ.mjs.map +7 -0
  36. package/dist/lib/neutral/{chunk-ZAHWXGK4.mjs → chunk-F625JEZB.mjs} +97 -19
  37. package/dist/lib/neutral/chunk-F625JEZB.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-FFCN66OF.mjs +420 -0
  39. package/dist/lib/neutral/chunk-FFCN66OF.mjs.map +7 -0
  40. package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-GOHDOJE3.mjs} +16 -3
  41. package/dist/lib/neutral/chunk-GOHDOJE3.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
  43. package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-J7QWJQQV.mjs +318 -0
  45. package/dist/lib/neutral/chunk-J7QWJQQV.mjs.map +7 -0
  46. package/dist/lib/neutral/{chunk-QARLJVDB.mjs → chunk-JTHNDGAR.mjs} +8 -4
  47. package/dist/lib/neutral/chunk-JTHNDGAR.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-K5RH2PBH.mjs +361 -0
  49. package/dist/lib/neutral/chunk-K5RH2PBH.mjs.map +7 -0
  50. package/dist/lib/neutral/{chunk-RIMHNJ3E.mjs → chunk-KHRAQDYX.mjs} +138 -91
  51. package/dist/lib/neutral/chunk-KHRAQDYX.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-L65CW5EI.mjs +156 -0
  53. package/dist/lib/neutral/chunk-L65CW5EI.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-LNZIPZX6.mjs +2186 -0
  55. package/dist/lib/neutral/chunk-LNZIPZX6.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-MPXUNTME.mjs +41 -0
  57. package/dist/lib/neutral/chunk-MPXUNTME.mjs.map +7 -0
  58. package/dist/lib/neutral/{chunk-7WE7SBA2.mjs → chunk-O2EOH7XQ.mjs} +152 -134
  59. package/dist/lib/neutral/chunk-O2EOH7XQ.mjs.map +7 -0
  60. package/dist/lib/neutral/{chunk-MTEHHY62.mjs → chunk-Q7ID37KF.mjs} +121 -94
  61. package/dist/lib/neutral/chunk-Q7ID37KF.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-QLYEQ5VA.mjs +205 -0
  63. package/dist/lib/neutral/chunk-QLYEQ5VA.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-SSDGRJ3A.mjs +747 -0
  65. package/dist/lib/neutral/chunk-SSDGRJ3A.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-TTCSATUD.mjs} +2 -2
  67. package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
  68. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-UEFRFUYC.mjs} +8 -4
  69. package/dist/lib/neutral/chunk-UEFRFUYC.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-UN7K472Q.mjs +132 -0
  71. package/dist/lib/neutral/chunk-UN7K472Q.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-UQAMAXDU.mjs +243 -0
  73. package/dist/lib/neutral/chunk-UQAMAXDU.mjs.map +7 -0
  74. package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-V5NE2X7Y.mjs} +1 -1
  75. package/dist/lib/neutral/chunk-V5NE2X7Y.mjs.map +7 -0
  76. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  77. package/dist/lib/neutral/chunk-ZII2BGPM.mjs +269 -0
  78. package/dist/lib/neutral/chunk-ZII2BGPM.mjs.map +7 -0
  79. package/dist/lib/neutral/{chunk-N2QNHMT5.mjs → chunk-ZM7VFIS2.mjs} +22 -2
  80. package/dist/lib/neutral/chunk-ZM7VFIS2.mjs.map +7 -0
  81. package/dist/lib/neutral/index.mjs +56 -29
  82. package/dist/lib/neutral/internal/index.mjs +128 -77
  83. package/dist/lib/neutral/meta.json +1 -1
  84. package/dist/lib/neutral/testing/index.mjs +226 -174
  85. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  86. package/dist/types/src/Annotation.d.ts +3 -3
  87. package/dist/types/src/Annotation.d.ts.map +1 -1
  88. package/dist/types/src/Collection.d.ts +15 -0
  89. package/dist/types/src/Collection.d.ts.map +1 -0
  90. package/dist/types/src/Database.d.ts +27 -42
  91. package/dist/types/src/Database.d.ts.map +1 -1
  92. package/dist/types/src/Dataset.d.ts +29 -0
  93. package/dist/types/src/Dataset.d.ts.map +1 -0
  94. package/dist/types/src/Entity.d.ts +123 -29
  95. package/dist/types/src/Entity.d.ts.map +1 -1
  96. package/dist/types/src/Err.d.ts +56 -13
  97. package/dist/types/src/Err.d.ts.map +1 -1
  98. package/dist/types/src/Extension.d.ts +80 -0
  99. package/dist/types/src/Extension.d.ts.map +1 -0
  100. package/dist/types/src/Extension.test.d.ts +2 -0
  101. package/dist/types/src/Extension.test.d.ts.map +1 -0
  102. package/dist/types/src/Feed.d.ts +229 -0
  103. package/dist/types/src/Feed.d.ts.map +1 -0
  104. package/dist/types/src/Filter.d.ts +74 -11
  105. package/dist/types/src/Filter.d.ts.map +1 -1
  106. package/dist/types/src/Filter.test.d.ts +2 -0
  107. package/dist/types/src/Filter.test.d.ts.map +1 -0
  108. package/dist/types/src/Format.d.ts +3 -3
  109. package/dist/types/src/Format.d.ts.map +1 -1
  110. package/dist/types/src/Hypergraph.d.ts +15 -10
  111. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  112. package/dist/types/src/Json.d.ts +33 -0
  113. package/dist/types/src/Json.d.ts.map +1 -0
  114. package/dist/types/src/Json.test.d.ts +2 -0
  115. package/dist/types/src/Json.test.d.ts.map +1 -0
  116. package/dist/types/src/JsonSchema.d.ts +11 -4
  117. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  118. package/dist/types/src/Key.d.ts +1 -1
  119. package/dist/types/src/Key.d.ts.map +1 -1
  120. package/dist/types/src/Migration.d.ts +72 -0
  121. package/dist/types/src/Migration.d.ts.map +1 -0
  122. package/dist/types/src/Obj.d.ts +201 -77
  123. package/dist/types/src/Obj.d.ts.map +1 -1
  124. package/dist/types/src/Order.d.ts.map +1 -1
  125. package/dist/types/src/Query.d.ts +117 -17
  126. package/dist/types/src/Query.d.ts.map +1 -1
  127. package/dist/types/src/Ref.d.ts +66 -10
  128. package/dist/types/src/Ref.d.ts.map +1 -1
  129. package/dist/types/src/Relation.d.ts +127 -54
  130. package/dist/types/src/Relation.d.ts.map +1 -1
  131. package/dist/types/src/SchemaRegistry.d.ts +12 -13
  132. package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
  133. package/dist/types/src/Tag.d.ts +4 -3
  134. package/dist/types/src/Tag.d.ts.map +1 -1
  135. package/dist/types/src/Type.d.ts +337 -218
  136. package/dist/types/src/Type.d.ts.map +1 -1
  137. package/dist/types/src/View.d.ts +65 -0
  138. package/dist/types/src/View.d.ts.map +1 -0
  139. package/dist/types/src/exemplars.test.d.ts +2 -0
  140. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  141. package/dist/types/src/index.d.ts +8 -1
  142. package/dist/types/src/index.d.ts.map +1 -1
  143. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +98 -24
  144. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  145. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  146. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  147. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  148. package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
  149. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  150. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +15 -6
  151. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  152. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  153. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  154. package/dist/types/src/internal/Entity/entity.d.ts +67 -0
  155. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  156. package/dist/types/src/internal/Entity/index.d.ts +10 -0
  157. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  158. package/dist/types/src/internal/Entity/model.d.ts +57 -0
  159. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  160. package/dist/types/src/internal/{entities → Entity}/object.d.ts +3 -3
  161. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  162. package/dist/types/src/internal/Entity/relation.d.ts +51 -0
  163. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  164. package/dist/types/src/internal/Entity/type-kind.d.ts +24 -0
  165. package/dist/types/src/internal/Entity/type-kind.d.ts.map +1 -0
  166. package/dist/types/src/internal/Entity/type-uri.d.ts +25 -0
  167. package/dist/types/src/internal/Entity/type-uri.d.ts.map +1 -0
  168. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  169. package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
  170. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  171. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  172. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  173. package/dist/types/src/internal/{formats → Format}/format.d.ts +2 -1
  174. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  175. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  176. package/dist/types/src/internal/{formats → Format}/index.d.ts +2 -2
  177. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  178. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  179. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  180. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  181. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  182. package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
  183. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  184. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  185. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  186. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  187. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  188. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  189. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +37 -37
  190. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  191. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +3 -2
  192. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  193. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  194. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  195. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  196. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +10 -12
  197. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  198. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  199. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  200. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  201. package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -1
  202. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  203. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  204. package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +16 -8
  205. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  206. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  207. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  208. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  209. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  210. package/dist/types/src/internal/{object → Obj}/set-value.d.ts +2 -2
  211. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  212. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  213. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  214. package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +5 -5
  215. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  216. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  217. package/dist/types/src/internal/Query.d.ts +10 -0
  218. package/dist/types/src/internal/Query.d.ts.map +1 -0
  219. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  220. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
  221. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  222. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +42 -19
  223. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  224. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  225. package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
  226. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  227. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  228. package/dist/types/src/internal/Type/index.d.ts +3 -0
  229. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  230. package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -1
  231. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  232. package/dist/types/src/internal/Type/type-schema.d.ts +52 -0
  233. package/dist/types/src/internal/Type/type-schema.d.ts.map +1 -0
  234. package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
  235. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  236. package/dist/types/src/internal/{api → common/api}/meta.d.ts +3 -3
  237. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  238. package/dist/types/src/internal/common/index.d.ts +4 -0
  239. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  240. package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +1 -1
  241. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  242. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  243. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  244. package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +1 -1
  245. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  246. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  247. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  248. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  249. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  250. package/dist/types/src/internal/common/proxy/make-object.d.ts +19 -0
  251. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  252. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  253. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  254. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  255. package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +1 -1
  256. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  257. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +2 -2
  258. package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts.map +1 -1
  259. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  260. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  261. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  262. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  263. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  264. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +18 -2
  265. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  266. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  267. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  268. package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
  269. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  270. package/dist/types/src/internal/common/types/entity.d.ts +94 -0
  271. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  272. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  273. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  274. package/dist/types/src/internal/{types → common/types}/meta.d.ts +12 -1
  275. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  276. package/dist/types/src/internal/common/types/model-symbols.d.ts +58 -0
  277. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  278. package/dist/types/src/internal/{types → common/types}/typename.d.ts +7 -0
  279. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  280. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  281. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  282. package/dist/types/src/internal/index.d.ts +9 -10
  283. package/dist/types/src/internal/index.d.ts.map +1 -1
  284. package/dist/types/src/testing/test-data.d.ts +8 -8
  285. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  286. package/dist/types/src/testing/test-schema.d.ts +77 -82
  287. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  288. package/dist/types/src/testing/util.d.ts +5 -3
  289. package/dist/types/src/testing/util.d.ts.map +1 -1
  290. package/dist/types/tsconfig.tsbuildinfo +1 -1
  291. package/package.json +30 -15
  292. package/src/Annotation.ts +7 -3
  293. package/src/Collection.ts +36 -0
  294. package/src/Database.ts +80 -77
  295. package/src/Dataset.ts +34 -0
  296. package/src/Entity.test.ts +116 -6
  297. package/src/Entity.ts +181 -66
  298. package/src/Err.ts +25 -3
  299. package/src/Extension.test.ts +235 -0
  300. package/src/Extension.ts +122 -0
  301. package/src/Feed.ts +356 -0
  302. package/src/Filter.test.ts +90 -0
  303. package/src/Filter.ts +152 -21
  304. package/src/Format.ts +3 -3
  305. package/src/Hypergraph.ts +16 -11
  306. package/src/Json.test.ts +175 -0
  307. package/src/Json.ts +103 -0
  308. package/src/JsonSchema.ts +14 -4
  309. package/src/Key.ts +1 -1
  310. package/src/Migration.ts +114 -0
  311. package/src/Obj.test.ts +158 -20
  312. package/src/Obj.ts +451 -183
  313. package/src/Order.ts +3 -1
  314. package/src/Query.test.ts +446 -89
  315. package/src/Query.ts +300 -35
  316. package/src/Ref.ts +83 -12
  317. package/src/Relation.test.ts +16 -10
  318. package/src/Relation.ts +236 -165
  319. package/src/SchemaRegistry.ts +13 -17
  320. package/src/Tag.ts +9 -9
  321. package/src/Type.test.ts +169 -24
  322. package/src/Type.ts +561 -354
  323. package/src/View.ts +101 -0
  324. package/src/exemplars.test.ts +21 -0
  325. package/src/index.ts +9 -2
  326. package/src/internal/Annotation/annotations.test.ts +165 -0
  327. package/src/internal/{annotations → Annotation}/annotations.ts +181 -101
  328. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  329. package/src/internal/{api → Annotation}/sorting.ts +2 -4
  330. package/src/internal/{annotations → Annotation}/util.ts +17 -9
  331. package/src/internal/{api/entity.ts → Entity/api.ts} +9 -8
  332. package/src/internal/Entity/entity.ts +246 -0
  333. package/src/internal/{entities → Entity}/index.ts +4 -0
  334. package/src/internal/{entities → Entity}/model.ts +42 -60
  335. package/src/internal/{entities → Entity}/object.ts +13 -6
  336. package/src/internal/Entity/relation.ts +179 -0
  337. package/src/internal/Entity/type-kind.ts +67 -0
  338. package/src/internal/Entity/type-uri.ts +87 -0
  339. package/src/internal/Entity/util.ts +34 -0
  340. package/src/internal/{api → Entity}/version.ts +2 -2
  341. package/src/internal/{formats → Format}/date.test.ts +1 -2
  342. package/src/internal/{formats → Format}/date.ts +0 -4
  343. package/src/internal/{formats → Format}/format.test.ts +1 -2
  344. package/src/internal/{formats → Format}/index.ts +2 -3
  345. package/src/internal/{formats → Format}/types.ts +2 -2
  346. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  347. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
  348. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +64 -151
  349. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +47 -28
  350. package/src/internal/{object → Obj}/clone.ts +10 -6
  351. package/src/internal/{object → Obj}/common.ts +2 -2
  352. package/src/internal/{object → Obj}/create-object.test.ts +13 -14
  353. package/src/internal/Obj/create-object.ts +135 -0
  354. package/src/internal/{object → Obj}/deleted.ts +2 -2
  355. package/src/internal/{object → Obj}/index.ts +0 -1
  356. package/src/internal/{object → Obj}/inspect.ts +3 -3
  357. package/src/internal/Obj/json-serializer.test.ts +185 -0
  358. package/src/internal/{object → Obj}/json-serializer.ts +108 -45
  359. package/src/internal/{object → Obj}/schema-validator.ts +1 -1
  360. package/src/internal/{object → Obj}/set-value.test.ts +31 -54
  361. package/src/internal/{object → Obj}/set-value.ts +3 -3
  362. package/src/internal/{object → Obj}/snapshot.ts +41 -23
  363. package/src/internal/Obj/typed-object.test.ts +32 -0
  364. package/src/internal/{object → Obj}/typed-object.ts +5 -5
  365. package/src/internal/Query.ts +156 -0
  366. package/src/internal/{ref → Ref}/ref-array.ts +1 -2
  367. package/src/internal/{ref → Ref}/ref.test.ts +16 -26
  368. package/src/internal/{ref → Ref}/ref.ts +117 -57
  369. package/src/internal/{schema → Type}/compose.test.ts +6 -5
  370. package/src/internal/{schema → Type}/compose.ts +1 -1
  371. package/src/internal/Type/index.ts +6 -0
  372. package/src/internal/{schema → Type}/manipulation.ts +0 -25
  373. package/src/internal/Type/type-schema.ts +60 -0
  374. package/src/internal/{README.md → common/README.md} +2 -2
  375. package/src/internal/{api → common/api}/index.ts +0 -4
  376. package/src/internal/{api → common/api}/meta.ts +3 -3
  377. package/src/internal/common/index.ts +7 -0
  378. package/src/internal/{proxy → common/proxy}/change-context.ts +1 -1
  379. package/src/internal/{proxy → common/proxy}/change.test.ts +97 -97
  380. package/src/internal/{proxy → common/proxy}/errors.ts +2 -2
  381. package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -4
  382. package/src/internal/{proxy → common/proxy}/json-serializer.ts +20 -14
  383. package/src/internal/{proxy → common/proxy}/make-object.ts +37 -15
  384. package/src/internal/{proxy → common/proxy}/ownership.ts +0 -1
  385. package/src/internal/{proxy → common/proxy}/reactive-array.ts +1 -1
  386. package/src/internal/common/proxy/reactive.test.ts +54 -0
  387. package/src/internal/{proxy → common/proxy}/reactive.ts +12 -4
  388. package/src/internal/common/proxy/schema.test.ts +107 -0
  389. package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +15 -15
  390. package/src/internal/{proxy → common/proxy}/typed-handler.ts +75 -18
  391. package/src/internal/{proxy → common/proxy}/typed-object.test.ts +17 -30
  392. package/src/internal/{types → common/types}/base.ts +1 -1
  393. package/src/internal/common/types/entity.ts +133 -0
  394. package/src/internal/{types → common/types}/index.ts +1 -0
  395. package/src/internal/{types → common/types}/meta.ts +15 -1
  396. package/src/internal/common/types/model-symbols.ts +74 -0
  397. package/src/internal/common/types/typename.ts +91 -0
  398. package/src/internal/{types → common/types}/version.ts +2 -3
  399. package/src/internal/index.ts +9 -31
  400. package/src/testing/api.test.ts +15 -12
  401. package/src/testing/test-data.ts +158 -99
  402. package/src/testing/test-schema.ts +33 -67
  403. package/src/testing/util.ts +14 -11
  404. package/dist/lib/neutral/chunk-2AF5GMG6.mjs +0 -171
  405. package/dist/lib/neutral/chunk-2AF5GMG6.mjs.map +0 -7
  406. package/dist/lib/neutral/chunk-4L6DOFXP.mjs.map +0 -7
  407. package/dist/lib/neutral/chunk-7WE7SBA2.mjs.map +0 -7
  408. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +0 -7
  409. package/dist/lib/neutral/chunk-DLPC7DHQ.mjs.map +0 -7
  410. package/dist/lib/neutral/chunk-EBUAT5ID.mjs +0 -229
  411. package/dist/lib/neutral/chunk-EBUAT5ID.mjs.map +0 -7
  412. package/dist/lib/neutral/chunk-K5K3Z62A.mjs.map +0 -7
  413. package/dist/lib/neutral/chunk-KB7RIVLK.mjs.map +0 -7
  414. package/dist/lib/neutral/chunk-LKFNEFHF.mjs +0 -130
  415. package/dist/lib/neutral/chunk-LKFNEFHF.mjs.map +0 -7
  416. package/dist/lib/neutral/chunk-MTEHHY62.mjs.map +0 -7
  417. package/dist/lib/neutral/chunk-N2QNHMT5.mjs.map +0 -7
  418. package/dist/lib/neutral/chunk-QARLJVDB.mjs.map +0 -7
  419. package/dist/lib/neutral/chunk-RIMHNJ3E.mjs.map +0 -7
  420. package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
  421. package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
  422. package/dist/lib/neutral/chunk-TLGNKUUG.mjs +0 -3905
  423. package/dist/lib/neutral/chunk-TLGNKUUG.mjs.map +0 -7
  424. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs +0 -142
  425. package/dist/lib/neutral/chunk-TQT6WTIJ.mjs.map +0 -7
  426. package/dist/lib/neutral/chunk-VUQGRDRI.mjs +0 -97
  427. package/dist/lib/neutral/chunk-VUQGRDRI.mjs.map +0 -7
  428. package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
  429. package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
  430. package/dist/lib/neutral/chunk-XAJMXQ4H.mjs.map +0 -7
  431. package/dist/lib/neutral/chunk-ZAHWXGK4.mjs.map +0 -7
  432. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  433. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  434. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  435. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  436. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  437. package/dist/types/src/internal/api/annotations.d.ts +0 -23
  438. package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
  439. package/dist/types/src/internal/api/entity.d.ts +0 -13
  440. package/dist/types/src/internal/api/entity.d.ts.map +0 -1
  441. package/dist/types/src/internal/api/index.d.ts.map +0 -1
  442. package/dist/types/src/internal/api/meta.d.ts.map +0 -1
  443. package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
  444. package/dist/types/src/internal/api/version.d.ts.map +0 -1
  445. package/dist/types/src/internal/entities/entity.d.ts +0 -20
  446. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  447. package/dist/types/src/internal/entities/index.d.ts +0 -6
  448. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  449. package/dist/types/src/internal/entities/model.d.ts +0 -79
  450. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  451. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  452. package/dist/types/src/internal/entities/relation.d.ts +0 -62
  453. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  454. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  455. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  456. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  457. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  458. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  459. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  460. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  461. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  462. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  463. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  464. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  465. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  466. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  467. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  468. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  469. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  470. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  471. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  472. package/dist/types/src/internal/object/clone.d.ts.map +0 -1
  473. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  474. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  475. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  476. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  477. package/dist/types/src/internal/object/ids.d.ts +0 -6
  478. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  479. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  480. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  481. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  482. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  483. package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
  484. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  485. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  486. package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
  487. package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
  488. package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
  489. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  490. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  491. package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
  492. package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
  493. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
  494. package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
  495. package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
  496. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  497. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  498. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
  499. package/dist/types/src/internal/proxy/make-object.d.ts +0 -14
  500. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  501. package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
  502. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
  503. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
  504. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
  505. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
  506. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  507. package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
  508. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  509. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  510. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  511. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  512. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  513. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  514. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  515. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  516. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  517. package/dist/types/src/internal/schema/echo-schema.d.ts +0 -181
  518. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  519. package/dist/types/src/internal/schema/index.d.ts +0 -4
  520. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  521. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  522. package/dist/types/src/internal/schema/persistent-schema.d.ts +0 -20
  523. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  524. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  525. package/dist/types/src/internal/types/entity.d.ts +0 -37
  526. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  527. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  528. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  529. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  530. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  531. package/src/internal/annotations/annotations.test.ts +0 -96
  532. package/src/internal/api/annotations.ts +0 -60
  533. package/src/internal/entities/entity.ts +0 -126
  534. package/src/internal/entities/relation.ts +0 -171
  535. package/src/internal/entities/util.ts +0 -33
  536. package/src/internal/object/create-object.ts +0 -95
  537. package/src/internal/object/ids.ts +0 -12
  538. package/src/internal/object/json-serializer.test.ts +0 -98
  539. package/src/internal/object/typed-object.test.ts +0 -34
  540. package/src/internal/proxy/schema.test.ts +0 -145
  541. package/src/internal/schema/echo-schema.ts +0 -424
  542. package/src/internal/schema/index.ts +0 -7
  543. package/src/internal/schema/persistent-schema.ts +0 -28
  544. package/src/internal/types/entity.ts +0 -54
  545. package/src/internal/types/typename.ts +0 -55
  546. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
  547. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  548. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  549. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  550. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  551. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  552. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  553. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  554. /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
  555. /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
  556. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  557. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  558. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  559. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  560. /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
  561. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  562. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  563. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  564. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  565. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  566. /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
  567. /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
  568. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  569. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  570. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  571. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  572. /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
  573. /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
  574. /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
  575. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  576. /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
  577. /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
  578. /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
  579. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
  580. /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
  581. /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
  582. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  583. /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
  584. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  585. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  586. /package/src/internal/{formats → Format}/format.ts +0 -0
  587. /package/src/internal/{formats → Format}/number.ts +0 -0
  588. /package/src/internal/{formats → Format}/object.ts +0 -0
  589. /package/src/internal/{formats → Format}/select.ts +0 -0
  590. /package/src/internal/{formats → Format}/string.ts +0 -0
  591. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  592. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  593. /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
  594. /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
  595. /package/src/internal/{ref → Ref}/index.ts +0 -0
  596. /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
  597. /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
  598. /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
  599. /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
  600. /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
  601. /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
  602. /package/src/internal/{proxy → common/proxy}/symbols.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":""}
@@ -0,0 +1,229 @@
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import type * as Option from 'effect/Option';
5
+ import * as Schema from 'effect/Schema';
6
+ import { EchoURI } from '@dxos/keys';
7
+ import type * as Entity from './Entity';
8
+ import type * as Filter from './Filter';
9
+ import * as Obj from './Obj';
10
+ import type * as Query from './Query';
11
+ import type * as QueryResult from './QueryResult';
12
+ import * as Type from './Type';
13
+ /**
14
+ * Runtime schema for a Feed object.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const feed = Obj.make(Feed.Feed, { name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });
19
+ * ```
20
+ */
21
+ export declare const Feed: Type.Obj<{
22
+ readonly name?: string | undefined;
23
+ readonly kind?: string | undefined;
24
+ readonly namespace?: "data" | "trace" | undefined;
25
+ }, Schema.Struct.Fields>;
26
+ /**
27
+ * TypeScript instance type for a Feed object.
28
+ */
29
+ export type Feed = Type.InstanceType<typeof Feed>;
30
+ /**
31
+ * Opaque cursor for iterating over feed items.
32
+ */
33
+ export interface Cursor<T = Obj.Snapshot> {
34
+ readonly _tag: 'Cursor';
35
+ }
36
+ /**
37
+ * Retention options for a feed.
38
+ */
39
+ export interface RetentionOptions {
40
+ /** Retain items after this cursor position. */
41
+ cursor?: string;
42
+ }
43
+ /**
44
+ * Sync options for a feed.
45
+ */
46
+ export interface SyncOptions {
47
+ /** Push local changes to the server. Defaults to true. */
48
+ shouldPush?: boolean;
49
+ /** Pull remote changes from the server. Defaults to true. */
50
+ shouldPull?: boolean;
51
+ }
52
+ /**
53
+ * Queue replication backlog for a feed namespace.
54
+ * `0` / `0` means caught up on pull and push.
55
+ */
56
+ export interface SyncState {
57
+ /** Blocks still to pull from remote. */
58
+ blocksToPull: number;
59
+ /** Unpositioned blocks still to push to remote. */
60
+ blocksToPush: number;
61
+ /** Total blocks stored locally for the feed namespace. */
62
+ totalBlocks: number;
63
+ }
64
+ /**
65
+ * Creates a new feed object.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const feed = Feed.make({ name: 'notifications', kind: 'org.dxos.plugin.notifications.v1' });
70
+ * ```
71
+ */
72
+ export declare const make: (props?: Obj.MakeProps<typeof Feed>) => Feed;
73
+ /**
74
+ * Returns the feed object's EchoURI when the feed is stored in a space.
75
+ *
76
+ * Used internally by the feed service layer.
77
+ */
78
+ export declare const getQueueUri: (feed: Feed) => EchoURI.EchoURI | undefined;
79
+ declare const FeedService_base: Context.TagClass<FeedService, "@dxos/echo/Feed/FeedService", {
80
+ /**
81
+ * Appends items to a feed.
82
+ */
83
+ append(feed: Feed, items: Entity.Unknown[]): Promise<void>;
84
+ /**
85
+ * Removes items from a feed by ID.
86
+ */
87
+ remove(feed: Feed, ids: string[]): Promise<void>;
88
+ /**
89
+ * Queries items in a feed.
90
+ */
91
+ query: {
92
+ <Q extends Query.Any>(feed: Feed, query: Q): QueryResult.QueryResult<Query.Type<Q>>;
93
+ <F extends Filter.Any>(feed: Feed, filter: F): QueryResult.QueryResult<Filter.Type<F>>;
94
+ };
95
+ /**
96
+ * Syncs the feed with the server.
97
+ */
98
+ sync(feed: Feed, options?: SyncOptions): Promise<void>;
99
+ /**
100
+ * Returns queue replication backlog for the feed's namespace.
101
+ */
102
+ getSyncState(feed: Feed): Promise<SyncState>;
103
+ }>;
104
+ /**
105
+ * Effect service for feed operations.
106
+ * Provides the bridge to the underlying storage implementation.
107
+ * Must be provided by the application layer (e.g., echo-db).
108
+ */
109
+ export declare class FeedService extends FeedService_base {
110
+ }
111
+ /**
112
+ * @deprecated Use `FeedService` instead.
113
+ */
114
+ export type Service = FeedService;
115
+ /**
116
+ * @deprecated Use `FeedService` instead.
117
+ */
118
+ export declare const Service: typeof FeedService;
119
+ declare const ContextFeedService_base: Context.TagClass<ContextFeedService, "@dxos/echo/Feed/ContextFeedService", {
120
+ readonly feed: Feed;
121
+ }>;
122
+ /**
123
+ * Effect context service that holds the current feed for a scoped operation.
124
+ *
125
+ * @deprecated Prefer threading a `Feed.Feed` explicitly through function signatures
126
+ * over hiding it behind a context service.
127
+ */
128
+ export declare class ContextFeedService extends ContextFeedService_base {
129
+ static layer: (feed: Feed) => Layer.Layer<ContextFeedService>;
130
+ }
131
+ /**
132
+ * Layer that provides a Feed service that throws when accessed.
133
+ * Useful as a default layer when no feed service is available.
134
+ */
135
+ export declare const notAvailable: Layer.Layer<FeedService>;
136
+ /**
137
+ * Appends items to a feed.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);
142
+ * ```
143
+ */
144
+ export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never, FeedService>;
145
+ /**
146
+ * Removes items from a feed.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * yield* Feed.remove(feed, [item]);
151
+ * ```
152
+ */
153
+ export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never, FeedService>;
154
+ /**
155
+ * Creates a reactive query over items in a feed.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * const result = yield* Feed.query(feed, Filter.type(Person));
160
+ * ```
161
+ */
162
+ export declare const query: {
163
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, FeedService>;
164
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, FeedService>;
165
+ };
166
+ /**
167
+ * Executes a feed query once and returns the results.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * const items = yield* Feed.runQuery(feed, Filter.type(Person));
172
+ * ```
173
+ */
174
+ export declare const runQuery: {
175
+ <Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;
176
+ <F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;
177
+ };
178
+ /**
179
+ * Syncs the feed with the server.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * yield* Feed.sync(feed);
184
+ * yield* Feed.sync(feed, { shouldPush: false });
185
+ * ```
186
+ */
187
+ export declare const sync: (feed: Feed, options?: SyncOptions) => Effect.Effect<void, never, FeedService>;
188
+ /**
189
+ * Returns queue replication backlog for the feed's namespace.
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * const { blocksToPull, blocksToPush } = yield* Feed.getSyncState(feed);
194
+ * ```
195
+ */
196
+ export declare const getSyncState: (feed: Feed) => Effect.Effect<SyncState, never, FeedService>;
197
+ /**
198
+ * Creates a cursor for iterating over feed items.
199
+ * Currently stubbed — cursor operations are not yet implemented.
200
+ *
201
+ * @example
202
+ * ```ts
203
+ * const cursor = yield* Feed.cursor<Person>(feed);
204
+ * const item = yield* Feed.next(cursor);
205
+ * ```
206
+ */
207
+ export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never, FeedService>;
208
+ /**
209
+ * Returns the next item from a feed cursor.
210
+ * Currently stubbed — cursor operations are not yet implemented.
211
+ */
212
+ export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never, FeedService>;
213
+ /**
214
+ * Returns the next item from a feed cursor as an Option.
215
+ * Currently stubbed — cursor operations are not yet implemented.
216
+ */
217
+ export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, FeedService>;
218
+ /**
219
+ * Sets the local retention policy for a feed.
220
+ * Currently stubbed — feeds do not yet support retention.
221
+ *
222
+ * @example
223
+ * ```ts
224
+ * yield* Feed.setRetention(feed, { count: 1000 });
225
+ * ```
226
+ */
227
+ export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never, FeedService>;
228
+ export {};
229
+ //# sourceMappingURL=Feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAO,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,WAAW,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI;;;;wBAoBhB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AAMlD;;GAEG;AAEH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ;IACtC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAE/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;GAOG;AAEH,eAAO,MAAM,IAAI,WAAW,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,KAAQ,IAA6B,CAAC;AAE5F;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAAU,IAAI,KAAG,OAAO,CAAC,OAAO,GAAG,SAA+C,CAAC;;IAcvG;;OAEG;iBACU,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D;;OAEG;iBAEU,IAAI,OAAO,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhD;;OAEG;WACI;QACL,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACxF;IAED;;OAEG;eACQ,IAAI,YAAY,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD;;OAEG;uBACgB,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;;AAnChD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,gBAgC9B;CAAG;AAEN;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,OAAO,oBAAc,CAAC;;mBAWhB,IAAI;;AATvB;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,uBAKrC;IACD,MAAM,CAAC,KAAK,SAAU,IAAI,KAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAgD;CAC7G;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAgBZ,CAAC;AAMvC;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,SAAU,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAI/F,CAAC;AAEL;;;;;;;GAOG;AAEH,eAAO,MAAM,MAAM,SAAU,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAKhH,CAAC;AAEL;;;;;;;GAOG;AAMH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,GACR,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;CAEsC,CAAC;AAEvH;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;CAEa,CAAC;AAEnH;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,SAAU,IAAI,YAAY,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAI3F,CAAC;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,SAAU,IAAI,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAIjF,CAAC;AAEL;;;;;;;;;GASG;AAEH,eAAO,MAAM,MAAM,GAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,SAAS,IAAI,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CACjD,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,WAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAC/C,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,WAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAC9D,CAAC;AAEvD;;;;;;;;GAQG;AAEH,eAAO,MAAM,YAAY,UAAW,IAAI,YAAY,gBAAgB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAChG,CAAC"}
@@ -1,10 +1,14 @@
1
1
  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
- import { DXN, ObjectId } from '@dxos/keys';
4
+ import { ObjectId, type URI } from '@dxos/keys';
5
+ import * as internal from './internal';
6
+ import type * as Obj from './Obj';
7
+ import * as Ref from './Ref';
8
+ import type * as Type$ from './Type';
5
9
  export interface Filter<T> {
6
10
  '~Filter': {
7
- value: Types.Contravariant<T>;
11
+ value: Types.Covariant<T>;
8
12
  };
9
13
  ast: QueryAST.Filter;
10
14
  }
@@ -15,10 +19,10 @@ export type Any = Filter<any>;
15
19
  export type Type<F extends Any> = F extends Filter<infer T> ? T : never;
16
20
  declare class FilterClass implements Any {
17
21
  readonly ast: QueryAST.Filter;
18
- private static variance;
22
+ private static 'variance';
19
23
  constructor(ast: QueryAST.Filter);
20
24
  '~Filter': {
21
- value: Types.Contravariant<any>;
25
+ value: Types.Covariant<any>;
22
26
  };
23
27
  }
24
28
  export declare const is: (value: unknown) => value is Any;
@@ -35,20 +39,52 @@ export declare const nothing: () => FilterClass;
35
39
  export declare const id: (...ids: ObjectId[]) => Any;
36
40
  /**
37
41
  * Filter by type.
38
- */
39
- export declare const type: <S extends Schema.Schema.All>(schema: S | string, props?: Props<Schema.Schema.Type<S>>) => Filter<Schema.Schema.Type<S>>;
42
+ *
43
+ * Accepts a `Type.Type` entity (the value produced by `Type.makeObject` /
44
+ * `Type.makeRelation`), a `Schema.Union` of such entities (for filtering across a
45
+ * union of ECHO types), or a non-qualified typename string.
46
+ */
47
+ export declare const type: {
48
+ <T extends Type$.AnyEntity>(type: T, props?: Props<Type$.InstanceType<T>>): Filter<Type$.InstanceType<T>>;
49
+ <S extends internal.UnknownTypeSchema<any, any>>(schema: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
50
+ <S extends Schema.Union<readonly Schema.Schema.AnyNoContext[]>>(union: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
51
+ (schema: string, props?: Props<unknown>): Filter<any>;
52
+ (input: Type$.AnyEntity | string, props?: Props<unknown>): Filter<unknown>;
53
+ };
40
54
  /**
41
55
  * Filter by non-qualified typename.
42
56
  */
43
57
  export declare const typename: (typename: string) => Any;
44
58
  /**
45
- * Filter by fully qualified type DXN.
59
+ * Filter by fully qualified type URI — either a typename DXN (for static schemas) or
60
+ * a schema-as-object EchoURI (for stored dynamic schemas). See `getSchemaURI`.
46
61
  */
47
- export declare const typeDXN: (dxn: DXN) => Any;
62
+ export declare const typeURI: (uri: URI.URI) => Any;
48
63
  /**
49
64
  * Filter by tag.
50
65
  */
51
66
  export declare const tag: (tag: string) => Any;
67
+ /**
68
+ * Options for {@link key} filter.
69
+ */
70
+ export type KeyFilterOptions = {
71
+ /**
72
+ * Optional semver range expression (e.g. `^1.2.3`, `~2.0.0`, `>=1.0.0 <2.0.0`).
73
+ * Matches the object's meta `version` field against the range.
74
+ * If omitted, matches any version (including objects with no version).
75
+ */
76
+ version?: string;
77
+ };
78
+ /**
79
+ * Filter by registry key stored in object meta.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * Filter.key('org.example.type.foo');
84
+ * Filter.key('org.example.type.foo', { version: '^1.2.3' });
85
+ * ```
86
+ */
87
+ export declare const key: (key: string, options?: KeyFilterOptions) => Any;
52
88
  /**
53
89
  * Filter by properties.
54
90
  */
@@ -63,7 +99,7 @@ export declare const text: (text: string, options?: TextSearchOptions) => Any;
63
99
  /**
64
100
  * Filter by foreign keys.
65
101
  */
66
- export declare const foreignKeys: <S extends Schema.Schema.All>(schema: S | string, keys: ForeignKey[]) => Filter<Schema.Schema.Type<S>>;
102
+ export declare const foreignKeys: <S extends Type$.AnyEntity | string>(schema: S, keys: ForeignKey[]) => Filter<S extends Type$.AnyEntity ? Type$.InstanceType<S> : unknown>;
67
103
  /**
68
104
  * Predicate for property to be equal to the provided value.
69
105
  */
@@ -92,7 +128,7 @@ export declare const lte: <T>(value: T) => Filter<T | undefined>;
92
128
  * Predicate for property to be in the provided array.
93
129
  * @param values - Values to check against.
94
130
  */
95
- declare const in$: <T>(...values: T[]) => Filter<T | undefined>;
131
+ declare const in$: <T>(...values: T[]) => Filter<T>;
96
132
  export { in$ as in };
97
133
  /**
98
134
  * Predicate for an array property to contain the provided value.
@@ -104,7 +140,30 @@ export declare const contains: <T>(value: T) => Filter<readonly T[] | undefined>
104
140
  * @param from - Start of the range (inclusive).
105
141
  * @param to - End of the range (exclusive).
106
142
  */
107
- export declare const between: <T>(from: T, to: T) => Filter<unknown>;
143
+ export declare const between: <T>(from: T, to: T) => Filter<T>;
144
+ type TimeRange = {
145
+ after?: Date | number;
146
+ before?: Date | number;
147
+ };
148
+ /**
149
+ * Filter objects by updatedAt timestamp.
150
+ */
151
+ export declare const updated: (range: TimeRange) => Any;
152
+ /**
153
+ * Filter objects by createdAt timestamp.
154
+ */
155
+ export declare const created: (range: TimeRange) => Any;
156
+ export type ChildOfOptions = {
157
+ /** Whether to match transitively (grandchildren, etc.). Defaults to true. */
158
+ transitive?: boolean;
159
+ };
160
+ /**
161
+ * Filter objects that are children of the specified parent(s).
162
+ * Accepts ECHO objects, Refs, or arrays of either.
163
+ * Refs are resolved to DXNs without loading; objects use {@link Obj.getURI}.
164
+ * With transitive=true (default), also matches grandchildren and beyond.
165
+ */
166
+ export declare const childOf: (parents: Obj.Unknown | Ref.Unknown | readonly (Obj.Unknown | Ref.Unknown)[], options?: ChildOfOptions) => Any;
108
167
  /**
109
168
  * Negate the filter.
110
169
  */
@@ -117,4 +176,8 @@ export declare const and: <Filters extends readonly Any[]>(...filters: Filters)
117
176
  * Combine filters with a logical OR.
118
177
  */
119
178
  export declare const or: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
179
+ /**
180
+ * Returns a human-readable string representation of a Filter AST.
181
+ */
182
+ export declare const pretty: (filter: Any) => string;
120
183
  //# 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
- import { type TypeFormat as Format } from './internal';
2
- export * from './internal/formats';
3
- export type { Format };
1
+ import type * as internal from './internal';
2
+ export * from './internal/Format';
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,EAAE,KAAK,UAAU,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAEvD,cAAc,oBAAoB,CAAC;AAEnC,YAAY,EAAE,MAAM,EAAE,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"}
@@ -1,7 +1,7 @@
1
- import { type DXN } from '@dxos/keys';
1
+ import { type URI } from '@dxos/keys';
2
2
  import type * as Database from './Database';
3
3
  import type * as Entity from './Entity';
4
- import { type AnyProperties } from './internal';
4
+ import type * as internal from './internal';
5
5
  import type * as Key from './Key';
6
6
  import type * as Ref from './Ref';
7
7
  import type * as SchemaRegistry from './SchemaRegistry';
@@ -15,10 +15,10 @@ export interface RefResolutionContext {
15
15
  */
16
16
  space?: Key.SpaceId;
17
17
  /**
18
- * Queue that the resolution is happening from.
19
- * This queue will be searched first, and then the space it belongs to.
18
+ * Feed that the resolution is happening from.
19
+ * This feed will be searched first, and then the space it belongs to.
20
20
  */
21
- queue?: DXN;
21
+ feed?: URI.URI;
22
22
  }
23
23
  export interface RefResolverOptions {
24
24
  /**
@@ -30,10 +30,10 @@ export interface RefResolverOptions {
30
30
  * Middleware to change the resolved object before returning it.
31
31
  * @deprecated On track to be removed.
32
32
  */
33
- middleware?: (obj: AnyProperties) => AnyProperties;
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;
@@ -45,16 +45,21 @@ export interface Hypergraph extends Database.Queryable {
45
45
  * Creates a reference to an existing object in the database.
46
46
  *
47
47
  * NOTE: The reference may be dangling if the object is not present in the database.
48
- * NOTE: Difference from `Ref.fromDXN`
49
- * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
48
+ * NOTE: Difference from `Ref.fromURI`
49
+ * `Ref.fromURI(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
50
50
  * `db.makeRef(dxn)` is preferable in cases with access to the database.
51
51
  */
52
- makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref.Ref<T>;
52
+ makeRef<T extends Entity.Unknown = Entity.Unknown>(uri: URI.URI): Ref.Ref<T>;
53
53
  /**
54
54
  * @param hostDb Host database for reference resolution.
55
55
  * @param middleware Called with the loaded object. The caller may change the object.
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,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,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,aAAa,KAAK,aAAa,CAAC;CACpD;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,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;CAChB;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,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;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,YAqD/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":""}