@dxos/echo 0.8.4-main.70d3990 → 0.8.4-main.74a063c4e0

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 (609) hide show
  1. package/README.md +3 -4
  2. package/dist/lib/neutral/Annotation.mjs +37 -0
  3. package/dist/lib/neutral/Database.mjs +47 -0
  4. package/dist/lib/neutral/Entity.mjs +59 -0
  5. package/dist/lib/neutral/Err.mjs +12 -0
  6. package/dist/lib/neutral/Extension.mjs +18 -0
  7. package/dist/lib/neutral/Extension.mjs.map +7 -0
  8. package/dist/lib/neutral/Feed.mjs +48 -0
  9. package/dist/lib/neutral/Feed.mjs.map +7 -0
  10. package/dist/lib/neutral/Filter.mjs +70 -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 +113 -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 +38 -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 +94 -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 +29 -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-2U2BZDLU.mjs +121 -0
  37. package/dist/lib/neutral/chunk-2U2BZDLU.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-46QNGNTY.mjs +45 -0
  39. package/dist/lib/neutral/chunk-46QNGNTY.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-66GBFH43.mjs +298 -0
  41. package/dist/lib/neutral/chunk-66GBFH43.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-6URFBQJH.mjs +361 -0
  43. package/dist/lib/neutral/chunk-6URFBQJH.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-7QQMUDE6.mjs +159 -0
  45. package/dist/lib/neutral/chunk-7QQMUDE6.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-BNCCGLJN.mjs +7 -0
  49. package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-DQYLD2RB.mjs +402 -0
  51. package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +7 -0
  52. package/dist/lib/neutral/chunk-E5PBQJWV.mjs +27 -0
  53. package/dist/lib/neutral/chunk-E5PBQJWV.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-EBVB5NOH.mjs +133 -0
  55. package/dist/lib/neutral/chunk-EBVB5NOH.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-FNEFSO2C.mjs +787 -0
  57. package/dist/lib/neutral/chunk-FNEFSO2C.mjs.map +7 -0
  58. package/dist/lib/neutral/chunk-GZQTCRJB.mjs +73 -0
  59. package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  61. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-KPY6FC5I.mjs +415 -0
  63. package/dist/lib/neutral/chunk-KPY6FC5I.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-MYMU4TWK.mjs +299 -0
  65. package/dist/lib/neutral/chunk-MYMU4TWK.mjs.map +7 -0
  66. package/dist/lib/neutral/chunk-MZXWVR3T.mjs +97 -0
  67. package/dist/lib/neutral/chunk-MZXWVR3T.mjs.map +7 -0
  68. package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
  69. package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
  70. package/dist/lib/neutral/chunk-QWAOTFCY.mjs +396 -0
  71. package/dist/lib/neutral/chunk-QWAOTFCY.mjs.map +7 -0
  72. package/dist/lib/neutral/chunk-R72KFH2X.mjs +34 -0
  73. package/dist/lib/neutral/chunk-R72KFH2X.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-TBKX6JQO.mjs +67 -0
  75. package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +7 -0
  76. package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
  77. package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
  78. package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
  79. package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
  80. package/dist/lib/neutral/chunk-VCAP4OOT.mjs +120 -0
  81. package/dist/lib/neutral/chunk-VCAP4OOT.mjs.map +7 -0
  82. package/dist/lib/neutral/chunk-WMFVS4KR.mjs +2830 -0
  83. package/dist/lib/neutral/chunk-WMFVS4KR.mjs.map +7 -0
  84. package/dist/lib/neutral/chunk-XZJUNTML.mjs +335 -0
  85. package/dist/lib/neutral/chunk-XZJUNTML.mjs.map +7 -0
  86. package/dist/lib/neutral/chunk-XZM7FERR.mjs +56 -0
  87. package/dist/lib/neutral/chunk-XZM7FERR.mjs.map +7 -0
  88. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
  89. package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
  90. package/dist/lib/neutral/chunk-ZIXGDU6F.mjs +45 -0
  91. package/dist/lib/neutral/chunk-ZIXGDU6F.mjs.map +7 -0
  92. package/dist/lib/neutral/index.mjs +101 -0
  93. package/dist/lib/neutral/index.mjs.map +7 -0
  94. package/dist/lib/{node-esm → neutral}/internal/index.mjs +261 -123
  95. package/dist/lib/neutral/internal/index.mjs.map +7 -0
  96. package/dist/lib/neutral/meta.json +1 -0
  97. package/dist/lib/{browser → neutral}/testing/index.mjs +98 -52
  98. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  99. package/dist/types/src/Annotation.d.ts +23 -1
  100. package/dist/types/src/Annotation.d.ts.map +1 -1
  101. package/dist/types/src/Collection.d.ts +16 -0
  102. package/dist/types/src/Collection.d.ts.map +1 -0
  103. package/dist/types/src/Database.d.ts +146 -87
  104. package/dist/types/src/Database.d.ts.map +1 -1
  105. package/dist/types/src/Dataset.d.ts +19 -0
  106. package/dist/types/src/Dataset.d.ts.map +1 -0
  107. package/dist/types/src/Entity.d.ts +141 -9
  108. package/dist/types/src/Entity.d.ts.map +1 -1
  109. package/dist/types/src/Entity.test.d.ts +2 -0
  110. package/dist/types/src/Entity.test.d.ts.map +1 -0
  111. package/dist/types/src/Err.d.ts +107 -0
  112. package/dist/types/src/Err.d.ts.map +1 -0
  113. package/dist/types/src/Extension.d.ts +80 -0
  114. package/dist/types/src/Extension.d.ts.map +1 -0
  115. package/dist/types/src/Extension.test.d.ts +2 -0
  116. package/dist/types/src/Extension.test.d.ts.map +1 -0
  117. package/dist/types/src/Feed.d.ts +171 -0
  118. package/dist/types/src/Feed.d.ts.map +1 -0
  119. package/dist/types/src/Filter.d.ts +136 -0
  120. package/dist/types/src/Filter.d.ts.map +1 -0
  121. package/dist/types/src/Filter.test.d.ts +2 -0
  122. package/dist/types/src/Filter.test.d.ts.map +1 -0
  123. package/dist/types/src/Format.d.ts +3 -3
  124. package/dist/types/src/Format.d.ts.map +1 -1
  125. package/dist/types/src/Hypergraph.d.ts +65 -0
  126. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  127. package/dist/types/src/JsonSchema.d.ts +11 -4
  128. package/dist/types/src/JsonSchema.d.ts.map +1 -1
  129. package/dist/types/src/Obj.d.ts +403 -84
  130. package/dist/types/src/Obj.d.ts.map +1 -1
  131. package/dist/types/src/Obj.test.d.ts +2 -0
  132. package/dist/types/src/Obj.test.d.ts.map +1 -0
  133. package/dist/types/src/Order.d.ts +16 -0
  134. package/dist/types/src/Order.d.ts.map +1 -0
  135. package/dist/types/src/Query.d.ts +209 -0
  136. package/dist/types/src/Query.d.ts.map +1 -0
  137. package/dist/types/src/Query.test.d.ts +2 -0
  138. package/dist/types/src/Query.test.d.ts.map +1 -0
  139. package/dist/types/src/QueryResult.d.ts +80 -0
  140. package/dist/types/src/QueryResult.d.ts.map +1 -0
  141. package/dist/types/src/Ref.d.ts +61 -11
  142. package/dist/types/src/Ref.d.ts.map +1 -1
  143. package/dist/types/src/Relation.d.ts +281 -18
  144. package/dist/types/src/Relation.d.ts.map +1 -1
  145. package/dist/types/src/Relation.test.d.ts +2 -0
  146. package/dist/types/src/Relation.test.d.ts.map +1 -0
  147. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  148. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  149. package/dist/types/src/Tag.d.ts +8 -7
  150. package/dist/types/src/Tag.d.ts.map +1 -1
  151. package/dist/types/src/Type.d.ts +124 -90
  152. package/dist/types/src/Type.d.ts.map +1 -1
  153. package/dist/types/src/Type.test.d.ts +2 -0
  154. package/dist/types/src/Type.test.d.ts.map +1 -0
  155. package/dist/types/src/View.d.ts +68 -0
  156. package/dist/types/src/View.d.ts.map +1 -0
  157. package/dist/types/src/hierarchy.test.d.ts +2 -0
  158. package/dist/types/src/hierarchy.test.d.ts.map +1 -0
  159. package/dist/types/src/index.d.ts +13 -2
  160. package/dist/types/src/index.d.ts.map +1 -1
  161. package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +84 -27
  162. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
  163. package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
  164. package/dist/types/src/internal/Annotation/index.d.ts +4 -0
  165. package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
  166. package/dist/types/src/internal/Annotation/sorting.d.ts +24 -0
  167. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
  168. package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +14 -1
  169. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
  170. package/dist/types/src/internal/Entity/api.d.ts +13 -0
  171. package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
  172. package/dist/types/src/internal/Entity/entity.d.ts +20 -0
  173. package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
  174. package/dist/types/src/internal/Entity/index.d.ts +8 -0
  175. package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
  176. package/dist/types/src/internal/{entities → Entity}/model.d.ts +14 -29
  177. package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
  178. package/dist/types/src/internal/Entity/object.d.ts +18 -0
  179. package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
  180. package/dist/types/src/internal/Entity/relation.d.ts +35 -0
  181. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
  182. package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
  183. package/dist/types/src/internal/Entity/version.d.ts +42 -0
  184. package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
  185. package/dist/types/src/internal/Format/date.d.ts.map +1 -0
  186. package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
  187. package/dist/types/src/internal/{formats → Format}/format.d.ts +4 -4
  188. package/dist/types/src/internal/Format/format.d.ts.map +1 -0
  189. package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
  190. package/dist/types/src/internal/Format/index.d.ts.map +1 -0
  191. package/dist/types/src/internal/Format/number.d.ts.map +1 -0
  192. package/dist/types/src/internal/Format/object.d.ts.map +1 -0
  193. package/dist/types/src/internal/{formats → Format}/select.d.ts +6 -4
  194. package/dist/types/src/internal/Format/select.d.ts.map +1 -0
  195. package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
  196. package/dist/types/src/internal/Format/string.d.ts.map +1 -0
  197. package/dist/types/src/internal/{formats → Format}/types.d.ts +7 -3
  198. package/dist/types/src/internal/Format/types.d.ts.map +1 -0
  199. package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
  200. package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
  201. package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
  202. package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
  203. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
  204. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +131 -30
  205. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
  206. package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +2 -1
  207. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
  208. package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
  209. package/dist/types/src/internal/Obj/clone.d.ts +8 -0
  210. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
  211. package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
  212. package/dist/types/src/internal/{object → Obj}/create-object.d.ts +3 -3
  213. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
  214. package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
  215. package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
  216. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
  217. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
  218. package/dist/types/src/internal/{object → Obj}/index.d.ts +3 -0
  219. package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
  220. package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
  221. package/dist/types/src/internal/Obj/json-serializer.d.ts +44 -0
  222. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
  223. package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
  224. package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
  225. package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
  226. package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
  227. package/dist/types/src/internal/Obj/set-value.d.ts +7 -0
  228. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
  229. package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
  230. package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
  231. package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
  232. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
  233. package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
  234. package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
  235. package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
  236. package/dist/types/src/internal/Query.d.ts +10 -0
  237. package/dist/types/src/internal/Query.d.ts.map +1 -0
  238. package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
  239. package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +4 -4
  240. package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
  241. package/dist/types/src/internal/{ref → Ref}/ref.d.ts +31 -9
  242. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
  243. package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
  244. package/dist/types/src/internal/Type/compose.d.ts +7 -0
  245. package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
  246. package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
  247. package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +20 -7
  248. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
  249. package/dist/types/src/internal/Type/index.d.ts +4 -0
  250. package/dist/types/src/internal/Type/index.d.ts.map +1 -0
  251. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
  252. package/dist/types/src/internal/Type/persistent-schema.d.ts +20 -0
  253. package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
  254. package/dist/types/src/internal/common/api/index.d.ts +11 -0
  255. package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
  256. package/dist/types/src/internal/common/api/meta.d.ts +42 -0
  257. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
  258. package/dist/types/src/internal/common/index.d.ts +4 -0
  259. package/dist/types/src/internal/common/index.d.ts.map +1 -0
  260. package/dist/types/src/internal/common/proxy/change-context.d.ts +55 -0
  261. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
  262. package/dist/types/src/internal/common/proxy/change.test.d.ts +2 -0
  263. package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
  264. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts +5 -0
  265. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
  266. package/dist/types/src/internal/common/proxy/errors.d.ts +19 -0
  267. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
  268. package/dist/types/src/internal/common/proxy/event-batch.d.ts +10 -0
  269. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
  270. package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
  271. package/dist/types/src/internal/common/proxy/index.d.ts +14 -0
  272. package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
  273. package/dist/types/src/internal/common/proxy/json-serializer.d.ts +6 -0
  274. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
  275. package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +2 -4
  276. package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
  277. package/dist/types/src/internal/common/proxy/ownership.d.ts +57 -0
  278. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
  279. package/dist/types/src/internal/common/proxy/proxy-types.d.ts +18 -0
  280. package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
  281. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts +47 -0
  282. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
  283. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +8 -0
  284. package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
  285. package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
  286. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
  287. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
  288. package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
  289. package/dist/types/src/internal/common/proxy/symbols.d.ts +3 -0
  290. package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
  291. package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +16 -12
  292. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
  293. package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
  294. package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
  295. package/dist/types/src/internal/{types → common/types}/base.d.ts +6 -16
  296. package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
  297. package/dist/types/src/internal/common/types/entity.d.ts +37 -0
  298. package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
  299. package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
  300. package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
  301. package/dist/types/src/internal/{types → common/types}/meta.d.ts +8 -15
  302. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
  303. package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
  304. package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
  305. package/dist/types/src/internal/{types → common/types}/typename.d.ts +8 -0
  306. package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
  307. package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
  308. package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
  309. package/dist/types/src/internal/index.d.ts +10 -10
  310. package/dist/types/src/internal/index.d.ts.map +1 -1
  311. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  312. package/dist/types/src/testing/test-schema.d.ts +146 -179
  313. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  314. package/dist/types/src/testing/util.d.ts +6 -1
  315. package/dist/types/src/testing/util.d.ts.map +1 -1
  316. package/dist/types/tsconfig.tsbuildinfo +1 -1
  317. package/package.json +99 -61
  318. package/src/Annotation.ts +36 -5
  319. package/src/Collection.ts +37 -0
  320. package/src/Database.ts +263 -122
  321. package/src/Dataset.ts +26 -0
  322. package/src/Entity.test.ts +22 -0
  323. package/src/Entity.ts +196 -11
  324. package/src/Err.ts +40 -0
  325. package/src/Extension.test.ts +235 -0
  326. package/src/Extension.ts +122 -0
  327. package/src/Feed.ts +283 -0
  328. package/src/Filter.test.ts +90 -0
  329. package/src/Filter.ts +424 -0
  330. package/src/Format.ts +3 -5
  331. package/src/Hypergraph.ts +79 -0
  332. package/src/JsonSchema.ts +14 -4
  333. package/src/Obj.test.ts +539 -0
  334. package/src/Obj.ts +639 -289
  335. package/src/Order.ts +46 -0
  336. package/src/Query.test.ts +698 -0
  337. package/src/Query.ts +547 -0
  338. package/src/QueryResult.ts +106 -0
  339. package/src/Ref.ts +79 -9
  340. package/src/Relation.test.ts +88 -0
  341. package/src/Relation.ts +439 -68
  342. package/src/SchemaRegistry.ts +106 -0
  343. package/src/Tag.ts +7 -6
  344. package/src/Type.test.ts +52 -0
  345. package/src/Type.ts +167 -166
  346. package/src/View.ts +107 -0
  347. package/src/hierarchy.test.ts +33 -0
  348. package/src/index.ts +14 -5
  349. package/src/internal/{annotations → Annotation}/annotations.test.ts +62 -13
  350. package/src/internal/{annotations → Annotation}/annotations.ts +186 -71
  351. package/src/internal/{annotations → Annotation}/index.ts +1 -0
  352. package/src/internal/Annotation/sorting.ts +51 -0
  353. package/src/internal/{annotations → Annotation}/util.ts +16 -1
  354. package/src/internal/Entity/api.ts +30 -0
  355. package/src/internal/{entities → Entity}/entity.ts +39 -20
  356. package/src/internal/{entities → Entity}/index.ts +3 -1
  357. package/src/internal/{entities → Entity}/model.ts +29 -49
  358. package/src/internal/{entities → Entity}/object.ts +23 -11
  359. package/src/internal/{entities → Entity}/relation.ts +42 -43
  360. package/src/internal/Entity/version.ts +96 -0
  361. package/src/internal/{formats → Format}/date.test.ts +1 -2
  362. package/src/internal/{formats → Format}/format.test.ts +2 -3
  363. package/src/internal/{formats → Format}/format.ts +7 -8
  364. package/src/internal/{formats → Format}/object.ts +2 -2
  365. package/src/internal/{formats → Format}/select.ts +6 -4
  366. package/src/internal/{formats → Format}/string.ts +5 -0
  367. package/src/internal/{formats → Format}/types.ts +12 -6
  368. package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
  369. package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
  370. package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +34 -35
  371. package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +67 -66
  372. package/src/internal/{json-schema → JsonSchema}/json-schema.ts +18 -13
  373. package/src/internal/Obj/clone.ts +48 -0
  374. package/src/internal/{object → Obj}/common.ts +2 -2
  375. package/src/internal/{object → Obj}/create-object.test.ts +5 -7
  376. package/src/internal/{object → Obj}/create-object.ts +6 -7
  377. package/src/internal/{object → Obj}/deleted.ts +2 -2
  378. package/src/internal/{object → Obj}/index.ts +3 -0
  379. package/src/internal/{object → Obj}/inspect.ts +4 -4
  380. package/src/internal/{object → Obj}/json-serializer.test.ts +33 -7
  381. package/src/internal/{object → Obj}/json-serializer.ts +77 -92
  382. package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
  383. package/src/internal/Obj/schema-validator.ts +6 -0
  384. package/src/internal/Obj/set-value.test.ts +281 -0
  385. package/src/internal/Obj/set-value.ts +165 -0
  386. package/src/internal/Obj/snapshot.ts +105 -0
  387. package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
  388. package/src/internal/Obj/typed-object.ts +30 -0
  389. package/src/internal/Query.ts +132 -0
  390. package/src/internal/{ref → Ref}/ref-array.ts +4 -5
  391. package/src/internal/{ref → Ref}/ref.test.ts +5 -6
  392. package/src/internal/{ref → Ref}/ref.ts +90 -43
  393. package/src/internal/{schema → Type}/compose.test.ts +6 -7
  394. package/src/internal/{schema → Type}/compose.ts +14 -10
  395. package/src/internal/{schema → Type}/echo-schema.ts +55 -17
  396. package/src/internal/{schema → Type}/index.ts +0 -2
  397. package/src/internal/{schema → Type}/manipulation.ts +1 -1
  398. package/src/internal/Type/persistent-schema.ts +33 -0
  399. package/src/internal/{README.md → common/README.md} +36 -17
  400. package/src/internal/common/api/index.ts +15 -0
  401. package/src/internal/common/api/meta.ts +88 -0
  402. package/src/internal/common/index.ts +7 -0
  403. package/src/internal/common/proxy/change-context.ts +138 -0
  404. package/src/internal/common/proxy/change.test.ts +519 -0
  405. package/src/internal/common/proxy/define-hidden-property.ts +14 -0
  406. package/src/internal/common/proxy/errors.ts +42 -0
  407. package/src/internal/common/proxy/event-batch.ts +44 -0
  408. package/src/internal/{proxy → common/proxy}/handler.test.ts +32 -84
  409. package/src/internal/common/proxy/index.ts +17 -0
  410. package/src/internal/common/proxy/json-serializer.ts +90 -0
  411. package/src/internal/common/proxy/make-object.ts +105 -0
  412. package/src/internal/common/proxy/ownership.ts +252 -0
  413. package/src/internal/common/proxy/proxy-types.ts +23 -0
  414. package/src/internal/common/proxy/proxy-utils.ts +150 -0
  415. package/src/internal/common/proxy/reactive-array.ts +71 -0
  416. package/src/internal/common/proxy/reactive.ts +68 -0
  417. package/src/internal/{object → common/proxy}/schema-validator.ts +3 -1
  418. package/src/internal/{proxy → common/proxy}/schema.test.ts +29 -21
  419. package/src/internal/common/proxy/symbols.ts +7 -0
  420. package/src/internal/common/proxy/typed-handler.test.ts +313 -0
  421. package/src/internal/common/proxy/typed-handler.ts +447 -0
  422. package/src/internal/common/proxy/typed-object.test.ts +115 -0
  423. package/src/internal/{types → common/types}/base.ts +7 -22
  424. package/src/internal/common/types/entity.ts +54 -0
  425. package/src/internal/{types → common/types}/index.ts +1 -0
  426. package/src/internal/{types → common/types}/meta.ts +16 -25
  427. package/src/internal/common/types/model-symbols.ts +69 -0
  428. package/src/internal/{types → common/types}/typename.ts +10 -0
  429. package/src/internal/{types → common/types}/version.ts +2 -3
  430. package/src/internal/index.ts +10 -31
  431. package/src/testing/api.test.ts +32 -7
  432. package/src/testing/test-data.ts +0 -1
  433. package/src/testing/test-schema.ts +68 -41
  434. package/src/testing/util.ts +22 -15
  435. package/dist/lib/browser/chunk-7GH6RXJ3.mjs +0 -3683
  436. package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-E4UTVJNF.mjs +0 -1111
  438. package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +0 -7
  439. package/dist/lib/browser/index.mjs +0 -45
  440. package/dist/lib/browser/internal/index.mjs +0 -336
  441. package/dist/lib/browser/meta.json +0 -1
  442. package/dist/lib/browser/testing/index.mjs.map +0 -7
  443. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +0 -1111
  444. package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +0 -7
  445. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs +0 -3683
  446. package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +0 -7
  447. package/dist/lib/node-esm/index.mjs +0 -45
  448. package/dist/lib/node-esm/meta.json +0 -1
  449. package/dist/lib/node-esm/testing/index.mjs +0 -328
  450. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  451. package/dist/types/src/errors.d.ts +0 -68
  452. package/dist/types/src/errors.d.ts.map +0 -1
  453. package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
  454. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
  455. package/dist/types/src/internal/annotations/index.d.ts +0 -3
  456. package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
  457. package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
  458. package/dist/types/src/internal/entities/entity.d.ts +0 -10
  459. package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
  460. package/dist/types/src/internal/entities/expando.d.ts +0 -16
  461. package/dist/types/src/internal/entities/expando.d.ts.map +0 -1
  462. package/dist/types/src/internal/entities/index.d.ts +0 -6
  463. package/dist/types/src/internal/entities/index.d.ts.map +0 -1
  464. package/dist/types/src/internal/entities/model.d.ts.map +0 -1
  465. package/dist/types/src/internal/entities/object.d.ts +0 -11
  466. package/dist/types/src/internal/entities/object.d.ts.map +0 -1
  467. package/dist/types/src/internal/entities/relation.d.ts +0 -55
  468. package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
  469. package/dist/types/src/internal/entities/util.d.ts.map +0 -1
  470. package/dist/types/src/internal/formats/date.d.ts.map +0 -1
  471. package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
  472. package/dist/types/src/internal/formats/format.d.ts.map +0 -1
  473. package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
  474. package/dist/types/src/internal/formats/index.d.ts.map +0 -1
  475. package/dist/types/src/internal/formats/number.d.ts.map +0 -1
  476. package/dist/types/src/internal/formats/object.d.ts.map +0 -1
  477. package/dist/types/src/internal/formats/select.d.ts.map +0 -1
  478. package/dist/types/src/internal/formats/string.d.ts.map +0 -1
  479. package/dist/types/src/internal/formats/types.d.ts.map +0 -1
  480. package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
  481. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
  482. package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
  483. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
  484. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
  485. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
  486. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
  487. package/dist/types/src/internal/object/common.d.ts.map +0 -1
  488. package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
  489. package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
  490. package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
  491. package/dist/types/src/internal/object/ids.d.ts.map +0 -1
  492. package/dist/types/src/internal/object/index.d.ts.map +0 -1
  493. package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
  494. package/dist/types/src/internal/object/json-serializer.d.ts +0 -31
  495. package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
  496. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
  497. package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
  498. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
  499. package/dist/types/src/internal/object/typed-object.d.ts +0 -31
  500. package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
  501. package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
  502. package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
  503. package/dist/types/src/internal/proxy/index.d.ts +0 -3
  504. package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
  505. package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
  506. package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
  507. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
  508. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
  509. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
  510. package/dist/types/src/internal/ref/index.d.ts.map +0 -1
  511. package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
  512. package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
  513. package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
  514. package/dist/types/src/internal/schema/compose.d.ts +0 -6
  515. package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
  516. package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
  517. package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
  518. package/dist/types/src/internal/schema/index.d.ts +0 -6
  519. package/dist/types/src/internal/schema/index.d.ts.map +0 -1
  520. package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
  521. package/dist/types/src/internal/schema/persistent-schema.d.ts +0 -18
  522. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
  523. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +0 -18
  524. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
  525. package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
  526. package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
  527. package/dist/types/src/internal/types/base.d.ts.map +0 -1
  528. package/dist/types/src/internal/types/entity.d.ts +0 -12
  529. package/dist/types/src/internal/types/entity.d.ts.map +0 -1
  530. package/dist/types/src/internal/types/index.d.ts.map +0 -1
  531. package/dist/types/src/internal/types/meta.d.ts.map +0 -1
  532. package/dist/types/src/internal/types/typename.d.ts.map +0 -1
  533. package/dist/types/src/internal/types/version.d.ts.map +0 -1
  534. package/dist/types/src/query/filter.d.ts +0 -167
  535. package/dist/types/src/query/filter.d.ts.map +0 -1
  536. package/dist/types/src/query/index.d.ts +0 -5
  537. package/dist/types/src/query/index.d.ts.map +0 -1
  538. package/dist/types/src/query/order.d.ts +0 -12
  539. package/dist/types/src/query/order.d.ts.map +0 -1
  540. package/dist/types/src/query/query.d.ts +0 -112
  541. package/dist/types/src/query/query.d.ts.map +0 -1
  542. package/dist/types/src/query/query.test.d.ts +0 -2
  543. package/dist/types/src/query/query.test.d.ts.map +0 -1
  544. package/dist/types/src/query/testing.d.ts +0 -51
  545. package/dist/types/src/query/testing.d.ts.map +0 -1
  546. package/dist/types/src/query/types.d.ts +0 -17
  547. package/dist/types/src/query/types.d.ts.map +0 -1
  548. package/dist/types/src/query/util.d.ts +0 -8
  549. package/dist/types/src/query/util.d.ts.map +0 -1
  550. package/src/errors.ts +0 -18
  551. package/src/internal/entities/expando.ts +0 -23
  552. package/src/internal/object/typed-object.ts +0 -94
  553. package/src/internal/proxy/index.ts +0 -6
  554. package/src/internal/proxy/make-object.ts +0 -113
  555. package/src/internal/proxy/typed-handler.test.ts +0 -102
  556. package/src/internal/proxy/typed-handler.ts +0 -233
  557. package/src/internal/proxy/typed-object.test.ts +0 -105
  558. package/src/internal/schema/persistent-schema.ts +0 -28
  559. package/src/internal/schema/runtime-schema-registry.ts +0 -78
  560. package/src/internal/schema/snapshot.ts +0 -25
  561. package/src/internal/types/entity.ts +0 -23
  562. package/src/query/filter.ts +0 -455
  563. package/src/query/index.ts +0 -9
  564. package/src/query/order.ts +0 -34
  565. package/src/query/query.test.ts +0 -334
  566. package/src/query/query.ts +0 -303
  567. package/src/query/testing.ts +0 -64
  568. package/src/query/types.ts +0 -23
  569. package/src/query/util.ts +0 -25
  570. /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
  571. /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
  572. /package/dist/lib/{node-esm/index.mjs.map → neutral/Entity.mjs.map} +0 -0
  573. /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Err.mjs.map} +0 -0
  574. /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
  575. /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
  576. /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
  577. /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
  578. /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
  579. /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
  580. /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
  581. /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
  582. /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
  583. /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
  584. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
  585. /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
  586. /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
  587. /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
  588. /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
  589. /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
  590. /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
  591. /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
  592. /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
  593. /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
  594. /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
  595. /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
  596. /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
  597. /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
  598. /package/dist/types/src/internal/{object → common/proxy}/schema-validator.d.ts +0 -0
  599. /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
  600. /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
  601. /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
  602. /package/src/internal/{entities → Entity}/util.ts +0 -0
  603. /package/src/internal/{formats → Format}/date.ts +0 -0
  604. /package/src/internal/{formats → Format}/index.ts +0 -0
  605. /package/src/internal/{formats → Format}/number.ts +0 -0
  606. /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
  607. /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
  608. /package/src/internal/{object → Obj}/ids.ts +0 -0
  609. /package/src/internal/{ref → Ref}/index.ts +0 -0
