@dxos/echo-pipeline 0.8.4-main.ae835ea → 0.8.4-main.bc674ce
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/browser/{chunk-WJJXJTNS.mjs → chunk-FJPXA75J.mjs} +7 -12
- package/dist/lib/browser/chunk-FJPXA75J.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FR6GJ4S4.mjs → chunk-WIQUYO7H.mjs} +39 -29
- package/dist/lib/browser/chunk-WIQUYO7H.mjs.map +7 -0
- package/dist/lib/browser/filter/index.mjs +1 -2
- package/dist/lib/browser/index.mjs +1933 -620
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +28 -201
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/{chunk-JQCCVDLT.mjs → chunk-7PL6UK4B.mjs} +39 -29
- package/dist/lib/node-esm/chunk-7PL6UK4B.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LEQ77KAT.mjs → chunk-S5KGVQFZ.mjs} +7 -12
- package/dist/lib/node-esm/chunk-S5KGVQFZ.mjs.map +7 -0
- package/dist/lib/node-esm/filter/index.mjs +1 -2
- package/dist/lib/node-esm/index.mjs +1933 -620
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +28 -201
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/automerge/automerge-host.d.ts +36 -9
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-repo.test.d.ts +1 -1
- package/dist/types/src/automerge/automerge-repo.test.d.ts.map +1 -1
- package/dist/types/src/automerge/collection-synchronizer.d.ts +3 -2
- package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-network-adapter.d.ts +11 -6
- package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-replicator.d.ts +9 -6
- package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
- package/dist/types/src/automerge/heads-store.d.ts +9 -2
- package/dist/types/src/automerge/heads-store.d.ts.map +1 -1
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +4 -4
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +7 -7
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
- package/dist/types/src/db-host/automerge-data-source.d.ts +34 -0
- package/dist/types/src/db-host/automerge-data-source.d.ts.map +1 -0
- package/dist/types/src/db-host/automerge-data-source.test.d.ts +2 -0
- package/dist/types/src/db-host/automerge-data-source.test.d.ts.map +1 -0
- package/dist/types/src/db-host/data-service.d.ts +4 -3
- package/dist/types/src/db-host/data-service.d.ts.map +1 -1
- package/dist/types/src/db-host/documents-iterator.d.ts.map +1 -1
- package/dist/types/src/db-host/documents-synchronizer.d.ts +6 -5
- package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
- package/dist/types/src/db-host/echo-host.d.ts +43 -11
- package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
- package/dist/types/src/db-host/index.d.ts +1 -0
- package/dist/types/src/db-host/index.d.ts.map +1 -1
- package/dist/types/src/db-host/local-queue-service.d.ts +15 -0
- package/dist/types/src/db-host/local-queue-service.d.ts.map +1 -0
- package/dist/types/src/db-host/query-service.d.ts +7 -2
- package/dist/types/src/db-host/query-service.d.ts.map +1 -1
- package/dist/types/src/db-host/queue-data-source.d.ts +28 -0
- package/dist/types/src/db-host/queue-data-source.d.ts.map +1 -0
- package/dist/types/src/db-host/queue-service.test.d.ts +2 -0
- package/dist/types/src/db-host/queue-service.test.d.ts.map +1 -0
- package/dist/types/src/db-host/space-state-manager.d.ts +1 -0
- package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -1
- package/dist/types/src/db-host/stub.d.ts +10 -0
- package/dist/types/src/db-host/stub.d.ts.map +1 -0
- package/dist/types/src/edge/echo-edge-replicator.d.ts +2 -2
- package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
- package/dist/types/src/filter/filter-match.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/pipeline/pipeline.d.ts +2 -2
- package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
- package/dist/types/src/query/errors.d.ts +11 -15
- package/dist/types/src/query/errors.d.ts.map +1 -1
- package/dist/types/src/query/plan.d.ts +37 -3
- package/dist/types/src/query/plan.d.ts.map +1 -1
- package/dist/types/src/query/query-executor.d.ts +39 -3
- package/dist/types/src/query/query-executor.d.ts.map +1 -1
- package/dist/types/src/query/query-planner.d.ts +6 -0
- package/dist/types/src/query/query-planner.d.ts.map +1 -1
- package/dist/types/src/space/auth.d.ts +3 -3
- package/dist/types/src/space/auth.d.ts.map +1 -1
- package/dist/types/src/space/control-pipeline.d.ts +2 -2
- package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
- package/dist/types/src/space/space-manager.d.ts +6 -6
- package/dist/types/src/space/space-manager.d.ts.map +1 -1
- package/dist/types/src/space/space-protocol.d.ts +5 -5
- package/dist/types/src/space/space-protocol.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts +3 -3
- package/dist/types/src/space/space.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +0 -2
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-network-adapter.d.ts +1 -1
- package/dist/types/src/testing/test-network-adapter.d.ts.map +1 -1
- package/dist/types/src/testing/test-replicator.d.ts +6 -6
- package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +48 -38
- package/src/automerge/automerge-host.test.ts +37 -14
- package/src/automerge/automerge-host.ts +130 -36
- package/src/automerge/automerge-repo.test.ts +147 -30
- package/src/automerge/collection-synchronizer.test.ts +16 -10
- package/src/automerge/collection-synchronizer.ts +41 -11
- package/src/automerge/echo-network-adapter.ts +23 -11
- package/src/automerge/echo-replicator.ts +10 -6
- package/src/automerge/heads-store.ts +14 -2
- package/src/automerge/leveldb-storage-adapter.ts +4 -4
- package/src/automerge/mesh-echo-replicator-connection.ts +7 -7
- package/src/automerge/mesh-echo-replicator.ts +2 -2
- package/src/db-host/automerge-data-source.test.ts +294 -0
- package/src/db-host/automerge-data-source.ts +144 -0
- package/src/db-host/data-service.ts +10 -3
- package/src/db-host/documents-iterator.ts +3 -1
- package/src/db-host/documents-synchronizer.test.ts +77 -13
- package/src/db-host/documents-synchronizer.ts +51 -50
- package/src/db-host/echo-host.ts +191 -28
- package/src/db-host/index.ts +1 -0
- package/src/db-host/local-queue-service.ts +127 -0
- package/src/db-host/query-service.ts +17 -4
- package/src/db-host/queue-data-source.ts +132 -0
- package/src/db-host/queue-service.test.ts +141 -0
- package/src/db-host/space-state-manager.ts +4 -0
- package/src/db-host/stub.ts +28 -0
- package/src/edge/echo-edge-replicator.ts +12 -8
- package/src/filter/filter-match.test.ts +31 -25
- package/src/filter/filter-match.ts +8 -14
- package/src/metadata/metadata-store.ts +5 -2
- package/src/pipeline/pipeline.ts +2 -2
- package/src/query/errors.ts +2 -2
- package/src/query/plan.ts +48 -3
- package/src/query/query-executor.ts +612 -131
- package/src/query/query-planner.test.ts +509 -35
- package/src/query/query-planner.ts +187 -13
- package/src/space/admission-discovery-extension.ts +1 -1
- package/src/space/auth.ts +6 -6
- package/src/space/control-pipeline.ts +2 -2
- package/src/space/space-manager.ts +6 -6
- package/src/space/space-protocol.ts +11 -11
- package/src/space/space.ts +3 -3
- package/src/testing/index.ts +0 -2
- package/src/testing/test-network-adapter.ts +16 -3
- package/src/testing/test-replicator.ts +8 -7
- package/src/util.ts +7 -3
- package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
- package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
- package/dist/lib/browser/chunk-FR6GJ4S4.mjs.map +0 -7
- package/dist/lib/browser/chunk-WJJXJTNS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JQCCVDLT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LEQ77KAT.mjs.map +0 -7
- package/dist/types/src/testing/test-data.d.ts +0 -18
- package/dist/types/src/testing/test-data.d.ts.map +0 -1
- package/dist/types/src/testing/test-schema.d.ts +0 -37
- package/dist/types/src/testing/test-schema.d.ts.map +0 -1
- package/src/testing/test-data.ts +0 -127
- package/src/testing/test-schema.ts +0 -53
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automerge-repo.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-repo.test.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"automerge-repo.test.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-repo.test.ts"],"names":[],"mappings":"AAu9BA,eAAO,MAAM,aAAa,QAAO,MAEhC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { type Heads } from '@automerge/automerge';
|
|
|
2
2
|
import type { DocumentId, PeerId } from '@automerge/automerge-repo';
|
|
3
3
|
import { Event } from '@dxos/async';
|
|
4
4
|
import { type Context, Resource } from '@dxos/context';
|
|
5
|
-
export type
|
|
5
|
+
export type CollectionSynchronizerProps = {
|
|
6
6
|
sendCollectionState: (collectionId: string, peerId: PeerId, state: CollectionState) => void;
|
|
7
7
|
queryCollectionState: (collectionId: string, peerId: PeerId) => void;
|
|
8
8
|
shouldSyncCollection: (collectionId: string, peerId: PeerId) => boolean;
|
|
@@ -25,7 +25,7 @@ export declare class CollectionSynchronizer extends Resource {
|
|
|
25
25
|
peerId: PeerId;
|
|
26
26
|
newDocsAppeared: boolean;
|
|
27
27
|
}>;
|
|
28
|
-
constructor(params:
|
|
28
|
+
constructor(params: CollectionSynchronizerProps);
|
|
29
29
|
protected _open(ctx: Context): Promise<void>;
|
|
30
30
|
getRegisteredCollectionIds(): string[];
|
|
31
31
|
getLocalCollectionState(collectionId: string): CollectionState | undefined;
|
|
@@ -49,6 +49,7 @@ export declare class CollectionSynchronizer extends Resource {
|
|
|
49
49
|
* Callback when a peer sends the state of a collection.
|
|
50
50
|
*/
|
|
51
51
|
onRemoteStateReceived(collectionId: string, peerId: PeerId, state: CollectionState): void;
|
|
52
|
+
private _diffCollectionState;
|
|
52
53
|
private _getOrCreatePerCollectionState;
|
|
53
54
|
private _refreshInterestedPeers;
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/automerge/collection-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,EAAE,KAAK,EAAmD,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASvD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"collection-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/automerge/collection-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,EAAE,KAAK,EAAmD,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASvD,MAAM,MAAM,2BAA2B,GAAG;IACxC,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5F,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACzE,CAAC;AAEF;;GAEG;AACH,qBACa,sBAAuB,SAAQ,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqD;IAC1F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsD;IAC5F,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsD;IAE5F;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAyC;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAErD,SAAgB,kBAAkB;sBAA6B,MAAM;gBAAU,MAAM;yBAAmB,OAAO;OAAM;gBAEzG,MAAM,EAAE,2BAA2B;cAOtB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,0BAA0B,IAAI,MAAM,EAAE;IAItC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1E,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAkB3E,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAMrD,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAmB7C;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA2BtC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUxC;;OAEG;IACH,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpE;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAQzF,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,uBAAuB;CAShC;AASD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,eAAe,EAAE,QAAQ,eAAe,KAAG,mBAwBrF,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DocumentId, type Heads, type Message, NetworkAdapter, type PeerId, type PeerMetadata } from '@automerge/automerge-repo';
|
|
2
|
+
import { Event } from '@dxos/async';
|
|
2
3
|
import { type PublicKey } from '@dxos/keys';
|
|
3
|
-
import { type EchoReplicator, type
|
|
4
|
+
import { type EchoReplicator, type RemoteDocumentExistenceCheckProps, type ShouldAdvertiseProps, type ShouldSyncCollectionProps } from './echo-replicator';
|
|
4
5
|
export interface NetworkDataMonitor {
|
|
5
6
|
recordPeerConnected(peerId: string): void;
|
|
6
7
|
recordPeerDisconnected(peerId: string): void;
|
|
@@ -8,9 +9,9 @@ export interface NetworkDataMonitor {
|
|
|
8
9
|
recordMessageReceived(message: Message): void;
|
|
9
10
|
recordMessageSendingFailed(message: Message): void;
|
|
10
11
|
}
|
|
11
|
-
export type
|
|
12
|
+
export type EchoNetworkAdapterProps = {
|
|
12
13
|
getContainingSpaceForDocument: (documentId: string) => Promise<PublicKey | null>;
|
|
13
|
-
isDocumentInRemoteCollection: (params:
|
|
14
|
+
isDocumentInRemoteCollection: (params: RemoteDocumentExistenceCheckProps) => Promise<boolean>;
|
|
14
15
|
onCollectionStateQueried: (collectionId: string, peerId: PeerId) => void;
|
|
15
16
|
onCollectionStateReceived: (collectionId: string, peerId: PeerId, state: unknown) => void;
|
|
16
17
|
monitor?: NetworkDataMonitor;
|
|
@@ -28,7 +29,11 @@ export declare class EchoNetworkAdapter extends NetworkAdapter {
|
|
|
28
29
|
private _lifecycleState;
|
|
29
30
|
private readonly _connected;
|
|
30
31
|
private readonly _ready;
|
|
31
|
-
|
|
32
|
+
readonly documentRequested: Event<{
|
|
33
|
+
documentId: DocumentId;
|
|
34
|
+
peerId: PeerId;
|
|
35
|
+
}>;
|
|
36
|
+
constructor(_params: EchoNetworkAdapterProps);
|
|
32
37
|
isReady(): boolean;
|
|
33
38
|
whenReady(): Promise<void>;
|
|
34
39
|
connect(peerId: PeerId, peerMetadata?: PeerMetadata | undefined): void;
|
|
@@ -40,8 +45,8 @@ export declare class EchoNetworkAdapter extends NetworkAdapter {
|
|
|
40
45
|
onConnectionAuthScopeChanged(peer: PeerId): void;
|
|
41
46
|
addReplicator(replicator: EchoReplicator): Promise<void>;
|
|
42
47
|
removeReplicator(replicator: EchoReplicator): Promise<void>;
|
|
43
|
-
shouldAdvertise(peerId: PeerId, params:
|
|
44
|
-
shouldSyncCollection(peerId: PeerId, params:
|
|
48
|
+
shouldAdvertise(peerId: PeerId, params: ShouldAdvertiseProps): Promise<boolean>;
|
|
49
|
+
shouldSyncCollection(peerId: PeerId, params: ShouldSyncCollectionProps): boolean;
|
|
45
50
|
queryCollectionState(collectionId: string, targetId: PeerId): void;
|
|
46
51
|
sendCollectionState(collectionId: string, targetId: PeerId, state: unknown): void;
|
|
47
52
|
getPeersInterestedInCollection(collectionId: string): PeerId[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,10 @@ export interface EchoReplicatorContext {
|
|
|
22
22
|
*/
|
|
23
23
|
getContainingSpaceForDocument(documentId: string): Promise<PublicKey | null>;
|
|
24
24
|
getContainingSpaceIdForDocument(documentId: string): Promise<SpaceId | null>;
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Returns false if collection sync hasn't happened yet.
|
|
27
|
+
*/
|
|
28
|
+
isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckProps): Promise<boolean>;
|
|
26
29
|
onConnectionOpen(connection: ReplicatorConnection): void;
|
|
27
30
|
onConnectionClosed(connection: ReplicatorConnection): void;
|
|
28
31
|
onConnectionAuthScopeChanged(connection: ReplicatorConnection): void;
|
|
@@ -44,11 +47,11 @@ export interface ReplicatorConnection {
|
|
|
44
47
|
* @returns true if the document should be advertised to this peer.
|
|
45
48
|
* The remote peer can still request the document by its id bypassing this check.
|
|
46
49
|
*/
|
|
47
|
-
shouldAdvertise(params:
|
|
50
|
+
shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
|
|
48
51
|
/**
|
|
49
52
|
* @returns true if the collection should be synced to this peer.
|
|
50
53
|
*/
|
|
51
|
-
shouldSyncCollection(params:
|
|
54
|
+
shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
|
|
52
55
|
/**
|
|
53
56
|
* Batch syncing considered enabled if ReplicatorConnection implements `pushBatch` and `pullBatch` methods.
|
|
54
57
|
* @returns true if the batch syncing is enabled.
|
|
@@ -67,13 +70,13 @@ export interface ReplicatorConnection {
|
|
|
67
70
|
*/
|
|
68
71
|
pullBundle?(docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array>>;
|
|
69
72
|
}
|
|
70
|
-
export type
|
|
73
|
+
export type ShouldAdvertiseProps = {
|
|
71
74
|
documentId: string;
|
|
72
75
|
};
|
|
73
|
-
export type
|
|
76
|
+
export type ShouldSyncCollectionProps = {
|
|
74
77
|
collectionId: string;
|
|
75
78
|
};
|
|
76
|
-
export type
|
|
79
|
+
export type RemoteDocumentExistenceCheckProps = {
|
|
77
80
|
peerId: string;
|
|
78
81
|
documentId: string;
|
|
79
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,4BAA4B,CAAC,MAAM,EAAE,iCAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzD,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAEjE;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjG;;OAEG;IAEH,UAAU,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAC3F;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import type { Heads } from '@automerge/automerge';
|
|
2
2
|
import type { DocumentId } from '@automerge/automerge-repo';
|
|
3
3
|
import type { BatchLevel, SublevelDB } from '@dxos/kv-store';
|
|
4
|
-
export type
|
|
4
|
+
export type HeadsStoreProps = {
|
|
5
5
|
db: SublevelDB;
|
|
6
6
|
};
|
|
7
7
|
export declare class HeadsStore {
|
|
8
8
|
private readonly _db;
|
|
9
|
-
constructor({ db }:
|
|
9
|
+
constructor({ db }: HeadsStoreProps);
|
|
10
10
|
setHeads(documentId: DocumentId, heads: Heads, batch: BatchLevel): void;
|
|
11
11
|
getHeads(documentIds: DocumentId[]): Promise<Array<Heads | undefined>>;
|
|
12
|
+
/**
|
|
13
|
+
* Iterate over all document IDs and their heads.
|
|
14
|
+
*/
|
|
15
|
+
iterateAll(): AsyncGenerator<{
|
|
16
|
+
documentId: DocumentId;
|
|
17
|
+
heads: Heads;
|
|
18
|
+
}>;
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=heads-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,EAAE,EAAE,EAAE,EAAE,eAAe;IAInC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IASjE,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAO5E;;OAEG;IACI,UAAU,IAAI,cAAc,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CAQ9E"}
|
|
@@ -9,22 +9,22 @@ export interface StorageAdapterDataMonitor {
|
|
|
9
9
|
recordLoadDuration(durationMs: number): void;
|
|
10
10
|
recordStoreDuration(durationMs: number): void;
|
|
11
11
|
}
|
|
12
|
-
export type
|
|
12
|
+
export type LevelDBStorageAdapterProps = {
|
|
13
13
|
db: SublevelDB;
|
|
14
14
|
callbacks?: StorageCallbacks;
|
|
15
15
|
monitor?: StorageAdapterDataMonitor;
|
|
16
16
|
};
|
|
17
|
-
export type
|
|
17
|
+
export type BeforeSaveProps = {
|
|
18
18
|
path: StorageKey;
|
|
19
19
|
batch: BatchLevel;
|
|
20
20
|
};
|
|
21
21
|
export interface StorageCallbacks {
|
|
22
|
-
beforeSave(params:
|
|
22
|
+
beforeSave(params: BeforeSaveProps): MaybePromise<void>;
|
|
23
23
|
afterSave(path: StorageKey): MaybePromise<void>;
|
|
24
24
|
}
|
|
25
25
|
export declare class LevelDBStorageAdapter extends Resource implements StorageAdapterInterface {
|
|
26
26
|
private readonly _params;
|
|
27
|
-
constructor(_params:
|
|
27
|
+
constructor(_params: LevelDBStorageAdapterProps);
|
|
28
28
|
load(keyArray: StorageKey): Promise<Uint8Array | undefined>;
|
|
29
29
|
save(keyArray: StorageKey, binary: Uint8Array): Promise<void>;
|
|
30
30
|
remove(keyArray: StorageKey): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,qBAAsB,SAAQ,QAAS,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,0BAA0B;IAI1D,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmB3D,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7D,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqBlD,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD;AAaD,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
|
|
@@ -2,13 +2,13 @@ import { Resource } from '@dxos/context';
|
|
|
2
2
|
import { type PublicKey } from '@dxos/keys';
|
|
3
3
|
import type { AutomergeProtocolMessage } from '@dxos/protocols';
|
|
4
4
|
import { AutomergeReplicator, type AutomergeReplicatorFactory } from '@dxos/teleport-extension-automerge-replicator';
|
|
5
|
-
import type { ReplicatorConnection,
|
|
6
|
-
export type
|
|
5
|
+
import type { ReplicatorConnection, ShouldAdvertiseProps, ShouldSyncCollectionProps } from './echo-replicator';
|
|
6
|
+
export type MeshReplicatorConnectionProps = {
|
|
7
7
|
ownPeerId: string;
|
|
8
8
|
onRemoteConnected: () => void;
|
|
9
9
|
onRemoteDisconnected: () => void;
|
|
10
|
-
shouldAdvertise: (params:
|
|
11
|
-
shouldSyncCollection: (params:
|
|
10
|
+
shouldAdvertise: (params: ShouldAdvertiseProps) => Promise<boolean>;
|
|
11
|
+
shouldSyncCollection: (params: ShouldSyncCollectionProps) => boolean;
|
|
12
12
|
replicatorFactory?: AutomergeReplicatorFactory;
|
|
13
13
|
};
|
|
14
14
|
export declare class MeshReplicatorConnection extends Resource implements ReplicatorConnection {
|
|
@@ -19,13 +19,13 @@ export declare class MeshReplicatorConnection extends Resource implements Replic
|
|
|
19
19
|
readonly replicatorExtension: AutomergeReplicator;
|
|
20
20
|
private _remotePeerId;
|
|
21
21
|
private _isEnabled;
|
|
22
|
-
constructor(_params:
|
|
22
|
+
constructor(_params: MeshReplicatorConnectionProps);
|
|
23
23
|
private _disconnectIfEnabled;
|
|
24
24
|
get peerId(): string;
|
|
25
25
|
get isEnabled(): boolean;
|
|
26
26
|
get bundleSyncEnabled(): boolean;
|
|
27
|
-
shouldAdvertise(params:
|
|
28
|
-
shouldSyncCollection(params:
|
|
27
|
+
shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
|
|
28
|
+
shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
|
|
29
29
|
/**
|
|
30
30
|
* Start exchanging messages with the remote peer.
|
|
31
31
|
* Call after the remote peer has connected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-echo-replicator-connection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator-connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAErH,OAAO,KAAK,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"mesh-echo-replicator-connection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator-connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAErH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAI/G,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,oBAAoB,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,OAAO,CAAC;IACrE,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;CAChD,CAAC;AAEF,qBAAa,wBAAyB,SAAQ,QAAS,YAAW,oBAAoB;IAUxE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT7B,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,eAAe,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEhD,SAAgB,mBAAmB,EAAE,mBAAmB,CAAC;IAEzD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEE,OAAO,EAAE,6BAA6B;IA6DnE,OAAO,CAAC,oBAAoB;IAM5B,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAEK,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAIhE;;;OAGG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAChC,MAAM,+CAA+C,CAAC;AAKvD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAChC,MAAM,+CAA+C,CAAC;AAKvD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAA6B,MAAM,mBAAmB,CAAC;AAM/G;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAiD;IACrF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAEpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAEhF,OAAO,CAAC,QAAQ,CAAsC;IAEhD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,CAAC,gBAAgB,CAAC,EAAE,0BAA0B,GAAG,mBAAmB;IAsH7E,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Heads } from '@automerge/automerge';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import { type DataSourceCursor, type IndexDataSource, type IndexerObject } from '@dxos/index-core';
|
|
4
|
+
import { type AutomergeHost } from '../automerge';
|
|
5
|
+
/**
|
|
6
|
+
* Codec for serializing/deserializing Automerge heads to cursor strings.
|
|
7
|
+
*/
|
|
8
|
+
export declare const headsCodec: {
|
|
9
|
+
/**
|
|
10
|
+
* Serialize automerge heads to a cursor string.
|
|
11
|
+
* Heads are sorted to ensure consistent comparison.
|
|
12
|
+
*/
|
|
13
|
+
encode: (heads: Heads) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Deserialize a cursor string back to heads array.
|
|
16
|
+
*/
|
|
17
|
+
decode: (cursor: string) => string[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Data source that fetches objects from AutomergeHost.
|
|
21
|
+
* Iterates all documents from HeadsStore and tracks document heads as cursors to detect changes.
|
|
22
|
+
*/
|
|
23
|
+
export declare class AutomergeDataSource implements IndexDataSource {
|
|
24
|
+
#private;
|
|
25
|
+
readonly sourceName = "automerge";
|
|
26
|
+
constructor(automergeHost: AutomergeHost);
|
|
27
|
+
getChangedObjects(cursors: DataSourceCursor[], opts?: {
|
|
28
|
+
limit?: number;
|
|
29
|
+
}): Effect.Effect<{
|
|
30
|
+
objects: IndexerObject[];
|
|
31
|
+
cursors: DataSourceCursor[];
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=automerge-data-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automerge-data-source.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAInG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;;OAGG;oBACa,KAAK,KAAG,MAAM;IAE9B;;OAEG;qBACc,MAAM,KAAG,MAAM,EAAE;CACnC,CAAC;AAYF;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,eAAe;;IACzD,QAAQ,CAAC,UAAU,eAAe;gBAItB,aAAa,EAAE,aAAa;IAIxC,iBAAiB,CACf,OAAO,EAAE,gBAAgB,EAAE,EAC3B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;CAiF5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automerge-data-source.test.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-data-source.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type RequestOptions } from '@dxos/codec-protobuf';
|
|
2
2
|
import { Stream } from '@dxos/codec-protobuf/stream';
|
|
3
|
-
import { type BatchedDocumentUpdates, type DataService, type FlushRequest, type GetDocumentHeadsRequest, type GetDocumentHeadsResponse, type GetSpaceSyncStateRequest, type ReIndexHeadsRequest, type SpaceSyncState, type SubscribeRequest, type UpdateRequest, type UpdateSubscriptionRequest, type WaitUntilHeadsReplicatedRequest } from '@dxos/protocols/proto/dxos/echo/service';
|
|
3
|
+
import { type BatchedDocumentUpdates, type CreateDocumentRequest, type CreateDocumentResponse, type DataService, type FlushRequest, type GetDocumentHeadsRequest, type GetDocumentHeadsResponse, type GetSpaceSyncStateRequest, type ReIndexHeadsRequest, type SpaceSyncState, type SubscribeRequest, type UpdateRequest, type UpdateSubscriptionRequest, type WaitUntilHeadsReplicatedRequest } from '@dxos/protocols/proto/dxos/echo/service';
|
|
4
4
|
import { type AutomergeHost } from '../automerge';
|
|
5
5
|
import { type SpaceStateManager } from './space-state-manager';
|
|
6
|
-
export type
|
|
6
|
+
export type DataServiceProps = {
|
|
7
7
|
automergeHost: AutomergeHost;
|
|
8
8
|
spaceStateManager: SpaceStateManager;
|
|
9
9
|
updateIndexes: () => Promise<void>;
|
|
@@ -20,9 +20,10 @@ export declare class DataServiceImpl implements DataService {
|
|
|
20
20
|
private readonly _automergeHost;
|
|
21
21
|
private readonly _spaceStateManager;
|
|
22
22
|
private readonly _updateIndexes;
|
|
23
|
-
constructor(params:
|
|
23
|
+
constructor(params: DataServiceProps);
|
|
24
24
|
subscribe(request: SubscribeRequest): Stream<BatchedDocumentUpdates>;
|
|
25
25
|
updateSubscription(request: UpdateSubscriptionRequest): Promise<void>;
|
|
26
|
+
createDocument(request: CreateDocumentRequest): Promise<CreateDocumentResponse>;
|
|
26
27
|
update(request: UpdateRequest): Promise<void>;
|
|
27
28
|
flush(request: FlushRequest): Promise<void>;
|
|
28
29
|
getDocumentHeads(request: GetDocumentHeadsRequest): Promise<GetDocumentHeadsResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/data-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACrC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,cAAc,CAAC;AAGjF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/data-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACrC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,cAAc,CAAC;AAGjF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AAEH,qBAAa,eAAgB,YAAW,WAAW;IACjD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAE3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAEzC,MAAM,EAAE,gBAAgB;IAMpC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAiB9D,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK/E,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAarF,wBAAwB,CAC5B,OAAO,EAAE,+BAA+B,EACxC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,GACnC,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAAC,cAAc,CAAC;CA6BnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents-iterator.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-iterator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,eAAe,aAAa,MAK5C,SAAS,SAAS,KAAG,cAAc,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"documents-iterator.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-iterator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,eAAe,aAAa,MAK5C,SAAS,SAAS,KAAG,cAAc,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAiD7F,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type Heads } from '@automerge/automerge';
|
|
2
|
-
import { type DocHandle, type DocumentId
|
|
2
|
+
import { type DocHandle, type DocumentId } from '@automerge/automerge-repo';
|
|
3
3
|
import { Resource } from '@dxos/context';
|
|
4
4
|
import { type DatabaseDirectory } from '@dxos/echo-protocol';
|
|
5
5
|
import { type BatchedDocumentUpdates, type DocumentUpdate } from '@dxos/protocols/proto/dxos/echo/service';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import type { AutomergeHost } from '../automerge';
|
|
7
|
+
export type DocumentsSynchronizerProps = {
|
|
8
|
+
automergeHost: AutomergeHost;
|
|
8
9
|
sendUpdates: (updates: BatchedDocumentUpdates) => void;
|
|
9
10
|
};
|
|
10
11
|
interface DocSyncState {
|
|
@@ -27,8 +28,8 @@ export declare class DocumentsSynchronizer extends Resource {
|
|
|
27
28
|
* Job that schedules if there are pending updates.
|
|
28
29
|
*/
|
|
29
30
|
private _sendUpdatesJob?;
|
|
30
|
-
constructor(_params:
|
|
31
|
-
addDocuments(documentIds: DocumentId[]
|
|
31
|
+
constructor(_params: DocumentsSynchronizerProps);
|
|
32
|
+
addDocuments(documentIds: DocumentId[]): Promise<void>;
|
|
32
33
|
removeDocuments(documentIds: DocumentId[]): void;
|
|
33
34
|
protected _open(): Promise<void>;
|
|
34
35
|
protected _close(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"documents-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5E,OAAO,EAA2B,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAG3G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,UAAU,YAAY;IACpB,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAKD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IAarC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAA8B;gBAEzB,OAAO,EAAE,0BAA0B;IAI1D,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5D,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;cAQvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAMtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD,OAAO,CAAC,UAAU;IAYlB,oBAAoB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;YASrC,oBAAoB;IAqBlC,OAAO,CAAC,kBAAkB;YAgBZ,cAAc;CAiB7B"}
|
|
@@ -1,26 +1,42 @@
|
|
|
1
|
-
import { type AnyDocumentId, type AutomergeUrl, type DocHandle, type DocumentId
|
|
2
|
-
import
|
|
1
|
+
import { type AnyDocumentId, type AutomergeUrl, type DocHandle, type DocumentId } from '@automerge/automerge-repo';
|
|
2
|
+
import type * as SqlClient from '@effect/sql/SqlClient';
|
|
3
|
+
import { Context, Resource } from '@dxos/context';
|
|
4
|
+
import { RuntimeProvider } from '@dxos/effect';
|
|
5
|
+
import { IndexEngine } from '@dxos/index-core';
|
|
3
6
|
import { type PublicKey, type SpaceId } from '@dxos/keys';
|
|
4
7
|
import { type LevelDB } from '@dxos/kv-store';
|
|
8
|
+
import type { QueueService } from '@dxos/protocols';
|
|
9
|
+
import type * as SqlTransaction from '@dxos/sql-sqlite/SqlTransaction';
|
|
5
10
|
import { type CreateDocOptions, type EchoDataStats, type EchoReplicator, type LoadDocOptions, type PeerIdProvider, type RootDocumentSpaceKeyProvider } from '../automerge';
|
|
6
11
|
import { DataServiceImpl } from './data-service';
|
|
7
12
|
import { type DatabaseRoot } from './database-root';
|
|
8
13
|
import { QueryServiceImpl } from './query-service';
|
|
9
14
|
export interface EchoHostIndexingConfig {
|
|
10
15
|
/**
|
|
11
|
-
* @default
|
|
16
|
+
* @default false
|
|
12
17
|
*/
|
|
13
|
-
|
|
18
|
+
sqlIndex: boolean;
|
|
14
19
|
/**
|
|
15
20
|
* @default false
|
|
16
21
|
*/
|
|
17
22
|
vector: boolean;
|
|
18
23
|
}
|
|
19
|
-
export type
|
|
24
|
+
export type EchoHostProps = {
|
|
20
25
|
kv: LevelDB;
|
|
21
26
|
peerIdProvider?: PeerIdProvider;
|
|
22
27
|
getSpaceKeyByRootDocumentId?: RootDocumentSpaceKeyProvider;
|
|
23
28
|
indexing?: Partial<EchoHostIndexingConfig>;
|
|
29
|
+
runtime: RuntimeProvider.RuntimeProvider<SqlClient.SqlClient | SqlTransaction.SqlTransaction>;
|
|
30
|
+
/**
|
|
31
|
+
* Use SQLite-backed local-first durable queues.
|
|
32
|
+
* Otherwise defaults to in-memory impl.
|
|
33
|
+
*/
|
|
34
|
+
localQueues?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* This peer is allowed to assign positions (global-order) to items appended to the queue.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
assignQueuePositions?: boolean;
|
|
24
40
|
};
|
|
25
41
|
/**
|
|
26
42
|
* Host for the Echo database.
|
|
@@ -36,14 +52,24 @@ export declare class EchoHost extends Resource {
|
|
|
36
52
|
private readonly _dataService;
|
|
37
53
|
private readonly _spaceStateManager;
|
|
38
54
|
private readonly _echoDataMonitor;
|
|
39
|
-
|
|
55
|
+
private readonly _automergeDataSource;
|
|
56
|
+
private readonly _indexer2;
|
|
57
|
+
private readonly _indexConfig;
|
|
58
|
+
private readonly _runtime;
|
|
59
|
+
private readonly _feedStore?;
|
|
60
|
+
private readonly _queueDataSource?;
|
|
61
|
+
private _updateIndexes;
|
|
62
|
+
private _queuesService;
|
|
63
|
+
private _indexesUpToDate;
|
|
64
|
+
constructor({ kv, localQueues, indexing, peerIdProvider, getSpaceKeyByRootDocumentId, runtime, assignQueuePositions, }: EchoHostProps);
|
|
40
65
|
get queryService(): QueryServiceImpl;
|
|
41
66
|
get dataService(): DataServiceImpl;
|
|
67
|
+
get queuesService(): QueueService;
|
|
68
|
+
get roots(): ReadonlyMap<DocumentId, DatabaseRoot>;
|
|
42
69
|
/**
|
|
43
|
-
*
|
|
70
|
+
* New index-core indexer for text and other queries.
|
|
44
71
|
*/
|
|
45
|
-
get
|
|
46
|
-
get roots(): ReadonlyMap<DocumentId, DatabaseRoot>;
|
|
72
|
+
get indexer2(): IndexEngine;
|
|
47
73
|
protected _open(ctx: Context): Promise<void>;
|
|
48
74
|
protected _close(ctx: Context): Promise<void>;
|
|
49
75
|
/**
|
|
@@ -62,13 +88,13 @@ export declare class EchoHost extends Resource {
|
|
|
62
88
|
/**
|
|
63
89
|
* Create new persisted document.
|
|
64
90
|
*/
|
|
65
|
-
createDoc<T>(initialValue?: T, opts?: CreateDocOptions): DocHandle<T
|
|
91
|
+
createDoc<T>(initialValue?: T, opts?: CreateDocOptions): Promise<DocHandle<T>>;
|
|
66
92
|
/**
|
|
67
93
|
* Create new space root.
|
|
68
94
|
*/
|
|
69
95
|
createSpaceRoot(spaceKey: PublicKey): Promise<DatabaseRoot>;
|
|
70
96
|
openSpaceRoot(spaceId: SpaceId, automergeUrl: AutomergeUrl): Promise<DatabaseRoot>;
|
|
71
|
-
closeSpaceRoot(
|
|
97
|
+
closeSpaceRoot(_automergeUrl: AutomergeUrl): Promise<void>;
|
|
72
98
|
/**
|
|
73
99
|
* Install data replicator.
|
|
74
100
|
*/
|
|
@@ -77,6 +103,12 @@ export declare class EchoHost extends Resource {
|
|
|
77
103
|
* Remove data replicator.
|
|
78
104
|
*/
|
|
79
105
|
removeReplicator(replicator: EchoReplicator): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Run collection sync for the given space.
|
|
108
|
+
* Does not wait for the sync to complete.
|
|
109
|
+
*/
|
|
110
|
+
runCollectionSync(spaceId: SpaceId): Promise<void>;
|
|
111
|
+
private _runUpdateIndexes;
|
|
80
112
|
}
|
|
81
113
|
export type { EchoDataStats };
|
|
82
114
|
export type EchoStatsDiagnostic = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-host.d.ts","sourceRoot":"","sources":["../../../../src/db-host/echo-host.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"echo-host.d.ts","sourceRoot":"","sources":["../../../../src/db-host/echo-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db-host/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db-host/index.ts"],"names":[],"mappings":"AAIA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type * as SqlClient from '@effect/sql/SqlClient';
|
|
2
|
+
import { RuntimeProvider } from '@dxos/effect';
|
|
3
|
+
import { type FeedStore } from '@dxos/feed';
|
|
4
|
+
import { type DeleteFromQueueRequest, type InsertIntoQueueRequest, type QueryQueueRequest, type QueueQueryResult, type QueueService } from '@dxos/protocols/proto/dxos/client/services';
|
|
5
|
+
/**
|
|
6
|
+
* Writes queue data to a local FeedStore.
|
|
7
|
+
*/
|
|
8
|
+
export declare class LocalQueueServiceImpl implements QueueService {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(runtime: RuntimeProvider.RuntimeProvider<SqlClient.SqlClient>, feedStore: FeedStore);
|
|
11
|
+
queryQueue(request: QueryQueueRequest): Promise<QueueQueryResult>;
|
|
12
|
+
insertIntoQueue(request: InsertIntoQueueRequest): Promise<void>;
|
|
13
|
+
deleteFromQueue(request: DeleteFromQueueRequest): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=local-queue-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-queue-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/local-queue-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,YAAY;;gBAI5C,OAAO,EAAE,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS;IAK/F,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqCjE,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/D,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;CAehE"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
import type * as SqlClient from '@effect/sql/SqlClient';
|
|
1
2
|
import { Stream } from '@dxos/codec-protobuf/stream';
|
|
2
3
|
import { Resource } from '@dxos/context';
|
|
4
|
+
import { type RuntimeProvider } from '@dxos/effect';
|
|
5
|
+
import { type IndexEngine } from '@dxos/index-core';
|
|
3
6
|
import { type Indexer } from '@dxos/indexing';
|
|
4
7
|
import { type IndexConfig } from '@dxos/protocols/proto/dxos/echo/indexing';
|
|
5
8
|
import { type QueryRequest, type QueryResponse, type QueryService } from '@dxos/protocols/proto/dxos/echo/query';
|
|
6
9
|
import { type AutomergeHost } from '../automerge';
|
|
7
10
|
import type { SpaceStateManager } from './space-state-manager';
|
|
8
|
-
export type
|
|
11
|
+
export type QueryServiceProps = {
|
|
9
12
|
indexer: Indexer;
|
|
13
|
+
indexer2?: IndexEngine;
|
|
14
|
+
runtime?: RuntimeProvider.RuntimeProvider<SqlClient.SqlClient>;
|
|
10
15
|
automergeHost: AutomergeHost;
|
|
11
16
|
spaceStateManager: SpaceStateManager;
|
|
12
17
|
};
|
|
@@ -14,7 +19,7 @@ export declare class QueryServiceImpl extends Resource implements QueryService {
|
|
|
14
19
|
private readonly _params;
|
|
15
20
|
private readonly _queries;
|
|
16
21
|
private _updateQueries;
|
|
17
|
-
constructor(_params:
|
|
22
|
+
constructor(_params: QueryServiceProps);
|
|
18
23
|
_open(): Promise<void>;
|
|
19
24
|
_close(): Promise<void>;
|
|
20
25
|
setConfig(config: IndexConfig): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/query-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/query-service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAW,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,KAAK,OAAO,EAAuB,MAAM,gBAAgB,CAAC;AAGnF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,KAAK,YAAY,EAClB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAAC;AAsBF,qBACa,gBAAiB,SAAQ,QAAS,YAAW,YAAY;IAOxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IAEnD,OAAO,CAAC,cAAc,CAAgB;gBAGT,OAAO,EAAE,iBAAiB;IAkBxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;IAkBvD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B;;OAEG;IACH,iBAAiB;IAOjB,OAAO,CAAC,YAAY;YAwCN,eAAe;CAyB9B"}
|