@dxos/echo 0.8.4-main.c1de068 → 0.8.4-main.e098934

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 (35) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/browser/{chunk-EUA7CM23.mjs → chunk-EIXXFUN5.mjs} +256 -36
  3. package/dist/lib/browser/chunk-EIXXFUN5.mjs.map +7 -0
  4. package/dist/lib/browser/index.mjs +9 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +1 -1
  7. package/dist/lib/node-esm/{chunk-IV6BWGHK.mjs → chunk-TCY7IVTS.mjs} +256 -36
  8. package/dist/lib/node-esm/chunk-TCY7IVTS.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +9 -1
  10. package/dist/lib/node-esm/meta.json +1 -1
  11. package/dist/lib/node-esm/testing/index.mjs +1 -1
  12. package/dist/types/src/Obj.d.ts +101 -12
  13. package/dist/types/src/Obj.d.ts.map +1 -1
  14. package/dist/types/src/Relation.d.ts +6 -4
  15. package/dist/types/src/Relation.d.ts.map +1 -1
  16. package/dist/types/src/Type.d.ts +1 -1
  17. package/dist/types/src/Type.d.ts.map +1 -1
  18. package/dist/types/src/errors.d.ts +72 -0
  19. package/dist/types/src/errors.d.ts.map +1 -0
  20. package/dist/types/src/index.d.ts +3 -1
  21. package/dist/types/src/index.d.ts.map +1 -1
  22. package/dist/types/src/query/dsl.d.ts +27 -2
  23. package/dist/types/src/query/dsl.d.ts.map +1 -1
  24. package/dist/types/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +20 -13
  26. package/src/Obj.ts +203 -18
  27. package/src/Relation.ts +10 -8
  28. package/src/Type.ts +3 -1
  29. package/src/errors.ts +18 -0
  30. package/src/index.ts +4 -1
  31. package/src/query/dsl.test.ts +40 -1
  32. package/src/query/dsl.ts +112 -6
  33. package/src/test/api.test.ts +9 -2
  34. package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
  35. package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
package/README.md CHANGED
@@ -122,7 +122,7 @@ Defines attributes and encoding placed on objects.
122
122
  | | Optional | Runtime prop | Runtime type | JSON prop | JSON type | Description |
123
123
  | ------------------- | ----------------------- | -------------------------------------- | ---------------------- | --------------------------- | ---------- | ------------------------------ |
124
124
  | Id | No | `id` | `ObjectID` ULID string | `id` | string | Unique object ID |
125
- | Self DXN | Yes | `Symbol(@dxos/echo/Self)` | `DXN` | `@self` | string | DXN to the object itself |
125
+ | Self DXN | Yes | `Symbol(@dxos/echo/DXN)` | `DXN` | `@dxn` | string | DXN to the object itself |
126
126
  | Type | No | `Symbol(@dxos/echo/Type)` | `DXN` | `@type` | string | DXN to the object type |
127
127
  | Schema | Yes | `Symbol(@dxos/echo/Schema)` | Effect-Schema | - | | Reference to the object schema |
128
128
  | Tombstone marker | Yes | `Symbol(@dxos/echo/Deleted)` | `boolean` | `@deleted` | boolean | Deletion marker |
@@ -5,6 +5,29 @@ var __export = (target, all) => {
5
5
  __defProp(target, name, { get: all[name], enumerable: true });
6
6
  };
7
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
+ };
30
+
8
31
  // src/Key.ts
9
32
  var Key_exports = {};
10
33
  __export(Key_exports, {
@@ -16,27 +39,43 @@ import { SpaceId, ObjectId } from "@dxos/keys";
16
39
  // src/Obj.ts
17
40
  var Obj_exports = {};
18
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,
19
49
  fromJSON: () => fromJSON,
20
50
  getDXN: () => getDXN,
51
+ getKeys: () => getKeys,
21
52
  getLabel: () => getLabel2,
22
53
  getMeta: () => getMeta2,
23
54
  getSchema: () => getSchema2,
55
+ getSnapshot: () => getSnapshot2,
24
56
  getTypeDXN: () => getTypeDXN,
25
57
  getTypename: () => getTypename,
26
58
  instanceOf: () => instanceOf,
27
59
  isDeleted: () => isDeleted2,
28
60
  isObject: () => isObject,
61
+ isVersion: () => isVersion,
29
62
  make: () => make,
30
- toJSON: () => toJSON
63
+ setLabel: () => setLabel2,
64
+ toJSON: () => toJSON,
65
+ version: () => version,
66
+ versionValid: () => versionValid
31
67
  });