@@ -1,18 +1,48 @@
1
- import "@dxos/node-std/globals";
1
+ import "../chunk-7QQMUDE6.mjs";
2
+ import "../chunk-BNCCGLJN.mjs";
3
+ import "../chunk-XZM7FERR.mjs";
4
+ import "../chunk-UI6MWK5W.mjs";
5
+ import "../chunk-ANHVGJI4.mjs";
6
+ import "../chunk-YS6Q3XAD.mjs";
7
+ import "../chunk-GZQTCRJB.mjs";
8
+ import "../chunk-66GBFH43.mjs";
9
+ import "../chunk-E5PBQJWV.mjs";
10
+ import "../chunk-OMUPQMLR.mjs";
11
+ import "../chunk-MYMU4TWK.mjs";
12
+ import "../chunk-VCAP4OOT.mjs";
2
13
  import {
3
- Any,
4
- Obj,
5
- Ref,
6
- Relation,
7
- Type_exports
8
- } from "../chunk-E4UTVJNF.mjs";
14
+ Type_exports,
15
+ object,
16
+ relation
17
+ } from "../chunk-MZXWVR3T.mjs";
18
+ import "../chunk-XZJUNTML.mjs";
19
+ import {
20
+ Unknown
21
+ } from "../chunk-KPY6FC5I.mjs";
22
+ import {
23
+ Ref
24
+ } from "../chunk-46QNGNTY.mjs";
25
+ import "../chunk-2U2BZDLU.mjs";
9
26
  import {
10
27
  EchoSchema,
11
28
  PersistentSchema,
12
- getSchemaTypename,
13
29
  makeObject,
30
+ subscribe
31
+ } from "../chunk-WMFVS4KR.mjs";
32
+ import "../chunk-R72KFH2X.mjs";
33
+ import {
14
34
  toJsonSchema
15
- } from "../chunk-7GH6RXJ3.mjs";
35
+ } from "../chunk-FNEFSO2C.mjs";
36
+ import "../chunk-DQYLD2RB.mjs";
37
+ import "../chunk-QWAOTFCY.mjs";
38
+ import "../chunk-ZIXGDU6F.mjs";
39
+ import "../chunk-EBVB5NOH.mjs";
40
+ import {
41
+ getSchemaTypename
42
+ } from "../chunk-6URFBQJH.mjs";
43
+ import "../chunk-TBKX6JQO.mjs";
44
+ import "../chunk-UBEZSGXY.mjs";
45
+ import "../chunk-J5LGTIGS.mjs";
16
46
 
