@dxos/echo 0.8.4-main.dedc0f3 → 0.8.4-main.ead640a

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 (310) hide show
  1. package/dist/lib/browser/chunk-HKFCK2GL.mjs +175 -0
  2. package/dist/lib/browser/chunk-HKFCK2GL.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-MTR3E5S2.mjs → chunk-MAAYELT7.mjs} +501 -457
  4. package/dist/lib/browser/chunk-MAAYELT7.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-MB6MMNFP.mjs +3857 -0
  6. package/dist/lib/browser/chunk-MB6MMNFP.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +14 -5
  8. package/dist/lib/browser/internal/index.mjs +332 -0
  9. package/dist/lib/browser/internal/index.mjs.map +7 -0
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/query/index.mjs +15 -0
  12. package/dist/lib/browser/query/index.mjs.map +7 -0
  13. package/dist/lib/browser/testing/index.mjs +260 -32
  14. package/dist/lib/browser/testing/index.mjs.map +4 -4
  15. package/dist/lib/node-esm/{chunk-MYZLAJSR.mjs → chunk-5NWDGIBT.mjs} +501 -457
  16. package/dist/lib/node-esm/chunk-5NWDGIBT.mjs.map +7 -0
  17. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs +175 -0
  18. package/dist/lib/node-esm/chunk-AUAH4E2J.mjs.map +7 -0
  19. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs +3857 -0
  20. package/dist/lib/node-esm/chunk-BQRA4VLX.mjs.map +7 -0
  21. package/dist/lib/node-esm/index.mjs +14 -5
  22. package/dist/lib/node-esm/internal/index.mjs +332 -0
  23. package/dist/lib/node-esm/internal/index.mjs.map +7 -0
  24. package/dist/lib/node-esm/meta.json +1 -1
  25. package/dist/lib/node-esm/query/index.mjs +15 -0
  26. package/dist/lib/node-esm/query/index.mjs.map +7 -0
  27. package/dist/lib/node-esm/testing/index.mjs +260 -32
  28. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  29. package/dist/types/src/Obj.d.ts +22 -5
  30. package/dist/types/src/Obj.d.ts.map +1 -1
  31. package/dist/types/src/Ref.d.ts +1 -1
  32. package/dist/types/src/Ref.d.ts.map +1 -1
  33. package/dist/types/src/Relation.d.ts +5 -4
  34. package/dist/types/src/Relation.d.ts.map +1 -1
  35. package/dist/types/src/Type.d.ts +16 -17
  36. package/dist/types/src/Type.d.ts.map +1 -1
  37. package/dist/types/src/errors.d.ts +72 -0
  38. package/dist/types/src/errors.d.ts.map +1 -0
  39. package/dist/types/src/index.d.ts +3 -2
  40. package/dist/types/src/index.d.ts.map +1 -1
  41. package/dist/types/src/internal/ast/annotation-helper.d.ts +8 -0
  42. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +1 -0
  43. package/dist/types/src/internal/ast/annotations.d.ts +125 -0
  44. package/dist/types/src/internal/ast/annotations.d.ts.map +1 -0
  45. package/dist/types/src/internal/ast/annotations.test.d.ts +2 -0
  46. package/dist/types/src/internal/ast/annotations.test.d.ts.map +1 -0
  47. package/dist/types/src/internal/ast/entity-kind.d.ts +10 -0
  48. package/dist/types/src/internal/ast/entity-kind.d.ts.map +1 -0
  49. package/dist/types/src/internal/ast/index.d.ts +5 -0
  50. package/dist/types/src/internal/ast/index.d.ts.map +1 -0
  51. package/dist/types/src/internal/ast/types.d.ts +6 -0
  52. package/dist/types/src/internal/ast/types.d.ts.map +1 -0
  53. package/dist/types/src/internal/formats/date.d.ts +63 -0
  54. package/dist/types/src/internal/formats/date.d.ts.map +1 -0
  55. package/dist/types/src/internal/formats/date.test.d.ts +2 -0
  56. package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
  57. package/dist/types/src/internal/formats/format.d.ts +30 -0
  58. package/dist/types/src/internal/formats/format.d.ts.map +1 -0
  59. package/dist/types/src/internal/formats/format.test.d.ts +2 -0
  60. package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
  61. package/dist/types/src/internal/formats/index.d.ts +8 -0
  62. package/dist/types/src/internal/formats/index.d.ts.map +1 -0
  63. package/dist/types/src/internal/formats/number.d.ts +31 -0
  64. package/dist/types/src/internal/formats/number.d.ts.map +1 -0
  65. package/dist/types/src/internal/formats/object.d.ts +35 -0
  66. package/dist/types/src/internal/formats/object.d.ts.map +1 -0
  67. package/dist/types/src/internal/formats/select.d.ts +11 -0
  68. package/dist/types/src/internal/formats/select.d.ts.map +1 -0
  69. package/dist/types/src/internal/formats/string.d.ts +38 -0
  70. package/dist/types/src/internal/formats/string.d.ts.map +1 -0
  71. package/dist/types/src/internal/formats/types.d.ts +68 -0
  72. package/dist/types/src/internal/formats/types.d.ts.map +1 -0
  73. package/dist/types/src/internal/index.d.ts +15 -0
  74. package/dist/types/src/internal/index.d.ts.map +1 -0
  75. package/dist/types/src/internal/json/annotations.d.ts +19 -0
  76. package/dist/types/src/internal/json/annotations.d.ts.map +1 -0
  77. package/dist/types/src/internal/json/effect-schema.test.d.ts +2 -0
  78. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +1 -0
  79. package/dist/types/src/internal/json/index.d.ts +2 -0
  80. package/dist/types/src/internal/json/index.d.ts.map +1 -0
  81. package/dist/types/src/internal/json/json-schema.d.ts +28 -0
  82. package/dist/types/src/internal/json/json-schema.d.ts.map +1 -0
  83. package/dist/types/src/internal/json/json-schema.test.d.ts +2 -0
  84. package/dist/types/src/internal/json/json-schema.test.d.ts.map +1 -0
  85. package/dist/types/src/internal/json-schema/index.d.ts +3 -0
  86. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
  87. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
  88. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
  89. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
  90. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
  91. package/dist/types/src/internal/object/accessors.d.ts +37 -0
  92. package/dist/types/src/internal/object/accessors.d.ts.map +1 -0
  93. package/dist/types/src/internal/object/common.d.ts +18 -0
  94. package/dist/types/src/internal/object/common.d.ts.map +1 -0
  95. package/dist/types/src/internal/object/create.d.ts +40 -0
  96. package/dist/types/src/internal/object/create.d.ts.map +1 -0
  97. package/dist/types/src/internal/object/create.test.d.ts +2 -0
  98. package/dist/types/src/internal/object/create.test.d.ts.map +1 -0
  99. package/dist/types/src/internal/object/deleted.d.ts +6 -0
  100. package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
  101. package/dist/types/src/internal/object/entity.d.ts +33 -0
  102. package/dist/types/src/internal/object/entity.d.ts.map +1 -0
  103. package/dist/types/src/internal/object/expando.d.ts +14 -0
  104. package/dist/types/src/internal/object/expando.d.ts.map +1 -0
  105. package/dist/types/src/internal/object/ids.d.ts +6 -0
  106. package/dist/types/src/internal/object/ids.d.ts.map +1 -0
  107. package/dist/types/src/internal/object/index.d.ts +16 -0
  108. package/dist/types/src/internal/object/index.d.ts.map +1 -0
  109. package/dist/types/src/internal/object/inspect.d.ts +2 -0
  110. package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
  111. package/dist/types/src/internal/object/json-serializer.d.ts +32 -0
  112. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
  113. package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
  114. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
  115. package/dist/types/src/internal/object/meta.d.ts +31 -0
  116. package/dist/types/src/internal/object/meta.d.ts.map +1 -0
  117. package/dist/types/src/internal/object/model.d.ts +117 -0
  118. package/dist/types/src/internal/object/model.d.ts.map +1 -0
  119. package/dist/types/src/internal/object/relation.d.ts +17 -0
  120. package/dist/types/src/internal/object/relation.d.ts.map +1 -0
  121. package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
  122. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
  123. package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
  124. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
  125. package/dist/types/src/internal/object/typed-object.d.ts +31 -0
  126. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
  127. package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
  128. package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
  129. package/dist/types/src/internal/object/typename.d.ts +15 -0
  130. package/dist/types/src/internal/object/typename.d.ts.map +1 -0
  131. package/dist/types/src/internal/object/version.d.ts +14 -0
  132. package/dist/types/src/internal/object/version.d.ts.map +1 -0
  133. package/dist/types/src/internal/projection/compose.d.ts +6 -0
  134. package/dist/types/src/internal/projection/compose.d.ts.map +1 -0
  135. package/dist/types/src/internal/projection/compose.test.d.ts +2 -0
  136. package/dist/types/src/internal/projection/compose.test.d.ts.map +1 -0
  137. package/dist/types/src/internal/projection/index.d.ts +2 -0
  138. package/dist/types/src/internal/projection/index.d.ts.map +1 -0
  139. package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
  140. package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
  141. package/dist/types/src/internal/proxy/reactive-object.d.ts +15 -0
  142. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +1 -0
  143. package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
  144. package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
  145. package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
  146. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
  147. package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
  148. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
  149. package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
  150. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
  151. package/dist/types/src/internal/query/index.d.ts +2 -0
  152. package/dist/types/src/internal/query/index.d.ts.map +1 -0
  153. package/dist/types/src/internal/query/query.d.ts +17 -0
  154. package/dist/types/src/internal/query/query.d.ts.map +1 -0
  155. package/dist/types/src/internal/ref/index.d.ts +3 -0
  156. package/dist/types/src/internal/ref/index.d.ts.map +1 -0
  157. package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
  158. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
  159. package/dist/types/src/internal/ref/ref.d.ts +206 -0
  160. package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
  161. package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
  162. package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
  163. package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
  164. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
  165. package/dist/types/src/internal/schema/index.d.ts +7 -0
  166. package/dist/types/src/internal/schema/index.d.ts.map +1 -0
  167. package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
  168. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
  169. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +18 -0
  170. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -0
  171. package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
  172. package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
  173. package/dist/types/src/internal/schema/stored-schema.d.ts +13 -0
  174. package/dist/types/src/internal/schema/stored-schema.d.ts.map +1 -0
  175. package/dist/types/src/internal/testing/index.d.ts +3 -0
  176. package/dist/types/src/internal/testing/index.d.ts.map +1 -0
  177. package/dist/types/src/internal/testing/types.d.ts +455 -0
  178. package/dist/types/src/internal/testing/types.d.ts.map +1 -0
  179. package/dist/types/src/internal/testing/utils.d.ts +10 -0
  180. package/dist/types/src/internal/testing/utils.d.ts.map +1 -0
  181. package/dist/types/src/internal/types/index.d.ts +3 -0
  182. package/dist/types/src/internal/types/index.d.ts.map +1 -0
  183. package/dist/types/src/internal/types/types.d.ts +79 -0
  184. package/dist/types/src/internal/types/types.d.ts.map +1 -0
  185. package/dist/types/src/internal/types/types.test.d.ts +2 -0
  186. package/dist/types/src/internal/types/types.test.d.ts.map +1 -0
  187. package/dist/types/src/internal/types/util.d.ts +5 -0
  188. package/dist/types/src/internal/types/util.d.ts.map +1 -0
  189. package/dist/types/src/query/index.d.ts +2 -1
  190. package/dist/types/src/query/index.d.ts.map +1 -1
  191. package/dist/types/src/query/{dsl.d.ts → query.d.ts} +34 -24
  192. package/dist/types/src/query/query.d.ts.map +1 -0
  193. package/dist/types/src/query/query.test.d.ts +2 -0
  194. package/dist/types/src/query/query.test.d.ts.map +1 -0
  195. package/dist/types/src/query/tag.d.ts +17 -0
  196. package/dist/types/src/query/tag.d.ts.map +1 -0
  197. package/dist/types/src/testing/echo-schema.d.ts +7 -0
  198. package/dist/types/src/testing/echo-schema.d.ts.map +1 -0
  199. package/dist/types/src/testing/index.d.ts +2 -0
  200. package/dist/types/src/testing/index.d.ts.map +1 -1
  201. package/dist/types/src/testing/types.d.ts +18 -18
  202. package/dist/types/src/testing/types.d.ts.map +1 -1
  203. package/dist/types/tsconfig.tsbuildinfo +1 -1
  204. package/package.json +29 -17
  205. package/src/Obj.ts +77 -12
  206. package/src/Ref.ts +1 -2
  207. package/src/Relation.ts +15 -5
  208. package/src/Type.ts +29 -30
  209. package/src/errors.ts +18 -0
  210. package/src/index.ts +4 -2
  211. package/src/internal/ast/annotation-helper.ts +22 -0
  212. package/src/internal/ast/annotations.test.ts +98 -0
  213. package/src/internal/ast/annotations.ts +219 -0
  214. package/src/internal/ast/entity-kind.ts +15 -0
  215. package/src/internal/ast/index.ts +8 -0
  216. package/src/internal/ast/types.ts +17 -0
  217. package/src/internal/formats/date.test.ts +56 -0
  218. package/src/internal/formats/date.ts +217 -0
  219. package/src/internal/formats/format.test.ts +77 -0
  220. package/src/internal/formats/format.ts +52 -0
  221. package/src/internal/formats/index.ts +12 -0
  222. package/src/internal/formats/number.ts +89 -0
  223. package/src/internal/formats/object.ts +80 -0
  224. package/src/internal/formats/select.ts +16 -0
  225. package/src/internal/formats/string.ts +76 -0
  226. package/src/internal/formats/types.ts +175 -0
  227. package/src/internal/index.ts +22 -0
  228. package/src/internal/json/annotations.ts +50 -0
  229. package/src/internal/json/effect-schema.test.ts +143 -0
  230. package/src/internal/json/index.ts +5 -0
  231. package/src/internal/json/json-schema.test.ts +857 -0
  232. package/src/internal/json/json-schema.ts +519 -0
  233. package/src/internal/json-schema/index.ts +6 -0
  234. package/src/internal/json-schema/json-schema-normalize.ts +109 -0
  235. package/src/internal/json-schema/json-schema-type.ts +403 -0
  236. package/src/internal/object/accessors.ts +153 -0
  237. package/src/internal/object/common.ts +76 -0
  238. package/src/internal/object/create.test.ts +118 -0
  239. package/src/internal/object/create.ts +96 -0
  240. package/src/internal/object/deleted.ts +19 -0
  241. package/src/internal/object/entity.ts +248 -0
  242. package/src/internal/object/expando.ts +21 -0
  243. package/src/internal/object/ids.ts +12 -0
  244. package/src/internal/object/index.ts +19 -0
  245. package/src/internal/object/inspect.ts +48 -0
  246. package/src/internal/object/json-serializer.test.ts +99 -0
  247. package/src/internal/object/json-serializer.ts +225 -0
  248. package/src/internal/object/meta.ts +61 -0
  249. package/src/internal/object/model.ts +170 -0
  250. package/src/internal/object/relation.ts +24 -0
  251. package/src/internal/object/schema-validator.test.ts +186 -0
  252. package/src/internal/object/schema-validator.ts +241 -0
  253. package/src/internal/object/typed-object.test.ts +34 -0
  254. package/src/internal/object/typed-object.ts +88 -0
  255. package/src/internal/object/typename.ts +61 -0
  256. package/src/internal/object/version.ts +22 -0
  257. package/src/internal/projection/compose.test.ts +43 -0
  258. package/src/internal/projection/compose.ts +36 -0
  259. package/src/internal/projection/index.ts +5 -0
  260. package/src/internal/proxy/handler.test.ts +163 -0
  261. package/src/internal/proxy/reactive-object.ts +108 -0
  262. package/src/internal/proxy/schema.test.ts +136 -0
  263. package/src/internal/proxy/typed-handler.test.ts +102 -0
  264. package/src/internal/proxy/typed-handler.ts +228 -0
  265. package/src/internal/proxy/typed-object.test.ts +100 -0
  266. package/src/internal/query/index.ts +5 -0
  267. package/src/internal/query/query.ts +23 -0
  268. package/src/internal/ref/index.ts +6 -0
  269. package/src/internal/ref/ref-array.ts +39 -0
  270. package/src/internal/ref/ref.test.ts +100 -0
  271. package/src/internal/ref/ref.ts +521 -0
  272. package/src/internal/schema/echo-schema.ts +383 -0
  273. package/src/internal/schema/index.ts +10 -0
  274. package/src/internal/schema/manipulation.ts +92 -0
  275. package/src/internal/schema/runtime-schema-registry.ts +78 -0
  276. package/src/internal/schema/snapshot.ts +25 -0
  277. package/src/internal/schema/stored-schema.ts +26 -0
  278. package/src/internal/testing/index.ts +6 -0
  279. package/src/internal/testing/types.ts +211 -0
  280. package/src/internal/testing/utils.ts +54 -0
  281. package/src/internal/types/index.ts +6 -0
  282. package/src/internal/types/types.test.ts +48 -0
  283. package/src/internal/types/types.ts +176 -0
  284. package/src/internal/types/util.ts +9 -0
  285. package/src/query/index.ts +2 -1
  286. package/src/query/query.test.ts +401 -0
  287. package/src/query/{dsl.ts → query.ts} +131 -46
  288. package/src/query/tag.ts +37 -0
  289. package/src/test/api.test.ts +9 -9
  290. package/src/testing/echo-schema.ts +39 -0
  291. package/src/testing/index.ts +2 -0
  292. package/src/testing/types.ts +1 -1
  293. package/dist/lib/browser/chunk-MTR3E5S2.mjs.map +0 -7
  294. package/dist/lib/node-esm/chunk-MYZLAJSR.mjs.map +0 -7
  295. package/dist/types/src/experimental/database.d.ts +0 -8
  296. package/dist/types/src/experimental/database.d.ts.map +0 -1
  297. package/dist/types/src/experimental/index.d.ts +0 -1
  298. package/dist/types/src/experimental/index.d.ts.map +0 -1
  299. package/dist/types/src/experimental/queue.d.ts +0 -8
  300. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  301. package/dist/types/src/experimental/space.d.ts +0 -8
  302. package/dist/types/src/experimental/space.d.ts.map +0 -1
  303. package/dist/types/src/query/dsl.d.ts.map +0 -1
  304. package/dist/types/src/query/dsl.test.d.ts +0 -2
  305. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  306. package/src/experimental/database.ts +0 -11
  307. package/src/experimental/index.ts +0 -7
  308. package/src/experimental/queue.ts +0 -11
  309. package/src/experimental/space.ts +0 -11
  310. package/src/query/dsl.test.ts +0 -332
