@dxos/echo-db 2.33.5-dev.b9f5bea6 → 2.33.5-dev.cb045a79

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 (138) hide show
  1. package/dist/src/api/index.js +5 -1
  2. package/dist/src/api/index.js.map +1 -1
  3. package/dist/src/echo.d.ts.map +1 -1
  4. package/dist/src/echo.js +1 -1
  5. package/dist/src/echo.js.map +1 -1
  6. package/dist/src/echo.test.js +0 -4
  7. package/dist/src/echo.test.js.map +1 -1
  8. package/dist/src/halo/halo-factory.d.ts +2 -2
  9. package/dist/src/halo/halo-factory.d.ts.map +1 -1
  10. package/dist/src/halo/halo-factory.js +2 -1
  11. package/dist/src/halo/halo-factory.js.map +1 -1
  12. package/dist/src/halo/halo-party.d.ts +2 -2
  13. package/dist/src/halo/halo-party.d.ts.map +1 -1
  14. package/dist/src/halo/halo-party.js +1 -1
  15. package/dist/src/halo/halo-party.js.map +1 -1
  16. package/dist/src/halo/halo.d.ts +2 -2
  17. package/dist/src/halo/halo.d.ts.map +1 -1
  18. package/dist/src/halo/index.js +5 -1
  19. package/dist/src/halo/index.js.map +1 -1
  20. package/dist/src/index.js +5 -1
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/invitations/index.js +5 -1
  23. package/dist/src/invitations/index.js.map +1 -1
  24. package/dist/src/invitations/invitation-descriptor.js +5 -1
  25. package/dist/src/invitations/invitation-descriptor.js.map +1 -1
  26. package/dist/src/packlets/database/data-mirror.test.js +2 -2
  27. package/dist/src/packlets/database/data-mirror.test.js.map +1 -1
  28. package/dist/src/packlets/database/database-backend.d.ts +4 -5
  29. package/dist/src/packlets/database/database-backend.d.ts.map +1 -1
  30. package/dist/src/packlets/database/database-backend.js +5 -6
  31. package/dist/src/packlets/database/database-backend.js.map +1 -1
  32. package/dist/src/packlets/database/index.js +5 -1
  33. package/dist/src/packlets/database/index.js.map +1 -1
  34. package/dist/src/packlets/database/item-demuxer.d.ts +2 -2
  35. package/dist/src/packlets/database/item-demuxer.d.ts.map +1 -1
  36. package/dist/src/packlets/database/item-demuxer.js +2 -3
  37. package/dist/src/packlets/database/item-demuxer.js.map +1 -1
  38. package/dist/src/packlets/database/item-demuxer.test.js +13 -9
  39. package/dist/src/packlets/database/item-demuxer.test.js.map +1 -1
  40. package/dist/src/packlets/database/selection/index.js +5 -1
  41. package/dist/src/packlets/database/selection/index.js.map +1 -1
  42. package/dist/src/packlets/database/testing.d.ts.map +1 -1
  43. package/dist/src/packlets/database/testing.js +3 -4
  44. package/dist/src/packlets/database/testing.js.map +1 -1
  45. package/dist/src/packlets/database/timeframe-clock.d.ts +1 -0
  46. package/dist/src/packlets/database/timeframe-clock.d.ts.map +1 -1
  47. package/dist/src/packlets/database/timeframe-clock.js +3 -0
  48. package/dist/src/packlets/database/timeframe-clock.js.map +1 -1
  49. package/dist/src/parties/data-party.d.ts +5 -4
  50. package/dist/src/parties/data-party.d.ts.map +1 -1
  51. package/dist/src/parties/data-party.js +22 -5
  52. package/dist/src/parties/data-party.js.map +1 -1
  53. package/dist/src/parties/data-party.test.js +20 -1
  54. package/dist/src/parties/data-party.test.js.map +1 -1
  55. package/dist/src/parties/index.js +5 -1
  56. package/dist/src/parties/index.js.map +1 -1
  57. package/dist/src/parties/party-factory.d.ts +4 -3
  58. package/dist/src/parties/party-factory.d.ts.map +1 -1
  59. package/dist/src/parties/party-factory.js +13 -9
  60. package/dist/src/parties/party-factory.js.map +1 -1
  61. package/dist/src/parties/party-manager.d.ts.map +1 -1
  62. package/dist/src/parties/party-manager.js +6 -3
  63. package/dist/src/parties/party-manager.js.map +1 -1
  64. package/dist/src/parties/party-manager.test.js +2 -2
  65. package/dist/src/parties/party-manager.test.js.map +1 -1
  66. package/dist/src/pipeline/{pipeline.d.ts → feed-muxer.d.ts} +8 -11
  67. package/dist/src/pipeline/feed-muxer.d.ts.map +1 -0
  68. package/dist/src/pipeline/{pipeline.js → feed-muxer.js} +33 -40
  69. package/dist/src/pipeline/feed-muxer.js.map +1 -0
  70. package/dist/src/pipeline/feed-muxer.test.d.ts +2 -0
  71. package/dist/src/pipeline/feed-muxer.test.d.ts.map +1 -0
  72. package/dist/src/pipeline/{pipeline.test.js → feed-muxer.test.js} +16 -13
  73. package/dist/src/pipeline/feed-muxer.test.js.map +1 -0
  74. package/dist/src/pipeline/index.d.ts +2 -2
  75. package/dist/src/pipeline/index.d.ts.map +1 -1
  76. package/dist/src/pipeline/index.js +7 -3
  77. package/dist/src/pipeline/index.js.map +1 -1
  78. package/dist/src/pipeline/metadata-store.d.ts +2 -1
  79. package/dist/src/pipeline/metadata-store.d.ts.map +1 -1
  80. package/dist/src/pipeline/metadata-store.js +6 -0
  81. package/dist/src/pipeline/metadata-store.js.map +1 -1
  82. package/dist/src/pipeline/party-feed-provider.d.ts +2 -3
  83. package/dist/src/pipeline/party-feed-provider.d.ts.map +1 -1
  84. package/dist/src/pipeline/party-feed-provider.js +2 -17
  85. package/dist/src/pipeline/party-feed-provider.js.map +1 -1
  86. package/dist/src/pipeline/{party-core.d.ts → party-pipeline.d.ts} +6 -6
  87. package/dist/src/pipeline/party-pipeline.d.ts.map +1 -0
  88. package/dist/src/pipeline/{party-core.js → party-pipeline.js} +21 -17
  89. package/dist/src/pipeline/party-pipeline.js.map +1 -0
  90. package/dist/src/pipeline/party-pipeline.test.d.ts +2 -0
  91. package/dist/src/pipeline/party-pipeline.test.d.ts.map +1 -0
  92. package/dist/src/pipeline/{party-core.test.js → party-pipeline.test.js} +33 -16
  93. package/dist/src/pipeline/party-pipeline.test.js.map +1 -0
  94. package/dist/src/protocol/index.js +5 -1
  95. package/dist/src/protocol/index.js.map +1 -1
  96. package/dist/src/snapshots/index.js +5 -1
  97. package/dist/src/snapshots/index.js.map +1 -1
  98. package/dist/src/snapshots/snapshot-generator.d.ts +2 -2
  99. package/dist/src/snapshots/snapshot-generator.d.ts.map +1 -1
  100. package/dist/src/snapshots/snapshot-generator.js.map +1 -1
  101. package/dist/src/testing/index.js +5 -1
  102. package/dist/src/testing/index.js.map +1 -1
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +18 -18
  105. package/src/echo.test.ts +0 -4
  106. package/src/echo.ts +1 -0
  107. package/src/halo/halo-factory.ts +4 -3
  108. package/src/halo/halo-party.ts +4 -4
  109. package/src/halo/halo.ts +2 -2
  110. package/src/packlets/database/data-mirror.test.ts +2 -2
  111. package/src/packlets/database/database-backend.ts +7 -6
  112. package/src/packlets/database/item-demuxer.test.ts +20 -18
  113. package/src/packlets/database/item-demuxer.ts +5 -4
  114. package/src/packlets/database/testing.ts +3 -6
  115. package/src/packlets/database/timeframe-clock.ts +4 -0
  116. package/src/parties/data-party.test.ts +33 -3
  117. package/src/parties/data-party.ts +27 -6
  118. package/src/parties/party-factory.ts +17 -14
  119. package/src/parties/party-manager.test.ts +3 -1
  120. package/src/parties/party-manager.ts +7 -2
  121. package/src/pipeline/{pipeline.test.ts → feed-muxer.test.ts} +19 -14
  122. package/src/pipeline/{pipeline.ts → feed-muxer.ts} +38 -51
  123. package/src/pipeline/index.ts +2 -2
  124. package/src/pipeline/metadata-store.ts +7 -1
  125. package/src/pipeline/party-feed-provider.ts +3 -16
  126. package/src/pipeline/{party-core.test.ts → party-pipeline.test.ts} +31 -9
  127. package/src/pipeline/{party-core.ts → party-pipeline.ts} +27 -14
  128. package/src/snapshots/snapshot-generator.ts +2 -2
  129. package/dist/src/pipeline/party-core.d.ts.map +0 -1
  130. package/dist/src/pipeline/party-core.js.map +0 -1
  131. package/dist/src/pipeline/party-core.test.d.ts +0 -2
  132. package/dist/src/pipeline/party-core.test.d.ts.map +0 -1
  133. package/dist/src/pipeline/party-core.test.js.map +0 -1
  134. package/dist/src/pipeline/pipeline.d.ts.map +0 -1
  135. package/dist/src/pipeline/pipeline.js.map +0 -1
  136. package/dist/src/pipeline/pipeline.test.d.ts +0 -2
  137. package/dist/src/pipeline/pipeline.test.d.ts.map +0 -1
  138. package/dist/src/pipeline/pipeline.test.js.map +0 -1
