@dxos/echo 0.8.4-main.e098934 → 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 (308) 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-EIXXFUN5.mjs → chunk-MAAYELT7.mjs} +477 -486
  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 +12 -7
  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-TCY7IVTS.mjs → chunk-5NWDGIBT.mjs} +477 -486
  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 +12 -7
  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 +8 -8
  38. package/dist/types/src/index.d.ts +2 -2
  39. package/dist/types/src/index.d.ts.map +1 -1
  40. package/dist/types/src/internal/ast/annotation-helper.d.ts +8 -0
  41. package/dist/types/src/internal/ast/annotation-helper.d.ts.map +1 -0
  42. package/dist/types/src/internal/ast/annotations.d.ts +125 -0
  43. package/dist/types/src/internal/ast/annotations.d.ts.map +1 -0
  44. package/dist/types/src/internal/ast/annotations.test.d.ts +2 -0
  45. package/dist/types/src/internal/ast/annotations.test.d.ts.map +1 -0
  46. package/dist/types/src/internal/ast/entity-kind.d.ts +10 -0
  47. package/dist/types/src/internal/ast/entity-kind.d.ts.map +1 -0
  48. package/dist/types/src/internal/ast/index.d.ts +5 -0
  49. package/dist/types/src/internal/ast/index.d.ts.map +1 -0
  50. package/dist/types/src/internal/ast/types.d.ts +6 -0
  51. package/dist/types/src/internal/ast/types.d.ts.map +1 -0
  52. package/dist/types/src/internal/formats/date.d.ts +63 -0
  53. package/dist/types/src/internal/formats/date.d.ts.map +1 -0
  54. package/dist/types/src/internal/formats/date.test.d.ts +2 -0
  55. package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
  56. package/dist/types/src/internal/formats/format.d.ts +30 -0
  57. package/dist/types/src/internal/formats/format.d.ts.map +1 -0
  58. package/dist/types/src/internal/formats/format.test.d.ts +2 -0
  59. package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
  60. package/dist/types/src/internal/formats/index.d.ts +8 -0
  61. package/dist/types/src/internal/formats/index.d.ts.map +1 -0
  62. package/dist/types/src/internal/formats/number.d.ts +31 -0
  63. package/dist/types/src/internal/formats/number.d.ts.map +1 -0
  64. package/dist/types/src/internal/formats/object.d.ts +35 -0
  65. package/dist/types/src/internal/formats/object.d.ts.map +1 -0
  66. package/dist/types/src/internal/formats/select.d.ts +11 -0
  67. package/dist/types/src/internal/formats/select.d.ts.map +1 -0
  68. package/dist/types/src/internal/formats/string.d.ts +38 -0
  69. package/dist/types/src/internal/formats/string.d.ts.map +1 -0
  70. package/dist/types/src/internal/formats/types.d.ts +68 -0
  71. package/dist/types/src/internal/formats/types.d.ts.map +1 -0
  72. package/dist/types/src/internal/index.d.ts +15 -0
  73. package/dist/types/src/internal/index.d.ts.map +1 -0
  74. package/dist/types/src/internal/json/annotations.d.ts +19 -0
  75. package/dist/types/src/internal/json/annotations.d.ts.map +1 -0
  76. package/dist/types/src/internal/json/effect-schema.test.d.ts +2 -0
  77. package/dist/types/src/internal/json/effect-schema.test.d.ts.map +1 -0
  78. package/dist/types/src/internal/json/index.d.ts +2 -0
  79. package/dist/types/src/internal/json/index.d.ts.map +1 -0
  80. package/dist/types/src/internal/json/json-schema.d.ts +28 -0
  81. package/dist/types/src/internal/json/json-schema.d.ts.map +1 -0
  82. package/dist/types/src/internal/json/json-schema.test.d.ts +2 -0
  83. package/dist/types/src/internal/json/json-schema.test.d.ts.map +1 -0
  84. package/dist/types/src/internal/json-schema/index.d.ts +3 -0
  85. package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
  86. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
  87. package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
  88. package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
  89. package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
  90. package/dist/types/src/internal/object/accessors.d.ts +37 -0
  91. package/dist/types/src/internal/object/accessors.d.ts.map +1 -0
  92. package/dist/types/src/internal/object/common.d.ts +18 -0
  93. package/dist/types/src/internal/object/common.d.ts.map +1 -0
  94. package/dist/types/src/internal/object/create.d.ts +40 -0
  95. package/dist/types/src/internal/object/create.d.ts.map +1 -0
  96. package/dist/types/src/internal/object/create.test.d.ts +2 -0
  97. package/dist/types/src/internal/object/create.test.d.ts.map +1 -0
  98. package/dist/types/src/internal/object/deleted.d.ts +6 -0
  99. package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
  100. package/dist/types/src/internal/object/entity.d.ts +33 -0
  101. package/dist/types/src/internal/object/entity.d.ts.map +1 -0
  102. package/dist/types/src/internal/object/expando.d.ts +14 -0
  103. package/dist/types/src/internal/object/expando.d.ts.map +1 -0
  104. package/dist/types/src/internal/object/ids.d.ts +6 -0
  105. package/dist/types/src/internal/object/ids.d.ts.map +1 -0
  106. package/dist/types/src/internal/object/index.d.ts +16 -0
  107. package/dist/types/src/internal/object/index.d.ts.map +1 -0
  108. package/dist/types/src/internal/object/inspect.d.ts +2 -0
  109. package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
  110. package/dist/types/src/internal/object/json-serializer.d.ts +32 -0
  111. package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
  112. package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
  113. package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
  114. package/dist/types/src/internal/object/meta.d.ts +31 -0
  115. package/dist/types/src/internal/object/meta.d.ts.map +1 -0
  116. package/dist/types/src/internal/object/model.d.ts +117 -0
  117. package/dist/types/src/internal/object/model.d.ts.map +1 -0
  118. package/dist/types/src/internal/object/relation.d.ts +17 -0
  119. package/dist/types/src/internal/object/relation.d.ts.map +1 -0
  120. package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
  121. package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
  122. package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
  123. package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
  124. package/dist/types/src/internal/object/typed-object.d.ts +31 -0
  125. package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
  126. package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
  127. package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
  128. package/dist/types/src/internal/object/typename.d.ts +15 -0
  129. package/dist/types/src/internal/object/typename.d.ts.map +1 -0
  130. package/dist/types/src/internal/object/version.d.ts +14 -0
  131. package/dist/types/src/internal/object/version.d.ts.map +1 -0
  132. package/dist/types/src/internal/projection/compose.d.ts +6 -0
  133. package/dist/types/src/internal/projection/compose.d.ts.map +1 -0
  134. package/dist/types/src/internal/projection/compose.test.d.ts +2 -0
  135. package/dist/types/src/internal/projection/compose.test.d.ts.map +1 -0
  136. package/dist/types/src/internal/projection/index.d.ts +2 -0
  137. package/dist/types/src/internal/projection/index.d.ts.map +1 -0
  138. package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
  139. package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
  140. package/dist/types/src/internal/proxy/reactive-object.d.ts +15 -0
  141. package/dist/types/src/internal/proxy/reactive-object.d.ts.map +1 -0
  142. package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
  143. package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
  144. package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
  145. package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
  146. package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
  147. package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
  148. package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
  149. package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
  150. package/dist/types/src/internal/query/index.d.ts +2 -0
  151. package/dist/types/src/internal/query/index.d.ts.map +1 -0
  152. package/dist/types/src/internal/query/query.d.ts +17 -0
  153. package/dist/types/src/internal/query/query.d.ts.map +1 -0
  154. package/dist/types/src/internal/ref/index.d.ts +3 -0
  155. package/dist/types/src/internal/ref/index.d.ts.map +1 -0
  156. package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
  157. package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
  158. package/dist/types/src/internal/ref/ref.d.ts +206 -0
  159. package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
  160. package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
  161. package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
  162. package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
  163. package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
  164. package/dist/types/src/internal/schema/index.d.ts +7 -0
  165. package/dist/types/src/internal/schema/index.d.ts.map +1 -0
  166. package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
  167. package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
  168. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +18 -0
  169. package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -0
  170. package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
  171. package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
  172. package/dist/types/src/internal/schema/stored-schema.d.ts +13 -0
  173. package/dist/types/src/internal/schema/stored-schema.d.ts.map +1 -0
  174. package/dist/types/src/internal/testing/index.d.ts +3 -0
  175. package/dist/types/src/internal/testing/index.d.ts.map +1 -0
  176. package/dist/types/src/internal/testing/types.d.ts +455 -0
  177. package/dist/types/src/internal/testing/types.d.ts.map +1 -0
  178. package/dist/types/src/internal/testing/utils.d.ts +10 -0
  179. package/dist/types/src/internal/testing/utils.d.ts.map +1 -0
  180. package/dist/types/src/internal/types/index.d.ts +3 -0
  181. package/dist/types/src/internal/types/index.d.ts.map +1 -0
  182. package/dist/types/src/internal/types/types.d.ts +79 -0
  183. package/dist/types/src/internal/types/types.d.ts.map +1 -0
  184. package/dist/types/src/internal/types/types.test.d.ts +2 -0
  185. package/dist/types/src/internal/types/types.test.d.ts.map +1 -0
  186. package/dist/types/src/internal/types/util.d.ts +5 -0
  187. package/dist/types/src/internal/types/util.d.ts.map +1 -0
  188. package/dist/types/src/query/index.d.ts +2 -1
  189. package/dist/types/src/query/index.d.ts.map +1 -1
  190. package/dist/types/src/query/{dsl.d.ts → query.d.ts} +28 -23
  191. package/dist/types/src/query/query.d.ts.map +1 -0
  192. package/dist/types/src/query/query.test.d.ts +2 -0
  193. package/dist/types/src/query/query.test.d.ts.map +1 -0
  194. package/dist/types/src/query/tag.d.ts +17 -0
  195. package/dist/types/src/query/tag.d.ts.map +1 -0
  196. package/dist/types/src/testing/echo-schema.d.ts +7 -0
  197. package/dist/types/src/testing/echo-schema.d.ts.map +1 -0
  198. package/dist/types/src/testing/index.d.ts +2 -0
  199. package/dist/types/src/testing/index.d.ts.map +1 -1
  200. package/dist/types/src/testing/types.d.ts +18 -18
  201. package/dist/types/src/testing/types.d.ts.map +1 -1
  202. package/dist/types/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +29 -18
  204. package/src/Obj.ts +77 -12
  205. package/src/Ref.ts +1 -2
  206. package/src/Relation.ts +15 -5
  207. package/src/Type.ts +29 -30
  208. package/src/index.ts +2 -2
  209. package/src/internal/ast/annotation-helper.ts +22 -0
  210. package/src/internal/ast/annotations.test.ts +98 -0
  211. package/src/internal/ast/annotations.ts +219 -0
  212. package/src/internal/ast/entity-kind.ts +15 -0
  213. package/src/internal/ast/index.ts +8 -0
  214. package/src/internal/ast/types.ts +17 -0
  215. package/src/internal/formats/date.test.ts +56 -0
  216. package/src/internal/formats/date.ts +217 -0
  217. package/src/internal/formats/format.test.ts +77 -0
  218. package/src/internal/formats/format.ts +52 -0
  219. package/src/internal/formats/index.ts +12 -0
  220. package/src/internal/formats/number.ts +89 -0
  221. package/src/internal/formats/object.ts +80 -0
  222. package/src/internal/formats/select.ts +16 -0
  223. package/src/internal/formats/string.ts +76 -0
  224. package/src/internal/formats/types.ts +175 -0
  225. package/src/internal/index.ts +22 -0
  226. package/src/internal/json/annotations.ts +50 -0
  227. package/src/internal/json/effect-schema.test.ts +143 -0
  228. package/src/internal/json/index.ts +5 -0
  229. package/src/internal/json/json-schema.test.ts +857 -0
  230. package/src/internal/json/json-schema.ts +519 -0
  231. package/src/internal/json-schema/index.ts +6 -0
  232. package/src/internal/json-schema/json-schema-normalize.ts +109 -0
  233. package/src/internal/json-schema/json-schema-type.ts +403 -0
  234. package/src/internal/object/accessors.ts +153 -0
  235. package/src/internal/object/common.ts +76 -0
  236. package/src/internal/object/create.test.ts +118 -0
  237. package/src/internal/object/create.ts +96 -0
  238. package/src/internal/object/deleted.ts +19 -0
  239. package/src/internal/object/entity.ts +248 -0
  240. package/src/internal/object/expando.ts +21 -0
  241. package/src/internal/object/ids.ts +12 -0
  242. package/src/internal/object/index.ts +19 -0
  243. package/src/internal/object/inspect.ts +48 -0
  244. package/src/internal/object/json-serializer.test.ts +99 -0
  245. package/src/internal/object/json-serializer.ts +225 -0
  246. package/src/internal/object/meta.ts +61 -0
  247. package/src/internal/object/model.ts +170 -0
  248. package/src/internal/object/relation.ts +24 -0
  249. package/src/internal/object/schema-validator.test.ts +186 -0
  250. package/src/internal/object/schema-validator.ts +241 -0
  251. package/src/internal/object/typed-object.test.ts +34 -0
  252. package/src/internal/object/typed-object.ts +88 -0
  253. package/src/internal/object/typename.ts +61 -0
  254. package/src/internal/object/version.ts +22 -0
  255. package/src/internal/projection/compose.test.ts +43 -0
  256. package/src/internal/projection/compose.ts +36 -0
  257. package/src/internal/projection/index.ts +5 -0
  258. package/src/internal/proxy/handler.test.ts +163 -0
  259. package/src/internal/proxy/reactive-object.ts +108 -0
  260. package/src/internal/proxy/schema.test.ts +136 -0
  261. package/src/internal/proxy/typed-handler.test.ts +102 -0
  262. package/src/internal/proxy/typed-handler.ts +228 -0
  263. package/src/internal/proxy/typed-object.test.ts +100 -0
  264. package/src/internal/query/index.ts +5 -0
  265. package/src/internal/query/query.ts +23 -0
  266. package/src/internal/ref/index.ts +6 -0
  267. package/src/internal/ref/ref-array.ts +39 -0
  268. package/src/internal/ref/ref.test.ts +100 -0
  269. package/src/internal/ref/ref.ts +521 -0
  270. package/src/internal/schema/echo-schema.ts +383 -0
  271. package/src/internal/schema/index.ts +10 -0
  272. package/src/internal/schema/manipulation.ts +92 -0
  273. package/src/internal/schema/runtime-schema-registry.ts +78 -0
  274. package/src/internal/schema/snapshot.ts +25 -0
  275. package/src/internal/schema/stored-schema.ts +26 -0
  276. package/src/internal/testing/index.ts +6 -0
  277. package/src/internal/testing/types.ts +211 -0
  278. package/src/internal/testing/utils.ts +54 -0
  279. package/src/internal/types/index.ts +6 -0
  280. package/src/internal/types/types.test.ts +48 -0
  281. package/src/internal/types/types.ts +176 -0
  282. package/src/internal/types/util.ts +9 -0
  283. package/src/query/index.ts +2 -1
  284. package/src/query/query.test.ts +401 -0
  285. package/src/query/{dsl.ts → query.ts} +82 -45
  286. package/src/query/tag.ts +37 -0
  287. package/src/test/api.test.ts +9 -9
  288. package/src/testing/echo-schema.ts +39 -0
  289. package/src/testing/index.ts +2 -0
  290. package/src/testing/types.ts +1 -1
  291. package/dist/lib/browser/chunk-EIXXFUN5.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-TCY7IVTS.mjs.map +0 -7
  293. package/dist/types/src/experimental/database.d.ts +0 -8
  294. package/dist/types/src/experimental/database.d.ts.map +0 -1
  295. package/dist/types/src/experimental/index.d.ts +0 -1
  296. package/dist/types/src/experimental/index.d.ts.map +0 -1
  297. package/dist/types/src/experimental/queue.d.ts +0 -8
  298. package/dist/types/src/experimental/queue.d.ts.map +0 -1
  299. package/dist/types/src/experimental/space.d.ts +0 -8
  300. package/dist/types/src/experimental/space.d.ts.map +0 -1
  301. package/dist/types/src/query/dsl.d.ts.map +0 -1
  302. package/dist/types/src/query/dsl.test.d.ts +0 -2
  303. package/dist/types/src/query/dsl.test.d.ts.map +0 -1
  304. package/src/experimental/database.ts +0 -11
  305. package/src/experimental/index.ts +0 -7
  306. package/src/experimental/queue.ts +0 -11
  307. package/src/experimental/space.ts +0 -11
  308. package/src/query/dsl.test.ts +0 -362
