@dxos/echo 0.8.4-main.c4373fc → 0.8.4-main.cb12b3f963
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 +3 -4
- package/dist/lib/neutral/Annotation.mjs +37 -0
- package/dist/lib/neutral/Database.mjs +49 -0
- package/dist/lib/neutral/Entity.mjs +61 -0
- package/dist/lib/neutral/Err.mjs +12 -0
- package/dist/lib/neutral/Extension.mjs +18 -0
- package/dist/lib/neutral/Feed.mjs +50 -0
- package/dist/lib/neutral/Filter.mjs +72 -0
- package/dist/lib/neutral/Filter.mjs.map +7 -0
- package/dist/lib/neutral/Format.mjs +66 -0
- package/dist/lib/neutral/Format.mjs.map +7 -0
- package/dist/lib/neutral/JsonSchema.mjs +19 -0
- package/dist/lib/neutral/JsonSchema.mjs.map +7 -0
- package/dist/lib/neutral/Key.mjs +12 -0
- package/dist/lib/neutral/Key.mjs.map +7 -0
- package/dist/lib/neutral/Migration.mjs +17 -0
- package/dist/lib/neutral/Migration.mjs.map +7 -0
- package/dist/lib/neutral/Obj.mjs +113 -0
- package/dist/lib/neutral/Obj.mjs.map +7 -0
- package/dist/lib/neutral/Order.mjs +12 -0
- package/dist/lib/neutral/Order.mjs.map +7 -0
- package/dist/lib/neutral/Query.mjs +38 -0
- package/dist/lib/neutral/Query.mjs.map +7 -0
- package/dist/lib/neutral/QueryResult.mjs +2 -0
- package/dist/lib/neutral/QueryResult.mjs.map +7 -0
- package/dist/lib/neutral/Ref.mjs +24 -0
- package/dist/lib/neutral/Ref.mjs.map +7 -0
- package/dist/lib/neutral/Relation.mjs +94 -0
- package/dist/lib/neutral/Relation.mjs.map +7 -0
- package/dist/lib/neutral/SchemaRegistry.mjs +2 -0
- package/dist/lib/neutral/SchemaRegistry.mjs.map +7 -0
- package/dist/lib/neutral/Tag.mjs +29 -0
- package/dist/lib/neutral/Tag.mjs.map +7 -0
- package/dist/lib/neutral/Type.mjs +37 -0
- package/dist/lib/neutral/Type.mjs.map +7 -0
- package/dist/lib/neutral/chunk-3U5PIVPZ.mjs +354 -0
- package/dist/lib/neutral/chunk-3U5PIVPZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-44HT3MEC.mjs +73 -0
- package/dist/lib/neutral/chunk-44HT3MEC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4VTRFJV3.mjs +128 -0
- package/dist/lib/neutral/chunk-4VTRFJV3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5NR2KWDU.mjs +34 -0
- package/dist/lib/neutral/chunk-5NR2KWDU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-62RJTYOZ.mjs +346 -0
- package/dist/lib/neutral/chunk-62RJTYOZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7OO5B5DD.mjs +45 -0
- package/dist/lib/neutral/chunk-7OO5B5DD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7RVZT53K.mjs +21 -0
- package/dist/lib/neutral/chunk-7RVZT53K.mjs.map +7 -0
- package/dist/lib/neutral/chunk-AG7JS76F.mjs +56 -0
- package/dist/lib/neutral/chunk-AG7JS76F.mjs.map +7 -0
- package/dist/lib/neutral/chunk-AVPYX7FF.mjs +2436 -0
- package/dist/lib/neutral/chunk-AVPYX7FF.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BCKTAKBX.mjs +270 -0
- package/dist/lib/neutral/chunk-BCKTAKBX.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BICZKPQG.mjs +7 -0
- package/dist/lib/neutral/chunk-BICZKPQG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GECFB2UL.mjs +345 -0
- package/dist/lib/neutral/chunk-GECFB2UL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
- package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-M7ET73JD.mjs +206 -0
- package/dist/lib/neutral/chunk-M7ET73JD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-N4B7FHQT.mjs +67 -0
- package/dist/lib/neutral/chunk-N4B7FHQT.mjs.map +7 -0
- package/dist/lib/neutral/chunk-NCSIQP3L.mjs +420 -0
- package/dist/lib/neutral/chunk-NCSIQP3L.mjs.map +7 -0
- package/dist/lib/neutral/chunk-NGQNU3KX.mjs +45 -0
- package/dist/lib/neutral/chunk-NGQNU3KX.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PRCRETDK.mjs +36 -0
- package/dist/lib/neutral/chunk-PRCRETDK.mjs.map +7 -0
- package/dist/lib/neutral/chunk-S4JXD2RO.mjs +318 -0
- package/dist/lib/neutral/chunk-S4JXD2RO.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SVEGO3DJ.mjs +125 -0
- package/dist/lib/neutral/chunk-SVEGO3DJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-TRPZU2HV.mjs +402 -0
- package/dist/lib/neutral/chunk-TRPZU2HV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-TTCSATUD.mjs +42 -0
- package/dist/lib/neutral/chunk-TTCSATUD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-TTUIJXGD.mjs +132 -0
- package/dist/lib/neutral/chunk-TTUIJXGD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-V72DY6LU.mjs +7 -0
- package/dist/lib/neutral/chunk-V72DY6LU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WGMPVUUL.mjs +81 -0
- package/dist/lib/neutral/chunk-WGMPVUUL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-YDRLYZKW.mjs +27 -0
- package/dist/lib/neutral/chunk-YDRLYZKW.mjs.map +7 -0
- package/dist/lib/neutral/chunk-Z25FPDXG.mjs +734 -0
- package/dist/lib/neutral/chunk-Z25FPDXG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZISMEVKD.mjs +51 -0
- package/dist/lib/neutral/chunk-ZISMEVKD.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +107 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/{node-esm → neutral}/internal/index.mjs +296 -148
- package/dist/lib/neutral/internal/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/testing/index.mjs +375 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/types/src/Annotation.d.ts +24 -0
- package/dist/types/src/Annotation.d.ts.map +1 -0
- 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 +201 -0
- package/dist/types/src/Database.d.ts.map +1 -0
- 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 +174 -0
- package/dist/types/src/Entity.d.ts.map +1 -0
- package/dist/types/src/Entity.test.d.ts +2 -0
- package/dist/types/src/Entity.test.d.ts.map +1 -0
- package/dist/types/src/Err.d.ts +107 -0
- package/dist/types/src/Err.d.ts.map +1 -0
- 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 +182 -0
- package/dist/types/src/Feed.d.ts.map +1 -0
- package/dist/types/src/Filter.d.ts +149 -0
- package/dist/types/src/Filter.d.ts.map +1 -0
- 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 +4 -0
- package/dist/types/src/Format.d.ts.map +1 -0
- package/dist/types/src/Hypergraph.d.ts +65 -0
- package/dist/types/src/Hypergraph.d.ts.map +1 -0
- 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 +16 -0
- package/dist/types/src/JsonSchema.d.ts.map +1 -0
- package/dist/types/src/Key.d.ts +1 -0
- package/dist/types/src/Key.d.ts.map +1 -1
- package/dist/types/src/Migration.d.ts +57 -0
- package/dist/types/src/Migration.d.ts.map +1 -0
- package/dist/types/src/Obj.d.ts +440 -96
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Obj.test.d.ts +2 -0
- package/dist/types/src/Obj.test.d.ts.map +1 -0
- package/dist/types/src/Order.d.ts +16 -0
- package/dist/types/src/Order.d.ts.map +1 -0
- package/dist/types/src/Query.d.ts +213 -0
- package/dist/types/src/Query.d.ts.map +1 -0
- package/dist/types/src/Query.test.d.ts +2 -0
- package/dist/types/src/Query.test.d.ts.map +1 -0
- package/dist/types/src/QueryResult.d.ts +80 -0
- package/dist/types/src/QueryResult.d.ts.map +1 -0
- package/dist/types/src/Ref.d.ts +61 -11
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +287 -21
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/Relation.test.d.ts +2 -0
- package/dist/types/src/Relation.test.d.ts.map +1 -0
- package/dist/types/src/SchemaRegistry.d.ts +84 -0
- package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
- package/dist/types/src/Tag.d.ts +18 -0
- package/dist/types/src/Tag.d.ts.map +1 -0
- package/dist/types/src/Type.d.ts +123 -99
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/Type.test.d.ts +2 -0
- package/dist/types/src/Type.test.d.ts.map +1 -0
- package/dist/types/src/View.d.ts +68 -0
- package/dist/types/src/View.d.ts.map +1 -0
- 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/hierarchy.test.d.ts +2 -0
- package/dist/types/src/hierarchy.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +22 -5
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/annotations.d.ts +231 -0
- 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/Annotation/sorting.d.ts +24 -0
- package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -0
- package/dist/types/src/internal/Annotation/util.d.ts +39 -0
- package/dist/types/src/internal/Annotation/util.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/api.d.ts +13 -0
- package/dist/types/src/internal/Entity/api.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/entity.d.ts +20 -0
- package/dist/types/src/internal/Entity/entity.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/index.d.ts +8 -0
- package/dist/types/src/internal/Entity/index.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/model.d.ts +55 -0
- package/dist/types/src/internal/Entity/model.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/object.d.ts +18 -0
- package/dist/types/src/internal/Entity/object.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/relation.d.ts +35 -0
- package/dist/types/src/internal/Entity/relation.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/util.d.ts +2 -0
- package/dist/types/src/internal/Entity/util.d.ts.map +1 -0
- package/dist/types/src/internal/Entity/version.d.ts +42 -0
- 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/{formats → Format}/format.d.ts +4 -2
- 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/{formats → Format}/select.d.ts +6 -4
- package/dist/types/src/internal/Format/select.d.ts.map +1 -0
- package/dist/types/src/internal/{formats → Format}/string.d.ts +4 -0
- package/dist/types/src/internal/Format/string.d.ts.map +1 -0
- package/dist/types/src/internal/{formats → Format}/types.d.ts +14 -10
- package/dist/types/src/internal/Format/types.d.ts.map +1 -0
- package/dist/types/src/internal/{json → 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 +5 -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 +131 -30
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
- package/dist/types/src/internal/{json → JsonSchema}/json-schema.d.ts +5 -7
- 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 +8 -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/create.d.ts → Obj/create-object.d.ts} +10 -11
- package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/create-object.test.d.ts +2 -0
- package/dist/types/src/internal/Obj/create-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/deleted.d.ts +6 -0
- 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 +11 -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/Obj/json-serializer.d.ts +45 -0
- 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/Obj/set-value.d.ts +7 -0
- package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/set-value.test.d.ts +2 -0
- package/dist/types/src/internal/Obj/set-value.test.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/snapshot.d.ts +6 -0
- package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/typed-object.d.ts +25 -0
- 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/Query.d.ts +10 -0
- package/dist/types/src/internal/Query.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 +4 -4
- package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
- package/dist/types/src/internal/{ref → Ref}/ref.d.ts +57 -19
- 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/Type/compose.d.ts +7 -0
- 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 +27 -14
- package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -0
- package/dist/types/src/internal/Type/index.d.ts +4 -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/Type/persistent-schema.d.ts +20 -0
- package/dist/types/src/internal/Type/persistent-schema.d.ts.map +1 -0
- package/dist/types/src/internal/common/api/index.d.ts +11 -0
- package/dist/types/src/internal/common/api/index.d.ts.map +1 -0
- package/dist/types/src/internal/common/api/meta.d.ts +42 -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 +55 -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 +2 -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 +5 -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 +19 -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 +10 -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 +14 -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 +6 -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 +14 -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 +57 -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 +18 -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 +47 -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 +8 -0
- package/dist/types/src/internal/common/proxy/reactive-array.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/reactive.d.ts +39 -0
- package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -0
- 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 -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 +3 -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 +16 -12
- 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/common/types/base.d.ts +27 -0
- package/dist/types/src/internal/common/types/base.d.ts.map +1 -0
- package/dist/types/src/internal/common/types/entity.d.ts +37 -0
- package/dist/types/src/internal/common/types/entity.d.ts.map +1 -0
- package/dist/types/src/internal/common/types/index.d.ts +7 -0
- package/dist/types/src/internal/common/types/index.d.ts.map +1 -0
- package/dist/types/src/internal/{object → common/types}/meta.d.ts +18 -16
- 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/common/types/typename.d.ts +21 -0
- package/dist/types/src/internal/common/types/typename.d.ts.map +1 -0
- package/dist/types/src/internal/common/types/version.d.ts +15 -0
- package/dist/types/src/internal/common/types/version.d.ts.map +1 -0
- package/dist/types/src/internal/index.d.ts +10 -14
- package/dist/types/src/internal/index.d.ts.map +1 -1
- package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +3 -3
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts +18 -0
- package/dist/types/src/testing/test-data.d.ts.map +1 -0
- package/dist/types/src/testing/test-schema.d.ts +304 -0
- package/dist/types/src/testing/test-schema.d.ts.map +1 -0
- package/dist/types/src/testing/util.d.ts +21 -0
- package/dist/types/src/testing/util.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +116 -65
- package/src/Annotation.ts +48 -0
- package/src/Collection.ts +37 -0
- package/src/Database.ts +352 -0
- package/src/Dataset.ts +26 -0
- package/src/Entity.test.ts +22 -0
- package/src/Entity.ts +243 -0
- package/src/Err.ts +40 -0
- package/src/Extension.test.ts +235 -0
- package/src/Extension.ts +122 -0
- package/src/Feed.ts +304 -0
- package/src/Filter.test.ts +90 -0
- package/src/Filter.ts +454 -0
- package/src/Format.ts +9 -0
- package/src/Hypergraph.ts +79 -0
- package/src/Json.test.ts +175 -0
- package/src/Json.ts +102 -0
- package/src/JsonSchema.ts +26 -0
- package/src/Key.ts +3 -0
- package/src/Migration.ts +94 -0
- package/src/Obj.test.ts +539 -0
- package/src/Obj.ts +709 -243
- package/src/Order.ts +46 -0
- package/src/Query.test.ts +822 -0
- package/src/Query.ts +567 -0
- package/src/QueryResult.ts +106 -0
- package/src/Ref.ts +79 -9
- package/src/Relation.test.ts +88 -0
- package/src/Relation.ts +449 -60
- package/src/SchemaRegistry.ts +106 -0
- package/src/Tag.ts +41 -0
- package/src/Type.test.ts +52 -0
- package/src/Type.ts +167 -153
- package/src/View.ts +107 -0
- package/src/exemplars.test.ts +21 -0
- package/src/hierarchy.test.ts +33 -0
- package/src/index.ts +24 -6
- package/src/internal/Annotation/annotations.test.ts +145 -0
- package/src/internal/Annotation/annotations.ts +577 -0
- package/src/internal/Annotation/index.ts +7 -0
- package/src/internal/Annotation/sorting.ts +51 -0
- package/src/internal/Annotation/util.ts +85 -0
- package/src/internal/Entity/api.ts +30 -0
- package/src/internal/Entity/entity.ts +128 -0
- package/src/internal/Entity/index.ts +11 -0
- package/src/internal/Entity/model.ts +109 -0
- package/src/internal/Entity/object.ts +57 -0
- package/src/internal/Entity/relation.ts +154 -0
- package/src/internal/Entity/util.ts +33 -0
- package/src/internal/Entity/version.ts +96 -0
- package/src/internal/{formats → Format}/date.test.ts +1 -2
- package/src/internal/{formats → Format}/date.ts +5 -5
- package/src/internal/{formats → Format}/format.test.ts +6 -7
- package/src/internal/{formats → Format}/format.ts +8 -6
- package/src/internal/{formats → Format}/number.ts +5 -5
- package/src/internal/{formats → Format}/object.ts +4 -4
- package/src/internal/{formats → Format}/select.ts +6 -4
- package/src/internal/{formats → Format}/string.ts +14 -9
- package/src/internal/{formats → Format}/types.ts +54 -43
- package/src/internal/{json → JsonSchema}/annotations.ts +3 -3
- package/src/internal/{json-schema → JsonSchema}/index.ts +2 -0
- package/src/internal/{json-schema → JsonSchema}/json-schema-normalize.ts +4 -2
- package/src/internal/{json-schema → JsonSchema}/json-schema-type.ts +36 -36
- package/src/internal/{json → JsonSchema}/json-schema.test.ts +243 -109
- package/src/internal/{json → JsonSchema}/json-schema.ts +78 -93
- package/src/internal/Obj/clone.ts +48 -0
- package/src/internal/{object → Obj}/common.ts +3 -4
- package/src/internal/{object/create.test.ts → Obj/create-object.test.ts} +32 -36
- package/src/internal/{object/create.ts → Obj/create-object.ts} +35 -37
- package/src/internal/Obj/deleted.ts +19 -0
- package/src/internal/{object → Obj}/ids.ts +1 -1
- package/src/internal/Obj/index.ts +14 -0
- package/src/internal/{object → Obj}/inspect.ts +5 -7
- package/src/internal/Obj/json-serializer.test.ts +120 -0
- package/src/internal/{object → Obj}/json-serializer.ts +106 -109
- package/src/internal/{object → Obj}/schema-validator.test.ts +3 -7
- package/src/internal/Obj/schema-validator.ts +6 -0
- package/src/internal/Obj/set-value.test.ts +281 -0
- package/src/internal/Obj/set-value.ts +165 -0
- package/src/internal/Obj/snapshot.ts +105 -0
- package/src/internal/{object → Obj}/typed-object.test.ts +12 -12
- package/src/internal/Obj/typed-object.ts +30 -0
- package/src/internal/Query.ts +137 -0
- package/src/internal/{ref → Ref}/ref-array.ts +4 -5
- package/src/internal/{ref → Ref}/ref.test.ts +11 -11
- package/src/internal/{ref → Ref}/ref.ts +125 -57
- package/src/internal/{projection → Type}/compose.test.ts +8 -10
- package/src/internal/{projection → Type}/compose.ts +14 -9
- package/src/internal/{schema → Type}/echo-schema.ts +74 -34
- package/src/internal/Type/index.ts +7 -0
- package/src/internal/{schema → Type}/manipulation.ts +7 -1
- package/src/internal/Type/persistent-schema.ts +33 -0
- package/src/internal/common/README.md +102 -0
- package/src/internal/common/api/index.ts +15 -0
- package/src/internal/common/api/meta.ts +88 -0
- package/src/internal/{testing → common}/index.ts +2 -1
- package/src/internal/common/proxy/change-context.ts +138 -0
- package/src/internal/common/proxy/change.test.ts +519 -0
- package/src/internal/common/proxy/define-hidden-property.ts +14 -0
- package/src/internal/common/proxy/errors.ts +42 -0
- package/src/internal/common/proxy/event-batch.ts +44 -0
- package/src/internal/common/proxy/handler.test.ts +121 -0
- package/src/internal/common/proxy/index.ts +17 -0
- package/src/internal/common/proxy/json-serializer.ts +90 -0
- package/src/internal/common/proxy/make-object.ts +105 -0
- package/src/internal/common/proxy/ownership.ts +252 -0
- package/src/internal/common/proxy/proxy-types.ts +23 -0
- package/src/internal/common/proxy/proxy-utils.ts +150 -0
- package/src/internal/common/proxy/reactive-array.ts +71 -0
- package/src/internal/common/proxy/reactive.test.ts +54 -0
- package/src/internal/common/proxy/reactive.ts +77 -0
- package/src/internal/{object → common/proxy}/schema-validator.ts +6 -3
- package/src/internal/{proxy → common/proxy}/schema.test.ts +31 -22
- package/src/internal/common/proxy/symbols.ts +7 -0
- package/src/internal/common/proxy/typed-handler.test.ts +313 -0
- package/src/internal/common/proxy/typed-handler.ts +447 -0
- package/src/internal/common/proxy/typed-object.test.ts +115 -0
- package/src/internal/common/types/base.ts +43 -0
- package/src/internal/common/types/entity.ts +54 -0
- package/src/internal/common/types/index.ts +10 -0
- package/src/internal/common/types/meta.ts +67 -0
- package/src/internal/common/types/model-symbols.ts +69 -0
- package/src/internal/common/types/typename.ts +55 -0
- package/src/internal/common/types/version.ts +19 -0
- package/src/internal/index.ts +12 -17
- package/src/testing/api.test.ts +125 -0
- package/src/testing/index.ts +3 -3
- package/src/testing/test-data.ts +129 -0
- package/src/testing/test-schema.ts +240 -0
- package/src/testing/util.ts +85 -0
- package/dist/lib/browser/chunk-MWLA34S5.mjs +0 -3843
- package/dist/lib/browser/chunk-MWLA34S5.mjs.map +0 -7
- package/dist/lib/browser/chunk-OAZJQHVO.mjs +0 -453
- package/dist/lib/browser/chunk-OAZJQHVO.mjs.map +0 -7
- package/dist/lib/browser/chunk-ORIE2FMS.mjs +0 -514
- package/dist/lib/browser/chunk-ORIE2FMS.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -43
- package/dist/lib/browser/internal/index.mjs +0 -326
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/query/index.mjs +0 -23
- package/dist/lib/browser/testing/index.mjs +0 -298
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs +0 -453
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs +0 -514
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YTNLFBIK.mjs +0 -3843
- package/dist/lib/node-esm/chunk-YTNLFBIK.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -43
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/query/index.mjs +0 -23
- package/dist/lib/node-esm/testing/index.mjs +0 -298
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/types/src/errors.d.ts +0 -72
- package/dist/types/src/errors.d.ts.map +0 -1
- package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
- package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
- package/dist/types/src/internal/ast/annotations.d.ts +0 -119
- package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
- package/dist/types/src/internal/ast/entity-kind.d.ts +0 -10
- package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
- package/dist/types/src/internal/ast/index.d.ts +0 -5
- package/dist/types/src/internal/ast/index.d.ts.map +0 -1
- package/dist/types/src/internal/ast/types.d.ts +0 -6
- package/dist/types/src/internal/ast/types.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/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/json/index.d.ts +0 -2
- package/dist/types/src/internal/json/index.d.ts.map +0 -1
- package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
- package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/json-schema/index.d.ts +0 -3
- 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/object/accessors.d.ts +0 -29
- package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
- package/dist/types/src/internal/object/common.d.ts.map +0 -1
- package/dist/types/src/internal/object/create.d.ts.map +0 -1
- package/dist/types/src/internal/object/create.test.d.ts +0 -2
- package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/deleted.d.ts +0 -6
- package/dist/types/src/internal/object/deleted.d.ts.map +0 -1
- package/dist/types/src/internal/object/entity.d.ts +0 -22
- package/dist/types/src/internal/object/entity.d.ts.map +0 -1
- package/dist/types/src/internal/object/expando.d.ts +0 -14
- package/dist/types/src/internal/object/expando.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 +0 -17
- 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 +0 -32
- 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/meta.d.ts.map +0 -1
- package/dist/types/src/internal/object/model.d.ts +0 -117
- package/dist/types/src/internal/object/model.d.ts.map +0 -1
- package/dist/types/src/internal/object/relation.d.ts +0 -17
- package/dist/types/src/internal/object/relation.d.ts.map +0 -1
- 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/typed-object.d.ts +0 -31
- 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/object/typed-relation.d.ts +0 -32
- package/dist/types/src/internal/object/typed-relation.d.ts.map +0 -1
- package/dist/types/src/internal/object/typename.d.ts +0 -15
- package/dist/types/src/internal/object/typename.d.ts.map +0 -1
- package/dist/types/src/internal/object/version.d.ts +0 -14
- package/dist/types/src/internal/object/version.d.ts.map +0 -1
- package/dist/types/src/internal/projection/compose.d.ts +0 -6
- package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
- package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
- package/dist/types/src/internal/projection/index.d.ts +0 -2
- package/dist/types/src/internal/projection/index.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/handler.test.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
- package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/schema.test.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/query/index.d.ts +0 -2
- package/dist/types/src/internal/query/index.d.ts.map +0 -1
- package/dist/types/src/internal/query/query.d.ts +0 -17
- package/dist/types/src/internal/query/query.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/echo-schema.d.ts.map +0 -1
- package/dist/types/src/internal/schema/index.d.ts +0 -7
- 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/runtime-schema-registry.d.ts +0 -18
- package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +0 -1
- package/dist/types/src/internal/schema/snapshot.d.ts +0 -6
- package/dist/types/src/internal/schema/snapshot.d.ts.map +0 -1
- package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
- package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
- package/dist/types/src/internal/testing/index.d.ts +0 -3
- package/dist/types/src/internal/testing/index.d.ts.map +0 -1
- package/dist/types/src/internal/testing/types.d.ts +0 -455
- package/dist/types/src/internal/testing/types.d.ts.map +0 -1
- package/dist/types/src/internal/testing/utils.d.ts +0 -10
- package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
- package/dist/types/src/internal/types/index.d.ts +0 -3
- package/dist/types/src/internal/types/index.d.ts.map +0 -1
- package/dist/types/src/internal/types/types.d.ts +0 -79
- package/dist/types/src/internal/types/types.d.ts.map +0 -1
- package/dist/types/src/internal/types/types.test.d.ts +0 -2
- package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
- package/dist/types/src/internal/types/util.d.ts +0 -5
- package/dist/types/src/internal/types/util.d.ts.map +0 -1
- package/dist/types/src/query/index.d.ts +0 -3
- package/dist/types/src/query/index.d.ts.map +0 -1
- package/dist/types/src/query/query.d.ts +0 -247
- package/dist/types/src/query/query.d.ts.map +0 -1
- package/dist/types/src/query/query.test.d.ts +0 -2
- package/dist/types/src/query/query.test.d.ts.map +0 -1
- package/dist/types/src/query/tag.d.ts +0 -18
- package/dist/types/src/query/tag.d.ts.map +0 -1
- package/dist/types/src/testing/echo-schema.d.ts +0 -7
- package/dist/types/src/testing/echo-schema.d.ts.map +0 -1
- package/dist/types/src/testing/types.d.ts +0 -113
- package/dist/types/src/testing/types.d.ts.map +0 -1
- package/src/errors.ts +0 -18
- package/src/internal/ast/annotation-helper.ts +0 -22
- package/src/internal/ast/annotations.test.ts +0 -98
- package/src/internal/ast/annotations.ts +0 -212
- package/src/internal/ast/entity-kind.ts +0 -15
- package/src/internal/ast/index.ts +0 -8
- package/src/internal/ast/types.ts +0 -17
- package/src/internal/json/index.ts +0 -5
- package/src/internal/object/accessors.ts +0 -115
- package/src/internal/object/deleted.ts +0 -19
- package/src/internal/object/entity.ts +0 -204
- package/src/internal/object/expando.ts +0 -21
- package/src/internal/object/index.ts +0 -20
- package/src/internal/object/json-serializer.test.ts +0 -99
- package/src/internal/object/meta.ts +0 -62
- package/src/internal/object/model.ts +0 -170
- package/src/internal/object/relation.ts +0 -24
- package/src/internal/object/typed-object.ts +0 -81
- package/src/internal/object/typed-relation.ts +0 -85
- package/src/internal/object/typename.ts +0 -61
- package/src/internal/object/version.ts +0 -22
- package/src/internal/projection/index.ts +0 -5
- package/src/internal/proxy/handler.test.ts +0 -163
- package/src/internal/proxy/reactive-object.ts +0 -108
- package/src/internal/proxy/typed-handler.test.ts +0 -102
- package/src/internal/proxy/typed-handler.ts +0 -228
- package/src/internal/proxy/typed-object.test.ts +0 -100
- package/src/internal/query/index.ts +0 -5
- package/src/internal/query/query.ts +0 -23
- package/src/internal/schema/index.ts +0 -10
- package/src/internal/schema/runtime-schema-registry.ts +0 -78
- package/src/internal/schema/snapshot.ts +0 -25
- package/src/internal/schema/stored-schema.ts +0 -26
- package/src/internal/testing/types.ts +0 -211
- package/src/internal/testing/utils.ts +0 -54
- package/src/internal/types/index.ts +0 -6
- package/src/internal/types/types.test.ts +0 -48
- package/src/internal/types/types.ts +0 -176
- package/src/internal/types/util.ts +0 -9
- package/src/query/index.ts +0 -6
- package/src/query/query.test.ts +0 -362
- package/src/query/query.ts +0 -784
- package/src/query/tag.ts +0 -35
- package/src/test/api.test.ts +0 -180
- package/src/testing/echo-schema.ts +0 -39
- package/src/testing/types.ts +0 -91
- /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
- /package/dist/lib/{browser/internal/index.mjs.map → neutral/Database.mjs.map} +0 -0
- /package/dist/lib/{browser/query/index.mjs.map → neutral/Entity.mjs.map} +0 -0
- /package/dist/lib/{node-esm/index.mjs.map → neutral/Err.mjs.map} +0 -0
- /package/dist/lib/{node-esm/internal/index.mjs.map → neutral/Extension.mjs.map} +0 -0
- /package/dist/lib/{node-esm/query/index.mjs.map → neutral/Feed.mjs.map} +0 -0
- /package/dist/types/src/internal/{ast → Annotation}/annotations.test.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.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/{json → JsonSchema}/effect-schema.test.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 → JsonSchema}/json-schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/common.d.ts +0 -0
- /package/dist/types/src/internal/{object → Obj}/ids.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}/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/{projection → Type}/compose.test.d.ts +0 -0
- /package/dist/types/src/internal/{schema → Type}/manipulation.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/handler.test.d.ts +0 -0
- /package/dist/types/src/internal/{object → 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}/typed-handler.test.d.ts +0 -0
- /package/dist/types/src/internal/{proxy → common/proxy}/typed-object.test.d.ts +0 -0
- /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
- /package/src/internal/{formats → Format}/index.ts +0 -0
- /package/src/internal/{json → JsonSchema}/effect-schema.test.ts +0 -0
- /package/src/internal/{ref → Ref}/index.ts +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Currency,
|
|
3
|
+
CurrencyAnnotationId,
|
|
4
|
+
DecimalPrecision,
|
|
5
|
+
Email,
|
|
6
|
+
Format,
|
|
7
|
+
FormatAnnotation,
|
|
8
|
+
FormatAnnotationId,
|
|
9
|
+
FormatEnums,
|
|
10
|
+
Formula,
|
|
11
|
+
GeoLocation,
|
|
12
|
+
GeoPoint,
|
|
13
|
+
Hostname,
|
|
14
|
+
JSON,
|
|
15
|
+
Markdown,
|
|
16
|
+
OptionsAnnotation,
|
|
17
|
+
OptionsAnnotationId,
|
|
18
|
+
PropertyKind,
|
|
19
|
+
Regex,
|
|
20
|
+
SelectOption,
|
|
21
|
+
Text,
|
|
22
|
+
TypeEnum,
|
|
23
|
+
TypeFormat,
|
|
24
|
+
URL,
|
|
25
|
+
UUID,
|
|
26
|
+
formatToType,
|
|
27
|
+
getFormatAnnotation,
|
|
28
|
+
getOptionsAnnotation,
|
|
29
|
+
getTypeEnum,
|
|
30
|
+
typeToFormat
|
|
31
|
+
} from "./chunk-TRPZU2HV.mjs";
|
|
32
|
+
import {
|
|
33
|
+
__export
|
|
34
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
35
|
+
|
|
36
|
+
// src/Format.ts
|
|
37
|
+
var Format_exports = {};
|
|
38
|
+
__export(Format_exports, {
|
|
39
|
+
Currency: () => Currency,
|
|
40
|
+
CurrencyAnnotationId: () => CurrencyAnnotationId,
|
|
41
|
+
DecimalPrecision: () => DecimalPrecision,
|
|
42
|
+
Email: () => Email,
|
|
43
|
+
Format: () => Format,
|
|
44
|
+
FormatAnnotation: () => FormatAnnotation,
|
|
45
|
+
FormatAnnotationId: () => FormatAnnotationId,
|
|
46
|
+
FormatEnums: () => FormatEnums,
|
|
47
|
+
Formula: () => Formula,
|
|
48
|
+
GeoLocation: () => GeoLocation,
|
|
49
|
+
GeoPoint: () => GeoPoint,
|
|
50
|
+
Hostname: () => Hostname,
|
|
51
|
+
JSON: () => JSON,
|
|
52
|
+
Markdown: () => Markdown,
|
|
53
|
+
OptionsAnnotation: () => OptionsAnnotation,
|
|
54
|
+
OptionsAnnotationId: () => OptionsAnnotationId,
|
|
55
|
+
PropertyKind: () => PropertyKind,
|
|
56
|
+
Regex: () => Regex,
|
|
57
|
+
SelectOption: () => SelectOption,
|
|
58
|
+
Text: () => Text,
|
|
59
|
+
TypeEnum: () => TypeEnum,
|
|
60
|
+
TypeFormat: () => TypeFormat,
|
|
61
|
+
URL: () => URL,
|
|
62
|
+
UUID: () => UUID,
|
|
63
|
+
formatToType: () => formatToType,
|
|
64
|
+
getFormatAnnotation: () => getFormatAnnotation,
|
|
65
|
+
getOptionsAnnotation: () => getOptionsAnnotation,
|
|
66
|
+
getTypeEnum: () => getTypeEnum,
|
|
67
|
+
typeToFormat: () => typeToFormat
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
Format_exports
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=chunk-44HT3MEC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Format.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as internal from './internal';\n\nexport * from './internal/Format';\n\nexport type Format = internal.TypeFormat;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isInstanceOf
|
|
3
|
+
} from "./chunk-GECFB2UL.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ObjectNotFoundError
|
|
6
|
+
} from "./chunk-ZISMEVKD.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__export
|
|
9
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
10
|
+
|
|
11
|
+
// src/Database.ts
|
|
12
|
+
var Database_exports = {};
|
|
13
|
+
__export(Database_exports, {
|
|
14
|
+
Database: () => Database,
|
|
15
|
+
Service: () => Service,
|
|
16
|
+
TypeId: () => TypeId,
|
|
17
|
+
add: () => add,
|
|
18
|
+
flush: () => flush,
|
|
19
|
+
isDatabase: () => isDatabase,
|
|
20
|
+
layer: () => layer,
|
|
21
|
+
load: () => load,
|
|
22
|
+
loadOption: () => loadOption,
|
|
23
|
+
makeService: () => makeService,
|
|
24
|
+
notAvailable: () => notAvailable,
|
|
25
|
+
query: () => query,
|
|
26
|
+
registerSchema: () => registerSchema,
|
|
27
|
+
remove: () => remove,
|
|
28
|
+
resolve: () => resolve,
|
|
29
|
+
runQuery: () => runQuery,
|
|
30
|
+
runQueryFirst: () => runQueryFirst,
|
|
31
|
+
runSchemaQuery: () => runSchemaQuery,
|
|
32
|
+
schemaQuery: () => schemaQuery,
|
|
33
|
+
spaceId: () => spaceId
|
|
34
|
+
});
|
|
35
|
+
import * as Context from "effect/Context";
|
|
36
|
+
import * as Effect from "effect/Effect";
|
|
37
|
+
import * as Layer from "effect/Layer";
|
|
38
|
+
import * as Option from "effect/Option";
|
|
39
|
+
import * as Schema from "effect/Schema";
|
|
40
|
+
import { promiseWithCauseCapture } from "@dxos/effect";
|
|
41
|
+
import { invariant } from "@dxos/invariant";
|
|
42
|
+
import { DXN } from "@dxos/keys";
|
|
43
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Database.ts";
|
|
44
|
+
var TypeId = /* @__PURE__ */ Symbol.for("@dxos/echo/Database");
|
|
45
|
+
var isDatabase = (obj) => {
|
|
46
|
+
return obj ? typeof obj === "object" && TypeId in obj && obj[TypeId] === TypeId : false;
|
|
47
|
+
};
|
|
48
|
+
var Database = Schema.Any.pipe(Schema.filter((space) => isDatabase(space)));
|
|
49
|
+
var Service = class extends Context.Tag("@dxos/echo/Database/Service")() {
|
|
50
|
+
};
|
|
51
|
+
var notAvailable = Layer.succeed(Service, {
|
|
52
|
+
get db() {
|
|
53
|
+
throw new Error("Database not available");
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
var makeService = (db) => {
|
|
57
|
+
return {
|
|
58
|
+
get db() {
|
|
59
|
+
return db;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
var layer = (db) => {
|
|
64
|
+
return Layer.succeed(Service, makeService(db));
|
|
65
|
+
};
|
|
66
|
+
var spaceId = Effect.gen(function* () {
|
|
67
|
+
const { db } = yield* Service;
|
|
68
|
+
return db.spaceId;
|
|
69
|
+
});
|
|
70
|
+
var resolve = (ref, schema) => Effect.gen(function* () {
|
|
71
|
+
const { db } = yield* Service;
|
|
72
|
+
const dxn = ref instanceof DXN ? ref : ref.dxn;
|
|
73
|
+
const object = yield* promiseWithCauseCapture(() => db.graph.createRefResolver({
|
|
74
|
+
context: {
|
|
75
|
+
space: db.spaceId
|
|
76
|
+
}
|
|
77
|
+
}).resolve(dxn));
|
|
78
|
+
if (!object) {
|
|
79
|
+
return yield* Effect.fail(new ObjectNotFoundError(dxn));
|
|
80
|
+
}
|
|
81
|
+
invariant(!schema || isInstanceOf(schema, object), "Object type mismatch.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 67, S: this, A: ["!schema || isInstanceOf(schema, object)", "'Object type mismatch.'"] });
|
|
82
|
+
return object;
|
|
83
|
+
}).pipe(Effect.withSpan("Database.resolve"));
|
|
84
|
+
var load = Effect.fn("Database.load")(function* (ref) {
|
|
85
|
+
const object = yield* promiseWithCauseCapture(() => ref.tryLoad());
|
|
86
|
+
if (!object) {
|
|
87
|
+
return yield* Effect.fail(new ObjectNotFoundError(ref.dxn));
|
|
88
|
+
}
|
|
89
|
+
return object;
|
|
90
|
+
});
|
|
91
|
+
var loadOption = Effect.fn("Database.loadOption")(function* (ref) {
|
|
92
|
+
const object = yield* load(ref).pipe(Effect.catchTag("ObjectNotFoundError", () => Effect.succeed(void 0)));
|
|
93
|
+
return Option.fromNullable(object);
|
|
94
|
+
});
|
|
95
|
+
var add = (obj) => Service.pipe(Effect.map(({ db }) => db.add(obj))).pipe(Effect.withSpan("Database.add"));
|
|
96
|
+
var remove = (obj) => Service.pipe(Effect.map(({ db }) => db.remove(obj))).pipe(Effect.withSpan("Database.remove"));
|
|
97
|
+
var flush = (opts) => Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts)))).pipe(Effect.withSpan("Database.flush"));
|
|
98
|
+
var query = (queryOrFilter) => Service.pipe(Effect.map(({ db }) => db.query(queryOrFilter)), Effect.withSpan("Database.query"));
|
|
99
|
+
var runQuery = (queryOrFilter) => query(queryOrFilter).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())), Effect.withSpan("Database.runQuery"));
|
|
100
|
+
var runQueryFirst = (queryOrFilter) => query(queryOrFilter).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(async () => Option.fromNullable(await queryResult.firstOrUndefined()))), Effect.withSpan("Database.runQueryFirst"));
|
|
101
|
+
var registerSchema = (input) => Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.schemaRegistry.register(input))), Effect.withSpan("Database.registerSchema"));
|
|
102
|
+
var schemaQuery = (schemaQueryOptions) => Service.pipe(Effect.map(({ db }) => db.schemaRegistry.query(schemaQueryOptions)), Effect.withSpan("Database.schemaQuery"));
|
|
103
|
+
var runSchemaQuery = (schemaQueryOptions) => schemaQuery(schemaQueryOptions).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));
|
|
104
|
+
|
|
105
|
+
export {
|
|
106
|
+
TypeId,
|
|
107
|
+
isDatabase,
|
|
108
|
+
Database,
|
|
109
|
+
Service,
|
|
110
|
+
notAvailable,
|
|
111
|
+
makeService,
|
|
112
|
+
layer,
|
|
113
|
+
spaceId,
|
|
114
|
+
resolve,
|
|
115
|
+
load,
|
|
116
|
+
loadOption,
|
|
117
|
+
add,
|
|
118
|
+
remove,
|
|
119
|
+
flush,
|
|
120
|
+
query,
|
|
121
|
+
runQuery,
|
|
122
|
+
runQueryFirst,
|
|
123
|
+
registerSchema,
|
|
124
|
+
schemaQuery,
|
|
125
|
+
runSchemaQuery,
|
|
126
|
+
Database_exports
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=chunk-4VTRFJV3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Database.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport type * as Types from 'effect/Types';\n\nimport { promiseWithCauseCapture } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, type SpaceId } from '@dxos/keys';\n\nimport type * as Entity from './Entity';\nimport * as Err from './Err';\nimport type * as Filter from './Filter';\nimport type * as Hypergraph from './Hypergraph';\nimport { isInstanceOf } from './internal/Annotation';\nimport { type AnyProperties } from './internal/common/types';\nimport type { Ref } from './internal/Ref/ref';\nimport type * as Obj from './Obj';\nimport type * as Query from './Query';\nimport type * as QueryResult from './QueryResult';\nimport type * as SchemaRegistry from './SchemaRegistry';\nimport type * as Type from './Type';\n\n/**\n * `query` API function declaration.\n */\n// TODO(burdon): Reconcile Query and Filter (should only have one root type).\nexport interface QueryFn {\n <Q extends Query.Any>(query: Q): QueryResult.QueryResult<Query.Type<Q>>;\n <F extends Filter.Any>(filter: F): QueryResult.QueryResult<Filter.Type<F>>;\n}\n\n/**\n * Common interface for Database and Queue.\n */\nexport interface Queryable {\n query: QueryFn;\n}\n\nexport type GetObjectByIdOptions = {\n deleted?: boolean;\n};\n\nexport type ObjectPlacement = 'root-doc' | 'linked-doc';\n\nexport type AddOptions = {\n /**\n * Where to place the object in the Automerge document tree.\n * Root document is always loaded with the space.\n * Linked documents are loaded lazily.\n * Placing large number of objects in the root document may slow down the initial load.\n *\n * @default 'linked-doc'\n */\n placeIn?: ObjectPlacement;\n};\n\nexport type FlushOptions = {\n /**\n * Write any pending changes to disk.\n * @default true\n */\n disk?: boolean;\n\n /**\n * Wait for pending index updates.\n * @default true\n */\n indexes?: boolean;\n\n /**\n * Flush pending updates to objects and queries.\n * @default false\n */\n updates?: boolean;\n};\n\n/**\n * Identifier denoting an ECHO Database.\n */\nexport const TypeId = Symbol.for('@dxos/echo/Database');\nexport type TypeId = typeof TypeId;\n\n/**\n * ECHO Database interface.\n */\nexport interface Database extends Queryable {\n readonly [TypeId]: TypeId;\n\n get spaceId(): SpaceId;\n\n // TODO(burdon): Can we move this into graph?\n get schemaRegistry(): SchemaRegistry.SchemaRegistry;\n\n get graph(): Hypergraph.Hypergraph;\n\n toJSON(): object;\n\n /**\n * Return object by local ID.\n */\n getObjectById<T extends Obj.Unknown = Obj.OfShape<AnyProperties>>(\n id: string,\n opts?: GetObjectByIdOptions,\n ): T | undefined;\n\n /**\n * Query objects.\n */\n query: QueryFn;\n\n /**\n * Creates a reference to an existing object in the database.\n *\n * NOTE: The reference may be dangling if the object is not present in the database.\n * NOTE: Difference from `Ref.fromDXN`\n * `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.\n * `db.makeRef(dxn)` is preferable in cases with access to the database.\n */\n makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref<T>;\n\n /**\n * Adds object to the database.\n */\n add<T extends Entity.Unknown = Entity.Unknown>(obj: T, opts?: AddOptions): T;\n\n /**\n * Removes object from the database.\n */\n // TODO(burdon): Return true if removed (currently throws if not present).\n remove(obj: Entity.Unknown): void;\n\n /**\n * Wait for all pending changes to be saved to disk.\n * Optionaly waits for changes to be propagated to indexes and event handlers.\n */\n flush(opts?: FlushOptions): Promise<void>;\n}\n\nexport const isDatabase = (obj: unknown): obj is Database => {\n return obj ? typeof obj === 'object' && TypeId in obj && obj[TypeId] === TypeId : false;\n};\n\nexport const Database: Schema.Schema<Database> = Schema.Any.pipe(Schema.filter((space) => isDatabase(space)));\n\n/**\n * Effect service tag for Database dependency injection.\n */\nexport class Service extends Context.Tag('@dxos/echo/Database/Service')<\n Service,\n {\n readonly db: Database;\n }\n>() {}\n\n/**\n * Layer that provides a Database service that throws when accessed.\n * Useful as a default layer when no database is available.\n */\nexport const notAvailable = Layer.succeed(Service, {\n get db(): Database {\n throw new Error('Database not available');\n },\n});\n\n/**\n * Creates a Database service instance from a Database.\n */\nexport const makeService = (db: Database): Context.Tag.Service<Service> => {\n return {\n get db() {\n return db;\n },\n };\n};\n\n/**\n * Creates a Layer that provides the Database service.\n */\nexport const layer = (db: Database): Layer.Layer<Service> => {\n return Layer.succeed(Service, makeService(db));\n};\n\n/**\n * Returns the space ID of the database.\n */\nexport const spaceId = Effect.gen(function* () {\n const { db } = yield* Service;\n return db.spaceId;\n});\n\n/**\n * Resolves an object by its DXN.\n */\nexport const resolve: {\n // No type check.\n (ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;\n // Check matches schema.\n <S extends Type.AnyEntity>(\n ref: DXN | Ref<any>,\n schema: S,\n ): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;\n} = (<S extends Type.AnyEntity>(\n ref: DXN | Ref<any>,\n schema?: S,\n): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service> =>\n Effect.gen(function* () {\n const { db } = yield* Service;\n const dxn = ref instanceof DXN ? ref : ref.dxn;\n const object = yield* promiseWithCauseCapture(() =>\n db.graph\n .createRefResolver({\n context: {\n space: db.spaceId,\n },\n })\n .resolve(dxn),\n );\n\n if (!object) {\n return yield* Effect.fail(new Err.ObjectNotFoundError(dxn));\n }\n invariant(!schema || isInstanceOf(schema, object), 'Object type mismatch.');\n return object as any;\n }).pipe(Effect.withSpan('Database.resolve'))) as any;\n\n/**\n * Loads an object reference.\n */\nexport const load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never> = Effect.fn('Database.load')(\n function* (ref) {\n const object = yield* promiseWithCauseCapture(() => ref.tryLoad());\n if (!object) {\n return yield* Effect.fail(new Err.ObjectNotFoundError(ref.dxn));\n }\n return object;\n },\n);\n\n/**\n * Loads an object reference option.\n */\n// TODO(dmaretskyi): Do we need this -- you can just use `Effect.catchTag` in calling code instead.\nexport const loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never> = Effect.fn(\n 'Database.loadOption',\n)(function* (ref) {\n const object = yield* load(ref).pipe(Effect.catchTag('ObjectNotFoundError', () => Effect.succeed(undefined)));\n\n return Option.fromNullable(object);\n});\n\n/**\n * Adds an object to the database.\n * @see {@link Database.add}\n */\nexport const add = <T extends Entity.Unknown>(obj: T): Effect.Effect<T, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.add(obj))).pipe(Effect.withSpan('Database.add'));\n\n/**\n * Removes an object from the database.\n * @see {@link Database.remove}\n */\nexport const remove = <T extends Entity.Unknown>(obj: T): Effect.Effect<void, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.remove(obj))).pipe(Effect.withSpan('Database.remove'));\n\n/**\n * Flushes pending changes to disk.\n * @see {@link Database.flush}\n */\nexport const flush = (opts?: FlushOptions) =>\n Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts)))).pipe(\n Effect.withSpan('Database.flush'),\n );\n\n/**\n * Creates a `QueryResult` object that can be subscribed to.\n */\nexport const query: {\n <Q extends Query.Any>(query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;\n <F extends Filter.Any>(filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;\n} = (queryOrFilter: Query.Any | Filter.Any) =>\n Service.pipe(\n Effect.map(({ db }) => db.query(queryOrFilter as any) as QueryResult.QueryResult<any>),\n Effect.withSpan('Database.query'),\n );\n\n/**\n * Executes the query once and returns the results.\n */\nexport const runQuery: {\n <Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;\n <F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;\n} = (queryOrFilter: Query.Any | Filter.Any) =>\n query(queryOrFilter as any).pipe(\n Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())),\n Effect.withSpan('Database.runQuery'),\n );\n\n/**\n * Executes the query once and returns the first result as or None.\n */\nexport const runQueryFirst: {\n <Q extends Query.Any>(query: Q): Effect.Effect<Option.Option<Query.Type<Q>>, never, Service>;\n <F extends Filter.Any>(filter: F): Effect.Effect<Option.Option<Filter.Type<F>>, never, Service>;\n} = (queryOrFilter: Query.Any | Filter.Any) =>\n query(queryOrFilter as any).pipe(\n Effect.flatMap((queryResult) =>\n promiseWithCauseCapture(async () => Option.fromNullable(await queryResult.firstOrUndefined())),\n ),\n Effect.withSpan('Database.runQueryFirst'),\n );\n\n/**\n * Persists schemas in the database so they replicate to other clients.\n * @see {@link SchemaRegistry.SchemaRegistry.register}\n */\nexport const registerSchema = (\n input: SchemaRegistry.RegisterSchemaInput[],\n): Effect.Effect<Type.RuntimeType[], never, Service> =>\n Service.pipe(\n Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.schemaRegistry.register(input))),\n Effect.withSpan('Database.registerSchema'),\n );\n\n/**\n * Creates a schema query result that can be subscribed to.\n */\n// TODO(dmaretskyi): Change API to `yield* Database.querySchema(...).first` and `yield* Database.querySchema(...).schema`.\nexport const schemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n schemaQueryOptions?: Q & SchemaRegistry.Query,\n): Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service> =>\n Service.pipe(\n Effect.map(({ db }) => db.schemaRegistry.query(schemaQueryOptions)),\n Effect.withSpan('Database.schemaQuery'),\n );\n\n/**\n * Executes a schema query once and returns the results.\n */\nexport const runSchemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n schemaQueryOptions?: Q & SchemaRegistry.Query,\n): Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service> =>\n schemaQuery(schemaQueryOptions).pipe(\n Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;AAMA,YAAYA,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAGxB,SAASC,+BAA+B;AACxC,SAASC,iBAAiB;AAC1B,SAASC,WAAyB;AAqElC,IAAA,eAAA;AA+DSC,IAAM,SAAOA,uBAAQ,IAAA,qBAAsBA;AAClD,IAAA,aAAA,CAAA,QAAA;AAEF,SAAO,MAAMC,OAAoCC,QAAOC,YAASD,UAAc,OAACE,IAAUC,MAAAA,MAAWD,SAAS;AAE9G;;AAUA,IAAA,UAAA,cAAA,YAAA,6BAAA,EAAA,EAAA;;AAMI,IAAM,eAAU,cAAA,SAAA;EAClB,IAAA,KAAA;AACC,UAAA,IAAA,MAAA,wBAAA;EAEH;;AAKI,IAAIE,cAAK,CAAA,OAAA;;IAET,IAAA,KAAA;AACF,aAAA;IACA;EAEF;;AAKE,IAAA,QAAA,CAAA,OAAA;AAEF,SAAA,cAAA,SAAA,YAAA,EAAA,CAAA;;AAKSA,IAAGC,UAAO,WAAA,aAAA;AAChB,QAAA,EAAA,GAAA,IAAA,OAAA;AAEH,SAAA,GAAA;;AAiBI,IAAMC,UAAMC,CAAAA,KAAAA,WAA2BA,WAAID,aAAG;AAC9C,QAAME,EAAAA,GAAAA,IAAS,OAAOC;cAGhBC,eAAS,MAAA,MAAA,IAAA;iBACPR,OAAUG,wBAAO,MAAA,GAAA,MAAA,kBAAA;IACnB,SAAA;MAEDM,OAAQL,GAAAA;IAGRE;EACH,CAAA,EAAA,QAAO,GAAOI,CAAAA;AAChB,MAAA,CAAA,QAAA;AACAC,WAAWC,OAAUC,YAAAA,IAAaD,oBAAiB,GAAA,CAAA;EACnD;AACCE,YAAKJ,CAAOK,UAAS,aAAA,QAA6B,MAAA,GAAA,yBAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,2CAAA,yBAAA,EAAA,CAAA;AAEvD,SAAA;;AAMST,IAAQ,OAAA,UAAA,eAAA,EAAA,WAAA,KAAA;QACX,SAAO,OAAOI,wBAAoBM,MAAAA,IAAAA,QAAwBZ,CAAAA;AAC5D,MAAA,CAAA,QAAA;AACA,WAAOE,OAAAA,YAAAA,IAAAA,oBAAAA,IAAAA,GAAAA,CAAAA;EAET;AAEF,SAAA;;AASE,IAAOW,aAAoBX,UAAAA,qBAAAA,EAAAA,WAAAA,KAAAA;AAC1B,QAAA,SAAA,OAAA,KAAA,GAAA,EAAA,KAAA,gBAAA,uBAAA,MAAA,eAAA,MAAA,CAAA,CAAA;AAEH,SAAA,oBAAA,MAAA;;;;;;;;;;;",
|
|
6
|
+
"names": ["Context", "Effect", "Layer", "Option", "Schema", "promiseWithCauseCapture", "invariant", "DXN", "obj", "Database", "Schema", "Any", "space", "isDatabase", "db", "spaceId", "dxn", "ref", "object", "promiseWithCauseCapture", "context", "resolve", "Effect", "invariant", "schema", "isInstanceOf", "pipe", "withSpan", "ObjectNotFoundError", "Option"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Ref
|
|
3
|
+
} from "./chunk-62RJTYOZ.mjs";
|
|
4
|
+
|
|
5
|
+
// src/internal/Ref/ref-array.ts
|
|
6
|
+
import { isNonNullable } from "@dxos/util";
|
|
7
|
+
var RefArray = Object.freeze({
|
|
8
|
+
/**
|
|
9
|
+
* @returns all resolved targets.
|
|
10
|
+
*/
|
|
11
|
+
targets: (refs) => {
|
|
12
|
+
return refs.map((ref) => ref.target).filter(isNonNullable);
|
|
13
|
+
},
|
|
14
|
+
/**
|
|
15
|
+
* Load all referenced objects.
|
|
16
|
+
*/
|
|
17
|
+
loadAll: (refs) => {
|
|
18
|
+
return Promise.all(refs.map((ref) => ref.load()));
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Removes the ref with the given id.
|
|
22
|
+
*/
|
|
23
|
+
removeById: (refs, id) => {
|
|
24
|
+
const index = refs.findIndex(Ref.hasObjectId(id));
|
|
25
|
+
if (index >= 0) {
|
|
26
|
+
refs.splice(index, 1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
RefArray
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=chunk-5NR2KWDU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/Ref/ref-array.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ObjectId } from '@dxos/keys';\nimport { isNonNullable } from '@dxos/util';\n\nimport { type AnyEntity } from '../common/types';\nimport { Ref } from './ref';\n\n/**\n * Helper functions for working with arrays of refs.\n */\nexport const RefArray = Object.freeze({\n /**\n * @returns all resolved targets.\n */\n targets: <T extends AnyEntity>(refs: readonly Ref<T>[]): T[] => {\n return refs.map((ref) => ref.target).filter(isNonNullable);\n },\n\n /**\n * Load all referenced objects.\n */\n loadAll: <T extends AnyEntity>(refs: readonly Ref<T>[]): Promise<T[]> => {\n return Promise.all(refs.map((ref) => ref.load()));\n },\n\n /**\n * Removes the ref with the given id.\n */\n removeById: (refs: Ref<AnyEntity>[], id: ObjectId) => {\n const index = refs.findIndex(Ref.hasObjectId(id));\n if (index >= 0) {\n refs.splice(index, 1);\n }\n },\n});\n"],
|
|
5
|
+
"mappings": ";;;;;AAKA,SAASA,qBAAqB;AAQvB,IAAMC,WAAWC,OAAOC,OAAO;;;;EAIpCC,SAAS,CAAsBC,SAAAA;AAC7B,WAAOA,KAAKC,IAAI,CAACC,QAAQA,IAAIC,MAAM,EAAEC,OAAOC,aAAAA;EAC9C;;;;EAKAC,SAAS,CAAsBN,SAAAA;AAC7B,WAAOO,QAAQC,IAAIR,KAAKC,IAAI,CAACC,QAAQA,IAAIO,KAAI,CAAA,CAAA;EAC/C;;;;EAKAC,YAAY,CAACV,MAAwBW,OAAAA;AACnC,UAAMC,QAAQZ,KAAKa,UAAUC,IAAIC,YAAYJ,EAAAA,CAAAA;AAC7C,QAAIC,SAAS,GAAG;AACdZ,WAAKgB,OAAOJ,OAAO,CAAA;IACrB;EACF;AACF,CAAA;",
|
|
6
|
+
"names": ["isNonNullable", "RefArray", "Object", "freeze", "targets", "refs", "map", "ref", "target", "filter", "isNonNullable", "loadAll", "Promise", "all", "load", "removeById", "id", "index", "findIndex", "Ref", "hasObjectId", "splice"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Service
|
|
3
|
+
} from "./chunk-4VTRFJV3.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ReferenceAnnotationId,
|
|
6
|
+
getSchemaDXN,
|
|
7
|
+
getTypeAnnotation,
|
|
8
|
+
getTypeIdentifierAnnotation
|
|
9
|
+
} from "./chunk-GECFB2UL.mjs";
|
|
10
|
+
|
|
11
|
+
// src/internal/Ref/ref.ts
|
|
12
|
+
import * as Effect from "effect/Effect";
|
|
13
|
+
import * as Equal from "effect/Equal";
|
|
14
|
+
import * as Hash from "effect/Hash";
|
|
15
|
+
import * as Option from "effect/Option";
|
|
16
|
+
import * as ParseResult from "effect/ParseResult";
|
|
17
|
+
import * as Pipeable from "effect/Pipeable";
|
|
18
|
+
import * as Schema from "effect/Schema";
|
|
19
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
20
|
+
import { Event } from "@dxos/async";
|
|
21
|
+
import { inspectCustom } from "@dxos/debug";
|
|
22
|
+
import { EncodedReference } from "@dxos/echo-protocol";
|
|
23
|
+
import { assertArgument, invariant } from "@dxos/invariant";
|
|
24
|
+
import { DXN, ObjectId } from "@dxos/keys";
|
|
25
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/internal/Ref/ref.ts";
|
|
26
|
+
var JSON_SCHEMA_ECHO_REF_ID = "/schemas/echo/ref";
|
|
27
|
+
var getSchemaReference = (property) => {
|
|
28
|
+
const { $id, reference: { schema: { $ref } = {} } = {} } = property;
|
|
29
|
+
if ($id === JSON_SCHEMA_ECHO_REF_ID && $ref) {
|
|
30
|
+
return {
|
|
31
|
+
typename: DXN.parse($ref).typename
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var createSchemaReference = (typename) => {
|
|
36
|
+
return {
|
|
37
|
+
$id: JSON_SCHEMA_ECHO_REF_ID,
|
|
38
|
+
reference: {
|
|
39
|
+
schema: {
|
|
40
|
+
$ref: DXN.fromTypename(typename).toString()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
var getReferenceAst = (ast) => {
|
|
46
|
+
if (ast._tag !== "Declaration" || !ast.annotations[ReferenceAnnotationId]) {
|
|
47
|
+
return void 0;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
typename: ast.annotations[ReferenceAnnotationId].typename,
|
|
51
|
+
version: ast.annotations[ReferenceAnnotationId].version
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
var RefTypeId = /* @__PURE__ */ Symbol("@dxos/echo/internal/Ref");
|
|
55
|
+
var Ref = (schema) => {
|
|
56
|
+
assertArgument(Schema.isSchema(schema), "schema", "Must call with an instance of effect-schema");
|
|
57
|
+
const annotation = getTypeAnnotation(schema);
|
|
58
|
+
if (annotation == null) {
|
|
59
|
+
throw new Error("Reference target must be an ECHO schema.");
|
|
60
|
+
}
|
|
61
|
+
return createEchoReferenceSchema(getTypeIdentifierAnnotation(schema), annotation.typename, annotation.version);
|
|
62
|
+
};
|
|
63
|
+
Ref.isRef = (obj) => {
|
|
64
|
+
return obj && typeof obj === "object" && RefTypeId in obj;
|
|
65
|
+
};
|
|
66
|
+
Ref.hasObjectId = (id) => (ref) => ref.dxn.isLocalObjectId() && ref.dxn.parts[1] === id;
|
|
67
|
+
Ref.isRefSchema = (schema) => {
|
|
68
|
+
return Ref.isRefSchemaAST(schema.ast);
|
|
69
|
+
};
|
|
70
|
+
Ref.isRefSchemaAST = (ast) => {
|
|
71
|
+
return SchemaAST.getAnnotation(ast, ReferenceAnnotationId).pipe(Option.isSome);
|
|
72
|
+
};
|
|
73
|
+
Ref.make = (obj) => {
|
|
74
|
+
if (typeof obj !== "object" || obj === null) {
|
|
75
|
+
throw new TypeError("Expected: ECHO object.");
|
|
76
|
+
}
|
|
77
|
+
const id = obj.id;
|
|
78
|
+
invariant(ObjectId.isValid(id), "Invalid object ID", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 76, S: void 0, A: ["ObjectId.isValid(id)", "'Invalid object ID'"] });
|
|
79
|
+
const dxn = DXN.fromLocalObjectId(id);
|
|
80
|
+
return new RefImpl(dxn, obj);
|
|
81
|
+
};
|
|
82
|
+
Ref.fromDXN = (dxn) => {
|
|
83
|
+
assertArgument(dxn instanceof DXN, "dxn", "Expected DXN");
|
|
84
|
+
return new RefImpl(dxn);
|
|
85
|
+
};
|
|
86
|
+
var createEchoReferenceSchema = (echoId, typename, version) => {
|
|
87
|
+
if (!echoId && !typename) {
|
|
88
|
+
throw new TypeError("Either echoId or typename must be provided.");
|
|
89
|
+
}
|
|
90
|
+
const referenceInfo = {
|
|
91
|
+
schema: {
|
|
92
|
+
// TODO(dmaretskyi): Include version?
|
|
93
|
+
$ref: echoId ?? DXN.fromTypename(typename).toString()
|
|
94
|
+
},
|
|
95
|
+
schemaVersion: version
|
|
96
|
+
};
|
|
97
|
+
const refSchema = Schema.declare([], {
|
|
98
|
+
encode: () => {
|
|
99
|
+
return (value) => Effect.gen(function* () {
|
|
100
|
+
if (Ref.isRef(value)) {
|
|
101
|
+
return EncodedReference.fromDXN(value.dxn);
|
|
102
|
+
} else if (EncodedReference.isEncodedReference(value)) {
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
throw new Error("Invalid reference");
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
decode: () => {
|
|
109
|
+
return (value) => Effect.gen(function* () {
|
|
110
|
+
const dbService = yield* Effect.serviceOption(Service);
|
|
111
|
+
if (Ref.isRef(value)) {
|
|
112
|
+
if (Option.isSome(dbService)) {
|
|
113
|
+
return dbService.value.db.makeRef(value.dxn);
|
|
114
|
+
} else {
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (!EncodedReference.isEncodedReference(value)) {
|
|
119
|
+
return yield* Effect.fail(new ParseResult.Unexpected(value, "reference"));
|
|
120
|
+
}
|
|
121
|
+
if (Option.isSome(dbService)) {
|
|
122
|
+
return dbService.value.db.makeRef(EncodedReference.toDXN(value));
|
|
123
|
+
} else {
|
|
124
|
+
return Ref.fromDXN(EncodedReference.toDXN(value));
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
jsonSchema: {
|
|
130
|
+
// TODO(dmaretskyi): We should remove `$id` and keep `$ref` with a fully qualified name.
|
|
131
|
+
$id: JSON_SCHEMA_ECHO_REF_ID,
|
|
132
|
+
$ref: JSON_SCHEMA_ECHO_REF_ID,
|
|
133
|
+
reference: referenceInfo
|
|
134
|
+
},
|
|
135
|
+
[ReferenceAnnotationId]: {
|
|
136
|
+
typename: typename ?? "",
|
|
137
|
+
version
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
return refSchema;
|
|
141
|
+
};
|
|
142
|
+
var RefImpl = class _RefImpl {
|
|
143
|
+
#dxn;
|
|
144
|
+
#resolver = void 0;
|
|
145
|
+
#resolved = new Event();
|
|
146
|
+
/**
|
|
147
|
+
* Target is set when the reference is created from a specific object.
|
|
148
|
+
* In this case, the target might not be in the database.
|
|
149
|
+
*/
|
|
150
|
+
#target = void 0;
|
|
151
|
+
/**
|
|
152
|
+
* Callback to issue a reactive notification when object is resolved.
|
|
153
|
+
*/
|
|
154
|
+
#resolverCallback = () => {
|
|
155
|
+
this.#resolved.emit();
|
|
156
|
+
};
|
|
157
|
+
constructor(dxn, target) {
|
|
158
|
+
this.#dxn = dxn;
|
|
159
|
+
this.#target = target;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @inheritdoc
|
|
163
|
+
*/
|
|
164
|
+
get dxn() {
|
|
165
|
+
return this.#dxn;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* @inheritdoc
|
|
169
|
+
*/
|
|
170
|
+
get isAvailable() {
|
|
171
|
+
return this.#target !== void 0 || this.#resolver !== void 0;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @inheritdoc
|
|
175
|
+
*/
|
|
176
|
+
get target() {
|
|
177
|
+
if (this.#target) {
|
|
178
|
+
return this.#target;
|
|
179
|
+
}
|
|
180
|
+
invariant(this.#resolver, "Resolver is not set", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 181, S: this, A: ["this.#resolver", "'Resolver is not set'"] });
|
|
181
|
+
return this.#resolver.resolveSync(this.#dxn, true, this.#resolverCallback);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @inheritdoc
|
|
185
|
+
*/
|
|
186
|
+
async load() {
|
|
187
|
+
if (this.#target) {
|
|
188
|
+
return this.#target;
|
|
189
|
+
}
|
|
190
|
+
invariant(this.#resolver, "Resolver is not set", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 190, S: this, A: ["this.#resolver", "'Resolver is not set'"] });
|
|
191
|
+
const obj = await this.#resolver.resolve(this.#dxn);
|
|
192
|
+
if (obj == null) {
|
|
193
|
+
throw new Error("Object not found");
|
|
194
|
+
}
|
|
195
|
+
return obj;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* @inheritdoc
|
|
199
|
+
*/
|
|
200
|
+
async tryLoad() {
|
|
201
|
+
if (this.#target) {
|
|
202
|
+
return this.#target;
|
|
203
|
+
}
|
|
204
|
+
invariant(this.#resolver, "Resolver is not set", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 203, S: this, A: ["this.#resolver", "'Resolver is not set'"] });
|
|
205
|
+
return await this.#resolver.resolve(this.#dxn);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @inheritdoc
|
|
209
|
+
*/
|
|
210
|
+
onResolved(callback) {
|
|
211
|
+
return this.#resolved.on(callback);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Do not inline the target object in the reference.
|
|
215
|
+
* Makes .target unavailable unless the reference is connected to a database context.
|
|
216
|
+
* Clones the reference object.
|
|
217
|
+
*/
|
|
218
|
+
noInline() {
|
|
219
|
+
const ref = new _RefImpl(this.#dxn, void 0);
|
|
220
|
+
ref.#resolver = this.#resolver;
|
|
221
|
+
return ref;
|
|
222
|
+
}
|
|
223
|
+
encode() {
|
|
224
|
+
return {
|
|
225
|
+
"/": this.#dxn.toString(),
|
|
226
|
+
...this.#target ? {
|
|
227
|
+
target: this.#target
|
|
228
|
+
} : {}
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Serializes the reference to a JSON object.
|
|
233
|
+
* The serialization format is compatible with the IPLD-style encoded references.
|
|
234
|
+
* When a reference has a saved target (i.e. the target or object holding the reference is not in the database),
|
|
235
|
+
* the target is included in the serialized object.
|
|
236
|
+
*/
|
|
237
|
+
toJSON() {
|
|
238
|
+
return this.encode();
|
|
239
|
+
}
|
|
240
|
+
toString() {
|
|
241
|
+
if (this.#target) {
|
|
242
|
+
return `Ref(${this.#target.toString()})`;
|
|
243
|
+
}
|
|
244
|
+
return `Ref(${this.#dxn.toString()})`;
|
|
245
|
+
}
|
|
246
|
+
[inspectCustom] = (depth, options, inspect) => {
|
|
247
|
+
return this.toString();
|
|
248
|
+
};
|
|
249
|
+
[RefTypeId] = refVariance;
|
|
250
|
+
/**
|
|
251
|
+
* Effect Hash trait. Required for MutableHashMap-based caches (e.g., Atom.family)
|
|
252
|
+
* to deduplicate Ref instances that point to the same object.
|
|
253
|
+
* ECHO proxies return new RefImpl instances on every property access,
|
|
254
|
+
* so without this, each access would create a separate cache entry.
|
|
255
|
+
*/
|
|
256
|
+
[Hash.symbol]() {
|
|
257
|
+
return Hash.hash(this.#dxn.toString());
|
|
258
|
+
}
|
|
259
|
+
/** Effect Equal trait. See {@link Hash.symbol} for rationale. */
|
|
260
|
+
[Equal.symbol](that) {
|
|
261
|
+
return that instanceof _RefImpl && this.#dxn.toString() === that.dxn.toString();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Internal method to set the resolver.
|
|
265
|
+
*
|
|
266
|
+
* @internal
|
|
267
|
+
*/
|
|
268
|
+
_setResolver(resolver) {
|
|
269
|
+
this.#resolver = resolver;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
_getSavedTarget() {
|
|
275
|
+
return this.#target;
|
|
276
|
+
}
|
|
277
|
+
pipe() {
|
|
278
|
+
return Pipeable.pipeArguments(this, arguments);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
var setRefResolver = (ref, resolver) => {
|
|
282
|
+
invariant(ref instanceof RefImpl, "Ref is not an instance of RefImpl", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 277, S: void 0, A: ["ref instanceof RefImpl", "'Ref is not an instance of RefImpl'"] });
|
|
283
|
+
ref._setResolver(resolver);
|
|
284
|
+
};
|
|
285
|
+
var getRefSavedTarget = (ref) => {
|
|
286
|
+
invariant(ref instanceof RefImpl, "Ref is not an instance of RefImpl", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 283, S: void 0, A: ["ref instanceof RefImpl", "'Ref is not an instance of RefImpl'"] });
|
|
287
|
+
return ref._getSavedTarget();
|
|
288
|
+
};
|
|
289
|
+
var refVariance = {
|
|
290
|
+
_T: null
|
|
291
|
+
};
|
|
292
|
+
var refFromEncodedReference = (encodedReference, resolver) => {
|
|
293
|
+
const dxn = DXN.parse(encodedReference["/"]);
|
|
294
|
+
const ref = new RefImpl(dxn);
|
|
295
|
+
if (resolver) {
|
|
296
|
+
setRefResolver(ref, resolver);
|
|
297
|
+
}
|
|
298
|
+
return ref;
|
|
299
|
+
};
|
|
300
|
+
var StaticRefResolver = class {
|
|
301
|
+
objects = /* @__PURE__ */ new Map();
|
|
302
|
+
schemas = /* @__PURE__ */ new Map();
|
|
303
|
+
addObject(obj) {
|
|
304
|
+
this.objects.set(obj.id, obj);
|
|
305
|
+
return this;
|
|
306
|
+
}
|
|
307
|
+
addSchema(schema) {
|
|
308
|
+
const dxn = getSchemaDXN(schema);
|
|
309
|
+
invariant(dxn, "Schema has no DXN", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 308, S: this, A: ["dxn", "'Schema has no DXN'"] });
|
|
310
|
+
this.schemas.set(dxn.toString(), schema);
|
|
311
|
+
return this;
|
|
312
|
+
}
|
|
313
|
+
resolveSync(dxn, _load, _onLoad) {
|
|
314
|
+
const id = dxn?.asEchoDXN()?.echoId;
|
|
315
|
+
if (id == null) {
|
|
316
|
+
return void 0;
|
|
317
|
+
}
|
|
318
|
+
return this.objects.get(id);
|
|
319
|
+
}
|
|
320
|
+
async resolve(dxn) {
|
|
321
|
+
const id = dxn?.asEchoDXN()?.echoId;
|
|
322
|
+
if (id == null) {
|
|
323
|
+
return void 0;
|
|
324
|
+
}
|
|
325
|
+
return this.objects.get(id);
|
|
326
|
+
}
|
|
327
|
+
async resolveSchema(dxn) {
|
|
328
|
+
return this.schemas.get(dxn.toString());
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
export {
|
|
333
|
+
JSON_SCHEMA_ECHO_REF_ID,
|
|
334
|
+
getSchemaReference,
|
|
335
|
+
createSchemaReference,
|
|
336
|
+
getReferenceAst,
|
|
337
|
+
RefTypeId,
|
|
338
|
+
Ref,
|
|
339
|
+
createEchoReferenceSchema,
|
|
340
|
+
RefImpl,
|
|
341
|
+
setRefResolver,
|
|
342
|
+
getRefSavedTarget,
|
|
343
|
+
refFromEncodedReference,
|
|
344
|
+
StaticRefResolver
|
|
345
|
+
};
|
|
346
|
+
//# sourceMappingURL=chunk-62RJTYOZ.mjs.map
|