@dxos/echo-pipeline 0.8.3 → 0.8.4-main.1068cf700f
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/neutral/chunk-FJPXA75J.mjs +235 -0
- package/dist/lib/neutral/chunk-FJPXA75J.mjs.map +7 -0
- package/dist/lib/{browser/chunk-35I6ERLG.mjs → neutral/chunk-WIQUYO7H.mjs} +300 -213
- package/dist/lib/neutral/chunk-WIQUYO7H.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/filter/index.mjs +3 -2
- package/dist/lib/{browser → neutral}/index.mjs +2832 -946
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser → neutral}/testing/index.mjs +73 -224
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/types/src/automerge/automerge-host.d.ts +53 -42
- 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 +6 -4
- package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-network-adapter.d.ts +22 -10
- package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-replicator.d.ts +37 -15
- 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/index.d.ts +1 -1
- package/dist/types/src/automerge/index.d.ts.map +1 -1
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +5 -5
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +9 -8
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts +5 -5
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
- package/dist/types/src/common/codec.d.ts +1 -1
- package/dist/types/src/common/codec.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 +5 -4
- package/dist/types/src/db-host/data-service.d.ts.map +1 -1
- package/dist/types/src/db-host/database-root.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 +44 -23
- 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 +16 -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 +14 -9
- 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 +2 -1
- 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 +8 -6
- package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
- package/dist/types/src/filter/filter-match.d.ts +4 -1
- package/dist/types/src/filter/filter-match.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/pipeline/pipeline.d.ts +3 -3
- package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
- package/dist/types/src/query/errors.d.ts +21 -9
- package/dist/types/src/query/errors.d.ts.map +1 -1
- package/dist/types/src/query/plan.d.ts +57 -5
- package/dist/types/src/query/plan.d.ts.map +1 -1
- package/dist/types/src/query/query-executor.d.ts +49 -10
- package/dist/types/src/query/query-executor.d.ts.map +1 -1
- package/dist/types/src/query/query-planner.d.ts +9 -0
- package/dist/types/src/query/query-planner.d.ts.map +1 -1
- package/dist/types/src/space/admission-discovery-extension.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 +3 -3
- package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
- package/dist/types/src/space/space-manager.d.ts +7 -7
- package/dist/types/src/space/space-manager.d.ts.map +1 -1
- package/dist/types/src/space/space-protocol.d.ts +6 -6
- package/dist/types/src/space/space-protocol.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts +4 -4
- 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-agent-builder.d.ts +2 -2
- package/dist/types/src/testing/test-agent-builder.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 +14 -13
- package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +53 -45
- package/src/automerge/automerge-host.test.ts +55 -24
- package/src/automerge/automerge-host.ts +399 -126
- package/src/automerge/automerge-repo.test.ts +214 -46
- package/src/automerge/collection-synchronizer.test.ts +22 -15
- package/src/automerge/collection-synchronizer.ts +57 -22
- package/src/automerge/echo-data-monitor.ts +1 -1
- package/src/automerge/echo-network-adapter.test.ts +3 -3
- package/src/automerge/echo-network-adapter.ts +73 -28
- package/src/automerge/echo-replicator.ts +40 -15
- package/src/automerge/heads-store.ts +42 -3
- package/src/automerge/index.ts +1 -1
- package/src/automerge/leveldb-storage-adapter.ts +11 -11
- package/src/automerge/mesh-echo-replicator-connection.ts +12 -8
- package/src/automerge/mesh-echo-replicator.ts +15 -11
- package/src/automerge/storage-adapter.test.ts +1 -1
- package/src/common/space-id.ts +1 -1
- package/src/db-host/automerge-data-source.test.ts +292 -0
- package/src/db-host/automerge-data-source.ts +144 -0
- package/src/db-host/data-service.ts +19 -20
- package/src/db-host/database-root.ts +2 -2
- package/src/db-host/documents-synchronizer.test.ts +73 -13
- package/src/db-host/documents-synchronizer.ts +58 -44
- package/src/db-host/echo-host.ts +194 -84
- package/src/db-host/index.ts +1 -0
- package/src/db-host/local-queue-service.ts +147 -0
- package/src/db-host/query-service.ts +28 -95
- package/src/db-host/queue-data-source.ts +132 -0
- package/src/db-host/queue-service.test.ts +145 -0
- package/src/db-host/space-state-manager.ts +6 -2
- package/src/db-host/stub.ts +28 -0
- package/src/edge/echo-edge-replicator.test.ts +8 -6
- package/src/edge/echo-edge-replicator.ts +124 -42
- package/src/filter/filter-match.test.ts +58 -32
- package/src/filter/filter-match.ts +163 -15
- package/src/metadata/metadata-store.ts +8 -5
- package/src/pipeline/pipeline-stress.test.ts +4 -2
- package/src/pipeline/pipeline.test.ts +3 -2
- package/src/pipeline/pipeline.ts +10 -7
- package/src/query/errors.ts +3 -1
- package/src/query/plan.ts +75 -5
- package/src/query/query-executor.ts +812 -117
- package/src/query/query-planner.test.ts +652 -34
- package/src/query/query-planner.ts +276 -13
- package/src/space/admission-discovery-extension.ts +3 -3
- package/src/space/auth.ts +6 -6
- package/src/space/control-pipeline.test.ts +4 -3
- package/src/space/control-pipeline.ts +11 -8
- package/src/space/space-manager.browser.test.ts +1 -1
- package/src/space/space-manager.ts +11 -10
- package/src/space/space-protocol.browser.test.ts +2 -2
- package/src/space/space-protocol.test.ts +3 -2
- package/src/space/space-protocol.ts +17 -14
- package/src/space/space.test.ts +1 -1
- package/src/space/space.ts +6 -5
- package/src/testing/index.ts +0 -2
- package/src/testing/test-agent-builder.ts +4 -3
- package/src/testing/test-network-adapter.ts +16 -3
- package/src/testing/test-replicator.ts +23 -18
- package/src/util.ts +7 -3
- package/dist/lib/browser/chunk-35I6ERLG.mjs.map +0 -7
- package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
- package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
- package/dist/lib/browser/chunk-TQJTKNMS.mjs +0 -126
- package/dist/lib/browser/chunk-TQJTKNMS.mjs.map +0 -7
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/testing/index.mjs.map +0 -7
- package/dist/lib/node/chunk-HOPOFWAL.cjs +0 -147
- package/dist/lib/node/chunk-HOPOFWAL.cjs.map +0 -7
- package/dist/lib/node/chunk-JXX6LF5U.cjs +0 -2084
- package/dist/lib/node/chunk-JXX6LF5U.cjs.map +0 -7
- package/dist/lib/node/chunk-Q7SFCCGT.cjs +0 -33
- package/dist/lib/node/chunk-Q7SFCCGT.cjs.map +0 -7
- package/dist/lib/node/filter/index.cjs +0 -32
- package/dist/lib/node/filter/index.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -4699
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -753
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-5BHLPT24.mjs +0 -2067
- package/dist/lib/node-esm/chunk-5BHLPT24.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-RVK35BS7.mjs +0 -126
- package/dist/lib/node-esm/chunk-RVK35BS7.mjs.map +0 -7
- package/dist/lib/node-esm/filter/index.mjs +0 -11
- package/dist/lib/node-esm/filter/index.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -4743
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -742
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/types/src/db-host/documents-iterator.d.ts +0 -7
- package/dist/types/src/db-host/documents-iterator.d.ts.map +0 -1
- 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/db-host/documents-iterator.ts +0 -74
- package/src/testing/test-data.ts +0 -127
- package/src/testing/test-schema.ts +0 -53
- /package/dist/lib/{browser → neutral}/filter/index.mjs.map +0 -0
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { type Doc, type Heads } from '@automerge/automerge';
|
|
2
|
-
import {
|
|
2
|
+
import { type AnyDocumentId, type DocHandle, type DocumentId, type PeerId } from '@automerge/automerge-repo';
|
|
3
3
|
import { Event } from '@dxos/async';
|
|
4
4
|
import { Context, Resource } from '@dxos/context';
|
|
5
5
|
import { type CollectionId } from '@dxos/echo-protocol';
|
|
6
|
-
import { type IndexMetadataStore } from '@dxos/indexing';
|
|
7
6
|
import { PublicKey } from '@dxos/keys';
|
|
8
7
|
import { type LevelDB } from '@dxos/kv-store';
|
|
8
|
+
import { type SpaceSyncState } from '@dxos/protocols/proto/dxos/echo/service';
|
|
9
9
|
import { type DocHeadsList, type FlushRequest } from '@dxos/protocols/proto/dxos/echo/service';
|
|
10
10
|
import { type CollectionState } from './collection-synchronizer';
|
|
11
11
|
import { type EchoDataMonitor } from './echo-data-monitor';
|
|
12
|
-
import { type
|
|
12
|
+
import { type AutomergeReplicator } from './echo-replicator';
|
|
13
13
|
export type PeerIdProvider = () => string | undefined;
|
|
14
14
|
export type RootDocumentSpaceKeyProvider = (documentId: string) => PublicKey | undefined;
|
|
15
|
-
export type
|
|
15
|
+
export type AutomergeHostProps = {
|
|
16
16
|
db: LevelDB;
|
|
17
|
-
indexMetadataStore: IndexMetadataStore;
|
|
18
17
|
dataMonitor?: EchoDataMonitor;
|
|
19
18
|
/**
|
|
20
19
|
* Used for creating stable ids. A random key is generated on open, if no value is provided.
|
|
@@ -24,12 +23,18 @@ export type AutomergeHostParams = {
|
|
|
24
23
|
};
|
|
25
24
|
export type LoadDocOptions = {
|
|
26
25
|
timeout?: number;
|
|
26
|
+
/**
|
|
27
|
+
* If true, the document will be fetched from the network if it is not found in the local storage.
|
|
28
|
+
* Setting this to false does not guarantee that the document will not be fetched from the network.
|
|
29
|
+
*/
|
|
30
|
+
fetchFromNetwork?: boolean;
|
|
27
31
|
};
|
|
28
32
|
export type CreateDocOptions = {
|
|
29
33
|
/**
|
|
30
34
|
* Import the document together with its history.
|
|
31
35
|
*/
|
|
32
36
|
preserveHistory?: boolean;
|
|
37
|
+
documentId?: DocumentId;
|
|
33
38
|
};
|
|
34
39
|
export declare const FIND_PARAMS: {
|
|
35
40
|
allowableStates: ("requesting" | "ready")[];
|
|
@@ -39,12 +44,16 @@ export declare const FIND_PARAMS: {
|
|
|
39
44
|
*/
|
|
40
45
|
export declare class AutomergeHost extends Resource {
|
|
41
46
|
private readonly _db;
|
|
42
|
-
private readonly _indexMetadataStore;
|
|
43
47
|
private readonly _echoNetworkAdapter;
|
|
44
48
|
private readonly _collectionSynchronizer;
|
|
45
49
|
private _repo;
|
|
46
50
|
private _storage;
|
|
47
51
|
private readonly _headsStore;
|
|
52
|
+
private _syncTask;
|
|
53
|
+
/**
|
|
54
|
+
* Cache of collections that would be synced on next sync task run.
|
|
55
|
+
*/
|
|
56
|
+
private readonly _collectionsToSync;
|
|
48
57
|
private _peerId;
|
|
49
58
|
private readonly _peerIdProvider?;
|
|
50
59
|
private readonly _getSpaceKeyByRootDocumentId?;
|
|
@@ -55,17 +64,33 @@ export declare class AutomergeHost extends Resource {
|
|
|
55
64
|
* Fired after a batch of documents was saved to disk.
|
|
56
65
|
*/
|
|
57
66
|
readonly documentsSaved: Event<void>;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
private readonly _headsUpdates;
|
|
68
|
+
private _onHeadsChangedTask?;
|
|
69
|
+
/**
|
|
70
|
+
* Documents created in this session.
|
|
71
|
+
*/
|
|
72
|
+
private _createdDocuments;
|
|
61
73
|
/**
|
|
62
|
-
*
|
|
74
|
+
* Documents that need to be synced based on the result of collection-sync.
|
|
63
75
|
*/
|
|
64
|
-
|
|
76
|
+
private _documentsToSync;
|
|
77
|
+
/**
|
|
78
|
+
* Documents that are not avaiale locally that should be requested.
|
|
79
|
+
*/
|
|
80
|
+
private _documentsToRequest;
|
|
81
|
+
/**
|
|
82
|
+
* Documents requested by remote peers.
|
|
83
|
+
*/
|
|
84
|
+
private _documentsRequested;
|
|
85
|
+
private _sharePolicyChangedTask?;
|
|
86
|
+
constructor({ db, dataMonitor, peerIdProvider, getSpaceKeyByRootDocumentId }: AutomergeHostProps);
|
|
87
|
+
protected _open(): Promise<void>;
|
|
88
|
+
protected _close(): Promise<void>;
|
|
65
89
|
get peerId(): PeerId;
|
|
66
90
|
get loadedDocsCount(): number;
|
|
67
|
-
|
|
68
|
-
|
|
91
|
+
get handles(): Readonly<Record<DocumentId, DocHandle<any>>>;
|
|
92
|
+
addReplicator(replicator: AutomergeReplicator): Promise<void>;
|
|
93
|
+
removeReplicator(replicator: AutomergeReplicator): Promise<void>;
|
|
69
94
|
/**
|
|
70
95
|
* Loads the document handle from the repo and waits for it to be ready.
|
|
71
96
|
*/
|
|
@@ -74,10 +99,10 @@ export declare class AutomergeHost extends Resource {
|
|
|
74
99
|
/**
|
|
75
100
|
* Create new persisted document.
|
|
76
101
|
*/
|
|
77
|
-
createDoc<T>(initialValue?: T | Doc<T> | Uint8Array, opts?: CreateDocOptions): DocHandle<T
|
|
102
|
+
createDoc<T>(initialValue?: T | Doc<T> | Uint8Array, opts?: CreateDocOptions): Promise<DocHandle<T>>;
|
|
78
103
|
waitUntilHeadsReplicated(heads: DocHeadsList): Promise<void>;
|
|
79
104
|
reIndexHeads(documentIds: DocumentId[]): Promise<void>;
|
|
80
|
-
private
|
|
105
|
+
private readonly _shareConfig;
|
|
81
106
|
private _beforeSave;
|
|
82
107
|
private _shouldSyncCollection;
|
|
83
108
|
/**
|
|
@@ -92,10 +117,17 @@ export declare class AutomergeHost extends Resource {
|
|
|
92
117
|
*/
|
|
93
118
|
flush({ documentIds }?: FlushRequest): Promise<void>;
|
|
94
119
|
getHeads(documentIds: DocumentId[]): Promise<(Heads | undefined)[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Iterate over all document heads stored on disk.
|
|
122
|
+
*/
|
|
123
|
+
listDocumentHeads(): AsyncGenerator<{
|
|
124
|
+
documentId: DocumentId;
|
|
125
|
+
heads: Heads;
|
|
126
|
+
}>;
|
|
95
127
|
getLocalCollectionState(collectionId: string): CollectionState | undefined;
|
|
96
128
|
getRemoteCollectionStates(collectionId: string): ReadonlyMap<PeerId, CollectionState>;
|
|
97
129
|
refreshCollection(collectionId: string): void;
|
|
98
|
-
getCollectionSyncState(collectionId: string): Promise<
|
|
130
|
+
getCollectionSyncState(collectionId: string): Promise<SpaceSyncState>;
|
|
99
131
|
/**
|
|
100
132
|
* Update the local collection state based on the locally stored document heads.
|
|
101
133
|
*/
|
|
@@ -108,32 +140,11 @@ export declare class AutomergeHost extends Resource {
|
|
|
108
140
|
private _onPeerConnected;
|
|
109
141
|
private _onPeerDisconnected;
|
|
110
142
|
private _onRemoteCollectionStateUpdated;
|
|
143
|
+
private _handleCollectionSync;
|
|
144
|
+
private _pushInBundles;
|
|
145
|
+
private _pushBundle;
|
|
146
|
+
private _pullInBundles;
|
|
147
|
+
private _pullBundle;
|
|
111
148
|
private _onHeadsChanged;
|
|
112
149
|
}
|
|
113
|
-
export type CollectionSyncState = {
|
|
114
|
-
peers: PeerSyncState[];
|
|
115
|
-
};
|
|
116
|
-
export type PeerSyncState = {
|
|
117
|
-
peerId: PeerId;
|
|
118
|
-
/**
|
|
119
|
-
* Documents that are present locally but not on the remote peer.
|
|
120
|
-
*/
|
|
121
|
-
missingOnRemote: number;
|
|
122
|
-
/**
|
|
123
|
-
* Documents that are present on the remote peer but not locally.
|
|
124
|
-
*/
|
|
125
|
-
missingOnLocal: number;
|
|
126
|
-
/**
|
|
127
|
-
* Documents that are present on both peers but have different heads.
|
|
128
|
-
*/
|
|
129
|
-
differentDocuments: number;
|
|
130
|
-
/**
|
|
131
|
-
* Total number of documents locally.
|
|
132
|
-
*/
|
|
133
|
-
localDocumentCount: number;
|
|
134
|
-
/**
|
|
135
|
-
* Total number of documents on the remote peer.
|
|
136
|
-
*/
|
|
137
|
-
remoteDocumentCount: number;
|
|
138
|
-
};
|
|
139
150
|
//# sourceMappingURL=automerge-host.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const createTmpPath: () => string;
|
|
2
2
|
//# sourceMappingURL=automerge-repo.test.d.ts.map
|
|
@@ -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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { type Heads } from '@automerge/automerge';
|
|
1
2
|
import type { DocumentId, PeerId } from '@automerge/automerge-repo';
|
|
2
3
|
import { Event } from '@dxos/async';
|
|
3
|
-
import {
|
|
4
|
-
export type
|
|
4
|
+
import { type Context, Resource } from '@dxos/context';
|
|
5
|
+
export type CollectionSynchronizerProps = {
|
|
5
6
|
sendCollectionState: (collectionId: string, peerId: PeerId, state: CollectionState) => void;
|
|
6
7
|
queryCollectionState: (collectionId: string, peerId: PeerId) => void;
|
|
7
8
|
shouldSyncCollection: (collectionId: string, peerId: PeerId) => boolean;
|
|
@@ -24,7 +25,7 @@ export declare class CollectionSynchronizer extends Resource {
|
|
|
24
25
|
peerId: PeerId;
|
|
25
26
|
newDocsAppeared: boolean;
|
|
26
27
|
}>;
|
|
27
|
-
constructor(params:
|
|
28
|
+
constructor(params: CollectionSynchronizerProps);
|
|
28
29
|
protected _open(ctx: Context): Promise<void>;
|
|
29
30
|
getRegisteredCollectionIds(): string[];
|
|
30
31
|
getLocalCollectionState(collectionId: string): CollectionState | undefined;
|
|
@@ -48,6 +49,7 @@ export declare class CollectionSynchronizer extends Resource {
|
|
|
48
49
|
* Callback when a peer sends the state of a collection.
|
|
49
50
|
*/
|
|
50
51
|
onRemoteStateReceived(collectionId: string, peerId: PeerId, state: CollectionState): void;
|
|
52
|
+
private _diffCollectionState;
|
|
51
53
|
private _getOrCreatePerCollectionState;
|
|
52
54
|
private _refreshInterestedPeers;
|
|
53
55
|
}
|
|
@@ -55,7 +57,7 @@ export type CollectionState = {
|
|
|
55
57
|
/**
|
|
56
58
|
* DocumentId -> Heads.
|
|
57
59
|
*/
|
|
58
|
-
documents: Record<
|
|
60
|
+
documents: Record<DocumentId, Heads>;
|
|
59
61
|
};
|
|
60
62
|
export type CollectionStateDiff = {
|
|
61
63
|
missingOnRemote: DocumentId[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/automerge/collection-synchronizer.ts"],"names":[],"mappings":"
|
|
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
|
-
import {
|
|
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
|
|
4
|
+
import { type AutomergeReplicator, 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,15 +9,15 @@ 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;
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
|
-
* Manages a set of {@link
|
|
20
|
+
* Manages a set of {@link AutomergeReplicator} instances.
|
|
20
21
|
*/
|
|
21
22
|
export declare class EchoNetworkAdapter extends NetworkAdapter {
|
|
22
23
|
private readonly _params;
|
|
@@ -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;
|
|
@@ -38,13 +43,20 @@ export declare class EchoNetworkAdapter extends NetworkAdapter {
|
|
|
38
43
|
close(): Promise<this | undefined>;
|
|
39
44
|
whenConnected(): Promise<void>;
|
|
40
45
|
onConnectionAuthScopeChanged(peer: PeerId): void;
|
|
41
|
-
addReplicator(replicator:
|
|
42
|
-
removeReplicator(replicator:
|
|
43
|
-
shouldAdvertise(peerId: PeerId, params:
|
|
44
|
-
shouldSyncCollection(peerId: PeerId, params:
|
|
46
|
+
addReplicator(replicator: AutomergeReplicator): Promise<void>;
|
|
47
|
+
removeReplicator(replicator: AutomergeReplicator): Promise<void>;
|
|
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[];
|
|
53
|
+
bundleSyncEnabledForPeer(peerId: PeerId): boolean;
|
|
54
|
+
pushBundle(peerId: PeerId, bundle: {
|
|
55
|
+
documentId: DocumentId;
|
|
56
|
+
data: Uint8Array;
|
|
57
|
+
heads: Heads;
|
|
58
|
+
}[]): Promise<void>;
|
|
59
|
+
pullBundle(peerId: PeerId, docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array<ArrayBufferLike>>>;
|
|
48
60
|
private _send;
|
|
49
61
|
private _onConnectionOpen;
|
|
50
62
|
private _onMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"echo-network-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-network-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
import { type Heads } from '@automerge/automerge';
|
|
2
|
+
import { type DocumentId } from '@automerge/automerge-repo';
|
|
1
3
|
import { type PublicKey, type SpaceId } from '@dxos/keys';
|
|
2
|
-
import type
|
|
3
|
-
export interface
|
|
4
|
+
import { type AutomergeProtocolMessage } from '@dxos/protocols';
|
|
5
|
+
export interface AutomergeReplicator {
|
|
4
6
|
/**
|
|
5
7
|
* Called on when replicator is added to EchoHost.
|
|
6
8
|
*/
|
|
7
|
-
connect(context:
|
|
9
|
+
connect(context: AutomergeReplicatorContext): Promise<void>;
|
|
8
10
|
/**
|
|
9
11
|
* Called on when replicator is removed from EchoHost.
|
|
10
12
|
*/
|
|
11
13
|
disconnect(): Promise<void>;
|
|
12
14
|
}
|
|
13
|
-
export interface
|
|
15
|
+
export interface AutomergeReplicatorContext {
|
|
14
16
|
/**
|
|
15
17
|
* Our own peer id.
|
|
16
18
|
*/
|
|
@@ -20,14 +22,17 @@ export interface EchoReplicatorContext {
|
|
|
20
22
|
*/
|
|
21
23
|
getContainingSpaceForDocument(documentId: string): Promise<PublicKey | null>;
|
|
22
24
|
getContainingSpaceIdForDocument(documentId: string): Promise<SpaceId | null>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Returns false if collection sync hasn't happened yet.
|
|
27
|
+
*/
|
|
28
|
+
isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckProps): Promise<boolean>;
|
|
29
|
+
onConnectionOpen(connection: AutomergeReplicatorConnection): void;
|
|
30
|
+
onConnectionClosed(connection: AutomergeReplicatorConnection): void;
|
|
31
|
+
onConnectionAuthScopeChanged(connection: AutomergeReplicatorConnection): void;
|
|
27
32
|
}
|
|
28
|
-
export interface
|
|
33
|
+
export interface AutomergeReplicatorConnection {
|
|
29
34
|
/**
|
|
30
|
-
*
|
|
35
|
+
* Remote peer id.
|
|
31
36
|
*/
|
|
32
37
|
get peerId(): string;
|
|
33
38
|
/**
|
|
@@ -42,19 +47,36 @@ export interface ReplicatorConnection {
|
|
|
42
47
|
* @returns true if the document should be advertised to this peer.
|
|
43
48
|
* The remote peer can still request the document by its id bypassing this check.
|
|
44
49
|
*/
|
|
45
|
-
shouldAdvertise(params:
|
|
50
|
+
shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
|
|
46
51
|
/**
|
|
47
52
|
* @returns true if the collection should be synced to this peer.
|
|
48
53
|
*/
|
|
49
|
-
shouldSyncCollection(params:
|
|
54
|
+
shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Batch syncing considered enabled if AutomergeReplicatorConnection implements `pushBatch` and `pullBatch` methods.
|
|
57
|
+
* @returns true if the batch syncing is enabled.
|
|
58
|
+
*/
|
|
59
|
+
get bundleSyncEnabled(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Pushes the batch of documents to the remote peer.
|
|
62
|
+
*/
|
|
63
|
+
pushBundle?(bundle: {
|
|
64
|
+
documentId: DocumentId;
|
|
65
|
+
data: Uint8Array;
|
|
66
|
+
heads: Heads;
|
|
67
|
+
}[]): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Pulls the batch of documents from the remote peer.
|
|
70
|
+
*/
|
|
71
|
+
pullBundle?(docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array>>;
|
|
50
72
|
}
|
|
51
|
-
export type
|
|
73
|
+
export type ShouldAdvertiseProps = {
|
|
52
74
|
documentId: string;
|
|
53
75
|
};
|
|
54
|
-
export type
|
|
76
|
+
export type ShouldSyncCollectionProps = {
|
|
55
77
|
collectionId: string;
|
|
56
78
|
};
|
|
57
|
-
export type
|
|
79
|
+
export type RemoteDocumentExistenceCheckProps = {
|
|
58
80
|
peerId: string;
|
|
59
81
|
documentId: string;
|
|
60
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,
|
|
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,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC;;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,6BAA6B,GAAG,IAAI,CAAC;IAClE,kBAAkB,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpE,4BAA4B,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,6BAA6B;IAC5C;;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;
|
|
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;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4B7D,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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './automerge-host';
|
|
2
2
|
export * from './leveldb-storage-adapter';
|
|
3
3
|
export * from './mesh-echo-replicator';
|
|
4
|
-
export * from './echo-replicator';
|
|
4
|
+
export type * from './echo-replicator';
|
|
5
5
|
export { diffCollectionState } from './collection-synchronizer';
|
|
6
6
|
export * from './space-collection';
|
|
7
7
|
export * from './echo-data-monitor';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Chunk, type StorageAdapterInterface, type StorageKey } from '@automerge/automerge-repo';
|
|
2
2
|
import { type MixedEncoding } from 'level-transcoder';
|
|
3
3
|
import { Resource } from '@dxos/context';
|
|
4
4
|
import { type BatchLevel, type SublevelDB } from '@dxos/kv-store';
|
|
@@ -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,
|
|
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,16 +2,16 @@ 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 {
|
|
6
|
-
export type
|
|
5
|
+
import type { AutomergeReplicatorConnection, 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
|
-
export declare class MeshReplicatorConnection extends Resource implements
|
|
14
|
+
export declare class MeshReplicatorConnection extends Resource implements AutomergeReplicatorConnection {
|
|
15
15
|
private readonly _params;
|
|
16
16
|
readable: ReadableStream<AutomergeProtocolMessage>;
|
|
17
17
|
writable: WritableStream<AutomergeProtocolMessage>;
|
|
@@ -19,12 +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
|
-
|
|
27
|
-
|
|
26
|
+
get bundleSyncEnabled(): boolean;
|
|
27
|
+
shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
|
|
28
|
+
shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
|
|
28
29
|
/**
|
|
29
30
|
* Start exchanging messages with the remote peer.
|
|
30
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,
|
|
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,6BAA6B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAIxH,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,6BAA6B;IAUjF,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,10 +1,10 @@
|
|
|
1
1
|
import { PublicKey } from '@dxos/keys';
|
|
2
|
-
import
|
|
3
|
-
import { type
|
|
2
|
+
import type * as TeleportAutomergeReplicator from '@dxos/teleport-extension-automerge-replicator';
|
|
3
|
+
import { type AutomergeReplicator, type AutomergeReplicatorContext } from './echo-replicator';
|
|
4
4
|
/**
|
|
5
5
|
* Used to replicate with other peers over the network.
|
|
6
6
|
*/
|
|
7
|
-
export declare class MeshEchoReplicator implements
|
|
7
|
+
export declare class MeshEchoReplicator implements AutomergeReplicator {
|
|
8
8
|
/**
|
|
9
9
|
* We might have multiple connections open with a peer (one per space), but there'll be only one enabled
|
|
10
10
|
* connection at any given moment, because there's a single repo for all the spaces.
|
|
@@ -21,9 +21,9 @@ export declare class MeshEchoReplicator implements EchoReplicator {
|
|
|
21
21
|
*/
|
|
22
22
|
private readonly _authorizedDevices;
|
|
23
23
|
private _context;
|
|
24
|
-
connect(context:
|
|
24
|
+
connect(context: AutomergeReplicatorContext): Promise<void>;
|
|
25
25
|
disconnect(): Promise<void>;
|
|
26
|
-
createExtension(extensionFactory?: AutomergeReplicatorFactory): AutomergeReplicator;
|
|
26
|
+
createExtension(extensionFactory?: TeleportAutomergeReplicator.AutomergeReplicatorFactory): TeleportAutomergeReplicator.AutomergeReplicator;
|
|
27
27
|
authorizeDevice(spaceKey: PublicKey, deviceKey: PublicKey): Promise<void>;
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=mesh-echo-replicator.d.ts.map
|
|
@@ -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,
|
|
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,KAAK,KAAK,2BAA2B,MAAM,+CAA+C,CAAC;AAKlG,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAEhC,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D;;;;;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,CAA2C;IAErD,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,CACb,gBAAgB,CAAC,EAAE,2BAA2B,CAAC,0BAA0B,GACxE,2BAA2B,CAAC,mBAAmB;IAsH5C,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhF"}
|
|
@@ -7,5 +7,5 @@ export declare const codec: Codec<FeedMessage>;
|
|
|
7
7
|
/**
|
|
8
8
|
* Value encoding used by feed store.
|
|
9
9
|
*/
|
|
10
|
-
export declare const valueEncoding: import("hypercore").AbstractValueEncoding<FeedMessage>;
|
|
10
|
+
export declare const valueEncoding: import("@dxos/vendor-hypercore/hypercore").AbstractValueEncoding<FeedMessage>;
|
|
11
11
|
//# sourceMappingURL=codec.d.ts.map
|