@dxos/echo-pipeline 0.4.8-next.fff1521 → 0.4.9-main.1057b49

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 (64) hide show
  1. package/dist/lib/browser/{chunk-3FVT6KX6.mjs → chunk-RTEEJ723.mjs} +289 -1807
  2. package/dist/lib/browser/chunk-RTEEJ723.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +633 -14
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +4 -332
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/chunk-7VZVCCNF.cjs +1948 -0
  9. package/dist/lib/node/chunk-7VZVCCNF.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +643 -34
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +13 -338
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/types/src/db-host/data-service.d.ts +3 -13
  16. package/dist/types/src/db-host/data-service.d.ts.map +1 -1
  17. package/dist/types/src/db-host/index.d.ts +0 -2
  18. package/dist/types/src/db-host/index.d.ts.map +1 -1
  19. package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
  20. package/dist/types/src/space/index.d.ts +0 -1
  21. package/dist/types/src/space/index.d.ts.map +1 -1
  22. package/dist/types/src/space/space-manager.d.ts +1 -4
  23. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  24. package/dist/types/src/space/space.d.ts +1 -7
  25. package/dist/types/src/space/space.d.ts.map +1 -1
  26. package/dist/types/src/testing/index.d.ts +0 -2
  27. package/dist/types/src/testing/index.d.ts.map +1 -1
  28. package/dist/types/src/testing/test-agent-builder.d.ts +1 -3
  29. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  30. package/package.json +30 -33
  31. package/src/automerge/automerge-host.ts +1 -1
  32. package/src/db-host/data-service.ts +10 -56
  33. package/src/db-host/index.ts +0 -2
  34. package/src/space/control-pipeline.ts +3 -1
  35. package/src/space/index.ts +0 -1
  36. package/src/space/space-manager.ts +1 -13
  37. package/src/space/space.test.ts +2 -112
  38. package/src/space/space.ts +2 -60
  39. package/src/testing/index.ts +0 -2
  40. package/src/testing/test-agent-builder.ts +3 -8
  41. package/dist/lib/browser/chunk-3FVT6KX6.mjs.map +0 -7
  42. package/dist/lib/node/chunk-WZ4WTAN6.cjs +0 -3454
  43. package/dist/lib/node/chunk-WZ4WTAN6.cjs.map +0 -7
  44. package/dist/types/src/db-host/data-service-host.d.ts +0 -38
  45. package/dist/types/src/db-host/data-service-host.d.ts.map +0 -1
  46. package/dist/types/src/db-host/database-host.d.ts +0 -27
  47. package/dist/types/src/db-host/database-host.d.ts.map +0 -1
  48. package/dist/types/src/space/data-pipeline.d.ts +0 -80
  49. package/dist/types/src/space/data-pipeline.d.ts.map +0 -1
  50. package/dist/types/src/space/data-pipeline.test.d.ts +0 -1
  51. package/dist/types/src/space/data-pipeline.test.d.ts.map +0 -1
  52. package/dist/types/src/testing/database-test-rig.d.ts +0 -67
  53. package/dist/types/src/testing/database-test-rig.d.ts.map +0 -1
  54. package/dist/types/src/testing/util.d.ts +0 -14
  55. package/dist/types/src/testing/util.d.ts.map +0 -1
  56. package/dist/types/src/tests/database.test.d.ts +0 -2
  57. package/dist/types/src/tests/database.test.d.ts.map +0 -1
  58. package/src/db-host/data-service-host.ts +0 -233
  59. package/src/db-host/database-host.ts +0 -63
  60. package/src/space/data-pipeline.test.ts +0 -3
  61. package/src/space/data-pipeline.ts +0 -468
  62. package/src/testing/database-test-rig.ts +0 -289
  63. package/src/testing/util.ts +0 -85
  64. package/src/tests/database.test.ts +0 -100
@@ -2,22 +2,20 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { Event, synchronized, trackLeaks, Mutex } from '@dxos/async';
5
+ import { Event, Mutex, synchronized, trackLeaks } from '@dxos/async';
6
6
  import { type Context } from '@dxos/context';
7
7
  import { type FeedInfo } from '@dxos/credentials';
8
8
  import { type FeedOptions, type FeedWrapper } from '@dxos/feed-store';
9
9
  import { invariant } from '@dxos/invariant';
10
10
  import { type PublicKey } from '@dxos/keys';
