@dxos/echo 0.8.4-staging.ac66bdf99f → 0.9.0
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/LICENSE +102 -5
- package/README.md +7 -7
- package/dist/lib/neutral/Annotation.mjs +37 -6
- package/dist/lib/neutral/Database.mjs +6 -17
- package/dist/lib/neutral/Entity.mjs +31 -20
- package/dist/lib/neutral/Err.mjs +3 -3
- package/dist/lib/neutral/Feed.mjs +23 -19
- package/dist/lib/neutral/Filter.mjs +13 -15
- package/dist/lib/neutral/Format.mjs +23 -3
- package/dist/lib/neutral/JsonSchema.mjs +7 -8
- package/dist/lib/neutral/Key.mjs +9 -5
- package/dist/lib/neutral/Migration.mjs +11 -10
- package/dist/lib/neutral/Obj.mjs +29 -20
- package/dist/lib/neutral/Order.mjs +7 -3
- package/dist/lib/neutral/Query.mjs +17 -17
- package/dist/lib/neutral/QueryResult.mjs +1 -1
- package/dist/lib/neutral/Ref.mjs +10 -9
- package/dist/lib/neutral/Registry.mjs +14 -0
- package/dist/lib/neutral/Relation.mjs +28 -25
- package/dist/lib/neutral/Scope.mjs +12 -0
- package/dist/lib/neutral/Tag.mjs +17 -14
- package/dist/lib/neutral/Type.mjs +54 -26
- package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-35INCYOE.mjs} +1 -1
- package/dist/lib/neutral/chunk-35INCYOE.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3PBP4V4O.mjs +101 -0
- package/dist/lib/neutral/chunk-3PBP4V4O.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4ZUHOTCG.mjs +184 -0
- package/dist/lib/neutral/chunk-4ZUHOTCG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5SMDBFVB.mjs +108 -0
- package/dist/lib/neutral/chunk-5SMDBFVB.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-OS35K56T.mjs → chunk-5SUJPHAE.mjs} +3 -3
- package/dist/lib/neutral/{chunk-OS35K56T.mjs.map → chunk-5SUJPHAE.mjs.map} +2 -2
- package/dist/lib/neutral/{chunk-GZQTCRJB.mjs → chunk-6M2Z6WBH.mjs} +22 -2
- package/dist/lib/neutral/chunk-6M2Z6WBH.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-V36VO5SS.mjs → chunk-6YDI3J37.mjs} +32 -40
- package/dist/lib/neutral/chunk-6YDI3J37.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-MOR5ERFM.mjs → chunk-7FPIAJIV.mjs} +701 -1256
- package/dist/lib/neutral/chunk-7FPIAJIV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7LOUAPYZ.mjs} +9 -5
- package/dist/lib/neutral/chunk-7LOUAPYZ.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JUXPFOEI.mjs → chunk-7PI7C4EF.mjs} +48 -88
- package/dist/lib/neutral/chunk-7PI7C4EF.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-UBEZSGXY.mjs → chunk-BBFJWWAV.mjs} +6 -6
- package/dist/lib/neutral/chunk-BBFJWWAV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-UI6MWK5W.mjs → chunk-EVK6XBXO.mjs} +16 -2
- package/dist/lib/neutral/chunk-EVK6XBXO.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs → chunk-IGK6FN65.mjs} +2 -2
- package/dist/lib/neutral/{chunk-HBUZJNZO.mjs → chunk-LWXVKPPW.mjs} +94 -99
- package/dist/lib/neutral/chunk-LWXVKPPW.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-BVOFLCVF.mjs → chunk-MZ7K3MLL.mjs} +9 -6
- package/dist/lib/neutral/chunk-MZ7K3MLL.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-TBKX6JQO.mjs → chunk-O6BH7EPN.mjs} +30 -3
- package/dist/lib/neutral/chunk-O6BH7EPN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-EAMSSLZC.mjs → chunk-QQIYS74I.mjs} +83 -46
- package/dist/lib/neutral/chunk-QQIYS74I.mjs.map +7 -0
- package/dist/lib/neutral/chunk-R5W6DXR4.mjs +678 -0
- package/dist/lib/neutral/chunk-R5W6DXR4.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-WAK4DMFV.mjs → chunk-RIVWNMSF.mjs} +12 -7
- package/dist/lib/neutral/chunk-RIVWNMSF.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-T6W2LEZU.mjs → chunk-SBVFRTST.mjs} +73 -38
- package/dist/lib/neutral/chunk-SBVFRTST.mjs.map +7 -0
- package/dist/lib/neutral/chunk-T6E37YIP.mjs +251 -0
- package/dist/lib/neutral/chunk-T6E37YIP.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-DQYLD2RB.mjs → chunk-TFEWTY5A.mjs} +155 -129
- package/dist/lib/neutral/chunk-TFEWTY5A.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-B4BASU6W.mjs → chunk-TYGKCRMK.mjs} +85 -76
- package/dist/lib/neutral/chunk-TYGKCRMK.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-4OIBYSXE.mjs → chunk-UUP46KUQ.mjs} +78 -32
- package/dist/lib/neutral/chunk-UUP46KUQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WISOH2XH.mjs +36 -0
- package/dist/lib/neutral/chunk-WISOH2XH.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-G3IQMKF7.mjs → chunk-WTQJHC75.mjs} +111 -112
- package/dist/lib/neutral/chunk-WTQJHC75.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WU3GIANS.mjs +31 -0
- package/dist/lib/neutral/chunk-WU3GIANS.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-TU3GW67D.mjs → chunk-ZGNNFYHS.mjs} +40 -40
- package/dist/lib/neutral/chunk-ZGNNFYHS.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +47 -41
- package/dist/lib/neutral/internal/index.mjs +137 -72
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/testing/index.mjs +261 -178
- package/dist/lib/neutral/testing/index.mjs.map +4 -4
- package/dist/types/src/Annotation.d.ts +108 -4
- package/dist/types/src/Annotation.d.ts.map +1 -1
- package/dist/types/src/Annotation.test.d.ts +2 -0
- package/dist/types/src/Annotation.test.d.ts.map +1 -0
- package/dist/types/src/Collection.d.ts +2 -3
- package/dist/types/src/Collection.d.ts.map +1 -1
- package/dist/types/src/Database.d.ts +56 -49
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Dataset.d.ts +16 -6
- package/dist/types/src/Dataset.d.ts.map +1 -1
- package/dist/types/src/Entity.d.ts +101 -28
- package/dist/types/src/Entity.d.ts.map +1 -1
- package/dist/types/src/Err.d.ts +27 -27
- package/dist/types/src/Err.d.ts.map +1 -1
- package/dist/types/src/Feed.d.ts +66 -19
- package/dist/types/src/Feed.d.ts.map +1 -1
- package/dist/types/src/Filter.d.ts +38 -12
- package/dist/types/src/Filter.d.ts.map +1 -1
- package/dist/types/src/Format.d.ts +0 -2
- package/dist/types/src/Format.d.ts.map +1 -1
- package/dist/types/src/Hypergraph.d.ts +14 -9
- package/dist/types/src/Hypergraph.d.ts.map +1 -1
- package/dist/types/src/Json.d.ts +33 -0
- package/dist/types/src/Json.d.ts.map +1 -0
- package/dist/types/src/Json.test.d.ts +2 -0
- package/dist/types/src/Json.test.d.ts.map +1 -0
- package/dist/types/src/JsonSchema.d.ts +2 -2
- package/dist/types/src/JsonSchema.d.ts.map +1 -1
- package/dist/types/src/Key.d.ts +1 -1
- package/dist/types/src/Key.d.ts.map +1 -1
- package/dist/types/src/Migration.d.ts +26 -11
- package/dist/types/src/Migration.d.ts.map +1 -1
- package/dist/types/src/Obj.d.ts +104 -61
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Order.d.ts +10 -0
- package/dist/types/src/Order.d.ts.map +1 -1
- package/dist/types/src/Query.d.ts +34 -12
- package/dist/types/src/Query.d.ts.map +1 -1
- package/dist/types/src/QueryResult.d.ts +21 -0
- package/dist/types/src/QueryResult.d.ts.map +1 -1
- package/dist/types/src/Ref.d.ts +15 -7
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Registry.d.ts +131 -0
- package/dist/types/src/Registry.d.ts.map +1 -0
- package/dist/types/src/Relation.d.ts +73 -41
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/Scope.d.ts +35 -0
- package/dist/types/src/Scope.d.ts.map +1 -0
- package/dist/types/src/Tag.d.ts +21 -5
- package/dist/types/src/Tag.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts +362 -95
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/View.d.ts +9 -12
- package/dist/types/src/View.d.ts.map +1 -1
- package/dist/types/src/exemplars.test.d.ts +2 -0
- package/dist/types/src/exemplars.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +4 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/annotations.d.ts +79 -38
- package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/dictionary.d.ts +24 -0
- package/dist/types/src/internal/Annotation/dictionary.d.ts.map +1 -0
- package/dist/types/src/internal/Annotation/entity-dictionary.d.ts +14 -0
- package/dist/types/src/internal/Annotation/entity-dictionary.d.ts.map +1 -0
- package/dist/types/src/internal/Annotation/index.d.ts +4 -2
- package/dist/types/src/internal/Annotation/index.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/util.d.ts +14 -5
- package/dist/types/src/internal/Annotation/util.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/api.d.ts +17 -3
- package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/entity.d.ts +72 -8
- package/dist/types/src/internal/Entity/entity.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/guard.d.ts +10 -0
- package/dist/types/src/internal/Entity/guard.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/index.d.ts +2 -0
- package/dist/types/src/internal/Entity/index.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/model.d.ts +21 -17
- package/dist/types/src/internal/Entity/model.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/object.d.ts +3 -3
- package/dist/types/src/internal/Entity/object.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/relation.d.ts +30 -7
- package/dist/types/src/internal/Entity/relation.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/type-kind.d.ts +24 -0
- package/dist/types/src/internal/Entity/type-kind.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/type-uri.d.ts +24 -0
- package/dist/types/src/internal/Entity/type-uri.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/version.d.ts.map +1 -1
- package/dist/types/src/internal/Format/date.d.ts.map +1 -1
- package/dist/types/src/internal/Format/format.d.ts +3 -2
- package/dist/types/src/internal/Format/format.d.ts.map +1 -1
- package/dist/types/src/internal/Format/index.d.ts +2 -2
- package/dist/types/src/internal/Format/index.d.ts.map +1 -1
- package/dist/types/src/internal/Format/number.d.ts.map +1 -1
- package/dist/types/src/internal/Format/object.d.ts +3 -1
- package/dist/types/src/internal/Format/object.d.ts.map +1 -1
- package/dist/types/src/internal/Format/types.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +34 -34
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts +3 -2
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/atoms.d.ts +38 -0
- package/dist/types/src/internal/Obj/atoms.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/clone.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/common.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/create-object.d.ts +12 -12
- package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/index.d.ts +1 -1
- package/dist/types/src/internal/Obj/index.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/json-serializer.d.ts +8 -8
- package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/set-value.d.ts +1 -1
- package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/typed-object.d.ts +1 -1
- 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.d.ts → Query/pretty.d.ts} +1 -1
- package/dist/types/src/internal/Query/pretty.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/atoms.d.ts +10 -0
- package/dist/types/src/internal/Ref/atoms.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref-array.d.ts +2 -2
- package/dist/types/src/internal/Ref/ref.d.ts +50 -19
- package/dist/types/src/internal/Ref/ref.d.ts.map +1 -1
- package/dist/types/src/internal/Ref/utils.d.ts +8 -0
- package/dist/types/src/internal/Ref/utils.d.ts.map +1 -0
- package/dist/types/src/internal/Type/compose.d.ts.map +1 -1
- package/dist/types/src/internal/Type/index.d.ts +1 -2
- package/dist/types/src/internal/Type/index.d.ts.map +1 -1
- package/dist/types/src/internal/Type/manipulation.d.ts +0 -1
- package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -1
- package/dist/types/src/internal/Type/type-schema.d.ts +52 -0
- package/dist/types/src/internal/Type/type-schema.d.ts.map +1 -0
- package/dist/types/src/internal/common/api/meta.d.ts +14 -11
- package/dist/types/src/internal/common/api/meta.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/change-context.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/errors.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/make-object.d.ts +11 -5
- package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/reactive-array.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
- package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts +18 -2
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/base.d.ts +4 -4
- package/dist/types/src/internal/common/types/base.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/entity.d.ts +62 -5
- package/dist/types/src/internal/common/types/entity.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/index.d.ts +1 -1
- package/dist/types/src/internal/common/types/index.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/meta.d.ts +33 -12
- package/dist/types/src/internal/common/types/meta.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/model-symbols.d.ts +15 -4
- package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/typename.d.ts +7 -0
- package/dist/types/src/internal/common/types/typename.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/version.d.ts +1 -1
- package/dist/types/src/internal/common/types/well-known-types.d.ts +11 -0
- package/dist/types/src/internal/common/types/well-known-types.d.ts.map +1 -0
- package/dist/types/src/internal/index.d.ts +2 -2
- package/dist/types/src/internal/index.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/registry.d.ts +9 -0
- package/dist/types/src/testing/registry.d.ts.map +1 -0
- package/dist/types/src/testing/test-data.d.ts +8 -8
- package/dist/types/src/testing/test-data.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +83 -89
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts +5 -3
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +26 -24
- package/src/Annotation.test.ts +439 -0
- package/src/Annotation.ts +158 -4
- package/src/Collection.ts +5 -9
- package/src/Database.ts +93 -100
- package/src/Dataset.ts +10 -2
- package/src/Entity.test.ts +116 -6
- package/src/Entity.ts +134 -32
- package/src/Err.ts +4 -4
- package/src/Feed.ts +92 -44
- package/src/Filter.ts +70 -40
- package/src/Format.ts +0 -4
- package/src/Hypergraph.ts +14 -9
- package/src/Json.test.ts +175 -0
- package/src/Json.ts +103 -0
- package/src/Key.ts +1 -1
- package/src/Migration.ts +39 -19
- package/src/Obj.test.ts +122 -20
- package/src/Obj.ts +168 -91
- package/src/Order.ts +22 -0
- package/src/Query.test.ts +183 -154
- package/src/Query.ts +172 -85
- package/src/QueryResult.ts +26 -0
- package/src/Ref.ts +22 -4
- package/src/Registry.ts +155 -0
- package/src/Relation.test.ts +10 -10
- package/src/Relation.ts +116 -69
- package/src/Scope.ts +50 -0
- package/src/Tag.md +88 -0
- package/src/Tag.ts +49 -6
- package/src/Type.test.ts +223 -18
- package/src/Type.ts +609 -131
- package/src/View.ts +14 -23
- package/src/exemplars.test.ts +21 -0
- package/src/index.ts +4 -4
- package/src/internal/Annotation/annotations.test.ts +31 -11
- package/src/internal/Annotation/annotations.ts +143 -111
- package/src/internal/Annotation/dictionary.ts +47 -0
- package/src/internal/Annotation/entity-dictionary.ts +74 -0
- package/src/internal/Annotation/index.ts +4 -2
- package/src/internal/Annotation/util.ts +17 -8
- package/src/internal/Entity/api.ts +54 -7
- package/src/internal/Entity/entity.ts +196 -47
- package/src/internal/Entity/guard.ts +26 -0
- package/src/internal/Entity/index.ts +2 -0
- package/src/internal/Entity/model.ts +38 -28
- package/src/internal/Entity/object.ts +21 -5
- package/src/internal/Entity/relation.ts +68 -34
- package/src/internal/Entity/type-kind.ts +75 -0
- package/src/internal/Entity/type-uri.ts +92 -0
- package/src/internal/Entity/util.ts +9 -9
- package/src/internal/Format/date.ts +0 -4
- package/src/internal/Format/format.test.ts +21 -0
- package/src/internal/Format/index.ts +2 -3
- package/src/internal/Format/object.ts +21 -4
- package/src/internal/Format/types.ts +1 -1
- package/src/internal/JsonSchema/annotations.ts +1 -1
- package/src/internal/JsonSchema/json-schema-type.ts +4 -4
- package/src/internal/JsonSchema/json-schema.test.ts +71 -145
- package/src/internal/JsonSchema/json-schema.ts +49 -35
- package/src/internal/Obj/atoms.ts +244 -0
- package/src/internal/Obj/clone.ts +9 -4
- package/src/internal/Obj/create-object.test.ts +12 -10
- package/src/internal/Obj/create-object.ts +68 -22
- package/src/internal/Obj/index.ts +1 -1
- package/src/internal/Obj/inspect.ts +5 -3
- package/src/internal/Obj/json-serializer.test.ts +101 -22
- package/src/internal/Obj/json-serializer.ts +89 -33
- package/src/internal/Obj/set-value.test.ts +22 -45
- package/src/internal/Obj/set-value.ts +12 -19
- package/src/internal/Obj/snapshot.ts +13 -4
- package/src/internal/Obj/typed-object.test.ts +9 -11
- package/src/internal/Obj/typed-object.ts +1 -1
- package/src/internal/Query/index.ts +5 -0
- package/src/internal/{Query.ts → Query/pretty.ts} +40 -12
- package/src/internal/Ref/atoms.ts +20 -0
- package/src/internal/Ref/ref-array.ts +3 -3
- package/src/internal/Ref/ref.test.ts +18 -27
- package/src/internal/Ref/ref.ts +137 -59
- package/src/internal/Ref/utils.ts +45 -0
- package/src/internal/Type/compose.test.ts +3 -1
- package/src/internal/Type/index.ts +1 -2
- package/src/internal/Type/manipulation.ts +0 -25
- package/src/internal/Type/type-schema.ts +60 -0
- package/src/internal/common/README.md +2 -2
- package/src/internal/common/api/meta.ts +19 -17
- package/src/internal/common/proxy/change-context.ts +1 -1
- package/src/internal/common/proxy/change.test.ts +91 -83
- package/src/internal/common/proxy/errors.ts +2 -2
- package/src/internal/common/proxy/handler.test.ts +1 -1
- package/src/internal/common/proxy/json-serializer.ts +27 -16
- package/src/internal/common/proxy/make-object.ts +44 -20
- package/src/internal/common/proxy/ownership.ts +2 -2
- package/src/internal/common/proxy/reactive-array.ts +1 -1
- package/src/internal/common/proxy/reactive.test.ts +54 -0
- package/src/internal/common/proxy/reactive.ts +11 -2
- package/src/internal/common/proxy/schema.test.ts +48 -86
- package/src/internal/common/proxy/typed-handler.test.ts +12 -11
- package/src/internal/common/proxy/typed-handler.ts +78 -16
- package/src/internal/common/proxy/typed-object.test.ts +16 -28
- package/src/internal/common/types/base.ts +4 -4
- package/src/internal/common/types/entity.ts +80 -1
- package/src/internal/common/types/index.ts +6 -1
- package/src/internal/common/types/meta.ts +62 -20
- package/src/internal/common/types/model-symbols.ts +24 -4
- package/src/internal/common/types/typename.ts +39 -3
- package/src/internal/common/types/well-known-types.ts +15 -0
- package/src/internal/index.ts +6 -4
- package/src/testing/api.test.ts +15 -9
- package/src/testing/index.ts +1 -0
- package/src/testing/registry.ts +44 -0
- package/src/testing/test-data.ts +159 -99
- package/src/testing/test-schema.ts +22 -58
- package/src/testing/util.ts +14 -11
- package/dist/lib/neutral/Extension.mjs +0 -18
- package/dist/lib/neutral/SchemaRegistry.mjs +0 -2
- package/dist/lib/neutral/chunk-2KHZ36F5.mjs +0 -361
- package/dist/lib/neutral/chunk-2KHZ36F5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4OIBYSXE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4P3IXBLT.mjs +0 -45
- package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-B4BASU6W.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BNCCGLJN.mjs +0 -7
- package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BVOFLCVF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-DQYLD2RB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-EAMSSLZC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-G3IQMKF7.mjs.map +0 -7
- package/dist/lib/neutral/chunk-GZQTCRJB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HBUZJNZO.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JUXPFOEI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-MOR5ERFM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-PHU22NLC.mjs +0 -136
- package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ROG4RXXL.mjs +0 -97
- package/dist/lib/neutral/chunk-ROG4RXXL.mjs.map +0 -7
- package/dist/lib/neutral/chunk-T6W2LEZU.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TBKX6JQO.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TU3GW67D.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +0 -7
- package/dist/lib/neutral/chunk-V36VO5SS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WAK4DMFV.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YAHXAYOW.mjs +0 -56
- package/dist/lib/neutral/chunk-YAHXAYOW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +0 -50
- package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +0 -7
- package/dist/types/src/Extension.d.ts +0 -80
- package/dist/types/src/Extension.d.ts.map +0 -1
- package/dist/types/src/Extension.test.d.ts +0 -2
- package/dist/types/src/Extension.test.d.ts.map +0 -1
- package/dist/types/src/SchemaRegistry.d.ts +0 -84
- package/dist/types/src/SchemaRegistry.d.ts.map +0 -1
- package/dist/types/src/internal/Obj/ids.d.ts +0 -6
- package/dist/types/src/internal/Obj/ids.d.ts.map +0 -1
- package/dist/types/src/internal/Query.d.ts.map +0 -1
- package/dist/types/src/internal/Type/echo-schema.d.ts +0 -181
- package/dist/types/src/internal/Type/echo-schema.d.ts.map +0 -1
- package/dist/types/src/internal/Type/persistent-schema.d.ts +0 -20
- package/dist/types/src/internal/Type/persistent-schema.d.ts.map +0 -1
- package/src/Extension.test.ts +0 -235
- package/src/Extension.ts +0 -122
- package/src/SchemaRegistry.ts +0 -106
- package/src/internal/Obj/ids.ts +0 -12
- package/src/internal/Type/echo-schema.ts +0 -423
- package/src/internal/Type/persistent-schema.ts +0 -33
- /package/dist/lib/neutral/{Extension.mjs.map → Registry.mjs.map} +0 -0
- /package/dist/lib/neutral/{SchemaRegistry.mjs.map → Scope.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-7RO7CPBZ.mjs.map → chunk-IGK6FN65.mjs.map} +0 -0
package/dist/types/src/Obj.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
2
|
import * as Option from 'effect/Option';
|
|
3
|
-
import * as Schema from 'effect/Schema';
|
|
4
3
|
import type { ForeignKey } from '@dxos/echo-protocol';
|
|
5
|
-
import { type
|
|
4
|
+
import { EntityId, type URI } from '@dxos/keys';
|
|
6
5
|
import type * as Database from './Database';
|
|
7
6
|
import * as Entity from './Entity';
|
|
8
7
|
import * as Err from './Err';
|
|
9
8
|
import * as internal from './internal';
|
|
10
9
|
import * as Ref from './Ref';
|
|
11
|
-
import type * as
|
|
10
|
+
import type * as Tag from './Tag';
|
|
11
|
+
import * as Type from './Type';
|
|
12
12
|
/**
|
|
13
13
|
* Base type for all ECHO objects.
|
|
14
14
|
*/
|
|
@@ -46,10 +46,10 @@ export interface Unknown extends BaseObj {
|
|
|
46
46
|
* // Reference to any object type
|
|
47
47
|
* const Collection = Schema.Struct({
|
|
48
48
|
* objects: Schema.Array(Ref.Ref(Obj.Unknown)),
|
|
49
|
-
* }).pipe(Type.
|
|
49
|
+
* }).pipe(Type.makeObject(DXN.make('com.example.type.collection', '0.1.0')));
|
|
50
50
|
* ```
|
|
51
51
|
*/
|
|
52
|
-
export declare const Unknown:
|
|
52
|
+
export declare const Unknown: internal.UnknownTypeSchema<Unknown, typeof Entity.Kind.Object>;
|
|
53
53
|
/**
|
|
54
54
|
* Object with arbitrary properties.
|
|
55
55
|
*
|
|
@@ -65,7 +65,7 @@ export interface Any extends BaseObj, internal.AnyProperties {
|
|
|
65
65
|
*/
|
|
66
66
|
interface BaseSnapshot extends internal.AnyEntity {
|
|
67
67
|
readonly [Entity.SnapshotKindId]: typeof Entity.Kind.Object;
|
|
68
|
-
readonly id:
|
|
68
|
+
readonly id: EntityId;
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
71
|
* Immutable snapshot of an ECHO object.
|
|
@@ -83,21 +83,26 @@ export type Snapshot<T extends Unknown = Unknown> = Omit<T, Entity.KindId> & Bas
|
|
|
83
83
|
export interface BaseObjJson {
|
|
84
84
|
id: string;
|
|
85
85
|
}
|
|
86
|
-
type MakePropsInternal<T extends Unknown> = {
|
|
87
|
-
id?: ObjectId;
|
|
88
|
-
} & Entity.Properties<T>;
|
|
89
86
|
/**
|
|
90
|
-
* Props type for object creation with a given
|
|
87
|
+
* Props type for object creation with a given type. Accepts a `Type.AnyObj`
|
|
88
|
+
* entity and derives the instance shape via `Type.InstanceType`. Relation-kind
|
|
89
|
+
* entities are rejected at the type level — use `Relation.MakeProps` for those.
|
|
90
|
+
*
|
|
91
|
+
* When the schema is the unconstrained `Type.AnyObj` (`Obj<unknown>` — e.g. a
|
|
92
|
+
* dynamic type from `schemaRegistry.register`), the instance shape is not
|
|
93
|
+
* statically known, so data props widen to `Record<string, unknown>` and the
|
|
94
|
+
* caller can pass arbitrary fields without a cast.
|
|
91
95
|
*/
|
|
92
|
-
export type MakeProps<S extends
|
|
93
|
-
id?:
|
|
96
|
+
export type MakeProps<S extends Type.AnyObj> = {
|
|
97
|
+
id?: EntityId;
|
|
94
98
|
[Parent]?: Unknown;
|
|
95
|
-
} &
|
|
99
|
+
} & ([keyof Entity.Properties<Type.InstanceType<S>>] extends [never] ? Record<string, unknown> : Entity.Properties<Type.InstanceType<S>>);
|
|
96
100
|
/**
|
|
97
|
-
* Creates a new echo object of the given schema.
|
|
98
|
-
*
|
|
101
|
+
* Creates a new echo object of the given schema or `Type.Type`.
|
|
102
|
+
*
|
|
103
|
+
* @param typeOrSchema - A static object schema (`Type.makeObject(...)`) or a
|
|
104
|
+
* `Type.Type` entity (e.g. one returned by `db.addType(schemaEntity)`).
|
|
99
105
|
* @param props - Object properties.
|
|
100
|
-
* @param meta - Object metadata (deprecated) -- pass with Obj.Meta.
|
|
101
106
|
*
|
|
102
107
|
* Meta can be passed as a symbol in `props`.
|
|
103
108
|
*
|
|
@@ -106,9 +111,10 @@ export type MakeProps<S extends Schema.Schema.AnyNoContext> = {
|
|
|
106
111
|
* const obj = Obj.make(Person, { [Obj.Meta]: { keys: [...] }, name: 'John' });
|
|
107
112
|
* ```
|
|
108
113
|
*
|
|
109
|
-
* Note: Only accepts object schemas, not relation schemas.
|
|
114
|
+
* Note: Only accepts object schemas / object-kind types, not relation schemas.
|
|
115
|
+
* Use `Relation.make` for relations.
|
|
110
116
|
*/
|
|
111
|
-
export declare
|
|
117
|
+
export declare function make<T extends Type.AnyObj>(type: T, props: NoInfer<MakeProps<T>>): OfShape<Type.InstanceType<T>>;
|
|
112
118
|
/**
|
|
113
119
|
* Determine if object is an ECHO object.
|
|
114
120
|
*/
|
|
@@ -182,40 +188,40 @@ export type CloneOptions = {
|
|
|
182
188
|
export declare const clone: <T extends Unknown>(obj: T, opts?: CloneOptions) => T;
|
|
183
189
|
/**
|
|
184
190
|
* Makes all properties mutable recursively.
|
|
185
|
-
* Used to provide a mutable view of an object within `Obj.
|
|
191
|
+
* Used to provide a mutable view of an object within `Obj.update`.
|
|
186
192
|
*/
|
|
187
193
|
export type Mutable<T> = internal.Mutable<T>;
|
|
188
194
|
/**
|
|
189
195
|
* Perform mutations on an echo object within a controlled context.
|
|
190
196
|
*
|
|
191
197
|
* All mutations within the callback are batched and trigger a single notification
|
|
192
|
-
* when the callback completes. Direct mutations outside of `Obj.
|
|
198
|
+
* when the callback completes. Direct mutations outside of `Obj.update` will throw
|
|
193
199
|
* an error for echo objects.
|
|
194
200
|
*
|
|
195
201
|
* This function also works with nested objects within echo objects (e.g., Template structs)
|
|
196
202
|
* that are reactive at runtime.
|
|
197
203
|
*
|
|
198
|
-
* @param obj - The echo object to mutate. Use `Relation.
|
|
204
|
+
* @param obj - The echo object to mutate. Use `Relation.update` for relations.
|
|
199
205
|
* @param callback - The callback that performs mutations on the object.
|
|
200
206
|
*
|
|
201
207
|
* @example
|
|
202
208
|
* ```ts
|
|
203
209
|
* const person = Obj.make(Person, { name: 'John', age: 25 });
|
|
204
210
|
*
|
|
205
|
-
* // Mutate within Obj.
|
|
206
|
-
* Obj.
|
|
211
|
+
* // Mutate within Obj.update
|
|
212
|
+
* Obj.update(person, (obj) => {
|
|
207
213
|
* obj.name = 'Jane';
|
|
208
214
|
* obj.age = 30;
|
|
209
215
|
* });
|
|
210
216
|
* // ONE notification fires here
|
|
211
217
|
*
|
|
212
218
|
* // Direct mutation throws
|
|
213
|
-
* person.name = 'Bob'; // Error: Cannot modify outside Obj.
|
|
219
|
+
* person.name = 'Bob'; // Error: Cannot modify outside Obj.update()
|
|
214
220
|
* ```
|
|
215
221
|
*
|
|
216
|
-
* Note: Only accepts objects. Use `Relation.
|
|
222
|
+
* Note: Only accepts objects. Use `Relation.update` for relations.
|
|
217
223
|
*/
|
|
218
|
-
export declare const
|
|
224
|
+
export declare const update: <T extends Unknown>(obj: T, callback: internal.ChangeCallback<T>) => void;
|
|
219
225
|
/**
|
|
220
226
|
* Get a deeply nested property from an object.
|
|
221
227
|
*
|
|
@@ -244,7 +250,7 @@ export declare const getValue: (obj: Unknown | Snapshot, path: readonly (string
|
|
|
244
250
|
* whether to initialize nested data as an empty object or array.
|
|
245
251
|
*
|
|
246
252
|
* Similar to lodash.set and setDeep from @dxos/util, but schema-aware.
|
|
247
|
-
* Must be called within an `Obj.
|
|
253
|
+
* Must be called within an `Obj.update` callback.
|
|
248
254
|
*
|
|
249
255
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
250
256
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -258,17 +264,18 @@ export declare const getValue: (obj: Unknown | Snapshot, path: readonly (string
|
|
|
258
264
|
* ```ts
|
|
259
265
|
* const person = Obj.make(Person, { name: 'John' });
|
|
260
266
|
* // Person schema has: addresses: Schema.Array(Address)
|
|
261
|
-
* Obj.
|
|
267
|
+
* Obj.update(person, (obj) => {
|
|
262
268
|
* Obj.setValue(obj, ['addresses', 0, 'street'], '123 Main St');
|
|
263
269
|
* });
|
|
264
270
|
* // Creates: person.addresses = [{ street: '123 Main St' }]
|
|
265
271
|
* ```
|
|
266
272
|
*/
|
|
267
273
|
export declare const setValue: (obj: Mutable<Unknown>, path: readonly (string | number)[], value: any) => void;
|
|
268
|
-
export declare const ID: import("@dxos/keys").
|
|
269
|
-
export type ID =
|
|
274
|
+
export declare const ID: import("@dxos/keys").EntityIdClass;
|
|
275
|
+
export type ID = EntityId;
|
|
270
276
|
/**
|
|
271
|
-
* Test if object
|
|
277
|
+
* Test if an object is an instance of a given object type.
|
|
278
|
+
*
|
|
272
279
|
* @example
|
|
273
280
|
* ```ts
|
|
274
281
|
* const john = Obj.make(Person, { name: 'John' });
|
|
@@ -277,10 +284,15 @@ export type ID = ObjectId;
|
|
|
277
284
|
* // john is Person
|
|
278
285
|
* }
|
|
279
286
|
* ```
|
|
287
|
+
*
|
|
288
|
+
* Only accepts `Type.AnyObj` — use `Relation.instanceOf` for relations and
|
|
289
|
+
* `Type.isType(value)` to test for `Type.Type` meta-schema entities.
|
|
280
290
|
*/
|
|
281
291
|
export declare const instanceOf: {
|
|
282
|
-
<
|
|
283
|
-
<
|
|
292
|
+
<T extends Type.Type>(type: T, _hint?: never, ..._error: ['ERROR: Obj.instanceOf does not accept Type.Type; use Type.isType(value) instead']): never;
|
|
293
|
+
<R extends Type.AnyRelation>(type: R, _hint?: never, ..._error: ['ERROR: Obj.instanceOf does not accept relation types; use Relation.instanceOf instead']): never;
|
|
294
|
+
<S extends Type.AnyObj>(schema: S): (value: unknown) => value is Type.InstanceType<S>;
|
|
295
|
+
<S extends Type.AnyObj>(schema: S, value: unknown): value is Type.InstanceType<S>;
|
|
284
296
|
};
|
|
285
297
|
/**
|
|
286
298
|
* Test if a snapshot is an instance of a schema.
|
|
@@ -296,25 +308,32 @@ export declare const instanceOf: {
|
|
|
296
308
|
* ```
|
|
297
309
|
*/
|
|
298
310
|
export declare const snapshotOf: {
|
|
299
|
-
<S extends Type.
|
|
300
|
-
<S extends Type.
|
|
311
|
+
<S extends Type.AnyObj>(schema: S): (value: unknown) => value is Snapshot<Type.InstanceType<S>>;
|
|
312
|
+
<S extends Type.AnyObj>(schema: S, value: unknown): value is Snapshot<Type.InstanceType<S>>;
|
|
301
313
|
};
|
|
314
|
+
export type { GetURIOptions } from './internal';
|
|
302
315
|
/**
|
|
303
|
-
* Get the
|
|
316
|
+
* Get the URI of the object.
|
|
304
317
|
* Accepts both reactive objects and snapshots.
|
|
318
|
+
*
|
|
319
|
+
* @param options.prefer - Controls the URI form (see {@link GetURIOptions}).
|
|
305
320
|
*/
|
|
306
|
-
export declare const
|
|
321
|
+
export declare const getURI: (entity: Unknown | Snapshot, options?: internal.GetURIOptions) => URI.URI;
|
|
307
322
|
/**
|
|
308
323
|
* @returns The DXN of the object's type.
|
|
309
324
|
* @example dxn:com.example.type.person:1.0.0
|
|
310
325
|
* @throws If the object is missing its type (corrupted object).
|
|
311
326
|
*/
|
|
312
|
-
export declare const
|
|
327
|
+
export declare const getTypeURI: (obj: Unknown | Snapshot) => URI.URI;
|
|
313
328
|
/**
|
|
314
|
-
* Get the
|
|
315
|
-
*
|
|
329
|
+
* Get the type entity (`Type.AnyObj`) the object was created from.
|
|
330
|
+
*
|
|
331
|
+
* Returns `undefined` when the object's type isn't registered in this runtime
|
|
332
|
+
* (e.g. a freshly deserialized snapshot whose type entity hasn't been wired
|
|
333
|
+
* up yet, or an object loaded from storage before its schema is known). To
|
|
334
|
+
* get the Effect Schema from the returned entity, use `Type.getSchema(...)`.
|
|
316
335
|
*/
|
|
317
|
-
export declare const
|
|
336
|
+
export declare const getType: (obj: Unknown | Snapshot) => Type.AnyObj | undefined;
|
|
318
337
|
/**
|
|
319
338
|
* @returns The typename of the object's type.
|
|
320
339
|
* Accepts both reactive objects and snapshots.
|
|
@@ -324,6 +343,11 @@ export declare const getTypename: (entity: Unknown | Snapshot) => string | undef
|
|
|
324
343
|
/**
|
|
325
344
|
* Get the database the object belongs to.
|
|
326
345
|
* Accepts both reactive objects and snapshots.
|
|
346
|
+
*
|
|
347
|
+
* @idiom org.dxos.echo.objGetDatabase
|
|
348
|
+
* applies: Reaching an object's database — to query, add, or remove — when the surrounding Space is not otherwise needed
|
|
349
|
+
* instead-of: `getSpace(obj)?.db` (resolving the whole Space just to read its `.db`)
|
|
350
|
+
* uses: {@link getDatabase}
|
|
327
351
|
*/
|
|
328
352
|
export declare const getDatabase: (entity: Entity.Unknown | Entity.Snapshot) => Database.Database | undefined;
|
|
329
353
|
/**
|
|
@@ -333,17 +357,17 @@ export declare const getDatabase: (entity: Entity.Unknown | Entity.Snapshot) =>
|
|
|
333
357
|
*/
|
|
334
358
|
export declare const Meta: symbol;
|
|
335
359
|
/**
|
|
336
|
-
* Deeply read-only version of
|
|
360
|
+
* Deeply read-only version of EntityMeta.
|
|
337
361
|
* Prevents mutation at all nesting levels (e.g., `meta.keys.push()` is a TypeScript error).
|
|
338
362
|
*/
|
|
339
363
|
export type ReadonlyMeta = internal.ReadonlyMeta;
|
|
340
364
|
/**
|
|
341
|
-
* Mutable meta type returned by `Obj.getMeta` inside an `Obj.
|
|
365
|
+
* Mutable meta type returned by `Obj.getMeta` inside an `Obj.update` callback.
|
|
342
366
|
*/
|
|
343
367
|
export type Meta = internal.Meta;
|
|
344
368
|
/**
|
|
345
369
|
* Get the metadata for an object.
|
|
346
|
-
* Returns mutable meta when passed a mutable object (inside `Obj.
|
|
370
|
+
* Returns mutable meta when passed a mutable object (inside `Obj.update` callback).
|
|
347
371
|
* Returns read-only meta when passed a regular object or snapshot.
|
|
348
372
|
*
|
|
349
373
|
* @example
|
|
@@ -352,10 +376,9 @@ export type Meta = internal.Meta;
|
|
|
352
376
|
* const meta = Obj.getMeta(person); // ReadonlyMeta
|
|
353
377
|
*
|
|
354
378
|
* // Mutable access inside change callback
|
|
355
|
-
* Obj.
|
|
356
|
-
* const meta = Obj.getMeta(obj); //
|
|
357
|
-
* meta.tags
|
|
358
|
-
* meta.tags.push('important');
|
|
379
|
+
* Obj.update(person, (obj) => {
|
|
380
|
+
* const meta = Obj.getMeta(obj); // EntityMeta (mutable)
|
|
381
|
+
* meta.tags.push(Ref.make(tag)); // tags are refs to Tag objects
|
|
359
382
|
* });
|
|
360
383
|
* ```
|
|
361
384
|
*/
|
|
@@ -371,7 +394,7 @@ export declare const getKeys: {
|
|
|
371
394
|
};
|
|
372
395
|
/**
|
|
373
396
|
* Delete all keys from the object for the specified source.
|
|
374
|
-
* Must be called within an `Obj.
|
|
397
|
+
* Must be called within an `Obj.update` callback.
|
|
375
398
|
*
|
|
376
399
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
377
400
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -379,20 +402,20 @@ export declare const getKeys: {
|
|
|
379
402
|
export declare const deleteKeys: (entity: Mutable<Unknown>, source: string) => void;
|
|
380
403
|
/**
|
|
381
404
|
* Add a tag to the object.
|
|
382
|
-
* Must be called within an `Obj.
|
|
405
|
+
* Must be called within an `Obj.update` callback.
|
|
383
406
|
*
|
|
384
407
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
385
408
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
386
409
|
*/
|
|
387
|
-
export declare const addTag: (entity: Mutable<Unknown>, tag:
|
|
410
|
+
export declare const addTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
|
|
388
411
|
/**
|
|
389
412
|
* Remove a tag from the object.
|
|
390
|
-
* Must be called within an `Obj.
|
|
413
|
+
* Must be called within an `Obj.update` callback.
|
|
391
414
|
*
|
|
392
415
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
393
416
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
394
417
|
*/
|
|
395
|
-
export declare const removeTag: (entity: Mutable<Unknown>, tag:
|
|
418
|
+
export declare const removeTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
|
|
396
419
|
/**
|
|
397
420
|
* Check if the object is deleted.
|
|
398
421
|
* Accepts both reactive objects and snapshots.
|
|
@@ -401,11 +424,14 @@ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
|
|
|
401
424
|
/**
|
|
402
425
|
* Get the label of the object.
|
|
403
426
|
* Accepts both reactive objects and snapshots.
|
|
427
|
+
*
|
|
428
|
+
* @param options.fallback `'typename'` returns the object's typename when no
|
|
429
|
+
* label is set (e.g. `org.dxos.type.table`).
|
|
404
430
|
*/
|
|
405
|
-
export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
|
|
431
|
+
export declare const getLabel: (entity: Unknown | Snapshot, options?: internal.GetLabelOptions) => string | undefined;
|
|
406
432
|
/**
|
|
407
433
|
* Set the label of the object.
|
|
408
|
-
* Must be called within an `Obj.
|
|
434
|
+
* Must be called within an `Obj.update` callback.
|
|
409
435
|
*
|
|
410
436
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
411
437
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -416,9 +442,18 @@ export declare const setLabel: (entity: Mutable<Unknown>, label: string) => void
|
|
|
416
442
|
* Accepts both reactive objects and snapshots.
|
|
417
443
|
*/
|
|
418
444
|
export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
|
|
445
|
+
/**
|
|
446
|
+
* Get the icon annotation for the object (or any entity), resolved via its type-level
|
|
447
|
+
* `IconAnnotation`. Accepts both reactive entities and snapshots, and either Objects or
|
|
448
|
+
* Relations — the underlying schema-based lookup works for both.
|
|
449
|
+
*
|
|
450
|
+
* Returns the full `{ icon, hue }` annotation; callers wanting just the icon name typically
|
|
451
|
+
* write `Obj.getIcon(obj)?.icon ?? 'ph--cube--regular'`.
|
|
452
|
+
*/
|
|
453
|
+
export declare const getIcon: (entity: Entity.Unknown | Entity.Snapshot) => internal.IconAnnotation | undefined;
|
|
419
454
|
/**
|
|
420
455
|
* Set the description of the object.
|
|
421
|
-
* Must be called within an `Obj.
|
|
456
|
+
* Must be called within an `Obj.update` callback.
|
|
422
457
|
*
|
|
423
458
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
424
459
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -447,7 +482,7 @@ export declare const getParent: (entity: Unknown | Snapshot) => Unknown | undefi
|
|
|
447
482
|
* If a parent (or any transitive parent) is deleted, the object will be deleted.
|
|
448
483
|
* Only objects are allowed to have a parent.
|
|
449
484
|
*/
|
|
450
|
-
export declare const setParent: (entity: Unknown, parent: Any | undefined) =>
|
|
485
|
+
export declare const setParent: (entity: Unknown, parent: Any | undefined) => Unknown & internal.InternalObjectProps;
|
|
451
486
|
interface UpdateFromOptions<T> {
|
|
452
487
|
exclude?: (keyof T)[];
|
|
453
488
|
include?: (keyof T)[];
|
|
@@ -457,7 +492,7 @@ interface UpdateFromOptions<T> {
|
|
|
457
492
|
* References are compared by target DXN; other values use Effect `Equal.equals` inside a structural region,
|
|
458
493
|
* with recursive comparison for arrays and plain object-shaped property bags (excluding `id`).
|
|
459
494
|
*
|
|
460
|
-
* Must be called within an `Obj.
|
|
495
|
+
* Must be called within an `Obj.update` callback.
|
|
461
496
|
*
|
|
462
497
|
* @returns Whether any property was updated.
|
|
463
498
|
*/
|
|
@@ -480,12 +515,12 @@ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
|
|
|
480
515
|
* The function must be async to support resolving the schema as well as the relation endpoints.
|
|
481
516
|
*
|
|
482
517
|
* @param options.refResolver - Resolver for references. Produces hydrated references that can be resolved.
|
|
483
|
-
* @param options.
|
|
518
|
+
* @param options.uri - Override object URI. Changes the result of `Obj.getURI`.
|
|
484
519
|
* @param options.database - Database to associate with the object.
|
|
485
520
|
*/
|
|
486
521
|
export declare const fromJSON: (json: unknown, options?: {
|
|
487
522
|
refResolver?: Ref.Resolver;
|
|
488
|
-
|
|
523
|
+
uri?: URI.URI;
|
|
489
524
|
database?: Database.Database;
|
|
490
525
|
parent?: Unknown;
|
|
491
526
|
}) => Promise<Unknown>;
|
|
@@ -515,5 +550,13 @@ export declare const decodeVersion: (ver: string) => internal.EntityVersion;
|
|
|
515
550
|
* Accepts both reactive objects and snapshots.
|
|
516
551
|
*/
|
|
517
552
|
export declare const version: (entity: Unknown | Snapshot) => Version;
|
|
518
|
-
export {
|
|
553
|
+
export declare const atom: {
|
|
554
|
+
<T extends Unknown>(obj: T): import("@effect-atom/atom/Atom").Atom<Snapshot<T>>;
|
|
555
|
+
<T extends Unknown>(ref: Ref.Ref<T>): import("@effect-atom/atom/Atom").Atom<Snapshot<T> | undefined>;
|
|
556
|
+
};
|
|
557
|
+
export declare const atomReactive: {
|
|
558
|
+
<T extends Unknown>(obj: T): import("@effect-atom/atom/Atom").Atom<T>;
|
|
559
|
+
<T extends Unknown>(ref: Ref.Ref<T>): import("@effect-atom/atom/Atom").Atom<T | undefined>;
|
|
560
|
+
};
|
|
561
|
+
export declare const atomProperty: <T extends Unknown, K extends keyof T>(obj: T, key: K) => import("@effect-atom/atom/Atom").Atom<T[K]>;
|
|
519
562
|
//# sourceMappingURL=Obj.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,4 +13,14 @@ export declare const property: <T>(property: keyof T & string, direction: QueryA
|
|
|
13
13
|
* Higher rank = better match. Default direction is 'desc' (best matches first).
|
|
14
14
|
*/
|
|
15
15
|
export declare const rank: <T>(direction?: QueryAST.OrderDirection) => Order<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Order by the system `updatedAt` timestamp (last re-indexed). Default direction is 'desc'
|
|
18
|
+
* (most-recently-updated first). Mirrors {@link Filter.updated}.
|
|
19
|
+
*/
|
|
20
|
+
export declare const updated: <T>(direction?: QueryAST.OrderDirection) => Order<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Order by the system `createdAt` timestamp (first indexed). Default direction is 'desc'
|
|
23
|
+
* (most-recently-created first). Mirrors {@link Filter.created}.
|
|
24
|
+
*/
|
|
25
|
+
export declare const created: <T>(direction?: QueryAST.OrderDirection) => Order<T>;
|
|
16
26
|
//# sourceMappingURL=Order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Order.d.ts","sourceRoot":"","sources":["../../../src/Order.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,KAAK,CAAC,CAAC;IAEtB,QAAQ,EAAE;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IAEvB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;CACrB;AAED,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAc7B,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,GAAG,CAAuC,CAAC;AACvE,eAAO,MAAM,QAAQ,GAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"Order.d.ts","sourceRoot":"","sources":["../../../src/Order.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,KAAK,CAAC,CAAC;IAEtB,QAAQ,EAAE;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IAEvB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;CACrB;AAED,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAc7B,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,GAAG,CAAuC,CAAC;AACvE,eAAO,MAAM,QAAQ,GAAI,CAAC,YAAY,MAAM,CAAC,GAAG,MAAM,aAAa,QAAQ,CAAC,cAAc,KAAG,KAAK,CAAC,CAAC,CAKhG,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,cAAa,QAAQ,CAAC,cAAc,KAAY,KAAK,CAAC,CAAC,CAIzE,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,cAAa,QAAQ,CAAC,cAAc,KAAY,KAAK,CAAC,CAAC,CAK5E,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,cAAa,QAAQ,CAAC,cAAc,KAAY,KAAK,CAAC,CAAC,CAK5E,CAAC"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import type * as EffectArray from 'effect/Array';
|
|
2
2
|
import type * as Schema from 'effect/Schema';
|
|
3
3
|
import { type QueryAST } from '@dxos/echo-protocol';
|
|
4
|
+
import { type URI } from '@dxos/keys';
|
|
4
5
|
import * as Database from './Database';
|
|
5
6
|
import type * as Dataset from './Dataset';
|
|
6
7
|
import * as Feed from './Feed';
|
|
7
8
|
import * as Filter from './Filter';
|
|
9
|
+
import * as internal from './internal';
|
|
8
10
|
import type * as Order from './Order';
|
|
9
11
|
import type * as Ref from './Ref';
|
|
10
12
|
import type * as Relation from './Relation';
|
|
13
|
+
import type * as Type$ from './Type';
|
|
11
14
|
/**
|
|
12
15
|
* All property paths inside T that are references.
|
|
13
16
|
*/
|
|
14
17
|
type RefPropKey<T> = keyof T & string;
|
|
18
|
+
type RefArrayElement<A> = A extends readonly (infer E)[] ? E : A extends (infer E)[] ? E : never;
|
|
19
|
+
/** Target entity when traversing an outgoing ref or array-of-refs property. */
|
|
20
|
+
type ReferenceTraversalTarget<P> = P extends Ref.Unknown ? Ref.Target<P> : P extends Ref.Unknown | undefined ? Ref.Target<Exclude<P, undefined>> : RefArrayElement<P> extends Ref.Unknown ? Ref.Target<RefArrayElement<P>> : never;
|
|
15
21
|
export interface Query<T> {
|
|
16
22
|
'~Query': {
|
|
17
23
|
value: T;
|
|
@@ -29,15 +35,15 @@ export interface Query<T> {
|
|
|
29
35
|
* @param key - Property path inside T that is a reference or optional reference.
|
|
30
36
|
* @returns Query for the target of the reference.
|
|
31
37
|
*/
|
|
32
|
-
'reference'<K extends RefPropKey<T>>(key: K): Query<
|
|
38
|
+
'reference'<K extends RefPropKey<T>>(key: K): Query<ReferenceTraversalTarget<T[K]>>;
|
|
33
39
|
/**
|
|
34
40
|
* Find objects referencing this object.
|
|
35
41
|
* @param target - Schema of the referencing object. If not provided, matches any type.
|
|
36
42
|
* @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.
|
|
37
43
|
* @returns Query for the referencing objects.
|
|
38
44
|
*/
|
|
39
|
-
'referencedBy'<S extends
|
|
40
|
-
'referencedBy'<S extends
|
|
45
|
+
'referencedBy'<S extends Type$.AnyEntity>(target: S | URI.URI, key: RefPropKey<Type$.InstanceType<S>>): Query<Type$.InstanceType<S>>;
|
|
46
|
+
'referencedBy'<S extends Type$.AnyEntity>(target: S | URI.URI): Query<Type$.InstanceType<S>>;
|
|
41
47
|
'referencedBy'(): Query<any>;
|
|
42
48
|
/**
|
|
43
49
|
* Find relations where this object is the source.
|
|
@@ -45,14 +51,14 @@ export interface Query<T> {
|
|
|
45
51
|
* @param relation - Schema of the relation.
|
|
46
52
|
* @param predicates - Predicates to filter the relation objects.
|
|
47
53
|
*/
|
|
48
|
-
'sourceOf'<
|
|
54
|
+
'sourceOf'<R extends Type$.AnyRelation>(relation?: R | URI.URI, predicates?: Filter.Props<Type$.InstanceType<R>>): Query<Type$.InstanceType<R>>;
|
|
49
55
|
/**
|
|
50
56
|
* Find relations where this object is the target.
|
|
51
57
|
* @returns Query for the relation objects.
|
|
52
|
-
* @param relation -
|
|
58
|
+
* @param relation - Type entity of the relation.
|
|
53
59
|
* @param predicates - Predicates to filter the relation objects.
|
|
54
60
|
*/
|
|
55
|
-
'targetOf'<
|
|
61
|
+
'targetOf'<R extends Type$.AnyRelation>(relation?: R | URI.URI, predicates?: Filter.Props<Type$.InstanceType<R>>): Query<Type$.InstanceType<R>>;
|
|
56
62
|
/**
|
|
57
63
|
* For a query for relations, get the source objects.
|
|
58
64
|
* @returns Query for the source objects.
|
|
@@ -147,13 +153,27 @@ export interface Query<T> {
|
|
|
147
153
|
*/
|
|
148
154
|
'from'(query: Any): Query<T>;
|
|
149
155
|
/**
|
|
150
|
-
* Query from
|
|
156
|
+
* Query from one or more raw scopes.
|
|
157
|
+
*
|
|
158
|
+
* Use the {@link Scope} constructors rather than raw tagged objects:
|
|
159
|
+
*
|
|
160
|
+
* ```ts
|
|
161
|
+
* Query.select(Filter.type(Type.Type)).from(Scope.space(), Scope.registry());
|
|
162
|
+
* ```
|
|
151
163
|
*/
|
|
152
|
-
'from'(
|
|
164
|
+
'from'(...scopes: QueryAST.Scope[]): Query<T>;
|
|
165
|
+
/**
|
|
166
|
+
* Query from a raw scope or array of scopes.
|
|
167
|
+
*/
|
|
168
|
+
'from'(scope: QueryAST.Scope | QueryAST.Scope[]): Query<T>;
|
|
153
169
|
/**
|
|
154
170
|
* Add options to a query.
|
|
155
171
|
*/
|
|
156
172
|
'options'(options: QueryAST.QueryOptions): Query<T>;
|
|
173
|
+
/**
|
|
174
|
+
* Attach a diagnostic label for logs and tooling (execution semantics unchanged).
|
|
175
|
+
*/
|
|
176
|
+
'debugLabel'(label: string): Query<T>;
|
|
157
177
|
}
|
|
158
178
|
export type Any = Query<any>;
|
|
159
179
|
export type Type<Q extends Any> = Q extends Query<infer T> ? T : never;
|
|
@@ -175,8 +195,10 @@ export declare const select: <F extends Filter.Any>(filter: F) => Query<Filter.T
|
|
|
175
195
|
* Shorthand for: `Query.select(Filter.type(schema, predicates))`.
|
|
176
196
|
*/
|
|
177
197
|
export declare const type: {
|
|
178
|
-
<
|
|
179
|
-
(schema:
|
|
198
|
+
<T extends Type$.AnyEntity>(type: T, predicates?: Filter.Props<Type$.InstanceType<T>>): Query<Type$.InstanceType<T>>;
|
|
199
|
+
<S extends internal.UnknownTypeSchema<any, any>>(schema: S, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
200
|
+
<S extends Schema.Union<readonly Schema.Schema.AnyNoContext[]>>(union: S, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
201
|
+
(uri: URI.URI, predicates?: Filter.Props<unknown>): Query<any>;
|
|
180
202
|
};
|
|
181
203
|
/**
|
|
182
204
|
* Combine results of multiple queries.
|
|
@@ -198,9 +220,9 @@ export declare const without: <T>(source: Query<T>, exclude: Query<T>) => Query<
|
|
|
198
220
|
* @param source - Data source: database, feed, 'all-accessible-spaces', or another query.
|
|
199
221
|
* @returns Query scoped to the given source.
|
|
200
222
|
*/
|
|
201
|
-
export declare const from: (
|
|
223
|
+
export declare const from: (...args: [(Database.Database | Database.Database[] | Feed.Feed | Feed.Feed[] | Any | QueryAST.Scope | QueryAST.Scope[] | 'all-accessible-spaces'), {
|
|
202
224
|
includeFeeds?: boolean;
|
|
203
|
-
}) => Any;
|
|
225
|
+
}?] | QueryAST.Scope[]) => Any;
|
|
204
226
|
/**
|
|
205
227
|
* Returns a human-readable string representation of a Query AST.
|
|
206
228
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,WAAW,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type * as Atom from '@effect-atom/atom/Atom';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as Option from 'effect/Option';
|
|
1
4
|
import { type CleanupFn } from '@dxos/async';
|
|
2
5
|
import type * as Entity from './Entity';
|
|
3
6
|
/**
|
|
@@ -76,5 +79,23 @@ export interface QueryResult<T> {
|
|
|
76
79
|
* Subscribes to changes in query results.
|
|
77
80
|
*/
|
|
78
81
|
subscribe(callback?: (query: QueryResult<T>) => void, opts?: SubscriptionOptions): CleanupFn;
|
|
82
|
+
/**
|
|
83
|
+
* Self-updating atom. Updates automatically when query results change.
|
|
84
|
+
*
|
|
85
|
+
* Memoized per QueryResult instance — repeated accesses on the same instance return the same
|
|
86
|
+
* Atom. Safe only when the QueryResult is itself held stable across re-renders (e.g. behind a
|
|
87
|
+
* `useMemo`). It must NOT be used in graph-builder connectors/actions or other atom computes,
|
|
88
|
+
* where `db.query(...)` is called fresh on each re-evaluation: every run constructs a new
|
|
89
|
+
* QueryResult and so a new atom + subscription, leaking the previous ones. Use the memoized
|
|
90
|
+
* {@link atom} family there instead.
|
|
91
|
+
*/
|
|
92
|
+
readonly atom: Atom.Atom<T[]>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Effect that returns a QueryResult when evaluated, but also has shorthand methods for running the query or getting the first result.
|
|
96
|
+
*/
|
|
97
|
+
export interface QueryResultEffect<T, E, R> extends Effect.Effect<QueryResult<T>, E, R> {
|
|
98
|
+
run: Effect.Effect<T[], E, R>;
|
|
99
|
+
first: Effect.Effect<Option.Option<T>, E, R>;
|
|
79
100
|
}
|
|
80
101
|
//# sourceMappingURL=QueryResult.d.ts.map
|