@dxos/echo 0.8.4-main.67995b8 → 0.8.4-main.6fa680abb7
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 +4 -5
- package/dist/lib/neutral/Annotation.mjs +37 -0
- package/dist/lib/neutral/Database.mjs +45 -0
- package/dist/lib/neutral/Entity.mjs +59 -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/Feed.mjs +46 -0
- package/dist/lib/neutral/Feed.mjs.map +7 -0
- package/dist/lib/neutral/Filter.mjs +64 -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/Obj.mjs +110 -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 +35 -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 +93 -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 +28 -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-2FK7XCDV.mjs +56 -0
- package/dist/lib/neutral/chunk-2FK7XCDV.mjs.map +7 -0
- package/dist/lib/neutral/chunk-2Z72D23W.mjs +787 -0
- package/dist/lib/neutral/chunk-2Z72D23W.mjs.map +7 -0
- package/dist/lib/neutral/chunk-35FDO7WH.mjs +396 -0
- package/dist/lib/neutral/chunk-35FDO7WH.mjs.map +7 -0
- package/dist/lib/neutral/chunk-4HWWKURH.mjs +34 -0
- package/dist/lib/neutral/chunk-4HWWKURH.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7VLKWC6T.mjs +121 -0
- package/dist/lib/neutral/chunk-7VLKWC6T.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ANHVGJI4.mjs +21 -0
- package/dist/lib/neutral/chunk-ANHVGJI4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-B5OXLWZL.mjs +402 -0
- package/dist/lib/neutral/chunk-B5OXLWZL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BESZGRPL.mjs +299 -0
- package/dist/lib/neutral/chunk-BESZGRPL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-BNCCGLJN.mjs +7 -0
- package/dist/lib/neutral/chunk-BNCCGLJN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-EK7UOJ3R.mjs +45 -0
- package/dist/lib/neutral/chunk-EK7UOJ3R.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ETOQXZHC.mjs +130 -0
- package/dist/lib/neutral/chunk-ETOQXZHC.mjs.map +7 -0
- package/dist/lib/neutral/chunk-EV3A23AS.mjs +283 -0
- package/dist/lib/neutral/chunk-EV3A23AS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FUGL645K.mjs +313 -0
- package/dist/lib/neutral/chunk-FUGL645K.mjs.map +7 -0
- package/dist/lib/neutral/chunk-FZO7LQO7.mjs +73 -0
- package/dist/lib/neutral/chunk-FZO7LQO7.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-LDHKQDXR.mjs +27 -0
- package/dist/lib/neutral/chunk-LDHKQDXR.mjs.map +7 -0
- package/dist/lib/neutral/chunk-MFJPOZDU.mjs +2709 -0
- package/dist/lib/neutral/chunk-MFJPOZDU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-OENWMTE6.mjs +45 -0
- package/dist/lib/neutral/chunk-OENWMTE6.mjs.map +7 -0
- package/dist/lib/neutral/chunk-OMUPQMLR.mjs +7 -0
- package/dist/lib/neutral/chunk-OMUPQMLR.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PH5RST5U.mjs +298 -0
- package/dist/lib/neutral/chunk-PH5RST5U.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PKD2L7XO.mjs +152 -0
- package/dist/lib/neutral/chunk-PKD2L7XO.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QLALBCSA.mjs +97 -0
- package/dist/lib/neutral/chunk-QLALBCSA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QTUBE4DR.mjs +102 -0
- package/dist/lib/neutral/chunk-QTUBE4DR.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SEMVAGBM.mjs +355 -0
- package/dist/lib/neutral/chunk-SEMVAGBM.mjs.map +7 -0
- package/dist/lib/neutral/chunk-UBEZSGXY.mjs +51 -0
- package/dist/lib/neutral/chunk-UBEZSGXY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-UI6MWK5W.mjs +42 -0
- package/dist/lib/neutral/chunk-UI6MWK5W.mjs.map +7 -0
- package/dist/lib/neutral/chunk-WYOKA6AE.mjs +67 -0
- package/dist/lib/neutral/chunk-WYOKA6AE.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +97 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/internal/index.mjs +470 -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 +373 -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 +189 -0
- package/dist/types/src/Database.d.ts.map +1 -0
- package/dist/types/src/Dataset.d.ts +18 -0
- package/dist/types/src/Dataset.d.ts.map +1 -0
- package/dist/types/src/Entity.d.ts +168 -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/Feed.d.ts +165 -0
- package/dist/types/src/Feed.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 +4 -0
- package/dist/types/src/Format.d.ts.map +1 -0
- package/dist/types/src/Hypergraph.d.ts +60 -0
- package/dist/types/src/Hypergraph.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/Obj.d.ts +457 -35
- 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 +202 -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 +291 -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 +19 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/annotations.d.ts +230 -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 +37 -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/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 +231 -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/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 +10 -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 +112 -59
- package/src/Annotation.ts +48 -0
- package/src/Collection.ts +32 -0
- package/src/Database.ts +317 -0
- package/src/Dataset.ts +26 -0
- package/src/Entity.test.ts +22 -0
- package/src/Entity.ts +237 -0
- package/src/Err.ts +40 -0
- package/src/Feed.ts +257 -0
- package/src/Filter.ts +391 -0
- package/src/Format.ts +9 -0
- package/src/Hypergraph.ts +74 -0
- package/src/JsonSchema.ts +26 -0
- package/src/Key.ts +3 -0
- package/src/Obj.test.ts +447 -0
- package/src/Obj.ts +644 -78
- package/src/Order.ts +46 -0
- package/src/Query.test.ts +632 -0
- package/src/Query.ts +522 -0
- package/src/QueryResult.ts +106 -0
- package/src/Ref.ts +78 -9
- package/src/Relation.test.ts +88 -0
- package/src/Relation.ts +449 -52
- package/src/SchemaRegistry.ts +106 -0
- package/src/Tag.ts +41 -0
- package/src/Type.test.ts +52 -0
- package/src/Type.ts +168 -153
- package/src/View.ts +102 -0
- package/src/hierarchy.test.ts +33 -0
- package/src/index.ts +21 -4
- package/src/internal/Annotation/annotations.test.ts +96 -0
- package/src/internal/Annotation/annotations.ts +571 -0
- package/src/internal/Annotation/index.ts +7 -0
- package/src/internal/Annotation/sorting.ts +52 -0
- package/src/internal/Annotation/util.ts +85 -0
- package/src/internal/Entity/api.ts +31 -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 +58 -0
- package/src/internal/Entity/relation.ts +154 -0
- package/src/internal/Entity/util.ts +33 -0
- package/src/internal/Entity/version.ts +97 -0
- package/src/internal/Format/date.test.ts +56 -0
- package/src/internal/Format/date.ts +217 -0
- package/src/internal/Format/format.test.ts +77 -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 +861 -0
- package/src/internal/JsonSchema/json-schema.ts +534 -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 +116 -0
- package/src/internal/Obj/create-object.ts +95 -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 +121 -0
- package/src/internal/Obj/json-serializer.ts +204 -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/Ref/index.ts +6 -0
- package/src/internal/Ref/ref-array.ts +39 -0
- package/src/internal/Ref/ref.test.ts +101 -0
- package/src/internal/Ref/ref.ts +572 -0
- package/src/internal/Type/compose.test.ts +42 -0
- package/src/internal/Type/compose.ts +41 -0
- package/src/internal/Type/echo-schema.ts +424 -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 +123 -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 +106 -0
- package/src/internal/common/proxy/ownership.ts +253 -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.ts +69 -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 +314 -0
- package/src/internal/common/proxy/typed-handler.ts +449 -0
- package/src/internal/common/proxy/typed-object.test.ts +116 -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 +68 -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 +16 -0
- package/src/testing/api.test.ts +126 -0
- package/src/testing/index.ts +3 -1
- package/src/testing/test-data.ts +130 -0
- package/src/testing/test-schema.ts +240 -0
- package/src/testing/util.ts +85 -0
- package/dist/lib/browser/chunk-EUA7CM23.mjs +0 -619
- package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -22
- 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-IV6BWGHK.mjs +0 -619
- package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -22
- 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 -218
- 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 -323
- package/src/query/dsl.ts +0 -646
- package/src/query/index.ts +0 -5
- package/src/test/api.test.ts +0 -173
- 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,283 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getQueueDxn
|
|
3
|
+
} from "./chunk-QTUBE4DR.mjs";
|
|
4
|
+
import {
|
|
5
|
+
everything,
|
|
6
|
+
is,
|
|
7
|
+
props,
|
|
8
|
+
type
|
|
9
|
+
} from "./chunk-BESZGRPL.mjs";
|
|
10
|
+
import {
|
|
11
|
+
getTypename
|
|
12
|
+
} from "./chunk-FUGL645K.mjs";
|
|
13
|
+
import {
|
|
14
|
+
isDatabase
|
|
15
|
+
} from "./chunk-ETOQXZHC.mjs";
|
|
16
|
+
import {
|
|
17
|
+
getTypeDXNFromSpecifier
|
|
18
|
+
} from "./chunk-SEMVAGBM.mjs";
|
|
19
|
+
import {
|
|
20
|
+
__export
|
|
21
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
22
|
+
|
|
23
|
+
// src/Query.ts
|
|
24
|
+
var Query_exports = {};
|
|
25
|
+
__export(Query_exports, {
|
|
26
|
+
all: () => all,
|
|
27
|
+
from: () => from,
|
|
28
|
+
fromAst: () => fromAst,
|
|
29
|
+
is: () => is2,
|
|
30
|
+
select: () => select,
|
|
31
|
+
type: () => type2,
|
|
32
|
+
without: () => without
|
|
33
|
+
});
|
|
34
|
+
var QueryClass = class _QueryClass {
|
|
35
|
+
ast;
|
|
36
|
+
static "variance" = {};
|
|
37
|
+
constructor(ast) {
|
|
38
|
+
this.ast = ast;
|
|
39
|
+
}
|
|
40
|
+
"~Query" = _QueryClass.variance;
|
|
41
|
+
select(filter) {
|
|
42
|
+
if (is(filter)) {
|
|
43
|
+
return new _QueryClass({
|
|
44
|
+
type: "filter",
|
|
45
|
+
selection: this.ast,
|
|
46
|
+
filter: filter.ast
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
return new _QueryClass({
|
|
50
|
+
type: "filter",
|
|
51
|
+
selection: this.ast,
|
|
52
|
+
filter: props(filter).ast
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
reference(key) {
|
|
57
|
+
return new _QueryClass({
|
|
58
|
+
type: "reference-traversal",
|
|
59
|
+
anchor: this.ast,
|
|
60
|
+
property: key
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
referencedBy(target, key) {
|
|
64
|
+
const dxn = target !== void 0 ? getTypeDXNFromSpecifier(target) : null;
|
|
65
|
+
return new _QueryClass({
|
|
66
|
+
type: "incoming-references",
|
|
67
|
+
anchor: this.ast,
|
|
68
|
+
property: key ?? null,
|
|
69
|
+
typename: dxn?.toString() ?? null
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
sourceOf(relation, predicates) {
|
|
73
|
+
return new _QueryClass({
|
|
74
|
+
type: "relation",
|
|
75
|
+
anchor: this.ast,
|
|
76
|
+
direction: "outgoing",
|
|
77
|
+
filter: relation !== void 0 ? type(relation, predicates).ast : void 0
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
targetOf(relation, predicates) {
|
|
81
|
+
return new _QueryClass({
|
|
82
|
+
type: "relation",
|
|
83
|
+
anchor: this.ast,
|
|
84
|
+
direction: "incoming",
|
|
85
|
+
filter: relation !== void 0 ? type(relation, predicates).ast : void 0
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
source() {
|
|
89
|
+
return new _QueryClass({
|
|
90
|
+
type: "relation-traversal",
|
|
91
|
+
anchor: this.ast,
|
|
92
|
+
direction: "source"
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
target() {
|
|
96
|
+
return new _QueryClass({
|
|
97
|
+
type: "relation-traversal",
|
|
98
|
+
anchor: this.ast,
|
|
99
|
+
direction: "target"
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
parent() {
|
|
103
|
+
return new _QueryClass({
|
|
104
|
+
type: "hierarchy-traversal",
|
|
105
|
+
anchor: this.ast,
|
|
106
|
+
direction: "to-parent"
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
children() {
|
|
110
|
+
return new _QueryClass({
|
|
111
|
+
type: "hierarchy-traversal",
|
|
112
|
+
anchor: this.ast,
|
|
113
|
+
direction: "to-children"
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
orderBy(...order) {
|
|
117
|
+
return new _QueryClass({
|
|
118
|
+
type: "order",
|
|
119
|
+
query: this.ast,
|
|
120
|
+
order: order.map((o) => o.ast)
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
limit(limit) {
|
|
124
|
+
return new _QueryClass({
|
|
125
|
+
type: "limit",
|
|
126
|
+
query: this.ast,
|
|
127
|
+
limit
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
from(arg, options) {
|
|
131
|
+
if (is2(arg)) {
|
|
132
|
+
return new _QueryClass({
|
|
133
|
+
type: "from",
|
|
134
|
+
query: this.ast,
|
|
135
|
+
from: {
|
|
136
|
+
_tag: "query",
|
|
137
|
+
query: arg.ast
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (arg === "all-accessible-spaces") {
|
|
142
|
+
return new _QueryClass({
|
|
143
|
+
type: "from",
|
|
144
|
+
query: this.ast,
|
|
145
|
+
from: {
|
|
146
|
+
_tag: "scope",
|
|
147
|
+
scope: {
|
|
148
|
+
...options?.includeFeeds ? {
|
|
149
|
+
allQueuesFromSpaces: true
|
|
150
|
+
} : {}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (_isScope(arg)) {
|
|
156
|
+
return new _QueryClass({
|
|
157
|
+
type: "from",
|
|
158
|
+
query: this.ast,
|
|
159
|
+
from: {
|
|
160
|
+
_tag: "scope",
|
|
161
|
+
scope: arg
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const items = Array.isArray(arg) ? arg : [
|
|
166
|
+
arg
|
|
167
|
+
];
|
|
168
|
+
if (items.length > 0 && isDatabase(items[0])) {
|
|
169
|
+
const databases = items;
|
|
170
|
+
return new _QueryClass({
|
|
171
|
+
type: "from",
|
|
172
|
+
query: this.ast,
|
|
173
|
+
from: {
|
|
174
|
+
_tag: "scope",
|
|
175
|
+
scope: {
|
|
176
|
+
spaceIds: databases.map((db) => db.spaceId),
|
|
177
|
+
...options?.includeFeeds ? {
|
|
178
|
+
allQueuesFromSpaces: true
|
|
179
|
+
} : {}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (items.length > 0) {
|
|
185
|
+
const typename = getTypename(items[0]);
|
|
186
|
+
if (typename === "org.dxos.type.view") {
|
|
187
|
+
throw new Error("Query.from(view) is not yet supported.");
|
|
188
|
+
}
|
|
189
|
+
if (typename === "org.dxos.type.collection") {
|
|
190
|
+
throw new Error("Query.from(collection) is not yet supported.");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const feeds = items;
|
|
194
|
+
const queueDxns = feeds.flatMap((feed) => {
|
|
195
|
+
const dxn = getQueueDxn(feed);
|
|
196
|
+
return dxn ? [
|
|
197
|
+
dxn.toString()
|
|
198
|
+
] : [];
|
|
199
|
+
});
|
|
200
|
+
return new _QueryClass({
|
|
201
|
+
type: "from",
|
|
202
|
+
query: this.ast,
|
|
203
|
+
from: {
|
|
204
|
+
_tag: "scope",
|
|
205
|
+
scope: {
|
|
206
|
+
queues: queueDxns
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
options(options) {
|
|
212
|
+
return new _QueryClass({
|
|
213
|
+
type: "options",
|
|
214
|
+
query: this.ast,
|
|
215
|
+
options
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
var is2 = (value) => {
|
|
220
|
+
return typeof value === "object" && value !== null && "~Query" in value;
|
|
221
|
+
};
|
|
222
|
+
var fromAst = (ast) => {
|
|
223
|
+
return new QueryClass(ast);
|
|
224
|
+
};
|
|
225
|
+
var select = (filter) => {
|
|
226
|
+
return new QueryClass({
|
|
227
|
+
type: "select",
|
|
228
|
+
filter: filter.ast
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
var type2 = (schema, predicates) => {
|
|
232
|
+
return new QueryClass({
|
|
233
|
+
type: "select",
|
|
234
|
+
filter: type(schema, predicates).ast
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
var all = (...queries) => {
|
|
238
|
+
if (queries.length === 0) {
|
|
239
|
+
throw new TypeError("Query.all combines results of multiple queries, to query all objects use Query.select(Filter.everything())");
|
|
240
|
+
}
|
|
241
|
+
return new QueryClass({
|
|
242
|
+
type: "union",
|
|
243
|
+
queries: queries.map((q) => q.ast)
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
var without = (source, exclude) => {
|
|
247
|
+
return new QueryClass({
|
|
248
|
+
type: "set-difference",
|
|
249
|
+
source: source.ast,
|
|
250
|
+
exclude: exclude.ast
|
|
251
|
+
});
|
|
252
|
+
};
|
|
253
|
+
var from = (source, options) => {
|
|
254
|
+
const baseQuery = {
|
|
255
|
+
type: "select",
|
|
256
|
+
filter: everything().ast
|
|
257
|
+
};
|
|
258
|
+
const wrapper = new QueryClass(baseQuery);
|
|
259
|
+
return wrapper.from(source, options);
|
|
260
|
+
};
|
|
261
|
+
var SCOPE_KEYS = /* @__PURE__ */ new Set([
|
|
262
|
+
"spaceIds",
|
|
263
|
+
"queues",
|
|
264
|
+
"allQueuesFromSpaces"
|
|
265
|
+
]);
|
|
266
|
+
var _isScope = (value) => {
|
|
267
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
return Object.keys(value).every((key) => SCOPE_KEYS.has(key));
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
export {
|
|
274
|
+
is2 as is,
|
|
275
|
+
fromAst,
|
|
276
|
+
select,
|
|
277
|
+
type2 as type,
|
|
278
|
+
all,
|
|
279
|
+
without,
|
|
280
|
+
from,
|
|
281
|
+
Query_exports
|
|
282
|
+
};
|
|
283
|
+
//# sourceMappingURL=chunk-EV3A23AS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Query.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\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 type * as Collection from './Collection';\nimport * as Database from './Database';\nimport type * as Dataset from './Dataset';\nimport * as Feed from './Feed';\nimport * as Filter from './Filter';\nimport * as internal from './internal';\nimport * as Obj from './Obj';\nimport type * as Order from './Order';\nimport type * as Ref from './Ref';\nimport type * as Relation from './Relation';\nimport type * as View from './View';\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<Relation.SourceOf<T>>;\n\n /**\n * For a query for relations, get the target objects.\n * @returns Query for the target objects.\n */\n 'target'(): Query<Relation.TargetOf<T>>;\n\n /**\n * Get the parent object of the current selection.\n * @returns Query for the parent objects.\n */\n 'parent'(): Query<any>;\n\n /**\n * Get all child objects of the current selection.\n * @returns Query for the child objects.\n */\n 'children'(): Query<any>;\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 * Query from selected databases only.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from(db);\n * ```\n *\n * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.\n */\n 'from'(database: Database.Database | Database.Database[], options?: { includeFeeds?: boolean }): Query<T>;\n\n /**\n * Query from selected feeds only.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from(feed);\n * ```\n *\n */\n 'from'(feeds: Feed.Feed | Feed.Feed[]): Query<T>;\n\n /**\n * Query from all accessible spaces.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.type(Person)).from('all-accessible-spaces');\n * ```\n *\n * @param options.includeFeeds [false] - Whether to include feeds in the query. Default is to query from automerge documents only.\n */\n 'from'(allSpaces: 'all-accessible-spaces', options?: { includeFeeds?: boolean }): Query<T>;\n\n /**\n * Query from a dataset.\n * Currently only feeds are supported.\n *\n * Example:\n *\n * ```ts\n * Query.type(Person).from(feed);\n * ```\n */\n 'from'(dataset: Dataset.Dataset): Query<T>;\n\n /**\n * Query from the results of another query.\n *\n * Example:\n *\n * ```ts\n * Query.select(Filter.props({ foo: 'foo' })).from(Query.select(Filter.type(Contact)).reference('org'));\n * ```\n */\n 'from'(query: Any): Query<T>;\n\n /**\n * Query from a raw scope specification.\n */\n 'from'(scope: QueryAST.Scope): 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 ? internal.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: relation !== undefined ? Filter.type(relation, predicates).ast : undefined,\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: relation !== undefined ? Filter.type(relation, predicates).ast : undefined,\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 parent(): Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-parent',\n });\n }\n\n children(): Any {\n return new QueryClass({\n type: 'hierarchy-traversal',\n anchor: this.ast,\n direction: 'to-children',\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 from(\n arg:\n | Database.Database\n | Database.Database[]\n | Feed.Feed\n | Feed.Feed[]\n | Collection.Collection\n | View.View\n | Any\n | QueryAST.Scope\n | 'all-accessible-spaces',\n options?: { includeFeeds?: boolean },\n ): Any {\n if (is(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'query', query: arg.ast },\n });\n }\n\n if (arg === 'all-accessible-spaces') {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n ...(options?.includeFeeds ? { allQueuesFromSpaces: true } : {}),\n },\n },\n });\n }\n\n if (_isScope(arg)) {\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: { _tag: 'scope', scope: arg },\n });\n }\n\n const items = Array.isArray(arg) ? arg : [arg];\n\n if (items.length > 0 && Database.isDatabase(items[0])) {\n const databases = items as Database.Database[];\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n spaceIds: databases.map((db) => db.spaceId),\n ...(options?.includeFeeds ? { allQueuesFromSpaces: true } : {}),\n },\n },\n });\n }\n\n if (items.length > 0) {\n const typename = Obj.getTypename(items[0] as Obj.Unknown);\n // TODO(dmaretskyi): Support querying from views.\n if (typename === 'org.dxos.type.view') {\n throw new Error('Query.from(view) is not yet supported.');\n }\n // TODO(dmaretskyi): Support querying from collections.\n if (typename === 'org.dxos.type.collection') {\n throw new Error('Query.from(collection) is not yet supported.');\n }\n }\n\n const feeds = items as Feed.Feed[];\n const queueDxns = feeds.flatMap((feed) => {\n const dxn = Feed.getQueueDxn(feed);\n return dxn ? [dxn.toString()] : [];\n });\n return new QueryClass({\n type: 'from',\n query: this.ast,\n from: {\n _tag: 'scope',\n scope: {\n queues: queueDxns,\n },\n },\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\n/**\n * Create a query scoped to a data source.\n * The returned query selects everything from the source; chain `.select()` to narrow results.\n *\n * @param source - Data source: database, feed, 'all-accessible-spaces', or another query.\n * @returns Query scoped to the given source.\n */\nexport const from = (\n source:\n | Database.Database\n | Database.Database[]\n | Feed.Feed\n | Feed.Feed[]\n | Any\n | QueryAST.Scope\n | 'all-accessible-spaces',\n options?: { includeFeeds?: boolean },\n): Any => {\n const baseQuery: QueryAST.Query = {\n type: 'select',\n filter: Filter.everything().ast,\n };\n const wrapper = new QueryClass(baseQuery);\n return wrapper.from(source as any, options);\n};\n\nconst SCOPE_KEYS = new Set(['spaceIds', 'queues', 'allQueuesFromSpaces']);\n\n/** Detect a raw Scope object (plain object with only Scope-valid keys). */\nconst _isScope = (value: unknown): value is QueryAST.Scope => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n return false;\n }\n return Object.keys(value).every((key) => SCOPE_KEYS.has(key));\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["is", "type", "QueryClass", "ast", "variance", "select", "filter", "is", "type", "selection", "props", "reference", "key", "anchor", "property", "referencedBy", "target", "dxn", "undefined", "getTypeDXNFromSpecifier", "typename", "toString", "sourceOf", "relation", "predicates", "direction", "targetOf", "source", "parent", "children", "orderBy", "order", "query", "map", "o", "limit", "from", "arg", "options", "_tag", "scope", "includeFeeds", "allQueuesFromSpaces", "_isScope", "items", "Array", "isArray", "length", "isDatabase", "databases", "spaceIds", "db", "spaceId", "getTypename", "Error", "feeds", "queueDxns", "flatMap", "feed", "getQueueDxn", "queues", "value", "fromAst", "schema", "all", "queries", "TypeError", "q", "without", "exclude", "baseQuery", "everything", "wrapper", "SCOPE_KEYS", "Set", "Object", "keys", "every", "has"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Kind,
|
|
3
|
+
KindId,
|
|
4
|
+
SnapshotKindId
|
|
5
|
+
} from "./chunk-7VLKWC6T.mjs";
|
|
6
|
+
import {
|
|
7
|
+
EchoObjectSchema,
|
|
8
|
+
MetaId,
|
|
9
|
+
VersionTypeId,
|
|
10
|
+
addTag,
|
|
11
|
+
change,
|
|
12
|
+
clone,
|
|
13
|
+
compareVersions,
|
|
14
|
+
decodeVersion,
|
|
15
|
+
deleteKeys,
|
|
16
|
+
encodeVersion,
|
|
17
|
+
getDXN,
|
|
18
|
+
getDatabase,
|
|
19
|
+
getKeys,
|
|
20
|
+
getMetaChecked,
|
|
21
|
+
getSnapshot,
|
|
22
|
+
getValue,
|
|
23
|
+
isDeleted,
|
|
24
|
+
isVersion,
|
|
25
|
+
makeObject,
|
|
26
|
+
objectFromJSON,
|
|
27
|
+
objectToJSON,
|
|
28
|
+
removeTag,
|
|
29
|
+
setValue,
|
|
30
|
+
sort,
|
|
31
|
+
sortByLabel,
|
|
32
|
+
sortByTypename,
|
|
33
|
+
subscribe,
|
|
34
|
+
version,
|
|
35
|
+
versionValid
|
|
36
|
+
} from "./chunk-MFJPOZDU.mjs";
|
|
37
|
+
import {
|
|
38
|
+
ParentId,
|
|
39
|
+
getDescription,
|
|
40
|
+
getLabel,
|
|
41
|
+
getSchema,
|
|
42
|
+
getTypeAnnotation,
|
|
43
|
+
getTypeDXN,
|
|
44
|
+
getTypename,
|
|
45
|
+
isInstanceOf,
|
|
46
|
+
setDescription,
|
|
47
|
+
setLabel
|
|
48
|
+
} from "./chunk-SEMVAGBM.mjs";
|
|
49
|
+
import {
|
|
50
|
+
ANY_OBJECT_TYPENAME,
|
|
51
|
+
ANY_OBJECT_VERSION,
|
|
52
|
+
SchemaKindId
|
|
53
|
+
} from "./chunk-WYOKA6AE.mjs";
|
|
54
|
+
import {
|
|
55
|
+
GetReactiveError
|
|
56
|
+
} from "./chunk-UBEZSGXY.mjs";
|
|
57
|
+
import {
|
|
58
|
+
__export
|
|
59
|
+
} from "./chunk-J5LGTIGS.mjs";
|
|
60
|
+
|
|
61
|
+
// src/Obj.ts
|
|
62
|
+
var Obj_exports = {};
|
|
63
|
+
__export(Obj_exports, {
|
|
64
|
+
ID: () => ID,
|
|
65
|
+
Meta: () => Meta,
|
|
66
|
+
Parent: () => Parent,
|
|
67
|
+
Unknown: () => Unknown2,
|
|
68
|
+
VersionTypeId: () => VersionTypeId2,
|
|
69
|
+
addTag: () => addTag2,
|
|
70
|
+
change: () => change2,
|
|
71
|
+
clone: () => clone2,
|
|
72
|
+
compareVersions: () => compareVersions2,
|
|
73
|
+
decodeVersion: () => decodeVersion2,
|
|
74
|
+
deleteKeys: () => deleteKeys2,
|
|
75
|
+
encodeVersion: () => encodeVersion2,
|
|
76
|
+
fromJSON: () => fromJSON,
|
|
77
|
+
getDXN: () => getDXN2,
|
|
78
|
+
getDatabase: () => getDatabase2,
|
|
79
|
+
getDescription: () => getDescription2,
|
|
80
|
+
getKeys: () => getKeys2,
|
|
81
|
+
getLabel: () => getLabel2,
|
|
82
|
+
getMeta: () => getMeta,
|
|
83
|
+
getParent: () => getParent,
|
|
84
|
+
getReactive: () => getReactive,
|
|
85
|
+
getReactiveOption: () => getReactiveOption,
|
|
86
|
+
getReactiveOrThrow: () => getReactiveOrThrow,
|
|
87
|
+
getSchema: () => getSchema2,
|
|
88
|
+
getSnapshot: () => getSnapshot2,
|
|
89
|
+
getTypeDXN: () => getTypeDXN2,
|
|
90
|
+
getTypename: () => getTypename2,
|
|
91
|
+
getValue: () => getValue2,
|
|
92
|
+
instanceOf: () => instanceOf,
|
|
93
|
+
isDeleted: () => isDeleted2,
|
|
94
|
+
isObject: () => isObject,
|
|
95
|
+
isSnapshot: () => isSnapshot,
|
|
96
|
+
isVersion: () => isVersion2,
|
|
97
|
+
make: () => make,
|
|
98
|
+
removeTag: () => removeTag2,
|
|
99
|
+
setDescription: () => setDescription2,
|
|
100
|
+
setLabel: () => setLabel2,
|
|
101
|
+
setParent: () => setParent,
|
|
102
|
+
setValue: () => setValue2,
|
|
103
|
+
snapshotOf: () => snapshotOf,
|
|
104
|
+
sort: () => sort2,
|
|
105
|
+
sortByLabel: () => sortByLabel2,
|
|
106
|
+
sortByTypename: () => sortByTypename2,
|
|
107
|
+
subscribe: () => subscribe2,
|
|
108
|
+
toJSON: () => toJSON,
|
|
109
|
+
version: () => version2,
|
|
110
|
+
versionValid: () => versionValid2
|
|
111
|
+
});
|
|
112
|
+
import * as Effect from "effect/Effect";
|
|
113
|
+
import * as Function from "effect/Function";
|
|
114
|
+
import * as Option from "effect/Option";
|
|
115
|
+
import * as Schema from "effect/Schema";
|
|
116
|
+
import { createJsonPath } from "@dxos/effect";
|
|
117
|
+
import { assertArgument } from "@dxos/invariant";
|
|
118
|
+
import { ObjectId } from "@dxos/keys";
|
|
119
|
+
import { assumeType } from "@dxos/util";
|
|
120
|
+
var Unknown2 = Schema.Struct({
|
|
121
|
+
id: Schema.String
|
|
122
|
+
}).pipe(
|
|
123
|
+
Schema.extend(Schema.Record({
|
|
124
|
+
key: Schema.String,
|
|
125
|
+
value: Schema.Unknown
|
|
126
|
+
})),
|
|
127
|
+
// TODO(dmaretskyi): Clean this up.
|
|
128
|
+
// NOTE: The EchoObjectSchema annotation is required for Ref.Ref(Obj.Unknown) to work.
|
|
129
|
+
// The typename/version only satisfy ECHO schema machinery for reference targets.
|
|
130
|
+
EchoObjectSchema({
|
|
131
|
+
typename: ANY_OBJECT_TYPENAME,
|
|
132
|
+
version: ANY_OBJECT_VERSION
|
|
133
|
+
}),
|
|
134
|
+
(schema) => Object.assign(schema, {
|
|
135
|
+
[SchemaKindId]: schema[SchemaKindId]
|
|
136
|
+
})
|
|
137
|
+
);
|
|
138
|
+
var defaultMeta = {
|
|
139
|
+
keys: []
|
|
140
|
+
};
|
|
141
|
+
var make = (schema, props) => {
|
|
142
|
+
assertArgument(getTypeAnnotation(schema)?.kind === Kind.Object, "schema", "Expected an object schema");
|
|
143
|
+
let meta = void 0;
|
|
144
|
+
if (props[MetaId] != null) {
|
|
145
|
+
meta = {
|
|
146
|
+
...structuredClone(defaultMeta),
|
|
147
|
+
...props[MetaId]
|
|
148
|
+
};
|
|
149
|
+
delete props[MetaId];
|
|
150
|
+
}
|
|
151
|
+
const filterUndefined = Object.fromEntries(Object.entries(props).filter(([_, v]) => v !== void 0));
|
|
152
|
+
for (const sym of Object.getOwnPropertySymbols(props)) {
|
|
153
|
+
const value = props[sym];
|
|
154
|
+
if (value !== void 0) {
|
|
155
|
+
filterUndefined[sym] = value;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return makeObject(schema, filterUndefined, {
|
|
159
|
+
...defaultMeta,
|
|
160
|
+
...meta
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
var isObject = (obj) => {
|
|
164
|
+
assumeType(obj);
|
|
165
|
+
return typeof obj === "object" && obj !== null && obj[KindId] === Kind.Object;
|
|
166
|
+
};
|
|
167
|
+
var isSnapshot = (obj) => {
|
|
168
|
+
assumeType(obj);
|
|
169
|
+
return typeof obj === "object" && obj !== null && obj[SnapshotKindId] === Kind.Object;
|
|
170
|
+
};
|
|
171
|
+
var subscribe2 = (obj, callback) => {
|
|
172
|
+
return subscribe(obj, callback);
|
|
173
|
+
};
|
|
174
|
+
var getSnapshot2 = getSnapshot;
|
|
175
|
+
var getReactive = (snapshot) => Effect.gen(function* () {
|
|
176
|
+
const db = getDatabase(snapshot);
|
|
177
|
+
if (!db) {
|
|
178
|
+
return yield* Effect.fail(new GetReactiveError({
|
|
179
|
+
reason: "no-database",
|
|
180
|
+
snapshotId: snapshot.id
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
const obj = db.getObjectById(snapshot.id);
|
|
184
|
+
if (!obj) {
|
|
185
|
+
return yield* Effect.fail(new GetReactiveError({
|
|
186
|
+
reason: "object-not-found",
|
|
187
|
+
snapshotId: snapshot.id
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
return obj;
|
|
191
|
+
});
|
|
192
|
+
var getReactiveOption = (snapshot) => getReactive(snapshot).pipe(Effect.map(Option.some), Effect.catchAll(() => Effect.succeed(Option.none())));
|
|
193
|
+
var getReactiveOrThrow = (snapshot) => Effect.runSync(getReactive(snapshot));
|
|
194
|
+
var clone2 = clone;
|
|
195
|
+
var change2 = (obj, callback) => {
|
|
196
|
+
change(obj, callback);
|
|
197
|
+
};
|
|
198
|
+
var getValue2 = (obj, path) => {
|
|
199
|
+
return getValue(obj, createJsonPath(path));
|
|
200
|
+
};
|
|
201
|
+
var setValue2 = setValue;
|
|
202
|
+
var ID = ObjectId;
|
|
203
|
+
var instanceOf = (...args) => {
|
|
204
|
+
if (args.length === 1) {
|
|
205
|
+
return (entity) => isInstanceOf(args[0], entity);
|
|
206
|
+
}
|
|
207
|
+
return isInstanceOf(args[0], args[1]);
|
|
208
|
+
};
|
|
209
|
+
var snapshotOf = (...args) => {
|
|
210
|
+
const check = (entity) => entity != null && typeof entity === "object" && SnapshotKindId in entity && isInstanceOf(args[0], entity);
|
|
211
|
+
if (args.length === 1) {
|
|
212
|
+
return (entity) => check(entity);
|
|
213
|
+
}
|
|
214
|
+
return check(args[1]);
|
|
215
|
+
};
|
|
216
|
+
var getDXN2 = (entity) => {
|
|
217
|
+
assertArgument(!Schema.isSchema(entity), "obj", "Object should not be a schema.");
|
|
218
|
+
return getDXN(entity);
|
|
219
|
+
};
|
|
220
|
+
var getTypeDXN2 = getTypeDXN;
|
|
221
|
+
var getSchema2 = getSchema;
|
|
222
|
+
var getTypename2 = (entity) => getTypename(entity);
|
|
223
|
+
var getDatabase2 = (entity) => getDatabase(entity);
|
|
224
|
+
var Meta = MetaId;
|
|
225
|
+
function getMeta(entity) {
|
|
226
|
+
return getMetaChecked(entity);
|
|
227
|
+
}
|
|
228
|
+
var getKeys2 = Function.dual(2, (entity, source) => getKeys(entity, source));
|
|
229
|
+
var deleteKeys2 = (entity, source) => deleteKeys(entity, source);
|
|
230
|
+
var addTag2 = (entity, tag) => addTag(entity, tag);
|
|
231
|
+
var removeTag2 = (entity, tag) => removeTag(entity, tag);
|
|
232
|
+
var isDeleted2 = (entity) => isDeleted(entity);
|
|
233
|
+
var getLabel2 = (entity) => getLabel(entity);
|
|
234
|
+
var setLabel2 = (entity, label) => setLabel(entity, label);
|
|
235
|
+
var getDescription2 = (entity) => getDescription(entity);
|
|
236
|
+
var setDescription2 = (entity, description) => setDescription(entity, description);
|
|
237
|
+
var Parent = ParentId;
|
|
238
|
+
var getParent = (entity) => {
|
|
239
|
+
assertArgument(isObject(entity), "Expected an object");
|
|
240
|
+
assumeType(entity);
|
|
241
|
+
return entity[ParentId];
|
|
242
|
+
};
|
|
243
|
+
var setParent = (entity, parent) => {
|
|
244
|
+
assertArgument(isObject(entity), "Expected an object");
|
|
245
|
+
assertArgument(parent === void 0 || isObject(parent), "Expected an object");
|
|
246
|
+
assumeType(entity);
|
|
247
|
+
assumeType(parent);
|
|
248
|
+
entity[ParentId] = parent;
|
|
249
|
+
};
|
|
250
|
+
var toJSON = (entity) => objectToJSON(entity);
|
|
251
|
+
var fromJSON = objectFromJSON;
|
|
252
|
+
var sortByLabel2 = sortByLabel;
|
|
253
|
+
var sortByTypename2 = sortByTypename;
|
|
254
|
+
var sort2 = (...comparators) => sort(...comparators);
|
|
255
|
+
var VersionTypeId2 = VersionTypeId;
|
|
256
|
+
var isVersion2 = isVersion;
|
|
257
|
+
var versionValid2 = versionValid;
|
|
258
|
+
var compareVersions2 = compareVersions;
|
|
259
|
+
var encodeVersion2 = encodeVersion;
|
|
260
|
+
var decodeVersion2 = decodeVersion;
|
|
261
|
+
var version2 = (entity) => version(entity);
|
|
262
|
+
|
|
263
|
+
export {
|
|
264
|
+
Unknown2 as Unknown,
|
|
265
|
+
make,
|
|
266
|
+
isObject,
|
|
267
|
+
isSnapshot,
|
|
268
|
+
subscribe2 as subscribe,
|
|
269
|
+
getSnapshot2 as getSnapshot,
|
|
270
|
+
getReactive,
|
|
271
|
+
getReactiveOption,
|
|
272
|
+
getReactiveOrThrow,
|
|
273
|
+
clone2 as clone,
|
|
274
|
+
change2 as change,
|
|
275
|
+
getValue2 as getValue,
|
|
276
|
+
setValue2 as setValue,
|
|
277
|
+
ID,
|
|
278
|
+
instanceOf,
|
|
279
|
+
snapshotOf,
|
|
280
|
+
getDXN2 as getDXN,
|
|
281
|
+
getTypeDXN2 as getTypeDXN,
|
|
282
|
+
getSchema2 as getSchema,
|
|
283
|
+
getTypename2 as getTypename,
|
|
284
|
+
getDatabase2 as getDatabase,
|
|
285
|
+
Meta,
|
|
286
|
+
getMeta,
|
|
287
|
+
getKeys2 as getKeys,
|
|
288
|
+
deleteKeys2 as deleteKeys,
|
|
289
|
+
addTag2 as addTag,
|
|
290
|
+
removeTag2 as removeTag,
|
|
291
|
+
isDeleted2 as isDeleted,
|
|
292
|
+
getLabel2 as getLabel,
|
|
293
|
+
setLabel2 as setLabel,
|
|
294
|
+
getDescription2 as getDescription,
|
|
295
|
+
setDescription2 as setDescription,
|
|
296
|
+
Parent,
|
|
297
|
+
getParent,
|
|
298
|
+
setParent,
|
|
299
|
+
toJSON,
|
|
300
|
+
fromJSON,
|
|
301
|
+
sortByLabel2 as sortByLabel,
|
|
302
|
+
sortByTypename2 as sortByTypename,
|
|
303
|
+
sort2 as sort,
|
|
304
|
+
VersionTypeId2 as VersionTypeId,
|
|
305
|
+
isVersion2 as isVersion,
|
|
306
|
+
versionValid2 as versionValid,
|
|
307
|
+
compareVersions2 as compareVersions,
|
|
308
|
+
encodeVersion2 as encodeVersion,
|
|
309
|
+
decodeVersion2 as decodeVersion,
|
|
310
|
+
version2 as version,
|
|
311
|
+
Obj_exports
|
|
312
|
+
};
|
|
313
|
+
//# sourceMappingURL=chunk-FUGL645K.mjs.map
|