@dxos/echo 0.8.4-main.67995b8 → 0.8.4-main.6fa680abb7

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 (504) hide show
  1. package/README.md +4 -5
  2. package/dist/lib/neutral/Annotation.mjs +37 -0
  3. package/dist/lib/neutral/Database.mjs +45 -0
  4. package/dist/lib/neutral/Entity.mjs +59 -0
  5. package/dist/lib/neutral/Entity.mjs.map +7 -0
  6. package/dist/lib/neutral/Err.mjs +12 -0
  7. package/dist/lib/neutral/Err.mjs.map +7 -0
  8. package/dist/lib/neutral/Feed.mjs +46 -0
  9. package/dist/lib/neutral/Feed.mjs.map +7 -0
  10. package/dist/lib/neutral/Filter.mjs +64 -0
  11. package/dist/lib/neutral/Filter.mjs.map +7 -0
  12. package/dist/lib/neutral/Format.mjs +66 -0
  13. package/dist/lib/neutral/Format.mjs.map +7 -0
  14. package/dist/lib/neutral/JsonSchema.mjs +19 -0
  15. package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
  16. package/dist/lib/neutral/Key.mjs +12 -0
  17. package/dist/lib/neutral/Key.mjs.map +7 -0
  18. package/dist/lib/neutral/Obj.mjs +110 -0
  19. package/dist/lib/neutral/Obj.mjs.map +7 -0
  20. package/dist/lib/neutral/Order.mjs +12 -0
  21. package/dist/lib/neutral/Order.mjs.map +7 -0
  22. package/dist/lib/neutral/Query.mjs +35 -0
  23. package/dist/lib/neutral/Query.mjs.map +7 -0
  24. package/dist/lib/neutral/QueryResult.mjs +2 -0
  25. package/dist/lib/neutral/QueryResult.mjs.map +7 -0
  26. package/dist/lib/neutral/Ref.mjs +24 -0
  27. package/dist/lib/neutral/Ref.mjs.map +7 -0
  28. package/dist/lib/neutral/Relation.mjs +93 -0
  29. package/dist/lib/neutral/Relation.mjs.map +7 -0
  30. package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
  31. package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
  32. package/dist/lib/neutral/Tag.mjs +28 -0
  33. package/dist/lib/neutral/Tag.mjs.map +7 -0
  34. package/dist/lib/neutral/Type.mjs +37 -0
  35. package/dist/lib/neutral/Type.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-2FK7XCDV.mjs +56 -0
  37. package/dist/lib/neutral/chunk-2FK7XCDV.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-2Z72D23W.mjs +787 -0
  39. package/dist/lib/neutral/chunk-2Z72D23W.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-35FDO7WH.mjs +396 -0
  41. package/dist/lib/neutral/chunk-35FDO7WH.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-4HWWKURH.mjs +34 -0
  43. package/dist/lib/neutral/chunk-4HWWKURH.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-7VLKWC6T.mjs +121 -0
  45. package/dist/lib/neutral/chunk-7VLKWC6T.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
  47. package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-B5OXLWZL.mjs +402 -0
  49. package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-BESZGRPL.mjs +299 -0
  51. package/dist/lib/neutral/chunk-BESZGRPL.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-BNCCGLJN.mjs +7 -0
  53. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-EK7UOJ3R.mjs +45 -0
  55. package/dist/lib/neutral/chunk-EK7UOJ3R.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-ETOQXZHC.mjs +130 -0
  57. package/dist/lib/neutral/chunk-ETOQXZHC.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-EV3A23AS.mjs +283 -0
  59. package/dist/lib/neutral/chunk-EV3A23AS.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-FUGL645K.mjs +313 -0
  61. package/dist/lib/neutral/chunk-FUGL645K.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-FZO7LQO7.mjs +73 -0
  63. package/dist/lib/neutral/chunk-FZO7LQO7.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  65. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-LDHKQDXR.mjs +27 -0
  67. package/dist/lib/neutral/chunk-LDHKQDXR.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-MFJPOZDU.mjs +2709 -0
  69. package/dist/lib/neutral/chunk-MFJPOZDU.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-OENWMTE6.mjs +45 -0
  71. package/dist/lib/neutral/chunk-OENWMTE6.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  73. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-PH5RST5U.mjs +298 -0
  75. package/dist/lib/neutral/chunk-PH5RST5U.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-PKD2L7XO.mjs +152 -0
  77. package/dist/lib/neutral/chunk-PKD2L7XO.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-QLALBCSA.mjs +97 -0
  79. package/dist/lib/neutral/chunk-QLALBCSA.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-QTUBE4DR.mjs +102 -0
  81. package/dist/lib/neutral/chunk-QTUBE4DR.mjs.map +7 -0
  82. package/dist/lib/neutral/chunk-SEMVAGBM.mjs +355 -0
  83. package/dist/lib/neutral/chunk-SEMVAGBM.mjs.map +7 -0
  84. package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
  85. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  86. package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
  87. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  88. package/dist/lib/neutral/chunk-WYOKA6AE.mjs +67 -0
  89. package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
  90. package/dist/lib/neutral/index.mjs +97 -0
  91. package/dist/lib/neutral/index.mjs.map +7 -0
  92. package/dist/lib/neutral/internal/index.mjs +470 -0
  93. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  94. package/dist/lib/neutral/meta.json +1 -0
  95. package/dist/lib/neutral/testing/index.mjs +373 -0
  96. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  97. package/dist/types/src/Annotation.d.ts +24 -0
  98. package/dist/types/src/Annotation.d.ts.map +1 -0
  99. package/dist/types/src/Collection.d.ts +16 -0
  100. package/dist/types/src/Collection.d.ts.map +1 -0
  101. package/dist/types/src/Database.d.ts +189 -0
  102. package/dist/types/src/Database.d.ts.map +1 -0
  103. package/dist/types/src/Dataset.d.ts +18 -0
  104. package/dist/types/src/Dataset.d.ts.map +1 -0
  105. package/dist/types/src/Entity.d.ts +168 -0
  106. package/dist/types/src/Entity.d.ts.map +1 -0
  107. package/dist/types/src/Entity.test.d.ts +2 -0
  108. package/dist/types/src/Entity.test.d.ts.map +1 -0
  109. package/dist/types/src/Err.d.ts +107 -0
  110. package/dist/types/src/Err.d.ts.map +1 -0
  111. package/dist/types/src/Feed.d.ts +165 -0
  112. package/dist/types/src/Feed.d.ts.map +1 -0
  113. package/dist/types/src/Filter.d.ts +120 -0
  114. package/dist/types/src/Filter.d.ts.map +1 -0
  115. package/dist/types/src/Format.d.ts +4 -0
  116. package/dist/types/src/Format.d.ts.map +1 -0
  117. package/dist/types/src/Hypergraph.d.ts +60 -0
  118. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  119. package/dist/types/src/JsonSchema.d.ts +16 -0
  120. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  121. package/dist/types/src/Key.d.ts +1 -0
  122. package/dist/types/src/Key.d.ts.map +1 -1
  123. package/dist/types/src/Obj.d.ts +457 -35
  124. package/dist/types/src/Obj.d.ts.map +1 -1
  125. package/dist/types/src/Obj.test.d.ts +2 -0
  126. package/dist/types/src/Obj.test.d.ts.map +1 -0
  127. package/dist/types/src/Order.d.ts +16 -0
  128. package/dist/types/src/Order.d.ts.map +1 -0
  129. package/dist/types/src/Query.d.ts +202 -0
  130. package/dist/types/src/Query.d.ts.map +1 -0
  131. package/dist/types/src/Query.test.d.ts +2 -0
  132. package/dist/types/src/Query.test.d.ts.map +1 -0
  133. package/dist/types/src/QueryResult.d.ts +80 -0
  134. package/dist/types/src/QueryResult.d.ts.map +1 -0
  135. package/dist/types/src/Ref.d.ts +61 -11
  136. package/dist/types/src/Ref.d.ts.map +1 -1
  137. package/dist/types/src/Relation.d.ts +291 -21
  138. package/dist/types/src/Relation.d.ts.map +1 -1
  139. package/dist/types/src/Relation.test.d.ts +2 -0
  140. package/dist/types/src/Relation.test.d.ts.map +1 -0
  141. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  142. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  143. package/dist/types/src/Tag.d.ts +18 -0
  144. package/dist/types/src/Tag.d.ts.map +1 -0
  145. package/dist/types/src/Type.d.ts +123 -100
  146. package/dist/types/src/Type.d.ts.map +1 -1
  147. package/dist/types/src/Type.test.d.ts +2 -0
  148. package/dist/types/src/Type.test.d.ts.map +1 -0
  149. package/dist/types/src/View.d.ts +68 -0
  150. package/dist/types/src/View.d.ts.map +1 -0
  151. package/dist/types/src/hierarchy.test.d.ts +2 -0
  152. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  153. package/dist/types/src/index.d.ts +19 -3
  154. package/dist/types/src/index.d.ts.map +1 -1
  155. package/dist/types/src/internal/Annotation/annotations.d.ts +230 -0
  156. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  157. package/dist/types/src/internal/Annotation/annotations.test.d.ts +2 -0
  158. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  159. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  160. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  161. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  162. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  163. package/dist/types/src/internal/Annotation/util.d.ts +39 -0
  164. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  165. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  166. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  167. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  168. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  169. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  170. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  171. package/dist/types/src/internal/Entity/model.d.ts +55 -0
  172. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  173. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  174. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  175. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  176. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  177. package/dist/types/src/internal/Entity/util.d.ts +2 -0
  178. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  179. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  180. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  181. package/dist/types/src/internal/Format/date.d.ts +63 -0
  182. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  183. package/dist/types/src/internal/Format/date.test.d.ts +2 -0
  184. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  185. package/dist/types/src/internal/Format/format.d.ts +32 -0
  186. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  187. package/dist/types/src/internal/Format/format.test.d.ts +2 -0
  188. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  189. package/dist/types/src/internal/Format/index.d.ts +8 -0
  190. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  191. package/dist/types/src/internal/Format/number.d.ts +31 -0
  192. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  193. package/dist/types/src/internal/Format/object.d.ts +35 -0
  194. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  195. package/dist/types/src/internal/Format/select.d.ts +13 -0
  196. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  197. package/dist/types/src/internal/Format/string.d.ts +42 -0
  198. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  199. package/dist/types/src/internal/Format/types.d.ts +72 -0
  200. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  201. package/dist/types/src/internal/JsonSchema/annotations.d.ts +19 -0
  202. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  203. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts +2 -0
  204. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  205. package/dist/types/src/internal/JsonSchema/index.d.ts +5 -0
  206. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  207. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts +7 -0
  208. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  209. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +351 -0
  210. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  211. package/dist/types/src/internal/JsonSchema/json-schema.d.ts +30 -0
  212. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  213. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts +2 -0
  214. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  215. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  216. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  217. package/dist/types/src/internal/Obj/common.d.ts +18 -0
  218. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  219. package/dist/types/src/internal/Obj/create-object.d.ts +39 -0
  220. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  221. package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
  222. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  223. package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
  224. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  225. package/dist/types/src/internal/Obj/ids.d.ts +6 -0
  226. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  227. package/dist/types/src/internal/Obj/index.d.ts +11 -0
  228. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  229. package/dist/types/src/internal/Obj/inspect.d.ts +2 -0
  230. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  231. package/dist/types/src/internal/Obj/json-serializer.d.ts +37 -0
  232. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  233. package/dist/types/src/internal/Obj/json-serializer.test.d.ts +2 -0
  234. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  235. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  236. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  237. package/dist/types/src/internal/Obj/schema-validator.test.d.ts +2 -0
  238. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  239. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  240. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  241. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  242. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  243. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  244. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  245. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  246. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  247. package/dist/types/src/internal/Obj/typed-object.test.d.ts +2 -0
  248. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  249. package/dist/types/src/internal/Ref/index.d.ts +3 -0
  250. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  251. package/dist/types/src/internal/Ref/ref-array.d.ts +21 -0
  252. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  253. package/dist/types/src/internal/Ref/ref.d.ts +231 -0
  254. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  255. package/dist/types/src/internal/Ref/ref.test.d.ts +2 -0
  256. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  257. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  258. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  259. package/dist/types/src/internal/Type/compose.test.d.ts +2 -0
  260. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  261. package/dist/types/src/internal/Type/echo-schema.d.ts +181 -0
  262. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  263. package/dist/types/src/internal/Type/index.d.ts +4 -0
  264. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  265. package/dist/types/src/internal/Type/manipulation.d.ts +10 -0
  266. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  267. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  268. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  269. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  270. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  272. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  273. package/dist/types/src/internal/common/index.d.ts +4 -0
  274. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  275. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  276. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  277. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  278. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  280. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  281. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  282. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  283. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  284. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  285. package/dist/types/src/internal/common/proxy/handler.test.d.ts +2 -0
  286. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  287. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  288. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  289. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  290. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  291. package/dist/types/src/internal/common/proxy/make-object.d.ts +14 -0
  292. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  293. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  294. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  295. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  296. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  297. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  298. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  299. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  300. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  301. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  302. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  303. package/dist/types/src/internal/common/proxy/schema-validator.d.ts +15 -0
  304. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  305. package/dist/types/src/internal/common/proxy/schema.test.d.ts +2 -0
  306. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  307. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  308. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  309. package/dist/types/src/internal/common/proxy/typed-handler.d.ts +48 -0
  310. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  311. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts +2 -0
  312. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  313. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts +2 -0
  314. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  315. package/dist/types/src/internal/common/types/base.d.ts +27 -0
  316. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  317. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  318. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  319. package/dist/types/src/internal/common/types/index.d.ts +7 -0
  320. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  321. package/dist/types/src/internal/common/types/meta.d.ts +33 -0
  322. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  323. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  324. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  325. package/dist/types/src/internal/common/types/typename.d.ts +21 -0
  326. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  327. package/dist/types/src/internal/common/types/version.d.ts +15 -0
  328. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  329. package/dist/types/src/internal/index.d.ts +10 -0
  330. package/dist/types/src/internal/index.d.ts.map +1 -0
  331. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  332. package/dist/types/src/testing/index.d.ts +3 -1
  333. package/dist/types/src/testing/index.d.ts.map +1 -1
  334. package/dist/types/src/testing/test-data.d.ts +18 -0
  335. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  336. package/dist/types/src/testing/test-schema.d.ts +304 -0
  337. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  338. package/dist/types/src/testing/util.d.ts +21 -0
  339. package/dist/types/src/testing/util.d.ts.map +1 -0
  340. package/dist/types/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +112 -59
  342. package/src/Annotation.ts +48 -0
  343. package/src/Collection.ts +32 -0
  344. package/src/Database.ts +317 -0
  345. package/src/Dataset.ts +26 -0
  346. package/src/Entity.test.ts +22 -0
  347. package/src/Entity.ts +237 -0
  348. package/src/Err.ts +40 -0
  349. package/src/Feed.ts +257 -0
  350. package/src/Filter.ts +391 -0
  351. package/src/Format.ts +9 -0
  352. package/src/Hypergraph.ts +74 -0
  353. package/src/JsonSchema.ts +26 -0
  354. package/src/Key.ts +3 -0
  355. package/src/Obj.test.ts +447 -0
  356. package/src/Obj.ts +644 -78
  357. package/src/Order.ts +46 -0
  358. package/src/Query.test.ts +632 -0
  359. package/src/Query.ts +522 -0
  360. package/src/QueryResult.ts +106 -0
  361. package/src/Ref.ts +78 -9
  362. package/src/Relation.test.ts +88 -0
  363. package/src/Relation.ts +449 -52
  364. package/src/SchemaRegistry.ts +106 -0
  365. package/src/Tag.ts +41 -0
  366. package/src/Type.test.ts +52 -0
  367. package/src/Type.ts +168 -153
  368. package/src/View.ts +102 -0
  369. package/src/hierarchy.test.ts +33 -0
  370. package/src/index.ts +21 -4
  371. package/src/internal/Annotation/annotations.test.ts +96 -0
  372. package/src/internal/Annotation/annotations.ts +571 -0
  373. package/src/internal/Annotation/index.ts +7 -0
  374. package/src/internal/Annotation/sorting.ts +52 -0
  375. package/src/internal/Annotation/util.ts +85 -0
  376. package/src/internal/Entity/api.ts +31 -0
  377. package/src/internal/Entity/entity.ts +128 -0
  378. package/src/internal/Entity/index.ts +11 -0
  379. package/src/internal/Entity/model.ts +109 -0
  380. package/src/internal/Entity/object.ts +58 -0
  381. package/src/internal/Entity/relation.ts +154 -0
  382. package/src/internal/Entity/util.ts +33 -0
  383. package/src/internal/Entity/version.ts +97 -0
  384. package/src/internal/Format/date.test.ts +56 -0
  385. package/src/internal/Format/date.ts +217 -0
  386. package/src/internal/Format/format.test.ts +77 -0
  387. package/src/internal/Format/format.ts +54 -0
  388. package/src/internal/Format/index.ts +12 -0
  389. package/src/internal/Format/number.ts +89 -0
  390. package/src/internal/Format/object.ts +80 -0
  391. package/src/internal/Format/select.ts +18 -0
  392. package/src/internal/Format/string.ts +81 -0
  393. package/src/internal/Format/types.ts +186 -0
  394. package/src/internal/JsonSchema/annotations.ts +50 -0
  395. package/src/internal/JsonSchema/effect-schema.test.ts +143 -0
  396. package/src/internal/JsonSchema/index.ts +8 -0
  397. package/src/internal/JsonSchema/json-schema-normalize.ts +111 -0
  398. package/src/internal/JsonSchema/json-schema-type.ts +403 -0
  399. package/src/internal/JsonSchema/json-schema.test.ts +861 -0
  400. package/src/internal/JsonSchema/json-schema.ts +534 -0
  401. package/src/internal/Obj/clone.ts +48 -0
  402. package/src/internal/Obj/common.ts +75 -0
  403. package/src/internal/Obj/create-object.test.ts +116 -0
  404. package/src/internal/Obj/create-object.ts +95 -0
  405. package/src/internal/Obj/deleted.ts +19 -0
  406. package/src/internal/Obj/ids.ts +12 -0
  407. package/src/internal/Obj/index.ts +14 -0
  408. package/src/internal/Obj/inspect.ts +46 -0
  409. package/src/internal/Obj/json-serializer.test.ts +121 -0
  410. package/src/internal/Obj/json-serializer.ts +204 -0
  411. package/src/internal/Obj/schema-validator.test.ts +182 -0
  412. package/src/internal/Obj/schema-validator.ts +6 -0
  413. package/src/internal/Obj/set-value.test.ts +281 -0
  414. package/src/internal/Obj/set-value.ts +165 -0
  415. package/src/internal/Obj/snapshot.ts +105 -0
  416. package/src/internal/Obj/typed-object.test.ts +34 -0
  417. package/src/internal/Obj/typed-object.ts +30 -0
  418. package/src/internal/Ref/index.ts +6 -0
  419. package/src/internal/Ref/ref-array.ts +39 -0
  420. package/src/internal/Ref/ref.test.ts +101 -0
  421. package/src/internal/Ref/ref.ts +572 -0
  422. package/src/internal/Type/compose.test.ts +42 -0
  423. package/src/internal/Type/compose.ts +41 -0
  424. package/src/internal/Type/echo-schema.ts +424 -0
  425. package/src/internal/Type/index.ts +7 -0
  426. package/src/internal/Type/manipulation.ts +92 -0
  427. package/src/internal/Type/persistent-schema.ts +33 -0
  428. package/src/internal/common/README.md +102 -0
  429. package/src/internal/common/api/index.ts +15 -0
  430. package/src/internal/common/api/meta.ts +88 -0
  431. package/src/internal/common/index.ts +7 -0
  432. package/src/internal/common/proxy/change-context.ts +138 -0
  433. package/src/internal/common/proxy/change.test.ts +519 -0
  434. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  435. package/src/internal/common/proxy/errors.ts +42 -0
  436. package/src/internal/common/proxy/event-batch.ts +44 -0
  437. package/src/internal/common/proxy/handler.test.ts +123 -0
  438. package/src/internal/common/proxy/index.ts +17 -0
  439. package/src/internal/common/proxy/json-serializer.ts +90 -0
  440. package/src/internal/common/proxy/make-object.ts +106 -0
  441. package/src/internal/common/proxy/ownership.ts +253 -0
  442. package/src/internal/common/proxy/proxy-types.ts +23 -0
  443. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  444. package/src/internal/common/proxy/reactive-array.ts +71 -0
  445. package/src/internal/common/proxy/reactive.ts +69 -0
  446. package/src/internal/common/proxy/schema-validator.ts +244 -0
  447. package/src/internal/common/proxy/schema.test.ts +145 -0
  448. package/src/internal/common/proxy/symbols.ts +7 -0
  449. package/src/internal/common/proxy/typed-handler.test.ts +314 -0
  450. package/src/internal/common/proxy/typed-handler.ts +449 -0
  451. package/src/internal/common/proxy/typed-object.test.ts +116 -0
  452. package/src/internal/common/types/base.ts +43 -0
  453. package/src/internal/common/types/entity.ts +54 -0
  454. package/src/internal/common/types/index.ts +10 -0
  455. package/src/internal/common/types/meta.ts +68 -0
  456. package/src/internal/common/types/model-symbols.ts +69 -0
  457. package/src/internal/common/types/typename.ts +55 -0
  458. package/src/internal/common/types/version.ts +19 -0
  459. package/src/internal/index.ts +16 -0
  460. package/src/testing/api.test.ts +126 -0
  461. package/src/testing/index.ts +3 -1
  462. package/src/testing/test-data.ts +130 -0
  463. package/src/testing/test-schema.ts +240 -0
  464. package/src/testing/util.ts +85 -0
  465. package/dist/lib/browser/chunk-EUA7CM23.mjs +0 -619
  466. package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
  467. package/dist/lib/browser/index.mjs +0 -22
  468. package/dist/lib/browser/meta.json +0 -1
  469. package/dist/lib/browser/testing/index.mjs +0 -70
  470. package/dist/lib/browser/testing/index.mjs.map +0 -7
  471. package/dist/lib/node-esm/chunk-IV6BWGHK.mjs +0 -619
  472. package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
  473. package/dist/lib/node-esm/index.mjs +0 -22
  474. package/dist/lib/node-esm/meta.json +0 -1
  475. package/dist/lib/node-esm/testing/index.mjs +0 -70
  476. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  477. package/dist/types/src/experimental/database.d.ts +0 -8
  478. package/dist/types/src/experimental/database.d.ts.map +0 -1
  479. package/dist/types/src/experimental/index.d.ts +0 -1
  480. package/dist/types/src/experimental/index.d.ts.map +0 -1
  481. package/dist/types/src/experimental/queue.d.ts +0 -8
  482. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  483. package/dist/types/src/experimental/space.d.ts +0 -8
  484. package/dist/types/src/experimental/space.d.ts.map +0 -1
  485. package/dist/types/src/query/dsl.d.ts +0 -218
  486. package/dist/types/src/query/dsl.d.ts.map +0 -1
  487. package/dist/types/src/query/dsl.test.d.ts +0 -2
  488. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  489. package/dist/types/src/query/index.d.ts +0 -2
  490. package/dist/types/src/query/index.d.ts.map +0 -1
  491. package/dist/types/src/testing/types.d.ts +0 -113
  492. package/dist/types/src/testing/types.d.ts.map +0 -1
  493. package/src/experimental/database.ts +0 -11
  494. package/src/experimental/index.ts +0 -7
  495. package/src/experimental/queue.ts +0 -11
  496. package/src/experimental/space.ts +0 -11
  497. package/src/query/dsl.test.ts +0 -323
  498. package/src/query/dsl.ts +0 -646
  499. package/src/query/index.ts +0 -5
  500. package/src/test/api.test.ts +0 -173
  501. package/src/testing/types.ts +0 -91
  502. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  503. /package/dist/lib/{node-esm/index.mjs.map → neutral/Database.mjs.map} +0 -0
  504. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
