@dxos/echo 0.8.4-main.84f28bd → 0.8.4-main.937b3ca

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 (553) hide show
  1. package/README.md +2 -3
  2. package/dist/lib/browser/Annotation.mjs +33 -0
  3. package/dist/lib/browser/Annotation.mjs.map +7 -0
  4. package/dist/lib/browser/Database.mjs +18 -0
  5. package/dist/lib/browser/Database.mjs.map +7 -0
  6. package/dist/lib/browser/Entity.mjs +52 -0
  7. package/dist/lib/browser/Entity.mjs.map +7 -0
  8. package/dist/lib/browser/Err.mjs +11 -0
  9. package/dist/lib/browser/Err.mjs.map +7 -0
  10. package/dist/lib/browser/Filter.mjs +62 -0
  11. package/dist/lib/browser/Filter.mjs.map +7 -0
  12. package/dist/lib/browser/Format.mjs +67 -0
  13. package/dist/lib/browser/Format.mjs.map +7 -0
  14. package/dist/lib/browser/JsonSchema.mjs +20 -0
  15. package/dist/lib/browser/JsonSchema.mjs.map +7 -0
  16. package/dist/lib/browser/Key.mjs +13 -0
  17. package/dist/lib/browser/Key.mjs.map +7 -0
  18. package/dist/lib/browser/Obj.mjs +91 -0
  19. package/dist/lib/browser/Obj.mjs.map +7 -0
  20. package/dist/lib/browser/Order.mjs +13 -0
  21. package/dist/lib/browser/Order.mjs.map +7 -0
  22. package/dist/lib/browser/Query.mjs +27 -0
  23. package/dist/lib/browser/Query.mjs.map +7 -0
  24. package/dist/lib/browser/QueryResult.mjs +3 -0
  25. package/dist/lib/browser/QueryResult.mjs.map +7 -0
  26. package/dist/lib/browser/Ref.mjs +23 -0
  27. package/dist/lib/browser/Ref.mjs.map +7 -0
  28. package/dist/lib/browser/Relation.mjs +85 -0
  29. package/dist/lib/browser/Relation.mjs.map +7 -0
  30. package/dist/lib/browser/SchemaRegistry.mjs +3 -0
  31. package/dist/lib/browser/SchemaRegistry.mjs.map +7 -0
  32. package/dist/lib/browser/Tag.mjs +26 -0
  33. package/dist/lib/browser/Tag.mjs.map +7 -0
  34. package/dist/lib/browser/Type.mjs +48 -0
  35. package/dist/lib/browser/Type.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-22JMFST2.mjs +24 -0
  37. package/dist/lib/browser/chunk-22JMFST2.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-2SBB7OWV.mjs +250 -0
  39. package/dist/lib/browser/chunk-2SBB7OWV.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-6L5HHUVU.mjs +158 -0
  41. package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +7 -0
  42. package/dist/lib/browser/chunk-7STIBCP7.mjs +133 -0
  43. package/dist/lib/browser/chunk-7STIBCP7.mjs.map +7 -0
  44. package/dist/lib/browser/chunk-BJPE6CIC.mjs +3847 -0
  45. package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
  47. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
  48. package/dist/lib/browser/chunk-CJ5YELTO.mjs +39 -0
  49. package/dist/lib/browser/chunk-CJ5YELTO.mjs.map +7 -0
  50. package/dist/lib/browser/chunk-FPOISFQK.mjs +40 -0
  51. package/dist/lib/browser/chunk-FPOISFQK.mjs.map +7 -0
  52. package/dist/lib/browser/chunk-FRDT7RA4.mjs +403 -0
  53. package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +7 -0
  54. package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
  55. package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
  56. package/dist/lib/browser/chunk-IXVWLTG7.mjs +9 -0
  57. package/dist/lib/browser/chunk-IXVWLTG7.mjs.map +7 -0
  58. package/dist/lib/browser/chunk-JMKVF2YQ.mjs +43 -0
  59. package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +7 -0
  60. package/dist/lib/browser/chunk-KQQGVHFN.mjs +143 -0
  61. package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +7 -0
  62. package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
  63. package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
  64. package/dist/lib/browser/chunk-NOPVNWPT.mjs +204 -0
  65. package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +7 -0
  66. package/dist/lib/browser/chunk-PQZW3S6L.mjs +74 -0
  67. package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +7 -0
  68. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs +283 -0
  69. package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +7 -0
  70. package/dist/lib/browser/chunk-U2J7TA7K.mjs +57 -0
  71. package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +7 -0
  72. package/dist/lib/browser/chunk-W5D2GWAW.mjs +98 -0
  73. package/dist/lib/browser/chunk-W5D2GWAW.mjs.map +7 -0
  74. package/dist/lib/browser/chunk-XDIUHAAX.mjs +41 -0
  75. package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +7 -0
  76. package/dist/lib/browser/chunk-YKTSSMDS.mjs +69 -0
  77. package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +7 -0
  78. package/dist/lib/browser/chunk-ZAGAOZVY.mjs +288 -0
  79. package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +7 -0
  80. package/dist/lib/browser/chunk-ZHXZGIXD.mjs +9 -0
  81. package/dist/lib/browser/chunk-ZHXZGIXD.mjs.map +7 -0
  82. package/dist/lib/browser/index.mjs +72 -9
  83. package/dist/lib/browser/internal/index.mjs +457 -0
  84. package/dist/lib/browser/internal/index.mjs.map +7 -0
  85. package/dist/lib/browser/meta.json +1 -1
  86. package/dist/lib/browser/testing/index.mjs +332 -35
  87. package/dist/lib/browser/testing/index.mjs.map +4 -4
  88. package/dist/lib/node-esm/Annotation.mjs +33 -0
  89. package/dist/lib/node-esm/Annotation.mjs.map +7 -0
  90. package/dist/lib/node-esm/Database.mjs +18 -0
  91. package/dist/lib/node-esm/Database.mjs.map +7 -0
  92. package/dist/lib/node-esm/Entity.mjs +52 -0
  93. package/dist/lib/node-esm/Entity.mjs.map +7 -0
  94. package/dist/lib/node-esm/Err.mjs +11 -0
  95. package/dist/lib/node-esm/Err.mjs.map +7 -0
  96. package/dist/lib/node-esm/Filter.mjs +62 -0
  97. package/dist/lib/node-esm/Filter.mjs.map +7 -0
  98. package/dist/lib/node-esm/Format.mjs +67 -0
  99. package/dist/lib/node-esm/Format.mjs.map +7 -0
  100. package/dist/lib/node-esm/JsonSchema.mjs +20 -0
  101. package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
  102. package/dist/lib/node-esm/Key.mjs +13 -0
  103. package/dist/lib/node-esm/Key.mjs.map +7 -0
  104. package/dist/lib/node-esm/Obj.mjs +91 -0
  105. package/dist/lib/node-esm/Obj.mjs.map +7 -0
  106. package/dist/lib/node-esm/Order.mjs +13 -0
  107. package/dist/lib/node-esm/Order.mjs.map +7 -0
  108. package/dist/lib/node-esm/Query.mjs +27 -0
  109. package/dist/lib/node-esm/Query.mjs.map +7 -0
  110. package/dist/lib/node-esm/QueryResult.mjs +3 -0
  111. package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
  112. package/dist/lib/node-esm/Ref.mjs +23 -0
  113. package/dist/lib/node-esm/Ref.mjs.map +7 -0
  114. package/dist/lib/node-esm/Relation.mjs +85 -0
  115. package/dist/lib/node-esm/Relation.mjs.map +7 -0
  116. package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
  117. package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
  118. package/dist/lib/node-esm/Tag.mjs +26 -0
  119. package/dist/lib/node-esm/Tag.mjs.map +7 -0
  120. package/dist/lib/node-esm/Type.mjs +48 -0
  121. package/dist/lib/node-esm/Type.mjs.map +7 -0
  122. package/dist/lib/node-esm/chunk-4PNXQA64.mjs +250 -0
  123. package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +7 -0
  124. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +158 -0
  125. package/dist/lib/node-esm/chunk-5OBN7GZW.mjs.map +7 -0
  126. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
  127. package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
  128. package/dist/lib/node-esm/chunk-ANLVLWME.mjs +98 -0
  129. package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +7 -0
  130. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +57 -0
  131. package/dist/lib/node-esm/chunk-DMR7OAFK.mjs.map +7 -0
  132. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +133 -0
  133. package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +7 -0
  134. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  135. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  136. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +204 -0
  137. package/dist/lib/node-esm/chunk-ILMLLM4R.mjs.map +7 -0
  138. package/dist/lib/node-esm/chunk-K37NA7PO.mjs +43 -0
  139. package/dist/lib/node-esm/chunk-K37NA7PO.mjs.map +7 -0
  140. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +3847 -0
  141. package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +7 -0
  142. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +9 -0
  143. package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +7 -0
  144. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
  145. package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
  146. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +40 -0
  147. package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs.map +7 -0
  148. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +143 -0
  149. package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs.map +7 -0
  150. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +41 -0
  151. package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs.map +7 -0
  152. package/dist/lib/node-esm/chunk-QYR67VBV.mjs +288 -0
  153. package/dist/lib/node-esm/chunk-QYR67VBV.mjs.map +7 -0
  154. package/dist/lib/node-esm/chunk-UKGVOINP.mjs +9 -0
  155. package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +7 -0
  156. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +403 -0
  157. package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs.map +7 -0
  158. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +69 -0
  159. package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +7 -0
  160. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +74 -0
  161. package/dist/lib/node-esm/chunk-Y75VU7LB.mjs.map +7 -0
  162. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +283 -0
  163. package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +7 -0
  164. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +39 -0
  165. package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +7 -0
  166. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs +24 -0
  167. package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +7 -0
  168. package/dist/lib/node-esm/index.mjs +72 -9
  169. package/dist/lib/node-esm/internal/index.mjs +457 -0
  170. package/dist/lib/node-esm/internal/index.mjs.map +7 -0
  171. package/dist/lib/node-esm/meta.json +1 -1
  172. package/dist/lib/node-esm/testing/index.mjs +332 -35
  173. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  174. package/dist/types/src/Annotation.d.ts +2 -0
  175. package/dist/types/src/Annotation.d.ts.map +1 -0
  176. package/dist/types/src/Database.d.ts +194 -0
  177. package/dist/types/src/Database.d.ts.map +1 -0
  178. package/dist/types/src/Entity.d.ts +142 -0
  179. package/dist/types/src/Entity.d.ts.map +1 -0
  180. package/dist/types/src/Entity.test.d.ts +2 -0
  181. package/dist/types/src/Entity.test.d.ts.map +1 -0
  182. package/dist/types/src/Err.d.ts +64 -0
  183. package/dist/types/src/Err.d.ts.map +1 -0
  184. package/dist/types/src/Filter.d.ts +120 -0
  185. package/dist/types/src/Filter.d.ts.map +1 -0
  186. package/dist/types/src/Format.d.ts +4 -0
  187. package/dist/types/src/Format.d.ts.map +1 -0
  188. package/dist/types/src/Hypergraph.d.ts +60 -0
  189. package/dist/types/src/Hypergraph.d.ts.map +1 -0
  190. package/dist/types/src/JsonSchema.d.ts +9 -0
  191. package/dist/types/src/JsonSchema.d.ts.map +1 -0
  192. package/dist/types/src/Key.d.ts +1 -0
  193. package/dist/types/src/Key.d.ts.map +1 -1
  194. package/dist/types/src/Obj.d.ts +344 -34
  195. package/dist/types/src/Obj.d.ts.map +1 -1
  196. package/dist/types/src/Obj.test.d.ts +2 -0
  197. package/dist/types/src/Obj.test.d.ts.map +1 -0
  198. package/dist/types/src/Order.d.ts +16 -0
  199. package/dist/types/src/Order.d.ts.map +1 -0
  200. package/dist/types/src/Query.d.ts +115 -0
  201. package/dist/types/src/Query.d.ts.map +1 -0
  202. package/dist/types/src/Query.test.d.ts +2 -0
  203. package/dist/types/src/Query.test.d.ts.map +1 -0
  204. package/dist/types/src/QueryResult.d.ts +80 -0
  205. package/dist/types/src/QueryResult.d.ts.map +1 -0
  206. package/dist/types/src/Ref.d.ts +13 -11
  207. package/dist/types/src/Ref.d.ts.map +1 -1
  208. package/dist/types/src/Relation.d.ts +242 -19
  209. package/dist/types/src/Relation.d.ts.map +1 -1
  210. package/dist/types/src/Relation.test.d.ts +2 -0
  211. package/dist/types/src/Relation.test.d.ts.map +1 -0
  212. package/dist/types/src/SchemaRegistry.d.ts +84 -0
  213. package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
  214. package/dist/types/src/Tag.d.ts +17 -0
  215. package/dist/types/src/Tag.d.ts.map +1 -0
  216. package/dist/types/src/Type.d.ts +225 -73
  217. package/dist/types/src/Type.d.ts.map +1 -1
  218. package/dist/types/src/Type.test.d.ts +2 -0
  219. package/dist/types/src/Type.test.d.ts.map +1 -0
  220. package/dist/types/src/index.d.ts +15 -3
  221. package/dist/types/src/index.d.ts.map +1 -1
  222. package/dist/types/src/internal/annotations/annotations.d.ts +170 -0
  223. package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
  224. package/dist/types/src/internal/annotations/annotations.test.d.ts +2 -0
  225. package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
  226. package/dist/types/src/internal/annotations/index.d.ts +3 -0
  227. package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
  228. package/dist/types/src/internal/annotations/util.d.ts +27 -0
  229. package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
  230. package/dist/types/src/internal/api/annotations.d.ts +23 -0
  231. package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
  232. package/dist/types/src/internal/api/entity.d.ts +13 -0
  233. package/dist/types/src/internal/api/entity.d.ts.map +1 -0
  234. package/dist/types/src/internal/api/index.d.ts +15 -0
  235. package/dist/types/src/internal/api/index.d.ts.map +1 -0
  236. package/dist/types/src/internal/api/meta.d.ts +42 -0
  237. package/dist/types/src/internal/api/meta.d.ts.map +1 -0
  238. package/dist/types/src/internal/api/sorting.d.ts +24 -0
  239. package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
  240. package/dist/types/src/internal/api/version.d.ts +42 -0
  241. package/dist/types/src/internal/api/version.d.ts.map +1 -0
  242. package/dist/types/src/internal/entities/entity.d.ts +20 -0
  243. package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
  244. package/dist/types/src/internal/entities/index.d.ts +6 -0
  245. package/dist/types/src/internal/entities/index.d.ts.map +1 -0
  246. package/dist/types/src/internal/entities/model.d.ts +77 -0
  247. package/dist/types/src/internal/entities/model.d.ts.map +1 -0
  248. package/dist/types/src/internal/entities/object.d.ts +18 -0
  249. package/dist/types/src/internal/entities/object.d.ts.map +1 -0
  250. package/dist/types/src/internal/entities/relation.d.ts +62 -0
  251. package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
  252. package/dist/types/src/internal/entities/util.d.ts +2 -0
  253. package/dist/types/src/internal/entities/util.d.ts.map +1 -0
  254. package/dist/types/src/internal/formats/date.d.ts +63 -0
  255. package/dist/types/src/internal/formats/date.d.ts.map +1 -0
  256. package/dist/types/src/internal/formats/date.test.d.ts +2 -0
  257. package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
  258. package/dist/types/src/internal/formats/format.d.ts +32 -0
  259. package/dist/types/src/internal/formats/format.d.ts.map +1 -0
  260. package/dist/types/src/internal/formats/format.test.d.ts +2 -0
  261. package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
  262. package/dist/types/src/internal/formats/index.d.ts +8 -0
  263. package/dist/types/src/internal/formats/index.d.ts.map +1 -0
  264. package/dist/types/src/internal/formats/number.d.ts +31 -0
  265. package/dist/types/src/internal/formats/number.d.ts.map +1 -0
  266. package/dist/types/src/internal/formats/object.d.ts +35 -0
  267. package/dist/types/src/internal/formats/object.d.ts.map +1 -0
  268. package/dist/types/src/internal/formats/select.d.ts +13 -0
  269. package/dist/types/src/internal/formats/select.d.ts.map +1 -0
  270. package/dist/types/src/internal/formats/string.d.ts +42 -0
  271. package/dist/types/src/internal/formats/string.d.ts.map +1 -0
  272. package/dist/types/src/internal/formats/types.d.ts +72 -0
  273. package/dist/types/src/internal/formats/types.d.ts.map +1 -0
  274. package/dist/types/src/internal/index.d.ts +12 -0
  275. package/dist/types/src/internal/index.d.ts.map +1 -0
  276. package/dist/types/src/internal/json-schema/annotations.d.ts +19 -0
  277. package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
  278. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts +2 -0
  279. package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
  280. package/dist/types/src/internal/json-schema/index.d.ts +5 -0
  281. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
  282. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
  283. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
  284. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
  285. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
  286. package/dist/types/src/internal/json-schema/json-schema.d.ts +29 -0
  287. package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
  288. package/dist/types/src/internal/json-schema/json-schema.test.d.ts +2 -0
  289. package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
  290. package/dist/types/src/internal/object/clone.d.ts +8 -0
  291. package/dist/types/src/internal/object/clone.d.ts.map +1 -0
  292. package/dist/types/src/internal/object/common.d.ts +18 -0
  293. package/dist/types/src/internal/object/common.d.ts.map +1 -0
  294. package/dist/types/src/internal/object/create-object.d.ts +39 -0
  295. package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
  296. package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
  297. package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
  298. package/dist/types/src/internal/object/deleted.d.ts +6 -0
  299. package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
  300. package/dist/types/src/internal/object/ids.d.ts +6 -0
  301. package/dist/types/src/internal/object/ids.d.ts.map +1 -0
  302. package/dist/types/src/internal/object/index.d.ts +11 -0
  303. package/dist/types/src/internal/object/index.d.ts.map +1 -0
  304. package/dist/types/src/internal/object/inspect.d.ts +2 -0
  305. package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
  306. package/dist/types/src/internal/object/json-serializer.d.ts +37 -0
  307. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
  308. package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
  309. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
  310. package/dist/types/src/internal/object/schema-validator.d.ts +2 -0
  311. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
  312. package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
  313. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
  314. package/dist/types/src/internal/object/set-value.d.ts +7 -0
  315. package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
  316. package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
  317. package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
  318. package/dist/types/src/internal/object/snapshot.d.ts +6 -0
  319. package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
  320. package/dist/types/src/internal/object/typed-object.d.ts +25 -0
  321. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
  322. package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
  323. package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
  324. package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
  325. package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
  326. package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
  327. package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
  328. package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
  329. package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
  330. package/dist/types/src/internal/proxy/errors.d.ts +19 -0
  331. package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
  332. package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
  333. package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
  334. package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
  335. package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
  336. package/dist/types/src/internal/proxy/index.d.ts +14 -0
  337. package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
  338. package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
  339. package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
  340. package/dist/types/src/internal/proxy/make-object.d.ts +14 -0
  341. package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
  342. package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
  343. package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
  344. package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
  345. package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
  346. package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
  347. package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
  348. package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
  349. package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
  350. package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
  351. package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
  352. package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
  353. package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
  354. package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
  355. package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
  356. package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
  357. package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
  358. package/dist/types/src/internal/proxy/typed-handler.d.ts +47 -0
  359. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
  360. package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
  361. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
  362. package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
  363. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
  364. package/dist/types/src/internal/ref/index.d.ts +3 -0
  365. package/dist/types/src/internal/ref/index.d.ts.map +1 -0
  366. package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
  367. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
  368. package/dist/types/src/internal/ref/ref.d.ts +217 -0
  369. package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
  370. package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
  371. package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
  372. package/dist/types/src/internal/schema/compose.d.ts +6 -0
  373. package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
  374. package/dist/types/src/internal/schema/compose.test.d.ts +2 -0
  375. package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
  376. package/dist/types/src/internal/schema/echo-schema.d.ts +180 -0
  377. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
  378. package/dist/types/src/internal/schema/index.d.ts +4 -0
  379. package/dist/types/src/internal/schema/index.d.ts.map +1 -0
  380. package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
  381. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
  382. package/dist/types/src/internal/schema/persistent-schema.d.ts +20 -0
  383. package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
  384. package/dist/types/src/internal/types/base.d.ts +26 -0
  385. package/dist/types/src/internal/types/base.d.ts.map +1 -0
  386. package/dist/types/src/internal/types/entity.d.ts +37 -0
  387. package/dist/types/src/internal/types/entity.d.ts.map +1 -0
  388. package/dist/types/src/internal/types/index.d.ts +6 -0
  389. package/dist/types/src/internal/types/index.d.ts.map +1 -0
  390. package/dist/types/src/internal/types/meta.d.ts +32 -0
  391. package/dist/types/src/internal/types/meta.d.ts.map +1 -0
  392. package/dist/types/src/internal/types/typename.d.ts +13 -0
  393. package/dist/types/src/internal/types/typename.d.ts.map +1 -0
  394. package/dist/types/src/internal/types/version.d.ts +15 -0
  395. package/dist/types/src/internal/types/version.d.ts.map +1 -0
  396. package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
  397. package/dist/types/src/testing/index.d.ts +3 -1
  398. package/dist/types/src/testing/index.d.ts.map +1 -1
  399. package/dist/types/src/testing/test-data.d.ts +18 -0
  400. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  401. package/dist/types/src/testing/test-schema.d.ts +303 -0
  402. package/dist/types/src/testing/test-schema.d.ts.map +1 -0
  403. package/dist/types/src/testing/util.d.ts +21 -0
  404. package/dist/types/src/testing/util.d.ts.map +1 -0
  405. package/dist/types/tsconfig.tsbuildinfo +1 -1
  406. package/package.json +166 -33
  407. package/src/Annotation.ts +18 -0
  408. package/src/Database.ts +336 -0
  409. package/src/Entity.test.ts +22 -0
  410. package/src/Entity.ts +217 -0
  411. package/src/Err.ts +18 -0
  412. package/src/Filter.ts +376 -0
  413. package/src/Format.ts +9 -0
  414. package/src/Hypergraph.ts +74 -0
  415. package/src/JsonSchema.ts +16 -0
  416. package/src/Key.ts +3 -0
  417. package/src/Obj.test.ts +386 -0
  418. package/src/Obj.ts +509 -85
  419. package/src/Order.ts +44 -0
  420. package/src/Query.test.ts +465 -0
  421. package/src/Query.ts +296 -0
  422. package/src/QueryResult.ts +106 -0
  423. package/src/Ref.ts +25 -9
  424. package/src/Relation.test.ts +82 -0
  425. package/src/Relation.ts +414 -51
  426. package/src/SchemaRegistry.ts +105 -0
  427. package/src/Tag.ts +40 -0
  428. package/src/Type.test.ts +52 -0
  429. package/src/Type.ts +360 -112
  430. package/src/index.ts +17 -4
  431. package/src/internal/README.md +102 -0
  432. package/src/internal/annotations/annotations.test.ts +96 -0
  433. package/src/internal/annotations/annotations.ts +460 -0
  434. package/src/internal/annotations/index.ts +6 -0
  435. package/src/internal/annotations/util.ts +72 -0
  436. package/src/internal/api/annotations.ts +60 -0
  437. package/src/internal/api/entity.ts +29 -0
  438. package/src/internal/api/index.ts +19 -0
  439. package/src/internal/api/meta.ts +88 -0
  440. package/src/internal/api/sorting.ts +53 -0
  441. package/src/internal/api/version.ts +96 -0
  442. package/src/internal/entities/entity.ts +126 -0
  443. package/src/internal/entities/index.ts +9 -0
  444. package/src/internal/entities/model.ts +134 -0
  445. package/src/internal/entities/object.ts +60 -0
  446. package/src/internal/entities/relation.ts +173 -0
  447. package/src/internal/entities/util.ts +33 -0
  448. package/src/internal/formats/date.test.ts +56 -0
  449. package/src/internal/formats/date.ts +217 -0
  450. package/src/internal/formats/format.test.ts +77 -0
  451. package/src/internal/formats/format.ts +54 -0
  452. package/src/internal/formats/index.ts +12 -0
  453. package/src/internal/formats/number.ts +89 -0
  454. package/src/internal/formats/object.ts +80 -0
  455. package/src/internal/formats/select.ts +18 -0
  456. package/src/internal/formats/string.ts +81 -0
  457. package/src/internal/formats/types.ts +186 -0
  458. package/src/internal/index.ts +39 -0
  459. package/src/internal/json-schema/annotations.ts +50 -0
  460. package/src/internal/json-schema/effect-schema.test.ts +143 -0
  461. package/src/internal/json-schema/index.ts +8 -0
  462. package/src/internal/json-schema/json-schema-normalize.ts +109 -0
  463. package/src/internal/json-schema/json-schema-type.ts +404 -0
  464. package/src/internal/json-schema/json-schema.test.ts +861 -0
  465. package/src/internal/json-schema/json-schema.ts +528 -0
  466. package/src/internal/object/clone.ts +48 -0
  467. package/src/internal/object/common.ts +75 -0
  468. package/src/internal/object/create-object.test.ts +116 -0
  469. package/src/internal/object/create-object.ts +95 -0
  470. package/src/internal/object/deleted.ts +19 -0
  471. package/src/internal/object/ids.ts +12 -0
  472. package/src/internal/object/index.ts +14 -0
  473. package/src/internal/object/inspect.ts +46 -0
  474. package/src/internal/object/json-serializer.test.ts +97 -0
  475. package/src/internal/object/json-serializer.ts +188 -0
  476. package/src/internal/object/schema-validator.test.ts +186 -0
  477. package/src/internal/object/schema-validator.ts +6 -0
  478. package/src/internal/object/set-value.test.ts +281 -0
  479. package/src/internal/object/set-value.ts +165 -0
  480. package/src/internal/object/snapshot.ts +70 -0
  481. package/src/internal/object/typed-object.test.ts +34 -0
  482. package/src/internal/object/typed-object.ts +30 -0
  483. package/src/internal/proxy/change-context.ts +138 -0
  484. package/src/internal/proxy/change.test.ts +519 -0
  485. package/src/internal/proxy/define-hidden-property.ts +14 -0
  486. package/src/internal/proxy/errors.ts +42 -0
  487. package/src/internal/proxy/event-batch.ts +44 -0
  488. package/src/internal/proxy/handler.test.ts +123 -0
  489. package/src/internal/proxy/index.ts +17 -0
  490. package/src/internal/proxy/json-serializer.ts +87 -0
  491. package/src/internal/proxy/make-object.ts +96 -0
  492. package/src/internal/proxy/ownership.ts +253 -0
  493. package/src/internal/proxy/proxy-types.ts +23 -0
  494. package/src/internal/proxy/proxy-utils.ts +150 -0
  495. package/src/internal/proxy/reactive-array.ts +71 -0
  496. package/src/internal/proxy/reactive.ts +69 -0
  497. package/src/internal/proxy/schema-validator.ts +244 -0
  498. package/src/internal/proxy/schema.test.ts +145 -0
  499. package/src/internal/proxy/symbols.ts +7 -0
  500. package/src/internal/proxy/typed-handler.test.ts +318 -0
  501. package/src/internal/proxy/typed-handler.ts +442 -0
  502. package/src/internal/proxy/typed-object.test.ts +116 -0
  503. package/src/internal/ref/index.ts +6 -0
  504. package/src/internal/ref/ref-array.ts +39 -0
  505. package/src/internal/ref/ref.test.ts +101 -0
  506. package/src/internal/ref/ref.ts +548 -0
  507. package/src/internal/schema/compose.test.ts +42 -0
  508. package/src/internal/schema/compose.ts +36 -0
  509. package/src/internal/schema/echo-schema.ts +423 -0
  510. package/src/internal/schema/index.ts +7 -0
  511. package/src/internal/schema/manipulation.ts +92 -0
  512. package/src/internal/schema/persistent-schema.ts +27 -0
  513. package/src/internal/types/base.ts +43 -0
  514. package/src/internal/types/entity.ts +54 -0
  515. package/src/internal/types/index.ts +9 -0
  516. package/src/internal/types/meta.ts +66 -0
  517. package/src/internal/types/typename.ts +45 -0
  518. package/src/internal/types/version.ts +20 -0
  519. package/src/testing/api.test.ts +126 -0
  520. package/src/testing/index.ts +3 -1
  521. package/src/testing/test-data.ts +130 -0
  522. package/src/testing/test-schema.ts +238 -0
  523. package/src/testing/util.ts +85 -0
  524. package/dist/lib/browser/chunk-SVSJEELN.mjs +0 -619
  525. package/dist/lib/browser/chunk-SVSJEELN.mjs.map +0 -7
  526. package/dist/lib/node-esm/chunk-53HXWYR6.mjs +0 -619
  527. package/dist/lib/node-esm/chunk-53HXWYR6.mjs.map +0 -7
  528. package/dist/types/src/experimental/database.d.ts +0 -8
  529. package/dist/types/src/experimental/database.d.ts.map +0 -1
  530. package/dist/types/src/experimental/index.d.ts +0 -1
  531. package/dist/types/src/experimental/index.d.ts.map +0 -1
  532. package/dist/types/src/experimental/queue.d.ts +0 -8
  533. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  534. package/dist/types/src/experimental/space.d.ts +0 -8
  535. package/dist/types/src/experimental/space.d.ts.map +0 -1
  536. package/dist/types/src/query/dsl.d.ts +0 -218
  537. package/dist/types/src/query/dsl.d.ts.map +0 -1
  538. package/dist/types/src/query/dsl.test.d.ts +0 -2
  539. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  540. package/dist/types/src/query/index.d.ts +0 -2
  541. package/dist/types/src/query/index.d.ts.map +0 -1
  542. package/dist/types/src/testing/types.d.ts +0 -113
  543. package/dist/types/src/testing/types.d.ts.map +0 -1
  544. package/src/experimental/database.ts +0 -11
  545. package/src/experimental/index.ts +0 -7
  546. package/src/experimental/queue.ts +0 -11
  547. package/src/experimental/space.ts +0 -11
  548. package/src/query/dsl.test.ts +0 -323
  549. package/src/query/dsl.ts +0 -646
  550. package/src/query/index.ts +0 -5
  551. package/src/test/api.test.ts +0 -173
  552. package/src/testing/types.ts +0 -91
  553. /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
