@dxos/echo 0.8.4-main.b97322e → 0.8.4-main.c4373fc
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.
- package/README.md +1 -1
- package/dist/lib/browser/chunk-MWLA34S5.mjs +3843 -0
- package/dist/lib/browser/chunk-MWLA34S5.mjs.map +7 -0
- package/dist/lib/browser/chunk-OAZJQHVO.mjs +453 -0
- package/dist/lib/browser/chunk-OAZJQHVO.mjs.map +7 -0
- package/dist/lib/browser/chunk-ORIE2FMS.mjs +514 -0
- package/dist/lib/browser/chunk-ORIE2FMS.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +26 -5
- package/dist/lib/browser/internal/index.mjs +326 -0
- package/dist/lib/browser/internal/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/query/index.mjs +23 -0
- package/dist/lib/browser/query/index.mjs.map +7 -0
- package/dist/lib/browser/testing/index.mjs +260 -32
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs +453 -0
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs +514 -0
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YTNLFBIK.mjs +3843 -0
- package/dist/lib/node-esm/chunk-YTNLFBIK.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +26 -5
- package/dist/lib/node-esm/internal/index.mjs +326 -0
- package/dist/lib/node-esm/internal/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/query/index.mjs +23 -0
- package/dist/lib/node-esm/query/index.mjs.map +7 -0
- package/dist/lib/node-esm/testing/index.mjs +260 -32
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/Obj.d.ts +111 -17
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Ref.d.ts +1 -1
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +11 -8
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts +17 -18
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +72 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/ast/annotation-helper.d.ts +8 -0
- package/dist/types/src/internal/ast/annotation-helper.d.ts.map +1 -0
- package/dist/types/src/internal/ast/annotations.d.ts +119 -0
- package/dist/types/src/internal/ast/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/ast/annotations.test.d.ts +2 -0
- package/dist/types/src/internal/ast/annotations.test.d.ts.map +1 -0
- package/dist/types/src/internal/ast/entity-kind.d.ts +10 -0
- package/dist/types/src/internal/ast/entity-kind.d.ts.map +1 -0
- package/dist/types/src/internal/ast/index.d.ts +5 -0
- package/dist/types/src/internal/ast/index.d.ts.map +1 -0
- package/dist/types/src/internal/ast/types.d.ts +6 -0
- package/dist/types/src/internal/ast/types.d.ts.map +1 -0
- package/dist/types/src/internal/formats/date.d.ts +63 -0
- package/dist/types/src/internal/formats/date.d.ts.map +1 -0
- package/dist/types/src/internal/formats/date.test.d.ts +2 -0
- package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
- package/dist/types/src/internal/formats/format.d.ts +30 -0
- package/dist/types/src/internal/formats/format.d.ts.map +1 -0
- package/dist/types/src/internal/formats/format.test.d.ts +2 -0
- package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
- package/dist/types/src/internal/formats/index.d.ts +8 -0
- package/dist/types/src/internal/formats/index.d.ts.map +1 -0
- package/dist/types/src/internal/formats/number.d.ts +31 -0
- package/dist/types/src/internal/formats/number.d.ts.map +1 -0
- package/dist/types/src/internal/formats/object.d.ts +35 -0
- package/dist/types/src/internal/formats/object.d.ts.map +1 -0
- package/dist/types/src/internal/formats/select.d.ts +11 -0
- package/dist/types/src/internal/formats/select.d.ts.map +1 -0
- package/dist/types/src/internal/formats/string.d.ts +38 -0
- package/dist/types/src/internal/formats/string.d.ts.map +1 -0
- package/dist/types/src/internal/formats/types.d.ts +68 -0
- package/dist/types/src/internal/formats/types.d.ts.map +1 -0
- package/dist/types/src/internal/index.d.ts +15 -0
- package/dist/types/src/internal/index.d.ts.map +1 -0
- package/dist/types/src/internal/json/annotations.d.ts +19 -0
- package/dist/types/src/internal/json/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/json/effect-schema.test.d.ts +2 -0
- package/dist/types/src/internal/json/effect-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/json/index.d.ts +2 -0
- package/dist/types/src/internal/json/index.d.ts.map +1 -0
- package/dist/types/src/internal/json/json-schema.d.ts +32 -0
- package/dist/types/src/internal/json/json-schema.d.ts.map +1 -0
- package/dist/types/src/internal/json/json-schema.test.d.ts +2 -0
- package/dist/types/src/internal/json/json-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/index.d.ts +3 -0
- package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
- package/dist/types/src/internal/object/accessors.d.ts +29 -0
- package/dist/types/src/internal/object/accessors.d.ts.map +1 -0
- package/dist/types/src/internal/object/common.d.ts +18 -0
- package/dist/types/src/internal/object/common.d.ts.map +1 -0
- package/dist/types/src/internal/object/create.d.ts +40 -0
- package/dist/types/src/internal/object/create.d.ts.map +1 -0
- package/dist/types/src/internal/object/create.test.d.ts +2 -0
- package/dist/types/src/internal/object/create.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/deleted.d.ts +6 -0
- package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
- package/dist/types/src/internal/object/entity.d.ts +22 -0
- package/dist/types/src/internal/object/entity.d.ts.map +1 -0
- package/dist/types/src/internal/object/expando.d.ts +14 -0
- package/dist/types/src/internal/object/expando.d.ts.map +1 -0
- package/dist/types/src/internal/object/ids.d.ts +6 -0
- package/dist/types/src/internal/object/ids.d.ts.map +1 -0
- package/dist/types/src/internal/object/index.d.ts +17 -0
- package/dist/types/src/internal/object/index.d.ts.map +1 -0
- package/dist/types/src/internal/object/inspect.d.ts +2 -0
- package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
- package/dist/types/src/internal/object/json-serializer.d.ts +32 -0
- package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
- package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
- package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/meta.d.ts +31 -0
- package/dist/types/src/internal/object/meta.d.ts.map +1 -0
- package/dist/types/src/internal/object/model.d.ts +117 -0
- package/dist/types/src/internal/object/model.d.ts.map +1 -0
- package/dist/types/src/internal/object/relation.d.ts +17 -0
- package/dist/types/src/internal/object/relation.d.ts.map +1 -0
- package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
- package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
- package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
- package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-object.d.ts +31 -0
- package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
- package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-relation.d.ts +32 -0
- package/dist/types/src/internal/object/typed-relation.d.ts.map +1 -0
- package/dist/types/src/internal/object/typename.d.ts +15 -0
- package/dist/types/src/internal/object/typename.d.ts.map +1 -0
- package/dist/types/src/internal/object/version.d.ts +14 -0
- package/dist/types/src/internal/object/version.d.ts.map +1 -0
- package/dist/types/src/internal/projection/compose.d.ts +6 -0
- package/dist/types/src/internal/projection/compose.d.ts.map +1 -0
- package/dist/types/src/internal/projection/compose.test.d.ts +2 -0
- package/dist/types/src/internal/projection/compose.test.d.ts.map +1 -0
- package/dist/types/src/internal/projection/index.d.ts +2 -0
- package/dist/types/src/internal/projection/index.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/reactive-object.d.ts +15 -0
- package/dist/types/src/internal/proxy/reactive-object.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/query/index.d.ts +2 -0
- package/dist/types/src/internal/query/index.d.ts.map +1 -0
- package/dist/types/src/internal/query/query.d.ts +17 -0
- package/dist/types/src/internal/query/query.d.ts.map +1 -0
- package/dist/types/src/internal/ref/index.d.ts +3 -0
- package/dist/types/src/internal/ref/index.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
- package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref.d.ts +206 -0
- package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
- package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
- package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
- package/dist/types/src/internal/schema/index.d.ts +7 -0
- package/dist/types/src/internal/schema/index.d.ts.map +1 -0
- package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
- package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
- package/dist/types/src/internal/schema/runtime-schema-registry.d.ts +18 -0
- package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -0
- package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
- package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
- package/dist/types/src/internal/schema/stored-schema.d.ts +13 -0
- package/dist/types/src/internal/schema/stored-schema.d.ts.map +1 -0
- package/dist/types/src/internal/testing/index.d.ts +3 -0
- package/dist/types/src/internal/testing/index.d.ts.map +1 -0
- package/dist/types/src/internal/testing/types.d.ts +455 -0
- package/dist/types/src/internal/testing/types.d.ts.map +1 -0
- package/dist/types/src/internal/testing/utils.d.ts +10 -0
- package/dist/types/src/internal/testing/utils.d.ts.map +1 -0
- package/dist/types/src/internal/types/index.d.ts +3 -0
- package/dist/types/src/internal/types/index.d.ts.map +1 -0
- package/dist/types/src/internal/types/types.d.ts +79 -0
- package/dist/types/src/internal/types/types.d.ts.map +1 -0
- package/dist/types/src/internal/types/types.test.d.ts +2 -0
- package/dist/types/src/internal/types/types.test.d.ts.map +1 -0
- package/dist/types/src/internal/types/util.d.ts +5 -0
- package/dist/types/src/internal/types/util.d.ts.map +1 -0
- package/dist/types/src/query/index.d.ts +2 -1
- package/dist/types/src/query/index.d.ts.map +1 -1
- package/dist/types/src/query/{dsl.d.ts → query.d.ts} +44 -15
- package/dist/types/src/query/query.d.ts.map +1 -0
- package/dist/types/src/query/query.test.d.ts +2 -0
- package/dist/types/src/query/query.test.d.ts.map +1 -0
- package/dist/types/src/query/tag.d.ts +18 -0
- package/dist/types/src/query/tag.d.ts.map +1 -0
- package/dist/types/src/testing/echo-schema.d.ts +7 -0
- package/dist/types/src/testing/echo-schema.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/types.d.ts +18 -18
- package/dist/types/src/testing/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +34 -16
- package/src/Obj.ts +250 -27
- package/src/Ref.ts +1 -2
- package/src/Relation.ts +25 -13
- package/src/Type.ts +32 -31
- package/src/errors.ts +18 -0
- package/src/index.ts +4 -1
- package/src/internal/ast/annotation-helper.ts +22 -0
- package/src/internal/ast/annotations.test.ts +98 -0
- package/src/internal/ast/annotations.ts +212 -0
- package/src/internal/ast/entity-kind.ts +15 -0
- package/src/internal/ast/index.ts +8 -0
- package/src/internal/ast/types.ts +17 -0
- package/src/internal/formats/date.test.ts +56 -0
- package/src/internal/formats/date.ts +217 -0
- package/src/internal/formats/format.test.ts +77 -0
- package/src/internal/formats/format.ts +52 -0
- package/src/internal/formats/index.ts +12 -0
- package/src/internal/formats/number.ts +89 -0
- package/src/internal/formats/object.ts +80 -0
- package/src/internal/formats/select.ts +16 -0
- package/src/internal/formats/string.ts +76 -0
- package/src/internal/formats/types.ts +175 -0
- package/src/internal/index.ts +22 -0
- package/src/internal/json/annotations.ts +50 -0
- package/src/internal/json/effect-schema.test.ts +143 -0
- package/src/internal/json/index.ts +5 -0
- package/src/internal/json/json-schema.test.ts +726 -0
- package/src/internal/json/json-schema.ts +548 -0
- package/src/internal/json-schema/index.ts +6 -0
- package/src/internal/json-schema/json-schema-normalize.ts +109 -0
- package/src/internal/json-schema/json-schema-type.ts +403 -0
- package/src/internal/object/accessors.ts +115 -0
- package/src/internal/object/common.ts +76 -0
- package/src/internal/object/create.test.ts +118 -0
- package/src/internal/object/create.ts +96 -0
- package/src/internal/object/deleted.ts +19 -0
- package/src/internal/object/entity.ts +204 -0
- package/src/internal/object/expando.ts +21 -0
- package/src/internal/object/ids.ts +12 -0
- package/src/internal/object/index.ts +20 -0
- package/src/internal/object/inspect.ts +48 -0
- package/src/internal/object/json-serializer.test.ts +99 -0
- package/src/internal/object/json-serializer.ts +225 -0
- package/src/internal/object/meta.ts +62 -0
- package/src/internal/object/model.ts +170 -0
- package/src/internal/object/relation.ts +24 -0
- package/src/internal/object/schema-validator.test.ts +186 -0
- package/src/internal/object/schema-validator.ts +241 -0
- package/src/internal/object/typed-object.test.ts +34 -0
- package/src/internal/object/typed-object.ts +81 -0
- package/src/internal/object/typed-relation.ts +85 -0
- package/src/internal/object/typename.ts +61 -0
- package/src/internal/object/version.ts +22 -0
- package/src/internal/projection/compose.test.ts +43 -0
- package/src/internal/projection/compose.ts +36 -0
- package/src/internal/projection/index.ts +5 -0
- package/src/internal/proxy/handler.test.ts +163 -0
- package/src/internal/proxy/reactive-object.ts +108 -0
- package/src/internal/proxy/schema.test.ts +136 -0
- package/src/internal/proxy/typed-handler.test.ts +102 -0
- package/src/internal/proxy/typed-handler.ts +228 -0
- package/src/internal/proxy/typed-object.test.ts +100 -0
- package/src/internal/query/index.ts +5 -0
- package/src/internal/query/query.ts +23 -0
- package/src/internal/ref/index.ts +6 -0
- package/src/internal/ref/ref-array.ts +39 -0
- package/src/internal/ref/ref.test.ts +100 -0
- package/src/internal/ref/ref.ts +521 -0
- package/src/internal/schema/echo-schema.ts +383 -0
- package/src/internal/schema/index.ts +10 -0
- package/src/internal/schema/manipulation.ts +86 -0
- package/src/internal/schema/runtime-schema-registry.ts +78 -0
- package/src/internal/schema/snapshot.ts +25 -0
- package/src/internal/schema/stored-schema.ts +26 -0
- package/src/internal/testing/index.ts +6 -0
- package/src/internal/testing/types.ts +211 -0
- package/src/internal/testing/utils.ts +54 -0
- package/src/internal/types/index.ts +6 -0
- package/src/internal/types/types.test.ts +48 -0
- package/src/internal/types/types.ts +176 -0
- package/src/internal/types/util.ts +9 -0
- package/src/query/index.ts +2 -1
- package/src/query/{dsl.test.ts → query.test.ts} +41 -2
- package/src/query/{dsl.ts → query.ts} +170 -32
- package/src/query/tag.ts +35 -0
- package/src/test/api.test.ts +17 -10
- package/src/testing/echo-schema.ts +39 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/types.ts +1 -1
- package/dist/lib/browser/chunk-EUA7CM23.mjs +0 -619
- package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IV6BWGHK.mjs +0 -619
- package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
- package/dist/types/src/experimental/database.d.ts +0 -8
- package/dist/types/src/experimental/database.d.ts.map +0 -1
- package/dist/types/src/experimental/index.d.ts +0 -1
- package/dist/types/src/experimental/index.d.ts.map +0 -1
- package/dist/types/src/experimental/queue.d.ts +0 -8
- package/dist/types/src/experimental/queue.d.ts.map +0 -1
- package/dist/types/src/experimental/space.d.ts +0 -8
- package/dist/types/src/experimental/space.d.ts.map +0 -1
- package/dist/types/src/query/dsl.d.ts.map +0 -1
- package/dist/types/src/query/dsl.test.d.ts +0 -2
- package/dist/types/src/query/dsl.test.d.ts.map +0 -1
- package/src/experimental/database.ts +0 -11
- package/src/experimental/index.ts +0 -7
- package/src/experimental/queue.ts +0 -11
- package/src/experimental/space.ts +0 -11
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
Ref,
|
|
4
|
+
RefArray,
|
|
5
|
+
__export,
|
|
6
|
+
getTypeReference
|
|
7
|
+
} from "./chunk-YTNLFBIK.mjs";
|
|
8
|
+
|
|
9
|
+
// src/query/query.ts
|
|
10
|
+
import * as Match from "effect/Match";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import { raise } from "@dxos/debug";
|
|
13
|
+
import { assertArgument } from "@dxos/invariant";
|
|
14
|
+
import { DXN, ObjectId } from "@dxos/keys";
|
|
15
|
+
|
|
16
|
+
// src/Ref.ts
|
|
17
|
+
var Ref_exports = {};
|
|
18
|
+
__export(Ref_exports, {
|
|
19
|
+
Array: () => Array2,
|
|
20
|
+
fromDXN: () => fromDXN,
|
|
21
|
+
isRef: () => isRef,
|
|
22
|
+
make: () => make
|
|
23
|
+
});
|
|
24
|
+
var Array2 = RefArray;
|
|
25
|
+
var isRef = Ref.isRef;
|
|
26
|
+
var make = Ref.make;
|
|
27
|
+
var fromDXN = Ref.fromDXN;
|
|
28
|
+
|
|
29
|
+
// src/query/query.ts
|
|
30
|
+
function _define_property(obj, key, value2) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value2,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value2;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
var OrderClass = class _OrderClass {
|
|
44
|
+
static is(value2) {
|
|
45
|
+
return typeof value2 === "object" && value2 !== null && "~Order" in value2;
|
|
46
|
+
}
|
|
47
|
+
constructor(ast) {
|
|
48
|
+
_define_property(this, "ast", void 0);
|
|
49
|
+
_define_property(this, "~Order", void 0);
|
|
50
|
+
this.ast = ast;
|
|
51
|
+
this["~Order"] = _OrderClass.variance;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
_define_property(OrderClass, "variance", {});
|
|
55
|
+
(function(Order2) {
|
|
56
|
+
Order2.natural = new OrderClass({
|
|
57
|
+
kind: "natural"
|
|
58
|
+
});
|
|
59
|
+
Order2.property = (property, direction) => new OrderClass({
|
|
60
|
+
kind: "property",
|
|
61
|
+
property,
|
|
62
|
+
direction
|
|
63
|
+
});
|
|
64
|
+
})(Order || (Order = {}));
|
|
65
|
+
var FilterClass = class _FilterClass {
|
|
66
|
+
static is(value2) {
|
|
67
|
+
return typeof value2 === "object" && value2 !== null && "~Filter" in value2;
|
|
68
|
+
}
|
|
69
|
+
static fromAst(ast) {
|
|
70
|
+
return new _FilterClass(ast);
|
|
71
|
+
}
|
|
72
|
+
static everything() {
|
|
73
|
+
return new _FilterClass({
|
|
74
|
+
type: "object",
|
|
75
|
+
typename: null,
|
|
76
|
+
props: {}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static nothing() {
|
|
80
|
+
return new _FilterClass({
|
|
81
|
+
type: "not",
|
|
82
|
+
filter: {
|
|
83
|
+
type: "object",
|
|
84
|
+
typename: null,
|
|
85
|
+
props: {}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
static relation() {
|
|
90
|
+
return new _FilterClass({
|
|
91
|
+
type: "object",
|
|
92
|
+
typename: null,
|
|
93
|
+
props: {}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
static ids(...ids) {
|
|
97
|
+
assertArgument(ids.every((id) => ObjectId.isValid(id)), "ids", "ids must be valid");
|
|
98
|
+
if (ids.length === 0) {
|
|
99
|
+
return Filter.nothing();
|
|
100
|
+
}
|
|
101
|
+
return new _FilterClass({
|
|
102
|
+
type: "object",
|
|
103
|
+
typename: null,
|
|
104
|
+
id: ids,
|
|
105
|
+
props: {}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
static type(schema, props) {
|
|
109
|
+
const dxn = getTypeDXNFromSpecifier(schema);
|
|
110
|
+
return new _FilterClass({
|
|
111
|
+
type: "object",
|
|
112
|
+
typename: dxn.toString(),
|
|
113
|
+
...propsFilterToAst(props ?? {})
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
static typename(typename) {
|
|
117
|
+
assertArgument(!typename.startsWith("dxn:"), "typename", "Typename must no be qualified");
|
|
118
|
+
return new _FilterClass({
|
|
119
|
+
type: "object",
|
|
120
|
+
typename: DXN.fromTypename(typename).toString(),
|
|
121
|
+
props: {}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
static typeDXN(dxn) {
|
|
125
|
+
return new _FilterClass({
|
|
126
|
+
type: "object",
|
|
127
|
+
typename: dxn.toString(),
|
|
128
|
+
props: {}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
static tag(tag) {
|
|
132
|
+
return new _FilterClass({
|
|
133
|
+
type: "tag",
|
|
134
|
+
tag
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
static props(props) {
|
|
138
|
+
return new _FilterClass({
|
|
139
|
+
type: "object",
|
|
140
|
+
typename: null,
|
|
141
|
+
...propsFilterToAst(props)
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
static text(text, options) {
|
|
145
|
+
return new _FilterClass({
|
|
146
|
+
type: "text-search",
|
|
147
|
+
text,
|
|
148
|
+
searchKind: options?.type
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
static foreignKeys(schema, keys) {
|
|
152
|
+
const dxn = getTypeDXNFromSpecifier(schema);
|
|
153
|
+
return new _FilterClass({
|
|
154
|
+
type: "object",
|
|
155
|
+
typename: dxn.toString(),
|
|
156
|
+
props: {},
|
|
157
|
+
foreignKeys: keys
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
static eq(value2) {
|
|
161
|
+
if (!isRef(value2) && typeof value2 === "object" && value2 !== null) {
|
|
162
|
+
throw new TypeError("Cannot use object as a value for eq filter");
|
|
163
|
+
}
|
|
164
|
+
return new _FilterClass({
|
|
165
|
+
type: "compare",
|
|
166
|
+
operator: "eq",
|
|
167
|
+
value: isRef(value2) ? value2.noInline().encode() : value2
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
static neq(value2) {
|
|
171
|
+
return new _FilterClass({
|
|
172
|
+
type: "compare",
|
|
173
|
+
operator: "neq",
|
|
174
|
+
value: value2
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
static gt(value2) {
|
|
178
|
+
return new _FilterClass({
|
|
179
|
+
type: "compare",
|
|
180
|
+
operator: "gt",
|
|
181
|
+
value: value2
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
static gte(value2) {
|
|
185
|
+
return new _FilterClass({
|
|
186
|
+
type: "compare",
|
|
187
|
+
operator: "gte",
|
|
188
|
+
value: value2
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
static lt(value2) {
|
|
192
|
+
return new _FilterClass({
|
|
193
|
+
type: "compare",
|
|
194
|
+
operator: "lt",
|
|
195
|
+
value: value2
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
static lte(value2) {
|
|
199
|
+
return new _FilterClass({
|
|
200
|
+
type: "compare",
|
|
201
|
+
operator: "lte",
|
|
202
|
+
value: value2
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
static in(...values) {
|
|
206
|
+
return new _FilterClass({
|
|
207
|
+
type: "in",
|
|
208
|
+
values
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
static contains(value2) {
|
|
212
|
+
return new _FilterClass({
|
|
213
|
+
type: "contains",
|
|
214
|
+
value: value2
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
static between(from, to) {
|
|
218
|
+
return new _FilterClass({
|
|
219
|
+
type: "range",
|
|
220
|
+
from,
|
|
221
|
+
to
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
static not(filter) {
|
|
225
|
+
return new _FilterClass({
|
|
226
|
+
type: "not",
|
|
227
|
+
filter: filter.ast
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
static and(...filters) {
|
|
231
|
+
return new _FilterClass({
|
|
232
|
+
type: "and",
|
|
233
|
+
filters: filters.map((f) => f.ast)
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
static or(...filters) {
|
|
237
|
+
return new _FilterClass({
|
|
238
|
+
type: "or",
|
|
239
|
+
filters: filters.map((f) => f.ast)
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
constructor(ast) {
|
|
243
|
+
_define_property(this, "ast", void 0);
|
|
244
|
+
_define_property(this, "~Filter", void 0);
|
|
245
|
+
this.ast = ast;
|
|
246
|
+
this["~Filter"] = _FilterClass.variance;
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
_define_property(FilterClass, "variance", {});
|
|
250
|
+
var Filter = FilterClass;
|
|
251
|
+
var propsFilterToAst = (predicates) => {
|
|
252
|
+
let idFilter;
|
|
253
|
+
if ("id" in predicates) {
|
|
254
|
+
assertArgument(typeof predicates.id === "string" || Array.isArray(predicates.id), "predicates.id", "invalid id filter");
|
|
255
|
+
idFilter = typeof predicates.id === "string" ? [
|
|
256
|
+
predicates.id
|
|
257
|
+
] : predicates.id;
|
|
258
|
+
Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
id: idFilter,
|
|
262
|
+
props: Object.fromEntries(Object.entries(predicates).filter(([prop, _value]) => prop !== "id").map(([prop, predicate]) => [
|
|
263
|
+
prop,
|
|
264
|
+
processPredicate(predicate)
|
|
265
|
+
]))
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
var processPredicate = (predicate) => {
|
|
269
|
+
return Match.value(predicate).pipe(
|
|
270
|
+
Match.withReturnType(),
|
|
271
|
+
Match.when(Filter.is, (predicate2) => predicate2.ast),
|
|
272
|
+
// TODO(wittjosiah): Add support for array predicates.
|
|
273
|
+
Match.when(Array.isArray, (_predicate) => {
|
|
274
|
+
throw new Error("Array predicates are not yet supported.");
|
|
275
|
+
}),
|
|
276
|
+
Match.when((predicate2) => !isRef(predicate2) && typeof predicate2 === "object" && predicate2 !== null, (predicate2) => {
|
|
277
|
+
const nestedProps = Object.fromEntries(Object.entries(predicate2).map(([key, value2]) => [
|
|
278
|
+
key,
|
|
279
|
+
processPredicate(value2)
|
|
280
|
+
]));
|
|
281
|
+
return {
|
|
282
|
+
type: "object",
|
|
283
|
+
typename: null,
|
|
284
|
+
props: nestedProps
|
|
285
|
+
};
|
|
286
|
+
}),
|
|
287
|
+
Match.orElse((value2) => Filter.eq(value2).ast)
|
|
288
|
+
);
|
|
289
|
+
};
|
|
290
|
+
var QueryClass = class _QueryClass {
|
|
291
|
+
static is(value2) {
|
|
292
|
+
return typeof value2 === "object" && value2 !== null && "~Query" in value2;
|
|
293
|
+
}
|
|
294
|
+
static fromAst(ast) {
|
|
295
|
+
return new _QueryClass(ast);
|
|
296
|
+
}
|
|
297
|
+
static select(filter) {
|
|
298
|
+
return new _QueryClass({
|
|
299
|
+
type: "select",
|
|
300
|
+
filter: filter.ast
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
static type(schema, predicates) {
|
|
304
|
+
return new _QueryClass({
|
|
305
|
+
type: "select",
|
|
306
|
+
filter: FilterClass.type(schema, predicates).ast
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
static all(...queries) {
|
|
310
|
+
if (queries.length === 0) {
|
|
311
|
+
throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
|
|
312
|
+
}
|
|
313
|
+
return new _QueryClass({
|
|
314
|
+
type: "union",
|
|
315
|
+
queries: queries.map((q) => q.ast)
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
static without(source, exclude) {
|
|
319
|
+
return new _QueryClass({
|
|
320
|
+
type: "set-difference",
|
|
321
|
+
source: source.ast,
|
|
322
|
+
exclude: exclude.ast
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
select(filter) {
|
|
326
|
+
if (Filter.is(filter)) {
|
|
327
|
+
return new _QueryClass({
|
|
328
|
+
type: "filter",
|
|
329
|
+
selection: this.ast,
|
|
330
|
+
filter: filter.ast
|
|
331
|
+
});
|
|
332
|
+
} else {
|
|
333
|
+
return new _QueryClass({
|
|
334
|
+
type: "filter",
|
|
335
|
+
selection: this.ast,
|
|
336
|
+
filter: FilterClass.props(filter).ast
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
reference(key) {
|
|
341
|
+
return new _QueryClass({
|
|
342
|
+
type: "reference-traversal",
|
|
343
|
+
anchor: this.ast,
|
|
344
|
+
property: key
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
referencedBy(target, key) {
|
|
348
|
+
const dxn = getTypeDXNFromSpecifier(target);
|
|
349
|
+
return new _QueryClass({
|
|
350
|
+
type: "incoming-references",
|
|
351
|
+
anchor: this.ast,
|
|
352
|
+
property: key,
|
|
353
|
+
typename: dxn.toString()
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
sourceOf(relation, predicates) {
|
|
357
|
+
return new _QueryClass({
|
|
358
|
+
type: "relation",
|
|
359
|
+
anchor: this.ast,
|
|
360
|
+
direction: "outgoing",
|
|
361
|
+
filter: FilterClass.type(relation, predicates).ast
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
targetOf(relation, predicates) {
|
|
365
|
+
return new _QueryClass({
|
|
366
|
+
type: "relation",
|
|
367
|
+
anchor: this.ast,
|
|
368
|
+
direction: "incoming",
|
|
369
|
+
filter: FilterClass.type(relation, predicates).ast
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
source() {
|
|
373
|
+
return new _QueryClass({
|
|
374
|
+
type: "relation-traversal",
|
|
375
|
+
anchor: this.ast,
|
|
376
|
+
direction: "source"
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
target() {
|
|
380
|
+
return new _QueryClass({
|
|
381
|
+
type: "relation-traversal",
|
|
382
|
+
anchor: this.ast,
|
|
383
|
+
direction: "target"
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
orderBy(...order) {
|
|
387
|
+
return new _QueryClass({
|
|
388
|
+
type: "order",
|
|
389
|
+
query: this.ast,
|
|
390
|
+
order: order.map((o) => o.ast)
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
options(options) {
|
|
394
|
+
return new _QueryClass({
|
|
395
|
+
type: "options",
|
|
396
|
+
query: this.ast,
|
|
397
|
+
options
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
constructor(ast) {
|
|
401
|
+
_define_property(this, "ast", void 0);
|
|
402
|
+
_define_property(this, "~Query", void 0);
|
|
403
|
+
this.ast = ast;
|
|
404
|
+
this["~Query"] = _QueryClass.variance;
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
_define_property(QueryClass, "variance", {});
|
|
408
|
+
var Query = QueryClass;
|
|
409
|
+
var getTypeDXNFromSpecifier = (input) => {
|
|
410
|
+
if (Schema.isSchema(input)) {
|
|
411
|
+
return getTypeReference(input)?.toDXN() ?? raise(new TypeError("Schema has no DXN"));
|
|
412
|
+
} else {
|
|
413
|
+
assertArgument(typeof input === "string", "input");
|
|
414
|
+
assertArgument(!input.startsWith("dxn:"), "input");
|
|
415
|
+
return DXN.fromTypename(input);
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
var Order;
|
|
419
|
+
|
|
420
|
+
// src/query/tag.ts
|
|
421
|
+
import * as Schema2 from "effect/Schema";
|
|
422
|
+
var TagInfo = Schema2.Struct({
|
|
423
|
+
label: Schema2.String,
|
|
424
|
+
hue: Schema2.optional(Schema2.String)
|
|
425
|
+
});
|
|
426
|
+
var Tag = Schema2.extend(TagInfo, Schema2.Struct({
|
|
427
|
+
id: Schema2.String
|
|
428
|
+
}));
|
|
429
|
+
var sortTags = ({ label: a }, { label: b }) => a.localeCompare(b);
|
|
430
|
+
var createTagList = (tags) => Object.entries(tags).map(([id, tag]) => ({
|
|
431
|
+
...tag,
|
|
432
|
+
id
|
|
433
|
+
})).sort(sortTags);
|
|
434
|
+
var findTagByLabel = (tags, name) => {
|
|
435
|
+
const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());
|
|
436
|
+
return entry ? {
|
|
437
|
+
...entry[1],
|
|
438
|
+
id: entry[0]
|
|
439
|
+
} : void 0;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
export {
|
|
443
|
+
Ref_exports,
|
|
444
|
+
Filter,
|
|
445
|
+
Query,
|
|
446
|
+
Order,
|
|
447
|
+
TagInfo,
|
|
448
|
+
Tag,
|
|
449
|
+
sortTags,
|
|
450
|
+
createTagList,
|
|
451
|
+
findTagByLabel
|
|
452
|
+
};
|
|
453
|
+
//# sourceMappingURL=chunk-AXWVDOP7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/query/query.ts", "../../../src/Ref.ts", "../../../src/query/tag.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as EffectArray from 'effect/Array';\nimport * as Match from 'effect/Match';\nimport * as Schema from 'effect/Schema';\n\nimport { raise } from '@dxos/debug';\nimport { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';\nimport { assertArgument } from '@dxos/invariant';\nimport { DXN, ObjectId } from '@dxos/keys';\n\nimport { getTypeReference } from '../internal';\nimport type * as Obj from '../Obj';\nimport * as Ref from '../Ref';\nimport type * as Type from '../Type';\n\n// TODO(dmaretskyi): Split up into interfaces for objects and relations so they can have separate verbs.\n// TODO(dmaretskyi): Undirected relation traversals.\n// TODO(wittjosiah): Make Filter & Query pipeable.\n\nexport interface Order<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Order': { value: T };\n\n ast: QueryAST.Order;\n}\n\nclass OrderClass implements Order<any> {\n private static variance: Order<any>['~Order'] = {} as Order<any>['~Order'];\n\n static is(value: unknown): value is Order<any> {\n return typeof value === 'object' && value !== null && '~Order' in value;\n }\n\n constructor(public readonly ast: QueryAST.Order) {}\n\n '~Order' = OrderClass.variance;\n}\n\nexport namespace Order {\n export const natural: Order<any> = new OrderClass({ kind: 'natural' });\n export const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order<T> =>\n new OrderClass({\n kind: 'property',\n property,\n direction,\n });\n}\n\nexport interface Query<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Query': { value: T };\n\n ast: QueryAST.Query;\n\n /**\n * Filter the current selection based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\n select(filter: Filter<T>): Query<T>;\n select(props: Filter.Props<T>): Query<T>;\n\n /**\n * Traverse an outgoing reference.\n * @param key - Property path inside T that is a reference or optional reference.\n * @returns Query for the target of the reference.\n */\n reference<K extends RefPropKey<T>>(\n key: K,\n ): Query<\n T[K] extends Ref.Any\n ? Ref.Target<T[K]>\n : T[K] extends Ref.Any | undefined\n ? Ref.Target<Exclude<T[K], undefined>>\n : never\n >;\n\n /**\n * Find objects referencing this object.\n * @param target - Schema of the referencing object.\n * @param key - Property path inside the referencing object that is a reference.\n * @returns Query for the referencing objects.\n */\n // TODO(dmaretskyi): any way to enforce `Ref.Target<Schema.Schema.Type<S>[key]> == T`?\n // TODO(dmaretskyi): Ability to go through arrays of references.\n referencedBy<S extends Schema.Schema.All>(\n target: S | string,\n key: RefPropKey<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Find relations where this object is the source.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n sourceOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Find relations where this object is the target.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n targetOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * For a query for relations, get the source objects.\n * @returns Query for the source objects.\n */\n source(): Query<Type.Relation.Source<T>>;\n\n /**\n * For a query for relations, get the target objects.\n * @returns Query for the target objects.\n */\n target(): Query<Type.Relation.Target<T>>;\n\n /**\n * Order the query results.\n * Orders are specified in priority order. The first order will be applied first, etc.\n * @param order - Order to sort the results.\n * @returns Query for the ordered results.\n */\n orderBy(...order: EffectArray.NonEmptyArray<Order<T>>): Query<T>;\n\n /**\n * Add options to a query.\n */\n options(options: QueryAST.QueryOptions): Query<T>;\n}\n\ninterface QueryAPI {\n is(value: unknown): value is Query.Any;\n\n /** Construct a query from an ast. */\n fromAst(ast: QueryAST.Query): Query<any>;\n\n /**\n * Select objects based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\n select<F extends Filter.Any>(filter: F): Query<Filter.Type<F>>;\n\n /**\n * Query for objects of a given schema.\n * @param schema - Schema of the objects.\n * @param predicates - Predicates to filter the objects.\n * @returns Query for the objects.\n *\n * Shorthand for: `Query.select(Filter.type(schema, predicates))`.\n */\n type<S extends Schema.Schema.All>(\n schema: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Combine results of multiple queries.\n * @param queries - Queries to combine.\n * @returns Query for the combined results.\n */\n // TODO(dmaretskyi): Rename to `combine` or `union`.\n all<T>(...queries: Query<T>[]): Query<T>;\n\n /**\n * Subtract one query from another.\n * @param source - Query to subtract from.\n * @param exclude - Query to subtract.\n * @returns Query for the results of the source query minus the results of the exclude query.\n */\n without<T>(source: Query<T>, exclude: Query<T>): Query<T>;\n}\n\nexport declare namespace Query {\n export type Any = Query<any>;\n\n export type Type<Q extends Any> = Q extends Query<infer T> ? T : never;\n\n export type TextSearchOptions = {\n // TODO(dmaretskyi): Hybrid search.\n type?: 'full-text' | 'vector';\n };\n}\n\nexport interface Filter<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Filter': { value: T };\n\n ast: QueryAST.Filter;\n}\n\ntype Intersection<Types extends readonly unknown[]> = Types extends [infer First, ...infer Rest]\n ? First & Intersection<Rest>\n : unknown;\n\ninterface FilterAPI {\n is(value: unknown): value is Filter<any>;\n\n /** Construct a filter from an ast. */\n fromAst(ast: QueryAST.Filter): Filter<any>;\n\n /**\n * Filter that matches all objects.\n */\n everything(): Filter<any>;\n\n /**\n * Filter that matches no objects.\n */\n nothing(): Filter<any>;\n\n /**\n * Filter by object IDs.\n */\n // TODO(dmaretskyi): Rename to `Filter.id`.\n ids(...id: ObjectId[]): Filter<any>;\n\n /**\n * Filter by type.\n */\n type<S extends Schema.Schema.All>(\n schema: S | string,\n props?: Filter.Props<Schema.Schema.Type<S>>,\n ): Filter<Schema.Schema.Type<S>>;\n\n /**\n * Filter by non-qualified typename.\n */\n typename(typename: string): Filter<any>;\n\n /**\n * Filter by fully qualified type DXN.\n */\n typeDXN(dxn: DXN): Filter<any>;\n\n /**\n * Filter by tag.\n */\n tag(tag: string): Filter<Obj.Any>;\n\n /**\n * Filter by properties.\n */\n props<T>(props: Filter.Props<T>): Filter<T>;\n\n /**\n * Full-text or vector search.\n */\n text(\n // TODO(dmaretskyi): Consider passing a vector here, but really the embedding should be done on the query-executor side.\n text: string,\n options?: Query.TextSearchOptions,\n ): Filter<any>;\n\n /**\n * Filter by foreign keys.\n */\n foreignKeys<S extends Schema.Schema.All>(schema: S, keys: ForeignKey[]): Filter<Schema.Schema.Type<S>>;\n\n /**\n * Predicate for property to be equal to the provided value.\n */\n eq<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be not equal to the provided value.\n */\n neq<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be greater than the provided value.\n */\n gt<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be greater than the provided value.\n */\n gt<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be greater than or equal to the provided value.\n */\n gte<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be less than the provided value.\n */\n lt<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be less than or equal to the provided value.\n */\n lte<T>(value: T): Filter<T>;\n\n /**\n * Predicate for property to be in the provided array.\n * @param values - Values to check against.\n */\n in<T>(...values: T[]): Filter<T>;\n\n /**\n * Predicate for an array property to contain the provided value.\n * @param value - Value to check against.\n */\n contains<T>(value: T): Filter<T[]>;\n\n /**\n * Predicate for property to be in the provided range.\n * @param from - Start of the range (inclusive).\n * @param to - End of the range (exclusive).\n */\n between<T>(from: T, to: T): Filter<T>;\n\n /**\n * Negate the filter.\n */\n not<F extends Filter.Any>(filter: F): Filter<Filter.Type<F>>;\n\n /**\n * Combine filters with a logical AND.\n */\n and<FS extends Filter.Any[]>(...filters: FS): Filter<Filter.And<FS>>;\n\n /**\n * Combine filters with a logical OR.\n */\n or<FS extends Filter.Any[]>(...filters: FS): Filter<Filter.Or<FS>>;\n\n // TODO(dmaretskyi): Add `Filter.match` to support pattern matching on string props.\n}\n\nexport declare namespace Filter {\n type Props<T> = {\n // Predicate or a value as a shorthand for `eq`.\n [K in keyof T & string]?: Filter<T[K]> | T[K];\n };\n\n type Any = Filter<any>;\n\n type Type<F extends Any> = F extends Filter<infer T> ? T : never;\n\n type And<FS extends readonly Any[]> = Schema.Simplify<Intersection<{ [K in keyof FS]: Type<FS[K]> }>>;\n\n type Or<FS extends readonly Any[]> = Schema.Simplify<{ [K in keyof FS]: Type<FS[K]> }[number]>;\n}\n\nclass FilterClass implements Filter<any> {\n private static variance: Filter<any>['~Filter'] = {} as Filter<any>['~Filter'];\n\n static is(value: unknown): value is Filter<any> {\n return typeof value === 'object' && value !== null && '~Filter' in value;\n }\n\n static fromAst(ast: QueryAST.Filter): Filter<any> {\n return new FilterClass(ast);\n }\n\n static everything(): FilterClass {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static nothing(): FilterClass {\n return new FilterClass({\n type: 'not',\n filter: {\n type: 'object',\n typename: null,\n props: {},\n },\n });\n }\n\n static relation() {\n return new FilterClass({\n type: 'object',\n typename: null,\n props: {},\n });\n }\n\n static ids(...ids: ObjectId[]): Filter<any> {\n assertArgument(\n ids.every((id) => ObjectId.isValid(id)),\n 'ids',\n 'ids must be valid',\n );\n\n if (ids.length === 0) {\n return Filter.nothing();\n }\n\n return new FilterClass({\n type: 'object',\n typename: null,\n id: ids,\n props: {},\n });\n }\n\n static type<S extends Schema.Schema.All>(\n schema: S | string,\n props?: Filter.Props<Schema.Schema.Type<S>>,\n ): Filter<Schema.Schema.Type<S>> {\n const dxn = getTypeDXNFromSpecifier(schema);\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n ...propsFilterToAst(props ?? {}),\n });\n }\n\n static typename(typename: string): Filter<any> {\n assertArgument(!typename.startsWith('dxn:'), 'typename', 'Typename must no be qualified');\n return new FilterClass({\n type: 'object',\n typename: DXN.fromTypename(typename).toString(),\n props: {},\n });\n }\n\n static typeDXN(dxn: DXN): Filter<any> {\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n props: {},\n });\n }\n\n static tag(tag: string): Filter<any> {\n return new FilterClass({\n type: 'tag',\n tag,\n });\n }\n\n static props<T>(props: Filter.Props<T>): Filter<T> {\n return new FilterClass({\n type: 'object',\n typename: null,\n ...propsFilterToAst(props),\n });\n }\n\n static text(text: string, options?: Query.TextSearchOptions): Filter<any> {\n return new FilterClass({\n type: 'text-search',\n text,\n searchKind: options?.type,\n });\n }\n\n static foreignKeys<S extends Schema.Schema.All>(\n schema: S | string,\n keys: ForeignKey[],\n ): Filter<Schema.Schema.Type<S>> {\n const dxn = getTypeDXNFromSpecifier(schema);\n return new FilterClass({\n type: 'object',\n typename: dxn.toString(),\n props: {},\n foreignKeys: keys,\n });\n }\n\n static eq<T>(value: T): Filter<T> {\n if (!Ref.isRef(value) && typeof value === 'object' && value !== null) {\n throw new TypeError('Cannot use object as a value for eq filter');\n }\n\n return new FilterClass({\n type: 'compare',\n operator: 'eq',\n value: Ref.isRef(value) ? value.noInline().encode() : value,\n });\n }\n\n static neq<T>(value: T): Filter<T> {\n return new FilterClass({\n type: 'compare',\n operator: 'neq',\n value,\n });\n }\n\n static gt<T>(value: T): Filter<T> {\n return new FilterClass({\n type: 'compare',\n operator: 'gt',\n value,\n });\n }\n\n static gte<T>(value: T): Filter<T> {\n return new FilterClass({\n type: 'compare',\n operator: 'gte',\n value,\n });\n }\n\n static lt<T>(value: T): Filter<T> {\n return new FilterClass({\n type: 'compare',\n operator: 'lt',\n value,\n });\n }\n\n static lte<T>(value: T): Filter<T> {\n return new FilterClass({\n type: 'compare',\n operator: 'lte',\n value,\n });\n }\n\n static in<T>(...values: T[]): Filter<T> {\n return new FilterClass({\n type: 'in',\n values,\n });\n }\n\n static contains<T>(value: T): Filter<T[]> {\n return new FilterClass({\n type: 'contains',\n value,\n });\n }\n\n static between<T>(from: T, to: T): Filter<T> {\n return new FilterClass({\n type: 'range',\n from,\n to,\n });\n }\n\n static not<F extends Filter.Any>(filter: F): Filter<Filter.Type<F>> {\n return new FilterClass({\n type: 'not',\n filter: filter.ast,\n });\n }\n\n static and<T>(...filters: Filter<T>[]): Filter<T> {\n return new FilterClass({\n type: 'and',\n filters: filters.map((f) => f.ast),\n });\n }\n\n static or<T>(...filters: Filter<T>[]): Filter<T> {\n return new FilterClass({\n type: 'or',\n filters: filters.map((f) => f.ast),\n });\n }\n\n private constructor(public readonly ast: QueryAST.Filter) {}\n\n '~Filter' = FilterClass.variance;\n}\n\nexport const Filter: FilterAPI = FilterClass;\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\nconst propsFilterToAst = (predicates: Filter.Props<any>): Pick<QueryAST.FilterObject, 'id' | 'props'> => {\n let idFilter: readonly ObjectId[] | undefined;\n if ('id' in predicates) {\n assertArgument(\n typeof predicates.id === 'string' || Array.isArray(predicates.id),\n 'predicates.id',\n 'invalid id filter',\n );\n idFilter = typeof predicates.id === 'string' ? [predicates.id] : predicates.id;\n Schema.Array(ObjectId).pipe(Schema.validateSync)(idFilter);\n }\n\n return {\n id: idFilter,\n props: Object.fromEntries(\n Object.entries(predicates)\n .filter(([prop, _value]) => prop !== 'id')\n .map(([prop, predicate]) => [prop, processPredicate(predicate)]),\n ) as Record<string, QueryAST.Filter>,\n };\n};\n\nconst processPredicate = (predicate: any): QueryAST.Filter => {\n return Match.value(predicate).pipe(\n Match.withReturnType<QueryAST.Filter>(),\n Match.when(Filter.is, (predicate) => predicate.ast),\n // TODO(wittjosiah): Add support for array predicates.\n Match.when(Array.isArray, (_predicate) => {\n throw new Error('Array predicates are not yet supported.');\n }),\n Match.when(\n (predicate: any) => !Ref.isRef(predicate) && typeof predicate === 'object' && predicate !== null,\n (predicate) => {\n const nestedProps = Object.fromEntries(\n Object.entries(predicate).map(([key, value]) => [key, processPredicate(value)]),\n );\n\n return {\n type: 'object',\n typename: null,\n props: nestedProps,\n };\n },\n ),\n Match.orElse((value) => Filter.eq(value).ast),\n );\n};\n\nclass QueryClass implements Query<any> {\n private static variance: Query<any>['~Query'] = {} as Query<any>['~Query'];\n\n static is(value: unknown): value is Query<any> {\n return typeof value === 'object' && value !== null && '~Query' in value;\n }\n\n static fromAst(ast: QueryAST.Query): Query<any> {\n return new QueryClass(ast);\n }\n\n static select<F extends Filter.Any>(filter: F): Query<Filter.Type<F>> {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n }\n\n static type(schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>): Query<any> {\n return new QueryClass({\n type: 'select',\n filter: FilterClass.type(schema, predicates).ast,\n });\n }\n\n static all(...queries: Query<any>[]): Query<any> {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n }\n\n static without<T>(source: Query<T>, exclude: Query<T>): Query<T> {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n }\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n select(filter: Filter<any> | Filter.Props<any>): Query<any> {\n if (Filter.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: FilterClass.props(filter).ast,\n });\n }\n }\n\n reference(key: string): Query<any> {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n referencedBy(target: Schema.Schema.All | string, key: string): Query<any> {\n const dxn = getTypeDXNFromSpecifier(target);\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key,\n typename: dxn.toString(),\n });\n }\n\n sourceOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Query<any> {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter: FilterClass.type(relation, predicates).ast,\n });\n }\n\n targetOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Query<any> {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter: FilterClass.type(relation, predicates).ast,\n });\n }\n\n source(): Query<any> {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Query<any> {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n orderBy(...order: Order<any>[]): Query<any> {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n options(options: QueryAST.QueryOptions): Query<any> {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n}\n\nexport const Query: QueryAPI = QueryClass;\n\n/**\n * @param input schema or a typename string\n * @return type DXN\n */\nconst getTypeDXNFromSpecifier = (input: Schema.Schema.All | string): DXN => {\n if (Schema.isSchema(input)) {\n return getTypeReference(input)?.toDXN() ?? raise(new TypeError('Schema has no DXN'));\n } else {\n assertArgument(typeof input === 'string', 'input');\n assertArgument(!input.startsWith('dxn:'), 'input');\n return DXN.fromTypename(input);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as EchoSchema from './internal';\nimport type * as Obj from './Obj';\n\nexport type Ref<T> = EchoSchema.Ref<T>;\nexport type Any = EchoSchema.Ref<Obj.Any>;\n\nexport const Array = EchoSchema.RefArray;\n\n/**\n * Extract reference target.\n */\nexport type Target<R extends Any> = R extends EchoSchema.Ref<infer T> ? T : never;\n\n/**\n * Reference resolver.\n */\nexport type Resolver = EchoSchema.RefResolver;\n\nexport const isRef: (value: unknown) => value is Any = EchoSchema.Ref.isRef;\n\nexport const make = EchoSchema.Ref.make;\n\n// TODO(dmaretskyi): Consider just allowing `make` to accept DXN.\nexport const fromDXN = EchoSchema.Ref.fromDXN;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nexport const TagInfo = Schema.Struct({\n label: Schema.String,\n hue: Schema.optional(Schema.String), // TODO(burdon): Color name?\n});\n\nexport type TagInfo = Schema.Schema.Type<typeof TagInfo>;\n\nexport const Tag = Schema.extend(\n TagInfo,\n Schema.Struct({\n id: Schema.String,\n }),\n);\n\nexport type Tag = Schema.Schema.Type<typeof Tag>;\n\nexport type TagMap = Record<string, TagInfo>;\n\nexport const sortTags = ({ label: a }: TagInfo, { label: b }: TagInfo) => a.localeCompare(b);\n\nexport const createTagList = (tags: TagMap): Tag[] =>\n Object.entries(tags)\n .map(([id, tag]) => ({ ...tag, id }))\n .sort(sortTags);\n\nexport const findTagByLabel = (tags: Record<string, TagInfo> | undefined, name: string): Tag | undefined => {\n const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());\n return entry ? { ...entry[1], id: entry[0] } : undefined;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Match", "Schema", "raise", "assertArgument", "DXN", "ObjectId", "Array", "Array", "RefArray", "isRef", "Ref", "make", "fromDXN", "OrderClass", "is", "value", "ast", "variance", "Order", "natural", "kind", "property", "direction", "FilterClass", "fromAst", "everything", "type", "typename", "props", "nothing", "filter", "relation", "ids", "assertArgument", "every", "id", "ObjectId", "isValid", "length", "Filter", "schema", "dxn", "getTypeDXNFromSpecifier", "toString", "propsFilterToAst", "startsWith", "DXN", "fromTypename", "typeDXN", "tag", "text", "options", "searchKind", "foreignKeys", "keys", "eq", "isRef", "TypeError", "operator", "noInline", "encode", "neq", "gt", "gte", "lt", "lte", "in", "values", "contains", "between", "from", "to", "not", "and", "filters", "map", "f", "or", "predicates", "idFilter", "Array", "isArray", "Schema", "pipe", "validateSync", "Object", "fromEntries", "entries", "prop", "_value", "predicate", "processPredicate", "withReturnType", "when", "_predicate", "Error", "nestedProps", "key", "orElse", "QueryClass", "select", "all", "queries", "q", "without", "source", "exclude", "selection", "reference", "anchor", "referencedBy", "target", "sourceOf", "targetOf", "orderBy", "order", "query", "o", "Query", "input", "isSchema", "getTypeReference", "toDXN", "raise", "Schema", "TagInfo", "Struct", "label", "String", "hue", "optional", "Tag", "extend", "id", "sortTags", "a", "b", "localeCompare", "createTagList", "tags", "Object", "entries", "map", "tag", "sort", "findTagByLabel", "name", "entry", "find", "_", "toLowerCase", "undefined"]
|
|
7
|
+
}
|