@@ -0,0 +1,299 @@
1
+ import {
2
+ isRef
3
+ } from "./chunk-EK7UOJ3R.mjs";
4
+ import {
5
+ getTypeDXNFromSpecifier
6
+ } from "./chunk-SEMVAGBM.mjs";
7
+ import {
8
+ __export
9
+ } from "./chunk-J5LGTIGS.mjs";
10
+
11
+ // src/Filter.ts
12
+ var Filter_exports = {};
13
+ __export(Filter_exports, {
14
+ and: () => and,
15
+ between: () => between,
16
+ contains: () => contains,
17
+ eq: () => eq,
18
+ everything: () => everything,
19
+ foreignKeys: () => foreignKeys,
20
+ fromAst: () => fromAst,
21
+ gt: () => gt,
22
+ gte: () => gte,
23
+ id: () => id,
24
+ in: () => in$,
25
+ is: () => is,
26
+ lt: () => lt,
27
+ lte: () => lte,
28
+ neq: () => neq,
29
+ not: () => not,
30
+ nothing: () => nothing,
31
+ or: () => or,
32
+ props: () => props,
33
+ tag: () => tag,
34
+ text: () => text,
35
+ type: () => type,
36
+ typeDXN: () => typeDXN,
37
+ typename: () => typename
38
+ });
39
+ import * as Match from "effect/Match";
40
+ import * as Schema from "effect/Schema";
41
+ import * as SchemaAST from "effect/SchemaAST";
42
+ import { assertArgument } from "@dxos/invariant";
43
+ import { DXN, ObjectId } from "@dxos/keys";
44
+ var FilterClass = class _FilterClass {
45
+ ast;
46
+ static "variance" = {};
47
+ constructor(ast) {
48
+ this.ast = ast;
49
+ }
50
+ "~Filter" = _FilterClass.variance;
51
+ };
52
+ var is = (value2) => {
53
+ return typeof value2 === "object" && value2 !== null && "~Filter" in value2;
54
+ };
55
+ var fromAst = (ast) => {
56
+ return new FilterClass(ast);
57
+ };
58
+ var everything = () => {
59
+ return new FilterClass({
60
+ type: "object",
61
+ typename: null,
62
+ props: {}
63
+ });
64
+ };
65
+ var nothing = () => {
66
+ return new FilterClass({
67
+ type: "not",
68
+ filter: {
69
+ type: "object",
70
+ typename: null,
71
+ props: {}
72
+ }
73
+ });
74
+ };
75
+ var id = (...ids) => {
76
+ assertArgument(ids.every((id2) => ObjectId.isValid(id2)), "ids", "ids must be valid");
77
+ if (ids.length === 0) {
78
+ return nothing();
79
+ }
80
+ return new FilterClass({
81
+ type: "object",
82
+ typename: null,
83
+ id: ids,
84
+ props: {}
85
+ });
86
+ };
87
+ var type = (schema, props2) => {
88
+ if (Schema.isSchema(schema) && SchemaAST.isUnion(schema.ast)) {
89
+ const typenames = schema.ast.types.map((type2) => getTypeDXNFromSpecifier(Schema.make(type2)));
90
+ return new FilterClass({
91
+ type: "or",
92
+ filters: typenames.map((typename2) => ({
93
+ type: "object",
94
+ typename: typename2.toString(),
95
+ props: {}
96
+ }))
97
+ });
98
+ }
99
+ const dxn = getTypeDXNFromSpecifier(schema);
100
+ return new FilterClass({
101
+ type: "object",
102
+ typename: dxn.toString(),
103
+ ...propsFilterToAst(props2 ?? {})
104
+ });
105
+ };
106
+ var typename = (typename2) => {
107
+ assertArgument(!typename2.startsWith("dxn:"), "typename", "Typename must no be qualified");
108
+ return new FilterClass({
109
+ type: "object",
110
+ typename: DXN.fromTypename(typename2).toString(),
111
+ props: {}
112
+ });
113
+ };
114
+ var typeDXN = (dxn) => {
115
+ return new FilterClass({
116
+ type: "object",
117
+ typename: dxn.toString(),
118
+ props: {}
119
+ });
120
+ };
121
+ var tag = (tag2) => {
122
+ return new FilterClass({
123
+ type: "tag",
124
+ tag: tag2
125
+ });
126
+ };
127
+ var props = (props2) => {
128
+ return new FilterClass({
129
+ type: "object",
130
+ typename: null,
131
+ ...propsFilterToAst(props2)
132
+ });
133
+ };
134
+ var text = (text2, options) => {
135
+ return new FilterClass({
136
+ type: "text-search",
137
+ text: text2,
138
+ searchKind: options?.type
139
+ });
140
+ };
141
+ var foreignKeys = (schema, keys) => {
142
+ const dxn = getTypeDXNFromSpecifier(schema);
143
+ return new FilterClass({
144
+ type: "object",
145
+ typename: dxn.toString(),
146
+ props: {},
147
+ foreignKeys: keys
148
+ });
149
+ };
150
+ var eq = (value2) => {
151
+ if (!isRef(value2) && typeof value2 === "object" && value2 !== null) {
152
+ throw new TypeError("Cannot use object as a value for eq filter");
153
+ }
154
+ return new FilterClass({
155
+ type: "compare",
156
+ operator: "eq",
157
+ value: isRef(value2) ? value2.noInline().encode() : value2
158
+ });
159
+ };
160
+ var neq = (value2) => {
161
+ return new FilterClass({
162
+ type: "compare",
163
+ operator: "neq",
164
+ value: value2
165
+ });
166
+ };
167
+ var gt = (value2) => {
168
+ return new FilterClass({
169
+ type: "compare",
170
+ operator: "gt",
171
+ value: value2
172
+ });
173
+ };
174
+ var gte = (value2) => {
175
+ return new FilterClass({
176
+ type: "compare",
177
+ operator: "gte",
178
+ value: value2
179
+ });
180
+ };
181
+ var lt = (value2) => {
182
+ return new FilterClass({
183
+ type: "compare",
184
+ operator: "lt",
185
+ value: value2
186
+ });
187
+ };
188
+ var lte = (value2) => {
189
+ return new FilterClass({
190
+ type: "compare",
191
+ operator: "lte",
192
+ value: value2
193
+ });
194
+ };
195
+ var in$ = (...values) => {
196
+ return new FilterClass({
197
+ type: "in",
198
+ values
199
+ });
200
+ };
201
+ var contains = (value2) => {
202
+ return new FilterClass({
203
+ type: "contains",
204
+ value: value2
205
+ });
206
+ };
207
+ var between = (from, to) => {
208
+ return new FilterClass({
209
+ type: "range",
210
+ from,
211
+ to
212
+ });
213
+ };
214
+ var not = (filter) => {
215
+ return new FilterClass({
216
+ type: "not",
217
+ filter: filter.ast
218
+ });
219
+ };
220
+ var and = (...filters) => {
221
+ return new FilterClass({
222
+ type: "and",
223
+ filters: filters.map((f) => f.ast)
224
+ });
225
+ };
226
+ var or = (...filters) => {
227
+ return new FilterClass({
228
+ type: "or",
229
+ filters: filters.map((f) => f.ast)
230
+ });
231
+ };
232
+ var propsFilterToAst = (predicates) => {
233
+ let idFilter;
234
+ if ("id" in predicates) {
235
+ assertArgument(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
236
+ idFilter = typeof predicates.id === "string" ? [
237
+ predicates.id
238
+ ] : predicates.id;
239
+ Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);
240
+ }
241
+ return {
242
+ id: idFilter,
243
+ props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
244
+ prop,
245
+ processPredicate(predicate)
246
+ ]))
247
+ };
248
+ };
249
+ var processPredicate = (predicate) => {
250
+ return Match.value(predicate).pipe(
251
+ Match.withReturnType(),
252
+ Match.when(is, (predicate2) => predicate2.ast),
253
+ // TODO(wittjosiah): Add support for array predicates.
254
+ Match.when(Array.isArray, (_predicate) => {
255
+ throw new Error("Array predicates are not yet supported.");
256
+ }),
257
+ Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
258
+ const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value2]) => [
259
+ key,
260
+ processPredicate(value2)
261
+ ]));
262
+ return {
263
+ type: "object",
264
+ typename: null,
265
+ props: nestedProps
266
+ };
267
+ }),
268
+ Match.orElse((value2) => eq(value2).ast)
269
+ );
270
+ };
271
+
272
+ export {
273
+ is,
274
+ fromAst,
275
+ everything,
276
+ nothing,
277
+ id,
278
+ type,
279
+ typename,
280
+ typeDXN,
281
+ tag,
282
+ props,
283
+ text,
284
+ foreignKeys,
285
+ eq,
286
+ neq,
287
+ gt,
288
+ gte,
289
+ lt,
290
+ lte,
291
+ in$,
292
+ contains,
293
+ between,
294
+ not,
295
+ and,
296
+ or,
297
+ Filter_exports
298
+ };
299
+ //# sourceMappingURL=chunk-BESZGRPL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Filter.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Match from 'effect/Match';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\nimport type * as Types from 'effect/Types';\n\nimport { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';\nimport { assertArgument } from '@dxos/invariant';\nimport { DXN, ObjectId } from '@dxos/keys';\n\nimport * as internal from './internal';\nimport * as Ref from './Ref';\n\nexport interface Filter<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Filter': { value: Types.Contravariant<T> };\n\n ast: QueryAST.Filter;\n}\n\nexport type Props<T> = {\n // Predicate or a value as a shorthand for `eq`.\n [K in keyof T & string]?: Filter<T[K]> | T[K];\n};\n\nexport type Any = Filter<any>;\n\nexport type Type<F extends Any> = F extends Filter<infer T> ? T : never;\n\nclass FilterClass implements Any {\n private static 'variance': Any['~Filter'] = {} as Any['~Filter'];\n\n constructor(public readonly ast: QueryAST.Filter) {}\n\n '~Filter' = FilterClass.variance;\n}\n\nexport const is = (value: unknown): value is Any => {\n return typeof value === 'object' && value !== null && '~Filter' in value;\n};\n\n/** Construct a filter from an ast. */\nexport const fromAst = (ast: QueryAST.Filter): Any => {\n return new FilterClass(ast);\n};\n\n/**\n * Filter that matches all objects.\n */\n// TODO(dmaretskyi): `Entity.Any` would be more type-safe, but causes annoying errors in existing code\nexport const everything = (): FilterClass => {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n};\n\n/**\n * Filter that matches no objects.\n */\nexport const nothing = (): FilterClass => {\n return new FilterClass({\n type: 'not',\n filter: {\n type: 'object',\n typename: null,\n props: {},\n },\n });\n};\n\n/*\n * Filter by ObjectId.\n */\nexport const id = (...ids: ObjectId[]): Any => {\n assertArgument(\n ids.every((id) => ObjectId.isValid(id)),\n 'ids',\n 'ids must be valid',\n );\n\n if (ids.length === 0) {\n return nothing();\n }\n\n return new FilterClass({\n type: 'object',\n typename: null,\n id: ids,\n props: {},\n });\n};\n\n/**\n * Filter by type.\n */\nexport const type = <S extends Schema.Schema.All>(\n schema: S | string,\n props?: Props<Schema.Schema.Type<S>>,\n): Filter<Schema.Schema.Type<S>> => {\n if (Schema.isSchema(schema) && SchemaAST.isUnion(schema.ast)) {\n const typenames = schema.ast.types.map((type) => internal.getTypeDXNFromSpecifier(Schema.make(type)));\n return new FilterClass({\n type: 'or',\n filters: typenames.map((typename) => ({\n type: 'object',\n typename: typename.toString(),\n props: {},\n })),\n });\n }\n\n const dxn = internal.getTypeDXNFromSpecifier(schema);\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n ...propsFilterToAst(props ?? {}),\n });\n};\n\n/**\n * Filter by non-qualified typename.\n */\nexport const typename = (typename: string): Any => {\n assertArgument(!typename.startsWith('dxn:'), 'typename', 'Typename must no be qualified');\n return new FilterClass({\n type: 'object',\n typename: DXN.fromTypename(typename).toString(),\n props: {},\n });\n};\n\n/**\n * Filter by fully qualified type DXN.\n */\nexport const typeDXN = (dxn: DXN): Any => {\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n props: {},\n });\n};\n\n/**\n * Filter by tag.\n */\nexport const tag = (tag: string): Any => {\n return new FilterClass({\n type: 'tag',\n tag,\n });\n};\n\n/**\n * Filter by properties.\n */\nexport const props = <T>(props: Props<T>): Filter<T> => {\n return new FilterClass({\n type: 'object',\n typename: null,\n ...propsFilterToAst(props),\n });\n};\n\nexport type TextSearchOptions = {\n // TODO(dmaretskyi): Hybrid search.\n type?: 'full-text' | 'vector';\n};\n\n/**\n * Full-text or vector search.\n */\nexport const text = (\n // TODO(dmaretskyi): Consider passing a vector here, but really the embedding should be done on the query-executor side.\n text: string,\n options?: TextSearchOptions,\n): Any => {\n return new FilterClass({\n type: 'text-search',\n text,\n searchKind: options?.type,\n });\n};\n\n/**\n * Filter by foreign keys.\n */\nexport const foreignKeys = <S extends Schema.Schema.All>(\n schema: S | string,\n keys: ForeignKey[],\n): Filter<Schema.Schema.Type<S>> => {\n const dxn = internal.getTypeDXNFromSpecifier(schema);\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n props: {},\n foreignKeys: keys,\n });\n};\n\n/**\n * Predicate for property to be equal to the provided value.\n */\nexport const eq = <T>(value: T): Filter<T | undefined> => {\n if (!Ref.isRef(value) && typeof value === 'object' && value !== null) {\n throw new TypeError('Cannot use object as a value for eq filter');\n }\n\n return new FilterClass({\n type: 'compare',\n operator: 'eq',\n value: Ref.isRef(value) ? value.noInline().encode() : value,\n });\n};\n\n/**\n * Predicate for property to be not equal to the provided value.\n */\nexport const neq = <T>(value: T): Filter<T | undefined> => {\n return new FilterClass({\n type: 'compare',\n operator: 'neq',\n value,\n });\n};\n\n/**\n * Predicate for property to be greater than the provided value.\n */\nexport const gt = <T>(value: T): Filter<T | undefined> => {\n return new FilterClass({\n type: 'compare',\n operator: 'gt',\n value,\n });\n};\n\n/**\n * Predicate for property to be greater than or equal to the provided value.\n */\nexport const gte = <T>(value: T): Filter<T | undefined> => {\n return new FilterClass({\n type: 'compare',\n operator: 'gte',\n value,\n });\n};\n\n/**\n * Predicate for property to be less than the provided value.\n */\nexport const lt = <T>(value: T): Filter<T | undefined> => {\n return new FilterClass({\n type: 'compare',\n operator: 'lt',\n value,\n });\n};\n\n/**\n * Predicate for property to be less than or equal to the provided value.\n */\nexport const lte = <T>(value: T): Filter<T | undefined> => {\n return new FilterClass({\n type: 'compare',\n operator: 'lte',\n value,\n });\n};\n\n/**\n * Predicate for property to be in the provided array.\n * @param values - Values to check against.\n */\nconst in$ = <T>(...values: T[]): Filter<T | undefined> => {\n return new FilterClass({\n type: 'in',\n values,\n });\n};\nexport { in$ as in };\n\n/**\n * Predicate for an array property to contain the provided value.\n * @param value - Value to check against.\n */\nexport const contains = <T>(value: T): Filter<readonly T[] | undefined> => {\n return new FilterClass({\n type: 'contains',\n value,\n });\n};\n\n/**\n * Predicate for property to be in the provided range.\n * @param from - Start of the range (inclusive).\n * @param to - End of the range (exclusive).\n */\nexport const between = <T>(from: T, to: T): Filter<unknown> => {\n return new FilterClass({\n type: 'range',\n from,\n to,\n });\n};\n\n/**\n * Negate the filter.\n */\nexport const not = <F extends Any>(filter: F): Filter<Type<F>> => {\n return new FilterClass({\n type: 'not',\n filter: filter.ast,\n });\n};\n\n/**\n * Combine filters with a logical AND.\n */\nexport const and = <Filters extends readonly Any[]>(...filters: Filters): Filter<Type<Filters[number]>> => {\n return new FilterClass({\n type: 'and',\n filters: filters.map((f) => f.ast),\n });\n};\n\n/**\n * Combine filters with a logical OR.\n */\nexport const or = <Filters extends readonly Any[]>(...filters: Filters): Filter<Type<Filters[number]>> => {\n return new FilterClass({\n type: 'or',\n filters: filters.map((f) => f.ast),\n });\n};\n\n// TODO(dmaretskyi): Add `Filter.match` to support pattern matching on string props.\n\nconst propsFilterToAst = (predicates: Props<any>): Pick<QueryAST.FilterObject, 'id' | 'props'> => {\n let idFilter: readonly ObjectId[] | undefined;\n if ('id' in predicates) {\n assertArgument(\n typeof predicates.id === 'string' || Array.isArray(predicates.id),\n 'predicates.id',\n 'invalid id filter',\n );\n idFilter = typeof predicates.id === 'string' ? [predicates.id] : predicates.id;\n Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);\n }\n\n return {\n id: idFilter,\n props: Object.fromEntries(\n Object.entries(predicates)\n .filter(([prop, _value]) => prop !== 'id')\n .map(([prop, predicate]) => [prop, processPredicate(predicate)]),\n ) as Record<string, QueryAST.Filter>,\n };\n};\n\nconst processPredicate = (predicate: any): QueryAST.Filter => {\n return Match.value(predicate).pipe(\n Match.withReturnType<QueryAST.Filter>(),\n Match.when(is, (predicate) => predicate.ast),\n // TODO(wittjosiah): Add support for array predicates.\n Match.when(Array.isArray, (_predicate) => {\n throw new Error('Array predicates are not yet supported.');\n }),\n Match.when(\n (predicate: any) => !Ref.isRef(predicate) && typeof predicate === 'object' && predicate !== null,\n (predicate) => {\n const nestedProps = Object.fromEntries(\n Object.entries(predicate).map(([key, value]) => [key, processPredicate(value)]),\n );\n\n return {\n type: 'object',\n typename: null,\n props: nestedProps,\n };\n },\n ),\n Match.orElse((value) => eq(value).ast),\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Match", "Schema", "SchemaAST", "assertArgument", "DXN", "ObjectId", "FilterClass", "ast", "variance", "is", "value", "fromAst", "everything", "type", "typename", "props", "nothing", "filter", "id", "ids", "assertArgument", "every", "ObjectId", "isValid", "length", "schema", "isSchema", "isUnion", "typenames", "types", "map", "getTypeDXNFromSpecifier", "make", "filters", "toString", "dxn", "propsFilterToAst", "startsWith", "DXN", "fromTypename", "typeDXN", "tag", "text", "options", "searchKind", "foreignKeys", "keys", "eq", "isRef", "TypeError", "operator", "noInline", "encode", "neq", "gt", "gte", "lt", "lte", "in$", "values", "contains", "value", "FilterClass", "type", "between", "from", "to", "not", "filter", "ast", "and", "filters", "map", "f", "or", "propsFilterToAst", "predicates", "idFilter", "assertArgument", "id", "Array", "isArray", "Schema", "ObjectId", "pipe", "validateSync", "props", "Object", "fromEntries", "entries", "prop", "_value", "predicate", "processPredicate", "withReturnType", "when", "is", "_predicate", "Error", "isRef", "nestedProps", "key", "typename", "orElse", "eq"]
7
+ }
@@ -0,0 +1,7 @@
1
+ // src/SchemaRegistry.ts
2
+ var SchemaRegistry_exports = {};
3
+
4
+ export {
5
+ SchemaRegistry_exports
6
+ };
7
+ //# sourceMappingURL=chunk-BNCCGLJN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/SchemaRegistry.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Types from 'effect/Types';\n\nimport type * as JsonSchema from './JsonSchema';\nimport type * as Key from './Key';\nimport type * as QueryResult from './QueryResult';\nimport type * as Type from './Type';\n\n// TODO(wittjosiah): Replace w/ Query.Query.\nexport type Query = {\n /**\n * Filter by schema ID.\n * Schema id is a DXN with `echo` or `type` kind.\n */\n id?: string | string[];\n\n /**\n * Id of the backing ECHO object.\n */\n backingObjectId?: Key.ObjectId | Key.ObjectId[];\n\n /**\n * One or more typenames to filter by.\n */\n typename?: string | string[];\n\n /**\n * [Semver Range](https://docs.npmjs.com/cli/v6/using-npm/semver#ranges) for the schema version.\n */\n version?: string;\n\n /**\n * Where to look for the schema.\n *\n * Database schema are stored in the database of the current space.\n * Runtime schema are registered in the runtime.\n *\n * @default ['database']\n */\n location?: ('database' | 'runtime')[];\n\n /**\n * Include system schemas.\n * @default false\n *\n * The system schema include but are not limited to:\n * - org.dxos.type.schema\n */\n includeSystem?: boolean;\n};\n\n/**\n * Input for schema registration.\n * The typename, version and schema mutability metadata is read from the schema annotations.\n *\n * Accepts:\n * - Branded ECHO schemas created with Type.Obj() or Type.Relation()\n * - JSON schema with typename and version\n */\nexport type RegisterSchemaInput =\n | Type.AnyEntity\n | {\n typename: string;\n version: string;\n jsonSchema: JsonSchema.JsonSchema;\n /**\n * Display name of the schema.\n */\n name?: string;\n };\n\nexport type ExtractQueryResult<Query> = Query extends { location: ('database' | 'runtime')[] }\n ? Type.AnyEntity\n : Type.RuntimeType;\n\n// TODO(dmaretskyi): Rename TypeRegistry\nexport interface SchemaRegistry {\n /**\n * Checks if the provided schema is registered.\n */\n // TODO(burdon): Type?\n hasSchema(schema: Type.AnyEntity): boolean;\n\n /**\n * Registers the provided schema.\n *\n * @returns Mutable runtime instances of schemas that were registered.\n *\n * The behavior of this method depends on the state of the database.\n * The general principle is that the schema will be upserted into the space.\n * If an equivalent schema with the same name and version already exists, the method does nothing.\n * If a different schema with the same name and version exists, the method throws an error.\n * If no schema with the same name and version exists, a new schema will be inserted based on semantic versioning rules.\n */\n register(input: RegisterSchemaInput[]): Promise<Type.RuntimeType[]>;\n\n /**\n *\n */\n query<Q extends Types.NoExcessProperties<Query, Q>>(\n query?: Q & Query,\n ): QueryResult.QueryResult<ExtractQueryResult<Q>>;\n}\n"],
5
+ "mappings": ";AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,45 @@
1
+ import {
2
+ RefArray
3
+ } from "./chunk-4HWWKURH.mjs";
4
+ import {
5
+ Ref,
6
+ getSchemaReference
7
+ } from "./chunk-35FDO7WH.mjs";
8
+ import {
9
+ __export
10
+ } from "./chunk-J5LGTIGS.mjs";
11
+
12
+ // src/Ref.ts
13
+ var Ref_exports = {};
14
+ __export(Ref_exports, {
15
+ Array: () => Array,
16
+ Ref: () => Ref2,
17
+ fromDXN: () => fromDXN,
18
+ isRef: () => isRef,
19
+ isRefType: () => isRefType,
20
+ make: () => make
21
+ });
22
+ import * as Option from "effect/Option";
23
+ import * as SchemaAST from "effect/SchemaAST";
24
+ var Ref2 = Ref;
25
+ var Array = RefArray;
26
+ var isRef = Ref.isRef;
27
+ var make = Ref.make;
28
+ var fromDXN = Ref.fromDXN;
29
+ var isRefType = (ast) => {
30
+ return SchemaAST.getAnnotation(ast, SchemaAST.JSONSchemaAnnotationId).pipe(Option.flatMap((jsonSchema) => "$id" in jsonSchema ? Option.some(jsonSchema) : Option.none()), Option.flatMap((jsonSchema) => {
31
+ const { typename } = getSchemaReference(jsonSchema) ?? {};
32
+ return typename ? Option.some(true) : Option.some(false);
33
+ }), Option.getOrElse(() => false));
34
+ };
35
+
36
+ export {
37
+ Ref2 as Ref,
38
+ Array,
39
+ isRef,
40
+ make,
41
+ fromDXN,
42
+ isRefType,
43
+ Ref_exports
44
+ };
45
+ //# sourceMappingURL=chunk-EK7UOJ3R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Ref.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport type * as Entity from './Entity';\nimport * as refInternal from './internal/Ref';\nimport type * as JsonSchema from './JsonSchema';\nimport type * as Obj from './Obj';\n\n/**\n * Instance type for a reference.\n *\n * Reference can point to any object or relation.\n * References are lazy loaded.\n *\n * `ref.dxn` is the DXN of the referenced object.\n *\n * @example\n * ```ts\n * const taskRef: Ref<Task> = Ref.make(task);\n *\n * await taskRef.load(); // Returns Promise<Task>\n * yield* Database.load(taskRef); // Effectful version.\n *\n * database.makeRef(dxn); // Create a ref from a DXN.\n * ```\n */\nexport type Ref<T> = refInternal.Ref<T>;\nexport type Unknown = refInternal.Ref<Obj.Unknown>;\n\n/**\n * Factory function to create a Ref schema for the given target schema.\n * Use this in schema definitions to declare reference fields.\n *\n * @example\n * ```ts\n * const Task = Schema.Struct({\n * assignee: Ref.Ref(Person), // Creates a Ref schema\n * }).pipe(Type.object({ typename: 'Task', version: '0.1.0' }));\n * ```\n */\nexport const Ref: <S extends Schema.Schema.Any>(schema: S) => RefSchema<Schema.Schema.Type<S>> = refInternal.Ref;\n\nexport const Array = refInternal.RefArray;\n\n/**\n * TypeScript type for a Ref schema.\n * This is the type of the SCHEMA itself, not the runtime ref instance.\n * For the instance type, use `Ref.Ref<T>` from the Ref module.\n *\n * @example\n * ```ts\n * // Schema type annotation (rarely needed, usually inferred):\n * const refSchema: Ref.RefSchema<typeof Task> = Ref.Ref(Task);\n *\n * // Instance type annotation (use Ref.Ref instead):\n * const refInstance: Ref.Ref<Task> = Ref.make(task);\n * ```\n */\n// TODO(dmaretskyi): Investigate if we can remove this type.\n// Post DX-836 it will become just `Schema.Schema<Ref.Ref<T>>`.\n// NOTE: This could be Type.Ref<T> instead, but since it going to be removed, it's better to keep it here, self-contained.\nexport interface RefSchema<T extends Entity.Unknown> extends refInternal.RefSchema<T> {}\n\n/**\n * Extract reference target.\n */\nexport type Target<R extends Unknown> = R extends refInternal.Ref<infer T> ? T : never;\n\n/**\n * Reference resolver.\n */\nexport type Resolver = refInternal.RefResolver;\n\nexport const isRef: (value: unknown) => value is Unknown = refInternal.Ref.isRef;\n\nexport const make = refInternal.Ref.make;\n\n// TODO(dmaretskyi): Consider just allowing `make` to accept DXN.\nexport const fromDXN = refInternal.Ref.fromDXN;\n\n// TODO(wittjosiah): Factor out?\nexport const isRefType = (ast: SchemaAST.AST): boolean => {\n return SchemaAST.getAnnotation<JsonSchema.JsonSchema>(ast, SchemaAST.JSONSchemaAnnotationId).pipe(\n Option.flatMap((jsonSchema) => ('$id' in jsonSchema ? Option.some(jsonSchema) : Option.none())),\n Option.flatMap((jsonSchema) => {\n const { typename } = refInternal.getSchemaReference(jsonSchema) ?? {};\n return typename ? Option.some(true) : Option.some(false);\n }),\n Option.getOrElse(() => false),\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;AAAA;;;aAAAA;EAAA;;;;;AAMA,YAAYC,YAAY;AAExB,YAAYC,eAAe;AAuCpB,IAAMC,OAAgGA;AAEtG,IAAMC,QAAoBC;AA+B1B,IAAMC,QAA0DH,IAAIG;AAEpE,IAAMC,OAAmBJ,IAAII;AAG7B,IAAMC,UAAsBL,IAAIK;AAGhC,IAAMC,YAAY,CAACC,QAAAA;AACxB,SAAiBC,wBAAqCD,KAAeE,gCAAsB,EAAEC,KACpFC,eAAQ,CAACC,eAAgB,SAASA,aAAoBC,YAAKD,UAAAA,IAAqBE,YAAI,CAAA,GACpFH,eAAQ,CAACC,eAAAA;AACd,UAAM,EAAEG,SAAQ,IAAiBC,mBAAmBJ,UAAAA,KAAe,CAAC;AACpE,WAAOG,WAAkBF,YAAK,IAAA,IAAeA,YAAK,KAAA;EACpD,CAAA,GACOI,iBAAU,MAAM,KAAA,CAAA;AAE3B;",
6
+ "names": ["Ref", "Option", "SchemaAST", "Ref", "Array", "RefArray", "isRef", "make", "fromDXN", "isRefType", "ast", "getAnnotation", "JSONSchemaAnnotationId", "pipe", "flatMap", "jsonSchema", "some", "none", "typename", "getSchemaReference", "getOrElse"]
7
+ }
@@ -0,0 +1,130 @@
1
+ import {
2
+ isInstanceOf
3
+ } from "./chunk-SEMVAGBM.mjs";
4
+ import {
5
+ ObjectNotFoundError
6
+ } from "./chunk-UBEZSGXY.mjs";
7
+ import {
8
+ __export
9
+ } from "./chunk-J5LGTIGS.mjs";
10
+
11
+ // src/Database.ts
12
+ var Database_exports = {};
13
+ __export(Database_exports, {
14
+ Database: () => Database,
15
+ Service: () => Service,
16
+ TypeId: () => TypeId,
17
+ add: () => add,
18
+ flush: () => flush,
19
+ isDatabase: () => isDatabase,
20
+ layer: () => layer,
21
+ load: () => load,
22
+ loadOption: () => loadOption,
23
+ makeService: () => makeService,
24
+ notAvailable: () => notAvailable,
25
+ query: () => query,
26
+ remove: () => remove,
27
+ resolve: () => resolve,
28
+ runQuery: () => runQuery,
29
+ runSchemaQuery: () => runSchemaQuery,
30
+ schemaQuery: () => schemaQuery,
31
+ spaceId: () => spaceId
32
+ });
33
+ import * as Context from "effect/Context";
34
+ import * as Effect from "effect/Effect";
35
+ import * as Layer from "effect/Layer";
36
+ import * as Option from "effect/Option";
37
+ import * as Schema from "effect/Schema";
38
+ import { promiseWithCauseCapture } from "@dxos/effect";
39
+ import { invariant } from "@dxos/invariant";
40
+ import { DXN } from "@dxos/keys";
41
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Database.ts";
42
+ var TypeId = /* @__PURE__ */ Symbol.for("@dxos/echo/Database");
43
+ var isDatabase = (obj) => {
44
+ return obj ? typeof obj === "object" && TypeId in obj && obj[TypeId] === TypeId : false;
45
+ };
46
+ var Database = Schema.Any.pipe(Schema.filter((space) => isDatabase(space)));
47
+ var Service = class extends Context.Tag("@dxos/echo/Database/Service")() {
48
+ };
49
+ var notAvailable = Layer.succeed(Service, {
50
+ get db() {
51
+ throw new Error("Database not available");
52
+ }
53
+ });
54
+ var makeService = (db) => {
55
+ return {
56
+ get db() {
57
+ return db;
58
+ }
59
+ };
60
+ };
61
+ var layer = (db) => {
62
+ return Layer.succeed(Service, makeService(db));
63
+ };
64
+ var spaceId = Effect.gen(function* () {
65
+ const { db } = yield* Service;
66
+ return db.spaceId;
67
+ });
68
+ var resolve = (ref, schema) => Effect.gen(function* () {
69
+ const { db } = yield* Service;
70
+ const dxn = ref instanceof DXN ? ref : ref.dxn;
71
+ const object = yield* promiseWithCauseCapture(() => db.graph.createRefResolver({
72
+ context: {
73
+ space: db.spaceId
74
+ }
75
+ }).resolve(dxn));
76
+ if (!object) {
77
+ return yield* Effect.fail(new ObjectNotFoundError(dxn));
78
+ }
79
+ invariant(!schema || isInstanceOf(schema, object), "Object type mismatch.", {
80
+ F: __dxlog_file,
81
+ L: 230,
82
+ S: this,
83
+ A: [
84
+ "!schema || isInstanceOf(schema, object)",
85
+ "'Object type mismatch.'"
86
+ ]
87
+ });
88
+ return object;
89
+ });
90
+ var load = Effect.fn(function* (ref) {
91
+ const object = yield* promiseWithCauseCapture(() => ref.tryLoad());
92
+ if (!object) {
93
+ return yield* Effect.fail(new ObjectNotFoundError(ref.dxn));
94
+ }
95
+ return object;
96
+ });
97
+ var loadOption = Effect.fn(function* (ref) {
98
+ const object = yield* load(ref).pipe(Effect.catchTag("ObjectNotFoundError", () => Effect.succeed(void 0)));
99
+ return Option.fromNullable(object);
100
+ });
101
+ var add = (obj) => Service.pipe(Effect.map(({ db }) => db.add(obj)));
102
+ var remove = (obj) => Service.pipe(Effect.map(({ db }) => db.remove(obj)));
103
+ var flush = (opts) => Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts))));
104
+ var query = (queryOrFilter) => Service.pipe(Effect.map(({ db }) => db.query(queryOrFilter)), Effect.withSpan("Database.query"));
105
+ var runQuery = (queryOrFilter) => query(queryOrFilter).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));
106
+ var schemaQuery = (schemaQueryOptions) => Service.pipe(Effect.map(({ db }) => db.schemaRegistry.query(schemaQueryOptions)), Effect.withSpan("Database.schemaQuery"));
107
+ var runSchemaQuery = (schemaQueryOptions) => schemaQuery(schemaQueryOptions).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));
108
+
109
+ export {
110
+ TypeId,
111
+ isDatabase,
112
+ Database,
113
+ Service,
114
+ notAvailable,
115
+ makeService,
116
+ layer,
117
+ spaceId,
118
+ resolve,
119
+ load,
120
+ loadOption,
121
+ add,
122
+ remove,
123
+ flush,
124
+ query,
125
+ runQuery,
126
+ schemaQuery,
127
+ runSchemaQuery,
128
+ Database_exports
129
+ };
130
+ //# sourceMappingURL=chunk-ETOQXZHC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/Database.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport type * as Types from 'effect/Types';\n\nimport { promiseWithCauseCapture } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, type SpaceId } from '@dxos/keys';\n\nimport type * as Entity from './Entity';\nimport * as Err from './Err';\nimport type * as Filter from './Filter';\nimport type * as Hypergraph from './Hypergraph';\nimport { isInstanceOf } from './internal/Annotation';\nimport type { Ref } from './internal/Ref/ref';\nimport { type AnyProperties } from './internal/common/types';\nimport type * as Obj from './Obj';\nimport type * as Query from './Query';\nimport type * as QueryResult from './QueryResult';\nimport type * as SchemaRegistry from './SchemaRegistry';\nimport type * as Type from './Type';\n\n/**\n * `query` API function declaration.\n */\n// TODO(burdon): Reconcile Query and Filter (should only have one root type).\nexport interface QueryFn {\n <Q extends Query.Any>(query: Q): QueryResult.QueryResult<Query.Type<Q>>;\n <F extends Filter.Any>(filter: F): QueryResult.QueryResult<Filter.Type<F>>;\n}\n\n/**\n * Common interface for Database and Queue.\n */\nexport interface Queryable {\n query: QueryFn;\n}\n\nexport type GetObjectByIdOptions = {\n deleted?: boolean;\n};\n\nexport type ObjectPlacement = 'root-doc' | 'linked-doc';\n\nexport type AddOptions = {\n /**\n * Where to place the object in the Automerge document tree.\n * Root document is always loaded with the space.\n * Linked documents are loaded lazily.\n * Placing large number of objects in the root document may slow down the initial load.\n *\n * @default 'linked-doc'\n */\n placeIn?: ObjectPlacement;\n};\n\nexport type FlushOptions = {\n /**\n * Write any pending changes to disk.\n * @default true\n */\n disk?: boolean;\n\n /**\n * Wait for pending index updates.\n * @default false\n */\n indexes?: boolean;\n\n /**\n * Flush pending updates to objects and queries.\n * @default false\n */\n updates?: boolean;\n};\n\n/**\n * Identifier denoting an ECHO Database.\n */\nexport const TypeId = Symbol.for('@dxos/echo/Database');\nexport type TypeId = typeof TypeId;\n\n/**\n * ECHO Database interface.\n */\nexport interface Database extends Queryable {\n readonly [TypeId]: TypeId;\n\n get spaceId(): SpaceId;\n\n // TODO(burdon): Can we move this into graph?\n get schemaRegistry(): SchemaRegistry.SchemaRegistry;\n\n get graph(): Hypergraph.Hypergraph;\n\n toJSON(): object;\n\n /**\n * Return object by local ID.\n */\n getObjectById<T extends Obj.Unknown = Obj.OfShape<AnyProperties>>(\n id: string,\n opts?: GetObjectByIdOptions,\n ): T | undefined;\n\n /**\n * Query objects.\n */\n query: QueryFn;\n\n /**\n * Creates a reference to an existing object in the database.\n *\n * NOTE: The reference may be dangling if the object is not present in the database.\n * NOTE: Difference from `Ref.fromDXN`\n * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.\n * `db.makeRef(dxn)` is preferable in cases with access to the database.\n */\n makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref<T>;\n\n /**\n * Adds object to the database.\n */\n add<T extends Entity.Unknown = Entity.Unknown>(obj: T, opts?: AddOptions): T;\n\n /**\n * Removes object from the database.\n */\n // TODO(burdon): Return true if removed (currently throws if not present).\n remove(obj: Entity.Unknown): void;\n\n /**\n * Wait for all pending changes to be saved to disk.\n * Optionaly waits for changes to be propagated to indexes and event handlers.\n */\n flush(opts?: FlushOptions): Promise<void>;\n}\n\nexport const isDatabase = (obj: unknown): obj is Database => {\n return obj ? typeof obj === 'object' && TypeId in obj && obj[TypeId] === TypeId : false;\n};\n\nexport const Database: Schema.Schema<Database> = Schema.Any.pipe(Schema.filter((space) => isDatabase(space)));\n\n/**\n * Effect service tag for Database dependency injection.\n */\nexport class Service extends Context.Tag('@dxos/echo/Database/Service')<\n Service,\n {\n readonly db: Database;\n }\n>() {}\n\n/**\n * Layer that provides a Database service that throws when accessed.\n * Useful as a default layer when no database is available.\n */\nexport const notAvailable = Layer.succeed(Service, {\n get db(): Database {\n throw new Error('Database not available');\n },\n});\n\n/**\n * Creates a Database service instance from a Database.\n */\nexport const makeService = (db: Database): Context.Tag.Service<Service> => {\n return {\n get db() {\n return db;\n },\n };\n};\n\n/**\n * Creates a Layer that provides the Database service.\n */\nexport const layer = (db: Database): Layer.Layer<Service> => {\n return Layer.succeed(Service, makeService(db));\n};\n\n/**\n * Returns the space ID of the database.\n */\nexport const spaceId = Effect.gen(function* () {\n const { db } = yield* Service;\n return db.spaceId;\n});\n\n/**\n * Resolves an object by its DXN.\n */\nexport const resolve: {\n // No type check.\n (ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;\n // Check matches schema.\n <S extends Type.AnyEntity>(\n ref: DXN | Ref<any>,\n schema: S,\n ): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;\n} = (<S extends Type.AnyEntity>(\n ref: DXN | Ref<any>,\n schema?: S,\n): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service> =>\n Effect.gen(function* () {\n const { db } = yield* Service;\n const dxn = ref instanceof DXN ? ref : ref.dxn;\n const object = yield* promiseWithCauseCapture(() =>\n db.graph\n .createRefResolver({\n context: {\n space: db.spaceId,\n },\n })\n .resolve(dxn),\n );\n\n if (!object) {\n return yield* Effect.fail(new Err.ObjectNotFoundError(dxn));\n }\n invariant(!schema || isInstanceOf(schema, object), 'Object type mismatch.');\n return object as any;\n })) as any;\n\n/**\n * Loads an object reference.\n */\nexport const load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never> = Effect.fn(function* (ref) {\n const object = yield* promiseWithCauseCapture(() => ref.tryLoad());\n if (!object) {\n return yield* Effect.fail(new Err.ObjectNotFoundError(ref.dxn));\n }\n return object;\n});\n\n/**\n * Loads an object reference option.\n */\n// TODO(dmaretskyi): Do we need this -- you can just use `Effect.catchTag` in calling code instead.\nexport const loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never> = Effect.fn(function* (ref) {\n const object = yield* load(ref).pipe(Effect.catchTag('ObjectNotFoundError', () => Effect.succeed(undefined)));\n\n return Option.fromNullable(object);\n});\n\n/**\n * Adds an object to the database.\n * @see {@link Database.add}\n */\nexport const add = <T extends Entity.Unknown>(obj: T): Effect.Effect<T, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.add(obj)));\n\n/**\n * Removes an object from the database.\n * @see {@link Database.remove}\n */\nexport const remove = <T extends Entity.Unknown>(obj: T): Effect.Effect<void, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.remove(obj)));\n\n/**\n * Flushes pending changes to disk.\n * @see {@link Database.flush}\n */\nexport const flush = (opts?: FlushOptions) =>\n Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts))));\n\n/**\n * Creates a `QueryResult` object that can be subscribed to.\n */\nexport const query: {\n <Q extends Query.Any>(query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;\n <F extends Filter.Any>(filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;\n} = (queryOrFilter: Query.Any | Filter.Any) =>\n Service.pipe(\n Effect.map(({ db }) => db.query(queryOrFilter as any) as QueryResult.QueryResult<any>),\n Effect.withSpan('Database.query'),\n );\n\n/**\n * Executes the query once and returns the results.\n */\nexport const runQuery: {\n <Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;\n <F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;\n} = (queryOrFilter: Query.Any | Filter.Any) =>\n query(queryOrFilter as any).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));\n\n/**\n * Creates a schema query result that can be subscribed to.\n */\n// TODO(dmaretskyi): Change API to `yield* Database.querySchema(...).first` and `yield* Database.querySchema(...).schema`.\nexport const schemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n schemaQueryOptions?: Q & SchemaRegistry.Query,\n): Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service> =>\n Service.pipe(\n Effect.map(({ db }) => db.schemaRegistry.query(schemaQueryOptions)),\n Effect.withSpan('Database.schemaQuery'),\n );\n\n/**\n * Executes a schema query once and returns the results.\n */\nexport const runSchemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n schemaQueryOptions?: Q & SchemaRegistry.Query,\n): Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service> =>\n schemaQuery(schemaQueryOptions).pipe(\n Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())),\n );\n"],
5
+ "mappings": "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",
6
+ "names": ["Context", "Effect", "Layer", "Option", "Schema", "promiseWithCauseCapture", "invariant", "DXN", "TypeId", "Symbol", "for", "isDatabase", "obj", "Database", "Any", "pipe", "filter", "space", "Service", "Tag", "notAvailable", "succeed", "db", "Error", "makeService", "layer", "spaceId", "gen", "resolve", "ref", "schema", "dxn", "DXN", "object", "promiseWithCauseCapture", "graph", "createRefResolver", "context", "fail", "ObjectNotFoundError", "invariant", "isInstanceOf", "load", "fn", "tryLoad", "loadOption", "catchTag", "undefined", "fromNullable", "add", "map", "remove", "flush", "opts", "flatMap", "query", "queryOrFilter", "withSpan", "runQuery", "queryResult", "run", "schemaQuery", "schemaQueryOptions", "schemaRegistry", "runSchemaQuery"]
7
+ }