17
47
  // src/testing/test-data.ts
18
48
  import { DatabaseDirectory, ObjectStructure } from "@dxos/echo-protocol";
@@ -21,9 +51,16 @@ import { DXN, ObjectId, PublicKey } from "@dxos/keys";
21
51
  // src/testing/test-schema.ts
22
52
  import * as Schema from "effect/Schema";
23
53
  (function(TestSchema2) {
54
+ TestSchema2.Expando = Schema.Struct({}, {
55
+ key: Schema.String,
56
+ value: Schema.Any
57
+ }).pipe(object({
58
+ typename: "com.example.type.expando",
59
+ version: "0.1.0"
60
+ }));
24
61
  const Nested = Schema.Struct({
25
62
  field: Schema.String
26
- }).pipe(Schema.mutable);
63
+ });
27
64
  class TestClass {
28
65
  field = "value";
29
66
  toJSON() {
@@ -39,18 +76,18 @@ import * as Schema from "effect/Schema";
39
76
  boolean: Schema.Boolean,
40
77
  null: Schema.Null,
41
78
  undefined: Schema.Undefined,
42
- stringArray: Schema.mutable(Schema.Array(Schema.String)),
43
- twoDimNumberArray: Schema.mutable(Schema.Array(Schema.mutable(Schema.Array(Schema.Number)))),
44
- nested: Schema.mutable(Nested),
45
- nestedArray: Schema.mutable(Schema.Array(Nested)),
46
- nestedNullableArray: Schema.mutable(Schema.Array(Schema.Union(Nested, Schema.Null))),
79
+ stringArray: Schema.Array(Schema.String),
80
+ twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),
81
+ nested: Nested,
82
+ nestedArray: Schema.Array(Nested),
83
+ nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),
47
84
  reference: Schema.suspend(() => Ref(TestSchema2.Example)),
