@dxos/echo 0.8.4-main.bc674ce → 0.8.4-main.bd9b33e6c8
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/README.md +2 -2
- package/dist/lib/neutral/Annotation.mjs +8 -3
- package/dist/lib/neutral/Database.mjs +34 -6
- package/dist/lib/neutral/Entity.mjs +18 -10
- package/dist/lib/neutral/Err.mjs +3 -1
- package/dist/lib/neutral/Extension.mjs +18 -0
- package/dist/lib/neutral/Extension.mjs.map +7 -0
- package/dist/lib/neutral/Feed.mjs +45 -0
- package/dist/lib/neutral/Feed.mjs.map +7 -0
- package/dist/lib/neutral/Filter.mjs +17 -10
- package/dist/lib/neutral/Format.mjs +3 -3
- package/dist/lib/neutral/JsonSchema.mjs +9 -9
- package/dist/lib/neutral/Obj.mjs +35 -15
- package/dist/lib/neutral/Order.mjs +1 -1
- package/dist/lib/neutral/Query.mjs +19 -9
- package/dist/lib/neutral/Ref.mjs +9 -7
- package/dist/lib/neutral/Relation.mjs +20 -11
- package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
- package/dist/lib/neutral/Tag.mjs +13 -10
- package/dist/lib/neutral/Type.mjs +13 -23
- package/dist/lib/neutral/{chunk-HMOXCO27.mjs → chunk-35O3JYTV.mjs} +8 -3
- package/dist/lib/neutral/chunk-35O3JYTV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4BT7QVIT.mjs +34 -0
- package/dist/lib/neutral/chunk-4BT7QVIT.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4O4AV6CL.mjs +787 -0
- package/dist/lib/neutral/chunk-4O4AV6CL.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-62DWJ6CE.mjs → chunk-B5OXLWZL.mjs} +14 -14
- package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-NWUO5FKZ.mjs → chunk-B7HTUIZA.mjs} +8 -2
- package/dist/lib/neutral/chunk-B7HTUIZA.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-4L6DOFXP.mjs → chunk-BNCCGLJN.mjs} +1 -1
- package/dist/lib/neutral/{chunk-4L6DOFXP.mjs.map → chunk-BNCCGLJN.mjs.map} +1 -1
- package/dist/lib/neutral/{chunk-3ZEAZF7T.mjs → chunk-EIX4KLES.mjs} +8 -4
- package/dist/lib/neutral/chunk-EIX4KLES.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FLSFS6UB.mjs +117 -0
- package/dist/lib/neutral/chunk-FLSFS6UB.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-VR4A4WGG.mjs → chunk-FXQ52LDX.mjs} +72 -23
- package/dist/lib/neutral/chunk-FXQ52LDX.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-4TT624YA.mjs → chunk-FZO7LQO7.mjs} +2 -2
- package/dist/lib/neutral/{chunk-4TT624YA.mjs.map → chunk-FZO7LQO7.mjs.map} +1 -1
- package/dist/lib/neutral/chunk-HIMJ3MXL.mjs +283 -0
- package/dist/lib/neutral/chunk-HIMJ3MXL.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-VB5HVDCA.mjs → chunk-HITCYIP2.mjs} +47 -5
- package/dist/lib/neutral/chunk-HITCYIP2.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-SU2LVM7J.mjs → chunk-JJTRVYRD.mjs} +1596 -2730
- package/dist/lib/neutral/chunk-JJTRVYRD.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-6QPSGMEF.mjs → chunk-JX5K6AY3.mjs} +32 -8
- package/dist/lib/neutral/chunk-JX5K6AY3.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-IP2GHXWA.mjs → chunk-PRQVBGFG.mjs} +5 -5
- package/dist/lib/neutral/chunk-PRQVBGFG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-RUYH5REG.mjs +130 -0
- package/dist/lib/neutral/chunk-RUYH5REG.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-2MTHJ5UW.mjs → chunk-T74ABBRN.mjs} +134 -24
- package/dist/lib/neutral/chunk-T74ABBRN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-XMIDBDE6.mjs → chunk-TJRQTGXR.mjs} +11 -56
- package/dist/lib/neutral/chunk-TJRQTGXR.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-RPB6V4BE.mjs → chunk-UBEZSGXY.mjs} +14 -1
- package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ROKO4RKJ.mjs → chunk-UI6MWK5W.mjs} +2 -2
- package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
- package/dist/lib/neutral/chunk-VF2IHN6I.mjs +396 -0
- package/dist/lib/neutral/chunk-VF2IHN6I.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YQYMWZAD.mjs → chunk-WYOKA6AE.mjs} +4 -4
- package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-CUDIBUM4.mjs → chunk-XEBKJROJ.mjs} +104 -25
- package/dist/lib/neutral/chunk-XEBKJROJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YS6Q3XAD.mjs +50 -0
- package/dist/lib/neutral/chunk-YS6Q3XAD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZZEIMPNC.mjs +159 -0
- package/dist/lib/neutral/chunk-ZZEIMPNC.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +42 -25
- package/dist/lib/neutral/internal/index.mjs +52 -38
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/testing/index.mjs +42 -34
- package/dist/lib/neutral/testing/index.mjs.map +3 -3
- package/dist/types/src/Annotation.d.ts +23 -1
- package/dist/types/src/Annotation.d.ts.map +1 -1
- package/dist/types/src/Collection.d.ts +16 -0
- package/dist/types/src/Collection.d.ts.map +1 -0
- package/dist/types/src/Database.d.ts +79 -84
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Dataset.d.ts +19 -0
- package/dist/types/src/Dataset.d.ts.map +1 -0
- package/dist/types/src/Entity.d.ts +41 -15
- package/dist/types/src/Entity.d.ts.map +1 -1
- package/dist/types/src/Err.d.ts +43 -0
- package/dist/types/src/Err.d.ts.map +1 -1
- package/dist/types/src/Extension.d.ts +80 -0
- package/dist/types/src/Extension.d.ts.map +1 -0
- package/dist/types/src/Extension.test.d.ts +2 -0
- package/dist/types/src/Extension.test.d.ts.map +1 -0
- package/dist/types/src/Feed.d.ts +163 -0
- package/dist/types/src/Feed.d.ts.map +1 -0
- package/dist/types/src/Filter.d.ts +13 -1
- package/dist/types/src/Filter.d.ts.map +1 -1
- package/dist/types/src/Filter.test.d.ts +2 -0
- package/dist/types/src/Filter.test.d.ts.map +1 -0
- package/dist/types/src/Format.d.ts +3 -3
- package/dist/types/src/Format.d.ts.map +1 -1
- package/dist/types/src/Hypergraph.d.ts +8 -3
- package/dist/types/src/Hypergraph.d.ts.map +1 -1
- package/dist/types/src/JsonSchema.d.ts +11 -4
- package/dist/types/src/JsonSchema.d.ts.map +1 -1
- package/dist/types/src/Obj.d.ts +158 -43
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Order.d.ts.map +1 -1
- package/dist/types/src/Query.d.ts +101 -14
- package/dist/types/src/Query.d.ts.map +1 -1
- package/dist/types/src/Ref.d.ts +58 -10
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +75 -28
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/SchemaRegistry.d.ts +4 -4
- package/dist/types/src/SchemaRegistry.d.ts.map +1 -1
- package/dist/types/src/Tag.d.ts +4 -3
- package/dist/types/src/Tag.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts +51 -180
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/View.d.ts +68 -0
- package/dist/types/src/View.d.ts.map +1 -0
- package/dist/types/src/hierarchy.test.d.ts +2 -0
- package/dist/types/src/hierarchy.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +5 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/{annotations → Annotation}/annotations.d.ts +69 -8
- package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/Annotation/annotations.test.d.ts.map +1 -0
- package/dist/types/src/internal/Annotation/index.d.ts +4 -0
- package/dist/types/src/internal/Annotation/index.d.ts.map +1 -0
- package/dist/types/src/internal/{api → Annotation}/sorting.d.ts +1 -1
- package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
- package/dist/types/src/internal/{annotations → Annotation}/util.d.ts +13 -1
- package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
- package/dist/types/src/internal/{api/entity.d.ts → Entity/api.d.ts} +2 -2
- package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
- package/dist/types/src/internal/{entities → Entity}/entity.d.ts +3 -3
- package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
- package/dist/types/src/internal/{entities → Entity}/index.d.ts +2 -0
- package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
- package/dist/types/src/internal/{entities → Entity}/model.d.ts +4 -26
- package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
- package/dist/types/src/internal/{entities → Entity}/object.d.ts +2 -2
- package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
- package/dist/types/src/internal/{entities → Entity}/relation.d.ts +3 -30
- package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
- package/dist/types/src/internal/{api → Entity}/version.d.ts +1 -1
- package/dist/types/src/internal/Entity/version.d.ts.map +1 -0
- package/dist/types/src/internal/Format/date.d.ts.map +1 -0
- package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
- package/dist/types/src/internal/Format/format.d.ts.map +1 -0
- package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
- package/dist/types/src/internal/Format/index.d.ts.map +1 -0
- package/dist/types/src/internal/Format/number.d.ts.map +1 -0
- package/dist/types/src/internal/Format/object.d.ts.map +1 -0
- package/dist/types/src/internal/Format/select.d.ts.map +1 -0
- package/dist/types/src/internal/Format/string.d.ts.map +1 -0
- package/dist/types/src/internal/{formats → Format}/types.d.ts +1 -1
- package/dist/types/src/internal/Format/types.d.ts.map +1 -0
- package/dist/types/src/internal/{json-schema → JsonSchema}/annotations.d.ts +1 -1
- package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/index.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
- package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-type.d.ts +19 -19
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/json-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/clone.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
- package/dist/types/src/internal/{object → Obj}/create-object.d.ts +2 -2
- package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/{object → Obj}/deleted.d.ts +1 -1
- package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/ids.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/index.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/inspect.d.ts.map +1 -0
- package/dist/types/src/internal/{object → Obj}/json-serializer.d.ts +12 -5
- package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/json-serializer.test.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/schema-validator.d.ts +2 -0
- package/dist/types/src/internal/Obj/schema-validator.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/schema-validator.test.d.ts.map +1 -0
- package/dist/types/src/internal/{object → Obj}/set-value.d.ts +1 -1
- package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
- package/dist/types/src/internal/{object → Obj}/typed-object.d.ts +4 -4
- package/dist/types/src/internal/Obj/typed-object.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
- package/dist/types/src/internal/{ref → Ref}/ref-array.d.ts +1 -1
- package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
- package/dist/types/src/internal/{ref → Ref}/ref.d.ts +16 -3
- package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref.test.d.ts.map +1 -0
- package/dist/types/src/internal/{schema → Type}/compose.d.ts +1 -1
- package/dist/types/src/internal/Type/compose.d.ts.map +1 -0
- package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
- package/dist/types/src/internal/{schema → Type}/echo-schema.d.ts +8 -7
- package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
- package/dist/types/src/internal/Type/index.d.ts.map +1 -0
- package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -0
- package/dist/types/src/internal/{schema → Type}/persistent-schema.d.ts +2 -2
- package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
- package/dist/types/src/internal/{api → common/api}/index.d.ts +0 -4
- package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
- package/dist/types/src/internal/common/api/meta.d.ts.map +1 -0
- package/dist/types/src/internal/common/index.d.ts +4 -0
- package/dist/types/src/internal/common/index.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/change.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/index.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/proxy-types.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
- package/dist/types/src/internal/{proxy → common/proxy}/reactive.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -0
- package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.d.ts +2 -1
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/typed-handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/base.d.ts +1 -0
- package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/entity.d.ts +2 -2
- package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/index.d.ts +1 -0
- package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/meta.d.ts +2 -1
- package/dist/types/src/internal/common/types/meta.d.ts.map +1 -0
- package/dist/types/src/internal/common/types/model-symbols.d.ts +54 -0
- package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/typename.d.ts +8 -0
- package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
- package/dist/types/src/internal/{types → common/types}/version.d.ts +2 -2
- package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
- package/dist/types/src/internal/index.d.ts +8 -10
- package/dist/types/src/internal/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +19 -18
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -14
- package/src/Annotation.ts +31 -1
- package/src/Collection.ts +37 -0
- package/src/Database.ts +154 -173
- package/src/Dataset.ts +26 -0
- package/src/Entity.ts +73 -54
- package/src/Err.ts +22 -0
- package/src/Extension.test.ts +235 -0
- package/src/Extension.ts +122 -0
- package/src/Feed.ts +267 -0
- package/src/Filter.test.ts +90 -0
- package/src/Filter.ts +47 -4
- package/src/Format.ts +3 -3
- package/src/Hypergraph.ts +9 -4
- package/src/JsonSchema.ts +14 -4
- package/src/Obj.test.ts +69 -8
- package/src/Obj.ts +285 -140
- package/src/Order.ts +3 -1
- package/src/Query.test.ts +190 -15
- package/src/Query.ts +249 -23
- package/src/Ref.ts +64 -11
- package/src/Relation.test.ts +8 -2
- package/src/Relation.ts +165 -131
- package/src/SchemaRegistry.ts +5 -4
- package/src/Tag.ts +6 -5
- package/src/Type.test.ts +10 -10
- package/src/Type.ts +70 -303
- package/src/View.ts +107 -0
- package/src/hierarchy.test.ts +33 -0
- package/src/index.ts +5 -0
- package/src/internal/{annotations → Annotation}/annotations.test.ts +56 -6
- package/src/internal/{annotations → Annotation}/annotations.ts +128 -10
- package/src/internal/{annotations → Annotation}/index.ts +1 -0
- package/src/internal/{api → Annotation}/sorting.ts +2 -3
- package/src/internal/{annotations → Annotation}/util.ts +14 -1
- package/src/internal/{api/entity.ts → Entity/api.ts} +4 -2
- package/src/internal/{entities → Entity}/entity.ts +6 -4
- package/src/internal/{entities → Entity}/index.ts +2 -0
- package/src/internal/{entities → Entity}/model.ts +17 -42
- package/src/internal/{entities → Entity}/object.ts +2 -2
- package/src/internal/{entities → Entity}/relation.ts +19 -36
- package/src/internal/{api → Entity}/version.ts +3 -2
- package/src/internal/{formats → Format}/date.test.ts +1 -1
- package/src/internal/{formats → Format}/format.test.ts +1 -1
- package/src/internal/{formats → Format}/types.ts +3 -3
- package/src/internal/{json-schema → JsonSchema}/annotations.ts +3 -3
- package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +4 -4
- package/src/internal/{json-schema → JsonSchema}/json-schema.test.ts +48 -48
- package/src/internal/{json-schema → JsonSchema}/json-schema.ts +6 -4
- package/src/internal/{object → Obj}/clone.ts +3 -3
- package/src/internal/{object → Obj}/common.ts +2 -2
- package/src/internal/{object → Obj}/create-object.test.ts +4 -4
- package/src/internal/{object → Obj}/create-object.ts +5 -5
- package/src/internal/{object → Obj}/deleted.ts +2 -2
- package/src/internal/{object → Obj}/inspect.ts +2 -2
- package/src/internal/{object → Obj}/json-serializer.test.ts +31 -8
- package/src/internal/{object → Obj}/json-serializer.ts +42 -15
- package/src/internal/{object → Obj}/schema-validator.ts +1 -1
- package/src/internal/{object → Obj}/set-value.test.ts +24 -24
- package/src/internal/{object → Obj}/set-value.ts +2 -2
- package/src/internal/Obj/snapshot.ts +105 -0
- package/src/internal/{object → Obj}/typed-object.test.ts +3 -3
- package/src/internal/{object → Obj}/typed-object.ts +4 -4
- package/src/internal/{ref → Ref}/ref-array.ts +1 -1
- package/src/internal/{ref → Ref}/ref.test.ts +4 -4
- package/src/internal/{ref → Ref}/ref.ts +27 -4
- package/src/internal/{schema → Type}/compose.test.ts +5 -5
- package/src/internal/{schema → Type}/compose.ts +1 -1
- package/src/internal/{schema → Type}/echo-schema.ts +11 -10
- package/src/internal/{schema → Type}/manipulation.ts +1 -1
- package/src/internal/{schema → Type}/persistent-schema.ts +10 -4
- package/src/internal/{README.md → common/README.md} +1 -1
- package/src/internal/{api → common/api}/index.ts +0 -4
- package/src/internal/common/index.ts +7 -0
- package/src/internal/{proxy → common/proxy}/change.test.ts +58 -58
- package/src/internal/{proxy → common/proxy}/handler.test.ts +2 -2
- package/src/internal/{proxy → common/proxy}/json-serializer.ts +6 -3
- package/src/internal/{proxy → common/proxy}/make-object.ts +13 -3
- package/src/internal/{proxy → common/proxy}/reactive.ts +1 -1
- package/src/internal/{proxy → common/proxy}/schema.test.ts +10 -10
- package/src/internal/{proxy → common/proxy}/typed-handler.test.ts +6 -6
- package/src/internal/{proxy → common/proxy}/typed-handler.ts +10 -3
- package/src/internal/{proxy → common/proxy}/typed-object.test.ts +4 -4
- package/src/internal/{types → common/types}/base.ts +1 -1
- package/src/internal/{types → common/types}/entity.ts +2 -2
- package/src/internal/{types → common/types}/index.ts +1 -0
- package/src/internal/{types → common/types}/meta.ts +4 -1
- package/src/internal/common/types/model-symbols.ts +69 -0
- package/src/internal/{types → common/types}/typename.ts +10 -0
- package/src/internal/{types → common/types}/version.ts +2 -3
- package/src/internal/index.ts +8 -31
- package/src/testing/api.test.ts +4 -4
- package/src/testing/test-schema.ts +20 -18
- package/dist/lib/neutral/chunk-2MTHJ5UW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-3ZEAZF7T.mjs.map +0 -7
- package/dist/lib/neutral/chunk-62DWJ6CE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-6QPSGMEF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CUDIBUM4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HMOXCO27.mjs.map +0 -7
- package/dist/lib/neutral/chunk-IP2GHXWA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KRHDMXSU.mjs +0 -132
- package/dist/lib/neutral/chunk-KRHDMXSU.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NWUO5FKZ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ROKO4RKJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-RPB6V4BE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SU2LVM7J.mjs.map +0 -7
- package/dist/lib/neutral/chunk-VB5HVDCA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-VR4A4WGG.mjs.map +0 -7
- package/dist/lib/neutral/chunk-X2MPMYYN.mjs +0 -13
- package/dist/lib/neutral/chunk-X2MPMYYN.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XK5OUUBY.mjs +0 -157
- package/dist/lib/neutral/chunk-XK5OUUBY.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XMIDBDE6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YQYMWZAD.mjs.map +0 -7
- package/dist/types/src/internal/annotations/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/annotations/annotations.test.d.ts.map +0 -1
- package/dist/types/src/internal/annotations/index.d.ts +0 -3
- package/dist/types/src/internal/annotations/index.d.ts.map +0 -1
- package/dist/types/src/internal/annotations/util.d.ts.map +0 -1
- package/dist/types/src/internal/api/annotations.d.ts +0 -23
- package/dist/types/src/internal/api/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/api/entity.d.ts.map +0 -1
- package/dist/types/src/internal/api/index.d.ts.map +0 -1
- package/dist/types/src/internal/api/meta.d.ts.map +0 -1
- package/dist/types/src/internal/api/sorting.d.ts.map +0 -1
- package/dist/types/src/internal/api/version.d.ts.map +0 -1
- package/dist/types/src/internal/entities/entity.d.ts.map +0 -1
- package/dist/types/src/internal/entities/index.d.ts.map +0 -1
- package/dist/types/src/internal/entities/model.d.ts.map +0 -1
- package/dist/types/src/internal/entities/object.d.ts.map +0 -1
- package/dist/types/src/internal/entities/relation.d.ts.map +0 -1
- package/dist/types/src/internal/entities/util.d.ts.map +0 -1
- package/dist/types/src/internal/formats/date.d.ts.map +0 -1
- package/dist/types/src/internal/formats/date.test.d.ts.map +0 -1
- package/dist/types/src/internal/formats/format.d.ts.map +0 -1
- package/dist/types/src/internal/formats/format.test.d.ts.map +0 -1
- package/dist/types/src/internal/formats/index.d.ts.map +0 -1
- package/dist/types/src/internal/formats/number.d.ts.map +0 -1
- package/dist/types/src/internal/formats/object.d.ts.map +0 -1
- package/dist/types/src/internal/formats/select.d.ts.map +0 -1
- package/dist/types/src/internal/formats/string.d.ts.map +0 -1
- package/dist/types/src/internal/formats/types.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/index.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/json-schema.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/clone.d.ts.map +0 -1
- package/dist/types/src/internal/object/common.d.ts.map +0 -1
- package/dist/types/src/internal/object/create-object.d.ts.map +0 -1
- package/dist/types/src/internal/object/create-object.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
- package/dist/types/src/internal/object/ids.d.ts.map +0 -1
- package/dist/types/src/internal/object/index.d.ts.map +0 -1
- package/dist/types/src/internal/object/inspect.d.ts.map +0 -1
- package/dist/types/src/internal/object/json-serializer.d.ts.map +0 -1
- package/dist/types/src/internal/object/json-serializer.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/schema-validator.d.ts +0 -2
- package/dist/types/src/internal/object/schema-validator.d.ts.map +0 -1
- package/dist/types/src/internal/object/schema-validator.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/set-value.d.ts.map +0 -1
- package/dist/types/src/internal/object/set-value.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/snapshot.d.ts.map +0 -1
- package/dist/types/src/internal/object/typed-object.d.ts.map +0 -1
- package/dist/types/src/internal/object/typed-object.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/change-context.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/change.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/errors.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/event-batch.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/index.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/json-serializer.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/make-object.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/ownership.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/proxy-types.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/reactive-array.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/reactive.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/schema-validator.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/symbols.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +0 -1
- package/dist/types/src/internal/ref/index.d.ts.map +0 -1
- package/dist/types/src/internal/ref/ref-array.d.ts.map +0 -1
- package/dist/types/src/internal/ref/ref.d.ts.map +0 -1
- package/dist/types/src/internal/ref/ref.test.d.ts.map +0 -1
- package/dist/types/src/internal/schema/compose.d.ts.map +0 -1
- package/dist/types/src/internal/schema/compose.test.d.ts.map +0 -1
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +0 -1
- package/dist/types/src/internal/schema/index.d.ts.map +0 -1
- package/dist/types/src/internal/schema/manipulation.d.ts.map +0 -1
- package/dist/types/src/internal/schema/persistent-schema.d.ts.map +0 -1
- package/dist/types/src/internal/types/base.d.ts.map +0 -1
- package/dist/types/src/internal/types/entity.d.ts.map +0 -1
- package/dist/types/src/internal/types/index.d.ts.map +0 -1
- package/dist/types/src/internal/types/meta.d.ts.map +0 -1
- package/dist/types/src/internal/types/typename.d.ts.map +0 -1
- package/dist/types/src/internal/types/version.d.ts.map +0 -1
- package/src/internal/api/annotations.ts +0 -60
- package/src/internal/object/snapshot.ts +0 -70
- /package/dist/types/src/internal/{annotations → Annotation}/annotations.test.d.ts +0 -0
- /package/dist/types/src/internal/{entities → Entity}/util.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/date.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/date.test.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/format.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/format.test.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/index.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/number.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/object.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/select.d.ts +0 -0
- /package/dist/types/src/internal/{formats → Format}/string.d.ts +0 -0
- /package/dist/types/src/internal/{json-schema → JsonSchema}/effect-schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{json-schema → JsonSchema}/index.d.ts +0 -0
- /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema-normalize.d.ts +0 -0
- /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.d.ts +0 -0
- /package/dist/types/src/internal/{json-schema → JsonSchema}/json-schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/clone.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/create-object.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/ids.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/index.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/inspect.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/json-serializer.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/schema-validator.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/set-value.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/snapshot.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/typed-object.test.d.ts +0 -0
- /package/dist/types/src/internal/{ref → Ref}/index.d.ts +0 -0
- /package/dist/types/src/internal/{ref → Ref}/ref.test.d.ts +0 -0
- /package/dist/types/src/internal/{schema → Type}/compose.test.d.ts +0 -0
- /package/dist/types/src/internal/{schema → Type}/index.d.ts +0 -0
- /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
- /package/dist/types/src/internal/{api → common/api}/meta.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/change-context.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/change.test.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/define-hidden-property.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/errors.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/event-batch.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/index.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/json-serializer.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/make-object.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/ownership.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/proxy-types.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/proxy-utils.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/reactive-array.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/schema-validator.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/symbols.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/typed-handler.test.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
- /package/src/internal/{entities → Entity}/util.ts +0 -0
- /package/src/internal/{formats → Format}/date.ts +0 -0
- /package/src/internal/{formats → Format}/format.ts +0 -0
- /package/src/internal/{formats → Format}/index.ts +0 -0
- /package/src/internal/{formats → Format}/number.ts +0 -0
- /package/src/internal/{formats → Format}/object.ts +0 -0
- /package/src/internal/{formats → Format}/select.ts +0 -0
- /package/src/internal/{formats → Format}/string.ts +0 -0
- /package/src/internal/{json-schema → JsonSchema}/effect-schema.test.ts +0 -0
- /package/src/internal/{json-schema → JsonSchema}/index.ts +0 -0
- /package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +0 -0
- /package/src/internal/{object → Obj}/ids.ts +0 -0
- /package/src/internal/{object → Obj}/index.ts +0 -0
- /package/src/internal/{object → Obj}/schema-validator.test.ts +0 -0
- /package/src/internal/{ref → Ref}/index.ts +0 -0
- /package/src/internal/{schema → Type}/index.ts +0 -0
- /package/src/internal/{api → common/api}/meta.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/change-context.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/define-hidden-property.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/errors.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/event-batch.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/index.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/ownership.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/proxy-types.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/proxy-utils.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/reactive-array.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/schema-validator.ts +0 -0
- /package/src/internal/{proxy → common/proxy}/symbols.ts +0 -0
package/dist/types/src/Obj.d.ts
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import * as Option from 'effect/Option';
|
|
1
3
|
import * as Schema from 'effect/Schema';
|
|
2
4
|
import type { ForeignKey } from '@dxos/echo-protocol';
|
|
3
5
|
import { type DXN, ObjectId } from '@dxos/keys';
|
|
4
6
|
import type * as Database from './Database';
|
|
5
7
|
import * as Entity from './Entity';
|
|
6
|
-
import
|
|
8
|
+
import * as Err from './Err';
|
|
9
|
+
import * as internal from './internal';
|
|
7
10
|
import type * as Ref from './Ref';
|
|
8
11
|
import type * as Type from './Type';
|
|
9
12
|
/**
|
|
10
13
|
* Base type for all ECHO objects.
|
|
11
14
|
*/
|
|
12
|
-
interface BaseObj extends AnyEntity, Entity.OfKind<typeof Entity.Kind.Object> {
|
|
15
|
+
interface BaseObj extends internal.AnyEntity, Entity.OfKind<typeof Entity.Kind.Object> {
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
15
18
|
* Object type with specific properties.
|
|
16
19
|
*/
|
|
17
|
-
export type
|
|
20
|
+
export type OfShape<Props> = BaseObj & Props;
|
|
18
21
|
/**
|
|
19
22
|
* Object with no known properties beyond id and kind.
|
|
20
23
|
* Use this when the object's schema/properties are not known.
|
|
@@ -25,6 +28,30 @@ export type Obj<Props> = BaseObj & Props;
|
|
|
25
28
|
*/
|
|
26
29
|
export interface Unknown extends BaseObj {
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Runtime Effect schema for any ECHO object.
|
|
33
|
+
* Use for validation, parsing, or as a reference target for collections.
|
|
34
|
+
*
|
|
35
|
+
* NOTE: `Schema.is(Type.Obj)` does STRUCTURAL validation only (checks for `id` field).
|
|
36
|
+
* Use `Obj.isObject()` for proper ECHO instance type guards that check the KindId brand.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* // Structural type guard (accepts any object with id field)
|
|
41
|
+
* if (Schema.is(Type.Obj)(unknownValue)) { ... }
|
|
42
|
+
*
|
|
43
|
+
* // ECHO instance type guard (checks KindId brand)
|
|
44
|
+
* if (Obj.isObject(unknownValue)) { ... }
|
|
45
|
+
*
|
|
46
|
+
* // Reference to any object type
|
|
47
|
+
* const Collection = Schema.Struct({
|
|
48
|
+
* objects: Schema.Array(Ref.Ref(Obj.Unknown)),
|
|
49
|
+
* }).pipe(Type.object({ typename: 'Collection', version: '0.1.0' }));
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare const Unknown: Type.Obj<Unknown>;
|
|
53
|
+
/**
|
|
54
|
+
|
|
28
55
|
/**
|
|
29
56
|
* Object with arbitrary properties.
|
|
30
57
|
*
|
|
@@ -33,13 +60,13 @@ export interface Unknown extends BaseObj {
|
|
|
33
60
|
*
|
|
34
61
|
* Prefer using `Obj.Unknown` when you don't need to access arbitrary properties.
|
|
35
62
|
*/
|
|
36
|
-
export interface Any extends BaseObj, AnyProperties {
|
|
63
|
+
export interface Any extends BaseObj, internal.AnyProperties {
|
|
37
64
|
}
|
|
38
65
|
/**
|
|
39
66
|
* Base type for snapshot objects (has SnapshotKindId instead of KindId).
|
|
40
67
|
*/
|
|
41
|
-
interface BaseSnapshot extends AnyEntity {
|
|
42
|
-
readonly [SnapshotKindId]: typeof Entity.Kind.Object;
|
|
68
|
+
interface BaseSnapshot extends internal.AnyEntity {
|
|
69
|
+
readonly [Entity.SnapshotKindId]: typeof Entity.Kind.Object;
|
|
43
70
|
readonly id: ObjectId;
|
|
44
71
|
}
|
|
45
72
|
/**
|
|
@@ -51,18 +78,23 @@ interface BaseSnapshot extends AnyEntity {
|
|
|
51
78
|
* Snapshots are structurally identical to reactive objects but have a different brand,
|
|
52
79
|
* making them distinguishable at the TypeScript level. Neither is assignable to the other.
|
|
53
80
|
*/
|
|
54
|
-
export type Snapshot<T extends Unknown = Unknown> = Omit<T, KindId> & BaseSnapshot;
|
|
55
|
-
|
|
81
|
+
export type Snapshot<T extends Unknown = Unknown> = Omit<T, Entity.KindId> & BaseSnapshot;
|
|
82
|
+
/**
|
|
83
|
+
* JSON-encoded properties for objects.
|
|
84
|
+
*/
|
|
85
|
+
export interface BaseObjJson {
|
|
86
|
+
id: string;
|
|
87
|
+
}
|
|
88
|
+
type MakePropsInternal<T extends Unknown> = {
|
|
56
89
|
id?: ObjectId;
|
|
57
|
-
|
|
58
|
-
} & Type.Properties<T>;
|
|
90
|
+
} & Entity.Properties<T>;
|
|
59
91
|
/**
|
|
60
92
|
* Props type for object creation with a given schema.
|
|
61
93
|
*/
|
|
62
94
|
export type MakeProps<S extends Schema.Schema.AnyNoContext> = {
|
|
63
95
|
id?: ObjectId;
|
|
64
|
-
[
|
|
65
|
-
} &
|
|
96
|
+
[Parent]?: Unknown;
|
|
97
|
+
} & MakePropsInternal<Schema.Schema.Type<S>>;
|
|
66
98
|
/**
|
|
67
99
|
* Creates a new echo object of the given schema.
|
|
68
100
|
* @param schema - Object schema.
|
|
@@ -78,17 +110,12 @@ export type MakeProps<S extends Schema.Schema.AnyNoContext> = {
|
|
|
78
110
|
*
|
|
79
111
|
* Note: Only accepts object schemas, not relation schemas. Use `Relation.make` for relations.
|
|
80
112
|
*/
|
|
81
|
-
export declare const make:
|
|
82
|
-
<S extends Type.Obj.Any>(schema: S, props: MakeProps<S>): Obj<Schema.Schema.Type<S>>;
|
|
83
|
-
/**
|
|
84
|
-
* @deprecated Pass meta as in the example: `Obj.make(Person, { [Obj.Meta]: { keys: [...] }, name: 'John' })`.
|
|
85
|
-
*/
|
|
86
|
-
<S extends Type.Obj.Any>(schema: S, props: MakeProps<S>, meta: Partial<ObjectMeta>): Obj<Schema.Schema.Type<S>>;
|
|
87
|
-
};
|
|
113
|
+
export declare const make: <S extends Type.AnyObj>(schema: S, props: NoInfer<MakeProps<S>>) => OfShape<Schema.Schema.Type<S>>;
|
|
88
114
|
/**
|
|
89
115
|
* Determine if object is an ECHO object.
|
|
90
116
|
*/
|
|
91
117
|
export declare const isObject: (obj: unknown) => obj is Unknown;
|
|
118
|
+
export declare const isSnapshot: (obj: unknown) => obj is Snapshot;
|
|
92
119
|
/**
|
|
93
120
|
* Subscribe to object updates.
|
|
94
121
|
* The callback is called synchronously when the object is modified.
|
|
@@ -102,6 +129,41 @@ export declare const subscribe: (obj: Unknown, callback: () => void) => (() => v
|
|
|
102
129
|
* making it distinguishable from the reactive object at the type level.
|
|
103
130
|
*/
|
|
104
131
|
export declare const getSnapshot: <T extends Unknown>(obj: T) => Snapshot<T>;
|
|
132
|
+
/**
|
|
133
|
+
* Returns the reactive version of an object from the database, given its snapshot.
|
|
134
|
+
* Inverse of `Obj.getSnapshot`.
|
|
135
|
+
*
|
|
136
|
+
* Uses `Obj.getDatabase` internally to get the database from the snapshot,
|
|
137
|
+
* then resolves the reactive object by ID.
|
|
138
|
+
*
|
|
139
|
+
* @param snapshot - A snapshot of the object (from `Obj.getSnapshot`).
|
|
140
|
+
* @returns Effect that succeeds with the reactive object, or fails with `GetReactiveError`.
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* const snapshot = Obj.getSnapshot(obj);
|
|
144
|
+
* const reactive = Obj.getReactive(snapshot).pipe(
|
|
145
|
+
* Effect.runSync
|
|
146
|
+
* );
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export declare const getReactive: <T extends Unknown>(snapshot: Snapshot<T>) => Effect.Effect<T, Err.GetReactiveError>;
|
|
150
|
+
/**
|
|
151
|
+
* Like `Obj.getReactive` but returns `Option.none()` instead of failing when the object
|
|
152
|
+
* cannot be resolved (no database, object not found).
|
|
153
|
+
*
|
|
154
|
+
* @param snapshot - A snapshot of the object (from `Obj.getSnapshot`).
|
|
155
|
+
* @returns Effect that succeeds with `Option.some(reactive)` or `Option.none()`.
|
|
156
|
+
*/
|
|
157
|
+
export declare const getReactiveOption: <T extends Unknown>(snapshot: Snapshot<T>) => Effect.Effect<Option.Option<T>, never>;
|
|
158
|
+
/**
|
|
159
|
+
* Synchronous version of `Obj.getReactive`. Returns the reactive object or throws
|
|
160
|
+
* `GetReactiveError` when the object cannot be resolved (no database, object not found).
|
|
161
|
+
*
|
|
162
|
+
* @param snapshot - A snapshot of the object (from `Obj.getSnapshot`).
|
|
163
|
+
* @returns The reactive object.
|
|
164
|
+
* @throws {Err.GetReactiveError} When the object cannot be resolved.
|
|
165
|
+
*/
|
|
166
|
+
export declare const getReactiveOrThrow: <T extends Unknown>(snapshot: Snapshot<T>) => T;
|
|
105
167
|
export type CloneOptions = {
|
|
106
168
|
/**
|
|
107
169
|
* Retain the original object's ID.
|
|
@@ -124,7 +186,7 @@ export declare const clone: <T extends Unknown>(obj: T, opts?: CloneOptions) =>
|
|
|
124
186
|
* Makes all properties mutable recursively.
|
|
125
187
|
* Used to provide a mutable view of an object within `Obj.change`.
|
|
126
188
|
*/
|
|
127
|
-
export type
|
|
189
|
+
export type Mutable<T> = internal.Mutable<T>;
|
|
128
190
|
/**
|
|
129
191
|
* Perform mutations on an echo object within a controlled context.
|
|
130
192
|
*
|
|
@@ -143,9 +205,9 @@ export type { Mutable };
|
|
|
143
205
|
* const person = Obj.make(Person, { name: 'John', age: 25 });
|
|
144
206
|
*
|
|
145
207
|
* // Mutate within Obj.change
|
|
146
|
-
* Obj.change(person, (
|
|
147
|
-
*
|
|
148
|
-
*
|
|
208
|
+
* Obj.change(person, (obj) => {
|
|
209
|
+
* obj.name = 'Jane';
|
|
210
|
+
* obj.age = 30;
|
|
149
211
|
* });
|
|
150
212
|
* // ONE notification fires here
|
|
151
213
|
*
|
|
@@ -155,7 +217,7 @@ export type { Mutable };
|
|
|
155
217
|
*
|
|
156
218
|
* Note: Only accepts objects. Use `Relation.change` for relations.
|
|
157
219
|
*/
|
|
158
|
-
export declare const change: <T extends Unknown>(obj: T, callback: ChangeCallback<T>) => void;
|
|
220
|
+
export declare const change: <T extends Unknown>(obj: T, callback: internal.ChangeCallback<T>) => void;
|
|
159
221
|
/**
|
|
160
222
|
* Get a deeply nested property from an object.
|
|
161
223
|
*
|
|
@@ -198,8 +260,8 @@ export declare const getValue: (obj: Unknown | Snapshot, path: readonly (string
|
|
|
198
260
|
* ```ts
|
|
199
261
|
* const person = Obj.make(Person, { name: 'John' });
|
|
200
262
|
* // Person schema has: addresses: Schema.Array(Address)
|
|
201
|
-
* Obj.change(person, (
|
|
202
|
-
* Obj.setValue(
|
|
263
|
+
* Obj.change(person, (obj) => {
|
|
264
|
+
* Obj.setValue(obj, ['addresses', 0, 'street'], '123 Main St');
|
|
203
265
|
* });
|
|
204
266
|
* // Creates: person.addresses = [{ street: '123 Main St' }]
|
|
205
267
|
* ```
|
|
@@ -219,8 +281,25 @@ export type ID = ObjectId;
|
|
|
219
281
|
* ```
|
|
220
282
|
*/
|
|
221
283
|
export declare const instanceOf: {
|
|
222
|
-
<S extends Type.
|
|
223
|
-
<S extends Type.
|
|
284
|
+
<S extends Type.AnyEntity>(schema: S): (value: unknown) => value is Schema.Schema.Type<S>;
|
|
285
|
+
<S extends Type.AnyEntity>(schema: S, value: unknown): value is Schema.Schema.Type<S>;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Test if a snapshot is an instance of a schema.
|
|
289
|
+
* Mirrors `instanceOf` but only accepts values branded with SnapshotKindId.
|
|
290
|
+
* Use when the value is known to be a snapshot (e.g. from `getSnapshot` or `useObject`).
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* const snapshot = Obj.getSnapshot(person);
|
|
295
|
+
* if (Obj.snapshotOf(Person, snapshot)) {
|
|
296
|
+
* // snapshot is Obj.Snapshot<Person>
|
|
297
|
+
* }
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export declare const snapshotOf: {
|
|
301
|
+
<S extends Type.AnyEntity>(schema: S): (value: unknown) => value is Snapshot<Schema.Schema.Type<S>>;
|
|
302
|
+
<S extends Type.AnyEntity>(schema: S, value: unknown): value is Snapshot<Schema.Schema.Type<S>>;
|
|
224
303
|
};
|
|
225
304
|
/**
|
|
226
305
|
* Get the DXN of the object.
|
|
@@ -229,35 +308,40 @@ export declare const instanceOf: {
|
|
|
229
308
|
export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
|
|
230
309
|
/**
|
|
231
310
|
* @returns The DXN of the object's type.
|
|
232
|
-
* @example dxn:example.
|
|
311
|
+
* @example dxn:com.example.type.person:1.0.0
|
|
233
312
|
*/
|
|
234
313
|
export declare const getTypeDXN: (obj: unknown | undefined) => DXN | undefined;
|
|
235
314
|
/**
|
|
236
315
|
* Get the schema of the object.
|
|
237
316
|
* Returns the branded ECHO schema used to create the object.
|
|
238
317
|
*/
|
|
239
|
-
export declare const getSchema: (obj: unknown | undefined) => Type.
|
|
318
|
+
export declare const getSchema: (obj: unknown | undefined) => Type.AnyEntity | undefined;
|
|
240
319
|
/**
|
|
241
320
|
* @returns The typename of the object's type.
|
|
242
321
|
* Accepts both reactive objects and snapshots.
|
|
243
|
-
* @example `example.
|
|
322
|
+
* @example `com.example.type.person`
|
|
244
323
|
*/
|
|
245
324
|
export declare const getTypename: (entity: Unknown | Snapshot) => string | undefined;
|
|
246
325
|
/**
|
|
247
326
|
* Get the database the object belongs to.
|
|
248
327
|
* Accepts both reactive objects and snapshots.
|
|
249
328
|
*/
|
|
250
|
-
export declare const getDatabase: (entity: Unknown | Snapshot) => Database.Database | undefined;
|
|
251
|
-
|
|
329
|
+
export declare const getDatabase: (entity: Entity.Unknown | Entity.Snapshot) => Database.Database | undefined;
|
|
330
|
+
/**
|
|
331
|
+
* Property that accesses metadata for an entity.
|
|
332
|
+
*
|
|
333
|
+
* Alias for `Entity.Meta`.
|
|
334
|
+
*/
|
|
335
|
+
export declare const Meta: symbol;
|
|
252
336
|
/**
|
|
253
337
|
* Deeply read-only version of ObjectMeta.
|
|
254
338
|
* Prevents mutation at all nesting levels (e.g., `meta.keys.push()` is a TypeScript error).
|
|
255
339
|
*/
|
|
256
|
-
export type ReadonlyMeta =
|
|
340
|
+
export type ReadonlyMeta = internal.ReadonlyMeta;
|
|
257
341
|
/**
|
|
258
342
|
* Mutable meta type returned by `Obj.getMeta` inside an `Obj.change` callback.
|
|
259
343
|
*/
|
|
260
|
-
export type Meta =
|
|
344
|
+
export type Meta = internal.Meta;
|
|
261
345
|
/**
|
|
262
346
|
* Get the metadata for an object.
|
|
263
347
|
* Returns mutable meta when passed a mutable object (inside `Obj.change` callback).
|
|
@@ -269,8 +353,8 @@ export type Meta = ApiMeta;
|
|
|
269
353
|
* const meta = Obj.getMeta(person); // ReadonlyMeta
|
|
270
354
|
*
|
|
271
355
|
* // Mutable access inside change callback
|
|
272
|
-
* Obj.change(person, (
|
|
273
|
-
* const meta = Obj.getMeta(
|
|
356
|
+
* Obj.change(person, (obj) => {
|
|
357
|
+
* const meta = Obj.getMeta(obj); // ObjectMeta (mutable)
|
|
274
358
|
* meta.tags ??= [];
|
|
275
359
|
* meta.tags.push('important');
|
|
276
360
|
* });
|
|
@@ -341,10 +425,34 @@ export declare const getDescription: (entity: Unknown | Snapshot) => string | un
|
|
|
341
425
|
* parameters, so there is no compile-time error. Enforcement is runtime-only.
|
|
342
426
|
*/
|
|
343
427
|
export declare const setDescription: (entity: Mutable<Unknown>, description: string) => void;
|
|
428
|
+
/**
|
|
429
|
+
* Symbol to set parent when creating objects with `Obj.make`.
|
|
430
|
+
* @example
|
|
431
|
+
* ```ts
|
|
432
|
+
* Obj.make(TestSchema.Person, {
|
|
433
|
+
* [Obj.Parent]: parentObject,
|
|
434
|
+
* name: 'John',
|
|
435
|
+
* })
|
|
436
|
+
* ```
|
|
437
|
+
*/
|
|
438
|
+
export declare const Parent: unique symbol;
|
|
439
|
+
/**
|
|
440
|
+
* Get the parent of an object.
|
|
441
|
+
* The parent is always loaded together with the object.
|
|
442
|
+
* Only objects are allowed to have a parent
|
|
443
|
+
* @returns The parent object, or undefined if the object has no parent.
|
|
444
|
+
*/
|
|
445
|
+
export declare const getParent: (entity: Unknown | Snapshot) => Unknown | undefined;
|
|
446
|
+
/**
|
|
447
|
+
* Sets the parent of an object.
|
|
448
|
+
* If a parent (or any transitive parent) is deleted, the object will be deleted.
|
|
449
|
+
* Only objects are allowed to have a parent.
|
|
450
|
+
*/
|
|
451
|
+
export declare const setParent: (entity: Unknown, parent: Any | undefined) => void;
|
|
344
452
|
/**
|
|
345
453
|
* JSON representation of an object.
|
|
346
454
|
*/
|
|
347
|
-
export type JSON =
|
|
455
|
+
export type JSON = internal.ObjectJSON;
|
|
348
456
|
/**
|
|
349
457
|
* Converts object to its JSON representation.
|
|
350
458
|
* Accepts both reactive objects and snapshots.
|
|
@@ -360,31 +468,38 @@ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
|
|
|
360
468
|
*
|
|
361
469
|
* @param options.refResolver - Resolver for references. Produces hydrated references that can be resolved.
|
|
362
470
|
* @param options.dxn - Override object DXN. Changes the result of `Obj.getDXN`.
|
|
471
|
+
* @param options.database - Database to associate with the object.
|
|
363
472
|
*/
|
|
364
473
|
export declare const fromJSON: (json: unknown, options?: {
|
|
365
474
|
refResolver?: Ref.Resolver;
|
|
366
475
|
dxn?: DXN;
|
|
476
|
+
database?: Database.Database;
|
|
367
477
|
}) => Promise<Unknown>;
|
|
368
478
|
/**
|
|
369
479
|
* Comparator function type for sorting objects.
|
|
370
480
|
* Accepts both reactive objects and snapshots.
|
|
371
481
|
*/
|
|
372
|
-
export type Comparator =
|
|
482
|
+
export type Comparator = internal.Comparator<Unknown | Snapshot>;
|
|
373
483
|
export declare const sortByLabel: Comparator;
|
|
374
484
|
export declare const sortByTypename: Comparator;
|
|
375
485
|
export declare const sort: (...comparators: Comparator[]) => Comparator;
|
|
376
|
-
export
|
|
377
|
-
export type
|
|
486
|
+
export declare const VersionTypeId: "~@dxos/echo/VersionTypeId";
|
|
487
|
+
export type VersionCompareResult = internal.VersionCompareResult;
|
|
378
488
|
/**
|
|
379
489
|
* Represent object version.
|
|
380
490
|
* May be backed by Automerge.
|
|
381
491
|
* Objects with no history are not versioned.
|
|
382
492
|
*/
|
|
383
|
-
export type Version =
|
|
384
|
-
export
|
|
493
|
+
export type Version = internal.EntityVersion;
|
|
494
|
+
export declare const isVersion: (entity: unknown) => entity is internal.EntityVersion;
|
|
495
|
+
export declare const versionValid: (ver: internal.EntityVersion) => boolean;
|
|
496
|
+
export declare const compareVersions: (version1: internal.EntityVersion, version2: internal.EntityVersion) => internal.VersionCompareResult;
|
|
497
|
+
export declare const encodeVersion: (ver: internal.EntityVersion) => string;
|
|
498
|
+
export declare const decodeVersion: (ver: string) => internal.EntityVersion;
|
|
385
499
|
/**
|
|
386
500
|
* Returns the version of the object.
|
|
387
501
|
* Accepts both reactive objects and snapshots.
|
|
388
502
|
*/
|
|
389
503
|
export declare const version: (entity: Unknown | Snapshot) => Version;
|
|
504
|
+
export {};
|
|
390
505
|
//# sourceMappingURL=Obj.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Obj.d.ts","sourceRoot":"","sources":["../../../src/Obj.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Order.d.ts","sourceRoot":"","sources":["../../../src/Order.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Order.d.ts","sourceRoot":"","sources":["../../../src/Order.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,KAAK,CAAC,CAAC;IAEtB,QAAQ,EAAE;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IAEvB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;CACrB;AAED,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAc7B,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,GAAG,CAAuC,CAAC;AACvE,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,MAAM,EAAE,WAAW,QAAQ,CAAC,cAAc,KAAG,KAAK,CAAC,CAAC,CAKhG,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,YAAW,QAAQ,CAAC,cAAuB,KAAG,KAAK,CAAC,CAAC,CAIzE,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type * as EffectArray from 'effect/Array';
|
|
2
2
|
import type * as Schema from 'effect/Schema';
|
|
3
3
|
import { type QueryAST } from '@dxos/echo-protocol';
|
|
4
|
+
import * as Database from './Database';
|
|
5
|
+
import type * as Dataset from './Dataset';
|
|
6
|
+
import * as Feed from './Feed';
|
|
4
7
|
import * as Filter from './Filter';
|
|
5
8
|
import type * as Order from './Order';
|
|
6
9
|
import type * as Ref from './Ref';
|
|
7
|
-
import type * as
|
|
10
|
+
import type * as Relation from './Relation';
|
|
8
11
|
/**
|
|
9
12
|
* All property paths inside T that are references.
|
|
10
13
|
*/
|
|
@@ -19,64 +22,138 @@ export interface Query<T> {
|
|
|
19
22
|
* @param filter - Filter to select the objects.
|
|
20
23
|
* @returns Query for the selected objects.
|
|
21
24
|
*/
|
|
22
|
-
select(filter: Filter.Filter<T>): Query<T>;
|
|
23
|
-
select(props: Filter.Props<T>): Query<T>;
|
|
25
|
+
'select'(filter: Filter.Filter<T>): Query<T>;
|
|
26
|
+
'select'(props: Filter.Props<T>): Query<T>;
|
|
24
27
|
/**
|
|
25
28
|
* Traverse an outgoing reference.
|
|
26
29
|
* @param key - Property path inside T that is a reference or optional reference.
|
|
27
30
|
* @returns Query for the target of the reference.
|
|
28
31
|
*/
|
|
29
|
-
reference<K extends RefPropKey<T>>(key: K): Query<T[K] extends Ref.Unknown ? Ref.Target<T[K]> : T[K] extends Ref.Unknown | undefined ? Ref.Target<Exclude<T[K], undefined>> : never>;
|
|
32
|
+
'reference'<K extends RefPropKey<T>>(key: K): Query<T[K] extends Ref.Unknown ? Ref.Target<T[K]> : T[K] extends Ref.Unknown | undefined ? Ref.Target<Exclude<T[K], undefined>> : never>;
|
|
30
33
|
/**
|
|
31
34
|
* Find objects referencing this object.
|
|
32
35
|
* @param target - Schema of the referencing object. If not provided, matches any type.
|
|
33
36
|
* @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.
|
|
34
37
|
* @returns Query for the referencing objects.
|
|
35
38
|
*/
|
|
36
|
-
referencedBy<S extends Schema.Schema.All>(target: S | string, key: RefPropKey<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
37
|
-
referencedBy<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;
|
|
38
|
-
referencedBy(): Query<any>;
|
|
39
|
+
'referencedBy'<S extends Schema.Schema.All>(target: S | string, key: RefPropKey<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
40
|
+
'referencedBy'<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;
|
|
41
|
+
'referencedBy'(): Query<any>;
|
|
39
42
|
/**
|
|
40
43
|
* Find relations where this object is the source.
|
|
41
44
|
* @returns Query for the relation objects.
|
|
42
45
|
* @param relation - Schema of the relation.
|
|
43
46
|
* @param predicates - Predicates to filter the relation objects.
|
|
44
47
|
*/
|
|
45
|
-
sourceOf<S extends Schema.Schema.All>(relation
|
|
48
|
+
'sourceOf'<S extends Schema.Schema.All>(relation?: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
46
49
|
/**
|
|
47
50
|
* Find relations where this object is the target.
|
|
48
51
|
* @returns Query for the relation objects.
|
|
49
52
|
* @param relation - Schema of the relation.
|
|
50
53
|
* @param predicates - Predicates to filter the relation objects.
|
|
51
54
|
*/
|
|
52
|
-
targetOf<S extends Schema.Schema.All>(relation
|
|
55
|
+
'targetOf'<S extends Schema.Schema.All>(relation?: S | string, predicates?: Filter.Props<Schema.Schema.Type<S>>): Query<Schema.Schema.Type<S>>;
|
|
53
56
|
/**
|
|
54
57
|
* For a query for relations, get the source objects.
|
|
55
58
|
* @returns Query for the source objects.
|
|
56
59
|
*/
|
|
57
|
-
source(): Query<
|
|
60
|
+
'source'(): Query<Relation.SourceOf<T>>;
|
|
58
61
|
/**
|
|
59
62
|
* For a query for relations, get the target objects.
|
|
60
63
|
* @returns Query for the target objects.
|
|
61
64
|
*/
|
|
62
|
-
target(): Query<
|
|
65
|
+
'target'(): Query<Relation.TargetOf<T>>;
|
|
66
|
+
/**
|
|
67
|
+
* Get the parent object of the current selection.
|
|
68
|
+
* @returns Query for the parent objects.
|
|
69
|
+
*/
|
|
70
|
+
'parent'(): Query<any>;
|
|
71
|
+
/**
|
|
72
|
+
* Get all child objects of the current selection.
|
|
73
|
+
* @returns Query for the child objects.
|
|
74
|
+
*/
|
|
75
|
+
'children'(): Query<any>;
|
|
63
76
|
/**
|
|
64
77
|
* Order the query results.
|
|
65
78
|
* Orders are specified in priority order. The first order will be applied first, etc.
|
|
66
79
|
* @param order - Order to sort the results.
|
|
67
80
|
* @returns Query for the ordered results.
|
|
68
81
|
*/
|
|
69
|
-
orderBy(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;
|
|
82
|
+
'orderBy'(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;
|
|
70
83
|
/**
|
|
71
84
|
* Limit the number of results.
|
|
72
85
|
* @param limit - Maximum number of results to return.
|
|
73
86
|
* @returns Query for the limited results.
|
|
74
87
|
*/
|
|
75
|
-
limit(limit: number): Query<T>;
|
|
88
|
+
'limit'(limit: number): Query<T>;
|
|
89
|
+
/**
|
|
90
|
+
* Query from selected databases only.
|
|
91
|
+
*
|
|
92
|
+
* Example:
|
|
93
|
+
*
|
|
94
|
+
* ```ts
|
|
95
|
+
* Query.select(Filter.type(Person)).from(db);
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.
|
|
99
|
+
*/
|
|
100
|
+
'from'(database: Database.Database | Database.Database[], options?: {
|
|
101
|
+
includeFeeds?: boolean;
|
|
102
|
+
}): Query<T>;
|
|
103
|
+
/**
|
|
104
|
+
* Query from selected feeds only.
|
|
105
|
+
*
|
|
106
|
+
* Example:
|
|
107
|
+
*
|
|
108
|
+
* ```ts
|
|
109
|
+
* Query.select(Filter.type(Person)).from(feed);
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
'from'(feeds: Feed.Feed | Feed.Feed[]): Query<T>;
|
|
114
|
+
/**
|
|
115
|
+
* Query from all accessible spaces.
|
|
116
|
+
*
|
|
117
|
+
* Example:
|
|
118
|
+
*
|
|
119
|
+
* ```ts
|
|
120
|
+
* Query.select(Filter.type(Person)).from('all-accessible-spaces');
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.
|
|
124
|
+
*/
|
|
125
|
+
'from'(allSpaces: 'all-accessible-spaces', options?: {
|
|
126
|
+
includeFeeds?: boolean;
|
|
127
|
+
}): Query<T>;
|
|
128
|
+
/**
|
|
129
|
+
* Query from a dataset.
|
|
130
|
+
* Currently only feeds are supported.
|
|
131
|
+
*
|
|
132
|
+
* Example:
|
|
133
|
+
*
|
|
134
|
+
* ```ts
|
|
135
|
+
* Query.type(Person).from(feed);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
'from'(dataset: Dataset.Dataset): Query<T>;
|
|
139
|
+
/**
|
|
140
|
+
* Query from the results of another query.
|
|
141
|
+
*
|
|
142
|
+
* Example:
|
|
143
|
+
*
|
|
144
|
+
* ```ts
|
|
145
|
+
* Query.select(Filter.props({ foo: 'foo' })).from(Query.select(Filter.type(Contact)).reference('org'));
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
'from'(query: Any): Query<T>;
|
|
149
|
+
/**
|
|
150
|
+
* Query from a raw scope specification.
|
|
151
|
+
*/
|
|
152
|
+
'from'(scope: QueryAST.Scope): Query<T>;
|
|
76
153
|
/**
|
|
77
154
|
* Add options to a query.
|
|
78
155
|
*/
|
|
79
|
-
options(options: QueryAST.QueryOptions): Query<T>;
|
|
156
|
+
'options'(options: QueryAST.QueryOptions): Query<T>;
|
|
80
157
|
}
|
|
81
158
|
export type Any = Query<any>;
|
|
82
159
|
export type Type<Q extends Any> = Q extends Query<infer T> ? T : never;
|
|
@@ -111,5 +188,15 @@ export declare const all: (...queries: Any[]) => Any;
|
|
|
111
188
|
* @returns Query for the results of the source query minus the results of the exclude query.
|
|
112
189
|
*/
|
|
113
190
|
export declare const without: <T>(source: Query<T>, exclude: Query<T>) => Query<T>;
|
|
191
|
+
/**
|
|
192
|
+
* Create a query scoped to a data source.
|
|
193
|
+
* The returned query selects everything from the source; chain `.select()` to narrow results.
|
|
194
|
+
*
|
|
195
|
+
* @param source - Data source: database, feed, 'all-accessible-spaces', or another query.
|
|
196
|
+
* @returns Query scoped to the given source.
|
|
197
|
+
*/
|
|
198
|
+
export declare const from: (source: Database.Database | Database.Database[] | Feed.Feed | Feed.Feed[] | Any | QueryAST.Scope | "all-accessible-spaces", options?: {
|
|
199
|
+
includeFeeds?: boolean;
|
|
200
|
+
}) => Any;
|
|
114
201
|
export {};
|
|
115
202
|
//# sourceMappingURL=Query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../../src/Query.ts"],"names":[],"mappings":"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"}
|