@@ -1,231 +1,48 @@
1
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";
2
+ import {
3
+ EchoObject,
4
+ EchoRelation,
5
+ EntityKind,
6
+ EntityKindId,
7
+ Expando,
8
+ Format,
9
+ JsonSchemaType,
10
+ LabelAnnotation,
11
+ MetaId,
12
+ ObjectVersionId,
13
+ Ref,
14
+ RefArray,
15
+ VersionTypeId,
16
+ __export,
17
+ getDescription,
18
+ getLabel,
19
+ getMeta,
20
+ getObjectDXN,
21
+ getSchema,
22
+ getSchemaDXN,
23
+ getSchemaTypename,
24
+ getSchemaVersion,
25
+ getType,
26
+ getTypeAnnotation,
27
+ getTypeReference,
28
+ isDeleted,
29
+ isInstanceOf,
30
+ isMutable,
31
+ live,
32
+ objectFromJSON,
33
+ objectToJSON,
34
+ setDescription,
35
+ setLabel,
36
+ toEffectSchema,
37
+ toJsonSchema
38
+ } from "./chunk-MB6MMNFP.mjs";
15
39
 
16
- // src/Obj.ts
17
- var Obj_exports = {};
18
- __export(Obj_exports, {
19
- Meta: () => Meta,
20
- VersionTypeId: () => VersionTypeId2,
21
- clone: () => clone,
22
- compareVersions: () => compareVersions,
23
- decodeVersion: () => decodeVersion,
24
- deleteKeys: () => deleteKeys,
25
- encodeVersion: () => encodeVersion,
26
- fromJSON: () => fromJSON,
27
- getDXN: () => getDXN,
28
- getKeys: () => getKeys,
29
- getLabel: () => getLabel2,
30
- getMeta: () => getMeta2,
31
- getSchema: () => getSchema2,
32
- getSnapshot: () => getSnapshot2,
33
- getTypeDXN: () => getTypeDXN,
34
- getTypename: () => getTypename,
35
- instanceOf: () => instanceOf,
36
- isDeleted: () => isDeleted2,
37
- isObject: () => isObject,
38
- isVersion: () => isVersion,
39
- make: () => make,
40
- setLabel: () => setLabel2,
41
- toJSON: () => toJSON,
42
- version: () => version,
43
- versionValid: () => versionValid
44
- });
45
- import { Schema } from "effect";
46
- import { dual } from "effect/Function";
47
- import * as EchoSchema from "@dxos/echo-schema";
48
- import { assertArgument, invariant } from "@dxos/invariant";
49
- import * as LiveObject from "@dxos/live-object";
50
- import { live } from "@dxos/live-object";
51
- import { assumeType, deepMapValues } from "@dxos/util";
52
- var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
53
- var Meta = EchoSchema.MetaId;
54
- var make = (schema, props, meta) => {
55
- assertArgument(EchoSchema.getTypeAnnotation(schema)?.kind === EchoSchema.EntityKind.Object, "schema", "Expected an object schema");
56
- if (props[EchoSchema.MetaId] != null) {
57
- meta = props[EchoSchema.MetaId];
58
- delete props[EchoSchema.MetaId];
59
- }
60
- return live(schema, props, meta);
61
- };
62
- var isObject = (obj) => {
63
- assumeType(obj);
64
- return typeof obj === "object" && obj !== null && obj[EchoSchema.EntityKindId] === EchoSchema.EntityKind.Object;
65
- };
66
- var instanceOf = (...args) => {
67
- if (args.length === 1) {
68
- return (obj) => EchoSchema.isInstanceOf(args[0], obj);
69
- }
70
- return EchoSchema.isInstanceOf(args[0], args[1]);
71
- };
72
- var getSchema2 = EchoSchema.getSchema;
73
- var getDXN = (obj) => {
74
- assertArgument(!Schema.isSchema(obj), "obj", "Object should not be a schema.");
75
- const dxn = EchoSchema.getObjectDXN(obj);
76
- invariant(dxn != null, "Invalid object.", {
77
- F: __dxlog_file,
78
- L: 113,
79
- S: void 0,
80
- A: [
81
- "dxn != null",
82
- "'Invalid object.'"
83
- ]
84
- });
85
- return dxn;
86
- };
87
- var getTypeDXN = EchoSchema.getType;
88
- var getTypename = (obj) => {
89
- const schema = getSchema2(obj);
90
- if (schema == null) {
91
- return EchoSchema.getType(obj)?.asTypeDXN()?.type;
92
- }
93
- return EchoSchema.getSchemaTypename(schema);
94
- };
95
- var getMeta2 = (obj) => {
96
- const meta = EchoSchema.getMeta(obj);
97
- invariant(meta != null, "Invalid object.", {
98
- F: __dxlog_file,
99
- L: 141,
100
- S: void 0,
101
- A: [
102
- "meta != null",
103
- "'Invalid object.'"
104
- ]
105
- });
106
- return meta;
107
- };
108
- var getKeys = dual(2, (obj, source) => {
109
- const meta = EchoSchema.getMeta(obj);
110
- invariant(meta != null, "Invalid object.", {
111
- F: __dxlog_file,
112
- L: 153,
113
- S: void 0,
114
- A: [
115
- "meta != null",
116
- "'Invalid object.'"
117
- ]
118
- });
119
- return meta.keys.filter((key) => key.source === source);
120
- });
121
- var deleteKeys = (obj, source) => {
122
- const meta = EchoSchema.getMeta(obj);
123
- for (let i = 0; i < meta.keys.length; i++) {
124
- if (meta.keys[i].source === source) {
125
- meta.keys.splice(i, 1);
126
- i--;
127
- }
128
- }
129
- };
130
- var isDeleted2 = (obj) => {
131
- const deleted = EchoSchema.isDeleted(obj);
132
- invariant(typeof deleted === "boolean", "Invalid object.", {
133
- F: __dxlog_file,
134
- L: 175,
135
- S: void 0,
136
- A: [
137
- "typeof deleted === 'boolean'",
138
- "'Invalid object.'"
139
- ]
140
- });
141
- return deleted;
142
- };
143
- var getLabel2 = (obj) => {
144
- const schema = getSchema2(obj);
145
- if (schema != null) {
146
- return EchoSchema.getLabel(schema, obj);
147
- }
148
- };
149
- var setLabel2 = (obj, label) => {
150
- const schema = getSchema2(obj);
151
- if (schema != null) {
152
- EchoSchema.setLabel(schema, obj, label);
153
- }
154
- };
155
- var toJSON = (obj) => EchoSchema.objectToJSON(obj);
156
- var fromJSON = EchoSchema.objectFromJSON;
157
- var getSnapshot2 = LiveObject.getSnapshot;
158
- var clone = (obj, opts) => {
159
- const { id, ...data } = obj;
160
- const schema = getSchema2(obj);
161
- invariant(schema != null, "Object should have a schema", {
162
- F: __dxlog_file,
163
- L: 240,
164
- S: void 0,
165
- A: [
166
- "schema != null",
167
- "'Object should have a schema'"
168
- ]
169
- });
170
- const props = deepMapValues(data, (value, recurse) => {
171
- if (EchoSchema.Ref.isRef(value)) {
172
- return value;
173
- }
174
- return recurse(value);
175
- });
176
- if (opts?.retainId) {
177
- props.id = id;
178
- }
179
- const meta = getMeta2(obj);
180
- props[EchoSchema.MetaId] = deepMapValues(meta, (value, recurse) => {
181
- if (EchoSchema.Ref.isRef(value)) {
182
- return value;
183
- }
184
- return recurse(value);
185
- });
186
- return make(schema, props);
187
- };
188
- var VersionTypeId2 = EchoSchema.VersionTypeId;
189
- var unversioned = {
190
- [VersionTypeId2]: {},
191
- versioned: false
192
- };
193
- var isVersion = (obj) => {
194
- return obj != null && typeof obj === "object" && VersionTypeId2 in obj;
195
- };
196
- var version = (obj) => {
197
- const version2 = obj[EchoSchema.ObjectVersionId];
198
- if (version2 === void 0) {
199
- return unversioned;
200
- }
201
- return version2;
202
- };
203
- var versionValid = (version2) => {
204
- assertArgument(isVersion(version2), "version", "Invalid version object");
205
- return !!version2.versioned;
206
- };
207
- var compareVersions = (version1, version2) => {
208
- assertArgument(isVersion(version1), "version1", "Invalid version object");
209
- assertArgument(isVersion(version2), "version2", "Invalid version object");
210
- if (!versionValid(version1) || !versionValid(version2)) {
211
- return "unversioned";
212
- }
213
- if (version1.automergeHeads?.length !== version2.automergeHeads?.length) {
214
- return "different";
215
- }
216
- if (version1.automergeHeads?.some((head) => !version2.automergeHeads?.includes(head))) {
217
- return "different";
218
- }
219
- return "equal";
220
- };
221
- var encodeVersion = (version2) => {
222
- return JSON.stringify(version2);
223
- };
224
- var decodeVersion = (version2) => {
225
- const parsed = JSON.parse(version2);
226
- parsed[VersionTypeId2] = {};
227
- return parsed;
228
- };
40
+ // src/query/query.ts
41
+ import * as Match from "effect/Match";
42
+ import * as Schema from "effect/Schema";
43
+ import { raise } from "@dxos/debug";
44
+ import { assertArgument } from "@dxos/invariant";
45
+ import { DXN, ObjectId } from "@dxos/keys";
229
46
 