@@ -1,254 +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-BQRA4VLX.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
- Meta: () => Meta,
43
- VersionTypeId: () => VersionTypeId2,
44
- clone: () => clone,
45
- compareVersions: () => compareVersions,
46
- decodeVersion: () => decodeVersion,
47
- deleteKeys: () => deleteKeys,
48
- encodeVersion: () => encodeVersion,
49
- fromJSON: () => fromJSON,
50
- getDXN: () => getDXN,
51
- getKeys: () => getKeys,
52
- getLabel: () => getLabel2,
53
- getMeta: () => getMeta2,
54
- getSchema: () => getSchema2,
55
- getSnapshot: () => getSnapshot2,
56
- getTypeDXN: () => getTypeDXN,
57
- getTypename: () => getTypename,
58
- instanceOf: () => instanceOf,
59
- isDeleted: () => isDeleted2,
60
- isObject: () => isObject,
61
- isVersion: () => isVersion,
62
- make: () => make,
63
- setLabel: () => setLabel2,
64
- toJSON: () => toJSON,
65
- version: () => version,
66
- versionValid: () => versionValid
67
- });
68
- import { Schema } from "effect";
69
- import { dual } from "effect/Function";
70
- import * as EchoSchema from "@dxos/echo-schema";
71
- import { assertArgument, invariant } from "@dxos/invariant";
72
- import * as LiveObject from "@dxos/live-object";
73
- import { live } from "@dxos/live-object";
74
- import { assumeType, deepMapValues } from "@dxos/util";
75
- var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
76
- var Meta = EchoSchema.MetaId;
77
- var make = (schema, props, meta) => {
78
- assertArgument(EchoSchema.getTypeAnnotation(schema)?.kind === EchoSchema.EntityKind.Object, "schema", "Expected an object schema");
79
- if (props[EchoSchema.MetaId] != null) {
80
- meta = props[EchoSchema.MetaId];
81
- delete props[EchoSchema.MetaId];
82
- }
83
- return live(schema, props, meta);
84
- };
85
- var isObject = (obj) => {
86
- assumeType(obj);
87
- return typeof obj === "object" && obj !== null && obj[EchoSchema.EntityKindId] === EchoSchema.EntityKind.Object;
88
- };
89
- var instanceOf = (...args) => {
90
- if (args.length === 1) {
91
- return (obj) => EchoSchema.isInstanceOf(args[0], obj);
92
- }
93
- return EchoSchema.isInstanceOf(args[0], args[1]);
94
- };
95
- var getSchema2 = EchoSchema.getSchema;
96
- var getDXN = (obj) => {
97
- assertArgument(!Schema.isSchema(obj), "obj", "Object should not be a schema.");
98
- const dxn = EchoSchema.getObjectDXN(obj);
99
- invariant(dxn != null, "Invalid object.", {
100
- F: __dxlog_file,
101
- L: 113,
102
- S: void 0,
103
- A: [
104
- "dxn != null",
105
- "'Invalid object.'"
106
- ]
107
- });
108
- return dxn;
109
- };
110
- var getTypeDXN = EchoSchema.getType;
111
- var getTypename = (obj) => {
112
- const schema = getSchema2(obj);
113
- if (schema == null) {
114
- return EchoSchema.getType(obj)?.asTypeDXN()?.type;
115
- }
116
- return EchoSchema.getSchemaTypename(schema);
117
- };
118
- var getMeta2 = (obj) => {
119
- const meta = EchoSchema.getMeta(obj);
120
- invariant(meta != null, "Invalid object.", {
121
- F: __dxlog_file,
122
- L: 141,
123
- S: void 0,
124
- A: [
125
- "meta != null",
126
- "'Invalid object.'"
127
- ]
128
- });
129
- return meta;
130
- };
131
- var getKeys = dual(2, (obj, source) => {
132
- const meta = EchoSchema.getMeta(obj);
133
- invariant(meta != null, "Invalid object.", {
134
- F: __dxlog_file,
135
- L: 153,
136
- S: void 0,
137
- A: [
138
- "meta != null",
139
- "'Invalid object.'"
140
- ]
141
- });
142
- return meta.keys.filter((key) => key.source === source);
143
- });
144
- var deleteKeys = (obj, source) => {
145
- const meta = EchoSchema.getMeta(obj);
146
- for (let i = 0; i < meta.keys.length; i++) {
147
- if (meta.keys[i].source === source) {
148
- meta.keys.splice(i, 1);
149
- i--;
150
- }
151
- }
152
- };
153
- var isDeleted2 = (obj) => {
154
- const deleted = EchoSchema.isDeleted(obj);
155
- invariant(typeof deleted === "boolean", "Invalid object.", {
156
- F: __dxlog_file,
157
- L: 175,
158
- S: void 0,
159
- A: [
160
- "typeof deleted === 'boolean'",
161
- "'Invalid object.'"
162
- ]
163
- });
164
- return deleted;
165
- };
166
- var getLabel2 = (obj) => {
167
- const schema = getSchema2(obj);
168
- if (schema != null) {
169
- return EchoSchema.getLabel(schema, obj);
170
- }
171
- };
172
- var setLabel2 = (obj, label) => {
173
- const schema = getSchema2(obj);
174
- if (schema != null) {
175
- EchoSchema.setLabel(schema, obj, label);
176
- }
177
- };
178
- var toJSON = (obj) => EchoSchema.objectToJSON(obj);
179
- var fromJSON = EchoSchema.objectFromJSON;
180
- var getSnapshot2 = LiveObject.getSnapshot;
181
- var clone = (obj, opts) => {
182
- const { id, ...data } = obj;
183
- const schema = getSchema2(obj);
184
- invariant(schema != null, "Object should have a schema", {
185
- F: __dxlog_file,
186
- L: 240,
187
- S: void 0,
188
- A: [
189
- "schema != null",
190
- "'Object should have a schema'"
191
- ]
192
- });
193
- const props = deepMapValues(data, (value, recurse) => {
194
- if (EchoSchema.Ref.isRef(value)) {
195
- return value;
196
- }
197
- return recurse(value);
198
- });
199
- if (opts?.retainId) {
200
- props.id = id;
201
- }
202
- const meta = getMeta2(obj);
203
- props[EchoSchema.MetaId] = deepMapValues(meta, (value, recurse) => {
204
- if (EchoSchema.Ref.isRef(value)) {
205
- return value;
206
- }
207
- return recurse(value);
208
- });
209
- return make(schema, props);
210
- };
211
- var VersionTypeId2 = EchoSchema.VersionTypeId;
212
- var unversioned = {
213
- [VersionTypeId2]: {},
214
- versioned: false
215
- };
216
- var isVersion = (obj) => {
217
- return obj != null && typeof obj === "object" && VersionTypeId2 in obj;
218
- };
219
- var version = (obj) => {
220
- const version2 = obj[EchoSchema.ObjectVersionId];
221
- if (version2 === void 0) {
222
- return unversioned;
223
- }
224
- return version2;
225
- };
226
- var versionValid = (version2) => {
227
- assertArgument(isVersion(version2), "version", "Invalid version object");
228
- return !!version2.versioned;
229
- };
230
- var compareVersions = (version1, version2) => {
231
- assertArgument(isVersion(version1), "version1", "Invalid version object");
232
- assertArgument(isVersion(version2), "version2", "Invalid version object");
233
- if (!versionValid(version1) || !versionValid(version2)) {
234
- return "unversioned";
235
- }
236
- if (version1.automergeHeads?.length !== version2.automergeHeads?.length) {
237
- return "different";
238
- }
239
- if (version1.automergeHeads?.some((head) => !version2.automergeHeads?.includes(head))) {
240
- return "different";
241
- }
242
- return "equal";
243
- };
244
- var encodeVersion = (version2) => {
245
- return JSON.stringify(version2);
246
- };
247
- var decodeVersion = (version2) => {
248
- const parsed = JSON.parse(version2);
249
- parsed[VersionTypeId2] = {};
250
- return parsed;
251
- };
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";
252
46
 
