@dxos/echo 0.8.4-main.21d9917 → 0.8.4-main.2244d791bb
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 +7 -5
- package/dist/lib/neutral/Database.mjs +45 -0
- package/dist/lib/{browser → neutral}/Entity.mjs +8 -9
- package/dist/lib/{browser → neutral}/Err.mjs +4 -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/{node-esm → neutral}/Obj.mjs +23 -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-W5D2GWAW.mjs → neutral/chunk-36GDMODZ.mjs} +5 -6
- package/dist/lib/{browser/chunk-W5D2GWAW.mjs.map → neutral/chunk-36GDMODZ.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-NOPVNWPT.mjs → neutral/chunk-5MGEVDUW.mjs} +73 -8
- package/dist/lib/neutral/chunk-5MGEVDUW.mjs.map +7 -0
- package/dist/lib/{browser/chunk-FRDT7RA4.mjs → neutral/chunk-7WE7SBA2.mjs} +4 -5
- package/dist/lib/neutral/chunk-7WE7SBA2.mjs.map +7 -0
- 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/neutral/chunk-B4FLOYG7.mjs +130 -0
- package/dist/lib/neutral/chunk-B4FLOYG7.mjs.map +7 -0
- package/dist/lib/{browser/chunk-U2J7TA7K.mjs → neutral/chunk-BHR4XVJK.mjs} +5 -6
- package/dist/lib/{node-esm/chunk-DMR7OAFK.mjs.map → neutral/chunk-BHR4XVJK.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-ZAGAOZVY.mjs → neutral/chunk-CH3HX4Z5.mjs} +4 -5
- package/dist/lib/{node-esm/chunk-QYR67VBV.mjs.map → neutral/chunk-CH3HX4Z5.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-CGS2ULMK.mjs → neutral/chunk-J5LGTIGS.mjs} +1 -2
- package/dist/lib/{browser/chunk-YKTSSMDS.mjs → neutral/chunk-KB7RIVLK.mjs} +1 -3
- package/dist/lib/neutral/chunk-KB7RIVLK.mjs.map +7 -0
- package/dist/lib/{browser/chunk-2SBB7OWV.mjs → neutral/chunk-KSFI2POM.mjs} +11 -10
- package/dist/lib/neutral/chunk-KSFI2POM.mjs.map +7 -0
- package/dist/lib/{browser/chunk-6L5HHUVU.mjs → neutral/chunk-LKQBTRJX.mjs} +18 -5
- package/dist/lib/neutral/chunk-LKQBTRJX.mjs.map +7 -0
- package/dist/lib/{browser/chunk-CJ5YELTO.mjs → neutral/chunk-MXQJZCPY.mjs} +15 -3
- package/dist/lib/neutral/chunk-MXQJZCPY.mjs.map +7 -0
- package/dist/lib/{browser/chunk-PQZW3S6L.mjs → neutral/chunk-N2QNHMT5.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-Y75VU7LB.mjs.map → neutral/chunk-N2QNHMT5.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/{node-esm/chunk-YOLH5KS4.mjs → neutral/chunk-RIMHNJ3E.mjs} +17 -4
- package/dist/lib/neutral/chunk-RIMHNJ3E.mjs.map +7 -0
- 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-KQQGVHFN.mjs → neutral/chunk-SHLKRGRB.mjs} +5 -6
- package/dist/lib/{node-esm/chunk-NRN3ZW2T.mjs.map → neutral/chunk-SHLKRGRB.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-22JMFST2.mjs → neutral/chunk-UW4T7PAL.mjs} +3 -4
- package/dist/lib/{browser/chunk-22JMFST2.mjs.map → neutral/chunk-UW4T7PAL.mjs.map} +1 -1
- package/dist/lib/{browser/chunk-XDIUHAAX.mjs → neutral/chunk-WSPASOLU.mjs} +3 -4
- package/dist/lib/{node-esm/chunk-QLI2EIJ2.mjs.map → neutral/chunk-WSPASOLU.mjs.map} +1 -1
- 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-FPOISFQK.mjs → neutral/chunk-XAJMXQ4H.mjs} +7 -4
- package/dist/lib/neutral/chunk-XAJMXQ4H.mjs.map +7 -0
- package/dist/lib/{browser/chunk-BJPE6CIC.mjs → neutral/chunk-ZUG3PNXU.mjs} +146 -83
- package/dist/lib/neutral/chunk-ZUG3PNXU.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/index.mjs +23 -24
- package/dist/lib/{browser → neutral}/internal/index.mjs +13 -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/Annotation.d.ts +22 -0
- package/dist/types/src/Annotation.d.ts.map +1 -1
- package/dist/types/src/Database.d.ts +72 -50
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Err.d.ts +43 -0
- package/dist/types/src/Err.d.ts.map +1 -1
- package/dist/types/src/Obj.d.ts +84 -4
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Query.d.ts +10 -0
- package/dist/types/src/Query.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +2 -2
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/hierarchy.test.d.ts +2 -0
- package/dist/types/src/hierarchy.test.d.ts.map +1 -0
- package/dist/types/src/internal/annotations/annotations.d.ts +13 -6
- package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -1
- package/dist/types/src/internal/annotations/util.d.ts +12 -0
- package/dist/types/src/internal/annotations/util.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/model.d.ts +3 -1
- package/dist/types/src/internal/entities/model.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/object/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/object/snapshot.d.ts.map +1 -1
- package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -1
- package/dist/types/src/internal/proxy/typed-handler.d.ts +2 -1
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/ref/ref.d.ts +16 -2
- 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/schema/echo-schema.d.ts +2 -1
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
- package/dist/types/src/internal/schema/persistent-schema.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/src/internal/types/typename.d.ts +8 -0
- package/dist/types/src/internal/types/typename.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +34 -113
- package/src/Annotation.ts +27 -0
- package/src/Database.ts +141 -124
- package/src/Err.ts +20 -0
- package/src/Obj.test.ts +56 -0
- package/src/Obj.ts +140 -11
- package/src/Query.ts +28 -0
- package/src/Relation.ts +5 -3
- package/src/hierarchy.test.ts +33 -0
- package/src/internal/annotations/annotations.ts +28 -1
- package/src/internal/annotations/util.ts +13 -0
- package/src/internal/api/meta.ts +3 -3
- package/src/internal/entities/model.ts +4 -0
- 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/formats/types.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 +26 -2
- package/src/internal/object/json-serializer.ts +25 -9
- package/src/internal/object/schema-validator.test.ts +3 -7
- package/src/internal/object/set-value.test.ts +9 -9
- package/src/internal/object/snapshot.ts +29 -6
- package/src/internal/proxy/make-object.ts +12 -2
- package/src/internal/proxy/typed-handler.test.ts +8 -12
- package/src/internal/proxy/typed-handler.ts +9 -1
- 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 +26 -2
- package/src/internal/schema/compose.ts +13 -8
- package/src/internal/schema/echo-schema.ts +3 -2
- package/src/internal/schema/persistent-schema.ts +2 -1
- package/src/internal/types/meta.ts +12 -13
- package/src/internal/types/typename.ts +10 -0
- package/dist/lib/browser/Database.mjs +0 -18
- package/dist/lib/browser/JsonSchema.mjs +0 -20
- package/dist/lib/browser/Obj.mjs +0 -91
- 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-2SBB7OWV.mjs.map +0 -7
- package/dist/lib/browser/chunk-6L5HHUVU.mjs.map +0 -7
- package/dist/lib/browser/chunk-7STIBCP7.mjs +0 -133
- package/dist/lib/browser/chunk-7STIBCP7.mjs.map +0 -7
- package/dist/lib/browser/chunk-BJPE6CIC.mjs.map +0 -7
- package/dist/lib/browser/chunk-CJ5YELTO.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 +0 -283
- 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.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-5OBN7GZW.mjs.map +0 -7
- 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-ILMLLM4R.mjs.map +0 -7
- 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-NBWL7UCZ.mjs.map +0 -7
- 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-W6QIEBTQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +0 -69
- package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Y75VU7LB.mjs +0 -74
- package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +0 -7
- 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
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import "@dxos/node-std/globals";
|
|
2
1
|
import {
|
|
3
2
|
CurrencyAnnotationId,
|
|
4
3
|
FormatAnnotation,
|
|
5
4
|
FormatAnnotationId,
|
|
6
5
|
TypeFormat
|
|
7
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7WE7SBA2.mjs";
|
|
8
7
|
import {
|
|
9
8
|
Service
|
|
10
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-B4FLOYG7.mjs";
|
|
11
10
|
import {
|
|
11
|
+
ATTR_PARENT,
|
|
12
12
|
ATTR_TYPE,
|
|
13
13
|
GeneratorAnnotationId,
|
|
14
|
+
LabelAnnotation,
|
|
14
15
|
LabelAnnotationId,
|
|
16
|
+
ParentId,
|
|
15
17
|
PropertyMetaAnnotationId,
|
|
16
18
|
ReferenceAnnotationId,
|
|
17
19
|
SchemaId,
|
|
@@ -35,7 +37,7 @@ import {
|
|
|
35
37
|
setLabelWithSchema,
|
|
36
38
|
setSchema,
|
|
37
39
|
setTypename
|
|
38
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-RIMHNJ3E.mjs";
|
|
39
41
|
import {
|
|
40
42
|
ANY_OBJECT_TYPENAME,
|
|
41
43
|
ANY_OBJECT_VERSION,
|
|
@@ -45,7 +47,7 @@ import {
|
|
|
45
47
|
SchemaKindId,
|
|
46
48
|
SnapshotKindId,
|
|
47
49
|
makeTypeJsonSchemaAnnotation
|
|
48
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-KB7RIVLK.mjs";
|
|
49
51
|
|
|
50
52
|
// src/internal/index.ts
|
|
51
53
|
import { JsonPath as JsonPath2, JsonProp, getValue, splitJsonPath } from "@dxos/effect";
|
|
@@ -67,22 +69,22 @@ import { intersection } from "@dxos/util";
|
|
|
67
69
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/internal/types/meta.ts";
|
|
68
70
|
var ATTR_META = "@meta";
|
|
69
71
|
var MetaId = Symbol.for("@dxos/echo/Meta");
|
|
70
|
-
var ObjectMetaSchema = Schema2.
|
|
71
|
-
keys: Schema2.
|
|
72
|
+
var ObjectMetaSchema = Schema2.Struct({
|
|
73
|
+
keys: Schema2.Array(ForeignKey),
|
|
72
74
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
* A set of tags.
|
|
76
|
+
* Tags are arbitrary application-defined strings.
|
|
77
|
+
* ECHO makes no assumptions about the tag structure.
|
|
78
|
+
*/
|
|
77
79
|
// TODO(dmaretskyi): Has to be optional for compatibility with old data.
|
|
78
80
|
// Defaulting to an empty array is possible but requires a bit more work.
|
|
79
|
-
tags: Schema2.optional(Schema2.
|
|
80
|
-
})
|
|
81
|
+
tags: Schema2.optional(Schema2.Array(Schema2.String))
|
|
82
|
+
});
|
|
81
83
|
var getMeta = (obj) => {
|
|
82
84
|
const metadata = obj[MetaId];
|
|
83
85
|
invariant(metadata, "ObjectMeta not found.", {
|
|
84
86
|
F: __dxlog_file,
|
|
85
|
-
L:
|
|
87
|
+
L: 52,
|
|
86
88
|
S: void 0,
|
|
87
89
|
A: [
|
|
88
90
|
"metadata",
|
|
@@ -200,7 +202,7 @@ var EchoRelationSchema = ({ source, target, typename, version: version2 }) => {
|
|
|
200
202
|
]
|
|
201
203
|
});
|
|
202
204
|
const fields = self.fields ?? {};
|
|
203
|
-
const schemaWithId = Schema4.extend(
|
|
205
|
+
const schemaWithId = Schema4.extend(self, Schema4.Struct({
|
|
204
206
|
id: Schema4.String
|
|
205
207
|
}));
|
|
206
208
|
const ast = SchemaAST2.annotations(schemaWithId.ast, {
|
|
@@ -249,7 +251,7 @@ var ObjectDatabaseId = Symbol.for("@dxos/echo/Database");
|
|
|
249
251
|
function assertObjectModel(obj) {
|
|
250
252
|
invariant3(typeof obj === "object" && obj !== null, "Invalid object model: not an object", {
|
|
251
253
|
F: __dxlog_file3,
|
|
252
|
-
L:
|
|
254
|
+
L: 123,
|
|
253
255
|
S: this,
|
|
254
256
|
A: [
|
|
255
257
|
"typeof obj === 'object' && obj !== null",
|
|
@@ -259,7 +261,7 @@ function assertObjectModel(obj) {
|
|
|
259
261
|
assumeType(obj);
|
|
260
262
|
invariant3(ObjectId.isValid(obj.id), "Invalid object model: invalid id", {
|
|
261
263
|
F: __dxlog_file3,
|
|
262
|
-
L:
|
|
264
|
+
L: 125,
|
|
263
265
|
S: this,
|
|
264
266
|
A: [
|
|
265
267
|
"ObjectId.isValid(obj.id)",
|
|
@@ -268,7 +270,7 @@ function assertObjectModel(obj) {
|
|
|
268
270
|
});
|
|
269
271
|
invariant3(obj[TypeId] === void 0 || obj[TypeId] instanceof DXN2, "Invalid object model: invalid type", {
|
|
270
272
|
F: __dxlog_file3,
|
|
271
|
-
L:
|
|
273
|
+
L: 126,
|
|
272
274
|
S: this,
|
|
273
275
|
A: [
|
|
274
276
|
"obj[TypeId] === undefined || obj[TypeId] instanceof DXN",
|
|
@@ -277,7 +279,7 @@ function assertObjectModel(obj) {
|
|
|
277
279
|
});
|
|
278
280
|
invariant3(obj[KindId] === EntityKind.Object || obj[KindId] === EntityKind.Relation, "Invalid object model: invalid entity kind", {
|
|
279
281
|
F: __dxlog_file3,
|
|
280
|
-
L:
|
|
282
|
+
L: 127,
|
|
281
283
|
S: this,
|
|
282
284
|
A: [
|
|
283
285
|
"obj[KindId] === EntityKind.Object || obj[KindId] === EntityKind.Relation",
|
|
@@ -287,7 +289,7 @@ function assertObjectModel(obj) {
|
|
|
287
289
|
if (obj[KindId] === EntityKind.Relation) {
|
|
288
290
|
invariant3(obj[RelationSourceDXNId] instanceof DXN2, "Invalid object model: invalid relation source", {
|
|
289
291
|
F: __dxlog_file3,
|
|
290
|
-
L:
|
|
292
|
+
L: 133,
|
|
291
293
|
S: this,
|
|
292
294
|
A: [
|
|
293
295
|
"obj[RelationSourceDXNId] instanceof DXN",
|
|
@@ -296,7 +298,7 @@ function assertObjectModel(obj) {
|
|
|
296
298
|
});
|
|
297
299
|
invariant3(obj[RelationTargetDXNId] instanceof DXN2, "Invalid object model: invalid relation target", {
|
|
298
300
|
F: __dxlog_file3,
|
|
299
|
-
L:
|
|
301
|
+
L: 134,
|
|
300
302
|
S: this,
|
|
301
303
|
A: [
|
|
302
304
|
"obj[RelationTargetDXNId] instanceof DXN",
|
|
@@ -305,7 +307,7 @@ function assertObjectModel(obj) {
|
|
|
305
307
|
});
|
|
306
308
|
invariant3(!(obj[RelationSourceId] instanceof DXN2), "Invalid object model: source pointer is a DXN", {
|
|
307
309
|
F: __dxlog_file3,
|
|
308
|
-
L:
|
|
310
|
+
L: 135,
|
|
309
311
|
S: this,
|
|
310
312
|
A: [
|
|
311
313
|
"!(obj[RelationSourceId] instanceof DXN)",
|
|
@@ -314,7 +316,7 @@ function assertObjectModel(obj) {
|
|
|
314
316
|
});
|
|
315
317
|
invariant3(!(obj[RelationTargetId] instanceof DXN2), "Invalid object model: target pointer is a DXN", {
|
|
316
318
|
F: __dxlog_file3,
|
|
317
|
-
L:
|
|
319
|
+
L: 136,
|
|
318
320
|
S: this,
|
|
319
321
|
A: [
|
|
320
322
|
"!(obj[RelationTargetId] instanceof DXN)",
|
|
@@ -350,7 +352,7 @@ var EchoObjectSchema = ({ typename, version: version2 }) => {
|
|
|
350
352
|
]
|
|
351
353
|
});
|
|
352
354
|
const fields = self.fields ?? {};
|
|
353
|
-
const schemaWithId = Schema5.extend(
|
|
355
|
+
const schemaWithId = Schema5.extend(self, Schema5.Struct({
|
|
354
356
|
id: Schema5.String
|
|
355
357
|
}));
|
|
356
358
|
const ast = SchemaAST3.annotations(schemaWithId.ast, {
|
|
@@ -575,7 +577,7 @@ import * as Schema7 from "effect/Schema";
|
|
|
575
577
|
import { JsonPath } from "@dxos/effect";
|
|
576
578
|
var SimpleTypes = Schema7.Literal("array", "boolean", "integer", "null", "number", "object", "string");
|
|
577
579
|
var NonNegativeInteger = Schema7.Number.pipe(Schema7.greaterThanOrEqualTo(0));
|
|
578
|
-
var StringArray = Schema7.Array(Schema7.String)
|
|
580
|
+
var StringArray = Schema7.Array(Schema7.String);
|
|
579
581
|
var JsonSchemaOrBoolean = Schema7.Union(Schema7.suspend(() => JsonSchemaType), Schema7.Boolean);
|
|
580
582
|
var JsonSchemaEchoAnnotations = Schema7.Struct({
|
|
581
583
|
/**
|
|
@@ -594,7 +596,7 @@ var JsonSchemaEchoAnnotations = Schema7.Struct({
|
|
|
594
596
|
meta: Schema7.optional(Schema7.Record({
|
|
595
597
|
key: Schema7.String,
|
|
596
598
|
value: Schema7.Any
|
|
597
|
-
})
|
|
599
|
+
})),
|
|
598
600
|
/**
|
|
599
601
|
* @deprecated
|
|
600
602
|
*/
|
|
@@ -604,15 +606,15 @@ var JsonSchemaEchoAnnotations = Schema7.Struct({
|
|
|
604
606
|
version: Schema7.String,
|
|
605
607
|
// Not used.
|
|
606
608
|
schemaId: Schema7.optional(Schema7.String)
|
|
607
|
-
})
|
|
609
|
+
})),
|
|
608
610
|
/**
|
|
609
611
|
* @deprecated Superseded by `meta`.
|
|
610
612
|
*/
|
|
611
613
|
annotations: Schema7.optional(Schema7.Record({
|
|
612
614
|
key: Schema7.String,
|
|
613
615
|
value: Schema7.Any
|
|
614
|
-
})
|
|
615
|
-
})
|
|
616
|
+
}))
|
|
617
|
+
});
|
|
616
618
|
var _JsonSchemaType = Schema7.Struct({
|
|
617
619
|
/**
|
|
618
620
|
* Identifier for this schema.
|
|
@@ -746,16 +748,16 @@ var _JsonSchemaType = Schema7.Struct({
|
|
|
746
748
|
properties: Schema7.optional(Schema7.Record({
|
|
747
749
|
key: Schema7.String,
|
|
748
750
|
value: Schema7.suspend(() => JsonSchemaType)
|
|
749
|
-
})
|
|
751
|
+
})),
|
|
750
752
|
patternProperties: Schema7.optional(Schema7.Record({
|
|
751
753
|
key: Schema7.String,
|
|
752
754
|
value: Schema7.suspend(() => JsonSchemaType)
|
|
753
|
-
})
|
|
755
|
+
})),
|
|
754
756
|
propertyNames: Schema7.optional(Schema7.suspend(() => JsonSchemaType)),
|
|
755
|
-
definitions: Schema7.optional(Schema7.
|
|
757
|
+
definitions: Schema7.optional(Schema7.Record({
|
|
756
758
|
key: Schema7.String,
|
|
757
759
|
value: Schema7.suspend(() => JsonSchemaType)
|
|
758
|
-
}))
|
|
760
|
+
})),
|
|
759
761
|
dependencies: Schema7.optional(Schema7.Record({
|
|
760
762
|
key: Schema7.String,
|
|
761
763
|
value: Schema7.suspend(() => Schema7.Union(Schema7.String, StringArray, JsonSchemaType)).annotations({
|
|
@@ -772,34 +774,34 @@ var _JsonSchemaType = Schema7.Struct({
|
|
|
772
774
|
anyOf: Schema7.optional(Schema7.Array(Schema7.suspend(() => JsonSchemaType))),
|
|
773
775
|
oneOf: Schema7.optional(Schema7.Array(Schema7.suspend(() => JsonSchemaType))),
|
|
774
776
|
not: Schema7.optional(Schema7.suspend(() => JsonSchemaType)),
|
|
775
|
-
$defs: Schema7.optional(Schema7.
|
|
777
|
+
$defs: Schema7.optional(Schema7.Record({
|
|
776
778
|
key: Schema7.String,
|
|
777
779
|
value: Schema7.suspend(() => JsonSchemaType)
|
|
778
|
-
}))
|
|
780
|
+
})),
|
|
779
781
|
//
|
|
780
782
|
// ECHO extensions.
|
|
781
783
|
//
|
|
782
784
|
currency: Schema7.optional(Schema7.String),
|
|
783
|
-
reference: Schema7.optional(Schema7.
|
|
785
|
+
reference: Schema7.optional(Schema7.Struct({
|
|
784
786
|
schema: Schema7.suspend(() => JsonSchemaType),
|
|
785
787
|
schemaVersion: Schema7.optional(Schema7.String),
|
|
786
788
|
schemaObject: Schema7.optional(Schema7.String)
|
|
787
|
-
}))
|
|
789
|
+
})),
|
|
788
790
|
/**
|
|
789
791
|
* ECHO-specific annotations.
|
|
790
792
|
*/
|
|
791
793
|
// TODO(dmaretskyi): Since we are adding a lot of new extensions to the JSON Schema, it is safer to namespace them here.
|
|
792
|
-
annotations: Schema7.optional(
|
|
794
|
+
annotations: Schema7.optional(JsonSchemaEchoAnnotations),
|
|
793
795
|
/**
|
|
794
796
|
* @deprecated Use `annotations` instead.
|
|
795
797
|
*/
|
|
796
|
-
echo: Schema7.optional(
|
|
798
|
+
echo: Schema7.optional(JsonSchemaEchoAnnotations)
|
|
797
799
|
}).annotations({
|
|
798
800
|
identifier: "jsonSchema",
|
|
799
801
|
description: "JSON Schema"
|
|
800
802
|
});
|
|
801
803
|
var JsonSchemaFields = Object.keys(_JsonSchemaType.fields);
|
|
802
|
-
var JsonSchemaType = _JsonSchemaType
|
|
804
|
+
var JsonSchemaType = _JsonSchemaType;
|
|
803
805
|
var getSchemaProperty = (schema, property) => {
|
|
804
806
|
return schema.properties?.[property];
|
|
805
807
|
};
|
|
@@ -947,8 +949,11 @@ import { clearUndefined, orderKeys, removeProperties } from "@dxos/util";
|
|
|
947
949
|
|
|
948
950
|
// src/internal/ref/ref.ts
|
|
949
951
|
import * as Effect from "effect/Effect";
|
|
952
|
+
import * as Equal from "effect/Equal";
|
|
953
|
+
import * as Hash from "effect/Hash";
|
|
950
954
|
import * as Option from "effect/Option";
|
|
951
955
|
import * as ParseResult from "effect/ParseResult";
|
|
956
|
+
import * as Pipeable from "effect/Pipeable";
|
|
952
957
|
import * as Schema8 from "effect/Schema";
|
|
953
958
|
import * as SchemaAST5 from "effect/SchemaAST";
|
|
954
959
|
import { Event } from "@dxos/async";
|
|
@@ -1011,7 +1016,7 @@ Ref.make = (obj) => {
|
|
|
1011
1016
|
const id = obj.id;
|
|
1012
1017
|
invariant8(ObjectId3.isValid(id), "Invalid object ID", {
|
|
1013
1018
|
F: __dxlog_file8,
|
|
1014
|
-
L:
|
|
1019
|
+
L: 225,
|
|
1015
1020
|
S: void 0,
|
|
1016
1021
|
A: [
|
|
1017
1022
|
"ObjectId.isValid(id)",
|
|
@@ -1121,7 +1126,7 @@ var RefImpl = class _RefImpl {
|
|
|
1121
1126
|
}
|
|
1122
1127
|
invariant8(this.#resolver, "Resolver is not set", {
|
|
1123
1128
|
F: __dxlog_file8,
|
|
1124
|
-
L:
|
|
1129
|
+
L: 393,
|
|
1125
1130
|
S: this,
|
|
1126
1131
|
A: [
|
|
1127
1132
|
"this.#resolver",
|
|
@@ -1139,7 +1144,7 @@ var RefImpl = class _RefImpl {
|
|
|
1139
1144
|
}
|
|
1140
1145
|
invariant8(this.#resolver, "Resolver is not set", {
|
|
1141
1146
|
F: __dxlog_file8,
|
|
1142
|
-
L:
|
|
1147
|
+
L: 404,
|
|
1143
1148
|
S: this,
|
|
1144
1149
|
A: [
|
|
1145
1150
|
"this.#resolver",
|
|
@@ -1161,7 +1166,7 @@ var RefImpl = class _RefImpl {
|
|
|
1161
1166
|
}
|
|
1162
1167
|
invariant8(this.#resolver, "Resolver is not set", {
|
|
1163
1168
|
F: __dxlog_file8,
|
|
1164
|
-
L:
|
|
1169
|
+
L: 419,
|
|
1165
1170
|
S: this,
|
|
1166
1171
|
A: [
|
|
1167
1172
|
"this.#resolver",
|
|
@@ -1208,6 +1213,19 @@ var RefImpl = class _RefImpl {
|
|
|
1208
1213
|
};
|
|
1209
1214
|
[RefTypeId] = refVariance;
|
|
1210
1215
|
/**
|
|
1216
|
+
* Effect Hash trait. Required for MutableHashMap-based caches (e.g., Atom.family)
|
|
1217
|
+
* to deduplicate Ref instances that point to the same object.
|
|
1218
|
+
* ECHO proxies return new RefImpl instances on every property access,
|
|
1219
|
+
* so without this, each access would create a separate cache entry.
|
|
1220
|
+
*/
|
|
1221
|
+
[Hash.symbol]() {
|
|
1222
|
+
return Hash.hash(this.#dxn.toString());
|
|
1223
|
+
}
|
|
1224
|
+
/** Effect Equal trait. See {@link Hash.symbol} for rationale. */
|
|
1225
|
+
[Equal.symbol](that) {
|
|
1226
|
+
return that instanceof _RefImpl && this.#dxn.toString() === that.dxn.toString();
|
|
1227
|
+
}
|
|
1228
|
+
/**
|
|
1211
1229
|
* Internal method to set the resolver.
|
|
1212
1230
|
*
|
|
1213
1231
|
* @internal
|
|
@@ -1221,11 +1239,14 @@ var RefImpl = class _RefImpl {
|
|
|
1221
1239
|
_getSavedTarget() {
|
|
1222
1240
|
return this.#target;
|
|
1223
1241
|
}
|
|
1242
|
+
pipe() {
|
|
1243
|
+
return Pipeable.pipeArguments(this, arguments);
|
|
1244
|
+
}
|
|
1224
1245
|
};
|
|
1225
1246
|
var setRefResolver = (ref, resolver) => {
|
|
1226
1247
|
invariant8(ref instanceof RefImpl, "Ref is not an instance of RefImpl", {
|
|
1227
1248
|
F: __dxlog_file8,
|
|
1228
|
-
L:
|
|
1249
|
+
L: 506,
|
|
1229
1250
|
S: void 0,
|
|
1230
1251
|
A: [
|
|
1231
1252
|
"ref instanceof RefImpl",
|
|
@@ -1237,7 +1258,7 @@ var setRefResolver = (ref, resolver) => {
|
|
|
1237
1258
|
var getRefSavedTarget = (ref) => {
|
|
1238
1259
|
invariant8(ref instanceof RefImpl, "Ref is not an instance of RefImpl", {
|
|
1239
1260
|
F: __dxlog_file8,
|
|
1240
|
-
L:
|
|
1261
|
+
L: 514,
|
|
1241
1262
|
S: void 0,
|
|
1242
1263
|
A: [
|
|
1243
1264
|
"ref instanceof RefImpl",
|
|
@@ -1268,7 +1289,7 @@ var StaticRefResolver = class {
|
|
|
1268
1289
|
const dxn = getSchemaDXN(schema);
|
|
1269
1290
|
invariant8(dxn, "Schema has no DXN", {
|
|
1270
1291
|
F: __dxlog_file8,
|
|
1271
|
-
L:
|
|
1292
|
+
L: 546,
|
|
1272
1293
|
S: this,
|
|
1273
1294
|
A: [
|
|
1274
1295
|
"dxn",
|
|
@@ -1469,7 +1490,7 @@ var toEffectSchema = (root, _defs) => {
|
|
|
1469
1490
|
} else {
|
|
1470
1491
|
log.warn("allOf with multiple schemas is not supported", void 0, {
|
|
1471
1492
|
F: __dxlog_file9,
|
|
1472
|
-
L:
|
|
1493
|
+
L: 224,
|
|
1473
1494
|
S: void 0,
|
|
1474
1495
|
C: (f, a) => f(...a)
|
|
1475
1496
|
});
|
|
@@ -1503,7 +1524,7 @@ var toEffectSchema = (root, _defs) => {
|
|
|
1503
1524
|
} else {
|
|
1504
1525
|
invariant9(root.items, void 0, {
|
|
1505
1526
|
F: __dxlog_file9,
|
|
1506
|
-
L:
|
|
1527
|
+
L: 257,
|
|
1507
1528
|
S: void 0,
|
|
1508
1529
|
A: [
|
|
1509
1530
|
"root.items",
|
|
@@ -1525,7 +1546,7 @@ var toEffectSchema = (root, _defs) => {
|
|
|
1525
1546
|
const jsonSchema = defs[refSegments[refSegments.length - 1]];
|
|
1526
1547
|
invariant9(jsonSchema, `missing definition for ${root.$ref}`, {
|
|
1527
1548
|
F: __dxlog_file9,
|
|
1528
|
-
L:
|
|
1549
|
+
L: 273,
|
|
1529
1550
|
S: void 0,
|
|
1530
1551
|
A: [
|
|
1531
1552
|
"jsonSchema",
|
|
@@ -1543,7 +1564,7 @@ var toEffectSchema = (root, _defs) => {
|
|
|
1543
1564
|
var objectToEffectSchema = (root, defs) => {
|
|
1544
1565
|
invariant9("type" in root && root.type === "object", `not an object: ${root}`, {
|
|
1545
1566
|
F: __dxlog_file9,
|
|
1546
|
-
L:
|
|
1567
|
+
L: 288,
|
|
1547
1568
|
S: void 0,
|
|
1548
1569
|
A: [
|
|
1549
1570
|
"'type' in root && root.type === 'object'",
|
|
@@ -1569,7 +1590,7 @@ var objectToEffectSchema = (root, defs) => {
|
|
|
1569
1590
|
if (root.patternProperties) {
|
|
1570
1591
|
invariant9(propertyList.length === 0, "pattern properties mixed with regular properties are not supported", {
|
|
1571
1592
|
F: __dxlog_file9,
|
|
1572
|
-
L:
|
|
1593
|
+
L: 314,
|
|
1573
1594
|
S: void 0,
|
|
1574
1595
|
A: [
|
|
1575
1596
|
"propertyList.length === 0",
|
|
@@ -1578,7 +1599,7 @@ var objectToEffectSchema = (root, defs) => {
|
|
|
1578
1599
|
});
|
|
1579
1600
|
invariant9(Object.keys(root.patternProperties).length === 1 && Object.keys(root.patternProperties)[0] === "", "only one pattern property is supported", {
|
|
1580
1601
|
F: __dxlog_file9,
|
|
1581
|
-
L:
|
|
1602
|
+
L: 315,
|
|
1582
1603
|
S: void 0,
|
|
1583
1604
|
A: [
|
|
1584
1605
|
"Object.keys(root.patternProperties).length === 1 && Object.keys(root.patternProperties)[0] === ''",
|
|
@@ -1606,7 +1627,7 @@ var objectToEffectSchema = (root, defs) => {
|
|
|
1606
1627
|
}
|
|
1607
1628
|
}
|
|
1608
1629
|
if (immutableIdField) {
|
|
1609
|
-
schema = Schema9.extend(
|
|
1630
|
+
schema = Schema9.extend(schema, Schema9.Struct({
|
|
1610
1631
|
id: immutableIdField
|
|
1611
1632
|
}));
|
|
1612
1633
|
}
|
|
@@ -1632,7 +1653,7 @@ var refToEffectSchema = (root) => {
|
|
|
1632
1653
|
const targetSchemaDXN = DXN5.parse(reference.schema.$ref);
|
|
1633
1654
|
invariant9(targetSchemaDXN.kind === DXN5.kind.TYPE, void 0, {
|
|
1634
1655
|
F: __dxlog_file9,
|
|
1635
|
-
L:
|
|
1656
|
+
L: 368,
|
|
1636
1657
|
S: void 0,
|
|
1637
1658
|
A: [
|
|
1638
1659
|
"targetSchemaDXN.kind === DXN.kind.TYPE",
|
|
@@ -2564,7 +2585,7 @@ var TypedReactiveHandler = class _TypedReactiveHandler {
|
|
|
2564
2585
|
init(target) {
|
|
2565
2586
|
invariant14(typeof target === "object" && target !== null, void 0, {
|
|
2566
2587
|
F: __dxlog_file14,
|
|
2567
|
-
L:
|
|
2588
|
+
L: 148,
|
|
2568
2589
|
S: this,
|
|
2569
2590
|
A: [
|
|
2570
2591
|
"typeof target === 'object' && target !== null",
|
|
@@ -2573,7 +2594,7 @@ var TypedReactiveHandler = class _TypedReactiveHandler {
|
|
|
2573
2594
|
});
|
|
2574
2595
|
invariant14(SchemaId in target, "Schema is not defined for the target", {
|
|
2575
2596
|
F: __dxlog_file14,
|
|
2576
|
-
L:
|
|
2597
|
+
L: 149,
|
|
2577
2598
|
S: this,
|
|
2578
2599
|
A: [
|
|
2579
2600
|
"SchemaId in target",
|
|
@@ -2693,6 +2714,12 @@ var TypedReactiveHandler = class _TypedReactiveHandler {
|
|
|
2693
2714
|
*/
|
|
2694
2715
|
_prepareValueForAssignment(target, prop, value2) {
|
|
2695
2716
|
const echoRoot = getEchoRoot(target);
|
|
2717
|
+
if (prop === ParentId) {
|
|
2718
|
+
return {
|
|
2719
|
+
echoRoot,
|
|
2720
|
+
preparedValue: value2
|
|
2721
|
+
};
|
|
2722
|
+
}
|
|
2696
2723
|
if (isValidProxyTarget(value2) || isProxy(value2)) {
|
|
2697
2724
|
if (wouldCreateCycle(echoRoot, value2)) {
|
|
2698
2725
|
throw new Error("Cannot create cycles in typed object graph. Consider using Ref for circular references.");
|
|
@@ -2725,6 +2752,9 @@ var TypedReactiveHandler = class _TypedReactiveHandler {
|
|
|
2725
2752
|
};
|
|
2726
2753
|
}
|
|
2727
2754
|
_validateValue(target, prop, value2) {
|
|
2755
|
+
if (prop === ParentId) {
|
|
2756
|
+
return value2;
|
|
2757
|
+
}
|
|
2728
2758
|
const schema = SchemaValidator.getTargetPropertySchema(target, prop);
|
|
2729
2759
|
const _ = Schema12.asserts(schema)(value2);
|
|
2730
2760
|
if (isValidProxyTarget(value2)) {
|
|
@@ -2787,9 +2817,7 @@ var makeArraysReactive = (target) => {
|
|
|
2787
2817
|
|
|
2788
2818
|
// src/internal/proxy/make-object.ts
|
|
2789
2819
|
var makeObject = (schema, obj, meta) => {
|
|
2790
|
-
return createReactiveObject({
|
|
2791
|
-
...obj
|
|
2792
|
-
}, meta, schema);
|
|
2820
|
+
return createReactiveObject(Object.assign({}, obj), meta, schema);
|
|
2793
2821
|
};
|
|
2794
2822
|
var createReactiveObject = (obj, meta, schema) => {
|
|
2795
2823
|
if (!isValidProxyTarget(obj)) {
|
|
@@ -2798,12 +2826,19 @@ var createReactiveObject = (obj, meta, schema) => {
|
|
|
2798
2826
|
if (!schema) {
|
|
2799
2827
|
throw new Error("Schema is required for reactive objects. Use Atom for untyped reactive state.");
|
|
2800
2828
|
}
|
|
2829
|
+
const parent = obj[ParentId];
|
|
2830
|
+
if (parent !== void 0) {
|
|
2831
|
+
delete obj[ParentId];
|
|
2832
|
+
}
|
|
2801
2833
|
const annotation = getTypeAnnotation(schema);
|
|
2802
2834
|
if (annotation) {
|
|
2803
2835
|
setIdOnTarget(obj);
|
|
2804
2836
|
defineHiddenProperty(obj, KindId, annotation.kind);
|
|
2805
2837
|
}
|
|
2806
2838
|
initMeta(obj, meta);
|
|
2839
|
+
if (parent !== void 0) {
|
|
2840
|
+
defineHiddenProperty(obj, ParentId, parent);
|
|
2841
|
+
}
|
|
2807
2842
|
prepareTypedTarget(obj, schema);
|
|
2808
2843
|
attachTypedJsonSerializer(obj);
|
|
2809
2844
|
const proxy = createProxy(obj, TypedReactiveHandler.instance);
|
|
@@ -2886,7 +2921,7 @@ var objectToJSON = (obj) => {
|
|
|
2886
2921
|
const typename = getTypeDXN(obj)?.toString();
|
|
2887
2922
|
invariant15(typename && typeof typename === "string", void 0, {
|
|
2888
2923
|
F: __dxlog_file15,
|
|
2889
|
-
L:
|
|
2924
|
+
L: 64,
|
|
2890
2925
|
S: void 0,
|
|
2891
2926
|
A: [
|
|
2892
2927
|
"typename && typeof typename === 'string'",
|
|
@@ -2904,27 +2939,28 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2904
2939
|
const schema = await refResolver?.resolveSchema(type);
|
|
2905
2940
|
invariant15(schema === void 0 || Schema13.isSchema(schema), void 0, {
|
|
2906
2941
|
F: __dxlog_file15,
|
|
2907
|
-
L:
|
|
2942
|
+
L: 85,
|
|
2908
2943
|
S: void 0,
|
|
2909
2944
|
A: [
|
|
2910
2945
|
"schema === undefined || Schema.isSchema(schema)",
|
|
2911
2946
|
""
|
|
2912
2947
|
]
|
|
2913
2948
|
});
|
|
2949
|
+
const decodedInput = stripInternalJsonKeys(jsonData);
|
|
2914
2950
|
let obj;
|
|
2915
2951
|
if (schema != null) {
|
|
2916
|
-
obj = await schema.pipe(Schema13.decodeUnknownPromise)(
|
|
2952
|
+
obj = await schema.pipe(Schema13.decodeUnknownPromise)(decodedInput);
|
|
2917
2953
|
if (refResolver) {
|
|
2918
2954
|
setRefResolverOnData(obj, refResolver);
|
|
2919
2955
|
}
|
|
2920
2956
|
} else {
|
|
2921
|
-
obj = decodeGeneric(
|
|
2957
|
+
obj = decodeGeneric(decodedInput, {
|
|
2922
2958
|
refResolver
|
|
2923
2959
|
});
|
|
2924
2960
|
}
|
|
2925
2961
|
invariant15(ObjectId6.isValid(obj.id), "Invalid object id", {
|
|
2926
2962
|
F: __dxlog_file15,
|
|
2927
|
-
L:
|
|
2963
|
+
L: 98,
|
|
2928
2964
|
S: void 0,
|
|
2929
2965
|
A: [
|
|
2930
2966
|
"ObjectId.isValid(obj.id)",
|
|
@@ -2953,7 +2989,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2953
2989
|
const meta = await ObjectMetaSchema.pipe(Schema13.decodeUnknownPromise)(jsonData[ATTR_META]);
|
|
2954
2990
|
invariant15(Array.isArray(meta.keys), void 0, {
|
|
2955
2991
|
F: __dxlog_file15,
|
|
2956
|
-
L:
|
|
2992
|
+
L: 124,
|
|
2957
2993
|
S: void 0,
|
|
2958
2994
|
A: [
|
|
2959
2995
|
"Array.isArray(meta.keys)",
|
|
@@ -2966,13 +3002,18 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2966
3002
|
keys: []
|
|
2967
3003
|
});
|
|
2968
3004
|
}
|
|
3005
|
+
if (jsonData[ATTR_PARENT]) {
|
|
3006
|
+
const parentDxn = DXN7.parse(jsonData[ATTR_PARENT]);
|
|
3007
|
+
const parent = await refResolver?.resolve(parentDxn);
|
|
3008
|
+
defineHiddenProperty(obj, ParentId, parent);
|
|
3009
|
+
}
|
|
2969
3010
|
if (dxn) {
|
|
2970
3011
|
defineHiddenProperty(obj, SelfDXNId, dxn);
|
|
2971
3012
|
}
|
|
2972
3013
|
assertObjectModel(obj);
|
|
2973
3014
|
invariant15(obj[ATTR_TYPE] === void 0, "Invalid object model", {
|
|
2974
3015
|
F: __dxlog_file15,
|
|
2975
|
-
L:
|
|
3016
|
+
L: 143,
|
|
2976
3017
|
S: void 0,
|
|
2977
3018
|
A: [
|
|
2978
3019
|
"(obj as any)[ATTR_TYPE] === undefined",
|
|
@@ -2981,7 +3022,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2981
3022
|
});
|
|
2982
3023
|
invariant15(obj[ATTR_META] === void 0, "Invalid object model", {
|
|
2983
3024
|
F: __dxlog_file15,
|
|
2984
|
-
L:
|
|
3025
|
+
L: 144,
|
|
2985
3026
|
S: void 0,
|
|
2986
3027
|
A: [
|
|
2987
3028
|
"(obj as any)[ATTR_META] === undefined",
|
|
@@ -2990,7 +3031,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2990
3031
|
});
|
|
2991
3032
|
invariant15(obj[ATTR_DELETED] === void 0, "Invalid object model", {
|
|
2992
3033
|
F: __dxlog_file15,
|
|
2993
|
-
L:
|
|
3034
|
+
L: 145,
|
|
2994
3035
|
S: void 0,
|
|
2995
3036
|
A: [
|
|
2996
3037
|
"(obj as any)[ATTR_DELETED] === undefined",
|
|
@@ -2999,7 +3040,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
2999
3040
|
});
|
|
3000
3041
|
invariant15(obj[ATTR_SELF_DXN] === void 0, "Invalid object model", {
|
|
3001
3042
|
F: __dxlog_file15,
|
|
3002
|
-
L:
|
|
3043
|
+
L: 146,
|
|
3003
3044
|
S: void 0,
|
|
3004
3045
|
A: [
|
|
3005
3046
|
"(obj as any)[ATTR_SELF_DXN] === undefined",
|
|
@@ -3008,7 +3049,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
3008
3049
|
});
|
|
3009
3050
|
invariant15(obj[ATTR_RELATION_SOURCE] === void 0, "Invalid object model", {
|
|
3010
3051
|
F: __dxlog_file15,
|
|
3011
|
-
L:
|
|
3052
|
+
L: 147,
|
|
3012
3053
|
S: void 0,
|
|
3013
3054
|
A: [
|
|
3014
3055
|
"(obj as any)[ATTR_RELATION_SOURCE] === undefined",
|
|
@@ -3017,7 +3058,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
3017
3058
|
});
|
|
3018
3059
|
invariant15(obj[ATTR_RELATION_TARGET] === void 0, "Invalid object model", {
|
|
3019
3060
|
F: __dxlog_file15,
|
|
3020
|
-
L:
|
|
3061
|
+
L: 148,
|
|
3021
3062
|
S: void 0,
|
|
3022
3063
|
A: [
|
|
3023
3064
|
"(obj as any)[ATTR_RELATION_TARGET] === undefined",
|
|
@@ -3027,7 +3068,7 @@ var objectFromJSON = async (jsonData, { refResolver, dxn } = {}) => {
|
|
|
3027
3068
|
return obj;
|
|
3028
3069
|
};
|
|
3029
3070
|
var decodeGeneric = (jsonData, options) => {
|
|
3030
|
-
const
|
|
3071
|
+
const props = stripInternalJsonKeys(jsonData);
|
|
3031
3072
|
return deepMapValues2(props, (value2, visitor) => {
|
|
3032
3073
|
if (isEncodedReference(value2)) {
|
|
3033
3074
|
return refFromEncodedReference(value2, options.refResolver);
|
|
@@ -3035,6 +3076,10 @@ var decodeGeneric = (jsonData, options) => {
|
|
|
3035
3076
|
return visitor(value2);
|
|
3036
3077
|
});
|
|
3037
3078
|
};
|
|
3079
|
+
var stripInternalJsonKeys = (jsonData) => {
|
|
3080
|
+
const { [ATTR_TYPE]: _type, [ATTR_META]: _meta, [ATTR_DELETED]: _deleted, [ATTR_SELF_DXN]: _selfDxn, [ATTR_RELATION_SOURCE]: _relationSource, [ATTR_RELATION_TARGET]: _relationTarget, ...props } = jsonData;
|
|
3081
|
+
return props;
|
|
3082
|
+
};
|
|
3038
3083
|
var setRefResolverOnData = (obj, refResolver) => {
|
|
3039
3084
|
const visitor = (value2) => {
|
|
3040
3085
|
if (Ref.isRef(value2)) {
|
|
@@ -3051,6 +3096,7 @@ var objectStructureToJson = (objectId, structure) => {
|
|
|
3051
3096
|
id: objectId,
|
|
3052
3097
|
[ATTR_TYPE]: ObjectStructure.getTypeReference(structure)?.["/"] ?? "",
|
|
3053
3098
|
[ATTR_DELETED]: ObjectStructure.isDeleted(structure),
|
|
3099
|
+
[ATTR_PARENT]: ObjectStructure.getParent(structure)?.["/"],
|
|
3054
3100
|
[ATTR_RELATION_SOURCE]: ObjectStructure.getRelationSource(structure)?.["/"],
|
|
3055
3101
|
[ATTR_RELATION_TARGET]: ObjectStructure.getRelationTarget(structure)?.["/"]
|
|
3056
3102
|
};
|
|
@@ -3216,10 +3262,17 @@ var createObjectWithDefaults = (ast) => {
|
|
|
3216
3262
|
|
|
3217
3263
|
// src/internal/object/snapshot.ts
|
|
3218
3264
|
import { deepMapValues as deepMapValues3 } from "@dxos/util";
|
|
3219
|
-
var copySymbolProperty = (source, target,
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3265
|
+
var copySymbolProperty = (source, target, symbol3, transform) => {
|
|
3266
|
+
let value2;
|
|
3267
|
+
try {
|
|
3268
|
+
value2 = source[symbol3];
|
|
3269
|
+
} catch {
|
|
3270
|
+
return;
|
|
3271
|
+
}
|
|
3272
|
+
if (value2 !== void 0) {
|
|
3273
|
+
const finalValue = transform ? transform(value2) : value2;
|
|
3274
|
+
Object.defineProperty(target, symbol3, {
|
|
3275
|
+
value: finalValue,
|
|
3223
3276
|
writable: false,
|
|
3224
3277
|
enumerable: false,
|
|
3225
3278
|
configurable: false
|
|
@@ -3240,7 +3293,15 @@ var getSnapshot = (obj) => {
|
|
|
3240
3293
|
const source = obj;
|
|
3241
3294
|
copySymbolProperty(source, snapshot, TypeId);
|
|
3242
3295
|
copySymbolProperty(source, snapshot, SchemaId);
|
|
3243
|
-
copySymbolProperty(source, snapshot,
|
|
3296
|
+
copySymbolProperty(source, snapshot, ObjectDatabaseId);
|
|
3297
|
+
copySymbolProperty(source, snapshot, MetaId, (meta) => ({
|
|
3298
|
+
keys: [
|
|
3299
|
+
...meta?.keys ?? []
|
|
3300
|
+
],
|
|
3301
|
+
tags: [
|
|
3302
|
+
...meta?.tags ?? []
|
|
3303
|
+
]
|
|
3304
|
+
}));
|
|
3244
3305
|
copySymbolProperty(source, snapshot, RelationSourceDXNId);
|
|
3245
3306
|
copySymbolProperty(source, snapshot, RelationTargetDXNId);
|
|
3246
3307
|
copySymbolProperty(source, snapshot, RelationSourceId);
|
|
@@ -3381,7 +3442,9 @@ var PersistentSchema = Schema15.Struct({
|
|
|
3381
3442
|
}).pipe(EchoObjectSchema({
|
|
3382
3443
|
typename: "dxos.org/type/Schema",
|
|
3383
3444
|
version: "0.1.0"
|
|
3384
|
-
})
|
|
3445
|
+
}), LabelAnnotation.set([
|
|
3446
|
+
"name"
|
|
3447
|
+
]));
|
|
3385
3448
|
|
|
3386
3449
|
// src/internal/schema/echo-schema.ts
|
|
3387
3450
|
var __dxlog_file19 = "/__w/dxos/dxos/packages/core/echo/echo/src/internal/schema/echo-schema.ts";
|
|
@@ -3393,7 +3456,7 @@ var ImmutableSchema = class {
|
|
|
3393
3456
|
this._objectAnnotation = getTypeAnnotation(this._schema);
|
|
3394
3457
|
invariant19(this._objectAnnotation, void 0, {
|
|
3395
3458
|
F: __dxlog_file19,
|
|
3396
|
-
L:
|
|
3459
|
+
L: 49,
|
|
3397
3460
|
S: this,
|
|
3398
3461
|
A: [
|
|
3399
3462
|
"this._objectAnnotation",
|
|
@@ -3555,7 +3618,7 @@ var EchoSchema = class extends EchoSchemaConstructor() {
|
|
|
3555
3618
|
get mutable() {
|
|
3556
3619
|
invariant19(!this.readonly, "Schema is not mutable", {
|
|
3557
3620
|
F: __dxlog_file19,
|
|
3558
|
-
L:
|
|
3621
|
+
L: 279,
|
|
3559
3622
|
S: this,
|
|
3560
3623
|
A: [
|
|
3561
3624
|
"!this.readonly",
|
|
@@ -3596,7 +3659,7 @@ var EchoSchema = class extends EchoSchemaConstructor() {
|
|
|
3596
3659
|
const ast = this._getSchema().ast;
|
|
3597
3660
|
invariant19(SchemaAST11.isTypeLiteral(ast), void 0, {
|
|
3598
3661
|
F: __dxlog_file19,
|
|
3599
|
-
L:
|
|
3662
|
+
L: 314,
|
|
3600
3663
|
S: this,
|
|
3601
3664
|
A: [
|
|
3602
3665
|
"SchemaAST.isTypeLiteral(ast)",
|
|
@@ -3844,4 +3907,4 @@ export {
|
|
|
3844
3907
|
getValue,
|
|
3845
3908
|
splitJsonPath
|
|
3846
3909
|
};
|
|
3847
|
-
//# sourceMappingURL=chunk-
|
|
3910
|
+
//# sourceMappingURL=chunk-ZUG3PNXU.mjs.map
|