@dxos/echo 0.10.0 → 0.11.1
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/dist/lib/Annotation.mjs +3 -0
- package/dist/lib/Blob.mjs +160 -0
- package/dist/lib/Blob.mjs.map +1 -0
- package/dist/lib/Database.mjs +2 -0
- package/dist/lib/Entity.mjs +231 -0
- package/dist/lib/Entity.mjs.map +1 -0
- package/dist/lib/Err.mjs +105 -0
- package/dist/lib/Err.mjs.map +1 -0
- package/dist/lib/Feed.mjs +338 -0
- package/dist/lib/Feed.mjs.map +1 -0
- package/dist/lib/Filter.mjs +380 -0
- package/dist/lib/Filter.mjs.map +1 -0
- package/dist/lib/Format.mjs +47 -0
- package/dist/lib/Format.mjs.map +1 -0
- package/dist/lib/JsonSchema.mjs +21 -0
- package/dist/lib/JsonSchema.mjs.map +1 -0
- package/dist/lib/Key.mjs +15 -0
- package/dist/lib/Key.mjs.map +1 -0
- package/dist/lib/Migration.mjs +38 -0
- package/dist/lib/Migration.mjs.map +1 -0
- package/dist/lib/Obj.mjs +660 -0
- package/dist/lib/Obj.mjs.map +1 -0
- package/dist/lib/Order.mjs +65 -0
- package/dist/lib/Order.mjs.map +1 -0
- package/dist/lib/Query.mjs +336 -0
- package/dist/lib/Query.mjs.map +1 -0
- package/dist/lib/QueryResult.mjs +7 -0
- package/dist/lib/QueryResult.mjs.map +1 -0
- package/dist/lib/Ref.mjs +44 -0
- package/dist/lib/Ref.mjs.map +1 -0
- package/dist/lib/Registry.mjs +35 -0
- package/dist/lib/Registry.mjs.map +1 -0
- package/dist/lib/Relation.mjs +397 -0
- package/dist/lib/Relation.mjs.map +1 -0
- package/dist/lib/Scope.mjs +51 -0
- package/dist/lib/Scope.mjs.map +1 -0
- package/dist/lib/Tag.mjs +70 -0
- package/dist/lib/Tag.mjs.map +1 -0
- package/dist/lib/Text.mjs +82 -0
- package/dist/lib/Text.mjs.map +1 -0
- package/dist/lib/Type.mjs +371 -0
- package/dist/lib/Type.mjs.map +1 -0
- package/dist/lib/chunk-Annotation.mjs +221 -0
- package/dist/lib/chunk-Annotation.mjs.map +1 -0
- package/dist/lib/chunk-Database.mjs +918 -0
- package/dist/lib/chunk-Database.mjs.map +1 -0
- package/dist/lib/chunk-atom-snapshot.mjs +249 -0
- package/dist/lib/chunk-atom-snapshot.mjs.map +1 -0
- package/dist/lib/chunk-internal.mjs +2775 -0
- package/dist/lib/chunk-internal.mjs.map +1 -0
- package/dist/lib/chunk-json-schema.mjs +660 -0
- package/dist/lib/chunk-json-schema.mjs.map +1 -0
- package/dist/lib/chunk-number.mjs +164 -0
- package/dist/lib/chunk-number.mjs.map +1 -0
- package/dist/lib/chunk-ref-array.mjs +31 -0
- package/dist/lib/chunk-ref-array.mjs.map +1 -0
- package/dist/lib/chunk-ref.mjs +590 -0
- package/dist/lib/chunk-ref.mjs.map +1 -0
- package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
- package/dist/lib/chunk-select.mjs +186 -0
- package/dist/lib/chunk-select.mjs.map +1 -0
- package/dist/lib/chunk-src.mjs +234 -0
- package/dist/lib/chunk-src.mjs.map +1 -0
- package/dist/lib/chunk-util.mjs +140 -0
- package/dist/lib/chunk-util.mjs.map +1 -0
- package/dist/lib/index.mjs +24 -0
- package/dist/lib/internal.mjs +10 -0
- package/dist/lib/testing.mjs +346 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/types/src/Aggregate.d.ts +86 -0
- package/dist/types/src/Aggregate.d.ts.map +1 -0
- package/dist/types/src/Blob.d.ts +153 -0
- package/dist/types/src/Blob.d.ts.map +1 -0
- package/dist/types/src/Blob.test.d.ts +2 -0
- package/dist/types/src/Blob.test.d.ts.map +1 -0
- package/dist/types/src/Database.d.ts +153 -4
- package/dist/types/src/Database.d.ts.map +1 -1
- package/dist/types/src/Err.d.ts +116 -0
- package/dist/types/src/Err.d.ts.map +1 -1
- package/dist/types/src/Feed.d.ts +116 -28
- package/dist/types/src/Feed.d.ts.map +1 -1
- package/dist/types/src/Feed.test.d.ts +2 -0
- package/dist/types/src/Feed.test.d.ts.map +1 -0
- package/dist/types/src/Filter.d.ts +14 -6
- package/dist/types/src/Filter.d.ts.map +1 -1
- package/dist/types/src/Hypergraph.d.ts +18 -0
- package/dist/types/src/Hypergraph.d.ts.map +1 -1
- package/dist/types/src/Json.d.ts.map +1 -1
- package/dist/types/src/Obj.d.ts +14 -1
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Order.d.ts +9 -3
- package/dist/types/src/Order.d.ts.map +1 -1
- package/dist/types/src/Query.d.ts +107 -26
- package/dist/types/src/Query.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +6 -0
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/View.d.ts +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/api.d.ts +6 -0
- package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
- package/dist/types/src/internal/Entity/model.d.ts +3 -2
- package/dist/types/src/internal/Entity/model.d.ts.map +1 -1
- package/dist/types/src/internal/Filter/match.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +34 -8
- package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/atoms.d.ts.map +1 -1
- package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/Query/pretty.d.ts.map +1 -1
- package/dist/types/src/internal/Query/query-result-effect.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/make-object.d.ts +13 -0
- package/dist/types/src/internal/common/proxy/make-object.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/symbols.d.ts.map +1 -1
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts +12 -0
- package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/index.d.ts +1 -0
- package/dist/types/src/internal/common/types/index.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/model-symbols.d.ts +5 -0
- package/dist/types/src/internal/common/types/model-symbols.d.ts.map +1 -1
- package/dist/types/src/internal/common/types/projection.d.ts +32 -0
- package/dist/types/src/internal/common/types/projection.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +40 -35
- package/src/Aggregate.ts +105 -0
- package/src/Blob.test.ts +45 -0
- package/src/Blob.ts +205 -0
- package/src/Database.ts +207 -17
- package/src/Err.ts +36 -0
- package/src/Feed.test.ts +188 -0
- package/src/Feed.ts +238 -62
- package/src/Filter.ts +28 -10
- package/src/Hypergraph.ts +18 -0
- package/src/Json.ts +1 -0
- package/src/Obj.test.ts +2 -2
- package/src/Obj.ts +21 -1
- package/src/Order.ts +16 -9
- package/src/Query.test.ts +319 -2
- package/src/Query.ts +165 -51
- package/src/Relation.ts +14 -0
- package/src/Type.ts +5 -6
- package/src/index.ts +2 -0
- package/src/internal/Entity/api.ts +11 -1
- package/src/internal/Entity/model.ts +3 -0
- package/src/internal/Filter/match.ts +30 -1
- package/src/internal/JsonSchema/json-schema-type.ts +14 -2
- package/src/internal/JsonSchema/json-schema.test.ts +28 -1
- package/src/internal/JsonSchema/json-schema.ts +33 -6
- package/src/internal/Obj/atoms.ts +4 -2
- package/src/internal/Obj/json-serializer.test.ts +162 -2
- package/src/internal/Obj/json-serializer.ts +6 -0
- package/src/internal/Query/pretty.ts +19 -1
- package/src/internal/Query/query-result-effect.ts +2 -4
- package/src/internal/Ref/atoms.ts +1 -1
- package/src/internal/common/proxy/change-context.ts +1 -1
- package/src/internal/common/proxy/make-object.ts +42 -3
- package/src/internal/common/proxy/reactive.ts +5 -0
- package/src/internal/common/proxy/symbols.ts +1 -0
- package/src/internal/common/proxy/typed-handler.ts +71 -29
- package/src/internal/common/types/index.ts +1 -0
- package/src/internal/common/types/model-symbols.ts +6 -0
- package/src/internal/common/types/projection.ts +45 -0
- package/src/testing/test-data.ts +14 -14
- package/dist/lib/neutral/Annotation.mjs +0 -90
- package/dist/lib/neutral/Annotation.mjs.map +0 -7
- package/dist/lib/neutral/Database.mjs +0 -42
- package/dist/lib/neutral/Database.mjs.map +0 -7
- package/dist/lib/neutral/Entity.mjs +0 -76
- package/dist/lib/neutral/Entity.mjs.map +0 -7
- package/dist/lib/neutral/Err.mjs +0 -16
- package/dist/lib/neutral/Err.mjs.map +0 -7
- package/dist/lib/neutral/Feed.mjs +0 -50
- package/dist/lib/neutral/Feed.mjs.map +0 -7
- package/dist/lib/neutral/Filter.mjs +0 -72
- package/dist/lib/neutral/Filter.mjs.map +0 -7
- package/dist/lib/neutral/Format.mjs +0 -82
- package/dist/lib/neutral/Format.mjs.map +0 -7
- package/dist/lib/neutral/JsonSchema.mjs +0 -18
- package/dist/lib/neutral/JsonSchema.mjs.map +0 -7
- package/dist/lib/neutral/Key.mjs +0 -16
- package/dist/lib/neutral/Key.mjs.map +0 -7
- package/dist/lib/neutral/Migration.mjs +0 -18
- package/dist/lib/neutral/Migration.mjs.map +0 -7
- package/dist/lib/neutral/Obj.mjs +0 -128
- package/dist/lib/neutral/Obj.mjs.map +0 -7
- package/dist/lib/neutral/Order.mjs +0 -16
- package/dist/lib/neutral/Order.mjs.map +0 -7
- package/dist/lib/neutral/Query.mjs +0 -38
- package/dist/lib/neutral/Query.mjs.map +0 -7
- package/dist/lib/neutral/QueryResult.mjs +0 -2
- package/dist/lib/neutral/QueryResult.mjs.map +0 -7
- package/dist/lib/neutral/Ref.mjs +0 -25
- package/dist/lib/neutral/Ref.mjs.map +0 -7
- package/dist/lib/neutral/Registry.mjs +0 -14
- package/dist/lib/neutral/Registry.mjs.map +0 -7
- package/dist/lib/neutral/Relation.mjs +0 -97
- package/dist/lib/neutral/Relation.mjs.map +0 -7
- package/dist/lib/neutral/Scope.mjs +0 -12
- package/dist/lib/neutral/Scope.mjs.map +0 -7
- package/dist/lib/neutral/Tag.mjs +0 -32
- package/dist/lib/neutral/Tag.mjs.map +0 -7
- package/dist/lib/neutral/Text.mjs +0 -25
- package/dist/lib/neutral/Text.mjs.map +0 -7
- package/dist/lib/neutral/Type.mjs +0 -65
- package/dist/lib/neutral/Type.mjs.map +0 -7
- package/dist/lib/neutral/chunk-2HKGAQM4.mjs +0 -1394
- package/dist/lib/neutral/chunk-2HKGAQM4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-2ZHECXUR.mjs +0 -95
- package/dist/lib/neutral/chunk-2ZHECXUR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-3KTE2Y7Q.mjs +0 -336
- package/dist/lib/neutral/chunk-3KTE2Y7Q.mjs.map +0 -7
- package/dist/lib/neutral/chunk-3TN2VMI4.mjs +0 -714
- package/dist/lib/neutral/chunk-3TN2VMI4.mjs.map +0 -7
- package/dist/lib/neutral/chunk-42L4HJ3Z.mjs +0 -104
- package/dist/lib/neutral/chunk-42L4HJ3Z.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4A2NWKRJ.mjs +0 -747
- package/dist/lib/neutral/chunk-4A2NWKRJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7LOUAPYZ.mjs +0 -25
- package/dist/lib/neutral/chunk-7LOUAPYZ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-ACFAOTKJ.mjs +0 -1531
- package/dist/lib/neutral/chunk-ACFAOTKJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BEFR7LEA.mjs +0 -170
- package/dist/lib/neutral/chunk-BEFR7LEA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-BXIKXT7Q.mjs +0 -89
- package/dist/lib/neutral/chunk-BXIKXT7Q.mjs.map +0 -7
- package/dist/lib/neutral/chunk-C57XMMBY.mjs +0 -206
- package/dist/lib/neutral/chunk-C57XMMBY.mjs.map +0 -7
- package/dist/lib/neutral/chunk-C62JYFAD.mjs +0 -183
- package/dist/lib/neutral/chunk-C62JYFAD.mjs.map +0 -7
- package/dist/lib/neutral/chunk-FSGX2R62.mjs +0 -48
- package/dist/lib/neutral/chunk-FSGX2R62.mjs.map +0 -7
- package/dist/lib/neutral/chunk-HBXT3GSB.mjs +0 -459
- package/dist/lib/neutral/chunk-HBXT3GSB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-IQR45HAD.mjs +0 -31
- package/dist/lib/neutral/chunk-IQR45HAD.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-KCBW4BR6.mjs +0 -424
- package/dist/lib/neutral/chunk-KCBW4BR6.mjs.map +0 -7
- package/dist/lib/neutral/chunk-L3E5IXAE.mjs +0 -575
- package/dist/lib/neutral/chunk-L3E5IXAE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-PRC4FEKJ.mjs +0 -56
- package/dist/lib/neutral/chunk-PRC4FEKJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-SCT6FFCR.mjs +0 -351
- package/dist/lib/neutral/chunk-SCT6FFCR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-TOCVVFK2.mjs +0 -75
- package/dist/lib/neutral/chunk-TOCVVFK2.mjs.map +0 -7
- package/dist/lib/neutral/chunk-U53LSQQA.mjs +0 -41
- package/dist/lib/neutral/chunk-U53LSQQA.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UGFFV2FR.mjs +0 -27
- package/dist/lib/neutral/chunk-UGFFV2FR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UWLP4RFM.mjs +0 -7
- package/dist/lib/neutral/chunk-UWLP4RFM.mjs.map +0 -7
- package/dist/lib/neutral/chunk-UZHCQ6NI.mjs +0 -283
- package/dist/lib/neutral/chunk-UZHCQ6NI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WISOH2XH.mjs +0 -36
- package/dist/lib/neutral/chunk-WISOH2XH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WKIT2YY5.mjs +0 -34
- package/dist/lib/neutral/chunk-WKIT2YY5.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XB6ISRAO.mjs +0 -271
- package/dist/lib/neutral/chunk-XB6ISRAO.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XXL42WCB.mjs +0 -84
- package/dist/lib/neutral/chunk-XXL42WCB.mjs.map +0 -7
- package/dist/lib/neutral/chunk-XXWK4J53.mjs +0 -117
- package/dist/lib/neutral/chunk-XXWK4J53.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -115
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/internal/index.mjs +0 -581
- package/dist/lib/neutral/internal/index.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/testing/index.mjs +0 -477
- package/dist/lib/neutral/testing/index.mjs.map +0 -7
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type * as EffectTypes from 'effect/Types';
|
|
2
|
+
import type { QueryAST } from '@dxos/echo-protocol';
|
|
3
|
+
import type * as Order from './Order';
|
|
4
|
+
import type * as Query from './Query';
|
|
5
|
+
/**
|
|
6
|
+
* The aggregate spec sans name; the name is supplied by the `Query.aggregate` record key. A tagged
|
|
7
|
+
* union per kind so `property`/`limit`/`order` are present exactly when the kind uses them (no
|
|
8
|
+
* unused optional fields to guard against at read sites).
|
|
9
|
+
*/
|
|
10
|
+
export type Spec = {
|
|
11
|
+
kind: 'group';
|
|
12
|
+
property: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'max';
|
|
15
|
+
property: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'min';
|
|
18
|
+
property: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'items';
|
|
21
|
+
limit?: number;
|
|
22
|
+
order?: readonly QueryAST.Order[];
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'count';
|
|
25
|
+
};
|
|
26
|
+
export declare const AggregateTypeId: '~@dxos/echo/Aggregate';
|
|
27
|
+
export type AggregateTypeId = typeof AggregateTypeId;
|
|
28
|
+
/**
|
|
29
|
+
* A per-group aggregate declaration, materialised as a top-level field on the flat result record
|
|
30
|
+
* `Query.aggregate` produces and orderable via a following `orderBy(Order.property(name))`. Name it
|
|
31
|
+
* via the record passed to `Query.aggregate({ name: Aggregate.max('created') })`.
|
|
32
|
+
*
|
|
33
|
+
* `T` is the query's element type (so a reduced/grouped property is checked against it); `V` is the
|
|
34
|
+
* value the aggregate produces. {@link group} entries define the grouping keys; a record with no
|
|
35
|
+
* `group` entries aggregates the entire input into a single row.
|
|
36
|
+
*/
|
|
37
|
+
export interface Aggregate<T, V> {
|
|
38
|
+
readonly [AggregateTypeId]: {
|
|
39
|
+
element: T;
|
|
40
|
+
value: V;
|
|
41
|
+
};
|
|
42
|
+
spec: Spec;
|
|
43
|
+
}
|
|
44
|
+
export type Any = Aggregate<any, any>;
|
|
45
|
+
/** Extracts the value type a {@link Aggregate} produces. */
|
|
46
|
+
export type ValueOf<A> = A extends Aggregate<any, infer V> ? V : never;
|
|
47
|
+
/** Computes the flat result type of `Query.aggregate(aggregates)` for a given aggregate record `A`. */
|
|
48
|
+
export type AggregationResult<A extends Record<string, Any>> = EffectTypes.Simplify<Query.AggregateResult & {
|
|
49
|
+
readonly [N in keyof A]: ValueOf<A[N]>;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Group members by a scalar property. The record key names the result field carrying the coerced
|
|
53
|
+
* group-key value; multiple `group` entries form a composite key. Members whose property is missing,
|
|
54
|
+
* `null`, `undefined`, or non-scalar group under the `null` key, so the field value is `T[K] | null`.
|
|
55
|
+
*/
|
|
56
|
+
export declare const group: <T, K extends keyof T & string>(property: K) => Aggregate<T, T[K] | null>;
|
|
57
|
+
/**
|
|
58
|
+
* Aggregate the maximum of a scalar property across the group's members.
|
|
59
|
+
* `T` is inferred from the `Query.aggregate` context, so `property` is checked against the query's
|
|
60
|
+
* element type (like {@link Order.property}).
|
|
61
|
+
*/
|
|
62
|
+
export declare const max: <T, K extends keyof T & string>(property: K) => Aggregate<T, T[K] | null>;
|
|
63
|
+
/**
|
|
64
|
+
* Aggregate the minimum of a scalar property across the group's members.
|
|
65
|
+
*/
|
|
66
|
+
export declare const min: <T, K extends keyof T & string>(property: K) => Aggregate<T, T[K] | null>;
|
|
67
|
+
/**
|
|
68
|
+
* Collect the group's members, optionally ordered by `order` and capped to `limit` per group.
|
|
69
|
+
* Opt-in — groups carry no members unless this aggregate is declared.
|
|
70
|
+
*
|
|
71
|
+
* `order` is this aggregate's own per-group ordering — independent of any `orderBy` elsewhere in
|
|
72
|
+
* the query, which orders the whole input stream (and, following `aggregate`, the resulting
|
|
73
|
+
* groups), not this aggregate's member selection. Without `order`, members keep whatever order
|
|
74
|
+
* they arrived in from a preceding `orderBy` (unspecified if there is none), so a per-group
|
|
75
|
+
* top-`limit` moved position in the chain would silently change; declaring `order` here makes the
|
|
76
|
+
* ordering explicit and local to this aggregate regardless of where it sits.
|
|
77
|
+
*/
|
|
78
|
+
export declare const items: <T>(options?: {
|
|
79
|
+
limit?: number;
|
|
80
|
+
order?: Order.Any[];
|
|
81
|
+
}) => Aggregate<T, T[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Count the group's members. Opt-in — groups carry no count unless this aggregate is declared.
|
|
84
|
+
*/
|
|
85
|
+
export declare const count: <T>() => Aggregate<T, number>;
|
|
86
|
+
//# sourceMappingURL=Aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Aggregate.d.ts","sourceRoot":"","sources":["../../../src/Aggregate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,WAAW,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC;;;;GAIG;AACH,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,eAAe,EAAG,uBAAgC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IAErD,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtC,4DAA4D;AAC5D,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvE,uGAAuG;AACvG,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CACjF,KAAK,CAAC,eAAe,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CACnE,CAAC;AAcF;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAC1C,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAC1C,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAC1C,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,YAAY;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;CAAE,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CACmB,CAAC;AAEjH;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,OAAK,SAAS,CAAC,CAAC,EAAE,MAAM,CAA0C,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import * as Option from 'effect/Option';
|
|
3
|
+
import * as Schema from 'effect/Schema';
|
|
4
|
+
import * as Database from './Database';
|
|
5
|
+
import * as Err from './Err';
|
|
6
|
+
import * as Obj from './Obj';
|
|
7
|
+
import * as Type from './Type';
|
|
8
|
+
/**
|
|
9
|
+
* Inline blob data: bytes stored directly on the ECHO object.
|
|
10
|
+
*/
|
|
11
|
+
export declare const InlineData: Schema.TaggedStruct<"inline", {
|
|
12
|
+
bytes: Schema.declare<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, readonly [], never>;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* External blob data: bytes stored by a registered blob backend, addressed by `uri`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ExternalData: Schema.TaggedStruct<"external", {
|
|
18
|
+
/**
|
|
19
|
+
* URI locating the bytes. The scheme selects the backend at read time (e.g. `ni:///sha-256;…` for
|
|
20
|
+
* the edge backend — an RFC 6920 content digest, not a backend name — or `wnfs://…` for the
|
|
21
|
+
* plugin-wnfs extension), resolved via the scheme→backend map built from `registerBlobBackend`
|
|
22
|
+
* calls. Core code never parses or constructs backend-specific URIs beyond reading the scheme.
|
|
23
|
+
*
|
|
24
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc6920 RFC 6920} for the `ni:` URI format.
|
|
25
|
+
*/
|
|
26
|
+
uri: typeof Schema.String;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const BlobData: Schema.Union<[Schema.TaggedStruct<"inline", {
|
|
29
|
+
bytes: Schema.declare<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, readonly [], never>;
|
|
30
|
+
}>, Schema.TaggedStruct<"external", {
|
|
31
|
+
/**
|
|
32
|
+
* URI locating the bytes. The scheme selects the backend at read time (e.g. `ni:///sha-256;…` for
|
|
33
|
+
* the edge backend — an RFC 6920 content digest, not a backend name — or `wnfs://…` for the
|
|
34
|
+
* plugin-wnfs extension), resolved via the scheme→backend map built from `registerBlobBackend`
|
|
35
|
+
* calls. Core code never parses or constructs backend-specific URIs beyond reading the scheme.
|
|
36
|
+
*
|
|
37
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc6920 RFC 6920} for the `ni:` URI format.
|
|
38
|
+
*/
|
|
39
|
+
uri: typeof Schema.String;
|
|
40
|
+
}>]>;
|
|
41
|
+
export type BlobData = Schema.Schema.Type<typeof BlobData>;
|
|
42
|
+
declare const Blob_base: Type.ObjClass<Blob, {
|
|
43
|
+
readonly type?: string | undefined;
|
|
44
|
+
readonly size: number;
|
|
45
|
+
readonly data: {
|
|
46
|
+
readonly _tag: "inline";
|
|
47
|
+
readonly bytes: Uint8Array<ArrayBufferLike>;
|
|
48
|
+
} | {
|
|
49
|
+
readonly _tag: "external";
|
|
50
|
+
readonly uri: string;
|
|
51
|
+
};
|
|
52
|
+
}, {}>;
|
|
53
|
+
/**
|
|
54
|
+
* Runtime schema for a Blob object.
|
|
55
|
+
*
|
|
56
|
+
* NOTE: This export shadows the DOM `Blob` global within modules that import it as a namespace.
|
|
57
|
+
* Code that needs the DOM class should use `globalThis.Blob` explicitly.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* const blob = yield* Blob.fromBytes(bytes, { type: 'image/png' });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare class Blob extends Blob_base {
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Storage backend names, selected at write time via {@link FromBytesOptions.storage}. Call sites
|
|
68
|
+
* always use these constants, never raw string literals. Extensions (e.g. plugin-wnfs) define
|
|
69
|
+
* their own storage names in their own package — core code knows nothing of them.
|
|
70
|
+
*
|
|
71
|
+
* Distinct from {@link Scheme}: a storage name picks *where* to write, a URI scheme describes
|
|
72
|
+
* *what the identifier is* at read time. They coincide for backends with no content-addressing
|
|
73
|
+
* (e.g. wnfs uses `'wnfs'` for both), but the edge backend's storage name (`'edge'`) differs from
|
|
74
|
+
* its URI scheme (`Scheme.ni`) because the identifier it produces is a content hash, not an
|
|
75
|
+
* edge-specific address.
|
|
76
|
+
*/
|
|
77
|
+
export declare const Storage: {
|
|
78
|
+
readonly inline: 'inline';
|
|
79
|
+
readonly edge: 'edge';
|
|
80
|
+
};
|
|
81
|
+
export type Storage = (typeof Storage)[keyof typeof Storage];
|
|
82
|
+
/**
|
|
83
|
+
* URI schemes claimed by core backends (see `BlobBackend.schemes` in `@dxos/echo-protocol`).
|
|
84
|
+
*
|
|
85
|
+
* `ni` marks an {@link https://www.rfc-editor.org/rfc/rfc6920 RFC 6920} Named Information URI whose
|
|
86
|
+
* authority is empty and whose path carries a registered hash-algorithm name plus a base64url-encoded
|
|
87
|
+
* digest (e.g. `ni:///sha-256;UyaQNQIUxQKgg1jVMKMbg1Yr8Rrb2Y3RaOx2N0mVJhc`, produced by the edge
|
|
88
|
+
* backend). The scheme names *what the identifier is* — a content digest over the complete blob —
|
|
89
|
+
* not which backend wrote it, so any backend or cache that can resolve that digest may claim it.
|
|
90
|
+
* The URI is an identity claim, not a retrievability promise; transport is selected by the registered
|
|
91
|
+
* backend at read time.
|
|
92
|
+
*
|
|
93
|
+
* Extensions (e.g. plugin-wnfs) define their own schemes in their own package.
|
|
94
|
+
*/
|
|
95
|
+
export declare const Scheme: {
|
|
96
|
+
readonly ni: 'ni';
|
|
97
|
+
};
|
|
98
|
+
export type Scheme = (typeof Scheme)[keyof typeof Scheme];
|
|
99
|
+
export declare const MAX_INLINE_SIZE: number;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a new blob object. Does not add it to the database — see {@link fromBytes}.
|
|
102
|
+
*/
|
|
103
|
+
export declare const make: (props: Obj.MakeProps<typeof Blob>) => Blob;
|
|
104
|
+
/**
|
|
105
|
+
* Creates an inline {@link BlobData} variant that embeds raw bytes on the ECHO object.
|
|
106
|
+
*/
|
|
107
|
+
export declare const inlineData: (bytes: Uint8Array) => BlobData;
|
|
108
|
+
/**
|
|
109
|
+
* Creates an external {@link BlobData} variant that references bytes held by a registered backend.
|
|
110
|
+
* @param uri - Backend-scoped URI, e.g. as returned by a `BlobBackend.put` call.
|
|
111
|
+
*/
|
|
112
|
+
export declare const externalData: (uri: string) => BlobData;
|
|
113
|
+
export interface FromBytesOptions {
|
|
114
|
+
/** MIME type. */
|
|
115
|
+
type?: string;
|
|
116
|
+
/**
|
|
117
|
+
* Storage backend name. Defaults to the registry's configured default (initially `'inline'`;
|
|
118
|
+
* `@dxos/client` marks `'edge'` as the default when configured).
|
|
119
|
+
*/
|
|
120
|
+
storage?: Storage | (string & {});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Hashes and uploads `bytes` via the chosen storage backend (a no-op for `inline`), returning an
|
|
124
|
+
* un-added Blob object. The caller is responsible for adding it to the database.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* const blob = yield* Blob.fromBytes(bytes, { type: 'image/png' });
|
|
129
|
+
* yield* Database.add(blob);
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare const fromBytes: (bytes: Uint8Array, options?: FromBytesOptions) => Effect.Effect<Blob, Err.BlobTooLargeError | Err.BlobWriteError, Database.Service>;
|
|
133
|
+
/**
|
|
134
|
+
* Loads a blob's bytes. Inline: read directly off the object. External: dispatched to the
|
|
135
|
+
* registered backend for the URI's scheme.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* const bytes = yield* Blob.read(blob);
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare const read: (blob: Blob) => Effect.Effect<Uint8Array, Err.BlobNotAvailableError, Database.Service>;
|
|
143
|
+
/**
|
|
144
|
+
* Checks whether a blob's bytes are currently available.
|
|
145
|
+
*/
|
|
146
|
+
export declare const exists: (blob: Blob) => Effect.Effect<boolean, never, Database.Service>;
|
|
147
|
+
/**
|
|
148
|
+
* Returns a renderable URL for the blob: inline blobs resolve to a `data:` URL; external blobs
|
|
149
|
+
* are resolved by the registered backend's `getUrl`, if it implements one.
|
|
150
|
+
*/
|
|
151
|
+
export declare const url: (blob: Blob) => Effect.Effect<Option.Option<string>, never, Database.Service>;
|
|
152
|
+
export {};
|
|
153
|
+
//# sourceMappingURL=Blob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blob.d.ts","sourceRoot":"","sources":["../../../src/Blob.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,UAAU;;EAErB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;;OAOG;;EAEH,CAAC;AAEH,eAAO,MAAM,QAAQ;;;IAXnB;;;;;;;OAOG;;IAIyD,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;;;;;;;;;;;;AAE3D;;;;;;;;;;GAUG;AACH,qBAAa,IAAK,SAAQ,SAUzB;CAAG;AAMJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO;aAAK,MAAM,EAAE,QAAQ;aAAE,IAAI,EAAE,MAAM;CAAW,CAAC;AACnE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM;aAAK,EAAE,EAAE,IAAI;CAAW,CAAC;AAC5C,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAM1D,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,IAAI,UAAW,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,KAAG,IAA6B,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,UAAU,UAAW,UAAU,KAAG,QAAuC,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,QAAuC,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACnC;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,UACb,UAAU,YACP,gBAAgB,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAWxC,CAAC;AAE5C;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,SAAU,IAAI,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAcjE,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,MAAM,SAAU,IAAI,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAG/E,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,GAAG,SAAU,IAAI,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAIxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blob.test.d.ts","sourceRoot":"","sources":["../../../src/Blob.test.ts"],"names":[],"mappings":""}
|
|
@@ -2,7 +2,10 @@ import * as Context from 'effect/Context';
|
|
|
2
2
|
import * as Effect from 'effect/Effect';
|
|
3
3
|
import * as Layer from 'effect/Layer';
|
|
4
4
|
import * as Schema from 'effect/Schema';
|
|
5
|
+
import * as Stream from 'effect/Stream';
|
|
6
|
+
import type { CleanupFn } from '@dxos/async';
|
|
5
7
|
import { type SpaceId, type URI } from '@dxos/keys';
|
|
8
|
+
import type * as Blob from './Blob';
|
|
6
9
|
import type * as Entity from './Entity';
|
|
7
10
|
import * as Err from './Err';
|
|
8
11
|
import type * as Feed from './Feed';
|
|
@@ -42,6 +45,13 @@ export type AddOptions = {
|
|
|
42
45
|
* @default 'linked-doc'
|
|
43
46
|
*/
|
|
44
47
|
placeIn?: ObjectPlacement;
|
|
48
|
+
/**
|
|
49
|
+
* Append the object to this feed instead of the automerge-backed space database. The object is
|
|
50
|
+
* returned synchronously (a live feed object) and persisted in the background — confirm the write
|
|
51
|
+
* completed with {@link Database.flush}. Synchronous alternative to the async
|
|
52
|
+
* {@link Database.appendToFeed}; `placeIn` is ignored when set.
|
|
53
|
+
*/
|
|
54
|
+
to?: Feed.Feed;
|
|
45
55
|
};
|
|
46
56
|
/**
|
|
47
57
|
* Rejects Type entities from {@link Database.add} at compile time via their `[KindId]` brand. Used
|
|
@@ -71,6 +81,17 @@ export type FlushOptions = {
|
|
|
71
81
|
*/
|
|
72
82
|
updates?: boolean;
|
|
73
83
|
};
|
|
84
|
+
/**
|
|
85
|
+
* A caller-owned, writable **independent instance** of one object bound to one branch: a distinct
|
|
86
|
+
* object instance (not a UI surface), separate from the device-global canonical object.
|
|
87
|
+
* @see Database.branch
|
|
88
|
+
*/
|
|
89
|
+
export type BranchBinding<T extends Obj.Unknown = Obj.Unknown> = {
|
|
90
|
+
/** Live object bound to the branch document (`'main'` -> the canonical live object). */
|
|
91
|
+
readonly object: T;
|
|
92
|
+
/** Release the binding (drops the doc-handle listener; never deletes the branch document). */
|
|
93
|
+
dispose(): void;
|
|
94
|
+
};
|
|
74
95
|
/**
|
|
75
96
|
* Identifier denoting an ECHO Database.
|
|
76
97
|
*/
|
|
@@ -113,6 +134,8 @@ export interface Database extends Queryable {
|
|
|
113
134
|
*
|
|
114
135
|
* Only Object and Relation entities are accepted. To persist a Type definition use
|
|
115
136
|
* {@link addType} — passing a Type entity is rejected at compile time (and at runtime).
|
|
137
|
+
*
|
|
138
|
+
* Pass `{ to: feed }` to append to a feed instead (synchronous; confirm with {@link flush}).
|
|
116
139
|
*/
|
|
117
140
|
add<T extends Entity.Unknown = Entity.Unknown>(obj: T & RejectTypeEntity<T>, opts?: AddOptions): T;
|
|
118
141
|
/**
|
|
@@ -144,13 +167,48 @@ export interface Database extends Queryable {
|
|
|
144
167
|
*/
|
|
145
168
|
flush(opts?: FlushOptions): Promise<void>;
|
|
146
169
|
/**
|
|
147
|
-
*
|
|
170
|
+
* The device-global current branch for an object id (`'main'` by default).
|
|
171
|
+
* @deprecated Prefer `Obj.getBranch(obj)` — it takes the object and reports the branch of that
|
|
172
|
+
* specific instance (including `db.branch()` independent instances), not just the device selection.
|
|
148
173
|
*/
|
|
149
|
-
|
|
174
|
+
getCurrentBranch(objectId: string): string;
|
|
175
|
+
/**
|
|
176
|
+
* An immutable snapshot of the object at the given historical heads — a detached instance, not a
|
|
177
|
+
* pin on the live object. Prefer `Obj.getVersion(obj, heads)`.
|
|
178
|
+
*/
|
|
179
|
+
getVersion<T extends Obj.Unknown>(obj: T, heads: readonly string[]): Obj.Snapshot<T>;
|
|
180
|
+
/** All branch names available for an object, including the implicit `'main'` (always first). */
|
|
181
|
+
listBranches(objectId: string): string[];
|
|
182
|
+
/**
|
|
183
|
+
* Fork the object and its referenced subtree into a new branch (does not switch to it).
|
|
184
|
+
* @param opts.fromHeads Fork from a historical frontier instead of the tip (a bare heads array
|
|
185
|
+
* applies to the root only; a map forks each member from its own frontier).
|
|
186
|
+
*/
|
|
187
|
+
createBranch(rootObjectId: string, name: string, opts?: {
|
|
188
|
+
fromHeads?: readonly string[] | Record<string, readonly string[]>;
|
|
189
|
+
}): Promise<void>;
|
|
190
|
+
/** Switch the object's subtree to a branch (or back to `'main'`). Device-local; cascades to children. */
|
|
191
|
+
switchBranch(rootObjectId: string, name: string): Promise<void>;
|
|
192
|
+
/** Merge a branch back into main across the subtree, then switch back to main. */
|
|
193
|
+
mergeBranch(rootObjectId: string, name: string, opts?: {
|
|
194
|
+
deleteAfter?: boolean;
|
|
195
|
+
}): Promise<void>;
|
|
196
|
+
/** Fold main's changes into a branch across the subtree (the reverse of {@link mergeBranch}). */
|
|
197
|
+
syncBranch(rootObjectId: string, name: string): Promise<void>;
|
|
198
|
+
/** Delete a branch (its documents lose their sync reference). Cannot delete `'main'`. */
|
|
199
|
+
deleteBranch(rootObjectId: string, name: string): void;
|
|
200
|
+
/**
|
|
201
|
+
* Create a caller-owned, writable binding to one branch of one object — a live object whose reads
|
|
202
|
+
* resolve the branch document and whose writes land on the branch document only. Multiple bindings
|
|
203
|
+
* to different branches of the same object may coexist; the device-global current branch and other
|
|
204
|
+
* bindings are unaffected. Binding to `'main'` returns the canonical live object. Bindings are
|
|
205
|
+
* ephemeral and never persisted — the caller must `dispose()`.
|
|
206
|
+
*/
|
|
207
|
+
branch<T extends Obj.Unknown>(obj: T, name: string): Promise<BranchBinding<T>>;
|
|
150
208
|
/**
|
|
151
|
-
*
|
|
209
|
+
* Removes feed items by ID.
|
|
152
210
|
*/
|
|
153
|
-
|
|
211
|
+
removeFeedItemsByIds(feed: Feed.Feed, ids: string[]): Promise<void>;
|
|
154
212
|
/**
|
|
155
213
|
* Syncs a feed with the server.
|
|
156
214
|
*/
|
|
@@ -159,6 +217,45 @@ export interface Database extends Queryable {
|
|
|
159
217
|
* Returns queue replication backlog for the feed's namespace.
|
|
160
218
|
*/
|
|
161
219
|
getFeedSyncState(feed: Feed.Feed): Promise<Feed.SyncState>;
|
|
220
|
+
/**
|
|
221
|
+
* Disposes and drops the in-memory handle (live working-set / core cache) for a feed, so the next
|
|
222
|
+
* access re-reads it cold. Advanced cache-control; primarily used by tests to model a spawned
|
|
223
|
+
* process reading the feed with an empty in-memory cache. Public (not `_`-prefixed) so it survives
|
|
224
|
+
* declaration stripping for cross-package test use.
|
|
225
|
+
*/
|
|
226
|
+
evictFeedHandle(feed: Feed.Feed): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* Hashes and uploads `bytes` via the chosen storage backend, returning an un-added Blob object.
|
|
229
|
+
* Rejects with `Err.BlobTooLargeError` (over inline storage's fixed cap, or the backend's own
|
|
230
|
+
* `maxSize`), `Err.BlobWriteError` (backend upload failure), or `Err.BlobNotAvailableError`
|
|
231
|
+
* (`reason: 'backend-not-registered'` — the requested storage name has no registered backend).
|
|
232
|
+
*/
|
|
233
|
+
createBlob(bytes: Uint8Array, options?: {
|
|
234
|
+
type?: string;
|
|
235
|
+
storage?: string;
|
|
236
|
+
}): Promise<Blob.Blob>;
|
|
237
|
+
/**
|
|
238
|
+
* Loads a blob's bytes. Rejects with `Err.BlobNotAvailableError` if the backend for the blob's
|
|
239
|
+
* storage scheme is not registered, offline, or cannot find the bytes.
|
|
240
|
+
*/
|
|
241
|
+
readBlob(blob: Blob.Blob): Promise<Uint8Array>;
|
|
242
|
+
/**
|
|
243
|
+
* Checks whether a blob's bytes are currently available.
|
|
244
|
+
*/
|
|
245
|
+
blobExists(blob: Blob.Blob): Promise<boolean>;
|
|
246
|
+
/**
|
|
247
|
+
* Returns a renderable URL for the blob, if one can be produced.
|
|
248
|
+
*/
|
|
249
|
+
getBlobUrl(blob: Blob.Blob): Promise<string | undefined>;
|
|
250
|
+
/**
|
|
251
|
+
* Get the current combined (automerge documents + feed blocks) sync state, reported against a
|
|
252
|
+
* single remote peer.
|
|
253
|
+
*/
|
|
254
|
+
getSyncState(options?: GetSyncStateOptions): Promise<SyncState>;
|
|
255
|
+
/**
|
|
256
|
+
* Subscribe to combined sync state changes.
|
|
257
|
+
*/
|
|
258
|
+
subscribeToSyncState(cb: (state: SyncState) => void, options?: GetSyncStateOptions): CleanupFn;
|
|
162
259
|
}
|
|
163
260
|
export declare const isDatabase: (obj: unknown) => obj is Database;
|
|
164
261
|
export declare const Database: Schema.Schema<Database>;
|
|
@@ -242,5 +339,57 @@ export declare const query: {
|
|
|
242
339
|
<Q extends Query.Any>(query: Q): QueryResult.QueryResultEffect<Query.Type<Q>, never, Service>;
|
|
243
340
|
<F extends Filter.Any>(filter: F): QueryResult.QueryResultEffect<Filter.Type<F>, never, Service>;
|
|
244
341
|
};
|
|
342
|
+
/**
|
|
343
|
+
* Sync state of the database in relation to EDGE.
|
|
344
|
+
*/
|
|
345
|
+
export interface SyncState {
|
|
346
|
+
/**
|
|
347
|
+
* Total number of documents locally.
|
|
348
|
+
*/
|
|
349
|
+
readonly localDocumentCount: number;
|
|
350
|
+
/**
|
|
351
|
+
* Total number of documents on the remote peer.
|
|
352
|
+
*/
|
|
353
|
+
readonly remoteDocumentCount: number;
|
|
354
|
+
/**
|
|
355
|
+
* Total number of documents across this peer and the remote peer.
|
|
356
|
+
*/
|
|
357
|
+
readonly totalDocumentCount: number;
|
|
358
|
+
/**
|
|
359
|
+
* Total number of documents that are not synced.
|
|
360
|
+
* Includes documents that are present only locally, only on the remote peer, or whether the peers have different versions.
|
|
361
|
+
*/
|
|
362
|
+
readonly unsyncedDocumentCount: number;
|
|
363
|
+
/**
|
|
364
|
+
* Blocks still to pull from remote. 0 when caught up.
|
|
365
|
+
*/
|
|
366
|
+
readonly blocksToPull: string;
|
|
367
|
+
/**
|
|
368
|
+
* Unpositioned blocks still to push to remote. 0 when caught up.
|
|
369
|
+
*/
|
|
370
|
+
readonly blocksToPush: string;
|
|
371
|
+
/**
|
|
372
|
+
* Total blocks stored locally for this namespace in the space.
|
|
373
|
+
*/
|
|
374
|
+
readonly totalBlocks: string;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Options for reading combined sync state.
|
|
378
|
+
*/
|
|
379
|
+
export interface GetSyncStateOptions {
|
|
380
|
+
/**
|
|
381
|
+
* Peer to report the automerge document backlog against. Defaults to the EDGE peer.
|
|
382
|
+
* Provide explicitly in local/test topologies where there is no EDGE peer.
|
|
383
|
+
*/
|
|
384
|
+
readonly peerId?: string;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Get the current sync state.
|
|
388
|
+
*/
|
|
389
|
+
export declare const getSyncState: (options?: GetSyncStateOptions) => Effect.Effect<SyncState, never, Service>;
|
|
390
|
+
/**
|
|
391
|
+
* Subscribe to sync state changes.
|
|
392
|
+
*/
|
|
393
|
+
export declare const subscribeToSyncState: (options?: GetSyncStateOptions) => Stream.Stream<SyncState, never, Service>;
|
|
245
394
|
export {};
|
|
246
395
|
//# sourceMappingURL=Database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../src/Database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../src/Database.ts"],"names":[],"mappings":"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"}
|
package/dist/types/src/Err.d.ts
CHANGED
|
@@ -127,6 +127,122 @@ declare const TextEditNotFoundError_base: {
|
|
|
127
127
|
export declare class TextEditNotFoundError extends TextEditNotFoundError_base {
|
|
128
128
|
constructor(oldString: string, options?: BaseErrorOptions);
|
|
129
129
|
}
|
|
130
|
+
declare const BlobTooLargeError_base: {
|
|
131
|
+
new (options?: BaseErrorOptions): {
|
|
132
|
+
cause?: unknown;
|
|
133
|
+
stack?: string;
|
|
134
|
+
name: "BlobTooLargeError";
|
|
135
|
+
context: Record<string, unknown>;
|
|
136
|
+
readonly message: string;
|
|
137
|
+
readonly _tag: "BlobTooLargeError";
|
|
138
|
+
};
|
|
139
|
+
isError(error: unknown): error is Error;
|
|
140
|
+
name: "BlobTooLargeError";
|
|
141
|
+
is(error: unknown): error is BaseError;
|
|
142
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
143
|
+
ifTypeDiffers?: boolean;
|
|
144
|
+
}): (error: unknown) => {
|
|
145
|
+
cause?: unknown;
|
|
146
|
+
stack?: string;
|
|
147
|
+
name: "BlobTooLargeError";
|
|
148
|
+
context: Record<string, unknown>;
|
|
149
|
+
readonly message: string;
|
|
150
|
+
readonly _tag: "BlobTooLargeError";
|
|
151
|
+
};
|
|
152
|
+
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
153
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
154
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
155
|
+
stackTraceLimit: number;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Thrown when a blob's bytes exceed the size limit of the storage backend writing them (inline
|
|
159
|
+
* storage's fixed cap, or a registered backend's own `maxSize`).
|
|
160
|
+
*/
|
|
161
|
+
export declare class BlobTooLargeError extends BlobTooLargeError_base {
|
|
162
|
+
constructor(context: {
|
|
163
|
+
size: number;
|
|
164
|
+
limit: number;
|
|
165
|
+
}, options?: BaseErrorOptions);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Reason why a blob's bytes could not be read.
|
|
169
|
+
* - `offline`: The backend's transport failed (e.g. network unavailable).
|
|
170
|
+
* - `not-found`: The backend could not locate the bytes for the given URI.
|
|
171
|
+
* - `backend-not-registered`: No backend is registered for the URI's scheme.
|
|
172
|
+
*/
|
|
173
|
+
export type BlobNotAvailableReason = 'offline' | 'not-found' | 'backend-not-registered';
|
|
174
|
+
declare const BlobNotAvailableError_base: {
|
|
175
|
+
new (options?: BaseErrorOptions): {
|
|
176
|
+
cause?: unknown;
|
|
177
|
+
stack?: string;
|
|
178
|
+
name: "BlobNotAvailableError";
|
|
179
|
+
context: Record<string, unknown>;
|
|
180
|
+
readonly message: string;
|
|
181
|
+
readonly _tag: "BlobNotAvailableError";
|
|
182
|
+
};
|
|
183
|
+
isError(error: unknown): error is Error;
|
|
184
|
+
name: "BlobNotAvailableError";
|
|
185
|
+
is(error: unknown): error is BaseError;
|
|
186
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
187
|
+
ifTypeDiffers?: boolean;
|
|
188
|
+
}): (error: unknown) => {
|
|
189
|
+
cause?: unknown;
|
|
190
|
+
stack?: string;
|
|
191
|
+
name: "BlobNotAvailableError";
|
|
192
|
+
context: Record<string, unknown>;
|
|
193
|
+
readonly message: string;
|
|
194
|
+
readonly _tag: "BlobNotAvailableError";
|
|
195
|
+
};
|
|
196
|
+
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
197
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
198
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
199
|
+
stackTraceLimit: number;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Thrown when a blob's bytes cannot be read from its backend.
|
|
203
|
+
*/
|
|
204
|
+
export declare class BlobNotAvailableError extends BlobNotAvailableError_base {
|
|
205
|
+
constructor(context: {
|
|
206
|
+
backend: string;
|
|
207
|
+
key: string;
|
|
208
|
+
reason: BlobNotAvailableReason;
|
|
209
|
+
}, options?: BaseErrorOptions);
|
|
210
|
+
}
|
|
211
|
+
declare const BlobWriteError_base: {
|
|
212
|
+
new (options?: BaseErrorOptions): {
|
|
213
|
+
cause?: unknown;
|
|
214
|
+
stack?: string;
|
|
215
|
+
name: "BlobWriteError";
|
|
216
|
+
context: Record<string, unknown>;
|
|
217
|
+
readonly message: string;
|
|
218
|
+
readonly _tag: "BlobWriteError";
|
|
219
|
+
};
|
|
220
|
+
isError(error: unknown): error is Error;
|
|
221
|
+
name: "BlobWriteError";
|
|
222
|
+
is(error: unknown): error is BaseError;
|
|
223
|
+
wrap(options?: Omit<BaseErrorOptions, 'cause'> & {
|
|
224
|
+
ifTypeDiffers?: boolean;
|
|
225
|
+
}): (error: unknown) => {
|
|
226
|
+
cause?: unknown;
|
|
227
|
+
stack?: string;
|
|
228
|
+
name: "BlobWriteError";
|
|
229
|
+
context: Record<string, unknown>;
|
|
230
|
+
readonly message: string;
|
|
231
|
+
readonly _tag: "BlobWriteError";
|
|
232
|
+
};
|
|
233
|
+
extend<Name extends string = string>(name: Name, message?: string): any;
|
|
234
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
235
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
236
|
+
stackTraceLimit: number;
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* Thrown when a blob's bytes fail to upload to its backend.
|
|
240
|
+
*/
|
|
241
|
+
export declare class BlobWriteError extends BlobWriteError_base {
|
|
242
|
+
constructor(context: {
|
|
243
|
+
backend: string;
|
|
244
|
+
}, options?: BaseErrorOptions);
|
|
245
|
+
}
|
|
130
246
|
/**
|
|
131
247
|
* Reason why getting a reactive object from a snapshot failed.
|
|
132
248
|
* - `no-database`: The snapshot is not associated with a database.
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAEnD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,0BAG1C;IACC,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAExD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,0BAAgE;IACzG,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAExD;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"}
|
|
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,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAEnD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,0BAG1C;IACC,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAExD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,0BAAgE;IACzG,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAExD;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,sBAA0E;IAC/G,YAAY,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAE/E;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,WAAW,GAAG,wBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExF;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,0BAAkE;IAC3G,YAAY,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAEhH;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAA0D;IAC5F,YAAY,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAEnE;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"}
|