@dxos/echo 0.8.4-main.fd6878d → 0.8.4-staging.60fe92afc8

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 (567) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +10 -11
  3. package/dist/lib/neutral/Annotation.mjs +68 -0
  4. package/dist/lib/neutral/Database.mjs +38 -0
  5. package/dist/lib/neutral/Entity.mjs +72 -0
  6. package/dist/lib/neutral/Entity.mjs.map +7 -0
  7. package/dist/lib/neutral/Err.mjs +12 -0
  8. package/dist/lib/neutral/Err.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 +70 -0
  12. package/dist/lib/neutral/Filter.mjs.map +7 -0
  13. package/dist/lib/neutral/Format.mjs +86 -0
  14. package/dist/lib/neutral/Format.mjs.map +7 -0
  15. package/dist/lib/neutral/JsonSchema.mjs +18 -0
  16. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  17. package/dist/lib/neutral/Key.mjs +16 -0
  18. package/dist/lib/neutral/Key.mjs.map +7 -0
  19. package/dist/lib/neutral/Migration.mjs +18 -0
  20. package/dist/lib/neutral/Migration.mjs.map +7 -0
  21. package/dist/lib/neutral/Obj.mjs +122 -0
  22. package/dist/lib/neutral/Obj.mjs.map +7 -0
  23. package/dist/lib/neutral/Order.mjs +16 -0
  24. package/dist/lib/neutral/Order.mjs.map +7 -0
  25. package/dist/lib/neutral/Query.mjs +38 -0
  26. package/dist/lib/neutral/Query.mjs.map +7 -0
  27. package/dist/lib/neutral/QueryResult.mjs +2 -0
  28. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  29. package/dist/lib/neutral/Ref.mjs +25 -0
  30. package/dist/lib/neutral/Ref.mjs.map +7 -0
  31. package/dist/lib/neutral/Registry.mjs +14 -0
  32. package/dist/lib/neutral/Registry.mjs.map +7 -0
  33. package/dist/lib/neutral/Relation.mjs +97 -0
  34. package/dist/lib/neutral/Relation.mjs.map +7 -0
  35. package/dist/lib/neutral/Scope.mjs +12 -0
  36. package/dist/lib/neutral/Scope.mjs.map +7 -0
  37. package/dist/lib/neutral/Tag.mjs +32 -0
  38. package/dist/lib/neutral/Tag.mjs.map +7 -0
  39. package/dist/lib/neutral/Type.mjs +65 -0
  40. package/dist/lib/neutral/Type.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-35INCYOE.mjs +7 -0
  42. package/dist/lib/neutral/chunk-35INCYOE.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-3PBP4V4O.mjs +101 -0
  44. package/dist/lib/neutral/chunk-3PBP4V4O.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-4ZUHOTCG.mjs +184 -0
  46. package/dist/lib/neutral/chunk-4ZUHOTCG.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-5SMDBFVB.mjs +108 -0
  48. package/dist/lib/neutral/chunk-5SMDBFVB.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-5SUJPHAE.mjs +34 -0
  50. package/dist/lib/neutral/chunk-5SUJPHAE.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-6M2Z6WBH.mjs +93 -0
  52. package/dist/lib/neutral/chunk-6M2Z6WBH.mjs.map +7 -0
  53. package/dist/lib/neutral/chunk-6YDI3J37.mjs +346 -0
  54. package/dist/lib/neutral/chunk-6YDI3J37.mjs.map +7 -0
  55. package/dist/lib/neutral/chunk-7FPIAJIV.mjs +2279 -0
  56. package/dist/lib/neutral/chunk-7FPIAJIV.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-7LOUAPYZ.mjs +25 -0
  58. package/dist/lib/neutral/chunk-7LOUAPYZ.mjs.map +7 -0
  59. package/dist/lib/neutral/chunk-7PI7C4EF.mjs +747 -0
  60. package/dist/lib/neutral/chunk-7PI7C4EF.mjs.map +7 -0
  61. package/dist/lib/neutral/chunk-BBFJWWAV.mjs +51 -0
  62. package/dist/lib/neutral/chunk-BBFJWWAV.mjs.map +7 -0
  63. package/dist/lib/neutral/chunk-EVK6XBXO.mjs +56 -0
  64. package/dist/lib/neutral/chunk-EVK6XBXO.mjs.map +7 -0
  65. package/dist/lib/neutral/chunk-IGK6FN65.mjs +27 -0
  66. package/dist/lib/neutral/chunk-IGK6FN65.mjs.map +7 -0
  67. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  68. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  69. package/dist/lib/neutral/chunk-LWXVKPPW.mjs +281 -0
  70. package/dist/lib/neutral/chunk-LWXVKPPW.mjs.map +7 -0
  71. package/dist/lib/neutral/chunk-MZ7K3MLL.mjs +48 -0
  72. package/dist/lib/neutral/chunk-MZ7K3MLL.mjs.map +7 -0
  73. package/dist/lib/neutral/chunk-O6BH7EPN.mjs +94 -0
  74. package/dist/lib/neutral/chunk-O6BH7EPN.mjs.map +7 -0
  75. package/dist/lib/neutral/chunk-QQIYS74I.mjs +336 -0
  76. package/dist/lib/neutral/chunk-QQIYS74I.mjs.map +7 -0
  77. package/dist/lib/neutral/chunk-R5W6DXR4.mjs +678 -0
  78. package/dist/lib/neutral/chunk-R5W6DXR4.mjs.map +7 -0
  79. package/dist/lib/neutral/chunk-RIVWNMSF.mjs +41 -0
  80. package/dist/lib/neutral/chunk-RIVWNMSF.mjs.map +7 -0
  81. package/dist/lib/neutral/chunk-SBVFRTST.mjs +160 -0
  82. package/dist/lib/neutral/chunk-SBVFRTST.mjs.map +7 -0
  83. package/dist/lib/neutral/chunk-T6E37YIP.mjs +251 -0
  84. package/dist/lib/neutral/chunk-T6E37YIP.mjs.map +7 -0
  85. package/dist/lib/neutral/chunk-TFEWTY5A.mjs +428 -0
  86. package/dist/lib/neutral/chunk-TFEWTY5A.mjs.map +7 -0
  87. package/dist/lib/neutral/chunk-TYGKCRMK.mjs +437 -0
  88. package/dist/lib/neutral/chunk-TYGKCRMK.mjs.map +7 -0
  89. package/dist/lib/neutral/chunk-UUP46KUQ.mjs +205 -0
  90. package/dist/lib/neutral/chunk-UUP46KUQ.mjs.map +7 -0
  91. package/dist/lib/neutral/chunk-WISOH2XH.mjs +36 -0
  92. package/dist/lib/neutral/chunk-WISOH2XH.mjs.map +7 -0
  93. package/dist/lib/neutral/chunk-WTQJHC75.mjs +395 -0
  94. package/dist/lib/neutral/chunk-WTQJHC75.mjs.map +7 -0
  95. package/dist/lib/neutral/chunk-WU3GIANS.mjs +31 -0
  96. package/dist/lib/neutral/chunk-WU3GIANS.mjs.map +7 -0
  97. package/dist/lib/neutral/chunk-ZGNNFYHS.mjs +132 -0
  98. package/dist/lib/neutral/chunk-ZGNNFYHS.mjs.map +7 -0
  99. package/dist/lib/neutral/index.mjs +111 -0
  100. package/dist/lib/neutral/index.mjs.map +7 -0
  101. package/dist/lib/neutral/internal/index.mjs +539 -0
  102. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  103. package/dist/lib/neutral/meta.json +1 -0
  104. package/dist/lib/neutral/testing/index.mjs +458 -0
  105. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  106. package/dist/types/src/Annotation.d.ts +128 -0
  107. package/dist/types/src/Annotation.d.ts.map +1 -0
  108. package/dist/types/src/Annotation.test.d.ts +2 -0
  109. package/dist/types/src/Annotation.test.d.ts.map +1 -0
  110. package/dist/types/src/Collection.d.ts +15 -0
  111. package/dist/types/src/Collection.d.ts.map +1 -0
  112. package/dist/types/src/Database.d.ts +208 -0
  113. package/dist/types/src/Database.d.ts.map +1 -0
  114. package/dist/types/src/Dataset.d.ts +29 -0
  115. package/dist/types/src/Dataset.d.ts.map +1 -0
  116. package/dist/types/src/Entity.d.ts +247 -0
  117. package/dist/types/src/Entity.d.ts.map +1 -0
  118. package/dist/types/src/Entity.test.d.ts +2 -0
  119. package/dist/types/src/Entity.test.d.ts.map +1 -0
  120. package/dist/types/src/Err.d.ts +107 -0
  121. package/dist/types/src/Err.d.ts.map +1 -0
  122. package/dist/types/src/Feed.d.ts +229 -0
  123. package/dist/types/src/Feed.d.ts.map +1 -0
  124. package/dist/types/src/Filter.d.ts +175 -0
  125. package/dist/types/src/Filter.d.ts.map +1 -0
  126. package/dist/types/src/Filter.test.d.ts +2 -0
  127. package/dist/types/src/Filter.test.d.ts.map +1 -0
  128. package/dist/types/src/Format.d.ts +2 -0
  129. package/dist/types/src/Format.d.ts.map +1 -0
  130. package/dist/types/src/Hypergraph.d.ts +70 -0
  131. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  132. package/dist/types/src/Json.d.ts +33 -0
  133. package/dist/types/src/Json.d.ts.map +1 -0
  134. package/dist/types/src/Json.test.d.ts +2 -0
  135. package/dist/types/src/Json.test.d.ts.map +1 -0
  136. package/dist/types/src/JsonSchema.d.ts +16 -0
  137. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  138. package/dist/types/src/Key.d.ts +2 -1
  139. package/dist/types/src/Key.d.ts.map +1 -1
  140. package/dist/types/src/Migration.d.ts +72 -0
  141. package/dist/types/src/Migration.d.ts.map +1 -0
  142. package/dist/types/src/Obj.d.ts +514 -53
  143. package/dist/types/src/Obj.d.ts.map +1 -1
  144. package/dist/types/src/Obj.test.d.ts +2 -0
  145. package/dist/types/src/Obj.test.d.ts.map +1 -0
  146. package/dist/types/src/Order.d.ts +26 -0
  147. package/dist/types/src/Order.d.ts.map +1 -0
  148. package/dist/types/src/Query.d.ts +231 -0
  149. package/dist/types/src/Query.d.ts.map +1 -0
  150. package/dist/types/src/Query.test.d.ts +2 -0
  151. package/dist/types/src/Query.test.d.ts.map +1 -0
  152. package/dist/types/src/QueryResult.d.ts +101 -0
  153. package/dist/types/src/QueryResult.d.ts.map +1 -0
  154. package/dist/types/src/Ref.d.ts +69 -11
  155. package/dist/types/src/Ref.d.ts.map +1 -1
  156. package/dist/types/src/Registry.d.ts +131 -0
  157. package/dist/types/src/Registry.d.ts.map +1 -0
  158. package/dist/types/src/Relation.d.ts +323 -24
  159. package/dist/types/src/Relation.d.ts.map +1 -1
  160. package/dist/types/src/Relation.test.d.ts +2 -0
  161. package/dist/types/src/Relation.test.d.ts.map +1 -0
  162. package/dist/types/src/Scope.d.ts +35 -0
  163. package/dist/types/src/Scope.d.ts.map +1 -0
  164. package/dist/types/src/Tag.d.ts +34 -0
  165. package/dist/types/src/Tag.d.ts.map +1 -0
  166. package/dist/types/src/Type.d.ts +397 -107
  167. package/dist/types/src/Type.d.ts.map +1 -1
  168. package/dist/types/src/Type.test.d.ts +2 -0
  169. package/dist/types/src/Type.test.d.ts.map +1 -0
  170. package/dist/types/src/View.d.ts +65 -0
  171. package/dist/types/src/View.d.ts.map +1 -0
  172. package/dist/types/src/exemplars.test.d.ts +2 -0
  173. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  174. package/dist/types/src/hierarchy.test.d.ts +2 -0
  175. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  176. package/dist/types/src/index.d.ts +22 -3
  177. package/dist/types/src/index.d.ts.map +1 -1
  178. package/dist/types/src/internal/Annotation/annotations.d.ts +272 -0
  179. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  180. package/dist/types/src/internal/Annotation/annotations.test.d.ts +2 -0
  181. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  182. package/dist/types/src/internal/Annotation/dictionary.d.ts +24 -0
  183. package/dist/types/src/internal/Annotation/dictionary.d.ts.map +1 -0
  184. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts +14 -0
  185. package/dist/types/src/internal/Annotation/entity-dictionary.d.ts.map +1 -0
  186. package/dist/types/src/internal/Annotation/index.d.ts +6 -0
  187. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  188. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  189. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  190. package/dist/types/src/internal/Annotation/util.d.ts +48 -0
  191. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  192. package/dist/types/src/internal/Entity/api.d.ts +27 -0
  193. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  194. package/dist/types/src/internal/Entity/entity.d.ts +84 -0
  195. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  196. package/dist/types/src/internal/Entity/guard.d.ts +10 -0
  197. package/dist/types/src/internal/Entity/guard.d.ts.map +1 -0
  198. package/dist/types/src/internal/Entity/index.d.ts +10 -0
  199. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  200. package/dist/types/src/internal/Entity/model.d.ts +59 -0
  201. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  202. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  203. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  204. package/dist/types/src/internal/Entity/relation.d.ts +58 -0
  205. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  206. package/dist/types/src/internal/Entity/type-kind.d.ts +24 -0
  207. package/dist/types/src/internal/Entity/type-kind.d.ts.map +1 -0
  208. package/dist/types/src/internal/Entity/type-uri.d.ts +24 -0
  209. package/dist/types/src/internal/Entity/type-uri.d.ts.map +1 -0
  210. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  211. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  212. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  213. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  214. package/dist/types/src/internal/Format/date.d.ts +63 -0
  215. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  216. package/dist/types/src/internal/Format/date.test.d.ts +2 -0
  217. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  218. package/dist/types/src/internal/Format/format.d.ts +33 -0
  219. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  220. package/dist/types/src/internal/Format/format.test.d.ts +2 -0
  221. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  222. package/dist/types/src/internal/Format/index.d.ts +8 -0
  223. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  224. package/dist/types/src/internal/Format/number.d.ts +31 -0
  225. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  226. package/dist/types/src/internal/Format/object.d.ts +37 -0
  227. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  228. package/dist/types/src/internal/Format/select.d.ts +13 -0
  229. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  230. package/dist/types/src/internal/Format/string.d.ts +42 -0
  231. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  232. package/dist/types/src/internal/Format/types.d.ts +72 -0
  233. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  234. package/dist/types/src/internal/JsonSchema/annotations.d.ts +19 -0
  235. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  236. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts +2 -0
  237. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  238. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  239. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  240. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts +7 -0
  241. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  242. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +351 -0
  243. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  244. package/dist/types/src/internal/JsonSchema/json-schema.d.ts +31 -0
  245. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  246. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts +2 -0
  247. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  248. package/dist/types/src/internal/Obj/atoms.d.ts +38 -0
  249. package/dist/types/src/internal/Obj/atoms.d.ts.map +1 -0
  250. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  251. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  252. package/dist/types/src/internal/Obj/common.d.ts +18 -0
  253. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  254. package/dist/types/src/internal/Obj/create-object.d.ts +39 -0
  255. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  256. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  257. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  258. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  259. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  260. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  261. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  262. package/dist/types/src/internal/Obj/inspect.d.ts +2 -0
  263. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  264. package/dist/types/src/internal/Obj/json-serializer.d.ts +45 -0
  265. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  266. package/dist/types/src/internal/Obj/json-serializer.test.d.ts +2 -0
  267. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  268. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  269. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  270. package/dist/types/src/internal/Obj/schema-validator.test.d.ts +2 -0
  271. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  272. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  273. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  274. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  275. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  276. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  277. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  278. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  279. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  280. package/dist/types/src/internal/Obj/typed-object.test.d.ts +2 -0
  281. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  282. package/dist/types/src/internal/Query/index.d.ts +2 -0
  283. package/dist/types/src/internal/Query/index.d.ts.map +1 -0
  284. package/dist/types/src/internal/Query/pretty.d.ts +10 -0
  285. package/dist/types/src/internal/Query/pretty.d.ts.map +1 -0
  286. package/dist/types/src/internal/Ref/atoms.d.ts +10 -0
  287. package/dist/types/src/internal/Ref/atoms.d.ts.map +1 -0
  288. package/dist/types/src/internal/Ref/index.d.ts +3 -0
  289. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  290. package/dist/types/src/internal/Ref/ref-array.d.ts +21 -0
  291. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  292. package/dist/types/src/internal/Ref/ref.d.ts +262 -0
  293. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  294. package/dist/types/src/internal/Ref/ref.test.d.ts +2 -0
  295. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  296. package/dist/types/src/internal/Ref/utils.d.ts +8 -0
  297. package/dist/types/src/internal/Ref/utils.d.ts.map +1 -0
  298. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  299. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  300. package/dist/types/src/internal/Type/compose.test.d.ts +2 -0
  301. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  302. package/dist/types/src/internal/Type/index.d.ts +3 -0
  303. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  304. package/dist/types/src/internal/Type/manipulation.d.ts +9 -0
  305. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  306. package/dist/types/src/internal/Type/type-schema.d.ts +52 -0
  307. package/dist/types/src/internal/Type/type-schema.d.ts.map +1 -0
  308. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  309. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  310. package/dist/types/src/internal/common/api/meta.d.ts +45 -0
  311. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  312. package/dist/types/src/internal/common/index.d.ts +4 -0
  313. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  314. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  315. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  316. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  317. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  318. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  319. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  320. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  321. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  322. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  323. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  324. package/dist/types/src/internal/common/proxy/handler.test.d.ts +2 -0
  325. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  326. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  327. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  328. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  329. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  330. package/dist/types/src/internal/common/proxy/make-object.d.ts +20 -0
  331. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  332. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  333. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  334. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  335. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  336. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  337. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  338. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  339. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  340. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  341. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  342. package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
  343. package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
  344. package/dist/types/src/internal/common/proxy/schema-validator.d.ts +15 -0
  345. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  346. package/dist/types/src/internal/common/proxy/schema.test.d.ts +2 -0
  347. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  348. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  349. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  350. package/dist/types/src/internal/common/proxy/typed-handler.d.ts +64 -0
  351. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  352. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts +2 -0
  353. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  354. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts +2 -0
  355. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  356. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  357. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  358. package/dist/types/src/internal/common/types/entity.d.ts +94 -0
  359. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  360. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  361. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  362. package/dist/types/src/internal/common/types/meta.d.ts +54 -0
  363. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  364. package/dist/types/src/internal/common/types/model-symbols.d.ts +65 -0
  365. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  366. package/dist/types/src/internal/common/types/typename.d.ts +28 -0
  367. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  368. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  369. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  370. package/dist/types/src/internal/common/types/well-known-types.d.ts +11 -0
  371. package/dist/types/src/internal/common/types/well-known-types.d.ts.map +1 -0
  372. package/dist/types/src/internal/index.d.ts +11 -0
  373. package/dist/types/src/internal/index.d.ts.map +1 -0
  374. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  375. package/dist/types/src/testing/index.d.ts +4 -1
  376. package/dist/types/src/testing/index.d.ts.map +1 -1
  377. package/dist/types/src/testing/registry.d.ts +9 -0
  378. package/dist/types/src/testing/registry.d.ts.map +1 -0
  379. package/dist/types/src/testing/test-data.d.ts +18 -0
  380. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  381. package/dist/types/src/testing/test-schema.d.ts +298 -0
  382. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  383. package/dist/types/src/testing/util.d.ts +23 -0
  384. package/dist/types/src/testing/util.d.ts.map +1 -0
  385. package/dist/types/tsconfig.tsbuildinfo +1 -1
  386. package/package.json +122 -57
  387. package/src/Annotation.test.ts +439 -0
  388. package/src/Annotation.ts +202 -0
  389. package/src/Collection.ts +33 -0
  390. package/src/Database.ts +345 -0
  391. package/src/Dataset.ts +34 -0
  392. package/src/Entity.test.ts +132 -0
  393. package/src/Entity.ts +345 -0
  394. package/src/Err.ts +40 -0
  395. package/src/Feed.ts +352 -0
  396. package/src/Filter.test.ts +90 -0
  397. package/src/Filter.ts +484 -0
  398. package/src/Format.ts +5 -0
  399. package/src/Hypergraph.ts +84 -0
  400. package/src/Json.test.ts +175 -0
  401. package/src/Json.ts +103 -0
  402. package/src/JsonSchema.ts +26 -0
  403. package/src/Key.ts +4 -1
  404. package/src/Migration.ts +114 -0
  405. package/src/Obj.test.ts +641 -0
  406. package/src/Obj.ts +836 -105
  407. package/src/Order.ts +68 -0
  408. package/src/Query.test.ts +835 -0
  409. package/src/Query.ts +634 -0
  410. package/src/QueryResult.ts +132 -0
  411. package/src/Ref.ts +97 -10
  412. package/src/Registry.ts +155 -0
  413. package/src/Relation.test.ts +88 -0
  414. package/src/Relation.ts +508 -61
  415. package/src/Scope.ts +50 -0
  416. package/src/Tag.md +88 -0
  417. package/src/Tag.ts +84 -0
  418. package/src/Type.test.ts +257 -0
  419. package/src/Type.ts +643 -152
  420. package/src/View.ts +98 -0
  421. package/src/exemplars.test.ts +21 -0
  422. package/src/hierarchy.test.ts +33 -0
  423. package/src/index.ts +24 -4
  424. package/src/internal/Annotation/annotations.test.ts +165 -0
  425. package/src/internal/Annotation/annotations.ts +609 -0
  426. package/src/internal/Annotation/dictionary.ts +47 -0
  427. package/src/internal/Annotation/entity-dictionary.ts +74 -0
  428. package/src/internal/Annotation/index.ts +9 -0
  429. package/src/internal/Annotation/sorting.ts +51 -0
  430. package/src/internal/Annotation/util.ts +94 -0
  431. package/src/internal/Entity/api.ts +77 -0
  432. package/src/internal/Entity/entity.ts +277 -0
  433. package/src/internal/Entity/guard.ts +26 -0
  434. package/src/internal/Entity/index.ts +13 -0
  435. package/src/internal/Entity/model.ts +119 -0
  436. package/src/internal/Entity/object.ts +73 -0
  437. package/src/internal/Entity/relation.ts +188 -0
  438. package/src/internal/Entity/type-kind.ts +75 -0
  439. package/src/internal/Entity/type-uri.ts +92 -0
  440. package/src/internal/Entity/util.ts +33 -0
  441. package/src/internal/Entity/version.ts +96 -0
  442. package/src/internal/Format/date.test.ts +55 -0
  443. package/src/internal/Format/date.ts +213 -0
  444. package/src/internal/Format/format.test.ts +97 -0
  445. package/src/internal/Format/format.ts +54 -0
  446. package/src/internal/Format/index.ts +11 -0
  447. package/src/internal/Format/number.ts +89 -0
  448. package/src/internal/Format/object.ts +97 -0
  449. package/src/internal/Format/select.ts +18 -0
  450. package/src/internal/Format/string.ts +81 -0
  451. package/src/internal/Format/types.ts +186 -0
  452. package/src/internal/JsonSchema/annotations.ts +50 -0
  453. package/src/internal/JsonSchema/effect-schema.test.ts +143 -0
  454. package/src/internal/JsonSchema/index.ts +8 -0
  455. package/src/internal/JsonSchema/json-schema-normalize.ts +111 -0
  456. package/src/internal/JsonSchema/json-schema-type.ts +403 -0
  457. package/src/internal/JsonSchema/json-schema.test.ts +786 -0
  458. package/src/internal/JsonSchema/json-schema.ts +547 -0
  459. package/src/internal/Obj/atoms.ts +244 -0
  460. package/src/internal/Obj/clone.ts +53 -0
  461. package/src/internal/Obj/common.ts +75 -0
  462. package/src/internal/Obj/create-object.test.ts +116 -0
  463. package/src/internal/Obj/create-object.ts +140 -0
  464. package/src/internal/Obj/deleted.ts +19 -0
  465. package/src/internal/Obj/index.ts +14 -0
  466. package/src/internal/Obj/inspect.ts +48 -0
  467. package/src/internal/Obj/json-serializer.test.ts +199 -0
  468. package/src/internal/Obj/json-serializer.ts +278 -0
  469. package/src/internal/Obj/schema-validator.test.ts +182 -0
  470. package/src/internal/Obj/schema-validator.ts +6 -0
  471. package/src/internal/Obj/set-value.test.ts +258 -0
  472. package/src/internal/Obj/set-value.ts +158 -0
  473. package/src/internal/Obj/snapshot.ts +114 -0
  474. package/src/internal/Obj/typed-object.test.ts +32 -0
  475. package/src/internal/Obj/typed-object.ts +30 -0
  476. package/src/{query → internal/Query}/index.ts +1 -1
  477. package/src/internal/Query/pretty.ts +162 -0
  478. package/src/internal/Ref/atoms.ts +20 -0
  479. package/src/internal/Ref/index.ts +6 -0
  480. package/src/internal/Ref/ref-array.ts +38 -0
  481. package/src/internal/Ref/ref.test.ts +91 -0
  482. package/src/internal/Ref/ref.ts +650 -0
  483. package/src/internal/Ref/utils.ts +45 -0
  484. package/src/internal/Type/compose.test.ts +43 -0
  485. package/src/internal/Type/compose.ts +41 -0
  486. package/src/internal/Type/index.ts +6 -0
  487. package/src/internal/Type/manipulation.ts +67 -0
  488. package/src/internal/Type/type-schema.ts +60 -0
  489. package/src/internal/common/README.md +102 -0
  490. package/src/internal/common/api/index.ts +15 -0
  491. package/src/internal/common/api/meta.ts +90 -0
  492. package/src/internal/common/index.ts +7 -0
  493. package/src/internal/common/proxy/change-context.ts +138 -0
  494. package/src/internal/common/proxy/change.test.ts +527 -0
  495. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  496. package/src/internal/common/proxy/errors.ts +42 -0
  497. package/src/internal/common/proxy/event-batch.ts +44 -0
  498. package/src/internal/common/proxy/handler.test.ts +121 -0
  499. package/src/internal/common/proxy/index.ts +17 -0
  500. package/src/internal/common/proxy/json-serializer.ts +101 -0
  501. package/src/internal/common/proxy/make-object.ts +129 -0
  502. package/src/internal/common/proxy/ownership.ts +252 -0
  503. package/src/internal/common/proxy/proxy-types.ts +23 -0
  504. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  505. package/src/internal/common/proxy/reactive-array.ts +71 -0
  506. package/src/internal/common/proxy/reactive.test.ts +54 -0
  507. package/src/internal/common/proxy/reactive.ts +77 -0
  508. package/src/internal/common/proxy/schema-validator.ts +244 -0
  509. package/src/internal/common/proxy/schema.test.ts +107 -0
  510. package/src/internal/common/proxy/symbols.ts +7 -0
  511. package/src/internal/common/proxy/typed-handler.test.ts +314 -0
  512. package/src/internal/common/proxy/typed-handler.ts +509 -0
  513. package/src/internal/common/proxy/typed-object.test.ts +103 -0
  514. package/src/internal/common/types/base.ts +43 -0
  515. package/src/internal/common/types/entity.ts +133 -0
  516. package/src/internal/common/types/index.ts +15 -0
  517. package/src/internal/common/types/meta.ts +109 -0
  518. package/src/internal/common/types/model-symbols.ts +89 -0
  519. package/src/internal/common/types/typename.ts +91 -0
  520. package/src/internal/common/types/version.ts +19 -0
  521. package/src/internal/common/types/well-known-types.ts +15 -0
  522. package/src/internal/index.ts +19 -0
  523. package/src/testing/api.test.ts +131 -0
  524. package/src/testing/index.ts +4 -1
  525. package/src/testing/registry.ts +44 -0
  526. package/src/testing/test-data.ts +189 -0
  527. package/src/testing/test-schema.ts +204 -0
  528. package/src/testing/util.ts +88 -0
  529. package/dist/lib/browser/chunk-NLPBTYZV.mjs +0 -647
  530. package/dist/lib/browser/chunk-NLPBTYZV.mjs.map +0 -7
  531. package/dist/lib/browser/index.mjs +0 -22
  532. package/dist/lib/browser/meta.json +0 -1
  533. package/dist/lib/browser/testing/index.mjs +0 -70
  534. package/dist/lib/browser/testing/index.mjs.map +0 -7
  535. package/dist/lib/node-esm/chunk-BQZZRMFX.mjs +0 -647
  536. package/dist/lib/node-esm/chunk-BQZZRMFX.mjs.map +0 -7
  537. package/dist/lib/node-esm/index.mjs +0 -22
  538. package/dist/lib/node-esm/meta.json +0 -1
  539. package/dist/lib/node-esm/testing/index.mjs +0 -70
  540. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  541. package/dist/types/src/experimental/database.d.ts +0 -8
  542. package/dist/types/src/experimental/database.d.ts.map +0 -1
  543. package/dist/types/src/experimental/index.d.ts +0 -1
  544. package/dist/types/src/experimental/index.d.ts.map +0 -1
  545. package/dist/types/src/experimental/queue.d.ts +0 -8
  546. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  547. package/dist/types/src/experimental/space.d.ts +0 -8
  548. package/dist/types/src/experimental/space.d.ts.map +0 -1
  549. package/dist/types/src/query/dsl.d.ts +0 -218
  550. package/dist/types/src/query/dsl.d.ts.map +0 -1
  551. package/dist/types/src/query/dsl.test.d.ts +0 -2
  552. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  553. package/dist/types/src/query/index.d.ts +0 -2
  554. package/dist/types/src/query/index.d.ts.map +0 -1
  555. package/dist/types/src/testing/types.d.ts +0 -113
  556. package/dist/types/src/testing/types.d.ts.map +0 -1
  557. package/src/experimental/database.ts +0 -11
  558. package/src/experimental/index.ts +0 -7
  559. package/src/experimental/queue.ts +0 -11
  560. package/src/experimental/space.ts +0 -11
  561. package/src/query/dsl.test.ts +0 -324
  562. package/src/query/dsl.ts +0 -646
  563. package/src/test/api.test.ts +0 -173
  564. package/src/testing/types.ts +0 -91
  565. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  566. /package/dist/lib/{node-esm/index.mjs.map → neutral/Database.mjs.map} +0 -0
  567. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