230
47
  // src/Ref.ts
231
48
  var Ref_exports = {};
@@ -233,210 +50,30 @@ __export(Ref_exports, {
233
50
  Array: () => Array2,
234
51
  fromDXN: () => fromDXN,
235
52
  isRef: () => isRef,
236
- make: () => make2
237
- });
238
- import * as EchoSchema2 from "@dxos/echo-schema";
239
- var Array2 = EchoSchema2.RefArray;
240
- var isRef = EchoSchema2.Ref.isRef;
241
- var make2 = EchoSchema2.Ref.make;
242
- var fromDXN = EchoSchema2.Ref.fromDXN;
243
-
244
- // src/Relation.ts
245
- var Relation_exports = {};
246
- __export(Relation_exports, {
247
- Source: () => Source,
248
- Target: () => Target,
249
- getSource: () => getSource,
250
- getSourceDXN: () => getSourceDXN,
251
- getTarget: () => getTarget,
252
- getTargetDXN: () => getTargetDXN,
253
- isRelation: () => isRelation,
254
- make: () => make3
255
- });
256
- import { raise } from "@dxos/debug";
257
- import * as EchoSchema3 from "@dxos/echo-schema";
258
- import { assertArgument as assertArgument2, invariant as invariant2 } from "@dxos/invariant";
259
- import { DXN } from "@dxos/keys";
260
- import { live as live2 } from "@dxos/live-object";
261
- import { assumeType as assumeType2 } from "@dxos/util";
262
- var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Relation.ts";
263
- var Source = EchoSchema3.RelationSourceId;
264
- var Target = EchoSchema3.RelationTargetId;
265
- var make3 = (schema, props, meta) => {
266
- assertArgument2(EchoSchema3.getTypeAnnotation(schema)?.kind === EchoSchema3.EntityKind.Relation, "schema", "Expected a relation schema");
267
- if (props[EchoSchema3.MetaId] != null) {
268
- meta = props[EchoSchema3.MetaId];
269
- delete props[EchoSchema3.MetaId];
270
- }
271
- const sourceDXN = EchoSchema3.getObjectDXN(props[Source]) ?? raise(new Error("Unresolved relation source"));
272
- const targetDXN = EchoSchema3.getObjectDXN(props[Target]) ?? raise(new Error("Unresolved relation target"));
273
- props[EchoSchema3.RelationSourceDXNId] = sourceDXN;
274
- props[EchoSchema3.RelationTargetDXNId] = targetDXN;
275
- return live2(schema, props, meta);
276
- };
277
- var isRelation = (value) => {
278
- if (typeof value !== "object" || value === null) {
279
- return false;
280
- }
281
- if (EchoSchema3.ATTR_RELATION_SOURCE in value || EchoSchema3.ATTR_RELATION_TARGET in value) {
282
- return true;
283
- }
284
- const kind = value[EchoSchema3.EntityKindId];
285
- return kind === EchoSchema3.EntityKind.Relation;
286
- };
287
- var getSourceDXN = (value) => {
288
- assertArgument2(isRelation(value), "Expected a relation");
289
- assumeType2(value);
290
- const dxn = value[EchoSchema3.RelationSourceDXNId];
291
- invariant2(dxn instanceof DXN, void 0, {
292
- F: __dxlog_file2,
293
- L: 100,
294
- S: void 0,
295
- A: [
296
- "dxn instanceof DXN",
297
- ""
298
- ]
299
- });
300
- return dxn;
301
- };
302
- var getTargetDXN = (value) => {
303
- assertArgument2(isRelation(value), "Expected a relation");
304
- assumeType2(value);
305
- const dxn = value[EchoSchema3.RelationTargetDXNId];
306
- invariant2(dxn instanceof DXN, void 0, {
307
- F: __dxlog_file2,
308
- L: 112,
309
- S: void 0,
310
- A: [
311
- "dxn instanceof DXN",
312
- ""
313
- ]
314
- });
315
- return dxn;
316
- };
317
- var getSource = (relation) => {
318
- assertArgument2(isRelation(relation), "Expected a relation");
319
- assumeType2(relation);
320
- const obj = relation[EchoSchema3.RelationSourceId];
321
- invariant2(obj !== void 0, `Invalid source: ${relation.id}`, {
322
- F: __dxlog_file2,
323
- L: 124,
324
- S: void 0,
325
- A: [
326
- "obj !== undefined",
327
- "`Invalid source: ${relation.id}`"
328
- ]
329
- });
330
- return obj;
331
- };
332
- var getTarget = (relation) => {
333
- assertArgument2(isRelation(relation), "Expected a relation");
334
- assumeType2(relation);
335
- const obj = relation[EchoSchema3.RelationTargetId];
336
- invariant2(obj !== void 0, `Invalid target: ${relation.id}`, {
337
- F: __dxlog_file2,
338
- L: 136,
339
- S: void 0,
340
- A: [
341
- "obj !== undefined",
342
- "`Invalid target: ${relation.id}`"
343
- ]
344
- });
345
- return obj;
346
- };
347
-
348
- // src/Type.ts
349
- var Type_exports = {};
350
- __export(Type_exports, {
351
- DXN: () => DXN2,
352
- Expando: () => Expando2,
353
- Format: () => Format,
354
- JsonSchema: () => JsonSchemaType,
355
- Kind: () => Kind,
356
- KindId: () => KindId,
357
- Obj: () => Obj,
358
- ObjectId: () => ObjectId2,
359
- Ref: () => Ref4,
360
- Relation: () => Relation,
361
- SpaceId: () => SpaceId2,
362
- getDXN: () => getDXN2,
363
- getMeta: () => getMeta3,
364
- getTypename: () => getTypename2,
365
- getVersion: () => getVersion,
366
- isMutable: () => isMutable2,
367
- toEffectSchema: () => toEffectSchema,
368
- toJsonSchema: () => toJsonSchema
53
+ make: () => make
369
54
  });
