@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
|
@@ -6,15 +6,12 @@ import {
|
|
|
6
6
|
SpaceManager,
|
|
7
7
|
SpaceProtocol,
|
|
8
8
|
valueEncoding
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import {
|
|
11
|
-
__export
|
|
12
|
-
} from "../chunk-CGS2ULMK.mjs";
|
|
9
|
+
} from "../chunk-WIQUYO7H.mjs";
|
|
13
10
|
|
|
14
|
-
//
|
|
11
|
+
// src/testing/change-metadata.ts
|
|
15
12
|
import { log } from "@dxos/log";
|
|
16
13
|
import { schema } from "@dxos/protocols/proto";
|
|
17
|
-
var __dxlog_file = "/
|
|
14
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/change-metadata.ts";
|
|
18
15
|
var EchoMetadata = schema.getCodecForType("dxos.echo.metadata.EchoMetadata");
|
|
19
16
|
var changeStorageVersionInMetadata = async (storage, version) => {
|
|
20
17
|
log("Changing storage version in metadata. USE ONLY FOR TESTING.", void 0, {
|
|
@@ -32,7 +29,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
|
|
|
32
29
|
await metadata._directory.flush();
|
|
33
30
|
};
|
|
34
31
|
|
|
35
|
-
//
|
|
32
|
+
// src/testing/test-agent-builder.ts
|
|
36
33
|
import { Context } from "@dxos/context";
|
|
37
34
|
import { CredentialGenerator } from "@dxos/credentials";
|
|
38
35
|
import { PublicKey } from "@dxos/keys";
|
|
@@ -44,7 +41,7 @@ import { Gossip, Presence } from "@dxos/teleport-extension-gossip";
|
|
|
44
41
|
import { BlobStore } from "@dxos/teleport-extension-object-sync";
|
|
45
42
|
import { ComplexMap } from "@dxos/util";
|
|
46
43
|
|
|
47
|
-
//
|
|
44
|
+
// src/testing/test-feed-builder.ts
|
|
48
45
|
import { TestBuilder } from "@dxos/feed-store/testing";
|
|
49
46
|
var TestFeedBuilder = class extends TestBuilder {
|
|
50
47
|
constructor() {
|
|
@@ -54,8 +51,8 @@ var TestFeedBuilder = class extends TestBuilder {
|
|
|
54
51
|
}
|
|
55
52
|
};
|
|
56
53
|
|
|
57
|
-
//
|
|
58
|
-
var __dxlog_file2 = "/
|
|
54
|
+
// src/testing/test-agent-builder.ts
|
|
55
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts";
|
|
59
56
|
var MemoryNetworkManagerProvider = (signalContext) => () => new SwarmNetworkManager({
|
|
60
57
|
signalManager: new MemorySignalManager(signalContext),
|
|
61
58
|
transportFactory: MemoryTransportFactory
|
|
@@ -69,8 +66,10 @@ var WebsocketNetworkManagerProvider = (signalUrl) => () => new SwarmNetworkManag
|
|
|
69
66
|
transportFactory: createRtcTransportFactory()
|
|
70
67
|
});
|
|
71
68
|
var TestAgentBuilder = class {
|
|
69
|
+
_agents = new ComplexMap(PublicKey.hash);
|
|
70
|
+
_storage;
|
|
71
|
+
_networkManagerProvider;
|
|
72
72
|
constructor({ storage, networkManagerProvider } = {}) {
|
|
73
|
-
this._agents = new ComplexMap(PublicKey.hash);
|
|
74
73
|
this._storage = storage ?? createStorage({
|
|
75
74
|
type: StorageType.RAM
|
|
76
75
|
});
|
|
@@ -95,9 +94,19 @@ var TestAgentBuilder = class {
|
|
|
95
94
|
}
|
|
96
95
|
};
|
|
97
96
|
var TestAgent = class {
|
|
97
|
+
_networkManagerProvider;
|
|
98
|
+
_feedBuilder;
|
|
99
|
+
identityKey;
|
|
100
|
+
deviceKey;
|
|
101
|
+
_spaces = new ComplexMap(PublicKey.hash);
|
|
102
|
+
storage;
|
|
103
|
+
keyring;
|
|
104
|
+
feedStore;
|
|
105
|
+
_metadataStore;
|
|
98
106
|
get metadataStore() {
|
|
99
107
|
return this._metadataStore ??= new MetadataStore(this.storage.createDirectory("metadata"));
|
|
100
108
|
}
|
|
109
|
+
_blobStore;
|
|
101
110
|
get blobStore() {
|
|
102
111
|
return this._blobStore ??= new BlobStore(this.storage.createDirectory("blobs"));
|
|
103
112
|
}
|
|
@@ -106,7 +115,6 @@ var TestAgent = class {
|
|
|
106
115
|
this._feedBuilder = _feedBuilder;
|
|
107
116
|
this.identityKey = identityKey;
|
|
108
117
|
this.deviceKey = deviceKey;
|
|
109
|
-
this._spaces = new ComplexMap(PublicKey.hash);
|
|
110
118
|
this.storage = this._feedBuilder.storage;
|
|
111
119
|
this.keyring = this._feedBuilder.keyring;
|
|
112
120
|
this.feedStore = this._feedBuilder.createFeedStore();
|
|
@@ -119,9 +127,10 @@ var TestAgent = class {
|
|
|
119
127
|
get spaces() {
|
|
120
128
|
return Array.from(this._spaces.values());
|
|
121
129
|
}
|
|
122
|
-
getSpace(
|
|
123
|
-
return this._spaces.get(
|
|
130
|
+
getSpace(spaceKey) {
|
|
131
|
+
return this._spaces.get(spaceKey);
|
|
124
132
|
}
|
|
133
|
+
_networkManager;
|
|
125
134
|
get networkManager() {
|
|
126
135
|
if (this._networkManager) {
|
|
127
136
|
return this._networkManager;
|
|
@@ -133,6 +142,7 @@ var TestAgent = class {
|
|
|
133
142
|
});
|
|
134
143
|
return this._networkManager;
|
|
135
144
|
}
|
|
145
|
+
_spaceManager;
|
|
136
146
|
get spaceManager() {
|
|
137
147
|
return this._spaceManager ??= new SpaceManager({
|
|
138
148
|
feedStore: this.feedStore,
|
|
@@ -141,10 +151,10 @@ var TestAgent = class {
|
|
|
141
151
|
blobStore: this.blobStore
|
|
142
152
|
});
|
|
143
153
|
}
|
|
144
|
-
async createSpace(identityKey = this.identityKey,
|
|
145
|
-
if (!
|
|
154
|
+
async createSpace(identityKey = this.identityKey, spaceKey, genesisKey, dataKey, saveMetadata = false) {
|
|
155
|
+
if (!spaceKey) {
|
|
146
156
|
saveMetadata = true;
|
|
147
|
-
|
|
157
|
+
spaceKey = await this.keyring.createKey();
|
|
148
158
|
}
|
|
149
159
|
if (!genesisKey) {
|
|
150
160
|
genesisKey = await this.keyring.createKey();
|
|
@@ -157,7 +167,7 @@ var TestAgent = class {
|
|
|
157
167
|
sparse: true
|
|
158
168
|
});
|
|
159
169
|
const metadata = {
|
|
160
|
-
key:
|
|
170
|
+
key: spaceKey,
|
|
161
171
|
genesisFeedKey: genesisKey,
|
|
162
172
|
controlFeedKey: controlFeed.key,
|
|
163
173
|
dataFeedKey: dataFeed.key
|
|
@@ -189,9 +199,9 @@ var TestAgent = class {
|
|
|
189
199
|
await space.setDataFeed(dataFeed);
|
|
190
200
|
await space.open(new Context(void 0, {
|
|
191
201
|
F: __dxlog_file2,
|
|
192
|
-
L:
|
|
202
|
+
L: 206
|
|
193
203
|
}));
|
|
194
|
-
this._spaces.set(
|
|
204
|
+
this._spaces.set(spaceKey, space);
|
|
195
205
|
return space;
|
|
196
206
|
}
|
|
197
207
|
createSpaceProtocol(topic, gossip) {
|
|
@@ -242,27 +252,39 @@ var TestAgent = class {
|
|
|
242
252
|
}
|
|
243
253
|
};
|
|
244
254
|
|
|
245
|
-
//
|
|
255
|
+
// src/testing/test-network-adapter.ts
|
|
246
256
|
import { NetworkAdapter } from "@automerge/automerge-repo";
|
|
247
257
|
import { Trigger, sleep } from "@dxos/async";
|
|
248
258
|
import { invariant } from "@dxos/invariant";
|
|
249
259
|
import { log as log2 } from "@dxos/log";
|
|
250
|
-
var __dxlog_file3 = "/
|
|
260
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-network-adapter.ts";
|
|
251
261
|
var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
252
|
-
|
|
262
|
+
_params;
|
|
263
|
+
static createPair(connectionStateProvider = () => "on", onMessage) {
|
|
253
264
|
const adapter1 = new _TestAdapter({
|
|
254
|
-
send: (message) =>
|
|
265
|
+
send: (message) => {
|
|
266
|
+
onMessage?.(message);
|
|
267
|
+
if (connectionStateProvider() === "on") {
|
|
268
|
+
void sleep(10).then(() => adapter2.receive(message));
|
|
269
|
+
}
|
|
270
|
+
}
|
|
255
271
|
});
|
|
256
272
|
const adapter2 = new _TestAdapter({
|
|
257
|
-
send: (message) =>
|
|
273
|
+
send: (message) => {
|
|
274
|
+
onMessage?.(message);
|
|
275
|
+
if (connectionStateProvider() === "on") {
|
|
276
|
+
void sleep(10).then(() => adapter1.receive(message));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
258
279
|
});
|
|
259
280
|
return [
|
|
260
281
|
adapter1,
|
|
261
282
|
adapter2
|
|
262
283
|
];
|
|
263
284
|
}
|
|
285
|
+
onConnect = new Trigger();
|
|
264
286
|
constructor(_params) {
|
|
265
|
-
super(), this._params = _params
|
|
287
|
+
super(), this._params = _params;
|
|
266
288
|
}
|
|
267
289
|
isReady() {
|
|
268
290
|
return true;
|
|
@@ -277,7 +299,7 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
|
277
299
|
peerCandidate(peerId) {
|
|
278
300
|
invariant(peerId, "PeerId is required", {
|
|
279
301
|
F: __dxlog_file3,
|
|
280
|
-
L:
|
|
302
|
+
L: 58,
|
|
281
303
|
S: this,
|
|
282
304
|
A: [
|
|
283
305
|
"peerId",
|
|
@@ -292,7 +314,7 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
|
292
314
|
peerDisconnected(peerId) {
|
|
293
315
|
invariant(peerId, "PeerId is required", {
|
|
294
316
|
F: __dxlog_file3,
|
|
295
|
-
L:
|
|
317
|
+
L: 63,
|
|
296
318
|
S: this,
|
|
297
319
|
A: [
|
|
298
320
|
"peerId",
|
|
@@ -310,7 +332,7 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
|
310
332
|
type: message.type
|
|
311
333
|
}, {
|
|
312
334
|
F: __dxlog_file3,
|
|
313
|
-
L:
|
|
335
|
+
L: 68,
|
|
314
336
|
S: this,
|
|
315
337
|
C: (f, a) => f(...a)
|
|
316
338
|
});
|
|
@@ -322,7 +344,7 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
|
322
344
|
receive(message) {
|
|
323
345
|
invariant(this.peerId, "Peer id is not set", {
|
|
324
346
|
F: __dxlog_file3,
|
|
325
|
-
L:
|
|
347
|
+
L: 77,
|
|
326
348
|
S: this,
|
|
327
349
|
A: [
|
|
328
350
|
"this.peerId",
|
|
@@ -333,27 +355,27 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
|
|
|
333
355
|
}
|
|
334
356
|
};
|
|
335
357
|
|
|
336
|
-
//
|
|
358
|
+
// src/testing/test-replicator.ts
|
|
337
359
|
import { sleep as sleep2, synchronized } from "@dxos/async";
|
|
338
360
|
import { LifecycleState, Resource } from "@dxos/context";
|
|
339
361
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
340
362
|
import { log as log3 } from "@dxos/log";
|
|
341
|
-
import
|
|
363
|
+
import * as TeleportAutomergeReplicator from "@dxos/teleport-extension-automerge-replicator";
|
|
342
364
|
function _ts_decorate(decorators, target, key, desc) {
|
|
343
365
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
344
366
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
345
367
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
346
368
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
347
369
|
}
|
|
348
|
-
var __dxlog_file4 = "/
|
|
370
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-replicator.ts";
|
|
349
371
|
var TestReplicationNetwork = class extends Resource {
|
|
372
|
+
_replicators = /* @__PURE__ */ new Set();
|
|
373
|
+
_latency = void 0;
|
|
350
374
|
constructor(options = {}) {
|
|
351
375
|
super();
|
|
352
|
-
this._replicators = /* @__PURE__ */ new Set();
|
|
353
|
-
this._latency = void 0;
|
|
354
376
|
this._latency = options.latency;
|
|
355
377
|
}
|
|
356
|
-
async _close(
|
|
378
|
+
async _close(_ctx) {
|
|
357
379
|
for (const replicator of this._replicators) {
|
|
358
380
|
for (const connection of replicator.connections) {
|
|
359
381
|
void connection.writable.abort();
|
|
@@ -472,12 +494,13 @@ _ts_decorate([
|
|
|
472
494
|
synchronized
|
|
473
495
|
], TestReplicationNetwork.prototype, "_connectReplicator", null);
|
|
474
496
|
var TestReplicator = class {
|
|
497
|
+
_params;
|
|
475
498
|
constructor(_params) {
|
|
476
499
|
this._params = _params;
|
|
477
|
-
this.connected = false;
|
|
478
|
-
this.context = void 0;
|
|
479
|
-
this.connections = /* @__PURE__ */ new Set();
|
|
480
500
|
}
|
|
501
|
+
connected = false;
|
|
502
|
+
context = void 0;
|
|
503
|
+
connections = /* @__PURE__ */ new Set();
|
|
481
504
|
async connect(context) {
|
|
482
505
|
log3("connect", {
|
|
483
506
|
peerId: context.peerId
|
|
@@ -515,22 +538,28 @@ var TestReplicator = class {
|
|
|
515
538
|
}
|
|
516
539
|
};
|
|
517
540
|
var TestReplicatorConnection = class {
|
|
541
|
+
peerId;
|
|
542
|
+
readable;
|
|
543
|
+
writable;
|
|
544
|
+
otherSide = void 0;
|
|
545
|
+
owningReplicator = void 0;
|
|
518
546
|
constructor(peerId, readable, writable) {
|
|
519
547
|
this.peerId = peerId;
|
|
520
548
|
this.readable = readable;
|
|
521
549
|
this.writable = writable;
|
|
522
|
-
this.otherSide = void 0;
|
|
523
|
-
this.owningReplicator = void 0;
|
|
524
550
|
}
|
|
525
|
-
|
|
551
|
+
get bundleSyncEnabled() {
|
|
552
|
+
return false;
|
|
553
|
+
}
|
|
554
|
+
async shouldAdvertise(_params) {
|
|
526
555
|
return true;
|
|
527
556
|
}
|
|
528
|
-
shouldSyncCollection(
|
|
557
|
+
shouldSyncCollection(_params) {
|
|
529
558
|
return true;
|
|
530
559
|
}
|
|
531
560
|
};
|
|
532
561
|
var testAutomergeReplicatorFactory = (params) => {
|
|
533
|
-
return new AutomergeReplicator({
|
|
562
|
+
return new TeleportAutomergeReplicator.AutomergeReplicator({
|
|
534
563
|
...params[0],
|
|
535
564
|
sendSyncRetryPolicy: {
|
|
536
565
|
retryBackoff: 20,
|
|
@@ -545,195 +574,15 @@ var brokenAutomergeReplicatorFactory = (params) => {
|
|
|
545
574
|
};
|
|
546
575
|
return testAutomergeReplicatorFactory(params);
|
|
547
576
|
};
|
|
548
|
-
|
|
549
|
-
// packages/core/echo/echo-pipeline/src/testing/test-schema.ts
|
|
550
|
-
var test_schema_exports = {};
|
|
551
|
-
__export(test_schema_exports, {
|
|
552
|
-
Organization: () => Organization,
|
|
553
|
-
Person: () => Person,
|
|
554
|
-
Task: () => Task,
|
|
555
|
-
WorksFor: () => WorksFor
|
|
556
|
-
});
|
|
557
|
-
import { Schema } from "effect";
|
|
558
|
-
import { Type } from "@dxos/echo";
|
|
559
|
-
var Person = Schema.Struct({
|
|
560
|
-
name: Schema.String,
|
|
561
|
-
email: Schema.optional(Schema.String),
|
|
562
|
-
age: Schema.optional(Schema.Number)
|
|
563
|
-
}).pipe(Type.Obj({
|
|
564
|
-
typename: "dxos.org/type/Person",
|
|
565
|
-
version: "0.1.0"
|
|
566
|
-
}));
|
|
567
|
-
var Organization = Schema.Struct({
|
|
568
|
-
name: Schema.String
|
|
569
|
-
}).pipe(Type.Obj({
|
|
570
|
-
typename: "dxos.org/type/Organization",
|
|
571
|
-
version: "0.1.0"
|
|
572
|
-
}));
|
|
573
|
-
var WorksFor = Schema.Struct({
|
|
574
|
-
since: Schema.String
|
|
575
|
-
}).pipe(Type.Relation({
|
|
576
|
-
typename: "dxos.org/type/WorksFor",
|
|
577
|
-
version: "0.1.0",
|
|
578
|
-
source: Person,
|
|
579
|
-
target: Organization
|
|
580
|
-
}));
|
|
581
|
-
var Task = Schema.Struct({
|
|
582
|
-
title: Schema.String,
|
|
583
|
-
createdAt: Schema.String,
|
|
584
|
-
assignee: Type.Ref(Person)
|
|
585
|
-
}).pipe(Type.Obj({
|
|
586
|
-
typename: "dxos.org/type/Task",
|
|
587
|
-
version: "0.1.0"
|
|
588
|
-
}));
|
|
589
|
-
|
|
590
|
-
// packages/core/echo/echo-pipeline/src/testing/test-data.ts
|
|
591
|
-
var test_data_exports = {};
|
|
592
|
-
__export(test_data_exports, {
|
|
593
|
-
ORGS: () => ORGS,
|
|
594
|
-
PEOPLE: () => PEOPLE,
|
|
595
|
-
TASKS: () => TASKS,
|
|
596
|
-
WORKS_FOR: () => WORKS_FOR
|
|
597
|
-
});
|
|
598
|
-
import { DatabaseDirectory, ObjectStructure } from "@dxos/echo-protocol";
|
|
599
|
-
import { getSchemaDXN } from "@dxos/echo-schema";
|
|
600
|
-
import { DXN, ObjectId, PublicKey as PublicKey2 } from "@dxos/keys";
|
|
601
|
-
var spaceKey = PublicKey2.random();
|
|
602
|
-
var PEOPLE = {
|
|
603
|
-
fred: DatabaseDirectory.make({
|
|
604
|
-
spaceKey: spaceKey.toHex(),
|
|
605
|
-
objects: {
|
|
606
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
607
|
-
type: getSchemaDXN(Person).toString(),
|
|
608
|
-
data: {
|
|
609
|
-
name: "Fred"
|
|
610
|
-
}
|
|
611
|
-
})
|
|
612
|
-
}
|
|
613
|
-
}),
|
|
614
|
-
alice: DatabaseDirectory.make({
|
|
615
|
-
spaceKey: spaceKey.toHex(),
|
|
616
|
-
objects: {
|
|
617
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
618
|
-
type: getSchemaDXN(Person).toString(),
|
|
619
|
-
data: {
|
|
620
|
-
name: "Alice"
|
|
621
|
-
}
|
|
622
|
-
})
|
|
623
|
-
}
|
|
624
|
-
})
|
|
625
|
-
};
|
|
626
|
-
var ORGS = {
|
|
627
|
-
cyberdyne: DatabaseDirectory.make({
|
|
628
|
-
spaceKey: spaceKey.toHex(),
|
|
629
|
-
objects: {
|
|
630
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
631
|
-
type: getSchemaDXN(Organization).toString(),
|
|
632
|
-
data: {
|
|
633
|
-
name: "Cyberdyne Systems",
|
|
634
|
-
founded: "1984"
|
|
635
|
-
}
|
|
636
|
-
})
|
|
637
|
-
}
|
|
638
|
-
}),
|
|
639
|
-
aperture: DatabaseDirectory.make({
|
|
640
|
-
spaceKey: spaceKey.toHex(),
|
|
641
|
-
objects: {
|
|
642
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
643
|
-
type: getSchemaDXN(Organization).toString(),
|
|
644
|
-
data: {
|
|
645
|
-
name: "Aperture Science",
|
|
646
|
-
founded: "1953"
|
|
647
|
-
}
|
|
648
|
-
})
|
|
649
|
-
}
|
|
650
|
-
})
|
|
651
|
-
};
|
|
652
|
-
var WORKS_FOR = {
|
|
653
|
-
fredWorksForCyberdyne: DatabaseDirectory.make({
|
|
654
|
-
spaceKey: spaceKey.toHex(),
|
|
655
|
-
objects: {
|
|
656
|
-
[ObjectId.random()]: ObjectStructure.makeRelation({
|
|
657
|
-
type: getSchemaDXN(WorksFor).toString(),
|
|
658
|
-
source: {
|
|
659
|
-
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.fred.objects)[0]).toString()
|
|
660
|
-
},
|
|
661
|
-
target: {
|
|
662
|
-
"/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
|
|
663
|
-
},
|
|
664
|
-
data: {
|
|
665
|
-
since: "2020",
|
|
666
|
-
position: "Engineer"
|
|
667
|
-
}
|
|
668
|
-
})
|
|
669
|
-
}
|
|
670
|
-
}),
|
|
671
|
-
aliceWorksForAperture: DatabaseDirectory.make({
|
|
672
|
-
spaceKey: spaceKey.toHex(),
|
|
673
|
-
objects: {
|
|
674
|
-
[ObjectId.random()]: ObjectStructure.makeRelation({
|
|
675
|
-
type: getSchemaDXN(WorksFor).toString(),
|
|
676
|
-
source: {
|
|
677
|
-
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
|
|
678
|
-
},
|
|
679
|
-
target: {
|
|
680
|
-
"/": DXN.fromLocalObjectId(Object.keys(ORGS.aperture.objects)[0]).toString()
|
|
681
|
-
},
|
|
682
|
-
data: {
|
|
683
|
-
since: "2018",
|
|
684
|
-
position: "Research Scientist"
|
|
685
|
-
}
|
|
686
|
-
})
|
|
687
|
-
}
|
|
688
|
-
})
|
|
689
|
-
};
|
|
690
|
-
var TASKS = {
|
|
691
|
-
task1: DatabaseDirectory.make({
|
|
692
|
-
spaceKey: spaceKey.toHex(),
|
|
693
|
-
objects: {
|
|
694
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
695
|
-
type: getSchemaDXN(Task).toString(),
|
|
696
|
-
data: {
|
|
697
|
-
title: "Complete project documentation",
|
|
698
|
-
description: "Write comprehensive documentation for the new system",
|
|
699
|
-
status: "in-progress",
|
|
700
|
-
dueDate: "2023-12-31",
|
|
701
|
-
assignee: {
|
|
702
|
-
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.fred.objects)[0]).toString()
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
|
-
})
|
|
706
|
-
}
|
|
707
|
-
}),
|
|
708
|
-
task2: DatabaseDirectory.make({
|
|
709
|
-
spaceKey: spaceKey.toHex(),
|
|
710
|
-
objects: {
|
|
711
|
-
[ObjectId.random()]: ObjectStructure.makeObject({
|
|
712
|
-
type: getSchemaDXN(Task).toString(),
|
|
713
|
-
data: {
|
|
714
|
-
title: "Run experiments",
|
|
715
|
-
description: "Conduct series of experiments on the portal device",
|
|
716
|
-
status: "pending",
|
|
717
|
-
dueDate: "2023-11-15",
|
|
718
|
-
assignee: {
|
|
719
|
-
"/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
})
|
|
723
|
-
}
|
|
724
|
-
})
|
|
725
|
-
};
|
|
726
577
|
export {
|
|
727
578
|
MemoryNetworkManagerProvider,
|
|
728
579
|
TestAdapter,
|
|
729
580
|
TestAgent,
|
|
730
581
|
TestAgentBuilder,
|
|
731
|
-
test_data_exports as TestData,
|
|
732
582
|
TestFeedBuilder,
|
|
733
583
|
TestReplicationNetwork,
|
|
734
584
|
TestReplicator,
|
|
735
585
|
TestReplicatorConnection,
|
|
736
|
-
test_schema_exports as TestSchema,
|
|
737
586
|
WebsocketNetworkManagerProvider,
|
|
738
587
|
brokenAutomergeReplicatorFactory,
|
|
739
588
|
changeStorageVersionInMetadata,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/testing/change-metadata.ts", "../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.ts", "../../../../src/testing/test-network-adapter.ts", "../../../../src/testing/test-replicator.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { log } from '@dxos/log';\nimport { schema } from '@dxos/protocols/proto';\nimport type { Storage } from '@dxos/random-access-storage';\n\nimport { MetadataStore } from '../metadata';\n\nconst EchoMetadata = schema.getCodecForType('dxos.echo.metadata.EchoMetadata');\n\n/**\n * This function will change the storage version in the metadata.\n * This will break your storage and make it unusable.\n * Use this only for testing purposes.\n */\nexport const changeStorageVersionInMetadata = async (storage: Storage, version: number) => {\n log('Changing storage version in metadata. USE ONLY FOR TESTING.');\n const metadata = new MetadataStore(storage.createDirectory('metadata'));\n await metadata.load();\n const echoMetadata = metadata.metadata;\n echoMetadata.version = version;\n const file = metadata._directory.getOrCreateFile('EchoMetadata');\n await metadata._writeFile(file, EchoMetadata, echoMetadata);\n await metadata._directory.flush();\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Context } from '@dxos/context';\nimport { CredentialGenerator } from '@dxos/credentials';\nimport { type FeedStore } from '@dxos/feed-store';\nimport { type Keyring } from '@dxos/keyring';\nimport { PublicKey } from '@dxos/keys';\nimport { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';\nimport { MemoryTransportFactory, SwarmNetworkManager, createRtcTransportFactory } from '@dxos/network-manager';\nimport { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { type SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { AdmittedFeed } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { type Storage, StorageType, createStorage } from '@dxos/random-access-storage';\nimport { Gossip, Presence } from '@dxos/teleport-extension-gossip';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\nimport { ComplexMap } from '@dxos/util';\n\nimport { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, type Space, SpaceManager, SpaceProtocol } from '../space';\n\nimport { TestFeedBuilder } from './test-feed-builder';\n\nexport type NetworkManagerProvider = () => SwarmNetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new SwarmNetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory,\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new SwarmNetworkManager({\n signalManager: new WebsocketSignalManager([{ server: signalUrl }]),\n transportFactory: createRtcTransportFactory(),\n });\n\nexport type TestAgentBuilderOptions = {\n storage?: Storage;\n networkManagerProvider?: NetworkManagerProvider;\n};\n\n/**\n * Factory for test agents.\n */\nexport class TestAgentBuilder {\n private readonly _agents = new ComplexMap<PublicKey, TestAgent>(PublicKey.hash);\n private readonly _storage: Storage;\n private readonly _networkManagerProvider: NetworkManagerProvider;\n\n constructor({ storage, networkManagerProvider }: TestAgentBuilderOptions = {}) {\n this._storage = storage ?? createStorage({ type: StorageType.RAM });\n this._networkManagerProvider =\n networkManagerProvider ?? MemoryNetworkManagerProvider(new MemorySignalManagerContext());\n }\n\n async close() {\n return Promise.all(this.agents.map((agent) => agent.close()));\n }\n\n get agents() {\n return Array.from(this._agents.values());\n }\n\n getAgent(deviceKey: PublicKey): TestAgent | undefined {\n return this._agents.get(deviceKey);\n }\n\n async createPeer(): Promise<TestAgent> {\n // prettier-ignore\n const feedBuilder = new TestFeedBuilder()\n .setStorage(this._storage, `agent-${this._agents.size}`);\n\n const identityKey = await feedBuilder.keyring.createKey();\n const deviceKey = await feedBuilder.keyring.createKey();\n\n const agent = new TestAgent(this._networkManagerProvider, feedBuilder, identityKey, deviceKey);\n this._agents.set(deviceKey, agent);\n return agent;\n }\n}\n\n/**\n * Test agent that enables the creation and replication of multiple spaces.\n */\nexport class TestAgent {\n private readonly _spaces = new ComplexMap<PublicKey, Space>(PublicKey.hash);\n\n public readonly storage: Storage;\n public readonly keyring: Keyring;\n public readonly feedStore: FeedStore<FeedMessage>;\n\n private _metadataStore?: MetadataStore;\n get metadataStore() {\n return (this._metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n private _blobStore?: BlobStore;\n get blobStore() {\n return (this._blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n constructor(\n private readonly _networkManagerProvider: NetworkManagerProvider,\n private readonly _feedBuilder: TestFeedBuilder,\n public readonly identityKey: PublicKey,\n public readonly deviceKey: PublicKey,\n ) {\n this.storage = this._feedBuilder.storage;\n this.keyring = this._feedBuilder.keyring;\n this.feedStore = this._feedBuilder.createFeedStore();\n }\n\n async close() {\n return Promise.all([...this.spaces.map((space) => space.close())]);\n }\n\n get spaces() {\n return Array.from(this._spaces.values());\n }\n\n getSpace(spaceKey: PublicKey): Space | undefined {\n return this._spaces.get(spaceKey);\n }\n\n private _networkManager?: SwarmNetworkManager;\n get networkManager() {\n if (this._networkManager) {\n return this._networkManager;\n }\n\n this._networkManager = this._networkManagerProvider();\n this._networkManager.setPeerInfo({ peerKey: this.deviceKey.toHex(), identityKey: this.identityKey.toHex() });\n\n return this._networkManager;\n }\n\n private _spaceManager?: SpaceManager;\n get spaceManager() {\n return (this._spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n blobStore: this.blobStore,\n }));\n }\n\n async createSpace(\n identityKey: PublicKey = this.identityKey,\n spaceKey?: PublicKey,\n genesisKey?: PublicKey,\n dataKey?: PublicKey,\n saveMetadata = false,\n ): Promise<Space> {\n if (!spaceKey) {\n saveMetadata = true;\n spaceKey = await this.keyring.createKey();\n }\n if (!genesisKey) {\n genesisKey = await this.keyring.createKey();\n }\n\n const controlFeed = await this.feedStore.openFeed(genesisKey, { writable: true });\n const dataFeed = await this.feedStore.openFeed(dataKey ?? (await this.keyring.createKey()), {\n writable: true,\n sparse: true,\n });\n\n const metadata: SpaceMetadata = {\n key: spaceKey,\n genesisFeedKey: genesisKey,\n controlFeedKey: controlFeed.key,\n dataFeedKey: dataFeed.key,\n };\n if (saveMetadata) {\n await this.metadataStore.addSpace(metadata);\n }\n\n await this.spaceManager.open();\n const space = await this.spaceManager.constructSpace({\n metadata,\n swarmIdentity: {\n identityKey: this.identityKey,\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n memberKey: identityKey,\n onAuthorizedConnection: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n this.createGossip().createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n onDelegatedInvitationStatusChange: async () => {},\n onMemberRolesChanged: async () => {},\n });\n await space.setControlFeed(controlFeed);\n await space.setDataFeed(dataFeed);\n\n await space.open(new Context());\n\n this._spaces.set(spaceKey, space);\n return space;\n }\n\n createSpaceProtocol(topic: PublicKey, gossip?: Gossip): SpaceProtocol {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n identityKey: this.identityKey,\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER,\n },\n networkManager: this.networkManager,\n blobStore: this.blobStore,\n onSessionAuth: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.gossip',\n (gossip ?? this.createGossip()).createExtension({ remotePeerId: session.remotePeerId }),\n );\n },\n });\n }\n\n createGossip(): Gossip {\n return new Gossip({\n localPeerId: this.deviceKey,\n });\n }\n\n createPresence(gossip?: Gossip): Presence {\n return new Presence({\n announceInterval: 30,\n offlineTimeout: 200,\n identityKey: this.identityKey,\n gossip: gossip ?? this.createGossip(),\n });\n }\n\n async spaceGenesis(space: Space): Promise<void> {\n const generator = new CredentialGenerator(this.keyring, this.identityKey, this.deviceKey);\n const credentials = [\n ...(await generator.createSpaceGenesis(space.key, space.controlFeedKey!)),\n await generator.createFeedAdmission(space.key, space.dataFeedKey!, AdmittedFeed.Designation.DATA),\n await generator.createEpochCredential(space.key),\n ];\n\n for (const credential of credentials) {\n await space.controlPipeline.writer.write({\n credential: { credential },\n });\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { TestBuilder } from '@dxos/feed-store/testing';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\n\nimport { valueEncoding } from '../common';\n\n/**\n * Builder with default encoder and generator.\n */\nexport class TestFeedBuilder extends TestBuilder<FeedMessage> {\n constructor() {\n super({\n valueEncoding,\n });\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Message, NetworkAdapter, type PeerId } from '@automerge/automerge-repo';\n\nimport { Trigger, sleep } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nexport type TestConnectionStateProvider = () => 'on' | 'off';\n\nexport class TestAdapter extends NetworkAdapter {\n static createPair(\n connectionStateProvider: TestConnectionStateProvider = () => 'on',\n onMessage?: (message: Message) => void,\n ): TestAdapter[] {\n const adapter1: TestAdapter = new TestAdapter({\n send: (message: Message) => {\n onMessage?.(message);\n if (connectionStateProvider() === 'on') {\n void sleep(10).then(() => adapter2.receive(message));\n }\n },\n });\n const adapter2: TestAdapter = new TestAdapter({\n send: (message: Message) => {\n onMessage?.(message);\n if (connectionStateProvider() === 'on') {\n void sleep(10).then(() => adapter1.receive(message));\n }\n },\n });\n\n return [adapter1, adapter2];\n }\n\n public onConnect = new Trigger();\n\n constructor(private readonly _params: { send: (message: Message) => void }) {\n super();\n }\n\n override isReady(): boolean {\n return true;\n }\n\n override whenReady(): Promise<void> {\n return Promise.resolve();\n }\n\n override connect(peerId: PeerId): void {\n this.peerId = peerId;\n this.onConnect.wake();\n }\n\n peerCandidate(peerId: PeerId): void {\n invariant(peerId, 'PeerId is required');\n this.emit('peer-candidate', { peerId, peerMetadata: {} });\n }\n\n peerDisconnected(peerId: PeerId): void {\n invariant(peerId, 'PeerId is required');\n this.emit('peer-disconnected', { peerId });\n }\n\n override send(message: Message): void {\n log('send', { from: message.senderId, to: message.targetId, type: message.type });\n this._params.send(message);\n }\n\n override disconnect(): void {\n this.peerId = undefined;\n }\n\n receive(message: Message): void {\n invariant(this.peerId, 'Peer id is not set');\n this.emit('message', message);\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { sleep, synchronized } from '@dxos/async';\nimport { type Context, LifecycleState, Resource } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport type { AutomergeProtocolMessage } from '@dxos/protocols';\nimport * as TeleportAutomergeReplicator from '@dxos/teleport-extension-automerge-replicator';\n\nimport type {\n AutomergeReplicator,\n AutomergeReplicatorConnection,\n AutomergeReplicatorContext,\n ShouldAdvertiseProps,\n ShouldSyncCollectionProps,\n} from '../automerge';\n\nexport type TestReplicatorNetworkOptions = {\n latency?: number;\n};\n\nexport class TestReplicationNetwork extends Resource {\n private readonly _replicators = new Set<TestReplicator>();\n private readonly _latency?: number = undefined;\n\n constructor(options: TestReplicatorNetworkOptions = {}) {\n super();\n this._latency = options.latency;\n }\n\n protected override async _close(_ctx: Context): Promise<void> {\n for (const replicator of this._replicators) {\n for (const connection of replicator.connections) {\n void connection.writable.abort();\n void connection.readable.cancel();\n }\n }\n }\n\n async createReplicator(): Promise<TestReplicator> {\n const replicator = new TestReplicator({\n onConnect: async () => {\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._connectReplicator(replicator);\n },\n onDisconnect: async () => {\n invariant(this._lifecycleState === LifecycleState.OPEN);\n await this._disconnectReplicator(replicator);\n },\n });\n this._replicators.add(replicator);\n return replicator;\n }\n\n @synchronized\n private async _connectReplicator(replicator: TestReplicator): Promise<void> {\n for (const otherReplicator of this._replicators.values()) {\n if (otherReplicator === replicator || !otherReplicator.connected) {\n continue;\n }\n log('create connection', { from: replicator.context!.peerId, to: otherReplicator.context!.peerId });\n const [connection1, connection2] = this._createConnectionPair(\n replicator.context!.peerId,\n otherReplicator.context!.peerId,\n );\n await replicator.context!.onConnectionOpen(connection1);\n await otherReplicator.context!.onConnectionOpen(connection2);\n }\n }\n\n private async _disconnectReplicator(replicator: TestReplicator): Promise<void> {\n for (const connection of replicator.connections) {\n await replicator.context!.onConnectionClosed(connection);\n await connection.otherSide!.owningReplicator!.removeConnection(connection.otherSide!);\n }\n }\n\n private _createConnectionPair(peer1: string, peer2: string): [TestReplicatorConnection, TestReplicatorConnection] {\n const LOG = false;\n\n const forward = new TransformStream({\n transform: async (message, controller) => {\n if (LOG) {\n log('replicate', { from: peer1, to: peer2, message });\n }\n\n if (this._latency !== undefined) {\n await sleep(this._latency);\n }\n\n controller.enqueue(message);\n },\n });\n const backwards = new TransformStream({\n transform: async (message, controller) => {\n if (LOG) {\n log('replicate', { from: peer2, to: peer1, message });\n }\n\n if (this._latency !== undefined) {\n await sleep(this._latency);\n }\n\n controller.enqueue(message);\n },\n });\n\n const connection1 = new TestReplicatorConnection(peer2, backwards.readable, forward.writable);\n const connection2 = new TestReplicatorConnection(peer1, forward.readable, backwards.writable);\n connection1.otherSide = connection2;\n connection2.otherSide = connection1;\n return [connection1, connection2];\n }\n}\n\ntype TestReplicatorProps = {\n onConnect: () => Promise<void>;\n onDisconnect: () => Promise<void>;\n};\n\nexport class TestReplicator implements AutomergeReplicator {\n constructor(private readonly _params: TestReplicatorProps) {}\n\n public connected = false;\n public context: AutomergeReplicatorContext | undefined = undefined;\n public connections = new Set<TestReplicatorConnection>();\n\n async connect(context: AutomergeReplicatorContext): Promise<void> {\n log('connect', { peerId: context.peerId });\n this.context = context;\n this.connected = true;\n await this._params.onConnect();\n }\n\n async disconnect(): Promise<void> {\n log('disconnect', { peerId: this.context!.peerId });\n this.connected = false;\n await this._params.onDisconnect();\n }\n\n async addConnection(connection: TestReplicatorConnection): Promise<void> {\n connection.owningReplicator = this;\n this.connections.add(connection);\n this.context!.onConnectionOpen(connection);\n }\n\n async removeConnection(connection: TestReplicatorConnection): Promise<void> {\n connection.owningReplicator = undefined;\n this.context!.onConnectionClosed(connection);\n this.connections.delete(connection);\n }\n}\n\nexport class TestReplicatorConnection implements AutomergeReplicatorConnection {\n public otherSide: TestReplicatorConnection | undefined = undefined;\n public owningReplicator: TestReplicator | undefined = undefined;\n\n constructor(\n public readonly peerId: string,\n public readonly readable: ReadableStream<AutomergeProtocolMessage>,\n public readonly writable: WritableStream<AutomergeProtocolMessage>,\n ) {}\n\n get bundleSyncEnabled(): boolean {\n return false;\n }\n\n async shouldAdvertise(_params: ShouldAdvertiseProps): Promise<boolean> {\n return true;\n }\n\n shouldSyncCollection(_params: ShouldSyncCollectionProps): boolean {\n return true;\n }\n}\n\nexport const testAutomergeReplicatorFactory: TeleportAutomergeReplicator.AutomergeReplicatorFactory = (params) => {\n return new TeleportAutomergeReplicator.AutomergeReplicator(\n {\n ...params[0],\n sendSyncRetryPolicy: {\n retryBackoff: 20,\n retriesBeforeBackoff: 2,\n maxRetries: 3,\n },\n },\n params[1],\n );\n};\n\nexport const brokenAutomergeReplicatorFactory: TeleportAutomergeReplicator.AutomergeReplicatorFactory = (params) => {\n params[1]!.onSyncMessage = () => {\n throw new Error();\n };\n\n return testAutomergeReplicatorFactory(params);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["log", "schema", "EchoMetadata", "schema", "getCodecForType", "changeStorageVersionInMetadata", "storage", "version", "log", "metadata", "MetadataStore", "createDirectory", "load", "echoMetadata", "file", "_directory", "getOrCreateFile", "_writeFile", "flush", "Context", "CredentialGenerator", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "MemoryTransportFactory", "SwarmNetworkManager", "createRtcTransportFactory", "AdmittedFeed", "StorageType", "createStorage", "Gossip", "Presence", "BlobStore", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "SwarmNetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "server", "createRtcTransportFactory", "TestAgentBuilder", "_agents", "ComplexMap", "PublicKey", "hash", "_storage", "_networkManagerProvider", "storage", "networkManagerProvider", "createStorage", "type", "StorageType", "RAM", "MemorySignalManagerContext", "close", "Promise", "all", "agents", "map", "agent", "Array", "from", "values", "getAgent", "deviceKey", "get", "createPeer", "feedBuilder", "TestFeedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "_spaces", "feedStore", "_metadataStore", "metadataStore", "MetadataStore", "createDirectory", "_blobStore", "blobStore", "BlobStore", "_feedBuilder", "createFeedStore", "spaces", "space", "getSpace", "spaceKey", "_networkManager", "networkManager", "setPeerInfo", "peerKey", "toHex", "_spaceManager", "spaceManager", "SpaceManager", "createSpace", "genesisKey", "dataKey", "saveMetadata", "controlFeed", "openFeed", "writable", "dataFeed", "sparse", "metadata", "key", "genesisFeedKey", "controlFeedKey", "dataFeedKey", "addSpace", "open", "constructSpace", "swarmIdentity", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "memberKey", "onAuthorizedConnection", "session", "addExtension", "createGossip", "createExtension", "remotePeerId", "onDelegatedInvitationStatusChange", "onMemberRolesChanged", "setControlFeed", "setDataFeed", "Context", "createSpaceProtocol", "topic", "gossip", "SpaceProtocol", "onSessionAuth", "Gossip", "localPeerId", "createPresence", "Presence", "announceInterval", "offlineTimeout", "spaceGenesis", "generator", "CredentialGenerator", "credentials", "createSpaceGenesis", "createFeedAdmission", "AdmittedFeed", "Designation", "DATA", "createEpochCredential", "credential", "controlPipeline", "writer", "write", "NetworkAdapter", "Trigger", "sleep", "invariant", "log", "TestAdapter", "createPair", "connectionStateProvider", "onMessage", "adapter1", "send", "message", "then", "adapter2", "receive", "onConnect", "_params", "isReady", "whenReady", "Promise", "resolve", "connect", "peerId", "wake", "peerCandidate", "emit", "peerMetadata", "peerDisconnected", "from", "senderId", "to", "targetId", "type", "disconnect", "undefined", "sleep", "synchronized", "LifecycleState", "Resource", "invariant", "log", "TeleportAutomergeReplicator", "TestReplicationNetwork", "_replicators", "Set", "_latency", "undefined", "options", "latency", "_close", "_ctx", "replicator", "connection", "connections", "writable", "abort", "readable", "cancel", "createReplicator", "TestReplicator", "onConnect", "_lifecycleState", "OPEN", "_connectReplicator", "onDisconnect", "_disconnectReplicator", "add", "otherReplicator", "values", "connected", "from", "context", "peerId", "to", "connection1", "connection2", "_createConnectionPair", "onConnectionOpen", "onConnectionClosed", "otherSide", "owningReplicator", "removeConnection", "peer1", "peer2", "LOG", "forward", "TransformStream", "transform", "message", "controller", "enqueue", "backwards", "TestReplicatorConnection", "_params", "connect", "disconnect", "addConnection", "delete", "bundleSyncEnabled", "shouldAdvertise", "shouldSyncCollection", "testAutomergeReplicatorFactory", "params", "AutomergeReplicator", "sendSyncRetryPolicy", "retryBackoff", "retriesBeforeBackoff", "maxRetries", "brokenAutomergeReplicatorFactory", "onSyncMessage", "Error"]
|
|
7
|
+
}
|