@@ -10,19 +10,19 @@ import { waitForCondition, latch } from '@dxos/async';
10
10
  import { createPartyGenesisMessage, Keyring, KeyType } from '@dxos/credentials';
11
11
  import { createId, createKeyPair, PublicKey } from '@dxos/crypto';
12
12
  import { codec, createFeedWriter, FeedSelector, FeedStoreIterator, IEchoStream, Timeframe } from '@dxos/echo-protocol';
13
- import { FeedStore, createWritableFeedStream, createWritable, WritableArray } from '@dxos/feed-store';
13
+ import { FeedStore, createWritableFeedStream } from '@dxos/feed-store';
14
14
  import { createSetPropertyMutation } from '@dxos/model-factory';
15
15
  import { createStorage, StorageType } from '@dxos/random-access-multi-storage';
16
16
  import { jsonReplacer } from '@dxos/util';
17
17
 
18
18
  import { TimeframeClock } from '../packlets/database';
19
+ import { FeedMuxer } from './feed-muxer';
19
20
  import { PartyProcessor } from './party-processor';
20
- import { Pipeline } from './pipeline';
21
21
 
22
22
  const log = debug('dxos:echo:pipeline:test');
23
23
 
24
24
  // TODO(burdon): Test read-only.
25
- describe('pipeline', () => {
25
+ describe('FeedMuxer', () => {
26
26
  test('streams', async () => {
27
27
  const storage = createStorage('', StorageType.RAM);
28
28
  const feedStore = new FeedStore(storage.directory('feed'), { valueEncoding: codec });
@@ -56,9 +56,6 @@ describe('pipeline', () => {
56
56
  seq: 0
57
57
  }
58
58
  });
59
- const pipeline = new Pipeline(partyProcessor, feedReadStream, new TimeframeClock());
60
- const [readStream] = await pipeline.open();
61
- expect(readStream).toBeTruthy();
62
59
 
63
60
  //
64
61
  // Pipeline consumer.
@@ -66,10 +63,14 @@ describe('pipeline', () => {
66
63
  //
67
64
  const numMessages = 5;
68
65
  const [counter, updateCounter] = latch(numMessages);
69
- readStream.pipe(createWritable<IEchoStream>(async message => {
66
+ const echoProcessor = async (message: IEchoStream) => {
70
67
  log('Processed:', JSON.stringify(message, jsonReplacer, 2));
71
68
  updateCounter();
72
- }));
69
+ };
70
+
71
+ const pipeline = new FeedMuxer(partyProcessor, feedReadStream, new TimeframeClock());
72
+ pipeline.setEchoProcessor(echoProcessor);
73
+ await pipeline.open();
73
74
 
74
75
  //
75
76
  // Write directly to feed store.
@@ -105,17 +106,21 @@ describe('pipeline', () => {
105
106
  });
106
107
 
107
108
  const partyProcessor = new PartyProcessor(partyKey.publicKey);
108
- const pipeline = new Pipeline(
109
+
110
+ const echoMessages: IEchoStream[] = [];
111
+ const echoProcessor = async (msg: IEchoStream) => {
112
+ echoMessages.push(msg);
113
+ };
114
+
115
+ const pipeline = new FeedMuxer(
109
116
  partyProcessor,
110
117
  feedReadStream,
111
118
  new TimeframeClock(),
112
119
  createFeedWriter(feed)
113
120
  );
121
+ pipeline.setEchoProcessor(echoProcessor);
114
122
  await pipeline.open();
115
123
 
116
- const writable = new WritableArray();
117
- pipeline.inboundEchoStream!.pipe(writable);
118
-
119
124
  await pipeline.outboundHaloStream!.write(createPartyGenesisMessage(keyring, partyKey, feedKey.publicKey, identityKey));
120
125
  await waitForCondition(() => !partyProcessor.genesisRequired);
121
126
 
@@ -126,10 +131,10 @@ describe('pipeline', () => {
126
131
  }
127
132
  });
128
133
 
129
- await waitForCondition(() => writable.objects.length === 1);
134
+ await waitForCondition(() => echoMessages.length === 1);
130
135
 
131
136
  expect(partyProcessor.genesisRequired).toEqual(false);
132
- expect((writable.objects[0] as any).data).toEqual({
137
+ expect((echoMessages[0] as any).data).toEqual({
133
138
  itemId: '123',
134
139
  genesis: {
135
140
  itemType: 'foo'
@@ -4,7 +4,6 @@
4
4
 
5
5
  import assert from 'assert';
6
6
  import debug from 'debug';
7
- import { Readable } from 'stream';
8
7
 
9
8
  import { Event } from '@dxos/async';
10
9
  import { Message as HaloMessage } from '@dxos/credentials';
@@ -13,10 +12,9 @@ import { checkType } from '@dxos/debug';
13
12
  import {
14
13
  createFeedMeta, EchoEnvelope, FeedMessage, FeedStoreIterator, FeedWriter, IEchoStream, mapFeedWriter, Timeframe
15
14
  } from '@dxos/echo-protocol';
16
- import { createReadable } from '@dxos/feed-store';
17
15
  import { jsonReplacer } from '@dxos/util';
18
16
 
19
- import { TimeframeClock } from '../packlets/database';
17
+ import { EchoProcessor, TimeframeClock } from '../packlets/database';
20
18
  import { CredentialProcessor, PartyStateProvider } from './party-processor';
21
19
 
22
20
  interface Options {
@@ -28,14 +26,12 @@ const log = debug('dxos:echo-db:pipeline');
28
26
 
29
27
  /**
30
28
  * Manages the inbound and outbound message streams for an individual party.
29
+ * Reads messages from individual feeds and splits them into ECHO and HALO streams.
31
30
  */
32
- export class Pipeline {
31
+ export class FeedMuxer {
33
32
  private readonly _errors = new Event<Error>();
34
33
 
35
- /**
36
- * Messages to be consumed from the pipeline (e.g., mutations to model).
37
- */
38
- private _inboundEchoStream: Readable | undefined;
34
+ private _isOpen = false;
39
35
 
40
36
  /**
41
37
  * Messages to write into pipeline (e.g., mutations from model).
@@ -47,6 +43,8 @@ export class Pipeline {
47
43
  */
48
44
  private _outboundHaloStream: FeedWriter<HaloMessage> | undefined;
49
45
 
46
+ private _echoProcessor: EchoProcessor | undefined
47
+
50
48
  /**
51
49
  * @param _partyProcessor Processes HALO messages to update party state.
52
50
  * @param _feedStorIterator Inbound messages from the feed store.
@@ -60,20 +58,32 @@ export class Pipeline {
60
58
  private readonly _timeframeClock: TimeframeClock,
61
59
  private readonly _feedWriter?: FeedWriter<FeedMessage>,
62
60
  private readonly _options: Options = {}
63
- ) {}
61
+ ) {
62
+ if (this._feedWriter) {
63
+ const loggingWriter = mapFeedWriter<FeedMessage, FeedMessage>(async msg => {
64
+ this._options.writeLogger?.(msg);
65
+ return msg;
66
+ }, this._feedWriter);
67
+
68
+ this._outboundEchoStream = mapFeedWriter<EchoEnvelope, FeedMessage>(async message => ({
69
+ timeframe: this._timeframeClock.timeframe,
70
+ echo: message
71
+ }), loggingWriter);
72
+ this._outboundHaloStream = mapFeedWriter<HaloMessage, FeedMessage>(async message => ({
73
+ timeframe: this._timeframeClock.timeframe,
74
+ halo: message
75
+ }), loggingWriter);
76
+ }
77
+ }
64
78
 
65
79
  get isOpen () {
66
- return this._inboundEchoStream !== undefined;
80
+ return this._isOpen;
67
81
  }
68
82
 
69
83
  get readOnly () {
70
84
  return this._outboundEchoStream === undefined;
71
85
  }
72
86
 
73
- get inboundEchoStream () {
74
- return this._inboundEchoStream;
75
- }
76
-
77
87
  get outboundEchoStream () {
78
88
  return this._outboundEchoStream;
79
89
  }
@@ -86,6 +96,10 @@ export class Pipeline {
86
96
  return this._errors;
87
97
  }
88
98
 
99
+ setEchoProcessor (processor: EchoProcessor) {
100
+ this._echoProcessor = processor;
101
+ }
102
+
89
103
  /**
90
104
  * Create inbound and outbound pipielines.
91
105
  * https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback
@@ -96,10 +110,8 @@ export class Pipeline {
96
110
  * Transform(dxos.echo.IEchoEnvelope => dxos.IFeedMessage): update clock
97
111
  * Feed
98
112
  */
99
- async open (): Promise<[NodeJS.ReadableStream, FeedWriter<EchoEnvelope>?]> {
100
- const { readLogger, writeLogger } = this._options;
101
-
102
- this._inboundEchoStream = createReadable();
113
+ async open (): Promise<FeedWriter<EchoEnvelope> | undefined> {
114
+ const { readLogger } = this._options;
103
115
 
104
116
  // This will exit cleanly once FeedStoreIterator is closed.
105
117
  setImmediate(async () => {
@@ -109,8 +121,6 @@ export class Pipeline {
109
121
  try {
110
122
  const { data: message } = block;
111
123
 
112
- this._timeframeClock.updateTimeframe(PublicKey.from(block.key), block.seq);
113
-
114
124
  //
115
125
  // HALO
116
126
  //
@@ -133,8 +143,8 @@ export class Pipeline {
133
143
  // Validate messge.
134
144
  const { itemId } = message.echo;
135
145
  if (itemId) {
136
- assert(this._inboundEchoStream);
137
- this._inboundEchoStream.push(checkType<IEchoStream>({
146
+ assert(this._echoProcessor);
147
+ await this._echoProcessor(checkType<IEchoStream>({
138
148
  meta: {
139
149
  seq: block.seq,
140
150
  feedKey: block.key,
@@ -150,6 +160,8 @@ export class Pipeline {
150
160
  // TODO(burdon): Can we throw and have the pipeline log (without breaking the stream)?
151
161
  log(`Skipping invalid message: ${JSON.stringify(message, jsonReplacer)}`);
152
162
  }
163
+
164
+ this._timeframeClock.updateTimeframe(PublicKey.from(block.key), block.seq);
153
165
  } catch (err: any) {
154
166
  console.error('Error in message processing.');
155
167
  console.error(err);
@@ -157,30 +169,7 @@ export class Pipeline {
157
169
  }
158
170
  });
159
171
 
160
- //
161
- // Processes outbound messages (piped to the feed).
162
- // Sets the current timeframe.
163
- //
164
- if (this._feedWriter) {
165
- const loggingWriter = mapFeedWriter<FeedMessage, FeedMessage>(async msg => {
166
- writeLogger?.(msg);
167
- return msg;
168
- }, this._feedWriter);
169
-
170
- this._outboundEchoStream = mapFeedWriter<EchoEnvelope, FeedMessage>(async message => ({
171
- timeframe: this._timeframeClock.timeframe,
172
- echo: message
173
- }), loggingWriter);
174
- this._outboundHaloStream = mapFeedWriter<HaloMessage, FeedMessage>(async message => ({
175
- timeframe: this._timeframeClock.timeframe,
176
- halo: message
177
- }), loggingWriter);
178
- }
179
-
180
- return [
181
- this._inboundEchoStream,
182
- this._outboundEchoStream
183
- ];
172
+ return this._outboundEchoStream;
184
173
  }
185
174
 
186
175
  /**
@@ -190,11 +179,9 @@ export class Pipeline {
190
179
  async close () {
191
180
  await this._feedStorIterator.close();
192
181
 
193
- if (this._inboundEchoStream) {
194
- this._inboundEchoStream.destroy();
195
- this._inboundEchoStream = undefined;
196
- }
197
-
198
182
  this._outboundEchoStream = undefined;
183
+ this._outboundHaloStream = undefined;
184
+ this._echoProcessor = undefined;
185
+ this._isOpen = false;
199
186
  }
200
187
  }
@@ -6,6 +6,6 @@ export * from './message-selector';
6
6
  export * from './party-feed-provider';
7
7
  export * from './party-processor';
8
8
  export * from '../protocol/party-protocol-factory';
9
- export * from './pipeline';
10
- export * from './party-core';
9
+ export * from './feed-muxer';
10
+ export * from './party-pipeline';
11
11
  export * from './metadata-store';
@@ -7,7 +7,7 @@ import debug from 'debug';
7
7
 
8
8
  import { PublicKey } from '@dxos/crypto';
9
9
  import { failUndefined } from '@dxos/debug';
10
- import { EchoMetadata, PartyMetadata, schema } from '@dxos/echo-protocol';
10
+ import { EchoMetadata, PartyMetadata, schema, Timeframe } from '@dxos/echo-protocol';
11
11
  import { Directory } from '@dxos/random-access-multi-storage';
12
12
 
13
13
  /**
@@ -158,4 +158,10 @@ export class MetadataStore {
158
158
  }
159
159
  return !!party.feedKeys?.find(fk => feedKey.equals(fk));
160
160
  }
161
+
162
+ async setTimeframe (partyKey: PublicKey, timeframe: Timeframe) {
163
+ const party = this.getParty(partyKey) ?? failUndefined();
164
+ party.latestTimeframe = timeframe;
165
+ await this._save();
166
+ }
161
167
  }
@@ -8,7 +8,7 @@ import debug from 'debug';
8
8
  import { Event, synchronized } from '@dxos/async';
9
9
  import { Keyring, KeyType } from '@dxos/credentials';
10
10
  import { PublicKey } from '@dxos/crypto';
11
- import { FeedStoreIterator, MessageSelector, Timeframe } from '@dxos/echo-protocol';
11
+ import { FeedSelector, FeedStoreIterator, MessageSelector, Timeframe } from '@dxos/echo-protocol';
12
12
  import { FeedDescriptor, FeedStore } from '@dxos/feed-store';
13
13
  import { ComplexMap } from '@dxos/util';
14
14
 
@@ -33,19 +33,6 @@ export class PartyFeedProvider {
33
33
  return Array.from(this._feeds.values());
34
34
  }
35
35
 
36
- @synchronized
37
- async openKnownFeeds () {
38
- for (const feedKey of this._metadataStore.getParty(this._partyKey)?.feedKeys ?? []) {
39
- if (!this._feeds.has(feedKey)) {
40
- const fullKey = this._keyring.getFullKey(feedKey);
41
- const feed = fullKey?.secretKey
42
- ? await this._feedStore.openReadWriteFeed(fullKey.publicKey, fullKey.secretKey)
43
- : await this._feedStore.openReadOnlyFeed(feedKey);
44
- this._trackFeed(feed);
45
- }
46
- }
47
- }
48
-
49
36
  @synchronized
50
37
  async createOrOpenWritableFeed () {
51
38
  const partyMetadata = this._metadataStore.getParty(this._partyKey);
@@ -103,8 +90,8 @@ export class PartyFeedProvider {
103
90
  return feed;
104
91
  }
105
92
 
106
- async createIterator (messageSelector: MessageSelector, initialTimeframe?: Timeframe) {
107
- const iterator = new FeedStoreIterator(() => true, messageSelector, initialTimeframe ?? new Timeframe());
93
+ async createIterator (messageSelector: MessageSelector, feedSelector: FeedSelector, initialTimeframe?: Timeframe) {
94
+ const iterator = new FeedStoreIterator(feedSelector, messageSelector, initialTimeframe ?? new Timeframe());
108
95
  for (const feed of this._feeds.values()) {
109
96
  iterator.addFeedDescriptor(feed);
110
97
  }
@@ -17,12 +17,12 @@ import { ObjectModel } from '@dxos/object-model';
17
17
  import { createStorage, StorageType } from '@dxos/random-access-multi-storage';
18
18
  import { afterTest } from '@dxos/testutils';
19
19
 
20
- import { MetadataStore, PartyFeedProvider } from '../pipeline';
20
+ import { MetadataStore, PartyFeedProvider } from '.';
21
21
  import { createReplicatorPlugin } from '../protocol/replicator-plugin';
22
22
  import { SnapshotStore } from '../snapshots';
23
- import { PartyCore } from './party-core';
23
+ import { PartyPipeline } from './party-pipeline';
24
24
 
25
- describe('PartyCore', () => {
25
+ describe('PartyPipeline', () => {
26
26
  const setup = async () => {
27
27
  const storage = createStorage('', StorageType.RAM);
28
28
  const feedStore = new FeedStore(storage.directory('feed'), { valueEncoding: codec });
@@ -39,7 +39,7 @@ describe('PartyCore', () => {
39
39
 
40
40
  const partyFeedProvider = new PartyFeedProvider(metadataStore, keyring, feedStore, partyKey.publicKey);
41
41
 
42
- const party = new PartyCore(
42
+ const party = new PartyPipeline(
43
43
  partyKey.publicKey,
44
44
  partyFeedProvider,
45
45
  modelFactory,
@@ -48,7 +48,7 @@ describe('PartyCore', () => {
48
48
  );
49
49
 
50
50
  const feed = await partyFeedProvider.createOrOpenWritableFeed();
51
- await party.open();
51
+ await party.open({ feedHints: [feed.key] });
52
52
  afterTest(async () => party.close());
53
53
 
54
54
  // PartyGenesis (self-signed by Party).
@@ -88,7 +88,7 @@ describe('PartyCore', () => {
88
88
  });
89
89
 
90
90
  test('create item with parent and then reload', async () => {
91
- const { party } = await setup();
91
+ const { party, feedKey } = await setup();
92
92
 
93
93
  {
94
94
  const parent = await party.database.createItem({ model: ObjectModel, type: 'parent' });
@@ -103,7 +103,7 @@ describe('PartyCore', () => {
103
103
  }
104
104
 
105
105
  await party.close();
106
- await party.open();
106
+ await party.open({ feedHints: [feedKey] });
107
107
 
108
108
  {
109
109
  await party.database.select().exec().update.waitFor(result => result.entities.length === 2);
@@ -149,7 +149,7 @@ describe('PartyCore', () => {
149
149
 
150
150
  const otherFeedKey = PublicKey.random();
151
151
 
152
- const party = new PartyCore(
152
+ const party = new PartyPipeline(
153
153
  partyKey.publicKey,
154
154
  partyFeedProvider,
155
155
  modelFactory,
@@ -250,6 +250,28 @@ describe('PartyCore', () => {
250
250
  await promiseTimeout(party.database.waitForItem({ id: itemId }), 1000, new Error('timeout'));
251
251
  });
252
252
 
253
+ test('wait to reach specific timeframe', async () => {
254
+ const { party, feedKey } = await setup();
255
+
256
+ {
257
+ const parent = await party.database.createItem({ model: ObjectModel, type: 'parent' });
258
+ const child = await party.database.createItem({
259
+ model: ObjectModel,
260
+ parent: parent.id,
261
+ type: 'child'
262
+ });
263
+
264
+ expect(child.parent).toEqual(parent);
265
+ expect(parent.children).toContain(child);
266
+ }
267
+
268
+ const timeframe = party.timeframe;
269
+ expect(timeframe.isEmpty()).toBeFalsy();
270
+
271
+ await party.close();
272
+ await party.open({ feedHints: [feedKey], targetTimeframe: timeframe });
273
+ });
274
+
253
275
  test('two instances replicating', async () => {
254
276
  const peer1 = await setup();
255
277
 
@@ -264,7 +286,7 @@ describe('PartyCore', () => {
264
286
 
265
287
  const partyFeedProvider = new PartyFeedProvider(metadataStore, peer1.keyring, feedStore, peer1.party.key);
266
288
 
267
- const party2 = new PartyCore(
289
+ const party2 = new PartyPipeline(
268
290
  peer1.party.key,
269
291
  partyFeedProvider,
270
292
  modelFactory,
@@ -8,17 +8,17 @@ import { synchronized } from '@dxos/async';
8
8
  import { KeyType, Message as HaloMessage } from '@dxos/credentials';
9
9
  import { PublicKey } from '@dxos/crypto';
10
10
  import { timed } from '@dxos/debug';
11
- import { createFeedWriter, DatabaseSnapshot, FeedWriter, PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
11
+ import { createFeedWriter, DatabaseSnapshot, FeedSelector, FeedWriter, PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
12
12
  import { ModelFactory } from '@dxos/model-factory';
13
13
  import { SubscriptionGroup } from '@dxos/util';
14
14
 
15
+ import { createMessageSelector, PartyProcessor, PartyFeedProvider, FeedMuxer } from '.';
15
16
  import { Database, FeedDatabaseBackend, TimeframeClock } from '../packlets/database';
16
- import { createMessageSelector, PartyProcessor, PartyFeedProvider, Pipeline } from '../pipeline';
17
17
  import { createAutomaticSnapshots, SnapshotStore } from '../snapshots';
18
18
 
19
19
  const DEFAULT_SNAPSHOT_INTERVAL = 100; // Every 100 messages.
20
20
 
21
- export interface PartyOptions {
21
+ export interface PipelineOptions {
22
22
  readLogger?: (msg: any) => void;
23
23
  writeLogger?: (msg: any) => void;
24
24
  readOnly?: boolean;
@@ -52,7 +52,7 @@ export interface OpenOptions {
52
52
  *
53
53
  * The core class also handles the combined ECHO and HALO state snapshots.
54
54
  */
55
- export class PartyCore {
55
+ export class PartyPipeline {
56
56
  /**
57
57
  * Snapshot to be restored from when party.open() is called.
58
58
  */
@@ -61,7 +61,7 @@ export class PartyCore {
61
61
  private readonly _subscriptions = new SubscriptionGroup();
62
62
 
63
63
  private _database?: Database;
64
- private _pipeline?: Pipeline;
64
+ private _pipeline?: FeedMuxer;
65
65
  private _partyProcessor?: PartyProcessor;
66
66
  private _timeframeClock?: TimeframeClock;
67
67
 
@@ -71,7 +71,7 @@ export class PartyCore {
71
71
  private readonly _modelFactory: ModelFactory,
72
72
  private readonly _snapshotStore: SnapshotStore,
73
73
  private readonly _memberKey: PublicKey,
74
- private readonly _options: PartyOptions = {}
74
+ private readonly _options: PipelineOptions = {}
75
75
  ) { }
76
76
 
77
77
  get key (): PartyKey {
@@ -126,7 +126,8 @@ export class PartyCore {
126
126
  async open (options: OpenOptions = {}) {
127
127
  const {
128
128
  feedHints = [],
129
- initialTimeframe
129
+ initialTimeframe,
130
+ targetTimeframe
130
131
  } = options;
131
132
 
132
133
  if (this.isOpen) {
@@ -135,8 +136,6 @@ export class PartyCore {
135
136
 
136
137
  this._timeframeClock = new TimeframeClock(initialTimeframe);
137
138
 
138
- // Open all feeds known from metadata and open or create a writable feed to the party.
139
- await this._feedProvider.openKnownFeeds();
140
139
  const writableFeed = await this._feedProvider.createOrOpenWritableFeed();
141
140
 
142
141
  if (!this._partyProcessor) {
@@ -158,26 +157,34 @@ export class PartyCore {
158
157
 
159
158
  const iterator = await this._feedProvider.createIterator(
160
159
  createMessageSelector(this._partyProcessor, this._timeframeClock),
160
+ createFeedSelector(this._partyProcessor, feedHints),
161
161
  initialTimeframe
162
162
  );
163
163
 
164
- this._pipeline = new Pipeline(
165
- this._partyProcessor, iterator, this._timeframeClock, createFeedWriter(writableFeed.feed), this._options);
164
+ this._pipeline = new FeedMuxer(
165
+ this._partyProcessor,
166
166
 
167
- // TODO(burdon): Support read-only parties.
168
- const [readStream, writeStream] = await this._pipeline.open();
167
+ iterator,
168
+ this._timeframeClock,
169
+ createFeedWriter(writableFeed.feed),
170
+ this._options
171
+ );
169
172
 
170
173
  //
171
174
  // Database
172
175
  //
173
176
 
177
+ const databaseBackend = new FeedDatabaseBackend(this._pipeline.outboundEchoStream, this._databaseSnapshot, { snapshots: true });
174
178
  this._database = new Database(
175
179
  this._modelFactory,
176
- new FeedDatabaseBackend(readStream, writeStream, this._databaseSnapshot, { snapshots: true }),
180
+ databaseBackend,
177
181
  this._memberKey
178
182
  );
179
183
 
184
+ // Open pipeline and connect it to the database.
180
185
  await this._database.initialize();
186
+ this._pipeline.setEchoProcessor(databaseBackend.echoProcessor);
187
+ await this._pipeline.open();
181
188
 
182
189
  // TODO(burdon): Propagate errors.
183
190
  this._subscriptions.push(this._pipeline.errors.on(err => console.error(err)));
@@ -191,6 +198,10 @@ export class PartyCore {
191
198
  );
192
199
  }
193
200
 
201
+ if (targetTimeframe) {
202
+ await this._timeframeClock.waitUntilReached(targetTimeframe);
203
+ }
204
+
194
205
  return this;
195
206
  }
196
207
 
@@ -244,3 +255,5 @@ export class PartyCore {
244
255
  this._databaseSnapshot = snapshot.database;
245
256
  }
246
257
  }
258
+
259
+ const createFeedSelector = (partyProcessor: PartyProcessor, hints: PublicKey[]): FeedSelector => feed => hints.some(hint => hint.equals(feed.key)) || partyProcessor.isFeedAdmitted(feed.key);
@@ -5,12 +5,12 @@
5
5
  import debug from 'debug';
6
6
 
7
7
  import { TimeframeClock } from '../packlets/database';
8
- import { PartyCore } from '../pipeline';
8
+ import { PartyPipeline } from '../pipeline';
9
9
  import { SnapshotStore } from './snapshot-store';
10
10
 
11
11
  const log = debug('dxos:snapshot-generator');
12
12
 
13
- export const createAutomaticSnapshots = (party: PartyCore, clock: TimeframeClock, store: SnapshotStore, interval: number) => clock.update.on(async timeframe => {
13
+ export const createAutomaticSnapshots = (party: PartyPipeline, clock: TimeframeClock, store: SnapshotStore, interval: number) => clock.update.on(async timeframe => {
14
14
  const totalMessages = timeframe.totalMessages();
15
15
  if (totalMessages > 0 && totalMessages % interval === 0) {
16
16
  log(`Saving snapshot of ${party.key.humanize()}...`);
@@ -1 +0,0 @@
1
- {"version":3,"file":"party-core.d.ts","sourceRoot":"","sources":["../../../src/pipeline/party-core.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAsC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,QAAQ,EAAuC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAyB,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAA4B,aAAa,EAAE,MAAM,cAAc,CAAC;AAIvE,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,CAAA;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IAclB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAlB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA+B;IAExD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAiB;gBAGtB,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,QAAQ,GAAE,YAAiB;IAG9C,IAAI,GAAG,IAAK,QAAQ,CAEnB;IAED,IAAI,MAAM,IAAK,OAAO,CAErB;IAED,IAAI,QAAQ,IAAK,QAAQ,CAGxB;IAED,IAAI,SAAS,mBAGZ;IAED,IAAI,QAAQ,aAGX;IAED,IAAI,SAAS,cAGZ;IAED,IAAI,eAAe,2CAGlB;IAEK,YAAY;IAMlB,IAAI,iBAAiB,IAAK,UAAU,CAAC,WAAW,CAAC,CAGhD;IAED;;OAEG;IAGG,IAAI,CAAE,OAAO,GAAE,WAAgB;IAuErC;;OAEG;IAEG,KAAK;IAmBX;;OAEG;IACH,cAAc,IAAK,aAAa;IAY1B,mBAAmB,CAAE,QAAQ,EAAE,aAAa;CAWnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"party-core.js","sourceRoot":"","sources":["../../../src/pipeline/party-core.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=party-core.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"party-core.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/party-core.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"party-core.test.js","sourceRoot":"","sources":["../../../src/pipeline/party-core.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/pipeline/pipeline.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,EACW,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EACzE,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,UAAU,OAAO;IACf,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAID;;GAEG;AACH,qBAAa,QAAQ;IA0BjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA7B3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAuB;IAEjD;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAuC;IAElE;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAsC;IAEjE;;;;;;OAMG;gBAEgB,eAAe,EAAE,mBAAmB,GAAG,kBAAkB,EACzD,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,cAAc,EAC/B,WAAW,CAAC,qCAAyB,EACrC,QAAQ,GAAE,OAAY;IAGzC,IAAI,MAAM,YAET;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,iBAAiB,yBAEpB;IAED,IAAI,kBAAkB,yCAErB;IAED,IAAI,kBAAkB,wCAErB;IAED,IAAI,MAAM,iBAET;IAED;;;;;;;;;OASG;IACG,IAAI,IAAK,OAAO,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAuF1E;;OAEG;IAEG,KAAK;CAUZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/pipeline/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pipeline.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/pipeline.test.ts"],"names":[],"mappings":""}