@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResult.d.ts","sourceRoot":"","sources":["../../../src/QueryResult.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,KAAK,CAAC,EAAE;QAGN;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE;QAEX,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;QAErC;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE,CAAC;IAEf;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC;;OAEG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryResult.d.ts","sourceRoot":"","sources":["../../../src/QueryResult.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX,KAAK,CAAC,EAAE;QAGN;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE;QAEX,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;QAErC;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE,CAAC;IAEf;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC;;OAEG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAE7F;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrF,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAG9C"}
|
package/dist/types/src/Ref.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type * as Schema from 'effect/Schema';
|
|
2
2
|
import * as SchemaAST from 'effect/SchemaAST';
|
|
3
|
+
import { type URI } from '@dxos/keys';
|
|
3
4
|
import type * as Entity from './Entity';
|
|
5
|
+
import type * as internal from './internal';
|
|
4
6
|
import * as refInternal from './internal/Ref';
|
|
5
7
|
import type * as Obj from './Obj';
|
|
8
|
+
import type * as TypeNs from './Type';
|
|
6
9
|
/**
|
|
7
10
|
* Instance type for a reference.
|
|
8
11
|
*
|
|
@@ -31,14 +34,18 @@ export type Unknown = refInternal.Ref<Obj.Unknown>;
|
|
|
31
34
|
* ```ts
|
|
32
35
|
* const Task = Schema.Struct({
|
|
33
36
|
* assignee: Ref.Ref(Person), // Creates a Ref schema
|
|
34
|
-
* }).pipe(Type.
|
|
37
|
+
* }).pipe(Type.makeObject(DXN.make('com.example.type.task', '0.1.0')));
|
|
35
38
|
* ```
|
|
36
39
|
*/
|
|
37
|
-
export declare const Ref:
|
|
40
|
+
export declare const Ref: {
|
|
41
|
+
<S extends TypeNs.AnyObj | TypeNs.AnyRelation>(type: S): RefSchema<TypeNs.InstanceType<S> & Obj.Unknown>;
|
|
42
|
+
<T extends TypeNs.Type<any>>(type: T): RefSchema<TypeNs.InstanceType<T>>;
|
|
43
|
+
<S extends internal.UnknownTypeSchema<any, any>>(schema: S): RefSchema<Schema.Schema.Type<S> & Obj.Unknown>;
|
|
44
|
+
};
|
|
38
45
|
export declare const Array: Readonly<{
|
|
39
|
-
targets: <T extends
|
|
40
|
-
loadAll: <T extends
|
|
41
|
-
removeById: (refs:
|
|
46
|
+
targets: <T extends internal.AnyEntity>(refs: readonly internal.Ref<T>[]) => T[];
|
|
47
|
+
loadAll: <T extends internal.AnyEntity>(refs: readonly internal.Ref<T>[]) => Promise<T[]>;
|
|
48
|
+
removeById: (refs: internal.Ref<internal.AnyEntity>[], id: import("@dxos/keys").EntityId) => void;
|
|
42
49
|
}>;
|
|
43
50
|
/**
|
|
44
51
|
* TypeScript type for a Ref schema.
|
|
@@ -65,7 +72,8 @@ export type Target<R extends Unknown> = R extends refInternal.Ref<infer T> ? T :
|
|
|
65
72
|
*/
|
|
66
73
|
export type Resolver = refInternal.RefResolver;
|
|
67
74
|
export declare const isRef: (value: unknown) => value is Unknown;
|
|
68
|
-
export declare const make: <T extends
|
|
69
|
-
export declare const
|
|
75
|
+
export declare const make: <T extends internal.AnyEntity>(object: T) => internal.Ref<T>;
|
|
76
|
+
export declare const fromURI: (uri: URI.URI) => refInternal.Ref<any>;
|
|
77
|
+
export declare const hasEntityId: (id: import("@dxos/keys").EntityId) => (ref: internal.Ref<any>) => boolean;
|
|
70
78
|
export declare const isRefType: (ast: SchemaAST.AST) => boolean;
|
|
71
79
|
//# sourceMappingURL=Ref.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../../src/Ref.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAIzG,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAKzE,CAAC,CAAC,SAAS,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;CACpF,CAAC;AAE3B,eAAO,MAAM,KAAK;;;;EAAuB,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,CAAE,SAAQ,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG;AAExF;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC;AAE/C,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,OAA+B,CAAC;AAEjF,eAAO,MAAM,IAAI,8DAAuB,CAAC;AAGzC,eAAO,MAAM,OAAO,QAAS,GAAG,CAAC,GAAG,KAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAiC,CAAC;AAE5F,eAAO,MAAM,WAAW,4EAA8B,CAAC;AAGvD,eAAO,MAAM,SAAS,QAAS,SAAS,CAAC,GAAG,KAAG,OAS9C,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as Context from 'effect/Context';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import { type ReadOnlyEvent } from '@dxos/async';
|
|
4
|
+
import type * as Database from './Database';
|
|
5
|
+
import * as Entity from './Entity';
|
|
6
|
+
import type * as Filter from './Filter';
|
|
7
|
+
import type * as Query from './Query';
|
|
8
|
+
/**
|
|
9
|
+
* Identifier denoting an ECHO Registry.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TypeId: unique symbol;
|
|
12
|
+
export type TypeId = typeof TypeId;
|
|
13
|
+
/**
|
|
14
|
+
* Composable, in-memory registry of keyed ECHO entities.
|
|
15
|
+
*
|
|
16
|
+
* Entities are stored by id and queried via the standard ECHO Query API.
|
|
17
|
+
* A registry may delegate to an optional upstream registry: results from the local
|
|
18
|
+
* registry take precedence and upstream results fill in anything not found locally.
|
|
19
|
+
*
|
|
20
|
+
* Intended use cases include caches of schemas, operations, blueprints, routines, plugins,
|
|
21
|
+
* etc., sourced from 3rd-party plugins, local code, or local space objects.
|
|
22
|
+
*
|
|
23
|
+
* Types (schema-definition entities produced by `Type.makeObject` / `Type.makeRelation`) are
|
|
24
|
+
* stored the same way as any other entity — via `add()`. Use `list().filter(Type.isType)` to
|
|
25
|
+
* retrieve them.
|
|
26
|
+
*
|
|
27
|
+
* Scope: a Registry is independent of any ECHO space or Hypergraph — it is a process-local,
|
|
28
|
+
* in-memory cache. Wire one per space (e.g. as a Layer scoped to the space's Effect runtime)
|
|
29
|
+
* or share a single instance across spaces depending on the use case.
|
|
30
|
+
*
|
|
31
|
+
* The concrete implementation (and the `makeRegistry` / `registryLayer` factories) lives in
|
|
32
|
+
* `@dxos/echo-client`; this module declares only the interface so that the `@dxos/echo` API surface
|
|
33
|
+
* stays free of query-matching dependencies.
|
|
34
|
+
*/
|
|
35
|
+
export interface Registry {
|
|
36
|
+
readonly [TypeId]: TypeId;
|
|
37
|
+
/**
|
|
38
|
+
* Stable per-instance identifier. Used to key process-local resources (e.g. memoized
|
|
39
|
+
* reactive atoms) to a specific registry instance, analogous to {@link Database.spaceId}.
|
|
40
|
+
*/
|
|
41
|
+
readonly id: string;
|
|
42
|
+
/**
|
|
43
|
+
* Fires whenever local registry contents change (add, remove, or clear).
|
|
44
|
+
*/
|
|
45
|
+
readonly changed: ReadOnlyEvent<void>;
|
|
46
|
+
/**
|
|
47
|
+
* All locally-stored entities.
|
|
48
|
+
* Does not include upstream entities — use {@link list} for that.
|
|
49
|
+
*/
|
|
50
|
+
readonly local: readonly Entity.Unknown[];
|
|
51
|
+
/**
|
|
52
|
+
* Add or replace one or more entities in the local registry.
|
|
53
|
+
* Existing entries with the same id are replaced.
|
|
54
|
+
* Also indexes type entities by DXN for fast lookup.
|
|
55
|
+
*/
|
|
56
|
+
add(entities: readonly Entity.Unknown[]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Remove an entity by id from the local registry.
|
|
59
|
+
* @returns true if an entity was removed, false if it was not found.
|
|
60
|
+
*/
|
|
61
|
+
remove(id: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Remove all locally-stored entities.
|
|
64
|
+
* Does not affect the upstream registry.
|
|
65
|
+
*/
|
|
66
|
+
clear(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Get an entity by id.
|
|
69
|
+
* Searches the local registry first, then falls back to the upstream registry.
|
|
70
|
+
*/
|
|
71
|
+
get(id: string): Entity.Unknown | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Get an entity by one of its addressing URIs — a type entity by its typename DXN (or, when
|
|
74
|
+
* persisted, its identifier EID), a keyed entity by its `dxn:<key>[:<version>]`. Accepts legacy
|
|
75
|
+
* DXN forms (normalized internally). Searches the local registry first, then falls back to the
|
|
76
|
+
* upstream registry. Narrow the result with `Type.isType` when a type entity is required.
|
|
77
|
+
*/
|
|
78
|
+
getByURI(uri: string): Entity.Unknown | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* List all entities.
|
|
81
|
+
* Local entities take precedence over upstream entities with the same id.
|
|
82
|
+
*/
|
|
83
|
+
list(): Entity.Unknown[];
|
|
84
|
+
/**
|
|
85
|
+
* Run an ECHO query against the registry's entities (implements {@link Database.Queryable}).
|
|
86
|
+
*
|
|
87
|
+
* Matching happens in-memory over {@link list}. Scope (`from`) clauses are unwrapped and
|
|
88
|
+
* ignored — a direct registry query always targets the registry's own entities. The primary
|
|
89
|
+
* way to query registry contents is still through the database (`db.query(...).from(Scope.registry())`),
|
|
90
|
+
* which fans the database and registry together; this method is for querying a registry directly.
|
|
91
|
+
*
|
|
92
|
+
* Only locally-evaluable AST nodes are supported: `select`, `filter`, `limit`, `from`, `options`,
|
|
93
|
+
* and boolean combinators. Server-side concerns (order, traversal, text/timestamp filters) throw.
|
|
94
|
+
*/
|
|
95
|
+
query: Database.QueryFn;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Type guard for {@link Registry}.
|
|
99
|
+
*/
|
|
100
|
+
export declare const isRegistry: (obj: unknown) => obj is Registry;
|
|
101
|
+
/**
|
|
102
|
+
* Options for the registry factory (`makeRegistry` in `@dxos/echo-client`).
|
|
103
|
+
*/
|
|
104
|
+
export type Options = {
|
|
105
|
+
/**
|
|
106
|
+
* Optional upstream registry. Queries fall back to upstream when an entity
|
|
107
|
+
* is not present in the local registry.
|
|
108
|
+
*/
|
|
109
|
+
upstream?: Registry;
|
|
110
|
+
/**
|
|
111
|
+
* Initial set of entities to seed the local registry with.
|
|
112
|
+
*/
|
|
113
|
+
initial?: readonly Entity.Unknown[];
|
|
114
|
+
};
|
|
115
|
+
declare const Service_base: Context.TagClass<Service, "@dxos/echo/Registry/Service", Registry>;
|
|
116
|
+
/**
|
|
117
|
+
* Effect Context tag for {@link Registry}.
|
|
118
|
+
* Use this to inject a registry into Effect-based code.
|
|
119
|
+
*/
|
|
120
|
+
export declare class Service extends Service_base {
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Executes a query against the registry and returns the results.
|
|
124
|
+
* Analogous to {@link Database.query} `.run` for the in-process registry.
|
|
125
|
+
*/
|
|
126
|
+
export declare const runQuery: {
|
|
127
|
+
<Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
|
|
128
|
+
<F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
|
|
129
|
+
};
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=Registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../../src/Registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,MAAM,eAAoC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC;IAE1C;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAE/C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAElD;;;OAGG;IACH,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IAEzB;;;;;;;;;;OAUG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,GAAG,IAAI,QAC8D,CAAC;AAEhH;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC;CACrC,CAAC;;AAEF;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,YAA+D;CAAG;AAE/F;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;CAKjF,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import * as Schema from 'effect/Schema';
|
|
2
1
|
import type { ForeignKey } from '@dxos/echo-protocol';
|
|
3
|
-
import {
|
|
2
|
+
import { EID, type EntityId, type URI } from '@dxos/keys';
|
|
4
3
|
import type * as Database from './Database';
|
|
5
4
|
import * as Entity from './Entity';
|
|
6
5
|
import * as internal from './internal';
|
|
7
6
|
import * as Obj from './Obj';
|
|
8
|
-
import type * as
|
|
7
|
+
import type * as Ref from './Ref';
|
|
8
|
+
import type * as Tag from './Tag';
|
|
9
|
+
import * as Type from './Type';
|
|
9
10
|
export type Endpoints<Source, Target> = {
|
|
10
11
|
[Source]: Source;
|
|
11
12
|
[Target]: Target;
|
|
@@ -42,7 +43,7 @@ export interface Unknown extends BaseRelation<Obj.Unknown, Obj.Unknown> {
|
|
|
42
43
|
* if (Relation.isRelation(unknownValue)) { ... }
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
|
-
export declare const Unknown:
|
|
46
|
+
export declare const Unknown: internal.UnknownTypeSchema<Unknown, typeof Entity.Kind.Relation>;
|
|
46
47
|
/**
|
|
47
48
|
* Relation type with specific source and target types.
|
|
48
49
|
*/
|
|
@@ -52,7 +53,7 @@ export type OfShape<Source extends Obj.Unknown, Target extends Obj.Unknown, Prop
|
|
|
52
53
|
*/
|
|
53
54
|
interface BaseRelationSnapshot<Source, Target> extends internal.AnyEntity, Endpoints<Source, Target> {
|
|
54
55
|
readonly [Entity.SnapshotKindId]: internal.EntityKind.Relation;
|
|
55
|
-
readonly id:
|
|
56
|
+
readonly id: EntityId;
|
|
56
57
|
}
|
|
57
58
|
/**
|
|
58
59
|
* JSON-encoded properties for relations.
|
|
@@ -84,16 +85,18 @@ export type TargetOf<A> = A extends Endpoints<infer _S, infer T> ? T : never;
|
|
|
84
85
|
/**
|
|
85
86
|
* Internal props type for relation instance creation.
|
|
86
87
|
*/
|
|
87
|
-
type MakePropsInternal<T extends
|
|
88
|
-
id?:
|
|
88
|
+
type MakePropsInternal<T extends Endpoints<any, any>> = {
|
|
89
|
+
id?: EntityId;
|
|
89
90
|
[Source]: T[Source];
|
|
90
91
|
[Target]: T[Target];
|
|
91
92
|
} & Entity.Properties<T>;
|
|
92
93
|
/**
|
|
93
|
-
* Props type for relation creation with a given schema.
|
|
94
|
-
*
|
|
94
|
+
* Props type for relation creation with a given schema. Accepts a `Type.AnyRelation`
|
|
95
|
+
* entity (created with `Type.makeRelation`) and derives the props shape via
|
|
96
|
+
* `Type.InstanceType`. Object-kind entities are rejected at the type level —
|
|
97
|
+
* use `Obj.MakeProps` for those.
|
|
95
98
|
*/
|
|
96
|
-
export type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<
|
|
99
|
+
export type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<Type.InstanceType<S>>;
|
|
97
100
|
/**
|
|
98
101
|
* Creates new relation.
|
|
99
102
|
* @param schema - Relation schema.
|
|
@@ -101,7 +104,25 @@ export type MakeProps<S extends Type.AnyRelation> = MakePropsInternal<Schema.Sch
|
|
|
101
104
|
* @param meta - Relation metadata. (deprecated; use [Obj.Meta] instead)
|
|
102
105
|
* @returns
|
|
103
106
|
*/
|
|
104
|
-
export declare const make: <
|
|
107
|
+
export declare const make: <T extends Type.AnyRelation>(type: T, props: NoInfer<MakeProps<T>>) => Type.InstanceType<T> & Entity.OfKind<typeof Entity.Kind.Relation>;
|
|
108
|
+
/**
|
|
109
|
+
* Test if a value is an instance of a given relation type.
|
|
110
|
+
*
|
|
111
|
+
* Mirrors `Obj.instanceOf` but only accepts `Type.AnyRelation` — use
|
|
112
|
+
* `Obj.instanceOf` for objects and `Type.isType` for `Type.Type` entities.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* const isEmployedBy = Relation.instanceOf(EmployedBy);
|
|
117
|
+
* if (isEmployedBy(relation)) {
|
|
118
|
+
* // relation is EmployedBy
|
|
119
|
+
* }
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare const instanceOf: {
|
|
123
|
+
<S extends Type.AnyRelation>(schema: S): (value: unknown) => value is Type.InstanceType<S>;
|
|
124
|
+
<S extends Type.AnyRelation>(schema: S, value: unknown): value is Type.InstanceType<S>;
|
|
125
|
+
};
|
|
105
126
|
/**
|
|
106
127
|
* Type guard for relations.
|
|
107
128
|
* Returns true for both reactive relations and relation snapshots.
|
|
@@ -109,17 +130,17 @@ export declare const make: <S extends Type.AnyRelation>(schema: S, props: NoInfe
|
|
|
109
130
|
export declare const isRelation: (value: unknown) => value is Unknown;
|
|
110
131
|
export declare const isSnapshot: (value: unknown) => value is Snapshot;
|
|
111
132
|
/**
|
|
112
|
-
* @returns Relation source
|
|
133
|
+
* @returns Relation source URI.
|
|
113
134
|
* Accepts both reactive relations and snapshots.
|
|
114
135
|
* @throws If the object is not a relation.
|
|
115
136
|
*/
|
|
116
|
-
export declare const
|
|
137
|
+
export declare const getSourceURI: (value: Unknown | Snapshot) => EID.EID;
|
|
117
138
|
/**
|
|
118
|
-
* @returns Relation target
|
|
139
|
+
* @returns Relation target URI.
|
|
119
140
|
* Accepts both reactive relations and snapshots.
|
|
120
141
|
* @throws If the object is not a relation.
|
|
121
142
|
*/
|
|
122
|
-
export declare const
|
|
143
|
+
export declare const getTargetURI: (value: Unknown | Snapshot) => EID.EID;
|
|
123
144
|
/**
|
|
124
145
|
* @returns Relation source.
|
|
125
146
|
* Accepts both reactive relations and snapshots.
|
|
@@ -134,17 +155,17 @@ export declare const getSource: <T extends Unknown | Snapshot>(relation: T) => S
|
|
|
134
155
|
export declare const getTarget: <T extends Unknown | Snapshot>(relation: T) => TargetOf<T>;
|
|
135
156
|
/**
|
|
136
157
|
* Makes all properties mutable recursively.
|
|
137
|
-
* Used to provide a mutable view of a relation within `Relation.
|
|
158
|
+
* Used to provide a mutable view of a relation within `Relation.update`.
|
|
138
159
|
*/
|
|
139
160
|
export type Mutable<T> = internal.Mutable<T>;
|
|
140
161
|
/**
|
|
141
162
|
* Perform mutations on an echo relation within a controlled context.
|
|
142
163
|
*
|
|
143
164
|
* All mutations within the callback are batched and trigger a single notification
|
|
144
|
-
* when the callback completes. Direct mutations outside of `Relation.
|
|
165
|
+
* when the callback completes. Direct mutations outside of `Relation.update` will throw
|
|
145
166
|
* an error for echo relations.
|
|
146
167
|
*
|
|
147
|
-
* @param relation - The echo relation to mutate. Use `Obj.
|
|
168
|
+
* @param relation - The echo relation to mutate. Use `Obj.update` for objects.
|
|
148
169
|
* @param callback - The callback that performs mutations on the relation.
|
|
149
170
|
*
|
|
150
171
|
* @example
|
|
@@ -155,15 +176,15 @@ export type Mutable<T> = internal.Mutable<T>;
|
|
|
155
176
|
* role: 'Engineer',
|
|
156
177
|
* });
|
|
157
178
|
*
|
|
158
|
-
* // Mutate within Relation.
|
|
159
|
-
* Relation.
|
|
179
|
+
* // Mutate within Relation.update
|
|
180
|
+
* Relation.update(worksFor, (obj) => {
|
|
160
181
|
* obj.role = 'Senior Engineer';
|
|
161
182
|
* });
|
|
162
183
|
* ```
|
|
163
184
|
*
|
|
164
|
-
* Note: Only accepts relations. Use `Obj.
|
|
185
|
+
* Note: Only accepts relations. Use `Obj.update` for objects.
|
|
165
186
|
*/
|
|
166
|
-
export declare const
|
|
187
|
+
export declare const update: <T extends Unknown>(relation: T, callback: internal.ChangeCallback<T>) => void;
|
|
167
188
|
/**
|
|
168
189
|
* Returns an immutable snapshot of a relation.
|
|
169
190
|
* The snapshot is branded with SnapshotKindId instead of KindId,
|
|
@@ -184,26 +205,33 @@ export declare const subscribe: (rel: Unknown, callback: () => void) => (() => v
|
|
|
184
205
|
export declare const getValue: (rel: Unknown | Snapshot, path: readonly (string | number)[]) => any;
|
|
185
206
|
/**
|
|
186
207
|
* Set a deeply nested property on a relation.
|
|
187
|
-
* Must be called within a `Relation.
|
|
208
|
+
* Must be called within a `Relation.update` callback.
|
|
188
209
|
*
|
|
189
210
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
190
211
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
191
212
|
*/
|
|
192
213
|
export declare const setValue: (rel: Mutable<Unknown>, path: readonly (string | number)[], value: any) => void;
|
|
193
214
|
/**
|
|
194
|
-
* Get the
|
|
195
|
-
*
|
|
215
|
+
* Get the canonical URI of the relation. Returns `URI.URI` — today always an EID,
|
|
216
|
+
* but future entity kinds may surface other URI schemes; narrow with `EID.parse(uri)`
|
|
217
|
+
* or `DXN.tryMake(uri)` at the point of use. Accepts both reactive relations and snapshots.
|
|
218
|
+
*
|
|
219
|
+
* @param options.prefer - Controls the URI form (see {@link internal.GetURIOptions}).
|
|
196
220
|
*/
|
|
197
|
-
export declare const
|
|
221
|
+
export declare const getURI: (entity: Unknown | Snapshot, options?: internal.GetURIOptions) => URI.URI;
|
|
198
222
|
/**
|
|
199
223
|
* @returns The DXN of the relation's type.
|
|
200
224
|
*/
|
|
201
|
-
export declare const
|
|
225
|
+
export declare const getTypeURI: (obj: internal.AnyProperties) => URI.URI | undefined;
|
|
202
226
|
/**
|
|
203
|
-
* Get the
|
|
204
|
-
*
|
|
227
|
+
* Get the type entity (`Type.AnyRelation`) the relation was created from.
|
|
228
|
+
*
|
|
229
|
+
* Returns `undefined` when the relation's type isn't registered in this
|
|
230
|
+
* runtime (e.g. a freshly deserialized snapshot whose type entity hasn't been
|
|
231
|
+
* wired up yet, or a relation loaded from storage before its schema is known).
|
|
232
|
+
* To get the Effect Schema from the returned entity, use `Type.getSchema(...)`.
|
|
205
233
|
*/
|
|
206
|
-
export declare const
|
|
234
|
+
export declare const getType: (relation: Unknown | Snapshot) => Type.AnyRelation | undefined;
|
|
207
235
|
/**
|
|
208
236
|
* @returns The typename of the relation's type.
|
|
209
237
|
* Accepts both reactive relations and snapshots.
|
|
@@ -221,16 +249,16 @@ export declare const getDatabase: (entity: Unknown | Snapshot) => Database.Datab
|
|
|
221
249
|
*/
|
|
222
250
|
export declare const Meta: symbol;
|
|
223
251
|
/**
|
|
224
|
-
* Deeply read-only version of
|
|
252
|
+
* Deeply read-only version of EntityMeta.
|
|
225
253
|
*/
|
|
226
254
|
export type ReadonlyMeta = internal.ReadonlyMeta;
|
|
227
255
|
/**
|
|
228
|
-
* Mutable meta type returned by `Relation.getMeta` inside a `Relation.
|
|
256
|
+
* Mutable meta type returned by `Relation.getMeta` inside a `Relation.update` callback.
|
|
229
257
|
*/
|
|
230
258
|
export type Meta = internal.Meta;
|
|
231
259
|
/**
|
|
232
260
|
* Get the metadata for a relation.
|
|
233
|
-
* Returns mutable meta when passed a mutable relation (inside `Relation.
|
|
261
|
+
* Returns mutable meta when passed a mutable relation (inside `Relation.update` callback).
|
|
234
262
|
* Returns read-only meta when passed a regular relation or snapshot.
|
|
235
263
|
*/
|
|
236
264
|
export declare function getMeta(entity: Mutable<Unknown>): Meta;
|
|
@@ -242,7 +270,7 @@ export declare function getMeta(entity: Unknown | Snapshot): ReadonlyMeta;
|
|
|
242
270
|
export declare const getKeys: (entity: Unknown | Snapshot, source: string) => ForeignKey[];
|
|
243
271
|
/**
|
|
244
272
|
* Delete all keys from the relation for the specified source.
|
|
245
|
-
* Must be called within a `Relation.
|
|
273
|
+
* Must be called within a `Relation.update` callback.
|
|
246
274
|
*
|
|
247
275
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
248
276
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -250,20 +278,20 @@ export declare const getKeys: (entity: Unknown | Snapshot, source: string) => Fo
|
|
|
250
278
|
export declare const deleteKeys: (entity: Mutable<Unknown>, source: string) => void;
|
|
251
279
|
/**
|
|
252
280
|
* Add a tag to the relation.
|
|
253
|
-
* Must be called within a `Relation.
|
|
281
|
+
* Must be called within a `Relation.update` callback.
|
|
254
282
|
*
|
|
255
283
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
256
284
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
257
285
|
*/
|
|
258
|
-
export declare const addTag: (entity: Mutable<Unknown>, tag:
|
|
286
|
+
export declare const addTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
|
|
259
287
|
/**
|
|
260
288
|
* Remove a tag from the relation.
|
|
261
|
-
* Must be called within a `Relation.
|
|
289
|
+
* Must be called within a `Relation.update` callback.
|
|
262
290
|
*
|
|
263
291
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
264
292
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
265
293
|
*/
|
|
266
|
-
export declare const removeTag: (entity: Mutable<Unknown>, tag:
|
|
294
|
+
export declare const removeTag: (entity: Mutable<Unknown>, tag: Ref.Ref<Tag.Tag>) => void;
|
|
267
295
|
/**
|
|
268
296
|
* Check if the relation is deleted.
|
|
269
297
|
* Accepts both reactive relations and snapshots.
|
|
@@ -272,11 +300,14 @@ export declare const isDeleted: (entity: Unknown | Snapshot) => boolean;
|
|
|
272
300
|
/**
|
|
273
301
|
* Get the label of the relation.
|
|
274
302
|
* Accepts both reactive relations and snapshots.
|
|
303
|
+
*
|
|
304
|
+
* @param options.fallback `'typename'` returns the relation's typename when no
|
|
305
|
+
* label is set (e.g. `org.dxos.type.table`).
|
|
275
306
|
*/
|
|
276
|
-
export declare const getLabel: (entity: Unknown | Snapshot) => string | undefined;
|
|
307
|
+
export declare const getLabel: (entity: Unknown | Snapshot, options?: internal.GetLabelOptions) => string | undefined;
|
|
277
308
|
/**
|
|
278
309
|
* Set the label of the relation.
|
|
279
|
-
* Must be called within a `Relation.
|
|
310
|
+
* Must be called within a `Relation.update` callback.
|
|
280
311
|
*
|
|
281
312
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
282
313
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -289,7 +320,7 @@ export declare const setLabel: (entity: Mutable<Unknown>, label: string) => void
|
|
|
289
320
|
export declare const getDescription: (entity: Unknown | Snapshot) => string | undefined;
|
|
290
321
|
/**
|
|
291
322
|
* Set the description of the relation.
|
|
292
|
-
* Must be called within a `Relation.
|
|
323
|
+
* Must be called within a `Relation.update` callback.
|
|
293
324
|
*
|
|
294
325
|
* NOTE: TypeScript's structural typing allows readonly objects to be passed to `Mutable<T>`
|
|
295
326
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
@@ -323,5 +354,6 @@ export type Version = internal.EntityVersion;
|
|
|
323
354
|
* Accepts both reactive relations and snapshots.
|
|
324
355
|
*/
|
|
325
356
|
export declare const version: (entity: Unknown | Snapshot) => Version;
|
|
357
|
+
export declare const atom: <T extends Unknown>(relation: T) => import("@effect-atom/atom/Atom").Atom<Snapshot<T>>;
|
|
326
358
|
export {};
|
|
327
359
|
//# sourceMappingURL=Relation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Relation.d.ts","sourceRoot":"","sources":["../../../src/Relation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type QueryAST } from '@dxos/echo-protocol';
|
|
2
|
+
/**
|
|
3
|
+
* Scope targeting a space's automerge documents.
|
|
4
|
+
*
|
|
5
|
+
* With no `spaceId`, targets the owning space — i.e. the space of whichever database
|
|
6
|
+
* executes the query — so callers can reference "this space" without looking up its id.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* db.query(Filter.type(Person).from(Scope.space())); // owning space
|
|
11
|
+
* db.query(Filter.type(Person).from(Scope.space({ id: otherSpaceId }))); // a specific space
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const space: (options?: {
|
|
15
|
+
id?: string;
|
|
16
|
+
includeAllFeeds?: boolean;
|
|
17
|
+
}) => QueryAST.SpaceScope;
|
|
18
|
+
/**
|
|
19
|
+
* Scope targeting a code-shipped object/type registry.
|
|
20
|
+
*
|
|
21
|
+
* - `'local'` — the in-process registry attached to the hypergraph (default).
|
|
22
|
+
* - `'remote'` — a remote registry service (not yet implemented).
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // Discover all types — persisted in the space and code-shipped in the registry.
|
|
27
|
+
* db.query(Filter.type(Type.Type).from(Scope.space(), Scope.registry()));
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const registry: (location?: 'local' | 'remote') => QueryAST.RegistryScope;
|
|
31
|
+
/**
|
|
32
|
+
* Scope targeting a specific feed (by its underlying queue EID).
|
|
33
|
+
*/
|
|
34
|
+
export declare const feed: (feedUri: string) => QueryAST.FeedScope;
|
|
35
|
+
//# sourceMappingURL=Scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../../src/Scope.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,aAAc;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,QAAQ,CAAC,UAIpF,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,cAAc,OAAO,GAAG,QAAQ,KAAa,QAAQ,CAAC,aAGzE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI,YAAa,MAAM,KAAG,QAAQ,CAAC,SAG9C,CAAC"}
|
package/dist/types/src/Tag.d.ts
CHANGED
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
|
+
import type { ForeignKey } from '@dxos/echo-protocol';
|
|
3
|
+
import type * as Database from './Database';
|
|
2
4
|
import * as internal from './internal';
|
|
3
5
|
import * as Obj from './Obj';
|
|
4
6
|
import * as Type from './Type';
|
|
5
7
|
export declare const Tag: Type.Obj<{
|
|
6
|
-
readonly hue?: string | undefined;
|
|
7
8
|
readonly label: string;
|
|
8
|
-
}, Schema.Struct.Fields>;
|
|
9
|
-
export type Tag = Schema.Schema.Type<typeof Tag>;
|
|
10
|
-
export declare const make: (props: Obj.MakeProps<typeof Tag>) => Obj.OfShape<import("./Entity").OfKind<internal.EntityKind.Object> & {
|
|
11
9
|
readonly hue?: string | undefined;
|
|
10
|
+
}, Schema.Struct.Fields>;
|
|
11
|
+
export type Tag = Type.InstanceType<typeof Tag>;
|
|
12
|
+
export declare const make: (props: Obj.MakeProps<typeof Tag>) => Obj.OfShape<{
|
|
12
13
|
readonly label: string;
|
|
13
|
-
|
|
14
|
+
readonly hue?: string | undefined;
|
|
15
|
+
} & import("./Entity").OfKind<internal.EntityKind.Object>>;
|
|
14
16
|
export type Map = Record<string, Tag>;
|
|
15
17
|
export declare const sortTags: ({ label: a }: Tag, { label: b }: Tag) => number;
|
|
16
18
|
export declare const createTagList: (tags: Map) => Tag[];
|
|
17
19
|
export declare const findTagByLabel: (tags: Map | undefined, name: string) => Tag | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Finds or creates a {@link Tag} object in the database.
|
|
22
|
+
*
|
|
23
|
+
* - With a foreign `key` (system/provider tags): matched by that key; the label is kept current on
|
|
24
|
+
* re-sync. Use a stable key (e.g. `{ source: 'google.com/gmail/label', id }`) for tags whose
|
|
25
|
+
* identity is external or well-known.
|
|
26
|
+
* - Without a key (user tags): matched by case-insensitive label among tags that carry **no**
|
|
27
|
+
* foreign key, so it never collides with a keyed system/provider tag of the same label.
|
|
28
|
+
*/
|
|
29
|
+
export declare const findOrCreate: (db: Pick<Database.Database, 'query' | 'add'>, options: {
|
|
30
|
+
label: string;
|
|
31
|
+
hue?: string;
|
|
32
|
+
key?: ForeignKey;
|
|
33
|
+
}) => Promise<Tag>;
|
|
18
34
|
//# sourceMappingURL=Tag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;
|
|
1
|
+
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/Tag.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,eAAO,MAAM,GAAG;;;wBAQf,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;AAEhD,eAAO,MAAM,IAAI,UAAW,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC;;;0DAAyB,CAAC;AAE/E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,eAAO,MAAM,QAAQ,iBAAkB,GAAG,gBAAgB,GAAG,WAAuB,CAAC;AAErF,eAAO,MAAM,aAAa,SAAU,GAAG,KAAG,GAAG,EAG1B,CAAC;AAEpB,eAAO,MAAM,cAAc,SAAU,GAAG,GAAG,SAAS,QAAQ,MAAM,KAAG,GAAG,GAAG,SAG1E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,OACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC,WACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,UAAU,CAAA;CAAE,KACzD,OAAO,CAAC,GAAG,CA2Bb,CAAC"}
|