253
47
  // src/Ref.ts
254
48
  var Ref_exports = {};
@@ -256,210 +50,30 @@ __export(Ref_exports, {
256
50
  Array: () => Array2,
257
51
  fromDXN: () => fromDXN,
258
52
  isRef: () => isRef,
259
- make: () => make2
260
- });
261
- import * as EchoSchema2 from "@dxos/echo-schema";
262
- var Array2 = EchoSchema2.RefArray;
263
- var isRef = EchoSchema2.Ref.isRef;
264
- var make2 = EchoSchema2.Ref.make;
265
- var fromDXN = EchoSchema2.Ref.fromDXN;
266
-
267
- // src/Relation.ts
268
- var Relation_exports = {};
269
- __export(Relation_exports, {
270
- Source: () => Source,
271
- Target: () => Target,
272
- getSource: () => getSource,
273
- getSourceDXN: () => getSourceDXN,
274
- getTarget: () => getTarget,
275
- getTargetDXN: () => getTargetDXN,
276
- isRelation: () => isRelation,
277
- make: () => make3
278
- });
279
- import { raise } from "@dxos/debug";
280
- import * as EchoSchema3 from "@dxos/echo-schema";
281
- import { assertArgument as assertArgument2, invariant as invariant2 } from "@dxos/invariant";
282
- import { DXN } from "@dxos/keys";
283
- import { live as live2 } from "@dxos/live-object";
284
- import { assumeType as assumeType2 } from "@dxos/util";
285
- var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Relation.ts";
286
- var Source = EchoSchema3.RelationSourceId;
287
- var Target = EchoSchema3.RelationTargetId;
288
- var make3 = (schema, props, meta) => {
289
- assertArgument2(EchoSchema3.getTypeAnnotation(schema)?.kind === EchoSchema3.EntityKind.Relation, "schema", "Expected a relation schema");
290
- if (props[EchoSchema3.MetaId] != null) {
291
- meta = props[EchoSchema3.MetaId];
292
- delete props[EchoSchema3.MetaId];
293
- }
294
- const sourceDXN = EchoSchema3.getObjectDXN(props[Source]) ?? raise(new Error("Unresolved relation source"));
295
- const targetDXN = EchoSchema3.getObjectDXN(props[Target]) ?? raise(new Error("Unresolved relation target"));
296
- props[EchoSchema3.RelationSourceDXNId] = sourceDXN;
297
- props[EchoSchema3.RelationTargetDXNId] = targetDXN;
298
- return live2(schema, props, meta);
299
- };
300
- var isRelation = (value) => {
301
- if (typeof value !== "object" || value === null) {
302
- return false;
303
- }
304
- if (EchoSchema3.ATTR_RELATION_SOURCE in value || EchoSchema3.ATTR_RELATION_TARGET in value) {
305
- return true;
306
- }
307
- const kind = value[EchoSchema3.EntityKindId];
308
- return kind === EchoSchema3.EntityKind.Relation;
309
- };
310
- var getSourceDXN = (value) => {
311
- assertArgument2(isRelation(value), "Expected a relation");
312
- assumeType2(value);
313
- const dxn = value[EchoSchema3.RelationSourceDXNId];
314
- invariant2(dxn instanceof DXN, void 0, {
315
- F: __dxlog_file2,
316
- L: 100,
317
- S: void 0,
318
- A: [
319
- "dxn instanceof DXN",
320
- ""
321
- ]
322
- });
323
- return dxn;
324
- };
325
- var getTargetDXN = (value) => {
326
- assertArgument2(isRelation(value), "Expected a relation");
327
- assumeType2(value);
328
- const dxn = value[EchoSchema3.RelationTargetDXNId];
329
- invariant2(dxn instanceof DXN, void 0, {
330
- F: __dxlog_file2,
331
- L: 112,
332
- S: void 0,
333
- A: [
334
- "dxn instanceof DXN",
335
- ""
336
- ]
337
- });
338
- return dxn;
339
- };
340
- var getSource = (relation) => {
341
- assertArgument2(isRelation(relation), "Expected a relation");
342
- assumeType2(relation);
343
- const obj = relation[EchoSchema3.RelationSourceId];
344
- invariant2(obj !== void 0, `Invalid source: ${relation.id}`, {
345
- F: __dxlog_file2,
346
- L: 124,
347
- S: void 0,
348
- A: [
349
- "obj !== undefined",
350
- "`Invalid source: ${relation.id}`"
351
- ]
352
- });
353
- return obj;
354
- };
355
- var getTarget = (relation) => {
356
- assertArgument2(isRelation(relation), "Expected a relation");
357
- assumeType2(relation);
358
- const obj = relation[EchoSchema3.RelationTargetId];
359
- invariant2(obj !== void 0, `Invalid target: ${relation.id}`, {
360
- F: __dxlog_file2,
361
- L: 136,
362
- S: void 0,
363
- A: [
364
- "obj !== undefined",
365
- "`Invalid target: ${relation.id}`"
366
- ]
367
- });
368
- return obj;
369
- };
370
-
371
- // src/Type.ts
372
- var Type_exports = {};
373
- __export(Type_exports, {
374
- DXN: () => DXN2,
375
- Expando: () => Expando2,
376
- Format: () => Format,
377
- JsonSchema: () => JsonSchemaType,
378
- Kind: () => Kind,
379
- KindId: () => KindId,
380
- Obj: () => Obj,
381
- ObjectId: () => ObjectId2,
382
- Ref: () => Ref4,
383
- Relation: () => Relation,
384
- SpaceId: () => SpaceId2,
385
- getDXN: () => getDXN2,
386
- getMeta: () => getMeta3,
387
- getTypename: () => getTypename2,
388
- getVersion: () => getVersion,
389
- isMutable: () => isMutable2,
390
- toEffectSchema: () => toEffectSchema,
391
- toJsonSchema: () => toJsonSchema
53
+ make: () => make
392
54
  });