@@ -0,0 +1,85 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import type * as Schema from 'effect/Schema';
6
+ import type * as SchemaAST from 'effect/SchemaAST';
7
+
8
+ import { assertArgument } from '@dxos/invariant';
9
+ import { deepMapValues } from '@dxos/util';
10
+
11
+ import { EchoSchema, PersistentSchema, getSchemaTypename, makeObject, subscribe, toJsonSchema } from '../internal';
12
+
13
+ /**
14
+ * Create a reactive mutable schema that updates when the JSON schema is updated.
15
+ */
16
+ // TODO(dmaretskyi): Should be replaced by registration of typed object.
17
+ export const createEchoSchema = (schema: Schema.Schema.AnyNoContext, version = '0.1.0'): EchoSchema => {
18
+ const jsonSchema = toJsonSchema(schema);
19
+ const typename = getSchemaTypename(schema);
20
+ assertArgument(typename, 'typename', 'Schema does not have a typename.');
21
+ const echoSchema = new EchoSchema(makeObject(PersistentSchema, { typename, version, jsonSchema }));
22
+
23
+ // TODO(burdon): Unsubscribe is never called.
24
+ subscribe(echoSchema.persistentSchema, () => {
25
+ echoSchema._invalidate();
26
+ });
27
+
28
+ return echoSchema;
29
+ };
30
+
31
+ /**
32
+ * Converts AST to a format that can be compared with test matchers.
33
+ */
34
+ export const prepareAstForCompare = (obj: SchemaAST.AST): any =>
35
+ deepMapValues(obj, (value: any, recurse: any) => {
36
+ if (typeof value === 'function') {
37
+ return null;
38
+ }
39
+
40
+ if (value instanceof RegExp) {
41
+ return value;
42
+ }
43
+
44
+ // Convert symbols to strings.
45
+ if (typeof value === 'object') {
46
+ const clone = { ...value };
47
+ for (const sym of Object.getOwnPropertySymbols(clone as any)) {
48
+ clone[sym.toString()] = clone[sym];
49
+ delete clone[sym];
50
+ }
51
+
52
+ return recurse(clone);
53
+ }
54
+
55
+ return recurse(value);
56
+ });
57
+
58
+ /**
59
+ * Creates an update counter that tracks changes to reactive objects.
60
+ * @param objects - Reactive objects to subscribe to.
61
+ * @returns An object with a count property and Symbol.dispose for cleanup.
62
+ */
63
+ export const updateCounter = (...objects: object[]) => {
64
+ let updateCount = 0;
65
+
66
+ const unsubscribes = objects.map((obj) =>
67
+ subscribe(obj, () => {
68
+ updateCount++;
69
+ }),
70
+ );
71
+
72
+ const unsubscribeAll = () => {
73
+ for (const unsub of unsubscribes) {
74
+ unsub();
75
+ }
76
+ };
77
+
78
+ return {
79
+ // https://github.com/tc39/proposal-explicit-resource-management
80
+ [Symbol.dispose]: unsubscribeAll,
81
+ get count() {
82
+ return updateCount;
83
+ },
84
+ };
85
+ };
@@ -1,619 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- var __defProp = Object.defineProperty;
3
- var __export = (target, all) => {
4
- for (var name in all)
5
- __defProp(target, name, { get: all[name], enumerable: true });
6
- };
7
-
8
- // src/Key.ts
9
- var Key_exports = {};
10
- __export(Key_exports, {
11
- ObjectId: () => ObjectId,
12
- SpaceId: () => SpaceId
13
- });
14
- import { SpaceId, ObjectId } from "@dxos/keys";
15
-
16
- // src/Obj.ts
17
- var Obj_exports = {};
18
- __export(Obj_exports, {
19
- fromJSON: () => fromJSON,
20
- getDXN: () => getDXN,
21
- getLabel: () => getLabel2,
22
- getMeta: () => getMeta2,
23
- getSchema: () => getSchema2,
24
- getTypeDXN: () => getTypeDXN,
25
- getTypename: () => getTypename,
26
- instanceOf: () => instanceOf,
27
- isDeleted: () => isDeleted2,
28
- isObject: () => isObject,
29
- make: () => make,
30
- toJSON: () => toJSON
31
- });
32
- import { Schema } from "effect";
33
- import * as EchoSchema from "@dxos/echo-schema";
34
- import { assertArgument, invariant } from "@dxos/invariant";
35
- import { live } from "@dxos/live-object";
36
- import { assumeType } from "@dxos/util";
37
- var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
38
- var make = (schema, props, meta) => {
39
- assertArgument(EchoSchema.getTypeAnnotation(schema)?.kind === EchoSchema.EntityKind.Object, "Expected an object schema");
40
- if (props[EchoSchema.MetaId] != null) {
41
- meta = props[EchoSchema.MetaId];
42
- delete props[EchoSchema.MetaId];
43
- }
44
- return live(schema, props, meta);
45
- };
46
- var isObject = (obj) => {
47
- assumeType(obj);
48
- return typeof obj === "object" && obj !== null && obj[EchoSchema.EntityKindId] === EchoSchema.EntityKind.Object;
49
- };
50
- var instanceOf = (...args) => {
51
- if (args.length === 1) {
52
- return (obj) => EchoSchema.isInstanceOf(args[0], obj);
53
- }
54
- return EchoSchema.isInstanceOf(args[0], args[1]);
55
- };
56
- var getSchema2 = EchoSchema.getSchema;
57
- var getDXN = (obj) => {
58
- assertArgument(!Schema.isSchema(obj), "Object should not be a schema.");
59
- const dxn = EchoSchema.getObjectDXN(obj);
60
- invariant(dxn != null, "Invalid object.", {
61
- F: __dxlog_file,
62
- L: 96,
63
- S: void 0,
64
- A: [
65
- "dxn != null",
66
- "'Invalid object.'"
67
- ]
68
- });
69
- return dxn;
70
- };
71
- var getTypeDXN = EchoSchema.getType;
72
- var getTypename = (obj) => {
73
- const schema = getSchema2(obj);
74
- if (schema == null) {
75
- return EchoSchema.getType(obj)?.asTypeDXN()?.type;
76
- }
77
- return EchoSchema.getSchemaTypename(schema);
78
- };
79
- var getMeta2 = (obj) => {
80
- const meta = EchoSchema.getMeta(obj);
81
- invariant(meta != null, "Invalid object.", {
82
- F: __dxlog_file,
83
- L: 124,
84
- S: void 0,
85
- A: [
86
- "meta != null",
87
- "'Invalid object.'"
88
- ]
89
- });
90
- return meta;
91
- };
92
- var isDeleted2 = (obj) => {
93
- const deleted = EchoSchema.isDeleted(obj);
94
- invariant(typeof deleted === "boolean", "Invalid object.", {
95
- F: __dxlog_file,
96
- L: 131,
97
- S: void 0,
98
- A: [
99
- "typeof deleted === 'boolean'",
100
- "'Invalid object.'"
101
- ]
102
- });
103
- return deleted;
104
- };
105
- var getLabel2 = (obj) => {
106
- const schema = getSchema2(obj);
107
- if (schema != null) {
108
- return EchoSchema.getLabel(schema, obj);
109
- }
110
- };
111
- var toJSON = (obj) => EchoSchema.objectToJSON(obj);
112
- var fromJSON = EchoSchema.objectFromJSON;
113
-
114
- // src/Ref.ts
115
- var Ref_exports = {};
116
- __export(Ref_exports, {
117
- Array: () => Array2,
118
- fromDXN: () => fromDXN,
119
- isRef: () => isRef,
120
- make: () => make2
121
- });
122
- import * as EchoSchema2 from "@dxos/echo-schema";
123
- var Array2 = EchoSchema2.RefArray;
124
- var isRef = EchoSchema2.Ref.isRef;
125
- var make2 = EchoSchema2.Ref.make;
126
- var fromDXN = EchoSchema2.Ref.fromDXN;
127
-
128
- // src/Relation.ts
129
- var Relation_exports = {};
130
- __export(Relation_exports, {
131
- Source: () => Source,
132
- Target: () => Target,
133
- getSource: () => getSource,
134
- getSourceDXN: () => getSourceDXN,
135
- getTarget: () => getTarget,
136
- getTargetDXN: () => getTargetDXN,
137
- isRelation: () => isRelation,
138
- make: () => make3
139
- });
140
- import { raise } from "@dxos/debug";
141
- import * as EchoSchema3 from "@dxos/echo-schema";
142
- import { assertArgument as assertArgument2, invariant as invariant2 } from "@dxos/invariant";
143
- import { DXN } from "@dxos/keys";
144
- import { live as live2 } from "@dxos/live-object";
145
- import { assumeType as assumeType2 } from "@dxos/util";
146
- var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Relation.ts";
147
- var Source = EchoSchema3.RelationSourceId;
148
- var Target = EchoSchema3.RelationTargetId;
149
- var make3 = (schema, props, meta) => {
150
- assertArgument2(EchoSchema3.getTypeAnnotation(schema)?.kind === EchoSchema3.EntityKind.Relation, "Expected a relation schema");
151
- if (props[EchoSchema3.MetaId] != null) {
152
- meta = props[EchoSchema3.MetaId];
153
- delete props[EchoSchema3.MetaId];
154
- }
155
- const sourceDXN = EchoSchema3.getObjectDXN(props[Source]) ?? raise(new Error("Unresolved relation source"));
156
- const targetDXN = EchoSchema3.getObjectDXN(props[Target]) ?? raise(new Error("Unresolved relation target"));
157
- props[EchoSchema3.RelationSourceDXNId] = sourceDXN;
158
- props[EchoSchema3.RelationTargetDXNId] = targetDXN;
159
- return live2(schema, props, meta);
160
- };
161
- var isRelation = (value) => {
162
- if (typeof value !== "object" || value === null) {
163
- return false;
164
- }
165
- if (EchoSchema3.ATTR_RELATION_SOURCE in value || EchoSchema3.ATTR_RELATION_TARGET in value) {
166
- return true;
167
- }
168
- const kind = value[EchoSchema3.EntityKindId];
169
- return kind === EchoSchema3.EntityKind.Relation;
170
- };
171
- var getSourceDXN = (value) => {
172
- assertArgument2(isRelation(value), "Expected a relation");
173
- assumeType2(value);
174
- const dxn = value[EchoSchema3.RelationSourceDXNId];
175
- invariant2(dxn instanceof DXN, void 0, {
176
- F: __dxlog_file2,
177
- L: 98,
178
- S: void 0,
179
- A: [
180
- "dxn instanceof DXN",
181
- ""
182
- ]
183
- });
184
- return dxn;
185
- };
186
- var getTargetDXN = (value) => {
187
- assertArgument2(isRelation(value), "Expected a relation");
188
- assumeType2(value);
189
- const dxn = value[EchoSchema3.RelationTargetDXNId];
190
- invariant2(dxn instanceof DXN, void 0, {
191
- F: __dxlog_file2,
192
- L: 110,
193
- S: void 0,
194
- A: [
195
- "dxn instanceof DXN",
196
- ""
197
- ]
198
- });
199
- return dxn;
200
- };
201
- var getSource = (relation) => {
202
- assertArgument2(isRelation(relation), "Expected a relation");
203
- assumeType2(relation);
204
- const obj = relation[EchoSchema3.RelationSourceId];
205
- invariant2(obj !== void 0, `Invalid source: ${relation.id}`, {
206
- F: __dxlog_file2,
207
- L: 122,
208
- S: void 0,
209
- A: [
210
- "obj !== undefined",
211
- "`Invalid source: ${relation.id}`"
212
- ]
213
- });
214
- return obj;
215
- };
216
- var getTarget = (relation) => {
217
- assertArgument2(isRelation(relation), "Expected a relation");
218
- assumeType2(relation);
219
- const obj = relation[EchoSchema3.RelationTargetId];
220
- invariant2(obj !== void 0, `Invalid target: ${relation.id}`, {
221
- F: __dxlog_file2,
222
- L: 134,
223
- S: void 0,
224
- A: [
225
- "obj !== undefined",
226
- "`Invalid target: ${relation.id}`"
227
- ]
228
- });
229
- return obj;
230
- };
231
-
232
- // src/Type.ts
233
- var Type_exports = {};
234
- __export(Type_exports, {
235
- DXN: () => DXN2,
236
- Expando: () => Expando2,
237
- Format: () => Format,
238
- JsonSchema: () => JsonSchemaType,
239
- Kind: () => Kind,
240
- KindId: () => KindId,
241
- Obj: () => Obj,
242
- ObjectId: () => ObjectId2,
243
- Ref: () => Ref3,
244
- Relation: () => Relation,
245
- SpaceId: () => SpaceId2,
246
- getDXN: () => getDXN2,
247
- getMeta: () => getMeta3,
248
- getTypename: () => getTypename2,
249
- getVersion: () => getVersion,
250
- isMutable: () => isMutable2,
251
- toEffectSchema: () => toEffectSchema,
252
- toJsonSchema: () => toJsonSchema
253
- });
254
- import * as EchoSchema4 from "@dxos/echo-schema";
255
- import { invariant as invariant3 } from "@dxos/invariant";
256
- import { SpaceId as SpaceId2, ObjectId as ObjectId2, DXN as DXN2 } from "@dxos/keys";
257
- import { Format, JsonSchemaType, toEffectSchema, toJsonSchema } from "@dxos/echo-schema";
258
- var __dxlog_file3 = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
259
- var KindId = EchoSchema4.EntityKindId;
260
- var Kind = EchoSchema4.EntityKind;
261
- var Obj = EchoSchema4.EchoObject;
262
- var Expando2 = EchoSchema4.Expando;
263
- var Relation = EchoSchema4.EchoRelation;
264
- var Ref3 = EchoSchema4.Ref;
265
- var getDXN2 = (schema) => {
266
- return EchoSchema4.getSchemaDXN(schema);
267
- };
268
- var getTypename2 = (schema) => {
269
- const typename = EchoSchema4.getSchemaTypename(schema);
270
- invariant3(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
271
- F: __dxlog_file3,
272
- L: 210,
273
- S: void 0,
274
- A: [
275
- "typeof typename === 'string' && !typename.startsWith('dxn:')",
276
- "'Invalid typename'"
277
- ]
278
- });
279
- return typename;
280
- };
281
- var getVersion = (schema) => {
282
- const version = EchoSchema4.getSchemaVersion(schema);
283
- invariant3(typeof version === "string" && version.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
284
- F: __dxlog_file3,
285
- L: 220,
286
- S: void 0,
287
- A: [
288
- "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
289
- "'Invalid version'"
290
- ]
291
- });
292
- return version;
293
- };
294
- var isMutable2 = EchoSchema4.isMutable;
295
- var getMeta3 = (schema) => {
296
- return EchoSchema4.getTypeAnnotation(schema);
297
- };
298
-
299
- // src/index.ts
300
- import { DXN as DXN4 } from "@dxos/keys";
301
-
302
- // src/query/dsl.ts
303
- import { Schema as Schema2 } from "effect";
304
- import { raise as raise2 } from "@dxos/debug";
305
- import { getTypeReference } from "@dxos/echo-schema";
306
- import { assertArgument as assertArgument3 } from "@dxos/invariant";
307
- import { DXN as DXN3, ObjectId as ObjectId3 } from "@dxos/keys";
308
- var FilterClass = class _FilterClass {
309
- static {
310
- this.variance = {};
311
- }
312
- static is(value) {
313
- return typeof value === "object" && value !== null && "~Filter" in value;
314
- }
315
- static everything() {
316
- return new _FilterClass({
317
- type: "object",
318
- typename: null,
319
- props: {}
320
- });
321
- }
322
- static nothing() {
323
- return new _FilterClass({
324
- type: "not",
325
- filter: {
326
- type: "object",
327
- typename: null,
328
- props: {}
329
- }
330
- });
331
- }
332
- static relation() {
333
- return new _FilterClass({
334
- type: "object",
335
- typename: null,
336
- props: {}
337
- });
338
- }
339
- static ids(...ids) {
340
- assertArgument3(ids.every((id) => ObjectId3.isValid(id)), "ids must be valid");
341
- if (ids.length === 0) {
342
- return Filter.nothing();
343
- }
344
- return new _FilterClass({
345
- type: "object",
346
- typename: null,
347
- id: ids,
348
- props: {}
349
- });
350
- }
351
- static type(schema, props) {
352
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
353
- return new _FilterClass({
354
- type: "object",
355
- typename: dxn.toString(),
356
- ...propsFilterToAst(props ?? {})
357
- });
358
- }
359
- static typename(typename) {
360
- assertArgument3(!typename.startsWith("dxn:"), "Typename must no be qualified");
361
- return new _FilterClass({
362
- type: "object",
363
- typename: DXN3.fromTypename(typename).toString(),
364
- props: {}
365
- });
366
- }
367
- static typeDXN(dxn) {
368
- return new _FilterClass({
369
- type: "object",
370
- typename: dxn.toString(),
371
- props: {}
372
- });
373
- }
374
- /**
375
- * @internal
376
- */
377
- static _props(props) {
378
- return new _FilterClass({
379
- type: "object",
380
- typename: null,
381
- ...propsFilterToAst(props)
382
- });
383
- }
384
- static text(text, options) {
385
- return new _FilterClass({
386
- type: "text-search",
387
- text,
388
- searchKind: options?.type
389
- });
390
- }
391
- static foreignKeys(schema, keys) {
392
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
393
- return new _FilterClass({
394
- type: "object",
395
- typename: dxn.toString(),
396
- props: {},
397
- foreignKeys: keys
398
- });
399
- }
400
- static eq(value) {
401
- if (!isRef(value) && typeof value === "object" && value !== null) {
402
- throw new TypeError("Cannot use object as a value for eq filter");
403
- }
404
- return new _FilterClass({
405
- type: "compare",
406
- operator: "eq",
407
- value: isRef(value) ? value.noInline().encode() : value
408
- });
409
- }
410
- static neq(value) {
411
- return new _FilterClass({
412
- type: "compare",
413
- operator: "neq",
414
- value
415
- });
416
- }
417
- static gt(value) {
418
- return new _FilterClass({
419
- type: "compare",
420
- operator: "gt",
421
- value
422
- });
423
- }
424
- static gte(value) {
425
- return new _FilterClass({
426
- type: "compare",
427
- operator: "gte",
428
- value
429
- });
430
- }
431
- static lt(value) {
432
- return new _FilterClass({
433
- type: "compare",
434
- operator: "lt",
435
- value
436
- });
437
- }
438
- static lte(value) {
439
- return new _FilterClass({
440
- type: "compare",
441
- operator: "lte",
442
- value
443
- });
444
- }
445
- static in(...values) {
446
- return new _FilterClass({
447
- type: "in",
448
- values
449
- });
450
- }
451
- static between(from, to) {
452
- return new _FilterClass({
453
- type: "range",
454
- from,
455
- to
456
- });
457
- }
458
- static not(filter) {
459
- return new _FilterClass({
460
- type: "not",
461
- filter: filter.ast
462
- });
463
- }
464
- static and(...filters) {
465
- return new _FilterClass({
466
- type: "and",
467
- filters: filters.map((f) => f.ast)
468
- });
469
- }
470
- static or(...filters) {
471
- return new _FilterClass({
472
- type: "or",
473
- filters: filters.map((f) => f.ast)
474
- });
475
- }
476
- constructor(ast) {
477
- this.ast = ast;
478
- this["~Filter"] = _FilterClass.variance;
479
- }
480
- };
481
- var Filter = FilterClass;
482
- var propsFilterToAst = (predicates) => {
483
- let idFilter;
484
- if ("id" in predicates) {
485
- assertArgument3(typeof predicates.id === "string" || Array.isArray(predicates.id), "invalid id filter");
486
- idFilter = typeof predicates.id === "string" ? [
487
- predicates.id
488
- ] : predicates.id;
489
- Schema2.Array(ObjectId3).pipe(Schema2.validateSync)(idFilter);
490
- }
491
- return {
492
- id: idFilter,
493
- props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
494
- prop,
495
- Filter.is(predicate) ? predicate.ast : Filter.eq(predicate).ast
496
- ]))
497
- };
498
- };
499
- var QueryClass = class _QueryClass {
500
- static {
501
- this.variance = {};
502
- }
503
- static is(value) {
504
- return typeof value === "object" && value !== null && "~Query" in value;
505
- }
506
- static select(filter) {
507
- return new _QueryClass({
508
- type: "select",
509
- filter: filter.ast
510
- });
511
- }
512
- static type(schema, predicates) {
513
- return new _QueryClass({
514
- type: "select",
515
- filter: FilterClass.type(schema, predicates).ast
516
- });
517
- }
518
- static all(...queries) {
519
- if (queries.length === 0) {
520
- throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
521
- }
522
- return new _QueryClass({
523
- type: "union",
524
- queries: queries.map((q) => q.ast)
525
- });
526
- }
527
- static without(source, exclude) {
528
- return new _QueryClass({
529
- type: "set-difference",
530
- source: source.ast,
531
- exclude: exclude.ast
532
- });
533
- }
534
- constructor(ast) {
535
- this.ast = ast;
536
- this["~Query"] = _QueryClass.variance;
537
- }
538
- select(filter) {
539
- if (Filter.is(filter)) {
540
- return new _QueryClass({
541
- type: "filter",
542
- selection: this.ast,
543
- filter: filter.ast
544
- });
545
- } else {
546
- return new _QueryClass({
547
- type: "filter",
548
- selection: this.ast,
549
- filter: FilterClass._props(filter).ast
550
- });
551
- }
552
- }
553
- reference(key) {
554
- return new _QueryClass({
555
- type: "reference-traversal",
556
- anchor: this.ast,
557
- property: key
558
- });
559
- }
560
- referencedBy(target, key) {
561
- const dxn = getTypeReference(target)?.toDXN() ?? raise2(new TypeError("Target schema has no DXN"));
562
- return new _QueryClass({
563
- type: "incoming-references",
564
- anchor: this.ast,
565
- property: key,
566
- typename: dxn.toString()
567
- });
568
- }
569
- sourceOf(relation, predicates) {
570
- return new _QueryClass({
571
- type: "relation",
572
- anchor: this.ast,
573
- direction: "outgoing",
574
- filter: FilterClass.type(relation, predicates).ast
575
- });
576
- }
577
- targetOf(relation, predicates) {
578
- return new _QueryClass({
579
- type: "relation",
580
- anchor: this.ast,
581
- direction: "incoming",
582
- filter: FilterClass.type(relation, predicates).ast
583
- });
584
- }
585
- source() {
586
- return new _QueryClass({
587
- type: "relation-traversal",
588
- anchor: this.ast,
589
- direction: "source"
590
- });
591
- }
592
- target() {
593
- return new _QueryClass({
594
- type: "relation-traversal",
595
- anchor: this.ast,
596
- direction: "target"
597
- });
598
- }
599
- options(options) {
600
- return new _QueryClass({
601
- type: "options",
602
- query: this.ast,
603
- options
604
- });
605
- }
606
- };
607
- var Query = QueryClass;
608
-
609
- export {
610
- Key_exports,
611
- Obj_exports,
612
- Ref_exports,
613
- Relation_exports,
614
- Type_exports,
615
- Filter,
616
- Query,
617
- DXN4 as DXN
618
- };
619
- //# sourceMappingURL=chunk-SVSJEELN.mjs.map