@dxos/echo-pipeline 0.1.31-next.ea8f0bc → 0.1.32-next.77d513e

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.
Files changed (49) hide show
  1. package/dist/lib/browser/{chunk-L44NG4N6.mjs → chunk-EM5HSJ7J.mjs} +192 -122
  2. package/dist/lib/browser/chunk-EM5HSJ7J.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3 -5
  4. package/dist/lib/browser/index.mjs.map +1 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +34 -17
  7. package/dist/lib/browser/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/index.cjs +189 -120
  9. package/dist/lib/node/index.cjs.map +4 -4
  10. package/dist/lib/node/meta.json +1 -1
  11. package/dist/lib/node/testing/index.cjs +175 -119
  12. package/dist/lib/node/testing/index.cjs.map +4 -4
  13. package/dist/types/src/dbhost/data-service-host.d.ts.map +1 -1
  14. package/dist/types/src/dbhost/database-backend.d.ts +2 -2
  15. package/dist/types/src/dbhost/database-backend.d.ts.map +1 -1
  16. package/dist/types/src/metadata/metadata-store.d.ts +1 -2
  17. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  18. package/dist/types/src/pipeline/pipeline.d.ts +10 -1
  19. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  20. package/dist/types/src/space/{data-pipeline-controller.d.ts → data-pipeline.d.ts} +10 -18
  21. package/dist/types/src/space/data-pipeline.d.ts.map +1 -0
  22. package/dist/types/src/space/genesis.d.ts.map +1 -1
  23. package/dist/types/src/space/index.d.ts +1 -1
  24. package/dist/types/src/space/index.d.ts.map +1 -1
  25. package/dist/types/src/space/space.d.ts +6 -4
  26. package/dist/types/src/space/space.d.ts.map +1 -1
  27. package/dist/types/src/testing/test-agent-builder.d.ts +6 -5
  28. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  29. package/dist/types/src/testing/util.d.ts +2 -2
  30. package/dist/types/src/testing/util.d.ts.map +1 -1
  31. package/package.json +29 -29
  32. package/src/dbhost/data-service-host.ts +19 -25
  33. package/src/dbhost/database-backend.ts +1 -1
  34. package/src/metadata/metadata-store.ts +1 -2
  35. package/src/pipeline/pipeline.test.ts +12 -4
  36. package/src/pipeline/pipeline.ts +18 -3
  37. package/src/space/{data-pipeline-controller.ts → data-pipeline.ts} +62 -39
  38. package/src/space/genesis.ts +47 -7
  39. package/src/space/index.ts +1 -1
  40. package/src/space/space-protocol.browser.test.ts +8 -6
  41. package/src/space/space-protocol.test.ts +8 -6
  42. package/src/space/space.ts +22 -23
  43. package/src/testing/database-test-rig.ts +1 -1
  44. package/src/testing/test-agent-builder.ts +23 -11
  45. package/src/testing/util.ts +13 -12
  46. package/src/tests/database-unit.test.ts +25 -0
  47. package/src/tests/database.test.ts +5 -5
  48. package/dist/lib/browser/chunk-L44NG4N6.mjs.map +0 -7
  49. package/dist/types/src/space/data-pipeline-controller.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import "@dxos/node-std/globals"
2
2
  import {
3
- DataPipelineControllerImpl,
3
+ DataPipeline,
4
4
  DataServiceImpl,
5
5
  DataServiceSubscriptions,
6
6
  DatabaseBackendHost,
@@ -13,7 +13,7 @@ import {
13
13
  SpaceManager,
14
14
  SpaceProtocol,
15
15
  valueEncoding
16
- } from "../chunk-L44NG4N6.mjs";
16
+ } from "../chunk-EM5HSJ7J.mjs";
17
17
 
18
18
  // packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts
19
19
  import { DocumentModel } from "@dxos/document-model";