370
- import * as EchoSchema4 from "@dxos/echo-schema";
371
- import { invariant as invariant3 } from "@dxos/invariant";
372
- import { SpaceId as SpaceId2, ObjectId as ObjectId2, DXN as DXN2 } from "@dxos/keys";
373
- import { Format, JsonSchemaType, toEffectSchema, toJsonSchema } from "@dxos/echo-schema";
374
- var __dxlog_file3 = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
375
- var KindId = EchoSchema4.EntityKindId;
376
- var Kind = EchoSchema4.EntityKind;
377
- var Obj = EchoSchema4.EchoObject;
378
- var Expando2 = EchoSchema4.Expando;
379
- var Relation = EchoSchema4.EchoRelation;
380
- var Ref4 = EchoSchema4.Ref;
381
- var getDXN2 = (schema) => {
382
- return EchoSchema4.getSchemaDXN(schema);
383
- };
384
- var getTypename2 = (schema) => {
385
- const typename = EchoSchema4.getSchemaTypename(schema);
386
- invariant3(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
387
- F: __dxlog_file3,
388
- L: 212,
389
- S: void 0,
390
- A: [
391
- "typeof typename === 'string' && !typename.startsWith('dxn:')",
392
- "'Invalid typename'"
393
- ]
394
- });
395
- return typename;
396
- };
397
- var getVersion = (schema) => {
398
- const version2 = EchoSchema4.getSchemaVersion(schema);
399
- invariant3(typeof version2 === "string" && version2.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
400
- F: __dxlog_file3,
401
- L: 222,
402
- S: void 0,
403
- A: [
404
- "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
405
- "'Invalid version'"
406
- ]
407
- });
408
- return version2;
409
- };
410
- var isMutable2 = EchoSchema4.isMutable;
411
- var getMeta3 = (schema) => {
412
- return EchoSchema4.getTypeAnnotation(schema);
413
- };
414
-
415
- // src/index.ts
416
- import { DXN as DXN4 } from "@dxos/keys";
55
+ var Array2 = RefArray;
56
+ var isRef = Ref.isRef;
57
+ var make = Ref.make;
58
+ var fromDXN = Ref.fromDXN;
417
59
 
