@dxos/echo 0.8.4-main.d05673bc65 → 0.8.4-main.dfabb4ec29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/lib/neutral/Annotation.mjs +5 -3
- package/dist/lib/neutral/Database.mjs +8 -4
- package/dist/lib/neutral/Entity.mjs +16 -14
- package/dist/lib/neutral/Err.mjs +1 -1
- package/dist/lib/neutral/Extension.mjs +18 -0
- package/dist/lib/neutral/Extension.mjs.map +7 -0
- package/dist/lib/neutral/Feed.mjs +21 -17
- package/dist/lib/neutral/Filter.mjs +21 -13
- package/dist/lib/neutral/Format.mjs +3 -3
- package/dist/lib/neutral/JsonSchema.mjs +8 -8
- package/dist/lib/neutral/Key.mjs +1 -1
- package/dist/lib/neutral/Migration.mjs +17 -0
- package/dist/lib/neutral/Migration.mjs.map +7 -0
- package/dist/lib/neutral/Obj.mjs +16 -13
- package/dist/lib/neutral/Order.mjs +1 -1
- package/dist/lib/neutral/Query.mjs +19 -16
- package/dist/lib/neutral/QueryResult.mjs +1 -1
- package/dist/lib/neutral/Ref.mjs +7 -7
- package/dist/lib/neutral/Relation.mjs +15 -14
- package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
- package/dist/lib/neutral/Tag.mjs +14 -13
- package/dist/lib/neutral/Type.mjs +10 -10
- package/dist/lib/neutral/{chunk-FZO7LQO7.mjs → chunk-44HT3MEC.mjs} +2 -2
- package/dist/lib/neutral/{chunk-OENWMTE6.mjs → chunk-5SL5LDLD.mjs} +4 -2
- package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YWXWXIE5.mjs → chunk-6VIJV543.mjs} +2 -2
- package/dist/lib/neutral/{chunk-YWXWXIE5.mjs.map → chunk-6VIJV543.mjs.map} +2 -2
- package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
- package/dist/lib/neutral/{chunk-BNCCGLJN.mjs → chunk-BICZKPQG.mjs} +1 -1
- package/dist/lib/neutral/{chunk-NEGC54NE.mjs → chunk-FHYIM4RD.mjs} +17 -19
- package/dist/lib/neutral/chunk-FHYIM4RD.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-RMLF7JOZ.mjs → chunk-FZHVQEHN.mjs} +6 -22
- package/dist/lib/neutral/{chunk-RMLF7JOZ.mjs.map → chunk-FZHVQEHN.mjs.map} +3 -3
- package/dist/lib/neutral/chunk-GWFFC34K.mjs +50 -0
- package/dist/lib/neutral/chunk-GWFFC34K.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-724GQYEN.mjs → chunk-HPNQTEEQ.mjs} +4 -4
- package/dist/lib/neutral/{chunk-UFDK26FO.mjs → chunk-LVGOVFDV.mjs} +12 -8
- package/dist/lib/neutral/chunk-LVGOVFDV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-43Y5DOS6.mjs → chunk-MPAI2MHO.mjs} +16 -66
- package/dist/lib/neutral/chunk-MPAI2MHO.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-WYOKA6AE.mjs → chunk-N4B7FHQT.mjs} +2 -2
- package/dist/lib/neutral/{chunk-WYOKA6AE.mjs.map → chunk-N4B7FHQT.mjs.map} +1 -1
- package/dist/lib/neutral/{chunk-BOZZPUXE.mjs → chunk-O5LRY6CO.mjs} +12 -65
- package/dist/lib/neutral/chunk-O5LRY6CO.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-UTBRYVQC.mjs → chunk-QGMIH2SN.mjs} +2 -2
- package/dist/lib/neutral/{chunk-VA2F47ZC.mjs → chunk-QXIANHKU.mjs} +68 -14
- package/dist/lib/neutral/chunk-QXIANHKU.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-NXMFBIT5.mjs → chunk-RF7ZBZ4A.mjs} +59 -4
- package/dist/lib/neutral/chunk-RF7ZBZ4A.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-DYDJBZEG.mjs → chunk-S7IMFVTB.mjs} +51 -21
- package/dist/lib/neutral/chunk-S7IMFVTB.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-TQQZLKB7.mjs → chunk-SJKBWMJY.mjs} +193 -469
- package/dist/lib/neutral/chunk-SJKBWMJY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-SUZMWP3Y.mjs +36 -0
- package/dist/lib/neutral/chunk-SUZMWP3Y.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-NQRLRYJM.mjs → chunk-SW5CUSBY.mjs} +119 -12
- package/dist/lib/neutral/chunk-SW5CUSBY.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-SEMVAGBM.mjs → chunk-TNBK56IN.mjs} +19 -24
- package/dist/lib/neutral/chunk-TNBK56IN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-B5OXLWZL.mjs → chunk-TRPZU2HV.mjs} +2 -2
- package/dist/lib/neutral/{chunk-UI6MWK5W.mjs → chunk-TTCSATUD.mjs} +1 -1
- package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
- package/dist/lib/neutral/{chunk-KTAWP7GI.mjs → chunk-VGKLHHRT.mjs} +42 -7
- package/dist/lib/neutral/chunk-VGKLHHRT.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-FXEG7EOK.mjs → chunk-VYAGNFSJ.mjs} +3 -3
- package/dist/lib/neutral/{chunk-CIRHIEMW.mjs → chunk-WRVRDZDA.mjs} +18 -46
- package/dist/lib/neutral/chunk-WRVRDZDA.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-UBEZSGXY.mjs → chunk-ZISMEVKD.mjs} +1 -1
- package/dist/lib/neutral/{chunk-UBEZSGXY.mjs.map → chunk-ZISMEVKD.mjs.map} +2 -2
- package/dist/lib/neutral/index.mjs +38 -28
- package/dist/lib/neutral/internal/index.mjs +15 -9
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/testing/index.mjs +185 -129
- package/dist/lib/neutral/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/Collection.d.ts.map +1 -1
- package/dist/types/src/Database.d.ts +13 -1
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Dataset.d.ts +2 -1
- package/dist/types/src/Dataset.d.ts.map +1 -1
- package/dist/types/src/Entity.d.ts +17 -11
- package/dist/types/src/Entity.d.ts.map +1 -1
- package/dist/types/src/Err.d.ts +18 -18
- package/dist/types/src/Err.d.ts.map +1 -1
- package/dist/types/src/Extension.d.ts +80 -0
- package/dist/types/src/Extension.d.ts.map +1 -0
- package/dist/types/src/Extension.test.d.ts +2 -0
- package/dist/types/src/Extension.test.d.ts.map +1 -0
- package/dist/types/src/Feed.d.ts +37 -20
- package/dist/types/src/Feed.d.ts.map +1 -1
- package/dist/types/src/Filter.d.ts +33 -4
- package/dist/types/src/Filter.d.ts.map +1 -1
- package/dist/types/src/Filter.test.d.ts +2 -0
- package/dist/types/src/Filter.test.d.ts.map +1 -0
- package/dist/types/src/Json.d.ts +33 -0
- package/dist/types/src/Json.d.ts.map +1 -0
- package/dist/types/src/Json.test.d.ts +2 -0
- package/dist/types/src/Json.test.d.ts.map +1 -0
- package/dist/types/src/JsonSchema.d.ts +1 -1
- package/dist/types/src/Migration.d.ts +57 -0
- package/dist/types/src/Migration.d.ts.map +1 -0
- package/dist/types/src/Obj.d.ts +41 -27
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Order.d.ts.map +1 -1
- package/dist/types/src/Query.d.ts +13 -2
- package/dist/types/src/Query.d.ts.map +1 -1
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +17 -18
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/Tag.d.ts +2 -2
- package/dist/types/src/Tag.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts +3 -3
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/View.d.ts +1 -1
- package/dist/types/src/View.d.ts.map +1 -1
- package/dist/types/src/exemplars.test.d.ts +2 -0
- package/dist/types/src/exemplars.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/annotations.d.ts +12 -2
- package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -1
- package/dist/types/src/internal/Annotation/util.d.ts +1 -1
- package/dist/types/src/internal/Annotation/util.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/object.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/relation.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/version.d.ts.map +1 -1
- package/dist/types/src/internal/Format/date.d.ts.map +1 -1
- package/dist/types/src/internal/Format/format.d.ts.map +1 -1
- package/dist/types/src/internal/Format/number.d.ts.map +1 -1
- package/dist/types/src/internal/Format/object.d.ts.map +1 -1
- package/dist/types/src/internal/Format/types.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +28 -28
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/clone.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/common.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/ids.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/json-serializer.d.ts +4 -3
- package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/set-value.d.ts +1 -1
- package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -1
- package/dist/types/src/internal/Query.d.ts +10 -0
- package/dist/types/src/internal/Query.d.ts.map +1 -0
- package/dist/types/src/internal/Ref/ref-array.d.ts.map +1 -1
- package/dist/types/src/internal/Ref/ref.d.ts +14 -1
- package/dist/types/src/internal/Ref/ref.d.ts.map +1 -1
- package/dist/types/src/internal/Type/compose.d.ts.map +1 -1
- package/dist/types/src/internal/Type/echo-schema.d.ts +2 -2
- package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -1
- package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -1
- package/dist/types/src/internal/common/api/meta.d.ts +3 -3
- package/dist/types/src/internal/common/api/meta.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/change-context.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/errors.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/reactive-array.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/reactive.test.d.ts +2 -0
- package/dist/types/src/internal/common/proxy/reactive.test.d.ts.map +1 -0
- package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/base.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/entity.d.ts +4 -4
- package/dist/types/src/internal/common/types/entity.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/meta.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/version.d.ts +1 -1
- package/dist/types/src/internal/index.d.ts +1 -0
- package/dist/types/src/internal/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts +8 -8
- package/dist/types/src/testing/test-data.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +53 -53
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -14
- package/src/Annotation.ts +1 -0
- package/src/Collection.ts +5 -0
- package/src/Database.ts +49 -14
- package/src/Entity.ts +18 -12
- package/src/Extension.test.ts +235 -0
- package/src/Extension.ts +122 -0
- package/src/Feed.ts +79 -32
- package/src/Filter.test.ts +90 -0
- package/src/Filter.ts +66 -3
- package/src/Json.test.ts +175 -0
- package/src/Json.ts +102 -0
- package/src/Migration.ts +94 -0
- package/src/Obj.test.ts +105 -13
- package/src/Obj.ts +153 -33
- package/src/Query.test.ts +198 -8
- package/src/Query.ts +46 -1
- package/src/Relation.ts +24 -20
- package/src/Type.ts +1 -1
- package/src/View.ts +5 -0
- package/src/exemplars.test.ts +21 -0
- package/src/index.ts +4 -0
- package/src/internal/Annotation/annotations.test.ts +51 -2
- package/src/internal/Annotation/annotations.ts +33 -14
- package/src/internal/Annotation/sorting.ts +0 -1
- package/src/internal/Entity/api.ts +0 -1
- package/src/internal/Entity/object.ts +0 -1
- package/src/internal/Entity/version.ts +0 -1
- package/src/internal/Format/date.test.ts +0 -1
- package/src/internal/Format/format.test.ts +0 -1
- package/src/internal/JsonSchema/json-schema-type.ts +1 -1
- package/src/internal/JsonSchema/json-schema.test.ts +1 -2
- package/src/internal/JsonSchema/json-schema.ts +1 -2
- package/src/internal/Obj/clone.ts +1 -1
- package/src/internal/Obj/create-object.test.ts +2 -4
- package/src/internal/Obj/create-object.ts +2 -3
- package/src/internal/Obj/deleted.ts +1 -1
- package/src/internal/Obj/json-serializer.test.ts +4 -5
- package/src/internal/Obj/json-serializer.ts +22 -15
- package/src/internal/Obj/set-value.test.ts +24 -24
- package/src/internal/Obj/set-value.ts +1 -1
- package/src/internal/Query.ts +137 -0
- package/src/internal/Ref/ref-array.ts +0 -1
- package/src/internal/Ref/ref.test.ts +0 -1
- package/src/internal/Ref/ref.ts +18 -1
- package/src/internal/Type/compose.test.ts +0 -1
- package/src/internal/Type/echo-schema.ts +3 -4
- package/src/internal/Type/persistent-schema.ts +2 -2
- package/src/internal/common/README.md +1 -1
- package/src/internal/common/api/meta.ts +3 -3
- package/src/internal/common/proxy/change-context.ts +1 -1
- package/src/internal/common/proxy/change.test.ts +94 -94
- package/src/internal/common/proxy/errors.ts +2 -2
- package/src/internal/common/proxy/handler.test.ts +0 -2
- package/src/internal/common/proxy/make-object.ts +0 -1
- package/src/internal/common/proxy/ownership.ts +0 -1
- package/src/internal/common/proxy/reactive-array.ts +1 -1
- package/src/internal/common/proxy/reactive.test.ts +54 -0
- package/src/internal/common/proxy/reactive.ts +11 -3
- package/src/internal/common/proxy/typed-handler.test.ts +0 -1
- package/src/internal/common/proxy/typed-handler.ts +8 -10
- package/src/internal/common/proxy/typed-object.test.ts +2 -3
- package/src/internal/common/types/entity.ts +1 -1
- package/src/internal/common/types/meta.ts +0 -1
- package/src/internal/index.ts +1 -0
- package/src/testing/api.test.ts +0 -1
- package/src/testing/test-data.ts +157 -98
- package/dist/lib/neutral/chunk-43Y5DOS6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BOZZPUXE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CIRHIEMW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-DYDJBZEG.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KTAWP7GI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NEGC54NE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NQRLRYJM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NXMFBIT5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-OENWMTE6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SEMVAGBM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TQQZLKB7.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UFDK26FO.mjs.map +0 -7
- package/dist/lib/neutral/chunk-VA2F47ZC.mjs.map +0 -7
- /package/dist/lib/neutral/{chunk-FZO7LQO7.mjs.map → chunk-44HT3MEC.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-BNCCGLJN.mjs.map → chunk-BICZKPQG.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-724GQYEN.mjs.map → chunk-HPNQTEEQ.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-UTBRYVQC.mjs.map → chunk-QGMIH2SN.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-B5OXLWZL.mjs.map → chunk-TRPZU2HV.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-UI6MWK5W.mjs.map → chunk-TTCSATUD.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-FXEG7EOK.mjs.map → chunk-VYAGNFSJ.mjs.map} +0 -0
|
@@ -2,6 +2,7 @@ import type { ForeignKey } from '@dxos/echo-protocol';
|
|
|
2
2
|
import type { DXN, ObjectId } from '@dxos/keys';
|
|
3
3
|
import * as internal from './internal';
|
|
4
4
|
import type * as Relation from './Relation';
|
|
5
|
+
import type * as Type from './Type';
|
|
5
6
|
export declare const KindId: "~@dxos/echo/Kind";
|
|
6
7
|
export type KindId = typeof internal.KindId;
|
|
7
8
|
export declare const SnapshotKindId: "~@dxos/echo/SnapshotKind";
|
|
@@ -86,6 +87,11 @@ export declare const getDXN: (entity: Unknown | Snapshot) => DXN;
|
|
|
86
87
|
* Get the DXN of an entity's type.
|
|
87
88
|
*/
|
|
88
89
|
export declare const getTypeDXN: (obj: internal.AnyProperties) => DXN | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Get the schema of an entity.
|
|
92
|
+
* Returns the branded ECHO schema used to create the entity.
|
|
93
|
+
*/
|
|
94
|
+
export declare const getSchema: (entity: Unknown | Snapshot) => Type.AnyEntity | undefined;
|
|
89
95
|
/**
|
|
90
96
|
* Get the typename of an entity's type.
|
|
91
97
|
*/
|
|
@@ -127,14 +133,14 @@ export declare const toJSON: (entity: Unknown | Snapshot) => JSON;
|
|
|
127
133
|
*/
|
|
128
134
|
export declare const subscribe: (entity: Unknown, callback: () => void) => (() => void);
|
|
129
135
|
/**
|
|
130
|
-
* Used to provide a mutable view of an entity within `Entity.
|
|
136
|
+
* Used to provide a mutable view of an entity within `Entity.update`.
|
|
131
137
|
*/
|
|
132
138
|
export type Mutable<T> = internal.Mutable<T>;
|
|
133
139
|
/**
|
|
134
140
|
* Perform mutations on an entity (object or relation) within a change context.
|
|
135
141
|
*
|
|
136
142
|
* Entities are read-only by default. Mutations are batched and notifications fire
|
|
137
|
-
* when the callback completes. Direct mutations outside of `Entity.
|
|
143
|
+
* when the callback completes. Direct mutations outside of `Entity.update` will throw
|
|
138
144
|
* at runtime.
|
|
139
145
|
*
|
|
140
146
|
* @param entity - The echo entity (object or relation) to mutate.
|
|
@@ -142,27 +148,27 @@ export type Mutable<T> = internal.Mutable<T>;
|
|
|
142
148
|
*
|
|
143
149
|
* @example
|
|
144
150
|
* ```typescript
|
|
145
|
-
* // Mutate within Entity.
|
|
146
|
-
* Entity.
|
|
147
|
-
*
|
|
148
|
-
*
|
|
151
|
+
* // Mutate within Entity.update
|
|
152
|
+
* Entity.update(entity, (obj) => {
|
|
153
|
+
* obj.name = 'Updated';
|
|
154
|
+
* obj.count = 42;
|
|
149
155
|
* });
|
|
150
156
|
*
|
|
151
157
|
* // Direct mutation throws
|
|
152
|
-
* entity.name = 'Bob'; // Error: Cannot modify outside Entity.
|
|
158
|
+
* entity.name = 'Bob'; // Error: Cannot modify outside Entity.update()
|
|
153
159
|
* ```
|
|
154
160
|
*
|
|
155
|
-
* Note: For type-specific operations, prefer `Obj.
|
|
161
|
+
* Note: For type-specific operations, prefer `Obj.update` or `Relation.update`.
|
|
156
162
|
*/
|
|
157
|
-
export declare const
|
|
163
|
+
export declare const update: <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>) => void;
|
|
158
164
|
/**
|
|
159
165
|
* Add a tag to an entity.
|
|
160
|
-
* Must be called within an `Entity.
|
|
166
|
+
* Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
|
|
161
167
|
*/
|
|
162
168
|
export declare const addTag: (entity: Mutable<Unknown>, tag: string) => void;
|
|
163
169
|
/**
|
|
164
170
|
* Remove a tag from an entity.
|
|
165
|
-
* Must be called within an `Entity.
|
|
171
|
+
* Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.
|
|
166
172
|
*/
|
|
167
173
|
export declare const removeTag: (entity: Mutable<Unknown>, tag: string) => void;
|
|
168
174
|
//# sourceMappingURL=Entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/Entity.ts"],"names":[],"mappings":"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"}
|
package/dist/types/src/Err.d.ts
CHANGED
|
@@ -2,27 +2,27 @@ import { BaseError, type BaseErrorOptions } from '@dxos/errors';
|
|
|
2
2
|
import { type DXN } from '@dxos/keys';
|
|
3
3
|
declare const SchemaNotFoundError_base: {
|
|
4
4
|
new (options?: BaseErrorOptions): {
|
|
5
|
+
cause?: unknown;
|
|
6
|
+
stack?: string;
|
|
5
7
|
name: "SchemaNotFoundError";
|
|
6
8
|
context: Record<string, unknown>;
|
|
7
9
|
readonly message: string;
|
|
8
10
|
readonly _tag: "SchemaNotFoundError";
|
|
9
|
-
stack?: string;
|
|
10
|
-
cause?: unknown;
|
|
11
11
|
};
|
|
12
|
+
isError(error: unknown): error is Error;
|
|
12
13
|
name: "SchemaNotFoundError";
|
|
13
14
|
is(error: unknown): error is BaseError;
|
|
14
|
-
wrap(options?: Omit<BaseErrorOptions,
|
|
15
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
15
16
|
ifTypeDiffers?: boolean;
|
|
16
17
|
}): (error: unknown) => {
|
|
18
|
+
cause?: unknown;
|
|
19
|
+
stack?: string;
|
|
17
20
|
name: "SchemaNotFoundError";
|
|
18
21
|
context: Record<string, unknown>;
|
|
19
22
|
readonly message: string;
|
|
20
23
|
readonly _tag: "SchemaNotFoundError";
|
|
21
|
-
stack?: string;
|
|
22
|
-
cause?: unknown;
|
|
23
24
|
};
|
|
24
25
|
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
25
|
-
isError(error: unknown): error is Error;
|
|
26
26
|
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
27
27
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
28
28
|
stackTraceLimit: number;
|
|
@@ -32,27 +32,27 @@ export declare class SchemaNotFoundError extends SchemaNotFoundError_base {
|
|
|
32
32
|
}
|
|
33
33
|
declare const ObjectNotFoundError_base: {
|
|
34
34
|
new (options?: BaseErrorOptions): {
|
|
35
|
+
cause?: unknown;
|
|
36
|
+
stack?: string;
|
|
35
37
|
name: "ObjectNotFoundError";
|
|
36
38
|
context: Record<string, unknown>;
|
|
37
39
|
readonly message: string;
|
|
38
40
|
readonly _tag: "ObjectNotFoundError";
|
|
39
|
-
stack?: string;
|
|
40
|
-
cause?: unknown;
|
|
41
41
|
};
|
|
42
|
+
isError(error: unknown): error is Error;
|
|
42
43
|
name: "ObjectNotFoundError";
|
|
43
44
|
is(error: unknown): error is BaseError;
|
|
44
|
-
wrap(options?: Omit<BaseErrorOptions,
|
|
45
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
45
46
|
ifTypeDiffers?: boolean;
|
|
46
47
|
}): (error: unknown) => {
|
|
48
|
+
cause?: unknown;
|
|
49
|
+
stack?: string;
|
|
47
50
|
name: "ObjectNotFoundError";
|
|
48
51
|
context: Record<string, unknown>;
|
|
49
52
|
readonly message: string;
|
|
50
53
|
readonly _tag: "ObjectNotFoundError";
|
|
51
|
-
stack?: string;
|
|
52
|
-
cause?: unknown;
|
|
53
54
|
};
|
|
54
55
|
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
55
|
-
isError(error: unknown): error is Error;
|
|
56
56
|
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
57
57
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
58
58
|
stackTraceLimit: number;
|
|
@@ -68,27 +68,27 @@ export declare class ObjectNotFoundError extends ObjectNotFoundError_base {
|
|
|
68
68
|
export type GetReactiveErrorReason = 'no-database' | 'object-not-found';
|
|
69
69
|
declare const GetReactiveError_base: {
|
|
70
70
|
new (options?: BaseErrorOptions): {
|
|
71
|
+
cause?: unknown;
|
|
72
|
+
stack?: string;
|
|
71
73
|
name: "GetReactiveError";
|
|
72
74
|
context: Record<string, unknown>;
|
|
73
75
|
readonly message: string;
|
|
74
76
|
readonly _tag: "GetReactiveError";
|
|
75
|
-
stack?: string;
|
|
76
|
-
cause?: unknown;
|
|
77
77
|
};
|
|
78
|
+
isError(error: unknown): error is Error;
|
|
78
79
|
name: "GetReactiveError";
|
|
79
80
|
is(error: unknown): error is BaseError;
|
|
80
|
-
wrap(options?: Omit<BaseErrorOptions,
|
|
81
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
81
82
|
ifTypeDiffers?: boolean;
|
|
82
83
|
}): (error: unknown) => {
|
|
84
|
+
cause?: unknown;
|
|
85
|
+
stack?: string;
|
|
83
86
|
name: "GetReactiveError";
|
|
84
87
|
context: Record<string, unknown>;
|
|
85
88
|
readonly message: string;
|
|
86
89
|
readonly _tag: "GetReactiveError";
|
|
87
|
-
stack?: string;
|
|
88
|
-
cause?: unknown;
|
|
89
90
|
};
|
|
90
91
|
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
91
|
-
isError(error: unknown): error is Error;
|
|
92
92
|
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
93
93
|
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
94
94
|
stackTraceLimit: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Err.d.ts","sourceRoot":"","sources":["../../../src/Err.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"Err.d.ts","sourceRoot":"","sources":["../../../src/Err.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAErD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,mBAAoB,SAAQ,wBAA2D;IAClG,YAAY,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAE/C;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGrC;IACC,YAAY,OAAO,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAE9F;CACF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as Option from 'effect/Option';
|
|
2
|
+
import * as Schema from 'effect/Schema';
|
|
3
|
+
import type * as Types from 'effect/Types';
|
|
4
|
+
/**
|
|
5
|
+
* Extensions allow objects to contain typed properties that are not part of the schema.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TypeId: '~@dxos/echo/Extension';
|
|
8
|
+
export type TypeId = typeof TypeId;
|
|
9
|
+
export interface Extension<T> extends Record<TypeId, {
|
|
10
|
+
_Type: T;
|
|
11
|
+
}> {
|
|
12
|
+
readonly [TypeId]: {
|
|
13
|
+
_Type: T;
|
|
14
|
+
};
|
|
15
|
+
readonly key: Key;
|
|
16
|
+
readonly valueSchema: Schema.Schema<T>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a new typed extension.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const ColorExtension = Extension.make('color', Schema.String);
|
|
23
|
+
*
|
|
24
|
+
* const obj = Obj.make(Person, {
|
|
25
|
+
* [Obj.Meta]: { keys: [{ source: 'external', id: '123' }] },
|
|
26
|
+
* name: 'John',
|
|
27
|
+
* email: 'john@example.com',
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* Obj.update(obj, (obj) => {
|
|
31
|
+
* Extension.set(obj.extensions, ColorExtension, 'red');
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* console.log(Extension.get(obj.extensions, ColorExtension)); // 'red'
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const make: <S extends Schema.Schema.AnyNoContext>(key: string, valueSchema: S) => Extension<Schema.Schema.Type<S>>;
|
|
38
|
+
/**
|
|
39
|
+
* Unique identifier for an extension.
|
|
40
|
+
*/
|
|
41
|
+
export declare const Key: Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">;
|
|
42
|
+
export type Key = Schema.Schema.Type<typeof Key>;
|
|
43
|
+
/**
|
|
44
|
+
* Set of extension values.
|
|
45
|
+
*
|
|
46
|
+
* Can be used inside an object/relation schema:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* const Person = Schema.Struct({
|
|
50
|
+
* name: Schema.String,
|
|
51
|
+
* extensions: Extension.Values,
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare const Values: Schema.Record$<Schema.brand<typeof Schema.String, "~@dxos/echo/ExtensionKey">, typeof Schema.Unknown>;
|
|
56
|
+
export interface Values extends Schema.Schema.Type<typeof Values> {
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the value of an extension from a set of values.
|
|
60
|
+
*/
|
|
61
|
+
export declare const get: {
|
|
62
|
+
<T>(extension: Extension<T>): (values: Values) => Option.Option<T>;
|
|
63
|
+
<T>(values: Values, extension: Extension<T>): Option.Option<T>;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Set the value of an extension in a set of values.
|
|
67
|
+
*
|
|
68
|
+
* Can also be used within Obj.update callback:
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* Obj.update(obj, (obj) => {
|
|
72
|
+
* Extension.set(obj.extensions, ColorExtension, 'red');
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare const set: {
|
|
77
|
+
<T>(extension: Extension<T>, value: T): (values: Values) => void;
|
|
78
|
+
<T>(values: Types.Mutable<Values>, extension: Extension<T>, value: T): void;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=Extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../../../src/Extension.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C;;GAEG;AAEH,eAAO,MAAM,MAAM,EAAG,uBAAgC,CAAC;AACvD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,MAAM,CAC1C,MAAM,EACN;IACE,KAAK,EAAE,CAAC,CAAC;CACV,CACF;IACC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC;KACV,CAAC;IAEF,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,YAAY,OAClD,MAAM,eACE,CAAC,KACb,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAMjC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,GAAG,gEAA+D,CAAC;AAChF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,uGAAqD,CAAC;AACzE,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC;CAAG;AAEpE;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAU/D,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAM5E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Extension.test.d.ts","sourceRoot":"","sources":["../../../src/Extension.test.ts"],"names":[],"mappings":""}
|
package/dist/types/src/Feed.d.ts
CHANGED
|
@@ -19,18 +19,15 @@ import * as Type from './Type';
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
export declare const Feed: Type.Obj<{
|
|
22
|
-
readonly kind?: string | undefined;
|
|
23
22
|
readonly name?: string | undefined;
|
|
23
|
+
readonly kind?: string | undefined;
|
|
24
|
+
readonly namespace?: "data" | "trace" | undefined;
|
|
24
25
|
}, Schema.Struct.Fields>;
|
|
25
26
|
/**
|
|
26
27
|
* TypeScript instance type for a Feed object.
|
|
27
28
|
*/
|
|
28
29
|
export interface Feed extends Schema.Schema.Type<typeof Feed> {
|
|
29
30
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Meta key source for storing the backing DXN bound to a feed object.
|
|
32
|
-
*/
|
|
33
|
-
export declare const DXN_KEY = "org.dxos.key.feed";
|
|
34
31
|
/**
|
|
35
32
|
* Opaque cursor for iterating over feed items.
|
|
36
33
|
*/
|
|
@@ -54,12 +51,24 @@ export interface RetentionOptions {
|
|
|
54
51
|
*/
|
|
55
52
|
export declare const make: (props?: Obj.MakeProps<typeof Feed>) => Feed;
|
|
56
53
|
/**
|
|
57
|
-
*
|
|
54
|
+
* Derives the queue DXN from the feed object's DXN.
|
|
55
|
+
* Returns `undefined` when the feed is not stored in a space yet.
|
|
58
56
|
*
|
|
59
|
-
*
|
|
57
|
+
* Used internally by the feed service layer.
|
|
60
58
|
*/
|
|
61
59
|
export declare const getQueueDxn: (feed: Feed) => DXN | undefined;
|
|
62
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Creates a Feed object from a queue DXN, inferring the feed's id and namespace from the DXN parts.
|
|
62
|
+
*
|
|
63
|
+
* The resulting Feed, when added to the same space as the queue, will have a queue DXN
|
|
64
|
+
* equal to the input (see `Feed.getQueueDxn`). Useful when migrating `Ref(Queue)` fields to
|
|
65
|
+
* `Ref(Feed.Feed)`.
|
|
66
|
+
*
|
|
67
|
+
* @remarks Unsafe because the caller must ensure the queue DXN's space matches the database
|
|
68
|
+
* the feed is added to; the feed id is set from the queue id, bypassing id generation.
|
|
69
|
+
*/
|
|
70
|
+
export declare const unsafeFromQueueDXN: (queueDxn: DXN) => Feed;
|
|
71
|
+
declare const FeedService_base: Context.TagClass<FeedService, "@dxos/echo/Feed/FeedService", {
|
|
63
72
|
/**
|
|
64
73
|
* Appends items to a feed.
|
|
65
74
|
*/
|
|
@@ -81,13 +90,21 @@ declare const Service_base: Context.TagClass<Service, "@dxos/echo/Feed/Service",
|
|
|
81
90
|
* Provides the bridge to the underlying storage implementation.
|
|
82
91
|
* Must be provided by the application layer (e.g., echo-db).
|
|
83
92
|
*/
|
|
84
|
-
export declare class
|
|
93
|
+
export declare class FeedService extends FeedService_base {
|
|
85
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated Use `FeedService` instead.
|
|
97
|
+
*/
|
|
98
|
+
export type Service = FeedService;
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use `FeedService` instead.
|
|
101
|
+
*/
|
|
102
|
+
export declare const Service: typeof FeedService;
|
|
86
103
|
/**
|
|
87
104
|
* Layer that provides a Feed service that throws when accessed.
|
|
88
105
|
* Useful as a default layer when no feed service is available.
|
|
89
106
|
*/
|
|
90
|
-
export declare const notAvailable: Layer.Layer<
|
|
107
|
+
export declare const notAvailable: Layer.Layer<FeedService>;
|
|
91
108
|
/**
|
|
92
109
|
* Appends items to a feed.
|
|
93
110
|
*
|
|
@@ -96,7 +113,7 @@ export declare const notAvailable: Layer.Layer<Service>;
|
|
|
96
113
|
* yield* Feed.append(feed, [Obj.make(Notification, { title: 'Hello' })]);
|
|
97
114
|
* ```
|
|
98
115
|
*/
|
|
99
|
-
export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never,
|
|
116
|
+
export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Effect<void, never, FeedService>;
|
|
100
117
|
/**
|
|
101
118
|
* Removes items from a feed.
|
|
102
119
|
*
|
|
@@ -105,7 +122,7 @@ export declare const append: (feed: Feed, items: Entity.Unknown[]) => Effect.Eff
|
|
|
105
122
|
* yield* Feed.remove(feed, [item]);
|
|
106
123
|
* ```
|
|
107
124
|
*/
|
|
108
|
-
export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never,
|
|
125
|
+
export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)[]) => Effect.Effect<void, never, FeedService>;
|
|
109
126
|
/**
|
|
110
127
|
* Creates a reactive query over items in a feed.
|
|
111
128
|
*
|
|
@@ -115,8 +132,8 @@ export declare const remove: (feed: Feed, items: (Entity.Unknown | Obj.Snapshot)
|
|
|
115
132
|
* ```
|
|
116
133
|
*/
|
|
117
134
|
export declare const query: {
|
|
118
|
-
<Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never,
|
|
119
|
-
<F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never,
|
|
135
|
+
<Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<QueryResult.QueryResult<Query.Type<Q>>, never, FeedService>;
|
|
136
|
+
<F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<QueryResult.QueryResult<Filter.Type<F>>, never, FeedService>;
|
|
120
137
|
};
|
|
121
138
|
/**
|
|
122
139
|
* Executes a feed query once and returns the results.
|
|
@@ -127,8 +144,8 @@ export declare const query: {
|
|
|
127
144
|
* ```
|
|
128
145
|
*/
|
|
129
146
|
export declare const runQuery: {
|
|
130
|
-
<Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never,
|
|
131
|
-
<F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never,
|
|
147
|
+
<Q extends Query.Any>(feed: Feed, query: Q): Effect.Effect<Query.Type<Q>[], never, FeedService>;
|
|
148
|
+
<F extends Filter.Any>(feed: Feed, filter: F): Effect.Effect<Filter.Type<F>[], never, FeedService>;
|
|
132
149
|
};
|
|
133
150
|
/**
|
|
134
151
|
* Creates a cursor for iterating over feed items.
|
|
@@ -140,17 +157,17 @@ export declare const runQuery: {
|
|
|
140
157
|
* const item = yield* Feed.next(cursor);
|
|
141
158
|
* ```
|
|
142
159
|
*/
|
|
143
|
-
export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never,
|
|
160
|
+
export declare const cursor: <T = Obj.Snapshot>(_feed: Feed) => Effect.Effect<Cursor<T>, never, FeedService>;
|
|
144
161
|
/**
|
|
145
162
|
* Returns the next item from a feed cursor.
|
|
146
163
|
* Currently stubbed — cursor operations are not yet implemented.
|
|
147
164
|
*/
|
|
148
|
-
export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never,
|
|
165
|
+
export declare const next: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<T, never, FeedService>;
|
|
149
166
|
/**
|
|
150
167
|
* Returns the next item from a feed cursor as an Option.
|
|
151
168
|
* Currently stubbed — cursor operations are not yet implemented.
|
|
152
169
|
*/
|
|
153
|
-
export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never,
|
|
170
|
+
export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effect.Effect<Option.Option<T>, never, FeedService>;
|
|
154
171
|
/**
|
|
155
172
|
* Sets the local retention policy for a feed.
|
|
156
173
|
* Currently stubbed — queues do not yet support retention.
|
|
@@ -160,6 +177,6 @@ export declare const nextOption: <T = Obj.Snapshot>(_cursor: Cursor<T>) => Effec
|
|
|
160
177
|
* yield* Feed.setRetention(feed, { count: 1000 });
|
|
161
178
|
* ```
|
|
162
179
|
*/
|
|
163
|
-
export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never,
|
|
180
|
+
export declare const setRetention: (_feed: Feed, _options: RetentionOptions) => Effect.Effect<void, never, FeedService>;
|
|
164
181
|
export {};
|
|
165
182
|
//# sourceMappingURL=Feed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"Feed.d.ts","sourceRoot":"","sources":["../../../src/Feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import * as Schema from 'effect/Schema';
|
|
|
2
2
|
import type * as Types from 'effect/Types';
|
|
3
3
|
import { type ForeignKey, type QueryAST } from '@dxos/echo-protocol';
|
|
4
4
|
import { DXN, ObjectId } from '@dxos/keys';
|
|
5
|
+
import type * as Obj from './Obj';
|
|
6
|
+
import * as Ref from './Ref';
|
|
5
7
|
export interface Filter<T> {
|
|
6
8
|
'~Filter': {
|
|
7
|
-
value: Types.
|
|
9
|
+
value: Types.Covariant<T>;
|
|
8
10
|
};
|
|
9
11
|
ast: QueryAST.Filter;
|
|
10
12
|
}
|
|
@@ -18,7 +20,7 @@ declare class FilterClass implements Any {
|
|
|
18
20
|
private static 'variance';
|
|
19
21
|
constructor(ast: QueryAST.Filter);
|
|
20
22
|
'~Filter': {
|
|
21
|
-
value: Types.
|
|
23
|
+
value: Types.Covariant<any>;
|
|
22
24
|
};
|
|
23
25
|
}
|
|
24
26
|
export declare const is: (value: unknown) => value is Any;
|
|
@@ -92,7 +94,7 @@ export declare const lte: <T>(value: T) => Filter<T | undefined>;
|
|
|
92
94
|
* Predicate for property to be in the provided array.
|
|
93
95
|
* @param values - Values to check against.
|
|
94
96
|
*/
|
|
95
|
-
declare const in$: <T>(...values: T[]) => Filter<T
|
|
97
|
+
declare const in$: <T>(...values: T[]) => Filter<T>;
|
|
96
98
|
export { in$ as in };
|
|
97
99
|
/**
|
|
98
100
|
* Predicate for an array property to contain the provided value.
|
|
@@ -104,7 +106,30 @@ export declare const contains: <T>(value: T) => Filter<readonly T[] | undefined>
|
|
|
104
106
|
* @param from - Start of the range (inclusive).
|
|
105
107
|
* @param to - End of the range (exclusive).
|
|
106
108
|
*/
|
|
107
|
-
export declare const between: <T>(from: T, to: T) => Filter<
|
|
109
|
+
export declare const between: <T>(from: T, to: T) => Filter<T>;
|
|
110
|
+
type TimeRange = {
|
|
111
|
+
after?: Date | number;
|
|
112
|
+
before?: Date | number;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Filter objects by updatedAt timestamp.
|
|
116
|
+
*/
|
|
117
|
+
export declare const updated: (range: TimeRange) => Any;
|
|
118
|
+
/**
|
|
119
|
+
* Filter objects by createdAt timestamp.
|
|
120
|
+
*/
|
|
121
|
+
export declare const created: (range: TimeRange) => Any;
|
|
122
|
+
export type ChildOfOptions = {
|
|
123
|
+
/** Whether to match transitively (grandchildren, etc.). Defaults to true. */
|
|
124
|
+
transitive?: boolean;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Filter objects that are children of the specified parent(s).
|
|
128
|
+
* Accepts ECHO objects, Refs, or arrays of either.
|
|
129
|
+
* Refs are resolved to DXNs without loading; objects use {@link Obj.getDXN}.
|
|
130
|
+
* With transitive=true (default), also matches grandchildren and beyond.
|
|
131
|
+
*/
|
|
132
|
+
export declare const childOf: (parents: Obj.Unknown | Ref.Unknown | readonly (Obj.Unknown | Ref.Unknown)[], options?: ChildOfOptions) => Any;
|
|
108
133
|
/**
|
|
109
134
|
* Negate the filter.
|
|
110
135
|
*/
|
|
@@ -117,4 +142,8 @@ export declare const and: <Filters extends readonly Any[]>(...filters: Filters)
|
|
|
117
142
|
* Combine filters with a logical OR.
|
|
118
143
|
*/
|
|
119
144
|
export declare const or: <Filters extends readonly Any[]>(...filters: Filters) => Filter<Type<Filters[number]>>;
|
|
145
|
+
/**
|
|
146
|
+
* Returns a human-readable string representation of a Filter AST.
|
|
147
|
+
*/
|
|
148
|
+
export declare const pretty: (filter: Any) => string;
|
|
120
149
|
//# sourceMappingURL=Filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/Filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filter.test.d.ts","sourceRoot":"","sources":["../../../src/Filter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Database from './Database';
|
|
2
|
+
/**
|
|
3
|
+
* `JSON.stringify` replacer signature.
|
|
4
|
+
*
|
|
5
|
+
* Defined here (rather than re-imported from a UI package) so other ECHO-aware utilities can
|
|
6
|
+
* share a stable signature without creating a dependency edge into the UI tree.
|
|
7
|
+
*/
|
|
8
|
+
export type JsonReplacer = (key: string, value: any) => any;
|
|
9
|
+
export type CreateRefReplacerOptions = {
|
|
10
|
+
db: Database.Database;
|
|
11
|
+
/** How many ref hops to follow. `0` leaves all refs as-is. Default: `1`. */
|
|
12
|
+
depth?: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Returns a {@link JsonReplacer} that inlines ECHO ref objects (`{ "/": "dxn:echo:..." }`) up to
|
|
16
|
+
* `depth` ref hops. Beyond that depth refs are left in their encoded form.
|
|
17
|
+
*
|
|
18
|
+
* Implemented as a per-call `JSON.stringify` replacer (not a one-shot tree walk at root) so it
|
|
19
|
+
* composes with wrappers like `safeStringify` that intercept the root call. JSON.stringify
|
|
20
|
+
* already drives the recursion; we only need to (a) detect a ref at the current callback,
|
|
21
|
+
* (b) resolve and return the target if hop budget remains, and (c) tag the returned object
|
|
22
|
+
* with its hop count so children know how far in they are.
|
|
23
|
+
*
|
|
24
|
+
* The hop count is tracked per-object via a `WeakMap`: a ref-resolved target's children inherit
|
|
25
|
+
* `parentHops + 1`; a regular intermediate object's children inherit `parentHops`. This makes the
|
|
26
|
+
* budget count *ref hops*, not tree depth — a ref deep in a tree still resolves once when
|
|
27
|
+
* `depth >= 1`.
|
|
28
|
+
*
|
|
29
|
+
* Note: ECHO objects' `toJSON` runs before the replacer is invoked, so by the time we see a
|
|
30
|
+
* value refs are already encoded as `{ "/": "dxn:..." }`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const createRefReplacer: ({ db, depth }: CreateRefReplacerOptions) => JsonReplacer;
|
|
33
|
+
//# sourceMappingURL=Json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../src/Json.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAUF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,kBAAuB,wBAAwB,KAAG,YAoD/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json.test.d.ts","sourceRoot":"","sources":["../../../src/Json.test.ts"],"names":[],"mappings":""}
|
|
@@ -3,7 +3,7 @@ import * as jsonSchemaInternal from './internal/JsonSchema';
|
|
|
3
3
|
/**
|
|
4
4
|
* Decode JSON Schema to Effect Schema.
|
|
5
5
|
*/
|
|
6
|
-
export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType[
|
|
6
|
+
export declare const toEffectSchema: (root: jsonSchemaInternal.JsonSchemaType, _defs?: jsonSchemaInternal.JsonSchemaType['$defs']) => Schema.Schema.AnyNoContext;
|
|
7
7
|
/**
|
|
8
8
|
* Encode Effect Schema to JSON Schema.
|
|
9
9
|
*/
|