@@ -22,7 +22,7 @@ import { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager
22
22
  import { ModelFactory } from "@dxos/model-factory";
23
23
  import { createWebRTCTransportFactory, MemoryTransportFactory, NetworkManager } from "@dxos/network-manager";
24
24
  import { createStorage, StorageType } from "@dxos/random-access-storage";
25
- import { Presence } from "@dxos/teleport-extension-presence";
25
+ import { Gossip, Presence } from "@dxos/teleport-extension-gossip";
26
26
  import { ComplexMap } from "@dxos/util";
27
27
 
28
28
  // packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts
@@ -117,7 +117,7 @@ var TestAgent = class {
117
117
  await metadataStore.addSpace({
118
118
  key: spaceKey
119
119
  });
120
- const dataPipelineController = new DataPipelineControllerImpl({
120
+ const dataPipelineController = new DataPipeline({
121
121
  modelFactory: new ModelFactory().registerModel(DocumentModel),
122
122
  metadataStore,
123
123
  snapshotManager,
@@ -133,14 +133,22 @@ var TestAgent = class {
133
133
  feedProvider: (feedKey) => this.feedStore.openFeed(feedKey)
134
134
  }).setControlFeed(controlFeed).setDataFeed(dataFeed);
135
135
  await space.open();
136
- await space.initDataPipeline(dataPipelineController);
136
+ await dataPipelineController.open({
137
+ openPipeline: async (start) => {
138
+ const pipeline = await space.createDataPipeline({
139
+ start
140
+ });
141
+ await pipeline.start();
142
+ return pipeline;
143
+ }
144
+ });
137
145
  this._spaces.set(spaceKey, space);
138
146
  return [
139
147
  space,
140
148
  dataPipelineController
141
149
  ];
142
150
  }
143
- createSpaceProtocol(topic, presence) {
151
+ createSpaceProtocol(topic, gossip) {
144
152
  return new SpaceProtocol({
145
153
  topic,
146
154
  swarmIdentity: {
@@ -150,18 +158,23 @@ var TestAgent = class {
150
158
  },
151
159
  networkManager: this._networkManagerProvider(),
152
160
  onSessionAuth: (session) => {
153
- session.addExtension("dxos.mesh.teleport.presence", (presence != null ? presence : this.createPresence()).createExtension({
161
+ session.addExtension("dxos.mesh.teleport.gossip", (gossip != null ? gossip : this.createGossip()).createExtension({
154
162
  remotePeerId: session.remotePeerId
155
163
  }));
156
164
  }
157
165
  });
158
166
  }
159
- createPresence() {
167
+ createGossip() {
168
+ return new Gossip({
169
+ localPeerId: this.deviceKey
170
+ });
171
+ }
172
+ createPresence(gossip) {
160
173
  return new Presence({
161
- localPeerId: this.deviceKey,
162
174
  announceInterval: 30,
163
175
  offlineTimeout: 200,
164
- identityKey: this.identityKey
176
+ identityKey: this.identityKey,
177
+ gossip: gossip != null ? gossip : this.createGossip()
165
178
  });
166
179
  }
167
180
  };
@@ -178,7 +191,7 @@ var createMemoryDatabase = async (modelFactory) => {
178
191
  const feed = new MockFeedWriter();
179
192
  const backend = new DatabaseBackendHost(feed, void 0);
180
193
  feed.written.on(([data, meta]) => backend.echoProcessor({
181
- data: data.object,
194
+ batch: data.batch,
182
195
  meta: {
183
196
  ...meta,
184
197
  memberKey: PublicKey2.random(),
@@ -214,14 +227,18 @@ var testLocalDatabase = async (create, check = create) => {
214
227
  var _a;
215
228
  const objectId = PublicKey2.random().toHex();
216
229
  await ((_a = create.databaseBackend.getWriteStream()) == null ? void 0 : _a.write({
217
- object: {
218
- objectId,
219
- genesis: {
220
- modelType: DocumentModel2.meta.type
221
- }
230
+ batch: {
231
+ objects: [
232
+ {
233
+ objectId,
234
+ genesis: {
235
+ modelType: DocumentModel2.meta.type
236
+ }
237
+ }
238
+ ]
222
239
  }
223
240
  }));
224
- await asyncTimeout(check._itemManager.update.waitForCondition(() => check._itemManager.entities.has(objectId)), 500);
241
+ await asyncTimeout(check.databaseBackend._itemDemuxer.mutation.waitForCondition(() => check._itemManager.entities.has(objectId)), 500);
225
242
  };
226
243
  export {
227
244
  MemoryNetworkManagerProvider,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/test-agent-builder.ts", "../../../../src/testing/test-feed-builder.ts", "../../../../src/testing/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { DocumentModel } from '@dxos/document-model';\nimport { FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { PublicKey } from '@dxos/keys';\nimport { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { createWebRTCTransportFactory, MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { createStorage, Storage, StorageType } from '@dxos/random-access-storage';\nimport { Presence } from '@dxos/teleport-extension-presence';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SnapshotManager, SnapshotStore } from '../dbhost';\nimport { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, Space, SpaceManager, SpaceProtocol } from '../space';\nimport { DataPipelineControllerImpl } from '../space/data-pipeline-controller';\nimport { TestFeedBuilder } from './test-feed-builder';\n\nexport type NetworkManagerProvider = () => NetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new WebsocketSignalManager([signalUrl]),\n transportFactory: createWebRTCTransportFactory()\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) {\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 keyring: Keyring;\n public readonly feedStore: FeedStore<FeedMessage>;\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.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) {\n return this._spaces.get(spaceKey);\n }\n\n createSpaceManager() {\n return new SpaceManager({\n feedStore: this._feedBuilder.createFeedStore(),\n networkManager: this._networkManagerProvider()\n });\n }\n\n async createSpace(\n identityKey: PublicKey = this.identityKey,\n spaceKey?: PublicKey,\n genesisKey?: PublicKey\n ): Promise<[Space, DataPipelineControllerImpl]> {\n if (!spaceKey) {\n spaceKey = await this.keyring.createKey();\n }\n\n const dataFeedKey = await this.keyring.createKey();\n const dataFeed = await this.feedStore.openFeed(dataFeedKey, { writable: true });\n\n const controlFeedKey = await this.keyring.createKey();\n const controlFeed = await this.feedStore.openFeed(controlFeedKey, { writable: true });\n const genesisFeed = genesisKey ? await this.feedStore.openFeed(genesisKey) : controlFeed;\n const snapshotManager = new SnapshotManager(new SnapshotStore(createStorage().createDirectory('snapshots')));\n\n const metadataStore = new MetadataStore(createStorage().createDirectory('metadata'));\n await metadataStore.addSpace({ key: spaceKey });\n const dataPipelineController: DataPipelineControllerImpl = new DataPipelineControllerImpl({\n modelFactory: new ModelFactory().registerModel(DocumentModel),\n metadataStore,\n snapshotManager,\n memberKey: identityKey,\n spaceKey,\n feedInfoProvider: (feedKey) => space.spaceState.feeds.get(feedKey),\n snapshotId: undefined\n });\n const space = new Space({\n spaceKey,\n protocol: this.createSpaceProtocol(spaceKey),\n genesisFeed,\n feedProvider: (feedKey) => this.feedStore.openFeed(feedKey)\n })\n .setControlFeed(controlFeed)\n .setDataFeed(dataFeed);\n await space.open();\n await space.initDataPipeline(dataPipelineController);\n\n this._spaces.set(spaceKey, space);\n return [space, dataPipelineController];\n }\n\n createSpaceProtocol(topic: PublicKey, presence?: Presence) {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER\n },\n networkManager: this._networkManagerProvider(),\n onSessionAuth: (session) => {\n session.addExtension(\n 'dxos.mesh.teleport.presence',\n (presence ?? this.createPresence()).createExtension({ remotePeerId: session.remotePeerId })\n );\n }\n });\n }\n\n createPresence() {\n return new Presence({\n localPeerId: this.deviceKey,\n announceInterval: 30,\n offlineTimeout: 200,\n identityKey: this.identityKey\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 2021 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseBackendProxy, ItemManager } from '@dxos/echo-db';\nimport { MockFeedWriter } from '@dxos/feed-store/testing';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { DataMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { DatabaseBackendHost, DataServiceHost, DataServiceImpl, DataServiceSubscriptions } from '../dbhost';\nimport { DataPipelineControllerImpl } from '../space';\n\nexport const createMemoryDatabase = async (modelFactory: ModelFactory) => {\n const feed = new MockFeedWriter<DataMessage>();\n const backend = new DatabaseBackendHost(feed, undefined);\n\n feed.written.on(([data, meta]) =>\n backend.echoProcessor({\n data: data.object,\n meta: {\n ...meta,\n memberKey: PublicKey.random(),\n timeframe: new Timeframe([[meta.feedKey, meta.seq]])\n }\n })\n );\n\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n backend,\n itemManager\n };\n};\n\nexport const createRemoteDatabaseFromDataServiceHost = async (\n modelFactory: ModelFactory,\n dataServiceHost: DataServiceHost\n) => {\n const dataServiceSubscriptions = new DataServiceSubscriptions();\n const dataService = new DataServiceImpl(dataServiceSubscriptions);\n\n const spaceKey = PublicKey.random();\n dataServiceSubscriptions.registerSpace(spaceKey, dataServiceHost);\n\n const backend = new DatabaseBackendProxy(dataService, spaceKey);\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n itemManager,\n backend\n };\n};\n\nexport const testLocalDatabase = async (\n create: DataPipelineControllerImpl,\n check: DataPipelineControllerImpl = create\n) => {\n const objectId = PublicKey.random().toHex();\n await create.databaseBackend!.getWriteStream()?.write({\n object: {\n objectId,\n genesis: {\n modelType: DocumentModel.meta.type\n }\n }\n });\n\n await asyncTimeout(\n check._itemManager.update.waitForCondition(() => check._itemManager.entities.has(objectId)),\n 500\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["DocumentModel", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "ModelFactory", "createWebRTCTransportFactory", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "Presence", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "createWebRTCTransportFactory", "TestAgentBuilder", "constructor", "storage", "networkManagerProvider", "_agents", "ComplexMap", "PublicKey", "hash", "_storage", "createStorage", "type", "StorageType", "RAM", "_networkManagerProvider", "MemorySignalManagerContext", "close", "Promise", "all", "agents", "map", "agent", "Array", "from", "values", "getAgent", "deviceKey", "get", "createPeer", "feedBuilder", "TestFeedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "_feedBuilder", "_spaces", "feedStore", "createFeedStore", "spaces", "space", "getSpace", "spaceKey", "createSpaceManager", "SpaceManager", "networkManager", "createSpace", "genesisKey", "dataFeedKey", "dataFeed", "openFeed", "writable", "controlFeedKey", "controlFeed", "genesisFeed", "snapshotManager", "SnapshotManager", "SnapshotStore", "createDirectory", "metadataStore", "MetadataStore", "addSpace", "key", "dataPipelineController", "DataPipelineControllerImpl", "modelFactory", "ModelFactory", "registerModel", "DocumentModel", "memberKey", "feedInfoProvider", "feedKey", "spaceState", "feeds", "snapshotId", "undefined", "Space", "protocol", "createSpaceProtocol", "feedProvider", "setControlFeed", "setDataFeed", "open", "initDataPipeline", "topic", "presence", "SpaceProtocol", "swarmIdentity", "peerKey", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "onSessionAuth", "session", "addExtension", "createPresence", "createExtension", "remotePeerId", "Presence", "localPeerId", "announceInterval", "offlineTimeout", "asyncTimeout", "DocumentModel", "DatabaseBackendProxy", "ItemManager", "MockFeedWriter", "PublicKey", "ModelFactory", "Timeframe", "createMemoryDatabase", "modelFactory", "feed", "MockFeedWriter", "backend", "DatabaseBackendHost", "undefined", "written", "on", "data", "meta", "echoProcessor", "object", "memberKey", "PublicKey", "random", "timeframe", "Timeframe", "feedKey", "seq", "itemManager", "ItemManager", "open", "ModelFactory", "registerModel", "DocumentModel", "createRemoteDatabaseFromDataServiceHost", "dataServiceHost", "dataServiceSubscriptions", "DataServiceSubscriptions", "dataService", "DataServiceImpl", "spaceKey", "registerSpace", "DatabaseBackendProxy", "testLocalDatabase", "create", "check", "objectId", "toHex", "databaseBackend", "getWriteStream", "write", "genesis", "modelType", "type", "asyncTimeout", "_itemManager", "update", "waitForCondition", "entities", "has"]
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { DocumentModel } from '@dxos/document-model';\nimport { FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { PublicKey } from '@dxos/keys';\nimport { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { createWebRTCTransportFactory, MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { createStorage, Storage, StorageType } from '@dxos/random-access-storage';\nimport { Gossip, Presence } from '@dxos/teleport-extension-gossip';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SnapshotManager, SnapshotStore } from '../dbhost';\nimport { MetadataStore } from '../metadata';\nimport { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, Space, SpaceManager, SpaceProtocol } from '../space';\nimport { DataPipeline } from '../space/data-pipeline';\nimport { TestFeedBuilder } from './test-feed-builder';\n\nexport type NetworkManagerProvider = () => NetworkManager;\n\nexport const MemoryNetworkManagerProvider =\n (signalContext: MemorySignalManagerContext): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new MemorySignalManager(signalContext),\n transportFactory: MemoryTransportFactory\n });\n\nexport const WebsocketNetworkManagerProvider =\n (signalUrl: string): NetworkManagerProvider =>\n () =>\n new NetworkManager({\n signalManager: new WebsocketSignalManager([signalUrl]),\n transportFactory: createWebRTCTransportFactory()\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) {\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 keyring: Keyring;\n public readonly feedStore: FeedStore<FeedMessage>;\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.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) {\n return this._spaces.get(spaceKey);\n }\n\n createSpaceManager() {\n return new SpaceManager({\n feedStore: this._feedBuilder.createFeedStore(),\n networkManager: this._networkManagerProvider()\n });\n }\n\n async createSpace(\n identityKey: PublicKey = this.identityKey,\n spaceKey?: PublicKey,\n genesisKey?: PublicKey\n ): Promise<[Space, DataPipeline]> {\n if (!spaceKey) {\n spaceKey = await this.keyring.createKey();\n }\n\n const dataFeedKey = await this.keyring.createKey();\n const dataFeed = await this.feedStore.openFeed(dataFeedKey, { writable: true });\n\n const controlFeedKey = await this.keyring.createKey();\n const controlFeed = await this.feedStore.openFeed(controlFeedKey, { writable: true });\n const genesisFeed = genesisKey ? await this.feedStore.openFeed(genesisKey) : controlFeed;\n const snapshotManager = new SnapshotManager(new SnapshotStore(createStorage().createDirectory('snapshots')));\n\n const metadataStore = new MetadataStore(createStorage().createDirectory('metadata'));\n await metadataStore.addSpace({ key: spaceKey });\n const dataPipelineController: DataPipeline = new DataPipeline({\n modelFactory: new ModelFactory().registerModel(DocumentModel),\n metadataStore,\n snapshotManager,\n memberKey: identityKey,\n spaceKey,\n feedInfoProvider: (feedKey) => space.spaceState.feeds.get(feedKey),\n snapshotId: undefined\n });\n const space = new Space({\n spaceKey,\n protocol: this.createSpaceProtocol(spaceKey),\n genesisFeed,\n feedProvider: (feedKey) => this.feedStore.openFeed(feedKey)\n })\n .setControlFeed(controlFeed)\n .setDataFeed(dataFeed);\n await space.open();\n await dataPipelineController.open({\n openPipeline: async (start) => {\n const pipeline = await space.createDataPipeline({ start });\n await pipeline.start();\n return pipeline;\n }\n });\n\n this._spaces.set(spaceKey, space);\n return [space, dataPipelineController];\n }\n\n createSpaceProtocol(topic: PublicKey, gossip?: Gossip) {\n return new SpaceProtocol({\n topic,\n swarmIdentity: {\n peerKey: this.deviceKey,\n credentialProvider: MOCK_AUTH_PROVIDER,\n credentialAuthenticator: MOCK_AUTH_VERIFIER\n },\n networkManager: this._networkManagerProvider(),\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() {\n return new Gossip({\n localPeerId: this.deviceKey\n });\n }\n\n createPresence(gossip?: Gossip) {\n return new Presence({\n announceInterval: 30,\n offlineTimeout: 200,\n identityKey: this.identityKey,\n gossip: gossip ?? this.createGossip()\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 2021 DXOS.org\n//\n\nimport { asyncTimeout } from '@dxos/async';\nimport { DocumentModel } from '@dxos/document-model';\nimport { DatabaseBackendProxy, ItemManager } from '@dxos/echo-db';\nimport { MockFeedWriter } from '@dxos/feed-store/testing';\nimport { PublicKey } from '@dxos/keys';\nimport { ModelFactory } from '@dxos/model-factory';\nimport { DataMessage } from '@dxos/protocols/proto/dxos/echo/feed';\nimport { Timeframe } from '@dxos/timeframe';\n\nimport { DatabaseBackendHost, DataServiceHost, DataServiceImpl, DataServiceSubscriptions } from '../dbhost';\nimport { DataPipeline } from '../space';\n\nexport const createMemoryDatabase = async (modelFactory: ModelFactory) => {\n const feed = new MockFeedWriter<DataMessage>();\n const backend = new DatabaseBackendHost(feed, undefined);\n\n feed.written.on(([data, meta]) =>\n backend.echoProcessor({\n batch: data.batch,\n meta: {\n ...meta,\n memberKey: PublicKey.random(),\n timeframe: new Timeframe([[meta.feedKey, meta.seq]])\n }\n })\n );\n\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n backend,\n itemManager\n };\n};\n\nexport const createRemoteDatabaseFromDataServiceHost = async (\n modelFactory: ModelFactory,\n dataServiceHost: DataServiceHost\n) => {\n const dataServiceSubscriptions = new DataServiceSubscriptions();\n const dataService = new DataServiceImpl(dataServiceSubscriptions);\n\n const spaceKey = PublicKey.random();\n dataServiceSubscriptions.registerSpace(spaceKey, dataServiceHost);\n\n const backend = new DatabaseBackendProxy(dataService, spaceKey);\n const itemManager = new ItemManager(modelFactory);\n await backend.open(itemManager, new ModelFactory().registerModel(DocumentModel));\n return {\n itemManager,\n backend\n };\n};\n\nexport const testLocalDatabase = async (create: DataPipeline, check: DataPipeline = create) => {\n const objectId = PublicKey.random().toHex();\n await create.databaseBackend!.getWriteStream()?.write({\n batch: {\n objects: [\n {\n objectId,\n genesis: {\n modelType: DocumentModel.meta.type\n }\n }\n ]\n }\n });\n\n await asyncTimeout(\n check.databaseBackend!._itemDemuxer.mutation.waitForCondition(() => check._itemManager.entities.has(objectId)),\n 500\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["DocumentModel", "PublicKey", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "ModelFactory", "createWebRTCTransportFactory", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "Gossip", "Presence", "ComplexMap", "TestBuilder", "TestFeedBuilder", "TestBuilder", "constructor", "valueEncoding", "MemoryNetworkManagerProvider", "signalContext", "NetworkManager", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "WebsocketNetworkManagerProvider", "signalUrl", "WebsocketSignalManager", "createWebRTCTransportFactory", "TestAgentBuilder", "constructor", "storage", "networkManagerProvider", "_agents", "ComplexMap", "PublicKey", "hash", "_storage", "createStorage", "type", "StorageType", "RAM", "_networkManagerProvider", "MemorySignalManagerContext", "close", "Promise", "all", "agents", "map", "agent", "Array", "from", "values", "getAgent", "deviceKey", "get", "createPeer", "feedBuilder", "TestFeedBuilder", "setStorage", "size", "identityKey", "keyring", "createKey", "TestAgent", "set", "_feedBuilder", "_spaces", "feedStore", "createFeedStore", "spaces", "space", "getSpace", "spaceKey", "createSpaceManager", "SpaceManager", "networkManager", "createSpace", "genesisKey", "dataFeedKey", "dataFeed", "openFeed", "writable", "controlFeedKey", "controlFeed", "genesisFeed", "snapshotManager", "SnapshotManager", "SnapshotStore", "createDirectory", "metadataStore", "MetadataStore", "addSpace", "key", "dataPipelineController", "DataPipeline", "modelFactory", "ModelFactory", "registerModel", "DocumentModel", "memberKey", "feedInfoProvider", "feedKey", "spaceState", "feeds", "snapshotId", "undefined", "Space", "protocol", "createSpaceProtocol", "feedProvider", "setControlFeed", "setDataFeed", "open", "openPipeline", "start", "pipeline", "createDataPipeline", "topic", "gossip", "SpaceProtocol", "swarmIdentity", "peerKey", "credentialProvider", "MOCK_AUTH_PROVIDER", "credentialAuthenticator", "MOCK_AUTH_VERIFIER", "onSessionAuth", "session", "addExtension", "createGossip", "createExtension", "remotePeerId", "Gossip", "localPeerId", "createPresence", "Presence", "announceInterval", "offlineTimeout", "asyncTimeout", "DocumentModel", "DatabaseBackendProxy", "ItemManager", "MockFeedWriter", "PublicKey", "ModelFactory", "Timeframe", "createMemoryDatabase", "modelFactory", "feed", "MockFeedWriter", "backend", "DatabaseBackendHost", "undefined", "written", "on", "data", "meta", "echoProcessor", "batch", "memberKey", "PublicKey", "random", "timeframe", "Timeframe", "feedKey", "seq", "itemManager", "ItemManager", "open", "ModelFactory", "registerModel", "DocumentModel", "createRemoteDatabaseFromDataServiceHost", "dataServiceHost", "dataServiceSubscriptions", "DataServiceSubscriptions", "dataService", "DataServiceImpl", "spaceKey", "registerSpace", "DatabaseBackendProxy", "testLocalDatabase", "create", "check", "objectId", "toHex", "databaseBackend", "getWriteStream", "write", "objects", "genesis", "modelType", "type", "asyncTimeout", "_itemDemuxer", "mutation", "waitForCondition", "_itemManager", "entities", "has"]
7
7
  }