418
- // src/query/dsl.ts
419
- import { Schema as Schema2 } from "effect";
420
- import { raise as raise2 } from "@dxos/debug";
421
- import { getTypeReference } from "@dxos/echo-schema";
422
- import { assertArgument as assertArgument3 } from "@dxos/invariant";
423
- import { DXN as DXN3, ObjectId as ObjectId3 } from "@dxos/keys";
424
- function _define_property(obj, key, value) {
60
+ // src/query/query.ts
61
+ function _define_property(obj, key, value2) {
425
62
  if (key in obj) {
426
63
  Object.defineProperty(obj, key, {
427
- value,
64
+ value: value2,
428
65
  enumerable: true,
429
66
  configurable: true,
430
67
  writable: true
431
68
  });
432
69
  } else {
433
- obj[key] = value;
70
+ obj[key] = value2;
434
71
  }
435
72
  return obj;
436
73
  }
437
74
  var OrderClass = class _OrderClass {
438
- static is(value) {
439
- return typeof value === "object" && value !== null && "~Order" in value;
75
+ static is(value2) {
76
+ return typeof value2 === "object" && value2 !== null && "~Order" in value2;
440
77
  }
441
78
  constructor(ast) {
442
79
  _define_property(this, "ast", void 0);
@@ -457,8 +94,11 @@ _define_property(OrderClass, "variance", {});
457
94
  });
458
95
  })(Order || (Order = {}));