11
11
  import { log, logInfo } from '@dxos/log';
12
- import { type ModelFactory } from '@dxos/model-factory';
13
12
  import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
14
13
  import { AdmittedFeed, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
15
14
  import { type Timeframe } from '@dxos/timeframe';
16
15
  import { trace } from '@dxos/tracing';
17
- import { type AsyncCallback, Callback } from '@dxos/util';
16
+ import { Callback, type AsyncCallback } from '@dxos/util';
18
17
 
19
18
  import { ControlPipeline } from './control-pipeline';
20
- import { DataPipeline } from './data-pipeline';
21
19
  import { type SpaceProtocol } from './space-protocol';
22
20
  import { type SnapshotManager } from '../db-host';
23
21
  import { type MetadataStore } from '../metadata';
@@ -31,7 +29,6 @@ export type SpaceParams = {
31
29
  protocol: SpaceProtocol;
32
30
  genesisFeed: FeedWrapper<FeedMessage>;
33
31
  feedProvider: FeedProvider;
34
- modelFactory: ModelFactory;
35
32
  metadataStore: MetadataStore;
36
33
  snapshotManager: SnapshotManager;
37
34
  memberKey: PublicKey;
@@ -65,9 +62,6 @@ export class Space {
65
62
  @trace.info()
66
63
  private readonly _controlPipeline: ControlPipeline;
67
64
 
68
- @trace.info()
69
- private readonly _dataPipeline: DataPipeline;
70
-
71
65
  private readonly _snapshotManager: SnapshotManager;
72
66
 
73
67
  private _isOpen = false;
@@ -93,17 +87,6 @@ export class Space {
93
87
  // Enable sparse replication to not download mutations covered by prior epochs.
94
88
  const sparse = info.assertion.designation === AdmittedFeed.Designation.DATA;
95
89
 
96
- if (info.assertion.designation === AdmittedFeed.Designation.DATA) {
97
- // We will add all existing data feeds when the data pipeline is initialized.
98
- queueMicrotask(async () => {
99
- if (this._dataPipeline.pipeline) {
100
- if (!this._dataPipeline.pipeline.hasFeed(info.key)) {
101
- return this._dataPipeline.pipeline.addFeed(await this._feedProvider(info.key, { sparse }));
102
- }
103
- }
104
- });
105
- }
106
-
107
90
  if (!info.key.equals(params.genesisFeed.key)) {
108
91
  queueMicrotask(async () => {
109
92
  this.protocol.addFeed(await params.feedProvider(info.key, { sparse }));
@@ -120,30 +103,6 @@ export class Space {
120
103
  // Start replicating the genesis feed.
121
104
  this.protocol = params.protocol;
122
105
  this.protocol.addFeed(params.genesisFeed);
123
-
124
- this._dataPipeline = new DataPipeline({
125
- modelFactory: params.modelFactory,
126
- metadataStore: params.metadataStore,
127
- snapshotManager: params.snapshotManager,
128
- memberKey: params.memberKey,
129
- spaceKey: this._key,
130
- feedInfoProvider: (feedKey) => this._controlPipeline.spaceState.feeds.get(feedKey),
131
- snapshotId: params.snapshotId,
132
- onPipelineCreated: async (pipeline) => {
133
- if (this._dataFeed) {
134
- pipeline.setWriteFeed(this._dataFeed);
135
- }
136
-
137
- // Add existing feeds.
138
- await this._addFeedMutex.executeSynchronized(async () => {
139
- for (const feed of this._controlPipeline.spaceState.feeds.values()) {
140
- if (feed.assertion.designation === AdmittedFeed.Designation.DATA && !pipeline.hasFeed(feed.key)) {
141
- await pipeline.addFeed(await this._feedProvider(feed.key, { sparse: true }));
142
- }
143
- }
144
- });
145
- },
146
- });
147
106
  }
148
107
 
149
108
  @logInfo
@@ -179,10 +138,6 @@ export class Space {
179
138
  return this._controlPipeline.pipeline;
180
139
  }
181
140
 
182
- get dataPipeline(): DataPipeline {
183
- return this._dataPipeline;
184
- }
185
-
186
141
  get snapshotManager(): SnapshotManager {
187
142
  return this._snapshotManager;
188
143
  }
@@ -197,8 +152,6 @@ export class Space {
197
152
  async setDataFeed(feed: FeedWrapper<FeedMessage>) {
198
153
  invariant(!this._dataFeed, 'Data feed already set.');
199
154
  this._dataFeed = feed;
200
- await this._dataPipeline.pipeline?.addFeed(feed);
201
- this._dataPipeline.pipeline?.setWriteFeed(feed);
202
155
  return this;
203
156
  }
204
157
 
@@ -226,7 +179,6 @@ export class Space {
226
179
  // Order is important.
227
180
  await this._controlPipeline.start();
228
181
  await this.protocol.start();
229
- await this._controlPipeline.spaceState.addCredentialProcessor(this._dataPipeline);
230
182
 
231
183
  this._isOpen = true;
232
184
  log('opened');
@@ -238,9 +190,6 @@ export class Space {
238
190
  if (!this._isOpen) {
239
191
  return;
240
192
  }
241
- await this._controlPipeline.spaceState.removeCredentialProcessor(this._dataPipeline);
242
-
243
- await this._dataPipeline.close();
244
193
 
245
194
  // Closes in reverse order to open.
246
195
  await this.protocol.stop();
@@ -249,11 +198,4 @@ export class Space {
249
198
  this._isOpen = false;
250
199
  log('closed');
251
200
  }
252
-
253
- @synchronized
254
- async initializeDataPipeline() {
255
- log('initializeDataPipeline');
256
- invariant(this._isOpen, 'Space must be open to initialize data pipeline.');
257
- await this._dataPipeline.open();
258
- }
259
201
  }
@@ -5,5 +5,3 @@
5
5
  export * from './change-metadata';
6
6
  export * from './test-agent-builder';
7
7
  export * from './test-feed-builder';
8
- export * from './util';
9
- export * from './database-test-rig';
@@ -4,17 +4,15 @@
4
4
 
5
5
  import { Context } from '@dxos/context';
6
6
  import { CredentialGenerator } from '@dxos/credentials';
7
- import { DocumentModel } from '@dxos/document-model';
8
7
  import { type FeedStore } from '@dxos/feed-store';
9
8
  import { type Keyring } from '@dxos/keyring';
10
9
  import { PublicKey } from '@dxos/keys';
11
10
  import { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager } from '@dxos/messaging';
12
- import { ModelFactory } from '@dxos/model-factory';
13
- import { createSimplePeerTransportFactory, MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';
11
+ import { MemoryTransportFactory, NetworkManager, createSimplePeerTransportFactory } from '@dxos/network-manager';
14
12
  import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
15
13
  import { type SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';
16
14
  import { AdmittedFeed } from '@dxos/protocols/proto/dxos/halo/credentials';
17
- import { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';
15
+ import { StorageType, createStorage, type Storage } from '@dxos/random-access-storage';
18
16
  import { Gossip, Presence } from '@dxos/teleport-extension-gossip';
19
17
  import { BlobStore } from '@dxos/teleport-extension-object-sync';
20
18
  import { ComplexMap } from '@dxos/util';
@@ -22,7 +20,7 @@ import { ComplexMap } from '@dxos/util';
22
20
  import { TestFeedBuilder } from './test-feed-builder';
23
21
  import { SnapshotStore } from '../db-host';
24
22
  import { MetadataStore } from '../metadata';
25
- import { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, type Space, SpaceManager, SpaceProtocol } from '../space';
23
+ import { MOCK_AUTH_PROVIDER, MOCK_AUTH_VERIFIER, SpaceManager, SpaceProtocol, type Space } from '../space';
26
24
 
27
25
  export type NetworkManagerProvider = () => NetworkManager;
28
26
 
@@ -112,8 +110,6 @@ export class TestAgent {
112
110
  return (this._blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));
113
111
  }
114
112
 
115
- public modelFactory = new ModelFactory().registerModel(DocumentModel);
116
-
117
113
  constructor(
118
114
  private readonly _networkManagerProvider: NetworkManagerProvider,
119
115
  private readonly _feedBuilder: TestFeedBuilder,
@@ -142,7 +138,6 @@ export class TestAgent {
142
138
  return (this._spaceManager ??= new SpaceManager({
143
139
  feedStore: this.feedStore,
144
140
  networkManager: this._networkManagerProvider(),
145
- modelFactory: this.modelFactory,
146
141
  metadataStore: this.metadataStore,
147
142
  snapshotStore: this.snapshotStore,
148
143
  blobStore: this.blobStore,