@@ -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 { EID } 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 EID 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) => EID.EID | 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":"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"}
@@ -0,0 +1,175 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import type * as Types from 'effect/Types';
3
+ import { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';
4
+ import { EntityId, 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';
9
+ export interface Filter<T> {
10
+ '~Filter': {
11
+ value: Types.Covariant<T>;
12
+ };
13
+ ast: QueryAST.Filter;
14
+ }
15
+ export type Props<T> = {
16
+ [K in keyof T & string]?: Filter<T[K]> | T[K];
17
+ };
18
+ export type Any = Filter<any>;
19
+ export type Type<F extends Any> = F extends Filter<infer T> ? T : never;
20
+ declare class FilterClass implements Any {
21
+ readonly ast: QueryAST.Filter;
22
+ private static 'variance';
23
+ constructor(ast: QueryAST.Filter);
24
+ '~Filter': {
25
+ value: Types.Covariant<any>;
26
+ };
27
+ }
28
+ export declare const is: (value: unknown) => value is Any;
29
+ /** Construct a filter from an ast. */
30
+ export declare const fromAst: (ast: QueryAST.Filter) => Any;
31
+ /**
32
+ * Filter that matches all objects.
33
+ */
34
+ export declare const everything: () => FilterClass;
35
+ /**
36
+ * Filter that matches no objects.
37
+ */
38
+ export declare const nothing: () => FilterClass;
39
+ export declare const id: (...ids: EntityId[]) => Any;
40
+ /**
41
+ * Filter by type.
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 fully-qualified type URI — an `echo:` EID (stored schema)
46
+ * or a `dxn:` DXN (static schema). To filter by a bare typename, wrap it: `DXN.make(typename)`.
47
+ */
48
+ export declare const type: {
49
+ <T extends Type$.AnyEntity>(type: T, props?: Props<Type$.InstanceType<T>>): Filter<Type$.InstanceType<T>>;
50
+ <S extends internal.UnknownTypeSchema<any, any>>(schema: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
51
+ <S extends Schema.Union<readonly Schema.Schema.AnyNoContext[]>>(union: S, props?: Props<Schema.Schema.Type<S>>): Filter<Schema.Schema.Type<S>>;
52
+ (uri: URI.URI, props?: Props<unknown>): Filter<any>;
53
+ (input: Type$.AnyEntity | URI.URI, props?: Props<unknown>): Filter<unknown>;
54
+ };
55
+ /**
56
+ * Filter by tag.
57
+ */
58
+ export declare const tag: (tag: string) => Any;
59
+ /**
60
+ * Options for {@link key} filter.
61
+ */
62
+ export type KeyFilterOptions = {
63
+ /**
64
+ * Optional semver range expression (e.g. `^1.2.3`, `~2.0.0`, `>=1.0.0 <2.0.0`).
65
+ * Matches the object's meta `version` field against the range.
66
+ * If omitted, matches any version (including objects with no version).
67
+ */
68
+ version?: string;
69
+ };
70
+ /**
71
+ * Filter by registry key stored in object meta.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * Filter.key('org.example.type.foo');
76
+ * Filter.key('org.example.type.foo', { version: '^1.2.3' });
77
+ * ```
78
+ */
79
+ export declare const key: (key: string, options?: KeyFilterOptions) => Any;
80
+ /**
81
+ * Filter by properties.
82
+ */
83
+ export declare const props: <T>(props: Props<T>) => Filter<T>;
84
+ export type TextSearchOptions = {
85
+ type?: 'full-text' | 'vector';
86
+ };
87
+ /**
88
+ * Full-text or vector search.
89
+ */
90
+ export declare const text: (text: string, options?: TextSearchOptions) => Any;
91
+ /**
92
+ * Filter by foreign keys.
93
+ */
94
+ export declare const foreignKeys: <S extends Type$.AnyEntity | URI.URI>(schema: S, keys: ForeignKey[]) => Filter<S extends Type$.AnyEntity ? Type$.InstanceType<S> : unknown>;
95
+ /**
96
+ * Predicate for property to be equal to the provided value.
97
+ */
98
+ export declare const eq: <T>(value: T) => Filter<T | undefined>;
99
+ /**
100
+ * Predicate for property to be not equal to the provided value.
101
+ */
102
+ export declare const neq: <T>(value: T) => Filter<T | undefined>;
103
+ /**
104
+ * Predicate for property to be greater than the provided value.
105
+ */
106
+ export declare const gt: <T>(value: T) => Filter<T | undefined>;
107
+ /**
108
+ * Predicate for property to be greater than or equal to the provided value.
109
+ */
110
+ export declare const gte: <T>(value: T) => Filter<T | undefined>;
111
+ /**
112
+ * Predicate for property to be less than the provided value.
113
+ */
114
+ export declare const lt: <T>(value: T) => Filter<T | undefined>;
115
+ /**
116
+ * Predicate for property to be less than or equal to the provided value.
117
+ */
118
+ export declare const lte: <T>(value: T) => Filter<T | undefined>;
119
+ /**
120
+ * Predicate for property to be in the provided array.
121
+ * @param values - Values to check against.
122
+ */
123
+ declare const in$: <T>(...values: T[]) => Filter<T>;
124
+ export { in$ as in };
125
+ /**
126
+ * Predicate for an array property to contain the provided value.
127
+ * @param value - Value to check against.
128
+ */
129
+ export declare const contains: <T>(value: T) => Filter<readonly T[] | undefined>;
130
+ /**
131
+ * Predicate for property to be in the provided range.
132
+ * @param from - Start of the range (inclusive).
133
+ * @param to - End of the range (exclusive).
134
+ */
135
+ export declare const between: <T>(from: T, to: T) => Filter<T>;
136
+ type TimeRange = {
137
+ after?: Date | number;
138
+ before?: Date | number;
139
+ };
140
+ /**
141
+ * Filter objects by updatedAt timestamp.
142
+ */
143
+ export declare const updated: (range: TimeRange) => Any;
144
+ /**
145
+ * Filter objects by createdAt timestamp.
146
+ */
147
+ export declare const created: (range: TimeRange) => Any;
148
+ export type ChildOfOptions = {
149
+ /** Whether to match transitively (grandchildren, etc.). Defaults to true. */
150
+ transitive?: boolean;
151
+ };
152
+ /**
153
+ * Filter objects that are children of the specified parent(s).
154
+ * Accepts ECHO objects, Refs, or arrays of either.
155
+ * Refs are resolved to DXNs without loading; objects use {@link Obj.getURI}.
156
+ * With transitive=true (default), also matches grandchildren and beyond.
157
+ */
158
+ export declare const childOf: (parents: Obj.Unknown | Ref.Unknown | readonly (Obj.Unknown | Ref.Unknown)[], options?: ChildOfOptions) => Any;
159
+ /**
160
+ * Negate the filter.
161
+ */
162
+ export declare const not: <F extends Any>(filter: F) => Filter<Type<F>>;
163
+ /**
164
+ * Combine filters with a logical AND.
165
+ */
166
+ export declare const and: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
167
+ /**
168
+ * Combine filters with a logical OR.
169
+ */
170
+ export declare const or: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
171
+ /**
172
+ * Returns a human-readable string representation of a Filter AST.
173
+ */
174
+ export declare const pretty: (filter: Any) => string;
175
+ //# sourceMappingURL=Filter.d.ts.map
@@ -0,0 +1 @@
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":""}
@@ -0,0 +1,2 @@
1
+ export * from './internal/Format';
2
+ //# sourceMappingURL=Format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { type URI } from '@dxos/keys';
2
+ import type * as Database from './Database';
3
+ import type * as Entity from './Entity';
4
+ import type * as internal from './internal';
5
+ import type * as Key from './Key';
6
+ import type * as Ref from './Ref';
7
+ import type * as Registry from './Registry';
8
+ /**
9
+ * Resolution context.
10
+ * Affects how non-absolute DXNs are resolved.
11
+ */
12
+ export interface RefResolutionContext {
13
+ /**
14
+ * Space that the resolution is happening from.
15
+ */
16
+ space?: Key.SpaceId;
17
+ /**
18
+ * Feed that the resolution is happening from.
19
+ * This feed will be searched first, and then the space it belongs to.
20
+ */
21
+ feed?: URI.URI;
22
+ }
23
+ export interface RefResolverOptions {
24
+ /**
25
+ * Resolution context.
26
+ * Affects how non-absolute DXNs are resolved.
27
+ */
28
+ context?: RefResolutionContext;
29
+ /**
30
+ * Middleware to change the resolved object before returning it.
31
+ * @deprecated On track to be removed.
32
+ */
33
+ middleware?: (obj: internal.AnyProperties) => internal.AnyProperties;
34
+ }
35
+ /**
36
+ * Manages cross-space database interactions.
37
+ */
38
+ export interface Hypergraph extends Database.Queryable {
39
+ /**
40
+ * In-process registry of keyed objects and static schema types.
41
+ * Populated at startup via `registry.add(objects)` / `registry.add(schemas)`.
42
+ * Queries that include no explicit from() clause will fan out to this registry automatically.
43
+ */
44
+ get registry(): Registry.Registry;
45
+ /**
46
+ * Query objects.
47
+ */
48
+ query: Database.QueryFn;
49
+ /**
50
+ * Creates a reference to an existing object in the database.
51
+ *
52
+ * NOTE: The reference may be dangling if the object is not present in the database.
53
+ * NOTE: Difference from `Ref.fromURI`
54
+ * `Ref.fromURI(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
55
+ * `db.makeRef(dxn)` is preferable in cases with access to the database.
56
+ */
57
+ makeRef<T extends Entity.Unknown = Entity.Unknown>(uri: URI.URI): Ref.Ref<T>;
58
+ /**
59
+ * @param hostDb Host database for reference resolution.
60
+ * @param middleware Called with the loaded object. The caller may change the object.
61
+ * @returns Result of `onLoad`.
62
+ */
63
+ createRefResolver(options: RefResolverOptions): Ref.Resolver;
64
+ /**
65
+ * Get a database by space ID.
66
+ * @returns The database for the given space ID, or undefined if not found.
67
+ */
68
+ getDatabase(spaceId: Key.SpaceId): Database.Database | undefined;
69
+ }
70
+ //# sourceMappingURL=Hypergraph.d.ts.map
@@ -0,0 +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,QAAQ,MAAM,YAAY,CAAC;AAE5C;;;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;;;;OAIG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAElC;;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 (`{ "/": "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":""}
@@ -0,0 +1,16 @@
1
+ import type * as Schema from 'effect/Schema';
2
+ import * as jsonSchemaInternal from './internal/JsonSchema';
3
+ /**
4
+ * Decode JSON Schema to Effect Schema.
5
+ */
6
+ export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType['$defs']) => Schema.Schema.AnyNoContext;
7
+ /**
8
+ * Encode Effect Schema to JSON Schema.
9
+ */
10
+ export declare const toJsonSchema: (schema: Schema.Schema.All | import("./Type").AnyEntity, options?: jsonSchemaInternal.JsonSchemaOptions) => import("effect/Types").DeepMutable<jsonSchemaInternal.JsonSchemaType>;
11
+ /**
12
+ * Serializable JsonSchema type definition.
13
+ */
14
+ export type JsonSchema = jsonSchemaInternal.JsonSchemaType;
15
+ export declare const JsonSchema: Schema.Schema<jsonSchemaInternal.JsonSchemaType>;
16
+ //# sourceMappingURL=JsonSchema.d.ts.map
@@ -0,0 +1 @@
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,mLAAkC,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"}
@@ -1,2 +1,3 @@
1
- export { SpaceId, ObjectId } from '@dxos/keys';
1
+ export { ForeignKey } from '@dxos/echo-protocol';
2
+ export { EID, EntityId, SpaceId, URI } from '@dxos/keys';
2
3
  //# sourceMappingURL=Key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,72 @@
1
+ import type * as Schema from 'effect/Schema';
2
+ import { type URI } from '@dxos/keys';
3
+ import type * as Database from './Database';
4
+ import type * as Entity from './Entity';
5
+ import { MetaId, type EntityMeta } from './internal';
6
+ import * as Type from './Type';
7
+ /**
8
+ * Result returned by a migration's `transform` callback.
9
+ * The data shape matches the target schema; the optional `[Obj.Meta]` symbol key lets the
10
+ * transform update the object's meta (e.g. `key` / `version`) atomically with the data swap.
11
+ */
12
+ type MigrationSchemaInput = Type.AnyEntity;
13
+ type MigrationInstanceType<S> = S extends Type.AnyEntity ? Type.InstanceType<S> : S extends Schema.Schema.AnyNoContext ? Schema.Schema.Type<S> : never;
14
+ export type TransformResult<To> = Omit<MigrationInstanceType<To>, 'id' | Entity.KindId> & {
15
+ [MetaId]?: Partial<EntityMeta>;
16
+ };
17
+ type DefineObjectMigrationOptions<From extends MigrationSchemaInput, To extends MigrationSchemaInput> = {
18
+ from: From;
19
+ to: To;
20
+ /**
21
+ * Pure function that converts the old object data to the new object data.
22
+ *
23
+ * The returned object may include an optional `[Obj.Meta]` entry to update the object's meta
24
+ * (e.g. registry `key` / `version`) atomically with the data swap.
25
+ */
26
+ transform: (from: MigrationInstanceType<From>, context: ObjectMigrationContext) => Promise<TransformResult<To>>;
27
+ /**
28
+ * Callback that is called after the object is migrated. Called for every object that is migrated.
29
+ *
30
+ * NOTE: Database mutations performed in this callback are not guaranteed to be idempotent.
31
+ * If multiple peers run the migration separately, the effects may be applied multiple times.
32
+ */
33
+ onMigration?: (params: OnMigrateProps<From, To>) => Promise<void>;
34
+ };
35
+ /**
36
+ * Context passed to object migration callbacks.
37
+ */
38
+ export type ObjectMigrationContext = {
39
+ db: Database.Database;
40
+ };
41
+ type OnMigrateProps<From, To> = {
42
+ before: MigrationInstanceType<From>;
43
+ object: MigrationInstanceType<To>;
44
+ db: Database.Database;
45
+ };
46
+ /**
47
+ * Definition of a migration from one object schema version to another.
48
+ */
49
+ export type ObjectMigration = {
50
+ fromType: URI.URI;
51
+ toType: URI.URI;
52
+ fromSchema: Schema.Schema.AnyNoContext;
53
+ toSchema: Schema.Schema.AnyNoContext;
54
+ transform: (from: unknown, context: ObjectMigrationContext) => Promise<unknown>;
55
+ onMigration?: (params: OnMigrateProps<any, any>) => Promise<void>;
56
+ };
57
+ /**
58
+ * Define a migration between two object schemas.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const migration = Migration.define({
63
+ * from: ContactV1,
64
+ * to: ContactV2,
65
+ * transform: async (from) => ({ name: `${from.firstName} ${from.lastName}` }),
66
+ * onMigration: async () => {},
67
+ * });
68
+ * ```
69
+ */
70
+ export declare const define: <From extends MigrationSchemaInput, To extends MigrationSchemaInput>(options: DefineObjectMigrationOptions<From, To>) => ObjectMigration;
71
+ export {};
72
+ //# sourceMappingURL=Migration.d.ts.map