@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":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,GAAG,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../../src/Format.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type URI } from '@dxos/keys';
|
|
2
2
|
import type * as Database from './Database';
|
|
3
3
|
import type * as Entity from './Entity';
|
|
4
4
|
import type * as internal from './internal';
|
|
5
5
|
import type * as Key from './Key';
|
|
6
6
|
import type * as Ref from './Ref';
|
|
7
|
-
import type * as
|
|
7
|
+
import type * as Registry from './Registry';
|
|
8
8
|
/**
|
|
9
9
|
* Resolution context.
|
|
10
10
|
* Affects how non-absolute DXNs are resolved.
|
|
@@ -15,10 +15,10 @@ export interface RefResolutionContext {
|
|
|
15
15
|
*/
|
|
16
16
|
space?: Key.SpaceId;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
* This
|
|
18
|
+
* Feed that the resolution is happening from.
|
|
19
|
+
* This feed will be searched first, and then the space it belongs to.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
feed?: URI.URI;
|
|
22
22
|
}
|
|
23
23
|
export interface RefResolverOptions {
|
|
24
24
|
/**
|
|
@@ -36,7 +36,12 @@ export interface RefResolverOptions {
|
|
|
36
36
|
* Manages cross-space database interactions.
|
|
37
37
|
*/
|
|
38
38
|
export interface Hypergraph extends Database.Queryable {
|
|
39
|
-
|
|
39
|
+
/**
|
|
40
|
+
* In-process registry of keyed objects and static schema types.
|
|
41
|
+
* Populated at startup via `registry.add(objects)` / `registry.add(schemas)`.
|
|
42
|
+
* Queries that include no explicit from() clause will fan out to this registry automatically.
|
|
43
|
+
*/
|
|
44
|
+
get registry(): Registry.Registry;
|
|
40
45
|
/**
|
|
41
46
|
* Query objects.
|
|
42
47
|
*/
|
|
@@ -45,11 +50,11 @@ export interface Hypergraph extends Database.Queryable {
|
|
|
45
50
|
* Creates a reference to an existing object in the database.
|
|
46
51
|
*
|
|
47
52
|
* NOTE: The reference may be dangling if the object is not present in the database.
|
|
48
|
-
* NOTE: Difference from `Ref.
|
|
49
|
-
* `Ref.
|
|
53
|
+
* NOTE: Difference from `Ref.fromURI`
|
|
54
|
+
* `Ref.fromURI(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
|
|
50
55
|
* `db.makeRef(dxn)` is preferable in cases with access to the database.
|
|
51
56
|
*/
|
|
52
|
-
makeRef<T extends Entity.Unknown = Entity.Unknown>(
|
|
57
|
+
makeRef<T extends Entity.Unknown = Entity.Unknown>(uri: URI.URI): Ref.Ref<T>;
|
|
53
58
|
/**
|
|
54
59
|
* @param hostDb Host database for reference resolution.
|
|
55
60
|
* @param middleware Called with the loaded object. The caller may change the object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hypergraph.d.ts","sourceRoot":"","sources":["../../../src/Hypergraph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"Hypergraph.d.ts","sourceRoot":"","sources":["../../../src/Hypergraph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,QAAQ,CAAC,SAAS;IACpD;;;;OAIG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAElC;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;OAIG;IAEH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE7D;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;CAClE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Database from './Database';
|
|
2
|
+
/**
|
|
3
|
+
* `JSON.stringify` replacer signature.
|
|
4
|
+
*
|
|
5
|
+
* Defined here (rather than re-imported from a UI package) so other ECHO-aware utilities can
|
|
6
|
+
* share a stable signature without creating a dependency edge into the UI tree.
|
|
7
|
+
*/
|
|
8
|
+
export type JsonReplacer = (key: string, value: any) => any;
|
|
9
|
+
export type CreateRefReplacerOptions = {
|
|
10
|
+
db: Database.Database;
|
|
11
|
+
/** How many ref hops to follow. `0` leaves all refs as-is. Default: `1`. */
|
|
12
|
+
depth?: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Returns a {@link JsonReplacer} that inlines ECHO ref objects (`{ "/": "echo:..." }`) up to
|
|
16
|
+
* `depth` ref hops. Beyond that depth refs are left in their encoded form.
|
|
17
|
+
*
|
|
18
|
+
* Implemented as a per-call `JSON.stringify` replacer (not a one-shot tree walk at root) so it
|
|
19
|
+
* composes with wrappers like `safeStringify` that intercept the root call. JSON.stringify
|
|
20
|
+
* already drives the recursion; we only need to (a) detect a ref at the current callback,
|
|
21
|
+
* (b) resolve and return the target if hop budget remains, and (c) tag the returned object
|
|
22
|
+
* with its hop count so children know how far in they are.
|
|
23
|
+
*
|
|
24
|
+
* The hop count is tracked per-object via a `WeakMap`: a ref-resolved target's children inherit
|
|
25
|
+
* `parentHops + 1`; a regular intermediate object's children inherit `parentHops`. This makes the
|
|
26
|
+
* budget count *ref hops*, not tree depth — a ref deep in a tree still resolves once when
|
|
27
|
+
* `depth >= 1`.
|
|
28
|
+
*
|
|
29
|
+
* Note: ECHO objects' `toJSON` runs before the replacer is invoked, so by the time we see a
|
|
30
|
+
* value refs are already encoded as `{ "/": "dxn:..." }`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const createRefReplacer: ({ db, depth }: CreateRefReplacerOptions) => JsonReplacer;
|
|
33
|
+
//# sourceMappingURL=Json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../src/Json.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,kBAAuB,wBAAwB,KAAG,YAqD/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json.test.d.ts","sourceRoot":"","sources":["../../../src/Json.test.ts"],"names":[],"mappings":""}
|
|
@@ -3,11 +3,11 @@ import * as jsonSchemaInternal from './internal/JsonSchema';
|
|
|
3
3
|
/**
|
|
4
4
|
* Decode JSON Schema to Effect Schema.
|
|
5
5
|
*/
|
|
6
|
-
export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType[
|
|
6
|
+
export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType['$defs']) => Schema.Schema.AnyNoContext;
|
|
7
7
|
/**
|
|
8
8
|
* Encode Effect Schema to JSON Schema.
|
|
9
9
|
*/
|
|
10
|
-
export declare const toJsonSchema: (schema: Schema.Schema.All, options?: jsonSchemaInternal.JsonSchemaOptions) => import("effect/Types").DeepMutable<jsonSchemaInternal.JsonSchemaType>;
|
|
10
|
+
export declare const toJsonSchema: (schema: Schema.Schema.All | import("./Type").AnyEntity, options?: jsonSchemaInternal.JsonSchemaOptions) => import("effect/Types").DeepMutable<jsonSchemaInternal.JsonSchemaType>;
|
|
11
11
|
/**
|
|
12
12
|
* Serializable JsonSchema type definition.
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../src/JsonSchema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,6HAAoC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../../src/JsonSchema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,kBAAkB,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,6HAAoC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,mLAAkC,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAqC,CAAC"}
|
package/dist/types/src/Key.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/Key.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
import type * as Schema from 'effect/Schema';
|
|
2
|
-
import { type
|
|
2
|
+
import { type URI } from '@dxos/keys';
|
|
3
3
|
import type * as Database from './Database';
|
|
4
4
|
import type * as Entity from './Entity';
|
|
5
|
-
|
|
5
|
+
import { MetaId, type EntityMeta } from './internal';
|
|
6
|
+
import * as Type from './Type';
|
|
7
|
+
/**
|
|
8
|
+
* Result returned by a migration's `transform` callback.
|
|
9
|
+
* The data shape matches the target schema; the optional `[Obj.Meta]` symbol key lets the
|
|
10
|
+
* transform update the object's meta (e.g. `key` / `version`) atomically with the data swap.
|
|
11
|
+
*/
|
|
12
|
+
type MigrationSchemaInput = Type.AnyEntity;
|
|
13
|
+
type MigrationInstanceType<S> = S extends Type.AnyEntity ? Type.InstanceType<S> : S extends Schema.Schema.AnyNoContext ? Schema.Schema.Type<S> : never;
|
|
14
|
+
export type TransformResult<To> = Omit<MigrationInstanceType<To>, 'id' | Entity.KindId> & {
|
|
15
|
+
[MetaId]?: Partial<EntityMeta>;
|
|
16
|
+
};
|
|
17
|
+
type DefineObjectMigrationOptions<From extends MigrationSchemaInput, To extends MigrationSchemaInput> = {
|
|
6
18
|
from: From;
|
|
7
19
|
to: To;
|
|
8
20
|
/**
|
|
9
21
|
* Pure function that converts the old object data to the new object data.
|
|
22
|
+
*
|
|
23
|
+
* The returned object may include an optional `[Obj.Meta]` entry to update the object's meta
|
|
24
|
+
* (e.g. registry `key` / `version`) atomically with the data swap.
|
|
10
25
|
*/
|
|
11
|
-
transform: (from:
|
|
26
|
+
transform: (from: MigrationInstanceType<From>, context: ObjectMigrationContext) => Promise<TransformResult<To>>;
|
|
12
27
|
/**
|
|
13
28
|
* Callback that is called after the object is migrated. Called for every object that is migrated.
|
|
14
29
|
*
|
|
15
30
|
* NOTE: Database mutations performed in this callback are not guaranteed to be idempotent.
|
|
16
31
|
* If multiple peers run the migration separately, the effects may be applied multiple times.
|
|
17
32
|
*/
|
|
18
|
-
onMigration
|
|
33
|
+
onMigration?: (params: OnMigrateProps<From, To>) => Promise<void>;
|
|
19
34
|
};
|
|
20
35
|
/**
|
|
21
36
|
* Context passed to object migration callbacks.
|
|
@@ -23,21 +38,21 @@ type DefineObjectMigrationOptions<From extends Schema.Schema.AnyNoContext, To ex
|
|
|
23
38
|
export type ObjectMigrationContext = {
|
|
24
39
|
db: Database.Database;
|
|
25
40
|
};
|
|
26
|
-
type OnMigrateProps<From
|
|
27
|
-
before:
|
|
28
|
-
object:
|
|
41
|
+
type OnMigrateProps<From, To> = {
|
|
42
|
+
before: MigrationInstanceType<From>;
|
|
43
|
+
object: MigrationInstanceType<To>;
|
|
29
44
|
db: Database.Database;
|
|
30
45
|
};
|
|
31
46
|
/**
|
|
32
47
|
* Definition of a migration from one object schema version to another.
|
|
33
48
|
*/
|
|
34
49
|
export type ObjectMigration = {
|
|
35
|
-
fromType:
|
|
36
|
-
toType:
|
|
50
|
+
fromType: URI.URI;
|
|
51
|
+
toType: URI.URI;
|
|
37
52
|
fromSchema: Schema.Schema.AnyNoContext;
|
|
38
53
|
toSchema: Schema.Schema.AnyNoContext;
|
|
39
54
|
transform: (from: unknown, context: ObjectMigrationContext) => Promise<unknown>;
|
|
40
|
-
onMigration
|
|
55
|
+
onMigration?: (params: OnMigrateProps<any, any>) => Promise<void>;
|
|
41
56
|
};
|
|
42
57
|
/**
|
|
43
58
|
* Define a migration between two object schemas.
|
|
@@ -52,6 +67,6 @@ export type ObjectMigration = {
|
|
|
52
67
|
* });
|
|
53
68
|
* ```
|
|
54
69
|
*/
|
|
55
|
-
export declare const define: <From extends
|
|
70
|
+
export declare const define: <From extends MigrationSchemaInput, To extends MigrationSchemaInput>(options: DefineObjectMigrationOptions<From, To>) => ObjectMigration;
|
|
56
71
|
export {};
|
|
57
72
|
//# sourceMappingURL=Migration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../../src/Migration.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../../src/Migration.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAgB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;;;GAIG;AACH,KAAK,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC;AAE3C,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,GACpD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,GAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GACrB,KAAK,CAAC;AAEZ,MAAM,MAAM,eAAe,CAAC,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG;IACxF,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAChC,CAAC;AAEF,KAAK,4BAA4B,CAAC,IAAI,SAAS,oBAAoB,EAAE,EAAE,SAAS,oBAAoB,IAAI;IACtG,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,EAAE,CAAC;IACP;;;;;OAKG;IAEH,SAAS,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhH;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB,CAAC;AAEF,KAAK,cAAc,CAAC,IAAI,EAAE,EAAE,IAAI;IAC9B,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,SAAS,oBAAoB,EAAE,EAAE,SAAS,oBAAoB,WAC9E,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,KAC9C,eAoBF,CAAC"}
|