393
- import * as EchoSchema4 from "@dxos/echo-schema";
394
- import { invariant as invariant3 } from "@dxos/invariant";
395
- import { SpaceId as SpaceId2, ObjectId as ObjectId2, DXN as DXN2 } from "@dxos/keys";
396
- import { Format, JsonSchemaType, toEffectSchema, toJsonSchema } from "@dxos/echo-schema";
397
- var __dxlog_file3 = "/__w/dxos/dxos/packages/core/echo/echo/src/Type.ts";
398
- var KindId = EchoSchema4.EntityKindId;
399
- var Kind = EchoSchema4.EntityKind;
400
- var Obj = EchoSchema4.EchoObject;
401
- var Expando2 = EchoSchema4.Expando;
402
- var Relation = EchoSchema4.EchoRelation;
403
- var Ref4 = EchoSchema4.Ref;
404
- var getDXN2 = (schema) => {
405
- return EchoSchema4.getSchemaDXN(schema);
406
- };
407
- var getTypename2 = (schema) => {
408
- const typename = EchoSchema4.getSchemaTypename(schema);
409
- invariant3(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
410
- F: __dxlog_file3,
411
- L: 212,
412
- S: void 0,
413
- A: [
414
- "typeof typename === 'string' && !typename.startsWith('dxn:')",
415
- "'Invalid typename'"
416
- ]
417
- });
418
- return typename;
419
- };
420
- var getVersion = (schema) => {
421
- const version2 = EchoSchema4.getSchemaVersion(schema);
422
- invariant3(typeof version2 === "string" && version2.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
423
- F: __dxlog_file3,
424
- L: 222,
425
- S: void 0,
426
- A: [
427
- "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
428
- "'Invalid version'"
429
- ]
430
- });
431
- return version2;
432
- };
433
- var isMutable2 = EchoSchema4.isMutable;
434
- var getMeta3 = (schema) => {
435
- return EchoSchema4.getTypeAnnotation(schema);
436
- };
437
-
438
- // src/index.ts
439
- 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;
440
59
 