459
96
  var FilterClass = class _FilterClass {
460
- static is(value) {
461
- return typeof value === "object" && value !== null && "~Filter" in value;
97
+ static is(value2) {
98
+ return typeof value2 === "object" && value2 !== null && "~Filter" in value2;
99
+ }
100
+ static fromAst(ast) {
101
+ return new _FilterClass(ast);
462
102
  }
463
103
  static everything() {
464
104
  return new _FilterClass({
@@ -485,7 +125,7 @@ var FilterClass = class _FilterClass {
485
125
  });
486
126
  }
487
127
  static ids(...ids) {
488
- assertArgument3(ids.every((id) => ObjectId3.isValid(id)), "ids", "ids must be valid");
128
+ assertArgument(ids.every((id) => ObjectId.isValid(id)), "ids", "ids must be valid");
489
129
  if (ids.length === 0) {
490
130
  return Filter.nothing();
491
131
  }
@@ -497,7 +137,7 @@ var FilterClass = class _FilterClass {
497
137
  });
498
138
  }
499
139
  static type(schema, props) {
500
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
140
+ const dxn = getTypeDXNFromSpecifier(schema);
501
141
  return new _FilterClass({
502
142
  type: "object",
503
143
  typename: dxn.toString(),
@@ -505,10 +145,10 @@ var FilterClass = class _FilterClass {
505
145
  });
506
146
  }
507
147
  static typename(typename) {
508
- assertArgument3(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
148
+ assertArgument(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
509
149
  return new _FilterClass({
510
150
  type: "object",
511
- typename: DXN3.fromTypename(typename).toString(),
151
+ typename: DXN.fromTypename(typename).toString(),
512
152
  props: {}
513
153
  });
514
154
  }
@@ -519,10 +159,13 @@ var FilterClass = class _FilterClass {
519
159
  props: {}
520
160
  });
521
161
  }
522
- /**
523
- * @internal
524
- */
525
- static _props(props) {
162
+ static tag(tag) {
163
+ return new _FilterClass({
164
+ type: "tag",
165
+ tag
166
+ });
167
+ }
168
+ static props(props) {
526
169
  return new _FilterClass({
527
170
  type: "object",
528
171
  typename: null,
@@ -537,7 +180,7 @@ var FilterClass = class _FilterClass {
537
180
  });
538
181
  }
539
182
  static foreignKeys(schema, keys) {
540
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
183
+ const dxn = getTypeDXNFromSpecifier(schema);
541
184
  return new _FilterClass({
542
185
  type: "object",
543
186
  typename: dxn.toString(),
@@ -545,49 +188,49 @@ var FilterClass = class _FilterClass {
545
188
  foreignKeys: keys
546
189
  });
547
190
  }
548
- static eq(value) {
549
- if (!isRef(value) && typeof value === "object" && value !== null) {
191
+ static eq(value2) {
192
+ if (!isRef(value2) && typeof value2 === "object" && value2 !== null) {
550
193
  throw new TypeError("Cannot use object as a value for eq filter");
551
194
  }
552
195
  return new _FilterClass({
553
196
  type: "compare",
554
197
  operator: "eq",
555
- value: isRef(value) ? value.noInline().encode() : value
198
+ value: isRef(value2) ? value2.noInline().encode() : value2
556
199
  });
557
200
  }
558
- static neq(value) {
201
+ static neq(value2) {
559
202
  return new _FilterClass({
560
203
  type: "compare",
561
204
  operator: "neq",
562
- value
205
+ value: value2
563
206
  });
564
207
  }
565
- static gt(value) {
208
+ static gt(value2) {
566
209
  return new _FilterClass({
567
210
  type: "compare",
568
211
  operator: "gt",
569
- value
212
+ value: value2
570
213
  });
571
214
  }
572
- static gte(value) {
215
+ static gte(value2) {
573
216
  return new _FilterClass({
574
217
  type: "compare",
575
218
  operator: "gte",
576
- value
219
+ value: value2
577
220
  });
578
221
  }
579
- static lt(value) {
222
+ static lt(value2) {
580
223
  return new _FilterClass({
581
224
  type: "compare",
582
225
  operator: "lt",
583
- value
226
+ value: value2
584
227
  });
585
228
  }
586
- static lte(value) {
229
+ static lte(value2) {
587
230
  return new _FilterClass({
588
231
  type: "compare",
589
232
  operator: "lte",
590
- value
233
+ value: value2
591
234
  });
592
235
  }
593
236
  static in(...values) {
@@ -596,6 +239,12 @@ var FilterClass = class _FilterClass {
596
239
  values
597
240
  });
598
241
  }
242
+ static contains(value2) {
243
+ return new _FilterClass({
244
+ type: "contains",
245
+ value: value2
246
+ });
247
+ }
599
248
  static between(from, to) {
600
249
  return new _FilterClass({
601
250
  type: "range",
@@ -633,23 +282,45 @@ var Filter = FilterClass;
633
282
  var propsFilterToAst = (predicates) => {
634
283
  let idFilter;
635
284
  if ("id" in predicates) {
636
- assertArgument3(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
285
+ assertArgument(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
637
286
  idFilter = typeof predicates.id === "string" ? [
638
287
  predicates.id
639
288
  ] : predicates.id;
640
- Schema2.Array(ObjectId3).pipe(Schema2.validateSync)(idFilter);
289
+ Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);
641
290
  }
642
291
  return {
643
292
  id: idFilter,
644
293
  props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
645
294
  prop,
646
- Filter.is(predicate) ? predicate.ast : Filter.eq(predicate).ast
295
+ processPredicate(predicate)
647
296
  ]))
648
297
  };
649
298
  };
299
+ var processPredicate = (predicate) => {
300
+ return Match.value(predicate).pipe(
301
+ Match.withReturnType(),
302
+ Match.when(Filter.is, (predicate2) => predicate2.ast),
303
+ // TODO(wittjosiah): Add support for array predicates.
304
+ Match.when(Array.isArray, (_predicate) => {
305
+ throw new Error("Array predicates are not yet supported.");
306
+ }),
307
+ Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
308
+ const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value2]) => [
309
+ key,
310
+ processPredicate(value2)
311
+ ]));
312
+ return {
313
+ type: "object",
314
+ typename: null,
315
+ props: nestedProps
316
+ };
317
+ }),
318
+ Match.orElse((value2) => Filter.eq(value2).ast)
319
+ );
320
+ };
650
321
  var QueryClass = class _QueryClass {
651
- static is(value) {
652
- return typeof value === "object" && value !== null && "~Query" in value;
322
+ static is(value2) {
323
+ return typeof value2 === "object" && value2 !== null && "~Query" in value2;
653
324
  }
654
325
  static fromAst(ast) {
655
326
  return new _QueryClass(ast);
@@ -693,7 +364,7 @@ var QueryClass = class _QueryClass {
693
364
  return new _QueryClass({
694
365
  type: "filter",
695
366
  selection: this.ast,
696
- filter: FilterClass._props(filter).ast
367
+ filter: FilterClass.props(filter).ast
697
368
  });
698
369
  }
699
370
  }
@@ -705,7 +376,7 @@ var QueryClass = class _QueryClass {
705
376
  });
706
377
  }
707
378
  referencedBy(target, key) {
708
- const dxn = getTypeReference(target)?.toDXN() ?? raise2(new TypeError("Target schema has no DXN"));
379
+ const dxn = getTypeDXNFromSpecifier(target);
709
380
  return new _QueryClass({
710
381
  type: "incoming-references",
711
382
  anchor: this.ast,
@@ -766,21 +437,394 @@ var QueryClass = class _QueryClass {
766
437
  };
767
438
  _define_property(QueryClass, "variance", {});
768
439
  var Query = QueryClass;
440
+ var getTypeDXNFromSpecifier = (input) => {
441
+ if (Schema.isSchema(input)) {
442
+ return getTypeReference(input)?.toDXN() ?? raise(new TypeError("Schema has no DXN"));
443
+ } else {
444
+ assertArgument(typeof input === "string", "input");
445
+ assertArgument(!input.startsWith("dxn:"), "input");
446
+ return DXN.fromTypename(input);
447
+ }
448
+ };
769
449
  var Order;
770
450
 
771
- // src/index.ts
772
- import { QueryAST } from "@dxos/echo-protocol";
451
+ // src/query/tag.ts
452
+ var tag_exports = {};
453
+ __export(tag_exports, {
454
+ Tag: () => Tag,
455
+ createTagList: () => createTagList,
456
+ findTagByLabel: () => findTagByLabel,
457
+ make: () => make3,
458
+ sortTags: () => sortTags
459
+ });
460
+ import * as Schema3 from "effect/Schema";
461
+
462
+ // src/Obj.ts
463
+ var Obj_exports = {};
464
+ __export(Obj_exports, {
465
+ Any: () => Any,
466
+ Meta: () => Meta,
467
+ VersionTypeId: () => VersionTypeId2,
468
+ clone: () => clone,
469
+ compareVersions: () => compareVersions,
470
+ decodeVersion: () => decodeVersion,
471
+ deleteKeys: () => deleteKeys,
472
+ encodeVersion: () => encodeVersion,
473
+ fromJSON: () => fromJSON,
474
+ getDXN: () => getDXN2,
475
+ getDescription: () => getDescription2,
476
+ getKeys: () => getKeys,
477
+ getLabel: () => getLabel2,
478
+ getMeta: () => getMeta3,
479
+ getSchema: () => getSchema2,
480
+ getSnapshot: () => getSnapshot2,
481
+ getTypeDXN: () => getTypeDXN,
482
+ getTypename: () => getTypename2,
483
+ instanceOf: () => instanceOf,
484
+ isDeleted: () => isDeleted2,
485
+ isObject: () => isObject,
486
+ isVersion: () => isVersion,
487
+ make: () => make2,
488
+ setDescription: () => setDescription2,
489
+ setLabel: () => setLabel2,
490
+ sort: () => sort,
491
+ sortByLabel: () => sortByLabel,
492
+ sortByTypename: () => sortByTypename,
493
+ toJSON: () => toJSON,
494
+ version: () => version,
495
+ versionValid: () => versionValid
496
+ });
497
+ import * as Function from "effect/Function";
498
+ import * as Schema2 from "effect/Schema";
499
+ import { assertArgument as assertArgument2, invariant as invariant2 } from "@dxos/invariant";
500
+ import * as LiveObject from "@dxos/live-object";
501
+ import { assumeType, deepMapValues } from "@dxos/util";
502
+
503
+ // src/Type.ts
504
+ var Type_exports = {};
505
+ __export(Type_exports, {
506
+ DXN: () => DXN2,
507
+ Expando: () => Expando2,
508
+ Format: () => Format,
509
+ JsonSchema: () => JsonSchemaType,
510
+ Kind: () => Kind,
511
+ KindId: () => KindId,
512
+ Obj: () => Obj,
513
+ ObjectId: () => ObjectId2,
514
+ Ref: () => Ref2,
515
+ Relation: () => Relation,
516
+ SpaceId: () => SpaceId,
517
+ getDXN: () => getDXN,
518
+ getMeta: () => getMeta2,
519
+ getTypename: () => getTypename,
520
+ getVersion: () => getVersion,
521
+ isMutable: () => isMutable2,
522
+ toEffectSchema: () => toEffectSchema,
523
+ toJsonSchema: () => toJsonSchema
524
+ });
525
+ import { invariant } from "@dxos/invariant";
526
+ import { SpaceId, ObjectId as ObjectId2, DXN as DXN2 } from "@dxos/keys";
527
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
528
+ var KindId = EntityKindId;
529
+ var Kind = EntityKind;
530
+ var Obj = EchoObject;
531
+ var Expando2 = Expando;
532
+ var Relation = EchoRelation;
533
+ var Ref2 = Ref;
534
+ var getDXN = (schema) => {
535
+ return getSchemaDXN(schema);
536
+ };
537
+ var getTypename = (schema) => {
538
+ const typename = getSchemaTypename(schema);
539
+ invariant(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
540
+ F: __dxlog_file,
541
+ L: 211,
542
+ S: void 0,
543
+ A: [
544
+ "typeof typename === 'string' && !typename.startsWith('dxn:')",
545
+ "'Invalid typename'"
546
+ ]
547
+ });
548
+ return typename;
549
+ };
550
+ var getVersion = (schema) => {
551
+ const version2 = getSchemaVersion(schema);
552
+ invariant(typeof version2 === "string" && version2.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
553
+ F: __dxlog_file,
554
+ L: 221,
555
+ S: void 0,
556
+ A: [
557
+ "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
558
+ "'Invalid version'"
559
+ ]
560
+ });
561
+ return version2;
562
+ };
563
+ var isMutable2 = isMutable;
564
+ var getMeta2 = (schema) => {
565
+ return getTypeAnnotation(schema);
566
+ };
567
+
568
+ // src/Obj.ts
569
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
570
+ var Any = Schema2.Struct({}).pipe(Obj({
571
+ typename: "dxos.org/types/Any",
572
+ version: "0.1.0"
573
+ }));
574
+ var Meta = MetaId;
575
+ var DEFAULT_META = {
576
+ keys: []
577
+ };
578
+ var make2 = (schema, props, meta) => {
579
+ assertArgument2(getTypeAnnotation(schema)?.kind === EntityKind.Object, "schema", "Expected an object schema");
580
+ if (props[MetaId] != null) {
581
+ meta = {
582
+ ...structuredClone(DEFAULT_META),
583
+ ...props[MetaId]
584
+ };
585
+ delete props[MetaId];
586
+ }
587
+ const filterUndefined = Object.fromEntries(Object.entries(props).filter(([_, v]) => v !== void 0));
588
+ return live(schema, filterUndefined, {
589
+ keys: [],
590
+ ...meta
591
+ });
592
+ };
593
+ var isObject = (obj) => {
594
+ assumeType(obj);
595
+ return typeof obj === "object" && obj !== null && obj[EntityKindId] === EntityKind.Object;
596
+ };
597
+ var instanceOf = (...args) => {
598
+ if (args.length === 1) {
599
+ return (obj) => isInstanceOf(args[0], obj);
600
+ }
601
+ return isInstanceOf(args[0], args[1]);
602
+ };
603
+ var getSchema2 = getSchema;
604
+ var getDXN2 = (obj) => {
605
+ assertArgument2(!Schema2.isSchema(obj), "obj", "Object should not be a schema.");
606
+ const dxn = getObjectDXN(obj);
607
+ invariant2(dxn != null, "Invalid object.", {
608
+ F: __dxlog_file2,
609
+ L: 136,
610
+ S: void 0,
611
+ A: [
612
+ "dxn != null",
613
+ "'Invalid object.'"
614
+ ]
615
+ });
616
+ return dxn;
617
+ };
618
+ var getTypeDXN = getType;
619
+ var getTypename2 = (obj) => {
620
+ const schema = getSchema2(obj);
621
+ if (schema == null) {
622
+ return getType(obj)?.asTypeDXN()?.type;
623
+ }
624
+ return getSchemaTypename(schema);
625
+ };
626
+ var getMeta3 = (obj) => {
627
+ const meta = getMeta(obj);
628
+ invariant2(meta != null, "Invalid object.", {
629
+ F: __dxlog_file2,
630
+ L: 164,
631
+ S: void 0,
632
+ A: [
633
+ "meta != null",
634
+ "'Invalid object.'"
635
+ ]
636
+ });
637
+ return meta;
638
+ };
639
+ var getKeys = Function.dual(2, (obj, source) => {
640
+ const meta = getMeta(obj);
641
+ invariant2(meta != null, "Invalid object.", {
642
+ F: __dxlog_file2,
643
+ L: 176,
644
+ S: void 0,
645
+ A: [
646
+ "meta != null",
647
+ "'Invalid object.'"
648
+ ]
649
+ });
650
+ return meta.keys.filter((key) => key.source === source);
651
+ });
652
+ var deleteKeys = (obj, source) => {
653
+ const meta = getMeta(obj);
654
+ for (let i = 0; i < meta.keys.length; i++) {
655
+ if (meta.keys[i].source === source) {
656
+ meta.keys.splice(i, 1);
657
+ i--;
658
+ }
659
+ }
660
+ };
661
+ var isDeleted2 = (obj) => {
662
+ const deleted = isDeleted(obj);
663
+ invariant2(typeof deleted === "boolean", "Invalid object.", {
664
+ F: __dxlog_file2,
665
+ L: 198,
666
+ S: void 0,
667
+ A: [
668
+ "typeof deleted === 'boolean'",
669
+ "'Invalid object.'"
670
+ ]
671
+ });
672
+ return deleted;
673
+ };
674
+ var getLabel2 = (obj) => {
675
+ const schema = getSchema2(obj);
676
+ if (schema != null) {
677
+ return getLabel(schema, obj);
678
+ }
679
+ };
680
+ var setLabel2 = (obj, label) => {
681
+ const schema = getSchema2(obj);
682
+ if (schema != null) {
683
+ setLabel(schema, obj, label);
684
+ }
685
+ };
686
+ var getDescription2 = (obj) => {
687
+ const schema = getSchema2(obj);
688
+ if (schema != null) {
689
+ return getDescription(schema, obj);
690
+ }
691
+ };
692
+ var setDescription2 = (obj, description) => {
693
+ const schema = getSchema2(obj);
694
+ if (schema != null) {
695
+ setDescription(schema, obj, description);
696
+ }
697
+ };
698
+ var compare = (a, b) => {
699
+ if (a == null) {
700
+ return b == null ? 0 : 1;
701
+ }
702
+ if (b == null) {
703
+ return -1;
704
+ }
705
+ return a.localeCompare(b);
706
+ };
707
+ var sortByLabel = (a, b) => compare(getLabel2(a), getLabel2(b));
708
+ var sortByTypename = (a, b) => compare(getTypename2(a), getTypename2(b));
709
+ var sort = (...comparators) => {
710
+ return (a, b) => {
711
+ for (const comparator of comparators) {
712
+ const result = comparator(a, b);
713
+ if (result !== 0) {
714
+ return result;
715
+ }
716
+ }
717
+ return 0;
718
+ };
719
+ };
720
+ var toJSON = (obj) => objectToJSON(obj);
721
+ var fromJSON = objectFromJSON;
722
+ var getSnapshot2 = LiveObject.getSnapshot;
723
+ var clone = (obj, opts) => {
724
+ const { id, ...data } = obj;
725
+ const schema = getSchema2(obj);
726
+ invariant2(schema != null, "Object should have a schema", {
727
+ F: __dxlog_file2,
728
+ L: 305,
729
+ S: void 0,
730
+ A: [
731
+ "schema != null",
732
+ "'Object should have a schema'"
733
+ ]
734
+ });
735
+ const props = deepMapValues(data, (value2, recurse) => {
736
+ if (Ref.isRef(value2)) {
737
+ return value2;
738
+ }
739
+ return recurse(value2);
740
+ });
741
+ if (opts?.retainId) {
742
+ props.id = id;
743
+ }
744
+ const meta = getMeta3(obj);
745
+ props[MetaId] = deepMapValues(meta, (value2, recurse) => {
746
+ if (Ref.isRef(value2)) {
747
+ return value2;
748
+ }
749
+ return recurse(value2);
750
+ });
751
+ return make2(schema, props);
752
+ };
753
+ var VersionTypeId2 = VersionTypeId;
754
+ var unversioned = {
755
+ [VersionTypeId2]: {},
756
+ versioned: false
757
+ };
758
+ var isVersion = (obj) => {
759
+ return obj != null && typeof obj === "object" && VersionTypeId2 in obj;
760
+ };
761
+ var version = (obj) => {
762
+ const version2 = obj[ObjectVersionId];
763
+ if (version2 === void 0) {
764
+ return unversioned;
765
+ }
766
+ return version2;
767
+ };
768
+ var versionValid = (version2) => {
769
+ assertArgument2(isVersion(version2), "version", "Invalid version object");
770
+ return !!version2.versioned;
771
+ };
772
+ var compareVersions = (version1, version2) => {
773
+ assertArgument2(isVersion(version1), "version1", "Invalid version object");
774
+ assertArgument2(isVersion(version2), "version2", "Invalid version object");
775
+ if (!versionValid(version1) || !versionValid(version2)) {
776
+ return "unversioned";
777
+ }
778
+ if (version1.automergeHeads?.length !== version2.automergeHeads?.length) {
779
+ return "different";
780
+ }
781
+ if (version1.automergeHeads?.some((head) => !version2.automergeHeads?.includes(head))) {
782
+ return "different";
783
+ }
784
+ return "equal";
785
+ };
786
+ var encodeVersion = (version2) => {
787
+ return JSON.stringify(version2);
788
+ };
789
+ var decodeVersion = (version2) => {
790
+ const parsed = JSON.parse(version2);
791
+ parsed[VersionTypeId2] = {};
792
+ return parsed;
793
+ };
794
+
795
+ // src/query/tag.ts
796
+ var Tag = Schema3.Struct({
797
+ label: Schema3.String,
798
+ hue: Schema3.optional(Schema3.String)
799
+ }).pipe(Obj({
800
+ typename: "dxos.org/type/Tag",
801
+ version: "0.1.0"
802
+ }), LabelAnnotation.set([
803
+ "label"
804
+ ]));
805
+ var make3 = (props) => make2(Tag, props);
806
+ var sortTags = ({ label: a }, { label: b }) => a.localeCompare(b);
807
+ var createTagList = (tags) => Object.entries(tags).map(([id, tag]) => ({
808
+ ...tag,
809
+ id
810
+ })).sort(sortTags);
811
+ var findTagByLabel = (tags, name) => {
812
+ const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());
813
+ return entry ? {
814
+ ...entry[1],
815
+ id: entry[0]
816
+ } : void 0;
817
+ };
773
818
 
774
819
  export {
775
- Key_exports,
776
- Obj_exports,
777
820
  Ref_exports,
778
- Relation_exports,
779
- Type_exports,
780
821
  Filter,
781
822
  Query,
782
823
  Order,
783
- DXN4 as DXN,
784
- QueryAST
824
+ Relation,
825
+ Type_exports,
826
+ Any,
827
+ Obj_exports,
828
+ tag_exports
785
829
  };
786
- //# sourceMappingURL=chunk-MTR3E5S2.mjs.map
830
+ //# sourceMappingURL=chunk-MAAYELT7.mjs.map