@dxos/echo 0.8.4-main.66e292d → 0.8.4-main.69d29f4
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 +1 -2
- package/dist/lib/browser/Annotation.mjs +33 -0
- package/dist/lib/browser/Annotation.mjs.map +7 -0
- package/dist/lib/browser/Database.mjs +18 -0
- package/dist/lib/browser/Database.mjs.map +7 -0
- package/dist/lib/browser/Entity.mjs +52 -0
- package/dist/lib/browser/Entity.mjs.map +7 -0
- package/dist/lib/browser/Err.mjs +11 -0
- package/dist/lib/browser/Err.mjs.map +7 -0
- package/dist/lib/browser/Filter.mjs +62 -0
- package/dist/lib/browser/Filter.mjs.map +7 -0
- package/dist/lib/browser/Format.mjs +67 -0
- package/dist/lib/browser/Format.mjs.map +7 -0
- package/dist/lib/browser/JsonSchema.mjs +20 -0
- package/dist/lib/browser/JsonSchema.mjs.map +7 -0
- package/dist/lib/browser/Key.mjs +13 -0
- package/dist/lib/browser/Key.mjs.map +7 -0
- package/dist/lib/browser/Obj.mjs +91 -0
- package/dist/lib/browser/Obj.mjs.map +7 -0
- package/dist/lib/browser/Order.mjs +13 -0
- package/dist/lib/browser/Order.mjs.map +7 -0
- package/dist/lib/browser/Query.mjs +27 -0
- package/dist/lib/browser/Query.mjs.map +7 -0
- package/dist/lib/browser/QueryResult.mjs +3 -0
- package/dist/lib/browser/QueryResult.mjs.map +7 -0
- package/dist/lib/browser/Ref.mjs +23 -0
- package/dist/lib/browser/Ref.mjs.map +7 -0
- package/dist/lib/browser/Relation.mjs +85 -0
- package/dist/lib/browser/Relation.mjs.map +7 -0
- package/dist/lib/browser/SchemaRegistry.mjs +3 -0
- package/dist/lib/browser/SchemaRegistry.mjs.map +7 -0
- package/dist/lib/browser/Tag.mjs +26 -0
- package/dist/lib/browser/Tag.mjs.map +7 -0
- package/dist/lib/browser/Type.mjs +48 -0
- package/dist/lib/browser/Type.mjs.map +7 -0
- package/dist/lib/browser/chunk-2RMVRVOB.mjs +250 -0
- package/dist/lib/browser/chunk-2RMVRVOB.mjs.map +7 -0
- package/dist/lib/browser/chunk-5RDNDPMX.mjs +74 -0
- package/dist/lib/browser/chunk-5RDNDPMX.mjs.map +7 -0
- package/dist/lib/browser/chunk-73M2G455.mjs +98 -0
- package/dist/lib/browser/chunk-73M2G455.mjs.map +7 -0
- package/dist/lib/browser/chunk-7STIBCP7.mjs +133 -0
- package/dist/lib/browser/chunk-7STIBCP7.mjs.map +7 -0
- package/dist/lib/browser/chunk-AFGYYVVQ.mjs +57 -0
- package/dist/lib/browser/chunk-AFGYYVVQ.mjs.map +7 -0
- package/dist/lib/browser/chunk-BC6R4CAF.mjs +24 -0
- package/dist/lib/browser/chunk-BC6R4CAF.mjs.map +7 -0
- package/dist/lib/browser/chunk-BPYFLHWO.mjs +158 -0
- package/dist/lib/browser/chunk-BPYFLHWO.mjs.map +7 -0
- package/dist/lib/browser/chunk-CBPFF3ZO.mjs +204 -0
- package/dist/lib/browser/chunk-CBPFF3ZO.mjs.map +7 -0
- package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
- package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
- package/dist/lib/browser/chunk-CJ5YELTO.mjs +39 -0
- package/dist/lib/browser/chunk-CJ5YELTO.mjs.map +7 -0
- package/dist/lib/browser/chunk-FPOISFQK.mjs +40 -0
- package/dist/lib/browser/chunk-FPOISFQK.mjs.map +7 -0
- package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
- package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
- package/dist/lib/browser/chunk-IXVWLTG7.mjs +9 -0
- package/dist/lib/browser/chunk-IXVWLTG7.mjs.map +7 -0
- package/dist/lib/browser/chunk-JMKVF2YQ.mjs +43 -0
- package/dist/lib/browser/chunk-JMKVF2YQ.mjs.map +7 -0
- package/dist/lib/browser/chunk-L4RXUJHJ.mjs +143 -0
- package/dist/lib/browser/chunk-L4RXUJHJ.mjs.map +7 -0
- package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
- package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7GH6RXJ3.mjs → chunk-PAM4KEXE.mjs} +2005 -1841
- package/dist/lib/browser/chunk-PAM4KEXE.mjs.map +7 -0
- package/dist/lib/browser/chunk-QIWDIPLR.mjs +41 -0
- package/dist/lib/browser/chunk-QIWDIPLR.mjs.map +7 -0
- package/dist/lib/browser/chunk-R3S54KRI.mjs +403 -0
- package/dist/lib/browser/chunk-R3S54KRI.mjs.map +7 -0
- package/dist/lib/browser/chunk-RK4Z4JUZ.mjs +283 -0
- package/dist/lib/browser/chunk-RK4Z4JUZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-TPIL3G6Y.mjs +288 -0
- package/dist/lib/browser/chunk-TPIL3G6Y.mjs.map +7 -0
- package/dist/lib/browser/chunk-YKTSSMDS.mjs +69 -0
- package/dist/lib/browser/chunk-YKTSSMDS.mjs.map +7 -0
- package/dist/lib/browser/chunk-ZHXZGIXD.mjs +9 -0
- package/dist/lib/browser/chunk-ZHXZGIXD.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +65 -25
- package/dist/lib/browser/internal/index.mjs +213 -92
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +80 -41
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/Annotation.mjs +33 -0
- package/dist/lib/node-esm/Annotation.mjs.map +7 -0
- package/dist/lib/node-esm/Database.mjs +18 -0
- package/dist/lib/node-esm/Database.mjs.map +7 -0
- package/dist/lib/node-esm/Entity.mjs +52 -0
- package/dist/lib/node-esm/Entity.mjs.map +7 -0
- package/dist/lib/node-esm/Err.mjs +11 -0
- package/dist/lib/node-esm/Err.mjs.map +7 -0
- package/dist/lib/node-esm/Filter.mjs +62 -0
- package/dist/lib/node-esm/Filter.mjs.map +7 -0
- package/dist/lib/node-esm/Format.mjs +67 -0
- package/dist/lib/node-esm/Format.mjs.map +7 -0
- package/dist/lib/node-esm/JsonSchema.mjs +20 -0
- package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
- package/dist/lib/node-esm/Key.mjs +13 -0
- package/dist/lib/node-esm/Key.mjs.map +7 -0
- package/dist/lib/node-esm/Obj.mjs +91 -0
- package/dist/lib/node-esm/Obj.mjs.map +7 -0
- package/dist/lib/node-esm/Order.mjs +13 -0
- package/dist/lib/node-esm/Order.mjs.map +7 -0
- package/dist/lib/node-esm/Query.mjs +27 -0
- package/dist/lib/node-esm/Query.mjs.map +7 -0
- package/dist/lib/node-esm/QueryResult.mjs +3 -0
- package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
- package/dist/lib/node-esm/Ref.mjs +23 -0
- package/dist/lib/node-esm/Ref.mjs.map +7 -0
- package/dist/lib/node-esm/Relation.mjs +85 -0
- package/dist/lib/node-esm/Relation.mjs.map +7 -0
- package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
- package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
- package/dist/lib/node-esm/Tag.mjs +26 -0
- package/dist/lib/node-esm/Tag.mjs.map +7 -0
- package/dist/lib/node-esm/Type.mjs +48 -0
- package/dist/lib/node-esm/Type.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2RIFBW3A.mjs +250 -0
- package/dist/lib/node-esm/chunk-2RIFBW3A.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5CB2ZW74.mjs +57 -0
- package/dist/lib/node-esm/chunk-5CB2ZW74.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-M4B6BMD2.mjs → chunk-5U5F4AWK.mjs} +2005 -1841
- package/dist/lib/node-esm/chunk-5U5F4AWK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
- package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BKYE5IW6.mjs +158 -0
- package/dist/lib/node-esm/chunk-BKYE5IW6.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BYOD7EVP.mjs +98 -0
- package/dist/lib/node-esm/chunk-BYOD7EVP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FWTSPIFF.mjs +133 -0
- package/dist/lib/node-esm/chunk-FWTSPIFF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-K37NA7PO.mjs +43 -0
- package/dist/lib/node-esm/chunk-K37NA7PO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-LIXUCQJM.mjs +41 -0
- package/dist/lib/node-esm/chunk-LIXUCQJM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MOLNWFNL.mjs +9 -0
- package/dist/lib/node-esm/chunk-MOLNWFNL.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
- package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs +40 -0
- package/dist/lib/node-esm/chunk-NBWL7UCZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-OZEDKT4R.mjs +204 -0
- package/dist/lib/node-esm/chunk-OZEDKT4R.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PW3VCWL5.mjs +24 -0
- package/dist/lib/node-esm/chunk-PW3VCWL5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TSTKBFST.mjs +403 -0
- package/dist/lib/node-esm/chunk-TSTKBFST.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UKGVOINP.mjs +9 -0
- package/dist/lib/node-esm/chunk-UKGVOINP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UV63HEHQ.mjs +143 -0
- package/dist/lib/node-esm/chunk-UV63HEHQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WXLVPCRJ.mjs +288 -0
- package/dist/lib/node-esm/chunk-WXLVPCRJ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WZ6YBELW.mjs +74 -0
- package/dist/lib/node-esm/chunk-WZ6YBELW.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XHJRMQZD.mjs +69 -0
- package/dist/lib/node-esm/chunk-XHJRMQZD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YOLH5KS4.mjs +283 -0
- package/dist/lib/node-esm/chunk-YOLH5KS4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs +39 -0
- package/dist/lib/node-esm/chunk-YQ2NWGL5.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +65 -25
- package/dist/lib/node-esm/internal/index.mjs +213 -92
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +80 -41
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/Annotation.d.ts +1 -1
- package/dist/types/src/Annotation.d.ts.map +1 -1
- package/dist/types/src/Database.d.ts +117 -60
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Entity.d.ts +111 -5
- package/dist/types/src/Entity.d.ts.map +1 -1
- 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/{errors.d.ts → Err.d.ts} +13 -17
- package/dist/types/src/Err.d.ts.map +1 -0
- package/dist/types/src/Filter.d.ts +120 -0
- package/dist/types/src/Filter.d.ts.map +1 -0
- package/dist/types/src/Format.d.ts.map +1 -1
- package/dist/types/src/Hypergraph.d.ts +60 -0
- package/dist/types/src/Hypergraph.d.ts.map +1 -0
- package/dist/types/src/Obj.d.ts +268 -76
- 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/query.d.ts → Query.d.ts} +53 -50
- 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 +9 -7
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +235 -18
- 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 +6 -6
- package/dist/types/src/Tag.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts +213 -50
- 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/index.d.ts +8 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/annotations/annotations.d.ts +23 -27
- package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -1
- package/dist/types/src/internal/annotations/util.d.ts +1 -0
- package/dist/types/src/internal/annotations/util.d.ts.map +1 -1
- package/dist/types/src/internal/api/annotations.d.ts +23 -0
- package/dist/types/src/internal/api/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/api/entity.d.ts +13 -0
- package/dist/types/src/internal/api/entity.d.ts.map +1 -0
- package/dist/types/src/internal/api/index.d.ts +15 -0
- package/dist/types/src/internal/api/index.d.ts.map +1 -0
- package/dist/types/src/internal/api/meta.d.ts +42 -0
- package/dist/types/src/internal/api/meta.d.ts.map +1 -0
- package/dist/types/src/internal/api/sorting.d.ts +24 -0
- package/dist/types/src/internal/api/sorting.d.ts.map +1 -0
- package/dist/types/src/internal/api/version.d.ts +42 -0
- package/dist/types/src/internal/api/version.d.ts.map +1 -0
- package/dist/types/src/internal/entities/entity.d.ts +13 -3
- package/dist/types/src/internal/entities/entity.d.ts.map +1 -1
- package/dist/types/src/internal/entities/index.d.ts +1 -1
- package/dist/types/src/internal/entities/index.d.ts.map +1 -1
- package/dist/types/src/internal/entities/model.d.ts +14 -7
- package/dist/types/src/internal/entities/model.d.ts.map +1 -1
- package/dist/types/src/internal/entities/object.d.ts +8 -1
- package/dist/types/src/internal/entities/object.d.ts.map +1 -1
- package/dist/types/src/internal/entities/relation.d.ts +8 -1
- package/dist/types/src/internal/entities/relation.d.ts.map +1 -1
- package/dist/types/src/internal/formats/format.d.ts +4 -4
- package/dist/types/src/internal/formats/format.d.ts.map +1 -1
- package/dist/types/src/internal/formats/select.d.ts +6 -4
- package/dist/types/src/internal/formats/select.d.ts.map +1 -1
- package/dist/types/src/internal/formats/string.d.ts +4 -0
- package/dist/types/src/internal/formats/string.d.ts.map +1 -1
- package/dist/types/src/internal/formats/types.d.ts +6 -2
- package/dist/types/src/internal/formats/types.d.ts.map +1 -1
- package/dist/types/src/internal/index.d.ts +2 -1
- package/dist/types/src/internal/index.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts +130 -29
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema.d.ts +2 -1
- package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -1
- package/dist/types/src/internal/object/clone.d.ts +8 -0
- package/dist/types/src/internal/object/clone.d.ts.map +1 -0
- package/dist/types/src/internal/object/create-object.d.ts +1 -1
- package/dist/types/src/internal/object/index.d.ts +3 -0
- package/dist/types/src/internal/object/index.d.ts.map +1 -1
- package/dist/types/src/internal/object/json-serializer.d.ts +13 -7
- package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/object/schema-validator.d.ts +1 -14
- package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
- package/dist/types/src/internal/object/set-value.d.ts +7 -0
- package/dist/types/src/internal/object/set-value.d.ts.map +1 -0
- package/dist/types/src/internal/object/set-value.test.d.ts +2 -0
- package/dist/types/src/internal/object/set-value.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/snapshot.d.ts +6 -0
- package/dist/types/src/internal/object/snapshot.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-object.d.ts +7 -13
- package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
- package/dist/types/src/internal/proxy/change-context.d.ts +55 -0
- package/dist/types/src/internal/proxy/change-context.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/change.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/change.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/define-hidden-property.d.ts +5 -0
- package/dist/types/src/internal/proxy/define-hidden-property.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/errors.d.ts +19 -0
- package/dist/types/src/internal/proxy/errors.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/event-batch.d.ts +10 -0
- package/dist/types/src/internal/proxy/event-batch.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/index.d.ts +11 -0
- package/dist/types/src/internal/proxy/index.d.ts.map +1 -1
- package/dist/types/src/internal/proxy/json-serializer.d.ts +6 -0
- package/dist/types/src/internal/proxy/json-serializer.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/make-object.d.ts +2 -4
- package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -1
- package/dist/types/src/internal/proxy/ownership.d.ts +57 -0
- package/dist/types/src/internal/proxy/ownership.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/proxy-types.d.ts +18 -0
- package/dist/types/src/internal/proxy/proxy-types.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/proxy-utils.d.ts +47 -0
- package/dist/types/src/internal/proxy/proxy-utils.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/reactive-array.d.ts +8 -0
- package/dist/types/src/internal/proxy/reactive-array.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/reactive.d.ts +39 -0
- package/dist/types/src/internal/proxy/reactive.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/schema-validator.d.ts +15 -0
- package/dist/types/src/internal/proxy/schema-validator.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/symbols.d.ts +3 -0
- package/dist/types/src/internal/proxy/symbols.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-handler.d.ts +14 -11
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/ref/ref-array.d.ts +4 -4
- package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -1
- package/dist/types/src/internal/ref/ref.d.ts +16 -7
- package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
- package/dist/types/src/internal/schema/compose.d.ts +2 -1
- package/dist/types/src/internal/schema/compose.d.ts.map +1 -1
- package/dist/types/src/internal/schema/echo-schema.d.ts +15 -3
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
- package/dist/types/src/internal/schema/index.d.ts +0 -2
- package/dist/types/src/internal/schema/index.d.ts.map +1 -1
- package/dist/types/src/internal/schema/persistent-schema.d.ts +9 -7
- package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -1
- package/dist/types/src/internal/types/base.d.ts +5 -16
- package/dist/types/src/internal/types/base.d.ts.map +1 -1
- package/dist/types/src/internal/types/entity.d.ts +27 -2
- package/dist/types/src/internal/types/entity.d.ts.map +1 -1
- package/dist/types/src/internal/types/meta.d.ts +6 -14
- package/dist/types/src/internal/types/meta.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +141 -175
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts +6 -1
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +130 -23
- package/src/Annotation.ts +5 -4
- package/src/Database.ts +229 -82
- package/src/Entity.test.ts +22 -0
- package/src/Entity.ts +173 -7
- package/src/{errors.ts → Err.ts} +2 -2
- package/src/Filter.ts +376 -0
- package/src/Format.ts +0 -2
- package/src/Hypergraph.ts +74 -0
- package/src/Obj.test.ts +386 -0
- package/src/Obj.ts +338 -250
- package/src/{query/order.ts → Order.ts} +19 -9
- package/src/{query/query.test.ts → Query.test.ts} +180 -49
- package/src/{query/query.ts → Query.ts} +115 -122
- package/src/QueryResult.ts +106 -0
- package/src/Ref.ts +20 -3
- package/src/Relation.test.ts +82 -0
- package/src/Relation.ts +364 -27
- package/src/SchemaRegistry.ts +105 -0
- package/src/Tag.ts +1 -1
- package/src/Type.test.ts +52 -0
- package/src/Type.ts +322 -88
- package/src/index.ts +9 -5
- package/src/internal/README.md +36 -17
- package/src/internal/annotations/annotations.test.ts +6 -6
- package/src/internal/annotations/annotations.ts +73 -76
- package/src/internal/annotations/util.ts +2 -0
- package/src/internal/api/annotations.ts +60 -0
- package/src/internal/api/entity.ts +29 -0
- package/src/internal/api/index.ts +19 -0
- package/src/internal/api/meta.ts +88 -0
- package/src/internal/api/sorting.ts +53 -0
- package/src/internal/api/version.ts +96 -0
- package/src/internal/entities/entity.ts +36 -19
- package/src/internal/entities/index.ts +1 -1
- package/src/internal/entities/model.ts +17 -12
- package/src/internal/entities/object.ts +21 -8
- package/src/internal/entities/relation.ts +23 -7
- package/src/internal/formats/format.test.ts +1 -1
- package/src/internal/formats/format.ts +7 -8
- package/src/internal/formats/object.ts +2 -2
- package/src/internal/formats/select.ts +6 -4
- package/src/internal/formats/string.ts +5 -0
- package/src/internal/formats/types.ts +9 -3
- package/src/internal/index.ts +2 -1
- package/src/internal/json-schema/json-schema-normalize.ts +4 -2
- package/src/internal/json-schema/json-schema-type.ts +31 -32
- package/src/internal/json-schema/json-schema.test.ts +19 -17
- package/src/internal/json-schema/json-schema.ts +14 -10
- package/src/internal/object/clone.ts +48 -0
- package/src/internal/object/create-object.ts +2 -2
- package/src/internal/object/index.ts +3 -0
- package/src/internal/object/inspect.ts +3 -3
- package/src/internal/object/json-serializer.test.ts +6 -2
- package/src/internal/object/json-serializer.ts +28 -70
- package/src/internal/object/schema-validator.test.ts +3 -7
- package/src/internal/object/schema-validator.ts +2 -238
- package/src/internal/object/set-value.test.ts +281 -0
- package/src/internal/object/set-value.ts +165 -0
- package/src/internal/object/snapshot.ts +70 -0
- package/src/internal/object/typed-object.test.ts +11 -11
- package/src/internal/object/typed-object.ts +8 -72
- package/src/internal/proxy/change-context.ts +138 -0
- package/src/internal/proxy/change.test.ts +519 -0
- package/src/internal/proxy/define-hidden-property.ts +14 -0
- package/src/internal/proxy/errors.ts +42 -0
- package/src/internal/proxy/event-batch.ts +44 -0
- package/src/internal/proxy/handler.test.ts +30 -80
- package/src/internal/proxy/index.ts +11 -0
- package/src/internal/proxy/json-serializer.ts +87 -0
- package/src/internal/proxy/make-object.ts +33 -50
- package/src/internal/proxy/ownership.ts +253 -0
- package/src/internal/proxy/proxy-types.ts +23 -0
- package/src/internal/proxy/proxy-utils.ts +150 -0
- package/src/internal/proxy/reactive-array.ts +71 -0
- package/src/internal/proxy/reactive.ts +69 -0
- package/src/internal/proxy/schema-validator.ts +244 -0
- package/src/internal/proxy/schema.test.ts +23 -15
- package/src/internal/proxy/symbols.ts +7 -0
- package/src/internal/proxy/typed-handler.test.ts +247 -35
- package/src/internal/proxy/typed-handler.ts +265 -56
- package/src/internal/proxy/typed-object.test.ts +37 -26
- package/src/internal/ref/ref-array.ts +4 -4
- package/src/internal/ref/ref.test.ts +1 -1
- package/src/internal/ref/ref.ts +64 -40
- package/src/internal/schema/compose.test.ts +3 -3
- package/src/internal/schema/compose.ts +13 -9
- package/src/internal/schema/echo-schema.ts +49 -11
- package/src/internal/schema/index.ts +0 -2
- package/src/internal/schema/persistent-schema.ts +3 -4
- package/src/internal/types/base.ts +6 -21
- package/src/internal/types/entity.ts +35 -4
- package/src/internal/types/meta.ts +13 -24
- package/src/testing/api.test.ts +31 -5
- package/src/testing/test-schema.ts +55 -30
- package/src/testing/util.ts +22 -15
- package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +0 -7
- package/dist/lib/browser/chunk-E4UTVJNF.mjs +0 -1111
- package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +0 -1111
- package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +0 -7
- package/dist/types/src/errors.d.ts.map +0 -1
- package/dist/types/src/internal/entities/expando.d.ts +0 -16
- package/dist/types/src/internal/entities/expando.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/query/filter.d.ts +0 -167
- package/dist/types/src/query/filter.d.ts.map +0 -1
- package/dist/types/src/query/index.d.ts +0 -5
- package/dist/types/src/query/index.d.ts.map +0 -1
- package/dist/types/src/query/order.d.ts +0 -12
- package/dist/types/src/query/order.d.ts.map +0 -1
- 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/testing.d.ts +0 -51
- package/dist/types/src/query/testing.d.ts.map +0 -1
- package/dist/types/src/query/types.d.ts +0 -17
- package/dist/types/src/query/types.d.ts.map +0 -1
- package/dist/types/src/query/util.d.ts +0 -8
- package/dist/types/src/query/util.d.ts.map +0 -1
- package/src/internal/entities/expando.ts +0 -23
- package/src/internal/schema/runtime-schema-registry.ts +0 -78
- package/src/internal/schema/snapshot.ts +0 -25
- package/src/query/filter.ts +0 -455
- package/src/query/index.ts +0 -9
- package/src/query/testing.ts +0 -64
- package/src/query/types.ts +0 -23
- package/src/query/util.ts +0 -25
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
isInstanceOf
|
|
4
|
+
} from "./chunk-RK4Z4JUZ.mjs";
|
|
5
|
+
import {
|
|
6
|
+
ObjectNotFoundError
|
|
7
|
+
} from "./chunk-CJ5YELTO.mjs";
|
|
8
|
+
import {
|
|
9
|
+
__export
|
|
10
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
11
|
+
|
|
12
|
+
// src/Database.ts
|
|
13
|
+
var Database_exports = {};
|
|
14
|
+
__export(Database_exports, {
|
|
15
|
+
Database: () => Database,
|
|
16
|
+
Service: () => Service,
|
|
17
|
+
TypeId: () => TypeId,
|
|
18
|
+
isDatabase: () => isDatabase
|
|
19
|
+
});
|
|
20
|
+
import * as Context from "effect/Context";
|
|
21
|
+
import * as Effect from "effect/Effect";
|
|
22
|
+
import * as Layer from "effect/Layer";
|
|
23
|
+
import * as Option from "effect/Option";
|
|
24
|
+
import * as Schema from "effect/Schema";
|
|
25
|
+
import { promiseWithCauseCapture } from "@dxos/effect";
|
|
26
|
+
import { invariant } from "@dxos/invariant";
|
|
27
|
+
import { DXN } from "@dxos/keys";
|
|
28
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Database.ts";
|
|
29
|
+
var TypeId = Symbol.for("@dxos/echo/Database");
|
|
30
|
+
var isDatabase = (obj) => {
|
|
31
|
+
return obj ? typeof obj === "object" && TypeId in obj && obj[TypeId] === TypeId : false;
|
|
32
|
+
};
|
|
33
|
+
var Database = Schema.Any.pipe(Schema.filter((space) => isDatabase(space)));
|
|
34
|
+
var Service = class _Service extends Context.Tag("@dxos/echo/Database/Service")() {
|
|
35
|
+
static notAvailable = Layer.succeed(_Service, {
|
|
36
|
+
get db() {
|
|
37
|
+
throw new Error("Database not available");
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
static make = (db) => {
|
|
41
|
+
return {
|
|
42
|
+
get db() {
|
|
43
|
+
return db;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
static layer = (db) => {
|
|
48
|
+
return Layer.succeed(_Service, _Service.make(db));
|
|
49
|
+
};
|
|
50
|
+
// TODO(dmaretskyi): Move all those to the top-level API of Database.ts module.
|
|
51
|
+
/**
|
|
52
|
+
* Returns the space ID of the database.
|
|
53
|
+
*/
|
|
54
|
+
static spaceId = Effect.gen(function* () {
|
|
55
|
+
const { db } = yield* _Service;
|
|
56
|
+
return db.spaceId;
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Resolves an object by its DXN.
|
|
60
|
+
*/
|
|
61
|
+
static resolve = (ref, schema) => Effect.gen(function* () {
|
|
62
|
+
const { db } = yield* _Service;
|
|
63
|
+
const dxn = ref instanceof DXN ? ref : ref.dxn;
|
|
64
|
+
const object = yield* promiseWithCauseCapture(() => db.graph.createRefResolver({
|
|
65
|
+
context: {
|
|
66
|
+
space: db.spaceId
|
|
67
|
+
}
|
|
68
|
+
}).resolve(dxn));
|
|
69
|
+
if (!object) {
|
|
70
|
+
return yield* Effect.fail(new ObjectNotFoundError(dxn));
|
|
71
|
+
}
|
|
72
|
+
invariant(!schema || isInstanceOf(schema, object), "Object type mismatch.", {
|
|
73
|
+
F: __dxlog_file,
|
|
74
|
+
L: 254,
|
|
75
|
+
S: this,
|
|
76
|
+
A: [
|
|
77
|
+
"!schema || isInstanceOf(schema, object)",
|
|
78
|
+
"'Object type mismatch.'"
|
|
79
|
+
]
|
|
80
|
+
});
|
|
81
|
+
return object;
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Loads an object reference.
|
|
85
|
+
*/
|
|
86
|
+
static load = Effect.fn(function* (ref) {
|
|
87
|
+
const object = yield* promiseWithCauseCapture(() => ref.tryLoad());
|
|
88
|
+
if (!object) {
|
|
89
|
+
return yield* Effect.fail(new ObjectNotFoundError(ref.dxn));
|
|
90
|
+
}
|
|
91
|
+
return object;
|
|
92
|
+
});
|
|
93
|
+
/**
|
|
94
|
+
* Loads an object reference option.
|
|
95
|
+
*/
|
|
96
|
+
// TODO(dmaretskyi): Do we need this -- you can just use `Effect.catchTag` in calling code instead.
|
|
97
|
+
static loadOption = Effect.fn(function* (ref) {
|
|
98
|
+
const object = yield* _Service.load(ref).pipe(Effect.catchTag("ObjectNotFoundError", () => Effect.succeed(void 0)));
|
|
99
|
+
return Option.fromNullable(object);
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* @link EchoDatabase.add
|
|
103
|
+
*/
|
|
104
|
+
static add = (obj) => _Service.pipe(Effect.map(({ db }) => db.add(obj)));
|
|
105
|
+
/**
|
|
106
|
+
* @link EchoDatabase.remove
|
|
107
|
+
*/
|
|
108
|
+
static remove = (obj) => _Service.pipe(Effect.map(({ db }) => db.remove(obj)));
|
|
109
|
+
/**
|
|
110
|
+
* @link EchoDatabase.flush
|
|
111
|
+
*/
|
|
112
|
+
static flush = (opts) => _Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts))));
|
|
113
|
+
/**
|
|
114
|
+
* Creates a `QueryResult` object that can be subscribed to.
|
|
115
|
+
*/
|
|
116
|
+
static query = (queryOrFilter) => _Service.pipe(Effect.map(({ db }) => db.query(queryOrFilter)), Effect.withSpan("Service.query"));
|
|
117
|
+
/**
|
|
118
|
+
* Executes the query once and returns the results.
|
|
119
|
+
*/
|
|
120
|
+
static runQuery = (queryOrFilter) => _Service.query(queryOrFilter).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));
|
|
121
|
+
// TODO(dmaretskyi): Change API to `yield* Service.querySchema(...).first` and `yield* Service.querySchema(...).schema`.
|
|
122
|
+
static schemaQuery = (query) => _Service.pipe(Effect.map(({ db }) => db.schemaRegistry.query(query)), Effect.withSpan("Service.schemaQuery"));
|
|
123
|
+
static runSchemaQuery = (query) => _Service.schemaQuery(query).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export {
|
|
127
|
+
TypeId,
|
|
128
|
+
isDatabase,
|
|
129
|
+
Database,
|
|
130
|
+
Service,
|
|
131
|
+
Database_exports
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=chunk-7STIBCP7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Database.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\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 { type QueryAST } from '@dxos/echo-protocol';\nimport { promiseWithCauseCapture } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { DXN, type PublicKey, type SpaceId } from '@dxos/keys';\nimport { type QueryOptions as QueryOptionsProto } from '@dxos/protocols/proto/dxos/echo/filter';\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/annotations';\nimport type { Ref } from './internal/ref/ref';\nimport { type AnyProperties } from './internal/types';\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 * @deprecated Use `QueryAST.QueryOptions` instead.\n */\nexport type QueryOptions = {\n /**\n * @deprecated Use `spaceIds` instead.\n */\n spaces?: PublicKey[];\n\n /**\n * Query only in specific spaces.\n */\n // TODO(dmaretskyi): Change this to SpaceId.\n spaceIds?: string[];\n\n /**\n * Return only the first `limit` results.\n */\n limit?: number;\n\n /**\n * Query only local spaces, or remote on agent.\n * @default `QueryOptions.DataLocation.LOCAL`\n *\n * Options:\n * - proto3_optional = true\n */\n // TODO(burdon): Remove?\n dataLocation?: QueryOptionsProto.DataLocation;\n};\n\n/**\n * `query` API function declaration.\n */\n// TODO(burdon): Reconcile Query and Filter (should only have one root type).\n// TODO(dmaretskyi): Remove query options.\nexport interface QueryFn {\n <Q extends Query.Any>(\n query: Q,\n options?: (QueryAST.QueryOptions & QueryOptions) | undefined,\n ): QueryResult.QueryResult<Query.Type<Q>>;\n\n <F extends Filter.Any>(\n filter: F,\n options?: (QueryAST.QueryOptions & QueryOptions) | undefined,\n ): 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 false\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.Obj<AnyProperties>>(id: string, opts?: GetObjectByIdOptions): 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\nexport class Service extends Context.Tag('@dxos/echo/Database/Service')<\n Service,\n {\n readonly db: Database;\n }\n>() {\n static notAvailable = Layer.succeed(Service, {\n get db(): Database {\n throw new Error('Database not available');\n },\n });\n\n static make = (db: Database): Context.Tag.Service<Service> => {\n return {\n get db() {\n return db;\n },\n };\n };\n\n static layer = (db: Database): Layer.Layer<Service> => {\n return Layer.succeed(Service, Service.make(db));\n };\n\n // TODO(dmaretskyi): Move all those to the top-level API of Database.ts module.\n\n /**\n * Returns the space ID of the database.\n */\n static spaceId = Effect.gen(function* () {\n const { db } = yield* Service;\n return db.spaceId;\n });\n\n /**\n * Resolves an object by its DXN.\n */\n static resolve: {\n // No type check.\n (ref: DXN | Ref<any>): Effect.Effect<Entity.Unknown, never, Service>;\n // Check matches schema.\n <S extends Type.Entity.Any>(\n ref: DXN | Ref<any>,\n schema: S,\n ): Effect.Effect<Schema.Schema.Type<S>, Err.ObjectNotFoundError, Service>;\n } = (<S extends Type.Entity.Any>(\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 })) as any;\n\n /**\n * Loads an object reference.\n */\n static load: <T>(ref: Ref<T>) => Effect.Effect<T, Err.ObjectNotFoundError, never> = Effect.fn(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 * Loads an object reference option.\n */\n // TODO(dmaretskyi): Do we need this -- you can just use `Effect.catchTag` in calling code instead.\n static loadOption: <T>(ref: Ref<T>) => Effect.Effect<Option.Option<T>, never, never> = Effect.fn(function* (ref) {\n const object = yield* Service.load(ref).pipe(\n Effect.catchTag('ObjectNotFoundError', () => Effect.succeed(undefined)),\n );\n\n return Option.fromNullable(object);\n });\n\n /**\n * @link EchoDatabase.add\n */\n static add = <T extends Entity.Unknown>(obj: T): Effect.Effect<T, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.add(obj)));\n\n /**\n * @link EchoDatabase.remove\n */\n static remove = <T extends Entity.Unknown>(obj: T): Effect.Effect<void, never, Service> =>\n Service.pipe(Effect.map(({ db }) => db.remove(obj)));\n\n /**\n * @link EchoDatabase.flush\n */\n static flush = (opts?: FlushOptions) =>\n Service.pipe(Effect.flatMap(({ db }) => promiseWithCauseCapture(() => db.flush(opts))));\n\n /**\n * Creates a `QueryResult` object that can be subscribed to.\n */\n static 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('Service.query'),\n );\n\n /**\n * Executes the query once and returns the results.\n */\n static 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 Service.query(queryOrFilter as any).pipe(\n Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())),\n );\n\n // TODO(dmaretskyi): Change API to `yield* Service.querySchema(...).first` and `yield* Service.querySchema(...).schema`.\n\n static schemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n query?: Q & SchemaRegistry.Query,\n ): Effect.Effect<QueryResult.QueryResult<SchemaRegistry.ExtractQueryResult<Q>>, never, Service> =>\n Service.pipe(\n Effect.map(({ db }) => db.schemaRegistry.query(query)),\n Effect.withSpan('Service.schemaQuery'),\n );\n\n static runSchemaQuery = <Q extends Types.NoExcessProperties<SchemaRegistry.Query, Q>>(\n query?: Q & SchemaRegistry.Query,\n ): Effect.Effect<SchemaRegistry.ExtractQueryResult<Q>[], never, Service> =>\n Service.schemaQuery(query).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run())));\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Context", "Effect", "Layer", "Option", "Schema", "promiseWithCauseCapture", "invariant", "DXN", "TypeId", "Symbol", "for", "isDatabase", "obj", "Database", "Any", "pipe", "filter", "space", "Service", "Tag", "notAvailable", "succeed", "db", "Error", "make", "layer", "spaceId", "gen", "resolve", "ref", "schema", "dxn", "DXN", "object", "promiseWithCauseCapture", "graph", "createRefResolver", "context", "fail", "ObjectNotFoundError", "invariant", "isInstanceOf", "load", "fn", "tryLoad", "loadOption", "catchTag", "undefined", "fromNullable", "add", "map", "remove", "flush", "opts", "flatMap", "query", "queryOrFilter", "withSpan", "runQuery", "queryResult", "run", "schemaQuery", "schemaRegistry", "runSchemaQuery"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
object
|
|
4
|
+
} from "./chunk-L4RXUJHJ.mjs";
|
|
5
|
+
import {
|
|
6
|
+
make
|
|
7
|
+
} from "./chunk-CBPFF3ZO.mjs";
|
|
8
|
+
import {
|
|
9
|
+
LabelAnnotation,
|
|
10
|
+
SystemTypeAnnotation
|
|
11
|
+
} from "./chunk-RK4Z4JUZ.mjs";
|
|
12
|
+
import {
|
|
13
|
+
__export
|
|
14
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
15
|
+
|
|
16
|
+
// src/Tag.ts
|
|
17
|
+
var Tag_exports = {};
|
|
18
|
+
__export(Tag_exports, {
|
|
19
|
+
Tag: () => Tag,
|
|
20
|
+
createTagList: () => createTagList,
|
|
21
|
+
findTagByLabel: () => findTagByLabel,
|
|
22
|
+
make: () => make2,
|
|
23
|
+
sortTags: () => sortTags
|
|
24
|
+
});
|
|
25
|
+
import * as Schema from "effect/Schema";
|
|
26
|
+
var Tag = Schema.Struct({
|
|
27
|
+
label: Schema.String,
|
|
28
|
+
hue: Schema.optional(Schema.String)
|
|
29
|
+
}).pipe(object({
|
|
30
|
+
typename: "dxos.org/type/Tag",
|
|
31
|
+
version: "0.1.0"
|
|
32
|
+
}), LabelAnnotation.set([
|
|
33
|
+
"label"
|
|
34
|
+
]), SystemTypeAnnotation.set(true));
|
|
35
|
+
var make2 = (props) => make(Tag, props);
|
|
36
|
+
var sortTags = ({ label: a }, { label: b }) => a.localeCompare(b);
|
|
37
|
+
var createTagList = (tags) => Object.entries(tags).map(([id, tag]) => ({
|
|
38
|
+
...tag,
|
|
39
|
+
id
|
|
40
|
+
})).sort(sortTags);
|
|
41
|
+
var findTagByLabel = (tags, name) => {
|
|
42
|
+
const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());
|
|
43
|
+
return entry ? {
|
|
44
|
+
...entry[1],
|
|
45
|
+
id: entry[0]
|
|
46
|
+
} : void 0;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
Tag,
|
|
51
|
+
make2 as make,
|
|
52
|
+
sortTags,
|
|
53
|
+
createTagList,
|
|
54
|
+
findTagByLabel,
|
|
55
|
+
Tag_exports
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-AFGYYVVQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Tag.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { LabelAnnotation, SystemTypeAnnotation } from './internal';\nimport * as Obj from './Obj';\nimport * as Type from './Type';\n\nexport const Tag = Schema.Struct({\n label: Schema.String,\n hue: Schema.optional(Schema.String), // TODO(burdon): Color name?\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Tag',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['label']),\n SystemTypeAnnotation.set(true),\n);\n\nexport type Tag = Schema.Schema.Type<typeof Tag>;\n\nexport const make = (props: Obj.MakeProps<typeof Tag>) => Obj.make(Tag, props);\n\n// TODO(burdon): Rename Map.\nexport type Map = Record<string, Tag>;\n\nexport const sortTags = ({ label: a }: Tag, { label: b }: Tag) => a.localeCompare(b);\n\nexport const createTagList = (tags: Map): Tag[] =>\n Object.entries(tags)\n .map(([id, tag]) => ({ ...tag, id }))\n .sort(sortTags);\n\nexport const findTagByLabel = (tags: Map | undefined, name: string): Tag | undefined => {\n const entry = Object.entries(tags ?? {}).find(([_, tag]) => tag.label.toLowerCase() === name.toLowerCase());\n return entry ? { ...entry[1], id: entry[0] } : undefined;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAAA;;;;;cAAAA;EAAA;;AAIA,YAAYC,YAAY;AAMjB,IAAMC,MAAaC,cAAO;EAC/BC,OAAcC;EACdC,KAAYC,gBAAgBF,aAAM;AACpC,CAAA,EAAGG,KACIC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBC,IAAI;EAAC;CAAQ,GAC7BC,qBAAqBD,IAAI,IAAA,CAAA;AAKpB,IAAME,QAAO,CAACC,UAAyCD,KAAKb,KAAKc,KAAAA;AAKjE,IAAMC,WAAW,CAAC,EAAEb,OAAOc,EAAC,GAAS,EAAEd,OAAOe,EAAC,MAAYD,EAAEE,cAAcD,CAAAA;AAE3E,IAAME,gBAAgB,CAACC,SAC5BC,OAAOC,QAAQF,IAAAA,EACZG,IAAI,CAAC,CAACC,IAAIC,GAAAA,OAAU;EAAE,GAAGA;EAAKD;AAAG,EAAA,EACjCE,KAAKX,QAAAA;AAEH,IAAMY,iBAAiB,CAACP,MAAuBQ,SAAAA;AACpD,QAAMC,QAAQR,OAAOC,QAAQF,QAAQ,CAAC,CAAA,EAAGU,KAAK,CAAC,CAACC,GAAGN,GAAAA,MAASA,IAAIvB,MAAM8B,YAAW,MAAOJ,KAAKI,YAAW,CAAA;AACxG,SAAOH,QAAQ;IAAE,GAAGA,MAAM,CAAA;IAAIL,IAAIK,MAAM,CAAA;EAAG,IAAII;AACjD;",
|
|
6
|
+
"names": ["make", "Schema", "Tag", "Struct", "label", "String", "hue", "optional", "pipe", "object", "typename", "version", "LabelAnnotation", "set", "SystemTypeAnnotation", "make", "props", "sortTags", "a", "b", "localeCompare", "createTagList", "tags", "Object", "entries", "map", "id", "tag", "sort", "findTagByLabel", "name", "entry", "find", "_", "toLowerCase", "undefined"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
JsonSchemaType,
|
|
4
|
+
toEffectSchema,
|
|
5
|
+
toJsonSchema
|
|
6
|
+
} from "./chunk-PAM4KEXE.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__export
|
|
9
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
10
|
+
|
|
11
|
+
// src/JsonSchema.ts
|
|
12
|
+
var JsonSchema_exports = {};
|
|
13
|
+
__export(JsonSchema_exports, {
|
|
14
|
+
JsonSchema: () => JsonSchema,
|
|
15
|
+
toEffectSchema: () => toEffectSchema,
|
|
16
|
+
toJsonSchema: () => toJsonSchema
|
|
17
|
+
});
|
|
18
|
+
var JsonSchema = JsonSchemaType;
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
JsonSchema,
|
|
22
|
+
JsonSchema_exports
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=chunk-BC6R4CAF.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/JsonSchema.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport { JsonSchemaType } from './internal';\n\nexport { toEffectSchema, toJsonSchema } from './internal';\n\n/**\n * Serializable JsonSchema type definition.\n */\nexport type JsonSchema = JsonSchemaType;\n\nexport const JsonSchema: Schema.Schema<JsonSchemaType> = JsonSchemaType;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAAA;;;;;;AAeO,IAAMA,aAA4CC;",
|
|
6
|
+
"names": ["JsonSchema", "JsonSchemaType"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
is,
|
|
4
|
+
props,
|
|
5
|
+
type
|
|
6
|
+
} from "./chunk-TPIL3G6Y.mjs";
|
|
7
|
+
import {
|
|
8
|
+
getTypeDXNFromSpecifier
|
|
9
|
+
} from "./chunk-RK4Z4JUZ.mjs";
|
|
10
|
+
import {
|
|
11
|
+
__export
|
|
12
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
13
|
+
|
|
14
|
+
// src/Query.ts
|
|
15
|
+
var Query_exports = {};
|
|
16
|
+
__export(Query_exports, {
|
|
17
|
+
all: () => all,
|
|
18
|
+
fromAst: () => fromAst,
|
|
19
|
+
is: () => is2,
|
|
20
|
+
select: () => select,
|
|
21
|
+
type: () => type2,
|
|
22
|
+
without: () => without
|
|
23
|
+
});
|
|
24
|
+
var QueryClass = class _QueryClass {
|
|
25
|
+
ast;
|
|
26
|
+
static variance = {};
|
|
27
|
+
constructor(ast) {
|
|
28
|
+
this.ast = ast;
|
|
29
|
+
}
|
|
30
|
+
"~Query" = _QueryClass.variance;
|
|
31
|
+
select(filter) {
|
|
32
|
+
if (is(filter)) {
|
|
33
|
+
return new _QueryClass({
|
|
34
|
+
type: "filter",
|
|
35
|
+
selection: this.ast,
|
|
36
|
+
filter: filter.ast
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
return new _QueryClass({
|
|
40
|
+
type: "filter",
|
|
41
|
+
selection: this.ast,
|
|
42
|
+
filter: props(filter).ast
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
reference(key) {
|
|
47
|
+
return new _QueryClass({
|
|
48
|
+
type: "reference-traversal",
|
|
49
|
+
anchor: this.ast,
|
|
50
|
+
property: key
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
referencedBy(target, key) {
|
|
54
|
+
const dxn = target !== void 0 ? getTypeDXNFromSpecifier(target) : null;
|
|
55
|
+
return new _QueryClass({
|
|
56
|
+
type: "incoming-references",
|
|
57
|
+
anchor: this.ast,
|
|
58
|
+
property: key ?? null,
|
|
59
|
+
typename: dxn?.toString() ?? null
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
sourceOf(relation, predicates) {
|
|
63
|
+
return new _QueryClass({
|
|
64
|
+
type: "relation",
|
|
65
|
+
anchor: this.ast,
|
|
66
|
+
direction: "outgoing",
|
|
67
|
+
filter: type(relation, predicates).ast
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
targetOf(relation, predicates) {
|
|
71
|
+
return new _QueryClass({
|
|
72
|
+
type: "relation",
|
|
73
|
+
anchor: this.ast,
|
|
74
|
+
direction: "incoming",
|
|
75
|
+
filter: type(relation, predicates).ast
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
source() {
|
|
79
|
+
return new _QueryClass({
|
|
80
|
+
type: "relation-traversal",
|
|
81
|
+
anchor: this.ast,
|
|
82
|
+
direction: "source"
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
target() {
|
|
86
|
+
return new _QueryClass({
|
|
87
|
+
type: "relation-traversal",
|
|
88
|
+
anchor: this.ast,
|
|
89
|
+
direction: "target"
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
orderBy(...order) {
|
|
93
|
+
return new _QueryClass({
|
|
94
|
+
type: "order",
|
|
95
|
+
query: this.ast,
|
|
96
|
+
order: order.map((o) => o.ast)
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
limit(limit) {
|
|
100
|
+
return new _QueryClass({
|
|
101
|
+
type: "limit",
|
|
102
|
+
query: this.ast,
|
|
103
|
+
limit
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
options(options) {
|
|
107
|
+
return new _QueryClass({
|
|
108
|
+
type: "options",
|
|
109
|
+
query: this.ast,
|
|
110
|
+
options
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
var is2 = (value) => {
|
|
115
|
+
return typeof value === "object" && value !== null && "~Query" in value;
|
|
116
|
+
};
|
|
117
|
+
var fromAst = (ast) => {
|
|
118
|
+
return new QueryClass(ast);
|
|
119
|
+
};
|
|
120
|
+
var select = (filter) => {
|
|
121
|
+
return new QueryClass({
|
|
122
|
+
type: "select",
|
|
123
|
+
filter: filter.ast
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
var type2 = (schema, predicates) => {
|
|
127
|
+
return new QueryClass({
|
|
128
|
+
type: "select",
|
|
129
|
+
filter: type(schema, predicates).ast
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
var all = (...queries) => {
|
|
133
|
+
if (queries.length === 0) {
|
|
134
|
+
throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
|
|
135
|
+
}
|
|
136
|
+
return new QueryClass({
|
|
137
|
+
type: "union",
|
|
138
|
+
queries: queries.map((q) => q.ast)
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
var without = (source, exclude) => {
|
|
142
|
+
return new QueryClass({
|
|
143
|
+
type: "set-difference",
|
|
144
|
+
source: source.ast,
|
|
145
|
+
exclude: exclude.ast
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export {
|
|
150
|
+
is2 as is,
|
|
151
|
+
fromAst,
|
|
152
|
+
select,
|
|
153
|
+
type2 as type,
|
|
154
|
+
all,
|
|
155
|
+
without,
|
|
156
|
+
Query_exports
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=chunk-BPYFLHWO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Query.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as EffectArray from 'effect/Array';\nimport type * as Schema from 'effect/Schema';\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nimport * as Filter from './Filter';\nimport { getTypeDXNFromSpecifier } from './internal';\nimport type * as Order from './Order';\nimport type * as Ref from './Ref';\nimport type * as Type$ from './Type';\n\n// TODO(dmaretskyi): Split up into interfaces for objects and relations so they can have separate verbs.\n// TODO(dmaretskyi): Undirected relation traversals.\n// TODO(wittjosiah): Make Filter & Query pipeable.\n\n/**\n * All property paths inside T that are references.\n */\n// TODO(dmaretskyi): Filter only properties that are references (or optional references, or unions that include references).\ntype RefPropKey<T> = keyof T & string;\n\n// TODO(burdon): Narrow T to Entity.Unknown?\nexport interface Query<T> {\n // TODO(dmaretskyi): See new effect-schema approach to variance.\n '~Query': { value: T };\n\n ast: QueryAST.Query;\n\n /**\n * Filter the current selection based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\n select(filter: Filter.Filter<T>): Query<T>;\n select(props: Filter.Props<T>): Query<T>;\n\n /**\n * Traverse an outgoing reference.\n * @param key - Property path inside T that is a reference or optional reference.\n * @returns Query for the target of the reference.\n */\n reference<K extends RefPropKey<T>>(\n key: K,\n ): Query<\n T[K] extends Ref.Unknown\n ? Ref.Target<T[K]>\n : T[K] extends Ref.Unknown | undefined\n ? Ref.Target<Exclude<T[K], undefined>>\n : never\n >;\n\n /**\n * Find objects referencing this object.\n * @param target - Schema of the referencing object. If not provided, matches any type.\n * @param key - Property path inside the referencing object that is a reference. If not provided, matches any property.\n * @returns Query for the referencing objects.\n */\n // TODO(dmaretskyi): any way to enforce `Ref.Target<Schema.Schema.Type<S>[key]> == T`?\n // TODO(dmaretskyi): Ability to go through arrays of references.\n referencedBy<S extends Schema.Schema.All>(\n target: S | string,\n key: RefPropKey<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n referencedBy<S extends Schema.Schema.All>(target: S | string): Query<Schema.Schema.Type<S>>;\n referencedBy(): Query<any>;\n\n /**\n * Find relations where this object is the source.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n sourceOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * Find relations where this object is the target.\n * @returns Query for the relation objects.\n * @param relation - Schema of the relation.\n * @param predicates - Predicates to filter the relation objects.\n */\n targetOf<S extends Schema.Schema.All>(\n relation: S | string,\n predicates?: Filter.Props<Schema.Schema.Type<S>>,\n ): Query<Schema.Schema.Type<S>>;\n\n /**\n * For a query for relations, get the source objects.\n * @returns Query for the source objects.\n */\n source(): Query<Type$.Relation.Source<T>>;\n\n /**\n * For a query for relations, get the target objects.\n * @returns Query for the target objects.\n */\n target(): Query<Type$.Relation.Target<T>>;\n\n /**\n * Order the query results.\n * Orders are specified in priority order. The first order will be applied first, etc.\n * @param order - Order to sort the results.\n * @returns Query for the ordered results.\n */\n orderBy(...order: EffectArray.NonEmptyArray<Order.Order<T>>): Query<T>;\n\n /**\n * Limit the number of results.\n * @param limit - Maximum number of results to return.\n * @returns Query for the limited results.\n */\n limit(limit: number): Query<T>;\n\n /**\n * Add options to a query.\n */\n options(options: QueryAST.QueryOptions): Query<T>;\n}\n\nexport type Any = Query<any>;\n\nexport type Type<Q extends Any> = Q extends Query<infer T> ? T : never;\n\nclass QueryClass implements Any {\n private static variance: Any['~Query'] = {} as Any['~Query'];\n\n constructor(public readonly ast: QueryAST.Query) {}\n\n '~Query' = QueryClass.variance;\n\n select(filter: Filter.Any | Filter.Props<any>): Any {\n if (Filter.is(filter)) {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: filter.ast,\n });\n } else {\n return new QueryClass({\n type: 'filter',\n selection: this.ast,\n filter: Filter.props(filter).ast,\n });\n }\n }\n\n reference(key: string): Any {\n return new QueryClass({\n type: 'reference-traversal',\n anchor: this.ast,\n property: key,\n });\n }\n\n referencedBy(target?: Schema.Schema.All | string, key?: string): Any {\n const dxn = target !== undefined ? getTypeDXNFromSpecifier(target) : null;\n return new QueryClass({\n type: 'incoming-references',\n anchor: this.ast,\n property: key ?? null,\n typename: dxn?.toString() ?? null,\n });\n }\n\n sourceOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'outgoing',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n targetOf(relation: Schema.Schema.All | string, predicates?: Filter.Props<unknown> | undefined): Any {\n return new QueryClass({\n type: 'relation',\n anchor: this.ast,\n direction: 'incoming',\n filter: Filter.type(relation, predicates).ast,\n });\n }\n\n source(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'source',\n });\n }\n\n target(): Any {\n return new QueryClass({\n type: 'relation-traversal',\n anchor: this.ast,\n direction: 'target',\n });\n }\n\n orderBy(...order: Order.Order<any>[]): Any {\n return new QueryClass({\n type: 'order',\n query: this.ast,\n order: order.map((o) => o.ast),\n });\n }\n\n limit(limit: number): Any {\n return new QueryClass({\n type: 'limit',\n query: this.ast,\n limit,\n });\n }\n\n options(options: QueryAST.QueryOptions): Any {\n return new QueryClass({\n type: 'options',\n query: this.ast,\n options,\n });\n }\n}\n\nexport const is = (value: unknown): value is Any => {\n return typeof value === 'object' && value !== null && '~Query' in value;\n};\n\n/** Construct a query from an ast. */\nexport const fromAst = (ast: QueryAST.Query): Any => {\n return new QueryClass(ast);\n};\n\n/**\n * Select objects based on a filter.\n * @param filter - Filter to select the objects.\n * @returns Query for the selected objects.\n */\nexport const select = <F extends Filter.Any>(filter: F): Query<Filter.Type<F>> => {\n return new QueryClass({\n type: 'select',\n filter: filter.ast,\n });\n};\n\n/**\n * Query for objects of a given schema.\n * @param schema - Schema of the objects.\n * @param predicates - Predicates to filter the objects.\n * @returns Query for the objects.\n *\n * Shorthand for: `Query.select(Filter.type(schema, predicates))`.\n */\nexport const type = (schema: Schema.Schema.All | string, predicates?: Filter.Props<unknown>): Any => {\n return new QueryClass({\n type: 'select',\n filter: Filter.type(schema, predicates).ast,\n });\n};\n\n/**\n * Combine results of multiple queries.\n * @param queries - Queries to combine.\n * @returns Query for the combined results.\n */\n// TODO(dmaretskyi): Rename to `combine` or `union`.\nexport const all = (...queries: Any[]): Any => {\n if (queries.length === 0) {\n throw new TypeError(\n 'Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())',\n );\n }\n return new QueryClass({\n type: 'union',\n queries: queries.map((q) => q.ast),\n });\n};\n\n/**\n * Subtract one query from another.\n * @param source - Query to subtract from.\n * @param exclude - Query to subtract.\n * @returns Query for the results of the source query minus the results of the exclude query.\n */\nexport const without = <T>(source: Query<T>, exclude: Query<T>): Query<T> => {\n return new QueryClass({\n type: 'set-difference',\n source: source.ast,\n exclude: exclude.ast,\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["is", "type", "QueryClass", "variance", "ast", "select", "filter", "is", "type", "selection", "props", "reference", "key", "anchor", "property", "referencedBy", "target", "dxn", "undefined", "getTypeDXNFromSpecifier", "typename", "toString", "sourceOf", "relation", "predicates", "direction", "targetOf", "source", "orderBy", "order", "query", "map", "o", "limit", "options", "value", "fromAst", "schema", "all", "queries", "length", "TypeError", "q", "without", "exclude"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
Kind
|
|
4
|
+
} from "./chunk-73M2G455.mjs";
|
|
5
|
+
import {
|
|
6
|
+
MetaId,
|
|
7
|
+
VersionTypeId,
|
|
8
|
+
addTag,
|
|
9
|
+
change,
|
|
10
|
+
clone,
|
|
11
|
+
compareVersions,
|
|
12
|
+
decodeVersion,
|
|
13
|
+
deleteKeys,
|
|
14
|
+
encodeVersion,
|
|
15
|
+
getDXN,
|
|
16
|
+
getDatabase,
|
|
17
|
+
getDescription,
|
|
18
|
+
getKeys,
|
|
19
|
+
getLabel,
|
|
20
|
+
getMetaChecked,
|
|
21
|
+
getSnapshot,
|
|
22
|
+
isDeleted,
|
|
23
|
+
isVersion,
|
|
24
|
+
makeObject,
|
|
25
|
+
objectFromJSON,
|
|
26
|
+
objectToJSON,
|
|
27
|
+
removeTag,
|
|
28
|
+
setDescription,
|
|
29
|
+
setLabel,
|
|
30
|
+
setValue,
|
|
31
|
+
sort,
|
|
32
|
+
sortByLabel,
|
|
33
|
+
sortByTypename,
|
|
34
|
+
subscribe,
|
|
35
|
+
version,
|
|
36
|
+
versionValid
|
|
37
|
+
} from "./chunk-PAM4KEXE.mjs";
|
|
38
|
+
import {
|
|
39
|
+
getSchema,
|
|
40
|
+
getTypeAnnotation,
|
|
41
|
+
getTypeDXN,
|
|
42
|
+
getTypename,
|
|
43
|
+
isInstanceOf
|
|
44
|
+
} from "./chunk-RK4Z4JUZ.mjs";
|
|
45
|
+
import {
|
|
46
|
+
KindId
|
|
47
|
+
} from "./chunk-YKTSSMDS.mjs";
|
|
48
|
+
import {
|
|
49
|
+
__export
|
|
50
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
51
|
+
|
|
52
|
+
// src/Obj.ts
|
|
53
|
+
var Obj_exports = {};
|
|
54
|
+
__export(Obj_exports, {
|
|
55
|
+
ID: () => ID,
|
|
56
|
+
Meta: () => Meta,
|
|
57
|
+
VersionTypeId: () => VersionTypeId,
|
|
58
|
+
addTag: () => addTag2,
|
|
59
|
+
change: () => change2,
|
|
60
|
+
clone: () => clone2,
|
|
61
|
+
compareVersions: () => compareVersions,
|
|
62
|
+
decodeVersion: () => decodeVersion,
|
|
63
|
+
deleteKeys: () => deleteKeys2,
|
|
64
|
+
encodeVersion: () => encodeVersion,
|
|
65
|
+
fromJSON: () => fromJSON,
|
|
66
|
+
getDXN: () => getDXN2,
|
|
67
|
+
getDatabase: () => getDatabase2,
|
|
68
|
+
getDescription: () => getDescription2,
|
|
69
|
+
getKeys: () => getKeys2,
|
|
70
|
+
getLabel: () => getLabel2,
|
|
71
|
+
getMeta: () => getMeta,
|
|
72
|
+
getSchema: () => getSchema2,
|
|
73
|
+
getSnapshot: () => getSnapshot2,
|
|
74
|
+
getTypeDXN: () => getTypeDXN2,
|
|
75
|
+
getTypename: () => getTypename2,
|
|
76
|
+
getValue: () => getValue,
|
|
77
|
+
instanceOf: () => instanceOf,
|
|
78
|
+
isDeleted: () => isDeleted2,
|
|
79
|
+
isObject: () => isObject,
|
|
80
|
+
isVersion: () => isVersion,
|
|
81
|
+
make: () => make,
|
|
82
|
+
removeTag: () => removeTag2,
|
|
83
|
+
setDescription: () => setDescription2,
|
|
84
|
+
setLabel: () => setLabel2,
|
|
85
|
+
setValue: () => setValue2,
|
|
86
|
+
sort: () => sort2,
|
|
87
|
+
sortByLabel: () => sortByLabel2,
|
|
88
|
+
sortByTypename: () => sortByTypename2,
|
|
89
|
+
subscribe: () => subscribe2,
|
|
90
|
+
toJSON: () => toJSON,
|
|
91
|
+
version: () => version2,
|
|
92
|
+
versionValid: () => versionValid
|
|
93
|
+
});
|
|
94
|
+
import * as Function from "effect/Function";
|
|
95
|
+
import * as Schema from "effect/Schema";
|
|
96
|
+
import { createJsonPath, getValue as getValue$ } from "@dxos/effect";
|
|
97
|
+
import { assertArgument } from "@dxos/invariant";
|
|
98
|
+
import { ObjectId } from "@dxos/keys";
|
|
99
|
+
import { assumeType } from "@dxos/util";
|
|
100
|
+
var defaultMeta = {
|
|
101
|
+
keys: []
|
|
102
|
+
};
|
|
103
|
+
var make = (schema, props, meta) => {
|
|
104
|
+
assertArgument(getTypeAnnotation(schema)?.kind === Kind.Object, "schema", "Expected an object schema");
|
|
105
|
+
if (props[MetaId] != null) {
|
|
106
|
+
meta = {
|
|
107
|
+
...structuredClone(defaultMeta),
|
|
108
|
+
...props[MetaId]
|
|
109
|
+
};
|
|
110
|
+
delete props[MetaId];
|
|
111
|
+
}
|
|
112
|
+
const filterUndefined = Object.fromEntries(Object.entries(props).filter(([_, v]) => v !== void 0));
|
|
113
|
+
return makeObject(schema, filterUndefined, {
|
|
114
|
+
...defaultMeta,
|
|
115
|
+
...meta
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
var isObject = (obj) => {
|
|
119
|
+
assumeType(obj);
|
|
120
|
+
return typeof obj === "object" && obj !== null && obj[KindId] === Kind.Object;
|
|
121
|
+
};
|
|
122
|
+
var subscribe2 = (obj, callback) => {
|
|
123
|
+
return subscribe(obj, callback);
|
|
124
|
+
};
|
|
125
|
+
var getSnapshot2 = getSnapshot;
|
|
126
|
+
var clone2 = clone;
|
|
127
|
+
var change2 = (obj, callback) => {
|
|
128
|
+
change(obj, callback);
|
|
129
|
+
};
|
|
130
|
+
var getValue = (obj, path) => {
|
|
131
|
+
return getValue$(obj, createJsonPath(path));
|
|
132
|
+
};
|
|
133
|
+
var setValue2 = setValue;
|
|
134
|
+
var ID = ObjectId;
|
|
135
|
+
var instanceOf = (...args) => {
|
|
136
|
+
if (args.length === 1) {
|
|
137
|
+
return (entity) => isInstanceOf(args[0], entity);
|
|
138
|
+
}
|
|
139
|
+
return isInstanceOf(args[0], args[1]);
|
|
140
|
+
};
|
|
141
|
+
var getDXN2 = (entity) => {
|
|
142
|
+
assertArgument(!Schema.isSchema(entity), "obj", "Object should not be a schema.");
|
|
143
|
+
return getDXN(entity);
|
|
144
|
+
};
|
|
145
|
+
var getTypeDXN2 = getTypeDXN;
|
|
146
|
+
var getSchema2 = getSchema;
|
|
147
|
+
var getTypename2 = (entity) => getTypename(entity);
|
|
148
|
+
var getDatabase2 = (entity) => getDatabase(entity);
|
|
149
|
+
var Meta = MetaId;
|
|
150
|
+
function getMeta(entity) {
|
|
151
|
+
return getMetaChecked(entity);
|
|
152
|
+
}
|
|
153
|
+
var getKeys2 = Function.dual(2, (entity, source) => getKeys(entity, source));
|
|
154
|
+
var deleteKeys2 = (entity, source) => deleteKeys(entity, source);
|
|
155
|
+
var addTag2 = (entity, tag) => addTag(entity, tag);
|
|
156
|
+
var removeTag2 = (entity, tag) => removeTag(entity, tag);
|
|
157
|
+
var isDeleted2 = (entity) => isDeleted(entity);
|
|
158
|
+
var getLabel2 = (entity) => getLabel(entity);
|
|
159
|
+
var setLabel2 = (entity, label) => setLabel(entity, label);
|
|
160
|
+
var getDescription2 = (entity) => getDescription(entity);
|
|
161
|
+
var setDescription2 = (entity, description) => setDescription(entity, description);
|
|
162
|
+
var toJSON = (entity) => objectToJSON(entity);
|
|
163
|
+
var fromJSON = objectFromJSON;
|
|
164
|
+
var sortByLabel2 = sortByLabel;
|
|
165
|
+
var sortByTypename2 = sortByTypename;
|
|
166
|
+
var sort2 = (...comparators) => sort(...comparators);
|
|
167
|
+
var version2 = (entity) => version(entity);
|
|
168
|
+
|
|
169
|
+
export {
|
|
170
|
+
make,
|
|
171
|
+
isObject,
|
|
172
|
+
subscribe2 as subscribe,
|
|
173
|
+
getSnapshot2 as getSnapshot,
|
|
174
|
+
clone2 as clone,
|
|
175
|
+
change2 as change,
|
|
176
|
+
getValue,
|
|
177
|
+
setValue2 as setValue,
|
|
178
|
+
ID,
|
|
179
|
+
instanceOf,
|
|
180
|
+
getDXN2 as getDXN,
|
|
181
|
+
getTypeDXN2 as getTypeDXN,
|
|
182
|
+
getSchema2 as getSchema,
|
|
183
|
+
getTypename2 as getTypename,
|
|
184
|
+
getDatabase2 as getDatabase,
|
|
185
|
+
Meta,
|
|
186
|
+
getMeta,
|
|
187
|
+
getKeys2 as getKeys,
|
|
188
|
+
deleteKeys2 as deleteKeys,
|
|
189
|
+
addTag2 as addTag,
|
|
190
|
+
removeTag2 as removeTag,
|
|
191
|
+
isDeleted2 as isDeleted,
|
|
192
|
+
getLabel2 as getLabel,
|
|
193
|
+
setLabel2 as setLabel,
|
|
194
|
+
getDescription2 as getDescription,
|
|
195
|
+
setDescription2 as setDescription,
|
|
196
|
+
toJSON,
|
|
197
|
+
fromJSON,
|
|
198
|
+
sortByLabel2 as sortByLabel,
|
|
199
|
+
sortByTypename2 as sortByTypename,
|
|
200
|
+
sort2 as sort,
|
|
201
|
+
version2 as version,
|
|
202
|
+
Obj_exports
|
|
203
|
+
};
|
|
204
|
+
//# sourceMappingURL=chunk-CBPFF3ZO.mjs.map
|