@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
|
@@ -48,7 +48,7 @@ const setup = async () => {
|
|
|
48
48
|
const networkManager = new network_manager_1.NetworkManager();
|
|
49
49
|
const feedProviderFactory = (partyKey) => new pipeline_1.PartyFeedProvider(metadataStore, keyring, feedStore, partyKey);
|
|
50
50
|
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
51
|
-
const partyFactory = new party_factory_1.PartyFactory(() => identity, networkManager, modelFactory, snapshotStore, feedProviderFactory, {
|
|
51
|
+
const partyFactory = new party_factory_1.PartyFactory(() => identity, networkManager, modelFactory, snapshotStore, feedProviderFactory, metadataStore, {
|
|
52
52
|
writeLogger: (0, testing_1.messageLogger)('<<<'),
|
|
53
53
|
readLogger: (0, testing_1.messageLogger)('>>>')
|
|
54
54
|
});
|
|
@@ -103,10 +103,7 @@ describe('Party manager', () => {
|
|
|
103
103
|
});
|
|
104
104
|
const feedStream = (0, feed_store_1.createWritableFeedStream)(feed);
|
|
105
105
|
feedStream.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedKey.publicKey, identityKey));
|
|
106
|
-
await partyManager.addParty(partyKey.publicKey, [
|
|
107
|
-
type: credentials_1.KeyType.FEED,
|
|
108
|
-
publicKey: crypto_1.PublicKey.from(feed.key)
|
|
109
|
-
}]);
|
|
106
|
+
await partyManager.addParty(partyKey.publicKey, [crypto_1.PublicKey.from(feed.key)]);
|
|
110
107
|
await update;
|
|
111
108
|
});
|
|
112
109
|
(0, mocha_1.it)('Create from cold start', async () => {
|
|
@@ -119,7 +116,7 @@ describe('Party manager', () => {
|
|
|
119
116
|
const networkManager = new network_manager_1.NetworkManager();
|
|
120
117
|
const feedProviderFactory = (partyKey) => new pipeline_1.PartyFeedProvider(metadataStore, keyring, feedStore, partyKey);
|
|
121
118
|
const identity = await (0, identity_credentials_1.createTestIdentityCredentials)(keyring);
|
|
122
|
-
const partyFactory = new party_factory_1.PartyFactory(() => identity, networkManager, modelFactory, snapshotStore, feedProviderFactory);
|
|
119
|
+
const partyFactory = new party_factory_1.PartyFactory(() => identity, networkManager, modelFactory, snapshotStore, feedProviderFactory, metadataStore);
|
|
123
120
|
const partyManager = new party_manager_1.PartyManager(metadataStore, snapshotStore, () => identity, partyFactory);
|
|
124
121
|
/* TODO(telackey): Injecting "raw" Parties into the feeds behind the scenes seems fishy to me, as it writes the
|
|
125
122
|
* Party messages in a slightly different way than the code inside PartyFactory does, and so could easily diverge
|
|
@@ -140,15 +137,18 @@ describe('Party manager', () => {
|
|
|
140
137
|
const feedKey = keyring.getFullKey(feed.key);
|
|
141
138
|
(0, assert_1.default)(feedKey);
|
|
142
139
|
const feedStream = (0, feed_store_1.createWritableFeedStream)(feed);
|
|
143
|
-
feedStream.write({ halo: (0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedKey.publicKey, identity.identityKey) });
|
|
144
140
|
feedStream.write({
|
|
141
|
+
timeframe: new echo_protocol_1.Timeframe(),
|
|
142
|
+
halo: (0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedKey.publicKey, identity.identityKey)
|
|
143
|
+
});
|
|
144
|
+
feedStream.write({
|
|
145
|
+
timeframe: new echo_protocol_1.Timeframe(),
|
|
145
146
|
echo: (0, debug_2.checkType)({
|
|
146
147
|
itemId: 'foo',
|
|
147
148
|
genesis: {
|
|
148
149
|
itemType: data_party_1.PARTY_ITEM_TYPE,
|
|
149
150
|
modelType: object_model_1.ObjectModel.meta.type
|
|
150
|
-
}
|
|
151
|
-
timeframe: new echo_protocol_1.Timeframe()
|
|
151
|
+
}
|
|
152
152
|
})
|
|
153
153
|
});
|
|
154
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-manager.test.js","sourceRoot":"","sources":["../../../src/parties/party-manager.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"party-manager.test.js","sourceRoot":"","sources":["../../../src/parties/party-manager.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,+CAA+C;AAE/C,oDAA4B;AAC5B,kDAA0B;AAC1B,oDAA4B;AAC5B,iCAAmC;AAEnC,uCAAoC;AACpC,mDAM2B;AAC3B,yCAKsB;AACtB,uCAAwC;AACxC,uDAAqE;AACrE,iDAAuE;AACvE,uDAAmD;AACnD,2DAAuD;AACvD,qDAAiD;AACjD,mFAA+E;AAC/E,+CAAyD;AAEzD,gDAA0F;AAE1F,0CAA+D;AAC/D,2EAAiF;AACjF,4CAA6C;AAC7C,wCAA2C;AAC3C,6CAA+C;AAC/C,mDAA+C;AAC/C,mDAA+C;AAE/C,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,sCAAsC,CAAC,CAAC;AAE1D,sCAAsC;AAEtC,+BAA+B;AAC/B,gGAAgG;AAEhG;;;GAGG;AACH,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IACvB,MAAM,OAAO,GAAG,IAAI,qBAAO,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,yBAAa,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,qBAAK,EAAE,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;IAC5C,MAAM,mBAAmB,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,IAAI,4BAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAExH,MAAM,QAAQ,GAAG,MAAM,IAAA,oDAA6B,EAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,4BAAY,CACnC,GAAG,EAAE,CAAC,QAAQ,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb;QACE,WAAW,EAAE,IAAA,uBAAa,EAAC,KAAK,CAAC;QACjC,UAAU,EAAE,IAAA,uBAAa,EAAC,KAAK,CAAC;KACjC,CACF,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAA,qBAAS,EAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IAEtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,8CAA8C;IAC9C,IAAA,UAAI,EAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEjD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QACrC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAElC,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,IAAA,gBAAM,EAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAA,gBAAM,EAAC,QAAQ,CAAC,CAAC;QACjB,IAAA,gBAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5D,MAAM,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAElD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QACrC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,qBAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9E,uCAAuC;QACvC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,GAAE,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;YACzC,SAAS,EAAE,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,qBAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,CAAC;QAClD,UAAU,CAAC,KAAK,CAAC,IAAA,uCAAyB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAE/F,MAAM,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,qBAAK,EAAE,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,qBAAO,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,yBAAa,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC;QACnE,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;QAC5C,MAAM,mBAAmB,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,IAAI,4BAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExH,MAAM,QAAQ,GAAG,MAAM,IAAA,oDAA6B,EAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,4BAAY,CACnC,GAAG,EAAE,CAAC,QAAQ,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,aAAa,CACd,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAElG;;;;;WAKG;QAEH,sBAAsB;QACtB,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzD,IAAA,gBAAM,EAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YACjD,IAAA,gBAAM,EAAC,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAClD,MAAM,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAE1E,uCAAuC;YACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC;YAEhB,MAAM,UAAU,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,CAAC;YAClD,UAAU,CAAC,KAAK,CAAC;gBACf,SAAS,EAAE,IAAI,yBAAS,EAAE;gBAC1B,IAAI,EAAE,IAAA,uCAAyB,EAC7B,OAAO,EACP,QAAQ,EACR,OAAO,CAAC,SAAS,EACjB,QAAQ,CAAC,WAAW,CACrB;aACF,CAAC,CAAC;YACH,UAAU,CAAC,KAAK,CAAC;gBACf,SAAS,EAAE,IAAI,yBAAS,EAAE;gBAC1B,IAAI,EAAE,IAAA,iBAAS,EAAe;oBAC5B,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE;wBACP,QAAQ,EAAE,4BAAe;wBACzB,SAAS,EAAE,0BAAW,CAAC,IAAI,CAAC,IAAI;qBACjC;iBACF,CAAC;aACH,CAAC,CAAC;SACJ;QAED,QAAQ;QACR,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAA,gBAAM,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAA,UAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,cAAc,GAAmB,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;QACvD,MAAM,eAAe,GAAoB,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QACtD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,cAAc,GAAmB,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;QACvD,MAAM,eAAe,GAAoB,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC;QAElH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACnF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE;aACzD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;gBAClC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,QAAQ,EAAE,CAAC;aACZ;QACH,CAAC,CAAC,CAAC;QAEL,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAClG,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAC3E,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAE3E,oBAAoB;QACpB,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACjD,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErC,gFAAgF;QAChF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,eAAe,GAAoB,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1F,iCAAiC;QACjC,+GAA+G;QAC/G,MAAM,cAAc,GAAmB,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;QAEvD,0CAA0C;QAC1C,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAC1E,EAAE,cAAc,EAAE,eAAe,EAAE,EACnC;YACE,QAAQ,EAAE,GAAG,EAAE;gBACb,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;SACF,CACF,CAAC;QAEF,8BAA8B;QAC9B,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACnF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEpC,IAAI,KAAK,GAAqB,IAAI,CAAC;QAEnC,kCAAkC;QAClC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE;aACzD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAChC,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;oBAClC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,QAAQ,EAAE,CAAC;iBACZ;aACF;QACH,CAAC,CAAC,CAAC;QAEL,0BAA0B;QAC1B,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC5F,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7B,2BAA2B;QAC3B,MAAM,OAAO,CAAC;QAEd,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YAC3C,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChF,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBAC3D;gBACD,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChF,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBAC3D;aACF;SACF;QAED,IAAA,gBAAM,EAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAC3E,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAE3E,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAA,sBAAa,GAAE,CAAC;QAEhC,oBAAoB;QACpB,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACjD,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErC,gFAAgF;QAChF,MAAM,eAAe,GAAoB,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;YACpE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAgB,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAgB,CAAC,CAAC;YAC/C,OAAO,IAAA,eAAM,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,0CAA0C;QAC1C,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;QAElG,sGAAsG;QACtG,qDAAqD;QACrD,MAAM,cAAc,GAAmB,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,GAAG,IAAA,oBAAW,GAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAA,aAAI,EAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,8BAA8B;QAC9B,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACnF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEpC,IAAI,KAAK,GAAqB,IAAI,CAAC;QACnC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QAEpC,kCAAkC;QAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE;aACzD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAChC,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;oBAClC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,QAAQ,EAAE,CAAC;iBACZ;aACF;QACH,CAAC,CAAC,CAAC;QAEL,0BAA0B;QAC1B,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAc,CAAC;QACzG,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7B,2BAA2B;QAC3B,MAAM,OAAO,CAAC;QAEd,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YAC3C,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACjF;gBACD,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACjF;aACF;SACF;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAC3E,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAE3E,oBAAoB;QACpB,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACjD,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErC,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,iBAAiB;aACxD,uBAAuB,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,IAAA,gBAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAC/D,sCAAwB,CAAC,oBAAoB,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QACtF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEpC,IAAI,KAAK,GAAqB,IAAI,CAAC;QACnC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAAA,aAAK,GAAE,CAAC;QAEpC,kCAAkC;QAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE;aACzD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YAClB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAChC,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;oBAClC,GAAG,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,QAAQ,EAAE,CAAC;iBACZ;aACF;QACH,CAAC,CAAC,CAAC;QAEL,0BAA0B;QAC1B,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAc,CAAC;QACzG,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7B,2BAA2B;QAC3B,MAAM,OAAO,CAAC;QAEd,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YAC3C,IAAA,gBAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChF,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBAC3D;gBACD,IAAI,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChF,IAAA,gBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBAC3D;aACF;SACF;IACH,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAEnB,IAAA,UAAI,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QACtD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QACtD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAEjD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,4CAA8B,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,mCAAqB,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,4CAA8B,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,mCAAqB,CAAC,CAAC;QAEjF,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;YAC5C,MAAM,IAAA,uBAAW,EAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,IAAA,uBAAW,EAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,IAAA,uBAAW,EAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;SACxE;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEvC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5G,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEpC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;QACvE,IAAA,gBAAM,EAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QACb,IAAA,gBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Readable } from 'stream';
|
|
3
1
|
import { Event } from '@dxos/async';
|
|
4
2
|
import { Message as HaloMessage } from '@dxos/credentials';
|
|
5
3
|
import { EchoEnvelope, FeedMessage, FeedStoreIterator, FeedWriter } from '@dxos/echo-protocol';
|
|
6
|
-
import { TimeframeClock } from '../packlets/database';
|
|
4
|
+
import { EchoProcessor, TimeframeClock } from '../packlets/database';
|
|
7
5
|
import { CredentialProcessor, PartyStateProvider } from './party-processor';
|
|
8
6
|
interface Options {
|
|
9
7
|
readLogger?: (msg: any) => void;
|
|
@@ -11,18 +9,16 @@ interface Options {
|
|
|
11
9
|
}
|
|
12
10
|
/**
|
|
13
11
|
* Manages the inbound and outbound message streams for an individual party.
|
|
12
|
+
* Reads messages from individual feeds and splits them into ECHO and HALO streams.
|
|
14
13
|
*/
|
|
15
|
-
export declare class
|
|
14
|
+
export declare class FeedMuxer {
|
|
16
15
|
private readonly _partyProcessor;
|
|
17
16
|
private readonly _feedStorIterator;
|
|
18
17
|
private readonly _timeframeClock;
|
|
19
18
|
private readonly _feedWriter?;
|
|
20
19
|
private readonly _options;
|
|
21
20
|
private readonly _errors;
|
|
22
|
-
|
|
23
|
-
* Messages to be consumed from the pipeline (e.g., mutations to model).
|
|
24
|
-
*/
|
|
25
|
-
private _inboundEchoStream;
|
|
21
|
+
private _isOpen;
|
|
26
22
|
/**
|
|
27
23
|
* Messages to write into pipeline (e.g., mutations from model).
|
|
28
24
|
*/
|
|
@@ -31,6 +27,7 @@ export declare class Pipeline {
|
|
|
31
27
|
* Halo message stream to write into pipeline.
|
|
32
28
|
*/
|
|
33
29
|
private _outboundHaloStream;
|
|
30
|
+
private _echoProcessor;
|
|
34
31
|
/**
|
|
35
32
|
* @param _partyProcessor Processes HALO messages to update party state.
|
|
36
33
|
* @param _feedStorIterator Inbound messages from the feed store.
|
|
@@ -41,10 +38,10 @@ export declare class Pipeline {
|
|
|
41
38
|
constructor(_partyProcessor: CredentialProcessor & PartyStateProvider, _feedStorIterator: FeedStoreIterator, _timeframeClock: TimeframeClock, _feedWriter?: FeedWriter<FeedMessage> | undefined, _options?: Options);
|
|
42
39
|
get isOpen(): boolean;
|
|
43
40
|
get readOnly(): boolean;
|
|
44
|
-
get inboundEchoStream(): Readable | undefined;
|
|
45
41
|
get outboundEchoStream(): FeedWriter<EchoEnvelope> | undefined;
|
|
46
42
|
get outboundHaloStream(): FeedWriter<HaloMessage> | undefined;
|
|
47
43
|
get errors(): Event<Error>;
|
|
44
|
+
setEchoProcessor(processor: EchoProcessor): void;
|
|
48
45
|
/**
|
|
49
46
|
* Create inbound and outbound pipielines.
|
|
50
47
|
* https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback
|
|
@@ -55,11 +52,11 @@ export declare class Pipeline {
|
|
|
55
52
|
* Transform(dxos.echo.IEchoEnvelope => dxos.IFeedMessage): update clock
|
|
56
53
|
* Feed
|
|
57
54
|
*/
|
|
58
|
-
open(): Promise<
|
|
55
|
+
open(): Promise<FeedWriter<EchoEnvelope> | undefined>;
|
|
59
56
|
/**
|
|
60
57
|
* Close all streams.
|
|
61
58
|
*/
|
|
62
59
|
close(): Promise<void>;
|
|
63
60
|
}
|
|
64
61
|
export {};
|
|
65
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=feed-muxer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-muxer.d.ts","sourceRoot":"","sources":["../../../src/pipeline/feed-muxer.ts"],"names":[],"mappings":"AAOA,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;AAG7B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,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;;;GAGG;AACH,qBAAa,SAAS;IAyBlB,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;IA5B3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAuC;IAElE;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAsC;IAEjE,OAAO,CAAC,cAAc,CAA2B;IAEjD;;;;;;OAMG;gBAEgB,eAAe,EAAE,mBAAmB,GAAG,kBAAkB,EACzD,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,cAAc,EAC/B,WAAW,CAAC,qCAAyB,EACrC,QAAQ,GAAE,OAAY;IAmBzC,IAAI,MAAM,YAET;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,kBAAkB,yCAErB;IAED,IAAI,kBAAkB,wCAErB;IAED,IAAI,MAAM,iBAET;IAED,gBAAgB,CAAE,SAAS,EAAE,aAAa;IAI1C;;;;;;;;;OASG;IACG,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IA8D5D;;OAEG;IAEG,KAAK;CAQZ"}
|
|
@@ -6,20 +6,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.FeedMuxer = void 0;
|
|
10
10
|
const assert_1 = __importDefault(require("assert"));
|
|
11
11
|
const debug_1 = __importDefault(require("debug"));
|
|
12
12
|
const async_1 = require("@dxos/async");
|
|
13
13
|
const crypto_1 = require("@dxos/crypto");
|
|
14
14
|
const debug_2 = require("@dxos/debug");
|
|
15
15
|
const echo_protocol_1 = require("@dxos/echo-protocol");
|
|
16
|
-
const feed_store_1 = require("@dxos/feed-store");
|
|
17
16
|
const util_1 = require("@dxos/util");
|
|
18
17
|
const log = (0, debug_1.default)('dxos:echo-db:pipeline');
|
|
19
18
|
/**
|
|
20
19
|
* Manages the inbound and outbound message streams for an individual party.
|
|
20
|
+
* Reads messages from individual feeds and splits them into ECHO and HALO streams.
|
|
21
21
|
*/
|
|
22
|
-
class
|
|
22
|
+
class FeedMuxer {
|
|
23
23
|
/**
|
|
24
24
|
* @param _partyProcessor Processes HALO messages to update party state.
|
|
25
25
|
* @param _feedStorIterator Inbound messages from the feed store.
|
|
@@ -34,16 +34,29 @@ class Pipeline {
|
|
|
34
34
|
this._feedWriter = _feedWriter;
|
|
35
35
|
this._options = _options;
|
|
36
36
|
this._errors = new async_1.Event();
|
|
37
|
+
this._isOpen = false;
|
|
38
|
+
if (this._feedWriter) {
|
|
39
|
+
const loggingWriter = (0, echo_protocol_1.mapFeedWriter)(async (msg) => {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
(_b = (_a = this._options).writeLogger) === null || _b === void 0 ? void 0 : _b.call(_a, msg);
|
|
42
|
+
return msg;
|
|
43
|
+
}, this._feedWriter);
|
|
44
|
+
this._outboundEchoStream = (0, echo_protocol_1.mapFeedWriter)(async (message) => ({
|
|
45
|
+
timeframe: this._timeframeClock.timeframe,
|
|
46
|
+
echo: message
|
|
47
|
+
}), loggingWriter);
|
|
48
|
+
this._outboundHaloStream = (0, echo_protocol_1.mapFeedWriter)(async (message) => ({
|
|
49
|
+
timeframe: this._timeframeClock.timeframe,
|
|
50
|
+
halo: message
|
|
51
|
+
}), loggingWriter);
|
|
52
|
+
}
|
|
37
53
|
}
|
|
38
54
|
get isOpen() {
|
|
39
|
-
return this.
|
|
55
|
+
return this._isOpen;
|
|
40
56
|
}
|
|
41
57
|
get readOnly() {
|
|
42
58
|
return this._outboundEchoStream === undefined;
|
|
43
59
|
}
|
|
44
|
-
get inboundEchoStream() {
|
|
45
|
-
return this._inboundEchoStream;
|
|
46
|
-
}
|
|
47
60
|
get outboundEchoStream() {
|
|
48
61
|
return this._outboundEchoStream;
|
|
49
62
|
}
|
|
@@ -53,6 +66,9 @@ class Pipeline {
|
|
|
53
66
|
get errors() {
|
|
54
67
|
return this._errors;
|
|
55
68
|
}
|
|
69
|
+
setEchoProcessor(processor) {
|
|
70
|
+
this._echoProcessor = processor;
|
|
71
|
+
}
|
|
56
72
|
/**
|
|
57
73
|
* Create inbound and outbound pipielines.
|
|
58
74
|
* https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback
|
|
@@ -64,8 +80,7 @@ class Pipeline {
|
|
|
64
80
|
* Feed
|
|
65
81
|
*/
|
|
66
82
|
async open() {
|
|
67
|
-
const { readLogger
|
|
68
|
-
this._inboundEchoStream = (0, feed_store_1.createReadable)();
|
|
83
|
+
const { readLogger } = this._options;
|
|
69
84
|
// This will exit cleanly once FeedStoreIterator is closed.
|
|
70
85
|
setImmediate(async () => {
|
|
71
86
|
var _a;
|
|
@@ -86,19 +101,18 @@ class Pipeline {
|
|
|
86
101
|
// ECHO
|
|
87
102
|
//
|
|
88
103
|
if (message.echo) {
|
|
89
|
-
this._timeframeClock.updateTimeframe(crypto_1.PublicKey.from(block.key), block.seq);
|
|
90
104
|
const memberKey = this._partyProcessor.getFeedOwningMember(crypto_1.PublicKey.from(block.key));
|
|
91
105
|
(0, assert_1.default)(memberKey, `Ownership of feed ${(0, crypto_1.keyToString)(block.key)} could not be determined.`);
|
|
92
106
|
// Validate messge.
|
|
93
107
|
const { itemId } = message.echo;
|
|
94
108
|
if (itemId) {
|
|
95
|
-
(0, assert_1.default)(this.
|
|
96
|
-
this.
|
|
109
|
+
(0, assert_1.default)(this._echoProcessor);
|
|
110
|
+
await this._echoProcessor((0, debug_2.checkType)({
|
|
97
111
|
meta: {
|
|
98
112
|
seq: block.seq,
|
|
99
113
|
feedKey: block.key,
|
|
100
114
|
memberKey,
|
|
101
|
-
timeframe: (_a = message.
|
|
115
|
+
timeframe: (_a = message.timeframe) !== null && _a !== void 0 ? _a : new echo_protocol_1.Timeframe()
|
|
102
116
|
},
|
|
103
117
|
data: message.echo
|
|
104
118
|
}));
|
|
@@ -108,6 +122,7 @@ class Pipeline {
|
|
|
108
122
|
// TODO(burdon): Can we throw and have the pipeline log (without breaking the stream)?
|
|
109
123
|
log(`Skipping invalid message: ${JSON.stringify(message, util_1.jsonReplacer)}`);
|
|
110
124
|
}
|
|
125
|
+
this._timeframeClock.updateTimeframe(crypto_1.PublicKey.from(block.key), block.seq);
|
|
111
126
|
}
|
|
112
127
|
catch (err) {
|
|
113
128
|
console.error('Error in message processing.');
|
|
@@ -115,28 +130,7 @@ class Pipeline {
|
|
|
115
130
|
}
|
|
116
131
|
}
|
|
117
132
|
});
|
|
118
|
-
|
|
119
|
-
// Processes outbound messages (piped to the feed).
|
|
120
|
-
// Sets the current timeframe.
|
|
121
|
-
//
|
|
122
|
-
if (this._feedWriter) {
|
|
123
|
-
const loggingWriter = (0, echo_protocol_1.mapFeedWriter)(async (msg) => {
|
|
124
|
-
writeLogger === null || writeLogger === void 0 ? void 0 : writeLogger(msg);
|
|
125
|
-
return msg;
|
|
126
|
-
}, this._feedWriter);
|
|
127
|
-
this._outboundEchoStream = (0, echo_protocol_1.mapFeedWriter)(async (message) => ({
|
|
128
|
-
echo: {
|
|
129
|
-
...message,
|
|
130
|
-
timeframe: this._timeframeClock.timeframe
|
|
131
|
-
}
|
|
132
|
-
}), loggingWriter);
|
|
133
|
-
this._outboundHaloStream =
|
|
134
|
-
(0, echo_protocol_1.mapFeedWriter)(async (message) => ({ halo: message }), loggingWriter);
|
|
135
|
-
}
|
|
136
|
-
return [
|
|
137
|
-
this._inboundEchoStream,
|
|
138
|
-
this._outboundEchoStream
|
|
139
|
-
];
|
|
133
|
+
return this._outboundEchoStream;
|
|
140
134
|
}
|
|
141
135
|
/**
|
|
142
136
|
* Close all streams.
|
|
@@ -144,12 +138,11 @@ class Pipeline {
|
|
|
144
138
|
// TODO(burdon): Create test that all streams are closed cleanly.
|
|
145
139
|
async close() {
|
|
146
140
|
await this._feedStorIterator.close();
|
|
147
|
-
if (this._inboundEchoStream) {
|
|
148
|
-
this._inboundEchoStream.destroy();
|
|
149
|
-
this._inboundEchoStream = undefined;
|
|
150
|
-
}
|
|
151
141
|
this._outboundEchoStream = undefined;
|
|
142
|
+
this._outboundHaloStream = undefined;
|
|
143
|
+
this._echoProcessor = undefined;
|
|
144
|
+
this._isOpen = false;
|
|
152
145
|
}
|
|
153
146
|
}
|
|
154
|
-
exports.
|
|
155
|
-
//# sourceMappingURL=
|
|
147
|
+
exports.FeedMuxer = FeedMuxer;
|
|
148
|
+
//# sourceMappingURL=feed-muxer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-muxer.js","sourceRoot":"","sources":["../../../src/pipeline/feed-muxer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-muxer.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/feed-muxer.test.ts"],"names":[],"mappings":""}
|
|
@@ -18,11 +18,11 @@ const model_factory_1 = require("@dxos/model-factory");
|
|
|
18
18
|
const random_access_multi_storage_1 = require("@dxos/random-access-multi-storage");
|
|
19
19
|
const util_1 = require("@dxos/util");
|
|
20
20
|
const database_1 = require("../packlets/database");
|
|
21
|
+
const feed_muxer_1 = require("./feed-muxer");
|
|
21
22
|
const party_processor_1 = require("./party-processor");
|
|
22
|
-
const pipeline_1 = require("./pipeline");
|
|
23
23
|
const log = (0, debug_1.default)('dxos:echo:pipeline:test');
|
|
24
24
|
// TODO(burdon): Test read-only.
|
|
25
|
-
describe('
|
|
25
|
+
describe('FeedMuxer', () => {
|
|
26
26
|
(0, mocha_1.it)('streams', async () => {
|
|
27
27
|
const storage = (0, random_access_multi_storage_1.createStorage)('', random_access_multi_storage_1.StorageType.RAM);
|
|
28
28
|
const feedStore = new feed_store_1.FeedStore(storage.directory('feed'), { valueEncoding: echo_protocol_1.codec });
|
|
@@ -54,19 +54,19 @@ describe('pipeline', () => {
|
|
|
54
54
|
seq: 0
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
|
-
const pipeline = new pipeline_1.Pipeline(partyProcessor, feedReadStream, new database_1.TimeframeClock());
|
|
58
|
-
const [readStream] = await pipeline.open();
|
|
59
|
-
(0, expect_1.default)(readStream).toBeTruthy();
|
|
60
57
|
//
|
|
61
58
|
// Pipeline consumer.
|
|
62
59
|
// TODO(burdon): Check order (re-use feed-store-iterator test logic).
|
|
63
60
|
//
|
|
64
61
|
const numMessages = 5;
|
|
65
62
|
const [counter, updateCounter] = (0, async_1.latch)(numMessages);
|
|
66
|
-
|
|
63
|
+
const echoProcessor = async (message) => {
|
|
67
64
|
log('Processed:', JSON.stringify(message, util_1.jsonReplacer, 2));
|
|
68
65
|
updateCounter();
|
|
69
|
-
}
|
|
66
|
+
};
|
|
67
|
+
const pipeline = new feed_muxer_1.FeedMuxer(partyProcessor, feedReadStream, new database_1.TimeframeClock());
|
|
68
|
+
pipeline.setEchoProcessor(echoProcessor);
|
|
69
|
+
await pipeline.open();
|
|
70
70
|
//
|
|
71
71
|
// Write directly to feed store.
|
|
72
72
|
// TODO(burdon): Write to multiple feeds.
|
|
@@ -95,10 +95,13 @@ describe('pipeline', () => {
|
|
|
95
95
|
type: credentials_1.KeyType.FEED
|
|
96
96
|
});
|
|
97
97
|
const partyProcessor = new party_processor_1.PartyProcessor(partyKey.publicKey);
|
|
98
|
-
const
|
|
98
|
+
const echoMessages = [];
|
|
99
|
+
const echoProcessor = async (msg) => {
|
|
100
|
+
echoMessages.push(msg);
|
|
101
|
+
};
|
|
102
|
+
const pipeline = new feed_muxer_1.FeedMuxer(partyProcessor, feedReadStream, new database_1.TimeframeClock(), (0, echo_protocol_1.createFeedWriter)(feed));
|
|
103
|
+
pipeline.setEchoProcessor(echoProcessor);
|
|
99
104
|
await pipeline.open();
|
|
100
|
-
const writable = new feed_store_1.WritableArray();
|
|
101
|
-
pipeline.inboundEchoStream.pipe(writable);
|
|
102
105
|
await pipeline.outboundHaloStream.write((0, credentials_1.createPartyGenesisMessage)(keyring, partyKey, feedKey.publicKey, identityKey));
|
|
103
106
|
await (0, async_1.waitForCondition)(() => !partyProcessor.genesisRequired);
|
|
104
107
|
await pipeline.outboundEchoStream.write({
|
|
@@ -107,15 +110,14 @@ describe('pipeline', () => {
|
|
|
107
110
|
itemType: 'foo'
|
|
108
111
|
}
|
|
109
112
|
});
|
|
110
|
-
await (0, async_1.waitForCondition)(() =>
|
|
113
|
+
await (0, async_1.waitForCondition)(() => echoMessages.length === 1);
|
|
111
114
|
(0, expect_1.default)(partyProcessor.genesisRequired).toEqual(false);
|
|
112
|
-
(0, expect_1.default)(
|
|
115
|
+
(0, expect_1.default)(echoMessages[0].data).toEqual({
|
|
113
116
|
itemId: '123',
|
|
114
117
|
genesis: {
|
|
115
118
|
itemType: 'foo'
|
|
116
|
-
}
|
|
117
|
-
timeframe: expect_1.default.any(echo_protocol_1.Timeframe)
|
|
119
|
+
}
|
|
118
120
|
});
|
|
119
121
|
});
|
|
120
122
|
});
|
|
121
|
-
//# sourceMappingURL=
|
|
123
|
+
//# sourceMappingURL=feed-muxer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-muxer.test.js","sourceRoot":"","sources":["../../../src/pipeline/feed-muxer.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,kDAA0B;AAC1B,oDAA4B;AAC5B,iCAAmC;AAEnC,uCAAsD;AACtD,mDAAgF;AAChF,yCAAkE;AAClE,uDAAuH;AACvH,iDAAuE;AACvE,uDAAgE;AAChE,mFAA+E;AAC/E,qCAA0C;AAE1C,mDAAsD;AACtD,6CAAyC;AACzC,uDAAmD;AAEnD,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC;AAE7C,gCAAgC;AAChC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,UAAI,EAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,OAAO,GAAG,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,qBAAK,EAAE,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,YAAY,GAAiB,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpG,MAAM,cAAc,GAAG,IAAI,iCAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,yBAAS,EAAE,CAAC,CAAC;QAErF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,GAAE,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,CAAC;QAEnD,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,MAAM,OAAO,GAAG,IAAI,qBAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;YACzC,SAAS,EAAE,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,qBAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,cAAc,CAAC,cAAc,CAAC;YAClC,IAAI,EAAE,IAAA,uCAAyB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;YAClF,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,GAAG,EAAE,CAAC;aACP;SACF,CAAC,CAAC;QAEH,EAAE;QACF,qBAAqB;QACrB,qEAAqE;QACrE,EAAE;QACF,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,KAAK,EAAE,OAAoB,EAAE,EAAE;YACnD,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,yBAAc,EAAE,CAAC,CAAC;QACrF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtB,EAAE;QACF,gCAAgC;QAChC,yCAAyC;QACzC,EAAE;QAEF,MAAM,MAAM,GAAG,IAAA,iBAAQ,GAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,IAAA,yCAAyB,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,MAAM,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,UAAI,EAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,OAAO,GAAG,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,qBAAK,EAAE,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,IAAI,iCAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,yBAAS,EAAE,CAAC,CAAC;QAEnF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,GAAE,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,IAAI,qBAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,qBAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;YACzC,SAAS,EAAE,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,qBAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;YAC/C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAC5B,cAAc,EACd,cAAc,EACd,IAAI,yBAAc,EAAE,EACpB,IAAA,gCAAgB,EAAC,IAAI,CAAC,CACvB,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtB,MAAM,QAAQ,CAAC,kBAAmB,CAAC,KAAK,CAAC,IAAA,uCAAyB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACvH,MAAM,IAAA,wBAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAE9D,MAAM,QAAQ,CAAC,kBAAmB,CAAC,KAAK,CAAC;YACvC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC,CAAC;QAEH,MAAM,IAAA,wBAAgB,EAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAExD,IAAA,gBAAM,EAAC,cAAc,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,IAAA,gBAAM,EAAE,YAAY,CAAC,CAAC,CAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC5C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ export * from './message-selector';
|
|
|
2
2
|
export * from './party-feed-provider';
|
|
3
3
|
export * from './party-processor';
|
|
4
4
|
export * from '../protocol/party-protocol-factory';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './party-
|
|
5
|
+
export * from './feed-muxer';
|
|
6
|
+
export * from './party-pipeline';
|
|
7
7
|
export * from './metadata-store';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipeline/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipeline/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
@@ -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];
|
|
@@ -17,7 +21,7 @@ __exportStar(require("./message-selector"), exports);
|
|
|
17
21
|
__exportStar(require("./party-feed-provider"), exports);
|
|
18
22
|
__exportStar(require("./party-processor"), exports);
|
|
19
23
|
__exportStar(require("../protocol/party-protocol-factory"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
21
|
-
__exportStar(require("./party-
|
|
24
|
+
__exportStar(require("./feed-muxer"), exports);
|
|
25
|
+
__exportStar(require("./party-pipeline"), exports);
|
|
22
26
|
__exportStar(require("./metadata-store"), exports);
|
|
23
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipeline/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipeline/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,qDAAmC;AACnC,wDAAsC;AACtC,oDAAkC;AAClC,qEAAmD;AACnD,+CAA6B;AAC7B,mDAAiC;AACjC,mDAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-selector.d.ts","sourceRoot":"","sources":["../../../src/pipeline/message-selector.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mBAAoB,kBAAkB,kBAAkB,cAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"message-selector.d.ts","sourceRoot":"","sources":["../../../src/pipeline/message-selector.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mBAAoB,kBAAkB,kBAAkB,cAAc,KAAG,eAwC1G,CAAC"}
|
|
@@ -24,24 +24,25 @@ const log = (0, debug_1.default)('dxos:echo-db:message-selector');
|
|
|
24
24
|
const createMessageSelector = (partyProcessor, timeframeClock) => candidates => {
|
|
25
25
|
// Check ECHO message candidates first since they are less expensive than HALO cancidates.
|
|
26
26
|
for (let i = 0; i < candidates.length; i++) {
|
|
27
|
-
const { data: { echo } } = candidates[i];
|
|
27
|
+
const { data: { timeframe, echo } } = candidates[i];
|
|
28
28
|
const feedKey = crypto_1.PublicKey.from(candidates[i].key);
|
|
29
29
|
if (!echo) {
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
32
|
-
(0, assert_1.default)(
|
|
33
|
-
if (partyProcessor.isFeedAdmitted(feedKey) && !timeframeClock.hasGaps(
|
|
32
|
+
(0, assert_1.default)(timeframe);
|
|
33
|
+
if (partyProcessor.isFeedAdmitted(feedKey) && !timeframeClock.hasGaps(timeframe)) {
|
|
34
34
|
return i;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
// Check HALO message candidates.
|
|
38
38
|
for (let i = 0; i < candidates.length; i++) {
|
|
39
|
-
const { data: { halo } } = candidates[i];
|
|
39
|
+
const { data: { timeframe, halo } } = candidates[i];
|
|
40
40
|
const feedKey = crypto_1.PublicKey.from(candidates[i].key);
|
|
41
41
|
if (!halo) {
|
|
42
42
|
continue;
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
(0, assert_1.default)(timeframe);
|
|
45
|
+
if (partyProcessor.isFeedAdmitted(feedKey) && !timeframeClock.hasGaps(timeframe)) {
|
|
45
46
|
return i;
|
|
46
47
|
}
|
|
47
48
|
if (partyProcessor.genesisRequired) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-selector.js","sourceRoot":"","sources":["../../../src/pipeline/message-selector.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,mDAAmF;AACnF,yCAAyC;AAMzC,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAEnD;;;;;;;;GAQG;AACI,MAAM,qBAAqB,GAAG,CAAC,cAAkC,EAAE,cAA8B,EAAmB,EAAE,CAAC,UAAU,CAAC,EAAE;IACzI,0FAA0F;IAC1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"message-selector.js","sourceRoot":"","sources":["../../../src/pipeline/message-selector.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,mDAAmF;AACnF,yCAAyC;AAMzC,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAEnD;;;;;;;;GAQG;AACI,MAAM,qBAAqB,GAAG,CAAC,cAAkC,EAAE,cAA8B,EAAmB,EAAE,CAAC,UAAU,CAAC,EAAE;IACzI,0FAA0F;IAC1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE;YACT,SAAS;SACV;QAED,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;QAClB,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAChF,OAAO,CAAC,CAAC;SACV;KACF;IAED,iCAAiC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE;YACT,SAAS;SACV;QAED,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;QAClB,IAAI,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAChF,OAAO,CAAC,CAAC;SACV;QAED,IAAI,cAAc,CAAC,eAAe,EAAE;YAClC,IAAI,EAAE,+EAA+E;gBACnF,8DAA8D;gBAC9D,IAAI,IAAA,2CAA6B,EAAC,IAAI,CAAC,KAAK,6BAAe,CAAC,IAAI,CAAC,aAAa,EAAE;oBAC9E,OAAO,CAAC,CAAC;iBACV;aACF;YAAC,WAAM,GAAG;SACZ;KACF;IAED,kCAAkC;IAClC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrB,CAAC,CAAC;AAxCW,QAAA,qBAAqB,yBAwChC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublicKey } from '@dxos/crypto';
|
|
2
|
-
import { PartyMetadata } from '@dxos/echo-protocol';
|
|
2
|
+
import { PartyMetadata, Timeframe } from '@dxos/echo-protocol';
|
|
3
3
|
import { Directory } from '@dxos/random-access-multi-storage';
|
|
4
4
|
/**
|
|
5
5
|
* Version for the schema of the stored data as defined in dxos.echo.metadata.EchoMetadata.
|
|
@@ -49,5 +49,6 @@ export declare class MetadataStore {
|
|
|
49
49
|
* Checks if a party with given key has a feed with given key.
|
|
50
50
|
*/
|
|
51
51
|
hasFeed(partyKey: PublicKey, feedKey: PublicKey): boolean;
|
|
52
|
+
setTimeframe(partyKey: PublicKey, timeframe: Timeframe): Promise<void>;
|
|
52
53
|
}
|
|
53
54
|
//# sourceMappingURL=metadata-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../src/pipeline/metadata-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAgB,aAAa,EAAU,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../src/pipeline/metadata-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAgB,aAAa,EAAU,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAIjC,qBAAa,aAAa;IAStB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,OAAO,CAAC,SAAS,CAKf;gBAGiB,UAAU,EAAE,SAAS;IAGxC,IAAI,OAAO,IAAK,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,OAAO,IAAK,aAAa,EAAE,CAE9B;IAED;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;YAqBd,KAAK;IAkBnB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAK7B;;OAEG;IACG,QAAQ,CAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD;;;OAGG;IACG,YAAY,CAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E;;;;OAIG;IACG,WAAW,CAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E;;OAEG;IACH,QAAQ,CAAE,QAAQ,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;IAIzD;;OAEG;IACH,OAAO,CAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO;IAQpD,YAAY,CAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAK9D"}
|
|
@@ -87,7 +87,7 @@ class MetadataStore {
|
|
|
87
87
|
*/
|
|
88
88
|
async clear() {
|
|
89
89
|
log('Clearing all echo metadata...');
|
|
90
|
-
await this._directory.
|
|
90
|
+
await this._directory.delete();
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
93
93
|
* Adds new party to store and saves it in persistent storage.
|
|
@@ -155,6 +155,12 @@ class MetadataStore {
|
|
|
155
155
|
}
|
|
156
156
|
return !!((_a = party.feedKeys) === null || _a === void 0 ? void 0 : _a.find(fk => feedKey.equals(fk)));
|
|
157
157
|
}
|
|
158
|
+
async setTimeframe(partyKey, timeframe) {
|
|
159
|
+
var _a;
|
|
160
|
+
const party = (_a = this.getParty(partyKey)) !== null && _a !== void 0 ? _a : (0, debug_2.failUndefined)();
|
|
161
|
+
party.latestTimeframe = timeframe;
|
|
162
|
+
await this._save();
|
|
163
|
+
}
|
|
158
164
|
}
|
|
159
165
|
exports.MetadataStore = MetadataStore;
|
|
160
166
|
//# sourceMappingURL=metadata-store.js.map
|