441
- // src/query/dsl.ts
442
- import { Match, Schema as Schema2 } from "effect";
443
- import { raise as raise2 } from "@dxos/debug";
444
- import { getTypeReference } from "@dxos/echo-schema";
445
- import { assertArgument as assertArgument3 } from "@dxos/invariant";
446
- import { DXN as DXN3, ObjectId as ObjectId3 } from "@dxos/keys";
447
- function _define_property(obj, key, value) {
60
+ // src/query/query.ts
61
+ function _define_property(obj, key, value2) {
448
62
  if (key in obj) {
449
63
  Object.defineProperty(obj, key, {
450
- value,
64
+ value: value2,
451
65
  enumerable: true,
452
66
  configurable: true,
453
67
  writable: true
454
68
  });
455
69
  } else {
456
- obj[key] = value;
70
+ obj[key] = value2;
457
71
  }
458
72
  return obj;
459
73
  }
460
74
  var OrderClass = class _OrderClass {
461
- static is(value) {
462
- return typeof value === "object" && value !== null && "~Order" in value;
75
+ static is(value2) {
76
+ return typeof value2 === "object" && value2 !== null && "~Order" in value2;
463
77
  }
464
78
  constructor(ast) {
465
79
  _define_property(this, "ast", void 0);
@@ -480,8 +94,11 @@ _define_property(OrderClass, "variance", {});
480
94
  });
481
95
  })(Order || (Order = {}));
