@dxos/echo 0.8.4-main.937b3ca → 0.8.4-main.9735255
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/dist/lib/{browser → neutral}/Annotation.mjs +4 -5
- package/dist/lib/neutral/Database.mjs +17 -0
- package/dist/lib/{browser → neutral}/Entity.mjs +8 -9
- package/dist/lib/{browser → neutral}/Err.mjs +2 -3
- package/dist/lib/{browser → neutral}/Filter.mjs +9 -10
- package/dist/lib/{browser → neutral}/Format.mjs +4 -5
- package/dist/lib/neutral/JsonSchema.mjs +19 -0
- package/dist/lib/{browser → neutral}/Key.mjs +2 -3
- package/dist/lib/{browser → neutral}/Obj.mjs +9 -10
- package/dist/lib/{browser → neutral}/Order.mjs +2 -3
- package/dist/lib/neutral/Query.mjs +26 -0
- package/dist/lib/neutral/QueryResult.mjs +2 -0
- package/dist/lib/neutral/Ref.mjs +22 -0
- package/dist/lib/{browser → neutral}/Relation.mjs +9 -10
- package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
- package/dist/lib/neutral/Tag.mjs +25 -0
- package/dist/lib/{browser → neutral}/Type.mjs +8 -9
- package/dist/lib/{browser/chunk-NOPVNWPT.mjs → neutral/chunk-2MTHJ5UW.mjs} +6 -7
- package/dist/lib/{node-esm/chunk-ILMLLM4R.mjs.map → neutral/chunk-2MTHJ5UW.mjs.map} +2 -2
- package/dist/lib/{browser/chunk-22JMFST2.mjs → neutral/chunk-3ZEAZF7T.mjs} +3 -4
- package/dist/lib/{browser/chunk-22JMFST2.mjs.map → neutral/chunk-3ZEAZF7T.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-ZHXZGIXD.mjs → neutral/chunk-4L6DOFXP.mjs} +1 -3
- package/dist/lib/{browser/chunk-ZHXZGIXD.mjs.map → neutral/chunk-4L6DOFXP.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-PQZW3S6L.mjs → neutral/chunk-4TT624YA.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-Y75VU7LB.mjs.map → neutral/chunk-4TT624YA.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-FRDT7RA4.mjs → neutral/chunk-62DWJ6CE.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-W6QIEBTQ.mjs.map → neutral/chunk-62DWJ6CE.mjs.map} +3 -3
- package/dist/lib/{browser/chunk-W5D2GWAW.mjs → neutral/chunk-6QPSGMEF.mjs} +5 -6
- package/dist/lib/{browser/chunk-W5D2GWAW.mjs.map → neutral/chunk-6QPSGMEF.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-INHXFXY5.mjs → neutral/chunk-ANHVGJI4.mjs} +2 -3
- package/dist/lib/{node-esm/chunk-AJEMYSIR.mjs.map → neutral/chunk-ANHVGJI4.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-RK4Z4JUZ.mjs → neutral/chunk-CUDIBUM4.mjs} +2 -3
- package/dist/lib/{node-esm/chunk-YOLH5KS4.mjs.map → neutral/chunk-CUDIBUM4.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-XDIUHAAX.mjs → neutral/chunk-HMOXCO27.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-QLI2EIJ2.mjs.map → neutral/chunk-HMOXCO27.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-U2J7TA7K.mjs → neutral/chunk-IP2GHXWA.mjs} +5 -6
- package/dist/lib/{node-esm/chunk-DMR7OAFK.mjs.map → neutral/chunk-IP2GHXWA.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-CGS2ULMK.mjs → neutral/chunk-J5LGTIGS.mjs} +1 -2
- package/dist/lib/{browser/chunk-7STIBCP7.mjs → neutral/chunk-KRHDMXSU.mjs} +4 -5
- package/dist/lib/{browser/chunk-7STIBCP7.mjs.map → neutral/chunk-KRHDMXSU.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-FPOISFQK.mjs → neutral/chunk-NWUO5FKZ.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-NBWL7UCZ.mjs.map → neutral/chunk-NWUO5FKZ.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-IXVWLTG7.mjs → neutral/chunk-OMUPQMLR.mjs} +1 -3
- package/dist/lib/{browser/chunk-IXVWLTG7.mjs.map → neutral/chunk-OMUPQMLR.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-JMKVF2YQ.mjs → neutral/chunk-ROKO4RKJ.mjs} +2 -3
- package/dist/lib/{node-esm/chunk-K37NA7PO.mjs.map → neutral/chunk-ROKO4RKJ.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-CJ5YELTO.mjs → neutral/chunk-RPB6V4BE.mjs} +2 -3
- package/dist/lib/{browser/chunk-CJ5YELTO.mjs.map → neutral/chunk-RPB6V4BE.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-BJPE6CIC.mjs → neutral/chunk-SU2LVM7J.mjs} +47 -48
- package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +7 -0
- package/dist/lib/{browser/chunk-ZAGAOZVY.mjs → neutral/chunk-VB5HVDCA.mjs} +4 -5
- package/dist/lib/{node-esm/chunk-QYR67VBV.mjs.map → neutral/chunk-VB5HVDCA.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-2SBB7OWV.mjs → neutral/chunk-VR4A4WGG.mjs} +5 -6
- package/dist/lib/{browser/chunk-2SBB7OWV.mjs.map → neutral/chunk-VR4A4WGG.mjs.map} +2 -2
- package/dist/lib/{browser/chunk-MYCCGG2T.mjs → neutral/chunk-X2MPMYYN.mjs} +1 -3
- package/dist/lib/{node-esm/chunk-MOWUEW5P.mjs.map → neutral/chunk-X2MPMYYN.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-6L5HHUVU.mjs → neutral/chunk-XK5OUUBY.mjs} +4 -5
- package/dist/lib/{node-esm/chunk-5OBN7GZW.mjs.map → neutral/chunk-XK5OUUBY.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-KQQGVHFN.mjs → neutral/chunk-XMIDBDE6.mjs} +5 -6
- package/dist/lib/{node-esm/chunk-NRN3ZW2T.mjs.map → neutral/chunk-XMIDBDE6.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-YKTSSMDS.mjs → neutral/chunk-YQYMWZAD.mjs} +1 -3
- package/dist/lib/{node-esm/chunk-XHJRMQZD.mjs.map → neutral/chunk-YQYMWZAD.mjs.map} +1 -1
- package/dist/lib/{browser → neutral}/index.mjs +23 -24
- package/dist/lib/{browser → neutral}/internal/index.mjs +7 -8
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser → neutral}/testing/index.mjs +23 -24
- package/dist/lib/{node-esm → neutral}/testing/index.mjs.map +1 -1
- package/dist/types/src/Obj.d.ts +2 -2
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +1 -1
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/internal/api/meta.d.ts +2 -2
- package/dist/types/src/internal/api/meta.d.ts.map +1 -1
- package/dist/types/src/internal/entities/object.d.ts.map +1 -1
- package/dist/types/src/internal/entities/relation.d.ts.map +1 -1
- package/dist/types/src/internal/formats/select.d.ts +2 -2
- package/dist/types/src/internal/formats/select.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema.d.ts +2 -1
- package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -1
- package/dist/types/src/internal/ref/ref.d.ts +2 -1
- package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
- package/dist/types/src/internal/schema/compose.d.ts +2 -1
- package/dist/types/src/internal/schema/compose.d.ts.map +1 -1
- package/dist/types/src/internal/types/meta.d.ts +5 -5
- package/dist/types/src/internal/types/meta.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -112
- package/src/Obj.ts +3 -3
- package/src/Relation.ts +2 -2
- package/src/internal/api/meta.ts +3 -3
- package/src/internal/entities/object.ts +1 -3
- package/src/internal/entities/relation.ts +1 -3
- package/src/internal/formats/format.test.ts +1 -1
- package/src/internal/formats/select.ts +1 -1
- package/src/internal/json-schema/json-schema-normalize.ts +4 -2
- package/src/internal/json-schema/json-schema-type.ts +30 -31
- package/src/internal/json-schema/json-schema.ts +10 -6
- package/src/internal/object/json-serializer.test.ts +3 -2
- package/src/internal/object/schema-validator.test.ts +3 -7
- package/src/internal/object/set-value.test.ts +9 -9
- package/src/internal/proxy/typed-handler.test.ts +8 -12
- package/src/internal/proxy/typed-object.test.ts +11 -11
- package/src/internal/ref/ref.test.ts +1 -1
- package/src/internal/ref/ref.ts +2 -1
- package/src/internal/schema/compose.ts +13 -8
- package/src/internal/types/meta.ts +12 -13
- package/dist/lib/browser/Database.mjs +0 -18
- package/dist/lib/browser/JsonSchema.mjs +0 -20
- package/dist/lib/browser/Query.mjs +0 -27
- package/dist/lib/browser/QueryResult.mjs +0 -3
- package/dist/lib/browser/Ref.mjs +0 -23
- package/dist/lib/browser/SchemaRegistry.mjs +0 -3
- package/dist/lib/browser/Tag.mjs +0 -26
- package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +0 -7
- package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +0 -7
- package/dist/lib/browser/chunk-FPOISFQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-FRDT7RA4.mjs.map +0 -7
- package/dist/lib/browser/chunk-INHXFXY5.mjs.map +0 -7
- package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-KQQGVHFN.mjs.map +0 -7
- package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +0 -7
- package/dist/lib/browser/chunk-NOPVNWPT.mjs.map +0 -7
- package/dist/lib/browser/chunk-PQZW3S6L.mjs.map +0 -7
- package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-U2J7TA7K.mjs.map +0 -7
- package/dist/lib/browser/chunk-XDIUHAAX.mjs.map +0 -7
- package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZAGAOZVY.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/node-esm/Annotation.mjs +0 -33
- package/dist/lib/node-esm/Annotation.mjs.map +0 -7
- package/dist/lib/node-esm/Database.mjs +0 -18
- package/dist/lib/node-esm/Database.mjs.map +0 -7
- package/dist/lib/node-esm/Entity.mjs +0 -52
- package/dist/lib/node-esm/Entity.mjs.map +0 -7
- package/dist/lib/node-esm/Err.mjs +0 -11
- package/dist/lib/node-esm/Err.mjs.map +0 -7
- package/dist/lib/node-esm/Filter.mjs +0 -62
- package/dist/lib/node-esm/Filter.mjs.map +0 -7
- package/dist/lib/node-esm/Format.mjs +0 -67
- package/dist/lib/node-esm/Format.mjs.map +0 -7
- package/dist/lib/node-esm/JsonSchema.mjs +0 -20
- package/dist/lib/node-esm/JsonSchema.mjs.map +0 -7
- package/dist/lib/node-esm/Key.mjs +0 -13
- package/dist/lib/node-esm/Key.mjs.map +0 -7
- package/dist/lib/node-esm/Obj.mjs +0 -91
- package/dist/lib/node-esm/Obj.mjs.map +0 -7
- package/dist/lib/node-esm/Order.mjs +0 -13
- package/dist/lib/node-esm/Order.mjs.map +0 -7
- package/dist/lib/node-esm/Query.mjs +0 -27
- package/dist/lib/node-esm/Query.mjs.map +0 -7
- package/dist/lib/node-esm/QueryResult.mjs +0 -3
- package/dist/lib/node-esm/QueryResult.mjs.map +0 -7
- package/dist/lib/node-esm/Ref.mjs +0 -23
- package/dist/lib/node-esm/Ref.mjs.map +0 -7
- package/dist/lib/node-esm/Relation.mjs +0 -85
- package/dist/lib/node-esm/Relation.mjs.map +0 -7
- package/dist/lib/node-esm/SchemaRegistry.mjs +0 -3
- package/dist/lib/node-esm/SchemaRegistry.mjs.map +0 -7
- package/dist/lib/node-esm/Tag.mjs +0 -26
- package/dist/lib/node-esm/Tag.mjs.map +0 -7
- package/dist/lib/node-esm/Type.mjs +0 -48
- package/dist/lib/node-esm/Type.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4PNXQA64.mjs +0 -250
- package/dist/lib/node-esm/chunk-4PNXQA64.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5OBN7GZW.mjs +0 -158
- package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +0 -22
- package/dist/lib/node-esm/chunk-ANLVLWME.mjs +0 -98
- package/dist/lib/node-esm/chunk-ANLVLWME.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DMR7OAFK.mjs +0 -57
- package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +0 -133
- package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ILMLLM4R.mjs +0 -204
- package/dist/lib/node-esm/chunk-K37NA7PO.mjs +0 -43
- package/dist/lib/node-esm/chunk-LT3H4JOX.mjs +0 -3847
- package/dist/lib/node-esm/chunk-LT3H4JOX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +0 -9
- package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +0 -15
- package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +0 -40
- package/dist/lib/node-esm/chunk-NRN3ZW2T.mjs +0 -143
- package/dist/lib/node-esm/chunk-QLI2EIJ2.mjs +0 -41
- package/dist/lib/node-esm/chunk-QYR67VBV.mjs +0 -288
- package/dist/lib/node-esm/chunk-UKGVOINP.mjs +0 -9
- package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-W6QIEBTQ.mjs +0 -403
- package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +0 -69
- package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +0 -74
- package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +0 -283
- package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +0 -39
- package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZBB67AKD.mjs +0 -24
- package/dist/lib/node-esm/chunk-ZBB67AKD.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -85
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/internal/index.mjs +0 -457
- package/dist/lib/node-esm/internal/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -367
- /package/dist/lib/{browser → neutral}/Annotation.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Database.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Entity.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Err.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Filter.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Format.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/JsonSchema.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Key.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Obj.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Order.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Query.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/QueryResult.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Ref.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Relation.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/SchemaRegistry.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Tag.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/Type.mjs.map +0 -0
- /package/dist/lib/{browser/chunk-CGS2ULMK.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/internal/index.mjs.map +0 -0
|
@@ -55,11 +55,11 @@ describe('Obj.setValue', () => {
|
|
|
55
55
|
test('sets multiple nested array elements', ({ expect }) => {
|
|
56
56
|
const Item = Schema.Struct({
|
|
57
57
|
value: Schema.optional(Schema.Number),
|
|
58
|
-
})
|
|
58
|
+
});
|
|
59
59
|
|
|
60
60
|
const Container = Schema.Struct({
|
|
61
61
|
name: Schema.String,
|
|
62
|
-
items: Schema.optional(Schema.
|
|
62
|
+
items: Schema.optional(Schema.Array(Item)),
|
|
63
63
|
}).pipe(
|
|
64
64
|
Type.object({
|
|
65
65
|
typename: 'test.com/Container',
|
|
@@ -150,7 +150,7 @@ describe('Obj.setValue', () => {
|
|
|
150
150
|
|
|
151
151
|
test('handles two-dimensional arrays', ({ expect }) => {
|
|
152
152
|
const Matrix = Schema.Struct({
|
|
153
|
-
values: Schema.optional(Schema.
|
|
153
|
+
values: Schema.optional(Schema.Array(Schema.Array(Schema.Number))),
|
|
154
154
|
}).pipe(
|
|
155
155
|
Type.object({
|
|
156
156
|
typename: 'test.com/Matrix',
|
|
@@ -200,11 +200,11 @@ describe('Obj.setValue', () => {
|
|
|
200
200
|
test('handles numeric keys as strings', ({ expect }) => {
|
|
201
201
|
const Item = Schema.Struct({
|
|
202
202
|
value: Schema.optional(Schema.Number),
|
|
203
|
-
})
|
|
203
|
+
});
|
|
204
204
|
|
|
205
205
|
const Container = Schema.Struct({
|
|
206
206
|
name: Schema.String,
|
|
207
|
-
items: Schema.optional(Schema.
|
|
207
|
+
items: Schema.optional(Schema.Array(Item)),
|
|
208
208
|
}).pipe(
|
|
209
209
|
Type.object({
|
|
210
210
|
typename: 'test.com/Container',
|
|
@@ -227,11 +227,11 @@ describe('Obj.setValue', () => {
|
|
|
227
227
|
id: Schema.String, // Required field.
|
|
228
228
|
title: Schema.optional(Schema.String),
|
|
229
229
|
completed: Schema.optional(Schema.Boolean),
|
|
230
|
-
})
|
|
230
|
+
});
|
|
231
231
|
|
|
232
232
|
const TodoList = Schema.Struct({
|
|
233
233
|
name: Schema.String,
|
|
234
|
-
tasks: Schema.optional(Schema.
|
|
234
|
+
tasks: Schema.optional(Schema.Array(Task)),
|
|
235
235
|
}).pipe(
|
|
236
236
|
Type.object({
|
|
237
237
|
typename: 'test.com/TodoList',
|
|
@@ -256,11 +256,11 @@ describe('Obj.setValue', () => {
|
|
|
256
256
|
count: Schema.Number, // Required - should default to 0
|
|
257
257
|
active: Schema.Boolean, // Required - should default to false
|
|
258
258
|
label: Schema.optional(Schema.String), // Optional - should not be initialized
|
|
259
|
-
})
|
|
259
|
+
});
|
|
260
260
|
|
|
261
261
|
const Container = Schema.Struct({
|
|
262
262
|
name: Schema.String,
|
|
263
|
-
items: Schema.optional(Schema.
|
|
263
|
+
items: Schema.optional(Schema.Array(Item)),
|
|
264
264
|
}).pipe(
|
|
265
265
|
Type.object({
|
|
266
266
|
typename: 'test.com/Container',
|
|
@@ -94,7 +94,7 @@ describe('complex schema validations', () => {
|
|
|
94
94
|
});
|
|
95
95
|
|
|
96
96
|
test('subscribe', () => {
|
|
97
|
-
const TestSchema = Schema.
|
|
97
|
+
const TestSchema = Schema.Struct({ field: Schema.String }).pipe(
|
|
98
98
|
EchoObjectSchema({ typename: 'Test', version: '0.1.0' }),
|
|
99
99
|
);
|
|
100
100
|
const object = makeObject(TestSchema, { field: 'value' });
|
|
@@ -117,12 +117,10 @@ describe('complex schema validations', () => {
|
|
|
117
117
|
});
|
|
118
118
|
|
|
119
119
|
describe('object structure restrictions', () => {
|
|
120
|
-
const NestedSchema = Schema.
|
|
121
|
-
Schema.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}),
|
|
125
|
-
);
|
|
120
|
+
const NestedSchema = Schema.Struct({
|
|
121
|
+
data: Schema.optional(Schema.Any),
|
|
122
|
+
nested: Schema.optional(Schema.Any),
|
|
123
|
+
});
|
|
126
124
|
|
|
127
125
|
test('prevents direct cycles', () => {
|
|
128
126
|
const obj = makeObject(NestedSchema, { data: null });
|
|
@@ -226,11 +224,9 @@ describe('object structure restrictions', () => {
|
|
|
226
224
|
});
|
|
227
225
|
|
|
228
226
|
test('array elements are owned by root ECHO object', () => {
|
|
229
|
-
const ArraySchema = Schema.
|
|
230
|
-
Schema.
|
|
231
|
-
|
|
232
|
-
}),
|
|
233
|
-
);
|
|
227
|
+
const ArraySchema = Schema.Struct({
|
|
228
|
+
items: Schema.Array(Schema.Any),
|
|
229
|
+
});
|
|
234
230
|
|
|
235
231
|
const obj1 = makeObject(ArraySchema, {
|
|
236
232
|
items: [{ id: 1 }, { id: 2 }, { id: 3 }],
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
|
+
import type * as Types from 'effect/Types';
|
|
6
7
|
import { describe, expect, test } from 'vitest';
|
|
7
8
|
|
|
8
9
|
import { EchoObjectSchema } from '../entities';
|
|
@@ -61,15 +62,13 @@ describe('EchoObjectSchema class DSL', () => {
|
|
|
61
62
|
});
|
|
62
63
|
|
|
63
64
|
test('record', () => {
|
|
64
|
-
const schema = Schema.
|
|
65
|
-
Schema.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}),
|
|
72
|
-
);
|
|
65
|
+
const schema = Schema.Struct({
|
|
66
|
+
meta: Schema.optional(Schema.Any),
|
|
67
|
+
// NOTE: Schema.Record only supports shallow values.
|
|
68
|
+
// https://www.npmjs.com/package/@effect/schema#mutable-records
|
|
69
|
+
// meta: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
|
|
70
|
+
// meta: Schema.optional(Schema.object),
|
|
71
|
+
});
|
|
73
72
|
|
|
74
73
|
{
|
|
75
74
|
const object = makeObject(schema, {});
|
|
@@ -89,7 +88,8 @@ describe('EchoObjectSchema class DSL', () => {
|
|
|
89
88
|
|
|
90
89
|
{
|
|
91
90
|
// Plain object (not a reactive proxy) - doesn't need Obj.change.
|
|
92
|
-
|
|
91
|
+
// Note: Schema.Schema.Type generates readonly types, so we cast to mutable for plain objects.
|
|
92
|
+
type Test1 = Types.Mutable<Schema.Schema.Type<typeof schema>>;
|
|
93
93
|
|
|
94
94
|
const object: Test1 = {};
|
|
95
95
|
(object.meta ??= {}).test = 100;
|
|
@@ -98,7 +98,7 @@ describe('EchoObjectSchema class DSL', () => {
|
|
|
98
98
|
|
|
99
99
|
{
|
|
100
100
|
const Test2 = Schema.Struct({
|
|
101
|
-
meta: Schema.optional(Schema.
|
|
101
|
+
meta: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
|
|
102
102
|
}).pipe(
|
|
103
103
|
EchoObjectSchema({
|
|
104
104
|
typename: 'dxos.org/type/FunctionTrigger',
|
|
@@ -26,7 +26,7 @@ type Task = Schema.Schema.Type<typeof Task>;
|
|
|
26
26
|
const Contact = Schema.Struct({
|
|
27
27
|
name: Schema.String,
|
|
28
28
|
email: Schema.optional(Schema.String),
|
|
29
|
-
tasks: Schema.
|
|
29
|
+
tasks: Schema.Array(Ref(Task)),
|
|
30
30
|
}).pipe(
|
|
31
31
|
EchoObjectSchema({
|
|
32
32
|
typename: 'example.com/type/Person',
|
package/src/internal/ref/ref.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as Option from 'effect/Option';
|
|
|
7
7
|
import * as ParseResult from 'effect/ParseResult';
|
|
8
8
|
import * as Schema from 'effect/Schema';
|
|
9
9
|
import * as SchemaAST from 'effect/SchemaAST';
|
|
10
|
+
import type * as Types from 'effect/Types';
|
|
10
11
|
|
|
11
12
|
import { Event } from '@dxos/async';
|
|
12
13
|
import { type CustomInspectFunction, inspectCustom } from '@dxos/debug';
|
|
@@ -31,7 +32,7 @@ export const getSchemaReference = (property: JsonSchemaType): { typename: string
|
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
34
|
|
|
34
|
-
export const createSchemaReference = (typename: string): JsonSchemaType => {
|
|
35
|
+
export const createSchemaReference = (typename: string): Types.DeepMutable<JsonSchemaType> => {
|
|
35
36
|
return {
|
|
36
37
|
$id: JSON_SCHEMA_ECHO_REF_ID,
|
|
37
38
|
reference: {
|
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import type * as Types from 'effect/Types';
|
|
6
|
+
|
|
5
7
|
import { invariant } from '@dxos/invariant';
|
|
6
8
|
|
|
7
9
|
import { type JsonSchemaType } from '../json-schema';
|
|
8
|
-
import { getSnapshot } from '../object';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Creates a composite schema from the source and projection schemas.
|
|
12
13
|
*/
|
|
13
14
|
// TODO(burdon): Use effect schema projections.
|
|
14
15
|
// TODO(burdon): Can avoid having to call this every time we modify any property on the view?
|
|
15
|
-
export const composeSchema = (
|
|
16
|
-
|
|
16
|
+
export const composeSchema = (
|
|
17
|
+
source: Types.Mutable<JsonSchemaType>,
|
|
18
|
+
target: Types.Mutable<JsonSchemaType>,
|
|
19
|
+
): Types.Mutable<JsonSchemaType> => {
|
|
20
|
+
const result = structuredClone(target);
|
|
17
21
|
invariant('type' in result && result.type === 'object', 'source schema must be an object');
|
|
18
22
|
invariant('type' in source && source.type === 'object', 'target schema must be an object');
|
|
19
23
|
|
|
@@ -21,12 +25,13 @@ export const composeSchema = (source: JsonSchemaType, target: JsonSchemaType): J
|
|
|
21
25
|
const propSchema = source.properties![prop]; // TODO(dmaretskyi): Find by json-path instead.
|
|
22
26
|
const annotations = (propSchema as JsonSchemaType)?.annotations?.meta;
|
|
23
27
|
if (annotations) {
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
const resultProp = result.properties[prop] as Record<string, any>;
|
|
29
|
+
resultProp.annotations ??= {};
|
|
30
|
+
resultProp.annotations.meta ??= {};
|
|
26
31
|
for (const key in annotations) {
|
|
27
|
-
|
|
28
|
-
Object.assign(
|
|
29
|
-
...
|
|
32
|
+
resultProp.annotations.meta[key] ??= {};
|
|
33
|
+
Object.assign(resultProp.annotations.meta[key], annotations[key], {
|
|
34
|
+
...resultProp.annotations.meta[key],
|
|
30
35
|
});
|
|
31
36
|
}
|
|
32
37
|
}
|
|
@@ -25,20 +25,19 @@ export const MetaId = Symbol.for('@dxos/echo/Meta');
|
|
|
25
25
|
//
|
|
26
26
|
|
|
27
27
|
// TODO(dmaretskyi): Rename to ObjectMeta
|
|
28
|
-
export const ObjectMetaSchema = Schema.
|
|
29
|
-
Schema.
|
|
30
|
-
|
|
28
|
+
export const ObjectMetaSchema = Schema.Struct({
|
|
29
|
+
keys: Schema.Array(ForeignKey),
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A set of tags.
|
|
33
|
+
* Tags are arbitrary application-defined strings.
|
|
34
|
+
* ECHO makes no assumptions about the tag structure.
|
|
35
|
+
*/
|
|
36
|
+
// TODO(dmaretskyi): Has to be optional for compatibility with old data.
|
|
37
|
+
// Defaulting to an empty array is possible but requires a bit more work.
|
|
38
|
+
tags: Schema.optional(Schema.Array(Schema.String)),
|
|
39
|
+
});
|
|
31
40
|
|
|
32
|
-
/**
|
|
33
|
-
* A set of tags.
|
|
34
|
-
* Tags are arbitrary application-defined strings.
|
|
35
|
-
* ECHO makes no assumptions about the tag structure.
|
|
36
|
-
*/
|
|
37
|
-
// TODO(dmaretskyi): Has to be optional for compatibility with old data.
|
|
38
|
-
// Defaulting to an empty array is possible but requires a bit more work.
|
|
39
|
-
tags: Schema.optional(Schema.mutable(Schema.Array(Schema.String))),
|
|
40
|
-
}),
|
|
41
|
-
);
|
|
42
41
|
export type ObjectMeta = Schema.Schema.Type<typeof ObjectMetaSchema>;
|
|
43
42
|
|
|
44
43
|
/*
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
|
-
import {
|
|
3
|
-
Database,
|
|
4
|
-
Service,
|
|
5
|
-
TypeId,
|
|
6
|
-
isDatabase
|
|
7
|
-
} from "./chunk-7STIBCP7.mjs";
|
|
8
|
-
import "./chunk-RK4Z4JUZ.mjs";
|
|
9
|
-
import "./chunk-YKTSSMDS.mjs";
|
|
10
|
-
import "./chunk-CJ5YELTO.mjs";
|
|
11
|
-
import "./chunk-CGS2ULMK.mjs";
|
|
12
|
-
export {
|
|
13
|
-
Database,
|
|
14
|
-
Service,
|
|
15
|
-
TypeId,
|
|
16
|
-
isDatabase
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=Database.mjs.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
|
-
import {
|
|
3
|
-
JsonSchema
|
|
4
|
-
} from "./chunk-22JMFST2.mjs";
|
|
5
|
-
import {
|
|
6
|
-
toEffectSchema,
|
|
7
|
-
toJsonSchema
|
|
8
|
-
} from "./chunk-BJPE6CIC.mjs";
|
|
9
|
-
import "./chunk-FRDT7RA4.mjs";
|
|
10
|
-
import "./chunk-7STIBCP7.mjs";
|
|
11
|
-
import "./chunk-RK4Z4JUZ.mjs";
|
|
12
|
-
import "./chunk-YKTSSMDS.mjs";
|
|
13
|
-
import "./chunk-CJ5YELTO.mjs";
|
|
14
|
-
import "./chunk-CGS2ULMK.mjs";
|
|
15
|
-
export {
|
|
16
|
-
JsonSchema,
|
|
17
|
-
toEffectSchema,
|
|
18
|
-
toJsonSchema
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=JsonSchema.mjs.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
|
-
import {
|
|
3
|
-
all,
|
|
4
|
-
fromAst,
|
|
5
|
-
is,
|
|
6
|
-
select,
|
|
7
|
-
type,
|
|
8
|
-
without
|
|
9
|
-
} from "./chunk-6L5HHUVU.mjs";
|
|
10
|
-
import "./chunk-ZAGAOZVY.mjs";
|
|
11
|
-
import "./chunk-XDIUHAAX.mjs";
|
|
12
|
-
import "./chunk-BJPE6CIC.mjs";
|
|
13
|
-
import "./chunk-FRDT7RA4.mjs";
|
|
14
|
-
import "./chunk-7STIBCP7.mjs";
|
|
15
|
-
import "./chunk-RK4Z4JUZ.mjs";
|
|
16
|
-
import "./chunk-YKTSSMDS.mjs";
|
|
17
|
-
import "./chunk-CJ5YELTO.mjs";
|
|
18
|
-
import "./chunk-CGS2ULMK.mjs";
|
|
19
|
-
export {
|
|
20
|
-
all,
|
|
21
|
-
fromAst,
|
|
22
|
-
is,
|
|
23
|
-
select,
|
|
24
|
-
type,
|
|
25
|
-
without
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=Query.mjs.map
|
package/dist/lib/browser/Ref.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
|
-
import {
|
|
3
|
-
Array,
|
|
4
|
-
fromDXN,
|
|
5
|
-
isRef,
|
|
6
|
-
isRefType,
|
|
7
|
-
make
|
|
8
|
-
} from "./chunk-XDIUHAAX.mjs";
|
|
9
|
-
import "./chunk-BJPE6CIC.mjs";
|
|
10
|
-
import "./chunk-FRDT7RA4.mjs";
|
|
11
|
-
import "./chunk-7STIBCP7.mjs";
|
|
12
|
-
import "./chunk-RK4Z4JUZ.mjs";
|
|
13
|
-
import "./chunk-YKTSSMDS.mjs";
|
|
14
|
-
import "./chunk-CJ5YELTO.mjs";
|
|
15
|
-
import "./chunk-CGS2ULMK.mjs";
|
|
16
|
-
export {
|
|
17
|
-
Array,
|
|
18
|
-
fromDXN,
|
|
19
|
-
isRef,
|
|
20
|
-
isRefType,
|
|
21
|
-
make
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=Ref.mjs.map
|
package/dist/lib/browser/Tag.mjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
|
-
import {
|
|
3
|
-
Tag,
|
|
4
|
-
createTagList,
|
|
5
|
-
findTagByLabel,
|
|
6
|
-
make,
|
|
7
|
-
sortTags
|
|
8
|
-
} from "./chunk-U2J7TA7K.mjs";
|
|
9
|
-
import "./chunk-KQQGVHFN.mjs";
|
|
10
|
-
import "./chunk-NOPVNWPT.mjs";
|
|
11
|
-
import "./chunk-W5D2GWAW.mjs";
|
|
12
|
-
import "./chunk-BJPE6CIC.mjs";
|
|
13
|
-
import "./chunk-FRDT7RA4.mjs";
|
|
14
|
-
import "./chunk-7STIBCP7.mjs";
|
|
15
|
-
import "./chunk-RK4Z4JUZ.mjs";
|
|
16
|
-
import "./chunk-YKTSSMDS.mjs";
|
|
17
|
-
import "./chunk-CJ5YELTO.mjs";
|
|
18
|
-
import "./chunk-CGS2ULMK.mjs";
|
|
19
|
-
export {
|
|
20
|
-
Tag,
|
|
21
|
-
createTagList,
|
|
22
|
-
findTagByLabel,
|
|
23
|
-
make,
|
|
24
|
-
sortTags
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=Tag.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/Query.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as EffectArray from 'effect/Array';\nimport type * as Schema from 'effect/Schema';\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nimport * as Filter from './Filter';\nimport { getTypeDXNFromSpecifier } from './internal';\nimport type * as Order from './Order';\nimport type * 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\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\n// TODO(burdon): Narrow T to Entity.Unknown?\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.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.Unknown\n ? Ref.Target<T[K]>\n : T[K] extends Ref.Unknown | 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. If not provided, matches any type.\n * @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.\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 referencedBy<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;\n referencedBy(): Query<any>;\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.Order<T>>): Query<T>;\n\n /**\n * Limit the number of results.\n * @param limit - Maximum number of results to return.\n * @returns Query for the limited results.\n */\n limit(limit: number): Query<T>;\n\n /**\n * Add options to a query.\n */\n options(options: QueryAST.QueryOptions): Query<T>;\n}\n\nexport type Any = Query<any>;\n\nexport type Type<Q extends Any> = Q extends Query<infer T> ? T : never;\n\nclass QueryClass implements Any {\n private static variance: Any['~Query'] = {} as Any['~Query'];\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n select(filter: Filter.Any | Filter.Props<any>): 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: Filter.props(filter).ast,\n });\n }\n }\n\n reference(key: string): 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): Any {\n const dxn = target !== undefined ? getTypeDXNFromSpecifier(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename: dxn?.toString() ?? null,\n });\n }\n\n sourceOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n targetOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n source(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n orderBy(...order: Order.Order<any>[]): Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n limit(limit: number): Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n options(options: QueryAST.QueryOptions): Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n}\n\nexport const is = (value: unknown): value is Any => {\n return typeof value === 'object' && value !== null && '~Query' in value;\n};\n\n/** Construct a query from an ast. */\nexport const fromAst = (ast: QueryAST.Query): Any => {\n return new QueryClass(ast);\n};\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 */\nexport const 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/**\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 */\nexport const type = (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>): Any => {\n return new QueryClass({\n type: 'select',\n filter: Filter.type(schema, predicates).ast,\n });\n};\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`.\nexport const all = (...queries: Any[]): 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/**\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 */\nexport const 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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["is", "type", "QueryClass", "variance", "ast", "select", "filter", "is", "type", "selection", "props", "reference", "key", "anchor", "property", "referencedBy", "target", "dxn", "undefined", "getTypeDXNFromSpecifier", "typename", "toString", "sourceOf", "relation", "predicates", "direction", "targetOf", "source", "orderBy", "order", "query", "map", "o", "limit", "options", "value", "fromAst", "schema", "all", "queries", "length", "TypeError", "q", "without", "exclude"]
|
|
7
|
-
}
|