@dxos/echo 0.8.4-main.dedc0f3 → 0.8.4-main.e00bdcdb52
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/Entity.mjs.map +7 -0
- package/dist/lib/neutral/Err.mjs +12 -0
- package/dist/lib/neutral/Err.mjs.map +7 -0
- package/dist/lib/neutral/Extension.mjs +18 -0
- package/dist/lib/neutral/Extension.mjs.map +7 -0
- package/dist/lib/neutral/Feed.mjs +50 -0
- package/dist/lib/neutral/Feed.mjs.map +7 -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-2T22UGGN.mjs +206 -0
- package/dist/lib/neutral/chunk-2T22UGGN.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-6VC3FI5E.mjs +125 -0
- package/dist/lib/neutral/chunk-6VC3FI5E.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7JFW72MX.mjs +132 -0
- package/dist/lib/neutral/chunk-7JFW72MX.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-BICZKPQG.mjs +7 -0
- package/dist/lib/neutral/chunk-BICZKPQG.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CIWZ5MHQ.mjs +36 -0
- package/dist/lib/neutral/chunk-CIWZ5MHQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-DUNXPKAC.mjs +56 -0
- package/dist/lib/neutral/chunk-DUNXPKAC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FAW7PJRO.mjs +34 -0
- package/dist/lib/neutral/chunk-FAW7PJRO.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FAYW32CW.mjs +27 -0
- package/dist/lib/neutral/chunk-FAYW32CW.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-I2MFJ76N.mjs +354 -0
- package/dist/lib/neutral/chunk-I2MFJ76N.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-JALF2CVV.mjs +345 -0
- package/dist/lib/neutral/chunk-JALF2CVV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KQUQZ3CB.mjs +128 -0
- package/dist/lib/neutral/chunk-KQUQZ3CB.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LOTZLYHB.mjs +420 -0
- package/dist/lib/neutral/chunk-LOTZLYHB.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-NKXEKBP5.mjs +81 -0
- package/dist/lib/neutral/chunk-NKXEKBP5.mjs.map +7 -0
- package/dist/lib/neutral/chunk-NSMLBSFS.mjs +270 -0
- package/dist/lib/neutral/chunk-NSMLBSFS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QBIGOSRF.mjs +45 -0
- package/dist/lib/neutral/chunk-QBIGOSRF.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QBLYZ4IV.mjs +734 -0
- package/dist/lib/neutral/chunk-QBLYZ4IV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QEVM3JUP.mjs +318 -0
- package/dist/lib/neutral/chunk-QEVM3JUP.mjs.map +7 -0
- package/dist/lib/neutral/chunk-REP7WWAQ.mjs +346 -0
- package/dist/lib/neutral/chunk-REP7WWAQ.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-TW76K7H5.mjs +45 -0
- package/dist/lib/neutral/chunk-TW76K7H5.mjs.map +7 -0
- package/dist/lib/neutral/chunk-UYJYDSD7.mjs +2436 -0
- package/dist/lib/neutral/chunk-UYJYDSD7.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-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/neutral/internal/index.mjs +474 -0
- 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 -91
- 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 +288 -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 -100
- 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/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 -4
- 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 +2 -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 +63 -0
- package/dist/types/src/internal/Format/date.d.ts.map +1 -0
- package/dist/types/src/internal/Format/date.test.d.ts +2 -0
- package/dist/types/src/internal/Format/date.test.d.ts.map +1 -0
- package/dist/types/src/internal/Format/format.d.ts +32 -0
- package/dist/types/src/internal/Format/format.d.ts.map +1 -0
- package/dist/types/src/internal/Format/format.test.d.ts +2 -0
- package/dist/types/src/internal/Format/format.test.d.ts.map +1 -0
- package/dist/types/src/internal/Format/index.d.ts +8 -0
- package/dist/types/src/internal/Format/index.d.ts.map +1 -0
- package/dist/types/src/internal/Format/number.d.ts +31 -0
- package/dist/types/src/internal/Format/number.d.ts.map +1 -0
- package/dist/types/src/internal/Format/object.d.ts +35 -0
- package/dist/types/src/internal/Format/object.d.ts.map +1 -0
- package/dist/types/src/internal/Format/select.d.ts +13 -0
- package/dist/types/src/internal/Format/select.d.ts.map +1 -0
- package/dist/types/src/internal/Format/string.d.ts +42 -0
- package/dist/types/src/internal/Format/string.d.ts.map +1 -0
- package/dist/types/src/internal/Format/types.d.ts +72 -0
- package/dist/types/src/internal/Format/types.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/annotations.d.ts +19 -0
- package/dist/types/src/internal/JsonSchema/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/effect-schema.test.d.ts +2 -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 +7 -0
- package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +351 -0
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -0
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts +30 -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 +2 -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 +18 -0
- package/dist/types/src/internal/Obj/common.d.ts.map +1 -0
- package/dist/types/src/internal/Obj/create-object.d.ts +39 -0
- 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 +6 -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 +2 -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 +2 -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 +2 -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 +2 -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 +3 -0
- package/dist/types/src/internal/Ref/index.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref-array.d.ts +21 -0
- package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref.d.ts +244 -0
- package/dist/types/src/internal/Ref/ref.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref.test.d.ts +2 -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 +2 -0
- package/dist/types/src/internal/Type/compose.test.d.ts.map +1 -0
- package/dist/types/src/internal/Type/echo-schema.d.ts +181 -0
- 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 +10 -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 +2 -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 +15 -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 +2 -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/common/proxy/typed-handler.d.ts +48 -0
- 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 +2 -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 +2 -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/common/types/meta.d.ts +33 -0
- 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 +11 -0
- package/dist/types/src/internal/index.d.ts.map +1 -0
- package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +3 -1
- 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 +119 -56
- 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 +716 -212
- 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 +78 -9
- package/src/Relation.test.ts +88 -0
- package/src/Relation.ts +452 -53
- package/src/SchemaRegistry.ts +106 -0
- package/src/Tag.ts +41 -0
- package/src/Type.test.ts +52 -0
- package/src/Type.ts +168 -155
- package/src/View.ts +107 -0
- package/src/hierarchy.test.ts +33 -0
- package/src/index.ts +25 -5
- 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/Format/date.test.ts +55 -0
- package/src/internal/Format/date.ts +217 -0
- package/src/internal/Format/format.test.ts +76 -0
- package/src/internal/Format/format.ts +54 -0
- package/src/internal/Format/index.ts +12 -0
- package/src/internal/Format/number.ts +89 -0
- package/src/internal/Format/object.ts +80 -0
- package/src/internal/Format/select.ts +18 -0
- package/src/internal/Format/string.ts +81 -0
- package/src/internal/Format/types.ts +186 -0
- package/src/internal/JsonSchema/annotations.ts +50 -0
- package/src/internal/JsonSchema/effect-schema.test.ts +143 -0
- package/src/internal/JsonSchema/index.ts +8 -0
- package/src/internal/JsonSchema/json-schema-normalize.ts +111 -0
- package/src/internal/JsonSchema/json-schema-type.ts +403 -0
- package/src/internal/JsonSchema/json-schema.test.ts +860 -0
- package/src/internal/JsonSchema/json-schema.ts +533 -0
- package/src/internal/Obj/clone.ts +48 -0
- package/src/internal/Obj/common.ts +75 -0
- package/src/internal/Obj/create-object.test.ts +114 -0
- package/src/internal/Obj/create-object.ts +94 -0
- package/src/internal/Obj/deleted.ts +19 -0
- package/src/internal/Obj/ids.ts +12 -0
- package/src/internal/Obj/index.ts +14 -0
- package/src/internal/Obj/inspect.ts +46 -0
- package/src/internal/Obj/json-serializer.test.ts +120 -0
- package/src/internal/Obj/json-serializer.ts +222 -0
- package/src/internal/Obj/schema-validator.test.ts +182 -0
- 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/Obj/typed-object.test.ts +34 -0
- package/src/internal/Obj/typed-object.ts +30 -0
- package/src/internal/Query.ts +137 -0
- package/src/internal/Ref/index.ts +6 -0
- package/src/internal/Ref/ref-array.ts +38 -0
- package/src/internal/Ref/ref.test.ts +100 -0
- package/src/internal/Ref/ref.ts +589 -0
- package/src/internal/Type/compose.test.ts +41 -0
- package/src/internal/Type/compose.ts +41 -0
- package/src/internal/Type/echo-schema.ts +423 -0
- package/src/internal/Type/index.ts +7 -0
- package/src/internal/Type/manipulation.ts +92 -0
- 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/common/index.ts +7 -0
- 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/common/proxy/schema-validator.ts +244 -0
- package/src/internal/common/proxy/schema.test.ts +145 -0
- 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 +17 -0
- package/src/testing/api.test.ts +125 -0
- package/src/testing/index.ts +3 -1
- 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-MTR3E5S2.mjs +0 -786
- package/dist/lib/browser/chunk-MTR3E5S2.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -26
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/testing/index.mjs +0 -70
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MYZLAJSR.mjs +0 -786
- package/dist/lib/node-esm/chunk-MYZLAJSR.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -26
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -70
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/types/src/experimental/database.d.ts +0 -8
- package/dist/types/src/experimental/database.d.ts.map +0 -1
- package/dist/types/src/experimental/index.d.ts +0 -1
- package/dist/types/src/experimental/index.d.ts.map +0 -1
- package/dist/types/src/experimental/queue.d.ts +0 -8
- package/dist/types/src/experimental/queue.d.ts.map +0 -1
- package/dist/types/src/experimental/space.d.ts +0 -8
- package/dist/types/src/experimental/space.d.ts.map +0 -1
- package/dist/types/src/query/dsl.d.ts +0 -238
- package/dist/types/src/query/dsl.d.ts.map +0 -1
- package/dist/types/src/query/dsl.test.d.ts +0 -2
- package/dist/types/src/query/dsl.test.d.ts.map +0 -1
- package/dist/types/src/query/index.d.ts +0 -2
- package/dist/types/src/query/index.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/experimental/database.ts +0 -11
- package/src/experimental/index.ts +0 -7
- package/src/experimental/queue.ts +0 -11
- package/src/experimental/space.ts +0 -11
- package/src/query/dsl.test.ts +0 -332
- package/src/query/dsl.ts +0 -704
- package/src/query/index.ts +0 -5
- package/src/test/api.test.ts +0 -180
- package/src/testing/types.ts +0 -91
- /package/dist/lib/{browser/index.mjs.map → neutral/Annotation.mjs.map} +0 -0
- /package/dist/lib/{node-esm/index.mjs.map → neutral/Database.mjs.map} +0 -0
- /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import "../chunk-2T22UGGN.mjs";
|
|
2
|
+
import "../chunk-BICZKPQG.mjs";
|
|
3
|
+
import "../chunk-DUNXPKAC.mjs";
|
|
4
|
+
import "../chunk-TTCSATUD.mjs";
|
|
5
|
+
import "../chunk-7RVZT53K.mjs";
|
|
6
|
+
import "../chunk-CIWZ5MHQ.mjs";
|
|
7
|
+
import "../chunk-GWFFC34K.mjs";
|
|
8
|
+
import "../chunk-44HT3MEC.mjs";
|
|
9
|
+
import "../chunk-NSMLBSFS.mjs";
|
|
10
|
+
import "../chunk-FAYW32CW.mjs";
|
|
11
|
+
import "../chunk-V72DY6LU.mjs";
|
|
12
|
+
import "../chunk-QEVM3JUP.mjs";
|
|
13
|
+
import "../chunk-7JFW72MX.mjs";
|
|
14
|
+
import {
|
|
15
|
+
Type_exports,
|
|
16
|
+
object,
|
|
17
|
+
relation
|
|
18
|
+
} from "../chunk-NKXEKBP5.mjs";
|
|
19
|
+
import "../chunk-I2MFJ76N.mjs";
|
|
20
|
+
import {
|
|
21
|
+
Unknown
|
|
22
|
+
} from "../chunk-LOTZLYHB.mjs";
|
|
23
|
+
import {
|
|
24
|
+
Ref
|
|
25
|
+
} from "../chunk-TW76K7H5.mjs";
|
|
26
|
+
import "../chunk-6VC3FI5E.mjs";
|
|
27
|
+
import {
|
|
28
|
+
EchoSchema,
|
|
29
|
+
PersistentSchema,
|
|
30
|
+
makeObject,
|
|
31
|
+
subscribe
|
|
32
|
+
} from "../chunk-UYJYDSD7.mjs";
|
|
33
|
+
import "../chunk-FAW7PJRO.mjs";
|
|
34
|
+
import {
|
|
35
|
+
toJsonSchema
|
|
36
|
+
} from "../chunk-QBLYZ4IV.mjs";
|
|
37
|
+
import "../chunk-TRPZU2HV.mjs";
|
|
38
|
+
import "../chunk-REP7WWAQ.mjs";
|
|
39
|
+
import "../chunk-QBIGOSRF.mjs";
|
|
40
|
+
import "../chunk-KQUQZ3CB.mjs";
|
|
41
|
+
import {
|
|
42
|
+
getSchemaTypename
|
|
43
|
+
} from "../chunk-JALF2CVV.mjs";
|
|
44
|
+
import "../chunk-N4B7FHQT.mjs";
|
|
45
|
+
import "../chunk-ZISMEVKD.mjs";
|
|
46
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
47
|
+
|
|
48
|
+
// src/testing/test-data.ts
|
|
49
|
+
import { DatabaseDirectory, ObjectStructure } from "@dxos/echo-protocol";
|
|
50
|
+
import { DXN, ObjectId, PublicKey } from "@dxos/keys";
|
|
51
|
+
|
|
52
|
+
// src/testing/test-schema.ts
|
|
53
|
+
import * as Schema from "effect/Schema";
|
|
54
|
+
(function(TestSchema2) {
|
|
55
|
+
TestSchema2.Expando = Schema.Struct({}, {
|
|
56
|
+
key: Schema.String,
|
|
57
|
+
value: Schema.Any
|
|
58
|
+
}).pipe(object({
|
|
59
|
+
typename: "com.example.type.expando",
|
|
60
|
+
version: "0.1.0"
|
|
61
|
+
}));
|
|
62
|
+
const Nested = Schema.Struct({
|
|
63
|
+
field: Schema.String
|
|
64
|
+
});
|
|
65
|
+
class TestClass {
|
|
66
|
+
field = "value";
|
|
67
|
+
toJSON() {
|
|
68
|
+
return {
|
|
69
|
+
field: this.field
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
TestSchema2.TestClass = TestClass;
|
|
74
|
+
TestSchema2.ExampleSchema = Schema.Struct({
|
|
75
|
+
string: Schema.String,
|
|
76
|
+
number: Schema.Number,
|
|
77
|
+
boolean: Schema.Boolean,
|
|
78
|
+
null: Schema.Null,
|
|
79
|
+
undefined: Schema.Undefined,
|
|
80
|
+
stringArray: Schema.Array(Schema.String),
|
|
81
|
+
twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),
|
|
82
|
+
nested: Nested,
|
|
83
|
+
nestedArray: Schema.Array(Nested),
|
|
84
|
+
nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),
|
|
85
|
+
reference: Schema.suspend(() => Ref(TestSchema2.Example)),
|
|
86
|
+
referenceArray: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Example))),
|
|
87
|
+
classInstance: Schema.instanceOf(TestClass),
|
|
88
|
+
other: Schema.Any
|
|
89
|
+
}).pipe(Schema.partial);
|
|
90
|
+
TestSchema2.Example = TestSchema2.ExampleSchema.pipe(object({
|
|
91
|
+
typename: "com.example.type.example",
|
|
92
|
+
version: "0.1.0"
|
|
93
|
+
}));
|
|
94
|
+
TestSchema2.MessageStruct = Schema.Struct({
|
|
95
|
+
// TODO(burdon): Support S.Date; Custom Timestamp (with defaults).
|
|
96
|
+
// TODO(burdon): Support defaults (update create and create).
|
|
97
|
+
timestamp: Schema.String.pipe(Schema.propertySignature, Schema.withConstructorDefault(() => (/* @__PURE__ */ new Date()).toISOString()))
|
|
98
|
+
});
|
|
99
|
+
TestSchema2.Message = TestSchema2.MessageStruct.pipe(object({
|
|
100
|
+
typename: "com.example.type.message",
|
|
101
|
+
version: "0.1.0"
|
|
102
|
+
}));
|
|
103
|
+
TestSchema2.Organization = Schema.Struct({
|
|
104
|
+
name: Schema.String,
|
|
105
|
+
properties: Schema.optional(Schema.Record({
|
|
106
|
+
key: Schema.String,
|
|
107
|
+
value: Schema.String
|
|
108
|
+
}))
|
|
109
|
+
}).pipe(object({
|
|
110
|
+
typename: "com.example.type.organization",
|
|
111
|
+
version: "0.1.0"
|
|
112
|
+
}));
|
|
113
|
+
TestSchema2.Person = Schema.Struct({
|
|
114
|
+
name: Schema.String,
|
|
115
|
+
username: Schema.String,
|
|
116
|
+
email: Schema.String,
|
|
117
|
+
age: Schema.Number.pipe(Schema.optional),
|
|
118
|
+
tasks: Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task))),
|
|
119
|
+
employer: Schema.optional(Ref(TestSchema2.Organization)),
|
|
120
|
+
address: Schema.Struct({
|
|
121
|
+
city: Schema.optional(Schema.String),
|
|
122
|
+
state: Schema.optional(Schema.String),
|
|
123
|
+
zip: Schema.optional(Schema.String),
|
|
124
|
+
coordinates: Schema.Struct({
|
|
125
|
+
lat: Schema.optional(Schema.Number),
|
|
126
|
+
lng: Schema.optional(Schema.Number)
|
|
127
|
+
})
|
|
128
|
+
}),
|
|
129
|
+
fields: Schema.Struct({
|
|
130
|
+
label: Schema.String,
|
|
131
|
+
value: Schema.String
|
|
132
|
+
}).pipe(Schema.Array, Schema.optional)
|
|
133
|
+
}).pipe(Schema.partial, object({
|
|
134
|
+
typename: "com.example.type.person",
|
|
135
|
+
version: "0.1.0"
|
|
136
|
+
}));
|
|
137
|
+
TestSchema2.Task = Schema.Struct({
|
|
138
|
+
title: Schema.optional(Schema.String),
|
|
139
|
+
deadline: Schema.optional(Schema.String),
|
|
140
|
+
completed: Schema.optional(Schema.Boolean),
|
|
141
|
+
assignee: Schema.optional(Ref(TestSchema2.Person)),
|
|
142
|
+
previous: Schema.optional(Schema.suspend(() => Ref(TestSchema2.Task))),
|
|
143
|
+
subTasks: Schema.optional(Schema.Array(Schema.suspend(() => Ref(TestSchema2.Task)))),
|
|
144
|
+
description: Schema.optional(Schema.String)
|
|
145
|
+
}).pipe(Schema.partial, object({
|
|
146
|
+
typename: "com.example.type.task",
|
|
147
|
+
version: "0.1.0"
|
|
148
|
+
}));
|
|
149
|
+
TestSchema2.HasManager = Schema.Struct({}).pipe(relation({
|
|
150
|
+
typename: "com.example.type.has-manager",
|
|
151
|
+
version: "0.1.0",
|
|
152
|
+
source: TestSchema2.Person,
|
|
153
|
+
target: TestSchema2.Person
|
|
154
|
+
}));
|
|
155
|
+
TestSchema2.EmployedBy = Schema.Struct({
|
|
156
|
+
role: Schema.String,
|
|
157
|
+
since: Schema.optional(Schema.String)
|
|
158
|
+
}).pipe(relation({
|
|
159
|
+
typename: "com.example.type.employed-by",
|
|
160
|
+
version: "0.1.0",
|
|
161
|
+
source: TestSchema2.Person,
|
|
162
|
+
target: TestSchema2.Organization
|
|
163
|
+
}));
|
|
164
|
+
(function(RecordType) {
|
|
165
|
+
RecordType[RecordType["UNDEFINED"] = 0] = "UNDEFINED";
|
|
166
|
+
RecordType[RecordType["PERSONAL"] = 1] = "PERSONAL";
|
|
167
|
+
RecordType[RecordType["WORK"] = 2] = "WORK";
|
|
168
|
+
})(TestSchema2.RecordType || (TestSchema2.RecordType = {}));
|
|
169
|
+
TestSchema2.Container = Schema.Struct({
|
|
170
|
+
objects: Schema.Array(Ref(Unknown)),
|
|
171
|
+
records: Schema.Array(Schema.partial(Schema.Struct({
|
|
172
|
+
title: Schema.String,
|
|
173
|
+
description: Schema.String,
|
|
174
|
+
contacts: Schema.Array(Ref(TestSchema2.Person)),
|
|
175
|
+
type: Schema.Enums(TestSchema2.RecordType)
|
|
176
|
+
})))
|
|
177
|
+
}).pipe(Schema.partial, object({
|
|
178
|
+
typename: "com.example.type.container",
|
|
179
|
+
version: "0.1.0"
|
|
180
|
+
}));
|
|
181
|
+
})(TestSchema || (TestSchema = {}));
|
|
182
|
+
var TestSchema;
|
|
183
|
+
|
|
184
|
+
// src/testing/test-data.ts
|
|
185
|
+
var spaceKey = PublicKey.random();
|
|
186
|
+
var PEOPLE = {
|
|
187
|
+
alice: DatabaseDirectory.make({
|
|
188
|
+
spaceKey: spaceKey.toHex(),
|
|
189
|
+
objects: {
|
|
190
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
191
|
+
type: Type_exports.getDXN(TestSchema.Person).toString(),
|
|
192
|
+
data: {
|
|
193
|
+
name: "Alice"
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
}),
|
|
198
|
+
bob: DatabaseDirectory.make({
|
|
199
|
+
spaceKey: spaceKey.toHex(),
|
|
200
|
+
objects: {
|
|
201
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
202
|
+
type: Type_exports.getDXN(TestSchema.Person).toString(),
|
|
203
|
+
data: {
|
|
204
|
+
name: "Bob"
|
|
205
|
+
}
|
|
206
|
+
})
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
};
|
|
210
|
+
var ORGS = {
|
|
211
|
+
dxos: DatabaseDirectory.make({
|
|
212
|
+
spaceKey: spaceKey.toHex(),
|
|
213
|
+
objects: {
|
|
214
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
215
|
+
type: Type_exports.getDXN(TestSchema.Organization).toString(),
|
|
216
|
+
data: {
|
|
217
|
+
name: "DXOS",
|
|
218
|
+
founded: "2023"
|
|
219
|
+
}
|
|
220
|
+
})
|
|
221
|
+
}
|
|
222
|
+
}),
|
|
223
|
+
cyberdyne: DatabaseDirectory.make({
|
|
224
|
+
spaceKey: spaceKey.toHex(),
|
|
225
|
+
objects: {
|
|
226
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
227
|
+
type: Type_exports.getDXN(TestSchema.Organization).toString(),
|
|
228
|
+
data: {
|
|
229
|
+
name: "Cyberdyne Systems",
|
|
230
|
+
founded: "1984"
|
|
231
|
+
}
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
})
|
|
235
|
+
};
|
|
236
|
+
var WORKS_FOR = {
|
|
237
|
+
fredWorksForCyberdyne: DatabaseDirectory.make({
|
|
238
|
+
spaceKey: spaceKey.toHex(),
|
|
239
|
+
objects: {
|
|
240
|
+
[ObjectId.random()]: ObjectStructure.makeRelation({
|
|
241
|
+
type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
|
|
242
|
+
source: {
|
|
243
|
+
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
|
|
244
|
+
},
|
|
245
|
+
target: {
|
|
246
|
+
"/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
|
|
247
|
+
},
|
|
248
|
+
data: {
|
|
249
|
+
since: "2020",
|
|
250
|
+
position: "Engineer"
|
|
251
|
+
}
|
|
252
|
+
})
|
|
253
|
+
}
|
|
254
|
+
}),
|
|
255
|
+
aliceWorksForAperture: DatabaseDirectory.make({
|
|
256
|
+
spaceKey: spaceKey.toHex(),
|
|
257
|
+
objects: {
|
|
258
|
+
[ObjectId.random()]: ObjectStructure.makeRelation({
|
|
259
|
+
type: Type_exports.getDXN(TestSchema.EmployedBy).toString(),
|
|
260
|
+
source: {
|
|
261
|
+
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
|
|
262
|
+
},
|
|
263
|
+
target: {
|
|
264
|
+
"/": DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects)[0]).toString()
|
|
265
|
+
},
|
|
266
|
+
data: {
|
|
267
|
+
since: "2018",
|
|
268
|
+
position: "Research Scientist"
|
|
269
|
+
}
|
|
270
|
+
})
|
|
271
|
+
}
|
|
272
|
+
})
|
|
273
|
+
};
|
|
274
|
+
var TASKS = {
|
|
275
|
+
task1: DatabaseDirectory.make({
|
|
276
|
+
spaceKey: spaceKey.toHex(),
|
|
277
|
+
objects: {
|
|
278
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
279
|
+
type: Type_exports.getDXN(TestSchema.Task).toString(),
|
|
280
|
+
data: {
|
|
281
|
+
title: "Complete project documentation",
|
|
282
|
+
description: "Write comprehensive documentation for the new system",
|
|
283
|
+
status: "in-progress",
|
|
284
|
+
dueDate: "2023-12-31",
|
|
285
|
+
assignee: {
|
|
286
|
+
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects)[0]).toString()
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
})
|
|
290
|
+
}
|
|
291
|
+
}),
|
|
292
|
+
task2: DatabaseDirectory.make({
|
|
293
|
+
spaceKey: spaceKey.toHex(),
|
|
294
|
+
objects: {
|
|
295
|
+
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
296
|
+
type: Type_exports.getDXN(TestSchema.Task).toString(),
|
|
297
|
+
data: {
|
|
298
|
+
title: "Run experiments",
|
|
299
|
+
description: "Conduct series of experiments on the portal device",
|
|
300
|
+
status: "pending",
|
|
301
|
+
dueDate: "2023-11-15",
|
|
302
|
+
assignee: {
|
|
303
|
+
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
})
|
|
307
|
+
}
|
|
308
|
+
})
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
// src/testing/util.ts
|
|
312
|
+
import { assertArgument } from "@dxos/invariant";
|
|
313
|
+
import { deepMapValues } from "@dxos/util";
|
|
314
|
+
var createEchoSchema = (schema, version = "0.1.0") => {
|
|
315
|
+
const jsonSchema = toJsonSchema(schema);
|
|
316
|
+
const typename = getSchemaTypename(schema);
|
|
317
|
+
assertArgument(typename, "typename", "Schema does not have a typename.");
|
|
318
|
+
const echoSchema = new EchoSchema(makeObject(PersistentSchema, {
|
|
319
|
+
typename,
|
|
320
|
+
version,
|
|
321
|
+
jsonSchema
|
|
322
|
+
}));
|
|
323
|
+
subscribe(echoSchema.persistentSchema, () => {
|
|
324
|
+
echoSchema._invalidate();
|
|
325
|
+
});
|
|
326
|
+
return echoSchema;
|
|
327
|
+
};
|
|
328
|
+
var prepareAstForCompare = (obj) => deepMapValues(obj, (value, recurse) => {
|
|
329
|
+
if (typeof value === "function") {
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
if (value instanceof RegExp) {
|
|
333
|
+
return value;
|
|
334
|
+
}
|
|
335
|
+
if (typeof value === "object") {
|
|
336
|
+
const clone = {
|
|
337
|
+
...value
|
|
338
|
+
};
|
|
339
|
+
for (const sym of Object.getOwnPropertySymbols(clone)) {
|
|
340
|
+
clone[sym.toString()] = clone[sym];
|
|
341
|
+
delete clone[sym];
|
|
342
|
+
}
|
|
343
|
+
return recurse(clone);
|
|
344
|
+
}
|
|
345
|
+
return recurse(value);
|
|
346
|
+
});
|
|
347
|
+
var updateCounter = (...objects) => {
|
|
348
|
+
let updateCount = 0;
|
|
349
|
+
const unsubscribes = objects.map((obj) => subscribe(obj, () => {
|
|
350
|
+
updateCount++;
|
|
351
|
+
}));
|
|
352
|
+
const unsubscribeAll = () => {
|
|
353
|
+
for (const unsub of unsubscribes) {
|
|
354
|
+
unsub();
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
return {
|
|
358
|
+
// https://github.com/tc39/proposal-explicit-resource-management
|
|
359
|
+
[Symbol.dispose]: unsubscribeAll,
|
|
360
|
+
get count() {
|
|
361
|
+
return updateCount;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
export {
|
|
366
|
+
ORGS,
|
|
367
|
+
PEOPLE,
|
|
368
|
+
TASKS,
|
|
369
|
+
TestSchema,
|
|
370
|
+
WORKS_FOR,
|
|
371
|
+
createEchoSchema,
|
|
372
|
+
prepareAstForCompare,
|
|
373
|
+
updateCounter
|
|
374
|
+
};
|
|
375
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/testing/test-data.ts", "../../../../src/testing/test-schema.ts", "../../../../src/testing/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DatabaseDirectory, ObjectStructure } from '@dxos/echo-protocol';\nimport { DXN, ObjectId, PublicKey } from '@dxos/keys';\n\nimport { Type } from '../index';\nimport { TestSchema } from './test-schema';\n\nconst spaceKey = PublicKey.random();\n\n// TODO(burdon): Use Obj.make.\n\nexport const PEOPLE = {\n alice: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Alice',\n },\n }),\n },\n }),\n bob: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Person)!.toString(),\n data: {\n name: 'Bob',\n },\n }),\n },\n }),\n};\n\nexport const ORGS = {\n dxos: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'DXOS',\n founded: '2023',\n },\n }),\n },\n }),\n cyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Organization)!.toString(),\n data: {\n name: 'Cyberdyne Systems',\n founded: '1984',\n },\n }),\n },\n }),\n};\n\nexport const WORKS_FOR = {\n fredWorksForCyberdyne: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects!)[0]).toString() },\n data: {\n since: '2020',\n position: 'Engineer',\n },\n }),\n },\n }),\n aliceWorksForAperture: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeRelation({\n type: Type.getDXN(TestSchema.EmployedBy)!.toString(),\n source: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n target: { '/': DXN.fromLocalObjectId(Object.keys(ORGS.dxos.objects!)[0]).toString() },\n data: {\n since: '2018',\n position: 'Research Scientist',\n },\n }),\n },\n }),\n};\n\nexport const TASKS = {\n task1: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Complete project documentation',\n description: 'Write comprehensive documentation for the new system',\n status: 'in-progress',\n dueDate: '2023-12-31',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.bob.objects!)[0]).toString() },\n },\n }),\n },\n }),\n task2: DatabaseDirectory.make({\n spaceKey: spaceKey.toHex(),\n objects: {\n [ObjectId.random()]: ObjectStructure.makeObject({\n type: Type.getDXN(TestSchema.Task)!.toString(),\n data: {\n title: 'Run experiments',\n description: 'Conduct series of experiments on the portal device',\n status: 'pending',\n dueDate: '2023-11-15',\n assignee: { '/': DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects!)[0]).toString() },\n },\n }),\n },\n }),\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport * as Obj from '../Obj';\nimport * as Ref from '../Ref';\nimport * as Type from '../Type';\n\nexport namespace TestSchema {\n //\n // Expando\n //\n\n /**\n * Expando object is an object with an arbitrary set of properties.\n * This is the test variant with example.com namespace.\n */\n export const Expando = Schema.Struct({}, { key: Schema.String, value: Schema.Any }).pipe(\n Type.object({\n typename: 'com.example.type.expando',\n version: '0.1.0',\n }),\n );\n\n export interface Expando extends Schema.Schema.Type<typeof Expando> {}\n\n //\n // Example\n //\n\n const Nested = Schema.Struct({\n field: Schema.String,\n });\n\n export class TestClass {\n field = 'value';\n toJSON() {\n return { field: this.field };\n }\n }\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const ExampleSchema = Schema.Struct({\n string: Schema.String,\n number: Schema.Number,\n boolean: Schema.Boolean,\n null: Schema.Null,\n undefined: Schema.Undefined,\n stringArray: Schema.Array(Schema.String),\n twoDimNumberArray: Schema.Array(Schema.Array(Schema.Number)),\n nested: Nested,\n nestedArray: Schema.Array(Nested),\n nestedNullableArray: Schema.Array(Schema.Union(Nested, Schema.Null)),\n reference: Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example)),\n referenceArray: Schema.Array(Schema.suspend((): Ref.RefSchema<Example> => Ref.Ref(Example))),\n classInstance: Schema.instanceOf(TestClass),\n other: Schema.Any,\n }).pipe(Schema.partial);\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface ExampleSchema extends Schema.Schema.Type<typeof ExampleSchema> {}\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export const Example = ExampleSchema.pipe(\n Type.object({\n typename: 'com.example.type.example',\n version: '0.1.0',\n }),\n );\n\n /** @deprecated Use another test schema or create a specific local test schema. */\n export interface Example extends Schema.Schema.Type<typeof Example> {}\n\n //\n // Message\n //\n\n // TODO(burdon): Support defaults directly on Type: `make` is erased by `pipe(Type.Obj)`.\n export const MessageStruct = Schema.Struct({\n // TODO(burdon): Support S.Date; Custom Timestamp (with defaults).\n // TODO(burdon): Support defaults (update create and create).\n timestamp: Schema.String.pipe(\n Schema.propertySignature,\n Schema.withConstructorDefault(() => new Date().toISOString()),\n ),\n });\n\n export const Message = MessageStruct.pipe(\n Type.object({\n typename: 'com.example.type.message',\n version: '0.1.0',\n }),\n );\n\n export interface Message extends Schema.Schema.Type<typeof Message> {}\n\n //\n // Organization\n //\n\n export const Organization = Schema.Struct({\n name: Schema.String,\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.String,\n }),\n ),\n }).pipe(\n Type.object({\n typename: 'com.example.type.organization',\n version: '0.1.0',\n }),\n );\n\n export interface Organization extends Schema.Schema.Type<typeof Organization> {}\n\n //\n // Person\n //\n\n export const Person = Schema.Struct({\n name: Schema.String,\n username: Schema.String,\n email: Schema.String,\n age: Schema.Number.pipe(Schema.optional),\n tasks: Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n employer: Schema.optional(Ref.Ref(Organization)),\n address: Schema.Struct({\n city: Schema.optional(Schema.String),\n state: Schema.optional(Schema.String),\n zip: Schema.optional(Schema.String),\n coordinates: Schema.Struct({\n lat: Schema.optional(Schema.Number),\n lng: Schema.optional(Schema.Number),\n }),\n }),\n fields: Schema.Struct({\n label: Schema.String,\n value: Schema.String,\n }).pipe(Schema.Array, Schema.optional),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.person',\n version: '0.1.0',\n }),\n );\n\n export interface Person extends Schema.Schema.Type<typeof Person> {}\n\n //\n // Task\n //\n\n export const Task = Schema.Struct({\n title: Schema.optional(Schema.String),\n deadline: Schema.optional(Schema.String),\n completed: Schema.optional(Schema.Boolean),\n assignee: Schema.optional(Ref.Ref(Person)),\n previous: Schema.optional(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task))),\n subTasks: Schema.optional(Schema.Array(Schema.suspend((): Ref.RefSchema<Task> => Ref.Ref(Task)))),\n description: Schema.optional(Schema.String),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.task',\n version: '0.1.0',\n }),\n );\n\n export interface Task extends Schema.Schema.Type<typeof Task> {}\n\n //\n // HasManager\n //\n\n export const HasManager = Schema.Struct({}).pipe(\n Type.relation({\n typename: 'com.example.type.has-manager',\n version: '0.1.0',\n source: Person,\n target: Person,\n }),\n );\n\n export interface HasManager extends Schema.Schema.Type<typeof HasManager> {}\n\n //\n // EmployedBy\n //\n\n export const EmployedBy = Schema.Struct({\n role: Schema.String,\n since: Schema.optional(Schema.String),\n }).pipe(\n Type.relation({\n typename: 'com.example.type.employed-by',\n version: '0.1.0',\n source: Person,\n target: Organization,\n }),\n );\n\n export interface EmployedBy extends Schema.Schema.Type<typeof EmployedBy> {}\n\n //\n // RecordType\n //\n\n export enum RecordType {\n UNDEFINED = 0,\n PERSONAL = 1,\n WORK = 2,\n }\n\n export const Container = Schema.Struct({\n objects: Schema.Array(Ref.Ref(Obj.Unknown)),\n records: Schema.Array(\n Schema.partial(\n Schema.Struct({\n title: Schema.String,\n description: Schema.String,\n contacts: Schema.Array(Ref.Ref(Person)),\n type: Schema.Enums(RecordType),\n }),\n ),\n ),\n }).pipe(\n Schema.partial,\n Type.object({\n typename: 'com.example.type.container',\n version: '0.1.0',\n }),\n );\n\n export interface Container extends Schema.Schema.Type<typeof Container> {}\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\nimport type * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { deepMapValues } from '@dxos/util';\n\nimport { EchoSchema, PersistentSchema, getSchemaTypename, makeObject, subscribe, toJsonSchema } from '../internal';\n\n/**\n * Create a reactive mutable schema that updates when the JSON schema is updated.\n */\n// TODO(dmaretskyi): Should be replaced by registration of typed object.\nexport const createEchoSchema = (schema: Schema.Schema.AnyNoContext, version = '0.1.0'): EchoSchema => {\n const jsonSchema = toJsonSchema(schema);\n const typename = getSchemaTypename(schema);\n assertArgument(typename, 'typename', 'Schema does not have a typename.');\n const echoSchema = new EchoSchema(makeObject(PersistentSchema, { typename, version, jsonSchema }));\n\n // TODO(burdon): Unsubscribe is never called.\n subscribe(echoSchema.persistentSchema, () => {\n echoSchema._invalidate();\n });\n\n return echoSchema;\n};\n\n/**\n * Converts AST to a format that can be compared with test matchers.\n */\nexport const prepareAstForCompare = (obj: SchemaAST.AST): any =>\n deepMapValues(obj, (value: any, recurse: any) => {\n if (typeof value === 'function') {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n // Convert symbols to strings.\n if (typeof value === 'object') {\n const clone = { ...value };\n for (const sym of Object.getOwnPropertySymbols(clone as any)) {\n clone[sym.toString()] = clone[sym];\n delete clone[sym];\n }\n\n return recurse(clone);\n }\n\n return recurse(value);\n });\n\n/**\n * Creates an update counter that tracks changes to reactive objects.\n * @param objects - Reactive objects to subscribe to.\n * @returns An object with a count property and Symbol.dispose for cleanup.\n */\nexport const updateCounter = (...objects: object[]) => {\n let updateCount = 0;\n\n const unsubscribes = objects.map((obj) =>\n subscribe(obj, () => {\n updateCount++;\n }),\n );\n\n const unsubscribeAll = () => {\n for (const unsub of unsubscribes) {\n unsub();\n }\n };\n\n return {\n // https://github.com/tc39/proposal-explicit-resource-management\n [Symbol.dispose]: unsubscribeAll,\n get count() {\n return updateCount;\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DatabaseDirectory", "ObjectStructure", "DXN", "ObjectId", "PublicKey", "Schema", "TestSchema", "Expando", "Struct", "key", "String", "value", "Any", "pipe", "object", "typename", "version", "Nested", "field", "TestClass", "toJSON", "ExampleSchema", "string", "number", "Number", "boolean", "Boolean", "null", "Null", "undefined", "Undefined", "stringArray", "Array", "twoDimNumberArray", "nested", "nestedArray", "nestedNullableArray", "Union", "reference", "suspend", "Ref", "Example", "referenceArray", "classInstance", "instanceOf", "other", "partial", "MessageStruct", "timestamp", "propertySignature", "withConstructorDefault", "Date", "toISOString", "Message", "Organization", "name", "properties", "optional", "Record", "Person", "username", "email", "age", "tasks", "Task", "employer", "address", "city", "state", "zip", "coordinates", "lat", "lng", "fields", "label", "title", "deadline", "completed", "assignee", "previous", "subTasks", "description", "HasManager", "relation", "source", "target", "EmployedBy", "role", "since", "RecordType", "Container", "objects", "Unknown", "records", "contacts", "type", "Enums", "spaceKey", "PublicKey", "random", "PEOPLE", "alice", "DatabaseDirectory", "make", "toHex", "objects", "ObjectId", "ObjectStructure", "makeObject", "type", "Type", "getDXN", "TestSchema", "Person", "toString", "data", "name", "bob", "ORGS", "dxos", "Organization", "founded", "cyberdyne", "WORKS_FOR", "fredWorksForCyberdyne", "makeRelation", "EmployedBy", "source", "DXN", "fromLocalObjectId", "Object", "keys", "target", "since", "position", "aliceWorksForAperture", "TASKS", "task1", "Task", "title", "description", "status", "dueDate", "assignee", "task2", "assertArgument", "deepMapValues", "createEchoSchema", "schema", "version", "jsonSchema", "toJsonSchema", "typename", "getSchemaTypename", "assertArgument", "echoSchema", "EchoSchema", "makeObject", "PersistentSchema", "subscribe", "persistentSchema", "_invalidate", "prepareAstForCompare", "obj", "deepMapValues", "value", "recurse", "RegExp", "clone", "sym", "Object", "getOwnPropertySymbols", "toString", "updateCounter", "objects", "updateCount", "unsubscribes", "map", "unsubscribeAll", "unsub", "Symbol", "dispose", "count"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { DescriptionAnnotation, FormInputAnnotation, GeneratorAnnotation, LabelAnnotation, ReferenceAnnotation, SystemTypeAnnotation, TypeAnnotation, getDescriptionWithSchema, getLabelWithSchema, getTypeAnnotation, setDescriptionWithSchema, setLabelWithSchema, IconAnnotation, } from './internal/Annotation';
|
|
2
|
+
import type * as Schema from 'effect/Schema';
|
|
3
|
+
import * as internalAnnotations from './internal/Annotation';
|
|
4
|
+
interface MakeProps<T> {
|
|
5
|
+
id: string;
|
|
6
|
+
schema: Schema.Schema<T, any, never>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Create a new schema annotation.
|
|
10
|
+
* Annotation can be assigned both to fields and to the schema itself.
|
|
11
|
+
* Annotation is serialized with the schema.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const ColorAnnotation = Annotation.make({
|
|
16
|
+
* id: 'org.dxos.annotation.color',
|
|
17
|
+
* schema: Schema.String,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const schema = Schema.String.annotations(ColorAnnotation.set('red'));
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const make: <T>(props: MakeProps<T>) => internalAnnotations.AnnotationHelper<T>;
|
|
24
|
+
//# sourceMappingURL=Annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../src/Annotation.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAE7D,UAAU,SAAS,CAAC,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAC7C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as Schema from 'effect/Schema';
|
|
2
|
+
import * as internal from './internal';
|
|
3
|
+
import * as Obj from './Obj';
|
|
4
|
+
import * as Type from './Type';
|
|
5
|
+
/**
|
|
6
|
+
* A an ordered set of objects.
|
|
7
|
+
*/
|
|
8
|
+
export declare const Collection: Type.Obj<{
|
|
9
|
+
readonly name?: string | undefined;
|
|
10
|
+
readonly objects: readonly internal.Ref<import("./Entity").OfKind<internal.EntityKind.Object> & Obj.Unknown>[];
|
|
11
|
+
}, Schema.Struct.Fields>;
|
|
12
|
+
export interface Collection extends Schema.Schema.Type<typeof Collection> {
|
|
13
|
+
}
|
|
14
|
+
export declare const make: (props?: Partial<Obj.MakeProps<typeof Collection>>) => Collection;
|
|
15
|
+
export declare const isCollection: (value: unknown) => value is Collection;
|
|
16
|
+
//# sourceMappingURL=Collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../../src/Collection.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,UAAU;;;wBAYtB,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E,eAAO,MAAM,IAAI,WAAW,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,UAAU,CAAC,CAAC,KAAQ,UAC5B,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,UAAuC,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as Context from 'effect/Context';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as Layer from 'effect/Layer';
|
|
4
|
+
import * as Option from 'effect/Option';
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
import type * as Types from 'effect/Types';
|
|
7
|
+
import { DXN, type SpaceId } from '@dxos/keys';
|
|
8
|
+
import type * as Entity from './Entity';
|
|
9
|
+
import * as Err from './Err';
|
|
10
|
+
import type * as Filter from './Filter';
|
|
11
|
+
import type * as Hypergraph from './Hypergraph';
|
|
12
|
+
import { type AnyProperties } from './internal/common/types';
|
|
13
|
+
import type { Ref } from './internal/Ref/ref';
|
|
14
|
+
import type * as Obj from './Obj';
|
|
15
|
+
import type * as Query from './Query';
|
|
16
|
+
import type * as QueryResult from './QueryResult';
|
|
17
|
+
import type * as SchemaRegistry from './SchemaRegistry';
|
|
18
|
+
import type * as Type from './Type';
|
|
19
|
+
/**
|
|
20
|
+
* `query` API function declaration.
|
|
21
|
+
*/
|
|
22
|
+
export interface QueryFn {
|
|
23
|
+
<Q extends Query.Any>(query: Q): QueryResult.QueryResult<Query.Type<Q>>;
|
|
24
|
+
<F extends Filter.Any>(filter: F): QueryResult.QueryResult<Filter.Type<F>>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Common interface for Database and Queue.
|
|
28
|
+
*/
|
|
29
|
+
export interface Queryable {
|
|
30
|
+
query: QueryFn;
|
|
31
|
+
}
|
|
32
|
+
export type GetObjectByIdOptions = {
|
|
33
|
+
deleted?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export type ObjectPlacement = 'root-doc' | 'linked-doc';
|
|
36
|
+
export type AddOptions = {
|
|
37
|
+
/**
|
|
38
|
+
* Where to place the object in the Automerge document tree.
|
|
39
|
+
* Root document is always loaded with the space.
|
|
40
|
+
* Linked documents are loaded lazily.
|
|
41
|
+
* Placing large number of objects in the root document may slow down the initial load.
|
|
42
|
+
*
|
|
43
|
+
* @default 'linked-doc'
|
|
44
|
+
*/
|
|
45
|
+
placeIn?: ObjectPlacement;
|
|
46
|
+
};
|
|
47
|
+
export type FlushOptions = {
|
|
48
|
+
/**
|
|
49
|
+
* Write any pending changes to disk.
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
disk?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Wait for pending index updates.
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
57
|
+
indexes?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Flush pending updates to objects and queries.
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
updates?: boolean;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Identifier denoting an ECHO Database.
|
|
66
|
+
*/
|
|
67
|
+
export declare const TypeId: unique symbol;
|
|
68
|
+
export type TypeId = typeof TypeId;
|
|
69
|
+
/**
|
|
70
|
+
* ECHO Database interface.
|
|
71
|
+
*/
|
|
72
|
+
export interface Database extends Queryable {
|
|
73
|
+
readonly [TypeId]: TypeId;
|
|
74
|
+
get spaceId(): SpaceId;
|
|
75
|
+
get schemaRegistry(): SchemaRegistry.SchemaRegistry;
|
|
76
|
+
get graph(): Hypergraph.Hypergraph;
|
|
77
|
+
toJSON(): object;
|
|
78
|
+
/**
|
|
79
|
+
* Return object by local ID.
|
|
80
|
+
*/
|
|
81
|
+
getObjectById<T extends Obj.Unknown = Obj.OfShape<AnyProperties>>(id: string, opts?: GetObjectByIdOptions): T | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Query objects.
|
|
84
|
+
*/
|
|
85
|
+
query: QueryFn;
|
|
86
|
+
/**
|
|
87
|
+
* Creates a reference to an existing object in the database.
|
|
88
|
+
*
|
|
89
|
+
* NOTE: The reference may be dangling if the object is not present in the database.
|
|
90
|
+
* NOTE: Difference from `Ref.fromDXN`
|
|
91
|
+
* `Ref.fromDXN(dxn)` returns an unhydrated reference. The `.load` and `.target` APIs will not work.
|
|
92
|
+
* `db.makeRef(dxn)` is preferable in cases with access to the database.
|
|
93
|
+
*/
|
|
94
|
+
makeRef<T extends Entity.Unknown = Entity.Unknown>(dxn: DXN): Ref<T>;
|
|
95
|
+
/**
|
|
96
|
+
* Adds object to the database.
|
|
97
|
+
*/
|
|
98
|
+
add<T extends Entity.Unknown = Entity.Unknown>(obj: T, opts?: AddOptions): T;
|
|
99
|
+
/**
|
|
100
|
+
* Removes object from the database.
|
|
101
|
+
*/
|
|
102
|
+
remove(obj: Entity.Unknown): void;
|
|
103
|
+
/**
|
|
104
|
+
* Wait for all pending changes to be saved to disk.
|
|
105
|
+
* Optionaly waits for changes to be propagated to indexes and event handlers.
|
|
106
|
+
*/
|
|
107
|
+
flush(opts?: FlushOptions): Promise<void>;
|
|
108
|
+
}
|
|
109
|
+
export declare const isDatabase: (obj: unknown) => obj is Database;
|
|
110
|
+
export declare const Database: Schema.Schema<Database>;
|
|
111
|
+
declare const Service_base: Context.TagClass<Service, "@dxos/echo/Database/Service", {
|
|
112
|
+
readonly db: Database;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* Effect service tag for Database dependency injection.
|
|
116
|
+
*/
|
|
117
|
+
export declare class Service extends Service_base {
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Layer that provides a Database service that throws when accessed.
|
|
121
|
+
* Useful as a default layer when no database is available.
|
|
122
|
+
*/
|
|
123
|
+
export declare const notAvailable: Layer.Layer<Service, never, never>;
|
|
124
|
+
/**
|
|
125
|
+
* Creates a Database service instance from a Database.
|
|
126
|
+
*/
|
|
127
|
+
export declare const makeService: (db: Database) => Context.Tag.Service<Service>;
|
|
128
|
+
/**
|
|
129
|
+
* Creates a Layer that provides the Database service.
|
|
130
|
+
*/
|
|
131
|
+
export declare const layer: (db: Database) => Layer.Layer<Service>;
|
|
132
|
+
/**
|
|
133
|
+
* Returns the space ID of the database.
|
|
134
|
+
*/
|
|
135
|
+
export declare const spaceId: Effect.Effect<SpaceId, never, Service>;
|
|
136
|
+
/**
|
|
137
|
+
* Resolves an object by its DXN.
|
|
138
|
+
*/
|
|
139
|
+
export declare const resolve: {
|
|
140
|
+
(ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;
|
|
141
|
+
<S extends Type.AnyEntity>(ref: DXN | Ref<any>, schema: S): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Loads an object reference.
|
|
145
|
+
*/
|
|
146
|
+
export declare const load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never>;
|
|
147
|
+
/**
|
|
148
|
+
* Loads an object reference option.
|
|
149
|
+
*/
|
|
150
|
+
export declare const loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never>;
|
|
151
|
+
/**
|
|
152
|
+
* Adds an object to the database.
|
|
153
|
+
* @see {@link Database.add}
|
|
154
|
+
*/
|
|
155
|
+
export declare const add: <T extends Entity.Unknown>(obj: T) => Effect.Effect<T, never, Service>;
|
|
156
|
+
/**
|
|
157
|
+
* Removes an object from the database.
|
|
158
|
+
* @see {@link Database.remove}
|
|
159
|
+
*/
|
|
160
|
+
export declare const remove: <T extends Entity.Unknown>(obj: T) => Effect.Effect<void, never, Service>;
|
|
161
|
+
/**
|
|
162
|
+
* Flushes pending changes to disk.
|
|
163
|
+
* @see {@link Database.flush}
|
|
164
|
+
*/
|
|
165
|
+
export declare const flush: (opts?: FlushOptions) => Effect.Effect<void, never, Service>;
|
|
166
|
+
/**
|
|
167
|
+
* Creates a `QueryResult` object that can be subscribed to.
|
|
168
|
+
*/
|
|
169
|
+
export declare const query: {
|
|
170
|
+
<Q extends Query.Any>(query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, Service>;
|
|
171
|
+
<F extends Filter.Any>(filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, Service>;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Executes the query once and returns the results.
|
|
175
|
+
*/
|
|
176
|
+
export declare const runQuery: {
|
|
177
|
+
<Q extends Query.Any>(query: Q): Effect.Effect<Query.Type<Q>[], never, Service>;
|
|
178
|
+
<F extends Filter.Any>(filter: F): Effect.Effect<Filter.Type<F>[], never, Service>;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Executes the query once and returns the first result as or None.
|
|
182
|
+
*/
|
|
183
|
+
export declare const runQueryFirst: {
|
|
184
|
+
<Q extends Query.Any>(query: Q): Effect.Effect<Option.Option<Query.Type<Q>>, never, Service>;
|
|
185
|
+
<F extends Filter.Any>(filter: F): Effect.Effect<Option.Option<Filter.Type<F>>, never, Service>;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Persists schemas in the database so they replicate to other clients.
|
|
189
|
+
* @see {@link SchemaRegistry.SchemaRegistry.register}
|
|
190
|
+
*/
|
|
191
|
+
export declare const registerSchema: (input: SchemaRegistry.RegisterSchemaInput[]) => Effect.Effect<Type.RuntimeType[], never, Service>;
|
|
192
|
+
/**
|
|
193
|
+
* Creates a schema query result that can be subscribed to.
|
|
194
|
+
*/
|
|
195
|
+
export declare const schemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service>;
|
|
196
|
+
/**
|
|
197
|
+
* Executes a schema query once and returns the results.
|
|
198
|
+
*/
|
|
199
|
+
export declare const runSchemaQuery: <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(schemaQueryOptions?: Q & SchemaRegistry.Query) => Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service>;
|
|
200
|
+
export {};
|
|
201
|
+
//# sourceMappingURL=Database.d.ts.map
|