482
96
  var FilterClass = class _FilterClass {
483
- static is(value) {
484
- 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);
485
102
  }
486
103
  static everything() {
487
104
  return new _FilterClass({
@@ -508,7 +125,7 @@ var FilterClass = class _FilterClass {
508
125
  });
509
126
  }
510
127
  static ids(...ids) {
511
- 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");
512
129
  if (ids.length === 0) {
513
130
  return Filter.nothing();
514
131
  }
@@ -520,7 +137,7 @@ var FilterClass = class _FilterClass {
520
137
  });
521
138
  }
522
139
  static type(schema, props) {
523
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
140
+ const dxn = getTypeDXNFromSpecifier(schema);
524
141
  return new _FilterClass({
525
142
  type: "object",
526
143
  typename: dxn.toString(),
@@ -528,10 +145,10 @@ var FilterClass = class _FilterClass {
528
145
  });
529
146
  }
530
147
  static typename(typename) {
531
- assertArgument3(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
148
+ assertArgument(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
532
149
  return new _FilterClass({
533
150
  type: "object",
534
- typename: DXN3.fromTypename(typename).toString(),
151
+ typename: DXN.fromTypename(typename).toString(),
535
152
  props: {}
536
153
  });
537
154
  }
@@ -542,10 +159,13 @@ var FilterClass = class _FilterClass {
542
159
  props: {}
543
160
  });
544
161
  }
545
- /**
546
- * @internal
547
- */
548
- static _props(props) {
162
+ static tag(tag) {
163
+ return new _FilterClass({
164
+ type: "tag",
165
+ tag
166
+ });
167
+ }
168
+ static props(props) {
549
169
  return new _FilterClass({
550
170
  type: "object",
551
171
  typename: null,
@@ -560,7 +180,7 @@ var FilterClass = class _FilterClass {
560
180
  });
561
181
  }
562
182
  static foreignKeys(schema, keys) {
563
- const dxn = getTypeReference(schema)?.toDXN() ?? raise2(new TypeError("Schema has no DXN"));
183
+ const dxn = getTypeDXNFromSpecifier(schema);
564
184
  return new _FilterClass({
565
185
  type: "object",
566
186
  typename: dxn.toString(),
@@ -568,49 +188,49 @@ var FilterClass = class _FilterClass {
568
188
  foreignKeys: keys
569
189
  });
570
190
  }
571
- static eq(value) {
572
- if (!isRef(value) && typeof value === "object" && value !== null) {
191
+ static eq(value2) {
192
+ if (!isRef(value2) && typeof value2 === "object" && value2 !== null) {
573
193
  throw new TypeError("Cannot use object as a value for eq filter");
574
194
  }
575
195
  return new _FilterClass({
576
196
  type: "compare",
577
197
  operator: "eq",
578
- value: isRef(value) ? value.noInline().encode() : value
198
+ value: isRef(value2) ? value2.noInline().encode() : value2
579
199
  });
580
200
  }
581
- static neq(value) {
201
+ static neq(value2) {
582
202
  return new _FilterClass({
583
203
  type: "compare",
584
204
  operator: "neq",
585
- value
205
+ value: value2
586
206
  });
587
207
  }
588
- static gt(value) {
208
+ static gt(value2) {
589
209
  return new _FilterClass({
590
210
  type: "compare",
591
211
  operator: "gt",
592
- value
212
+ value: value2
593
213
  });
594
214
  }
595
- static gte(value) {
215
+ static gte(value2) {
596
216
  return new _FilterClass({
597
217
  type: "compare",
598
218
  operator: "gte",
599
- value
219
+ value: value2
600
220
  });
601
221
  }
602
- static lt(value) {
222
+ static lt(value2) {
603
223
  return new _FilterClass({
604
224
  type: "compare",
605
225
  operator: "lt",
606
- value
226
+ value: value2
607
227
  });
608
228
  }
609
- static lte(value) {
229
+ static lte(value2) {
610
230
  return new _FilterClass({
611
231
  type: "compare",
612
232
  operator: "lte",
613
- value
233
+ value: value2
614
234
  });
615
235
  }
616
236
  static in(...values) {
@@ -619,10 +239,10 @@ var FilterClass = class _FilterClass {
619
239
  values
620
240
  });
621
241
  }
622
- static contains(value) {
242
+ static contains(value2) {
623
243
  return new _FilterClass({
624
244
  type: "contains",
625
- value
245
+ value: value2
626
246
  });
627
247
  }
628
248
  static between(from, to) {
@@ -662,11 +282,11 @@ var Filter = FilterClass;
662
282
  var propsFilterToAst = (predicates) => {
663
283
  let idFilter;
664
284
  if ("id" in predicates) {
665
- 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");
666
286
  idFilter = typeof predicates.id === "string" ? [
667
287
  predicates.id
668
288
  ] : predicates.id;
669
- Schema2.Array(ObjectId3).pipe(Schema2.validateSync)(idFilter);
289
+ Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);
670
290
  }
671
291
  return {
672
292
  id: idFilter,
@@ -685,9 +305,9 @@ var processPredicate = (predicate) => {
685
305
  throw new Error("Array predicates are not yet supported.");
686
306
  }),
687
307
  Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
688
- const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value]) => [
308
+ const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value2]) => [
689
309
  key,
690
- processPredicate(value)
310
+ processPredicate(value2)
691
311
  ]));
692
312
  return {
693
313
  type: "object",
@@ -695,12 +315,12 @@ var processPredicate = (predicate) => {
695
315
  props: nestedProps
696
316
  };
697
317
  }),
698
- Match.orElse((value) => Filter.eq(value).ast)
318
+ Match.orElse((value2) => Filter.eq(value2).ast)
699
319
  );
700
320
  };
701
321
  var QueryClass = class _QueryClass {
702
- static is(value) {
703
- return typeof value === "object" && value !== null && "~Query" in value;
322
+ static is(value2) {
323
+ return typeof value2 === "object" && value2 !== null && "~Query" in value2;
704
324
  }
705
325
  static fromAst(ast) {
706
326
  return new _QueryClass(ast);
@@ -744,7 +364,7 @@ var QueryClass = class _QueryClass {
744
364
  return new _QueryClass({
745
365
  type: "filter",
746
366
  selection: this.ast,
747
- filter: FilterClass._props(filter).ast
367
+ filter: FilterClass.props(filter).ast
748
368
  });
749
369
  }
750
370
  }
@@ -756,7 +376,7 @@ var QueryClass = class _QueryClass {
756
376
  });
757
377
  }
758
378
  referencedBy(target, key) {
759
- const dxn = getTypeReference(target)?.toDXN() ?? raise2(new TypeError("Target schema has no DXN"));
379
+ const dxn = getTypeDXNFromSpecifier(target);
760
380
  return new _QueryClass({
761
381
  type: "incoming-references",
762
382
  anchor: this.ast,
@@ -817,23 +437,394 @@ var QueryClass = class _QueryClass {
817
437
  };
818
438
  _define_property(QueryClass, "variance", {});
819
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
+ };
820
449
  var Order;
821
450
 
822
- // src/index.ts
823
- 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
+ };
824
818
 
825
819
  export {
826
- SchemaNotFoundError,
827
- ObjectNotFoundError,
828
- Key_exports,
829
- Obj_exports,
830
820
  Ref_exports,
831
- Relation_exports,
832
- Type_exports,
833
821
  Filter,
834
822
  Query,
835
823
  Order,
836
- DXN4 as DXN,
837
- QueryAST
824
+ Relation,
825
+ Type_exports,
826
+ Any,
827
+ Obj_exports,
828
+ tag_exports
838
829
  };
839
- //# sourceMappingURL=chunk-TCY7IVTS.mjs.map
830
+ //# sourceMappingURL=chunk-5NWDGIBT.mjs.map