48
- referenceArray: Schema.mutable(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Example)))),
85
+ referenceArray: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Example))),
49
86
  classInstance: Schema.instanceOf(TestClass),
50
87
  other: Schema.Any
51
- }).pipe(Schema.partial, Schema.mutable);
52
- TestSchema2.Example = TestSchema2.ExampleSchema.pipe(Obj({
53
- typename: "example.com/type/Example",
88
+ }).pipe(Schema.partial);
89
+ TestSchema2.Example = TestSchema2.ExampleSchema.pipe(object({
90
+ typename: "com.example.type.example",
54
91
  version: "0.1.0"
55
92
  }));
56
93
  TestSchema2.MessageStruct = Schema.Struct({
@@ -58,21 +95,26 @@ import * as Schema from "effect/Schema";
58
95
  // TODO(burdon): Support defaults (update create and create).
59
96
  timestamp: Schema.String.pipe(Schema.propertySignature, Schema.withConstructorDefault(() => (/* @__PURE__ */ new Date()).toISOString()))
60
97
  });
61
- TestSchema2.Message = TestSchema2.MessageStruct.pipe(Obj({
62
- typename: "example.com/type/Message",
98
+ TestSchema2.Message = TestSchema2.MessageStruct.pipe(object({
99
+ typename: "com.example.type.message",
63
100
  version: "0.1.0"
64
101
  }));
65
102
  TestSchema2.Organization = Schema.Struct({
66
- name: Schema.String
67
- }).pipe(Obj({
68
- typename: "example.com/type/Organization",
103
+ name: Schema.String,
104
+ properties: Schema.optional(Schema.Record({
105
+ key: Schema.String,
106
+ value: Schema.String
107
+ }))
108
+ }).pipe(object({
109
+ typename: "com.example.type.organization",
69
110
  version: "0.1.0"
70
111
  }));
71
112
  TestSchema2.Person = Schema.Struct({
72
113
  name: Schema.String,
73
114
  username: Schema.String,
74
115
  email: Schema.String,
75
- tasks: Schema.mutable(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task)))),
116
+ age: Schema.Number.pipe(Schema.optional),
117
+ tasks: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task))),
76
118
  employer: Schema.optional(Ref(TestSchema2.Organization)),
77
119
  address: Schema.Struct({
78
120
  city: Schema.optional(Schema.String),
@@ -82,9 +124,13 @@ import * as Schema from "effect/Schema";
82
124
  lat: Schema.optional(Schema.Number),
83
125
  lng: Schema.optional(Schema.Number)
84
126
  })
85
- })
86
- }).pipe(Schema.partial, Obj({
87
- typename: "example.com/type/Person",
127
+ }),
128
+ fields: Schema.Struct({
129
+ label: Schema.String,
130
+ value: Schema.String
131
+ }).pipe(Schema.Array, Schema.optional)
132
+ }).pipe(Schema.partial, object({
133
+ typename: "com.example.type.person",
88
134
  version: "0.1.0"
89
135
  }));