32
68
  import { Schema } from "effect";
69
+ import { dual } from "effect/Function";
33
70
  import * as EchoSchema from "@dxos/echo-schema";
34
71
  import { assertArgument, invariant } from "@dxos/invariant";
72
+ import * as LiveObject from "@dxos/live-object";
35
73
  import { live } from "@dxos/live-object";
36
- import { assumeType } from "@dxos/util";
74
+ import { assumeType, deepMapValues } from "@dxos/util";
37
75
  var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Obj.ts";
76
+ var Meta = EchoSchema.MetaId;
38
77
  var make = (schema, props, meta) => {
39
- assertArgument(EchoSchema.getTypeAnnotation(schema)?.kind === EchoSchema.EntityKind.Object, "Expected an object schema");
78
+ assertArgument(EchoSchema.getTypeAnnotation(schema)?.kind === EchoSchema.EntityKind.Object, "schema", "Expected an object schema");
40
79
  if (props[EchoSchema.MetaId] != null) {
41
80
  meta = props[EchoSchema.MetaId];
42
81
  delete props[EchoSchema.MetaId];
@@ -55,11 +94,11 @@ var instanceOf = (...args) => {
55
94
  };
56
95
  var getSchema2 = EchoSchema.getSchema;
57
96
  var getDXN = (obj) => {
58
- assertArgument(!Schema.isSchema(obj), "Object should not be a schema.");
97
+ assertArgument(!Schema.isSchema(obj), "obj", "Object should not be a schema.");
59
98
  const dxn = EchoSchema.getObjectDXN(obj);
60
99
  invariant(dxn != null, "Invalid object.", {
61
100
  F: __dxlog_file,
62
- L: 96,
101
+ L: 113,
63
102
  S: void 0,
64
103
  A: [
65
104
  "dxn != null",
@@ -80,7 +119,7 @@ var getMeta2 = (obj) => {
80
119
  const meta = EchoSchema.getMeta(obj);
81
120
  invariant(meta != null, "Invalid object.", {
82
121
  F: __dxlog_file,
83
- L: 124,
122
+ L: 141,
84
123
  S: void 0,
85
124
  A: [
86
125
  "meta != null",
@@ -89,11 +128,33 @@ var getMeta2 = (obj) => {
89
128
  });
90
129
  return meta;
91
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
+ };
92
153
  var isDeleted2 = (obj) => {
93
154
  const deleted = EchoSchema.isDeleted(obj);
94
155
  invariant(typeof deleted === "boolean", "Invalid object.", {
95
156
  F: __dxlog_file,
96
- L: 131,
157
+ L: 175,
97
158
  S: void 0,
98
159
  A: [
99
160
  "typeof deleted === 'boolean'",
@@ -108,8 +169,86 @@ var getLabel2 = (obj) => {
108
169
  return EchoSchema.getLabel(schema, obj);
109
170
  }
110
171
  };
172
+ var setLabel2 = (obj, label) => {
173
+ const schema = getSchema2(obj);
174
+ if (schema != null) {
175
+ EchoSchema.setLabel(schema, obj, label);
176
+ }
177
+ };
111
178
  var toJSON = (obj) => EchoSchema.objectToJSON(obj);
112
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
+ };
113
252
 
114
253
  // src/Ref.ts
115
254
  var Ref_exports = {};
@@ -147,7 +286,7 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo/src/Relation.ts";
147
286
  var Source = EchoSchema3.RelationSourceId;
148
287
  var Target = EchoSchema3.RelationTargetId;
149
288
  var make3 = (schema, props, meta) => {
150
- assertArgument2(EchoSchema3.getTypeAnnotation(schema)?.kind === EchoSchema3.EntityKind.Relation, "Expected a relation schema");
289
+ assertArgument2(EchoSchema3.getTypeAnnotation(schema)?.kind === EchoSchema3.EntityKind.Relation, "schema", "Expected a relation schema");
151
290
  if (props[EchoSchema3.MetaId] != null) {
152
291
  meta = props[EchoSchema3.MetaId];
153
292
  delete props[EchoSchema3.MetaId];
@@ -174,7 +313,7 @@ var getSourceDXN = (value) => {
174
313
  const dxn = value[EchoSchema3.RelationSourceDXNId];
175
314
  invariant2(dxn instanceof DXN, void 0, {
176
315
  F: __dxlog_file2,
177
- L: 98,
316
+ L: 100,
178
317
  S: void 0,
179
318
  A: [
180
319
  "dxn instanceof DXN",
@@ -189,7 +328,7 @@ var getTargetDXN = (value) => {
189
328
  const dxn = value[EchoSchema3.RelationTargetDXNId];
190
329
  invariant2(dxn instanceof DXN, void 0, {
191
330
  F: __dxlog_file2,
192
- L: 110,
331
+ L: 112,
193
332
  S: void 0,
194
333
  A: [
195
334
  "dxn instanceof DXN",
@@ -204,7 +343,7 @@ var getSource = (relation) => {
204
343
  const obj = relation[EchoSchema3.RelationSourceId];
205
344
  invariant2(obj !== void 0, `Invalid source: ${relation.id}`, {
206
345
  F: __dxlog_file2,
207
- L: 122,
346
+ L: 124,
208
347
  S: void 0,
209
348
  A: [
210
349
  "obj !== undefined",
@@ -219,7 +358,7 @@ var getTarget = (relation) => {
219
358
  const obj = relation[EchoSchema3.RelationTargetId];
220
359
  invariant2(obj !== void 0, `Invalid target: ${relation.id}`, {
221
360
  F: __dxlog_file2,
222
- L: 134,
361
+ L: 136,
223
362
  S: void 0,
224
363
  A: [
225
364
  "obj !== undefined",
@@ -240,7 +379,7 @@ __export(Type_exports, {
240
379
  KindId: () => KindId,
241
380
  Obj: () => Obj,
242
381
  ObjectId: () => ObjectId2,
243
- Ref: () => Ref3,
382
+ Ref: () => Ref4,
244
383
  Relation: () => Relation,
245
384
  SpaceId: () => SpaceId2,
246
385
  getDXN: () => getDXN2,
@@ -261,7 +400,7 @@ var Kind = EchoSchema4.EntityKind;
261
400
  var Obj = EchoSchema4.EchoObject;
262
401
  var Expando2 = EchoSchema4.Expando;
263
402
  var Relation = EchoSchema4.EchoRelation;
264
- var Ref3 = EchoSchema4.Ref;
403
+ var Ref4 = EchoSchema4.Ref;
265
404
  var getDXN2 = (schema) => {
266
405
  return EchoSchema4.getSchemaDXN(schema);
267
406
  };
@@ -269,7 +408,7 @@ var getTypename2 = (schema) => {
269
408
  const typename = EchoSchema4.getSchemaTypename(schema);
270
409
  invariant3(typeof typename === "string" && !typename.startsWith("dxn:"), "Invalid typename", {
271
410
  F: __dxlog_file3,
272
- L: 210,
411
+ L: 212,
273
412
  S: void 0,
274
413
  A: [
275
414
  "typeof typename === 'string' && !typename.startsWith('dxn:')",
@@ -279,17 +418,17 @@ var getTypename2 = (schema) => {
279
418
  return typename;
280
419
  };
281
420
  var getVersion = (schema) => {
282
- const version = EchoSchema4.getSchemaVersion(schema);
283
- invariant3(typeof version === "string" && version.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
421
+ const version2 = EchoSchema4.getSchemaVersion(schema);
422
+ invariant3(typeof version2 === "string" && version2.match(/^\d+\.\d+\.\d+$/), "Invalid version", {
284
423
  F: __dxlog_file3,
285
- L: 220,
424
+ L: 222,
286
425
  S: void 0,
287
426
  A: [
288
427
  "typeof version === 'string' && version.match(/^\\d+\\.\\d+\\.\\d+$/)",
289
428
  "'Invalid version'"
290
429
  ]
291
430
  });
292
- return version;
431
+ return version2;
293
432
  };
294
433
  var isMutable2 = EchoSchema4.isMutable;
295
434
  var getMeta3 = (schema) => {
@@ -300,15 +439,47 @@ var getMeta3 = (schema) => {
300
439
  import { DXN as DXN4 } from "@dxos/keys";
301
440
 
302
441
  // src/query/dsl.ts
303
- import { Schema as Schema2 } from "effect";
442
+ import { Match, Schema as Schema2 } from "effect";
304
443
  import { raise as raise2 } from "@dxos/debug";
305
444
  import { getTypeReference } from "@dxos/echo-schema";
306
445
  import { assertArgument as assertArgument3 } from "@dxos/invariant";
307
446
  import { DXN as DXN3, ObjectId as ObjectId3 } from "@dxos/keys";
308
- var FilterClass = class _FilterClass {
309
- static {
310
- this.variance = {};
447
+ function _define_property(obj, key, value) {
448
+ if (key in obj) {
449
+ Object.defineProperty(obj, key, {
450
+ value,
451
+ enumerable: true,
452
+ configurable: true,
453
+ writable: true
454
+ });
455
+ } else {
456
+ obj[key] = value;
311
457
  }
458
+ return obj;
459
+ }
460
+ var OrderClass = class _OrderClass {
461
+ static is(value) {
462
+ return typeof value === "object" && value !== null && "~Order" in value;
463
+ }
464
+ constructor(ast) {
465
+ _define_property(this, "ast", void 0);
466
+ _define_property(this, "~Order", void 0);
467
+ this.ast = ast;
468
+ this["~Order"] = _OrderClass.variance;
469
+ }
470
+ };
471
+ _define_property(OrderClass, "variance", {});
472
+ (function(Order2) {
473
+ Order2.natural = new OrderClass({
474
+ kind: "natural"
475
+ });
476
+ Order2.property = (property, direction) => new OrderClass({
477
+ kind: "property",
478
+ property,
479
+ direction
480
+ });
481
+ })(Order || (Order = {}));
482
+ var FilterClass = class _FilterClass {
312
483
  static is(value) {
313
484
  return typeof value === "object" && value !== null && "~Filter" in value;
314
485
  }
@@ -337,7 +508,7 @@ var FilterClass = class _FilterClass {
337
508
  });
338
509
  }
339
510
  static ids(...ids) {
340
- assertArgument3(ids.every((id) => ObjectId3.isValid(id)), "ids must be valid");
511
+ assertArgument3(ids.every((id) => ObjectId3.isValid(id)), "ids", "ids must be valid");
341
512
  if (ids.length === 0) {
342
513
  return Filter.nothing();
343
514
  }
@@ -357,7 +528,7 @@ var FilterClass = class _FilterClass {
357
528
  });
358
529
  }
359
530
  static typename(typename) {
360
- assertArgument3(!typename.startsWith("dxn:"), "Typename must no be qualified");
531
+ assertArgument3(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
361
532
  return new _FilterClass({
362
533
  type: "object",
363
534
  typename: DXN3.fromTypename(typename).toString(),
@@ -448,6 +619,12 @@ var FilterClass = class _FilterClass {
448
619
  values
449
620
  });
450
621
  }
622
+ static contains(value) {
623
+ return new _FilterClass({
624
+ type: "contains",
625
+ value
626
+ });
627
+ }
451
628
  static between(from, to) {
452
629
  return new _FilterClass({
453
630
  type: "range",
@@ -474,15 +651,18 @@ var FilterClass = class _FilterClass {
474
651
  });
475
652
  }
476
653
  constructor(ast) {
654
+ _define_property(this, "ast", void 0);
655
+ _define_property(this, "~Filter", void 0);
477
656
  this.ast = ast;
478
657
  this["~Filter"] = _FilterClass.variance;
479
658
  }
480
659
  };
660
+ _define_property(FilterClass, "variance", {});
481
661
  var Filter = FilterClass;
482
662
  var propsFilterToAst = (predicates) => {
483
663
  let idFilter;
484
664
  if ("id" in predicates) {
485
- assertArgument3(typeof predicates.id === "string" || Array.isArray(predicates.id), "invalid id filter");
665
+ assertArgument3(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
486
666
  idFilter = typeof predicates.id === "string" ? [
487
667
  predicates.id
488
668
  ] : predicates.id;
@@ -492,17 +672,39 @@ var propsFilterToAst = (predicates) => {
492
672
  id: idFilter,
493
673
  props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
494
674
  prop,
495
- Filter.is(predicate) ? predicate.ast : Filter.eq(predicate).ast
675
+ processPredicate(predicate)
496
676
  ]))
497
677
  };
498
678
  };
679
+ var processPredicate = (predicate) => {
680
+ return Match.value(predicate).pipe(
681
+ Match.withReturnType(),
682
+ Match.when(Filter.is, (predicate2) => predicate2.ast),
683
+ // TODO(wittjosiah): Add support for array predicates.
684
+ Match.when(Array.isArray, (_predicate) => {
685
+ throw new Error("Array predicates are not yet supported.");
686
+ }),
687
+ Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
688
+ const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value]) => [
689
+ key,
690
+ processPredicate(value)
691
+ ]));
692
+ return {
693
+ type: "object",
694
+ typename: null,
695
+ props: nestedProps
696
+ };
697
+ }),
698
+ Match.orElse((value) => Filter.eq(value).ast)
699
+ );
700
+ };
499
701
  var QueryClass = class _QueryClass {
500
- static {
501
- this.variance = {};
502
- }
503
702
  static is(value) {
504
703
  return typeof value === "object" && value !== null && "~Query" in value;
505
704
  }
705
+ static fromAst(ast) {
706
+ return new _QueryClass(ast);
707
+ }
506
708
  static select(filter) {
507
709
  return new _QueryClass({
508
710
  type: "select",
@@ -531,10 +733,6 @@ var QueryClass = class _QueryClass {
531
733
  exclude: exclude.ast
532
734
  });
533
735
  }
534
- constructor(ast) {
535
- this.ast = ast;
536
- this["~Query"] = _QueryClass.variance;
537
- }
538
736
  select(filter) {
539
737
  if (Filter.is(filter)) {
540
738
  return new _QueryClass({
@@ -596,6 +794,13 @@ var QueryClass = class _QueryClass {
596
794
  direction: "target"
597
795
  });
598
796
  }
797
+ orderBy(...order) {
798
+ return new _QueryClass({
799
+ type: "order",
800
+ query: this.ast,
801
+ order: order.map((o) => o.ast)
802
+ });
803
+ }
599
804
  options(options) {
600
805
  return new _QueryClass({
601
806
  type: "options",
@@ -603,10 +808,23 @@ var QueryClass = class _QueryClass {
603
808
  options
604
809
  });
605
810
  }
811
+ constructor(ast) {
812
+ _define_property(this, "ast", void 0);
813
+ _define_property(this, "~Query", void 0);
814
+ this.ast = ast;
815
+ this["~Query"] = _QueryClass.variance;
816
+ }
606
817
  };
818
+ _define_property(QueryClass, "variance", {});
607
819
  var Query = QueryClass;
820
+ var Order;
821
+
822
+ // src/index.ts
823
+ import { QueryAST } from "@dxos/echo-protocol";
608
824
 
609
825
  export {
826
+ SchemaNotFoundError,
827
+ ObjectNotFoundError,
610
828
  Key_exports,
611
829
  Obj_exports,
612
830
  Ref_exports,
@@ -614,6 +832,8 @@ export {
614
832
  Type_exports,
615
833
  Filter,
616
834
  Query,
617
- DXN4 as DXN
835
+ Order,
836
+ DXN4 as DXN,
837
+ QueryAST
618
838
  };
619
- //# sourceMappingURL=chunk-EUA7CM23.mjs.map
839
+ //# sourceMappingURL=chunk-EIXXFUN5.mjs.map