@dxos/echo-db 2.33.5-dev.c37556a4 → 2.33.5-dev.c6e30fbc
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/src/api/index.js +5 -1
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/echo.d.ts.map +1 -1
- package/dist/src/echo.js +1 -1
- package/dist/src/echo.js.map +1 -1
- package/dist/src/echo.test.js +12 -4
- package/dist/src/echo.test.js.map +1 -1
- package/dist/src/halo/halo-factory.d.ts +4 -4
- package/dist/src/halo/halo-factory.d.ts.map +1 -1
- package/dist/src/halo/halo-factory.js +3 -2
- package/dist/src/halo/halo-factory.js.map +1 -1
- package/dist/src/halo/halo-party.d.ts +4 -3
- package/dist/src/halo/halo-party.d.ts.map +1 -1
- package/dist/src/halo/halo-party.js +8 -4
- package/dist/src/halo/halo-party.js.map +1 -1
- package/dist/src/halo/halo.d.ts +2 -2
- package/dist/src/halo/halo.d.ts.map +1 -1
- package/dist/src/halo/index.js +5 -1
- package/dist/src/halo/index.js.map +1 -1
- package/dist/src/halo/party-opener.d.ts.map +1 -1
- package/dist/src/halo/party-opener.js +3 -1
- package/dist/src/halo/party-opener.js.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/invitations/greeting-initiator.d.ts +4 -5
- package/dist/src/invitations/greeting-initiator.d.ts.map +1 -1
- package/dist/src/invitations/greeting-initiator.js +4 -4
- package/dist/src/invitations/greeting-initiator.js.map +1 -1
- package/dist/src/invitations/halo-recovery-initiator.d.ts +1 -1
- package/dist/src/invitations/halo-recovery-initiator.d.ts.map +1 -1
- package/dist/src/invitations/halo-recovery-initiator.js +1 -1
- package/dist/src/invitations/halo-recovery-initiator.js.map +1 -1
- package/dist/src/invitations/index.js +5 -1
- package/dist/src/invitations/index.js.map +1 -1
- package/dist/src/invitations/invitation-descriptor.js +5 -1
- package/dist/src/invitations/invitation-descriptor.js.map +1 -1
- package/dist/src/invitations/offline-invitation-claimer.js +1 -1
- package/dist/src/invitations/offline-invitation-claimer.js.map +1 -1
- package/dist/src/packlets/database/data-mirror.test.js +2 -2
- package/dist/src/packlets/database/data-mirror.test.js.map +1 -1
- package/dist/src/packlets/database/database-backend.d.ts +4 -5
- package/dist/src/packlets/database/database-backend.d.ts.map +1 -1
- package/dist/src/packlets/database/database-backend.js +5 -6
- package/dist/src/packlets/database/database-backend.js.map +1 -1
- package/dist/src/packlets/database/index.js +5 -1
- package/dist/src/packlets/database/index.js.map +1 -1
- package/dist/src/packlets/database/item-demuxer.d.ts +2 -2
- package/dist/src/packlets/database/item-demuxer.d.ts.map +1 -1
- package/dist/src/packlets/database/item-demuxer.js +2 -3
- package/dist/src/packlets/database/item-demuxer.js.map +1 -1
- package/dist/src/packlets/database/item-demuxer.test.js +13 -9
- package/dist/src/packlets/database/item-demuxer.test.js.map +1 -1
- package/dist/src/packlets/database/selection/index.js +5 -1
- package/dist/src/packlets/database/selection/index.js.map +1 -1
- package/dist/src/packlets/database/testing.d.ts.map +1 -1
- package/dist/src/packlets/database/testing.js +3 -4
- package/dist/src/packlets/database/testing.js.map +1 -1
- package/dist/src/packlets/database/timeframe-clock.d.ts +1 -0
- package/dist/src/packlets/database/timeframe-clock.d.ts.map +1 -1
- package/dist/src/packlets/database/timeframe-clock.js +3 -0
- package/dist/src/packlets/database/timeframe-clock.js.map +1 -1
- package/dist/src/parties/data-party.d.ts +6 -5
- package/dist/src/parties/data-party.d.ts.map +1 -1
- package/dist/src/parties/data-party.js +26 -5
- package/dist/src/parties/data-party.js.map +1 -1
- package/dist/src/parties/data-party.test.js +24 -5
- package/dist/src/parties/data-party.test.js.map +1 -1
- package/dist/src/parties/index.js +5 -1
- package/dist/src/parties/index.js.map +1 -1
- package/dist/src/parties/party-factory.d.ts +5 -4
- package/dist/src/parties/party-factory.d.ts.map +1 -1
- package/dist/src/parties/party-factory.js +15 -11
- package/dist/src/parties/party-factory.js.map +1 -1
- package/dist/src/parties/party-manager.d.ts +3 -4
- package/dist/src/parties/party-manager.d.ts.map +1 -1
- package/dist/src/parties/party-manager.js +8 -7
- package/dist/src/parties/party-manager.js.map +1 -1
- package/dist/src/parties/party-manager.test.js +9 -9
- package/dist/src/parties/party-manager.test.js.map +1 -1
- package/dist/src/pipeline/{pipeline.d.ts → feed-muxer.d.ts} +8 -11
- package/dist/src/pipeline/feed-muxer.d.ts.map +1 -0
- package/dist/src/pipeline/{pipeline.js → feed-muxer.js} +34 -41
- package/dist/src/pipeline/feed-muxer.js.map +1 -0
- package/dist/src/pipeline/feed-muxer.test.d.ts +2 -0
- package/dist/src/pipeline/feed-muxer.test.d.ts.map +1 -0
- package/dist/src/pipeline/{pipeline.test.js → feed-muxer.test.js} +17 -15
- package/dist/src/pipeline/feed-muxer.test.js.map +1 -0
- package/dist/src/pipeline/index.d.ts +2 -2
- package/dist/src/pipeline/index.d.ts.map +1 -1
- package/dist/src/pipeline/index.js +7 -3
- package/dist/src/pipeline/index.js.map +1 -1
- package/dist/src/pipeline/message-selector.d.ts.map +1 -1
- package/dist/src/pipeline/message-selector.js +6 -5
- package/dist/src/pipeline/message-selector.js.map +1 -1
- package/dist/src/pipeline/metadata-store.d.ts +2 -1
- package/dist/src/pipeline/metadata-store.d.ts.map +1 -1
- package/dist/src/pipeline/metadata-store.js +7 -1
- package/dist/src/pipeline/metadata-store.js.map +1 -1
- package/dist/src/pipeline/party-feed-provider.d.ts +2 -3
- package/dist/src/pipeline/party-feed-provider.d.ts.map +1 -1
- package/dist/src/pipeline/party-feed-provider.js +2 -17
- package/dist/src/pipeline/party-feed-provider.js.map +1 -1
- package/dist/src/pipeline/{party-core.d.ts → party-pipeline.d.ts} +23 -9
- package/dist/src/pipeline/party-pipeline.d.ts.map +1 -0
- package/dist/src/pipeline/{party-core.js → party-pipeline.js} +26 -25
- package/dist/src/pipeline/party-pipeline.js.map +1 -0
- package/dist/src/pipeline/party-pipeline.test.d.ts +2 -0
- package/dist/src/pipeline/party-pipeline.test.d.ts.map +1 -0
- package/dist/src/pipeline/{party-core.test.js → party-pipeline.test.js} +50 -33
- package/dist/src/pipeline/party-pipeline.test.js.map +1 -0
- package/dist/src/protocol/index.js +5 -1
- package/dist/src/protocol/index.js.map +1 -1
- package/dist/src/snapshots/index.js +5 -1
- package/dist/src/snapshots/index.js.map +1 -1
- package/dist/src/snapshots/snapshot-generator.d.ts +2 -2
- package/dist/src/snapshots/snapshot-generator.d.ts.map +1 -1
- package/dist/src/snapshots/snapshot-generator.js.map +1 -1
- package/dist/src/snapshots/snapshot-store.js +1 -1
- package/dist/src/snapshots/snapshot-store.js.map +1 -1
- package/dist/src/testing/index.js +5 -1
- package/dist/src/testing/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -18
- package/src/echo.test.ts +15 -4
- package/src/echo.ts +1 -0
- package/src/halo/halo-factory.ts +6 -6
- package/src/halo/halo-party.ts +10 -8
- package/src/halo/halo.ts +2 -2
- package/src/halo/party-opener.ts +3 -1
- package/src/invitations/greeting-initiator.ts +10 -9
- package/src/invitations/halo-recovery-initiator.ts +3 -3
- package/src/invitations/offline-invitation-claimer.ts +2 -2
- package/src/packlets/database/data-mirror.test.ts +2 -2
- package/src/packlets/database/database-backend.ts +7 -6
- package/src/packlets/database/item-demuxer.test.ts +20 -18
- package/src/packlets/database/item-demuxer.ts +5 -4
- package/src/packlets/database/testing.ts +3 -6
- package/src/packlets/database/timeframe-clock.ts +4 -0
- package/src/parties/data-party.test.ts +39 -8
- package/src/parties/data-party.ts +31 -9
- package/src/parties/party-factory.ts +19 -17
- package/src/parties/party-manager.test.ts +15 -9
- package/src/parties/party-manager.ts +9 -6
- package/src/pipeline/{pipeline.test.ts → feed-muxer.test.ts} +20 -16
- package/src/pipeline/{pipeline.ts → feed-muxer.ts} +39 -51
- package/src/pipeline/index.ts +2 -2
- package/src/pipeline/message-selector.ts +6 -5
- package/src/pipeline/metadata-store.ts +8 -2
- package/src/pipeline/party-feed-provider.ts +3 -16
- package/src/pipeline/{party-core.test.ts → party-pipeline.test.ts} +49 -27
- package/src/pipeline/{party-core.ts → party-pipeline.ts} +53 -24
- package/src/snapshots/snapshot-generator.ts +2 -2
- package/src/snapshots/snapshot-store.ts +1 -1
- package/dist/src/pipeline/party-core.d.ts.map +0 -1
- package/dist/src/pipeline/party-core.js.map +0 -1
- package/dist/src/pipeline/party-core.test.d.ts +0 -2
- package/dist/src/pipeline/party-core.test.d.ts.map +0 -1
- package/dist/src/pipeline/party-core.test.js.map +0 -1
- package/dist/src/pipeline/pipeline.d.ts.map +0 -1
- package/dist/src/pipeline/pipeline.js.map +0 -1
- package/dist/src/pipeline/pipeline.test.d.ts +0 -2
- package/dist/src/pipeline/pipeline.test.d.ts.map +0 -1
- package/dist/src/pipeline/pipeline.test.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Event } from '@dxos/async';
|
|
2
|
-
import { KeyHint } from '@dxos/credentials';
|
|
3
2
|
import { PublicKey } from '@dxos/crypto';
|
|
4
3
|
import { PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
|
|
5
4
|
import { FeedDescriptor } from '@dxos/feed-store';
|
|
@@ -10,7 +9,7 @@ import { ResultSet } from '../api';
|
|
|
10
9
|
import { ActivationOptions, Preferences } from '../halo';
|
|
11
10
|
import { InvitationFactory } from '../invitations';
|
|
12
11
|
import { Database, Item } from '../packlets/database';
|
|
13
|
-
import { PartyFeedProvider,
|
|
12
|
+
import { PartyFeedProvider, PipelineOptions, MetadataStore } from '../pipeline';
|
|
14
13
|
import { CredentialsSigner } from '../protocol/credentials-signer';
|
|
15
14
|
import { SnapshotStore } from '../snapshots';
|
|
16
15
|
export declare const PARTY_ITEM_TYPE = "dxos:item/party";
|
|
@@ -26,16 +25,18 @@ export interface PartyMember {
|
|
|
26
25
|
*/
|
|
27
26
|
export declare class DataParty {
|
|
28
27
|
private readonly _feedProvider;
|
|
28
|
+
private readonly _metadataStore;
|
|
29
29
|
private readonly _credentialsSigner;
|
|
30
30
|
private readonly _profilePreferences;
|
|
31
31
|
private readonly _networkManager;
|
|
32
|
-
private readonly
|
|
32
|
+
private readonly _initialTimeframe?;
|
|
33
33
|
readonly update: Event<void>;
|
|
34
34
|
private readonly _partyCore;
|
|
35
35
|
private readonly _preferences?;
|
|
36
36
|
private _invitationManager?;
|
|
37
37
|
private _protocol?;
|
|
38
|
-
|
|
38
|
+
private _feedHints;
|
|
39
|
+
constructor(partyKey: PartyKey, modelFactory: ModelFactory, snapshotStore: SnapshotStore, _feedProvider: PartyFeedProvider, _metadataStore: MetadataStore, _credentialsSigner: CredentialsSigner, _profilePreferences: Preferences | undefined, _networkManager: NetworkManager, _initialTimeframe?: Timeframe | undefined, _options?: PipelineOptions);
|
|
39
40
|
get partyInfo(): {
|
|
40
41
|
key: string;
|
|
41
42
|
isOpen: boolean;
|
|
@@ -48,7 +49,7 @@ export declare class DataParty {
|
|
|
48
49
|
get isOpen(): boolean;
|
|
49
50
|
get database(): Database;
|
|
50
51
|
get processor(): import("../pipeline").PartyProcessor;
|
|
51
|
-
get pipeline(): import("../pipeline").
|
|
52
|
+
get pipeline(): import("../pipeline").FeedMuxer;
|
|
52
53
|
get timeframe(): Timeframe;
|
|
53
54
|
get timeframeUpdate(): Event<Timeframe>;
|
|
54
55
|
get invitationManager(): InvitationFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-party.d.ts","sourceRoot":"","sources":["../../../src/parties/data-party.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"data-party.d.ts","sourceRoot":"","sources":["../../../src/parties/data-party.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,16 +31,18 @@ exports.PARTY_TITLE_PROPERTY = 'title'; // TODO(burdon): Remove (should not be s
|
|
|
31
31
|
* This class handles data-storage, replication, snapshots, access-control, and invitations.
|
|
32
32
|
*/
|
|
33
33
|
class DataParty {
|
|
34
|
-
constructor(partyKey, modelFactory, snapshotStore, _feedProvider, _credentialsSigner,
|
|
34
|
+
constructor(partyKey, modelFactory, snapshotStore, _feedProvider, _metadataStore, _credentialsSigner,
|
|
35
35
|
// TODO(dmaretskyi): Pull this out to a higher level. Should preferences be part of client API instead?
|
|
36
|
-
_profilePreferences, _networkManager,
|
|
36
|
+
_profilePreferences, _networkManager, _initialTimeframe, _options = {}) {
|
|
37
37
|
this._feedProvider = _feedProvider;
|
|
38
|
+
this._metadataStore = _metadataStore;
|
|
38
39
|
this._credentialsSigner = _credentialsSigner;
|
|
39
40
|
this._profilePreferences = _profilePreferences;
|
|
40
41
|
this._networkManager = _networkManager;
|
|
41
|
-
this.
|
|
42
|
+
this._initialTimeframe = _initialTimeframe;
|
|
42
43
|
this.update = new async_1.Event();
|
|
43
|
-
this.
|
|
44
|
+
this._feedHints = [];
|
|
45
|
+
this._partyCore = new pipeline_1.PartyPipeline(partyKey, _feedProvider, modelFactory, snapshotStore, this._credentialsSigner.getIdentityKey().publicKey, _options);
|
|
44
46
|
// TODO(dmaretskyi): Pull this out to a higher level. Should preferences be part of client API instead?
|
|
45
47
|
if (this._profilePreferences) {
|
|
46
48
|
this._preferences = new halo_1.PartyPreferences(this._profilePreferences, this);
|
|
@@ -100,6 +102,12 @@ class DataParty {
|
|
|
100
102
|
await item.model.set(exports.PARTY_TITLE_PROPERTY, title);
|
|
101
103
|
await ((_a = this._preferences) === null || _a === void 0 ? void 0 : _a.setLastKnownTitle(title));
|
|
102
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
_setFeedHints(feedHints) {
|
|
109
|
+
this._feedHints = feedHints;
|
|
110
|
+
}
|
|
103
111
|
/**
|
|
104
112
|
* Opens the pipeline and connects the streams.
|
|
105
113
|
*/
|
|
@@ -107,7 +115,18 @@ class DataParty {
|
|
|
107
115
|
if (this.isOpen) {
|
|
108
116
|
return this;
|
|
109
117
|
}
|
|
110
|
-
|
|
118
|
+
// TODO(dmaretskyi): May be undefined in some tests.
|
|
119
|
+
const party = this._metadataStore.getParty(this._partyCore.key);
|
|
120
|
+
await this._partyCore.open({
|
|
121
|
+
feedHints: this._feedHints,
|
|
122
|
+
initialTimeframe: this._initialTimeframe,
|
|
123
|
+
targetTimeframe: party === null || party === void 0 ? void 0 : party.latestTimeframe
|
|
124
|
+
});
|
|
125
|
+
// Keep updating latest reached timeframe in the metadata.
|
|
126
|
+
// This timeframe will be waited for when opening the party next time.
|
|
127
|
+
this._partyCore.timeframeUpdate.on(timeframe => {
|
|
128
|
+
void this._metadataStore.setTimeframe(this._partyCore.key, timeframe);
|
|
129
|
+
});
|
|
111
130
|
this._invitationManager = new invitations_1.InvitationFactory(this._partyCore.processor, this._credentialsSigner, this._partyCore.credentialsWriter, this._networkManager);
|
|
112
131
|
//
|
|
113
132
|
// Network/swarm.
|
|
@@ -134,6 +153,8 @@ class DataParty {
|
|
|
134
153
|
if (!this.isOpen) {
|
|
135
154
|
return this;
|
|
136
155
|
}
|
|
156
|
+
// Save the latest reached timeframe.
|
|
157
|
+
await this._metadataStore.setTimeframe(this._partyCore.key, this._partyCore.timeframe);
|
|
137
158
|
await this._partyCore.close();
|
|
138
159
|
await ((_a = this._protocol) === null || _a === void 0 ? void 0 : _a.stop());
|
|
139
160
|
this._protocol = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-party.js","sourceRoot":"","sources":["../../../src/parties/data-party.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAE5B,uCAAkD;
|
|
1
|
+
{"version":3,"file":"data-party.js","sourceRoot":"","sources":["../../../src/parties/data-party.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const identity_credentials_1 = require("../protocol/identity-credentials");
|
|
|
22
22
|
const snapshots_1 = require("../snapshots");
|
|
23
23
|
const data_party_1 = require("./data-party");
|
|
24
24
|
describe('DataParty', () => {
|
|
25
|
-
const createParty = async (identity, partyKey,
|
|
25
|
+
const createParty = async (identity, partyKey, feedHints) => {
|
|
26
26
|
const storage = (0, random_access_multi_storage_1.createStorage)('', random_access_multi_storage_1.StorageType.RAM);
|
|
27
27
|
const snapshotStore = new snapshots_1.SnapshotStore(storage.directory('snapshots'));
|
|
28
28
|
const metadataStore = new pipeline_1.MetadataStore(storage.directory('metadata'));
|
|
@@ -30,7 +30,10 @@ describe('DataParty', () => {
|
|
|
30
30
|
const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
|
|
31
31
|
const networkManager = new network_manager_1.NetworkManager();
|
|
32
32
|
const partyFeedProvider = new pipeline_1.PartyFeedProvider(metadataStore, identity.keyring, feedStore, partyKey);
|
|
33
|
-
|
|
33
|
+
const writableFeed = await partyFeedProvider.createOrOpenWritableFeed();
|
|
34
|
+
const party = new data_party_1.DataParty(partyKey, modelFactory, snapshotStore, partyFeedProvider, metadataStore, identity.createCredentialsSigner(), identity.preferences, networkManager);
|
|
35
|
+
party._setFeedHints([...feedHints, writableFeed.key]);
|
|
36
|
+
return party;
|
|
34
37
|
};
|
|
35
38
|
(0, mocha_1.it)('open & close', async () => {
|
|
36
39
|
const keyring = new credentials_1.Keyring();
|
|
@@ -51,6 +54,22 @@ describe('DataParty', () => {
|
|
|
51
54
|
await party.database.createItem({ type: 'test:item' });
|
|
52
55
|
await party.close();
|
|
53
56
|
});
|
|
57
|
+
(0, mocha_1.it)('data is immediately available after re-opening', async () => {
|
|
58
|
+
const keyring = new credentials_1.Keyring();
|
|
59
|
+
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
60
|
+
const partyKey = await keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
61
|
+
const party = await createParty(identity, partyKey.publicKey, []);
|
|
62
|
+
await party.open();
|
|
63
|
+
const feed = await party.getWriteFeed();
|
|
64
|
+
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
65
|
+
for (let i = 0; i < 10; i++) {
|
|
66
|
+
await party.database.createItem({ type: 'test:item' });
|
|
67
|
+
}
|
|
68
|
+
await party.close();
|
|
69
|
+
await party.open();
|
|
70
|
+
(0, expect_1.default)(party.database.select({ type: 'test:item' }).exec().entities).toHaveLength(10);
|
|
71
|
+
await party.close();
|
|
72
|
+
});
|
|
54
73
|
(0, mocha_1.it)('authenticates its own credentials', async () => {
|
|
55
74
|
const keyring = new credentials_1.Keyring();
|
|
56
75
|
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
@@ -59,6 +78,7 @@ describe('DataParty', () => {
|
|
|
59
78
|
await party.open();
|
|
60
79
|
const feed = await party.getWriteFeed();
|
|
61
80
|
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
81
|
+
await party.processor.feedAdded.waitForCount(1);
|
|
62
82
|
const authenticator = (0, protocol_1.createAuthenticator)(party.processor, identity.createCredentialsSigner(), party.credentialsWriter);
|
|
63
83
|
const credentialsProvider = (0, protocol_1.createCredentialsProvider)(identity.createCredentialsSigner(), party.key, feed.key);
|
|
64
84
|
const wrappedCredentials = credentials_1.codec.decode(credentialsProvider.get());
|
|
@@ -73,6 +93,7 @@ describe('DataParty', () => {
|
|
|
73
93
|
await party.open();
|
|
74
94
|
const feed = await party.getWriteFeed();
|
|
75
95
|
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feed.key, partyKey));
|
|
96
|
+
await party.processor.feedAdded.waitForCount(1);
|
|
76
97
|
const authenticator = (0, protocol_1.createAuthenticator)(party.processor, identityA.createCredentialsSigner(), party.credentialsWriter);
|
|
77
98
|
const identityB = await (0, identity_credentials_1.deriveTestDeviceCredentials)(identityA);
|
|
78
99
|
const credentialsProvider = (0, protocol_1.createCredentialsProvider)(identityB.createCredentialsSigner(), party.key, feed.key);
|
|
@@ -90,9 +111,7 @@ describe('DataParty', () => {
|
|
|
90
111
|
await partyA.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedA.key, partyKey));
|
|
91
112
|
await partyA.credentialsWriter.write((0, credentials_1.createKeyAdmitMessage)(keyring, partyKey.publicKey, identityA.identityKey, [partyKey]));
|
|
92
113
|
const identityB = await (0, identity_credentials_1.deriveTestDeviceCredentials)(identityA);
|
|
93
|
-
const partyB = await createParty(identityB, partyKey.publicKey, [
|
|
94
|
-
{ type: credentials_1.KeyType.FEED, publicKey: feedA.key }
|
|
95
|
-
]);
|
|
114
|
+
const partyB = await createParty(identityB, partyKey.publicKey, [feedA.key]);
|
|
96
115
|
await partyB.open();
|
|
97
116
|
await partyA.database.createItem({ type: 'test:item-a' });
|
|
98
117
|
await partyB.database.waitForItem({ type: 'test:item-a' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-party.test.js","sourceRoot":"","sources":["../../../src/parties/data-party.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"data-party.test.js","sourceRoot":"","sources":["../../../src/parties/data-party.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
//
|
|
5
5
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
6
|
if (k2 === undefined) k2 = k;
|
|
7
|
-
Object.
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
8
12
|
}) : (function(o, m, k, k2) {
|
|
9
13
|
if (k2 === undefined) k2 = k;
|
|
10
14
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parties/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parties/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,kDAAgC;AAChC,+CAA6B;AAC7B,kDAAgC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SecretProvider } from '@dxos/credentials';
|
|
2
2
|
import { PublicKey } from '@dxos/crypto';
|
|
3
3
|
import { PartyKey, PartySnapshot, Timeframe } from '@dxos/echo-protocol';
|
|
4
4
|
import { ModelFactory } from '@dxos/model-factory';
|
|
5
5
|
import { NetworkManager } from '@dxos/network-manager';
|
|
6
6
|
import { InvitationDescriptor } from '../invitations';
|
|
7
|
-
import { PartyFeedProvider,
|
|
7
|
+
import { MetadataStore, PartyFeedProvider, PipelineOptions } from '../pipeline';
|
|
8
8
|
import { IdentityCredentialsProvider } from '../protocol/identity-credentials';
|
|
9
9
|
import { SnapshotStore } from '../snapshots';
|
|
10
10
|
import { DataParty } from './data-party';
|
|
@@ -17,8 +17,9 @@ export declare class PartyFactory {
|
|
|
17
17
|
private readonly _modelFactory;
|
|
18
18
|
private readonly _snapshotStore;
|
|
19
19
|
private readonly _feedProviderFactory;
|
|
20
|
+
private readonly _metadataStore;
|
|
20
21
|
private readonly _options;
|
|
21
|
-
constructor(_identityProvider: IdentityCredentialsProvider, _networkManager: NetworkManager, _modelFactory: ModelFactory, _snapshotStore: SnapshotStore, _feedProviderFactory: (partyKey: PublicKey) => PartyFeedProvider, _options?:
|
|
22
|
+
constructor(_identityProvider: IdentityCredentialsProvider, _networkManager: NetworkManager, _modelFactory: ModelFactory, _snapshotStore: SnapshotStore, _feedProviderFactory: (partyKey: PublicKey) => PartyFeedProvider, _metadataStore: MetadataStore, _options?: PipelineOptions);
|
|
22
23
|
/**
|
|
23
24
|
* Create a new party with a new feed for it. Writes a party genensis message to this feed.
|
|
24
25
|
*/
|
|
@@ -28,7 +29,7 @@ export declare class PartyFactory {
|
|
|
28
29
|
* @param partyKey
|
|
29
30
|
* @param hints
|
|
30
31
|
*/
|
|
31
|
-
constructParty(partyKey: PartyKey,
|
|
32
|
+
constructParty(partyKey: PartyKey, initialTimeframe?: Timeframe): Promise<DataParty>;
|
|
32
33
|
constructPartyFromSnapshot(snapshot: PartySnapshot): Promise<DataParty>;
|
|
33
34
|
joinParty(invitationDescriptor: InvitationDescriptor, secretProvider: SecretProvider): Promise<DataParty>;
|
|
34
35
|
cloneParty(snapshot: PartySnapshot): Promise<DataParty>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-factory.d.ts","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"party-factory.d.ts","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAiC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAEc,oBAAoB,EACxC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAmB,MAAM,cAAc,CAAC;AAI1D;;GAEG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBANR,iBAAiB,EAAE,2BAA2B,EAC9C,eAAe,EAAE,cAAc,EAC/B,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,iBAAiB,EAChE,cAAc,EAAE,aAAa,EAC7B,QAAQ,GAAE,eAAoB;IAGjD;;OAEG;IAEG,WAAW,IAAK,OAAO,CAAC,SAAS,CAAC;IA0DxC;;;;OAIG;IACG,cAAc,CAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,SAAS;IAsBhE,0BAA0B,CAAE,QAAQ,EAAE,aAAa;IASnD,SAAS,CAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IA8C1G,UAAU,CAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;CAwF/D"}
|
|
@@ -28,12 +28,13 @@ const log = (0, debug_1.default)('dxos:echo-db:party-factory');
|
|
|
28
28
|
* Creates and constructs party instances.
|
|
29
29
|
*/
|
|
30
30
|
class PartyFactory {
|
|
31
|
-
constructor(_identityProvider, _networkManager, _modelFactory, _snapshotStore, _feedProviderFactory, _options = {}) {
|
|
31
|
+
constructor(_identityProvider, _networkManager, _modelFactory, _snapshotStore, _feedProviderFactory, _metadataStore, _options = {}) {
|
|
32
32
|
this._identityProvider = _identityProvider;
|
|
33
33
|
this._networkManager = _networkManager;
|
|
34
34
|
this._modelFactory = _modelFactory;
|
|
35
35
|
this._snapshotStore = _snapshotStore;
|
|
36
36
|
this._feedProviderFactory = _feedProviderFactory;
|
|
37
|
+
this._metadataStore = _metadataStore;
|
|
37
38
|
this._options = _options;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
@@ -45,9 +46,11 @@ class PartyFactory {
|
|
|
45
46
|
(0, assert_1.default)(!this._options.readOnly, 'PartyFactory is read-only.');
|
|
46
47
|
const partyKey = await identity.keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
47
48
|
const party = await this.constructParty(partyKey.publicKey);
|
|
49
|
+
const writableFeed = await party.getWriteFeed();
|
|
50
|
+
// Hint at the newly created writable feed so that we can start replicating from it.
|
|
51
|
+
party._setFeedHints([writableFeed.key]);
|
|
48
52
|
// Connect the pipeline.
|
|
49
53
|
await party.open();
|
|
50
|
-
const writableFeed = await party.getWriteFeed();
|
|
51
54
|
// PartyGenesis (self-signed by Party).
|
|
52
55
|
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(identity.keyring, partyKey, writableFeed.key, partyKey));
|
|
53
56
|
// KeyAdmit (IdentityGenesis in an Envelope signed by Party).
|
|
@@ -70,21 +73,19 @@ class PartyFactory {
|
|
|
70
73
|
* @param partyKey
|
|
71
74
|
* @param hints
|
|
72
75
|
*/
|
|
73
|
-
async constructParty(partyKey,
|
|
76
|
+
async constructParty(partyKey, initialTimeframe) {
|
|
74
77
|
var _a;
|
|
75
78
|
const identity = (_a = this._identityProvider()) !== null && _a !== void 0 ? _a : (0, debug_2.raise)(new errors_1.IdentityNotInitializedError());
|
|
76
|
-
// TODO(marik-d): Support read-only parties if this feed doesn't exist?
|
|
77
|
-
const feedProvider = this._feedProviderFactory(partyKey);
|
|
78
79
|
//
|
|
79
80
|
// Create the party.
|
|
80
81
|
//
|
|
81
|
-
const party = new data_party_1.DataParty(partyKey, this._modelFactory, this._snapshotStore,
|
|
82
|
+
const party = new data_party_1.DataParty(partyKey, this._modelFactory, this._snapshotStore, this._feedProviderFactory(partyKey), this._metadataStore, identity.createCredentialsSigner(), identity.preferences, this._networkManager, initialTimeframe, this._options);
|
|
82
83
|
return party;
|
|
83
84
|
}
|
|
84
85
|
async constructPartyFromSnapshot(snapshot) {
|
|
85
86
|
(0, assert_1.default)(snapshot.partyKey);
|
|
86
87
|
log(`Constructing ${(0, crypto_1.humanize)(snapshot.partyKey)} from snapshot at ${JSON.stringify(snapshot.timeframe)}.`);
|
|
87
|
-
const party = await this.constructParty(crypto_1.PublicKey.from(snapshot.partyKey),
|
|
88
|
+
const party = await this.constructParty(crypto_1.PublicKey.from(snapshot.partyKey), snapshot.timeframe);
|
|
88
89
|
await party.restoreFromSnapshot(snapshot);
|
|
89
90
|
return party;
|
|
90
91
|
}
|
|
@@ -104,7 +105,8 @@ class PartyFactory {
|
|
|
104
105
|
const initiator = new invitations_1.GreetingInitiator(this._networkManager, invitationDescriptor, async (partyKey, nonce) => [(0, invitations_1.createDataPartyAdmissionMessages)(identity.createCredentialsSigner(), partyKey, identity.identityGenesis, nonce)]);
|
|
105
106
|
await initiator.connect();
|
|
106
107
|
const { partyKey, hints } = await initiator.redeemInvitation(secretProvider);
|
|
107
|
-
const party = await this.constructParty(partyKey
|
|
108
|
+
const party = await this.constructParty(partyKey);
|
|
109
|
+
party._setFeedHints(hints);
|
|
108
110
|
await party.open();
|
|
109
111
|
await initiator.destroy();
|
|
110
112
|
// Copy our signed IdentityInfo into the new Party.
|
|
@@ -119,9 +121,11 @@ class PartyFactory {
|
|
|
119
121
|
(0, assert_1.default)(!this._options.readOnly, 'PartyFactory is read-only');
|
|
120
122
|
const partyKey = await identity.keyring.createKeyRecord({ type: credentials_1.KeyType.PARTY });
|
|
121
123
|
const party = await this.constructParty(partyKey.publicKey);
|
|
124
|
+
const writableFeed = await party.getWriteFeed();
|
|
125
|
+
// Hint at the newly created writable feed so that we can start replicating from it.
|
|
126
|
+
party._setFeedHints([writableFeed.key]);
|
|
122
127
|
// Connect the pipeline.
|
|
123
128
|
await party.open();
|
|
124
|
-
const writableFeed = await party.getWriteFeed();
|
|
125
129
|
// PartyGenesis (self-signed by Party).
|
|
126
130
|
await party.credentialsWriter.write((0, credentials_1.createPartyGenesisMessage)(identity.keyring, partyKey, writableFeed.key, partyKey));
|
|
127
131
|
// KeyAdmit (IdentityGenesis in an Envelope signed by Party).
|
|
@@ -147,6 +151,7 @@ class PartyFactory {
|
|
|
147
151
|
const feedWriter = (0, echo_protocol_1.createFeedWriter)(writableFeed.feed);
|
|
148
152
|
for (const item of ((_b = snapshot.database) === null || _b === void 0 ? void 0 : _b.items) || []) {
|
|
149
153
|
const message = {
|
|
154
|
+
timeframe: new echo_protocol_1.Timeframe(),
|
|
150
155
|
echo: {
|
|
151
156
|
itemId: (_c = item.itemId) !== null && _c !== void 0 ? _c : (0, debug_2.failUndefined)(),
|
|
152
157
|
genesis: {
|
|
@@ -157,8 +162,7 @@ class PartyFactory {
|
|
|
157
162
|
itemMutation: {
|
|
158
163
|
parentId: item.parentId
|
|
159
164
|
},
|
|
160
|
-
snapshot: item.model
|
|
161
|
-
timeframe: new echo_protocol_1.Timeframe()
|
|
165
|
+
snapshot: item.model
|
|
162
166
|
}
|
|
163
167
|
};
|
|
164
168
|
await feedWriter.write(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-factory.js","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"party-factory.js","sourceRoot":"","sources":["../../../src/parties/party-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Event } from '@dxos/async';
|
|
2
|
-
import {
|
|
2
|
+
import { SecretProvider } from '@dxos/credentials';
|
|
3
|
+
import { PublicKey } from '@dxos/crypto';
|
|
3
4
|
import { PartyKey, PartySnapshot } from '@dxos/echo-protocol';
|
|
4
5
|
import { InvitationDescriptor } from '../invitations';
|
|
5
6
|
import { MetadataStore } from '../pipeline';
|
|
@@ -38,10 +39,8 @@ export declare class PartyManager {
|
|
|
38
39
|
createParty(): Promise<DataParty>;
|
|
39
40
|
/**
|
|
40
41
|
* Construct a party object and start replicating with the remote peer that created that party.
|
|
41
|
-
* @param partyKey
|
|
42
|
-
* @param hints
|
|
43
42
|
*/
|
|
44
|
-
addParty(partyKey: PartyKey,
|
|
43
|
+
addParty(partyKey: PartyKey, feedHints?: PublicKey[]): Promise<DataParty | undefined>;
|
|
45
44
|
joinParty(invitationDescriptor: InvitationDescriptor, secretProvider: SecretProvider): Promise<DataParty>;
|
|
46
45
|
cloneParty(snapshot: PartySnapshot): Promise<DataParty>;
|
|
47
46
|
private _setParty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-manager.d.ts","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"party-manager.d.ts","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAyC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAI7C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAcrB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAfhC,QAAQ,CAAC,MAAM,mBAA0B;IAGzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IAIrF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD,OAAO,CAAC,KAAK,CAAS;gBAGH,cAAc,EAAE,aAAa,EAC7B,cAAc,EAAE,aAAa,EAC7B,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,YAAY;IAG9C,IAAI,MAAM,YAET;IAED,IAAI,OAAO,IAAK,SAAS,EAAE,CAE1B;IAKK,IAAI,CAAE,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI;IAqD3D,KAAK;IAuBX;;OAEG;IAEG,WAAW,IAAK,OAAO,CAAC,SAAS,CAAC;IAaxC;;OAEG;IAEG,QAAQ,CAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAS,EAAO;IAuBzD,SAAS,CAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc;IAsBrF,UAAU,CAAE,QAAQ,EAAE,aAAa;IAqBzC,OAAO,CAAC,SAAS;YAkCH,iBAAiB;YAejB,kBAAkB;YAyClB,mBAAmB;CAkBlC"}
|
|
@@ -52,7 +52,7 @@ class PartyManager {
|
|
|
52
52
|
}
|
|
53
53
|
// TODO(burdon): Replace callback with event.
|
|
54
54
|
async open(onProgressCallback) {
|
|
55
|
-
var _a, _b;
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
56
|
if (this._open) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
@@ -74,10 +74,12 @@ class PartyManager {
|
|
|
74
74
|
const partyKey = partyKeys[i];
|
|
75
75
|
if (!this._parties.has(partyKey)) {
|
|
76
76
|
const snapshot = await this._snapshotStore.load(partyKey);
|
|
77
|
+
const metadata = (_a = this._metadataStore.getParty(partyKey)) !== null && _a !== void 0 ? _a : (0, debug_2.failUndefined)();
|
|
77
78
|
const party = snapshot
|
|
78
79
|
? await this._partyFactory.constructPartyFromSnapshot(snapshot)
|
|
79
80
|
: await this._partyFactory.constructParty(partyKey);
|
|
80
|
-
|
|
81
|
+
party._setFeedHints((_b = metadata.feedKeys) !== null && _b !== void 0 ? _b : []);
|
|
82
|
+
const isActive = (_d = (_c = identity === null || identity === void 0 ? void 0 : identity.preferences) === null || _c === void 0 ? void 0 : _c.isPartyActive(partyKey)) !== null && _d !== void 0 ? _d : true;
|
|
81
83
|
if (isActive) {
|
|
82
84
|
await party.open();
|
|
83
85
|
// TODO(marik-d): Might not be required if separately snapshot this item.
|
|
@@ -122,10 +124,8 @@ class PartyManager {
|
|
|
122
124
|
}
|
|
123
125
|
/**
|
|
124
126
|
* Construct a party object and start replicating with the remote peer that created that party.
|
|
125
|
-
* @param partyKey
|
|
126
|
-
* @param hints
|
|
127
127
|
*/
|
|
128
|
-
async addParty(partyKey,
|
|
128
|
+
async addParty(partyKey, feedHints = []) {
|
|
129
129
|
(0, assert_1.default)(this._open, 'PartyManager is not open.');
|
|
130
130
|
/*
|
|
131
131
|
* The caller should have checked if the Party existed before calling addParty, but that check
|
|
@@ -136,8 +136,9 @@ class PartyManager {
|
|
|
136
136
|
log(`Already had party partyKey=${partyKey.toHex()}`);
|
|
137
137
|
return this._parties.get(partyKey);
|
|
138
138
|
}
|
|
139
|
-
log(`Adding party partyKey=${partyKey.toHex()} hints=${
|
|
140
|
-
const party = await this._partyFactory.constructParty(partyKey
|
|
139
|
+
log(`Adding party partyKey=${partyKey.toHex()} hints=${feedHints.length}`);
|
|
140
|
+
const party = await this._partyFactory.constructParty(partyKey);
|
|
141
|
+
party._setFeedHints(feedHints);
|
|
141
142
|
await party.open();
|
|
142
143
|
await this._metadataStore.addParty(party.key);
|
|
143
144
|
this._setParty(party);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-manager.js","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAC1B,wEAAyC;AAEzC,uCAAkD;AAClD,mDAAqE;AACrE,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"party-manager.js","sourceRoot":"","sources":["../../../src/parties/party-manager.ts"],"names":[],"mappings":"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"}
|