90
136
  TestSchema2.Task = Schema.Struct({
@@ -93,14 +139,14 @@ import * as Schema from "effect/Schema";
93
139
  completed: Schema.optional(Schema.Boolean),
94
140
  assignee: Schema.optional(Ref(TestSchema2.Person)),
95
141
  previous: Schema.optional(Schema.suspend(() => Ref(TestSchema2.Task))),
96
- subTasks: Schema.optional(Schema.mutable(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task))))),
142
+ subTasks: Schema.optional(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task)))),
97
143
  description: Schema.optional(Schema.String)
98
- }).pipe(Schema.partial, Obj({
99
- typename: "example.com/type/Task",
144
+ }).pipe(Schema.partial, object({
145
+ typename: "com.example.type.task",
100
146
  version: "0.1.0"
101
147
  }));
102
- TestSchema2.HasManager = Schema.Struct({}).pipe(Relation({
103
- typename: "example.com/type/HasManager",
148
+ TestSchema2.HasManager = Schema.Struct({}).pipe(relation({
149
+ typename: "com.example.type.has-manager",
104
150
  version: "0.1.0",
105
151
  source: TestSchema2.Person,
106
152
  target: TestSchema2.Person
@@ -108,8 +154,8 @@ import * as Schema from "effect/Schema";
108
154
  TestSchema2.EmployedBy = Schema.Struct({
109
155
  role: Schema.String,
110
156
  since: Schema.optional(Schema.String)
111
- }).pipe(Relation({
112
- typename: "example.com/type/EmployedBy",
157
+ }).pipe(relation({
158
+ typename: "com.example.type.employed-by",
113
159
  version: "0.1.0",
114
160
  source: TestSchema2.Person,
115
161
  target: TestSchema2.Organization
@@ -120,15 +166,15 @@ import * as Schema from "effect/Schema";
120
166
  RecordType[RecordType["WORK"] = 2] = "WORK";
121
167
  })(TestSchema2.RecordType || (TestSchema2.RecordType = {}));
122
168
  TestSchema2.Container = Schema.Struct({
123
- objects: Schema.mutable(Schema.Array(Ref(Any))),
124
- records: Schema.mutable(Schema.Array(Schema.partial(Schema.Struct({
169
+ objects: Schema.Array(Ref(Unknown)),
170
+ records: Schema.Array(Schema.partial(Schema.Struct({
125
171
  title: Schema.String,
126
172
  description: Schema.String,
127
- contacts: Schema.mutable(Schema.Array(Ref(TestSchema2.Person))),
173
+ contacts: Schema.Array(Ref(TestSchema2.Person)),
128
174
  type: Schema.Enums(TestSchema2.RecordType)
129
- }))))
130
- }).pipe(Schema.partial, Obj({
131
- typename: "example.com/type/Container",
175
+ })))
176
+ }).pipe(Schema.partial, object({
177
+ typename: "com.example.type.container",
132
178
  version: "0.1.0"
133
179
  }));
134
180
  })(TestSchema || (TestSchema = {}));
@@ -262,11 +308,8 @@ var TASKS = {
262
308
  };
263
309
 
264
310
  // src/testing/util.ts
265
- import { effect } from "@preact/signals-core";
266
- import { registerSignalsRuntime } from "@dxos/echo-signals";
267
311
  import { assertArgument } from "@dxos/invariant";
268
312
  import { deepMapValues } from "@dxos/util";
269
- registerSignalsRuntime();
270
313
  var createEchoSchema = (schema, version = "0.1.0") => {
271
314
  const jsonSchema = toJsonSchema(schema);
272
315
  const typename = getSchemaTypename(schema);
@@ -276,8 +319,7 @@ var createEchoSchema = (schema, version = "0.1.0") => {
276
319
  version,
277
320
  jsonSchema
278
321
  }));
279
- effect(() => {
280
- const _ = echoSchema.jsonSchema;
322
+ subscribe(echoSchema.persistentSchema, () => {
281
323
  echoSchema._invalidate();
282
324
  });
283
325
  return echoSchema;
@@ -301,15 +343,19 @@ var prepareAstForCompare = (obj) => deepMapValues(obj, (value, recurse) => {
301
343
  }
302
344
  return recurse(value);
303
345
  });
304
- var updateCounter = (touch) => {
305
- let updateCount = -1;
306
- const unsubscribe = effect(() => {
307
- touch();
346
+ var updateCounter = (...objects) => {
347
+ let updateCount = 0;
348
+ const unsubscribes = objects.map((obj) => subscribe(obj, () => {
308
349
  updateCount++;
309
- });
350
+ }));
351
+ const unsubscribeAll = () => {
352
+ for (const unsub of unsubscribes) {
353
+ unsub();
354
+ }
355
+ };
310
356
  return {
311
357
  // https://github.com/tc39/proposal-explicit-resource-management
312
- [Symbol.dispose]: unsubscribe,
358
+ [Symbol.dispose]: unsubscribeAll,
313
359
  get count() {
314
360
  return updateCount;
315
361
  }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts", "../../../../src/testing/util.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DatabaseDirectory, ObjectStructure } from '@dxos/echo-protocol';\nimport { DXN, ObjectId, PublicKey } from '@dxos/keys';\n\nimport { Type } from '../index';\nimport { TestSchema } from './test-schema';\n\nconst spaceKey = PublicKey.random();\n\n// TODO(burdon): Use Obj.make.\n\nexport const PEOPLE = {\n alice: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Alice',\n },\n }),\n },\n }),\n bob: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Bob',\n },\n }),\n },\n }),\n};\n\nexport const ORGS = {\n dxos: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'DXOS',\n founded: '2023',\n },\n }),\n },\n }),\n cyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'Cyberdyne Systems',\n founded: '1984',\n },\n }),\n },\n }),\n};\n\nexport const WORKS_FOR = {\n fredWorksForCyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects!)[0]).toString() },\n data: {\n since: '2020',\n position: 'Engineer',\n },\n }),\n },\n }),\n aliceWorksForAperture: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects!)[0]).toString() },\n data: {\n since: '2018',\n position: 'Research Scientist',\n },\n }),\n },\n }),\n};\n\nexport const TASKS = {\n task1: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Complete project documentation',\n description: 'Write comprehensive documentation for the new system',\n status: 'in-progress',\n dueDate: '2023-12-31',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n },\n }),\n },\n }),\n task2: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Run experiments',\n description: 'Conduct series of experiments on the portal device',\n status: 'pending',\n dueDate: '2023-11-15',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n },\n }),\n },\n }),\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Obj from '../Obj';\nimport * as Ref from '../Ref';\nimport * as Type from '../Type';\n\nexport namespace TestSchema {\n //\n // Expando\n //\n\n /**\n * Expando object is an object with an arbitrary set of properties.\n * This is the test variant with example.com namespace.\n */\n export const Expando = Schema.Struct({}, { key: Schema.String, value: Schema.Any }).pipe(\n Type.object({\n typename: 'com.example.type.expando',\n version: '0.1.0',\n }),\n );\n\n export interface Expando extends Schema.Schema.Type<typeof Expando> {}\n\n //\n // Example\n //\n\n const Nested = Schema.Struct({\n field: Schema.String,\n });\n\n export class TestClass {\n field = 'value';\n toJSON() {\n return { field: this.field };\n }\n }\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const ExampleSchema = Schema.Struct({\n string: Schema.String,\n number: Schema.Number,\n boolean: Schema.Boolean,\n null: Schema.Null,\n undefined: Schema.Undefined,\n stringArray: Schema.Array(Schema.String),\n twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),\n nested: Nested,\n nestedArray: Schema.Array(Nested),\n nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),\n reference: Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example)),\n referenceArray: Schema.Array(Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example))),\n classInstance: Schema.instanceOf(TestClass),\n other: Schema.Any,\n }).pipe(Schema.partial);\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface ExampleSchema extends Schema.Schema.Type<typeof ExampleSchema> {}\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const Example = ExampleSchema.pipe(\n Type.object({\n typename: 'com.example.type.example',\n version: '0.1.0',\n }),\n );\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface Example extends Schema.Schema.Type<typeof Example> {}\n\n //\n // Message\n //\n\n // TODO(burdon): Support defaults directly on Type: `make` is erased by `pipe(Type.Obj)`.\n export const MessageStruct = Schema.Struct({\n // TODO(burdon): Support S.Date; Custom Timestamp (with defaults).\n // TODO(burdon): Support defaults (update create and create).\n timestamp: Schema.String.pipe(\n Schema.propertySignature,\n Schema.withConstructorDefault(() => new Date().toISOString()),\n ),\n });\n\n export const Message = MessageStruct.pipe(\n Type.object({\n typename: 'com.example.type.message',\n version: '0.1.0',\n }),\n );\n\n export interface Message extends Schema.Schema.Type<typeof Message> {}\n\n //\n // Organization\n //\n\n export const Organization = Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.String,\n }),\n ),\n }).pipe(\n Type.object({\n typename: 'com.example.type.organization',\n version: '0.1.0',\n }),\n );\n\n export interface Organization extends Schema.Schema.Type<typeof Organization> {}\n\n //\n // Person\n //\n\n export const Person = Schema.Struct({\n name: Schema.String,\n username: Schema.String,\n email: Schema.String,\n age: Schema.Number.pipe(Schema.optional),\n tasks: Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n employer: Schema.optional(Ref.Ref(Organization)),\n address: Schema.Struct({\n city: Schema.optional(Schema.String),\n state: Schema.optional(Schema.String),\n zip: Schema.optional(Schema.String),\n coordinates: Schema.Struct({\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }),\n }),\n fields: Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n }).pipe(Schema.Array, Schema.optional),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.person',\n version: '0.1.0',\n }),\n );\n\n export interface Person extends Schema.Schema.Type<typeof Person> {}\n\n //\n // Task\n //\n\n export const Task = Schema.Struct({\n title: Schema.optional(Schema.String),\n deadline: Schema.optional(Schema.String),\n completed: Schema.optional(Schema.Boolean),\n assignee: Schema.optional(Ref.Ref(Person)),\n previous: Schema.optional(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n subTasks: Schema.optional(Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task)))),\n description: Schema.optional(Schema.String),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.task',\n version: '0.1.0',\n }),\n );\n\n export interface Task extends Schema.Schema.Type<typeof Task> {}\n\n //\n // HasManager\n //\n\n export const HasManager = Schema.Struct({}).pipe(\n Type.relation({\n typename: 'com.example.type.has-manager',\n version: '0.1.0',\n source: Person,\n target: Person,\n }),\n );\n\n export interface HasManager extends Schema.Schema.Type<typeof HasManager> {}\n\n //\n // EmployedBy\n //\n\n export const EmployedBy = Schema.Struct({\n role: Schema.String,\n since: Schema.optional(Schema.String),\n }).pipe(\n Type.relation({\n typename: 'com.example.type.employed-by',\n version: '0.1.0',\n source: Person,\n target: Organization,\n }),\n );\n\n export interface EmployedBy extends Schema.Schema.Type<typeof EmployedBy> {}\n\n //\n // RecordType\n //\n\n export enum RecordType {\n UNDEFINED = 0,\n PERSONAL = 1,\n WORK = 2,\n }\n\n export const Container = Schema.Struct({\n objects: Schema.Array(Ref.Ref(Obj.Unknown)),\n records: Schema.Array(\n Schema.partial(\n Schema.Struct({\n title: Schema.String,\n description: Schema.String,\n contacts: Schema.Array(Ref.Ref(Person)),\n type: Schema.Enums(RecordType),\n }),\n ),\n ),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.container',\n version: '0.1.0',\n }),\n );\n\n export interface Container extends Schema.Schema.Type<typeof Container> {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\nimport type * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { EchoSchema, PersistentSchema, getSchemaTypename, makeObject, subscribe, toJsonSchema } from '../internal';\n\n/**\n * Create a reactive mutable schema that updates when the JSON schema is updated.\n */\n// TODO(dmaretskyi): Should be replaced by registration of typed object.\nexport const createEchoSchema = (schema: Schema.Schema.AnyNoContext, version = '0.1.0'): EchoSchema => {\n const jsonSchema = toJsonSchema(schema);\n const typename = getSchemaTypename(schema);\n assertArgument(typename, 'typename', 'Schema does not have a typename.');\n const echoSchema = new EchoSchema(makeObject(PersistentSchema, { typename, version, jsonSchema }));\n\n // TODO(burdon): Unsubscribe is never called.\n subscribe(echoSchema.persistentSchema, () => {\n echoSchema._invalidate();\n });\n\n return echoSchema;\n};\n\n/**\n * Converts AST to a format that can be compared with test matchers.\n */\nexport const prepareAstForCompare = (obj: SchemaAST.AST): any =>\n deepMapValues(obj, (value: any, recurse: any) => {\n if (typeof value === 'function') {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n // Convert symbols to strings.\n if (typeof value === 'object') {\n const clone = { ...value };\n for (const sym of Object.getOwnPropertySymbols(clone as any)) {\n clone[sym.toString()] = clone[sym];\n delete clone[sym];\n }\n\n return recurse(clone);\n }\n\n return recurse(value);\n });\n\n/**\n * Creates an update counter that tracks changes to reactive objects.\n * @param objects - Reactive objects to subscribe to.\n * @returns An object with a count property and Symbol.dispose for cleanup.\n */\nexport const updateCounter = (...objects: object[]) => {\n let updateCount = 0;\n\n const unsubscribes = objects.map((obj) =>\n subscribe(obj, () => {\n updateCount++;\n }),\n );\n\n const unsubscribeAll = () => {\n for (const unsub of unsubscribes) {\n unsub();\n }\n };\n\n return {\n // https://github.com/tc39/proposal-explicit-resource-management\n [Symbol.dispose]: unsubscribeAll,\n get count() {\n return updateCount;\n },\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["DatabaseDirectory", "ObjectStructure", "DXN", "ObjectId", "PublicKey", "Schema", "TestSchema", "Expando", "Struct", "key", "String", "value", "Any", "pipe", "object", "typename", "version", "Nested", "field", "TestClass", "toJSON", "ExampleSchema", "string", "number", "Number", "boolean", "Boolean", "null", "Null", "undefined", "Undefined", "stringArray", "Array", "twoDimNumberArray", "nested", "nestedArray", "nestedNullableArray", "Union", "reference", "suspend", "Ref", "Example", "referenceArray", "classInstance", "instanceOf", "other", "partial", "MessageStruct", "timestamp", "propertySignature", "withConstructorDefault", "Date", "toISOString", "Message", "Organization", "name", "properties", "optional", "Record", "Person", "username", "email", "age", "tasks", "Task", "employer", "address", "city", "state", "zip", "coordinates", "lat", "lng", "fields", "label", "title", "deadline", "completed", "assignee", "previous", "subTasks", "description", "HasManager", "relation", "source", "target", "EmployedBy", "role", "since", "RecordType", "Container", "objects", "Unknown", "records", "contacts", "type", "Enums", "spaceKey", "PublicKey", "random", "PEOPLE", "alice", "DatabaseDirectory", "make", "toHex", "objects", "ObjectId", "ObjectStructure", "makeObject", "type", "Type", "getDXN", "TestSchema", "Person", "toString", "data", "name", "bob", "ORGS", "dxos", "Organization", "founded", "cyberdyne", "WORKS_FOR", "fredWorksForCyberdyne", "makeRelation", "EmployedBy", "source", "DXN", "fromLocalObjectId", "Object", "keys", "target", "since", "position", "aliceWorksForAperture", "TASKS", "task1", "Task", "title", "description", "status", "dueDate", "assignee", "task2", "assertArgument", "deepMapValues", "createEchoSchema", "schema", "version", "jsonSchema", "toJsonSchema", "typename", "getSchemaTypename", "assertArgument", "echoSchema", "EchoSchema", "makeObject", "PersistentSchema", "subscribe", "persistentSchema", "_invalidate", "prepareAstForCompare", "obj", "deepMapValues", "value", "recurse", "RegExp", "clone", "sym", "Object", "getOwnPropertySymbols", "toString", "updateCounter", "objects", "updateCount", "unsubscribes", "map", "unsubscribeAll", "unsub", "Symbol", "dispose", "count"]
7
+ }
@@ -1,2 +1,24 @@
1
- export { DescriptionAnnotation, FormInputAnnotation, GeneratorAnnotation, LabelAnnotation, SystemTypeAnnotation, TypeAnnotation, getDescription, getLabel, getTypeAnnotation, setDescription, setLabel, } from './internal/annotations';
1
+ export { DescriptionAnnotation, FormInputAnnotation, GeneratorAnnotation, LabelAnnotation, ReferenceAnnotation, SystemTypeAnnotation, TypeAnnotation, getDescriptionWithSchema, getLabelWithSchema, getTypeAnnotation, setDescriptionWithSchema, setLabelWithSchema, IconAnnotation, } from './internal/Annotation';
2
+ import type * as Schema from 'effect/Schema';
3
+ import * as internalAnnotations from './internal/Annotation';
4
+ interface MakeProps<T> {
5
+ id: string;
6
+ schema: Schema.Schema<T, any, never>;
7
+ }
8
+ /**
9
+ * Create a new schema annotation.
10
+ * Annotation can be assigned both to fields and to the schema itself.
11
+ * Annotation is serialized with the schema.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const ColorAnnotation = Annotation.make({
16
+ * id: 'org.dxos.annotation.color',
17
+ * schema: Schema.String,
18
+ * });
19
+ *
20
+ * const schema = Schema.String.annotations(ColorAnnotation.set('red'));
21
+ * ```
22
+ */
23
+ export declare const make: <T>(props: MakeProps<T>) => internalAnnotations.AnnotationHelper<T>;
2
24
  //# sourceMappingURL=Annotation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../src/Annotation.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACT,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../src/Annotation.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAE7D,UAAU,SAAS,CAAC,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAC7C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import * as internal from './internal';
3
+ import * as Obj from './Obj';
4
+ import * as Type from './Type';
5
+ /**
6
+ * A an ordered set of objects.
7
+ */
8
+ export declare const Collection: Type.Obj<{
9
+ readonly name?: string | undefined;
10
+ readonly objects: readonly internal.Ref<import("./Entity").OfKind<internal.EntityKind.Object> & Obj.Unknown>[];
11
+ }, Schema.Struct.Fields>;
12
+ export interface Collection extends Schema.Schema.Type<typeof Collection> {
13
+ }
14
+ export declare const make: (props?: Partial<Obj.MakeProps<typeof Collection>>) => Collection;
15
+ export declare const isCollection: (value: unknown) => value is Collection;
16
+ //# sourceMappingURL=Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../../src/Collection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,UAAU;;;wBAYtB,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E,eAAO,MAAM,IAAI,GAAI,QAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,UAAU,CAAC,CAAM,KAAG,UAC5B,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,UAAuC,CAAC"}
@@ -1,90 +1,27 @@
1
- import { type CleanupFn } from '@dxos/async';
2
- import { type QueryAST } from '@dxos/echo-protocol';
3
- import { type DXN, type PublicKey, type SpaceId } from '@dxos/keys';
4
- import { type QueryOptions as QueryOptionsProto } from '@dxos/protocols/proto/dxos/echo/filter';
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Layer from 'effect/Layer';
4
+ import * as Option from 'effect/Option';
5
+ import * as Schema from 'effect/Schema';
6
+ import type * as Types from 'effect/Types';
7
+ import { DXN, type SpaceId } from '@dxos/keys';
5
8
  import type * as Entity from './Entity';
6
- import type { Filter, Query } from './query';
7
- import type * as Ref from './Ref';
8
- /**
9
- * Individual query result entry.
10
- */
11
- export type QueryResultEntry<T extends Entity.Unknown = Entity.Unknown> = {
12
- id: string;
13
- spaceId: SpaceId;
14
- /**
15
- * May not be present for remote results.
16
- */
17
- object?: T;
18
- match?: {
19
- /**
20
- * Higher means better match.
21
- */
22
- rank: number;
23
- };
24
- /**
25
- * Query resolution metadata.
26
- */
27
- resolution?: {
28
- source: 'remote' | 'local' | 'index';
29
- /**
30
- * Query resolution time in milliseconds.
31
- */
32
- time: number;
33
- };
34
- };
35
- export type OneShotQueryResult<T extends Entity.Unknown = Entity.Unknown> = {
36
- results: QueryResultEntry<T>[];
37
- objects: T[];
38
- };
39
- export type QuerySubscriptionOptions = {
40
- /**
41
- * Fire the callback immediately.
42
- */
43
- fire?: boolean;
44
- };
45
- export interface QueryResult<T extends Entity.Unknown = Entity.Unknown> {
46
- readonly query: Query<T>;
47
- readonly results: QueryResultEntry<T>[];
48
- readonly objects: T[];
49
- run(opts?: QueryRunOptions): Promise<OneShotQueryResult<T>>;
50
- runSync(): QueryResultEntry<T>[];
51
- first(opts?: QueryRunOptions): Promise<T>;
52
- subscribe(callback?: (query: QueryResult<T>) => void, opts?: QuerySubscriptionOptions): CleanupFn;
53
- }
54
- export type QueryRunOptions = {
55
- timeout?: number;
56
- };
57
- /**
58
- * @deprecated Use `QueryAST.QueryOptions` instead.
59
- */
60
- export type QueryOptions = {
61
- /**
62
- * @deprecated Use `spaceIds` instead.
63
- */
64
- spaces?: PublicKey[];
65
- /**
66
- * Query only in specific spaces.
67
- */
68
- spaceIds?: string[];
69
- /**
70
- * Return only the first `limit` results.
71
- */
72
- limit?: number;
73
- /**
74
- * Query only local spaces, or remote on agent.
75
- * @default `QueryOptions.DataLocation.LOCAL`
76
- *
77
- * Options:
78
- * - proto3_optional = true
79
- */
80
- dataLocation?: QueryOptionsProto.DataLocation;
81
- };
9
+ import * as Err from './Err';
10
+ import type * as Filter from './Filter';
11
+ import type * as Hypergraph from './Hypergraph';
12
+ import { type AnyProperties } from './internal/common/types';
13
+ import type { Ref } from './internal/Ref/ref';
14
+ import type * as Obj from './Obj';
15
+ import type * as Query from './Query';
16
+ import type * as QueryResult from './QueryResult';
17
+ import type * as SchemaRegistry from './SchemaRegistry';
18
+ import type * as Type from './Type';
82
19
  /**
83
20
  * `query` API function declaration.
84
21
  */
85
22
  export interface QueryFn {
86
- <Q extends Query.Any>(query: Q, options?: (QueryAST.QueryOptions & QueryOptions) | undefined): QueryResult<Query.Type<Q>>;
87
- <F extends Filter.Any>(filter: F, options?: (QueryAST.QueryOptions & QueryOptions) | undefined): QueryResult<Filter.Type<F>>;
23
+ <Q extends Query.Any>(query: Q): QueryResult.QueryResult<Query.Type<Q>>;
24
+ <F extends Filter.Any>(filter: F): QueryResult.QueryResult<Filter.Type<F>>;
88
25
  }
89
26
  /**
90
27
  * Common interface for Database and Queue.
@@ -107,11 +44,45 @@ export type AddOptions = {
107
44
  */
108
45
  placeIn?: ObjectPlacement;
109
46
  };
47
+ export type FlushOptions = {
48
+ /**
49
+ * Write any pending changes to disk.
50
+ * @default true
51
+ */
52
+ disk?: boolean;
53
+ /**
54
+ * Wait for pending index updates.
55
+ * @default true
56
+ */
57
+ indexes?: boolean;
58
+ /**
59
+ * Flush pending updates to objects and queries.
60
+ * @default false
61
+ */
62
+ updates?: boolean;
63
+ };
64
+ /**
65
+ * Identifier denoting an ECHO Database.
66
+ */
67
+ export declare const TypeId: unique symbol;
68
+ export type TypeId = typeof TypeId;
110
69
  /**
111
70
  * ECHO Database interface.
112
71
  */
113
72
  export interface Database extends Queryable {
73
+ readonly [TypeId]: TypeId;
114
74
  get spaceId(): SpaceId;
75
+ get schemaRegistry(): SchemaRegistry.SchemaRegistry;
76
+ get graph(): Hypergraph.Hypergraph;
77
+ toJSON(): object;
78
+ /**
79
+ * Return object by local ID.
80
+ */
81
+ getObjectById<T extends Obj.Unknown = Obj.OfShape<AnyProperties>>(id: string, opts?: GetObjectByIdOptions): T | undefined;
82
+ /**
83
+ * Query objects.
84
+ */
85
+ query: QueryFn;
115
86
  /**
116
87
  * Creates a reference to an existing object in the database.
117
88
  *
@@ -120,11 +91,7 @@ export interface Database extends Queryable {
120
91
  * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
121
92
  * `db.makeRef(dxn)` is preferable in cases with access to the database.
122
93
  */
123
- makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref.Ref<T>;
124
- /**
125
- * Query objects.
126
- */
127
- query: QueryFn;
94
+ makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref<T>;
128
95
  /**
129
96
  * Adds object to the database.
130
97
  */
@@ -133,5 +100,97 @@ export interface Database extends Queryable {
133
100
  * Removes object from the database.
134
101
  */
135
102
  remove(obj: Entity.Unknown): void;
103
+ /**
104
+ * Wait for all pending changes to be saved to disk.
105
+ * Optionaly waits for changes to be propagated to indexes and event handlers.
106
+ */
107
+ flush(opts?: FlushOptions): Promise<void>;
136
108
  }
109
+ export declare const isDatabase: (obj: unknown) => obj is Database;
110
+ export declare const Database: Schema.Schema<Database>;
111
+ declare const Service_base: Context.TagClass<Service, "@dxos/echo/Database/Service", {
112
+ readonly db: Database;
113
+ }>;
114
+ /**
115
+ * Effect service tag for Database dependency injection.
116
+ */
117
+ export declare class Service extends Service_base {
118
+ }
119
+ /**
120
+ * Layer that provides a Database service that throws when accessed.
121
+ * Useful as a default layer when no database is available.
122
+ */
123
+ export declare const notAvailable: Layer.Layer<Service, never, never>;
124
+ /**
125
+ * Creates a Database service instance from a Database.
126
+ */
127
+ export declare const makeService: (db: Database) => Context.Tag.Service<Service>;
128
+ /**
129
+ * Creates a Layer that provides the Database service.
130
+ */
131
+ export declare const layer: (db: Database) => Layer.Layer<Service>;
132
+ /**
133
+ * Returns the space ID of the database.
134
+ */
135
+ export declare const spaceId: Effect.Effect<SpaceId, never, Service>;
136
+ /**
137
+ * Resolves an object by its DXN.
138
+ */
139
+ export declare const resolve: {
140
+ (ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;
141
+ <S extends Type.AnyEntity>(ref: DXN | Ref<any>, schema: S): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;
142
+ };
143
+ /**
144
+ * Loads an object reference.
145
+ */
146
+ export declare const load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never>;
147
+ /**
148
+ * Loads an object reference option.
149
+ */
150
+ export declare const loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never>;
151
+ /**
152
+ * Adds an object to the database.
153
+ * @see {@link Database.add}
154
+ */
155
+ export declare const add: <T extends Entity.Unknown>(obj: T) => Effect.Effect<T, never, Service>;
156
+ /**
157
+ * Removes an object from the database.
158
+ * @see {@link Database.remove}
159
+ */
160
+ export declare const remove: <T extends Entity.Unknown>(obj: T) => Effect.Effect<void, never, Service>;
161
+ /**
162
+ * Flushes pending changes to disk.
163
+ * @see {@link Database.flush}
164
+ */
165
+ export declare const flush: (opts?: FlushOptions) => Effect.Effect<void, never, Service>;
166
+ /**
167
+ * Creates a `QueryResult` object that can be subscribed to.
168
+ */
169
+ export declare const query: {
170
+ <Q extends Query.Any>(query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;
171
+ <F extends Filter.Any>(filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;
172
+ };
173
+ /**
174
+ * Executes the query once and returns the results.
175
+ */
176
+ export declare const runQuery: {
177
+ <Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
178
+ <F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
179
+ };
180
+ /**
181
+ * Executes the query once and returns the first result as or None.
182
+ */
183
+ export declare const runQueryFirst: {
184
+ <Q extends Query.Any>(query: Q): Effect.Effect<Option.Option<Query.Type<Q>>, never, Service>;
185
+ <F extends Filter.Any>(filter: F): Effect.Effect<Option.Option<Filter.Type<F>>, never, Service>;
186
+ };
187
+ /**
188
+ * Creates a schema query result that can be subscribed to.
189
+ */
190
+ export declare const schemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service>;
191
+ /**
192
+ * Executes a schema query once and returns the results.
193
+ */
194
+ export declare const runSchemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service>;
195
+ export {};
137
196
  //# sourceMappingURL=Database.d.ts.map