@dxos/echo 0.8.4-main.a4bbb77 → 0.8.4-main.ae835ea

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